同一个项目能不能同时用 Claude Code 和 OpenAI 的 Codex CLI?可行,两边官方都给了配套——但不是装上就能跑。有两道坎必须先迈过:指令文件互不相认(Claude 只读 CLAUDE.md,Codex 只读 AGENTS.md),以及两个 agent 不能同时写一个工作区。本文以 Akke 仓库的真实现状为例,把落地路径讲清。
先说结论:双开可行,且已经是社区常见做法——两个工具用不同公司的模型,互相 review 时能避开"自己审自己"的盲区;OpenAI 甚至官方出了一个装在 Claude Code 里的 Codex 插件。但"可行"不等于"零成本":Akke 的项目知识大量写在 Claude Code 专属机制里(CLAUDE.md、24 个 skills、memory 目录),Codex 一条都读不到,裸着进来等于一个不看文档的新同事。
Claude Code 团队天天在用,不展开。Codex 这边如果你的印象还停留在 2025 年的"research preview",那已经全过时了:现在是开源 Rust CLI(2026-07 最新版 v0.144),ChatGPT 各订阅档位都含 Codex 用量(也可 API key 按量付费),默认模型是 GPT-5.6 系列(CLI 默认 gpt-5.6-sol),CLI / IDE 扩展 / 云端并行环境(codex cloud)多形态一体。A
| 维度 | Claude Code | Codex CLI |
|---|---|---|
| 项目指令文件 | 只读 CLAUDE.md(支持 @import) | 只读 AGENTS.md(git root → cwd 逐层拼接,默认 32 KiB 上限) |
| 权限模型 | 按工具 / 按命令审批(allow/deny 规则 + hooks),粒度在"哪条命令" | OS 级沙箱(macOS Seatbelt / Linux bwrap),沙箱内全自动,越界才审批,粒度在"文件系统 / 网络边界" |
| 网络 | 默认可联网 | 沙箱默认断网(network_access 需显式打开) |
| git 行为 | 默认不主动 commit | 同样默认不 commit;改动留在 working tree |
| 扩展机制 | skills / hooks / subagents / MCP / plugins | profiles / MCP(一等公民)/ plugins / codex cloud |
| 保护目录 | — | 沙箱内 .git、.codex、.agents 强制只读 |
来源:两家官方文档(code.claude.com / developers.openai.com)A
network_access。A
两个事实:Claude Code 至今不原生读 AGENTS.md(官方 memory 文档原话:"Claude Code reads CLAUDE.md, not AGENTS.md";对应 feature request #6235 开了近一年仍无排期)A;Codex 也不原生读 CLAUDE.md A。网上流传的"Claude Code 会自动 fallback 读 AGENTS.md"的说法是假的。B
这对 Akke 意味着什么?看仓库现状:
CLAUDE.md ✓ 存在(172 行,含高危路径 PR 规则 / migration 命名 /
eval key 花费隔离 / RLS 三层防御 …… 全部项目军规)
AGENTS.md ✗ 不存在
.codex/ ✗ 不存在
也就是说,今天直接在 Akke 里跑 Codex,它一条项目规则都看不见:不知道 migration 要用时间戳前缀、不知道评测必须走 eval key 隔离花费、不知道哪些路径必须走 PR。这些规则每一条背后都是真实事故换来的。
| 方案 | 做法 | 适合 | 证据 |
|---|---|---|---|
| ① import 桥接 | AGENTS.md 当唯一真源;CLAUDE.md 只剩一行 @AGENTS.md(+ 少量 Claude 专属段) | 官方推荐的长期解;跨平台、随 repo 走,队友零配置 | A |
| ② symlink | ln -s AGENTS.md CLAUDE.md | 零维护但没法写 Claude 专属内容;Windows 有权限坑 | A |
| ③ Codex fallback | ~/.codex/config.toml 里配 project_doc_fallback_filenames = ["CLAUDE.md"],让 Codex 直接读 CLAUDE.md | 老仓库零改动、最快见效;但配置只在本机生效,每人都要配一次 | A |
| ④ 双文件各写各的 | CLAUDE.md 和 AGENTS.md 独立维护 | 不建议——最高频踩坑是改了一份忘另一份,两个 agent 对同一约定行为不一致且极难排查 | B |
docs/claude-memory/ 记忆体系 Codex 不会递归去读,重要规则必须写在指令文件正文里。A
两边都默认不 commit、都把改动留在 working tree——这恰恰是危险所在:让两个 agent 并行写同一个目录,等于两个人共用一块白板同时写字。社区反复报告的具体故障模式:B
.git/index.lock 竞争 — 两个 agent 同时 git add/commit 抢索引锁,崩溃后残留 lock 文件阻塞后续所有 git 操作git add -A(Codex 有此习惯的公开 issue),会把对方未审的改动一起打包进自己的 commit,署名和实际作者对不上git restore 覆盖用户未提交改动的数据丢失 issue(GPT-5.2 时期,#8213 / #8643)——交替跑两个 agent 时这类风险被放大同一时刻只有一个 agent 在写:Claude 写完 → Codex review 审未提交 diff(或反向)。零覆盖风险、零额外设施,日常最常用。
每个 agent 一个 worktree + 独立分支,冲突从"工作时静默发生"变成"merge 时被 git 正常检测"。Akke 已有现成封装 scripts/new-worktree.sh。
并行 worktree 也不是银弹,老三样要各自独立:依赖要各装一份(node_modules 不共享)、构建缓存别共享(.next/ 等)、.env 各配各的;且任务要按 feature 边界切,别让两个 agent 从不同方向碰同一批文件——否则 merge 时照样炸。B 另外 CLAUDE.local.md 这种 gitignored 的本地指令不会跟着 worktree 走,跨 worktree 共享个人偏好要改用 @~/.claude/xxx.md import。A
双开最大的收益不是"多一双手",而是多一个不同分布的脑子:让模型 review 自己写的代码,等于从产生错误的同一个分布里再采样一次;换一家的模型来审,相关盲区小得多。B 按投入从轻到重:
| 模式 | 怎么跑 | 备注 |
|---|---|---|
| ① CLI 互审 | Claude 写完,同目录跑 codex review 审未提交 diff;或反过来 | 零设施,串行安全;Codex review 看的是整个未提交状态,正好覆盖 Claude 留下的改动 |
| ② 官方插件 | Claude Code 里装 OpenAI 官方的 codex-plugin-cc:/codex:review 对抗审查、/codex:rescue 卡住的 bug 移交 Codex | OpenAI 官方维护、28k+ star;复用本机 codex 登录,需 ChatGPT 订阅或 API key A |
| ③ PR 交叉审 | GitHub PR 上 @codex review 触发 Codex 云端审(只报 P0/P1);Anthropic 侧挂 claude-code-action | Akke 的 CI 已经挂了 claude-code-action,这条路径接入成本最低;Codex 审 PR 时会遵循仓库 AGENTS.md——又回到第 02 章 A |
| ④ worktree 并行分工 | 两个 agent 各占 worktree,按 feature 切任务并行推进 | 吞吐最大、管理成本也最大;见第 03 章的隔离三件套 |
Akke 和一般代码仓库有个关键不同:它的日常运转大量依赖 Claude Code 专属机制——24 个项目 skills(发 DM、跑反评、图文发布、扩源、日报……)、4 个 slash commands、symlink 进仓库的 docs/claude-memory/ 记忆体系、/loop 长任务编排。这些 Codex 一概读不到、跑不了。
所以在 Akke 里,Codex 的合理定位是"纯代码工 + 第二意见",而不是全能替身:
spec 明确的功能实现、重构、写测试;review Claude 写的后端逻辑 / cron / 状态机代码;PR 层 @codex review 当第二道门禁。
一切走 skills 的运营链路(发 DM、云电脑、图文、日报)、memory 读写、/loop 编排、跨仓库部署验证——这些知识只在 Claude 侧存在。
成本上,双开基本意味着两份订阅(Claude 侧 + ChatGPT 侧;Codex 也可以 API key 按量付费)。社区的普遍建议是:先用手头已有的档位跑互审模式,确认有具体的、说得出的瓶颈(比如用量顶到限额、某类任务明显更适合另一边)再升配。B
~/.codex/config.toml 配 project_doc_fallback_filenames = ["CLAUDE.md"];长期:AGENTS.md 做唯一真源 + CLAUDE.md 一行 @AGENTS.md。盯住 32 KiB 上限scripts/new-worktree.sh),按 feature 边界切任务@codex review,投入最小、见效最快migrations/、api/cron/、llm/