agent-saver
Save the golden moment.
Snapshot a live Claude Code session — name it, store it, reload it later in a new terminal exactly where you left off. Built for the moment when your agent has finally "gotten it" but is one compaction away from forgetting.
Status: pre-MVP. Design is locked. Implementation is in progress. Commands described below are the target UX, not yet runnable. See docs/specs/2026-05-13-agent-saver-mvp-design.md for the full spec.
What it does
/save jacob — snapshot the current Claude Code session under the name jacob.
/load jacob — print a resume command. Paste it into a new terminal; the agent continues with full context.
/agents — list every saved agent in the current project (and globals).
Saved agents persist across reboots, branches, and weeks. The full conversation — every message, every tool call, every file the agent read — is preserved verbatim.
Why
Claude Code conversations have a hard ceiling: when context fills up, it compacts. After compaction the agent's deep, project-specific understanding gets summarized away. You can feel the loss the next time you ask a question.
agent-saver lets you press save just before that happens. Or any time you reach a moment worth keeping.
Installation
The MVP ships two things: a Claude Code plugin (slash commands + MCP server) and a standalone CLI (agent-saver).
From source
Clone and build:
git clone https://github.com/SezginKahraman/agent-saver.git ~/code/agent-saver
cd ~/code/agent-saver
pnpm install
pnpm build
Install the plugin into Claude Code:
claude plugin marketplace add ~/code/agent-saver
claude plugin install claude-agent-saver@agent-saver
Restart any Claude Code session. The /save, /load, /agents slash commands should appear.
Install the CLI on your PATH:
# Pick any directory that's on your PATH and you can write to.
# ~/.local/bin works on most Linux/macOS setups (and is on the default PATH on macOS).
mkdir -p ~/.local/bin
cat > ~/.local/bin/agent-saver <<'EOF'
#!/bin/sh
exec node "$HOME/code/agent-saver/packages/cli/dist/index.js" "$@"
EOF
chmod +x ~/.local/bin/agent-saver
# Verify
agent-saver --version # → 0.1.0
Note: pnpm link --global and npm link may fail without elevated permissions on macOS because the default npm prefix is /usr/local. The wrapper script above sidesteps that.
Updating
cd ~/code/agent-saver
git pull && pnpm build
claude plugin marketplace update agent-saver
claude plugin update claude-agent-saver
Usage
Slash commands (inside Claude Code)
| Command | What it does |
|---|
/save <name> [description] | Snapshot the current session under <name>. |
/save <name> --global | Save to ~/.claude/agents/ instead of project-scoped. |
/load <name> | Print the resume command and copy it to clipboard. |
/agents | List all saved agents (project + global). |
Example session:
> we just figured out the whole auth refactor. don't lose this.
/save auth-refactor "post-refactor mental model + decisions"
✓ Saved auth-refactor (142 msgs, ~87K tokens, project scope)
# ... two days later, in a fresh terminal ...
/load auth-refactor
Loaded auth-refactor. Run in a new terminal:
claude --resume 7b2a-f3d1-...
(copied to clipboard)
Paste the command into a new terminal and the agent picks up exactly where you saved it — same files in memory, same decisions made, same conventions established.
CLI (outside Claude Code)
Useful for Playwright automation, CI workflows, or one-off scripting.
agent-saver save <name> [--description <desc>] [--global]
agent-saver load <name> [--global]
agent-saver list [--scope project|global|all]
The CLI detects the most recent Claude Code session in the current directory by default. Useful pattern:
# Headless CC run produces a session
claude --print "investigate the failing test" > /dev/null
# Save it for later replay
agent-saver save failing-test-investigation --global
What gets saved
When you /save jacob, this lands on disk:
<project>/.claude/agents/jacob/
├── transcript.jsonl # verbatim copy of the CC session
└── metadata.json # name, description, git SHA, message count,
# token estimate, files the agent touched
For --global saves, the path is ~/.claude/agents/jacob/ instead.