Cowork-installable port of Sting25/claude-code-handoff (MIT, Christopher Chadwick). Auto-snapshot session state to .claude/handoff_current.md on session exit; auto-load it on the next session start. Plus /handoff for manual invocation at clean boundaries. Snapshot logic and skill spec are upstream's; this port adds the plugin manifest, hooks/hooks.json wiring, an atomic mkdir-based lock to replace flock, and a Perl JSON::PP helper to replace jq. See repo CREDITS.md for full attribution.
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Cowork-installable port of Sting25/claude-code-handoff by Christopher Chadwick.
The original tool — the snapshot logic, the transcript appender, the
/handoffskill spec — is his work, used here under MIT. This repo packages it for the Claude Cowork desktop app and replaces two host-side dependencies (jq,flock) with portable equivalents so it runs on Windows MSYS Git Bash without extra installs.
Claude Code sessions hit a context limit. When they do, the next session starts blind — you re-explain the project, the in-flight track, the decisions you made twenty minutes ago, all from memory. The model has no continuity. You become the continuity.
Christopher Chadwick wrote claude-code-handoff to fix this:
SessionEnd hook snapshots HEAD, branch, recent commits, working-tree state, and in-flight .md docs to <repo>/.claude/handoff_current.md.SessionStart hook in the next session reads that file and injects it as context. No prompt to remember.Stop hook after every turn appends the new transcript lines to a raw-dump backup. Saturated-context restart-from-thin-curated-notes failure mode goes away./handoff slash command lets you trigger a snapshot manually at clean boundaries with a curated ## Notes from this session block and a loud banner telling you to actually start a new session.The next session is no longer blind. That's the whole pitch.
The upstream project installs via git clone + ./install.sh, which patches your ~/.claude/settings.json with jq and uses flock for Stop-hook serialization. That's correct for the standalone Claude Code CLI on Linux/macOS. It doesn't fit two real-world surfaces:
.claude-plugin/plugin.json and hooks/hooks.json, not patched user settings.jq nor flock ships there by default.This port:
.claude-plugin/marketplace.json) installable through the Cowork app's UI.jq with bin/handoff_turn_format.pl — a Perl helper using only JSON::PP (a core module since 5.14). Same per-line parse, same output shape.flock with an atomic mkdir-based lock. Same serialization guarantees, works on every platform.CLAUDE_ENV_FILE path-parse → CLAUDE_PROJECT_DIR → encoded ~/.claude/projects/<encoded>/<sid>.jsonl. This makes the plugin work in headless claude -p mode (where stdin is empty) as well as interactive mode.CLAUDE_PROJECT_DIR-preferred repo resolution in both scripts. The Cowork app's Code-tab sessions root the shell at C:\Users\scott\.klodock, not the user's project; git rev-parse from pwd doesn't work, but CLAUDE_PROJECT_DIR does.bin/probe_hook.sh — a diagnostic env-logger wired ahead of each real hook. Writes to ~/handoff_probe.log for troubleshooting.That's it. Snapshot semantics, output formats, skill triggers, HANDOFF_* configuration env vars — all unchanged from upstream.
End-to-end on Windows 11 + MSYS Git Bash + Claude Code 2.1.87 (real claude -p headless run, real Anthropic API turn): all three hooks fired, both artifacts written, the raw dump contained the actual model conversation. Full receipts including probe-log captures and exact commit SHAs in docs/VERIFICATION.md.
In the Cowork desktop app:
https://github.com/scottconverse/claude-code-handoff-cowork./handoff skill appears in the / menu.For file-level install (when the UI doesn't help) and full daily-use guidance: USER-MANUAL.md.
| Cowork tab | /handoff skill | SessionStart auto-load | SessionEnd auto-write | Stop per-turn dump |
|---|---|---|---|---|
| Chat | ✗ (no shell) | ✗ | ✗ | ✗ |
| Cowork | ✓ | ✗ (known bug) | ✗ | ✗ |
| Code | ✓ | ✓ | ✓ | ✓ |
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimnpx claudepluginhub scottconverse/claude-code-handoff-cowork --plugin claude-code-handoffContext window optimization for Cowork. Sandboxes tool output, compresses what returns with a self-learning 3-stage pipeline, and routes tools automatically — reducing context consumption by 30–60% in typical sessions, more in research-heavy ones.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Unified status line for Claude Code with multi-CLI (Claude, Codex, Gemini, z.ai) usage monitoring, context, rate limits, and cost tracking