文章

Codex CLI 命令深度分析:从入门到精通的完整指南

Codex CLI 命令深度分析:从入门到精通的完整指南

本文是对 OpenAI Codex CLI 的深度研究报告,系统梳理其命令体系、沙箱机制、配置方式与最佳实践,帮助开发者真正用好这款 AI 编程 Agent。


一、Codex CLI 是什么

Codex CLI 是 OpenAI 于 2025 年 4 月开源的轻量级命令行 AI 编程 Agent,核心定位是”在终端里运行的 AI 编程助手”。它不是简单的代码补全工具,而是一个能够读写文件、执行 Shell 命令、运行测试、自主完成多步骤编程任务的 Agent。

项目地址:github.com/openai/codex,MIT 协议开源,截至 2026 年 4 月已获得超过 30,000 Star。

与 Claude Code 的定位对比:Codex CLI 更强调”轻量、可嵌入、沙箱安全”,而 Claude Code 更强调”深度代码理解与大上下文推理”。两者都是 Agentic 编程工具,但设计哲学有所不同。


二、安装与初始化

安装

1
npm install -g @openai/codex

要求 Node.js 22 或更高版本。安装后通过 codex --version 验证。

认证

Codex CLI 通过环境变量读取 API Key:

1
export OPENAI_API_KEY="sk-..."

也支持 ~/.codex/config.toml 中配置(见第五节)。

首次运行

1
codex

不带任何参数启动交互式 REPL 模式,进入对话界面后可直接用自然语言描述任务。


三、核心命令行参数(CLI Flags)

基础用法

1
codex [options] [prompt]

prompt 是可选的初始任务描述,支持直接在命令行传入,也可以进入交互模式后输入。

完整参数列表

参数简写说明
--model <model>-m指定使用的模型,默认 codex-mini-latest
--approval-policy <policy>-a审批策略:untrusted(默认)/ on-request / never
--sandbox <mode> 沙箱模式(见第四节)
--config <path>-c指定配置文件路径
--quiet-q静默模式,减少输出
--no-project-doc 不加载 AGENTS.md 文件
--no-git-context 不注入 git 状态上下文
--full-stdout 显示完整的命令输出(不截断)
--notify 任务完成后发送系统通知
--dangerously-auto-approve-everything 自动批准所有操作(危险!)
--version-v显示版本号
--help-h显示帮助信息

模型选择

1
2
3
4
5
6
7
8
# 使用 GPT-4.1(高质量,较慢)
codex --model gpt-4.1 "重构这个模块"

# 使用 codex-mini(快速,适合简单任务)
codex --model codex-mini-latest "给这个函数加注释"

# 使用 o4-mini(推理增强)
codex --model o4-mini "分析这段代码的时间复杂度"

审批策略

1
2
3
4
5
6
7
8
# 默认:每次操作都需要确认(最安全)
codex --approval-policy untrusted "修复所有 lint 错误"

# 仅在 Agent 主动请求时确认
codex --approval-policy on-request "运行测试套件"

# 全自动,不需要任何确认(CI/CD 场景)
codex --approval-policy never "生成 API 文档"

四、沙箱模式(Sandbox)

沙箱是 Codex CLI 安全体系的核心,控制 Agent 对系统资源的访问权限。

三种沙箱级别

1. read-only(只读模式)

Agent 只能读取文件,不能写入或执行命令。适合代码审查、分析类任务。

1
codex --sandbox read-only "分析这个项目的架构"

2. workspace-write(工作区写入,默认)

Agent 可以读写当前工作目录内的文件,可以执行命令,但网络访问受限。这是日常开发的推荐模式。

1
codex --sandbox workspace-write "实现用户登录功能"

3. danger-full-access(完全访问)

Agent 拥有完整的系统访问权限,包括网络、系统文件等。仅在完全信任的环境中使用。

1
codex --sandbox danger-full-access "部署到生产环境"

macOS 沙箱实现

在 macOS 上,Codex CLI 使用 Apple 的 sandbox-exec 机制实现沙箱隔离,这是系统级的安全保障,而非仅靠 Agent 的”自我约束”。这意味着即使 Agent 被”越狱”,底层系统调用也会被拦截。

Linux 沙箱实现

Linux 上使用 landlock + seccomp 实现类似的系统调用过滤。


五、交互模式中的 Slash Commands

进入交互式 REPL 后,可以使用以下斜杠命令控制 Agent 行为:

会话控制

命令说明
/help显示所有可用命令
/exit/quit退出 Codex CLI
/clear清空当前对话历史
/history查看当前会话的对话历史

上下文管理

命令说明
/context显示当前注入的上下文(AGENTS.md、git 状态等)
/model <name>在会话中切换模型
/approval <policy>动态修改审批策略

任务控制

命令说明
/undo撤销上一步操作(如果可能)
/diff显示当前会话中所有文件变更的 diff

键盘快捷键

在交互模式中,以下快捷键同样重要:

快捷键说明
Ctrl+C中断当前 Agent 操作
Ctrl+D退出 CLI
Ctrl+R搜索历史输入
/ 浏览输入历史
Tab自动补全(文件路径等)

六、AGENTS.md 分层配置机制

AGENTS.md 是 Codex CLI 最强大也最容易被忽视的功能之一。它允许开发者在不同层级定义 Agent 的行为规范。

三层加载顺序

1
2
3
4
5
~/.codex/AGENTS.md          ← 全局配置(个人偏好)
    ↓
<repo-root>/AGENTS.md       ← 项目配置(团队规范)
    ↓
<current-dir>/AGENTS.md     ← 目录配置(局部覆盖)

下层配置会追加(而非覆盖)上层配置,形成叠加效果。

AGENTS.md 内容示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Project: E-Commerce Backend

## Tech Stack
- Language: TypeScript (strict mode)
- Framework: NestJS
- Database: PostgreSQL with TypeORM
- Testing: Jest

## Code Style
- Always use async/await, never raw Promises
- All public methods must have JSDoc comments
- Error handling: use custom AppException class

## Testing Requirements
- Unit test coverage must be > 80%
- Run `npm test` before marking any task complete
- Integration tests live in `test/` directory

## Forbidden Operations
- Never modify `src/config/production.ts`
- Never commit secrets or API keys
- Never use `any` type in TypeScript

## Workflow
1. Read existing code before making changes
2. Run linter after each file modification
3. Update CHANGELOG.md for significant changes

高级用法:条件配置

1
2
3
4
5
6
7
## When working on authentication module
- Always check JWT expiry handling
- Verify RBAC permissions are applied

## When working on database migrations
- Create rollback migration alongside forward migration
- Test on staging data first

禁用 AGENTS.md

1
codex --no-project-doc "快速修复这个 bug"

七、config.toml 配置文件

~/.codex/config.toml 是持久化配置的核心文件。

完整配置示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 默认模型
model = "codex-mini-latest"

# 默认审批策略
approval_policy = "untrusted"

# 默认沙箱模式
sandbox = "workspace-write"

# 通知设置
notify = true

# 自定义 API 端点(用于代理或私有部署)
api_base_url = "https://api.openai.com/v1"

# 历史记录保留条数
history_size = 1000

# 是否自动加载 git 上下文
git_context = true

# 是否自动加载 AGENTS.md
project_doc = true

多配置文件切换

1
2
3
4
5
# 使用工作配置
codex --config ~/.codex/work-config.toml "..."

# 使用个人配置
codex --config ~/.codex/personal-config.toml "..."

八、典型使用场景与命令示例

场景一:日常开发任务

1
2
3
4
5
6
7
8
# 实现新功能
codex "在 UserService 中添加邮箱验证功能,包含单元测试"

# 修复 Bug
codex "修复 issue #123:用户登录后 session 没有正确保存"

# 代码重构
codex "将 utils.js 中的回调函数全部重构为 async/await"

场景二:代码审查与分析

1
2
3
4
5
# 只读模式分析
codex --sandbox read-only "分析这个项目的安全漏洞"

# 生成代码审查报告
codex --sandbox read-only --quiet "对最近的 git diff 进行代码审查,输出 Markdown 报告"

场景三:CI/CD 自动化

1
2
3
4
5
6
7
# 全自动模式(适合 CI 环境)
codex --approval-policy never --quiet \
  "运行测试,如果失败则自动修复,直到所有测试通过"

# 生成发布说明
codex --approval-policy never \
  "根据 git log 生成 CHANGELOG.md 的新版本条目"

场景四:多文件重构

1
2
3
4
5
# 大规模重命名
codex "将整个项目中的 UserController 重命名为 AccountController,更新所有引用"

# 依赖升级
codex "将项目从 React 17 升级到 React 18,处理所有 breaking changes"

场景五:文档生成

1
2
3
4
5
# API 文档
codex --sandbox read-only "为所有 REST API 端点生成 OpenAPI 3.0 规范文档"

# README 更新
codex "根据当前代码状态更新 README.md 的安装和使用说明"

九、管道与脚本集成

Codex CLI 支持标准 Unix 管道,可以无缝集成到现有工作流中。

从标准输入读取

1
2
3
4
5
# 分析错误日志
cat error.log | codex "分析这些错误,找出根本原因"

# 审查 diff
git diff HEAD~1 | codex "审查这个 diff,指出潜在问题"

输出到文件

1
2
3
4
5
# 生成报告
codex --quiet "分析代码质量" > quality-report.md

# 生成测试用例
codex --quiet "为 auth.ts 生成完整的测试用例" > auth.test.ts

在 Shell 脚本中使用

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
# 自动化代码审查脚本

CHANGED_FILES=$(git diff --name-only HEAD~1)

for file in $CHANGED_FILES; do
  echo "Reviewing $file..."
  codex --sandbox read-only --quiet \
    "审查 $file 的代码质量,输出简洁的问题列表" \
    >> review-report.md
done

echo "Review complete: review-report.md"

十、与其他工具的集成

与 Git Hooks 集成

1
2
3
4
# .git/hooks/pre-commit
#!/bin/bash
codex --approval-policy never --quiet \
  "检查暂存的文件是否有明显的 bug 或安全问题,如有则输出警告"

与 VS Code 集成

通过 VS Code 的 Terminal 直接使用,或配置为 Task:

1
2
3
4
5
6
7
8
9
10
11
// .vscode/tasks.json
{
  "tasks": [
    {
      "label": "Codex: Fix Current File",
      "type": "shell",
      "command": "codex --approval-policy on-request 'Fix issues in ${file}'",
      "group": "build"
    }
  ]
}

与 Makefile 集成

1
2
3
4
5
6
7
8
9
10
11
# Makefile
.PHONY: ai-review ai-fix ai-docs

ai-review:
	codex --sandbox read-only "审查最近的代码变更"

ai-fix:
	codex "修复所有 lint 错误和类型错误"

ai-docs:
	codex --sandbox read-only "更新所有过时的文档注释"

十一、安全最佳实践

原则一:最小权限

始终从最严格的沙箱开始,只在必要时升级权限:

1
2
3
4
5
# 先用只读模式理解代码
codex --sandbox read-only "解释这段代码的逻辑"

# 确认理解后再允许写入
codex --sandbox workspace-write "按照刚才的分析重构代码"

原则二:审查每一步

在生产代码库中,始终使用默认的 untrusted 审批策略,逐步确认每个操作。

原则三:版本控制保护

在运行 Codex 之前,确保工作区是干净的 git 状态:

1
2
3
4
git stash  # 保存当前工作
codex "..."
git diff   # 审查变更
git add -p # 选择性暂存

原则四:敏感文件保护

在 AGENTS.md 中明确声明禁止修改的文件:

1
2
3
## Protected Files
- Never modify: .env, .env.production, secrets.yaml
- Never read: private keys, certificates

原则五:CI 环境隔离

在 CI/CD 中使用专用的低权限 API Key,并设置使用量限制。


十二、调试与故障排除

查看详细日志

1
2
3
4
5
# 开启 debug 模式
DEBUG=codex:* codex "..."

# 查看 Agent 的完整思考过程
codex --full-stdout "..."

常见问题

问题:Agent 陷入循环 解决:按 Ctrl+C 中断,然后用 /clear 清空上下文重新开始。

问题:文件修改超出预期范围 解决:使用 git diff 审查变更,用 git checkout 回滚不需要的修改。

问题:API 超时 解决:将大任务拆分为小任务,或切换到更快的模型(如 codex-mini-latest)。

问题:沙箱权限不足 解决:根据实际需要升级沙箱级别,但要理解安全影响。


十三、横向对比:Codex CLI vs Claude Code 命令体系

维度Codex CLIClaude Code
启动方式codex / codex "task"claude / claude "task"
配置文件~/.codex/config.toml~/.claude/settings.json
项目配置AGENTS.mdCLAUDE.md
沙箱机制系统级(sandbox-exec/landlock)进程级隔离
审批粒度操作级别工具调用级别
管道支持原生支持原生支持
交互命令/help, /clear, /diff/help, /clear, /compact
多模型切换支持(--model支持(--model
离线能力不支持不支持

两者的命令体系设计理念相近,但 Codex CLI 的沙箱机制更为底层和严格,而 Claude Code 的上下文管理(如 /compact)更为精细。


十四、总结与建议

Codex CLI 的命令体系设计体现了几个核心理念:

安全优先:三层沙箱机制 + 审批策略,让开发者始终掌控 Agent 的行为边界。

渐进式信任:从 untrustednever,根据任务性质和环境逐步放开权限,而非一刀切。

可配置性:AGENTS.md 的分层机制让团队可以在项目级别定义 AI 协作规范,这是工程化 AI 开发的重要基础。

Unix 哲学:原生支持管道和脚本集成,让 Codex CLI 成为工具链中的一等公民,而非孤立的 GUI 工具。

对于想要在日常开发中引入 AI Agent 的团队,建议的上手路径是:先用只读模式熟悉工具 → 在个人项目中开启写入权限 → 为团队项目编写 AGENTS.md 规范 → 最后在 CI/CD 中集成自动化任务。


本文基于 Codex CLI v0.1.x 版本,部分功能可能随版本更新而变化。最新信息请参考 官方文档

报告生成时间:2026-04-27

本文由作者按照 CC BY 4.0 进行授权