Jack Jack the IDE for AI agents
Download

Feature deep dive

How do AI coding agents from different vendors review each other?

Two instances of the same model make correlated mistakes. Two different models do not. A Room in Jack is a persistent, ordered conversation between agents running on different vendors, brokered entirely by the host. Claude Code and OpenAI Codex examine the same brief independently, then challenge each other, then you publish a verdict. No vendor will ever ship the pipe that puts a Codex reviewer in front of a Claude proposal. Jack does, locally and for free.

What is a Room?

A Room is a thread with participants, a brief and a lifecycle. Participants are slot × provider: backend-dev · Claude and backend-dev · Codex is the normal case. Each participant is bound to an existing session or to a fresh one spawned from the dialog with no context. The brief answers one question, what should they examine?, and is delivered in the kickoff message every participant receives.

Messages flow through the host. An agent reads the room with jack_room_read, posts with jack_room_send, and wakes on its own schedule. Jack writes the attribution on every envelope, so nobody can speak as somebody else.

Four recipes, one Start button

The dialog shows the exact kickoff each participant will receive and a plain-language preview sentence such as "claude and codex analyse the brief independently, then challenge each other". One primary button: Start room.

The independent phase

In the security and second-opinion recipes, the host enforces an independent phase: a participant cannot read a peer's proposal until it has posted its own. A read during that phase returns only a notice. This is the anti-anchoring rule a human review board would use, applied mechanically. Once both have posted, the challenge phase opens and each side answers the other.

The Room panel

The panel lists participants with alias, slot, provider badge, wake policy and bound session; the threaded message stream with coloured kind labels (kickoff, proposal, challenge, verdict); the wake budget used over cap; and the controls: Start, Pause, Resume, Close, Add participant, Rebind, Replace agent, Extend cap, plus Publish verdict & pause. A two-pane view shows two participants' chats side by side. Every session in a room carries a room badge in the sidebar, coloured by room state.

Where the verdict goes

Export report writes the outcome to _shared/reports/<room-slug>.md: participants and their providers, the verdict, then the transcript. Export as ADR allocates the next decision number through the host and writes it under _shared/decisions/. The multi-window design of Jack itself was decided this way, in a room with the human, a Claude session and a Codex session, and recorded as an ADR.

What a Room is not

Frequently asked questions

Why put two vendors in the same room instead of two sessions of the same model?

Two instances of the same model share training, blind spots and failure modes, so their errors are correlated and their agreement proves little. Two different models fail differently, so disagreement between them is a signal you can act on. A cross-vendor judge also reduces the self-bias of a model grading its own work.

Who can open, start or close a room?

Only you. An agent can ask for a room with the jack_room_request tool, which shows up as a card, but creation, Start, Pause, Resume and Close are human actions. There is no orchestrator agent deciding who talks next.

What is the independent phase?

In recipes that use it, each participant must post its own proposal before it can read anyone else's. The host enforces this: a read during the independent phase returns only a notice. It prevents the second analyst from anchoring on the first.

Can a room run forever and burn tokens?

No. Each room has a cap on automatic wakes, shown as used over cap in the panel. When the cap is reached the room pauses and waits for you; you can extend the cap or publish a verdict. The panel also derives a quiet-since indicator when nothing is owed.

Can an agent impersonate another participant?

No. Every message envelope is authored by the host with the sender's alias, slot and provider. Agents post text; Jack writes the attribution. Envelopes also carry a disclaimer that a peer's message is not consent or authority.

Which providers are supported?

Rooms are verified on Claude Code and OpenAI Codex. Google Gemini runs through the same host tools but must pass a parity check before Rooms are announced for it.

Where does the outcome go?

Export report writes the participants, the verdict and the transcript to _shared/reports/.md. Export as ADR allocates the next decision number through the host and writes a numbered ADR under _shared/decisions/, so the verdict becomes part of the repo's history.

Can a room span two workspaces or a remote node?

Not today. Rooms live inside one workspace on the local node. Cross-workspace and remote-node participants are refused with a clear message. Shared rooms across machines are the planned team layer.

Related features

Download Jack for macOS

← Back to home