You picked an agent when you started the task. Forty minutes in, you know things you didn't know then: the bug is gnarlier than it looked, or the hard part is done and the rest is cleanup, or your subscription just hit its rate limit with the branch half finished. The agent you'd choose now isn't the one holding the session.
Until recently the answer was archaeology: open the other tool, re-explain the task, paste in whatever context you could reconstruct, and hope the new agent rediscovers the decisions the old one already made. hang4r now does this as a single action: Hand off to Claude Code / Codex / Cursor, from any session's menu.
What actually transfers
A handoff keeps the two things that matter and is honest about the one thing it can't keep:
- The worktree. The new agent starts in the exact same isolated worktree — same branch, same modified files, same per-turn checkpoints. Nothing is copied or re-cloned; the work in progress simply gets a new operator.
- The conversation. The new session opens pre-seeded with the story so far: what was asked, what was tried, what was decided, what's left. The new agent reads it the way a colleague reads a good handoff note — then keeps going.
- Not the session id. There is no such thing as resuming a Claude Code session inside Codex — the vendors share no session format, and hang4r doesn't pretend otherwise. A handoff is a fresh session on the target agent, deliberately seeded. That honesty matters: the new agent's context, billing, and limits are its own.
Why this is even possible
The enabler is a decision from hang4r's first week: every adapter — Claude Code's stream-json, Codex's protocol, Cursor's — translates its native output into one internal event protocol before anything else sees it. The transcript hang4r stores is agent-neutral. So when a handoff happens, there's a clean, structured history to rebuild the conversation from, not a pile of vendor-specific JSON.
The seed is a tail slice of that history, sized to what each CLI comfortably accepts as a first prompt — recent turns verbatim, older context compressed. It's the same judgment call you'd make writing a handoff message yourself, done automatically and the same way every time.
What it's for
- The second opinion. An agent has circled the same failing test three times. Hand the session to a different model family and let fresh eyes read the same worktree. The new agent sees the previous attempts in the seed — it knows what not to retry.
- The relay race. Use a strong, slower agent to design and rough in the change, then hand off to a faster one for the mechanical remainder — or the reverse, when cleanup turns out to be the hard part.
- The rate-limit escape hatch. One subscription taps out mid-task. Instead of waiting for the window to reset, the work continues on the other subscription you're already paying for. This is the "your subscription is the API" philosophy paying rent: because hang4r wraps all three CLIs, your capacity is the union of your plans.
The fine print
A seeded summary is a good handoff note, not a perfect memory — an agent may re-read a file its predecessor had open, and that's fine. Each agent also keeps its own default model (configurable per agent in Settings → Models), so a handoff lands on the model you'd have picked for that agent anyway. And the original session isn't deleted: it's still there, transcript intact, if you want to go back and see how the first attempt went.