Codex CLI 使用教程:常用命令、斜杠命令与权限模式

更新于

装好 Codex、接通 API 之后,下一步就是用起来。这篇按实际使用顺序讲:在项目里开始第一次对话、怎么描述任务、怎么看改动和撤回、权限模式怎么选、常用斜杠命令、用 AGENTS.md 写项目规则、恢复历史会话,以及在脚本里用 codex exec。

📌
一句话答案:在项目目录运行 codex 进入对话,直接用中文描述任务;输入 /permissions 选权限模式,/model 切换模型,/init 生成项目规则文件 AGENTS.md,/review 让 Codex 检查改动;要在脚本里调用就用 codex exec。

开始之前:先接好 API

本文默认你已经装好 Codex CLI,并且按 Codex 配置教程 把服务商指向了 API 快连。在终端里检查一下:

BASH
codex --versioncodex exec "用一句话介绍你自己"

第一行能输出版本号、第二行能收到回复,就可以往下看了。命令行版、桌面版和 VS Code 插件共用同一份 ~/.codex/config.toml,配一次就行。

第一次对话:在项目目录启动

Codex 会读写当前目录里的代码,所以先进入项目目录再启动:

BASH
cd 你的项目目录codex

出现输入框后直接用中文说你要做什么,回车发送。Codex 会先读相关文件,再提出修改或执行命令。也可以把第一句话直接跟在命令后面:

BASH
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 里自己定义的权限需要精细控制的用户
⚠️
「Approve for me」会让 Codex 用一个内部审核模型 codex-auto-review 判断命令能不能执行,接第三方服务时会报模型不存在。用 API 快连请选 Ask for approval,由你自己确认;已经开了的改法见 model not found 怎么解决 里的 Codex 一节。

也可以在启动时用参数指定(多用于脚本):

参数可选值说明
-s / --sandboxread-only、workspace-write、danger-full-access只读、可以改当前项目、完全放开
-a / --ask-for-approvalon-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 生成一份初稿,再按需修改。一个简单的例子:

AGENTS.md
# 项目规则- 这是一个 Node.js 项目,包管理器用 pnpm- 改完代码先运行 pnpm test,全部通过再结束- 代码注释用中文- 不要修改 migrations/ 目录里的文件

Codex 读取 AGENTS.md 的规则:

  • 全局:~/.codex/AGENTS.md,对所有项目生效;同一目录下有 AGENTS.override.md 时优先读它,适合临时覆盖。
  • 项目:从项目根目录(一般是 Git 根目录)开始,一直读到你启动 Codex 的那个目录,每一级最多读一个文件。离当前目录越近的规则排在越后面,冲突时以它为准。
  • 大小上限:所有文件加起来默认最多读 32 KiB,超出部分不再读入,规则写精炼一些。

恢复之前的对话

关掉终端后想接着上次的工作继续:

BASH
codex resume # 列出保存的对话,选一个继续codex resume --last # 直接继续当前目录里最近的一次对话

--last 只找当前目录下的对话,想不限目录就加 --all。已经在 Codex 里的话,输入 /resume 也一样。

在脚本里用:codex exec

codex exec 是非交互模式:执行一个任务,把最终结果打印出来就退出,适合放进脚本或定时任务。

BASH
codex exec "总结这个仓库的目录结构,列出风险最高的 5 个地方"
  • 默认只读:codex exec 默认在只读沙箱里运行,不会改文件。需要它改代码时加 --sandbox workspace-write。
  • 结果写进文件:-o result.md 只把最终回复写进文件;--json 会输出每一步的事件(JSON Lines),方便程序解析。
  • 把内容通过管道传给它:管道里的内容会作为上下文,命令里的文字是要求。
  • 接着上次继续:codex exec resume --last "继续修复刚才发现的问题"。
BASH
codex exec --sandbox workspace-write "修复 src/utils 里的类型错误"cat error.log | codex exec "分析这段日志里的报错原因" -o analysis.md

在服务器或 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 桌面版教程。