OpenAI 的终端编程代理,能读代码、跑命令、改文件。这篇文章讲清楚怎么装、怎么配、怎么用,一直到手机远程控制。
先说清楚 Codex 是什么
Codex CLI 是 OpenAI 推出的本地编程代理。它运行在你电脑的终端里,能:
• 读你的代码库
• 执行 Bash 命令
• 编辑、创建、删除文件
• 跑测试、查日志、调试
• 联网搜索、抓网页内容
它不是 IDE 插件,是独立的终端工具。如果你想要 IDE 集成,OpenAI 另外有 Codex IDE 扩展。
和 Claude Code 的区别:
| Codex CLI | Claude Code | |
|---|---|---|
| 提供商 | OpenAI | Anthropic |
| 支持模型 | o3、o4-mini、gpt-4.1 等 | Claude 4.x 系列 |
| 认证方式 | ChatGPT 账号或 API Key | Claude Pro 或 API Key |
| 手机远程 | 支持(ChatGPT App) | 暂无 |
| Skills/插件 | 支持 | 支持 |
| MCP | 支持 | 支持 |
适合谁用:
• 已经在用 ChatGPT Pro/Plus 订阅的人(不用额外花钱)
• 习惯终端工作流的开发者
• 需要 AI 帮忙改代码、跑测试、查文档
• 想在手机上远程查看/控制编码会话
不适合谁:
• 期望完全自动化、不看代码就发布的人
• 不愿意审查 AI 输出的人
• 没有稳定网络环境的人
一、安装
系统要求
• macOS、Linux 或 Windows 11
• Node.js 20+(npm 安装方式)
• ChatGPT Plus/Pro/Business/Enterprise 订阅,或 OpenAI API Key
安装方式
方式一:npm(推荐)
npm install -g @openai/codex
方式二:Homebrew(macOS)
brew install --cask codex
方式三:下载二进制
从 GitHub Releases 下载对应平台的压缩包:
• macOS Apple Silicon: codex-aarch64-apple-darwin.tar.gz
• macOS Intel: codex-x86_64-apple-darwin.tar.gz
• Linux x86_64: codex-x86_64-unknown-linux-musl.tar.gz
• Linux arm64: codex-aarch64-unknown-linux-musl.tar.gz
• Windows: codex-x86_64-pc-windows-msvc.exe.zip
解压后重命名为 codex,放到 PATH 目录。
验证安装
codex --version
二、认证
方式一:ChatGPT 登录(推荐)
如果你有 ChatGPT Plus/Pro 订阅,这是最简单的方式:
codex
首次运行会提示选择认证方式,选择 Sign in with ChatGPT。
浏览器会打开 ChatGPT 登录页面,完成登录后回到终端即可。
ChatGPT 订阅包含的额度:
| 订阅类型 | Codex 额度 |
|---|---|
| Plus | 有限额度 |
| Pro | 更高额度 |
| Business/Enterprise | 企业配额 |
方式二:API Key
如果你用 API Key,需要额外配置:
export OPENAI_API_KEY="sk-..."
然后在 ~/.codex/config.toml 中配置:
model = "o4-mini" # 或 "gpt-4.1", "o3"
[api]
key = "sk-..." # 也可以写在这里
API Key 计费:按实际使用量计费,不从 ChatGPT 订阅扣。
退出登录
codex logout
三、第一次使用
启动交互会话
进入你的项目目录,然后:
codex
Codex 会启动一个交互式终端界面(TUI),底部有输入框,顶部显示对话历史。
基本用法
直接用自然语言描述你想做的事:
> 找到所有 TypeScript 文件里的 console.log,帮我删掉
> 跑一下测试,看看哪些失败了
> 解释一下 src/auth/login.ts 的主要逻辑
Codex 会:
1. 理解你的意图
2. 在你的代码库里搜索相关信息
3. 提出执行计划(需要你确认)
4. 执行并报告结果
权限审批
Codex 执行敏感操作前会询问你:
Codex wants to run: rm -rf node_modules
Approve? [y/n/a] (y = once, n = deny, a = always for this session)
• y: 批准这一次
• n: 拒绝
• a: 本次会话内始终批准这类操作
常用快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+C |
中断当前操作 |
Ctrl+D |
退出 Codex |
↑ / ↓ |
浏览历史输入 |
Tab |
自动补全 |
四、配置文件
Codex 的配置文件在 ~/.codex/config.toml。
基础配置
model = "o4-mini"
approval_policy = "untrusted"
模型选择
Codex 支持的模型:
| 模型 | 特点 |
|---|---|
o4-mini |
默认,速度快、成本低 |
o3 |
推理能力强,复杂任务 |
gpt-4.1 |
平衡型,适合日常编码 |
切换模型:
codex --model o3
或在 config.toml 中设置默认值。
审批策略
approval_policy 控制 Codex 执行命令时何时询问你确认:
| 策略 | 行为 |
|---|---|
untrusted |
只读操作自动执行,其他都需要确认(最安全,默认) |
on-request |
模型决定何时询问确认 |
never |
从不询问,全部自动执行(慎用) |
配置:
approval_policy = "untrusted" # 最安全
项目级配置
项目级配置放在 <项目根目录>/.codex/config.toml,会覆盖全局配置:
model = "o3"
approval_policy = "untrusted"
配置按以下优先级加载(后加载的覆盖先加载的):
1. 系统配置:/etc/codex/config.toml(Unix)或 %ProgramData%\OpenAI\Codex\config.toml(Windows)
2. 用户配置:~/.codex/config.toml
3. 项目配置:<项目根目录>/.codex/config.toml
五、AGENTS.md:项目说明书
AGENTS.md 是放在项目根目录的说明文件,告诉 Codex 这个项目是做什么的、有什么规矩。
为什么需要 AGENTS.md
没有 AGENTS.md,Codex 只能靠代码推断项目结构。
有 AGENTS.md,Codex 能:
• 知道项目的构建/测试命令
• 理解代码风格偏好
• 遵守项目特有的开发规范
• 避免踩已知坑
写法示例
## 项目概述
这是一个 TypeScript Node.js 后端服务,提供用户认证和数据处理 API。
## 常用命令
- 构建:`npm run build`
- 测试:`npm test`
- 启动开发服务器:`npm run dev`
- 代码检查:`npm run lint`
## 代码规范
- 使用 ES Modules(import/export)
- 异步操作用 async/await,不用回调
- 测试文件放在 `__tests__/` 目录
- 提交前必须跑 `npm run lint` 和 `npm test`
## 已知问题
- node_modules 有时会损坏,需要 `rm -rf node_modules && npm install`
- 测试数据库需要手动启动:`docker-compose up -d test-db`
## 不要做的事
- 不要修改 `legacy/` 目录下的代码
- 不要直接提交到 main 分支
- 不要跳过测试
自动生成
Codex 可以帮你生成 AGENTS.md:
codex /init
它会分析项目结构,生成一份草稿供你修改。
六、斜杠命令
Codex 内置了一系列斜杠命令,在对话中输入 / 可以看到完整列表。
常用命令
| 命令 | 功能 |
|---|---|
/init |
生成 AGENTS.md 文件 |
/compact |
压缩对话历史,防止超出上下文限制 |
/review |
审查当前代码变更,找出问题 |
/clear |
清空终端,开始新对话 |
/new |
在对话中开始新聊天 |
/fork |
分叉当前对话 |
/resume |
恢复之前保存的对话 |
/rename |
重命名当前对话 |
/diff |
显示 git diff(包含未跟踪文件) |
/status |
显示当前会话配置和 token 使用量 |
/model |
切换模型和推理强度 |
/permissions |
配置 Codex 允许执行的操作 |
/help |
显示帮助(部分版本) |
工作流命令
| 命令 | 功能 |
|---|---|
/plan |
切换到计划模式 |
/goal |
设置或查看长时间运行任务的目标 |
/agent / /multi-agents |
切换活动代理线程 |
调试和配置
| 命令 | 功能 |
|---|---|
/debug-config |
显示配置层和来源 |
/keymap |
重新映射快捷键 |
/vim |
切换 Vim 模式 |
/theme |
选择语法高亮主题 |
/hooks |
查看和管理生命周期钩子 |
七、Skills:扩展能力
Skills 是 Codex 的插件机制,让 Codex 学会特定领域的技能。
使用 Skills
通过 /skills 命令管理 skills:
> /skills
这会打开 skills 管理界面,你可以查看已安装的 skills、安装新的 skills、或管理现有 skills。
Skills 目录结构
Skills 存放在 ~/.codex/skills/ 目录:
~/.codex/skills/
├── my-skill/
│ └── SKILL.md
SKILL.md 文件定义了 skill 的用途和执行指南。
编写自己的 Skill
创建 ~/.codex/skills/my-skill/SKILL.md:
---
name: my-skill
description: 做某件事的技能
---
## 使用场景
当用户要求 XXX 时使用此 skill。
## 执行步骤
1. 先检查 YYY
2. 然后执行 ZZZ
3. 最后报告结果
## 注意事项
- 不要在生产环境执行
- 需要提前安装依赖 ABC
Codex 会自动加载并识别这个 skill。
八、MCP:连接外部工具
MCP(Model Context Protocol)让 Codex 能连接外部服务,比如数据库、API、文件系统。
配置 MCP Server
在 ~/.codex/mcp.json 中配置:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/db"
}
}
}
}
常用 MCP Server
| Server | 用途 |
|---|---|
@modelcontextprotocol/server-filesystem |
文件系统访问 |
@modelcontextprotocol/server-postgres |
PostgreSQL 数据库 |
@modelcontextprotocol/server-sqlite |
SQLite 数据库 |
@modelcontextprotocol/server-github |
GitHub API |
@modelcontextprotocol/server-brave-search |
Brave 搜索 |
使用 MCP 工具
配置好 MCP 后,Codex 会自动发现新工具。你可以直接在对话中使用:
> 查一下 users 表里最近注册的 10 个用户
Codex 会调用 postgres MCP server 执行查询。
九、非交互模式:自动化脚本
Codex 支持非交互模式,适合 CI/CD 或脚本调用。
基本用法
codex exec "分析这个项目的测试覆盖率"
指定输出格式
codex exec --output json "列出所有 TODO 注释"
输出:
{
"todos": [
{"file": "src/auth.ts", "line": 42, "text": "TODO: 添加重试逻辑"},
{"file": "src/db.ts", "line": 128, "text": "TODO: 优化查询性能"}
]
}
恢复会话
codex exec --list
codex exec resume <session-id>
CI/CD 集成示例
name: Codex Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Codex Review
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
npm install -g @openai/codex
codex exec --output json "审查这个 PR 的代码变更" > review.json
十、远程控制:手机端操作
这是 Codex 最近新增的功能:通过 ChatGPT 手机 App 远程控制电脑上的 Codex。
前提条件
• Codex Desktop App(macOS,Windows 即将支持)
• ChatGPT 手机 App(iOS/Android)
• 同一个 ChatGPT 账号
配对步骤
1. 在电脑上打开 Codex Desktop App
2. 启动远程配对
在 Codex Desktop 中找到 "Set up Codex mobile" 或 "Remote Control" 选项,会显示一个 QR 码。
1. 用手机扫描 QR 码
打开 ChatGPT App,使用内置扫码功能扫描电脑上的 QR 码。
1. 完成配对
配对成功后,手机上会显示你的电脑设备名称。
手机端能做什么
配对后,手机端可以:
• 查看会话:看到电脑上正在进行的 Codex 会话
• 发送指令:输入新的编码任务
• 审批操作:审批 Codex 请求的敏感操作
• 查看进度:看到 Codex 的执行进度和输出
• 切换项目:在不同项目目录间切换
使用场景
场景一:离开电脑时继续监控
你在电脑上启动了一个长时间运行的 Codex 任务(比如重构、跑测试),然后需要离开。打开手机 ChatGPT App,可以:
• 查看任务进度
• 在 Codex 遇到问题时审批操作
• 给 Codex 补充指令
场景二:通勤时发起任务
早上通勤时,在手机上给 Codex 发送任务:
检查 src/api/ 目录下的所有接口,找出缺少错误处理的
等你到公司,Codex 已经完成了分析。
场景三:审批紧急操作
同事在 Slack 上说测试挂了,你在开会。用手机查看 Codex 会话,审批紧急修复。
注意事项
1. 电脑必须在线:Codex Desktop App 需要运行,电脑需要开机联网
2. 同一账号:手机和电脑必须登录同一个 ChatGPT 账号
3. 网络要求:手机和电脑在同一局域网时响应更快;互联网模式也可用,但可能稍慢
4. Windows 支持:目前仅 macOS 作为 host,Windows 支持正在开发中
5. 安全考虑:
- 可以在 Codex Desktop 中随时取消配对
- 敏感操作仍需手机端确认
- 建议不要在公共网络使用
故障排查
配对后手机显示设备离线:
• 检查 Codex Desktop 是否在运行
• 检查电脑网络连接
• 尝试重新配对
无法审批操作:
• 确认手机 App 是最新版本
• 检查 ChatGPT 订阅是否有效
重新配对失败:
• 在 Codex Desktop 中先移除旧设备
• 在 ChatGPT App 中清除旧设备记录
• 重新扫描 QR 码
十一、最佳实践
1. 写好 AGENTS.md
这是最重要的。AGENTS.md 决定了 Codex 对你项目的理解深度。
写清楚:
- 项目的构建、测试、运行命令
- 代码风格和命名规范
- 已知的坑和解决方案
- 不想让 Codex 动的区域
2. 从小任务开始
第一次用,不要让 Codex 做大重构。先试:
• 添加一个简单的函数
• 修复一个小 bug
• 解释一段代码
等熟悉 Codex 的行为模式后,再给大任务。
3. 审批要仔细
untrusted 策略下,Codex 会问你确认敏感操作。认真看它在做什么,养成习惯。
4. 用版本控制
Codex 会修改你的代码。确保:
• 工作在 Git 分支上
• 频繁提交
• 让 Codex 改之前先 commit
git checkout -b codex-work
git add .
git commit -m "保存当前状态"
5. 分步骤给指令
大任务拆成小步骤:
不好:
> 重构整个认证系统
好:
> 第一步:分析当前认证系统的结构
> 第二步:设计新的认证流程
> 第三步:先重构登录接口
> ...
6. 利用上下文
Codex 会记住对话历史。善用这一点:
> 基于刚才的分析,把 login 函数重构一下
7. 善用 /compact
长对话会消耗上下文。定期用 /compact 压缩历史:
> /compact
十二、常见问题
Q: Codex 和 GitHub Copilot 有什么区别?
Copilot 是 IDE 内的代码补全工具,主要做单行或小块代码补全。
Codex 是终端代理,能执行复杂任务:读代码、跑命令、改文件、调试。
Q: 用 ChatGPT 订阅还是 API Key?
有 ChatGPT Plus/Pro 就用 ChatGPT 登录,最简单。
如果公司不让用 ChatGPT 账号,或需要精确控制成本,用 API Key。
Q: Codex 会把我的代码发送到 OpenAI 吗?
会。Codex 需要把代码上下文发给 OpenAI 的服务器才能工作。
如果代码敏感,考虑:
- 用本地模型(需要自己部署)
- 只让 Codex 访问非敏感目录
- 和公司安全团队确认
Q: 如何撤销 Codex 的修改?
用 Git:
git diff # 查看修改
git checkout . # 撤销所有未提交的修改
git reset --hard # 硬重置
Q: Codex 太慢了怎么办?
• 用更快的模型:o4-mini 比 o3 快
• 减少 AGENTS.md 的长度
• 用 /compact 压缩对话历史
• 确保网络稳定
Q: Codex 卡住了怎么办?
按 Ctrl+C 中断,然后重新开始。
如果频繁卡住,检查网络连接或重启 Codex。
Q: 如何查看当前配置?
使用 /debug-config 命令查看所有配置层和来源:
> /debug-config
十三、总结
Codex CLI 是一个强大的终端编程代理。用好它的关键是:
1. 配置好 AGENTS.md:让 Codex 理解你的项目
2. 从小任务开始:建立信任后再给大任务
3. 保持版本控制:方便回滚
4. 善用远程控制:离开电脑时也能监控和审批
它不会替代程序员,但能显著提升编码效率——尤其是那些重复性高、上下文复杂的任务。
参考链接
• Codex CLI GitHub 仓库:https://github.com/openai/codex
• Codex 官方文档:https://developers.openai.com/codex
• ChatGPT 订阅说明:https://help.openai.com/en/articles/11369540-codex-in-chatgpt
• AGENTS.md 指南:https://developers.openai.com/codex/guides/agents-md
• MCP 协议:https://modelcontextprotocol.io
夜雨聆风