Claude Code & OpenAI Codex 完全使用指南

目录
1. 🚀 快速安装与入门
Claude Code 安装
前提条件: 需要 Node.js 18+,有 Anthropic 账号(Claude Pro/Max/Team 均可)
# 安装
npm install -g @anthropic-ai/claude-code
# 启动(在你的项目目录下运行)
cd 你的项目目录
claude
# 一键绕过每次授权确认(谨慎使用!)
claude --dangerously-skip-permissions
新手必设别名(省掉每次打长命令):
# 写入 ~/.zshrc 或 ~/.bashrc
alias cc="claude --dangerously-skip-permissions"
# 生效
source ~/.zshrc
# 以后只需输入 cc 即可启动
cc
OpenAI Codex 安装
# npm 安装
npm i -g @openai/codex
# 或 brew 安装(macOS)
brew install --cask codex
# 启动
codex
2. ⌨️ 快捷键大全
Claude Code 快捷键
操作 Mac Windows / Linux 换行(不发送) Shift + Enter Shift + Enter 进入计划模式(Plan Mode) Shift + Tab Shift + Tab 切换自动接受编辑 Shift + Tab 两次 Shift + Tab 两次 停止 Claude 但保留上下文 Esc Esc 打开检查点菜单(可回滚代码/对话) Esc Esc Esc Esc 中断正在执行的任务(丢失上下文) Ctrl + C Ctrl + C 暂存当前未发送的提示草稿 Ctrl + S Ctrl + S 将长时间运行的命令置于后台 Ctrl + B Ctrl + B 在文本编辑器中直接编辑 Claude 的计划 Ctrl + G Ctrl + G 快速打开 Claude Code(VSCode 中) Cmd + Esc Ctrl + Esc 向上翻历史消息 ↑ 方向键 ↑ 方向键 查看所有斜杠命令 / + 回车 / + 回车
Esc 键的两层妙用(高频使用!):
Esc单击:停止 Claude 执行,不丢失上下文,可立即重新引导Esc Esc双击(或输入/rewind):打开检查点菜单,显示 Claude 创建的每个存档点,支持四种恢复模式:代码 + 对话一起恢复
仅恢复对话
仅恢复代码
从检查点向前重新总结
⚠️ 检查点只追踪文件编辑,不追踪 Bash 命令执行的副作用(如数据库迁移)。
Codex 快捷键
操作 说明 Enter 发送消息 Ctrl + J / Option + Enter 换行(不发送) Esc 关闭导航抽屉 / 中断当前请求 Esc Esc(连按两次) 编辑上一条消息(输入框为空时) Ctrl + C 取消当前操作(按两次退出) Ctrl + D 退出 Codex(按两次强制退出) Ctrl + L 清屏(不重置对话) Ctrl + G 在外部编辑器(vim 等)中打开长提示 @ + 文件名 模糊搜索并附加文件到对话 ! + 命令 直接运行本地 Shell 命令并注入输出 Enter(执行中) 中途注入新指令 Tab(执行中) 排队下一轮执行的指令 ↑ / ↓ 浏览草稿历史
3. 📝 斜杠命令速查
Claude Code 斜杠命令
/help 列出所有可用命令
/clear 清除当前对话历史(省 token 神器!)
/compact 压缩上下文(快速整理、节省 token)
/rewind 打开检查点菜单,可回滚代码和对话(同 Esc+Esc)
/init 扫描项目生成 CLAUDE.md 记忆文件
/model 切换模型(Opus / Sonnet / Haiku,支持 /model opus[1m])
/mcp 查看已连接的 MCP 服务器状态
/memory 编辑 Claude 的记忆
/permissions 管理工具权限(将信任命令加白名单,避免反复确认)
/config 打开配置菜单(可配置 MCP、hooks 等)
/cost 查看本次对话 token 消耗
/status 查看账号/系统状态
/plugin 浏览插件市场(发现各语言 LSP 代码智能插件)
/agents 浏览和创建自定义子代理
/hooks 交互式设置 Hooks
/review 请求代码审查
/sessions 列出历史 Session
/resume 恢复某个历史 Session
/rename 给当前 Session 命名(方便后续查找)
/color 给当前 Session 设置颜色(red/blue/green 等,便于区分多个终端)
/output-style 切换输出风格(explanatory/concise/technical)
/effort 设置思考深度(低/中/高)
/btw 弹出旁问覆盖层(提问不进入对话历史,保持上下文干净)
/loop 定期执行提示(如:/loop 5m 检查部署是否成功)
/voice 启用语音听写(按住 Space 说话,实时转录到提示框)
/branch 创建对话分叉副本,可并行尝试不同方案(别名 /fork)
/sandbox 启用 OS 级沙箱隔离(macOS: Seatbelt / Linux: bubblewrap)
/vim 切换 Vim 模式
/doctor 检查客户端完整性
/bug 向 Anthropic 报告 Bug
/exit 退出 Claude Code
/ide 连接到 IDE(外部终端使用)
/terminal-setup 安装 Shift+Enter 绑定
/add-dir 添加更多工作目录
/pr_comments 查看 PR 评论
/statusline 生成实时状态行脚本(显示目录/分支/上下文用量)
重要魔法词(在任何提示中使用):
ultrathink → 触发深度推理模式(Opus 4 上效果最强)
示例:ultrathink - 帮我重新审查这个架构的扩展性问题
4. 🧹 清除对话 / 管理上下文
为什么要清除对话?
Claude Code 的上下文窗口最大 200K token。旧对话越堆越多,会:
浪费 token(旧记录占位)
触发自动压缩(影响质量)
让 Claude 产生幻觉(上下文太乱)
上下文状态信号(来自社区建议)
上下文使用率 建议操作 0% ~ 50% 正常工作 50% ~ 70% 留意,开始新任务前考虑清除 70% ~ 90% 输入 /compact 压缩 90% 以上 立即 /clear,否则回答会变乱
各种清除方法
# 方法 1:清除整个对话(最彻底)
/clear
# 方法 2:只压缩/整合,保留上下文摘要
/compact
# 方法 3:直接退出重开(最暴力,最干净)
/exit
# 然后重新 claude
# 方法 4:开启新任务时,带上 -c 继续上次
claude -c # 继续上次对话
社区经验(来自 builder.io):
"每次开始新任务,立刻 /clear。不要用 /compact 总结旧对话,直接清掉,然后继续。"
给 Session 命名,方便找回
/rename react-登录页重构 # 给当前对话命名
/color blue # 设置颜色(多开时颜色区分)
/resume react-登录页重构 # 下次直接按名字恢复
引导压缩,保留关键上下文
压缩时 Claude 可能忘记你在做什么。主动告诉它要保留什么:
# 压缩时指定重点
/compact focus on the API changes and the list of modified files
# 或在 CLAUDE.md 中写入固定指令
When compacting, preserve the full list of modified files and current test status.
还可以用 Notification Hook 在每次压缩后自动重新注入上下文(见第11节 Hooks 高级技巧)。
扩展到 1M Token 超大上下文
Sonnet 4.6 / Opus 4.6 均支持 100万 token 上下文窗口:
# 会话中途切换到大上下文模型
/model opus[1m]
/model sonnet[1m]
# 控制自动压缩触发时机(环境变量)
CLAUDE_CODE_AUTO_COMPACT_WINDOW=0.8 # 80% 时触发压缩
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=50 # 覆盖默认阈值
Max / Team / Enterprise 计划中 Opus 自动升级到 1M 上下文。
同一问题修正两次后,放弃该对话重开
当你和 Claude 在某个问题上反复纠正超过两次,上下文已被失败方法污染。此时正确做法:
/clear
# 重写更清晰的起始提示,把教训融入进去
干净的会话 + 清晰的提示,几乎总是优于被死胡同拖累的长对话。
5. 🔌 MCP 安装与配置
MCP(Model Context Protocol)= 让 Claude 能连接外部工具、数据库、浏览器等。
方法 A:命令行安装(推荐新手)
# 启动 MCP 向导
claude mcp
# 或直接在 Claude Code 对话中
/mcp
方法 B:编辑配置文件手动安装
MCP 配置文件位置:
~/.claude/.mcp.json ← 个人全局(所有项目生效)
你的项目/.mcp.json ← 项目级(只对当前项目生效)
示例配置(以 context7 为例):
{
"mcpServers": {
"context7": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"]
},
"browsermcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "browsermcp"]
}
}
}
必装 MCP 推荐(来自外网社区)
MCP 名称 用途 安装命令 context7 引入最新代码库知识/文档 npx -y @upstash/context7-mcp browsermcp 让 Claude 直接打开并操控浏览器 npx -y browsermcp chrome-devtools 让 Claude 调试网页运行时错误 参考 GitHub filesystem 读写本地文件系统 官方内置 github 操作 GitHub PR/Issues npx -y @modelcontextprotocol/server-github
验证 MCP 是否生效
# 在 Claude Code 中输入
/mcp
# 会列出所有已连接的 MCP 服务器及状态(connected/error)
Codex 安装 MCP
Codex 的 MCP 配置在 ~/.codex/config.toml:
[[mcp_servers]]
name = "my-server"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
6. 🧠 Skills 技能文件安装
Skills = 按需加载的知识模块。只有 Claude 判断需要用到时,才加载进上下文。比 CLAUDE.md 更省 token。
文件位置
~/.claude/skills/ ← 个人全局 Skills
你的项目/.claude/skills/ ← 项目级 Skills
创建一个 Skill
mkdir -p ~/.claude/skills/my-api-conventions
touch ~/.claude/skills/my-api-conventions/SKILL.md
SKILL.md 内容格式:
---
name: my-api-conventions
description: 当需要调用公司内部 API 或设计接口时使用此技能
---
## 公司 API 规范
- 所有接口必须返回 { code, data, message } 结构
- 认证通过 Authorization: Bearer 头
- 分页参数统一使用 page 和 pageSize
- 错误码参考 /docs/error-codes.md
调用 Skill
# 显式调用(@符号引用)
@my-api-conventions 帮我设计一个用户登录接口
# 隐式调用(Claude 自动识别)
只需描述任务,Claude 会根据 description 判断是否加载
Codex 的 Skills
Codex 也支持 Skills,位置:
$HOME/.agents/skills/ ← 个人全局
你的项目/.agents/skills/ ← 项目级
创建方式相同,用 SKILL.md 文件,在对话中用 $ 符号显式调用。
7. 🧩 插件安装(Plugin)
Plugin = Skills + Hooks + MCP + 子代理的打包组合,一键安装。
浏览并安装插件
# 在 Claude Code 对话中输入
/plugin
# 会打开插件市场,可以直接安装
推荐社区插件
dx 插件(开发者体验增强):
# 在 Claude Code 中运行
/plugin install dx
安装后新增命令:
/dx:clone— 克隆项目/dx:handoff— 任务交接/dx:gha— GitHub Actions 相关
安装代码智能插件(LSP,强烈推荐!)
LSP 插件在每次文件编辑后给 Claude 提供自动诊断:类型错误、未使用的导入、缺失返回类型……Claude 在你注意到之前就能发现并修复。这是影响最大的单个插件。
# 按语言安装(在 Claude Code 中运行)
/plugin install typescript
/plugin install python
/plugin install rust
/plugin install go
# C#、Java、Kotlin、Swift、PHP、Lua、C/C++ 也有对应插件
# 运行 /plugin → 发现 标签页 浏览完整列表
⚠️ 需要系统上已安装对应语言服务器二进制文件,插件缺失时会提示你安装。
8. 💻 集成 VS Code / IDE
方法 A:VS Code 扩展安装(推荐新手)
打开 VS Code
按
Cmd+Shift+X(Mac)或Ctrl+Shift+X(Windows)打开扩展市场搜索 "Claude Code"
点击安装
点击右上角 Claude Code 图标进入面板
支持的 IDE:
VS Code(主推)
Cursor
Windsurf
JetBrains(PyCharm、WebStorm、IntelliJ 等)
方法 B:外部终端连接 IDE
如果你用外部终端打开 Claude Code,可以通过以下命令连接 IDE:
# 在 Claude Code 对话中
/ide
确保从与 IDE 项目根目录相同的路径启动 Claude。
VS Code 中的核心用法
@引用文件(最常用):
@src/auth/login.ts 帮我分析这个文件的问题
@components/Button 重构这个组件
!执行终端命令并注入上下文:
!git status
!npm test
!tail -50 app.log
输出风格切换:
/output-style explanatory → 每次修改都解释为什么这么做(适合学习)
/output-style concise → 简洁直接(适合熟练开发者)
/output-style technical → 精确技术语言
/output-style learning → 留部分任务给你自己实现(边做边学)
让 Claude 自动 Review 你的 PR
# 在 Claude Code 中运行
/install-github-app
安装后,Claude 会自动 review 所有 PR。
自定义 review 提示(让它只关注 Bug 和安全,别啰嗦):
编辑 .claude/claude-code-review.yml:
direct_prompt: |
请 review 这个 PR,只寻找 Bug 和安全问题。
只报告你发现的实际问题,要简洁。不要评论代码风格。
远程控制(手机/平板继续会话)
# 在 Claude Code 中启用远程控制
# 进入 /config 菜单,找到 Remote Control 选项
启用后可以通过 claude.ai/code 或手机 App 继续本地会话,本地文件系统和 MCP 都保持可用。
9. 📋 CLAUDE.md 配置核心记忆
CLAUDE.md = Claude 每次启动都会读取的"项目说明书"。
文件位置
~/.claude/CLAUDE.md ← 个人全局(所有项目)
你的项目/CLAUDE.md ← 项目级(优先级更高)
你的项目/.claude/CLAUDE.md ← 也可以放这里
自动生成 CLAUDE.md
# 在 Claude Code 中输入
/init
# Claude 会扫描你的项目,自动生成包含构建命令、测试方式、代码规范的 CLAUDE.md
CLAUDE.md 推荐写法
# 项目说明
## 我的背景
我是一名产品经理,编程经验有限。每次你修改代码,请用简单的语言解释你做了什么、为什么这么做。
## 技术栈
- 前端:React Native + Expo Bare Workflow
- 后端:Spring Boot 3.x / Java 17
- 数据库:PostgreSQL
- 部署:阿里云
## 代码规范
- 所有注释用中文
- 组件文件名使用 PascalCase
- 接口返回格式统一:{ code, data, message }
## 测试
- 运行测试:npm test
- 构建:npm run build
## 禁止事项
- 不要修改 package.json 版本号
- 不要直接连接生产数据库
CLAUDE.md vs Skills 的区别
CLAUDE.md Skills 加载时机 每次启动都加载 按需加载 适合内容 项目基本规范、个人背景 专项领域知识 Token 消耗 每次都占用 只在需要时占用
/init 后删掉一半(重要!)
/init 自动生成的 CLAUDE.md 往往臃肿。对每一行问自己:
如果没有这条指令,Claude 会犯错吗?
如果 Claude 不写也能正确做,就删掉——不必要的指令会稀释真正重要的那些。
指令预算约为 150-200 条,超出后遵从率下降(系统提示已占用约 50 条)。
Claude 犯错后让它自己更新 CLAUDE.md
# 当 Claude 犯了一个不该犯的错,直接说:
更新你的 CLAUDE.md,这样的事别再发生。
# Claude 会自己写规则,下次会话自动遵守
随着时间推移,CLAUDE.md 会成为一份由真实错误塑造的活文档。
用 .claude/rules/ 存放条件规则(精细控制)
---
paths:
- "src/**/*.ts"
- "src/**/*.tsx"
---
# TypeScript 规范
- 优先使用 interface 而非 type
- 所有 public 函数必须有明确的返回类型
这样 TypeScript 规则只在 Claude 处理 .ts 文件时才加载,不会干扰其他语言。
用 @imports 保持 CLAUDE.md 精简
@docs/api-conventions.md
@docs/deployment-guide.md
@README.md
把 CLAUDE.md 理解为「如果需要,这里有更多上下文」的指针,而不是每次都全量读取的大文件。
10. 🎯 输入提示技巧
先规划,后编码(最重要!)
# 按 Shift+Tab 进入 Plan Mode,Claude 只分析不动代码
# 方案确认后,再让它执行
# 或直接在对话里说
先给我一个计划,不要写代码
新手黄金工作流:需求 → 规划 → 任务 → 执行
让 Claude 创建
spec.md(需求文档)让 Claude 基于 spec 创建
todo.md(详细任务列表)逐步执行,每步验证
给 Claude 一个自我检查的方法(质量提升 2-3 倍)
在提示中包含测试命令或验证方式,让 Claude 形成反馈循环:
重构身份验证中间件,使用 JWT 替代 Session。
修改后运行 npm test,在我介入前修复所有失败。
Claude 会运行测试 → 看到失败 → 自己修复,而不是把问题抛给你。Boris Cherny 称仅此一项就能将质量提升 2-3 倍。
指定具体文件,不要说"帮我看整个项目"
# ❌ 太模糊
帮我修复登录的 Bug
# ✅ 精确定位
看 src/auth/login.ts 和 tests/auth.test.ts,修复第 42 行的测试失败
思考深度魔法词
ultrathink - 帮我设计这个系统的架构 # 最高级别推理
# 适合:架构设计、复杂 Debug、多步骤推理
# 不适合:简单改个变量名(浪费 token)
让 Claude 提问后再动手
在开始之前,请先问我所有你需要了解的信息
直接把终端输出粘进去
全选终端输出 → Cmd+A → Cmd+C → 粘贴到 Claude Code 输入框,比截图描述更精确。
黄金法则: 不要用语言描述 Bug,直接粘贴原始数据。
# ❌ 低效
有一个登录接口报 500 错误,好像是 token 问题
# ✅ 高效
[粘贴完整的错误日志 / CI 输出 / Sentry 堆栈]
修复这个
# 还可以用管道直接传入
npm test 2>&1 | claude "修复这些测试失败"
让 Claude 采访你,再开始动手(需求不清时必用)
我想构建一个用户仪表盘,展示最近活动和通知。
用 AskUserQuestion 工具详细采访我,
问清楚所有边界情况、技术实现和权衡。
采访结束后把完整规格写入 SPEC.md。
规格写完后,开一个新的干净会话,按规格执行。
用模糊提示探索陌生代码
这个文件有什么可以改进的地方?
不是每次都需要精确提示。一个模糊问题能让 Claude 发现你不会想到要问的事情——适合熟悉陌生代码库时使用。
& 前缀:云端并行执行
& 重构认证模块 # 任务发送到云端运行,你可以继续本地工作
# 之后用 /sessions 查看结果
/btw:旁问不污染上下文
/btw 你为什么选择这个方法,而不是直接用 Map?
答案显示在可关闭的覆盖层中,不进入对话历史,主要上下文保持精简,Claude 继续工作。
11. 🤖 高级玩法
子代理(Subagent):保持主对话干净
# 让 Claude 开启一个子代理去探索代码库
"用子代理帮我分析支付流程中的失败处理逻辑"
子代理有独立上下文窗口,探索后只把摘要汇报给主对话,主对话不被污染。
Agent Teams:多个 Claude 并行工作(实验性)
启用方式:
# 方法一:环境变量
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=true
# 方法二:settings.json
{
"experimental": {
"agentTeams": true
}
}
然后说:
创建一个 3 人 Agent 团队,并行重构这些模块
使用建议:
从 3-5 名队友开始,每人 5-6 个任务
避免让两个队友修改同一个文件(会覆盖)
先从研究/审查任务(PR 审查、Bug 调查)开始,再尝试并行实现
Git Worktree 并行任务
Git Worktree 是 AI 并行开发的核心能力,详见 → 第14节:Git Worktree 并行开发完全指南
# 快速示例:为两个任务同时启动独立 Claude 实例
git worktree add ../myapp-auth -b feature/auth
git worktree add ../myapp-hotfix -b hotfix/bug-123
# 分别在两个终端启动
cd ../myapp-auth && claude
cd ../myapp-hotfix && claude
每个实例完全隔离——独立文件系统 + 独立 Claude 上下文,互不干扰。
Hooks:让 Claude 每次编辑后自动格式化
在 .claude/settings.json 中:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "prettier --write $CLAUDE_FILE_PATH || true"
}
]
}
]
}
}
CLAUDE.md vs Hooks 的区别:
CLAUDE.md:建议性指导,Claude 遵守约 80%
Hooks:100% 执行,绝对确定
PreToolUse Hook:阻止破坏性命令(安全必装)
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "if echo "$TOOL_INPUT" | grep -qE 'rm -rf|drop table|truncate'; then echo 'BLOCKED' >&2; exit 2; fi"
}
]
}
]
}
}
或直接告诉 Claude:添加一个 PreToolUse Hook,阻止 rm -rf、drop table 和 truncate 命令。
Notification Hook:压缩后自动重注入关键上下文
长会话压缩后 Claude 可能丢失关键记忆,用这个 Hook 自动恢复:
{
"hooks": {
"Notification": [
{
"match": "context_compacted",
"prompt": "当前任务是实现用户注册流程,关键文件是 src/auth/register.ts 和 src/auth/user.ts,不要修改迁移文件。"
}
]
}
}
Stop Hook:任务完成时播放提示音
{
"hooks": {
"Stop": [
{
"type": "bash",
"command": "afplay /System/Library/Sounds/Glass.aiff"
}
]
}
}
启动任务后切去做别的事,听到提示音再回来看结果。
自定义子代理(.claude/agents/)
保存预配置的专用代理,可针对不同任务优化:
# 用 /agents 创建,或在 .claude/agents/ 目录下新建 Markdown 文件
# 示例:安全审查代理(用 Opus + 只读工具)
# 示例:快速搜索代理(用 Haiku + 速度优先)
/agents
可以给代理设置 isolation: worktree,让它在独立文件系统中运行。
/branch:对话分叉(零风险尝试方案)
/branch # 在当前点创建对话副本(别名 /fork)
在分支里尝试有风险的重构——成功保留,失败原对话完全不受影响。与 Esc+Esc 回滚不同,/branch 让两条路径同时存活。
一个 Claude 写,另一个 Claude 审查
# 终端 1(实现)
帮我实现用户注册功能
# 终端 2(审查,用全新上下文)
以高级工程师身份审查这个 PR,重点检查安全漏洞、性能问题、边界情况
审查者对实现细节一无所知,会质疑每一个取巧。同理适用于 TDD:会话 A 写测试,会话 B 写通过测试的代码。
对话式 PR 审查(比一次性更深入)
# 不要一句话让 Claude 一次性 review
# 而是开启对话:
带我看这个 PR 里风险最大的改动
如果这段代码并发运行,什么会出问题?
错误处理和代码库其他部分一致吗?
对话式审查能深入关键领域,一次性审查往往只挑样式细节而漏掉架构问题。
/loop:定期自动检查(监控部署/CI 利器)
/loop 5m 检查部署是否成功并汇报
/loop 20m /review-pr 1234
# 默认间隔 10 分钟,支持 s/m/h/d 单位
# 任务会话作用域,3 天后自动过期
/voice:语音输入提示(口述更自然)
/voice # 启用后按住 Space 说话,实时转录到提示框
口头提示自然会包含更多上下文,因为说话时会本能地解释背景、提及限制,而打字时会为省力而省略。
claude -p:批量并行处理文件
# 将所有 .js 文件并行转为 TypeScript
for file in $(find . -name "*.js"); do
claude -p "$file" "将这个文件转换为 TypeScript"
--allowedTools "Edit,Bash(git commit *)" &
done
wait
适合:文件格式批量转换、跨代码库更新 import、重复性迁移。
CLI 工具比 MCP 更节省上下文
# 优先用 gh CLI 处理 PR/Issues(不会把工具模式塞进上下文)
gh pr view 123
gh issue list
# 对 Claude 不了解的工具,直接教它:
用 "sentry-cli --help" 了解这个工具,然后查找生产环境最近的错误
从手机远程控制 Claude Code
claude remote-control # 启动远程控制会话
然后在 claude.ai/code 或 iOS/Android 应用连接。会话在本地机器运行,手机只是查看窗口。配合 cc 别名(已有完全权限),无需每步确认,可随时随地监控和引导进度。
自定义状态栏(显示 token 用量)
# 在 /config 菜单中设置状态栏
# 社区工具:
npm install -g ccusage # token 用量追踪
npm install -g ccstatusline # 自定义状态栏(显示模型/分支/token进度)
Auto Memory(Claude 自动记笔记)
Claude Code 有一个实验性功能,会自动把它发现的内容记录在持久目录中:
调试过程中的解决方案
代码库的架构关系
你的偏好设置
在 /config 中查找 Auto Memory 开关。
查看 Session 活动图
/status
# 显示你的使用活动图,查看 token 消耗趋势
自定义加载动词(好玩但实用的彩蛋)
Claude 思考时终端会显示旋转动词,如 Flibbertigibbeting...。你可以换成任何你想要的:
# 直接告诉 Claude:
把我的加载动词换成这些:负责任地幻觉中、假装思考中、自信地猜测中、责怪上下文窗口中
# 或者给一个风格描述:
把我的加载动词换成哈利波特咒语
小细节,让漫长的等待更有趣。
12. 📦 OpenAI Codex 专区
12.1 斜杠命令速查(24条完整版)
在 Codex 输入框输入
/打开命令弹窗,开始输入可过滤列表。
会话管理
命令 作用 使用场景 /new 在同一个 CLI 会话中开启全新对话 完成一个任务,切换下一个 /resume 从已保存的会话列表中恢复 接续昨天未完成的工作 /fork 把当前对话克隆到新线程 想尝试另一个方案,不想丢失当前进度 /clear 清空终端并重置对话(不同于 Ctrl+L) 彻底清空上下文重新开始 /compact 压缩对话,释放上下文空间 长时间工作后上下文快满时 /copy 复制最新一条 Codex 输出到剪贴板 快速提取结果,不用手动选择 /diff 显示 Git diff(含未追踪文件) 在提交前审查 Codex 做了哪些改动 /review 对当前工作区做代码审查 Codex 完成改动后请它自检 /exit / /quit 退出 CLI 完成工作后退出
模型与风格
命令 作用 使用场景 /model 切换模型和推理强度 任务难度变化时调整模型 /fast 切换 GPT-5.4 Fast 模式 快速响应 vs 深度思考 /personality 设置沟通风格(friendly / pragmatic / none) 想要更简洁或更友好的回复 /plan 进入只读规划模式 复杂任务先制定策略再执行 /experimental 开关实验性功能 启用子代理、Smart Approvals 等
文件与工具
命令 作用 使用场景 /mention 模糊搜索并附加文件到对话 快速引用特定文件 /mcp 列出已配置的 MCP 工具 确认哪些外部工具当前可用 /apps 浏览 App 连接器,插入 $app-slug 使用 Figma、Sentry 等集成 /agent 切换活跃子代理线程 检查或接续子代理的工作 /ps 查看后台终端及其输出 监控长时间运行的命令 /init 生成 AGENTS.md 脚手架 新项目初始化项目说明
其他
命令 作用 /permissions 运行时修改权限(Auto / Read Only / Full Access) /status 查看会话配置、token 用量、账号状态 /statusline 交互式配置底部状态栏显示项 /debug-config 打印配置层级诊断(排查设置不生效问题) /feedback 向 OpenAI 维护者提交日志和诊断 /logout 清除本地凭证(共用机器时使用)
最被低估的命令:
/fork— 开发到一半想试另一个方案,/fork克隆当前对话为新线程,两条路径同时存在,互不影响。
12.2 CLI 子命令速查
codex # 启动交互 TUI 会话
codex "帮我分析这个项目的架构" # 带初始提示启动
codex exec "修复所有 ESLint 错误" # 非交互模式(类似 claude -p)
codex exec --json "列出所有 API 端点" # 输出 JSON(便于脚本解析)
codex exec -o result.txt "生成架构说明" # 结果保存到文件
codex review --base main # 对比 main 分支做代码审查
codex review --uncommitted # 只审查未提交的改动
codex resume # 打开会话选择器
codex resume --last # 直接恢复最近一次会话
codex resume --all # 显示所有目录的历史会话
codex fork # 从历史会话中选一个分叉
codex apply # 将最新 diff 以 git apply 方式应用
codex mcp add -- # 添加 MCP 服务器
codex mcp list # 列出所有 MCP 服务器
codex mcp remove # 移除 MCP 服务器
codex mcp-server # 将 Codex 本身作为 MCP 服务器运行
codex login # 管理登录认证
codex logout # 退出登录
codex features list # 列出所有功能开关
12.3 启动参数速查
核心参数
codex -m gpt-5.4 # 指定模型
codex -m gpt-5.4-mini # 使用轻量模型(省钱)
codex -i design.png "按图实现 UI" # 附加图片(支持多张 -i a.png,b.png)
codex -C /path/to/project # 指定工作根目录
codex --add-dir /path/to/lib # 授予额外目录写权限(Monorepo 必用)
codex -p fast # 使用命名配置 Profile
codex --search # 启用实时网络搜索
codex --oss # 使用本地 OSS 模型(LM Studio / Ollama)
权限 & 沙箱参数
# 沙箱模式
codex -s read-only # 只读(安全探索/代码审查)
codex -s workspace-write # 读写项目目录(日常开发默认)
codex -s danger-full-access # 完全文件系统 + 网络(谨慎使用)
# 授权策略
codex -a untrusted # 不可信命令都询问(默认)
codex -a on-request # 只在 Codex 主动要求时询问
codex -a never # 从不询问(失败静默返回给模型)
# 快捷组合
codex --full-auto # workspace-write + on-request(日常低摩擦)
codex --yolo # 无沙箱 + 无授权(仅用于 CI 容器!)
⚠️
--full-auto和--yolo的区别:--full-auto:保留沙箱,减少授权询问 → 适合日常开发--yolo:完全关闭沙箱和授权 → 只在隔离容器中使用,绝不在主机上用
12.4 模型与推理强度
模型 适合场景 速度 gpt-5.3-codex 代码生成(默认,专为编程优化) 中等 gpt-5.4 复杂推理、架构设计、多文件改动 较慢 gpt-5.4-mini 简单任务、快速修改、省钱 快
推理强度 适合场景 minimal 极简查询 low 简单问题、快速修复 medium 日常开发(默认) high 复杂调试、架构分析 xhigh 最难的问题
# 命令行指定
codex -m gpt-5.4 -c model_reasoning_effort="high"
# 会话中切换
/model # 交互式选择模型 + 推理强度
12.5 config.toml 配置 & Profiles
配置文件路径(优先级从高到低):
CLI 参数 --config 覆盖
↓
Profile 配置(--profile)
↓
项目配置(.codex/config.toml)
↓
用户配置(~/.codex/config.toml)
↓
系统配置(/etc/codex/config.toml)
↓
内置默认值
推荐的 ~/.codex/config.toml 起步配置:
model = "gpt-5.3-codex"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
web_search = "cached" # "cached" | "live" | "disabled"
model_reasoning_effort = "high"
personality = "pragmatic" # "friendly" | "pragmatic" | "none"
# 命名 Profile(推荐代替 Shell 别名)
[profiles.fast]
model = "gpt-5.4-mini"
model_reasoning_effort = "low"
[profiles.review]
sandbox_mode = "read-only"
approval_policy = "never"
[profiles.thorough]
model = "gpt-5.4"
model_reasoning_effort = "xhigh"
codex -p fast # 快速模式:轻量模型
codex -p review # 代码审查:只读
codex -p thorough # 深度模式:最强推理
Profiles 优于 Shell 别名:统一管理,修改一处生效,不用散落在
.zshrc各处。
12.6 AGENTS.md 配置文件
与 Claude Code 的 CLAUDE.md 等价。Codex 按以下顺序加载并合并(就近优先):
~/.codex/AGENTS.override.md ← 全局覆盖(最高优先)
~/.codex/AGENTS.md ← 全局默认
<项目根>/AGENTS.override.md
<项目根>/AGENTS.md
<子目录>/AGENTS.md ← 越近优先级越高
...直到当前工作目录
实用示例:
# 项目说明
## 构建命令
- 测试:npm test
- 构建:npm run build
- 检查:npm run lint -- --fix
## 代码规范
- 新文件使用 TypeScript strict mode
- 所有新函数都要写单元测试
- 不允许直接推送到 main 分支
- API 接口必须有 OpenAPI 文档
## 禁止事项
- 不要修改 .github/workflows/ 文件
- 不要直接访问数据库,必须通过 ORM
- 不要在源码中硬编码密钥
# 自动生成
/init
# 验证是否加载成功
codex --sandbox read-only --ask-for-approval never "总结你加载的指令"
12.7 会话恢复(Codex 的杀手级功能)
关闭会话后可以随时带着完整上下文回来接续工作:
codex resume # 打开会话选择器(推荐)
codex resume --last # 直接恢复最近一次会话
codex resume # 恢复指定会话
codex resume --all # 显示所有目录的历史会话
恢复内容包括: 完整对话历史、执行计划、已授权的操作记录、文件上下文。
# 实战:隔天继续昨天的重构
$ codex resume --last
你:从第二步继续重构,注意不要动迁移文件
Claude Code 原生不支持会话恢复,这是 Codex CLI 相比之下的独特优势。
12.8 非交互模式(CI/CD 利器)
# 基础用法
codex exec "修复所有失败的测试"
# JSON 输出(便于脚本解析)
codex exec --json "分析安全漏洞"
# 结果保存到文件
codex exec -o report.md "生成 API 文档"
# 强制 JSON Schema 输出
codex exec --output-schema schema.json "提取元数据"
# 接续上次会话
codex exec resume --last "加上错误处理"
# GitHub Actions 示例
codex exec --full-auto "运行测试并修复所有失败用例"
GitHub Actions 集成:
- name: Codex 代码审查
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
codex exec --json
--config preferred_auth_method="apikey"
"审查本次 PR 的安全和性能问题"
12.9 执行策略规则(精细权限控制)
Codex 独有的 Starlark 格式规则文件,可精确控制哪些命令允许/禁止/询问:
# ~/.codex/rules/default.rules
# 禁止直接推送(必须走 PR 流程)
prefix_rule(
pattern = ["git", "push"],
decision = "forbidden",
justification = "No direct pushes - use PR workflow"
)
# 危险操作需要人工确认
prefix_rule(
pattern = ["rm", "-rf"],
decision = "prompt",
justification = "Destructive operation needs confirmation"
)
# 测试规则是否生效
codex execpolicy check --pretty -- git push origin main
12.10 Skills 技能文件
# Skill 存放位置
~/.codex/skills/ # 或 ~/.agents/skills/ — 个人全局
.agents/skills/ # 项目级
# 在输入框用 $ 调用
$deploy-workflow
# 创建技能文件
mkdir -p ~/.agents/skills/deploy-workflow
---
name: deploy-workflow
description: 当需要部署或处理 CI/CD 任务时使用
---
## 部署步骤
1. 运行测试
2. 运行代码检查
3. git add && git commit
4. 推送到 staging 分支
12.11 MCP 集成
# CLI 方式添加(快速)
codex mcp add context7 -- npx -y @upstash/context7-mcp
codex mcp add playwright -- npx -y @anthropic/mcp-playwright
codex mcp list
# config.toml 方式(完整控制)
# ~/.codex/config.toml
[mcp_servers.github]
command = ["npx", "-y", "@modelcontextprotocol/server-github"]
enabled = true
startup_timeout_sec = 30
[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
Codex 还能作为 MCP 服务器被其他工具调用:
codex mcp-server # 以 stdio 方式启动 Codex MCP 服务器
12.12 通知 Hook(任务完成提醒)
# ~/.codex/config.toml
# macOS 系统通知
[notification_hook]
command = "osascript"
args = ["-e", "display notification "Codex 任务完成" with title "Codex CLI""]
12.13 与 Claude Code 对比
维度 Codex CLI Claude Code 语言实现 Rust TypeScript 模型 GPT-5 系列 + 本地 OSS Claude 系列(Opus/Sonnet/Haiku) 沙箱 OS 原生(Seatbelt/Bubblewrap) 配置式权限 项目配置 AGENTS.md + config.toml CLAUDE.md + settings.json 会话恢复 ✅ 原生支持跨目录恢复 ❌ 不原生支持 非交互模式 codex exec claude -p 代码审查 内置 codex review 通过对话 网络搜索 内置(cached / live) 内置 本地模型 ✅ LM Studio / Ollama ❌ MCP 角色 客户端 + 可作服务器 仅客户端 执行策略规则 ✅ Starlark 规则文件 ❌ 多 Agent 内置线程 + /agent Subagent 工具 定价 ChatGPT Plus 或 API Claude Pro 或 API
选哪个?
用 Codex:需要严格沙箱隔离、会话恢复、CI/CD 自动化、精细权限规则、本地模型
用 Claude Code:深度推理和复杂多步任务、前端 UI 开发、丰富 MCP 生态、多 Agent 编排
务实建议:两个都装,日常改动用 Codex(快且省),复杂架构用 Claude Code(深度强)
12.14 自动化(定时任务)
在 Codex App 的 Automations 标签页,可以设置:
运行哪个项目
用哪个 Prompt(可以调用 Skill)
运行频率(每天/每周)
在 worktree 还是本地环境运行
13. ⚠️ 安全与费用控制
Token 消耗管理
及时 /clear:不需要的历史对话立即清除
合理选择模型:简单任务用 Sonnet,复杂架构用 Opus
用
--effort:简单任务降低 effort 等级
/effort low # 快速简单任务
/effort medium # 日常编码(默认)
/effort high # 复杂问题
安全注意事项
--dangerously-skip-permissions要慎用:只在你完全信任 Claude 会做什么时才用,确保代码已 Git 管理MCP 权限审查:MCP 服务器能读写你的代码库,安装前确认来源可信
Skills 供应链安全:社区反映曾有恶意 Skills,只安装可信来源
定期
claude update:小版本更新往往有重要修复
上下文窗口使用规律
70% 以上 → Claude 开始丢失精度
85% 以上 → 幻觉概率显著增加
90% 以上 → 回答开始变得不稳定,必须 /clear
每日使用习惯(来自社区经验)
打开新项目/新任务 → 先
/clear复杂任务前 → 先
Shift+Tab进入 Plan Mode定期
claude update保持最新版本多用 Skills,少堆 CLAUDE.md
用
/sessions+/rename管理重要会话
14. 🌳 Git Worktree 并行开发完全指南
核心思想: 用 Git Worktree 给每个 AI 进程分配"专属办公桌",让多个 Claude 实例同时工作、互不干扰。这是外网顶级开发者(包括 Claude Code 作者团队)的日常工作方式。
14.1 为什么需要 Worktree?
不用 Worktree 直接多开终端会怎样?
问题 说明 文件"踩踏" AI-A 读第50行准备写入时,AI-B 已重构了前20行,导致行号错位、文件损坏 Git 状态混乱 所有改动混在一个 git status,无法区分哪些属于功能A、哪些属于功能B Dev Server 崩溃 并发写入不断触发 HMR,充斥着残缺代码片段,开发服务器持续报错 AI 上下文污染 两个 Claude 实例同操一个目录,上下文互相覆盖
用 Worktree 之后:
每个 Worktree 是独立物理目录,各 Claude 实例"视野"严格隔离
共享同一套
.git历史,节省磁盘空间(比git clone轻量得多)切换任务只需切换终端标签页,Claude 的上下文完整保留
14.2 核心概念图解
传统方式(只能串行):
my-app/
└── .git/ ← 每次只能 checkout 一个分支
Worktree 方式(可以并行):
my-app/ ← main 分支(共享 .git 数据库)
└── .git/
my-app-auth/ ← feature/auth 分支(独立文件)
my-app-hotfix/ ← hotfix/bug 分支(独立文件)
my-app-refactor/ ← refactor/utils 分支(独立文件)
14.3 基础命令速查
# 创建 Worktree(新建分支)
git worktree add ../myapp-auth -b feature/auth
# 创建 Worktree(已有分支)
git worktree add ../myapp-hotfix hotfix/bug-123
# 查看所有 Worktree
git worktree list
# 删除 Worktree
git worktree remove ../myapp-auth
# 强制删除(有未提交改动时)
git worktree remove --force ../myapp-auth
# 清理失效引用
git worktree prune
⚠️ 注意:同一个分支不能同时 checkout 到两个 Worktree。
14.4 标准并行工作流
第一步:为每个任务创建 Worktree
cd ~/projects/myapp
git worktree add ../myapp-auth -b feature/user-auth
git worktree add ../myapp-api -b refactor/api-cleanup
git worktree add ../myapp-hotfix -b hotfix/payment-bug
第二步:安装依赖(每个 Worktree 独立)
# 每个 Worktree 都需要单独安装依赖
cd ../myapp-auth && npm install
cd ../myapp-api && npm install
cd ../myapp-hotfix && npm install
💡 用
pnpm的 content-addressable 存储可大幅节省磁盘空间(多个 Worktree 共享依赖文件)。
第三步:开多个终端标签,各自启动 Claude
Tab 01:cd ../myapp-auth && claude → 专注:用户认证功能
Tab 02:cd ../myapp-api && claude → 专注:API 接口重构
Tab 03:cd ../myapp-hotfix && claude → 专注:紧急支付 Bug
Boris(Claude Code 作者团队)的实践: 日常使用 5 个以上编号终端标签并行运行 Claude 实例。
第四步:任务完成后,创建 PR 并清理
# 在各 Worktree 的终端中
gh pr create --draft --title "feat: 用户认证"
# 合并后清理
git worktree remove ../myapp-auth
git branch -d feature/user-auth
git worktree prune
14.5 典型使用场景
场景一:紧急热修复(不中断功能开发)
你正在深度开发新功能 → 突然收到生产 Bug 报警
❌ 旧工作流:git stash → 切分支 → 修Bug → 切回来 → pop stash
每次切换需要 5-15 分钟重建 Claude 的上下文
✅ Worktree 工作流:
# 一秒钟开新标签
git worktree add ../myapp-hotfix -b hotfix/payment-bug
cd ../myapp-hotfix && npm install
claude "修复生产环境支付重复扣款 bug,详见 gh issue #789"
# Claude 在独立目录里修完 bug
# 原来那个标签的功能开发会话,一个字都没变
场景二:A/B 方案对比
# 让两个 Claude 同时用不同方案实现同一功能
git worktree add ../myapp-search-es -b exp/search-elasticsearch
git worktree add ../myapp-search-pg -b exp/search-postgres
# Tab 1
cd ../myapp-search-es && claude
> 用 Elasticsearch 实现商品搜索,重点优化模糊匹配和性能
# Tab 2
cd ../myapp-search-pg && claude
> 用 PostgreSQL 全文检索实现商品搜索,重点保持简洁、无外部依赖
# 两种方案完成后,对比结果,合并最好的那个
场景三:隔离审查同事 PR
# 不影响自己当前工作,单独 checkout PR 分支审查
git fetch origin
git worktree add .worktrees/review-pr-423 origin/feature/new-dashboard
cd .worktrees/review-pr-423 && npm install
claude "审查这份代码,重点检查:安全漏洞、性能问题、测试覆盖率"
# 审查完毕
git worktree remove .worktrees/review-pr-423
14.6 Claude Code 原生 Worktree 支持
Claude Code 对 Worktree 有内置支持,无需手动执行 Git 命令:
# 直接告诉 Claude 在 Worktree 中工作
> 在一个 worktree 里修复这个 bug
# Claude 会自动:
# 1. 在 .claude/worktrees/ 下创建隔离目录
# 2. 从 HEAD 创建新分支
# 3. 在该目录中开始工作
# 4. 会话结束时提示是否保留或删除
# 也可以用斜杠命令
/worktree # 打开 Worktree 管理菜单
注意: 有改动的 Worktree 完成后会返回分支名和路径;无改动的会自动清理。
14.7 常见坑与解决方案
问题 原因 解决方案 fatal: already checked out 同一分支不能多次 checkout 新建分支或用 -d(detached HEAD) Module not found 各 Worktree 不共享 node_modules 在每个 Worktree 中单独 npm install 端口冲突 多个 Dev Server 争用同端口 PORT=3001 npm run dev 分配不同端口 .env 文件缺失 环境文件不会自动复制 手动 cp ../.env . 或写入启动脚本 Worktree 越堆越多 忘记清理 每周执行 git worktree prune
14.8 自动化脚本(存入 ~/.bashrc 或 ~/.zshrc)
# cw <分支名> — 一键创建 Worktree + 安装依赖 + 启动 Claude
cw() {
local branch=$1
local project=$(basename $(git rev-parse --show-toplevel))
local path="../${project}-${branch}"
git worktree add "$path" -b "$branch" 2>/dev/null ||
git worktree add "$path" "$branch"
cd "$path"
# 自动安装依赖
[ -f "package.json" ] && npm install
[ -f "requirements.txt" ] && pip install -r requirements.txt
[ -f "Cargo.toml" ] && cargo build
claude
}
# cwl — 查看所有 Worktree
alias cwl="git worktree list"
# cwr <路径> — 删除 Worktree 并询问是否删除分支
cwr() {
local path=$1
local branch=$(git -C "$path" branch --show-current)
git worktree remove "$path"
read -p "同时删除分支 $branch?(y/n) " -n 1 -r
echo
[[ $REPLY =~ ^[Yy]$ ]] && git branch -d "$branch"
}
使用示例:
cw feature-auth # 创建并进入 feature-auth 分支的 Worktree,启动 Claude
cwl # 查看所有 Worktree
cwr ../myapp-auth # 删除 Worktree
14.9 大型单仓库(Monorepo)稀疏检出
只检出需要的子目录,让 Claude 聚焦更少的文件,减少幻觉、提高精度:
# 创建不检出任何文件的 Worktree
git worktree add --no-checkout gwt/api-fix -b fix/api-bug
cd gwt/api-fix
git sparse-checkout init --cone
git sparse-checkout set packages/api/ packages/shared/
# 现在只有 api/ 和 shared/ 两个目录
claude "修复 packages/api/src/middleware/rateLimit.ts 中的限流 Bug"
14.10 最佳实践总结
✅ 要做 ❌ 不要做 用 项目名-功能描述 命名(如 myapp-auth-feature) 用 temp、test 等模糊名称 限制同时活跃的 Worktree 数量(3-5个) 同时开 8+ 个(管理混乱,磁盘暴增) 任务完成后立即清理 Worktree 堆积废弃的 Worktree 每个 Worktree 独立安装依赖 忘记 npm install 导致报错 将环境变量 .env 复制进去 忘记复制导致运行失败 每周执行 git worktree prune 让失效引用越堆越多
你的角色转变:
用 Worktree + Claude 并行工作后,你从「一行一行写代码的程序员」变成了「协调多个 AI 团队成员的软件工程经理」——审查代码、做架构决策、解决合并冲突,而 Claude 负责繁重的实现工作。
