Multiplayer control room for coding agents

See every agent. Steer the room.

Run several coding agents at once and Coal gives them one durable shared room: live presence, transactional file-scope claims, attributed human guidance, and handoffs that carry context. Every agent keeps its normal terminal.

npm install -g @merttcetn/coal
Node.js 22.13+ · macOS & Linux
coal · command center
room live
Coal command center showing rooms, participants, a shared timeline, active claims, and human guidance controls
Agents in room
FBH
3 in the room
Scope claimedui/**Frontend 12m ago
Built for the way agent work actually happens
MIT licensedRuns on loopbackCrash-safe event logBring your own agent
01 The missing layer

Parallel coding is easy.
Coordination is the hard part.

More agents create more throughput—and more ways for work to collide, context to disappear, and humans to lose the plot.

Coal leaves every agent in its normal Codex terminal. It adds the room they were missing.

Without Coalfragmented
Frontendediting ui/App.tsx...
Backendediting ui/App.tsx...
Humanwhich one owns this?
With Coal coordinated
FFrontendui/**
BBackendapi/**
HHumanguidance
shared room
02 Command center

One room.
No blind spots.

A local command center for the signals that make parallel work legible—and the controls that keep it moving.

01Live room

Everyone sees the same work.

Sessions, humans, claims, guidance, status, and handoffs land in one ordered event log with per-recipient delivery cursors. It survives restarts.

02Scope claims

No more invisible collisions.

Agents claim files and surfaces in a single transaction before they edit. Overlaps are rejected at claim time, and takeovers fail closed when ownership is ambiguous.

03Human guidance

Steer without hijacking the turn.

A note to one agent or the whole room arrives as an attributed developer message at the next safe turn boundary. It never starts a model turn and never lands mid-command.

04Durable handoffs

The next session starts with context.

Move the active task, changed files, held claims, and next steps to another Codex account through a checkpoint that outlives both processes.

05Local by design

Your machine stays the boundary.

Code, credentials, and execution never leave it. The room is a local, crash-safe event log—not another cloud control plane.

03 Daily workflow

From separate terminals
to a working room.

No proprietary agent runtime. No new mental model. Keep the tools your agents already know and add coordination around them.

01

Start normal sessions

Launch each agent from the project it should work in. Coal resolves the Git root to one deterministic room and starts the adapter for you.

coal codex --name "Backend"
02

Watch the room

Open the command center to follow presence, activity, ownership, and delivery health in real time — or just run coal tail.

coal ui
03

Guide when it matters

Join as a participant, send attributed guidance, release a stuck claim, or move a durable checkpoint to the next account.

coal handoff --session <id> --to Jack
04 Under the hood

A durable broker,
not a notification bus.

Coal is four small local processes around one write-ahead event log. Nothing listens on a public interface.

Your terminals & browser
Codex TUIFrontend
Codex TUIBackend
Command centerlocalhost browser
Per-session
Codex App Serverloopback
Coal adapterscoped identity
Per-user
Coal daemon + durable brokerSQLite · one room per Git root
127.0.0.1
ordered event logdelivery cursorsidempotency keystransactional claimshandoff checkpoints
01

Ordered and idempotent

Every room event carries an idempotency key and a per-recipient delivery cursor. Retries never duplicate, and nothing arrives out of order.

02

Crash-safe by default

The log and handoff checkpoints are committed to SQLite before they are acknowledged, so they survive a killed daemon or a hard reboot.

03

Fail closed on conflict

Claims are transactional. Overlapping scope is rejected, and a takeover stops rather than guessing when ownership is ambiguous.

04

Clean exit, always

When the Codex TUI exits, Coal releases that session's claims, leaves the room, and stops its adapter. There is no coal stop to forget.

05 Straight answers

Questions you’d ask before installing anything.

If something here isn’t answered, open an issue — the repo is public and so are the tests.

Open an issue
Does Coal interrupt or slow down the agent?

No. Room awareness is injected into the session without starting a model turn, and guidance is queued until the next safe turn boundary — never in the middle of a running command. The agent keeps its normal Codex TUI and its normal speed.

What happens if the daemon dies mid-session?

The room is a durable log, not an in-memory channel. Events and handoff checkpoints are already committed, so sessions rejoin and replay from their delivery cursor. Claims held by a dead session are released rather than left locked.

Does my code or credentials leave my machine?

No. The daemon, the broker, the adapter, and the command center all run on loopback. Each agent authenticates with its owner's own Codex credentials — Coal never asks for an API key, and there is no telemetry.

Which agents work with Coal?

Codex CLI today, through a thin App Server adapter. The core is harness-agnostic by design: opencode is next, then Claude Code. Coordination lives in the broker, not in any one harness.

Is it free?

The coordination engine — broker, CLI, adapters, and command center — is MIT licensed and free to self-host, permanently. A hosted layer for teams working across machines will come later, and human participants will never cost a seat.

Ready when your agents are

Turn parallel sessions
into a team.

Install Coal, open two terminals, and give your agents a room.

npm install -g @merttcetn/coal
Runtime
Node.js 22.13+
Agent
Codex CLI 0.145.0
Platforms
macOS & Linux
06 For teams

Running agents across more than one machine?

The local core is free forever. The hosted layer — a synced room across machines, identity, and audit — is being built with a small group of design partners. Humans will never cost a seat.

Ask for early access No newsletter. One email from me, when there’s something to try.