Skip to content

BMO

The open-source coding agent for your terminal. Describe what you want — fix a bug, add a feature, refactor a module — and BMO reads your code, makes edits, runs your commands, and checks its work in a reviewable diff. Risky tools wait for your approval by default.

BMO: failing tests, one bmo run, fix in editor and tests pass

Failing tests → one bmo run → fix lands in your editor and tests pass.

Signal-based multi-agent coordination — research preview →

Read the Quickstart guide. It walks you from installation through your first edit in a single short page. The rest of this book is reference material organized by topic.

Contributing to BMO itself? Start with the CONTRIBUTING.md first-contribution walkthrough, then return to this book when you need product or feature reference.

See About This Book for how the guide and reference layers are organized.


  • Overview explains what BMO is, who it is for, and how the docs are organized.
  • Quickstart gets you into your first real session fast.
  • How BMO thinks and acts gives the core mental model for shared workspace, tools, workflows, and bounded adaptation.
  • Workflow map shows how a request can turn into tool use, staged plans, background automation, mesh delegation, and observability.
  • How to discover what BMO can do covers the in-product discovery surfaces so you do not have to memorize commands first.

One agent core, every surface

The same agent, tools, and approval policy are reachable through bmo (TUI), bmo run (one-shot CLI), bmo service start autopilot|http|mcp (long-lived runtimes), the ACP endpoint (agent-client protocol consumers), and A2A (peer agents) — not five disconnected products. The MCP service exposes read-only tools by default and opt-in bmo_run for mutations.

Share one session state with the agent

Agents read and write the same sessions, file history, message log, and data directory you do. Inspect past runs with bmo session list, bmo session status --session <id>, and TUI /debugger — no opaque external thread.

Approve risky tools before they run

Edits, shell commands matching the blocklist, and writes to sensitive paths (.ssh/, .env, …) wait for confirmation by default. Widen with bmo run --auto-approve-tools or global -y only when you opt in.

Run agents in `local`, `docker`, or `ssh` sandboxes

Route every tool call through options.sandbox.backend in bmo.toml to execute on the host, in a container, or on a remote machine — without changing your prompt. Set [options.sandbox] backend = "docker" and the same bmo run "echo hi" then executes inside a container.

I want to…Start here
Install BMO and run the first sessionInstallation and Quickstart
Understand how the system is structuredHow BMO thinks and acts
See how everyday requests branch into workflowsWorkflow map
Learn practical prompts and delivery patternsCommon Workflows
Choose the right feature without reading every pageAbout This Book and How to discover what BMO can do
Inspect the tool surface available to the agentTools Reference
Understand configuration and operating modesConfiguration and Operating mode parity
Work across multiple agents or remote peersMulti-Agent Workflows, Agent Mesh, and A2A Protocol
Review agent-produced code before it landsPatch Proposals and Quality Gates
Run BMO in CI, scripts, or long-lived background modeAutomation & Headless
Diagnose a run from durable evidenceAgent Debugger, TUI Runtime Signals, and Run Observability