第一章. Codex 是什么?为什么要用它?

第一章. Codex 是什么?为什么要用它?

1.1. 一句话定义

Codex 是 OpenAI 推出的命令行 AI 编程助手,能够 持续工作数小时 完成代码审查、Bug 查找和大规模重构任务。

与 ChatGPT 的对话式交互不同,Codex 直接在你的终端里运行,可以读取项目文件、执行命令、修改代码,是真正的「AI 结对编程」工具。


1.2. 三大核心能力(用真实案例说话)

能力 1:代码审查(3 秒扫描 50 个文件)

三个月前,我们团队准备上线一个支付模块。按照流程,需要人工审查 50 个文件,预计耗时 2 小时。

我试着用 Codex:

1
codex "扫描 src/payment/ 目录,检查 SQL 注入、XSS、硬编码密钥等安全问题"

结果

  • 耗时:N 秒(codex 天生比较慢)
  • 发现:5 个安全漏洞(包括 2 个 SQL 注入、1 个硬编码 AWS 密钥)
  • 输出:Markdown 格式的审查报告,直接贴到 PR 里

Codex 找出 5 个安全问题,人工审查只发现 3 个。速度快 40 倍。


能力 2:Bug 查找(30 秒定位根因)

生产环境报错:「用户登录后偶尔被重定向到 404」。日志不完整,本地无法复现。

我把错误截图发给 Codex:

1
codex -i error-screenshot.png "分析这个报错,找出根本原因并修复"

结果

  • 耗时:30 秒
  • 定位:req.session.returnTo 未初始化
  • 修复:给出完整的修复代码 + 单元测试

对比: Claude Code 建议「检查路由配置」(没用),Codex 直接定位到根因,找 Bug 能力第一人!


能力 3:长期重构(2.5 小时迁移 15000 行代码)

我们接手了一个 5 年前的遗留项目:15000 行 ES5 代码,没有类型注解,没有单元测试。

我让 Codex 做技术栈迁移:

1
codex "把整个项目从 JavaScript 迁移到 TypeScript,保持所有功能不变"

结果

  • 耗时:2.5 小时(全自动)
  • 成功迁移:118 个文件
  • 新增代码:+3200 行(类型注解)
  • 测试通过率:98%

对比: 如果用人工,至少需要 2 周。Codex 节省了 95% 的时间。


1.3. 与 Claude Code 的核心差异

很多人问:「我 Claude Code 用得好好的,为啥要折腾 Codex?」

答案是:Codex 不是 Claude Code 的替代品,而是补充品

维度CodexClaude Code
速度慢但更细致快但不严谨
准确性69.1%(SWE-bench)72.7%(SWE-bench)
持续工作可持续数小时需要人工分段
适用场景快速迭代、代码审查、长期重构关键代码、深度分析
成本按 Token 计费固定月费 $20-200
国内可用性需要代理,但稳定封号风险高

准确性差异的本质原因

Codex 的「思考链」更长,会先分析再动手。Claude 更「直接」,适合快速迭代。


1.4. 安装与环境配置

1.4.1. 安装 Codex CLI

Codex CLI 是一个 Node.js 包,需要 Node.js 18 或更高版本。

步骤 1:检查 Node.js 版本

1
node --version

如果版本低于 18,需要先升级 Node.js。推荐使用 nvm(Node Version Manager):

1
2
3
4
5
6
# 安装 nvm(如果尚未安装)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# 安装 Node.js 20
nvm install 20
nvm use 20

步骤 2:安装 Codex CLI

1
npm install -g @openai/codex

安装完成后,验证版本:

1
codex --version

应该看到类似 0.64.0 的版本号。


1.4.2. 账号鉴权

Codex 需要 ChatGPT Plus、Pro、Team 或 Enterprise 账号, 如果没有,可以咸鱼搜索“GPT team”、“GPT 大兵”、“GPT Plus”等关键字,通常价格在 50~100 左右不等,一般都是一年使用权

步骤 1:启动鉴权流程

1
codex

首次运行时,Codex 会自动打开浏览器,跳转到 ChatGPT 登录页面。

步骤 2:授权 Codex CLI

登录后,点击 “Allow” 按钮,授权 Codex CLI 访问你的账号。

步骤 3:验证鉴权

回到终端,应该看到:

1
✅ Successfully authenticated!

鉴权信息会保存在 ~/.codex/token,以后无需重复登录。


1.4.4. 运行第一个命令

现在我们来验证 Codex 是否正常工作。

1
codex "用 Python 写一个函数,计算斐波那契数列的第 n 项,要求包含类型注解和 docstring"

Codex 会生成代码

注意 Codex 默认输出的是 生产级代码,包含完整的类型注解、文档字符串和错误处理。


1.5. Codex 的工作模式

1.5.1. 交互模式 vs 单次模式

Codex 支持两种工作模式:

交互模式(推荐用于复杂任务):

1
codex

进入交互模式后,你可以持续对话,Codex 会记住之前的上下文。适合需要多轮迭代的任务,如重构、调试。

单次模式(推荐用于简单任务):

1
codex "任务描述"

执行完任务后自动退出。适合快速生成代码片段、运行一次性脚本。


1.5.2. 沙箱机制

Codex 默认运行在 沙箱限制 AI 可以访问的文件和命令的安全机制 中,防止误操作。

沙箱有三种模式:

  1. read-only:只能读取文件,不能修改
  2. workspace-write:可以读写当前工作目录的文件
  3. danger-full-access:可以访问整个文件系统(危险)

默认模式是 workspace-write。如果你需要修改工作目录之外的文件,需要在配置文件中明确声明。


1.5.3. 批准策略

当 Codex 需要执行敏感操作(如删除文件、运行 rm 命令)时,会请求你的批准。

批准策略有三种:

  1. always:每次操作都请求批准(最安全)
  2. on-failure:只有在操作失败后才请求批准(推荐)
  3. never:从不请求批准(适合 CI/CD)

默认策略是 on-failure