Automatic sync
By default, Handshake keeps every session checkpointed for you. The daemon hooks into each agent’s native event system and syncs the session automatically every time the agent produces a response — no commands, no export steps, no extra clicks. Your work is always backed up in~/.handshake/sessions.db without any effort on your part.
This means:
- You can restore any session in another agent at any time, even if you never ran a manual checkpoint.
- If your terminal crashes or you close the agent, the session is still saved up to the last response.
- You can browse recent sessions with
handshake listand pick one up later.
Manual checkpoints
Create a manual checkpoint when you want to attach a title, summary, or explicit decisions to a specific moment — usually right before handing off to a different agent or marking a milestone. Manual checkpoints are most useful when you want to:- Record a summary and decisions before handing off to a different agent
- Save a named snapshot of a particular milestone
- Ensure the receiving agent has a specific, well-described state to start from
From inside your agent
The easiest way to create a manual checkpoint is to ask your agent directly — in natural language, from inside Claude Code, OpenCode, or Hermes.Create a basic checkpoint
Just tell your agent to save the session:Handshake saves the full conversation, your working directory, the current git branch, and any staged or unstaged file changes.
Add a summary (recommended)
Include a brief description of where things stand. This becomes the “Current State & Next Steps” section of your handoff brief:
Record key decisions
Include decisions you don’t want the next agent to second-guess:These appear in a dedicated “Settled Decisions” section in the handoff brief so the receiving agent knows not to relitigate them.
Via the MCP tool
When you want more control, call thecheckpoint_session MCP tool directly. Your agent can invoke this on your behalf, or you can configure tooling to call it programmatically.
checkpoint_session parameters
checkpoint_session parameters
| Parameter | Required | Description |
|---|---|---|
session_id | ✅ Yes | The agent’s native session ID |
agent | ✅ Yes | One of claude-code, opencode, hermes, codex |
title | No | Human-readable title for the session |
summary | Strongly recommended | Current state and next steps, written by the agent. Becomes the core of the handoff brief. |
decisions | No | Key decisions made during the session, one per line — e.g. Use JWT over sessions\nPostgres not SQLite. Rendered as a dedicated Settled Decisions section. |
What gets saved
Every checkpoint captures the following:Conversation
The full message history for the session, including all user and assistant turns. Tool output is stored but stripped from the handoff brief to reduce noise.
Session metadata
Session title, working directory, model, source agent, and timestamps for when the session started and was last updated.
Git state
The current branch name, any staged changes, and any unstaged file modifications at the time of the checkpoint.
Summary & decisions
The optional summary (current state and next steps) and decisions you provided, stored separately so they can be surfaced prominently in the handoff brief.