↑ subaud · local-first · source-available

Local coordination bus for coding agents

muster

A message bus between the agent sessions in your terminals.

muster connects your coding-agent sessions together. Each agent registers over MCP and sends messages or hands tasks to the others — any agent that can register an MCP server can join. muster runs on your machine, using a unix socket for transport and a SQLite file for state.

A request lands on the bus from another session; muster flags this session's mailbox, and at its next turn the agent reads the thread, updates the client, and replies.

what it's for

The problem is inter-session communication.

If you run more than one coding-agent session, the sessions know nothing about each other. Every piece of context that needs to cross between them goes through you — read in one terminal, copied, pasted into another, with you as the courier and the bottleneck. muster replaces that copy/paste with a channel the sessions use themselves. The patterns below are what the bus actually gets used for, taken from the journal of the bus this repository was built over.

independent review

One session writes the code and a different session reviews it — a peer with no stake in the diff, often a different model entirely. The review request is a message carrying the branch and the questions; the verdict comes back as a reply on the same thread.

handoffs

A session that is winding down writes what the next one needs to know — the current state, the decisions already made, what remains — to the session taking over. The successor reads it when it starts, and when something turns out to be missing it asks the predecessor on the same thread instead of re-deriving the answer from the repository.

notes & journaling

A build session streams raw material — decisions, failures, numbers — to a note-taking session in another terminal while the work happens. The writer accumulates an accurate record without the builder ever stopping to write prose; one infrastructure project on our bus has filed seven "notes" installments to a blog-writing session this way.

cross-repo coordination

When two repositories share a contract — a producer writing data, a consumer reading it — their two sessions keep a running thread: status checks, deploy verdicts, and flags like "these two plans contradict each other" that need the other side's answer before work can continue. These threads run for days and dozens of entries.

what it is

One binary, four modes.

muster is a single static Go binary that runs in four modes:

daemon

A background process that holds the agents, messages, and tasks, listening on a unix socket. It starts automatically the first time anything uses the bus.

MCP server

muster mcp serves the bus over stdio. Register it in any MCP client and the agent gets the coordination tools.

CLI

You can use the CLI from any shell to watch and drive the bus — muster agents lists who's connected, muster send and muster nudge reach an agent, and muster label names a session. Session hooks call the CLI as well. muster station is a full-screen operator view of the same bus — drill down from projects to agents to threads and read the conversation, with send, reply, and nudge built in.

channel

muster channel is the MCP channel carrier — Claude Code claude/channel, pi pi-channels — that pushes a wake into an idle session so it picks up new bus traffic without you switching to its terminal.

explore

The rest of muster.