文章

Codex 实战速查手册:日常命令、工作流与排错

Codex 实战速查手册:日常命令、工作流与排错

本文面向已经上手 Codex 的开发者,聚焦日常高频操作和可复制的实战方案。收藏这篇,需要时直接搜索关键词找到对应命令。

1. 命令速查表

1.1 全命令分类

会话控制

命令用途常见用法
/clear清空上下文任务完成后开启新话题
/compact压缩上下文对话变长、速度变慢
/resume恢复最近会话终端闪退、主动中断
/resume <id>恢复指定会话切回之前某次对话
/status查看会话状态监控 token 消耗
/costAPI 费用统计关注开销

项目与上下文

命令用途常见用法
/init创建/更新 CODEX.md新项目启动
/add-dir <path>加目录到上下文跨模块操作
/memory管理持久化记忆查看/编辑/删除记忆
/context查看当前上下文详情了解窗口使用情况
/env查看环境信息node 版本、Python 路径等

代码操作

命令用途常见用法
/review审查当前 diff提交前自查
/fix自动修复问题lint/类型/格式错误
/test运行测试并分析“跑测试看看有没有问题”
/lint运行 linter代码风格检查
/format格式化代码统一代码风格

Git 与协作

命令用途常见用法
/pr创建 Pull Request自动分支→提交→发 PR
/commit生成 commit 并提交自动写 commit message
/branch <name>创建并切换到新分支在分支上开发新功能
/diff查看当前改动快速看改了什么

配置与模型

命令用途常见用法
/model查看/切换模型轻任务换小模型
/model gpt-5直接切换到指定模型重任务切强模型
/config打开配置面板调整权限、沙箱、通知
/sandbox管理沙箱设置开/关/查看沙箱状态

子代理与工具

命令用途常见用法
/agents列出可用子代理了解可派发的代理类型
/delegate <描述>派发任务给子代理并行处理独立任务
/tools列出可用 MCP 工具查看已连接的扩展工具
/mcp管理 MCP 服务器添加/移除/查看

Bash 快捷方式

在对话中用 ! 前缀直接执行终端命令,不经过 Codex 分析:

1
2
3
> !git diff --stat
> !npm ls --depth=0
> !docker ps

这在你只想快速查看状态、不需要 AI 分析时非常高效。

1.2 启动参数速查

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
# 基础
codex                                    # 交互模式
codex .                                  # 指定工作目录

# 一次性任务
codex -p "审查安全性"                    # print 模式,输出后退出
codex -c "修复 lint 错误"               # 带项目上下文执行
codex --command "分析架构"               # 同 -c

# 模型
codex --model gpt-5                      # 指定模型
codex --model gpt-5-mini                 # 轻量模型

# 会话
codex --resume                           # 恢复最近
codex --resume <session-id>              # 恢复指定

# 沙箱
codex --sandbox off                      # 关闭沙箱
codex --no-sandbox                       # 同上

# 配置和更新
codex --config                           # 打开配置面板
codex --update                           # 更新到最新版
codex --version                          # 版本信息

2. 配置管理实战

2.1 配置文件层级

Codex 使用 YAML 格式的配置文件,三层优先级:

1
2
3
.codex/config.local.yaml    # 本地覆盖(不提交 git)  最高优先级
.codex/config.yaml          # 项目级(提交 git)      次优先级
~/.codex/config.yaml        # 用户全局                 默认值

2.2 项目配置模板

日常 Web 开发

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
28
29
30
31
32
33
# .codex/config.yaml
model: gpt-5

permissions:
  auto_approve:
    - Read
    - Bash(git:status,git:diff,git:log,git:branch)
    - Bash(npm:*,npx:*,node:*)
    - Bash(ls:*,find:*,grep:*,cat:*,head:*,tail:*)
    - Bash(docker:ps,docker:logs)
  require_approval:
    - Edit
    - Write
    - Bash(git:push,git:commit,git:merge)
    - Bash(rm:*,mv:*)
    - Bash(curl:*,wget:*)
    - WebFetch

sandbox:
  enabled: true
  auto_approve_in_sandbox:
    - Bash(npm:install,npm:run,npm:test)
    - Bash(npx:*)
    - Bash(node:*)
    - Bash(python:*)
    - Bash(pip:*)

context:
  auto_read:
    - package.json
    - tsconfig.json
    - README.md
    - "src/**/*.ts"

信任的本地项目(更宽松)

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
28
# .codex/config.yaml
model: gpt-5

permissions:
  auto_approve:
    - Read
    - Edit
    - Write
    - Bash(git:*)
    - Bash(npm:*,npx:*,node:*)
    - Bash(ls:*,find:*,grep:*)
    - Bash(docker:*)
    - WebFetch
    - WebSearch
  require_approval:
    - Bash(rm -rf:*)
    - Bash(git push --force:*)
    - Bash(curl:*,wget:*)

sandbox:
  enabled: false  # 信任项目关闭沙箱

context:
  auto_read:
    - package.json
    - tsconfig.json
    - CLAUDE.md
    - CODEX.md

CI / 自动化(全自动)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# .codex/config.yaml
model: gpt-5

permissions:
  auto_approve:
    - Read
    - Edit
    - Write
    - Bash(*)

sandbox:
  enabled: true

execution:
  mode: non-interactive  # 无头模式
  auto_confirm: true      # 自动确认所有操作

2.3 权限类型速查

权限覆盖范围示例配置
Read读文件Read(*)
Edit编辑已有文件Edit(src/**)
Write创建新文件Write(src/**)
Bash执行命令Bash(git:*)
WebFetch抓取网页WebFetch(docs.*)
WebSearch搜索网页WebSearch(*)
MCP.*MCP 工具MCP.github:*

2.4 沙箱配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sandbox:
  enabled: true

  # 沙箱中自动批准的 shell 命令
  auto_approve_in_sandbox:
    - Bash(npm:*)     # npm 相关操作自动通过
    - Bash(npx:*)
    - Bash(node:*)
    - Bash(python:*)

  # 沙箱中的文件系统访问
  writable_paths:
    - node_modules/
    - dist/
    - .cache/

  # 网络策略
  network:
    allow_outbound: true
    allowed_hosts:
      - registry.npmjs.org
      - pypi.org

3. 上下文管理技巧

3.1 何时 compact

观察信号:

  • Codex 提示”上下文接近上限”
  • 回答质量明显下降
  • 开始遗漏你前面说过的重要信息
  • 相同约束需要反复提醒

最佳时机:每完成一个独立任务后立刻 compact,而不是等系统提示。

3.2 任务拆分原则

1
2
3
4
5
6
Session 1: 探索代码库 → /clear
Session 2: 设计方案 → /clear
Session 3: 实现逻辑 → /clear /compact
Session 4: 补充测试 → /clear
Session 5: Review 修复 → /clear
Session 6: 文档和 PR → /clear

每个会话结束时让 Codex 总结进度,把摘要复制保存。下一个会话开始时贴回去即可。

3.3 CODEX.md 编写技巧

高效 CODEX.md 的三个原则:具体、简短、可执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# CODEX.md

## 技术栈
FastAPI + SQLAlchemy + PostgreSQL + Redis

## 项目约定
- Python 3.12,用 ruff 格式化
- 所有 public 函数必须有 docstring
- 数据库迁移用 Alembic,不要手动改 schema
- 测试用 pytest + pytest-asyncio

## 当前关注
- 正在从 Flask 迁移到 FastAPI,src/flask_routes/ 是旧代码
- 新代码全部写在 src/api/

## 禁止
- 不要改 alembic/versions/ 下的历史迁移文件
- 不要改 Dockerfile 和 docker-compose.yml
- 不要引入新的 PyPI 依赖,除非必要

3.4 记忆管理

1
2
3
4
5
6
7
8
# 查看现有记忆
/memory

# 在对话中主动记录
> 记住:我们 API 默认分页是 page_size=20

# 清理过时记忆
> 删除关于 Flask 迁移的记忆,迁移已经完成了

3.5 图片和文件引用

Codex 支持直接引用图片和文件作为上下文:

1
2
> 分析这张 UI 截图的问题 @./screenshots/bug.png
> 根据这个设计稿的 PDF @./docs/api-design.pdf 帮我实现 API

比纯文本描述高效得多。

4. 高效工作流

4.1 Code Review 流程

1
2
3
4
5
6
7
8
9
10
11
12
# 快速审查
/review                          # 对当前 diff 做审查

# 深度审查
> 对当前改动做一个全面的 code review,重点看:
> 1) 安全漏洞
> 2) 性能隐患
> 3) 边界情况处理
> 4) 是否破坏了现有 API 契约

# 修复发现的问题
> 把刚才提到的所有问题都修了,每个独立问题一个 commit

4.2 调试工作流

1
2
3
4
5
6
7
8
9
10
11
# 定位问题
> 订单创建接口返回 500,帮我查看相关日志和代码,逐步定位根因

# 不要直接改逻辑,先加日志
> 先在关键路径上加 debug 日志,复现后分析输出

# 定位后修复
> 根因是 SQLAlchemy session 未正确关闭。帮我修复,并补充对应的测试用例

# 验证
> 跑一遍 order 相关的测试,确认修复有效且没有回归

4.3 自动修复工作流

1
2
3
/fix                             # 一键修复 lint 和类型错误
/lint                            # 只跑 lint 看有哪些问题
/format                          # 统一格式化

4.4 TDD 工作流

1
2
3
4
5
6
7
> 我要用 TDD 方式给 src/services/payment.py 添加退款功能:
> 1) 先写测试用例
> 2) 确认测试失败
> 3) 实现退款逻辑
> 4) 确认测试通过
> 5) 重构优化
> 每个步骤做完停一下让我确认

4.5 发 PR 完整流程

1
2
3
4
5
6
7
8
9
10
# 方式一:一键
/pr

# 方式二:分步控制
> 帮我:
> 1) 总结这次所有改动的要点
> 2) 生成规范的 commit message
> 3) 创建 feature/refund-api 分支
> 4) 提交并推送
> 5) 创建 PR,标题和描述写清楚改动内容和测试结果

5. 常见问题

Q: Codex 和 Claude Code 选哪个?

A: 两者定位相似,核心差异在底层模型和生态。如果你的团队用 OpenAI API 更多,Codex 集成更顺;如果偏好 Anthropic 生态,Claude Code 更合适。实际很多团队两个都在用,不同任务选不同工具。

Q: 上下文满了怎么办?

A: 先 > 总结当前进度和待办 复制内容,然后 /compact/clear,新会话贴上摘要继续。

Q: Codex 开始”犯糊涂”,质量明显下降?

A: 上下文太长导致注意力分散。立即 /compact。如果 compact 后还是不行,说明这个任务本身太大了——拆成更小的任务独立处理。

Q: 沙箱里不能访问某些文件/网络怎么办?

A: 检查 .codex/config.yaml 中的 sandbox.writable_pathssandbox.network.allowed_hosts 配置。也可以用 /sandbox 命令临时调整。

Q: 怎么评估花了多少钱?

A: /cost 显示当前会话和累计费用。

Q: 如何让 Codex 更好地理解我的私有框架?

A: 在 CODEX.md 中详细描述框架约定,把核心代码路径加入 context.auto_read

6. 速查:每天启动的 5 件事

  1. /status — 上下文是否需要 fresh start
  2. CODEX.md 更新 — 昨天有没有新约定需要记录
  3. /model 检查 — 当前任务是否需要更强/更快的模型
  4. 权限检查 — 频繁遇到的权限弹窗,今天直接加白名单
  5. 一个会话一个主题 — 别混着做

这五件事养成习惯,Codex 会从”可用”变成”高效”。

参考资料

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