Codex CLI 使用教程:常用命令、斜杠命令与权限模式
更新于
装好 Codex、接通 API 之后,下一步就是用起来。这篇按实际使用顺序讲:在项目里开始第一次对话、怎么描述任务、怎么看改动和撤回、权限模式怎么选、常用斜杠命令、用 AGENTS.md 写项目规则、恢复历史会话,以及在脚本里用 codex exec。
codex 进入对话,直接用中文描述任务;输入 /permissions 选权限模式,/model 切换模型,/init 生成项目规则文件 AGENTS.md,/review 让 Codex 检查改动;要在脚本里调用就用 codex exec。开始之前:先接好 API
本文默认你已经装好 Codex CLI,并且按 Codex 配置教程 把服务商指向了 API 快连。在终端里检查一下:
第一行能输出版本号、第二行能收到回复,就可以往下看了。命令行版、桌面版和 VS Code 插件共用同一份 ~/.codex/config.toml,配一次就行。
第一次对话:在项目目录启动
Codex 会读写当前目录里的代码,所以先进入项目目录再启动:
出现输入框后直接用中文说你要做什么,回车发送。Codex 会先读相关文件,再提出修改或执行命令。也可以把第一句话直接跟在命令后面:
几个常用的启动参数:
| 参数 | 作用 | 例子 |
|---|---|---|
-C 路径 | 不用先 cd,直接指定工作目录 | codex -C ~/projects/demo |
-m 模型名 | 这次会话临时换一个模型 | codex -m gpt-5.6-sol |
-i 图片路径 | 把截图、设计稿作为第一句话的附件 | codex -i error.png "这个报错怎么解决" |
模型名以你的密钥能用的为准(用 /v1/models 查,见 model not found 怎么解决)。
怎么描述任务效果最好
- 说清目标和范围:「给登录页加记住密码,只改 src/pages/login 下面的文件」比「优化一下登录」好得多。
- 告诉它怎么算完成:例如「改完运行 npm test,全部通过再结束」。Codex 会自己跑命令验证。
- 一次一件事:大任务拆成几步,每步确认后再继续,出错时容易回退。
- 先让它读再让它改:不熟悉的项目,先问「这个功能是怎么实现的」,看懂了再提修改要求。
查看和撤回改动
建议在 Git 仓库里使用 Codex,开始之前先把手头的改动提交一次,这样随时能看清 Codex 改了什么,不满意也能整体撤回。
/diff:在 Codex 里直接查看 git diff(包括新建、还没加入 Git 的文件)。/review:让 Codex 检查当前的改动、找出问题。也可以在终端运行codex review,不进入对话直接出审查结果。- 不满意就用 Git 撤回,例如
git restore .丢弃工作区里还没提交的修改(会连你自己的未提交修改一起丢掉,先确认)。
权限模式怎么选
权限模式决定 Codex 能自己做哪些事、什么时候停下来问你。在对话里输入 /permissions 就能切换:
| 模式 | 能做什么 | 适合谁 |
|---|---|---|
| Ask for approval | 在当前项目里可以直接读写;改项目外的文件、联网之前会先问你 | 推荐,多数情况用这个 |
| Approve for me | 只有被判断为可能有风险的操作才问你,其余交给自动审查 | 接 API 快连时不要选,原因见下方提示 |
| Full access | 不受限制地访问网络和电脑上的任何文件 | 只在隔离的环境里用,风险最大 |
| Custom (config.toml) | 使用 config.toml 里自己定义的权限 | 需要精细控制的用户 |
codex-auto-review 判断命令能不能执行,接第三方服务时会报模型不存在。用 API 快连请选 Ask for approval,由你自己确认;已经开了的改法见 model not found 怎么解决 里的 Codex 一节。也可以在启动时用参数指定(多用于脚本):
| 参数 | 可选值 | 说明 |
|---|---|---|
-s / --sandbox | read-only、workspace-write、danger-full-access | 只读、可以改当前项目、完全放开 |
-a / --ask-for-approval | on-request、never | 需要时停下来问你,或从不询问 |
--yolo | — | 不询问、不加沙箱,执行任何命令。官方说明只能在外部已经加固的环境里用 |
网上的旧教程里还有 --full-auto 参数,现行版本的参数列表里已经没有它了,按上表的写法即可。
常用斜杠命令速查
在输入框里打 / 会列出当前版本支持的全部命令,下面是最常用的几个:
| 命令 | 作用 |
|---|---|
/model | 选择模型和推理强度 |
/permissions | 切换权限模式 |
/init | 为当前项目生成 AGENTS.md 规则文件 |
/review | 检查当前的改动,找出问题 |
/diff | 查看 git diff(包括还没加入 Git 的新文件) |
/status | 查看当前会话的配置和 token 用量 |
/compact | 把对话压缩成摘要,避免上下文超出上限 |
/new | 在当前会话里开始一段新对话 |
/resume | 恢复之前保存的对话 |
/mention | 在对话里引用某个文件 |
/quit 或 /exit | 退出 Codex |
命令会随版本增减,以你本机输入 / 后列出的为准。
用 AGENTS.md 写项目规则
每次都要交代的事情(用什么包管理器、怎么跑测试、哪些目录不能动),写进 AGENTS.md,Codex 每次开始工作前都会先读。最省事的办法是在项目里输入 /init,让 Codex 生成一份初稿,再按需修改。一个简单的例子:
Codex 读取 AGENTS.md 的规则:
- 全局:
~/.codex/AGENTS.md,对所有项目生效;同一目录下有AGENTS.override.md时优先读它,适合临时覆盖。 - 项目:从项目根目录(一般是 Git 根目录)开始,一直读到你启动 Codex 的那个目录,每一级最多读一个文件。离当前目录越近的规则排在越后面,冲突时以它为准。
- 大小上限:所有文件加起来默认最多读 32 KiB,超出部分不再读入,规则写精炼一些。
恢复之前的对话
关掉终端后想接着上次的工作继续:
--last 只找当前目录下的对话,想不限目录就加 --all。已经在 Codex 里的话,输入 /resume 也一样。
在脚本里用:codex exec
codex exec 是非交互模式:执行一个任务,把最终结果打印出来就退出,适合放进脚本或定时任务。
- 默认只读:
codex exec默认在只读沙箱里运行,不会改文件。需要它改代码时加--sandbox workspace-write。 - 结果写进文件:
-o result.md只把最终回复写进文件;--json会输出每一步的事件(JSON Lines),方便程序解析。 - 把内容通过管道传给它:管道里的内容会作为上下文,命令里的文字是要求。
- 接着上次继续:
codex exec resume --last "继续修复刚才发现的问题"。
在服务器或 CI 里运行时,config.toml 和环境变量的写法与本机相同,见 Codex 配置教程。
常见问题
Codex 改文件前总要我确认,能不能少问几次?
当前是 Ask for approval 模式,在项目内的读写本来就不用确认;频繁询问多半是在改项目外的文件或联网。确实需要放开,可以输入 /permissions 换成 Custom,在 config.toml 里按需放宽。接 API 快连时不要选 Approve for me。
对话太长,Codex 开始答非所问怎么办?
输入 /compact 把前面的对话压缩成摘要,或者用 /new 开始一段新对话。一个任务做完就开新对话,效果更好,也更省钱。
用量记录里出现了我没选过的模型?
通常是 Codex 自己发起的后台请求,例如压缩上下文,并不是线路乱跳。
用 Codex CLI 需要 ChatGPT 订阅吗?
不需要。按 Codex 配置教程把服务商指向 API 快连后,用 API 密钥按实际用量计费,不需要 ChatGPT Plus / Pro,也不需要 OpenAI 账号。
命令行版和桌面版有什么区别?
能力基本相同,共用同一份 ~/.codex/config.toml。命令行版适合习惯终端、要写脚本的人;喜欢图形界面的可以看 Codex 桌面版教程。