# Add to your Claude Code skills
git clone https://github.com/fvhreimert/claude-session-handoffRecover a previous Claude Code session into a Codex handoff from local transcript files, without calling Claude in the normal path.
This is for the common failure mode where Claude Code hit a token limit, lost context, or the session ended, and you want Codex to continue from the local artifacts already on disk.

The repository ships both
Claude Code can burn through token budget and session limits fast. When that happens, the practical need is simple. Continue the work in Codex without manually reconstructing the whole thread from scratch.
The default recovery pattern is usually manual and messy: find the right transcript, inspect it, reconstruct intent, then restate the open thread to another agent. This skill makes that path deterministic and cheap.
claude CLINo comments yet. Be the first to share your thoughts!
This is the preferred path if you want the plugin to show up in Codex's plugin flow.
From the repository root:
python3 scripts/install_plugin.py
If you prefer a copy instead of a symlink:
python3 scripts/install_plugin.py --mode copy
This installs the plugin into ~/plugins/claude-session-handoff and adds it to your personal Codex marketplace at ~/.agents/plugins/marketplace.json.
Then restart Codex and open /plugins.
If you invoke the bundled skill explicitly after plugin installation, Codex may show it in namespaced form.
$claude-session-handoff:claude-session-handoffFrom the repository root:
python3 scripts/install_skill.py
If you prefer a copy instead of a symlink:
python3 scripts/install_skill.py --mode copy
Then restart Codex.
Manual install targets
~/.codex/skills/claude-session-handoff%USERPROFILE%\.codex\skills\claude-session-handoffAfter installation, prompts like these should trigger the skill
Resume my last Claude session for this repoRecover a Claude Code session that ended and give me a handoffFind my last 5 Claude sessions and ask which one to resumeExplicit invocation depends on how you installed it
$claude-session-handoff$claude-session-handoff:claude-session-handoffNormal flow:
The plugin package lives at
plugins/claude-session-handoffThe installable skill that SkillsLLM and manual skill installs rely on lives at
plugins/claude-session-handoff/skills/claude-session-handoff/SKILL.mdFor repo-local testing, this repository also includes
.agents/plugins/marketplace.jsonThat lets Codex surface the plugin when you open this repository locally. The current public Codex docs still describe the official global Plugin Directory publishing flow as coming soon, so the supported path today is local, personal, or repo marketplace installation.
macOS/Linux:
python3 scripts/doctor.py --cwd "$PWD"
Windows PowerShell:
py -3 scripts/doctor.py --cwd (Get-Location)
The doctor reports
macOS/Linux:
python3 scripts/discover_sessions.py --cwd "$PWD" --limit 5 --picker
python3 scripts/discover_sessions.py --cwd "$PWD" --limit 5 --json --snapshot-out /tmp/claude-session-handoff-snapshot.json
python3 scripts/discover_sessions.py --snapshot-in /tmp/claude-session-handoff-snapshot.json --picker
python3 scripts/resolve_session_choice.py --snapshot /tmp/claude-session-handoff-snapshot.json --choice 1 --field file_path
python3 scripts/summarize_handoff.py --session /path/to/session.jsonl --json
Windows PowerShell:
$snapshot = Join-Path $env:TEMP "claude-session-handoff-snapshot.json"
py -3 scripts/discover_sessions.py --cwd (Get-Location) --limit 5 --picker
py -3 scripts/discover_sessions.py --cwd (Get-Location) --limit 5 --json --snapshot-out $snapshot
py -3 scripts/discover_sessions.py --snapshot-in $snapshot --picker
py -3 scripts/resolve_session_choice.py --snapshot $snapshot --choice 1 --field file_path
py -3 scripts/summarize_handoff.py --session C:\path\to\session.jsonl --json
Discovery checks these locations in order:
--claude-projects-dirCLAUDE_PROJECTS_DIRCLAUDE_HOME/projectsIf your Claude data lives elsewhere, pass --claude-projects-dir.
If no sessions are found
scripts/doctor.py--claude-projects-dir if Claude stores data outside the default pathIf the wrong session is selected
If a session file is missing or corrupted
summarize_handoff.py calls return a file-specific errorRun the test suite
python3 -m unittest discover -s tests -v
Verify the packaged skill bundle matches the checked-in source files:
python3 scripts/verify_packaged_skill.py
The repository includes:
scripts/doctor.py for local diagnosticsscripts/install_plugin.py for personal plugin installation.github/workflows/ci.yml for cross-platform CIagents/openai.yaml for packaged skill metadataplugins/claude-session-handoff/.codex-plugin/plugin.json for Codex plugin packagingMIT