Features
A capability summary of the
indusagi-coding-agentCLI, derived from the subsystems that ship in the source. Everything here is built from scratch on the singleindusagiframework dependency.
At a glance
- Three run modes: interactive REPL, one-shot print, and a JSON line protocol.
- A built-in tool deck: file read/write/edit, search, shell, background processes, web, and a task checklist.
- External tools over MCP — connect to MCP servers and graft their tools into the deck.
- Multi-provider models plus optional external runtimes (CLI-backed agents).
- Loadable skills and subagents, slash commands, transcript export, and tracing.
Run modes
| Invocation | Mode | What it does |
|---|---|---|
indus |
interactive | Ink/React REPL — streaming replies, a live tool deck, slash commands |
indus -p "…" / --print |
One request, prints the final result, exits | |
indus --json / --rpc |
line protocol | Newline-delimited JSON for a parent process to drive |
indus signin / signout |
credentials | Store / clear an API key in the local auth vault |
indus --help / -h prints the generated flag reference; indus --version /
-v prints the version. --interactive / -i forces the REPL even when a
prompt is supplied. See JSON Mode and RPC Mode.
Built-in tools
The capability deck exposes the framework's built-ins as agent tools, in catalog order. Read-only tools are available in every profile; mutating tools require an authoring (full-access) session.
| Tool | What it does | Access |
|---|---|---|
read |
Return a file's contents (optional offset + line cap; renders images inline where supported) | read-only |
ls |
List a directory's entries (optional cap) | read-only |
grep |
Scan files for lines matching a pattern (case, literal, context, cap) | read-only |
find |
Locate files/directories by glob-style name beneath a root | read-only |
websearch |
Query the live web and return ranked result snippets | read-only |
webfetch |
Retrieve a URL and return its body as text, Markdown, or HTML | read-only |
todoread |
Read back the session's task checklist | read-only |
write |
Create or overwrite a file (makes parent dirs) | mutating |
edit |
Find-and-replace an exact span in a file and report the diff | mutating |
bash |
Run a shell command in the working directory, streaming output, with an optional timeout | mutating |
process |
Start, list, inspect, feed, and stop long-running background commands | mutating |
todowrite |
Replace or amend the session's task checklist | mutating |
Limit a run to a subset with --tools read,grep,bash (comma-separated or
repeated), or disable every built-in with --no-tools. The bash tool runs in
a non-interactive shell — see Shell Aliases.
MCP — external tools
The agent is a client of external Model Context Protocol servers: it
connects to each configured server, lists its tools, and grafts them into the
deck under qualified "<server>__<tool>" names. Enrollment is event-sourced, so
servers can attach and detach over a session's life without mutating shared
state. Attach servers from the command line with --mcp <endpoint>, manage them
in an interactive session with /mcp, or declare them in a config file. See
MCP.
Models and runtimes
- Multi-provider. The session defaults to
anthropic(defaultProvider), with the model picked bydefaultModeland reasoning effort bydefaultThinkingLevel. Choose a model per run with--model/-m(provider-qualified or bare) and reasoning with--thinking. List models with--list-models. See Providers and Models. - External runtimes (provider routing). Beyond the framework's network
stream, the
runtime-bridgecan route a turn to a child coding-agent process driven over its own protocol. Built-in adapters cover an Anthropic-flavoured CLI (claude-cli), an OpenAI-flavoured CLI (codex-cli), and a peer indusagi agent (indusagi-cli). A model is annotated with an external-runtime spec; a model with no spec routes normally. A CLI runtime that owns its own auth can be offered even with no API key on disk.
Authentication
Set ANTHROPIC_API_KEY (or another supported provider key) in the environment,
or run indus signin. Two methods are supported: an API key or a browser
sign-in (OAuth) for the providers that offer it (Anthropic, OpenAI Codex,
GitHub Copilot). indus signin prefers the browser path for an OAuth-capable
provider and falls back to an API key; force one with --method oauth /
--method api-key (shorthands --oauth / --api-key). In an interactive
session use /login. Authenticate a specific run with a stored account via
--account. Credentials live in the local auth vault under the profile
directory.
Working memory
A single working-memory tool lets the agent carry a persistent scratch note
across turns within a session: read, replace, and append actions over one
text buffer. It is a plain in-process note — not a vector or semantic store.
Inspect or toggle it with /memory.
Composio (SaaS bridges)
When COMPOSIO_API_KEY is set, /composio connects, enables, and inspects
Composio toolkits, exposing their remote tools to the agent through the SaaS
gateway. Without the key, the command reports the missing-key state explicitly.
Extensibility
- Skills — on-demand capability packages discovered and (optionally) surfaced as their own slash commands. See Skills.
- Subagents — spawn specialized agents for delegated work. See Subagents.
- Addons / extensions — loadable modules that contribute tools and commands
and hook lifecycle events; install sources via the
extensionPackagessetting. See Extensions and Loading Extensions. - Themes & keybindings — name a colour scheme with
colourSchemeand rebind console keys. See Themes and Keybindings.
Sessions and export
Sessions are persisted under the profile directory; resume one with --resume /
-r or continue the latest in the current directory with --continue / -c.
In a session, /copy puts the last reply on the clipboard, /export [path]
renders the transcript to standalone HTML, and /share publishes it as a secret
GitHub gist via the gh CLI. See Session Format.
Observability
The insight subsystem provides tracing with sinks, replay, and secret
redaction. Set INDUSAGI_DEBUG in the environment to surface debug output;
/debug toggles the reasoning display and dumps a JSONL snapshot of the session
(stats plus every message) to a temporary file, reporting the path it wrote.
See also
- README - Overview and quick start
- MCP - Attaching external MCP servers
- Settings - Every preference key
- Development - Building and contributing
