Claude Code 和 Codex 怎么一起用?claudex-loop 让两家模型互审计划和代码(一个 Key 跑两端)

想让 Claude Code 和 Codex 一起用,一个写计划、一个挑毛病?开源技能包 claudex-loop 把这件事做成了固定流程:一边出计划,另一边评审,通过后再写代码,最后换对方检查。我们用同一个 AICodeWith Key 把两端都接好,在真实 git 仓库里跑了两遍完整流程:一遍 125 秒,一遍 314 秒,Codex 在计划阶段指出了「导出文件会覆盖数据库」这样的问题。

7 分钟阅读
Claude Code 和 Codex 怎么一起用?claudex-loop 让两家模型互审计划和代码(一个 Key 跑两端)

先说结论:claudex-loop 让 Claude Code 和 Codex 一起用:你在一边写计划,另一边独立评审,通过后再动手写代码,写完再换对方检查一遍。两端都接同一个 AICodeWith Key 就能跑,不需要额外的 Key。

我们在 Claude Code 2.1.303 + Codex CLI 0.163.0 上,用同一个 Key 跑了两遍完整流程:

  • 小任务(加一个 remove 命令,Claude 写代码):全程 125 秒,Codex 评审计划 14 秒、检查代码 15 秒,都直接通过
  • 稍大的任务(加 CSV 导入导出,Codex 写代码):全程 314 秒,Codex 第一轮评审 22 秒,提了 3 条修改意见,其中一条是「导出到数据库文件会把数据库覆盖掉」;改完第二轮通过
  • 最后由 Claude 检查 Codex 写的代码,指出 3 个低风险问题,其中「CSV 第一行是空行会被当成缺表头」我们手动复现成功

获取 API Key →

适合谁用

  • 改动有一定风险的需求:数据格式、迁移、删除操作这类,一旦计划想错,返工成本高。让另一家模型先挑一遍,比写完再查便宜
  • 已经两边都在用的人:Claude Code 和 Codex 都装好了,想让它们分工,而不是来回复制粘贴
  • 想要留痕的团队:每一轮评审意见、采纳还是拒绝、谁写的代码谁检查的,都会记进日志文件

一行就能改完的小事不用开这个流程,技能说明里也写明了它不用于琐碎修改。只想让模型帮你看一遍代码,可以看 AI 代码审查的用法,或者我们写过的 Claude Code 用 REVIEW.md 做代码审查。

第一步:两端都接上同一个 Key

claudex-loop 不直接调用模型接口,它是在本机启动另一个 CLI 去干活。所以两个 CLI 都要能单独跑通,用全局配置最省事。

Claude Code:编辑 ~/.claude/settings.json,在 env 里填上:

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

详细步骤见 Claude Code 接入第三方 API 教程。

Codex:编辑 ~/.codex/config.toml,写入:

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

[model_providers.aicodewith]
name = "aicodewith"
base_url = "https://api.aicodewith.ai/chatgpt/v1"
wire_api = "responses"
experimental_bearer_token = "sk-你的Key"

详细步骤见 Codex 接入 AICodeWith 教程,每一项的含义见 Codex config.toml 配置指南。

配好后各跑一句确认能通。我们实测 Claude Code 2 秒左右返回,Codex 2.4 秒返回:

bash
claude -p "只回复 OK"
codex exec --skip-git-repo-check "只回复 OK"

最后确认 Python 版本不低于 3.10,claudex-loop 的调度脚本要用:

bash
python3 --version
用 experimental_bearer_token 的话,codex login status 会显示 Not logged in,这不影响使用。我们实测在这个状态下整套流程照常跑完。判断 Codex 能不能用,以上面 codex exec 能不能返回为准。

第二步:安装 claudex-loop

claudex-loop 是 Chase AI 开源的技能包(MIT 许可),我们测试时的版本是 2.1.0。里面有 4 个技能:

技能用来做什么
claudex-loop完整流程:理清需求、写计划、对方评审、写代码、对方检查
claudex-route推荐这件事该交给谁做,需要时帮你做一次交接
codex-review明确指定让 Codex 评审一份现成的计划
codex-build明确指定让 Codex 写代码,再由 Claude 检查

后两个是兼容老用法的入口,依赖 claudex-loop 里的共享脚本,不能单独装。

在 Claude Code 里装(插件方式),在 Claude Code 里输入:

text
/plugin marketplace add chaseai-yt/claudex-loop
/plugin install claudex-loop@claudex-loop

我们实测加插件市场 1.6 秒,安装 0.3 秒。装好后用 /claudex-loop:claudex-loop 调用完整流程。

在 Codex 里用(手动复制),按 README 的做法,在仓库目录里执行。这样两边都装上了,Codex 里用 $claudex-loop 调用,开一个新会话才会生效:

bash
git clone https://github.com/chaseai-yt/claudex-loop
cd claudex-loop
mkdir -p ~/.agents/skills ~/.claude/skills
cp -R skills/. ~/.agents/skills/
cp -R skills/. ~/.claude/skills/
4 个技能要一起复制。只复制 codex-review 或 codex-build 会因为找不到共享脚本而跑不起来。只有 claudex-route 可以单独装。

实测:在 Claude Code 里跑完整流程

测试仓库是一个极简的待办清单 todo.py,数据存在 todos.json,带 2 个单元测试。整个流程由 Claude Code 调度,Codex 由脚本在后台以只读模式启动来评审。

第一遍:builder=claude,加 remove 命令

在 Claude Code 里输入:

text
/claudex-loop:claudex-loop 给 todo.py 加一个 remove <id> 命令:删除指定 id 的待办,找不到时输出 not found,并补上对应的单元测试。证明命令用 python3 -m unittest。我授权你计划并实现,rounds=3,builder=claude。不要 git commit。
阶段谁做用时结果
看代码、写 PLAN.mdClaude约 54 秒自己发现了原来 len(items)+1 分配 id 删除后会重复,写进计划
计划评审Codex14 秒APPROVED,0 条意见
写代码、跑测试Claude约 27 秒新增 4 个测试,6 个测试全过
代码检查(新会话)Codex15 秒APPROVED,0 条意见
汇总Claude约 14 秒输出改动、验证和评审记录

全程 125 秒。计划存在 PLAN.md,每一轮的评审结果、采纳情况记在 PLAN-REVIEW-LOG.md。

我们是用 claude -p 无头运行的,所以实际提示词里还多写了一句「不要停下来问我问题,需要决定的地方按你的推荐处理并记录在日志里」。在交互界面里用不需要加,它会在需要你拍板的地方停下来问。

第二遍:builder=codex,加 CSV 导入导出

第二遍我们换成 Codex 写代码,任务稍复杂一点:

text
/claudex-loop:claudex-loop 给 todo.py 加两个命令:export <文件.csv> 把所有待办导出成 CSV;import <文件.csv> 从 CSV 导入待办,追加到现有清单里。补上单元测试,证明命令用 python3 -m unittest。我授权你计划并实现,rounds=3,builder=codex。不要 git commit。
阶段谁做用时结果
看代码、写计划Claude约 78 秒列了 10 条决定,比如 CSV 表头、编码、导入时忽略原 id
计划评审第 1 轮Codex22 秒REVISE,3 条意见(1 高 2 中)
按意见改计划Claude约 48 秒3 条全部采纳
计划评审第 2 轮Codex11 秒APPROVED
写代码Codex60 秒改了 todo.py 和测试文件
跑测试Claude约 23 秒14 个测试全过
代码检查(新会话)Claude37 秒APPROVED,附 3 条低风险意见
汇总Claude约 26 秒

全程 314 秒。Codex 第一轮提的 3 条意见是这样的:

claudex-loop-codex-plan-review

翻译过来:

  • R1(高):计划允许导出到任意文件,没排除数据库本身。如果有人执行 export todos.json,JSON 数据库会被 CSV 覆盖,之后所有命令都会报错。建议拒绝导出到数据库文件,包括指向它的软链接、硬链接
  • R2(中):计划说「用现有最大 id + 1,删除后 id 不会复用」,这不对。加了 1、2 再删掉 2,最大值变回 1,下一个还是 2。要么真的记录历史最大值,要么把说法改成「当前清单里唯一」
  • R3(中):计划一边说导入时跳过空文本,一边又承诺导出再导入能原样还原。现有的 add 本来就能存空文本,这样导出再导入会悄悄丢数据

R2 说的正是第一遍留下的 max + 1 写法:它能保证当前清单里 id 不重复,但删掉最大的那条后,这个 id 会被再次用上。第一遍的计划只承诺了「不重复」,所以没被挑出来;第二遍计划写成了「不会复用」,Codex 就用具体例子指了出来。Claude 最后选择把说法改成「当前清单内唯一」,没有改动 add 的现有行为。

我们按最终代码手动验证了 R1 的修复:执行 export todos.json 输出「错误: 不能导出到数据库文件」并返回 1,数据库内容不变。

最后的代码检查抓到 bug 了吗

第一遍没有。第二遍 Claude 检查 Codex 写的代码,提了 3 条低风险意见,Claude 作为调度方决定都先不修,记进日志:

  • 在 Python 3.13 以下,导出到一个循环软链接会直接打出报错堆栈(我们的环境是 3.13.5,不受影响)
  • CSV 第一行如果是空行,会被当成缺少表头
  • 导出写目标 CSV 不是原子操作,写到一半失败会留下残缺文件

第二条我们手动复现了:在表头前加一个空行再导入,输出「错误: CSV 缺少 text 列」。这是一个真实的小 bug,只是没严重到要返工。

builder 怎么选

builder 决定谁写代码,检查代码的永远是另一方。写计划的永远是你当前所在的那个工具。

你在哪里启动写计划评审计划默认写代码检查代码
Claude CodeClaudeCodexClaudeCodex(新会话)
CodexCodexClaudeCodexClaude(新会话)
  • builder=claude(在 Claude Code 里的默认值):Claude 直接用自己的工具改代码,少一次交接,第一遍我们 125 秒就跑完了
  • builder=codex:Claude 调度,Codex 在后台写代码。要求工作区是干净的,我们实测 Claude 把计划和日志放到了仓库外面,就是为了让 Codex 看到干净的目录。有未提交的改动时,先提交或用 git worktree 隔离

想换「谁写计划」,就换到另一个工具里启动。

两边的模型在哪改

你在 Claude Code 界面里选的模型,不会同步给 Codex,反过来也一样。两边各用各的配置:

  • Claude 这边:会话里用 /model 切换,或在 ~/.claude/settings.json 的 env 里加 ANTHROPIC_MODEL
  • Codex 这边:改 ~/.codex/config.toml 里的 model
  • 只改这一次:在命令里加 reviewer_model=、builder_model=、inspector_model=,分别指定评审、写代码、检查用的模型

我们两遍都没指定模型,日志里记录的是 Codex 用了 gpt-6.1-sol,Claude 检查时用了 claude-opus-5-5。

常见问题

claudex-route 和 handoff.md 交接有什么区别?

handoff.md 交接是你手动让一边把进度写进文件、停下,再让另一边读文件接着干,适合任务做到一半换工具。claudex-route 是一个技能:它先建议这件事该谁做、用什么模型,你要求的话它会直接启动另一个 CLI 完成一次有边界的任务,再把结果拿回来检查。前者靠文件,什么工具都能接;后者自动启动、自动收结果,但只做一次,不会进入多轮评审。要多轮评审就用 claudex-loop。

需要两个 Key 吗?

不需要。claudex-loop 不直接调用模型接口,也不需要额外的 Key,它用的是两个 CLI 各自的配置。两边填同一个 AICodeWith Key 即可,我们两遍测试都是这样跑的。

Codex 报 401,但 Key 明明没错?

我们测试时遇到过:Key 用 curl 直接调能通,Codex 却报 401 Unauthorized: {"error":"请在请求中提供有效的 API Key。"}。原因是环境里设了 CODEX_HOME,Codex 读的是那个目录下的另一份 config.toml,里面的 Key 是占位符。用 echo $CODEX_HOME 检查一下,取消它或指向 ~/.codex 后就好了。

评审会改我的代码吗?

不会。按 README 的说明,Codex 评审时用只读沙箱,Claude 评审时只开放读文件和搜索工具,也不加载 MCP。真正改代码的只有 builder。

会自动 git commit 吗?

不会主动提交,提交和推送按你原本的要求来。我们在提示词里写了「不要 git commit」,两遍跑完改动都留在工作区等你确认。

获取 API Key →

立即注册,让 Claude Code 和 Codex 一起干活 →

资料来源

相关文章

Codex 桌面版怎么编辑之前的消息?改完提示词代码会不会回滚(附 CLI 双击 Esc 回退与 git 兜底)

Codex 桌面版怎么编辑之前的消息?改完提示词代码会不会回滚(附 CLI 双击 Esc 回退与 git 兜底)

Codex 编辑之前的消息、回退到某一轮重新来,是很多人改需求时最常用的操作,但它到底会不会把代码一起撤销?我们在 Codex CLI 0.163.0 里实测:连改三轮后双击 Esc 回退到第一条消息再重发,提示直接写着「File changes are unchanged」,第二、三轮的文件改动全部还在。本文讲清 CLI 怎么回退、桌面版官方说了什么,以及用 git 兜底撤销代码的做法。

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 账号。