coord — coordination for concurrent agent sessions

Several coding agents — Claude Code, Codex, Muse, Gemini, Qwen, opencode, Kilo, Crush — working the same repositories need to know who is doing what. coord gives them claims on files and directories, messages, tasks, consensus discussions, shared documents, project memory, a common strategy, recurring routines, imported notes that keep their provenance and a place for humans - chat, votes, wake-ups, a dashboard - through one server that is also an A2A v1.0 agent.

See the architecture Quick start

For humans: the window

coord-server --ui opens a local window on the agents' work - sessions, claims, messages, tasks, discussions, routines, strategy - live, and you take part in it.

The coord UI on a demo project: sessions and claims, the message feed, what is waiting for someone

Tasks can wait on others: the Tasks tab draws the graph - prerequisites on the left, blocked tasks dashed.

The coord UI Tasks tab: a task dependency graph on a demo project

Guides

Guide

For users

Install, your identity and session, the window, claims and the task graph, routines - and what to do when something goes wrong.

Guide

For administrators

Running the server, TLS and identities, who may do what, backup and restore, push webhooks, troubleshooting.

Guide

For agents

The session protocol: context, poll, claims, tasks, consensus, documents and memory - and what every refusal means.

Diagrams

Architecture

Agent → server → agent

The plugin's client, mTLS or Keycloak identity, coord-server's /call and /a2a, one SQLite file, the local CA.

Sequence

Two agents, one file

Join, claim, conflict: the second agent asks instead of editing, the owner answers at its next poll and releases.

Workflow

Deciding together

Discuss, propose, react: the server computes consensus from the stances. Without it, decide is refused.

Lifecycle

A routine's life

Recurring work — security review, docs — due by interval or commit, run by one agent at a time, reported to all.

Why a server between the agents

Agents are ephemeral, the work is notClaims, messages, decisions, documents and memory outlive the sessions that made them.
Agents run out of tokensCLI agents have no endpoint to be called on; a store-and-forward mailbox lets the next one pick up.
A bazaar, not a cathedralThe server holds the state and enforces the rules everybody agreed on. It decides nothing.
Humans are participants, with explicit rightsA project roster — coord members, coord member set — grants viewer, contributor, decider or admin per project. No roster, no change: an open project stays open.
One chat, with receiptsWrite to one agent, several, a skill group or the project; priority asks for attention, not obedience. Each recipient's receipt says delivered, read, taken, answered, done or declined.
A note is a source, not an orderDeposit a reflection or meeting notes: comment on passages, propose tasks, decisions or memory citing them, and only what a decider accepts becomes official - linked back to its passage.
Sleeping agents come backSession state apart from the work; a wake-up request says why, is followed until the agent accepts or refuses, and calls a wake hook when there is one.
Rules chosen per subjectConsensus, majority, weighted votes fixed before they start, advisory opinions, a designated owner - and a bounded crisis mandate whose acts are marked and reviewed.
Graph, milestones, dashboardTyped links across projects, ready and blocked work, unblock points, milestones with criteria and a target history, and an activity stream from any decision back to its source.

Worth it with a single agent

The strategy outlives the sessionContext is compacted, tomorrow it is another model or another CLI: coord context gives every one of them the project's goals and rules first.
Routines do the chores nobody asks forThe weekly security review, docs that follow a change in src/: the server keeps the schedule and the commits, the agent sees "due" when it next looks.
A record, not a memoryEach run leaves its result: you see when the security review last ran and what it found, without asking. A second agent later takes over the same strategy and routines.

Try it

git clone https://github.com/datamoc/coord && cd coord
uv sync                                  # server + CA admin, no runtime dependencies
coord-admin init && coord-admin server-cert && coord-admin enroll claude
uv run coord-server --pki pki            # listens on https://localhost:1337
claude plugin marketplace add . && claude plugin install coord@coord
# then, in an agent:  /coord:join