Repository navigation
v0.3.0: Cross-agent handoff: carry the task, not the transcript, between Claude Code, Codex, Gemini CLI and Copilot CLI
Summary
Switching agents used to mean starting from zero: Codex cannot read a Claude Code transcript, and vice versa. This PR adds csm handoff <account> and a provider-neutral task handoff behind it. csm checkpoints the running agent, extracts what matters from its own session records, captures the repository state, prepares MCP for the target profile, writes a compact handoff package, and starts the target agent with an opening instruction that points at it. The new agent reads the handoff, checks the repository, and continues.
It does not fake conversation portability. Between agents the conversation stays behind; the task, the files, the repository state and the MCP verdicts move.
What changes for users
$ csm handoff work-codex
CSM handoff
Current agent Claude Code / personal
Target agent Codex / work-codex
Session 152f3b1f-039e-4f37-b149-4ef715e3d672
Task context captured at the switch
Git state captured at the switch
Continue with Codex? [Y/n]
In the terminal running the session:
Switching personal (Claude Code) → work-codex (Codex).
Saving checkpoint ✓
Stopping Claude Code ✓
Selecting work-codex ✓
Capturing task context ✓
Capturing git state ✓
Carrying MCP configuration ✓
Saving handoff ✓
Handing the task to Codex ✓
Starting Codex as work-codex ✓
Codex cannot read a Claude Code conversation. It starts with a task handoff instead:
~/.csm/handoffs/<project>/20261008T110445Z-claude-codex/handoff.md
csm handoff <account|number>andcsm handoff --provider <id>. With a csm session running in the project, that session switches (likecsm use), including to another agent, in the same terminal and directory. Without one, the target starts where the command was run, from the last checkpoint.- Every pair works: Claude ↔ Codex ↔ Gemini CLI ↔ Copilot CLI.
- Same-agent switches (
csm next,csm use, automatic failover, recovery) run through the same engine: the native session is still resumed, and the handoff is written as a safety copy with a one-line note. csm doctorreports the handoff directory and, per agent, task context extraction and injection support.csm statusshows the last handoff.
Pull request: #3
Full changelog: v0.2.0...v0.3.0