“工具多了不是本事,知道什么时候用哪个才是。”
我终端里装了五个 AI 编码 CLI——Claude Code、Cursor、Gemini CLI、Codex CLI、Copilot CLI。不是我有强迫症,是因为每次有人问”哪个最好”我都答不上来。
干了整整一周,发现它们像五个性格迥异的同事。各有所长,也各有所短。
大抵每个用 AI 编程的人,都要经历这个阶段的。
一、Claude Code:话不多但干活靠谱
它不废话。读完整个仓库,列出计划,直接干完给你看结果。
真实案例:上周一我让它把一个跑了三年的 Python 2 老项目迁移到 Python 3。200 多个文件,print 语句、xrange、unicode 满天飞——典型的祖传代码,没人敢动。
请把这个项目迁移到 Python 3.10。要求:
1. 所有 print 改为函数调用
2. xrange 改为 range
3. unicode/str 处理改为 Python 3 语义
4. 生成测试用例验证迁移结果
三十秒后开始一个文件一个文件地改。改完告诉我:改了 87 个文件,跑了 34 个测试用例,32 个通过。失败的两个是我自己的测试写得有问题——它指出来了。
我横竖睡不着,仔细看了半夜那 87 个 diff——改得干净。没有”能跑就行”的脏代码。
翻车的时候:让它写前端 React 组件,样式总差一口气。不是功能问题,是”不好看”。AI 的审美,大抵如此。
二、Cursor:边聊边干活的结对搭档
不独立干活,陪你干。你在编辑器里写,它在旁边实时补全、实时建议。
真实案例:写 RBAC 权限模块,角色继承逻辑卡住了。我在 Cursor 里敲:
父角色的权限应该自动传递给子角色,
但子角色可以有额外的权限。帮我看看这段代码有没有问题。
它没重写——在旁边开了个侧边栏,列了三个问题:
has_permission()没有处理递归继承——A 继承 B,B 继承 C,A 拿不到 C 的权限- 没有处理循环继承——A 继承 B,B 又继承 A,无限递归
- 建议加
get_all_permissions()缓存结果,避免每次都遍历
改完跑测试——过了。
局限:大规模重构干不了。让重构整个认证模块,它问”从哪开始?”——它需要引导,不像 Claude Code 自己开干。
三、Gemini CLI:免费但偶尔犯错的实习生
免费、速度快。写单元测试、生成文档、跑 CI/CD 脚本——这些粗活干得不错。
翻车现场:上周五让它给支付模块写单元测试。金额计算、汇率转换、手续费扣除——精度要求极高。
Gemini 跑了 28 个用例,26 个通过。听起来不错?
剩下两个失败暴露了致命问题:它用浮点数比较,不是 Decimal。金融场景里 0.1 + 0.2 == 0.3 是 False——它不知道。
让它”用 Decimal 重写”,它写了。但手续费计算用了除法——手续费 = 金额 / 100 * 费率。正确的写法应该是 (金额 * 费率).quantize(Decimal('0.01'))。精度问题,它不懂。
但我也不能苛求:它免费的。让实习生干免费的活还要求像资深工程师,这本身就不讲道理。
四、Codex CLI:专攻代码审查的老法师
不做代码生成,只做审查。写完让它 review,直接列问题:竞态条件、内存泄漏、缺少幂等性——不会说”写得不错”。
真实案例:写了个用户积分系统,自己测了两遍觉得没问题。让 Codex 审查,给了份 P0/P1/P2 清单:
- P0:积分扣除和库存扣减没用事务——积分扣了但库存失败,用户积分凭空消失
- P1:兑换接口没做幂等——用户快速点两次,扣两次积分
- P2:积分过期用定时任务扫全表——用户量大了成性能瓶颈
前两个问题我自己看了两遍都没发现。
但它从零写代码不如 Claude Code。让它写登录接口,能跑,但不干净。
五、Copilot CLI:中规中矩的老好人
跟 GitHub 生态深度集成。开的 Issue、写的 PR、建的仓库,无缝对接。
真实 workflow:开了 Issue #42”用户注销后 Token 没被撤销”。在 Copilot CLI 里敲:
根据 Issue #42 修复这个 Bug
它做了三件事:读了 Issue 描述和评论 → 找到认证模块代码 → 改了代码提交 PR,PR 描述引用了 Issue #42。一条龙。
脱离 GitHub 就一般了。纯编码能力排中等,价值全在”跟 GitHub 长在一起”。
六、怎么选?
| 场景 | 首选 | 备选 |
|---|---|---|
| 大型重构 | Claude Code | Cursor |
| 日常编码 | Cursor | Claude Code |
| 批量测试/文档 | Gemini CLI(免费) | Copilot CLI |
| 代码审查 | Codex CLI | Claude Code |
| GitHub工作流 | Copilot CLI | Cursor |
| 金融/高精度 | Claude Code + Codex 双审 | 自己写 |
我的日常组合:
- 主力编码:Cursor(实时反馈爽)
- 大重构:Claude Code(让它独立干大活)
- 审查:Codex CLI(比自己看三遍管用)
- 粗活:Gemini CLI(免费的还要什么自行车)
覆盖 90% 场景。剩下 10%——Copilot 补 GitHub 流程。
七、SKILL.md:跨工具的统一语言
今年最大的变化。一个”通用插件格式”——给 Claude Code 写的 SKILL,Cursor、Codex、Gemini 都能加载。
我们团队有个 SKILL.md 叫”代码提交规范检查器”,检查 commit message 是否符合约定式提交、lint 是否通过、测试覆盖率是否达标。以前只在 Claude Code 里跑,现在全员通用。
别高兴太早:不同工具执行能力有差异。同一个 SKILL,Claude Code 能完美执行,Gemini 可能只执行了一半。工具的能力边界,标准统一不了。
八、说句难听的
我见过太多人在五个工具间反复横跳。今天装这个,明天卸那个。最后五个都装了,一个都没用好。
有人问:”哪个 AI 编程工具最好?”
我向来是不惮以最坏的恶意来推测这个问题的——问这个的人,大抵五个都没认真用过。
AI 编码工具的本质不是”哪个最好”,而是”哪个最适合你当下的任务”。
Claude Code 能重构,Cursor 能结对,Gemini 能免费干活,Codex 能找 Bug,Copilot 能走流程。五个都是好工具,但五个都不能包打天下。
别迷信。也别鄙视。
但如果你只装一个——装 Claude Code。它干活最靠谱。
大抵如此罢。
关于码孖AI
码孖AI,专注 AI 工程化落地。
关注我,持续更新实战踩坑指南。
:::callout tip 觉得有用? 点个「在看」,分享给同样在 AI 落地路上挣扎的朋友。 :::