Muvon/octomind

▲ 126 stars today★ 480⑂ 65

Open-source AI coding agent and agent runtime: one binary, any model, MCP-native. Runs in terminal, CI, or as a daemon.

About Muvon/octomind

Muvon/octomind is an open-source project on GitHub, mainly written in Rust. Open-source AI coding agent and agent runtime: one binary, any model, MCP-native. Runs in terminal, CI, or as a daemon. It currently holds 480 stars and 65 forks with 29 open issues, and was last pushed on 2026-11-04 (repository created 2025-06-01).

Project Overview

AI Homed tracks it on the Today's Trending board, currently at rank #23 with 126 new stars today.

GitHub Repository Details

Repository Muvon/octomind · default branch master · size 18425 KB · watchers 13 · source: GitHub REST API and repository README

README

https://github.com/Muvon/octomind/blob/HEAD/Octomind — open-source coding agent harness

Open-source coding agent harness. One Rust binary, any model, every surface.

Interactive, stdin, daemon, WebSocket, or ACP — one binary, one config.
A supervising model plans and checks the work.
Policy lives in TOML guardrails, not approval prompts.

CI Crates.io Coverage License Stars

Website · Docs · Tap Registry · Benchmarks · Issues

---

Octomind is an open-source coding agent harness. It gives any LLM the tools to work in a repository — read and edit files, run shells, search code, delegate to sub-agents — through MCP, and runs the result as an interactive CLI, a stdin pipe, a daemon, a WebSocket server, or an ACP agent in your editor. Most agents stop and ask a human before each risky step, which works at a keyboard and blocks everything in CI. Octomind writes that policy down as TOML guardrails and adds a supervising model that plans and checks the work, so the same session can run with nobody watching. On 25 tasks taken from merged pull requests it solved 24; OpenCode solved 19 with the same model at about twice the cost (benchmarks).

How It Works

One diagram, the whole turn: what is assembled before the model sees the request, the tool loop, how a turn is allowed to end, and what carries over to the next session.

https://github.com/Muvon/octomind/blob/HEAD/Octomind turn flow: request, context assembly (AGENTS.md and skills, lesson recall, supervisor notes, compression), model, tool loop (guards, MCP tools, hooks, condense, detectors), verify gate, validators, response; lessons extracted after /done feed later sessions and, with evolution enabled, skill and guardrail candidates on trial

Why Octomind?

Built for the work that keeps going after you leave:

# Interactive
octomind run developer:general

Non-interactive — 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"

Quick Start

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 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, not your local config. Plain octomind run starts the config's default role, assistant:concierge.

Try the recorded bug-fix demo: two failing tests, an agent fix, and an independent test rerun.

Benchmarks

Measured on 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 |

Guardrails: Policy as Code

Drop a .agents/guardrails.toml in your repo. Octomind 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. |

If you know Claude Code hooks: guards are PreToolUse denies declared in TOML, hooks are PostToolUse, validators are Stop — no scripts required for the common cases.

Hook and validator script examples: Guardrails guide.

One Harness, Five Surfaces

The same harness, exposed wherever your workflow needs it.

| Surface | Use it for | Docs | |---|---|---| | Interactive CLI | Daily work, any domain | Sessions | | Non-interactive (--format plain / jsonl) | CI, scripts, scheduled jobs | CLI reference | | Daemon + send | Background agents, continuous monitoring | Daemon & hooks | | WebSocket (octomind server) | IDE plugins, dashboards, integrations | WebSocket server | | ACP (octomind acp) | Agent inside Zed, JetBrains, VS Code, Neovim, or any ACP editor | ACP protocol |

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.

Features

| 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 | | Roles | Per-role model, temperature, system prompt, tools | Roles | | Workflows | Multi-step pipelines, each step with its own model and toolset | Workflows | | MCP client | stdio and Streamable HTTP servers, with OAuth; enable/disable servers mid-session | MCP tools | | Agent Skills | Standard SKILL.md skills from .agents/skills/, ~/.config/agents/skills/, and taps; they activate on demand, so your context stays small | Skills | | Local project tools | Executable scripts in .agents/tools/ auto-register as tools | Local tools | | Plugins & AGENTS.md | Agent Plugins (plugin.json + skills + mcp.json) from taps, .agents/plugins/, or ~/.config/agents/plugins/; project AGENTS.md loads at session start | Configuration | | Supervisor & learning | A second model plans, checks completion, and condenses tool output; lessons persist as files per project and role | Supervisor, Learning | | Sandbox | --sandbox locks writes to the working directory via Landlock (Linux) or Seatbelt (macOS), inherited by every shell, MCP server, and sub-agent | Config reference | | Token efficiency | Cache-aware cost accounting and adaptive compression | Token efficiency |

Specialists

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.

Installation

| 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 or set OCTOMIND_INSTALL_DIR to override. On Windows (x86_64/aarch64), install.ps1 installs to %LOCALAPPDATA%\octomind\bin and adds it to your user PATH; it honors OCTOMIND_INSTALL_DIR and OCTOMIND_VERSION too. install.sh still works from Git Bash or MSYS2.

Command not found? Add the install directory to your PATH:

export PATH="$HOME/.local/bin:$PATH"

Building from source requires protoc; see Building from source for per-OS prerequisites.

Verify:

octomind --version
octomind config      # generate the default config
octomind run         # start your first session

Shell completions: octomind completion .

Model access

Octomind Cloud — octomind login (device-code sign-in, like gh auth login) stores a gateway key locally. The default config already uses octohub:auto. Learn more.

Bring your own key — set the provider's environment variable (OPENROUTER_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, DEEPSEEK_API_KEY, …) and point the model tables at it. The supervisor and compression profiles also default to octohub:auto, so update all three:

[model]
name = "anthropic:claude-sonnet-5-5"

[supervisor.model] name = "anthropic:claude-haiku-5-5"

[compression.model] name = "anthropic:claude-haiku-5-5"

Provider details and per-role overrides: Providers & models.

Configuration

Config lives at ~/.local/share/octomind/config/config.toml on macOS and Linux, and under %LOCALAPPDATA%/octomind/config/ on Windows. Set OCTOMIND_DATA_DIR to override the data root.

octomind config --show       # view current config
octomind config --validate   # validate config

Override any value for a single run with -c:

octomind run -c supervisor.enabled=false

Full reference: Configuration reference · Environment variables.

Session commands

| Command | Description | |---|---| | /help | Show all commands | | /info | Token usage and costs | | /model anthropic:claude-sonnet-5-5 | Switch model mid-session | | /role developer:general | Switch to a configured role or tap tag | | /new Review auth | Start a fresh session (title optional) | | /done | Force context compression and start background learning extraction when enabled | | /exit | Exit the session |

Full list: Session commands.

Telemetry

Octomind reports anonymous usage: which commands, tools, and models are used, plus timings, token counts, and error kinds. It never sends your code, prompts, file paths, tool arguments, or environment values. Opt out in any of three ways:

export DO_NOT_TRACK=1          # the cross-tool standard, honored first
export OCTOMIND_TELEMETRY=0    # for subsequent commands in this shell

or set telemetry = false in config.toml

Exact field list: Telemetry.

Documentation

| Start here | Go deeper | Integrate | Reference | |---|---|---|---| | Installation | Roles | WebSocket server | CLI | | Quickstart | Workflows | ACP protocol | Config | | Configuration | Compression | Daemon & hooks | Session commands | | Providers & models | Guardrails | Editor integration | Environment variables |

Full index: doc/README.md · Hosted: octomind.run/docs.

Contributing

The most impactful contribution isn't code — it's specialist agents. A cardiologist publishing doctor:medications. A tax attorney publishing lawyer:us. A security researcher publishing security:owasp. One TOML file, and everyone with that problem gets an agent that knows the domain.

Code contributions are welcome too. Set up the hooks and run the gate before you push:

pip install pre-commit && pre-commit install
make dev    # fmt + clippy + test

Commits follow Conventional Commits. Full guide, architecture overview, and code conventions: CONTRIBUTING.md · internals: Architecture.

Community participation follows our Code of Conduct. Report vulnerabilities privately using the security policy.

License

Apache License 2.0 — see LICENSE.

---

Octomind by Muvon · Website · Documentation

GitHub Stars & Activity

480Stars
65Forks
29Open issues
RustLanguage

GitHub Popularity

GitHub stars480
Forks65
Open issues29
Primary languageRust
LicenseApache-2.0
Stars gained today126
Created2025-06-01
Last pushed2026-11-04

Trending History

Daily boardrank #23 · ▲ 126 stars

Related AI Projects

1

vercel-labs / agent-browser

Rust★ 45,517⑂ 3,128▲ 133 stars
→
2

janhq / jan

Rust★ 45,439⑂ 3,147▲ 58 stars
→
3

t8y2 / dbx

Rust★ 29,068⑂ 2,651▲ 165 stars
→
4

vercel-labs / agent-desktop

Rust★ 14,723⑂ 1,017▲ 2,463 stars
→
5

max-sixty / worktrunk

Rust★ 10,945⑂ 408▲ 524 stars
→
6

hydro-project / infinity

Rust★ 680⑂ 76▲ 82 stars
→
7

Duecki1 / CalibRaw

Rust★ 286⑂ 19▲ 12 stars
→
8

Renly1994 / xiaotang-daozai

Rust★ 248⑂ 37
→

More AI Rankings