Codex CLI 命令汇总:费曼学习法版
写作原则: 先讲”它是什么”,再讲”怎么用”,最后给” cheat sheet “。
目标读者: 听说过 Codex 但还没用过的人。
核心隐喻: Codex 就像一个”外包程序员”,你只要用自然语言告诉它要做什么,它就会自己改代码、跑测试、提交 commit。
第一部分:Codex 到底是什么?
一句话解释
Codex 是 OpenAI 做的一个命令行 AI 编程助手。 你输入一句话描述,它会:
- 读取你的代码
- 理解需求
- 自动修改文件
- 跑测试验证
- 提交 commit
整个过程你只需要说一句人话。
它能做什么?
| 能力 |
例子 |
| 写新功能 |
“给这个 API 加一个分页参数” |
| 修 bug |
“修复登录时 token 过期的错误” |
| 重构代码 |
“把这段重复的代码提取成一个函数” |
| 写测试 |
“给 auth 模块补单元测试” |
| 代码审查 |
“Review 这个 PR,指出潜在问题” |
| 批量修 issue |
同时修 3 个 issue,每个在独立分支 |
它不能做什么?
- 不在 git 仓库里跑(必须先
git init)
- 不保证代码永远正确(需要你 review)
- 不是 IDE 插件(它是命令行工具)
第二部分:核心概念(三个就够)
概念 1:Exec 模式(一次性任务)
codex exec "你的需求"
就像你雇了一个临时工,说一句话,他干完活就走。
1
| codex exec "给 README 加一个安装章节"
|
概念 2:Sandbox(安全沙箱)
Sandbox 是 Codex 工作时的”隔离房间”。它可以在里面改文件,但不会碰你系统上的其他东西。
| 模式 |
权限 |
什么时候用 |
workspace-write |
能改当前项目文件 |
绝大多数时候用这个 |
danger-full-access |
unrestricted |
沙箱报错时的 fallback |
--dangerously-bypass-approvals-and-sandbox |
完全无限制 |
你知道自己在做什么 |
费曼翻译: Sandbox 就像给 Codex 一个”临时工作室”,它只能在工作室里干活。workspace-write 给它这个工作室的钥匙;danger-full-access 直接把整个房子给它;最危险的那个参数直接把家门钥匙也给它——用的时候要小心。
概念 3:Background(后台跑长任务)
有些任务要跑几分钟,你不用等它,让它后台跑,过一会儿看结果。
1
| codex exec --sandbox workspace-write "重构整个 auth 模块"
|
加上 background=true 参数,它会异步执行。
第三部分:完整命令手册
3.1 安装与登录
1 2 3 4 5 6 7 8
| npm install -g @openai/codex
codex login
codex --version
|
3.2 基础命令(日常最常用的 5 个)
① 一次性执行:exec
1 2 3 4 5 6 7 8 9 10
| codex exec "你的需求描述"
codex exec "加一个用户注册 API" --workdir ~/my-project
codex exec --sandbox workspace-write "修一下登录 bug"
codex exec -s "修一下登录 bug"
|
② 代码审查:review
1 2 3 4 5 6 7 8
| codex review --base origin/main
codex review --base origin/main --pr 42
codex review --diff "$(git diff origin/main...HEAD)"
|
③ 交互模式
④ 查看帮助
1 2 3 4 5
| codex --help
codex exec --help
|
3.3 完整参数一览
执行模式参数
| 参数 |
全称 |
作用 |
默认值 |
exec "prompt" |
execute |
执行一次性任务 |
— |
-s, --sandbox workspace-write |
sandbox mode |
沙箱模式,自动批准文件修改 |
off |
--sandbox danger-full-access |
sandbox mode |
无沙箱限制(沙箱报错时用) |
— |
--dangerously-bypass-approvals-and-sandbox |
bypass all |
bypass 一切限制(最危险) |
— |
--yolo |
alias |
上面那个参数的简写(江湖别名) |
— |
-q, --quiet |
quiet |
安静模式,少输出 |
false |
--json |
json output |
输出 JSON 格式结果 |
false |
注意: --full-auto 还能用,但官方说它 deprecated 了,建议用 -s 代替。
环境变量
| 变量 |
作用 |
例子 |
OPENAI_API_KEY |
OpenAI API key |
export OPENAI_API_KEY=sk-... |
CODEX_HOME |
Codex 配置目录 |
export CODEX_HOME=~/.codex |
CODEX_TIMEOUT |
超时时间(秒) |
export CODEX_TIMEOUT=600 |
3.4 高级用法
在临时目录里跑 Scratch 任务
Codex 必须在 git 仓库里跑,如果你只是想临时测试:
1
| cd $(mktemp -d) && git init && codex exec "用 Python 写一个贪吃蛇游戏"
|
批量修多个 Issue(并行 Worktree 模式)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git worktree add -b fix/issue-78 /tmp/issue-78 main git worktree add -b fix/issue-99 /tmp/issue-99 main
codex exec -s "Fix issue #78: 登录接口返回 500" --workdir /tmp/issue-78 codex exec -s "Fix issue #99: 头像上传失败" --workdir /tmp/issue-99
cd /tmp/issue-78 && git push -u origin fix/issue-78 gh pr create --repo user/repo --head fix/issue-78
git worktree remove /tmp/issue-78
|
批量 Review 多个 PR
1 2 3 4 5 6 7 8 9
| git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'
codex exec "Review PR #86: 检查安全问题" --workdir ~/project & codex exec "Review PR #87: 检查代码风格" --workdir ~/project &
gh pr comment 86 --body "$(codex exec '总结 PR #86 的问题')"
|
后台跑长任务
1 2 3 4 5 6 7 8 9 10 11
| codex exec -s "重构整个数据库层" --workdir ~/my-project
ps aux | grep codex
process(action="list") process(action="poll", session_id="xxx") process(action="log", session_id="xxx") process(action="kill", session_id="xxx")
|
第四部分:常见场景速查表
场景 1:我想让 Codex 加一个功能
1
| codex exec "给 /api/users 加一个分页参数 page 和 page_size"
|
场景 2:我想让 Codex 修一个 bug
1
| codex exec "修复登录时 refresh token 不刷新 access token 的问题"
|
场景 3:我想让 Codex 重构代码
1
| codex exec "把 src/utils/ 下的三个重复函数合并成一个通用的"
|
场景 4:我想让 Codex 写测试
1
| codex exec "给 src/auth/ 目录下的所有模块补单元测试,覆盖率要到 80%"
|
场景 5:我想让 Codex Review 一个 PR
1 2 3 4 5
| gh pr checkout 42
codex review --base origin/main
|
场景 6:我想批量修 3 个 issue
1 2 3 4 5 6 7 8
| git worktree add -b fix/issue-1 /tmp/issue-1 main git worktree add -b fix/issue-2 /tmp/issue-2 main git worktree add -b fix/issue-3 /tmp/issue-3 main
codex exec -s "Fix issue #1: ..." --workdir /tmp/issue-1 & codex exec -s "Fix issue #2: ..." --workdir /tmp/issue-2 & codex exec -s "Fix issue #3: ..." --workdir /tmp/issue-3 &
|
场景 7:沙箱报错了怎么办?
1 2
| codex exec --sandbox danger-full-access "你的任务"
|
场景 8:Codex 卡住了/没反应
1 2 3 4 5 6 7 8
| git rev-parse --git-dir
codex login
codex exec --json "你的任务"
|
第五部分:容易踩的坑(7 个)
坑 1:不在 git 仓库里跑
1 2 3
| ❌ cd ~/some-random-folder && codex exec "hello" ✅ cd ~/my-project && codex exec "hello" # 如果没有 git 仓库:cd $(mktemp -d) && git init && codex exec "hello"
|
坑 2:忘记加 pty=true
在 Hermes 里调用 Codex 时,必须加 pty=true,否则 Codex 会卡住不动。
1 2 3
| terminal(command="codex exec 'hello'", pty=true) terminal(command="codex exec 'hello'")
|
坑 3:沙箱权限不够
如果看到 bubblewrap / uid map / Permission denied 错误:
1
| codex exec --sandbox danger-full-access "你的任务"
|
坑 4:用了 deprecated 的 --full-auto
1 2 3 4 5
| codex exec --full-auto "你的任务"
codex exec -s "你的任务"
|
坑 5:需求描述太模糊
1 2 3
| ❌ "优化一下" → Codex 不知道你要优化什么 ❌ "修个 bug" → 哪个 bug? ✅ "把 userService 的查询方法加索引,N+1 查询降到 2 次"
|
坑 6:长任务没设超时
1 2
| terminal(command="codex exec '重构整个项目'", timeout=600)
|
坑 7:后台任务忘了清理
1 2 3
| process(action="list") process(action="kill", session_id="xxx")
|
第六部分:一句话总结
Codex = 说一句话,改一堆代码。
日常用 codex exec -s "你的需求",90% 的场景这一个命令就够了。
长任务加 background=true,沙箱报错换 danger-full-access,别的没了。
附录:完整命令速查卡
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| ┌─────────────────────────────────────────────────────────┐ │ CODEX 命令速查卡 │ ├─────────────────────────────────────────────────────────┤ │ │ │ 安装 │ │ npm install -g @openai/codex │ │ codex login │ │ │ │ 最常用(背这三个就够了) │ │ codex exec "需求" → 一次性执行 │ │ codex exec -s "需求" → 带沙箱执行 │ │ codex review --base origin/main → 代码审查 │ │ │ │ 高级 │ │ codex exec -s "需求" -q → 安静模式 │ │ codex exec --json "需求" → JSON 输出 │ │ codex exec -s "需求" --workdir DIR → 指定目录 │ │ codex exec -s "需求" --timeout 600 → 设置超时 │ │ │ │ 沙箱模式 │ │ -s / --sandbox workspace-write → 推荐默认 │ │ --sandbox danger-full-access → 沙箱报错时用 │ │ --dangerously-bypass-approvals → 完全放开(慎用) │ │ │ │ 后台任务 │ │ 用 Hermes terminal(background=true, pty=true) │ │ 用 process(action="list/poll/log/kill") 监控 │ │ │ │ 批量修 issue │ │ git worktree add + codex exec + gh pr create │ │ │ │ 常见错误 │ │ 不在 git 仓库 → 先 git init │ │ 卡住不动 → 加 pty=true │ │ 沙箱报错 → 换 danger-full-access │ │ 需求被误解 → 写更具体的描述 │ │ │ └─────────────────────────────────────────────────────────┘
|
延伸阅读
- 官方文档:https://github.com/openai/codex
- Hermes + Codex 集成:见 Hermes 文档
autonomous-ai-agents/codex
- 对比 Claude Code:两者定位类似,Codex 是 OpenAI 出品,Claude Code 是 Anthropic 出品