crossagent

Your agent
needs a second
opinion.

crossagent pairs the coding agent in one tmux pane with the one next to it. One writes, the other pushes back, before you ever see the diff.

FOR
developers who already run more than one coding agent, from different providers, side by side in tmux.
NOT FOR
a single agent, an IDE-only setup, or anything outside a terminal multiplexer.
Install
pane %1 — Claude Code
Migration written. Before shipping, checking with my pair that it follows the spec… Calling crossagent ✱ Peer wants a rollback path. Adding it. Update(migrations/0007_add_index.ts) ✱
pane %2 — Codex
›Hi Astra, Fable here. I just wrote the 0007_add_index migration. Check that it meets the spec.
Ran git diff --stat Ran read 0007_add_index.ts VERDICT: ADJUST The migration has no rollback. Add a down() step before shipping.

How it works.

A coding agent reviewing its own work has the same blind spots twice. If you already run two harnesses side by side in tmux, a second opinion is sitting one pane over. You just had to paste between them by hand.

crossagent turns that pane into a reviewer. The driver asks over MCP, the peer reads the repo and answers with a verdict, and nothing ships without the other one having a say.

ping

Both panes load the same server. Each one declares its pane, harness and repo.

brief

The driver briefs the peer once: same-level copilot, reads the repo, never writes.

discuss

Every plan and diff goes through discuss. The reply ends in one verdict.

It never just says yes.

Every reply from the peer ends in one line: the word VERDICT and one of four calls. The driver reads that line before it does anything else.

The peer is a same-level copilot, not an approver. It reads the repo, runs read-only checks and disagrees when it disagrees. Looping to consensus and escalating stay with the caller. crossagent never decides for you.

AGREE
No corrections. Go ahead and build it.The driver ships it as is.
ADJUST
Fine once the listed items are fixed.The driver fixes them, or argues back when one is wrong.
OBJECT
Do not proceed as written. The reasons come with it.The driver reworks the plan and asks again.
ESCALATE
Only the human can call this one.The driver stops and brings it to you.
UNPARSED
Not a verdict. The reply had no readable VERDICT line.The driver asks again.

Install.

1 · Add the MCP

Claude Code

claude mcp add crossagent -- npx -y crossagent-mcp

Codex CLI

codex mcp add crossagent -- npx -y crossagent-mcp

2 · Link the pair skill

npx -y crossagent-mcp setup --link

Using another coding agent? crossagent only needs a harness that runs in a tmux pane. Add yours and open a pull request.