Anvaya CLI  ·  THE EXECUTION LAYER

The Terminal ThatKnows Your Codebase.

One Rust binary, zero runtime dependencies. Run it as a full-screen TUI or headless in a pipeline. It talks to Ollama by default, so the whole loop can run on your machine. It’s the execution half of Anvaya: every turn is packed with memory from Anvaya Mind and reports back what it learned — the same memory Claude Code and other agents can read over MCP.

ANV — HEADLESSanv 0.1.0
$anv init
✓ .anvaya/ initialized
$anv -m devstral:latest -p ollama
Keys 1–7 switch panels · Tab cycles · Y/N approves tool calls

By The Numbers

What’s Actually In It.

11Crates in the workspace, ~40K lines of Rust
18Native tools — no plugin layer, no shelling out to Python
4Providers: Ollama, Anthropic, OpenAI, Siemens
500+Tests across the workspace

The Interface

Seven Panels, One Keystroke Apart.

Everything the agent is doing stays visible. The terminal panel runs a split-tree workspace, so you can keep a build running beside the agent without leaving the TUI.

1  AgentThe main loop — prompt, streamed reasoning, tool approvals.
2  GitStatus, diff, and file navigation without leaving the TUI.
3  MonitorLive view of the Mind daemon: workers, sockets, graph size.
4  MCPBrowse tools exposed by connected MCP servers.
5  Mind VizThe knowledge graph rendered — nodes, links, weights.
6  TerminalSplit-tree multi-pane shell. Ctrl+A toggles pane-command mode.
7  StartupModel, provider, and project resolution before the first turn.

The Toolbelt

Eighteen Tools, All Native.

Every tool is compiled into the binary. Destructive ones route through an approval gate unless you pass --yolo; --plan-only disables writes and execution entirely.

read_fileRead with range support
edit_fileTargeted string replacement
rewrite_fileFull-file replacement
patchApply a unified diff
globMatch paths by pattern
grepSearch file contents
search_in_fileScoped in-file search
list_dirDirectory listing
dir_treeRecursive tree view
create_file_or_folderCreate paths
delete_file_or_folderRemove paths
run_commandShell execution, gated by approval
todowriteTrack multi-step work
webfetchFetch and read a URL
websearchSearch the web
lspLanguage server queries
questionAsk the user before proceeding
taskDelegate to a sub-agent

The Harness

Every Turn Is A Loop, Not A Prompt.

Between your input and the model sits a four-stage harness. The last two stages are what make memory compound — the loop closes back into Mind instead of ending at the reply.

01Intent EngineClassifies what the turn is actually trying to do before any context is assembled.
02Context PackerRequests memory from Mind under a token budget and packs it against the prompt.
03Turn LearnerRecords which injected nodes the turn actually touched, and the outcome, then sends it back.
04Session SynthesizerCondenses the finished session into durable nodes rather than a raw transcript.

Headless

It Runs Without You Watching.

Drop --no-tui and it becomes a normal Unix citizen: reads a prompt, writes to stdout, exits with a meaningful code. 0 on success, 1 on error, 2 when an approval was denied.

ANV — CI MODEstdin / stdout
$anv --no-tui --plan-only "what would change to add Redis caching?"
# read-only — never writes, never executes
$anv --no-tui --yolo "fix the auth bug in src/auth.rs"
$anv -s list
# resume any prior session by code, or --continue for the last one

Stop Starting From Zero.

One binary. Four providers — Ollama, Anthropic, OpenAI, Siemens. Zero API keys required to start. Mind remembers everything after the first session.