Handoff
Seamlessly hand off work between Claude Code and OpenAI Codex via a shared HANDOFF.md document
npx -y skills add zhpy2004/claude-codex-handoff --skill handoffAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Hand off the current work to another AI coding tool (Claude Code), or resume work that another tool handed off, via a structured HANDOFF.md document in the project root. Use when the user wants to switch between Codex and Claude Code mid-task, "hand off", "交接", "save progress for the other tool", "pick up / resume / 接续 where the other tool left off", or runs /handoff save or /handoff resume.
SKILL.md
4.0 KB, 950 tokens by cl100k_base, as published. Nobody here has run it
Handoff (Codex ↔ Claude Code)
Carry work progress between Codex and Claude Code through one shared, human-readable
HANDOFF.md file at the project root. This skill only reads and writes that document —
it never launches the other CLI.
This Codex instance writes tool: codex when it saves.
Modes
Read the argument passed with the invocation:
save(aliases:out,保存,交接) → Save the current work intoHANDOFF.md.resume(aliases:in,接续,恢复) → Resume from an existingHANDOFF.md.- (no argument) → Auto-detect: if
HANDOFF.mdexists and itstool:header is notcodex, do resume; otherwise do save. State which mode you picked and why.
An explicit argument always wins over auto-detect.
The document lives at <cwd>/HANDOFF.md by default. If the user names a different path, use that.
Save
-
Reconstruct the work. From this session, identify: the goal, what was done, key decisions, what works vs. what's still broken/partial, the concrete next steps, the relevant files, open questions, and how to verify.
-
Ground it in git (best-effort; skip cleanly if not a repo). Run:
git rev-parse --abbrev-ref HEAD→ branchgit rev-parse --short HEAD→ commitgit status --shortandgit diff --stat→ uncommitted changes for "Current state" Use real output; never invent a branch/commit.
-
Write
HANDOFF.mdto the project root using the template below. Fill every section; if a section truly has nothing, write- (none)rather than deleting the heading. -
Confirm to the user: report the path written and the status, then print the pickup hint:
In Claude Code,
cdinto this directory and run/handoff resume(or/handoffto auto-detect).Do not run
claudeyourself.
Resume
- Read
HANDOFF.mdfrom the project root. If it is missing, tell the user there is nothing to resume and stop (offer/handoff saveinstead). - Reality-check against git (best-effort): run
git status --shortandgit rev-parse --short HEAD. Compare the actual branch/commit/working tree to the document's header and "Current state". Explicitly flag any drift (e.g. doc says committed but the tree is dirty, or a different branch). - Summarize for the user, concisely:
- who handed off (
tool/model/timestamp), the Goal, where it stands (status + Current state), and the Next steps.
- who handed off (
- Continue from the first item under Next steps. Pause and confirm with the user before any large or destructive action (consistent with this being a deliberate, controlled handoff).
HANDOFF.md template
Keep this format identical to the Claude Code side so either tool can read it.
---
tool: codex
model: <model name, e.g. gpt-5.5>
timestamp: <ISO 8601, e.g. 2026-06-02T14:30:00Z>
cwd: <absolute project path>
git_branch: <branch or "n/a">
git_commit: <short sha or "n/a">
status: in_progress | blocked | done
---
# Handoff: <one-line task title>
## Goal
<what we're ultimately trying to achieve>
## Done so far
- <completed work and key decisions, in order>
## Current state
<what works, what's broken/partial, files touched (paths)>
## Next steps
1. <ordered, concrete, actionable — the receiving tool starts here>
## Key files & references
- `path/to/file` — <why it matters>
## Open questions / gotchas
- <blockers, assumptions, things that bit us>
## How to verify / run
<commands to build/test/run and confirm state>
What ships with it: 1 file
244 B alongside SKILL.md
agents/
- openai.yaml244 B