Codex CLI Deep Dive

OpenAI 终端编码 Agent 深度解析 -- 从架构到实战逐层拆解

Apache-2.0 开源 Rust + TypeScript 双实现 6 大模块 30+ Crate 3 层沙箱策略 10+ 模型提供商

M0 项目概览与定位

OpenAI 出品的终端编码 Agent,Apache-2.0 开源,本地运行,支持 ChatGPT 订阅额度和 API Key 两种认证方式。

产品定位

Codex CLI 是 OpenAI 的官方 CLI 编码 Agent,定位为本地运行的轻量级终端助手。它能读取仓库代码、执行 shell 命令、编辑文件,并在沙箱内安全运行。与 ChatGPT 桌面端的 Codex 功能互补,CLI 侧重开发者工作流CI/CD 集成

双实现演进

版本语言目录状态说明
旧版TypeScriptcodex-cli/维护模式初始实现,npm 安装
新版Rustcodex-rs/主力开发30+ crate 的 monorepo,Bazel 构建,原生二进制

产品矩阵

形态入口说明
CLI (TUI)codex全屏终端 UI,Ratatui 构建,主力交互方式
Headless / Execcodex exec无头模式,适用于脚本和 CI/CD
IDE 扩展VS Code / Cursor / Windsurf编辑器内集成
Desktop Appcodex appmacOS 桌面应用
Cloud (Web)chatgpt.com/codex云端 Agent,异步执行任务

认证方式

方式命令说明
ChatGPT 登录codex loginPlus / Pro / Team / Edu / Enterprise 订阅额度,推荐方式
API Keycodex login --with-api-key使用 OpenAI API Key,CI 场景用 CODEX_API_KEY 环境变量
Device Authcodex login --device-auth设备授权流

竞品对比

Codex CLI (OpenAI)
  • Rust 原生二进制,零依赖安装
  • ChatGPT 订阅额度 + API Key 双认证
  • 内置 Web 搜索(一等公民工具)
  • Apple Seatbelt / Landlock 沙箱
  • Codex Cloud 异步任务
  • Apache-2.0 全开源
  • 推荐模型:gpt-5.4
Claude Code (Anthropic)
  • TypeScript (Node.js) 实现
  • Anthropic API Key 认证
  • 15+ 内置工具 + 74 Skills
  • WebFetch / WebSearch 工具
  • Hooks + Permissions 安全体系
  • CLAUDE.md 项目记忆
  • 推荐模型:Claude Sonnet 4
Gemini CLI (Google)
  • TypeScript 实现
  • Google AI Studio API Key
  • Gemini 2.5 Pro 免费额度
  • Google Search 内置
  • 沙箱隔离较弱
  • GEMINI.md 项目记忆
  • 推荐模型:Gemini 2.5 Pro

三足鼎立格局:Codex CLI 的差异化在于 Rust 原生性能 + ChatGPT 生态 + 严格沙箱。与 Claude Code 的 TypeScript + Hooks 体系不同,Codex 走的是"原生二进制 + 系统级沙箱"路线。三者的 AGENTS.md / CLAUDE.md / GEMINI.md 分别代表了各自的"项目记忆"设计哲学。

M1 核心架构

Rust monorepo 结构,30+ crate 分工明确,core 库 + TUI/Exec/CLI 三层入口。

Monorepo Crate 全景

Codex-rs 采用 Cargo workspace 组织,每个 crate 职责单一。以下按功能域分类:

入口层 cli (多工具入口) / tui (Ratatui 全屏 UI) / exec (无头自动化)
业务层 core (Agent Loop + 业务逻辑) / config (TOML 配置) / state (会话持久化)
工具层 shell-command / apply-patch / file-search / hooks / skills
安全层 execpolicy / linux-sandbox / windows-sandbox-rs / process-hardening / shell-escalation
集成层 mcp-server / rmcp-client / ollama / lmstudio / chatgpt / app-server / network-proxy / otel

核心 Crate 详解

Crate职责关键特性
coreAgent Loop 核心业务逻辑可复用库 crate,驱动 TUI 和 Exec 两种模式
tui全屏终端 UI基于 Ratatui 框架,语法高亮,Diff 预览,主题系统
exec无头 CLICI/CD 场景,JSONL 输出,Schema 验证
cli多工具入口聚合所有子命令(tui/exec/app/mcp/login/cloud...)
configTOML 配置管理Profile 支持,JSON Schema 校验
execpolicy执行策略引擎.rules 文件,execve(2) 拦截
mcp-serverMCP Server 模式Codex 自身作为 MCP Server 暴露给其他 Agent
rmcp-clientMCP Client连接外部 MCP Server(STDIO / HTTP)
apply-patch文件补丁引擎模型输出的 Diff 应用到文件系统
linux-sandboxLinux 沙箱Landlock + seccomp / Bubblewrap 可选
process-hardening进程加固限制子进程能力
ollamaOllama 集成本地开源模型运行
lmstudioLM Studio 集成本地模型 GUI 接入
otelOpenTelemetryOTLP 遥测导出,企业可观测性
app-server应用服务器WebSocket / stdio 协议,供桌面/IDE 使用
network-proxy网络代理代理配置与流量路由
login认证ChatGPT OAuth / API Key / Device Auth
keyring-store凭证存储系统密钥链集成

Agent Loop 工作流

User Input Terminal / IDE / API / stdin Context Assembly AGENTS.md (3-layer) + config.toml + memories LLM API Call gpt-5.4 / o3 / Ollama / Azure / 10+ providers Tool Call? parse response Yes Approval Check never / on-request / untrusted Sandbox Execution Seatbelt / Landlock / WSL2 Tool Result Agent Loop No Text Response Stream to TUI / stdout Session Persist SQLite / resume / fork Tools Available shell / file-edit / web-search MCP / code-review / multi-agent Sandbox Layers macOS: Apple Seatbelt Linux: Landlock + seccomp / Bwrap Config: config.toml + AGENTS.md

架构哲学:Codex 的 core crate 被设计为可复用的库,TUI 和 Exec 只是 core 的两种"前端"。这与 Claude Code 的 TypeScript 单体架构不同 -- Codex 通过 Rust 的 crate 边界天然实现了模块解耦。core 封装了 Agent Loop、工具调用、审批逻辑,任何上层都可以直接复用。

Codex 胜出
  • Rust 原生二进制:零依赖安装,启动速度快,内存效率高
  • 30+ crate monorepo:编译时模块边界,天然解耦
  • 无依赖问题:不需要 Node.js 运行时,无 node_modules 膨胀
Claude Code 胜出
  • TypeScript/Node.js:更易扩展和 hack,JS 生态丰富
  • 迭代速度更快:动态语言开发效率高,发布周期更短
  • 单体架构更简洁:上手门槛低,社区贡献更容易

M2 核心功能模块

从 Shell 执行到多 Agent 协作,Codex CLI 的十大核心能力拆解。

Shell 执行(沙箱内) 核心工具

所有 shell 命令在沙箱内执行,根据 --sandbox 策略限制文件系统和网络访问。

沙箱模式文件访问网络命令执行
read-only只读阻断需审批
workspace-write工作区内读写默认阻断工作区内自动执行
danger-full-access全系统开启全部自动执行

沙箱通过 shell-command crate 执行命令,execpolicy crate 进行 execve(2) 拦截和规则匹配。

文件读写(apply-patch) 核心工具

文件编辑通过 apply-patch crate 实现,模型生成 Diff 格式的补丁,引擎负责将其精确应用到文件系统。

  • 受保护路径(workspace-write 模式):.git/.agents/.codex/ 目录为只读
  • Diff 预览:TUI 内置 Diff 高亮显示,修改前可审查
  • /diff 命令查看当前 Git diff(包含未跟踪文件)
Web 搜索(一等公民工具) 内置

Web 搜索是 Codex 的一等公民工具,与 shell/file 并列为核心 tool,不依赖外部 MCP。

模式配置说明
cached(默认)web_search = "cached"使用 OpenAI 维护的索引,降低 Prompt Injection 风险
liveweb_search = "live"--search实时获取当前页面内容
disabledweb_search = "disabled"完全关闭

安全提醒:live 模式下,Agent 可能被引导访问包含恶意指令的页面(Prompt Injection),建议在敏感环境使用 cached 模式。

代码审查(/review) 内置命令

专用审查模式,只读分析不修改工作树。支持多种审查目标:

  • Base Branch 对比:找到 merge base,高亮风险点
  • 未提交变更:staged / unstaged / untracked 全覆盖
  • 特定 commit:指定 commit hash 进行审查
  • 自定义指令:附加审查要求(如"关注安全问题")
多模态(图片输入) -i 标志

通过 -i / --image 标志附加截图或设计稿:

codex -i screenshot.png "解释这个错误" codex --image img1.png,img2.jpg "总结这些图表"

支持 PNG、JPEG 格式,多个文件用逗号分隔。也支持从剪贴板粘贴图片。

会话管理(resume / fork / clear) 持久化
操作命令说明
恢复最近codex resume --last跳转到最近一次会话
选择恢复codex resume打开会话选择器
恢复指定codex resume <SESSION_ID>通过 ID 恢复
分叉codex fork / /fork分叉当前会话到新线程,保留原始记录
清屏/clear清除终端并开始新对话
新建/new在同一终端会话内开始新对话
压缩/compact摘要当前对话以释放 token

会话数据存储在本地 SQLite 中,路径可通过 sqlite_home 配置或 CODEX_SQLITE_HOME 环境变量指定。

多 Agent(实验性) Experimental

通过 config.toml[agents] 部分配置多个角色 Agent,实现任务并行化

  • /agent 命令切换活动 Agent 线程
  • 支持深度限制和线程管理
  • /ps 命令查看后台终端进度

多 Agent 功能仍处于实验阶段,需通过 Feature Flag 开启。适用于大型重构或跨模块任务拆分。

Apps / 连接器 ChatGPT Apps

通过 /apps 命令浏览和安装 ChatGPT Apps(连接器)。在 Composer 中用 $app-slug 引用已安装的 App。

  • codex app:打开 macOS 桌面应用
  • 配置中可设置 App 信任级别
主题系统 /theme

/theme 命令预览并保存主题。TUI 支持 fenced markdown 代码块和 diff 的语法高亮。

  • 内置多种主题可选
  • 支持自定义 .tmTheme 文件,放置于 $CODEX_HOME/themes/
  • /personality 命令选择回复风格:friendly / pragmatic / none
通知系统 Hooks

Agent 完成一轮后触发通知 hook,支持桌面通知。通知配置在 config.toml 中设置,Hooks crate 管理生命周期事件。

工具一等公民化:Codex 将 Web 搜索和代码审查提升为内置一等公民工具,而非依赖外部 MCP 扩展。这与 Claude Code 依赖 WebFetch/WebSearch 工具的策略不同。内置意味着更紧密的集成和更低的延迟,但也牺牲了灵活性。

Codex 胜出
  • Web 搜索是一等公民:内置 cached/live/disabled 三种模式,无需外部工具
  • /review 代码审查命令:专用代码审查工作流,结构化输出
  • ChatGPT Apps 连接器$trigger 机制打通 ChatGPT 生态
Claude Code 胜出
  • 更成熟的子 Agent 系统:Agent 工具已生产就绪,支持多种子 Agent 类型
  • 更丰富的 Slash 命令:通过 Skills 系统可自定义扩展命令
  • 模型自然能力更强:无需专用命令也能完成代码审查等任务

M3 安全与沙箱

三层审批 + 三层沙箱 + 平台级隔离,Codex 的安全体系是其最大差异化优势之一。

审批模式(Approval Mode)

通过 --ask-for-approval 标志或 /permissions 命令控制:

模式CLI 标志行为适用场景
untrusted--ask-for-approval untrusted自动执行已知安全的只读操作;破坏性 Git 操作、状态变更、外部执行需审批默认安全浏览
on-request--ask-for-approval on-request仅在沙箱升级、网络访问、受信集合外的命令时请求审批日常开发(Auto 模式默认)
never--ask-for-approval never不弹出审批提示,完全在沙箱约束内运行CI/CD 自动化

快捷预设--full-auto = workspace-write + on-request,一键进入高效开发模式。

沙箱策略(Sandbox Policy)

策略文件访问网络受保护路径
read-only全局只读阻断N/A
workspace-write(默认)工作区内读写默认阻断(可配置开启).git/ .agents/ .codex/ 只读
danger-full-access全系统读写开启无保护

workspace-write 网络访问配置

# config.toml [sandbox_workspace_write] network_access = true

平台沙箱实现

平台级沙箱实现
1/3

macOS -- Apple Seatbelt

使用 sandbox-exec -p [profile] 通过 Apple Seatbelt 策略进行进程隔离。

  • Profile 根据 --sandbox 模式自动选择
  • 附加平台策略保留 /System 等必要访问
  • 内核级强制执行,无法被子进程绕过
// Seatbelt profile example (workspace-write) (version 1) (deny default) (allow file-read*) (allow file-write* (subpath "/path/to/workspace")) (deny network*)

Linux -- Landlock + seccomp / Bubblewrap

默认使用 Landlock + seccomp 内核安全模块:

  • Landlock:文件系统访问控制(Linux 5.13+)
  • seccomp:系统调用过滤
  • 可选 Bubblewrap 替代:features.use_linux_sandbox_bwrap = true
  • Managed proxy 模式:出口流量走 proxy-only bridge,失败时关闭连接

Docker 注意:容器内需要宿主/容器都支持 Landlock 和 seccomp。不支持时需回退到 --dangerously-bypass-approvals-and-sandbox

Windows -- WSL2 / Native

WSL 模式(推荐):继承 Linux 沙箱语义(Landlock + seccomp)。

# VS Code 设置 "chatgpt.runCodexInWindowsSubsystemForLinux": true

Native Windows:配置驱动的沙箱。

# config.toml [windows] sandbox = "unelevated" # 或 "elevated"
  • /sandbox-add-read-dir 命令:在 Windows 上授予额外目录读权限

执行策略(Execution Policy)

execpolicy crate 实现了 execve(2) 拦截.rules 文件规则匹配。Shell Tool 的每次命令执行都经过策略引擎评估。

组件功能
execpolicy当前版本的执行策略引擎
execpolicy-legacy旧版策略支持(兼容性)
shell-escalation权限提升处理
process-hardening进程安全加固

细粒度审批策略

# config.toml - 自动拒绝特定类型的审批 [approval_policy] reject.sandbox_approval = true # 自动拒绝沙箱升级请求 reject.rules = false # 允许规则匹配的审批 reject.mcp_elicitations = false # 允许 MCP 工具审批

企业管控

管理员通过 Managed Configuration 设置工作区级别的安全策略,强制执行组织合规要求。配合 OpenTelemetry 实现审计追踪:

# config.toml - OpenTelemetry 审计 [otel] environment = "prod" exporter = "otlp-http" log_user_prompt = false # 不记录用户输入(隐私保护)

遥测覆盖:对话记录、API 请求、审批决策、工具执行结果。支持 service.name、CLI 版本、环境标签等元数据。

安全哲学差异:Codex 的安全模型是"系统级沙箱 + 审批模式"双保险。沙箱通过 OS 内核机制强制执行(Seatbelt / Landlock),即使审批设为 never 也有硬性边界。这与 Claude Code 的"Hooks 拦截 + Permission 配置"软性安全模型形成鲜明对比 -- Codex 更偏"不可绕过的内核级隔离"。

Codex 胜出
  • 内核级沙箱:Seatbelt + Docker + Bubblewrap + execve 拦截,不可绕过
  • Full Auto 网络隔离:完全阻断网络访问,防止数据泄露
  • 企业策略管控requirements.toml 强制执行安全策略
Claude Code 胜出
  • 权限模型更简洁:工具级权限配置,上手成本低
  • 配置量更少:开箱即用,无需理解沙箱层级
  • Hooks 灵活拦截:PreToolUse/PostToolUse 可自定义安全策略

M4 配置与扩展

config.toml 完整参数、AGENTS.md 三层加载、MCP 双向支持、10+ 模型提供商。

config.toml 核心配置

配置文件位于 ~/.codex/config.toml,支持 JSON Schema 校验。

模型与推理 core
# 模型选择 model = "gpt-5.4" # 推理参数 plan_mode_reasoning_effort = "medium" # 计划模式推理强度 # Provider 覆盖 [provider] name = "openai" # 或 azure, ollama, openrouter... base_url = "https://..." headers = { "X-Custom" = "value" }
审批与沙箱 security
# 审批模式 ask_for_approval = "on-request" # untrusted | on-request | never # 沙箱模式 sandbox = "workspace-write" # read-only | workspace-write | danger-full-access # 细粒度审批策略 [approval_policy] reject.sandbox_approval = true reject.rules = false reject.mcp_elicitations = false # workspace-write 网络访问 [sandbox_workspace_write] network_access = false # Login Shell 限制 allow_login_shell = false
Web 搜索 & Shell 环境 tools
# Web 搜索 web_search = "cached" # cached | live | disabled # Shell 环境策略(继承/过滤) [shell_environment] policy = "inherit" # inherit | filter # filter_keys = ["PATH", "HOME"] # 历史持久化 [history] enabled = true max_file_size = "10MB"
MCP Server 配置 extensibility
# STDIO 传输 [mcp_servers.my-tool] command = "node" args = ["./my-mcp-server.js"] env = { "API_KEY" = "xxx" } required = true # 启动失败时 codex exec 退出 # enabled_tools = ["tool1", "tool2"] # 可选工具过滤 # disabled_tools = ["tool3"] # HTTP 传输 [mcp_servers.remote-tool] url = "https://my-server.com/mcp" bearer_token_env_var = "MCP_TOKEN"

CLI 管理命令:

codex mcp add my-tool -- node ./server.js # 注册 STDIO codex mcp add remote --url https://... # 注册 HTTP codex mcp add my-tool --env API_KEY=xxx # 设置环境变量 codex mcp list # 列出已配置 codex mcp remove my-tool # 移除
TUI & 通知 & OpenTelemetry ui + observability
# TUI 设置 [tui] animations = true tooltips = true theme = "default" # 或自定义 .tmTheme 名称 # no_alt_screen = false # 通知 [notifications] enabled = true # desktop_notification = true # 状态栏自定义 # /statusline 命令交互式配置 # OpenTelemetry(企业级可观测性) [otel] environment = "staging" # dev | staging | prod exporter = "otlp-http" # otlp-http | otlp-grpc | none log_user_prompt = false # Profiles(命名配置预设) [profiles.ci] model = "gpt-5.4" sandbox = "read-only" ask_for_approval = "never" [profiles.dev] model = "gpt-5.4" sandbox = "workspace-write" ask_for_approval = "on-request"

使用 Profile:codex --profile ci "run tests"

环境变量

变量说明
CODEX_API_KEYAPI Key(仅 codex exec 支持)
CODEX_HOME配置主目录(默认 ~/.codex
CODEX_SQLITE_HOMESQLite 存储目录
VISUAL / EDITOR外部编辑器(Ctrl+G 打开)
RUST_LOGRust 日志级别调试

AGENTS.md 三层加载

AGENTS.md 分层发现机制
1/3

Layer 1: 全局(~/.codex/)

优先检查 AGENTS.override.md,然后 AGENTS.md。只使用第一个非空文件。

提供跨仓库的持久默认规则,如编码风格、安全约束、团队规范。

~/.codex/AGENTS.md # 全局默认 ~/.codex/AGENTS.override.md # 全局覆盖(临时实验用)

Layer 2: 项目(Git root -> CWD)

从项目根目录向下遍历到当前工作目录,每个目录检查 AGENTS.override.md 然后 AGENTS.md

每个目录最多包含一个文件。支持通过 project_doc_fallback_filenames 配置回退文件名。

myrepo/ AGENTS.md # 仓库级指令 services/payments/ AGENTS.override.md # 支付模块特殊规则

Layer 3: 合并规则

  • 文件按从根到叶的顺序拼接,用空行分隔
  • 后面的文件覆盖前面的指令(位置优先级)
  • 合并大小上限:project_doc_max_bytes = 32768(32 KiB)
  • 纯 Markdown 格式,无需 frontmatter 或 YAML

调试技巧:运行 codex --ask-for-approval never "总结当前指令" 确认加载了哪些 AGENTS.md 文件。

记忆系统

Codex 在 ~/.codex/memories/ 中存储持久记忆,跨会话积累项目知识。与 AGENTS.md 的"显式指令"不同,记忆是 Agent 在使用过程中自动学习的上下文。

MCP 双向支持

角色说明命令
MCP Client连接外部 MCP Server 扩展工具集codex mcp add ...
MCP ServerCodex 自身作为 MCP Server 暴露给其他 Agentcodex mcp-server

模型提供商

提供商说明配置方式
OpenAI默认,支持数据驻留选项ChatGPT 登录或 API Key
OpenRouter多模型路由聚合API Key + base_url
Azure OpenAI企业级 Azure 部署自定义 endpoint
Ollama本地开源模型--oss 标志
LM Studio本地模型 GUIbase_url 配置
GeminiGoogle Gemini APIAPI Key + base_url
MistralMistral AIAPI Key + base_url
DeepSeekDeepSeek APIAPI Key + base_url
xAI (Grok)xAI Grok 模型API Key + base_url
Groq高速推理API Key + base_url
Arcee AI企业 AI 平台API Key + base_url

开放生态:Codex 支持 10+ 模型提供商 + MCP 双向集成,这是目前三大 CLI Agent 中模型兼容性最广的。--oss 标志可一键切换到本地 Ollama 模型,实现完全离线运行。MCP Server 模式让 Codex 本身也能被其他 Agent 调用,形成多 Agent 编排的基础设施。

Codex 胜出
  • 多模型提供商:10+ 内置 Provider,--oss 一键切本地模型
  • Profiles 系统:按场景切换配置集,支持 Feature Flags
  • MCP 双向:既是 Client 也是 Server,可被其他 Agent 调用
Claude Code 胜出
  • Hooks 系统:PreToolUse / PostToolUse 生命周期钩子,可编程拦截
  • Skills 系统:可复用的 Slash 命令包,社区生态丰富
  • MCP 生态更成熟:更多现成 MCP Server 可用,文档更完善

M5 使用指南

安装方式、CLI 命令、Slash 命令、快捷键、CI/CD 集成 -- 从入门到生产环境实战。

安装方式

方式命令说明
npmnpm install -g @openai/codex最常用
Homebrewbrew install --cask codexmacOS Cask
yarnyarn global add @openai/codexYarn 全局安装
pnpmpnpm add -g @openai/codexpnpm 全局安装
bunbun add -g @openai/codexBun 全局安装
GitHub Release下载平台二进制macOS arm64/x86_64, Linux x86_64/arm64
DotSlashRelease 中的 codex 文件跨平台单文件分发
源码编译git clone + cargo buildRust 工具链
Nixdefault.nixNix 包定义

CLI 命令一览

命令状态说明
codex [PROMPT]Stable启动 TUI,可选初始提示
codex exec [PROMPT]Stable非交互执行,流式输出到 stdout
codex app [PATH]Stable打开 macOS 桌面应用
codex resume [ID]Stable恢复之前的会话
codex fork [ID]Stable分叉会话到新线程
codex loginStable认证(ChatGPT / API Key / Device Auth)
codex logoutStable登出
codex featuresStable管理 Feature Flags(list/enable/disable)
codex completion SHELLStable生成补全脚本(bash/zsh/fish/powershell/elvish)
codex apply TASK_IDStable应用 Cloud 任务的 diff 到本地
codex mcpExperimental管理 MCP Server(list/add/get/remove)
codex mcp-serverExperimental以 MCP Server 模式运行
codex cloudExperimental管理 Cloud 任务(exec/list)
codex sandboxExperimental沙箱测试(Seatbelt / Landlock)
codex app-serverExperimental启动应用服务器(stdio / WebSocket)
codex execpolicy checkExperimental检查执行策略规则

关键标志

标志类型说明
--model, -mstring指定模型(如 gpt-5.4
--sandbox, -senumread-only | workspace-write | danger-full-access
--ask-for-approval, -aenumuntrusted | on-request | never
--full-autobool快捷预设:workspace-write + on-request
--image, -ipaths附加图片(逗号分隔多个)
--searchbool启用 live Web 搜索
--cd, -Cpath设置工作目录
--add-dirpath授予额外目录写权限
--profile, -pstring加载配置 Profile
--ossbool使用本地开源模型(Ollama)
--jsonboolJSONL 输出格式
--ephemeralbool不持久化 rollout 文件
--colorenumalways | never | auto
--output-last-message, -opath将最终消息写入文件
--output-schemapathJSON Schema 验证输出
--config, -ckey=value覆盖配置值
--enable / --disablefeature开启/关闭 Feature Flag
--yolobool跳过所有安全检查(仅隔离环境)
--no-alt-screenbool禁用备用屏幕模式
--skip-git-repo-checkbool允许非 Git 目录

Slash 命令

命令说明
/review代码审查(只读分析)
/model切换模型和推理强度
/permissions设置审批模式
/theme预览并保存主题
/personality选择回复风格(friendly/pragmatic/none)
/fork分叉当前对话
/resume恢复已保存的会话
/new在同一终端内新建对话
/clear清屏并开始新对话
/compact摘要对话以释放 token
/copy复制最新完成的输出
/diff显示 Git diff(含未跟踪文件)
/mention附加文件到对话
/plan切换到计划模式
/agent切换活动 Agent 线程
/apps浏览/安装 ChatGPT Apps
/mcp列出已配置的 MCP 工具
/init生成 AGENTS.md 脚手架
/ps查看后台终端
/feedback向维护者发送日志
/status显示会话配置和 token 用量
/statusline交互式配置状态栏字段
/debug-config打印配置层和 requirements 诊断
/experimental切换实验性功能
/logout登出
/exit / /quit退出 CLI
/sandbox-add-read-dir授予目录读权限(Windows)

键盘快捷键

快捷键说明
Ctrl+G打开外部编辑器($VISUAL / $EDITOR)编辑长提示
Ctrl+L清屏但不开始新对话
Ctrl+C x2双击退出
Esc x2编辑前一条用户消息;继续按可回溯历史
Tab排队后续提示,等当前 turn 完成后自动发送
Enter(执行中)注入中途指令
Up/Down浏览草稿历史
@模糊文件搜索(Tab/Enter 插入路径)
!前缀运行本地 shell 命令
$引用已安装的 ChatGPT App

CI/CD 非交互模式

codex exec 是 CI/CD 场景的核心命令,进度输出到 stderr,最终结果输出到 stdout。

基本用法

# 简单执行 codex exec "修复 CI 失败" # 管道输出 codex exec "生成最近 10 个 commit 的 Release Notes" | tee release-notes.md # 临时模式(不持久化) codex exec --ephemeral "分析仓库并建议下一步" # JSON Lines 输出 codex exec --json "总结仓库结构" | jq # 结构化输出 codex exec "提取项目元数据" --output-schema ./schema.json -o ./metadata.json # 恢复会话执行 codex exec resume --last "修复你发现的竞态条件"

GitHub Actions 示例

name: Codex auto-fix on CI failure on: workflow_run: workflows: ["CI"] types: [completed] permissions: contents: write pull-requests: write jobs: auto-fix: if: ${{ github.event.workflow_run.conclusion == 'failure' }} runs-on: ubuntu-latest env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" - run: npm ci - run: npm i -g @openai/codex - run: codex login --api-key "$OPENAI_API_KEY" - run: | codex exec --full-auto --sandbox workspace-write \ "Read repo, run tests, fix minimal changes needed." - run: npm test --silent - uses: peter-evans/create-pull-request@v6

Codex Cloud(异步任务)

# 启动 Cloud 任务(最多 4 次尝试,取最优) codex cloud exec --env ENV_ID --attempts 3 "总结未解决的 Bug" # 列出 Cloud 任务 codex cloud list --json # 应用 Cloud 任务的 diff 到本地 codex apply TASK_ID

CI 认证最佳实践:在 CI 中使用 CODEX_API_KEY 环境变量(仅 codex exec 支持),设置为 GitHub Secrets。配合 --sandbox read-only --ask-for-approval never 实现最安全的自动化。

Shell 补全

# Zsh eval "$(codex completion zsh)" # Bash eval "$(codex completion bash)" # Fish codex completion fish | source

Feature Flags 管理

# 列出所有 Feature Flags codex features list # 开启实验功能 codex features enable unified_exec # 关闭功能 codex features disable shell_snapshot

CI 就绪度:Codex 的 exec 模式 + JSONL 输出 + Schema 验证 + Cloud 任务 构成了完整的 CI/CD 工具链。对比 Claude Code 的 --print 模式,Codex 的 --output-schema JSON Schema 验证是一个独特优势 -- 可以确保 Agent 输出符合下游系统期望的结构。Cloud 任务的 best-of-N 机制(最多 4 次尝试取最优)也是非常实用的可靠性保障。

Codex 胜出
  • 9 种安装方式:DotSlash / Nix / Homebrew / cargo 等,覆盖各平台
  • ChatGPT 登录:用订阅额度直接使用,无需 API Key
  • 更强 CI/CD 支持codex exec + --output-schema + Cloud 任务
Claude Code 胜出
  • 更直觉的 UX:交互体验更流畅,学习曲线更平缓
  • 文档更完善:官方文档、教程、示例更丰富
  • npm 安装简单:一行命令即可安装,JS 开发者零门槛

Codex CLI Deep Dive

M0 项目概览 -> M1 核心架构 -> M2 功能模块 -> M3 安全与沙箱 -> M4 配置与扩展 -> M5 使用指南

6 模块 / 30+ Crate / 3 层沙箱 / 10+ 提供商 / 2026-03(官方文档同步)


Information Sources:

github.com/openai/codex developers.openai.com/codex CLI Features CLI Reference Slash Commands Approvals & Security AGENTS.md Guide Non-interactive Mode