Skip to content

v0.3.0: Cross-agent handoff: carry the task, not the transcript, between Claude Code, Codex, Gemini CLI and Copilot CLI

Choose a tag to compare

@onoja123 onoja123 released this 13 Oct 18:46
d165706

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> and csm handoff --provider <id>. With a csm session running in the project, that session switches (like csm 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 doctor reports the handoff directory and, per agent, task context extraction and injection support. csm status shows the last handoff.

Pull request: #3
Full changelog: v0.2.0...v0.3.0