Claude Code 跑一半怎么交给 Codex?用 handoff.md 交接上下文(含同一个 Key 两端切换)

Claude Code 和 Codex 的会话互不相通,换工具时上下文不会跟过去。办法是让 Claude Code 把进度写进项目根目录的 handoff.md,Codex 只读这个文件接着干。本文给出可直接复制的模板和两段提示词,并实测用同一个 AICodeWith Key 两端切换。

4 分钟阅读
Claude Code 跑一半怎么交给 Codex?用 handoff.md 交接上下文(含同一个 Key 两端切换)

先说结论:Claude Code 和 Codex 的会话互不相通,换工具时聊过的内容不会跟过去。最稳的办法是让 Claude Code 把进度写进项目根目录的 handoff.md,再让 Codex 只读这个文件接着干。

我们用同一个 AICodeWith Key 实测了一遍:Claude Code 做前一半并写交接文件用了 37 秒,Codex 读文件做完剩下的部分用了 86 秒,测试全部通过。

为什么要写交接文件

Claude Code 的对话记录存在它自己那边,Codex 看不到;反过来也一样。直接在 Codex 里说"接着刚才的做",它不知道"刚才"是什么。

两边都能看到的只有一样东西:项目里的文件。所以把进度写进仓库里的一个文件,就是最简单、最可靠的共享上下文。

handoff.md 模板

在项目根目录建 handoff.md,按下面六项写。可以直接复制:

markdown
# Handoff

## 改了哪些文件
- 

## 做到哪
- 

## 未完成项
- 

## 验收标准
- 

## 已知坑
- 

## 下一步
1. 

每一项写什么:

  • 改了哪些文件:新增、修改的文件路径,以及有没有提交 git
  • 做到哪:已经能跑的功能,最好写清楚是怎么验证的
  • 未完成项:还没做的事,一条一条列
  • 验收标准:做到什么程度算完,比如"python -m unittest 全部通过"
  • 已知坑:踩过的坑、容易误解的地方,这是最省对方时间的一项
  • 下一步:按顺序写接手的人第一步做什么

两段提示词

在 Claude Code 里(写完就停):

text
把当前进度写到项目根目录的 handoff.md,包含这几项:改了哪些文件、做到哪、未完成项、验收标准、已知坑、下一步。写完就停,不要继续写代码。

在 Codex 里(只读这个文件继续):

text
只读项目根目录的 handoff.md,按里面的未完成项和下一步继续做完,达到验收标准后,更新 handoff.md 的进度。
"写完就停"很重要。不加这句,Claude Code 可能顺手把剩下的也做了,交接文件就和代码对不上了。

同一个 Key,两端都接好

两个工具都写全局配置,所有项目通用,用同一个 AICodeWith Key 就行。

获取 API Key →

Claude Code:打开 ~/.claude/settings.json,在 env 里填上:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "sk-你的Key",
    "CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK": "1"
  }
}

Codex:打开 ~/.codex/config.toml,写入:

toml
model_provider = "aicodewith"
model = "gpt-5.6-sol"

[model_providers.aicodewith]
name = "aicodewith"
base_url = "https://api.aicodewith.ai/chatgpt/v1"
wire_api = "responses"
experimental_bearer_token = "sk-你的Key"
experimental_bearer_token 是 Codex 官方配置项,直接把 Key 写在配置里,不用设环境变量。如果你的配置里还有 env_key 这一行,记得删掉,两者不要同时用。各字段说明见《Codex config.toml 配置指南》和《Codex 接入 AICodeWith》;Claude Code 这边见《Claude Code 如何接入第三方 API》。

实测:一个小项目从 Claude Code 交到 Codex

我们准备了一个很小的命令行待办工具,README 里写了四条要求:add 添加、list 列出、done 标记完成,以及用 unittest 覆盖这三条命令。

第 1 步:Claude Code 做前一半。让它只实现 add 和 list,然后用上面的提示词写 handoff.md。用时 37 秒,模型 claude-opus-5-5。它写出的交接文件里,"已知坑"一项特别有用,比如:

  • todos.json 的路径跟着运行命令时所在的目录走,不跟脚本走
  • 数据文件路径在导入模块时只读一次,写测试要直接改模块里的变量
  • python -m unittest 要能发现测试,需要 tests/__init__.py

第 2 步:Codex 接着做。用上面的 Codex 提示词,它读完 handoff.md 后补上了 done 命令和编号越界的错误处理,写了 7 个测试并全部跑通,最后把 handoff.md 的进度更新成已完成。用时 86 秒,模型 gpt-5.6-sol。

全程没有在两个工具之间复制任何聊天记录,靠的只有这一个文件。

实测中 Codex 还主动用上了交接文件里的坑:它直接建了 tests/__init__.py,测试里也是改模块变量而不是环境变量。这正是"已知坑"一项的价值。

长期规则和本轮进度分开放

交接文件只放这一轮的进度。项目长期不变的规则,放到各自的说明文件里:

放什么放哪里
长期规则:代码规范、测试命令、目录约定Claude Code 读 CLAUDE.md,Codex 读 AGENTS.md
本轮进度:做到哪、还差什么handoff.md

这样 handoff.md 可以每轮重写,不会越来越长。CLAUDE.md 怎么写见《CLAUDE.md 写法指南》。

如果交接流程固定下来,可以把"写 handoff.md"做成一个 Skill,以后输入一个命令就能生成,做法见《Claude Code Skill 怎么用》。

另一种交接方式:GitHub Issue

团队协作或者跨机器时,也可以把同样六项内容写进一个 GitHub Issue,让接手的工具去读这个 Issue。好处是有记录、能讨论;缺点是需要工具能访问 GitHub。个人在本机换工具,handoff.md 更省事。

常见问题

handoff.md 要提交到 git 吗?

看情况。只是自己换工具,可以加进 .gitignore;需要同事接手,就提交上去。

能反过来从 Codex 交给 Claude Code 吗?

能。把两段提示词互换一下就行,文件格式不用变。

Codex 读完 handoff.md 还是理解错了怎么办?

多半是"验收标准"写得太虚。改成能直接检查的条件,比如"python -m unittest 全部通过",而不是"功能完善"。

两个工具同时改同一个项目可以吗?

不建议。同一时间只让一个工具改代码,交接完再换,免得互相覆盖。

相关文章

Claude Code 怎么控制 Unreal Engine?Epic 官方插件安装、MCP 连接与安全设置(UE5 实操)

Claude Code 怎么控制 Unreal Engine?Epic 官方插件安装、MCP 连接与安全设置(UE5 实操)

Epic Games 在 Anthropic 官方插件市场提供了 Claude Code Unreal Engine 插件 unreal-engine-skills-for-claude-code,配合编辑器里的 Unreal MCP,就能让 Claude Code 直接操作 UE5 编辑器。本文讲清编辑器端要开哪两个插件、怎么启动 MCP 服务、Claude Code 端怎么装插件和验证连接,以及 execute_tool_script 等安全设置。我们用 AICodeWith 的 Key 实测:插件 2.5 秒装好,全程不需要登录 Anthropic 账号。