🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
1. Claude Code vs Codex CLI:同一把 Key 修 10 个 Issue 的任务设计
Claude Code 和 Codex CLI 都能读 Issue、改代码、跑测试,但把两者放在同一把 API Key 下修同一批 GitHub Issue,差距会落在首次通过率和 Token 消耗上。TaoToken 在这里只当两个 CLI 共用的 API 默认供应商,落地页在 TaoToken。从那里创建 Key 后,Base URL 统一写 https://taotoken.net/api,两个 CLI 都不需要改业务代码。这次比较的对象是 CLI 本身:同一把 Key、同一个模型 ID、同一台机器、同一批 10 个公开 Issue,串行跑完,记录第一次生成的补丁能否直接让仓库测试通过,以及控制台里按 Key 聚合的总 Token。
任务设计的第一步是选 Issue。我从三个公开仓库里筛出 10 个带复现步骤的 Issue,每个 Issue 都能用仓库自带的测试命令验证。筛选时过滤掉三类:需要线上数据的、涉及支付权限的、改动范围超过五个文件的。最后选中的 10 个 Issue 平均改动 2.7 个文件,最大的一个涉及 6 个文件。这样能减少环境差异对通过率的影响。每个 Issue 单独开分支,跑完重置工作区,避免上一个 Issue 的补丁影响下一个。
环境准备很明确:本地克隆仓库,AI 只生成补丁和命令,本地执行。不要把生产库、生产机、线上数据库连接交给任何 CLI。Claude Code 和 Codex CLI 都只能看到本地代码和 Issue 描述,测试命令在本地跑,跑完把失败日志贴回对话。这个边界很重要,否则修复通过率会被环境问题污染,Token 消耗也会混入无关调用。
API Key 创建:从 TaoToken 进控制台,创建一把 Key。两个 CLI 共用同一把 Key,方便用量对账。Base URL 写 https://taotoken.net/api,末尾不带 /v1。模型 ID 不要照抄博客,去模型广场看当前可用 ID,配置里用 YOUR_MODEL_ID 占位。两个 CLI 指向同一个模型 ID,比较的才是 CLI 本身,而不是模型差异。TaoToken 在这个任务里是默认供应商,不是被测对象。被测的是两个 CLI 修复 Issue 的首次通过率和 Token 消耗。公榜上排名的是模型,这次比较的是工具链路。如果有人把 TaoToken 当成参赛方,那张表就错了。
记录指标分成四项。首次修复通过:第一次生成的 patch 应用后,仓库测试命令通过,且没有人工补丁行。总 Token:从控制台按 Key 聚合,跑完 10 个 Issue 后导出。端到端耗时:从启动 CLI 到测试通过或放弃。失败原因:分类为环境、测试命令、跨文件引用、逻辑错误。公平性方面,同一把 Key、同一个模型 ID、同一批 Issue、同一台机器。两个 CLI 都串行跑,避免并发导致速率限制影响 Token 统计。每个 Issue 完成后重置工作区。Claude Code 和 Codex CLI 的顺序交替,减少模型服务波动。这样跑出来的对照表只能代表这一次运行,不能当成公榜,但足以看出两个 CLI 在工程链路上的行为差异。
2. Claude Code 接 TaoToken:settings.json 与修 Issue 流程
Claude Code 的配置方式有两种:环境变量和 ~/.claude/settings.json。临时跑用环境变量,长期用 settings.json。环境变量适合快速验证,settings.json 适合固定到日常开发。无论哪种,Base URL 都写 https://taotoken.net/api,末尾不带 /v1,也不要把 UTM 加到 Base URL 上。Key 用 YOUR_API_KEY 占位,模型 ID 用 YOUR_MODEL_ID 占位,实际值以模型广场为准。
export ANTHROPIC_BASE_URL="https://taotoken.net/api"
export ANTHROPIC_AUTH_TOKEN="YOUR_API_KEY"
export ANTHROPIC_MODEL="YOUR_MODEL_ID"
settings.json 的写法如下,放在 ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "https://taotoken.net/api",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "YOUR_MODEL_ID"
}
}
修 Issue 的流程:进入仓库目录,启动 claude。第一条消息给 Issue 链接、复现命令、测试命令。要求它先输出修改计划,再改文件。计划里必须列出要读的文件和要跑的命令。确认后让它改。改完本地跑测试。如果失败,把完整错误贴回去,让它基于错误再改。但首次通过只统计第一次 patch 是否通过,后续多轮修改不计入首次通过率。这样可以区分“一次改对”和“多轮磨对”。
提示词模板可以固定成:
Issue: <链接>
复现: <命令>
测试: <命令>
要求:
1. 先读相关文件,输出修改计划。
2. 计划确认后再改代码。
3. 改完必须执行测试命令,贴出完整输出。
4. 不要连接生产库或生产机。
Token 记录:Claude Code 会话里不一定显示总 Token。更稳的方式是跑完后去 TaoToken 控制台看 Key 的用量。按时间窗口和 Key 聚合。如果同时开了其他任务,Token 会混在一起,所以跑评测时只用这把 Key,串行跑完 10 个 Issue 再看总量。控制台里还能看到每次调用的时间分布,方便定位哪个 Issue 消耗异常。
排障方面,401 通常是 ANTHROPIC_AUTH_TOKEN 没设置或 Key 复制错。404 通常是 ANTHROPIC_BASE_URL 带了 /v1 或路径写错。模型不存在通常是 ANTHROPIC_MODEL 写了广场里没有的 ID,回模型广场确认。settings.json 不生效,先检查 JSON 语法,再看环境变量是否覆盖了文件配置。改完不跑测试,在提示词里明确要求执行测试命令,否则首次通过率会被高估。
Claude Code 在这次任务里的特点:它倾向于先读多个文件再动手,patch 结构清晰,但 Token 消耗偏高。10 个 Issue 里,7 个首次通过。失败的 3 个里,两个是跨文件引用漏改,一个是测试命令选错。这个数字是本次自测,不是公榜。Claude Code 的优势在于计划和文件阅读,代价是更多上下文进入模型,Token 总量上升。如果你的仓库文件多、跨模块引用复杂,这种消耗往往值得。
3. Codex CLI 接 TaoToken:config.toml 与修 Issue 流程
Codex CLI 的配置不要套 ANTHROPIC_*。它读 ~/.codex/config.toml。自定义供应商时,base_url 写 https://taotoken.net/api,env_key 指向你本地设置的环境变量名。模型 ID 同样以模型广场为准。下面这份配置可以直接复制后替换 Key 和模型 ID:
model = "YOUR_MODEL_ID"
model_provider = "taotoken"
[model_providers.taotoken]
name = "TaoToken"
base_url = "https://taotoken.net/api"
env_key = "TAOTOKEN_API_KEY"
wire_api = "chat"
然后设置:
export TAOTOKEN_API_KEY="YOUR_API_KEY"
注意 base_url 不要加 /v1,也不要加 UTM。wire_api 以 Codex CLI 文档和模型广场为准,如果模型只支持 chat completions,就写 chat。把 ANTHROPIC_BASE_URL 写进 Codex 不生效,Codex 不读这个变量。很多人排障时在两个 CLI 之间复制配置,结果 Codex 一直 401,原因就是把 Claude Code 的环境变量套了过来。
修 Issue 流程:进入仓库,执行 codex。第一条消息同样给 Issue 链接、复现步骤、测试命令。要求它先列计划,再改文件。Codex CLI 的对话更紧凑,倾向于快速给 patch,但有时会跳过测试。提示词里必须明确:改完立刻运行测试命令,并把输出贴回来。如果测试命令需要先安装依赖,也要提前写进提示词,否则 Codex CLI 可能默认环境已经就绪。
提示词模板:
仓库: <本地路径>
Issue: <链接>
复现: <命令>
测试: <命令>
依赖安装: <命令,如果没有写“无需”>
要求:
1. 先读文件,列计划。
2. 改完执行测试,贴输出。
3. 不连接生产库或生产机。
4. 如果测试失败,先解释原因,不要继续改无关文件。
Token 记录:Codex CLI 会话可能显示 token 使用,但跨 10 个 Issue 的总量还是以控制台为准。同一把 Key,串行跑,跑完导出用量。如果两个 CLI 同时跑,Token 会混在一起,对照表就不可信。Codex CLI 的会话上下文管理更积极,通常比 Claude Code 省 Token,但代价是读文件不够全,跨文件引用容易漏。
排障清单:401 检查 TAOTOKEN_API_KEY 是否导出,env_key 名字是否和实际环境变量一致。模型 ID 404 回模型广场确认,不要写博客里的占位符。wire_api 不匹配会报错,chat 和 responses 不要混用。改了代码没跑测试,在提示词里要求执行,失败日志贴回。环境依赖没装,提前把安装命令写进提示词,或者先手动装好再启动 CLI。
Codex CLI 这次 10 个 Issue 首次通过 6 个,总 Token 1,436,000,比 Claude Code 低约 22%。失败的 4 个里,两个是测试命令选错,一个是环境依赖没装,一个是逻辑错误。这个数字同样是一次自测,不代表公榜。Codex CLI 的优势在于速度和 Token 效率,适合改动集中、测试命令明确的 Issue。如果 Issue 涉及多个模块和隐式依赖,Claude Code 的首次通过率更有优势。
4. 双 CLI 对照表:首次通过率与 Token 消耗
下面表格是 2026-05-06 一次本地运行记录,样本 10 个公开 GitHub Issue,同一把 Key,同一个模型 ID,串行跑。它不代表公榜,也不能保证你复现出完全一样的数字。模型服务、仓库状态、提示词细节都会影响结果。本文不含排行分数,只有一次本地运行记录。公榜上的是模型,不是 CLI,所以不要把这张表和 SWE-bench Verified、LiveCodeBench 或 MArena 混在一起看。
| 指标 | Claude Code | Codex CLI |
|---|---|---|
| 首次修复通过 | 7 / 10(70%) | 6 / 10(60%) |
| 总 Token | 1,842,000 | 1,436,000 |
| 平均每个 Issue Token | 184,200 | 143,600 |
| 端到端耗时 | 2 h 18 min | 1 h 52 min |
| 失败后人工补丁行数 | 43 | 61 |
| 主要失败原因 | 跨文件引用漏改 2 个,测试命令选错 1 个 | 测试命令选错 2 个,环境依赖 1 个,逻辑错误 1 个 |
从表里看,Claude Code 首次通过率高 10 个百分点,但 Token 多用了 28%。Codex CLI 更省 Token,耗时也短,但测试命令选错的比例更高。这个差异和两个 CLI 的默认行为有关:Claude Code 更愿意先读文件和计划,Codex CLI 更快出 patch,所以需要在提示词里补测试约束。Token 消耗的差异还来自上下文管理:Claude Code 会把更多文件内容带进对话,Codex CLI 更倾向于按需读取。首次通过率差 10 个百分点,在 10 个样本里只是 1 个 Issue 的差距,样本量很小,不能当成稳定结论。
复跑命令可以先装 CLI 工具:
npm install -g @taotoken/taotoken
export TAOTOKEN_API_KEY="YOUR_API_KEY"
taotoken cc -k $TAOTOKEN_API_KEY -u https://taotoken.net/api -m YOUR_MODEL_ID
Claude Code 手动配置:
export ANTHROPIC_BASE_URL="https://taotoken.net/api"
export ANTHROPIC_AUTH_TOKEN="YOUR_API_KEY"
export ANTHROPIC_MODEL="YOUR_MODEL_ID"
claude
Codex CLI 手动配置:
export TAOTOKEN_API_KEY="YOUR_API_KEY"
codex --model YOUR_MODEL_ID
跑完 10 个 Issue 后,去控制台看用量。注意 Key 不要混用。想复现对照表,建议把提示词固定成模板:Issue 链接、复现命令、测试命令、要求先计划再改、改完必须跑测试。每个 Issue 跑完重置仓库。如果某个 Issue 第一次失败,记录失败原因,不要在同一轮里反复改,否则首次通过率会被多轮修正掩盖。
复跑时还可以用 CC Switch 管理配置。CC Switch 里自定义供应商,Base URL 填 https://taotoken.net/api,Key 填 YOUR_API_KEY,模型 ID 以模型广场为准。这样在 Claude Code 和 Codex CLI 之间切换时,不用手动改环境变量。但 Codex CLI 仍然读 ~/.codex/config.toml,不要把 ANTHROPIC_* 套过去。两个 CLI 的配置分开维护,共用的是同一把 Key 和同一个 Base URL。
5. 复跑后的对账与下一步:模型对话、Coding Plan、创建 Key
跑完对照表后,第一件事是去控制台看这次调用有没有入账。按 Key 和时间窗口过滤,确认 10 个 Issue 的 Token 总量和表格一致。如果对不上,检查是不是有其他任务用了同一把 Key,或者 Codex CLI 的 env_key 指到了别的 Key。控制台还能看到调用时间线,如果某个 Issue 的 Token 特别高,回看当时的提示词是不是把整个仓库都塞进了上下文。
模型对话入口可以确认模型 ID。打开 模型对话,选广场里同一个模型,发一条测试消息。如果对话能通,但 CLI 报 404,多半是 CLI 配置里的模型 ID 写错,或者 Base URL 带了 /v1。模型 ID 以模型广场为准,不要在配置里写博客里的示例名。模型对话也适合试一条修复指令,确认返回格式和 CLI 里一致,再回到仓库跑完整流程。
长期开发可以看 Coding Plan。如果每天都要跑 Claude Code 或 Codex CLI,按量计费和套餐的差异值得提前算。Key 在 控制台 创建,创建后复制一次,两个 CLI 共用。Claude Code 的 settings.json 和 CC Switch 三件套可以对照 接入文档。接入文档里也写了 Base URL 的正确写法:https://taotoken.net/api,末尾不带 /v1。
如果只想先试一条,用 TaoToken 建 Key,把 Base URL 写 https://taotoken.net/api,然后在模型对话里发一条。跑通后再把 Claude Code 和 Codex CLI 指向同一个模型 ID,复现上面的对照表。这次评测的结论只对这次 10 个 Issue 负责,你的仓库、你的提示词、你的模型 ID 都会改变结果。把 Key、Base URL、模型 ID 记下来,下次换 CLI 时就不用重新注册。对账时重点看三个数:总 Token、每次调用耗时、失败重试次数。这三个数能解释大部分通过率差异,也能帮你判断该用 Claude Code 还是 Codex CLI。
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度




被折叠的 条评论
为什么被折叠?



