Skip to content

BMO

Open-source agent-native coding system for the terminal. Describe what you want — fix a bug, add a feature, refactor a module — and BMO reads your code, makes edits, runs commands, and verifies the result. Risky tools wait for your approval by default; shared session state, docker/ssh sandboxes, durable evidence, mesh, and workspace claims are there when you need them.

BMO fixes a failing test in the terminal

A real BMO run fixing a failing test and adding edge cases.

Multi-agent coordination proof (Experimental) →

Read the Your First 10 Minutes 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.

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. Verify with bmo run --sandbox docker "echo hi".

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.

Drive BMO from TUI, CLI, MCP, ACP, or A2A

The same agent core is 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). Interactive surfaces share session policy; the MCP service exposes read-only tools by default and opt-in bmo_run for mutations.

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 Session Observability Parity