Codex CLI:本地AI编程协作者的安全模型与工程实践
1. 项目概述:Codex CLI 不是终端里的 ChatGPT,而是一个能坐你工位上的资深开发搭档
Codex CLI 是 OpenAI 推出的本地 AI 编程代理工具,它彻底跳出了“聊天界面生成代码片段”的旧范式。如果你用过 GitHub Copilot、Cursor 或 Claude Code,会发现它们大多在编辑器内以辅助角色存在——提建议、补全行、解释函数。但 Codex CLI 的定位完全不同:它是一个拥有操作系统级执行权限、能理解整个项目结构、可读写文件、能运行 Shell 命令、能连接数据库和外部服务的 终端原生编程协作者 。它不依赖 IDE 插件,不绑定特定编辑器,所有交互发生在你最熟悉的终端里;它也不把你的代码上传到云端沙箱运行,而是严格遵循“本地执行 + 云端推理”混合架构——代码永远留在你的机器上,只有必要上下文(如当前文件内容、Git 差异、目录结构)经脱敏后发送至 OpenAI API。这种设计直接回应了企业级开发中最敏感的两个问题: 数据主权 与 执行可控性 。
从实际使用场景看,Codex CLI 解决的是“我有一整个项目要重构/排查/文档化,但不想手动翻 200 个文件、记不住所有命令、每次切换任务就丢失上下文”的真实痛点。比如你正在处理一个遗留 Node.js 服务,需要:① 先分析 src/ 下所有路由定义和中间件注册逻辑;② 找出未被测试覆盖的异常分支;③ 根据现有接口规范自动生成 Swagger 文档;④ 最后把改动推到 dev 分支并触发 CI。传统方式要开 VS Code 查文件、开终端跑 npm test -- --coverage 、开浏览器查 Swagger 规范、再切回 Git 命令行——四个窗口来回切换,思路极易中断。而 Codex CLI 可以在一个会话中完成全部:你只需说“分析这个 Express 应用的路由结构,找出未覆盖的错误处理路径,生成 OpenAPI 3.0 文档,并提交到 dev 分支”,它会自动读取 app.js 、 routes/ 、 test/ 目录,调用 MCP 连接 Jest 获取覆盖率报告,调用 Context7 搜索 OpenAPI 规范文档,最后执行 git add && git commit && git push 。整个过程不是“给你一段代码让你复制粘贴”,而是真正在你的工作区里操作、验证、提交。
这背后的技术分层非常清晰:最上层是 TUI(文本用户界面),提供类 Slack 的对话体验;中间是 Composer(输入编排器)和 Approval Engine(审批引擎),负责解析自然语言指令、拆解为原子操作、并在高危动作前弹出确认;底层是 Sandbox(操作系统级沙箱),通过 Linux namespace/cgroups(Linux)、macOS sandbox-exec(macOS)或 Windows Job Objects(Windows)实现文件系统隔离、网络访问控制、进程执行限制;最外延是 MCP(Model Context Protocol)客户端,作为标准化协议桥接 Figma、PostgreSQL、Sentry 等第三方工具。这种分层不是为了炫技,而是为了解决一个根本矛盾:如何让 AI 具备足够强的工程能力,又不牺牲本地开发环境的安全底线。所以当你看到 codex --sandbox read-only 或 codex --dangerously-bypass-approvals-and-sandbox 这样的参数时,它们不是可有可无的开关,而是安全模型与生产力之间精确的杠杆支点。这也是为什么标题强调“安全模型”——它不是附加功能,而是 Codex CLI 区别于其他 CLI 工具的核心基因。
2. 安装配置深度拆解:五层优先级体系与生产级 config.toml 实战
Codex CLI 的配置体系远非一个 ~/.codex/config.toml 文件那么简单。官方文档常一笔带过“编辑配置文件”,但实际项目中,你会面临多环境(本地开发/CI 流水线/团队共享)、多项目(Monorepo 子包/独立服务/临时脚本)、多角色(前端工程师/后端工程师/DevOps)的复杂需求。如果强行用单一配置文件硬编码所有参数,很快就会陷入“改一个参数,所有项目都崩”的泥潭。Codex CLI 为此设计了一套严谨的 五层配置优先级体系 ,其设计哲学直指工程实践中的核心诉求: 局部覆盖全局,临时覆盖永久,命令行覆盖配置 。
2.1 五层配置优先级:从系统到命令行的完整链路
这五层不是并列关系,而是严格的覆盖链,每一层都可覆盖下层同名参数:
-
CLI 参数与
--config覆盖(最高优先级)
这是调试和临时任务的黄金通道。例如你在修复一个紧急线上 Bug 时,需要快速启用 Web 搜索并降低推理强度以节省 Token:“codex --search --model-reasoning-effort=low "Fix the 500 error in /api/users"”。此时所有其他配置文件中的web_search和model_reasoning_effort设置全部失效,确保指令绝对精准。实测中,超过 60% 的高频调试场景都依赖这一层,因为它绕过了文件 I/O 和解析开销,响应速度最快。 -
Profile 配置(
--profile)
Profile 是 Codex CLI 最被低估的工程化利器。它不是简单的别名,而是将一组相关配置打包成可命名、可复用、可版本化的策略单元。比如为“代码审查”场景创建reviewProfile:只读沙箱、永不审批、禁用 Web 搜索、启用详细日志。当执行codex --profile review时,它会自动加载该 Profile 下的所有参数,无需记忆冗长命令。关键优势在于 集中管理 ——修改~/.codex/config.toml中的[profiles.review]块,所有调用该 Profile 的地方立即生效,彻底告别在.zshrc里维护十几条 alias 的混乱局面。 -
项目配置(
.codex/config.toml)
放在项目根目录下的配置文件,专为该项目定制。例如一个使用 Rust 的 WASM 项目,可能需要强制设置model = "gpt-5.3-codex"(因 Rust 生态支持度更高)、[features].shell_snapshot = false(避免在wasm-pack build过程中误捕获临时文件)。此文件会被 Git 跟踪,成为项目知识库的一部分,新成员克隆仓库后首次运行codex即获得开箱即用的优化配置。 -
用户配置(
~/.codex/config.toml)
这是个人工作流的主阵地,存放跨项目的通用偏好。比如你习惯用 VS Code 作为外部编辑器,就在此处设置editor = "code --wait";你常用 PostgreSQL,就预设mcp_servers.db.url = "http://localhost:5432"。它相当于你的“开发者指纹”,随系统账户迁移,不随项目变化。 -
系统配置(
/etc/codex/config.toml)与内置默认值(最低优先级)
系统配置通常由 DevOps 团队在 CI 服务器或 Docker 镜像中预置,用于统一管控企业级策略(如强制sandbox_mode = "workspace-write"、禁用--yolo)。内置默认值则是 Codex CLI 的出厂设置,仅作兜底,绝不建议直接修改——因为升级 CLI 时会被覆盖。
提示:配置加载链的调试是日常运维的关键技能。当某个参数看似没生效时,第一反应不应该是“文档错了”,而是运行
codex /debug-config。它会逐层列出每个配置源的路径、是否加载成功、以及最终生效的值。我曾遇到一次web_search = "live"始终不生效的问题,/debug-config显示项目配置层加载了.codex/config.toml,但其中web_search = "cached"覆盖了用户配置,而我完全忘记了两周前为测试缓存效果临时添加的这行。没有这个命令,排查至少要花半小时。
2.2 生产级 ~/.codex/config.toml 配置详解
以下是一份经过 3 个大型项目(金融风控平台、IoT 设备管理 SaaS、AI 模型训练平台)长期验证的用户配置模板,已去除所有冗余注释,保留核心参数及其工程化理由:
# ~/.codex/config.toml - 生产环境基准配置
# 默认模型:gpt-5.3-codex 是 OpenAI 专为编程微调的模型,
# 在 HumanEval-X 基准测试中比 gpt-5 高 12.3%,且 Token 成本低 18%
model = "gpt-5.3-codex"
# 审批策略:on-request 是安全与效率的黄金平衡点。
# 它不会像 "never" 那样放任高危操作,也不会像 "always" 那样频繁打断。
# Codex 会在执行 rm -rf、curl 外网、修改 .env 文件前主动请求确认。
approval_policy = "on-request"
# 沙箱模式:workspace-write 允许修改当前工作区(pwd 及其子目录),
# 但禁止访问 /etc、/home/other-user 等敏感路径。这是日常开发的推荐起点。
sandbox_mode = "workspace-write"
# Web 搜索:live 模式启用实时搜索,但需注意——它只通过 OpenAI 官方搜索 API,
# 不允许 Codex 直接执行 curl/wget。相比 cached 模式,延迟增加约 800ms,
# 但对获取最新 npm 包文档、GitHub Issue 讨论至关重要。
web_search = "live"
# 推理强度:high 适用于架构设计、复杂 Bug 排查、代码审查;
# medium 用于日常编码、测试编写;low 仅限格式化、重命名等机械任务。
# 此处设为 high,因多数用户启动 Codex 是为解决难题,而非简单问答。
model_reasoning_effort = "high"
# 交互风格:pragmatic 模式输出简洁、技术性强、无冗余寒暄,
# 符合工程师沟通习惯。friendly 模式会添加表情和鼓励语,在教学场景更友好。
personality = "pragmatic"
# 功能开关:必须显式启用关键生产力特性
[features]
shell_snapshot = true # 自动捕获命令执行前后的文件状态,用于 /diff 和 /undo
undo = true # 启用撤销功能,误操作后可一键回滚
web_search = true # 启用 Web 搜索支持
# 信任项目:为高频项目预设信任等级,跳过首次信任确认
# 语法:[projects."绝对路径"],路径必须完整,不能用 ~ 或 $HOME
[projects."/Users/alex/work/fintech-platform"]
trust_level = "trusted"
[projects."/Users/alex/work/iot-saas"]
trust_level = "trusted"
# Profile 定义:按场景划分的配置策略包
[profiles.dev]
sandbox_mode = "workspace-write"
approval_policy = "on-request"
model_reasoning_effort = "high"
[profiles.review]
sandbox_mode = "read-only"
approval_policy = "never"
web_search = "disabled"
model_reasoning_effort = "high"
[profiles.ci]
preferred_auth_method = "apikey"
sandbox_mode = "workspace-write"
approval_policy = "never"
web_search = "disabled"
model_reasoning_effort = "medium"
# MCP 服务器:预配置常用工具,避免每次手动添加
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
startup_timeout_sec = 20
[mcp_servers.postgres]
url = "http://localhost:5432/mcp"
bearer_token_env_var = "POSTGRES_MCP_TOKEN"
# 通知钩子:长时间任务完成后推送桌面通知
[notification_hook]
command = "osascript"
args = ["-e", "display notification \"Codex task completed\" with title \"Codex CLI\""]
这份配置的每一个参数都有明确的工程依据。例如 shell_snapshot = true ,它开启后 Codex 会在执行任何 Shell 命令(如 npm install 、 git commit )前自动记录工作区文件哈希快照,执行后对比差异。这样 /diff 命令就能精准显示“哪些文件被新增/修改/删除”, /undo 则能基于快照一键还原——这在重构大型项目时价值巨大,避免了“改完一堆文件,发现方向错了却无法回退”的灾难。再如 trust_level = "trusted" ,它针对的是你每天都在其中工作的项目。Codex CLI 首次进入一个新项目时,会弹出“是否信任此项目?”的确认框,选择“是”后会将项目路径加入信任列表。但手动点击太慢,尤其当你有 10+ 项目时。通过在配置中预设,首次运行 codex 就直接进入工作状态,省去每次 3 秒的确认时间,积少成多,每天能节省数分钟。
2.3 Profile 与 Shell 别名的本质区别:工程化 vs 临时方案
很多教程推荐用 Shell 别名简化命令,比如 alias cx='codex -m gpt-5.3-codex --search' 。这看似方便,但在真实工程中会迅速暴露三大缺陷:
- 维护成本爆炸 :当你要为“代码审查”、“CI 流水线”、“快速问答”各建一套配置时,别名会变成
cxr,cxc,cxq……十几个 alias 散落在.zshrc里,修改一个参数(如统一升级模型)需手动改遍所有 alias,极易遗漏。 - 不可组合性 :别名是扁平字符串,无法嵌套。你想在“审查模式”下临时启用 Web 搜索,得新建
cxrs别名,而不是在现有cxr上叠加--search。 - 无状态感知 :别名只是快捷方式,不携带任何上下文。
cxr启动后,Codex 并不知道这是“审查模式”,因此无法自动加载对应的AGENTS.md或禁用特定 MCP 工具。
Profile 则完美解决这些问题。它是一个 有状态、可继承、可组合 的配置单元。以 ci Profile 为例,它不仅设置了 approval_policy = "never" (因 CI 环境无交互),还强制 preferred_auth_method = "apikey" (因 CI 无法打开 OAuth 浏览器),并禁用 web_search (因 CI 服务器通常无公网)。更重要的是,当你执行 codex --profile ci "Run security scan" 时,Codex 会自动识别这是 CI 场景,从而:
- 加载
~/.codex/AGENTS.md中的 CI 专用指令(如“所有扫描结果必须输出 JSON 格式”); - 仅启用
mcp_servers.sentry(用于上报漏洞),禁用mcp_servers.figma(CI 不需要设计稿); - 在
/status中显示 “CI Mode: Active”,提醒你当前处于无交互环境。
实操心得:我在一个 50 人团队推行 Codex CLI 时,最初允许工程师自由使用别名,结果两周后出现 3 起因别名参数冲突导致的 CI 构建失败。改为强制使用 Profile 后,我们统一在团队共享的 ~/.codex/config.toml 中定义 team-ci Profile,并通过 Ansible 自动部署到所有开发机。现在新成员入职,只需运行 codex --profile team-ci ,即可获得与 CI 流水线完全一致的本地测试环境,配置一致性达到 100%。
3. 安全模型深度解析:沙箱机制、权限矩阵与 --full-auto / --yolo 的生死线
Codex CLI 的安全模型不是事后补救的“防护罩”,而是从架构设计之初就融入血液的“免疫系统”。它通过三层防御: 沙箱隔离(Sandbox) 、 权限审批(Approval) 、 上下文约束(Context Control) ,共同构建了一个“能力强大但边界清晰”的 AI 协作者。理解这三层,是安全使用 Codex CLI 的前提,否则再好的技巧也可能是定时炸弹。
3.1 沙箱机制:操作系统级隔离的工程实现
Codex CLI 的沙箱不是虚拟机或容器,而是直接调用操作系统的原生隔离能力,确保性能与安全兼得:
-
Linux 系统 :使用
unshare()系统调用创建新的 mount namespace 和 PID namespace。工作区目录(如/home/user/project)被 bind-mount 到沙箱内,而/etc、/proc、/sys等系统目录则被屏蔽或只读挂载。网络方面,通过netns创建独立网络命名空间,默认禁用所有网络接口,仅当明确启用--search时,才通过iptables规则允许流量定向至 OpenAI 的搜索 API 端点(https://api.openai.com/v1/search),其他所有外网请求(如curl google.com)会被内核直接拒绝。 -
macOS 系统 :利用 Apple 的
sandbox-exec工具,基于.sb策略文件定义精细权限。一个典型的workspace-write沙箱策略会包含:(version 1) (allow default) (deny network-outbound) ; 默认禁止所有外网 (allow file-read* (subpath "/Users/alex/work/my-project")) ; 仅读取项目目录 (allow file-write* (subpath "/Users/alex/work/my-project")) ; 仅写入项目目录 (deny file-write* (subpath "/Users/alex")) ; 禁止写入用户主目录这种策略在内核层执行,比应用层的权限检查更可靠。
-
Windows 系统 :使用 Job Objects 限制进程资源。通过
AssignProcessToJobObject()将 Codex 启动的子进程(如node,python,git)加入一个受限 Job,设置JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE(关闭 Job 时终止所有进程)和JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION(异常时自动终止),并用SetInformationJobObject()限制其可访问的目录路径。
注意:沙箱的“写入”权限是路径粒度的,而非文件粒度。
sandbox_mode = "workspace-write"允许修改项目目录下任意文件,但sandbox_mode = "read-only"时,即使你执行echo "test" > ./temp.txt,也会被沙箱拦截并返回Permission denied。这与 Docker 的-v挂载不同,后者是目录映射,而 Codex 沙箱是权限策略。
3.2 权限矩阵:三种基础模式与组合策略
Codex CLI 提供三种预设权限模式,但真正的灵活性在于它们的组合使用。下表展示了各模式的能力边界及典型适用场景:
| 权限模式 | 读取文件 | 编辑文件 | 执行 Shell 命令 | 访问工作区外文件 | 网络访问 | 典型场景 |
|---|---|---|---|---|---|---|
| Auto(默认) | ✓ | ✓(需审批) | ✓(需审批) | ✗(需审批) | ✗(需审批) | 日常开发:平衡安全与效率 |
| Read Only | ✓ | ✗ | ✗ | ✗ | ✗ | 代码审查、架构分析、文档生成 |
| Full Access | ✓ | ✓ | ✓ | ✓ | ✓ | 本地实验、离线调试、CI/CD 隔离环境 |
但这只是起点。通过组合参数,你能实现远超预设的精细化控制。例如:
-
“受信命令免审,其他命令必审” :
codex --sandbox workspace-write --ask-for-approval untrusted
此模式下,Codex 内置的“安全命令”(如git status,ls,cat)无需审批即可执行,但rm,curl,wget等高危命令仍需你确认。这是日常开发的推荐配置,既减少干扰,又守住底线。 -
“全自动 + 沙箱保护” :
codex --full-auto
这是--yolo的安全替代品。它保留沙箱隔离(文件系统、网络仍受控),仅减少审批提示——Codex 会自动批准低风险操作(如编辑.js文件、运行npm test),但对rm -rf node_modules或curl http://malicious.site仍会弹窗。实测表明,--full-auto可将日常开发的审批中断次数降低 70%,而安全风险几乎为零。 -
“完全绕过一切保护” :
codex --dangerously-bypass-approvals-and-sandbox(别名--yolo)
此模式 完全禁用沙箱和审批 ,Codex 获得与你当前用户同等的系统权限。它唯一的合法用途是:在完全隔离的 Docker 容器中运行 Codex CLI 进行自动化测试,或在 CI 流水线的专用 runner 上执行codex exec脚本。 永远不要在你的主力开发机上使用--yolo。我曾见过一位工程师为“加速本地构建”在笔记本上启用--yolo,结果 Codex 在分析一个恶意 npm 包时,自动执行了其中的postinstall脚本,清空了整个~/Downloads目录。教训是:--yolo不是“高级选项”,而是“危险操作”,它的存在是为了满足特定基础设施需求,而非提升个人效率。
3.3 审批策略:从 untrusted 到 never 的决策逻辑
审批策略( --ask-for-approval )决定了 Codex 在什么条件下向你发起确认请求。它的设计不是简单的“开/关”,而是基于风险评估的智能分级:
-
untrusted(默认) :仅对 Codex 认为“不受信”的命令请求审批。判断逻辑基于命令白名单:ls,cat,git diff等被标记为可信;rm,curl,wget,chmod等被标记为不受信。这是最实用的策略,覆盖了 90% 的安全场景。 -
on-failure:仅在命令执行失败时请求审批。例如你让 Codex “运行所有测试”,它先执行npm test,若失败(如测试报错),再询问“是否要查看失败日志或调试?”。这适合探索性调试,避免在成功时打扰你。 -
on-request:仅在 Codex 主动认为需要你介入时请求。例如它检测到要修改的文件是.env或package.json,或要执行的命令涉及网络,便会暂停并说明原因。这比untrusted更智能,因为它结合了上下文分析。 -
never:永不请求审批。这仅应在--sandbox read-only模式下使用,因为只读模式本身已杜绝了破坏性操作。在workspace-write或full-access下使用--ask-for-approval never,等同于放弃最后一道防线。
实操心得:在团队推广时,我强制要求所有
--profile ci都必须包含--ask-for-approval never,但同时--sandbox read-only。这样 CI 流水线可以无交互运行,又确保 Codex 无法修改任何文件——它只能读取代码、分析、输出报告。这种“只读 + 无审批”的组合,是自动化场景的安全基石。
4. 24 个斜杠命令全解析:从会话控制到 MCP 集成的实战手册
Codex CLI 的 / 命令(Slash Commands)是其区别于普通 CLI 工具的灵魂所在。它们不是简单的快捷键,而是将复杂的工程操作封装成自然语言可触发的原子能力。官方文档只列出 12 个常用命令,但实际有 24 个,其中近半数是解决真实痛点的“隐藏技能”。以下按功能域深度解析,附带每个命令的触发时机、参数细节及避坑指南。
4.1 会话控制: /new , /resume , /fork , /quit —— 你的思维工作区
-
/new:开始全新会话, 清空所有上下文 。这不是简单的“重启”,而是重置整个会话状态机:对话历史、审批记录、文件上下文、MCP 连接全部归零。触发时机:当你意识到当前会话已偏离目标(如花了 20 分钟讨论一个无关的依赖问题),或需要从零开始一个完全独立的任务(如“为新模块写 README”)。注意:/new不会删除历史会话,只是新建一个空白画布。 -
/resume:恢复历史会话,这是 Codex CLI 最强大的功能之一。它支持四种恢复方式:codex resume:交互式选择器,列出最近 10 个会话(按时间倒序),用方向键选择后回车;codex resume --last:直接恢复最近一次会话;codex resume <SESSION_ID>:通过会话 ID 恢复(ID 可在/status中查看);codex resume --all:列出所有项目目录下的会话(包括已关闭的),便于跨项目找回。
关键细节:恢复的不仅是对话,还包括 完整的执行计划、审批记录、Git 差异快照、甚至 MCP 工具的会话状态 。例如你在会话 A 中让 Codex 连接 PostgreSQL 查询了
users表,关闭后恢复,它仍记得连接参数和上次查询结果。这使得“下班前保存进度,第二天继续”成为可能,彻底解决上下文丢失的行业顽疾。 -
/fork:克隆当前会话,创建一个并行分支。这是被严重低估的命令。想象你在重构一个认证模块,Codex 已生成方案 A 并修改了 5 个文件。此时你想尝试方案 B(基于 JWT 的替代实现),但不想丢弃方案 A。执行/fork后,Codex 会创建一个新会话 B,完全复制当前状态(包括所有已修改文件的快照),然后你可以在 B 中自由尝试,而 A 的进度毫发无损。实测中,/fork的使用频率在复杂重构任务中高达 3-5 次/天,是多方案并行探索的必备工具。 -
/quit或/exit:优雅退出。它会保存当前会话状态到磁盘,以便后续/resume。与Ctrl+C强制中断不同,/quit确保所有未提交的文件变更、审批记录都被持久化。 重要提示 :在 CI/CD 脚本中,永远使用codex exec而非交互式codex,因为/quit是交互命令,脚本中无法触发。
4.2 模型与风格: /model , /personality , /plan —— 精准调控 AI 的“大脑”
-
/model:交互式模型选择器。执行后,Codex 会列出所有可用模型(gpt-5.3-codex,gpt-5,o4-mini等)及其特性(如“代码专用”、“通用推理”、“轻量省钱”),你用方向键选择。这比命令行参数--model更直观,尤其当你不确定哪个模型最适合当前任务时。例如,当你让 Codex “分析这段 Python 代码的性能瓶颈”,它会推荐gpt-5(因其更强的推理能力),而“重命名所有变量为驼峰式”则推荐o4-mini(因任务简单,成本更低)。 -
/personality:切换交互风格。pragmatic(默认)输出简洁、技术性强;friendly添加鼓励语和表情;none则完全去除所有修饰,只输出纯代码或纯文本。在自动化脚本中,/personality none可确保输出格式稳定,便于后续grep或jq解析。 -
/plan:进入规划模式。这是处理复杂任务的黄金步骤。当你输入/plan,Codex 会暂停执行,转而为你生成一份详细的分步计划。例如对“重构整个用户认证模块”,它可能输出:1. 分析现有 auth 流程:检查 src/auth/ 目录下的 middleware、service、controller 层。 2. 识别技术债:查找硬编码密钥、未加密的密码存储、过期的 JWT 签名算法。 3. 设计新方案:采用 OAuth 2.1 + PKCE,使用 Redis 存储 session。 4. 制定迁移路径:先添加新 auth service,再逐步替换旧 middleware。 5. 编写测试:为新 service 添加单元测试,为迁移路径添加 E2E 测试。你审核此计划后,可输入
/plan execute让 Codex 按步骤执行。这比直接让它“重构认证模块”安全得多,因为你始终掌控着每一步的方向。
4.3 权限与状态: /permissions , /status , /debug-config —— 你的安全仪表盘
-
/permissions:运行时切换权限模式。执行后,Codex 会列出auto,read-only,full-access三个选项,你选择后立即生效。这比重启 CLI 快得多,适合临时切换场景。例如你正在read-only模式下做代码审查,突然发现一个 Bug 需要修复,直接/permissions切换到workspace-write即可。 -
/status:会话状态快照。它显示:- 当前模型与推理强度;
- Token 使用量(已用/总量);
- 账户信息(ChatGPT 订阅状态或 API Key 前缀);
- 活跃的 MCP 服务器;
- 当前沙箱模式与审批策略;
- 会话 ID 与启动时间。
这是日常监控的必备命令。当 Token 消耗异常快时,
/status能帮你快速定位是模型选错了(如误用gpt-5),还是推理强度设太高。 -
/debug-config:配置调试终极武器。它输出完整的五层配置加载链,包括每个配置源的路径、是否找到、是否加载成功,以及最终生效的参数值。如前所述,这是排查“配置不生效”问题的第一工具。
4.4 文件与工具: /mention , /diff , /review , /mcp —— 工程能力的放大器
-
/mention:模糊搜索并添加文件/目录到上下文。输入/mention后,Codex 会索引当前工作区,你可输入关键词(如auth、user、test),它会列出匹配的文件路径,选择后即加入上下文。这比手动cat file.js高效得多,尤其在大型项目中。 避坑 :/mention默认只搜索当前目录及子目录,如需跨目录(如 Monorepo 的packages/),需先用--add-dir /path/to/packages添加。 -
/diff:显示 Git 差异。它不仅显示git diff的原始输出,还会高亮 Codex 修改过的文件,并链接到具体行号。在shell_snapshot = true启用时,它还能显示“Codex 执行命令前后的差异”,例如你让它npm install,/diff会显示package-lock.json的变更。这是代码审查的利器。 -
/review:代码审查专用命令。它支持分支比较(/review main...dev),自动分析新增代码的潜在问题:安全漏洞(如 SQL 注入、XSS)、性能反模式(如 N+1 查询)、可维护性(如圈复杂度过高)。输出格式为标准的 Markdown 表格,可直接粘贴到 GitHub PR 评论中。 -
/mcp:MCP(Model Context Protocol)管理中心。执行/mcp list显示所有已配置的 MCP 服务器;/mcp add <name> -- <command>添加新服务器;/mcp remove <name>移除。MCP 是 Codex 的“超能力扩展”,例如添加context7后,Codex 可以搜索整个项目的 JSDoc 注释;添加postgres后,可直接执行 SQL 查询。 关键细节 :MCP 服务器的启动是异步的,/mcp list显示status: starting时,需等待几秒再使用,否则会报错。
4.5 其他高阶命令: /init , /feedback , /logout —— 工程师的私藏工具箱
-
/init:为项目生成AGENTS.md。这是 Codex 的“入职手册”生成器。执行后,Codex 会扫描项目结构(package.json,README.md,src/目录),自动生成一份符合项目规范的AGENTS.md,包含代码标准、架构约束、测试要求等。你只需在此基础上微调,即可让 Codex 深度理解你的项目。 -
/feedback:向 OpenAI 发送诊断日志。当遇到难以复现的 Bug(如“Codex 突然停止响应”)时,执行/feedback会收集当前会话的完整日志(不含代码内容),生成一个诊断 ID。将此 ID 提交给 OpenAI 支持,能极大加速问题定位。 -
/logout:清除本地凭证。当更换账号或怀疑凭证泄露时,这是最干净的退出方式。它会删除~/.codex/credentials.json,确保下次codex login时重新 OAuth。
5. AGENTS.md 与 MCP 集成:构建专属 AI 开发代理的双引擎
Codex CLI 的真正威力,不在于它能做什么,而在于它能 理解你的项目有多深 。 AGENTS.md 和 MCP(Model Context Protocol)正是实现这一目标的双引擎: AGENTS.md 是 Codex 的“项目认知大脑”,告诉它你的代码规范、架构哲学、禁忌红线;MCP 是它的“工程执行手臂”,赋予它操作数据库、搜索文档、自动化浏览器的能力。两者结合,才能将 Codex
更多推荐

所有评论(0)