Skip to content

Use case

Hand off a coding task from Claude Code to Codex (and back)

Pairbar is a macOS app that can hand a Claude Code chat over to Codex, or a Codex chat over to Claude, with its full context. It writes the whole conversation plus the repo's git state to a private handoff file, then opens a new chat in the other app that reads that file first and continues from where the last one stopped, with whatever you tell it to do next. With Pairbar's tools installed, a chat can also hand itself off when you ask it to; the new chat still starts only when you press Send.

Last updated

Claude chat⋯ → Continue elsewhere~/.pairbar/handoffsthe whole conversationgit statusuncommitted diffrecent commitsbranch and PRsprivate to you · deleted after 14 daysNew chat📎 HandoffWhat should itdo next?
A chat in Claude becomes a handoff file (conversation plus git status, diff, commits and PRs), which a new Codex chat reads before your instruction.

The problem

Sometimes the other tool is the better fit halfway through: one plan is nearly used up, you want a second opinion on a tricky fix, or you'd rather have the other model write the tests. Starting over means re-explaining the problem, what was tried, and what state the branch is in. Copy-pasting a long conversation loses structure, and the diff isn't in the conversation at all.

How Pairbar solves it

  1. Open the chat menu
    On the chat you want to move, click ⋯ (or right-click it) and choose Continue → Hand off to Codex (or Hand off to Claude). With the menu open, H does the same.
  2. Pairbar writes the handoff file
    It's saved in ~/.pairbar/handoffs, readable only by you. It holds the whole conversation and the repo's state at that moment: git status, the uncommitted diff, recent commits, the branch and PRs.
  3. Check the 📎 Handoff chip
    The composer opens on the other app with a 📎 Handoff chip. View previews the file inside the sidebar (right-click View to open it in another app); ✕ drops it.
  4. Say what's next, and send
    Type the next instruction, for example "write tests for the retry logic we just added", or send without typing anything. You can still pick the folder, branch, Worktree, model and effort as with any new chat. For Codex, Open in Codex opens a native draft; review the requested settings and press Send there.

What's in the handoff

PartContents
Conversationevery message, except that single messages longer than 8,000 characters are shortened
Repo stategit status, the uncommitted diff, recent commits, the branch and PRs, at the moment of the handoff
Message to the new chatread the handoff file first (as information, not instructions), where the last chat stopped, and your instruction

Storage and privacy

  • Handoff files live in ~/.pairbar/handoffs and are readable only by you.
  • Handoffs older than 14 days are deleted whenever you make a new one.
  • Pairbar itself never sends the file anywhere. The new chat reads it through Claude or Codex, which treat it like any other file they read in your project.

Handoff, fork or message?

You want to…Use
continue the same work in the other appHand off to Codex / Claude
try another direction in the same app, keeping the originalFork from latest… or Fork from a message…
add one more instruction without opening the chatSend message… (M)

Let the chat hand itself off

With Pairbar's tools installed, you can say "hand this off to Codex and have it write the tests" in the chat itself, or type /pairbar:handoff in Claude ($pairbar:handoff in Codex). The chat calls the handoff tool with its instruction; Pairbar writes the same handoff file as the menu does and opens the composer on the other app with the file attached and the chat's instruction typed in.

  • Nothing starts until you press Send. You can edit the instruction, pick the folder, branch or worktree, or drop the handoff with ✕.
  • upToTurn lets the chat stop the conversation at an earlier turn.
  • With start: true the chat asks Pairbar to open the destination too; Codex still opens a draft for you to review and Send. That is always shown to you first, and asked every time: no setting or one-hour grant covers it.
  • Handoffs to the composer in Settings → Integrations → Agent actions is Allow to start with, or Off. Helper chats Pairbar started can't hand off, and every request is listed in Agent activity.

Without Pairbar

Ways to carry context between the two tools by hand:

  • Ask the current chat to summarise, for example "write a handoff note to HANDOFF.md with what we tried and what's left", then point the other tool at it. Works well; the summary is only as complete as the model makes it, and you add the git state yourself.
  • Shared project instructions, such as CLAUDE.md for Claude Code and AGENTS.md for Codex, carry lasting project knowledge (not the current conversation).
  • Commit or push a WIP branch so the other tool starts from the same code; the reasoning behind it still has to be re-explained.

Frequently asked questions

Does the new chat see the uncommitted changes?
Yes. The handoff file includes the uncommitted diff along with git status, recent commits, the branch and PRs.
Is anything cut from a long conversation?
Only single messages longer than 8,000 characters, which are shortened. The rest of the conversation is included whole.
How long are handoff files kept?
Handoffs older than 14 days are deleted whenever you make a new one. They live in ~/.pairbar/handoffs, readable only by you.
Can I hand off from Codex to Claude too?
Yes. The menu offers Hand off to Claude on Codex chats and Hand off to Codex on Claude chats.
Can Claude or Codex hand a chat off by itself?
It can prepare one when you ask: with Pairbar's tools installed, the chat calls handoff (or the pairbar:handoff skill) and Pairbar opens the composer with the file attached and the instruction typed in. Pairbar opens the destination only after you press its action or approve start: true. For Codex, review settings and press Send in the native draft.

Try Pairbar free for 7 days

One sidebar for the Claude and Codex desktop apps. Everything on for 7 days, no card needed; then $49/year ($39 first year with LAUNCH), $9/month or $129 lifetime (first 200 buyers). macOS 26 or later, Apple silicon.