Skip to content

Fullstop000/ignis

Repository files navigation

🔥 Ignis

Your AI coding agent, right in the terminal.

CI Release codecov License

Ignis running in the terminal

Install

curl -fsSL https://raw.githubusercontent.com/Fullstop000/ignis/master/install.sh | sh

Drops the binary in ~/.ignis/bin and the Ink frontend in ~/.ignis/ignis-tui. Already installed? Update in place with ignis upgrade.

ignis runs the Ink frontend by default when Node ≥18 is on your PATH, and falls back to the built-in ratatui TUI otherwise. The ratatui TUI is deprecated (no longer actively developed); IGNIS_FRONTEND=native forces it.

Other ways to install
# Pin a version or install dir
curl -fsSL …/install.sh | IGNIS_VERSION=v0.14.1 IGNIS_INSTALL_DIR=/usr/local/bin sh

# Self-update
ignis upgrade                     # download + replace the running binary
ignis upgrade --check             # report whether an update is available
ignis upgrade --version v0.14.1   # pin to a specific tag

# From source (stable Rust toolchain)
git clone https://github.com/Fullstop000/ignis.git
cd ignis && cargo build --release   # → target/release/ignis

# Optional: the Ink frontend (Node required). Built from a source
# checkout, `ignis` launches it by default; install its deps once first.
( cd ignis-tui && npm install )

From a source checkout, ignis (or cargo run) finds ignis-tui/ next to the build and uses the Ink frontend once its deps are installed (npm install), exactly like an installed binary; IGNIS_FRONTEND=native forces the built-in TUI.

Prebuilt binaries for Linux, macOS, and Windows are attached to every GitHub Release.

Quickstart

# 1. Point ignis at a provider and key
mkdir -p ~/.ignis && cat > ~/.ignis/config.toml <<'TOML'
model = "deepseek/deepseek-v4-flash"

[providers.deepseek]
api_key = "sk-your-deepseek-key"
TOML

# 2. Launch the TUI…
ignis

# …or run one-shot from the shell
ignis "fix the failing test in src/parser.rs"

See Configure for more providers and per-model options.

Features

  • TUI + CLI — a terminal TUI and a one-shot CLI from the same binary. The UI is the Ink frontend when Node is present, with the built-in ratatui TUI as a deprecated fallback for Node-less environments (IGNIS_FRONTEND=native).
  • Bring your own model — OpenAI, Anthropic, DeepSeek, Kimi, MiniMax, Moonshot, Ollama, and any OpenAI-compatible endpoint (the custom provider). Providers are built in — drop in an API key and go. Switch model and reasoning effort at runtime with /model.
  • Streaming agent loop — incremental text and reasoning, parallel or sequential tool execution, and lifecycle hooks.
  • Built-in tools — read, write, and edit files; grep, glob, list_dir; bash; web_fetch and web_search; ask_user; and agent to delegate a subtask to a one-level sub-agent.
  • MCP servers — connect external stdio or HTTP MCP servers; their tools appear alongside the built-ins.
  • Skills — load reusable SKILL.md instruction sets on demand, sharable across Claude Code, Codex, OpenCode, and Kimi.
  • Permissions — every tool call passes a gate, with a built-in safety floor and user-declarable allow/ask/deny rules.
  • Sessions — project-scoped history with --resume, auto-resume, and context compaction; export per-session stats with ignis sessions export.
  • Single binary — the core agent is one self-updating binary; the Ink frontend needs Node ≥18 (the deprecated ratatui TUI is the no-Node fallback).

Configure

Ignis reads ~/.ignis/config.toml. Each provider — its endpoint(s), model list, context windows, and reasoning levels — is built in, so you normally just pick one and supply an api_key:

model = "minimax-token-plan/MiniMax-M2.7"

[providers.minimax-token-plan]
api_key = "sk-cp-your-key"
# protocol = "openai"   # MiniMax serves both protocols; ignis defaults to Anthropic

config.toml is overrides-only: set api_url to point at a different endpoint, or add a models list to extend the catalog or override a model's reasoning (effort levels) / context (window, else looked up from models.dev). For any other OpenAI-compatible endpoint, use the built-in custom provider (supply api_url + models). /model switches the active selection at runtime, saving it to ~/.ignis/state.json — your config.toml is never auto-edited. See config.example.toml for every provider and optional web_search / compaction settings.

Your ~/.ignis/config.toml holds secrets and is never committed. The repo-level config.toml is git-ignored on purpose — commit config.example.toml only.

Usage

Command What it does
ignis Interactive TUI (default)
ignis "<prompt>" One-shot to stdout
ignis --resume [id] [prompt] Resume the latest (or given) session
ignis --afk Fully unattended: auto-approve tools, dismiss ask_user
ignis mcp … Manage MCP servers (add, list, get, remove, enable, disable)
ignis sessions export --html Export an HTML report of session stats
ignis upgrade Update to the latest release
ignis --help Full flag and subcommand list

In the TUI: Enter sends, ↑/↓ walk history, Ctrl+D twice exits. Output renders inline in the normal buffer, so scroll with your terminal/tmux as usual. Type / for slash-command suggestions — see docs/usage/commands.md for the full reference.

Docs

Deep references live in docs/ — commands, hooks, permissions, skills, MCP servers, telemetry.

Development

cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check

See CONTRIBUTING.md for the workflow and CLAUDE.md for coding guidelines.

License

Licensed under the Apache License, Version 2.0.

About

An efficient coding agent

Resources

License

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors