It's 4:50 on a Friday. The fix is half done. Claude Code stops. Maybe it says 5-hour limit reached ∙ resets 10pm.
You could open another agent and retype everything the two of you figured out. Or you could type this:
Codex opens, already caught up on the conversation, and picks up where Claude stopped. That's the handoff, one of three.
Any of them, either end.
Whatever state you're in, one command gets you back.
Bring a whole session back, as it was. The full thing, or the tail after the last compaction.
You know the one. List what ran here, or search by keyword; the session you meant opens.
Nobody starts over. Same agent with real state, or seed a fresh one with the transcript.
The conversation, and only that: your messages and the agent's replies. Tool calls, command output, and reasoning traces get stripped, so the next agent reads what happened, not a log of it.
The same agent picks up right where it left off: catchup fork resumes through its own native path, real session state and all. Crossing to another agent is there when you want it, catchup fork claude --into codex seeds it with the transcript.
It's still on disk. catchup claude -q "rate limit" searches by keyword, lists what matches, and opens the exact one you meant.
You don't have to. catchup install-skill teaches your agent the command once, and after that you just say "catch up on the last Codex session" in plain words.
No. One agent at a time. It's a handoff, not a blender.
One binary, no config, MIT-licensed. Works on macOS, Linux, and Windows. Everything runs locally: catchup reads agent history on your machine and makes no network or model calls.
On Windows, grab the zip from the latest release. Then, optionally: catchup install-skill so your agents know it exists.
Recap it. Find it. Hand it off.