Skip to content

BMO

BMO is the open-source agent-native coding system for governed engineering work. The preview below shows one release request split into bounded workstreams: the failing path is held, validated work keeps moving, and admission waits for the identical live proof to pass.
One failed check is held to its change path while validated work stays ready. A real BMO TUI proof crop shows the same check before admission; inspect the receipt for the full evidence trail.

Understand: 13s loop: hold the broken change, keep safe work moving, then admit after the same check passes. Inspect: receipts. Prove: recurring episodes. Govern: approval boundary. Measure: enforcement counters.

Inspect the proof

Open the receipt to verify the exact failure, scoped repair, identical rerun, and admission claim shown above. The receipt view carries digest-bound, high-fidelity live BMO TUI pixels for the same SIGNIN-204 sequence; the landing preview stays focused on the destination system before the failure proof appears.

The landing preview stays short on purpose.

Will it admit? — recurring proof episodes

Each episode holds a risky change at the proof rail and admits it only after the identical check passes, with every claim bound to an independent deterministic receipt. The current cut carries three evidenced episodes (SIGNIN-204, CONFIG-MIGRATION-412, and FLAKY-TEST-703), each backed by its own receipt digest; future slots stay locked until their own proof exists.

Inspect the approval boundary

The approval view shows the governed execution boundary for the same SIGNIN-204 story: both staged options must be enabled, mutation stays locked while the plan is pending, and /approve is the operator action that starts execution. Normal risky-tool confirmations still apply.

Measure the enforcement layer

The enforcement guardrail is measurable, not just assertable. Every bmo run reports run_summary.enforcement counters: 512 registered tools the guardrail can gate, 90 of 484 visible in coordinator mode (visibility filtering — a smaller menu, not blocked attempts), 0 unclassified denials, and 5,230 bytes of steering it minted and injected. Steering is accounted as a measured cost — never “zero tokens.”

Provenance: SYNTH — deterministic outcome proof from run_summary.enforcement receipts (Amazon Bedrock, Claude Sonnet 4.5), not live capture.

Reproduce this scenario

These exact rendered fixtures are maintained as release evidence. The demo package verifies its checked media from a bounded review scope: source HTML, renderer, verifier, proof receipts, live-capture pixels, manifest, and rendered outputs. The public product docs expose the operating boundary they demonstrate, while the demo package owns the capture harness and reproduction contract.

To exercise the same approval behavior on your own code, follow the Quickstart and enable staged workflows as documented under Configuration.

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