前言
在AI辅助编程工具百花齐放的今天,OpenAI推出的Codex CLI是一款专为开发者设计的、运行在本地终端中的轻量级代码智能体。它将ChatGPT级别的推理能力与真实的代码执行、文件操作能力深度结合,让开发者可以在熟悉的终端环境中通过自然语言驱动完整的编程工作流。
本文将系统介绍Codex CLI的安装配置、核心功能、详细配置、Skills技能系统、记忆机制,并与目前同样广受欢迎的Claude Code进行对比,帮助开发者做出工具选择并掌握最佳实践。
什么是Codex
Codex项目概述
Codex是OpenAI推出的一系列以代码辅助为核心的AI产品的统称,但在不同上下文中指代的具体产品有所不同:
| 产品 | 说明 |
|---|---|
| 早期Codex模型(2021) | OpenAI于2021年发布的代码生成模型,已于2023年3月停止服务 |
| Codex Web(云端版本) | 运行在chatgpt.com/codex的云端Agent,需要ChatGPT Plus/Pro等账号订阅 |
| Codex CLI | 本地运行的终端代码智能体,本文重点介绍 |
| Codex IDE插件 | 集成到VS Code、Cursor、Windsurf等编辑器的扩展 |
| Codex App | 桌面应用体验,通过codex app命令或访问ChatGPT网页启动 |
Codex的核心特点
Codex(特指Codex CLI)具备以下核心特点:
- 本地运行,零上传:代码在本地处理,不需要上传整个代码库
- 沙箱安全隔离:通过
Apple Seatbelt(macOS)或Landlock(Linux)对命令执行进行严格的沙箱限制 - 多模态输入:支持传入截图或设计图辅助功能实现
- 多模型、多提供商:支持
OpenAI官方模型及Azure、Gemini、Ollama、DeepSeek等众多兼容提供商 - 完全开源:源码托管于
GitHub,基于Apache-2.0协议,社区驱动开发 - MCP支持:作为
MCP客户端可连接外部MCP Server,也可以作为MCP Server为其他工具提供服务 - Skills技能系统:支持自定义可复用的专业工作流片段(技能)
- 自动记忆系统:跨会话自动提取、整合关键信息,避免重复上下文配置
- ChatGPT账号集成:可通过
ChatGPT Plus/Pro订阅使用,无需单独支付API费用
Codex CLI与早期Codex的区别
许多开发者对Codex CLI和2021年发布的早期Codex模型感到混淆,以下是二者的主要区别:
| 维度 | 早期Codex模型(2021) | Codex CLI |
|---|---|---|
| 类型 | API模型服务 | 本地终端智能体工具 |
| 功能 | 代码补全与生成 | 完整的代码Agent(规划、执行、修改文件、运行命令) |
| 状态 | 已于2023年3月停止服务 | 活跃开发中 |
| 底层模型 | 独立的Codex模型 | 使用gpt-5.4等推理模型 |
| 使用方式 | 通过OpenAI API调用 | 安装后在终端直接使用 |
安装与更新
系统要求
| 要求项 | 说明 |
|---|---|
| 操作系统 | macOS 12+、Ubuntu 20.04+/Debian 10+或Windows 11(通过WSL2) |
| 内存 | 最低4GB(推荐8GB) |
| Git(可选) | 2.23+,用于内置PR辅助功能 |
安装方法
方式一:npm安装(推荐)
npm install -g @openai/codex
方式二:Homebrew安装(macOS)
brew install --cask codex
方式三:从GitHub Release下载二进制
从GitHub Release页面下载对应平台的预编译二进制:
| 平台 | 文件名 |
|---|---|
| macOS Apple Silicon | codex-aarch64-apple-darwin.tar.gz |
| macOS x86_64 | 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 |
解压后将可执行文件重命名为codex,并放入PATH目录即可。
注意:当前发布的
Codex CLI是基于Rust重写的新版本,以零依赖原生可执行文件方式分发,不依赖Node.js运行时。旧版基于TypeScript的实现已被标记为legacy。
更新方式
# npm方式
npm update -g @openai/codex
# Homebrew方式
brew upgrade --cask codex
基础命令与使用
启动方式
# 交互式启动(REPL模式)
codex
# 带初始提示启动
codex "解释这个代码库的架构"
# 全自动模式
codex --approval-mode full-auto "创建一个待办事项应用"
# 非交互式执行(用于CI/自动化)
codex exec "更新CHANGELOG文件"
# 指定模型
codex --model gpt-5.4 "优化这段代码"
常用命令参数
| 参数 | 简写 | 说明 | 示例 |
|---|---|---|---|
--model | -m | 指定使用的模型 | -m gpt-5.4 |
--approval-mode | -a | 设置批准模式 | -a full-auto |
--quiet | -q | 非交互安静模式 | -q |
--sandbox | -s | 设置沙箱策略 | -s workspace-write |
--config | -c | 覆盖单个配置项 | -c log_dir=./logs |
--no-project-doc | - | 禁止加载AGENTS.md | - |
--ephemeral | - | 不持久化会话记录到磁盘 | - |
权限与批准模式
Codex CLI通过--approval-mode(-a)参数控制智能体的自主程度:
| 模式 | 无需批准可执行的操作 | 仍需批准的操作 |
|---|---|---|
suggest(默认) | 读取仓库内任意文件 | 所有文件写入/修改、所有Shell命令 |
auto-edit | 读取文件 + 直接应用文件修改 | 所有Shell命令 |
full-auto | 读写文件 + 执行Shell命令(网络已禁用,写入限于工作目录) | 无 |
在
full-auto模式下,网络访问被完全禁用,且文件写入被限制在当前工作目录及临时目录,同时~/.codex目录为可写路径。
常用操作示例
# 理解代码库
codex "解释这个代码库给我听"
# 重构代码
codex "将Dashboard组件重构为React Hooks"
# 生成SQL迁移
codex "为添加users表生成SQL迁移文件"
# 编写单元测试
codex "为utils/date.ts编写单元测试"
# 批量重命名文件
codex "使用git mv将*.jpeg批量重命名为*.jpg"
# 安全审查
codex "检查代码漏洞并生成安全审查报告"
# 非交互模式(适合CI)
codex exec --ephemeral "为下一个版本更新CHANGELOG"
沙箱安全模型
Codex CLI的沙箱机制因操作系统而异:
-
macOS 12+:使用
Apple Seatbelt(sandbox-exec)。所有操作被置于只读沙箱中,仅允许$PWD、$TMPDIR、~/.codex等特定路径可写,出站网络在full-auto模式下被完全阻断。 -
Linux:默认不启用沙箱。推荐使用
Docker容器运行,Codex会将自身启动在最小化容器内并挂载仓库目录,同时通过iptables/ipset防火墙规则阻断除OpenAI API外的所有出站流量。
可以通过--sandbox参数指定沙箱策略:
# 默认只读沙箱
codex --sandbox read-only
# 允许在工作目录写入,仍然封锁网络
codex --sandbox workspace-write
# 完全禁用沙箱(仅在容器或隔离环境中使用)
codex --sandbox danger-full-access
也可以使用codex sandbox子命令测试特定命令在沙箱下的行为:
# macOS
codex sandbox macos --full-auto ls /tmp
# Linux
codex sandbox linux --full-auto ls /tmp
配置文件详解
Codex CLI(Rust版)的配置文件为~/.codex/config.toml,支持丰富的配置选项。
基础配置
# 默认使用的模型
model = "gpt-5.4"
# 沙箱模式:read-only | workspace-write | danger-full-access
sandbox_mode = "workspace-write"
# 日志目录(默认 ~/.codex/log/)
log_dir = "~/.codex/log"
# SQLite状态数据库目录
sqlite_home = "~/.codex/state"
历史记录配置
[history]
# 禁用历史记录写入(默认false)
no_history = false
# 历史文件路径(默认 ~/.codex/history.jsonl)
log_path = "~/.codex/history.jsonl"
MCP服务器配置
Codex CLI支持在配置文件中配置MCP Server连接:
# stdio传输方式
[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
# SSE传输方式
[mcp_servers.remote-tool]
url = "http://localhost:3000/sse"
MCP工具批准模式配置
可以按MCP Server和工具名称精细控制批准策略:
[mcp_servers.docs.tools.search]
# approve(每次询问) | auto-approve(自动允许) | auto-deny(自动拒绝)
approval_mode = "auto-approve"
记忆系统配置
[memories]
# 是否在启动时生成记忆(从历史会话中提取)
generate_memories = true
# 是否在会话中使用记忆(注入到上下文)
use_memories = true
# 若会话中使用了MCP工具或Web搜索则跳过记忆生成
no_memories_if_mcp_or_web_search = false
# 内存提取阶段使用的模型(默认 gpt-5.4-mini)
extract_model = "gpt-5.4-mini"
# 记忆整合阶段使用的模型(默认 gpt-5.3-codex)
consolidation_model = "gpt-5.3-codex"
# 单次记忆整合最多处理多少条原始记忆
max_raw_memories_for_consolidation = 256
# 记忆的最长保留天数(0-365)
max_unused_days = 30
# 历史会话的最长提取年龄(天,0-90)
max_rollout_age_days = 30
# 启动时最多处理多少个历史会话
max_rollouts_per_startup = 16
# 会话闲置多少小时后才纳入提取候选(1-48)
min_rollout_idle_hours = 6
Skills技能配置
[skills]
# 控制是否启用内置技能
[skills.bundled]
enabled = true
# 启用或禁用特定技能:
[[skills.config]]
name = "babysit-pr"
enabled = true
[[skills.config]]
# 按路径指定技能目录
path = "/path/to/my/custom-skills"
enabled = true
通知配置
Codex支持在Agent完成一轮操作后执行通知脚本:
[notify]
# 当Agent完成一轮后执行的命令(通过shell执行)
command = "terminal-notifier -title 'Codex' -message 'Agent完成操作'"
Apps(连接器)配置
[apps.defaults]
# 全局默认:禁用具有破坏性或联网能力的工具
destructive_enabled = false
open_world_enabled = false
# 单独为某个App开启
[apps.github]
enabled = true
destructive_enabled = true
自定义AI提供商
Codex CLI不绑定OpenAI服务,支持任何兼容OpenAI API格式的模型提供商。Rust版本优先通过环境变量配置,旧版TypeScript实现则支持config.json方式。
通过环境变量切换提供商
# OpenAI官方(默认)
export OPENAI_API_KEY="your-key"
# OpenRouter(聚合多家模型,一个Key访问Claude/Gemini/GPT等)
export OPENROUTER_API_KEY="your-key"
codex --provider openrouter --model anthropic/claude-sonnet-4-5
# DeepSeek
export DEEPSEEK_API_KEY="your-key"
codex --provider deepseek --model deepseek-chat
# 本地Ollama(无需API Key)
codex --provider ollama --model qwen2.5-coder:32b
# Gemini
export GEMINI_API_KEY="your-key"
codex --provider gemini --model gemini-2.0-flash
# 任意OpenAI格式的第三方中转服务(如国内API中转)
export OPENAI_API_KEY="your-relay-api-key"
export OPENAI_BASE_URL="https://api.your-relay.com/v1"
codex
# 完全自定义命名的提供商
export MYPROVIDER_API_KEY="your-key"
export MYPROVIDER_BASE_URL="https://your-provider/v1"
codex --provider myprovider --model my-model-name
内置提供商列表
| 提供商 | --provider值 | 所需环境变量 |
|---|---|---|
OpenAI | openai | OPENAI_API_KEY |
Azure OpenAI | azure | AZURE_OPENAI_API_KEY |
OpenRouter | openrouter | OPENROUTER_API_KEY |
Google Gemini | gemini | GEMINI_API_KEY |
Ollama(本地) | ollama | 无需 |
Mistral | mistral | MISTRAL_API_KEY |
DeepSeek | deepseek | DEEPSEEK_API_KEY |
xAI (Grok) | xai | XAI_API_KEY |
Groq | groq | GROQ_API_KEY |
ArceeAI | arceeai | ARCEEAI_API_KEY |
对于未在上表列出的第三方中转服务,只需设置OPENAI_API_KEY和OPENAI_BASE_URL,即可直接使用。
在.env文件中持久化提供商配置
通过环境变量设置仅对当前终端会话有效,若要持久化,可在~/.codex/.env或项目根目录的.env文件中统一管理:
# 使用第三方中转服务示例
OPENAI_API_KEY=sk-relay-xxxxxxxx
OPENAI_BASE_URL=https://api.example-relay.com/v1
config.toml中也可指定默认模型:
# 与OPENAI_BASE_URL配合使用某中转服务提供的模型
model = "claude-sonnet-4-6"
自定义CA证书
在企业代理环境下,可以通过以下环境变量配置自定义CA证书:
# 优先级最高,专用于Codex
export CODEX_CA_CERTIFICATE="/path/to/company-ca.pem"
# 次优先级
export SSL_CERT_FILE="/path/to/ca-bundle.pem"
项目级配置(.codex/config.toml)
Codex CLI支持多层配置文件叠加,优先级从低到高依次为:
| 层级 | 路径 | 说明 |
|---|---|---|
| 系统级 | /etc/codex/config.toml(Unix) | 管理员统一下发的系统配置 |
| 用户级 | ~/.codex/config.toml | 个人全局配置 |
| 项目树 | 从仓库根到cwd各级目录的.codex/config.toml | 按目录层级逐级覆盖 |
| 运行时 | --config参数 | 启动时临时覆盖 |
高优先级层的配置会覆盖低优先级同名字段,未设置的字段则继承低层级的值。
在项目根目录创建.codex/config.toml即可启用项目级配置:
# 项目根目录/.codex/config.toml
# 为该项目指定特定模型
model = "o3"
# 项目级沙箱策略
sandbox_mode = "workspace-write"
# 项目专用MCP服务器
[mcp_servers.project-db]
command = "npx"
args = ["-y", "@company/mcp-db-server"]
项目级和目录树级配置在不受信任的目录下会被自动禁用,以防止恶意仓库通过config.toml劫持Codex工具的行为。信任状态通过codex trust命令管理(见/security-config),与AGENTS.md的信任机制独立。
完整配置示例
# ~/.codex/config.toml
model = "gpt-5.4"
sandbox_mode = "workspace-write"
[history]
no_history = false
[memories]
generate_memories = true
use_memories = true
max_unused_days = 30
max_rollout_age_days = 30
[skills.bundled]
enabled = true
[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
[notify]
command = "terminal-notifier -title 'Codex' -message 'Task done'"
使用CC Switch管理服务商
手动编辑config.toml或每次切换时修改环境变量都比较繁琐,尤其是在Claude Code、Codex、Gemini CLI等多个工具之间频繁切换时。CC Switch提供了一个可视化的桌面应用解决方案,能够统一管理多个AI编程工具的服务商配置。
CC Switch是什么
CC Switch是一款基于Tauri 2构建的跨平台桌面应用,支持Windows、macOS和Linux,专门用于可视化管理和一键切换Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw等CLI工具的API提供商配置。
主要特性:
- 统一管理多个工具:一个界面管理
Claude Code、Codex、Gemini CLI等五款工具的服务商配置 - 50+内置提供商预设:包括
AWS Bedrock、NVIDIA NIM、国内各大API中转服务,开箱即用 - 一键切换:无需手动编辑
JSON/TOML/.env文件,通过图形界面或系统托盘即时切换 - 统一MCP/Skills管理:一个面板同步管理多个工具的
MCP Server和Skills配置 - 云同步:支持通过
Dropbox、OneDrive、iCloud或WebDAV在多设备间同步配置 - 可靠的原子写入:基于
SQLite数据库存储配置,防止配置文件损坏
安装CC Switch
从GitHub Release页面下载对应平台的安装包,或通过以下方式安装:
# macOS(Homebrew,如果有配置相应tap)
# 或者直接从Release页面下载.dmg安装包
# Windows
# 从Release页面下载.msi安装包
# Linux
# 从Release页面下载.AppImage或.deb包
使用CC Switch配置Codex
- 打开
CC Switch,在主界面选择Codex工具标签 - 点击"添加供应商",从内置预设中选择所需提供商(如
DeepSeek、OpenRouter、国内中转服务等),或手动填写Base URL和API Key - 在供应商列表中点击目标供应商即可一键切换,
CC Switch会自动更新Codex的配置文件 - 也可以通过系统托盘菜单快速切换,无需打开完整应用
CC Switch在多工具场景下的价值
当同时使用Codex和Claude Code时,二者各有独立的配置文件格式(config.toml和settings.json),且服务商的API Key和Base URL需要分别管理。CC Switch的统一管理面板可以:
- 保持多个工具使用相同的第三方中转服务而不重复配置
MCP Server配置双向同步,减少重复添加Skills配置在支持的工具间共享
AGENTS.md:项目指令文件
Codex CLI使用AGENTS.md文件(类似Claude Code的CLAUDE.md)向Agent提供跨会话的持久化项目指令。
文件加载顺序与优先级
Codex按以下顺序查找并合并AGENTS.md文件,越具体的规则优先级越高:
| 优先级 | 位置 | 用途 |
|---|---|---|
| 1(最低) | ~/.codex/AGENTS.md | 个人全局指令 |
| 2 | 仓库根目录AGENTS.md | 项目共享规范 |
| 3(最高) | 当前工作目录AGENTS.md | 子目录或功能特定规范 |
AGENTS.md示例
# 项目规范
## 编码规范
- 使用4个空格缩进,不使用Tab
- 函数命名使用camelCase,类命名使用PascalCase
- 所有公开函数必须有JSDoc注释
## 工作流
- 提交前必须运行 `npm test`
- 提交信息格式:`type(scope): description`
- 不使用 `git push --force`
## 项目架构
- src/api/ - REST API接口层
- src/service/ - 业务逻辑层
- src/model/ - 数据模型层
可以用--no-project-doc参数或设置CODEX_DISABLE_PROJECT_DOC=1环境变量禁止加载AGENTS.md。
斜杠命令(Slash Commands)
在Codex CLI的交互式界面中,可以使用斜杠命令执行快捷操作:
| 命令 | 说明 |
|---|---|
/new | 在当前会话中开启新对话 |
/clear | 清屏并开启新对话 |
/compact | 压缩会话历史(防止超出上下文限制) |
/review | 审查当前更改并发现问题 |
/diff | 显示Git diff(包括未跟踪文件) |
/fork | 从当前对话创建分支 |
/resume | 恢复已保存的历史对话 |
/rename | 重命名当前会话线程 |
/model | 切换使用的模型和推理强度 |
/personality | 切换Codex的沟通风格 |
/approvals | 配置Codex的权限范围 |
/skills | 管理和使用技能 |
/mcp | 列出已配置的MCP工具 |
/apps | 管理集成的App(连接器) |
/plugins | 浏览可用插件 |
/plan | 切换到规划模式(Plan Mode) |
/status | 查看当前会话配置和Token用量 |
/init | 创建AGENTS.md指令文件 |
/debug-config | 显示配置层级和来源(用于调试) |
/realtime | 切换实验性实时语音模式 |
/agent | 切换活跃的Agent线程 |
/feedback | 向维护者发送日志 |
/quit / /exit | 退出Codex |
在对话中引用文件
在输入框中使用@符号可以引用文件(/mention):
@src/utils/date.ts 帮我添加一个日期格式化函数
也可以在对话框中用$符号插入ChatGPT连接器(Apps)。
Skills技能系统
Skills是Codex CLI中可复用的专业工作流模块,类似于Claude Code的Skills机制,能够在特定任务场景下为Agent注入专门的系统提示和指令,提升任务完成质量。
Skills的工作原理
Skills通过以下方式工作:
- 技能以目录形式存在,每个目录包含一个
SKILL.md文件 Codex在每次会话启动时扫描配置的技能目录- 当用户的任务与某个技能匹配时,技能内容被注入到系统提示中
- 技能可以声明所需的环境变量依赖,首次使用时会提示用户设置
Skills目录结构
~/.codex/skills/
my-skill/
SKILL.md # 技能定义文件(必需)
SKILL.md是纯文本的Markdown文件,包含:
- 技能的描述(让
Codex能正确识别何时使用它) - 具体的操作指令
- 可选的环境变量依赖声明
内置Skills
Codex CLI预置了若干内置技能,可通过[skills.bundled] enabled = true启用:
- babysit-pr:辅助
PR审查与合并流程 - remote-tests:管理远程测试执行
- test-tui:
TUI界面测试辅助
使用Skills
# 通过斜杠命令查看和激活技能
/skills
# 在对话中显式调用技能
使用技能 babysit-pr 帮我审查这个PR
在config.toml中管理Skills
# 启用内置技能包
[skills.bundled]
enabled = true
# 启用特定技能(按名称)
[[skills.config]]
name = "babysit-pr"
enabled = true
# 添加自定义技能目录
[[skills.config]]
path = "/Users/username/.codex/skills/my-skills"
enabled = true
# 禁用某个技能
[[skills.config]]
name = "test-tui"
enabled = false
记忆系统(Memories)
Codex CLI内置了自动记忆系统,能够在会话之间自动提取、整合和复用关键信息,有效解决AI Agent跨会话上下文丢失的问题。
记忆机制工作流程
记忆系统分为两个阶段自动运行:
阶段一:原始记忆提取(Phase 1)
在每次会话启动时(后台异步),Codex从最近的历史会话记录中提取关键信息:
- 使用轻量模型(默认
gpt-5.4-mini,低推理强度) - 并发处理多个历史会话(最多8个并发)
- 将提取到的原始记忆写入
~/.codex/memories/目录下的raw_memories.md文件
阶段二:记忆整合(Phase 2)
原始记忆积累到一定数量后,触发整合:
- 使用更强的模型(默认
gpt-5.3-codex,中等推理强度) Codex对原始记忆进行去重、归类和压缩- 生成整合后的
memory_summary.md
记忆的存储位置
| 文件/目录 | 说明 |
|---|---|
~/.codex/memories/ | 记忆存储根目录 |
~/.codex/memories/<session-id>/raw_memories.md | 阶段一提取的原始记忆 |
~/.codex/memories/memory_summary.md | 阶段二整合后的记忆摘要 |
~/.codex/memories/rollout_summaries/ | 历史会话摘要 |
记忆的使用方式
整合后的记忆摘要会在每次新会话开始时自动注入到上下文中(最多5000个Token),让Codex在新对话中无需重新建立项目背景。
手动管理记忆
# 通过斜杠命令(内部命令,不建议普通用户直接使用)
/memory-drop # 清空记忆(谨慎使用)
/memory-update # 手动触发记忆更新
也可以直接编辑~/.codex/memories/memory_summary.md来手动管理记忆内容。
Codex CLI vs Claude Code
Codex CLI和Claude Code目前是终端AI编程助手中最常被对比的两款产品。以下从多个维度进行系统性比较:
设计哲学对比
| 维度 | Codex CLI | Claude Code |
|---|---|---|
| 开发方 | OpenAI | Anthropic |
| 底层模型 | gpt-5.4、o3等OpenAI推理模型 | Claude Sonnet/Opus系列 |
| 开源状态 | 完全开源(Apache-2.0) | 闭源工具(仅代码有限开放) |
| 安装方式 | npm、Homebrew、预编译二进制 | curl官方脚本 |
| 技术栈 | Rust(新版),TypeScript(旧版) | TypeScript/Node.js |
| 定价 | ChatGPT订阅或API Key | Claude订阅或API Key |
| 多提供商 | 支持(OpenRouter、Ollama、DeepSeek等) | 较为封闭,主要使用Anthropic API |
| 界面类型 | 全屏TUI(Ratatui) | 类似REPL的终端 |
项目指令文件对比
| 对比项 | Codex CLI(AGENTS.md) | Claude Code(CLAUDE.md) |
|---|---|---|
| 文件名 | AGENTS.md | CLAUDE.md |
| 文件格式 | Markdown | Markdown |
| 加载位置(全局) | ~/.codex/AGENTS.md | ~/.claude/CLAUDE.md |
| 加载位置(项目) | 仓库根目录AGENTS.md | 仓库根目录CLAUDE.md或.claude/CLAUDE.md |
| 子目录支持 | 支持(当前工作目录AGENTS.md) | 支持(任意子目录CLAUDE.md) |
| 合并方式 | 从全局到具体逐层合并 | 从全局到具体逐层合并 |
| 禁用方式 | --no-project-doc或CODEX_DISABLE_PROJECT_DOC=1 | /project:hide或CLAUDE_CODE_DISABLE_MEMORY |
记忆系统对比
| 对比项 | Codex CLI(Memories) | Claude Code(Memory) |
|---|---|---|
| 手动指令文件 | AGENTS.md | CLAUDE.md |
| 自动记忆 | 支持(启动时后台自动提取整合) | 支持(Auto Memory机制) |
| 记忆存储位置 | ~/.codex/memories/ | ~/.claude/memories/ |
| 记忆触发方式 | 每次启动后台异步执行 | 每次会话结束时提示或自动触发 |
| 记忆层级 | 单层(全局记忆) | 多层(用户级、项目级按工作树划分) |
| 加载上限 | 注入最多5000 Token的摘要 | 加载前200行 |
| 整合模型 | 两阶段(提取+整合,可指定不同模型) | 单阶段自动写入 |
| Rules系统 | 无单独的Rules目录(集中于AGENTS.md) | 支持.claude/rules/目录,按路径作用域匹配 |
Skills系统对比
| 对比项 | Codex CLI Skills | Claude Code Skills |
|---|---|---|
| 文件名 | SKILL.md | SKILL.md |
| 存储位置 | ~/.codex/skills/<name>/SKILL.md | ~/.claude/skills/<name>/SKILL.md或自定义路径 |
| 激活方式 | 隐式匹配或/skills命令 | 隐式匹配或显式引用 |
| 配置方式 | config.toml [skills]块 | CLAUDE.md中的Available skills:声明 |
| 内置技能 | 提供内置技能包(可关闭) | 无全局内置技能包 |
| 环境变量依赖 | 支持(首次使用时交互式提示) | 支持 |
斜杠命令对比
| 对比项 | Codex CLI | Claude Code |
|---|---|---|
| 命令类型 | 仅内置命令 | 内置命令 + 用户自定义命令 |
| 自定义命令 | 不支持(所有命令均为硬编码内置命令) | 支持(通过Markdown文件定义) |
| 项目级自定义 | 不支持 | .claude/commands/<名称>.md |
| 用户级自定义 | 不支持 | ~/.claude/commands/<名称>.md |
| 内置命令数量 | 25+个内置命令 | 少量内置命令 |
| 调用方式 | 输入框直接键入/触发补全 | 输入框键入/触发,自定义命令自动列出 |
配置文件对比
| 配置项 | Codex CLI | Claude Code |
|---|---|---|
| 主配置文件 | ~/.codex/config.toml(TOML格式) | ~/.claude/settings.json(JSON格式) |
| 项目级配置 | .codex/config.toml(从仓库根到cwd各层目录均可放置,逐层覆盖) | .claude/settings.json |
| 模型配置 | config.toml中的model字段 | settings.json中的model字段 |
| 沙箱配置 | sandbox_mode字段或--sandbox参数 | 通过权限配置间接控制 |
| MCP配置 | config.toml中的[mcp_servers.*]块 | settings.json中的mcpServers字段 |
| 权限细粒度 | MCP Server级别到单个工具级别 | 工具级别 |
总结
Codex CLI是一款设计专注、技术扎实的终端AI编程助手。它从最初的TypeScript版本重写为Rust实现,以零依赖二进制形式分发,在安全沙箱、多模型支持和自动记忆系统方面有其独特优势。
对于已有ChatGPT订阅、偏好本地终端工作流、以及需要灵活接入多个AI提供商的开发者来说,Codex CLI是值得优先考虑的选择。与Claude Code配合使用(在不同项目或场景中选择最合适的工具),往往能取得最佳的开发效率提升效果。