Codex 命令速查
按任务找命令,复制前看清输入、输出和权限。
- -C 选择目录,-c 临时覆盖配置,-p 选择已有配置档
- --json 输出 JSONL 事件,-o 保存最后一条消息
- review 的目标模式单选,resume 与 fork 需核对会话
- 旧开关重新查帮助,绕过保护不放入日常模板
1. 查命令前,先看这一页的适用范围
这页把终端里最常查的十八种操作放在一起。我通常先找任务,再核对输入、输出和权限影响,最后才复制命令。完整的一次调查、修改、测试和交接,放在 CLI 日常工作流。
本文于 2026 年 10 月 5 日在 Linux 核对 codex-cli 0.159.2 的版本与帮助,并对照官方文档。命令模板没有发起真实模型任务;没有登录、注册 MCP、改配置、升级软件或更改权限。模板中的 {{REPO}} 等是必须替换的占位符,路径建议使用绝对路径。多行反斜线示例面向 Bash / Zsh,不直接适用于 PowerShell。
01 · 先确认二进制与命令层级
遇到网上示例报错,先保留版本输出,再查目标子命令的帮助。顶层帮助只说明总入口,不能代替 exec resume 或 mcp add 自己的参数表。本文记录了帮助原文和退出码,后续升级可以按同样位置复查。
codex --versioncodex --helpcodex exec --helpcodex help review2. 目录与交互权限
模板里的只读沙箱限制模型生成命令的写入能力。CLI 自身的会话记录、shell 重定向和远端工具各有自己的行为,运行前仍需核对。审批策略影响何时询问用户,不会把一个本来禁止的动作自动变成允许。相关边界见 官方沙箱说明。
02 · 在指定目录只读调查
把 REPO 换成已经核对的仓库绝对路径。目录带空格时保留外层单引号。只读调查仍会启动真实会话,读取上下文并可能调用服务;执行前应确认配置中启用的工具和数据范围。
codex -C '{{REPO}}' --sandbox read-only --ask-for-approval on-request \
'说明项目入口和测试位置,暂不修改文件'03 · 允许已确认范围内的修改
要修改文件时显式写出 workspace-write,方便在终端历史里看清本次授权范围。需要额外目录时再评估 --add-dir;目录放进去之后会扩大可写范围,不能只为消除报错随手添加主目录。
codex -C '{{REPO}}' --sandbox workspace-write \
--ask-for-approval on-request '按已确认方案修改,并报告测试结果'3. 一次执行、标准输入与三种输出
04 · 运行一次非交互任务
exec 适合需要退出状态和输出流的调用。示例只提出调查任务,实际运行会使用当前账户与配置。--color never 去掉颜色控制字符,有助于保存可读日志;它不改变输出结构。
codex exec -C '{{REPO}}' --sandbox read-only --color never \
'概括仓库结构,并列出需要人工确认的内容'核对:codex-cli 0.159.2 · 2026-10-05 · exec-help.txt · 官方说明 · 相关专题
05 · 从文件读入提示词
末尾的短横线让提示词从标准输入读取,文件路径由当前 shell 打开。先检查文件,去掉凭据和不相关资料。若同时传入提示词参数和管道内容,本机帮助说明输入内容会作为 stdin 块追加,这与整份文件充当提示词的用法不同。
codex exec -C '{{REPO}}' --sandbox read-only --color never - \
< '{{PROMPT_FILE}}'核对:codex-cli 0.159.2 · 2026-10-05 · exec-help.txt · 官方说明 · 相关专题
06 · 分别保存事件与最后一条回答
--json 使 stdout 成为逐行 JSON 事件流,每行独立解析。-o 写出代理最后一条消息,不会保存完整事件历史。三个输出文件使用不同的绝对路径,避免互相覆盖;shell 的 > 会截断同名文件,重跑前先改名或确认可以覆盖。
codex exec -C '{{REPO}}' --sandbox read-only --json \
-o '{{FINAL_FILE}}' '列出项目入口及其用途' \
> '{{EVENTS_FILE}}' 2> '{{LOG_FILE}}'核对:codex-cli 0.159.2 · 2026-10-05 · exec-help.txt · 官方说明 · 相关专题
07 · 约束最终回答的结构
SCHEMA_FILE 是事先准备的 JSON Schema 文件。它描述最终回答的形状,运行完成后仍要做 JSON 解析、字段校验和业务核对。把 --json 加到这条命令,得到的 stdout 仍是事件流,不能直接当作符合 Schema 的最终对象。
codex exec -C '{{REPO}}' --sandbox read-only \
--output-schema '{{SCHEMA_FILE}}' -o '{{FINAL_FILE}}' \
'按给定结构总结项目'核对:codex-cli 0.159.2 · 2026-10-05 · exec-help.txt · 官方说明 · 相关专题
08 · 不保留本次会话文件
--ephemeral 控制本机会话文件的持久化。它不会关闭模型调用,也不保证清理终端历史、重定向日志或服务端记录。需要后续 resume 的任务,应先考虑是否适合使用它。
codex exec -C '{{REPO}}' --sandbox read-only --ephemeral \
'只给出目录概览'核对:codex-cli 0.159.2 · 2026-10-05 · exec-help.txt · 官方说明 · 相关专题
4. 按变化范围选 review
审查前先确认当前仓库、工作树和提交。--uncommitted、--base、--commit 以及自定义 PROMPT 四种目标模式需要单选。报告能否帮助合并,还取决于基线、测试和逐条复查;命令执行成功本身不承担这些判断。
09 · 审查未提交修改
--uncommitted 包括已暂存、未暂存和未跟踪变化。先看清工作树里是否混着另一件任务,否则报告范围会比预期大。本文只核对入口与帮助,没有运行模型审查,也没有以空报告证明代码正确。
codex -C '{{REPO}}' --sandbox read-only review --uncommitted核对:codex-cli 0.159.2 · 2026-10-05 · review-help.txt · 官方说明 · 相关专题
10 · 以基分支为审查范围
BASE 换成本地确实存在、且代表目标基线的分支引用。本命令不会替你确认远端已经更新;审查前自行核对引用和目标提交。不要在 --base 后再追加自定义提示词,当前官方说明将目标选择和自定义 PROMPT 设为互斥。
codex -C '{{REPO}}' --sandbox read-only review --base '{{BASE}}'核对:codex-cli 0.159.2 · 2026-10-05 · review-help.txt · 官方说明 · 相关专题
11 · 只审一个提交引入的变化
SHA 换成已经确认的提交标识。--title 可以补充提交标题,但它只适用于 --commit,不会更改审查范围。需要脚本化事件输出时,可查 codex exec review --help,不要假定顶层 review 接受 exec 的所有输出参数。
codex -C '{{REPO}}' --sandbox read-only review --commit '{{SHA}}'核对:codex-cli 0.159.2 · 2026-10-05 · review-help.txt · 官方说明 · 相关专题
5. 恢复与分叉会话
12 · 继续已有交互会话
第一条打开选择器,第二条指定会话。--last 会跳过选择器,--all 会取消当前目录过滤;找不到会话时先核对目录与账号。自动化里优先记下准确 ID,避免最近一次会话恰好来自别的工作。
codex resume -C '{{REPO}}' --sandbox read-onlycodex resume -C '{{REPO}}' --sandbox read-only '{{SESSION_ID}}'核对:codex-cli 0.159.2 · 2026-10-05 · resume-help.txt · 官方说明 · 相关专题
13 · 从已有会话试另一种方案
fork 从已有会话建立新的会话分支。它不会自动复制工作树;两个会话如果指向同一目录,仍可能操作同一份文件。需要文件隔离时另行规划 Git worktree,不能只凭会话名称判断隔离已经完成。
codex fork -C '{{REPO}}' --sandbox read-only '{{SESSION_ID}}'核对:codex-cli 0.159.2 · 2026-10-05 · fork-help.txt · 官方说明 · 相关专题
14 · 在脚本里继续已知会话
这里使用 exec resume,输出和生命周期按非交互调用处理。工作目录与沙箱参数放在exec 层,会话 ID 和后续提示词放在 resume 后。当前版本另有 exec fork,但它需要明确会话标识,不能照抄交互 fork 的全部参数。
codex exec -C '{{REPO}}' --sandbox read-only resume \
'{{SESSION_ID}}' '总结尚未验证的内容' --json核对:codex-cli 0.159.2 · 2026-10-05 · exec-resume-help.txt · 官方说明 · 相关专题
6. 目录、临时覆盖与配置档
15 · 只覆盖这次调用的配置
大写 -C 选择目录,小写 -c 接收 key=value。配置值按 TOML 解析,嵌套键可以用点号;外层单引号留给 shell,内层双引号是 TOML 字符串。MODEL 必须换成账户实际可用的模型;只改模型时也可用 -m。-c 不把本次覆盖写回配置文件。
codex -C '{{REPO}}' -c 'model="{{MODEL}}"' \
--sandbox read-only '说明当前项目结构'16 · 选择已有配置档并检查未知字段
0.159.2 的 -p / --profile 会把 CODEX_HOME 下的 NAME.config.toml 叠加到基础用户配置。PROFILE 换成已有配置档名,不填文件路径。--strict-config 遇到当前版本不认识的配置字段会报错;它仍是启动参数,不是一条独立离线配置检查命令。
codex -C '{{REPO}}' --profile '{{PROFILE}}' --strict-config \
--sandbox read-only '检查项目入口,暂不修改文件'本机顶层命令表没有 config 和 permissions。实测 codex help config 与 codex help permissions 都返回 unrecognized subcommand,退出码为 2。会话里的 /permissions 属于交互斜杠命令,不能直接写成 codex permissions 在系统 shell 执行。
配置还有项目、用户和管理层的优先级。官方配置说明将 CLI 覆盖放在普通配置层级前面,但管理要求仍可限制可用值。选中配置档也不代表排除了项目配置,排错时应同时检查当前目录对应的受信项目配置。
7. 查看认证与 MCP,不顺手扩大授权
17 · 检查 MCP 配置与注册语法
list 和 get 用来检查已有配置,输出也可能含内部地址或敏感参数,不要原样贴进公开 Issue。add 的 HTTP 形式接受 NAME 与 --url,stdio 形式用 -- 分隔服务器启动命令。注册会修改持久配置,连接和授权可能紧随其后;这里只提供帮助入口,完整接入过程见 MCP 专题。
codex mcp list --jsoncodex mcp get '{{MCP_NAME}}' --jsoncodex mcp add --help核对:codex-cli 0.159.2 · 2026-10-05 · mcp-help.txt · 官方说明 · 相关专题
18 · 核对登录状态与登录入口
status 用来查看登录状态,不能验证某个模型或某个 MCP 服务的实际可用性。登录帮助列出 --device-auth,以及从 stdin 读取凭据的选项。登录和退出会改变认证状态,本文没有执行;不要把真实密钥写成命令行字面量、粘进文章示例或放进截图。
codex login statuscodex login --help核对:codex-cli 0.159.2 · 2026-10-05 · login-help.txt · 官方说明 · 相关专题
8. 十八项输入、输出、权限与误用参考表
横向滚动查看完整列。每个编号跳转到上方模板;表中只列本文覆盖的操作,实验性命令和未核对参数以本机帮助为准。
| 任务 | 输入与输出 | 权限影响 | 常见误用 |
|---|---|---|---|
| 01 先确认二进制与命令层级 | 输入:命令路径;输出:版本或帮助文本 | 不发起模型任务 | 只看帮助退出码,不核对 Usage 和命令名 |
| 02 在指定目录只读调查 | 输入:目录与提示词;输出:交互会话 | read-only;需要时可请求审批 | 把 -C 当成配置覆盖,或认为只读就不会联网 |
| 03 允许已确认范围内的修改 | 输入:目录与修改任务;输出:交互会话和可能的文件变更 | 工作区可写;额外审批仍受策略控制 | 把 workspace-write 理解成可写整个磁盘 |
| 04 运行一次非交互任务 | 输入:单个提示词参数;输出:最终消息到 stdout,进度到 stderr | 显式只读;可能消耗额度 | 把无交互当成没有权限或费用影响 |
| 05 从文件读入提示词 | 输入:PROMPT_FILE 内容;输出:普通 exec 输出 | shell 先读取文件;内容可能进入模型上下文 | 漏掉重定向后等待 stdin,误以为程序卡死 |
| 06 分别保存事件与最后一条回答 | stdout:JSONL;stderr:诊断;-o:最后消息文件 | shell 与 CLI 会写日志文件;应使用可写且脱敏的路径 | 把 JSONL 当单个 JSON,或用 2>&1 污染事件流 |
| 07 约束最终回答的结构 | 输入:Schema 文件与任务;输出:受约束的最终消息 | 读取 Schema,写 FINAL_FILE;不增加工作区权限 | 用 --json 替代 --output-schema |
| 08 不保留本次会话文件 | 输入:任务;输出:本次回答 | 不持久化会话文件;其他数据处理照常 | 把 ephemeral 当成匿名、无日志模式 |
| 09 审查未提交修改 | 输入:当前工作树变化;输出:审查报告 | 启动真实审查;示例显式使用只读沙箱 | 认为只会审 git diff 中的未暂存内容 |
| 10 以基分支为审查范围 | 输入:基分支引用;输出:对应变化的审查报告 | 真实审查;不会代替你更新远端引用 | 基分支拼错,或混用 --base 与自定义 PROMPT |
| 11 只审一个提交引入的变化 | 输入:提交 SHA;输出:该提交引入变化的审查报告 | 真实审查;示例不申请写权限 | 混用 --commit、--base、--uncommitted |
| 12 继续已有交互会话 | 输入:选择器或会话 ID;输出:继续原会话 | 读取既有上下文并继续执行;需重新确认当前权限 | 把 --all 理解为批量恢复,把 --last 当成固定任务 |
| 13 从已有会话试另一种方案 | 输入:会话 UUID;输出:新的会话 | 历史上下文延续;文件隔离需单独确认 | 把会话分叉当成 Git 分支或工作树副本 |
| 14 在脚本里继续已知会话 | 输入:会话 ID 和后续提示;输出:JSONL 事件 | 继续真实任务;可能有费用和工具调用 | 把交互 resume 参数不加核对地搬到 exec resume |
| 15 只覆盖这次调用的配置 | 输入:临时 key=value;输出:使用该覆盖的新会话 | 覆盖值可能改变模型或工具行为;先审查键的含义 | 把 -c 当成目录参数,或漏掉 TOML 字符串引号 |
| 16 选择已有配置档并检查未知字段 | 输入:已有配置档名;输出:启动会话或配置错误 | 配置档可含权限与工具设置,使用前检查内容 | 继续套用旧教程里的内嵌 profiles 表,或把 -p 当权限档 |
| 17 检查 MCP 配置与注册语法 | 输入:配置名;输出:普通 JSON 配置对象或帮助 | list/get 为读取;add/remove/login/logout 会改变配置或授权状态 | 把 mcp list --json 当成 exec 的 JSONL,或把密钥写进 --env |
| 18 核对登录状态与登录入口 | 输入:无;输出:认证状态或登录帮助 | status 为状态查询;login/logout 影响凭据 | 把 Codex 登录和单独的 MCP OAuth 登录混为一谈 |
9. 升级时重新核对,别把旧开关一路带过来
2026-10-14 文档复核:官方非交互说明现已明确说明 --full-auto 不再受支持。旧脚本应改用显式 --sandbox workspace-write;需要自动审批审查时,可选 --approve-for-me。当前参数表规定后者不能与 --sandbox 或 --yolo 组合,交互 CLI 还不能同时指定 --ask-for-approval。本次仅复核文档,未执行上述命令,也未据此推定具体移除版本。下图与随后一段保留 2026-10-05 的历史记录。
2026-10-05 保存的官方非交互说明把 --full-auto 列为已弃用的兼容开关,新脚本改用明确的 --sandbox workspace-write,并单独考虑审批策略。本机 -a 帮助只列出 on-request 和 never;旧文章里的其他值不要直接搬过来。当次没有实际运行这些旧开关,因此不声称它们在所有发行版里都已删除。
never 表示不向用户请求审批,受限动作失败后会把失败返回模型。--approve-for-me 会把审批请求交给自动审查,并使用 workspace-write。两者的含义需要分别核对,不能根据名字猜测是否仍有沙箱。
风险开关 --dangerously-bypass-approvals-and-sandbox 会同时跳过确认并关闭沙箱。官方把它限于另有外部隔离的环境,本页不提供可复制启动模板。--dangerously-bypass-hook-trust 与 --ignore-rules 也会改变已有保护,遇到拒绝时应先检查范围和授权,不能用这些参数绕过去。
还有一个容易误读的名字:--skip-git-repo-check 只是允许在 Git 仓库外运行,不会建立安全边界,也不会替你创建仓库。需要时先核对目录和任务;正常仓库里的模板不必默认加它。--add-dir、--search、--worktree 分别涉及额外可写目录、实时搜索和新工作树,应按任务单独选择。
本次还有一条未完成的探测:codex sandbox linux --help 没有返回普通帮助,而是在构造沙箱时因本地 socket 目录要求失败,退出码为 1。未修权限或重试。所以这里不把 sandbox 子命令标成已验证用法。帮助存在、参数模板可解析和真实任务跑通,分别保留各自的证据。
10. 版本记录与继续查阅
本页的主要参数依据是随稿保存的 0.159.2 本机帮助,核对日期为 2026-10-05。官方文档是滚动更新页,之后若与本机结果不同,先记录安装版本与具体 Usage,再决定是否调整脚本。本文没有验证账号额度、模型可用性、真实审查质量或 MCP 连通性。
- 官方 CLI Reference / Developer commands:命令层级、审查互斥项与弃用说明
- 官方非交互模式:stdin、stdout、stderr 与结构化输出
- 官方配置基础:配置优先级与配置档路径
- 官方沙箱说明:执行边界与审批
- 官方权限配置:权限档及网络限制
codex config 和 codex permissions 可以直接执行吗?
本页核对的 0.159.2 没有这两个顶层子命令。配置使用 -c、-p 和配置文件;/permissions 是会话里的斜杠命令。
--json 会直接给我最终 JSON 对象吗?
在 exec 中,它输出 JSONL 事件流。最终结构使用 --output-schema 约束,需要单独解析和校验;-o 可保存最后消息。
read-only 会完全避免网络调用和费用吗?
不会。它约束模型生成命令的沙箱写入行为,模型服务、配置工具与日志仍需检查。本文的真实模型任务均未执行。