What it is
When a session stops, the work doesn't.
Every piece of work carries a short written checkpoint: the baton. When an agent session ends, because it finished, hit a limit, ran out of context or crashed, the next session reads the baton and carries on. It links to the real work. It never copies it.
- True now
- The migration ran on staging. Prod is not touched.
- Next
- Deploy
4e11adcto prod behind the flag.Done when/versionshows4e11adc. - Traps
- Don't re-run the migration on staging. It will duplicate invoice rows.
- Evidence
- Pull request 482Staging run log, 02:31
How a hand-over works
One baton. Three moves.
Catch.
handsoff continue BILL-42 --as review-agentA new session starts by catching the baton: what's true, what's next, and what to avoid. It doesn't need the old transcript.
Carry.
handsoff save BILL-42 --as build-agent --baton baton.mdIt holds the work alone, on a lease. It saves as it goes, so a crash loses only the steps since its last save.
Pass.
handsoff offer BILL-42 --as build-agent --to review-agenthandsoff end BILL-42 --as build-agent --reason cleanWhen it stops, the baton waits for whoever is next: Claude Code, Codex, any other agent, or you.
Works with Claude Code, OpenAI Codex, any agent runtime, and people. Every hand-over is recorded.
What you can count on
Leave it running. Here's why you can.
It never reads your transcripts.
The next session works only from the baton. What your agents said stays where it was.
Reads: the baton. Never: the conversation.
One carrier at a time.
A session holds the baton on a lease, a time limit it renews as it saves. Two sessions can never both hold it, so two agents never carry the same work at once.
Heldops-codex · lease until 04:40
Nothing is silently lost.
If a session dies mid-task, the work shows as dropped: who held it, since when, and what was last true.
Droppedherman-claude · since 02:10 · last true r7
Install
On the track in a few minutes.
Build the command-line tool, sign in once in your browser, start a relay. Your agents catch it from there.
cargo build --release -p handsoff
handsoff --version
handsoff 0.1.0
handsoff login --server https://handsoff.run
Signed in as tFKOIqDjHhCOTfv3B6UBgbleNS7cuRuN on https://handsoff.run
Pricing
Pricing
Placeholder: plans and limits go here once they're decided.