乐于分享
好东西不私藏

Codex CLI 终极教程:安装、配置、Skills、MCP、多智能体

Codex CLI 终极教程:安装、配置、Skills、MCP、多智能体

1. Codex CLI 终极教程

学完这篇,你能把 Codex CLI 配置成一个全自动的 AI 开发工作站——从写代码、审 PR 到部署流水线,一条指令全搞定。

先问一句:你现在用的 AI 编程工具是什么?Codex?Claude Code?还是 Cursor?在评论区打个卡,看看大家都在用啥 👇


2. 准备什么

• 一台电脑(macOS / Linux / Windows WSL2)

• Node.js 18+(npm 安装方式)或 Homebrew(macOS)

• OpenAI 账号(ChatGPT Plus/Pro/Team 或 API Key 均可)

• 一个终端,建议 Warp 或 VS Code 内置终端


3. Codex CLI 是什么

一句话:OpenAI 出的终端 AI 编程代理,能读懂你的整个代码库,用自然语言写代码、改文件、跑命令。

它不是代码补全工具(那是 Copilot),而是一个能自主做决策的终端 AI 工程师。你告诉它"帮我搭一个 Go Web 服务",它会自己创建文件、写代码、安装依赖、启动服务、修 bug,直到跑通为止。

核心数据:

• 底层模型:GPT-5 / GPT-5.5 家族,400K 上下文窗口

• 语言:用 Rust 重写(v0.125.0 起),比早期 TypeScript 版快 N 倍

• 开源:GitHub 上可查看完整源码

• 安装方式:npm / Homebrew / 二进制包

如果你用过 Claude Code,Codex CLI 就是它的直接竞品。两者的对比我们会在后面专门讲。

Codex CLI 核心能力

4. 第一步:安装

三种安装方式,选最顺手的。

方式一:npm(全平台通用)


  
    
    
    
  
  bash
npm install -g @openai/codex

装完验证:


  
    
    
    
  
  bash
codex --version
# 输出示例:@openai/codex 0.125.0

方式二:Homebrew(macOS/Linux)


  
    
    
    
  
  bash
brew install --cask codex

方式三:二进制包(离线/服务器)

从 GitHub Releases 下载对应平台包,解压后将二进制文件放到 PATH 里即可。

平台 文件名
macOS Apple Silicon codex-aarch64-apple-darwin.tar.gz
macOS Intel codex-x86_64-apple-darwin.tar.gz
Linux x86_64 codex-x86_64-unknown-linux-musl.tar.gz
Linux ARM64 codex-aarch64-unknown-linux-musl.tar.gz

Windows 用户:推荐在 WSL2 里安装,原生 Windows 支持目前还是实验性的。


5. 第二步:认证

方式一:ChatGPT 账号登录(推荐)


  
    
    
    
  
  bash
codex

首次运行会自动打开浏览器,跳转到 OpenAI 授权页面。登录后凭证缓存在 ~/.codex/auth.json,后续不用重复登录。

服务器/无头环境用设备码登录:


  
    
    
    
  
  bash
codex login --device-auth

终端会显示一个验证码,在浏览器里输入即可完成授权。

方式二:API Key


  
    
    
    
  
  bash
export OPENAI_API_KEY="sk-你的API-Key"
codex

API Key 方式按用量计费,不走 ChatGPT 订阅配额。适合企业批量使用。


6. 第三步:基本用法

三种使用模式

交互模式

进项目目录,直接敲 codex


  
    
    
    
  
  bash
cd my-project
codex

终端变成对话界面,你可以用自然语言下指令:


  
    
    
    
  
  bash
> 帮我解释一下这个项目的代码结构
> 写一个 REST API,用 Express,连 MongoDB,加完整的错误处理
> 帮我重构这个模块,拆成三个文件
> 有 bug,用户登录后 token 没刷新,帮我找原因并修

单次执行模式

不进入交互界面,直接给任务:


  
    
    
    
  
  bash
codex "解释这个项目的架构"
codex "修复 src/utils/auth.ts 里的类型错误"

全自动模式

跳过确认步骤,让 Codex 自己干活:


  
    
    
    
  
  bash
codex --approval-mode full-auto "创建一个待办事项 App,React + TypeScript"

关键命令速查

在 Codex 会话里输入这些命令来切换设置:

命令 作用
/model gpt-5.5 切换模型
/status 查看配额和速率限制
/permissions 切换审批模式
/mcp 查看激活的 MCP 服务器
/goal 启动自主任务模式(v0.128.0+)

7. config.toml 深度配置

Codex 的几乎所有行为都通过 ~/.codex/config.toml 控制。这是你驾驭它的核心。

配置优先级与沙箱模式

配置优先级(从高到低)

1. CLI 标志(--model, --config

2. Profile(--profile <name>

3. 项目级配置(<project>/.codex/config.toml

4. 用户级配置(~/.codex/config.toml

5. 系统配置(/etc/codex/config.toml

6. 内置默认值

这个优先级设计让你可以在全局设默认值,项目级做覆盖,命令行临时调整

基础配置

# 模型配置
model = "gpt-5.3-codex"
model_reasoning_effort = "medium"    # none/low/medium/high/xhigh
model_provider = "openai"

# 审批策略
approval_policy = "on-request"       # untrusted / on-request / on-failure / never

# 沙箱模式
sandbox_mode = "workspace-write"     # read-only / workspace-write / danger-full-access

沙箱三种模式详解

这是 Codex 最容易被忽视但最重要的配置。

模式 文件读写 网络 适用场景
read-only 只读 代码审查、架构分析、文档生成
workspace-write 工作区可写 可选 日常开发(推荐)
danger-full-access 全盘读写 全开 系统运维、CI 环境(谨慎)

workspace-write 的细粒度控制:

sandbox_mode = "workspace-write"

[sandbox_workspace_write]
network_access = true              # 允许联网(装依赖需要)
writable_roots = ["/Users/you/.pyenv/shims"]  # 额外白名单目录

在这种模式下,.git/.codex/ 目录仍然只读——防止 AI 乱改你的 Git 历史。

多环境 Profile

一套配置走天下不够,不同场景用不同 Profile:

[profiles.research]
model = "gpt-5.4"
model_reasoning_effort = "high"
sandbox_mode = "read-only"

[profiles.development]
model = "gpt-5.4"
sandbox_mode = "workspace-write"

[profiles.ci]
model = "gpt-5.4"
sandbox_mode = "danger-full-access"
approval_policy = "never"

使用方式:


  
    
    
    
  
  bash
codex exec --profile research "分析这个项目的安全漏洞"
codex exec --profile ci "跑全量测试并修复失败用例"

多智能体配置(2026 关键特性)

Codex 支持多智能体并行工作,这是它区别于其他 AI CLI 的核心能力:

[features]
multi_agent = true

[agents]
max_threads = 6                    # 最大并发数
max_depth = 1                      # 最大嵌套深度

[agents.explorer]
description = "Read-only codebase explorer"
sandbox_mode = "read-only"

[agents.reviewer]
description = "PR reviewer: security, correctness, missing tests"
sandbox_mode = "read-only"
model_reasoning_effort = "high"

定义好后,主 Agent 会自动把读代码的任务分给 explorer,把审代码的任务分给 reviewer,自己专注做决策和写代码。

环境变量隔离

Codex 默认不继承你的全部环境变量(安全考虑),你要手动指定白名单:

shell_environment_policy.include_only = ["PATH", "HOME", "NODE_ENV", "DATABASE_URL"]

🎁 想要一份开箱即用的 config.toml 模板? 在公众号后台私信回复 「codex配置」,我把包含 Profile、沙箱、多 Agent 的完整配置文件发你,复制到 ~/.codex/ 就能用。


8. Skills:Codex 的插件系统

Skills 是 Codex 最重要的扩展机制。类比一下:

• Codex 本身 = 一个全能工程师

• Skill = 你写给这个工程师的"标准作业程序"(SOP)

• 喊一声 /你的技能名,它自动按流程走

Skills 插件系统

Skill 目录结构


  
    
    
    
  
  bash
my-skill/
├── SKILL.md          # 必须:指令 + YAML 头信息
├── scripts/          # 可选:确定性辅助脚本
├── references/       # 可选:长文档(渐进式加载)
├── assets/           # 可选:模板文件
└── agents/           # 可选:该 Skill 专属的子代理配置

写一个 Skill

最小可用的 SKILL.md


  
    
    
    
  
  markdown
---
name: pr-reviewer
description: Review pull requests for security issues, logic bugs, and missing tests. Triggered when user asks to review code.
---


## 任务

审查当前分支的改动,按以下维度检查:

1. **安全性**:是否有注入风险、敏感信息泄露、权限绕过
2. **正确性**:逻辑是否完整,边界条件是否覆盖
3. **测试**:改动的代码是否有对应的测试

## 流程

1. 运行 `git diff main...HEAD` 获取变更
2. 逐文件审查,记录发现的问题
3. 按严重程度排序输出报告

## 输出格式

• 🔴 严重:必须在合并前修复

• 🟡 建议:可后续优化

• 🟢 通过:无需修改

放到 ~/.codex/skills/pr-reviewer/ 目录,Codex 会自动发现它。

Skill 安装和管理

从社区安装:


  
    
    
    
  
  bash
# 从 GitHub 安装
codex plugin marketplace add https://github.com/user/skill-repo

# 浏览已安装
codex plugin marketplace list

# 更新
codex plugin marketplace upgrade skill-name

社区热门 Skill 包

几个值得关注的社区项目:

Skill Olympus(98 个 Skill + 49 个 Agent):覆盖从设计到部署的完整 SaaS 流水线

Awesome Codex Skills(50+ 个):Notion、Linear、Slack、Sentry 集成

codex-skills(50+ 个):TDD、Issue 驱动的开发、CI 监控

搜索关键词 awesome codex skills github 可以看到更多。


9. Hooks:生命周期自动化

Hooks 让你在 Codex 的关键生命周期节点注入自定义脚本。

Hooks 生命周期

支持的 Hook 事件

事件 触发时机 典型用途
SessionStart 会话开始 注入上下文、加载记忆
Stop 会话结束 收集日志、更新记忆
PreToolUse 工具调用前 安全检查、文件备份
PostToolUse 工具调用后 格式化代码、记录操作

配置文件

Hooks 定义在 .codex/hooks.json


  
    
    
    
  
  json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "bash -c 'cp ${CODEX_FILE_PATH} /tmp/backup/$(date +%s)_$(basename ${CODEX_FILE_PATH})'",
        "description": "写文件前自动备份"
      }
    ],
    "Stop": [
      {
        "matcher": "",
        "command": "node ~/.codex/scripts/collect-session-memory.js",
        "description": "会话结束时收集关键信息到记忆系统"
      }
    ]
  }
}

实用 Hook 场景

场景一:自动备份

Codex 每次写文件前,自动备份原文件到临时目录。如果改坏了一键恢复。

场景二:安全拦截

PreToolUse 拦截所有 rm -rfgit push --force 命令,弹二次确认。

场景三:跨 CLI 记忆同步

会话结束时,把本次的关键发现写到 MEMORY.md,下次 Claude Code 和 Codex CLI 都能读到。


10. MCP:让 Codex 和任何工具对话

MCP(Model Context Protocol)是 Codex 连接外部世界的通用协议。2026 年 4 月起,Codex 内置了 MCP 服务器。

MCP 双向桥接网络

Codex 作为 MCP 服务器

把 Codex 变成其他 AI 工具的工具:


  
    
    
    
  
  bash
codex mcp-server

这行命令启动一个 stdio MCP 服务器,任何 MCP 兼容的客户端(Claude Code、Cursor、VS Code)都能调用 Codex 来写代码。

这意味着:你可以用 Claude Code 做项目规划,然后让它调用 Codex 来执行代码编写——两个最强的 AI 各干自己最擅长的事。

给 Codex 装上 MCP 工具

反过来,你也可以给 Codex 扩展外部工具能力。在 config.toml 里配置:

[mcp_servers.playwright]
command = "npx"
args = ["-y", "@anthropic-ai/mcp-server-playwright"]

[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@anthropic-ai/mcp-server-filesystem", "/path/to/allowed/dir"]

配置完后,Codex 就能操作浏览器做端到端测试,或者访问指定目录外的文件。

社区 MCP 桥接方案

一些值得关注的 MCP 桥接包:

codex-mcp-bridge:把 Codex 暴露为 MCP 工具,支持并发队列管理、自动模型切换

codex-dobby-mcp:支持异步后台任务、多 Agent 评审并行

mcp-codex-dev:TDD 流程自动化、实时进度监控


11. 自动化流水线实战

理论知识够多了。下面是三种实际可跑的自动化流水线。

自动化开发流水线

流水线一:代码审查自动化


  
    
    
    
  
  bash
#!/bin/bash
# pre-push-review.sh —— push 前自动审查

echo ">> 获取变更..."
git diff origin/main...HEAD > /tmp/changes.diff

echo ">> Codex 安全审查..."
codex exec --profile ci --sandbox read-only \
  "审查 /tmp/changes.diff 的安全问题,按严重程度排序,输出 JSON"

echo ">> Codex 逻辑审查..."
codex exec --profile ci --sandbox read-only \
  "审查 /tmp/changes.diff 的逻辑正确性和边界条件"

echo ">> 审查完成,查看报告后再 push"

可以把这段脚本挂在 .codex/hooks.json 的 PreToolUse 里,也可以单独跑。

流水线二:全自动 Bug 修复 + 测试


  
    
    
    
  
  bash
#!/bin/bash
# auto-fix.sh —— 修 bug + 跑测试 + 生成报告

BUG_DESC="$1"

echo ">> Codex 定位问题..."
codex exec --profile development \
  "分析这个 bug:${BUG_DESC}。定位相关代码,给出根因。"

echo ">> Codex 生成修复..."
codex exec --approval-mode full-auto \
  "修复 ${BUG_DESC}。遵循现有代码风格,添加必要的测试。"

echo ">> 运行测试..."
npm test

echo ">> Codex 生成修复报告..."
codex exec --sandbox read-only \
  "总结本次修复:改了什么、为什么这么改、潜在风险。输出 Markdown。"

流水线三:Claude Code + Codex 联合作战

这是目前比较前沿的玩法——让两个 CLI 协作:


  
    
    
    
  
  bash
Claude Code(规划者)
  │
  ├── 分析需求 → 输出设计方案
  ├── 拆分任务 → 分配给 Codex 执行
  │
  └── Codex CLI(执行者)← 通过 MCP 调用
       ├── 创建项目脚手架
       ├── 实现具体功能
       └── 编写测试用例

Claude Code(验收者)
  │
  ├── 审查 Codex 的产物
  ├── 跑集成测试
  └── 输出最终报告

实操步骤:

1. 终端 A 启动 Codex MCP 服务器:codex mcp-server

2. 终端 B 配置 Claude Code 的 MCP,指向 Codex 的 stdio 管道

3. 在 Claude Code 里说:“分析这个项目需求,设计架构,然后通过 Codex 实现”

具体 Claude Code 的 MCP 配置(mcp.json):


  
    
    
    
  
  json
{
  "mcpServers": {
    "codex": {
      "command": "codex",
      "args": ["mcp-server"]
    }
  }
}

流水线四:GitHub Actions CI 集成


  
    
    
    
  
  yaml
# .github/workflows/codex-review.yml
name: Codex PR Review

on:
  pull_request:
    types: [openedsynchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Codex Security Review
        run: |
          codex exec --profile ci --sandbox read-only \
            "审查 PR #${{ github.event.pull_request.number }} 的改动:
            1. 安全漏洞
            2. 性能退化
            3. 破坏性变更
            输出 Markdown 格式报告到 review-report.md"

      - name: Post Review Comment
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const report = fs.readFileSync('review-report.md', 'utf8');
            github.rest.issues.createComment({
              ...context.repo,
              issue_number: context.issue.number,
              body: report
            });

12. 五个实战案例剖析

案例一:零基础搭全栈应用

需求:“我要一个博客系统,React 前端 + Go 后端 + PostgreSQL”

操作


  
    
    
    
  
  bash
codex --approval-mode full-auto \
  "创建一个博客系统:
  - 前端:React + TypeScript + Tailwind
  - 后端:Go + Gin 框架
  - 数据库:PostgreSQL
  - 功能:文章的增删改查、用户认证、Markdown 编辑器
  - 包含 Docker Compose 部署配置"

Codex 做了什么:自动创建项目结构、生成前后端代码、写 Dockerfile、配置数据库连接、初始化 Git 仓库。20 分钟跑通整个应用。

为什么要全自动模式:这种脚手架级别的任务,每次确认 50 次太累了。全自动的信任成本远低于手动确认的时间成本。

案例二:遗留代码重构

需求:“这个 2 万行的 utils.py 需要拆成 5 个模块”

操作


  
    
    
    
  
  bash
codex exec --profile development \
  "分析 src/utils.py 的函数依赖关系,提出拆分方案:
  1. 按功能域分组
  2. 标记循环依赖
  3. 给出拆分后的 import 关系
  先出方案,我确认后再动手改。"

为什么要用 read-only 先分析:重构最大的风险不是改错代码,而是改了之后所有 import 都断了。先让 AI 出方案,你确认依赖关系没问题,再让它动手。

案例三:跨语言迁移

需求:“把 Python 的数据处理脚本翻译成 Rust,要求性能提升 10 倍以上”

操作


  
    
    
    
  
  bash
codex exec \
  "将 scripts/data_pipeline.py 翻译成 Rust:
  1. 保持逻辑完全一致
  2. 使用 rayon 做并行处理
  3. 输出中有性能对比的 benchmark 测试
  4. 写一个 Python 兼容的 FFI 接口"

坑点:跨语言迁移不要指望一次成功。让 Codex 先生成初版,然后重点审查:内存管理是否正确、错误处理是否完整、浮点精度是否一致。这三个是跨语言迁移最容易出问题的地方。

案例四:自动化技术文档生成

需求:“整个项目的 API 文档自动生成”

操作


  
    
    
    
  
  bash
codex exec --sandbox read-only \
  "扫描所有 API 路由文件,生成 OpenAPI 3.0 规范文档:
  1. 从代码注释和类型定义中提取参数说明
  2. 生成请求/响应示例
  3. 标注认证要求
  4. 输出 swagger.json 和可读的 Markdown"

效果:200 个 API 端点,15 分钟生成完。人工写至少 2 天。

案例五:第三方 API 集成

需求:“对接 Stripe 支付,含 Webhook 处理、退款逻辑”

操作


  
    
    
    
  
  bash
codex exec \
  "帮我对接 Stripe 支付:
  1. 先去 Stripe 官方文档理解最新 API
  2. 实现:创建支付会话、处理 Webhook、退款
  3. 包含幂等性处理和错误重试
  4. 写 3 个测试场景:正常支付、支付失败、部分退款"

Codex 的 Web 搜索能力在这里发挥作用——它会自己去 Stripe 文档查最新的 API 用法,而不是凭训练数据写过时的代码。


13. Codex CLI vs Claude Code 对比

很多人纠结选哪个。直说了——成年人不用选,但评论区肯定要吵一架。

看完下面的对比,来评论区站队:你用的是 Codex 派 还是 Claude 派?还是两个都要的 "我全都要"派?👇

Codex CLI vs Claude Code
维度 Codex CLI Claude Code
模型 GPT-5.5(400K 上下文) Claude Opus 4.7(200K 上下文)
速度 快(Rust 重写后) 较快
多 Agent ✅ 原生支持 ❌ 不支持
Skills/插件 Skills + Plugins 市场 Skills(无市场)
Hooks 系统 4 种生命周期 Hook 丰富的 Hook 系统
自定义命令 /goal,无命令目录 .claude/commands/ 目录
沙箱 三层沙箱,细粒度控制 较简单的权限模式
学习曲线 较陡(配置项多) 平缓
开源 ❌(闭源)

选 Codex CLI 的场景: • 需要多 Agent 并行处理大项目

• 在意开源,想自己定制

• 重度使用 MCP 做复杂集成

• 团队使用,需要严格的沙箱控制

选 Claude Code 的场景: • 个人开发,追求开箱即用

• 需要丰富的 Hooks 做全链路自动化

• 写作/内容创作类任务(Claude 的语言能力更强)

• 已投入 Anthropic 生态

最佳实践:两个都用。 Claude Code 做规划和审核,Codex CLI 做执行。通过 MCP 桥接,各取所长。


14. 常见坑和解决方案

1. codex: command not found

npm 全局 bin 目录不在 PATH 里。运行 npm config get prefix 查看路径,把它加到 PATH。

2. 自定义 API 代理不生效

检查 ~/.codex/config.toml 中的 model_provider 是否正确配置。代理地址必须是 OpenAI 协议兼容的。

3. Windows 兼容问题

原生 Windows 支持目前不稳定,建议用 WSL2。在 WSL 里安装 Ubuntu,然后在 Ubuntu 里装 Codex。

4. 沙箱报"Permission denied"

如果在 workspace-write 模式下需要操作工作区外的文件,在 config.toml 里把路径加到 writable_roots

5. MCP 服务器连接超时

MCP 客户端默认超时约 120 秒。长任务用异步模式(start_runget_run),或者增加 MCP 超时配置。

6. /goal 任务卡住

新版 /goal 有定时器机制,会一直尝试直到完成。如果真卡住了,用 /status 查看配额是否耗尽。



📌 三个动作,选一个:

1. 评论区聊聊:你用 Codex 踩过什么坑?或者有什么骚操作?分享出来,大家一起学。

2. 私信领配置:后台回复 「codex配置」,我把开箱即用的 config.toml 模板发你。

3. 转发给同事:如果你团队还在纠结选哪个 CLI 工具,把这篇文章甩给他。

📮 关注「AI信号实验室」,追踪前沿信号,动手实验每一个新能力。