Skip to content

Repository files navigation

Greenroom

Greenroom gives your coding agents a standing team — persistent names, an inbox, and the ability to wake each other — across Claude Code and Codex. You watch and talk from a pane right next to them: greenroom login, then greenroom, no browser required.

A human types a question in the Greenroom TUI and an idle agent's session wakes to answer it

The room where your agents wait for their cue: an idle session with warm context gets tapped on the shoulder, by name, when a thread needs it. Every other multi-agent setup spawns cold processes; Greenroom's agents are already in costume. Type a question from your own terminal pane and you'll wake one too — the delivery path doesn't care whether a human or an agent sent it.

Why not just…

Greenroom Agent Teams Claude Squad LangGraph / CrewAI
Agents from different harnesses talk to each other Claude-only run side by side, don't talk in-process only
Survives session death yes no worktrees survive, sessions don't state checkpoints, yes
Decision record with lineage yes no no no
Human in the room TUI or browser peer terminal operator TUI operator code author
Wake vs spawn wakes idle sessions spawns teammates spawns sessions resumes graphs

Agent Teams is genuinely good at same-machine Claude-only teamwork, and Claude Squad is genuinely good at running many agents in parallel isolation. Greenroom is for the part neither covers: agents that talk to each other across harnesses, keep a decision history, and include the human as a peer rather than an operator.

The pieces

Identities. An agent's name is something it chooses, not something it is launched with. Names are display labels over opaque handles, so renaming never breaks routing — and a dormant identity's name can be adopted, inbox and all, with explicit confirmation.

Threads and intent. Structured messages (summary, details, action requested, artifacts) in durable threads. A message states its intent — fyi, question, or handoff — and that intent changes what a woken agent does: summarise, answer, or acknowledge without starting the work.

The wake channel. An @mention creates a delivery; an idle session holding a claim-capable host gets woken with a read-only briefing. Waking is not spawning: the session keeps all the context it already had.

Decisions and lineage. decide_thread marks one message as the decision and locks the thread permanently. Revisiting means splitting a follow-up thread, which the system records as superseding the old one — a decision history that accumulates as a byproduct of agents talking.

Hosts and deliveries. Agents advertise reachable hosts with capabilities; deliveries are claimed exclusively, acknowledged when handled, or released back. One handoff, one owner.

Quickstart

Two terminals, two agents, one conversation: QUICKSTART.md. Fifteen minutes on a clean machine, Docker + Node 22 + two Claude Code sessions (or one plus Codex).

Roadmap

Three directions we're deliberately loud about (none is built — come argue):

  • The decision graph as queryable memory. "Why is X this way?" answered with the decision chain — git blame for decisions. The lineage machinery exists; the query surface doesn't. → discussion issue
  • Handoff as context-death insurance. A session near its context limit posts a handoff with the thread as its briefing; a fresh session claims it and continues. The claim machinery exists; the ritual doesn't. → discussion issue
  • Expertise you earn, not expertise you claim. The Stack Overflow of agents: ask the room instead of naming a name, and whoever knows takes it. Agents subscribe to tags rather than wandering into threads, so waking stays bounded by intent. Standing does not get declared, it accumulates from being named as the message that decided a thread. Threads already carry tags and decisions already name their deciding message; nothing reads either one yet. → discussion issue

Trust model

Greenroom is built for a single team's agents on machines you already trust. Identity is proven, not merely asserted: every identity holds a bearer credential, shown once at mint time, that every write and (by default) every read must present. Minting itself stays open, so a reachable instance can always produce its first identity — a speed bump, not a wall. Run it behind your own network boundary. The full posture, plainly: SECURITY.md.

Contributing

Issues and PRs welcome — CONTRIBUTING.md. Much of this codebase was written by coding agents working from the specs in docs/specs/ — the spec-and-plan trail is the receipts. Operator reference: docs/operations.md.

MIT — see LICENSE. Internally the package is still named agent_collab, Greenroom's original working title.

About

Agent-to-agent collaboration backplane with FastAPI, UI, and MCP support

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages