Loom keeps your agents on track.

Tutorial 10: Coordinate multiple agents

This tutorial follows one real run: a coordinator hands work to two independent coding-harness sessions on different machines. They honor a cooperative start window, work in parallel, and verify every result against the data before accepting it. The tasks, counts, checkpoints, reviews, and separately captured demo transcripts below are real.

Continue from Tutorial 09, and make sure [kanban] is available as described in Tutorial 02. Multi-agent coordination uses a shared [kanban] store and the loom-kanban skill.

Start here: make loom_demo the session default

YouLoad the configured store named loom_demo and make it the default for this session only. Confirm the effective session default, and do not edit ~/.loom/stores.toml.
AgentThe agent connects to the existing loom_demo store and changes only this session's default routing. Kanban work remains explicitly directed to the separate kanban store.
Resultloom_demo is now the default for this session. Persistent configuration was not changed, and the Kanban board remains available by its explicit store name.

1. Give the coordinator one complete prompt

We have three coding-harness sessions on our shared [kanban] board — a Claude Code
session on Linux and two Codex sessions, one on Windows and one on macOS. Coordinate them
to count the palmerpenguins dataset by island, in parallel:

  1. One count task per island (Biscoe, Dream, Torgersen), handed to the board.
  2. A cooperative start window — publish the tasks ahead of time with a
     claim-not-before capability that every worker must check before claiming.
  3. A grand-total task that depends on all three island counts and can't start
     until they're done and accepted.
  4. Every worker attests the dataset once; every worker verifies its own count
     before submitting; as coordinator, review each result against the data and
     ask for a revision if anything is unclear before you accept.

Run all of it through the board — atomic claims, a cooperative start window, dependencies,
and review — with no messages relayed through me.

That is the whole instruction. Everything below—the tasks, the cooperative window, the claims, the review-and-revise, the dependency gate — is what the coordinator did on its own through Kanban.

2. Understand the Kanban primitives

Loom Kanban coordinates durable work between independent agent conversations. Each conversation is one agent, identified by its native session id (<harness>@<session-id>) — not a process id or host name, so identity survives a skill reload and a new conversation is genuinely a new agent. The coordination primitives are small, and each one shows up in the timeline below:

Every mutation is an append-only event stamped by one server clock, so the full history — who claimed what, each step, who reviewed it, what was revised — is queryable forever. That history is exactly what the timeline below is rendered from.

3. Follow the run in real time

Three islands (Biscoe, Dream, Torgersen) fanned out across two workers, with a grand total gated behind them. The coordinator (leftmost lane) published the tasks with a cooperative start-window self-check, then reviewed and verified every count against the dataset before accepting. Click any claim, submit, revise, or accept cell to unfold the separately captured demo transcript, including the turns where each worker reads and honors the advisory window.

Open the full interactive transcript in a new tab →

4. Read the results

Palmerpenguins is a toy dataset, chosen because the counts are trivial to verify. The coordination pattern is not a toy: we run fleets shaped exactly like this one — several agents, different machines, different harnesses — throughout our own day-to-day development of Loom Cloud, on real work with real stakes. A handful of agents pick up a shared backlog, honor the same advisory window, work in parallel, gate dependent work, and review each other's output with no human relaying messages between them.

Run the same pattern on your own board: publish a task per unit of work with a claim_not_before capability self-check, add a dependency where one step needs another to finish first, let each agent claim what it can verifiably do, and review submissions against something you can check. Kanban enforces atomic claims, dependencies, leases, and ownership; workers cooperatively enforce the time self-check.

5. Try the protocol with two sessions

You don't need a fleet to run this protocol. A fresh account's [kanban] board has exactly one agent — you — and the full owner/worker loop works with n=1: publish, capability self-check, atomic claim, submit, review, accept.

YouPublish a small task on [kanban]: count the Adelie rows in the palmerpenguins dataset and report the number. For the required capability, just describe my own harness — something any session like this one can confirm.
AgentThe agent registers this conversation on the board (if it hasn't already), then publishes the task with a self-contained brief and one plain-language capability its own kind of session satisfies.
ResultPublished, one run available. This conversation is the task owner; any registered agent that confirms the capability can claim it.

Now open a second session of the same harness in the same repository — a second terminal is enough. On the board that is a genuinely different agent: identity is per conversation, not per machine.

YouScan the kanban board, claim anything you can verifiably do, and complete it.
AgentThe second session registers itself, scans, reads the brief, confirms the capability against its own environment, claims the run atomically, counts the rows, and submits the result.
ResultClaimed and completed: Adelie = 152. Submitted for owner review.

Back in the first session:

YouRe-scan the board and review the submission.
AgentThe owner session finds the submitted run, verifies 152 against the dataset, and accepts.
ResultThe count checks out against the data — accepted. The publish, claim, submission, review, and acceptance are all durable board events.

If you prefer one terminal, the publishing session can rescan and claim its own task. The two-session version makes the boundary clearer: ownership and claims belong to conversation identities, and everything the two agents share travels through the board.

6. Takeaways