Codex 使用技巧:用 codex exec 把任务交给脚本自动跑

发布于 2026-10-25 · 4 分钟读完 · Codex / 使用技巧 / 自动化

不想每次都在终端里和 Codex 对话?codex exec 可以一行命令跑完一个任务,适合自动生成说明、总结测试失败、接入持续集成。本文整理管道输入、权限、JSON 输出、续接会话和密钥安全五个实用技巧。

平时用 Codex,是在终端里一来一回地对话。但有些活儿完全可以交给脚本:每天自动生成更新说明、测试失败后自动总结原因、在持续集成里做检查。这时要用的是 Codex 的非交互模式,也就是 codex exec。本文按 OpenAI 官方文档,整理它最实用的几种用法。

一行命令跑完一个任务

codex exec 后面直接跟任务描述,Codex 做完就退出,不会进入对话界面:

codex exec "generate release notes for the last 10 commits" | tee release-notes.md

它的输出有一个很好用的设计:执行过程写到 stderr,只有最终回答写到 stdout。所以可以直接用管道或重定向把结果存成文件,不会混进中间过程。

不想在本机留下这次会话的记录文件,加上 --ephemeral。

技巧一:把命令输出当作上下文喂给它

管道送进来的内容加上一句任务描述,Codex 会把任务描述当作指令、把管道内容当作补充资料。最典型的用法是让它读测试结果:

npm test 2>&1 | codex exec "summarize the failing tests"

如果任务描述本身很长,可以写在文件里,用 - 表示从标准输入读取整个任务:

cat prompt.txt | codex exec -

技巧二:先想清楚给多大权限

非交互模式没有人在旁边点确认,所以权限要提前定好:

  • 默认是只读沙箱,适合分析、总结、出报告;
  • 需要改文件时,加 --sandbox workspace-write;
  • danger-full-access 只在隔离的环境里用,例如持续集成的运行机或容器。

官方已经不再支持旧的 --full-auto 参数。想要以前的效果,用 --sandbox workspace-write;想让越界请求交给自动审核,用 --approve-for-me。

另外,Codex 默认要求在 Git 仓库里运行。确认环境安全时,才用 --skip-git-repo-check 跳过这个检查。

技巧三:让结果方便程序读取

脚本要拿 Codex 的结果做下一步处理时,有三个参数很有用:

  1. --json:把整个过程按 JSON Lines 格式输出到 stdout,每行一个事件,例如 thread.started、turn.started、turn.completed、turn.failed、error,以及命令执行、文件修改、网页搜索、计划更新等条目。
  2. -o 或 --output-last-message <文件>:把最终回答单独写进一个文件,同时照常打印。
  3. --output-schema <文件>:给一个 JSON Schema,让最终回答按这个结构输出。下游步骤读取固定字段时,就不用再从一段文字里去猜。

技巧四:接着上次的任务继续

非交互模式也能延续上下文。继续最近一次运行:

codex exec resume --last "fix the issues you found"

指定某一次会话,则用 codex exec resume <SESSION_ID>。先让它只读分析,再根据结果追加一句让它动手,是很顺手的两步走用法。

技巧五:登录方式和密钥安全

  • codex exec 默认沿用你在命令行里已经保存的登录状态,本机使用不需要额外设置。
  • 只想在某一次运行中使用 API 密钥,可以在这条命令前临时设置 CODEX_API_KEY。
  • 在 GitHub Actions 里,官方推荐用 Codex 的 GitHub Action,而不是自己安装命令行。
  • 不要把 OPENAI_API_KEY 或 CODEX_API_KEY 设成整个任务都能读到的环境变量,尤其是会运行仓库代码的任务,因为构建脚本和依赖包都能读到它。
  • 登录凭据文件 auth.json 要像密码一样保管;用 ChatGPT 账号登录的方式放进持续集成,官方只建议在可信的私有运行机上使用,不适合公开仓库。

一个完整的思路:自动修复测试失败

官方文档给了一个参考做法:持续集成失败后触发一个后续流程,用只读权限检出失败的提交,通过 GitHub Action 运行 Codex,把修改保存成补丁文件;再由另一个拥有写权限、但拿不到密钥的任务去应用补丁、发起合并请求。这样分开,Codex 既能干活,密钥和仓库写权限又不会落在同一个环节里。

上手建议

  • 先从只读任务开始,例如 codex exec "总结这个项目的目录结构",熟悉输出方式。
  • 把常用的任务描述存成文本文件,用 cat prompt.txt | codex exec - 反复调用。
  • 要接入其他脚本时,配合 --output-schema 和 -o,让结果格式固定下来。

codex exec 默认使用你的 ChatGPT 登录,跑自动化任务会持续消耗用量。日常使用 Plus 就能上手,自动化任务多、每天高强度使用的,可以在 BuyBuy代充(buybuytopup.cn) 开通 ChatGPT Pro,各套餐具体用量以 ChatGPT 官网为准。

参考资料

  1. Non-interactive mode(ChatGPT Learn 官方文档)

需要 AI 会员?

BuyBuy代充提供 ChatGPT(含 Codex)等会员套餐,支付宝、微信付款,付款后自动发货。

查看全部套餐
AI 会员 自动发货

ChatGPT Pro 100

适合当前为免费版的账号。付款后自动发卡密,按说明自助兑换。

¥838.50 10月21日更新 · 以下单时价格为准 平台支付手续费另计
AI 会员 自动发货

ChatGPT Plus

适合当前为免费版的账号。付款后自动发卡密,按说明自助兑换。

¥149.00 10月21日更新 · 以下单时价格为准 平台支付手续费另计

更多文章

全部文章