CatchUp CLI
A CLI that hands session context between coding agents: continue a Claude Code session in Codex, Cursor, OpenCode and others.
- 83 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The tool reads agent session logs from your disk, which can hold secrets and personal data
- `catchup fork` launches another agent with the transcript of the earlier session
Install
- Works in
Manual install
brew install wilbeibi/tap/catchupAlternatives: `curl -fsSL https://catchup.pages.dev/install.sh | sh` or `go install github.com/wilbeibi/catchup@latest`. Then `catchup install-skill` for the skill.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The tool reads agent session logs from your disk, which can hold secrets and personal data
- `catchup fork` launches another agent with the transcript of the earlier session
This is third-party code. Review the repository files before installing.
What it does
catchup reads a local agent session into clean Markdown, and `catchup fork` resumes the work in the same agent or a different one. A typical case: Claude Code hit its limit and `catchup fork --into codex` starts Codex with the transcript of the earlier session. It supports Claude Code, Codex, Copilot CLI, Cursor, Cline, Kimi, Antigravity, OpenCode, Pi Agent, ZCode, Grok Build, Grok Bot, DeepSeek Harness and Amp. For you there is `catchup --list` for recent sessions of every agent and `catchup --all-dirs -q "cache"` to search across projects. For agents inside a session there is the `--agent` mode with failed tool calls, the `--last 4` and `--since-compact` flags and JSON and HTML output. `catchup install-skill` installs a skill so an agent reads earlier work when asked to catch up on the last session.
Who it is for. People who switch between Claude Code, Codex, Cursor and other agents and do not want to explain the job again.
Good fit when
- An agent hits its usage limit and the work must continue in another agent with the same context
- The session context is full but the work is not done: restart with a trimmed transcript through `--since-compact`
- You need to find old work by keyword across all projects and agents
- You want a clean record of what happened in a session as Markdown or HTML
Not a fit when
- You need to merge histories of several agents into one: the tool works with one agent at a time and does not combine histories
- You need native state preserved when moving between different agents: cross-agent `fork --into` passes only a transcript
- You need Amp, Kimi, ZCode or DeepSeek Harness as a launch target: they cannot be opened interactively, so save the transcript and open it by hand
Example request
Catch up on the last Claude Code session in this directory and continue it: what is done, what remains and which commands failed.Limitations
The tool reads local session logs and is read-only except for `fork`. A transcript omits successful tool calls and reasoning and keeps only calls the log marked failed. For Cursor, CLI and IDE history are available but compaction boundaries and API stop events are not. Amp reads only the local cache, so cloud-only threads are not visible. Grok Bot has no local project directory and its cache can omit older messages.
How to disable. Delete the `catchup` binary: `brew uninstall catchup` or by hand depending on how you installed. The skill installed by `catchup install-skill` sits in the agent skills directory and is removed there.
FAQ
How do I install catchup?
Through Homebrew: `brew install wilbeibi/tap/catchup`. Or a prebuilt binary with `curl -fsSL https://catchup.pages.dev/install.sh | sh`, or `go install github.com/wilbeibi/catchup@latest`. Windows builds are on the releases page.
How do I hand a Claude Code session to Codex?
Run `catchup fork claude --into codex`. Codex starts with the transcript of the Claude session. Without an agent name the one with the newest session in this directory is used.
How does fork differ from fork --into?
`fork` continues with the same agent and keeps its native session state. `fork --into` starts another agent with a transcript, or the same agent with a clean context when you pass `--last` or `--since-compact`.
How do I find old work?
`catchup --all-dirs -q "cache"` searches across projects and agents and `catchup --list` shows recent sessions. Pick a result by rank or by its stable ID with `--id`.
Does the tool change my sessions?
No, apart from `fork`: everything else only reads local logs. Transcripts and Markdown output omit successful tool calls and reasoning.
Discussion
No questions or reviews yet.
Related
CLI toolsAn fzf-based CLI that lists sessions of Claude Code, Codex and six more agents across projects and resumes the chosen one.
The CLI turns a coding-agent session into a shareable page with conversation, tool activity, files and a diff.
Agent Standup shows Claude Code, Codex and Mistral Vibe sessions as a live team call: who works, who waits.
Bookmarks for coding agent sessions: save one under a project name, find it later and get the resume command with its folder.
Local search across all coding agent sessions with a return to the original CLI and token usage stats.
A Claude Code plugin that replaces auto-compact: it writes a handoff brief, clears the session and continues from it
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Repository stars | Main difference |
|---|---|---|---|
| CatchUp (this card) | no | 83 | |
| agent-manager | no | 691 | a tmux TUI that keeps agents in one list with status rather than moving context between them |
| Table Skills: project-handoff | no | 463 | a skill that saves goals, decisions and the next step to PROJECT_STATE.md without reading session logs |
README in short
The page shows two scenarios: after Claude Code hits its limit one command hands the session to Codex, and for older work a keyword search opens the right session. Installation, use for people and for agents, per-agent notes, the tool boundaries and a quota visibility recipe follow.