适用场景:Claude Code / Codex 混用,CLI、IDE、客户端多端切换,任一账号可能被封或限流。 一句话总纲:把"项目记忆、任务状态、协作规则"全部落在仓库文件里;工具只是可替换的"手",仓库才是"脑"。 整理时间:2026-07-30,关键结论均已对照两家官方文档核实(链接见文末附录 D)。


一、一页结论(30 秒版)

问题本质:聊天记录锁在各家工具里,账号一封就全丢。所以不要让任何重要状态只活在聊天记录里。

三件事做完,任何工具封号后 5 分钟内换另一个无损接手:

  1. 一套记忆文件,全工具通吃:项目规则只写一份(CLAUDE.md),用符号链接生成 AGENTS.md,两家(以及 Cursor/TRAE 等)都能读。你已有的全局符号链接方案方向完全正确,但有一个漏洞要补:Codex 读不到 ~/Projects/ 层的全局记忆(详见第三节)。

  2. 开工/收工两条命令/pickup(接手先看现场)+ /handoff(收工写交接单),两个工具装同一套,换手像交接班一样自然。

  3. git 纪律:小步提交 + 同一分支同一时刻只有一个工具在写。git 就是最好的断点续传器。

额外红利:两个工具都在手上,不只是互为备胎——交叉评审(谁写的代码让另一家审)是成本最低、收益最确定的质量提升手段。


二、设计思路:为什么"仓库为王"

三个现实约束决定了方案形态:

现实约束

推论

任一账号可能封号/限流,聊天记录随时可能拿不回来

重要结论、任务状态必须落盘到仓库文件,不依赖任何一家的云端

工具混用(CLI/IDE/客户端),甚至和同事两人多工具同时开一个项目

协作锚点必须是工具无关的:markdown 文件 + git,谁都能读写

两家产品功能迭代快、专属功能(hooks/skills/cloud)随时变

核心流程只依赖两家的"最大公约数":读 markdown 规则文件、执行 shell、读写文件

所以整套方案分三层:地基层(统一记忆文件,一次性搭好)→ 日常层(开工/收工仪式)→ 应急层(封号切换 SOP)。


三、地基层:一套记忆文件,全工具通吃(一次性 10 分钟)

3.1 两家工具怎么读规则文件(已核实的事实)

Claude Code

Codex

认什么文件

只读 CLAUDE.md(官方明确不读 AGENTS.md,推荐用符号链接或 @AGENTS.md 导入兼容)

只读 AGENTS.md(可配 fallback 文件名)

查找范围

从当前目录一路向上逐级找(所以 ~/Projects/CLAUDE.md 天然生效);子目录的按需加载

全局 ~/.codex/AGENTS.md + 从 git 仓库根向下找(不会看仓库外面的目录

全局个人层

~/.claude/CLAUDE.md

~/.codex/AGENTS.md

关键发现:你现在 ~/Projects/CLAUDE.md(真身)+ AGENTS.md(符号链接)的方案,对 Claude Code 是完美的(它向上查找会读到);但 Codex 从 git 仓库根开始找,永远不会看 ~/Projects/ 这一层——也就是说全局红线(敏感信息、不 push 主分支等)Codex 一直没读到。要补。

3.2 补漏三步(复制执行)


# 第 1 步:让 Codex 也吃到全局记忆 # 把 Codex 的全局指令文件直接链到 ~/Projects/CLAUDE.md,一份内容两家共用 mkdir -p ~/.codex ln -sf /Users/yiren/Projects/CLAUDE.md ~/.codex/AGENTS.md # 第 2 步:给 Codex 上双保险 # 教 Codex:项目里找不到 AGENTS.md 时,直接读 CLAUDE.md # (若 ~/.codex/config.toml 里已有这个键,手动合并,别重复添加) echo 'project_doc_fallback_filenames = ["CLAUDE.md"]' >> ~/.codex/config.toml


# 第 3 步:每个项目仓库根目录的标准三件套(新项目照做,老项目补齐) touch CLAUDE.md # 真身:项目规则(可让工具用 /init 生成初稿) ln -s CLAUDE.md AGENTS.md # 一份内容两个名字,Claude/Codex/Cursor/TRAE 全认 mkdir -p docs/plans # 大任务的计划文档目录(进 git,矿山也能看)

说明:真身用 CLAUDE.md 还是 AGENTS.md 都行,关键是保持全局一致。你现有习惯是"CLAUDE.md 真身、AGENTS.md 链接",就统一沿用这个方向,编辑时永远只改 CLAUDE.md。 小注:~/.codex/AGENTS.md 是全局生效的,就算在 ~/Projects 之外跑 Codex 也会带上这份规则——内容本来就是你的个人全局规则,无害。 可选项:如果以后有项目放在 ~/Projects 之外,Claude Code 也会读不到全局记忆,届时在 ~/.claude/CLAUDE.md 里加一行 @/Users/yiren/Projects/CLAUDE.md 导入即可。

3.3 规则文件里写什么(两家通用的写法)

  • :构建/测试命令、目录结构、编码规范、红线(敏感信息、分支纪律)、"两个工具的分工提示"(比如"评审类任务优先交给非作者工具")

  • 别写:长篇教程、经常变的东西(放 docs/ 里按需引用)

  • 控制在 200 行以内:官方实测过长会降低遵循度。两家都是"当上下文参考"而不是"强制执行",越具体越管用("用 2 空格缩进" 好过 "格式规范一点")


四、日常层:开工 /pickup、收工 /handoff(核心习惯)

这是整套方案里日常价值最大的部分:把"换工具/换会话"变成标准交接班。

4.1 机制:一份交接单 + 两条命令

  • 交接单:仓库根目录 WORKLOG.md,最新一条在最上面。它不进 git(是你个人的现场记录,不打扰矿山、不污染 MR),加进全局 gitignore 即可;同一台 Mac 上换工具完全够用。

  • 两条命令:两家都支持"markdown 文件当自定义命令"——Claude Code 放 ~/.claude/commands/,Codex 放 ~/.codex/prompts/,都用 /命令名 调用。同一份文件,符号链接共用,永远不会两边不一致。


# 一次性安装(复制整段执行) echo "WORKLOG.md" >> ~/.gitignore_global # 交接单全机不进 git mkdir -p ~/.claude/commands ~/.codex/prompts # 写入 /handoff 命令(收工/换工具前用) cat > ~/.claude/commands/handoff.md <<'EOF' --- description: 收工/换工具前,把现场写成交接单 --- 把当前工作状态写成一份交接单,插到仓库根目录 WORKLOG.md 的最上方(文件不存在就创建)。格式: ## <日期 时间> · <你是哪个工具/模型> - 分支/提交:当前分支、最新一条 commit、未提交改动的简述 - 本次目标:一句话 - 已完成:列表,带关键文件路径 - 进行中:具体到"哪个文件、改到哪一步" - 下一步:接手者要做的第一件事 - 坑与结论:这次踩过的坑、已确认的技术结论,避免下家重走弯路 - 验证方式:跑什么命令、看什么结果算通过 写完后:如有未提交的代码改动,问我是否先打一个 WIP 提交,不要自作主张。 EOF # 写入 /pickup 命令(开工/接手时用) cat > ~/.claude/commands/pickup.md <<'EOF' --- description: 开工/接手,先看现场再动手 --- 你正在接手一项可能由另一个工具(Claude Code 或 Codex)做到一半的工作。按顺序执行: 1. 先跑 git status 和 git log --oneline -10,看清现场(可能有别的工具或同事的改动) 2. 读仓库根目录 WORKLOG.md 最上面一条交接单(没有该文件就跳过) 3. 若 docs/plans/ 下有相关计划文档,读一下当前进度 4. 用不超过 5 句话向我汇报:现在在哪、上一家做到哪、你打算下一步做什么 5. 等我确认后再动手,不要直接开改 EOF # Codex 侧链接同一份文件(若个别版本不认符号链接,就改成 cp 复制) ln -sf ~/.claude/commands/handoff.md ~/.codex/prompts/handoff.md ln -sf ~/.claude/commands/pickup.md ~/.codex/prompts/pickup.md

4.2 什么时候用

时机

动作

每次开工 / 接手别人(别的工具)的活

/pickup,听完汇报再放行——这和你"先对齐再动手"的习惯是同一件事

收工、上下文快满、快到限流窗口、预感要换工具

/handoff

突然被封号来不及 /handoff

手动往 WORKLOG.md 写两行"在干嘛/下一步",比什么都不留强十倍

4.3 大任务加一层:计划文档(plan-first)

复杂任务别直接开写:先让工具产出 docs/plans/任务名.md(目标、拆步、涉及文件、验证方式),你确认后再执行,每完成一步就在文件里打勾。这个文件进 git——这样任何工具、任何同事接手,看 plan 就知道全局进度;它也是比聊天记录可靠一万倍的"任务主线"。


五、git 纪律:多工具不打架

在你已有红线(不 push 主分支、push 前核对 HEAD、动手前 git status)基础上,补三条多工具专用纪律:

一支笔原则。同一时刻、同一分支,只允许一个工具在写。第二个工具要么只读(评审、答疑),要么去别的分支。

并行就用 worktree。让两个工具同时干不同任务时,给第二个工具开独立工作目录,物理隔离、互不踩踏:


# 在项目里给另一个任务开独立工作区(示例) git worktree add ../项目名-featB feat/task-b # 然后一个工具在原目录干 A,另一个工具在 ../项目名-featB 干 B

小步提交 + 署名。每完成一个可验证的小步就 commit,信息里带上工具署名(如 feat: xxx [cc] / [codex]),断点续传有存档,回溯问题也知道是谁写的。封号最惨的情况下,损失也只是最后半小时。


六、双工具四种配合打法(都可用时,1+1>2)

打法一:主备互换(容灾,默认状态)

平时主力用一个,另一个保持"温备":每周至少让备用工具干一件小活(比如跑一次交叉评审),保证登录态有效、配置没坏、手感不生。真到封号那天,切换才能真的只花 5 分钟。

打法二:交叉评审(性价比最高,强烈建议养成习惯)

谁写的代码,让另一家评审。同一个模型会顺着自己的思路自我认同,换一个模型盲区不同,两家都看过的 diff 质量明显更高。合并 MR 前跑一遍:


# Claude Code 写完 → 让 Codex 评审(非交互一次性执行) codex exec "你是严格的代码评审员。评审 git diff main...HEAD 的全部改动,重点:逻辑漏洞、边界条件、安全隐患、更简单的写法。中文输出,按严重程度排序,可直接合并就明说"


# Codex 写完 → 让 Claude Code 评审 claude -p "你是严格的代码评审员。评审 git diff main...HEAD 的全部改动,重点:逻辑漏洞、边界条件、安全隐患、更简单的写法。中文输出,按严重程度排序,可直接合并就明说"

打法三:计划-执行分工

社区大量实战的共识:"Claude Code 是探索者,Codex 是执行者"。问题还不清楚(架构讨论、找不明原因的 bug、方案权衡)→ 用 Claude Code 边聊边探;任务已经清晰、指令能写明白 → 丢给 Codex 精确执行。中间的交接物就是第四节的 docs/plans/ 计划文档——A 出计划、你拍板、B 执行,天然解耦。

打法四:第二意见

卡住超过 30 分钟没进展:把"问题 + 已试过的路 + 报错"整理成一段话丢给另一家。换模型约等于换个脑子,经常一击即中。这也是"温备"的日常练兵方式。

进阶(可选):互相挂成 MCP 工具

两家可以互相调用:把 Codex 注册进 Claude Code(claude mcp add codex -- codex mcp-server),Claude 干活时能随手"问一嘴 GPT";反向在 ~/.codex/config.toml 里把 claude mcp serve 挂为 MCP server 也行。玩法很酷,但先把上面四种用顺再说——协议比工具重要


七、多端怎么选:本地为王,云端为辅

会话/配置存哪

建议

Claude Code:CLI / IDE 插件 / 桌面 App

三者共用本机 ~/.claude/,会话可用 claude --continueclaude --resume 互相接续

主战场。重活、长任务、需要 MCP 和完整权限的都在这

Codex:CLI / IDE 插件

共用本机 ~/.codex/codex resume --last 恢复上次会话

同上,Codex 侧主战场

两家的网页/云端(claude.ai/code、ChatGPT 里的 Codex)

云端沙箱,独立环境

都深度绑定 GitHub。咱们代码在 Codeup,基本接不上,不作主力;偶尔跑跑与仓库无关的独立小任务

手机/桌面聊天客户端

云端

出门看进度、想思路、写文案;不做仓库重活

原则一句话:换端不换锚点——不管在哪个端,开工 /pickup、收工 /handoff、状态在仓库,三件事永远成立。


八、封号/不可用应急 SOP

平时五防(做到了,封号就只是换个工具的事)

  1. 状态全在仓库:规则在 CLAUDE.md、进度在 plans、现场在 WORKLOG、代码在 git——本方案前面全部内容,本质都是在做这一条。

  2. 双工具常年双活:备用工具每周至少用一次(见打法一)。

  3. 认证双通道:两家都是"订阅登录"和"API key 按量付费"两条独立通道。给两家各充一小笔 API 余额备着,订阅号出问题时 API 通道多半还能用(不保证,但多一条路)。备用 key 按你现有规则存 ~/Projects/.env.global,不进 git。

  4. 账号卫生:官方客户端、不共号、网络环境稳定、别拿一个号开夸张的并发——这些是封号的高频诱因。

  5. 知道本地文件在哪:Claude Code 会话在 ~/.claude/projects/,Codex 会话在 ~/.codex/sessions/,都是本地 JSONL 文件。封号不会销毁本地文件,丢的只是云端和登录态——所以永远别把重要结论只留在云端聊天记录里。

事发五步(目标 10 分钟内恢复干活)

  1. 看现场git status + git log --oneline -5,确认代码没丢、丢了多少。

  2. 补交接:来不及 /handoff 的,手动往 WORKLOG.md 写两行(在干嘛、下一步)。

  3. 抢救旧会话(可选):开源工具 continues 可以把 Claude Code 的会话解析后喂给 Codex 接着聊(反向同样支持),安装与用法见下方命令。它只读不改原会话文件,装不装都行——WORKLOG 交接单才是保底,这个工具是锦上添花

  4. 新工具接手:打开另一个工具,/pickup,听汇报,放行。

  5. 事后:申诉走官方渠道;这段时间主力工具就是"另一家",流程完全不变。


npm install -g continues # 需要 Node ≥ 22.5,装一次即可 continues # 交互式选择:哪个旧会话 → 交给哪个工具继续


九、30 分钟落地清单

按顺序做完即上线(1~4 全局只做一次):

  1. 补 Codex 全局记忆ln -sf /Users/yiren/Projects/CLAUDE.md ~/.codex/AGENTS.md(3.2 第 1 步)

  2. Codex fallback 配置:config.toml 加 project_doc_fallback_filenames = ["CLAUDE.md"](3.2 第 2 步)

  3. 安装 /handoff 和 /pickup:执行 4.1 的整段脚本

  4. WORKLOG.md 加入全局 gitignore(含在 4.1 脚本里)

  5. 存量项目补文件:给"生财 AI 主页"等在用项目补 AGENTS.md 链接和 docs/plans/(3.2 第 3 步)

  6. 验证 Claude Code:项目里开 claude,输入 /context,确认 Memory files 列表里有该项目及全局的 CLAUDE.md

  7. 验证 Codex:项目里开 codex,直接问"你读到了哪些 AGENTS/CLAUDE 规则文件?",确认全局+项目两层都在

  8. 演习一次:用主力工具干个小活 → /handoff → 换另一个工具 /pickup → 确认它准确说出"上一家做到哪、下一步干嘛"。演习通过,这套系统就算正式上线

  9. 定个习惯:每周让备用工具跑一次交叉评审(打法二),一举两得


附录 A:两工具对照速查表

事项

Claude Code

Codex

项目规则文件

CLAUDE.md(当前目录向上逐级查找)

AGENTS.md(全局 ~/.codex/ + git 根向下;可配 fallback 读 CLAUDE.md)

全局个人配置目录

~/.claude/

~/.codex/(配置为 config.toml)

自定义命令

~/.claude/commands/*.md/命令名

~/.codex/prompts/*.md/命令名(官方后续主推 skills,届时平滑迁移)

MCP 接入

claude mcp add ...;项目级 .mcp.json

codex mcp add ...;config.toml 的 [mcp_servers]

恢复上次会话

claude --continue(最近一个)/ claude --resume(挑选)

codex resume --last / codex resume(挑选)

会话本地存储

~/.claude/projects/(JSONL)

~/.codex/sessions/(JSONL)

权限档位(心智对照)

Plan 只读规划 / 默认逐条确认 / acceptEdits 自动改文件

read-only / auto(工作区可写)/ full access

无人值守跑一条指令

claude -p "指令"

codex exec "指令"

附录 B:WORKLOG.md 交接单模板


## 2026-07-23 18:30 · Claude Code - 分支/提交:feat/login-refactor @ a1b2c3d,工作区干净 - 本次目标:把登录态校验从页面层收敛到中间件 - 已完成:middleware/auth.ts 新建;pages/login.vue 移除旧校验 - 进行中:composables/useUser.ts 改到一半,token 刷新逻辑还没接 - 下一步:接手者先跑 pnpm dev,复现"刷新页面丢登录态",再继续 useUser.ts - 坑与结论:token 在 localStorage 不在 Cookie;SSR 阶段读不到,只能客户端挂载后校验 - 验证方式:pnpm dev 后登录 → 刷新页面不掉登录 → pnpm test 全绿

附录 C:为什么不用"共享聊天记录"来做交接?

有人会想:能不能让两个工具直接共享对话历史?技术上有社区方案(如 continues),但不建议作为主依赖:格式是各家私有的、随版本变、且聊天记录冗长充满噪音。交接单是"提炼后的状态",100 行聊天不如 10 行交接。人类团队交接班也是靠交接记录,不是靠回放监控录像。

附录 D:参考资料(关键结论出处)

  • Claude Code 官方·记忆机制(CLAUDE.md 查找规则、AGENTS.md 兼容方案):code.claude.com/docs/en/memory

  • Codex 官方·AGENTS.md 规则(查找顺序、全局文件、fallback 配置):developers.openai.com/codex/guides/agents-md

  • Codex 官方·配置基础(config.toml、MCP、权限档位):developers.openai.com/codex/config-basic

  • Codex 官方·自定义提示词(~/.codex/prompts):developers.openai.com/codex/custom-prompts

  • AGENTS.md 开放标准(多工具通用):agents.md

  • continues 跨工具会话交接(开源):github.com/yigitkonur/cli-continues

  • 双工具实战参考:《Using Claude Code and Codex Together》(codex.danielvaughan.com)、Towards Data Science 同题文章

更多推荐