Help us improve
Share bugs, ideas, or general feedback.
Plugin marketplace for preserving and restoring context between Claude Code sessions
npx claudepluginhub thepushkarp/handoffPreserve and restore context between Claude Code sessions with always-on handoff hooks (auto-save before compaction, auto-inject after)
Harness-native ECC skills, hooks, rules, MCP conventions, and operator workflows
Development marketplace for Superpowers core skills library
Open Design — local-first design app exposed to coding agents over MCP. Install once with your agent's plugin command and projects/files/skills are reachable through stdio.
Share bugs, ideas, or general feedback.
Preserve and restore context between Claude Code sessions.
When working with Claude Code across multiple sessions, switching agents, or hitting context limits (auto-compaction), valuable context is lost:
Handoff captures "necessary and sufficient" context to a docs/handoff/HANDOFF.md file, enabling seamless continuation across sessions.
# Add the marketplace
/plugin marketplace add thepushkarp/handoff
# Install the plugin
/plugin install handoff@handoff
/handoff:createCapture current session context to docs/handoff/HANDOFF.md.
What it captures:
Usage:
/handoff:create
The handoff is appended with a timestamp, creating a history log.
/handoff:resumeLoad existing handoff context to continue work.
Default mode: Displays handoff summary and asks how to proceed.
/handoff:resume
Auto mode: Automatically loads context and starts working on next steps.
/handoff:resume --auto
The plugin includes always-on hooks that make compaction safe:
PreCompact): appends a new entry to docs/handoff/HANDOFF.md with deterministic snapshot data and placeholders for a model-written summary/context.SessionStart matcher compact): auto-injects the latest handoff entry back into Claude's context (stdout injection).Stop): if the latest entry still has TODO placeholders for Model Summary and Handoff Context, Claude is blocked from stopping (up to 3 attempts) until it fills them in.This ensures you never lose important context to auto-compaction.
Note: These scripts use
jqwhen available to parse hook input and transcripts. Withoutjq, the plugin degrades gracefully but will capture less detail.
Handoffs are stored in docs/handoff/HANDOFF.md with timestamped entries:
---
## Handoff: 2025-01-05 14:32:00
### Current Task State
Implementing user authentication feature. Login flow is complete, working on password reset.
### Key Decisions
- Using JWT for session tokens: Better for stateless scaling
- Email verification required: Security requirement from product
### Modified Files
- `src/auth/login.ts` - Added JWT generation
- `src/auth/middleware.ts` - Token validation middleware
- `tests/auth.test.ts` - Login flow tests
### Blockers / Open Questions
- Need to decide on password reset token expiry (1hr vs 24hr?)
### Next Steps
1. Implement password reset endpoint
2. Add email sending for reset tokens
3. Write tests for reset flow
### Critical Context
- The `AUTH_SECRET` env var must be set or tests fail silently
- Rate limiting is handled in nginx, not in code
### Model Summary
- Login flow is complete; password reset in progress
- Using JWT sessions for stateless scaling
- Blocker: decide reset token expiry (1h vs 24h)
### Handoff Context (paste into next session)
1. Open `docs/handoff/HANDOFF.md` and focus on the most recent entry.
2. Implement password reset endpoint and tests first.
3. Confirm `AUTH_SECRET` is set before running tests.
---
/handoff:create before closing Claude Codedocs/handoff/HANDOFF.md for async collaboration/handoff:resume when starting a new sessionClaude Code supports project-level compaction guidance via a CLAUDE.md section named # Compact instructions:
# Compact instructions
When compacting, preserve:
- the latest handoff entry in docs/handoff/HANDOFF.md
- current task state, blockers, and next steps
- key decisions and constraints
Claude Code caches plugin content by version. When you change plugin code, bump the version in plugins/handoff/.claude-plugin/plugin.json so existing users receive the update.
Useful commands when developing:
# Validate manifests and marketplace structure
/plugin validate