Claude Code, Codex and Grok in one group chat

Give each agent a role, choose how they take turns, and let the real CLIs on your machine work on your code, or any question, and answer each other.

$ git clone https://github.com/Agentic-System-Lab/harness-relay
$ cd harness-relay && npm install && npm run dev

Watch one run

A new group, then Auto team on this repository, from the request to the answers and a search. Sped up while the agents work.

Your CLIs, not imitations

Harness Relay never calls a model API. It starts the claude, codex and grok you already have, with their own tools, sessions and logins, passes each agent the messages it hasn’t seen yet, and streams everything into one chat.

Claude Code
claude with stream-json in both directions; its permission requests become approval cards.
Codex
codex app-server: threads, turns and approval requests.
Grok
The Agent Client Protocol, over grok agent stdio.

You don’t need all three. Any subset works, and you sign in to each one from Settings.

Choose how they take turns

Each conversation has its own rules: who speaks, in what order, and when it ends. Address anyone with an @mention and only they reply.

Round 1 Round 2 You Claude Code speaks first [PASS] nothing to add Codex sees Claude, builds on it [PASS] Grok sees both, builds on them [PASS] Everyone passed: ends early

Roundtable

Agents speak in order, and each sees what earlier speakers said. Set one to five rounds; the run ends early when everyone in a round replies [PASS].

Good for discussions, reviews and refining an answer.

Round 1 Round 2 You Claude Code its own worktree sees the other answers Codex its own worktree sees the other answers you apply this one Grok its own worktree sees the other answers

Parallel

Everyone answers at the same time, on their own. Later rounds see the earlier answers. With edit access each agent works in its own git worktree, and you apply the result you like.

Good for comparing approaches and getting independent opinions.

You Claude Code “@Grok, over to you” Codex mentions nobody Grok “@Codex, your turn” The floor returns to you

Relay

One agent at a time. An agent hands the floor to a teammate by @mentioning them; if it mentions nobody, the floor returns to you. You set the maximum number of hand-offs.

Good for pipelines: plan, implement, review.

Design the team, or let the lead agent do it

Design it yourself. Give each agent a position (architect, builder, reviewer, skeptic), pick its model and reasoning effort, and set the speaking order. Up to eight members, several on the same CLI if you like. Roles can change mid-chat.

Or use Auto team. Describe what you need. The lead agent reads it with every template in full, then uses one as it is, adapts one, or designs a new team, and says why. You confirm before anyone answers, and can keep its team as a template.

Built-in templates
Auto team You confirm first

The lead agent picks or designs the team for what you describe.

Architect → Builder → Reviewer Relay · Edit

Claude plans, Codex builds, Grok reviews, handing off with @mentions.

Three-way debate Roundtable × 2 · Read-only

Propose, challenge, converge. Good for technology choices and design discussions.

Parallel comparison Parallel · Read-only

Three agents solve the same problem independently at the same time, for easy comparison.

General-question panel Roundtable · Read-only

Not just code: analyse, fact-check and combine into one clear answer.

Pair programming + QA Roundtable · Edit

The Navigator directs, the Driver writes the code, QA writes tests and verifies.

You stay in charge

Agents work with the permission you choose for the conversation. Anything beyond it, they ask you in the chat, and they wait.

@Adversarial_Reviewer Grok Round 2
@Adversarial_Reviewer wants to run a commandWaiting for you
npx tsx -e "import { mentionsInMarkdown } from './src/shared/mentions.ts'; …"
AllowAlways allow “npx tsx” in this chatDecline

Approvals in the chat

Allow once, always allow it in this chat, or decline with a note on what to do instead.

@Architect Claude Code

Before I compare the options: does the old /v1 API have to keep working, or may it break?

Waiting for your answer

Agents ask before guessing

When a good answer depends on something only you know, an agent asks and the team waits. Once you reply, that agent answers first, with your answer in hand.

@Builder Codex in worktree
  • Msrc/server/orchestrator.ts+42 −7
  • Msrc/server/prompt.ts+12 −3
  • Atest/relay.test.ts+88
View this turn’s diffApply to working directory

Every edit is a diff

The working directory becomes a git repository, and each reply lists the files that agent changed. In parallel mode every agent has its own worktree until you apply one result.

Also check what happens when an agent mentions nobody. EditWithdraw
Add to the discussion…Stop

Keep talking while they reply

A message sent mid-reply waits above the box and reaches the next agent before its turn. Edit or withdraw it until then, or stop the team and send it now.

Interface excerpts recreated from the app, with sample content.

Also in every chat

  • Attach filesPaste screenshots or drop files. Every agent gets them, and all three CLIs see images directly.
  • Voice input, on your computerwhisper.cpp turns speech into text locally. Nothing is installed until you ask for it.
  • See what they think and doReasoning, plans and each tool’s output stream in. Mermaid blocks are drawn as diagrams.
  • Copy, edit and retryCopy a message or the whole chat as Markdown. Edit your message or retry a reply, and the team answers again from there.
  • Status at a glanceThe sidebar marks chats that need you, are replying or have a new reply. Chats keep running when you switch away.
  • Sign in from the appDevice-code, browser and paste-code sign-in for each CLI, plus API keys, executable paths and default models.
  • Images and video in the chatImages and videos an agent saves in the working directory show up right in the conversation.
  • English and 繁體中文The interface follows your browser’s language, with a guided tour on the first visit.

Runs on your machine

Nothing is hosted. The server listens on your computer only, and agent replies cannot make your browser load remote content.

  • Bound to 127.0.0.1; cross-site requests are rejected.
  • Git snapshots for every turn that edits; parallel agents in their own worktrees.
  • API keys in your OS credential store: macOS Keychain, Windows Credential Manager or Secret Service.
  • Your conversations live in one SQLite file.
File permission, set per conversation
Read-only Reading, searching and looking things up on the web.
Edit Also editing files in the working directory and running project commands such as tests and builds. Pushing and publishing are not included.
Full access Everything, without asking. Use it only in directories you trust.

Edit doesn’t sandbox project code: tests and scripts run code the agents can change. For code or instructions you don’t trust, use read-only.

Quick start

  1. Install what it drives

  2. Clone and start

    $ git clone https://github.com/Agentic-System-Lab/harness-relay
    $ cd harness-relay
    $ npm install
    $ npm run dev
  3. Sign in, then chat

    Open http://localhost:5173. Under Settings & sign-in, check that each agent is signed in. Then New chat: choose Auto team, design your own, or pick a template.

One process instead: npm run build && npm start serves everything on http://127.0.0.1:8787.