OpenAI Codex 的命令行参考页,适合想确认每个参数、子命令和适用场景的用户,也适合排查 --remote--json--sandbox--ask-for-approval 这类组合怎么生效。页面列出全局参数、交互式 TUI、非交互 codex execapp-serverloginresumeforkmcpsandbox 等命令,并注明哪些选项只在特定子命令下可用。

OpenAI Codex CLI 命令行选项与命令参考

如何阅读这份参考

这页收录 OpenAI Codex CLI 已文档化的命令和参数。你可以按 key 或 description 搜索;每个条目都会标明稳定或实验状态,并提示危险组合。

CLI 会继承 ~/.codex/config.toml 里的大部分默认值。你在命令行传入的 -c key=value 会覆盖当前这次运行的配置。配置优先级可参考 Config basics

全局参数

这些参数适用于基础 codex 命令,并会向各子命令传递,除非下文另有说明。运行子命令时,建议把全局参数放在子命令后面,例如 codex exec --oss ...,这样 Codex 才会按预期解析。

参数 类型 说明
PROMPT string 可选的会话初始指令。不传则直接启动 TUI,不预填消息。
--image, -i path[,path...] 给初始提示附加一张或多张图片。多个路径可用逗号分隔,也可以重复传这个参数。
--model, -m string 覆盖配置中的模型,例如 gpt-5.4
--oss boolean 使用本地开源模型提供方,等同于 -c model_provider="oss"。会校验 Ollama 是否正在运行。默认值:false
--profile, -p string ~/.codex/config.toml 加载的配置 profile 名称。
--sandbox, -s read-only | workspace-write | danger-full-access 为模型生成的 shell 命令选择 sandbox 策略。
--ask-for-approval, -a untrusted | on-request | never 控制 Codex 在执行命令前何时暂停并请求人工批准。on-failure 已弃用;交互式运行优先用 on-request,非交互式运行优先用 never
--dangerously-bypass-approvals-and-sandbox, --yolo boolean 跳过所有批准和 sandbox。默认值:false。只建议在外部已加固的环境里使用。
--dangerously-bypass-hook-trust boolean 本次运行时执行已启用 hooks,但不要求它们已持久化信任。默认值:false。只适合已经审核过 hook 来源的自动化场景。
--cd, -C path 在 Agent 开始处理请求前设置工作目录。
--search boolean 启用实时网页搜索,把 web_search 从默认的 "cached" 切换为 "live"。默认值:false
--add-dir path 额外授予其他目录写入权限,和主工作区并列。可重复传入多个路径。
--no-alt-screen boolean 禁用 TUI 的 alternate screen,覆盖本次运行的 tui.alternate_screen。默认值:false
--remote ws://host:port | wss://host:port 把交互式 TUI 连接到远程 app-server WebSocket 端点。仅支持 codexcodex resumecodex fork;其他子命令会拒绝 remote 模式。
--remote-auth-token-env ENV_VAR 从指定环境变量读取 bearer token,并在使用 --remote 连接时发送。必须配合 --remote 使用;只有 wss:// URL,或主机是 localhost127.0.0.1::1ws:// URL 才会发送 token。
--enable feature 强制启用某个 feature flag,等同于 -c features.<name>=true。可重复。
--disable feature 强制禁用某个 feature flag,等同于 -c features.<name>=false。可重复。
--config, -c key=value 覆盖配置值。值会尽量按 JSON 解析;如果解析失败,就按字面字符串处理。

命令总览

Maturity 列使用 Experimental、Beta、Stable 这类成熟度标签。如何理解这些标签,可参考 Feature Maturity

命令 Maturity 说明
codex stable 启动终端 UI。可接受上面的全局参数,以及可选的 prompt 或图片附件。
codex app-server experimental 启动 Codex app server,适合本地开发或通过 stdio、WebSocket、Unix socket 调试。
codex remote-control experimental 确保本地 app-server daemon 已启用 remote-control 支持。
codex app stable 在 macOS 或 Windows 上启动 Codex desktop app。macOS 会打开 workspace 路径;Windows 会打印要打开的路径。
codex debug app-server send-message-v2 experimental 通过内置测试客户端向 app-server 发送一条 V2 message。
codex debug models experimental 打印 Codex 看到的原始 model catalog,并可选择只看 bundled catalog。
codex apply stable 把 Codex Cloud task 生成的最新 diff 应用到本地工作区。别名:codex a
codex cloud experimental 在终端里浏览或执行 Codex Cloud task,不用打开 TUI。别名:codex cloud-tasks
codex completion stable 为 Bash、Zsh、Fish 或 PowerShell 生成 shell completion。
codex features stable 列出 feature flags,并在 config.toml 里持久启用或禁用。
codex exec stable 非交互运行 Codex。别名:codex e。结果可输出到 stdout 或 JSONL,也可以恢复之前的会话。
codex execpolicy experimental 评估 execpolicy 规则文件,查看某个命令会被允许、提示还是阻止。
codex login stable 通过 ChatGPT OAuth、device auth、API key 或经 stdin 传入的 access token 登录 Codex。
codex logout stable 移除已保存的认证凭据。
codex mcp experimental 管理 Model Context Protocol servers,包括 list、add、remove、authenticate。
codex plugin marketplace experimental 从 Git 或本地来源添加、列出、升级或移除插件 marketplace。
codex mcp-server experimental 把 Codex 本身作为 MCP server 通过 stdio 运行,供其他 agent 消费。
codex resume stable 按 ID 继续之前的交互式会话,或者恢复最近一次对话。
codex fork stable 把之前的交互式会话 fork 成新的 thread,同时保留原始 transcript。
codex sandbox experimental 在 Codex 提供的 macOS、Linux 或 Windows sandbox 中运行任意命令。
codex update stable 当已安装版本支持自更新时,检查并应用 Codex CLI 更新。

命令详情

codex(交互式)

不带子命令运行 codex 会启动交互式 terminal UI(TUI)。它接受上面的全局参数,也支持图片附件。网页搜索默认是 cached 模式;要切到 live browsing,请使用 --search。如果是本地工作,想尽量少打断流程,可以用 --sandbox workspace-write --ask-for-approval on-request

要把 TUI 连到 app-server,可使用 --remote ws://host:port--remote wss://host:port。对应的 app-server 需要通过 codex app-server --listen ws://IP:PORT 启动。如果 WebSocket 认证需要 bearer token,再加 --remote-auth-token-env <ENV_VAR>

codex app-server

在本地启动 Codex app server。这个命令主要用于开发和调试,行为可能在未通知的情况下变化。

参数 类型 说明
--listen stdio:// | ws://IP:PORT | unix:// | unix://PATH | off 传输监听地址。stdio:// 使用 JSONL-over-stdio;ws://IP:PORT 开启 TCP WebSocket 端点;unix:// 使用默认 Unix socket;unix://PATH 使用自定义 Unix socket;off 关闭本地传输。默认值:stdio://
--ws-auth capability-token | signed-bearer-token app-server WebSocket 客户端的认证模式。如果省略,WebSocket 认证会关闭;非本地监听时,启动会给出警告。
--ws-token-file absolute path 保存共享 capability token 的文件。使用 --ws-auth capability-token 时必填。
--ws-shared-secret-file absolute path 保存用于验证 signed JWT bearer token 的 HMAC shared secret 文件。使用 --ws-auth signed-bearer-token 时必填。
--ws-issuer string signed bearer token 期望的 iss claim。使用 --ws-auth signed-bearer-token 时必填。
--ws-audience string signed bearer token 期望的 aud claim。使用 --ws-auth signed-bearer-token 时必填。
--ws-max-clock-skew-seconds number 验证 signed bearer token 的 expnbf claims 时允许的时钟偏差。默认值:30
--analytics-default-enabled boolean 默认对第一方 app-server 客户端启用 analytics,除非用户在配置中选择退出。默认值:false

codex app-server --listen stdio:// 会保持默认的 JSONL over stdio 行为。--listen ws://IP:PORT 会为 app-server 客户端启用 WebSocket 传输。server 接受 ws:// 监听 URL;如果客户端用 wss:// 连接,请自行使用 TLS termination 或安全代理。要接受 Codex 默认 Unix socket 上的 WebSocket handshake,可以使用 --listen unix://;要指定 socket 路径,则使用 --listen unix:///absolute/path.sock。如果你在生成 client bindings 的 schema,可加 --experimental 以包含受 gating 的字段和方法。

codex remote-control

确保 app-server daemon 已启用 remote-control 支持。

托管的 remote-control 客户端和 SSH 远程工作流会用这个命令;它不能替代你在构建本地协议 client 时使用的 codex app-server --listen

codex app

从终端启动 Codex Desktop,支持 macOS 和 Windows。macOS 上,Codex 可以打开指定 workspace path;Windows 上,Codex 会打印要打开的路径。

参数 类型 说明
PATH path Codex Desktop 的 workspace path。默认值:.。macOS 会打开这个路径;Windows 会打印它。
--download-url url 安装时使用的 Codex desktop installer URL 高级覆盖项。

codex app 会打开已安装的 Codex Desktop app;如果 app 不存在,也会启动安装程序。macOS 会打开传入的 workspace path;Windows 则会在安装后打印要打开的路径。

codex debug app-server send-message-v2

通过 app-server 的 V2 thread/turn 流程发送一条消息,使用内置 app-server 测试客户端。

参数 类型 说明
USER_MESSAGE string 通过内置 V2 test-client flow 发送给 app-server 的消息文本。

这个 debug flow 会以 experimentalApi: true 初始化,启动 thread,发送 turn,并流式接收 server notifications。适合在本地复现和检查 app-server 协议行为。

codex debug models

以 JSON 打印 Codex 看到的原始 model catalog。

参数 类型 说明
--bundled boolean 跳过刷新,只打印当前 binary 自带的 model catalog。默认值:false

当你只想查看当前 binary bundled 的 catalog,而不想从远端 models endpoint 刷新时,可以使用 --bundled

codex apply

把 Codex cloud task 的最新 diff 应用到本地 repository。你必须先完成认证,并且有该 task 的访问权限。

参数 类型 说明
TASK_ID string 需要应用 diff 的 Codex Cloud task 标识。

如果 git apply 失败,Codex 会打印 patched files,并以非零退出码结束,例如发生冲突时。

codex cloud

在终端里和 Codex cloud tasks 交互。默认命令会打开交互式 picker;codex cloud exec 会直接提交 task,codex cloud list 会返回最近的 task,方便脚本化处理或快速查看。

参数 类型 说明
QUERY string task prompt。不传则 Codex 会交互式追问细节。
--env ENV_ID 目标 Codex Cloud environment identifier,必填。可用 codex cloud 查看可选项。
--attempts 1-4 Codex Cloud 要运行的 assistant attempts 数量(best-of-N)。默认值:1

认证方式和主 CLI 相同。若 task 提交失败,Codex 会以非零退出码结束。

codex cloud list

列出最近的 cloud tasks,并支持过滤与分页。

参数 类型 说明
--env ENV_ID 按 environment identifier 过滤 task。
--limit 1-20 返回的最大 task 数。默认值:20
--cursor string 由上一次请求返回的分页游标。
--json boolean 输出机器可读 JSON,而不是纯文本。默认值:false

纯文本输出会先打印 task URL,再打印状态细节。用 --json 适合自动化。JSON payload 包含 tasks 数组和可选的 cursor 值。每个 task 包含 idurltitlestatusupdated_atenvironment_idenvironment_labelsummaryis_reviewattempt_total

codex completion

生成 shell completion script,并把输出重定向到合适位置,例如 codex completion zsh > "${fpath[1]}/_codex"

参数 类型 说明
SHELL bash | zsh | fish | power-shell | elvish 要生成 completion 的 shell。默认值:bash。输出会打印到 stdout。

codex features

管理保存在 ~/.codex/config.toml 中的 feature flags。enabledisable 会持久化修改,使其对未来会话生效。启动时如果使用了 --profile,Codex 会写入该 profile,而不是根配置。

参数 类型 说明
list codex features list 显示已知 feature flags、成熟度阶段及其当前生效状态。
enable <feature> codex features enable <feature> config.toml 中持久启用一个 feature flag。会遵循当前 --profile
disable <feature> codex features disable <feature> config.toml 中持久禁用一个 feature flag。会遵循当前 --profile

codex exec

codex exec(短写 codex e)适合脚本或 CI 场景,目标是无人工交互地完成任务。

参数 类型 说明
PROMPT string | - (read stdin) 任务的初始指令。用 - 可从 stdin 传入 prompt。
--image, -i path[,path...] 给第一条消息附加图片。可重复;也支持逗号分隔列表。
--model, -m string 覆盖本次运行使用的配置模型。
--oss boolean 使用本地开源 provider,需要有正在运行的 Ollama 实例。默认值:false
--sandbox, -s read-only | workspace-write | danger-full-access 模型生成命令的 sandbox 策略。默认取配置值。
--profile, -p string 选择 config.toml 中定义的配置 profile。
--full-auto boolean 已弃用的兼容标志。建议改用 --sandbox workspace-write;使用时 Codex 会打印警告。默认值:false.
--dangerously-bypass-approvals-and-sandbox, --yolo boolean 跳过批准提示和 sandbox。危险,只建议在隔离 runner 里使用。默认值:false
--dangerously-bypass-hook-trust boolean 本次运行执行已启用 hooks,但不要求它们已持久化信任。默认值:false。只适合已审核 hook 来源的自动化。
--cd, -C path 执行任务前设置 workspace root。
--skip-git-repo-check boolean 允许在 Git repository 外运行,适合一次性目录。默认值:false
--ephemeral boolean 运行时不把 session rollout files 持久化到磁盘。默认值:false
--ignore-user-config boolean 不加载 $CODEX_HOME/config.toml。认证仍然使用 CODEX_HOME。默认值:false
--ignore-rules boolean 本次运行不加载 user 或 project 的 execpolicy .rules 文件。默认值:false
--output-schema path 描述最终响应结构的 JSON Schema 文件。Codex 会根据它校验 tool output。
--color always | never | auto 控制 stdout 的 ANSI color。默认值:auto
--json, --experimental-json boolean 输出换行分隔的 JSON events,而不是格式化文本。默认值:false
--output-last-message, -o path 把 assistant 的最终消息写入文件,适合下游脚本使用。
Resume subcommand codex exec resume [SESSION_ID] 按 ID 恢复 exec 会话;也可以加 --last 继续当前工作目录下最近的会话。加 --all 后会考虑任意目录下的会话。还可接一个可选的后续 prompt。
-c, --config key=value 给非交互运行传入的内联配置覆盖项。可重复。

codex exec 默认输出格式化文本。加 --json 会输出 newline-delimited JSON events,每次状态变化一条。可选的 resume 子命令可以继续非交互任务。用 --last 时,会选择当前工作目录下最近的 session;加 --all 会搜索所有 session:

参数 类型 说明
SESSION_ID uuid 恢复指定 session。不传时可配合 --last 继续最近的 session。
--last boolean 跳过选择器,继续当前工作目录下最近的 conversation。默认值:false
--all boolean 选择最近 session 时,把当前工作目录之外的 session 也纳入。默认值:false
--image, -i path[,path...] 给后续 prompt 附加一张或多张图片。多个路径可用逗号分隔,也可以重复传参。
PROMPT string | - (read stdin) 可选的后续指令,会在恢复后立即发送。

codex execpolicy

在保存 execpolicy 规则文件之前先检查它。codex execpolicy check 接受一个或多个 --rules 参数,例如 ~/.codex/rules 下的文件,并输出 JSON,显示最严格的决策以及所有匹配到的规则。加 --pretty 可格式化输出。execpolicy 目前处于 preview 阶段。

参数 类型 说明
--rules, -r path (repeatable) 要评估的 execpolicy rule file 路径。可传多个参数,把多个文件的规则合并起来看。
--pretty boolean 美化 JSON 输出。默认值:false
COMMAND... var-args 要按指定策略检查的命令。

codex login

使用 ChatGPT account、API key 或 access token 认证 CLI。什么都不传时,Codex 会打开浏览器走 ChatGPT OAuth 流程。

参数 类型 说明
--with-api-key boolean 从 stdin 读取 API key,例如 `printenv OPENAI_API_KEY
--with-access-token boolean 从 stdin 读取 access token,例如 `printenv CODEX_ACCESS_TOKEN
--device-auth boolean 使用 OAuth device code flow,而不是打开浏览器窗口。
status subcommand codex login status 打印当前认证模式;如果已登录则以 0 退出。

codex login status 在凭据存在时会以 0 退出,这对自动化脚本很有用。

codex logout

移除 API key 和 ChatGPT 认证的已保存凭据。这个命令没有参数。

codex mcp

管理保存在 ~/.codex/config.toml 中的 Model Context Protocol server 条目。

命令 类型 说明
list --json 列出已配置的 MCP servers。加 --json 可输出机器可读结果。
get <name> --json 显示某个 server 的配置。--json 会输出原始配置条目。
add <name> -- <command...> | --url <value> 通过 stdio launcher command 或 streamable HTTP URL 注册 server。stdio transport 支持 --env KEY=VALUE
remove <name> 删除已保存的 MCP server 定义。
login <name> --scopes scope1,scope2 为支持 OAuth 的 streamable HTTP server 发起 OAuth 登录。
logout <name> 移除 streamable HTTP server 的已保存 OAuth 凭据。

add 子命令同时支持 stdio 和 streamable HTTP 两种 transport:

参数 类型 说明
COMMAND... stdio transport 启动 MCP server 的可执行文件及参数。放在 -- 后面。
--env KEY=VALUE repeatable 启动 stdio server 时注入的环境变量。
--url https://… 注册 streamable HTTP server,而不是 stdio。与 COMMAND... 互斥。
--bearer-token-env-var ENV_VAR 连接 streamable HTTP server 时,取值会作为 bearer token 发送的环境变量。

OAuth 操作(loginlogout)只对 streamable HTTP server 生效,而且仅当 server 支持 OAuth 时才可用。

codex plugin marketplace

管理 Codex 可以浏览和安装的插件 marketplace 来源。

命令 类型 说明
add <source> [--ref REF] [--sparse PATH] 从 GitHub shorthand、Git URL、SSH URL 或本地 marketplace 根目录安装插件 marketplace。--sparse 只对 Git 来源有效,可重复。
list 显示 Codex 当前考虑中的插件 marketplace 以及每个 marketplace 的 root path。
upgrade [marketplace-name] 刷新一个已配置的 Git marketplace;如果不传名称,则刷新全部已配置的 Git marketplace。
remove <marketplace-name> 移除已配置的插件 marketplace。

codex plugin marketplace add 接受 GitHub shorthand,例如 owner/repoowner/repo@ref,也接受 HTTP 或 HTTPS Git URL、SSH Git URL 以及本地 marketplace root directory。用 --ref 可以固定 Git ref;针对 Git-backed marketplace repository,可以重复 --sparse PATH 进行 sparse checkout。

codex plugin marketplace list 会打印作用域内的 marketplace 名称和根目录,包括自动发现的默认 marketplace 和已配置的 marketplace snapshots。

codex mcp-server

把 Codex 作为 MCP server 通过 stdio 运行,这样其他工具就能连接。这个命令会继承全局配置覆盖项,并在下游 client 关闭连接时退出。

codex resume

按 ID 继续交互式会话,或者恢复最近一次对话。codex resume--last 默认只在当前工作目录下查找,除非你加上 --all。它接受和 codex 相同的全局参数,包括模型和 sandbox 覆盖项。

参数 类型 说明
SESSION_ID uuid 恢复指定会话。不传时可配合 --last 继续最近会话。
--last boolean 跳过选择器,恢复当前工作目录下最近的 conversation。默认值:false
--all boolean 选择最近会话时,把当前工作目录之外的会话也纳入。默认值:false

codex fork

把之前的交互式会话 fork 成新的 thread。默认情况下,codex fork 会打开会话选择器;加 --last 可直接 fork 最近一次会话。

参数 类型 说明
SESSION_ID uuid fork 指定会话。不传时可配合 --last fork 最近会话。
--last boolean 跳过选择器,自动 fork 最近一次会话。默认值:false
--all boolean 在选择器里显示当前工作目录之外的会话。默认值:false

codex sandbox

使用 sandbox helper,在 Codex 内部相同的策略下运行命令。

macOS seatbelt

参数 类型 说明
--permissions-profile NAME 应用 active configuration stack 中的命名 permissions profile。
--cd, -C DIR 用于 profile 解析和命令执行的工作目录。需要配合 --permissions-profile
--include-managed-config boolean 在解析显式 permissions profile 时包含 managed requirements。需要配合 --permissions-profile。默认值:false
--allow-unix-socket path 允许 sandbox 内命令在该路径下绑定或连接 Unix socket。可重复以允许多个路径。
--log-denials boolean 命令运行时用 log stream 捕获 macOS sandbox denials,并在退出后打印。默认值:false
--config, -c key=value 传入 sandbox 运行的配置覆盖项。可重复。
COMMAND... var-args 在 macOS Seatbelt 下执行的 shell 命令。-- 后面的内容都会继续转发。

Linux Landlock

参数 类型 说明
--permissions-profile NAME 应用 active configuration stack 中的命名 permissions profile。
--cd, -C DIR 用于 profile 解析和命令执行的工作目录。需要配合 --permissions-profile
--include-managed-config boolean 在解析显式 permissions profile 时包含 managed requirements。需要配合 --permissions-profile。默认值:false
--config, -c key=value 在启动 sandbox 前应用的配置覆盖项。可重复。
COMMAND... var-args 在 Landlock + seccomp 下执行的命令。把可执行文件放在 -- 后面。

Windows

参数 类型 说明
--permissions-profile NAME 应用 active configuration stack 中的命名 permissions profile。
--cd, -C DIR 用于 profile 解析和命令执行的工作目录。需要配合 --permissions-profile
--include-managed-config boolean 在解析显式 permissions profile 时包含 managed requirements。需要配合 --permissions-profile。默认值:false
--config, -c key=value 在启动 sandbox 前应用的配置覆盖项。可重复。
COMMAND... var-args 在原生 Windows sandbox 下执行的命令。把可执行文件放在 -- 后面。

codex update

当已安装版本支持自更新时,检查并应用 Codex CLI 更新。debug build 会提示你改装 release build。

参数组合与安全建议

  • 适合无人值守本地工作的做法是使用 --sandbox workspace-write,这样命令可以留在工作区内执行;除非你在专用 sandbox VM 里,否则不要用 --dangerously-bypass-approvals-and-sandbox
  • 需要给 Codex 更多目录的写权限时,优先用 --add-dir,不要直接把 sandbox 放宽到 danger-full-access
  • 在 CI 里把 --json--output-last-message 配合起来,可以同时拿到机器可读进度和最终自然语言摘要。

相关资源

常见问题

OpenAI Codex 怎么传命令行参数

可以把全局参数放在 codex 后面,也可以放在子命令后面,例如 codex exec --oss ...-c key=value 会覆盖 ~/.codex/config.toml 中的同名配置,只对这次运行生效。

codex exec 怎么输出 JSON

codex exec--json,它会输出 newline-delimited JSON events,而不是格式化文本。若想把最终回答单独落盘,可以再配合 --output-last-message

codex resumecodex fork 有什么区别

codex resume 是继续原来的会话;codex fork 是从已有会话分叉出一个新 thread,同时保留原始 transcript。两个命令都支持 --last,也都能用 --all 扩大会话选择范围。