1 | 工具定位:为什么要在工作流里用 Codex CLI?
- 终端原生:在 shell 内即可调用最新 OpenAI 模型完成“读‑写‑跑”全过程,免切 IDE 或浏览器
- 可控自治:三档 Approval Mode(Suggest → Auto‑Edit → Full‑Auto)让你在安全与自动化间自由切换
- 沙箱防护:本地运行+无网络沙箱,代码不出机器;Git 回滚随时兜底
2 | 环境准备
步骤 | 命令 / 要点 |
---|---|
Node.js ≥ 22、macOS 12+/Ubuntu 20.04+(Win 需 WSL2) | — |
全局安装 | npm i -g @openai/codex |
配置密钥 | export OPENAI_API_KEY=<your‑key> |
运行检查 | codex –help(生成 shell‑completion 时用 codex completion zsh 等) |
3 | 基础交互流程
# 1) 交互模式(Suggest,默认)
codex # 进入 REPL
codex "explain this repo" # 带首 prompt
# 2) 半自动批量编辑
codex --auto-edit "migrate Jest->Vitest"
# 3) 全自动原型
codex --full-auto "scaffold a Rust REST API with Auth"
- 回显中出现 patch / shell 时按 y/n 审核。
- /mode 可随时热切模式。
- 常用 flags:-m
选版本,-q 静默输出到 JSON。
4 | 五大典型工作流场景
场景 | 操作示例 | 价值 |
---|---|---|
快速 bug 修复 | codex "fix TypeError in src/price.ts line 42" | AI 查读文件→生成补丁→跑测试,几乎零上下文切换 |
批量代码重构 | codex –auto-edit "rename all *.jpeg to *.jpg & update imports" | 多文件批改+git mv,避免脚本手搓错误 |
绿色字段开发 | codex –full-auto "build a Next.js blog with MDX & Tailwind" | 高自治原型,生成‑安装‑运行‑演示一条龙 |
安全扫描 / 代码评审 | codex "review this repo for vulns and propose patches" | 输出整改清单或直接修补 CVE |
CI/CD 自动化 | GitHub Action:codex -a auto-edit -q "update CHANGELOG" | 在流水线做文档生成、测试修复、迁移脚本 |
5 | 高质量 Prompt 写法
参考官方 prompting guide,总结“三段式”
- 任务一句话:清晰描述结果;如“在 utils/priceUtils.js 中添加 10% 折扣”。
- 上下文要点:指定文件/函数/测试位置,避免大模型盲搜。
- 验收标准:告诉 Codex 何为完成—测试通过、CLI 退出码 0 或写入 final_output.md。
复杂任务可把说明写入 task.md 再 codex "$(cat task.md)"。
6 | 配置与团队协作
文件 | 作用 |
---|---|
~/.codex/config.yaml | 默认模型、错误策略等全局设置 |
~/.codex/instructions.md | 个人偏好(如“始终用 pnpm”)。 |
CODEX.md / codex.md | 项目内规则(目录结构、Lint 约束) |
7 | 安全最佳实践
- 最小权限:先用 Suggest ,确认稳定后再切 Auto‑Edit / Full‑Auto。
- Git 保护:无版本控制时 Codex 会警告;务必启用分支或 pre‑commit。
- 网络沙箱:Full‑Auto 下任何外网请求默认阻断,可手动白名单 。
8 | 升级 & 生态
codex --upgrade # 一键更新
- 与 Amazon Q Developer CLI 同属“Agentic Coding”范畴,但 Codex 完全开源、模型可换;Q CLI 更偏 AWS 生态和云资源自动化 。
- 未来计划开放 命令白名单 与 自定义子代理,适合构建企业级 Dev‑Agent 流水线(官方 Roadmap)。
结语
将 Codex CLI 嵌入你的日常 Git / CI / 脚本流程,就像给终端加了一位懂业务的副驾——小任务提高 5‑10× 效率,大型重构也有自动化沙盘保驾。现在就试试 codex "explain this repo",让它先“认识”你的代码,然后交给它更多细活!
echo ‘export OPENAI_API_KEY="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"’ >> ~/.zshrc
source ~/.zshrc