Portable agents that
finish the job.
Your agent is a file you own, not a subscription you rent. One binary, any model, any surface — and it keeps working when nobody is watching, because policy lives in scripts instead of approval popups.
$ curl -fsSL https://octomind.run/install.sh | bash Apache 2.0 · nothing else to install · any provider, swapped mid-session
The harness matters as much as the model
25 tasks harvested from pull requests merged in 2026 — python, php, rust, c++, js — graded by each project's own held-out tests. 4 agents, stock settings, no tuning.
| Agent | Model | Solved | Judge Σ / 2500 | Cost | Wall time |
|---|---|---|---|---|---|
| octomind | glm-5.2 (open) | 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 (open) | 19/25 | 2093 | $129.54 | 3.3h |
- Same model, same endpoint as opencode — 24 vs 19 solved at half the cost. The difference is pure harness: context discipline and supervision.
- Read the cost column, not the clock. Wall time mostly tracks whatever the provider's latency was on the day, so it proves little on its own. Tokens spent per task solved is the number that belongs to the harness — and it is the one we optimise.
- octomind's cost is its worst case. glm-5.2 ran via Ollama cloud with no prompt caching — every token at list price — while Opus billed ~97% of its context re-reads at 1/10 cache rates, and still came out behind on solves and cost.
- Every task is a real merged fix — mostly landed after model training cutoffs — proven fail-to-pass before benching, validated by hidden maintainer-written tests plus an LLM judge.
What breaks when you walk away
The five things people actually leave their agent CLI over — and what the runtime does instead
The Problem
- ✕ One vendor decides what you may run Closed harness, one model family, limits shared with the chat app. Hit the cap mid-task and the work stops where it stands.
- ✕ Every dangerous call waits for a click Approval popups make you the safety layer. That works at the keyboard and breaks the moment you point an agent at CI, cron, or any loop you walk away from.
- ✕ Eighty tools loaded before you type Most harnesses preload every tool and skill up front. The window fills with things the task never needed, and tool choice gets sloppier as it does.
- ✕ Sessions break at hour 4 Naive truncation drops the decisions you need. Quality collapses. Restart.
- ✕ Bills surprise you $7K daily overages. No per-task budget. No kill switch.
Octomind
- → Any model, swapped mid-session OpenRouter, Anthropic, OpenAI, Google, DeepSeek, Bedrock, Ollama and more. Rate limited?
/modeland carry on — same session, nothing lost. - → Guardrails, not popups Deterministic policy in a TOML file: pre-call guards, post-result hooks, post-turn validators. The agent runs unattended and still can't cross a line.
- → Six tools in context, not eighty Tools stay dormant and activate on meaning, scored by an embedding model — and abstain when two match closely, because loading nothing beats loading the wrong thing.
- → Adaptive compression Cache-aware and structurally preserving: it keeps decisions, errors and file references, drops the noise, and decides whether compacting is worth it before paying for it. Sessions resume across days.
- → Hard spending caps Per-request and per-session enforced — agent stops, falls back, or warns before the bill.
one binary
The agent goes where you go
Same session engine, same config, same agent — exposed five ways. Nothing is a separate product, a separate SDK, or a separate price.
octomind run developer:generalYour terminal Daily work, any domain — the interactive session you already know.echo "…" | octomind run --format jsonlCI and shell scripts Non-interactive, structured output. Pipe a task in, parse the result out.octomind run --daemon + octomind sendA background agent Keep a session alive for days and inject new work into it from anywhere.octomind serverIDEs and dashboards A WebSocket server for plugins, web front-ends and your own integrations.octomind acp developer:generalInside another agent Speaks ACP, so a larger orchestration can call it as a sub-agent.
Your agent is a TOML file in your repo — models, tools, guardrails and prompts. Move the file, move the agent: it behaves the same on your laptop, on a cloud machine, or in a pipeline nobody is watching.
observability
Every run explains itself
When an agent works unattended, the question is never "did it reply" — it is what exactly did it do, and what did that cost. One command turns the whole session into something you can read.
/share
url https://octomind.run/r/<id>
id <8-char id>
/analyze
url https://octomind.run/analyze?b=127.0.0.1:<port>
port 127.0.0.1:<port> (loopback only)
What opens in the browser
- Every user and assistant turn, in order
- Every tool call — arguments in, results out
- Cost updates as they were charged, per request
- Cache reads and writes, counted separately
- Compression and truncation markers, where they fired
Rendered exactly as it happened on disk — and identically whichever model produced it, so a run you did on a local Ollama model reviews the same way as one on Opus.
/share Uploads the session log and prints a permanent link. For a teammate, a bug report, or an audit trail you want to keep. The CLI never opens it for you — clicking is your call.
/analyze Uploads nothing. A bridge binds to 127.0.0.1 only, every request needs a single-use token, re-running it kills the previous one, and the whole thing dies with the process. Your browser reads the log off your own machine.
In-session, /info and /report break down tokens, cost, cache savings
and compression as you go. Session commands →
An agent is one file
Model, tools, prompts and guardrails in a single TOML — write your own, or run one somebody already tuned. Either way it is a file you can read, fork and commit.
octomind run doctor:blood"Interpret these blood test results for a 45-year-old male"octomind run devops:kubernetes"Why is my pod stuck in CrashLoopBackOff?"Browse 150 specialists in the Tap registry. Or build and share your own.
octomind run developer:generaloctomind run lawyer:contractsoctomind run finance:analystoctomind run security:owaspthe registry
Most of them aren't for developers
150 published agents across 34 domains. A tap is a TOML manifest — the right model, the tools it needs, the prompt and its dependencies — so installing an expert is one command, whatever the expertise is.
octomind run lawyer:auAustralian Law Specialistoctomind run doctor:bloodBlood Test Interpreteroctomind run family:eldercareEldercare Navigatoroctomind run finance:retirementRetirement & Pensions Navigatoroctomind run coach:negotiationNegotiation Coachoctomind run tutor:examTest Prep Coachoctomind run vet:behaviorPet Behavior & Training Coachoctomind run home:diyHome Repair & DIY Guideoctomind run hr:recruiterHiring-Side Recruiteroctomind run video:ugcUGC Performance Ad Produceroctomind run security:owaspOWASP Security Specialistoctomind run developer:readmeREADME Architect
Meet the twelve most used → All 150 specialists Publish your own
One command runs a whole team
A workflow chains specialists into a pipeline: research hands the writer a brief, an auditor scores the result, an editor fixes it — and the run halts rather than making things up. Pipe something in; a finished piece comes out.
octomind workflow promote.tomlpromote turns one article into platform-native social drafts — a researcher grounds
it, a writer drafts, and the polish loop re-edits until the audit signs off.
Research: Question to Verified Cited Report
Investigates a question from background, evidence, and counter-argument angles in parallel, synthesizes a cited report, then loops a groundedness judge until every claim verifies against its sources.
launchLaunch: Idea to Go-to-Market Kit
Takes a product idea from market exploration to an honest go/no-go, then, only if viable, produces a GTM strategy, brand, pitch, ads, and a zero-budget launch plan.
deep-reviewDeep Review: Multi-Lens Review with Adversarial Verify
Reviews a change from five independent lenses in parallel, adversarially verifies every finding against the real code, then synthesizes one severity-ordered review with a verdict.
on purpose
What we didn't build
Some of these are missing because something more general replaced them; the rest are missing on purpose. If one is a hard requirement for you, better to find out here than three days in.
A plugin API
Extension is MCP, the open standard, so a server you already run works here unchanged and nothing has to be written against us. The proof is that we eat it: three servers are builtin — core, runtime and agent — and the file tools your agent uses are octofs, an external subprocess delivered through a tap, exactly like a server you would add yourself. There is no privileged inner circle. MCP tools →
An SDK to link against
The binary is the SDK. Guardrails, hooks and validators are injection points in TOML; the runtime server lets a session register new MCP servers, agents and skills mid-run without a restart; and the same engine answers over stdio, JSONL, ACP and WebSocket. There is no library to import and no version of us to pin. Layers →
Approval popups
Policy is deterministic and lives in TOML — pre-call guards, post-result hooks, post-turn validators. A human clicking "approve" is not a safety model that survives CI, cron, or anything you walk away from. Pass --sandbox when you want OS-level write restriction on top. Guardrails →
API keys in the config file
Keys are read only from the environment or a .env file. Setting one with octomind config --api-key is intentionally rejected, and points you at the right env var instead — because config files get committed and environments do not. Providers →
Our own instructions format
AGENTS.md, the shared standard, loaded from the project root whenever it exists. No configuration, and no second file that only means something to us. Configuration →
A registration step for your tools
Drop an executable in .agents/tools/ and it is discovered by file presence. No server block to declare, no allow-list to extend — local tools are role-agnostic by design. Local tools →
A bundled filesystem
Even reading a file goes through a swappable server. octofs ships as the default because most people want it, but a role that never references the filesystem capability simply has no file tools — and you can point it at your own implementation instead. Roles →
Two ways to start
Install the binary, or skip installing anything. Same runtime, same agents, same config.
On your machine
Install
brew install muvon/tap/octomind Install via Homebrew on macOS
Connect Models
octomind login One login connects the Hub — free models included, no provider accounts. Or bring your own keys: OpenRouter, OpenAI, Anthropic, Google, DeepSeek, Bedrock, Ollama and more.
Run
octomind run developer:general No config file to write — sensible defaults out of the box, and every one of them
overridable in TOML when you want it. Type /share at any point and
the whole run becomes a link you can read.
Alternative Install Methods
curl -fsSL https://octomind.run/install.sh | bashcargo install octomindgit clone https://github.com/muvon/octomind
cd octomind && cargo build --releaseOr in the cloud
Octomind Cloud — hand the job to AI agents, once or every day. They work on their own cloud computer and send results to Telegram, WhatsApp or Slack. Free tier, no card.
Yours to keep
Apache 2.0, readable and forkable. The runtime works standalone with your own provider keys and never needs our servers — signing in is a convenience, not a dependency. Telemetry is anonymous and off with one env var, and it never sees your code, prompts, file paths or tool arguments.