{"slug": "how-i-hand-a-claude-code-session-to-codex-and-back-without-re-explaining", "title": "How I hand a Claude Code session to Codex (and back) without re-explaining anything", "summary": "An open-source MIT-licensed tool called ccx, built by developer aaronwong1999 and released at version v0.0.32, links a Claude Code session with a Codex thread so either agent can resume the other's task with full context when one hits its 5-hour usage window. ccx runs entirely on macOS 13+ and keeps sync local, reading Claude Code's session JSONL files under ~/.claude/projects/ and reaching Codex only through its app-server API (thread/list, thread/read, session import), with pairs stored in ~/.ccx/pairs.json and a UserPromptSubmit hook appending the other side's new progress to each message. The v0.0.32 release adds a usage heads-up that notifies once when either side's 5-hour window passes 90% and again when it is used up, offering that side's newest session to continue in the other app; the tool does not bypass usage limits, and Windows, Linux and standalone CLIs are not yet supported.", "body_md": "# How I hand a Claude Code session to Codex (and back) without re-explaining anything\n\nWhen Claude Code hits its 5-hour limit mid-task, you can wait for the reset, pay for API tokens, or move the task to another agent. I use both Claude Code and Codex, so the third option is the obvious one. The hard part isn't switching apps. It's the handoff: the other agent knows nothing about the\n\ntask. I switch for two reasons: One side runs out. Claude Code has a 5-hour window and a weekly cap, and so does Codex. Cross-checking.\n\nWhen one model loops on a bug, the other often solves it in one pass. Either way, the new side starts cold. You re-explain what the project is, where you were, which approaches you already ruled out, and what's broken now. Pasting the transcript doesn't work well either: tool calls and their output run to tens of thousands of words.\n\nThen you switch back, and Claude doesn't know what Codex changed. ccx links a Claude Code session with a Codex thread and keeps them in sync both ways, inside both desktop apps. It's open source (MIT) and runs entirely on your Mac. Claude hits its limit.\n\nClick ⇄ in the menu bar, pick the project and session. Codex picks up the task with the full context. When Codex runs out too, open the same Claude conversation and send anything (\"continue\"). Codex's progress comes in.\n\nSwitch as many times as you like. Every user message and reply Condensed tool calls and their output The latest task list (Claude's todos or Codex's plan) Whether the other side stopped mid-step Pasted images, as the path of the app's own cached copy git status The code is already on your disk. All of this arrives as context for the model, not as new chat bubbles. Claude side: reads the session JSONL files under ~/.claude/projects/.\n\nCodex side: goes only through Codex's own app-server API (thread/list, thread/read, session import). It never parses Codex's internal files. Pairing: a Claude session A and a Codex thread T form a pair in ~/.ccx/pairs.json, and each side keeps a cursor of how much the other has received. Delivery: when you send a message in A, a UserPromptSubmit hook appends T's new progress to that message and moves the cursor.\n\nNothing is delivered twice, and the hook never blocks a prompt. If something was condensed away, the model can page through it with a read_session tool. Each update is usually a few thousand tokens. Clicking again with nothing new does nothing.\n\nv0.0.32 adds a usage heads-up. When either side's 5-hour window passes 90%, and again when it's used up, the menu bar notifies you once and offers that side's newest session to continue in the other app. Codex: read from its app-server's account/rateLimits/read. Built in.\n\nClaude: Claude Code keeps no local signal before the limit, so ccx also reads CodexBar, Claude Code Usage Monitor or ccusage when one of them is installed, through their documented output only. Does it bypass usage limits? No. You use your own Claude and ChatGPT/Codex plans, each within its own limits.\n\nccx only moves the task between them. Is anything uploaded? No. Sync is local.\n\nccx reaches GitHub only to install and check for updates. Windows, Linux, standalone CLIs? Not yet. macOS 13+ with the Claude and/or Codex desktop app.\n\nPaste this into Claude Code or Codex and it installs itself: Install ccx for me: run `curl -fsSL https://raw.githubusercontent.com/aaronwong1999/ccx/main/install.sh | sh` (it needs network access and writes to my home folder), then run `~/.local/bin/ccx doctor` and tell me the result. Feedback is welcome in Issues or on X (@aaron0x10).\n\n## Key Takeaways\n\n- •I switch for two reasons: One side runs out.\n- •This story was reported by **Dev.to** , covering developments in the**dev** space.\n- •AI advancements continue to reshape industries — read the full article on Dev.to for complete coverage.\n\n📖 Continue reading the full article:\n\n[Read Full Article on Dev.to →](https://dev.to/aaron_w_ef987250d3531be6d/how-i-hand-a-claude-code-session-to-codex-and-back-without-re-explaining-anything-2poe)", "url": "https://wpnews.pro/news/how-i-hand-a-claude-code-session-to-codex-and-back-without-re-explaining", "canonical_source": "https://ainexusdaily.vercel.app/article/2026-10-21-how-i-hand-a-claude-code-session-to-codex-and-back-without-re-explaining-anythin", "published_at": "2026-10-21 11:11:02+00:00", "updated_at": "2026-10-21 11:28:35.720131+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products"], "entities": ["ccx", "Claude Code", "Codex", "aaronwong1999", "Anthropic", "OpenAI", "CodexBar", "ccusage"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/how-i-hand-a-claude-code-session-to-codex-and-back-without-re-explaining", "markdown": "https://wpnews.pro/news/how-i-hand-a-claude-code-session-to-codex-and-back-without-re-explaining.md", "text": "https://wpnews.pro/news/how-i-hand-a-claude-code-session-to-codex-and-back-without-re-explaining.txt", "jsonld": "https://wpnews.pro/news/how-i-hand-a-claude-code-session-to-codex-and-back-without-re-explaining.jsonld"}}