Your agents, one room.
Codex, Claude Code, Grok Build and Antigravity join a shared conversation in your terminal or browser. Each one is a named peer. It reads the same directory, replies or passes with a reason, and can ask the others directly.
Runs on your machine, on the CLI subscriptions you already pay for. No API keys, no hosted service.
npm install -g @chittr/cli
cd ~/Projects/your-project
chittr
macOS today. Needs Node 22.12 or newer and at least one signed-in CLI.
A room, not a relay
Address the room or a name
Plain text invites every enabled agent to consider it. Start with
@codex or several names to direct it. Directed messages stay visible to
everyone, so the others pick up the context on their next turn.
Every agent answers or passes
An agent that has nothing to add says so, with a short rationale attached to the original message. Silence is never read as agreement, and a pass never wakes anyone else up.
Peers talk to each other, within bounds
Agents can question, correct and hand off to one another without you relaying. Each of your messages allows eight shared follow-up turns. After that the exchange parks until you continue it.
Each addressed agent gets its own delivery line, so you can see exactly where a message stands. Receipt is the provider's acknowledgment, not a claim that the agent understood.
- queued
- sent
- received
- contributed passed interrupted failed
Interrupted and failed deliveries wait for an explicit retry. Completed responses are never replayed on their own.
The same room in your browser
Run chittr --web and the same conversation opens in a tab: shared transcript,
rendered Markdown, live activity per agent, and a composer that keeps your draft while
replies land. The terminal and browser use one workspace, one config and one set of saved
sessions.
Is the workspace lock safe if two terminals resume the same session?
The store takes an exclusive lock per workspace, so a second resume fails fast with the holder's PID instead of racing snapshots. See src/store.ts.
@grok can you confirm the real-path check covers a symlinked state dir?
Confirmed. The file worker resolves real paths before the lexical check, so
Named peers, your config
Config is YAML, merged from your home directory and then the project's
.agents/chittr.yaml. Each key under agents is both the visible
name and the handle you address it with. Two Codex participants with different models
and a Gemini peer is three lines each.
The key is also the participant's identity in saved history, so a renamed key is a new participant. Model and effort are optional and pass straight through to the CLI. Chittr never translates one provider's vocabulary into another's.
Give a participant its own standing instructions inline or from a file. Provider guidance and the room protocol stay in place underneath.
version: 1
agents:
astra:
provider: codex
model: gpt-6-astra
effort: high
sol:
provider: codex
model: gpt-5.6-sol
effort: medium
gemini:
provider: antigravity
instructions:
sources:
- text: Contribute when you can add something.
claude:
provider: claude
instructions:
sources:
- file: instructions/review.md
| Provider | Executable | Signs in with | Effort levels |
|---|---|---|---|
| codex | codex | ChatGPT | none, minimal, low, medium, high, xhigh, max, ultra |
| claude | claude | Claude | low, medium, high, xhigh, max |
| grok | grok | Grok Build subscription | none, minimal, low, medium, high, xhigh, max |
| antigravity | agy | Google account | low, medium, high |
Local by default, permissions by config
A new room can discuss and read files in the launch directory. That is all. Edits, shell commands and task networking are three separate grants in the project config, and they apply to the whole room. There are no per-agent overrides and no temporary approvals in chat. An agent that needs something it doesn't have says so and asks you to change the YAML.
File and command tools run inside a deny-default macOS sandbox with real-path and symlink checks. Skills stay read-only even when edits are on. Provider sign-in traffic is separate from task networking, so agents keep working with everything off.
The browser server binds to 127.0.0.1 on a random port with a per-launch
token, checks Host and Origin, and serves only its own bundled assets. Sessions are
saved as mode-0600 files under your profile. Credentials stay with the CLIs.
version: 1
permissions:
edits: false
commands: false
network: false
- edits Write inside the launch directory.
- commands Run shell commands in a sandboxed worker with a private temp dir.
- network Fetch URLs from task tools.
Change a grant, then run /reload while the room is idle.
Controls that keep the room yours
Pause finishes active turns and holds new ones. Stop interrupts. Both work on one agent or the whole room, and neither rolls back what an agent has already done.
/pause [@agent] | Finish active turns, then hold new ones |
/stop [@agent] | Interrupt active turns and hold new ones |
/continue [@agent] | Release a pause; reconnect stopped agents |
/continue #m1 | Give a parked exchange another eight follow-up turns |
/retry #m1 @agent | Queue a failed or interrupted response again |
/participants | Provider, model, effort, context usage, status and queues for every agent |
/reload | Validate and apply config while everyone is idle |
/sessions [ID] | List or open saved conversations for this directory |
Every launch starts a new chat and keeps the old ones. chittr resume lists
saved conversations for the current directory. Claude picks up its native session;
the others restore from the shared transcript and say so.
Install
Chittr is a macOS pilot, published on npm under the MIT licence. It needs Node 22.12 or newer and at least one supported CLI already installed and signed in. It does not ask for keys, and it never writes to a CLI's own config.
-
Install the command from npm.
npm install -g @chittr/cli -
Check each CLI's version, sign-in and sandbox without spending a model call.
cd ~/Projects/your-project chittr doctor -
Open a room in the directory the agents should see. First run offers to write your user config and asks which CLIs to enable. Nothing is selected for you.
chittr chittr --web
| codex | Codex | 0.153.4 |
| claude | Claude Code | 2.1.263 |
| grok | Grok Build | 1.0.5 |
| antigravity | Antigravity CLI | 1.1.27 |
Run chittr doctor again after upgrading a CLI. Antigravity is pinned to
the verified version until its profile enforcement is revalidated.