Codex 可通过 CLI 非交互模式配合 cron 或 Windows 任务计划程序实现自动化代码审查:需配置有效 API 密钥与模型中转站,编写带锁机制和重试逻辑的 Shell 脚本,并确保绝对路径与 SYSTEM 权限。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让 Codex 在每天凌晨两点自动跑一次代码审查,或者在 Git 推送后五分钟内触发 lint 修复并提 PR,但不想依赖 Codex 自带的 Automations 界面——这时候就得用外部调度工具接管执行权。这要求 Codex 以纯 CLI 模式运行,不弹窗、不交互、不卡住终端,所有输入靠参数和文件驱动,输出可重定向到日志。
确认 Codex CLI 非交互模式可用
打开终端,进入任意项目目录,执行:codex exec --prompt "列出当前目录下所有 .py 文件名"。
如果返回一串文件名(如 main.py、utils.py),说明非交互模式已通;若卡在登录提示或报 Missing API key,请先完成配置:确保 ~/.codex/config.toml 存在且 model_provider 已设为有效中转站名,auth.json 中的 【OPENAI_API_KEY 必须是真实可用的密钥】。
这一步失败,后续所有定时任务都会静默退出。
编写可调度的 Shell 脚本
在项目根目录新建 run-daily-review.sh,内容如下:
#!/bin/bash<br>cd /path/to/your/project<br>codex exec --prompt "检查 ./src/ 下所有 Python 文件是否存在未处理的 TODO 注释,汇总成 Markdown 表格,标题为【TODO 检查日报】" > ./logs/review-$(date +\%Y-\%m-\%d).md 2>&1
把 /path/to/your/project 替换为你真实的绝对路径。注意:不能用 ~ 或相对路径,cron 不认这些。
给脚本加执行权限:chmod +x run-daily-review.sh。
手动运行一次测试:./run-daily-review.sh,确认 ./logs/ 下生成了带日期的 Markdown 文件,且无报错。
用 cron 配置每日执行
执行 crontab -e,添加一行:
0 2 * * * /path/to/your/project/run-daily-review.sh
这表示每天凌晨 2:00 执行脚本。注意:cron 使用的是系统默认 shell(通常是 dash),不是你常用的 bash,所以脚本第一行 #!/bin/bash 不可省略。
保存退出后,等待下一整点或手动触发验证:sudo systemctl restart cron(Linux)或直接等两分钟看日志。
通过 Codex CLI 生成图片,支持尺寸控制和批量模式。依赖:codex (npm)。代理默认启用。用 generate.sh 生成单张,batch_generate.sh 批量生成游戏 UI 素材,gen_size.sh 指定尺寸。所有输出保存至 ~/.codex/generated_images/。
检查是否生效:grep CRON /var/log/syslog(Ubuntu)或 log show --predicate 'process == "cron"' --last 5m(macOS)。
防重入与失败重试(关键加固)
方法一:用锁文件防止同一任务并发执行
在 run-daily-review.sh 开头插入:
LOCKFILE="/tmp/codex-review.lock"<br>if [ -f "$LOCKFILE" ] && kill -0 $(cat "$LOCKFILE") > /dev/null 2>&1; then<br> exit 0<br>fi<br>echo $$ > "$LOCKFILE"<br>trap "rm -f $LOCKFILE" EXIT
这段代码会检查是否有同名锁文件且对应进程仍在运行,有则直接退出。锁文件写入当前 PID,并在脚本结束时自动清理。
方法二:失败后最多重试 2 次,间隔 3 分钟
把原 codex exec ... 行替换为:
for i in {1..2}; do<br> codex exec --prompt "检查 ./src/ 下所有 Python 文件..." > ./logs/review-$(date +\%Y-\%m-\%d).md 2>&1 && break || sleep 180<br>done
第一次失败后等 3 分钟再试,再失败就放弃。这能规避模型临时超时或网络抖动导致的误判。
Windows 任务计划程序配置
第一步:新建基本任务 → 触发器选“每天”,时间设为 02:00 → 操作选“启动程序”。
第二步:“程序或脚本”填 C:\Program Files\Git\bin\bash.exe(Git Bash 路径),“添加参数”填 -c "cd /c/Users/YourName/dev/my-app && ./run-daily-review.sh",“起始于”填 C:\Users\YourName\dev\my-app。
第三步:在“常规”选项卡中勾选“不管用户是否登录都要运行”和“不存储密码则只在用户登录时运行” → 点击“更改用户或组”,输入 SYSTEM 并确定。
【必须用 SYSTEM 账户运行,否则 Codex 无法读取本地文件或调用模型】。










