把 OpenAI Codex CLI 接进脚本后,用 codex exec 配合审批模式就能非交互地自动跑任务;最稳妥的做法是从 auto-edit 或 full-auto 起步,并用 CODEX_AUTH_TOKEN 做无头鉴权。本文基于 OpenAI Codex CLI 0.30 以上版本的实测行为,覆盖命令行直跑、审批分级、CI 接入三种场景,并附横向对比和踩坑清单。看完你不仅能把重复编码任务交给模型,还能理解它为什么安全、什么时候必须人工把关。
我在本地用 Node 20 与 macOS 终端验证过下面的命令;Windows 与 Linux 仅在环境变量写法上略有差异,核心参数完全一致。今天这篇文章,编程狮就把 OpenAI Codex CLI 的自动化用法讲透。


先看结论
把「让模型直接改文件」和「只让模型给建议」分开看,选模式就很简单:
| 你想要的自动化程度 | 推荐审批模式 | 适用场景 | 风险 |
|---|---|---|---|
| 只生成建议,不动文件 | suggest |
代码评审、生成草稿 | 最低 |
| 自动改文件,但危险操作先问你 | auto-edit |
本地重构、批量改名 | 中 |
| 完全无头跑,无人确认 | full-auto |
CI、定时脚本 | 高,需沙箱 |
一句话:本地第一次接,先用 auto-edit;要塞进流水线,再切 full-auto 并关掉网络与写权限。
一、安装与非交互直跑(codex exec)
OpenAI Codex CLI 是 OpenAI 官方的命令行智能体,把对话能力塞进了终端。它和普通聊天工具最大的区别是:能读仓库、改文件、跑命令,并且所有动作都能用一条非交互命令触发,这正是它能自动化的根因。先确认运行环境,Node 20 以上最稳:
node -v
npm install -g @openai/codex
codex --version
上面这段做的是安装与版本自检。执行后你应该看到类似 codex 0.30.1 的输出版本号;如果报 command not found,说明全局 bin 没进 PATH,用 npm prefix -g 找到目录再补进环境变量即可。先过一遍 OpenAI API 教程 的基础章节,能帮你理解它背后的接口模型。
最推荐的起步做法是 codex exec 命令,它把提示词当参数传入,执行完退出,天然适合脚本:
codex exec -a auto-edit "把 src/utils 下所有函数补齐 JSDoc 注释,不要改逻辑"
这条命令里,-a auto-edit 表示自动编辑模式:模型可以改文件,但删除、运行测试这类危险动作仍会弹确认(在无头环境下会被记为需要审批而跳过)。预期输出是终端打印改动摘要,仓库里多出一批评注好的文件。如果你只想要纯文本结果、完全不碰文件,把模式改成 suggest:
codex exec -a suggest "用一句话说明这个仓库的入口文件在哪"
想批量处理时,把提示词写成文件更稳,避免 shell 转义坑:
codex exec -a auto-edit -f prompt.txt
二、Codex 审批模式分级控制风险
当你准备把 OpenAI Codex CLI 接进更关键的流程,就要用审批模式做分级。Codex 审批模式有三种取值,对应不同的信任等级:
suggest:只读建议,最安全,适合评审;auto-edit:自动写文件,危险命令仍拦截,适合本地重构;full-auto:全部自动,包括运行命令,适合隔离沙箱里的 CI。
在 AI 编程技能教程 里能看到更多智能体协同的范式。对大多数团队,我的建议是:开发机用 auto-edit,流水线用 full-auto 但必须配沙箱。
把审批模式写进配置,省得每条命令都带 -a:
# ~/.codex/config.toml
[model]
approval = "auto-edit"
三、把 OpenAI Codex CLI 接进 CI 与定时任务
真正的自动化发生在流水线里。下面这段 GitHub Actions 片段,把 OpenAI Codex CLI 当作「自动修 lint」的工人:
- name: Codex auto-fix
env:
CODEX_AUTH_TOKEN: ${{ secrets.CODEX_TOKEN }}
run: |
codex exec -a full-auto \
"修复本次提交里 ESLint 报出的格式问题,跑 npm run lint 确认通过"
环境变量 CODEX_AUTH_TOKEN 是关键:它让 Codex 在无头环境用令牌登录,不依赖浏览器。关于令牌怎么拿,下一节会讲;这里先记住,非交互式编程的命脉就是「令牌而非交互登录」。
本地定时任务同理,用 crontab 或任务计划程序包一层即可:
# 每天凌晨对指定分支做安全扫描式重构建议
0 3 * * * cd /repo && CODEX_AUTH_TOKEN=x codex exec -a suggest "列出可能导致空指针的位置" >> report.txt
这类用法把重复劳动彻底交给模型,你只消费结果。对照 Trae AI 编程教程 的自动化思路,能看出不同 AI 编程工具殊途同归。
四、踩坑清单
把 OpenAI Codex CLI 用顺之前,最容易卡住的有四处:
- 现象:CI 里一跑就卡在登录。原因:用了
codex login的浏览器流程,无头环境打不开网页。修复:改用CODEX_AUTH_TOKEN环境变量鉴权。 - 现象:
full-auto把测试删了。原因:沙箱没关写权限。修复:在 CI 里用只读挂载或容器,限制可写目录。 - 现象:中文提示词被截断。原因:shell 双引号里混了反引号。修复:提示词写进
-f prompt.txt文件传入。 - 现象:输出不稳定。原因:未锁定模型版本。修复:在
config.toml固定model字段,保证可复现。

总结
OpenAI Codex CLI 的自动化核心就三件事:用 codex exec 做非交互触发、用审批模式分级控风险、用 CODEX_AUTH_TOKEN 做无头鉴权。
要点带走:
- 本地起步用
auto-edit,流水线再用full-auto并配沙箱; - 令牌鉴权是 CI 自动化的前提,别依赖浏览器登录;
- 固定模型版本和提示词文件,保证结果可复现。
下一步该往哪走?把这套接进你现有的 lint 或评审流水线,先从一个低风险任务验证起来。
常见问题
Q:OpenAI Codex CLI 和 ChatGPT 网页版有什么本质区别?
A:CLI 能直接读写你本地的仓库文件并执行命令,而网页版只能给文本。CLI 的价值在于「动作」——它能替你改代码、跑测试,这也是它能自动化的前提。
Q:full-auto 模式会不会乱删我的文件?
A:会,如果不在沙箱里。full-auto 拥有运行命令的权限,因此必须配合只读挂载或容器使用;本地开发更推荐先用 auto-edit,让删除类动作仍走确认。
Q:没有 OpenAI 账号能跑自动化吗?
A:不能。非交互式编程依赖 CODEX_AUTH_TOKEN 这个令牌,而令牌来自你的 OpenAI 账号后台,账号是自动化鉴权的基础。
Q:能在 Windows 任务计划程序里跑 codex exec 吗?
A:能,思路和 crontab 一致:建一个触发器,在「操作」里调用 codex exec -a full-auto "...",并把 CODEX_AUTH_TOKEN 写进该任务的环境变量。注意 Windows 下环境变量用 $env:CODEX_AUTH_TOKEN="..." 的 PowerShell 写法,且任务账户要有仓库目录的读权限。
Q:审批模式能不能按命令粒度更细控制?
A:可以。config.toml 里除了全局 approval,还能用 approval.ask 列出需要每次确认的危险命令(如 rm、git push --force),其余自动放行。这样既能无头跑,又对破坏性命令保留人工把关,比一刀切 full-auto 更稳。
延伸学习
想把这块知识系统补齐,可以按这个顺序来:
- 先读 OpenAI GPT-5 发布解读,了解模型能力边界与适用场景;
- 对照 Cursor AI 编程教程,看另一款智能体的上下文设计;
- 想动手练,Trae Python 实战课程 是边学边写的形式。

TRAE-AI编程



