Codex: Codex CLI Skills、沙箱与示例

最后更新:2026-08-31

CLI 是 Codex 最灵活的使用方式,本节深入 CLI 环境下的 Skills、沙箱配置与实用示例。

📋 前置知识:了解 Codex CLI 基本操作

1. 你将学到


2. CLI Skills 管理

(1) 列出可用 Skills

BASH
codex --list-skills

(2) 使用 Skill

BASH
# 指定 Skill 执行任务
codex --skill code-review "审查 src/auth.ts"

# 组合使用
codex --skill security --sandbox readonly "扫描安全漏洞"

(3) 自定义 Skill 位置

BASH
# 指定 Skills 目录
codex --skills-dir ./my-skills "添加登录功能"

(4) Skill 文件格式

MARKDOWN
<!-- .codex/skills/api-endpoint.md -->
# API Endpoint Generator

## 角色
FastAPI 端点开发专家

## 规则
- 使用 Pydantic 模型
- 包含错误处理
- 添加 Swagger 文档
- 编写 pytest 测试

## 工作流
1. 定义请求/响应模型
2. 实现端点逻辑
3. 添加错误处理
4. 编写测试
5. 确保 pytest 通过

3. 沙箱安全详解

(1) 沙箱实现方式

方式 说明 安全级别
Docker 容器隔离 最高
chroot 目录隔离 中等
进程级 权限限制 基础

(2) Docker 沙箱配置

TOML
[sandbox]
type = "docker"
image = "codex-sandbox:latest"
memory = "2g"
cpus = 2
timeout = 600

# 挂载卷
volumes = [
  "./src:/workspace/src",
  "./tests:/workspace/tests",
]

# 环境变量
env = { "NODE_ENV" = "test" }

(3) 沙箱权限矩阵

操作 readonly workspace-write full-access
读取文件
写入工作区
写入系统
执行命令 ⚠️ 确认
网络访问

▶ 示例 1: Alice 的安全配置

TOML
# Alice 的沙箱配置
[sandbox]
type = "docker"
memory = "4g"
cpus = 4

# 允许的操作
allowed_commands = [
  "npm test",
  "npm run lint",
  "git status",
  "git diff",
  "tsc --noEmit",
]

# 禁止的操作
blocked_commands = [
  "rm -rf /",
  "sudo",
  "curl * | sh",
]

# 资源限制
max_file_size = "10MB"
max_execution_time = 300

4. 实用示例集

(1) 项目初始化

BASH
codex "初始化 Next.js 14 项目:TypeScript + Tailwind + ESLint + Prettier,创建标准目录结构"

(2) Bug 修复

BASH
# 从错误日志修复
cat error.log | codex --full-auto "分析错误日志,定位根因,修复代码"

# 从 Issue 修复
codex "修复 Issue #42:用户注册后收不到验证邮件"

(3) 测试生成

BASH
# 为所有源文件生成测试
codex --full-auto "为 src/ 下所有 .ts 文件生成对应的 .test.ts,使用 vitest"

# 补充测试覆盖
codex "检查测试覆盖率,为低于 80% 的文件补充测试"

(4) 代码重构

BASH
# 框架迁移
codex "将所有 Class 组件重构为函数式组件 + Hooks"

# API 迁移
codex "将 REST API 调用迁移为 tRPC,保持功能一致"

(5) 文档生成

BASH
# API 文档
codex "为所有 API 端点生成 OpenAPI/Swagger 文档"

# README
codex "根据项目结构和代码,生成 README.md"

▶ 示例 2: Bob 的一天

BASH
# 早上:拉代码 + 修复 lint
git pull
codex --full-auto "修复所有 lint 错误"

# 上午:新功能
codex "添加用户头像上传功能,支持裁剪和压缩"

# 下午:Bug 修复
codex "修复支付超时问题,添加重试机制"

# 傍晚:测试
codex "为今天的变更补充集成测试"

# 晚上:文档
codex "更新 API 文档和 CHANGELOG"

5. CLI 提示词技巧

(1) 精确文件引用

BASH
# 好的做法
codex "修改 src/auth/login.ts,添加 2FA 支持"

# 差的做法
codex "给登录加个功能"

(2) 包含验证

BASH
codex "优化数据库查询性能,确保 npm test 通过,对比优化前后的执行时间"

(3) 分步执行

BASH
# 复杂任务分步
codex "第一步:创建 Order 模型。完成后输出模型定义,我确认后继续第二步。"

(4) 引用参考

BASH
codex "创建 UserProfile 组件,参考 src/components/UserCard.tsx 的样式风格"

❓ 常见问题

Q CLI 的 Skills 和 App 的 Skills 一样吗?
A 格式一样,但 CLI 需要通过 --skill 参数指定,App 可以通过界面选择。
Q 沙箱会影响性能吗?
A Docker 沙箱有一定启动开销(约 2-5 秒),但运行时性能差异不大。进程级沙箱几乎无开销。
Q CLI 能同时运行多个任务吗?
A 可以开多个终端窗口,每个运行一个 Codex 实例。建议使用 Worktrees 避免文件冲突。
Q 如何查看 CLI 的详细执行日志?
A 使用 --verbose 参数或 --log-file 指定日志文件。
Q CLI 的非交互模式能处理确认请求吗?
A 需要 --approval-policy approve--full-auto。否则非交互模式会卡住等待确认。

📖 小节


📝 作业

  1. 基础题(难度⭐):用 CLI Skills 完成一次代码审查。
  2. 进阶题(难度⭐⭐):配置 Docker 沙箱,在沙箱中执行任务。
  3. 挑战题(难度⭐⭐⭐):编写一个 CLI 自动化脚本,覆盖日常开发的所有 Codex 任务。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏