Skip to content

Coordinating a fleet

Once more than one agent is working in a workspace, they need ways to divide labor, share notes, avoid stepping on each other’s files, and ask each other (or you) questions. Loom exposes these as control-bus commands — all of them show up in the Fleet panel, and all have loom mcp equivalents for agents.

Everything here works from inside a pane (see Core concepts); the CLI & MCP reference lists every flag.

Tag a pane with a role so the fleet is legible and addressable by function:

Terminal window
loom role reviewer # tag my own pane as "reviewer"
loom role Faye builder # tag the Faye pane
loom role --clear # remove my role

Roles are persisted and become a routing target: loom send role:reviewer "…" reaches the pane(s) playing that role. The Fleet panel groups the roster by role, leading with the canonical builder, reviewer, scout, and coordinator.

A small, per-workspace key/value store agents use to leave each other durable notes:

Terminal window
loom note set api-base "https://staging.example.com"
loom note get api-base
loom note list
loom note del api-base

Notes are project-scoped (stored under .loom/), so they persist with the workspace and show up in the Fleet panel’s Blackboard section.

So two agents don’t edit the same file at once, a pane can claim a path (advisory — it’s a coordination signal, not an OS lock), or hold it as a hard gate:

Terminal window
loom claim src/auth.rs # advisory: "I'm working here"
loom claims # list current claims (path + holder)
loom release src/auth.rs # give it back
loom release src/auth.rs --force # break someone else's claim
loom hold src/secrets.rs # gate the path behind a human

Claims and held paths appear in the Fleet panel’s File claims section, where held paths get a ⛔ and a release button.

Input gates — hold a pane behind a human

Section titled “Input gates — hold a pane behind a human”

Gate a pane’s inbound bus input so nothing typed by the bus reaches it until a human releases it — useful for a pane doing something sensitive:

Terminal window
loom gate Faye --reason "prod deploy in progress"
loom gate --list
loom gate Faye --clear

Gated panes are listed in the Fleet panel’s Input gates section with their reason and a release button. (Whether Loom honors input holds is a Settings toggle, on by default.)

A blocking request/response RPC — one pane asks another (often an agent asking you) and waits for an answer:

Terminal window
# Cleo asks Faye a question and blocks until answered (default timeout 300s)
loom ask Faye "did the migration finish?"
# Faye (or a human at Faye) answers, using the id from the "[loom ask #N …]" prompt
loom reply 7 "yes — all 12 tables migrated"

ask prints the answer and exits non-zero on timeout. Open asks are visible in the Fleet panel’s Open asks section, where you can dismiss a stale one.

Every command here has an MCP tool: set_role, board_set / board_get / board_list / board_del, claim_file / release_file / hold_file / list_claims, gate_pane / list_gates, and ask_pane / reply_ask. They default to the caller’s own pane and workspace. See Agents, MCP & hooks.