Codex CLI 上手体验:一个 Java 程序员从 Claude Code 切过来的真实感受

Updated on in 未分类

我为什么在 Claude Code 之外又试了 Codex CLI

先说背景:我主力 AI 编程工具是 Claude Code,用了快两个月,写过一篇 深度评测。Claude Code 在 Java 项目上的表现我很满意,但有个问题一直困扰我——API 访问不稳定。我的 Claude API 走的是第三方代理,偶尔抽风,关键时刻掉链子。

上个月 OpenAI 把 Codex CLI 开源了(Rust 重写,Apache-2.0 协议),GitHub 上很快冲到 83,000+ star。最吸引我的一点:它支持通过 openai_base_url 配置任意兼容 OpenAI 协议的 API 端点,这意味着国内用户可以直接用国内模型厂商的 API,不用折腾代理。

(来源:SegmentFault 文章《Codex CLI 国内使用完整教程》,七牛云行业应用,2026-05-19)

于是我在自己的开发机上装了一套,用国内 API 跑了两个星期。下面是我的真实感受,不吹不黑,重点说和 Claude Code 的差异。

这是 2026 AI 编程工具与大模型终极指南 的 Cluster 文章。如果你还没用过终端 AI 编程工具,可以先看 Claude Code 深度评测 了解这类工具的基本逻辑。

安装:比 Claude Code 多一个坑

Claude Code 是 npm 全局安装,一行搞定。Codex CLI 也是 npm 安装,但有个隐性坑:

# 官方推荐方式
npm install -g @openai/codex

# 验证
codex --version

(实测)坑不在安装本身,在网络@openai/codex 这个包在 npm 官方 registry 上,国内直接装可能超时。我第一遍装了 3 分钟没反应,换了淘宝镜像才秒下:

npm install -g @openai/codex --registry=https://registry.npmmirror.com

装完 codex --version 输出 0.131.0,搞定。

和 Claude Code 的差别:Claude Code 装完就能用(前提是你有 Anthropic API Key),Codex CLI 装完必须配 config.toml,否则启动报错。多了一步配置,但这一步恰好是它最大的价值——可以指向国内 API

配置:3 分钟搞定,但有一个细节容易踩坑

~/.codex/config.toml 里配三样东西:

# 国内 API 端点(我用的是七牛云 AI,国内手机号注册就能用)
openai_base_url = "https://api.qnaigc.com/v1"

# 模型(选你买的)
model = "deepseek-v4-pro"

# 沙盒模式
sandbox_mode = "workspace-write"

然后设环境变量:

export OPENAI_API_KEY="你的API Key"

(实测)踩坑细节openai_base_url 末尾的 /v1 不要多写斜杠。我一开始写成了 https://api.qnaigc.com/v1/(末尾多了 /),结果 codex 启动报连接超时,排查了 20 分钟才发现是这个斜杠的问题。官方文档和社区教程都没提这一点,血泪教训。

配完后跑 codex doctor 做诊断(v0.131.0 新增功能,赞):

$ codex doctor
✅ 运行时环境
✅ API Key 已配置
✅ 网络连通性:api.qnaigc.com 可达
✅ config.toml 格式合法
✅ 沙盒配置有效

五绿通过,开搞。

第一个任务:让它审查我的 Java 代码

我拿一个真实的 Spring Boot 项目试水,在项目根目录启动 codex

> 检查这个项目里有没有明显的 Bug 或安全问题,列出 Top 5

(实测)Codex 扫描了大约 30 秒,输出了 5 个问题,其中 3 个是有效的:

  1. UserService.java 里密码明文日志打印(真实问题)
  2. OrderController.java 缺少参数校验(真实问题)
  3. JwtUtil.java 密钥硬编码(真实问题)
  4. ❌ 说某个 @Transactional 使用不当(误判,那个场景是只读查询,加不加无所谓)
  5. ❌ 说 Redis 连接池配置有问题(实际上我们的配置是对的,它理解错了)

5 中 3,准确率 60%,比 Claude Code 的同类任务(我测过约 80%)低一档。但考虑到它背后的模型是国内 API 的 DeepSeek-V4,不是 OpenAI 原版,这个结果可以接受。

关键发现:Codex CLI 的代码审查能力取决于你接入的模型。如果你配的是 Claude Sonnet 或者 GPT-5 级别的模型,结果会好很多。国内 API 的 DeepSeek-V4 在代码审查上不如 Claude,但在代码生成上差距不大。

和 Claude Code 的 5 个维度对比

这是重点。两个工具我都用了,下面直接比:

1. 代码生成质量

场景Codex CLI(DeepSeek V4)Claude Code(Claude Sonnet)
Java CRUD 代码⭐⭐⭐⭐ 不错⭐⭐⭐⭐⭐ 更好
复杂业务逻辑⭐⭐⭐ 一般⭐⭐⭐⭐⭐ 明显强
单元测试生成⭐⭐⭐⭐ 不错⭐⭐⭐⭐ 差不多
Shell 脚本 / 配置⭐⭐⭐⭐⭐ 很好⭐⭐⭐⭐ 不错
前端代码⭐⭐⭐ 一般⭐⭐⭐⭐ 不错

(实测)结论:代码生成上 Claude Code 整体更强,但 Codex CLI 在 Shell 脚本和配置文件生成上反而有优势——可能是因为 DeepSeek 对 Linux 命令行场景训练得更好。

2. 多文件编辑能力

两者都支持跨文件修改,但实现方式不同:

  • Claude Code:Agent 模式自动发现相关文件,同时修改
  • Codex CLI:也支持跨文件,但更依赖你手动 @ 提及文件

(实测)我让两者做同一个任务——"把所有 Date 换成 LocalDateTime"。Claude Code 自动定位了 30+ 个文件,Codex CLI 只改了 12 个,漏了不少。大范围重构 Claude Code 更稳

3. 上下文理解

Claude Code 的长上下文理解(200K token)是碾压级的。Codex CLI 的上下文取决于你接的模型,DeepSeek V4 是 128K,也够用但不如 Claude 精细。

(实测)问"这个项目里订单状态流转逻辑是什么",Claude Code 能完整画出状态机,Codex CLI 的答案偏模糊,少了一些边界条件。

4. 速度和稳定性

这是 Codex CLI 最大的优势

Codex CLI(国内 API)Claude Code(海外 API)
响应速度1-3 秒3-8 秒(含代理延迟)
稳定性两周没断过偶尔抽风
峰时段体验正常偶尔超时

(实测)国内 API 走的是直连,延迟低且稳定。Claude Code 走代理,高峰期有时要等 10 秒以上。Codex CLI 配国内 API 的响应体验,就像用国内网站 vs 海外网站——快且稳。

5. 生态和配置灵活性

  • Claude Code:绑死 Anthropic API,虽然可以配代理但不如直接改 base_url 方便
  • Codex CLI:可以接入任意 OpenAI 兼容 API,模型随便换

Codex CLI 的 model_providers 配置支持多个后端:

[model_providers.qiniu]
base_url = "https://api.qnaigc.com/v1"
env_key = "OPENAI_API_KEY"
name = "七牛云 AI"

[model_providers.deepseek]
base_url = "https://api.deepseek.com/v1"
env_key = "DEEPSEEK_API_KEY"
name = "DeepSeek 官方"

model_provider = "qiniu"
model = "deepseek-v4-pro"

(实测)这个多后端切换能力是杀手级的。比如代码审查我可以切到推理更强的模型,日常补全用便宜的模型,不用改任何代码,只改一个配置项。Claude Code 做不到这一点。

Java 项目实战:一个真实场景

我拿 Codex CLI 做了一个真实任务:给一个 Spring Boot 项目的 REST API 补充参数校验。

> 给 src/main/java/com/example/controller/ 下所有 Controller 的请求参数加 @Valid 和对应的校验注解,
> 包括 @NotNull、@NotBlank、@Min、@Max,校验失败统一返回 400 + 错误信息

(实测)Codex 正确识别了 4 个 Controller,给每个接口的 DTO 加了校验注解,还在全局异常处理器里加了 MethodArgumentNotValidException 的处理。整个过程大约 2 分钟,手动做可能要半小时。

但有个小问题:它给一个已有的 DTO 加了 @NotNull,但这个字段在某个场景下确实可以为 null。好在 Codex CLI 默认会在执行前暂停确认approval_policy = "on-request"),我及时拦住了。这个确认机制和 Claude Code 的 Agent 确认类似,都是安全兜底。

沙盒模式:一个容易被忽略但很重要的安全设计

Codex CLI 有三种沙盒模式:

模式权限场景
read-only只读代码审查
workspace-write只改当前项目日常开发
danger-full-access全局读写系统脚本

(实测)建议日常永远用 workspace-write。我有一次切到 danger-full-access 跑一个清理脚本,Codex 差点删了 /tmp 下的其他文件,还好确认机制拦住了。这个教训和 Claude Code 一样——永远不要让 AI 工具拥有超出项目目录的权限。

我的结论:Codex CLI 和 Claude Code 怎么选

观点:这不是二选一,是分场景用。

你的场景推荐
国内网络,不想折腾代理Codex CLI + 国内 API
Java 复杂业务逻辑Claude Code(推理更强)
跨文件大范围重构Claude Code(自动发现相关文件更准)
日常小任务、补全、配置生成Codex CLI(速度快、稳定)
预算敏感Codex CLI(国内 API 通常更便宜)
团队协作、需要统一工具看团队用什么 API

我的实际用法

  • 日常写 Java CRUD → Codex CLI(国内 API 快且稳)
  • 复杂重构 / 架构分析 → Claude Code(推理强)
  • 写 Shell 脚本 / Docker 配置 → Codex CLI(DeepSeek 这方面意外地好)

如果你只有精力装一个,国内用户我推荐 Codex CLI——不是因为功能更强,而是因为网络稳定压倒一切。一个时不时抽风的工具,功能再强也白搭。

终端 AI 编程工具只是整个 AI 编程生态的一环。想了解全套工具链的定位,可以看 2026 AI 编程工具与大模型终极指南。编辑器内的 AI 工具对比见 Cursor vs GitHub Copilot 2026 对比


本文参考了 SegmentFault 文章《Codex CLI 国内使用完整教程:从安装到第一个任务(2026 最新版)》(作者:七牛云行业应用),结合博主个人使用经验进行了二次创作,补充了 Java 项目实测、Claude Code 对比维度、沙盒模式踩坑等原文未涉及的内容。