Agents, ACP, and MCP

bro command reference for agents, acp, and mcp.

11 min readEdit this page

See Init and config for shared conventions and environment variables.

agents inspects ACP adapters, acp serve exposes one adapter over protocol-pure stdio, and mcp check verifies the upstream MCP servers declared in bitrouter.yaml. These are distinct directions: ACP connects a client to an agent; MCP connects BitRouter to upstream tools.

bro agents

Inspect ACP agent adapters, advertised capabilities, and configuration stubs

Usage: bro agents <COMMAND>

bro agents list

Show the bundled catalog of well-known agents and which of them are present under agents: in the loaded config. With --remote, also fetch and list the official ACP agent registry

Usage: bro agents list [OPTIONS]

FlagDescription
--remoteAlso fetch the ACP agent registry (cdn.agentclientprotocol.com) and list its agents
-c, --config <CONFIG>Path to bitrouter.yaml. When omitted, the binary resolves in this order: ./bitrouter.yaml → $BITROUTER_HOME/bitrouter.yaml → ~/.bitrouter/bitrouter.yaml → zero-config in-memory defaults (bro init is the explicit way to scaffold a file)
--socket <SOCKET>Explicit local control socket for the daemon's accepted catalog

bro agents inspect

Inspect commands advertised by a fresh ACP session

Usage: bro agents inspect [OPTIONS] <AGENT>

ArgumentDescription
<AGENT>ACP agent id or friendly alias
FlagDescription
--directDo NOT route this session's LLM traffic through the daemon — let the harness use its own provider auth. Routing is attempted by default when the harness supports headless redirection
--base-url <BASE_URL>Override the gateway base URL (else derived from server.listen)
--model <MODEL>Pin the harness's model (via its model env var / -c model=)
--no-startNever auto-start a local daemon when none is running — fail fast
--wait-ms <MS>How long to wait for the advertised command list [default: 2000]
--source <SOURCE>Show only commands answered by one source Possible values:
- bitrouter: BitRouter's own commands
- config:Prompt-expansion commands from the config
- agent:Commands the agent advertises
-c, --config <CONFIG>Path to bitrouter.yaml

bro agents check

Spawn one agent, or every configured agent, and verify initialization

Usage: bro agents check [OPTIONS] [AGENT]

ArgumentDescription
[AGENT]ACP agent id or friendly alias; omit to check configured agents
FlagDescription
--directDo NOT route this session's LLM traffic through the daemon — let the harness use its own provider auth. Routing is attempted by default when the harness supports headless redirection
--base-url <BASE_URL>Override the gateway base URL (else derived from server.listen)
--model <MODEL>Pin the harness's model (via its model env var / -c model=)
--no-startNever auto-start a local daemon when none is running — fail fast
-c, --config <CONFIG>Path to bitrouter.yaml. When omitted, the binary resolves in this order: ./bitrouter.yaml → $BITROUTER_HOME/bitrouter.yaml → ~/.bitrouter/bitrouter.yaml → zero-config in-memory defaults (bro init is the explicit way to scaffold a file)
bro agents check codex-acp

Spawns the adapter, performs ACP initialization, and reports whether the configured route is usable.

bro agents conformance

Run the ACP-compatibility suite against a catalog agent and print the conformance: block to record in its runtime entry. Needs no provider credentials: the agent is launched with its own routing pointed at an ephemeral loopback gateway that records what reached it. It does spawn the agent, so its package or binary must be installed.

Usage: bro agents conformance <ID>

ArgumentDescription
<ID>Agent id, either <runtime>/<harness> or a bare harness id (local/ is the default runtime and may be elided)

bro agents scaffold

Print a YAML stub for an agent (paste under agents: in bitrouter.yaml). Resolves from the bundled catalog first, then the ACP registry (npx/uvx distributions only)

Usage: bro agents scaffold <ID>

ArgumentDescription
<ID>Agent id (see bro agents list / list --remote)

bro mcp

Check configured upstream MCP servers

Usage: bro mcp <COMMAND>

bro mcp check

Connect, negotiate MCP capabilities, and list advertised tools

Usage: bro mcp check [OPTIONS] [SERVER]

ArgumentDescription
[SERVER]Check only this configured server; omit to check all of them
FlagDescription
-c, --config <CONFIG>Path to bitrouter.yaml
bro mcp check
bro mcp check docs

Connects to one or every configured upstream, negotiates MCP capabilities, and lists the tools each server advertises.

bro acp

ACP client integration over stdio, plus compatibility commands. serve exposes an ACP-compatible adapter process over protocol-pure stdio.

Usage: bro acp <COMMAND>

bro acp evolution

Control checkpoint feedback and policy-block evolution on the local daemon

Usage: bro acp evolution [OPTIONS] <COMMAND>

FlagDescription
-c, --config <CONFIG>

bro acp evolution status

Inspect modes, blocks, scheduled checkpoints and judge task status

Usage: bro acp evolution status

bro acp evolution mode

Select feedback mode; automatic requires a configured judge model

Usage: bro acp evolution mode [OPTIONS] <MODE>

ArgumentDescription
<MODE>[possible values: off, manual, automatic]
FlagDescription
--judge-model <JUDGE_MODEL>

bro acp evolution register

Register a complete policy-block experiment from a JSON definition

Usage: bro acp evolution register <FILE>

ArgumentDescription
<FILE>

bro acp evolution revise

Start the next experiment for the same block; retain the previous evidence

Usage: bro acp evolution revise --expected-experiment <EXPECTED_EXPERIMENT> <FILE>

ArgumentDescription
<FILE>
FlagDescription
--expected-experiment <EXPECTED_EXPERIMENT>

bro acp evolution restore

Withdraw the current candidate and return to its supported baseline

Usage: bro acp evolution restore --expected-experiment <EXPECTED_EXPERIMENT> --expected-revision <EXPECTED_REVISION> --reason <REASON> <BLOCK>

ArgumentDescription
<BLOCK>
FlagDescription
--expected-experiment <EXPECTED_EXPERIMENT>
--expected-revision <EXPECTED_REVISION>
--reason <REASON>

bro acp evolution learning

Inspect the current evidence and proposed allocation without publishing

Usage: bro acp evolution learning [OPTIONS] <BLOCK>

ArgumentDescription
<BLOCK>
FlagDescription
--experiment <EXPERIMENT>

bro acp evolution improve

Reconcile current evidence against live routes and publish an eligible change

Usage: bro acp evolution improve [OPTIONS] <BLOCK>

ArgumentDescription
<BLOCK>
FlagDescription
--experiment <EXPERIMENT>

bro acp checkpoints

Freeze and evaluate already recorded native-session prefixes locally

Usage: bro acp checkpoints [OPTIONS] --agent <AGENT> <SESSION> <COMMAND>

ArgumentDescription
<SESSION>
FlagDescription
--agent <AGENT>
-c, --config <CONFIG>

bro acp checkpoints judge

Judge an existing checkpoint with an explicitly selected configured model

Usage: bro acp checkpoints --agent <AGENT> <SESSION> judge --model <MODEL> <CHECKPOINT>

ArgumentDescription
<CHECKPOINT>
FlagDescription
--model <MODEL>

bro acp checkpoints judge-job

Inspect a durable judge job, or resume it with its recorded input and model

Usage: bro acp checkpoints --agent <AGENT> <SESSION> judge-job [OPTIONS] <JOB_ID>

ArgumentDescription
<JOB_ID>
FlagDescription
--resume

bro acp checkpoints rubric

Prepare or submit evidence-grounded rubric scores from recorded content

Usage: bro acp checkpoints --agent <AGENT> <SESSION> rubric <COMMAND>

bro acp checkpoints rubric prepare

Export the fixed rubric library and cited evidence for a frozen checkpoint

Usage: bro acp checkpoints rubric prepare <CHECKPOINT>

ArgumentDescription
<CHECKPOINT>
bro acp checkpoints rubric submit

Validate and store a structured rubric revision without invoking a model

Usage: bro acp checkpoints rubric submit <FILE>

ArgumentDescription
<FILE>

bro acp checkpoints create

Freeze exactly the currently observed prefix; rejects a stale watermark

Usage: bro acp checkpoints --agent <AGENT> <SESSION> create --watermark <WATERMARK>

FlagDescription
--watermark <WATERMARK>

bro acp checkpoints list

List immutable prefixes for this native session

Usage: bro acp checkpoints --agent <AGENT> <SESSION> list

bro acp checkpoints show

Read the original content versions referenced by a checkpoint

Usage: bro acp checkpoints --agent <AGENT> <SESSION> show <CHECKPOINT>

ArgumentDescription
<CHECKPOINT>

bro acp checkpoints resources

Inspect resource snapshots, or refresh them from existing local records

Usage: bro acp checkpoints --agent <AGENT> <SESSION> resources [OPTIONS] <CHECKPOINT>

ArgumentDescription
<CHECKPOINT>
FlagDescription
--refresh

bro acp checkpoints submit

Import an idempotent assessment revision or explicit retraction from JSON

Usage: bro acp checkpoints --agent <AGENT> <SESSION> submit <FILE>

ArgumentDescription
<FILE>

bro acp checkpoints history

Read immutable assessment revisions and their selection decisions

Usage: bro acp checkpoints --agent <AGENT> <SESSION> history

bro acp checkpoints effective

Inspect the selected assessment, including unassessed appends

Usage: bro acp checkpoints --agent <AGENT> <SESSION> effective

bro acp checkpoints family

Inspect related native forks with a union of observed request costs

Usage: bro acp checkpoints --agent <AGENT> <SESSION> family

bro acp recordings

Inspect or delete locally recorded ACP conversation content

Usage: bro acp recordings [OPTIONS] <COMMAND>

FlagDescription
-c, --config <CONFIG>Config selecting the local content database

bro acp recordings list

List recorded native sessions under a configured agent source

Usage: bro acp recordings list --agent <AGENT>

FlagDescription
--agent <AGENT>

bro acp recordings show

Export canonical events, replay audit, gaps, and observed request links

Usage: bro acp recordings show --agent <AGENT> <SESSION>

ArgumentDescription
<SESSION>
FlagDescription
--agent <AGENT>

bro acp recordings delete

Delete this session's locally captured content

Usage: bro acp recordings delete --agent <AGENT> <SESSION>

ArgumentDescription
<SESSION>
FlagDescription
--agent <AGENT>

bro acp serve

Expose an ACP-compatible agent adapter over stdio for an ACP client

Usage: bro acp serve <AGENT> [OPTIONS]

ArgumentDescription
[AGENT]Agent id — a bundled-catalog id (claude-acp, codex-acp, gemini-cli, opencode, pi-acp, hermes-acp, openclaw) or an entry under agents: in the config. A catalog id needs no config entry; bro agents check <agent> previews whether it will route or run direct
FlagDescription
--turn-timeout <SECS>Per-turn deadline in seconds. On elapse the agent is asked to cancel cooperatively; a turn that still doesn't finish errors
--directDo NOT route this session's LLM traffic through the daemon — let the harness use its own provider auth. Routing is attempted by default when the harness supports headless redirection
--base-url <BASE_URL>Override the gateway base URL (else derived from server.listen)
--model <MODEL>Pin the harness's model (via its model env var / -c model=)
--no-startNever auto-start a local daemon when none is running — fail fast
-c, --config <CONFIG>Path to bitrouter.yaml. Resolves via the standard chain when omitted: ./bitrouter.yaml → $BITROUTER_HOME → ~/.bitrouter/bitrouter.yaml → zero-config defaults
bro acp serve codex-acp

Exposes the selected adapter over stdio for an ACP client. It preserves the selected harness's session semantics; it does not create a durable BitRouter workflow.

How is this guide?

On this page