Running Claude Code and Codex side by side

A workspace layout for a builder and a reviewer agent, with a shell and a server in the panes beside them.

AIAgent Interface team 3 min read guideclaude codecodex

One agent writes the change. Another reads it with fresh eyes. You keep a shell for git and tests, and the dev server stays in view. Four panes, one tab, and you can see all of it at once.

This guide builds that workspace step by step, using Claude Code as the builder and Codex as the reviewer. Swap the roles or the tools as you like: any CLI agent runs in a pane.

The layout

$ claude
Builder
writes the change
$ codex
Reviewer
reads the diff
$ git status
Shell
git, tests, quick checks
$ npm run dev
Server
running beside the work
Builder and reviewer on top, your own tools below.

Build it in a minute

New tabs start in the directory the app was launched from, and every split inherits the directory of the shell it came from. If your first pane opens somewhere else, cd into the project before you split.

macOS keys (Linux in brackets)steps
⌘⇧N   new workspace, name it after the project  (Ctrl+Alt+Shift+N)
⌘T    new tab, choose Open terminal             (Ctrl+Shift+T)
⌘D    split right, choose Open terminal         (Ctrl+Shift+D)
⌘⇧D   split each top pane below                 (Ctrl+Shift+E)
⌘R    rename the tab, for example "build"       (Ctrl+Shift+R)

Each new pane asks what it should run: Open terminal or Attach a session. Choose Open terminal for all four. Drag the dividers to give the agents more room; the ratios are saved with the tab.

Start the agents

Type claude in the top left pane and codex in the top right. Use the bottom left for git and tests, and start your dev server in the bottom right. Each agent signs in through its own CLI, exactly as it would in any terminal.

Give the builder the task. When it has a change ready, ask the reviewer to read the uncommitted diff and point out problems before you commit.

Working across panes

Command-[ and Command-] move between panes. When the reviewer prints a long report, press Command-Shift-Enter to expand its pane, read, then press Escape to put the layout back. Expansion belongs to that tab, so the rest of your workspace stays as it was.

Drag a file from Finder onto a pane to insert its full path, quoted for the shell. On macOS you can drag the floating screenshot thumbnail straight into the builder's pane, so it can read the image.

Hand work between them

The simplest hand-off is you: copy the reviewer's findings and paste them into the builder. Paste uses bracketed paste when the pane asks for it, so multiline text arrives as one message.

If you run both as Agent Backbone agents, each one lives in its own tmux session and has a name. Place each session in a pane with Attach a session, and the agents can message each other directly with backbone tell. The AGENTS section in the sidebar shows who is working, blocked or waiting for you, and clicking an agent shows the tab that holds its session.

Walk away

Quit the app or close its window. Both agents keep running in tmux, as long as the computer itself stays awake. When you come back, the workspace loads from your library and each pane reconnects to the same run, still going or finished with its output waiting.

honest limits

Everything runs on your own computer. Agent Interface does not install the agent CLIs or manage their accounts; each one uses its own sign-in and subscription.

share
all posts →
GET /api/agents
integrations
What Agent Interface reads from Agent Backbone
attach -t
guides
Attaching tmux sessions without taking them over
v0.1.1
releases
Agent Interface 0.1.1: what’s new