两个入口:codex 与 codex exec
安装完成后,你有两种方式启动 Codex,适用于不同的使用场景:
| 命令 | 模式 | 适用场景 |
|---|---|---|
codex |
交互式终端 UI | 日常开发、探索代码库、多轮对话 |
codex exec |
非交互式(单次执行) | 脚本、CI/CD 流水线、批量自动化 |
codex(无子命令)会打开全屏终端界面,你可以和 AI 多轮对话、查看文件变更差异,以及使用下文所有斜杠命令。
codex exec 则完全不需要交互,把任务作为参数传入,AI 执行完成后直接退出,退出码反映成功或失败,方便在脚本中判断。
斜杠命令(/model、/init 等)只在 codex 交互模式下可用。在 codex exec 中不支持斜杠命令,控制行为请改用 CLI 参数或配置文件。
常用命令行参数
以下是最常用的几个 CLI 参数,完整的参数列表可在官方文档中查阅:
# 查看当前安装的版本号
$ codex --version
# 指定使用的模型(交互模式与 exec 模式均可用)
$ codex --model gpt-4o
$ codex exec --model gpt-4o "写一个 hello world 脚本"
--model <id> 接受模型 ID 字符串,优先级高于 ~/.codex/config.toml 中的 model 字段。若想永久切换模型,建议修改配置文件;若只是本次测试,用命令行参数更方便。
官方文档中还记录了更多命令行选项。本文仅介绍最常用的两个,以避免过时信息。如需完整参数列表,请以 codex --help 输出或官方仓库 README 为准。
斜杠命令速查表
在 Codex 交互界面的底部输入框内输入 /,会弹出命令选择器。继续输入可筛选命令,按 Enter 确认执行。
| 命令 | 作用 |
|---|---|
/model |
在当前会话内切换模型,无需退出重开 |
/approvals 或 /permissions |
调整 Codex 可以无需询问便执行的操作权限(审批策略) |
/init |
分析当前项目目录,自动生成 AGENTS.md 草稿 |
/status |
显示当前会话状态(连接、模型、上下文等) |
/feedback |
捕获请求 ID 与日志并发送反馈,便于问题定位 |
/fast |
切换到更快速的响应模式 |
/personality |
调整 AI 的回复风格与人格设定 |
/agent |
管理 Agent 相关设置 |
/raw |
切换原始输出模式,显示未经格式化的响应内容 |
最常用的三个是 /model(临时换模型)、/permissions(调整权限)和 /init(初始化项目记忆)。其余命令按需使用即可。
审批与沙箱模式
Codex 的安全机制分为两层,互相独立:审批策略决定 Codex 在执行操作前是否需要征得你的同意;沙箱模式决定 Codex 在技术上被允许执行哪些操作。
沙箱模式
| 沙箱模式 | 描述 | 适用场景 |
|---|---|---|
read-only |
只读模式,Codex 不能修改任何文件或执行写操作 | 审查代码、纯分析任务 |
workspace-write |
默认模式。可读取文件、在工作区内编辑文件、运行常规本地命令,不影响工作区以外的系统 | 日常开发、绝大多数场景 |
danger-full-access |
无限制模式,移除所有沙箱约束 | 需要安装全局包、修改系统配置等特殊操作,谨慎使用 |
danger-full-access 模式移除了所有技术限制,Codex 可以执行任何系统操作。仅在确实需要时才使用,并确保你清楚 AI 将要执行的内容。
审批策略
审批策略控制 Codex 执行操作前是否需要询问你。使用 /permissions(或 /approvals)斜杠命令可以在会话中随时调整。低摩擦的默认配置(workspace-write 沙箱)已经能满足大多数场景——Codex 只在执行超出工作区范围的操作前才会提示确认。
把 Codex 写进脚本(exec 示例)
codex exec 让你把 AI 编码能力嵌入任何 shell 脚本或 CI 流水线,无需人工干预。下面是几个实用示例:
# 最简用法:传入任务描述,Codex 执行后退出
$ codex exec "为 src/utils.js 中的所有函数添加 JSDoc 注释"
# 指定模型
$ codex exec --model gpt-4o "检查 package.json 的依赖是否存在已知安全漏洞"
#!/bin/bash
# 在 CI 中自动生成变更日志草稿
set -e
# 确保 API Key 已在环境变量中设置
if [ -z "$OPENAI_API_KEY" ]; then
echo "错误:未设置 OPENAI_API_KEY"
exit 1
fi
# 执行任务,codex exec 返回非零退出码时脚本自动终止
codex exec "根据 git diff HEAD~1 的内容,为本次提交生成简洁的 CHANGELOG 条目,追加到 CHANGELOG.md 文件末尾"
echo "CHANGELOG 已更新"
- 无审批弹窗:
codex exec是非交互式的,不会弹出需要你手动确认的对话框,适合无人值守的自动化。 - 退出码可靠:任务成功退出码为
0,失败为非零,脚本中可直接用set -e或$?判断。 - 环境变量传入:在 CI 中通过 Secrets 注入
OPENAI_API_KEY,不要把 Key 硬编码在脚本里。 - 配合 AGENTS.md:提前在项目中生成
AGENTS.md(通过/init),让codex exec也能理解项目背景和约定。
AGENTS.md:项目的持久记忆
AGENTS.md 是放在项目根目录的 Markdown 文件,Codex 每次启动时都会自动读取它,作为对话的系统背景。你可以在里面写项目简介、代码规范、常用命令、禁止做的事情等。
使用 /init 斜杠命令,Codex 会扫描当前目录结构并自动生成一份 AGENTS.md 草稿,你只需在此基础上补充和调整即可。
# 在 codex 交互界面的输入框中输入:
/init
常见问题
codex exec 支持斜杠命令吗?
不支持。斜杠命令是交互模式的功能,codex exec 以命令行参数的形式接收任务,不支持 /model、/init 等斜杠命令。需要指定模型时,用 --model 参数代替 /model。
/feedback 发送了什么内容?
/feedback 会捕获当前会话的请求 ID 和连接日志,帮助 OpenAI 团队定位问题。它不会发送你的代码内容,只发送元数据。如果你遇到奇怪的 Bug 或性能问题,运行一次 /feedback 是最快的上报方式。
能不能让 Codex 默认不再询问我确认?
可以。使用 /permissions(或 /approvals)调整审批策略,降低触发确认弹窗的门槛。对于全自动脚本场景,使用 codex exec 更合适——它本身就不会弹出交互确认。
AGENTS.md 里可以写哪些内容?
任何希望 Codex 每次都记住的项目信息:项目简介、技术栈、目录结构说明、代码风格约定、常用构建命令、禁止修改的文件路径等。写得越具体,Codex 的表现越符合预期。