Octomind: A coding agent that recalls archived messages after compaction Octomind, a CLI-first AI coding agent runtime from developer Muvon, solved 24 of 25 held-out tasks at lower cost than its closest competitor, according to the project's octobench benchmarks. The MCP-native tool runs interactively, piped through stdin, as a background daemon, over WebSocket, or as an ACP sub-agent, and enforces deterministic guardrails in TOML and scripts rather than approval popups. Octomind also retains task knowledge across long sessions through adaptive compression and supports per-role model selection with per-request and per-session spend thresholds, stopping non-interactive runs with exit code 75. Pipe it, schedule it, embed it. One binary, any model, MCP-native — built for autonomous work, not just chat. Website https://octomind.run · Docs https://octomind.run/docs/ · Tap Registry https://github.com/muvon/octomind-tap · Benchmarks benchmarks · Issues https://github.com/muvon/octomind/issues Octomind is a CLI-first AI coding agent runtime. It gives an LLM real access to your repo — reading and writing files, running shells, searching code, delegating to sub-agents — through MCP https://modelcontextprotocol.io tools. The same session engine works interactively , piped through stdin , as a background daemon , over WebSocket , or as an ACP sub-agent inside another agent's stack. Interactive octomind run developer:general Piped — CI, scripts, automation echo "Explain the auth module" | octomind run developer:general --format plain Daemon — keep it alive, talk to it from another terminal echo "watch the build" | octomind run --name watcher --daemon --format jsonl octomind send --name watcher "run the test suite" Most coding agents assume a human is watching the screen. Octomind is built for the work that keeps going after you leave. - Policy as code, not approval popups. Deterministic guardrails https://github.com/Muvon/octomind/blob/master/doc/usage/18-guardrails.md — pre-call guards, post-result hooks, post-turn validators — live in TOML and scripts, so they work in CI, daemons, and scheduled runs. - Proven on real PRs. It solved 24 of 25 held-out tasks at lower cost than the closest competitor. See the benchmarks benchmarks . - Ready-made specialists. octomind run developer:general pulls a packaged agent prompt, model, MCP servers, tool permissions from a tap https://github.com/Muvon/octomind/blob/master/doc/integration/04-tap-system.md . Publish your own with one repo. - Sessions that stay sharp. Adaptive compression https://github.com/Muvon/octomind/blob/master/doc/usage/08-compression.md keeps long tasks moving while retaining task knowledge and the live exchange. - Any model, any budget. Use Octomind Cloud or your own key OpenRouter, Anthropic, OpenAI, DeepSeek, Ollama, and more , pick a model per role, and set spend thresholds per request and per session. A request over its threshold stops; at the session threshold a terminal session asks y/N before continuing, while a non-interactive octomind run stops with exit code 75. - One config. Models, tools, roles, guardrails, budgets: all TOML, no framework code. 1. Install macOS, Linux : curl -fsSL https://raw.githubusercontent.com/muvon/octomind/master/install.sh | bash On Windows, in PowerShell: irm https://raw.githubusercontent.com/muvon/octomind/master/install.ps1 | iex On macOS, you can also install with Homebrew: brew install muvon/tap/octomind 2. Get model access. The fastest path is Octomind Cloud, which includes models and needs no configuration: octomind login Prefer your own provider key? Skip login and export one also OPENAI API KEY , ANTHROPIC API KEY , DEEPSEEK API KEY , then follow Model access model-access to point the config at it: export OPENROUTER API KEY="your key" 3. Run a specialist in your project: cd ~/your/project octomind run developer:general You're now in a session with an agent that can read your code, run commands, and edit files. The interface is a plain line prompt with markdown rendering — no TUI to learn, so it works over SSH, in tmux , and in CI logs. The first time you run a specialist, it may install its tools and ask for credentials. developer:general comes from the default tap muvon/tap https://github.com/muvon/octomind-tap , not your local config. Plain octomind run starts the config's default role, assistant:concierge . Try the recorded bug-fix demo https://github.com/Muvon/octomind/blob/master/examples/fix-a-bug : two failing tests, an agent fix, and an independent test rerun. Measured on octobench https://github.com/Muvon/octobench against 25 tasks harvested from merged pull requests across Python, PHP, Rust, C++, and JavaScript. Each agent works in the pre-fix repo; held-out tests from the merged fix decide pass or fail. These are the published July 30, 2026 results, not a measurement of this checkout. | | solved | judge Σ / 2500 | cost | wall time | |---|---|---|---|---| | octomind + glm-5.2 | 24/25 | 2264 | $63.43 | 3.6h | | claude code + claude-opus-5 | 23/25 | 2262 | $81.79 | 6.7h | | codex + gpt-5.6-sol | 21/25 | 2127 | $14.86 | 1.0h | | opencode + glm-5.2 | 19/25 | 2093 | $129.54 | 3.3h | - The harness matters. opencode used the same model and endpoint; octomind solved 24 vs 19 at roughly half the cost. All four agents ran stock invocations with no tuning, so this measures the whole harness, not individual features. - Worst-case pricing, still ahead. glm-5.2 ran without prompt caching while Opus billed ~97% of context re-reads at cache rates — and octomind still led on solves, cost, and wall time. - Reproducible. Per-case table, artifacts, and reproduction guide: BENCHMARK.md https://github.com/Muvon/octobench/blob/8aa39684ff6103782aacb1bd79ea98e96e50d6cf/BENCHMARK.md . Background: blog post https://octomind.run/blog/coding-agent-benchmark-real-prs . Drop a .agents/guardrails.toml in your repo. The runtime enforces it deterministically, with no code to compile and no plugin to install. Pre-call deny — block a class of calls before they execute guard match = "shell command=^rm\\s+-rf? " message = "rm -rf blocked." Conditional rule — only fires after the agent ran git status this session guard match = "shell command=git push " when = "+shell command=git status " message = "Review changes before pushing." | Layer | When it runs | What it does | |---|---|---| | Guards | Before a tool call | Deny by capability, argument regex, and session history. A match returns a denial instead of executing the call. | | Hooks | After a tool result | A non-zero exit injects stdout into the agent's inbox — lint and format failures become automatic corrections without restarting the turn. | | Validators | After a turn | Scripts the agent reads on its next turn. This replaces "approve this change?" prompts in autonomous loops. | Hook and validator script examples: Guardrails guide https://github.com/Muvon/octomind/blob/master/doc/usage/18-guardrails.md . The same session engine, exposed however your workflow needs it. | Surface | Use it for | Docs | |---|---|---| | Interactive CLI | Daily work, any domain | Sessions https://github.com/Muvon/octomind/blob/master/doc/usage/05-sessions.md | | Piped --format plain / jsonl | CI/CD, shell scripts, automation | CLI reference https://github.com/Muvon/octomind/blob/master/doc/reference/01-cli-reference.md | | Daemon + send | Background agents, continuous monitoring | Daemon & hooks https://github.com/Muvon/octomind/blob/master/doc/integration/03-daemon-and-hooks.md | | WebSocket octomind server | IDE plugins, dashboards, integrations | WebSocket server https://github.com/Muvon/octomind/blob/master/doc/integration/01-websocket-server.md | | ACP octomind acp | Sub-agent inside another agent or editor | ACP protocol https://github.com/Muvon/octomind/blob/master/doc/integration/02-acp-protocol.md | Need machine-readable results? Pass --schema schema.json to constrain the final response to a JSON Schema requires a model with structured-output support . See Structured output https://github.com/Muvon/octomind/blob/master/doc/usage/11-structured-output.md . | Feature | What you get | Learn more | |---|---|---| | Specialists & taps | Packaged agents with model, prompt, MCP servers, and permissions; installs their tool dependencies on first use | Tap system https://github.com/Muvon/octomind/blob/master/doc/integration/04-tap-system.md | | Roles | Per-role model, temperature, system prompt, tools | Roles https://github.com/Muvon/octomind/blob/master/doc/usage/06-roles.md | | Workflows | Multi-step pipelines, each step with its own model and toolset | Workflows https://github.com/Muvon/octomind/blob/master/doc/usage/09-workflows.md | | MCP client | stdio and Streamable HTTP servers, with OAuth; enable/disable servers mid-session | MCP tools https://github.com/Muvon/octomind/blob/master/doc/usage/07-mcp-tools.md | | Intent-driven context | Skills and capabilities activate on demand, keeping context small | Skills https://github.com/Muvon/octomind/blob/master/doc/usage/15-skills.md | | Local project tools | Executable scripts in .agents/tools/ auto-register as tools | Local tools https://github.com/Muvon/octomind/blob/master/doc/usage/17-local-tools.md | | Supervisor & learning | External planning and gating; file-backed learning records | Supervisor https://github.com/Muvon/octomind/blob/master/doc/usage/14-supervisor.md , Learning https://github.com/Muvon/octomind/blob/master/doc/usage/13-learning.md | | Sandbox | --sandbox restricts filesystem writes to the working directory | Config reference https://github.com/Muvon/octomind/blob/master/doc/reference/03-config-reference.md | | Token efficiency | Cache-aware accounting and compaction | Token efficiency https://github.com/Muvon/octomind/blob/master/doc/usage/16-token-efficiency.md | octomind run developer:general general dev, language skills auto-activate octomind run doctor:blood blood-test interpretation specialist octomind run lawyer:sg legal specialist Running a specialist fetches its manifest from the tap registry, installs any required binaries, resolves credentials, starts the right MCP servers, and then opens the session. Build and register your own: octomind tap init yourteam/my-tap scaffold, validate, git-init, and register locally octomind tap yourteam/my-tap on another machine, after publishing to GitHub The octomind- prefix is added automatically: yourteam/my-tap maps to the repository yourteam/octomind-my-tap . | Method | Command | |---|---| | Install script recommended | curl -fsSL https://raw.githubusercontent.com/muvon/octomind/master/install.sh \| bash | | Install script Windows PowerShell | irm https://raw.githubusercontent.com/muvon/octomind/master/install.ps1 \| iex | | Homebrew macOS | brew install muvon/tap/octomind | | Scoop Windows | scoop bucket add muvon https://github.com/Muvon/scoop-bucket then scoop install muvon/octomind | | Cargo Rust 1.95+ | cargo install octomind | | Docker | docker run --rm ghcr.io/muvon/octomind --help | | From source | git clone https://github.com/muvon/octomind.git && cd octomind && cargo build --release | The install script detects your OS and architecture Linux and macOS on x86 64/aarch64 and installs to ~/.local/bin/ . Pass --install-dir