20-Claude Code vs Codex vs OpenCode:真实项目横向评测
Claude Code vs Codex vs OpenCode真实项目横向评测前 19 篇文章分别深入了三大工具。但哪个更好这个问题只有放在同一个需求面前才能真实回答。这篇文章用同一个项目需求分别交给三个工具独立完成从四个维度做客观对比。评测方法测试需求为了公平对比选择了一个中等复杂度的真实需求为一个 FastAPI 后端项目添加 API Key 认证功能。要求支持创建/吊销 API KeyAPI Key 用 SHA-256 哈希存储不存明文中间件验证 API Key验证失败返回 401支持 Key 的过期时间写完整测试评测环境项目背景已有的 FastAPI 后端项目12 个文件 CLAUDE.md / AGENTS.md已经写好三个工具用同一份约束 MCP 配置三个工具都配了 GitHub MCP 模型 Claude Code → Claude Sonnet 4.6 Codex CLI → GPT-5.3-Codex OpenCode → Claude Sonnet 4.6和 Claude Code 同模型对比工具差异评测维度维度评估方法代码质量安全性、正确性、可维护性、测试覆盖开发速度从开始到跑通全部测试的时间交互体验需要的对话轮数、中断次数、返工次数Token 成本实际消耗的 Token 量 × 单价实测过程Claude Code4 轮对话22 分钟第 1 轮3 分钟 帮我添加 API Key 认证功能。要求创建/吊销 Key SHA-256 哈希存储中间件验证支持过期时间。 开始干活 - 直接创建 api_key.pymodel CRUD - 直接创建 middleware.py验证中间件 - 注册路由到 main.py → 初版完成但 API Key 的权限模型没做 第 2 轮5 分钟 不错。但还需要给每个 Key 关联一个 scope权限范围 中间件验证时要检查 scope 是否匹配当前路由。 修改 model 加 scope 字段 → 修改 middleware 加 scope 检查 → 修改创建/吊销接口支持 scope 参数 → 修改测试覆盖 scope 场景 → 运行测试3 个 fail → 自动修复scope 默认值处理不当 → 再跑全部通过 第 3 轮8 分钟 再加一个功能管理员可以查看所有 Key 的使用统计—— 每个 Key 被调用了多少次、最后一次调用时间。 新增 APIKeyUsage 表 → 新增统计接口 → 修改 middleware 每次验证后记录使用 → 写测试 → 跑测试1 个 fail并发记录问题 → 修复改用异步写入 → 通过 第 4 轮6 分钟 最后加完整测试happy path 过期 Key 错误 scope 吊销后的 Key 写了 12 个测试用例 → 跑测试 → 全部通过 → /review 自查 → 没有安全问题 总计4 轮对话22 分钟22 个测试全部通过。Codex CLI3 轮对话31 分钟第 1 轮12 分钟 同样的需求描述 自动触发 /plan → 输出 6 步计划 → 我等了 2 分钟读计划 → 确认 计划执行 → 创建 api_key.py → 创建 middleware.py → 注册路由 → 每步执行后自动检查 → 写完就跑测试全部通过 → 比 Claude Code 慢但每一步都很稳 第 2 轮10 分钟 加上 scope 权限控制和使用统计 再次 /plan → 输出 3 步子计划 → 我确认 → 执行。这次没有 test fail。 → 但多花了时间在过度谨慎上—— 改一个字段Codex 会确认两遍。 第 3 轮9 分钟 加完整测试 自动生成 14 个测试 → 跑测试 → 全部通过 → /review 自查 → 建议给统计接口加缓存避免频繁查询 总计3 轮对话31 分钟22 个测试全部通过。OpenCode5 轮对话28 分钟第 1 轮7 分钟 同样的需求描述 没有 /plan直接开始 → 创建 api_key.py结构有点教科书不够贴合项目现有风格 → 创建 middleware.py → 和 Claude Code 输出质量接近但稍微粗糙 第 2 轮6 分钟 model 的风格和项目现有的 models/user.py 不一致 看看 user.py 然后改一下 读 user.py → 调整 api_key.py 的风格 → 这次一致了但多花了一轮对话来修正风格问题 第 3 轮6 分钟 加 scope 权限控制 → 正常完成 第 4 轮5 分钟 加使用统计 → 正常完成但 middleware 中记录使用的代码有点重复 第 5 轮4 分钟 加完整测试 重构一下 middleware 里重复的代码 → 完成 总计5 轮对话28 分钟22 个测试全部通过。四维对比一、代码质量三份最终代码的核心差异检查项Claude CodeCodex CLIOpenCode安全性SQL 注入/Key 泄露✅ 参数化查询哈希存储✅ 同左✅ 同左Key 哈希存储✅ SHA-256 salt✅ SHA-256 salt✅ SHA-256无 salt过期时间处理✅ 时区感知✅ 时区感知⚠️ 用了 UTC now but naive中间件错误处理✅ 完善的异常处理✅ 更详细的错误码✅ 基本覆盖代码风格一致性⚠️ 第 4 轮才完全一致✅ 从开始就一致❌ 需要修正才能一致测试覆盖22 个测试22 个测试22 个测试代码可读性★★★★☆★★★★★★★★☆☆安全性总分★★★★☆★★★★★★★★☆☆结论Codex CLI 代码质量最高因为 /plan 先行每一步都经过审查Claude Code 紧随其后但需要更多迭代修正OpenCode 需要更多人工干预来对齐项目风格。二、开发速度从需求到全部测试通过 Claude Code ██████████████████░░░░ 22 分钟 OpenCode ██████████████████████ 28 分钟 Codex CLI ████████████████████████████ 31 分钟但只看时间会得出错误结论。更细致的分析Claude Code 快在哪 - 不用 /plan直接动手省了 3-5 分钟/轮 - 对话更自然不需要确认计划这个步骤 Codex CLI 慢在哪 - /plan 生成需要 1-2 分钟阅读和确认需要 1-3 分钟 - 每步执行后自动检查多了一道工序 - 但慢的这 9 分钟换来了更少的返工和更高的代码质量 OpenCode 慢在哪 - 风格对齐多消耗了一轮对话6 分钟 - 没有自动的风格学习机制结论快速迭代选 Claude Code一次做对选 Codex CLI。三、交互体验维度Claude CodeCodex CLIOpenCode对话轮数4 轮3 轮5 轮需要我手动纠正次数2 次0 次3 次返工次数1 次scope 默认值0 次1 次风格对齐需要我做的决策4 个7 个确认计划5 个惊喜次数AI 主动做了超出预期的好事2 次1 次0 次惊吓次数AI 做了预料之外的错事1 次0 次1 次交互风格差异Claude Code 你要 X好我开干了。 → 速度快但有时需要你拉住它。 Codex CLI 你要 X我先想想怎么做。 → 计划阶段让你安心但每一步都要你点头。 OpenCode 你要 X好的。 → 像 Claude Code但没有那么精细的品味。四、成本对比Claude CodeCodex CLIOpenCode输入 Token85K120K/plan 消耗额外上下文78K输出 Token18K15K20K模型单价每 1M Token$3 / $15$3 / $12$3 / $15本次任务成本~$0.53~$0.54~$0.53月估算重度使用$200-500$150-400$15-500** OpenCode 如果用 DeepSeek 可低至 $15-30/月。成本结论同模型下三者成本几乎一样。真正的成本差异来自你选什么模型而不是你选什么工具。OpenCode 的成本下限最低可以用 DeepSeek 等低价模型。Benchmark 数据对照除了自己的实测还参照了已有的第三方评测BenchmarkClaude CodeCodex CLIOpenCodeSWE-bench Verified72.3%68.7%65.1%*Terminal-Bench58.4%62.1%51.3%** OpenCode 的成绩取决于所使用的底层模型。这里用的是 Claude Sonnet 的结果。如果用 GPT-5.5 或 DeepSeek成绩会变。解读SWE-bench 测试的是修复真实 GitHub Issue的能力——Claude Code 领先Terminal-Bench 测试的是终端命令的正确性——Codex CLI 领先/plan 的作用OpenCode 作为框架成绩更依赖底层模型选择各自的甜区和雷区Claude Code甜区 ✅ 前端开发 快速迭代改 UI 看效果 → 改 → 看 → 改 ✅ 日常高频编码你很清楚要做什么一小步一小步描述 ✅ 重度 Skills/MCP/Hooks 配置生态最强 ✅ 单人项目的端到端开发 雷区 ⚠️ 复杂架构重构没有计划先行容易跑偏 ⚠️ 长任务自主执行没有 /goal需要持续引导 ⚠️ 高安全要求的项目比 Codex 的 sandbox 模式弱Codex CLI甜区 ✅ 复杂任务先计划再执行不会跑偏 ✅ 长任务/goal 挂后台不用管 ✅ 多方协作Subagent Worktree 并行 ✅ 安全敏感项目三级权限 sandbox 雷区 ⚠️ 快速原型/plan 的 overhead 在这里是累赘 ⚠️ 高频微调每一步都要确认计划节奏慢 ⚠️ 生态不如 Claude Code缺少 Skills 和 Plugin 系统OpenCode甜区 ✅ 预算极度敏感配低价模型成本降到 1/10 ✅ 私有化部署数据不能离开内网 ✅ 需要多模型混用不同的任务用不同模型 ✅ 深度定制需求开源可以改代码 雷区 ⚠️ 开箱体验不如商业产品需要自己配置和调教 ⚠️ 代码风格适应性较弱不自动学习项目风格 ⚠️ 社区生态较小Skill/Plugin 数量不是一个量级什么时候混用更高效我实际工作中的混用策略需求到来 │ ├─ 需求是否明确 │ ├─ 很明确 → Claude Code 直接执行 │ └─ 比较复杂 → Codex /plan 生成计划 │ ├─ 任务是否可以并行 │ ├─ 可以 → Codex Subagent 并行 │ └─ 不行 → 单工具串行 │ └─ 成本考量 ├─ 正常预算 → Claude Code / Codex └─ 预算紧张 → OpenCode DeepSeek实际协同案例上周做的一个真实功能——给 CMS 加全文搜索 1. Codex /plan5 分钟 → 生成 8 步计划 → 我删掉 2 步不必要的调整顺序 2. Claude Code 执行步骤 1-415 分钟 → 数据库索引 搜索接口 前端搜索框 → 快速迭代每做完一步我确认 3. Codex /goal 执行步骤 5-8后台跑了 40 分钟 → 中文分词集成 高亮 搜索结果排序 E2E 测试 → 我去开了个会回来就做好了 4. Claude Code /review3 分钟 → 审查全部改动 → 两个小问题 → 修复 → 合并 总耗时我实际参与 ~20 分钟AI 自己跑了 ~40 分钟。 如果用单一工具串行做预计需要 90 分钟以上。混用黄金法则1. 计划交给 Codex执行交给 Claude Code → Codex 的 /plan 是三个工具里最好的计划生成器 → Claude Code 是三个工具里最快的执行者 2. 简单 快节奏 → Claude Code 复杂 需要谨慎 → Codex CLI 省钱 私有化 → OpenCode 3. 不要让任何一个工具做它不擅长的事 → 别让 Claude Code 做 30 分钟以上的长任务 → 别让 Codex 做高频的 UI 微调 → 别让 OpenCode 做需要强大生态支撑的事没有最好的工具只有最适合的组合经过这次横向评测最重要的结论是单一工具的得分差异很小都在 70-85 分区间。但组合使用后得分可以到 90。不要陷入选哪个的纠结。三个都装。不同场景切着用。延伸阅读SWE-bench VerifiedTerminal-Bench

相关新闻