Open-source CLI · Multi-agent sessions · Scriptable
coderoom
Script your agents like you script your shell.
Between chatting with your agents and programming them.
One agent writes. Another reviews from a different angle. The engineer stays in control.
Between chat and code
A shell sits between typing commands one by one and writing a program: you work live and script what repeats. coderoom does the same for coding agents.
| Chat | coderoom | Python | |
|---|---|---|---|
| Getting started | Type and go | Type and go | Write code before the first result |
| Repetitive work | Retype it every session | Script it from the chat, as patterns emerge | Script it up front, before you know the patterns |
| Several agents | Copy text between them | Hand work between them in one shared room | Wire them together in code |
| Your role | You do all the coordinating | You steer, and see every step | You design it, then watch it run |
Monday by hand, Wednesday as a script
On Monday you ask Ada to fix a failing test, run the suite, tell her what still fails, ask Turing to review, and ask again. By Wednesday you write the repeating part down. Your tests decide when Ada is done: three tries at most, every step visible in the room.
# Monday, by hand
> @ada fix the failing test in the parser
> /shell go test ./...
> @ada two tests still fail, have another look
> @turing review ada's change
# Wednesday, as a script
> /def tests /shell go test ./...
> /loop @ada make the tests pass without weakening them /until /tests /max 3
Boundaries built in
Your checks decide when it is done
A loop ends when an external check passes, like your test suite or static and dynamic analysis, not when the agent says it is done. A hard/maxstops a stuck agent before it burns tokens and time.Agent output never runs as a command
Only what you type, or a definition you wrote, executes in the room. A simple boundary against prompt injection, and the reason loops are safe to hand to agents.You write every script
Every script has limits, and every step is visible in the room. The room grows more capable while you stay in charge.
Under the hood
Go for the shell and the interpreter, Bubble Tea for the terminal UI, git as the shared workspace. Two techniques you can reuse in your own agent tooling.
codex app-server over JSON-RPC
Backend
Build on the agent CLI, not around it
Each agent runs as a
codex app-server process over JSON-RPC: one long-lived process per agent, with context kept across turns. coderoom gets everything the Codex CLI already does, and every new capability as soon as OpenAI ships it. It never falls behind what the CLI maker designs, and adds what the CLI doesn’t do: several agents in one room, and scripts.Record real sessions, replay them in CI
Testing
Record and replay
Agents answer differently on every run, but tests must run deterministically.
codex-record captures real sessions as fixtures, and codex-replay plays them back as a fake JSON-RPC peer. CI makes no model calls and costs nothing, a failing test is my bug and not a new Codex version, and comparing recordings across versions shows what changed upstream.Get started
Download the latest release or build coderoom from source. You need Node.js with npx and a working Codex CLI setup. Support for other agent CLIs is planned.
Download the latest release
Choose the archive that matches your platform, extract it, and run ./coderoom.
Currently available for Linux and macOS.
Build from source
You will also need Go. Then build, start a room, and script your first check.
$ make build
$ ./bin/coderoom
> /invite ada
> @ada implement a small change: ...
> /def tests /shell go test ./...
> /loop @ada make the tests pass /until /tests /max 3
Talks and writing
On the engineering ideas that shape coderoom.