Claude Code 使用手册¶
版本说明:本手册基于 2026 年 4 月最新官方文档编写 官方文档:code.claude.com/docs GitHub:github.com/anthropics/claude-code
目录¶
- Claude Code 是什么
- 安装与配置
- 快速上手
- 核心功能详解
- CLAUDE.md — 项目记忆文件
- 斜杠命令(Slash Commands)
- Skills — 技能系统
- Hooks — 事件钩子
- MCP — 外部工具集成
- Subagents — 子代理
- 多环境使用
- 高级用法与技巧
- 最佳实践
- 常见问题
- 本地 .claude 目录详解 — 全局 vs 项目配置
1. Claude Code 是什么¶
Claude Code 是 Anthropic 推出的 智能编程代理工具(Agentic Coding Tool)。它不是简单的代码补全,而是一个能够理解整个代码库、跨多文件编辑、执行命令并自主迭代的开发助手。
核心特点:
- 项目级理解:读取整个代码库,理解模块间依赖关系
- 自主执行:根据目标自动规划步骤、编辑文件、运行测试、修复错误
- 多环境支持:终端 CLI、VS Code、JetBrains、桌面应用、浏览器
- 自然语言驱动:用自然语言描述目标,Claude Code 负责实现
- 安全可控:默认需要人工确认后才执行修改操作
适用人群: 开发者、产品经理、技术创始人,甚至非技术人员都可以通过描述需求来构建工具。
Claude Code 本质上是一个运行在你本地终端(Terminal)里的智能体(Agent)。它的核心能力是读取、分析和修改你本地硬盘上的文件,以及执行终端命令。
2. 安装与配置¶
2.1 系统要求¶
- 操作系统:macOS、Linux、Windows(通过 WSL 或 CMD)
- Node.js:需要安装 Node.js 运行环境
- 账户:Claude Pro / Max 订阅,或 Anthropic API 密钥
2.2 安装方式¶
方式一:Homebrew(macOS / Linux,推荐)
| Bash | |
|---|---|
1 2 3 4 5 | |
当你敲下回车后,Homebrew 会在后台全自动完成:去 GitHub 拉取最新代码/二进制文件 -> 自动下载对应的依赖项 -> 自动放到系统统一的执行目录(如
/opt/homebrew或/usr/local) -> 自动帮你配置好环境变量。它的潜台词其实是:“这是最优雅、最干净、绝对不会弄脏你系统环境变量的傻瓜式一键安装法。”
方式二:WinGet(Windows)
| Bash | |
|---|---|
1 | |
它的核心使命和 Homebrew 一模一样:终结 Windows 传统那种“疯狂点击下一步”的图形化安装模式。
方式三:npm(Windows)
| Bash | |
|---|---|
1 | |
2.3 设置 API 密钥¶
| Bash | |
|---|---|
1 2 3 4 | |
2.4 验证安装¶
| Bash | |
|---|---|
1 2 3 4 5 | |
3. 快速上手¶
3.1 基本流程¶
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
3.2 常见使用场景¶
| 场景 | 示例提示词 |
|---|---|
| 构建功能 | "创建一个用户注册的 API 端点,并编写测试" |
| 修复 Bug | "运行时报了这个错误,帮我找到原因并修复" |
| 理解代码 | "解释一下认证系统的工作流程,指出关键文件" |
| 重构代码 | "把这个模块从 JavaScript 迁移到 TypeScript" |
| Git 操作 | "帮我创建一个带有清晰 commit message 的提交" |
| 测试 | "运行测试套件,修复失败的测试,直到全部通过" |
3.3 首次使用建议¶
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 | |
4. 核心功能详解¶
4.1 代码库扫描与理解¶
Claude Code 在开始工作前会搜索目录结构,理解模块之间的关系。它能追踪依赖、理解 import 链条,帮助新成员快速上手项目。
4.2 多文件编辑¶
Claude Code 可以同时创建和编辑多个文件,执行跨文件的大规模重构。例如一次性完成数据库模型修改、API 路由更新和前端组件适配。
4.3 命令执行¶
开发者不需要记住 git、kubectl 等 CLI 工具的复杂命令。描述意图后,Claude Code 会用正确的语法执行对应命令。
4.4 自动测试修复循环¶
当测试失败时,Claude Code 会读取错误信息、修复代码、重新运行测试,循环直到所有测试通过。还能监控 GitHub/GitLab 的 CI 管道并自动提交修复。
4.5 权限与安全¶
Claude Code 提供多层权限控制:
- 默认模式:每次修改文件或执行命令前都会请求确认
- 自主模式:内置分类器自动区分安全操作和风险操作
- 跳过权限模式:
claude --dangerously-skip-permissions(谨慎使用)
5. CLAUDE.md — 项目记忆文件¶
CLAUDE.md 是 Claude Code 最重要的配置文件,相当于项目的"宪法"。每次启动会话时 Claude 都会自动读取。
5.1 文件层级¶
| 位置 | 作用域 | 说明 |
|---|---|---|
~/.claude/CLAUDE.md |
全局 | 应用于所有项目 |
项目根目录/CLAUDE.md |
项目 | 应用于当前项目 |
子目录/CLAUDE.md |
子目录 | 自动发现并加载 |
5.2 推荐内容模板¶
| Markdown | |
|---|---|
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 | |
5.3 维护建议¶
- 对于个人项目,可以让 Claude 自动管理 CLAUDE.md
- 对于团队项目,建议手动维护,保持准确性
- 项目架构变更后及时更新
- 使用
/init命令可以交互式初始化
6. 斜杠命令(Slash Commands)¶
在 Claude Code 会话中输入 / 即可查看所有可用命令。目前有 60+ 内置命令 和 5 个内置 Skill。
6.1 常用内置命令¶
| 命令 | 说明 |
|---|---|
/help |
查看所有可用命令 |
/clear |
清除当前对话历史 |
/compact |
压缩对话以节省 token |
/init |
初始化 CLAUDE.md 文件 |
/branch |
分支当前对话到新会话 |
/context |
查看当前上下文信息 |
/hooks |
交互式配置钩子 |
/effort |
设置努力级别(max 需要 Opus 4.6) |
/bug |
向 Anthropic 报告 Bug |
/install-github-app |
安装 GitHub 自动 PR 审查 |
/team-onboarding |
生成团队入职引导文档 |
6.2 自定义命令¶
创建自定义斜杠命令非常简单:
项目级命令(团队共享):
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
个人命令(所有项目可用):
| Bash | |
|---|---|
1 2 3 4 | |
使用自定义命令:
| Bash | |
|---|---|
1 2 | |
注意:自定义命令已与 Skills 合并,建议新项目直接使用 Skills。
6.3 实战案例:为你的项目创建 3 个高频命令¶
下面以一个真实的 Web 项目为例,演示如何创建并使用自定义命令。
场景: 你有一个 claude_project 项目,日常工作中反复做三件事——代码审查、修 Issue、生成 Git 提交信息。与其每次都打一长串自然语言描述,不如把它们固化成斜杠命令。
第一步:创建命令目录
| Bash | |
|---|---|
1 2 | |
第二步:创建三个命令文件
命令 1:/review — 代码审查(带参数)
创建 .claude/commands/review.md:
| Markdown | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
$ARGUMENTS是一个特殊变量,会被你在斜杠命令后面输入的内容替换。
命令 2:/fix-issue — 修复 Issue(带参数)
创建 .claude/commands/fix-issue.md:
| Markdown | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
命令 3:/commit — 智能提交(无参数)
创建 .claude/commands/commit.md:
| Markdown | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
创建完成后的目录结构:
| Text Only | |
|---|---|
1 2 3 4 5 6 7 | |
第三步:使用命令
重启 Claude Code(/exit → claude),然后直接使用:
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
效果对比:
| 不用命令 | 用了自定义命令 | |
|---|---|---|
| 代码审查 | 每次要打 50+ 字描述审查要求 | /review 文件名 一句搞定 |
| 修 Issue | 要详细描述 Issue 内容和修复流程 | /fix-issue 编号 一步到位 |
| 提交代码 | 要告诉 Claude 用什么格式写 commit | /commit 无脑执行 |
| 一致性 | 每次描述不同,质量不稳定 | 每次都按固定流程执行 |
命令 vs Skill 怎么选? 命令适合"你主动触发"的场景(
/命令名);Skill 适合"Claude 自动识别"的场景(你用自然语言描述需求,Claude 自动匹配对应 Skill)。如果你希望说"帮我审查一下代码"时 Claude 自动加载审查规则,就用 Skill。如果你只想要一个快捷入口,用命令更简单。
7. Skills — 技能系统¶
Skills 是比斜杠命令更强大的扩展机制。与命令不同,Skills 可以被 Claude 自动识别和调用。
7.1 与斜杠命令的区别¶
| 特性 | 斜杠命令 | Skills |
|---|---|---|
| 触发方式 | 手动输入 /命令名 |
手动 + 自动识别 |
| 文件结构 | 单个 .md 文件 | 目录 + SKILL.md + 辅助文件 |
| 复杂度 | 简单提示词 | 完整工作流 |
| 位置 | .claude/commands/ |
.claude/skills/ |
7.2 创建 Skill¶
| Bash | |
|---|---|
1 | |
创建 .claude/skills/explain-code/SKILL.md:
| Markdown | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 | |
7.3 Skill 的自动调用¶
SKILL.md 中的 description 字段决定了 Claude 何时自动加载该 Skill。Claude 会根据对话内容判断是否匹配。描述的前 250 个字符最为关键,建议把核心用途放在最前面。
7.4 Skill 上下文管理¶
- Claude 在首次调用 Skill 后不会重新读取文件,因此要把持续有效的指令写成"常驻规则"
- 对话压缩(compaction)时,最近调用的 Skill 会被保留(每个最多 5000 token)
- 多个 Skill 共享 25,000 token 的总预算
7.5 实战案例:以 claude_project 项目为例¶
下面以一个真实项目 claude_project 来演示 Skill 的完整创建和使用过程。
项目结构(创建 Skill 之前):
| Text Only | |
|---|---|
1 2 3 | |
第一步:创建 Skill 目录和文件
在项目根目录下执行:
| Bash | |
|---|---|
1 2 | |
然后创建 .claude/skills/explain-code/SKILL.md,内容如下:
| Markdown | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
创建后的项目结构:
| Text Only | |
|---|---|
1 2 3 4 5 6 | |
第二步:使用 Skill
在项目目录启动 Claude Code 后,有两种触发方式:
| Bash | |
|---|---|
1 2 3 4 5 | |
当你用方式二提问时,Claude 会自动匹配 description 中的关键词("解释代码"、"怎么工作的"),自动加载这个 Skill,然后按照四步格式(类比→图表→讲解→陷阱)来回答。
第三步:验证 Skill 是否生效
如果 Skill 生效,Claude 的回答会严格包含四个部分。例如对 import.html 的解释可能是:
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
关键区别:如果没有这个 Skill,Claude 可能只会平铺直叙地解释代码。有了 Skill,回答会被强制规范为四段式结构,每次都一致、清晰。
7.6 实战案例:操作 GitHub 远程代码的 Skill¶
这个案例展示如何创建一个 Skill,实现"一句话完成 commit + push + 创建 PR"的完整 GitHub 工作流。
前提条件:
- 已安装 GitHub CLI(
gh)并完成认证:gh auth login - 项目已关联 GitHub 远程仓库
初始化并关联远程仓库
为了让后续的 PR(Pull Request)能成功创建,我们需要先在主分支(main)上推送一个初始记录打底:
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
第一步:创建 Skill 目录
| Bash | |
|---|---|
1 | |
第二步:创建 .claude/skills/git-ship/SKILL.md
| Markdown | |
|---|---|
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |
第三步:使用方式
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
实际执行效果示例:
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
提示:这个 Skill 结合了 Claude Code 的终端命令执行能力和 GitHub CLI,不需要额外安装 MCP 服务器。如果你需要更高级的 GitHub 操作(如管理 Issue、审查 PR、触发 Actions),请看下面的 github-ops Skill。
7.7 实战案例:全面操作 GitHub 远程代码的 Skill¶
上面的 git-ship 只解决了"提交推送创建 PR"这一个场景。如果你需要用自然语言全面操控 GitHub 远程仓库(Issue 管理、PR 审查、Actions 监控、Release 发布等),可以创建一个更完整的 Skill。
前提条件(同上):
- 安装 GitHub CLI:
winget install GitHub.cli(Windows)或brew install gh(macOS) - 登录认证:
gh auth login - 当前项目已关联 GitHub 远程仓库
创建 Skill:
| Bash | |
|---|---|
1 | |
写入 .claude/skills/github-ops/SKILL.md:
| Markdown | |
|---|---|
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | |
创建后的完整目录结构:
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 10 | |
使用示例:
| Bash | |
|---|---|
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 | |
更进一步 —— 在 GitHub 网页上直接 @claude:
除了本地 Skill,你还可以安装 Claude Code GitHub App,让 Claude 直接在 GitHub 网页上响应 Issue 和 PR 评论:
| Bash | |
|---|---|
1 2 | |
安装后效果:在 GitHub 的 Issue 或 PR 评论中写 @claude 帮我审查这个 PR 的安全性,Claude 就会自动分析代码并在 GitHub 上发布审查评论。
8. Hooks — 事件钩子¶
Hooks 的本质是:给 Claude 安排"自动保洁员"。你可以把 Claude 想象成一个跑腿员工,而 Hooks 就是你在它必经之路上设置的"触发器"——它每次干完活(写完代码),触发器就自动启动,替你打扫战场。
8.1 五大生命周期"检查站"¶
Claude Code 的 Hook 系统共有 5 个触发时机。在终端中输入 /hooks 可以查看当前配置状态:
| 事件 | 触发时机 | 用途举例 |
|---|---|---|
PreToolUse |
Claude 调用工具之前 | 安全锁:拦截 rm -rf、DROP TABLE 等高危命令 |
PostToolUse |
Claude 调用工具之后 | 善后员:自动格式化刚写好的代码 |
PostToolUseFailure |
Claude 执行命令失败时 | 救场员:编译失败时自动保存报错日志 |
Notification |
Claude 发送系统通知时 | 传话筒:长任务完成后弹出桌面通知 |
UserPromptSubmit |
你敲回车后,消息发给模型之前 | 隐形外挂:自动把当前 git 分支名拼到你的提问里 |
/hooks菜单是只读的。要添加或修改 Hook,需要直接编辑settings.json文件。
8.2 配置方式¶
方式一:交互式查看
| Bash | |
|---|---|
1 2 | |
方式二:编辑 settings.json(核心方式)
Hook 配置写在项目的 .claude/settings.json 或全局的 ~/.claude/settings.json 中:
| JSON | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
逐层拆解这段配置:
"PostToolUse"— 触发时机:Claude 干完活之后"matcher": "Write(*.py)"— 触发雷达:只要 Claude 写入了.py文件就出动"command": "python -m black \"$file\""— 具体动作:调用 Black 格式化工具,$file会被自动替换为刚写好的文件名- 第二条规则同理,针对
.ts文件使用 Prettier 格式化
8.3 实战案例:Python 代码自动格式化¶
下面用一个完整的实战流程演示 Hook 的部署和测试。
前提条件:安装 Black
Claude Code 本身不内置任何格式化工具。Hook 的 command 字段会被原封不动地扔给你的系统终端执行。所以你必须先安装 Black:
| Bash | |
|---|---|
1 | |
如果你不装 Black,Hook 执行时会报错
No module named black,代码格式化就直接中断了。如果你想用其他工具(如autopep8或yapf),需要同步修改command字段。
第一步:创建配置文件
在项目目录下创建 .claude/settings.json:
| JSON | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
⚠️ 文件名必须是
settings.json(带 s),不是setting.json。差一个字母 Claude 就会完全忽略它。
第二步:重启 Claude Code 并验证
| Bash | |
|---|---|
1 2 3 4 5 6 7 | |
如果显示 0,说明 JSON 格式有误(少逗号、多逗号、用了中文引号等)。JSON 对格式要求极其严格,建议直接复制上面的纯净版配置。
第三步:测试——让 Claude 写一段"故意很乱"的代码
| Bash | |
|---|---|
1 2 3 | |
观察执行流程:
| Text Only | |
|---|---|
1 2 3 4 5 6 7 | |
第四步:验证结果
不要只看终端输出!终端显示的是 Claude 写入那一瞬间的快照。请直接用编辑器打开 test_hook.py,查看真实文件内容——它应该已经被 Black 整理成了教科书级的完美排版。
8.4 踩坑排查指南¶
| 现象 | 原因 | 解决办法 |
|---|---|---|
/hooks 显示 0 |
文件名是 setting.json(缺少 s) |
改名为 settings.json |
/hooks 显示 0 |
JSON 语法错误(多/少逗号、中文引号) | 复制上面的纯净版配置 |
| Hook 加载了但代码没变 | 没安装 Black | 执行 pip install black |
| Hook 加载了但代码没变 | 代码有致命语法错误(如 Python 缩进完全丢失) | Black 只能格式化"能解析"的代码,无法修复语法错误 |
| 终端看到乱代码 | 你看到的是写入瞬间的快照 | 直接用编辑器打开真实文件查看 |
matcher 匹配不上 |
Windows 路径格式问题 | 把 matcher 改为 "*" 进行暴力匹配测试 |
Black 是"保洁员",不是"急救医生":它能把"长得丑但能跑"的代码排版漂亮,但如果代码有致命语法错误(比如 Python 缩进完全丢失),Black 会直接报错
Cannot parse,拒绝处理。所以测试时要确保代码语法正确、只是排版丑。
8.5 暴力排查模式¶
如果正常配置始终不生效,可以用这个"宁可错杀一千"的极端配置来排查:
| JSON | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
这里做了两个简化:把 matcher 改成 *(任何工具操作都触发),把 $file 直接写死为 test_hook.py(排除变量解析问题)。如果这个配置能生效,就说明之前的问题出在 matcher 匹配规则或 $file 变量解析上。
9. MCP — 外部工具集成¶
MCP(Model Context Protocol,模型上下文协议)是 Claude Code 最硬核的能力之一。它给 Claude 装上了真正的"手"和"眼睛"——让原本只能读写本地文件的 AI,可以去控制浏览器、查数据库、调用外部 API。
9.1 核心概念¶
可以把 MCP 理解为 Claude Code 的"万能适配器":
| Text Only | |
|---|---|
1 2 3 4 | |
安装一个 MCP 服务器后,Claude 就能自动使用该工具的所有功能,你甚至不需要手动调用命令——用自然语言描述需求即可。
9.2 添加 MCP 服务器¶
在系统终端(不是 claude > 提示符下)执行安装命令:
| Bash | |
|---|---|
1 2 | |
9.3 验证安装¶
安装完成后,进入 Claude Code 并检查:
| Bash | |
|---|---|
1 2 | |
如果能在列表里看到 /mcp__playwright__... 开头的命令,说明挂载成功。
9.4 实战案例:用 Playwright 控制浏览器¶
这是最容易验证 MCP 是否生效的测试——让 Claude 自己打开浏览器、抓取网页内容、截图保存。
前提条件: 电脑已安装 Node.js(因为 npx 是 Node.js 的包运行工具)。
第一步:安装 MCP 服务器
| Bash | |
|---|---|
1 2 | |
第二步:验证挂载
| Bash | |
|---|---|
1 2 3 | |
第三步:用自然语言指挥 Claude 操控浏览器
你完全不需要手动输入那些 /mcp__xxx 命令。MCP 的精髓在于 Claude 会自动挑选工具:
| Bash | |
|---|---|
1 2 3 | |
观察执行流(见证奇迹的时刻):
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | |
看着命令行里的 AI 真的跑去控制浏览器截图,那种感觉非常像在指挥一个真实的赛博员工。
9.5 Windows 环境踩坑:CLAUDE_CODE_GIT_BASH_PATH¶
在 Windows 上安装 MCP 后,可能出现 /mcp 显示 No MCP servers configured 的情况。这通常是因为 Claude Code 找不到 bash.exe 来启动 MCP 服务器进程。
永久解决方案(推荐):
打开 PowerShell,执行:
| PowerShell | |
|---|---|
1 2 3 4 5 | |
执行完后必须关掉所有终端窗口,重新打开才能生效。
临时解决方案:
在当前终端中执行:
| Bash | |
|---|---|
1 | |
然后重新输入 claude 唤醒。
9.6 常用 MCP 服务器¶
| 服务器 | 安装命令 | 功能 |
|---|---|---|
| Playwright | claude mcp add playwright npx -y @playwright/mcp@latest |
浏览器自动化、截图、DOM 操作 |
| GitHub | 通过 /install-github-app 安装 |
PR 管理、Issue 操作、代码审查 |
| Supabase | claude mcp add --transport stdio supabase ... |
数据库操作 |
| Airtable | claude mcp add --transport stdio airtable ... |
数据表管理 |
9.7 排坑指南¶
| 现象 | 原因 | 解决办法 |
|---|---|---|
| 安装时报错 | 没装 Node.js | 安装 Node.js(npx 依赖它) |
| 安装时超时 | 国内网络拉取 npm 包慢 | 挂代理或切换淘宝镜像源 |
/mcp 显示空列表 |
Windows 找不到 bash.exe | 设置 CLAUDE_CODE_GIT_BASH_PATH 环境变量 |
| 提示成功但工具不可用 | 安装成功但服务器没启动 | 退出 Claude 重新进入 |
10. Subagents — 子代理¶
创建子代理,本质上就是在项目里"雇佣"一批拥有特定专业技能、且严格遵守你设定规范的虚拟员工。主 Claude 负责理解你的意图和分发任务,子代理在独立的上下文窗口中干脏活累活,干完只把结论汇报回来。
10.1 为什么需要子代理?——"上下文污染"问题¶
假设你正在让主 Claude 帮你写一个复杂的 React 页面,你们已经聊了 20 轮,它的脑子里装满了组件状态和 CSS 样式。这时候你突然让它去分析一个几百行的复杂 SQL 语句:
不用子代理的后果: 主 Claude 为了塞下 SQL 知识,可能会把之前记住的 React 组件细节给"挤出"上下文窗口。等你再让它改前端,它就懵了——它忘了之前的组件结构。
用了子代理的好处: 主 Claude 像大老板一样,在后台开一个完全独立的、干净的新上下文,把 SQL 任务扔给【数据库专家】处理。专家处理完,只把结论汇报给主 Claude。主 Claude 脑子里的 React 代码完好无损。
| Text Only | |
|---|---|
1 2 3 4 5 | |
10.2 创建子代理¶
在 .claude/agents/ 目录中创建 Markdown 文件。文件名就是代理的代号。
项目级代理(团队共享,提交到 Git):
| Bash | |
|---|---|
1 | |
个人代理(所有项目可用):
| Bash | |
|---|---|
1 | |
10.3 实战案例:数据库专家代理¶
创建文件 .claude/agents/db-expert.md:
| Markdown | |
|---|---|
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 | |
测试——派发任务:
重启 Claude Code(/exit 然后 claude),让它重新加载代理配置,然后输入:
| Bash | |
|---|---|
1 2 3 | |
观察回复结构——如果代理配置成功,回答会严格遵循四部分格式:
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
关键区别:没有子代理时,Claude 会自由发挥,格式不固定。有了子代理,它的回复被强制规范为你设定的四段式结构,每次都一致、严谨。
10.4 实战案例:安全审计代理¶
创建文件 .claude/agents/security.md:
| Markdown | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
注意两个高级配置项:
tools: ["Read", "Grep", "Glob"]— 限制代理只能读取和搜索代码,不能写入或执行命令。安全审计员不需要写文件的权限。model: haiku— 使用更轻量、更便宜的 Haiku 模型。只读分析任务不需要 Opus 级别的重型模型,省钱又快。
测试:
| Bash | |
|---|---|
1 2 | |
10.5 子代理的工作原理¶
当主 Claude 调用子代理时,底层发生的事情是:
- 主 Claude 开辟一个全新的独立上下文窗口(子代理的"工位")
- 把你的问题 + 子代理的 Markdown 指令一起塞进去
- 子代理在隔离环境中独立工作,不会污染主会话的上下文
- 工作完成后,子代理压缩结论并汇报给主 Claude
- 主 Claude 把结论转述给你
这就是"主代理解析意图,子代理干脏活累活"的架构模式。
10.6 代理选型指南¶
| 场景 | 推荐代理 | 工具权限 | 模型建议 |
|---|---|---|---|
| 数据库优化 | db-expert | Read, Bash | Sonnet |
| 安全审计 | security | Read, Grep, Glob | Haiku |
| 代码审查 | code-review | Read, Grep | Haiku |
| 测试用例编写 | test-writer | Read, Write, Bash | Sonnet |
| 文档生成 | doc-writer | Read, Write | Sonnet |
| 前端 UI 设计 | ui-designer | Read, Write | Opus |
11. 多环境使用¶
11.1 终端 CLI¶
最完整的功能体验,适合专业开发者:
| Bash | |
|---|---|
1 2 | |
11.2 VS Code 扩展¶
在扩展市场搜索 "Claude Code" 安装,提供:
- 内联 diff 显示
@提及文件- 计划审查
- 对话历史
安装后按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Windows/Linux),输入 "Claude Code" 即可开始。
11.3 JetBrains 插件¶
在 JetBrains 插件市场搜索 "Claude Code" 安装。
11.4 桌面应用¶
从官网下载独立桌面应用,支持:
- 可视化 diff 审查
- 多会话并行
- 定时任务调度
- 云端会话
11.5 Web 版¶
访问 claude.ai/code,无需本地安装:
- 适合长时间运行的任务
- 操作不在本地的代码仓库
- 多任务并行
12. 最佳实践¶
12.1 日常工作流¶
- 频繁清除对话:开始新任务前执行
/clear,避免无关上下文消耗 token - 维护 CLAUDE.md:保持项目上下文的准确和精简
- 善用 Skills:为重复性工作流创建 Skill,比每次重新描述高效得多
13.2 提示词技巧¶
| 技巧 | 示例 |
|---|---|
| 明确目标 | ✅ "创建用户注册 API,包含邮箱验证和速率限制" |
| 避免模糊 | ❌ "帮我改改这个代码" |
| 指定约束 | ✅ "使用现有的 Express 路由风格,不要引入新依赖" |
| 分步执行 | ✅ "首先分析当前架构,然后提出重构方案,最后执行" |
12.3 团队协作¶
- 在
.claude/目录中共享命令、Skills 和 Hooks 配置 - 将 CLAUDE.md 纳入版本控制
- 统一 Hooks 配置确保代码质量
13.4 安全建议¶
- 生产环境建议使用默认的权限确认模式
- 定期审查 MCP 服务器的访问权限
- 不要在 CLAUDE.md 中存放敏感信息(API 密钥等)
- 使用
--allowedTools限制可用工具范围
13. 常见问题¶
Q: Claude Code 和代码补全工具(如 Copilot)有什么区别?¶
代码补全工具在你打字时建议下一行代码。Claude Code 在项目层面工作——它理解整个代码库,跨多文件规划和执行修改,并能自主运行测试和修复错误。
Q: 如何更新 Claude Code?¶
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 | |
Q: 如何减少 token 消耗?¶
- 开始新任务前使用
/clear - 使用
/compact压缩长对话 - 保持 CLAUDE.md 精简
- 避免在上下文中加载不相关的文件
Q: 如何把本地项目关联到 GitHub 远程仓库?¶
这是使用 github-ops 和 git-ship 等 Skill 的前提条件。分两种情况:
情况一:GitHub 上还没有仓库(推荐,最简单)
| Bash | |
|---|---|
1 2 3 4 5 6 7 | |
情况二:已在 GitHub 网页上创建了仓库(带 README/.gitignore)
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
⚠️ 注意分支名:旧版 Git 默认分支叫
master,GitHub 默认叫main。如果git push -u origin main报错src refspec main does not match any,说明你本地分支还叫master,先执行git branch -M main改名。
Q: 如何报告 Bug?¶
在 Claude Code 会话中使用 /bug 命令,或在 GitHub 仓库提交 Issue。
14. 本地 .claude 目录详解 — 全局 vs 项目配置¶
安装 Claude Code 后,系统中实际存在两个 .claude 目录。理解它们的区别和协作关系,是用好 Claude Code 的关键。
14.1 全局目录¶
这是你的个人全局配置中心,所有项目共享。以我个人实际目录为例:
| Text Only | |
|---|---|
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | |
14.2 项目目录¶
这是项目级配置,放在项目根目录下,通常提交到 Git,团队成员共享。
| Text Only | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
14.3 全局 vs 项目:如何选择?¶
核心原则:全局放"个人偏好",项目放"团队规范"。
| 配置内容 | 放全局 ~/.claude/ |
放项目 .claude/ |
|---|---|---|
| 你个人的编码习惯和风格偏好 | ✅ | |
| 默认使用的模型(如 Sonnet) | ✅ | |
通用安全规则(禁止 rm -rf) |
✅ | |
| 你个人常用的 Skill(如安全审查) | ✅ | |
| 项目的技术栈和架构说明 | ✅ | |
| 项目的构建/测试/部署命令 | ✅ | |
| 团队统一的代码规范 | ✅ | |
| 项目特有的 Skill 和命令 | ✅ | |
| 项目的权限白名单/黑名单 | ✅ | |
| MCP 服务器配置 | 看情况 | 看情况 |
配置优先级(从低到高):
| Text Only | |
|---|---|
1 2 3 4 5 6 7 | |
简单记忆:越具体的配置优先级越高。项目配置覆盖全局配置,个人覆盖覆盖团队配置,命令行参数覆盖一切。
14.4 实际操作建议¶
场景一:个人开发者,只有一个人用
以全局配置为主,把常用规范写在 ~/.claude/CLAUDE.md 里,省去每个项目重复配置。
| Markdown | |
|---|---|
1 2 3 4 5 6 | |
场景二:团队协作,多人共用项目
以项目配置为主。项目级的 CLAUDE.md 和 .claude/settings.json 提交到 Git,确保每个人拿到一致的配置。个人特殊需求写在 .local 文件中。
| Bash | |
|---|---|
1 2 3 4 5 6 7 | |
场景三:同时有全局和项目配置
两者会合并加载。Claude 启动时会同时读取全局 CLAUDE.md 和项目 CLAUDE.md,规则叠加生效。如果有冲突,项目级配置胜出。
| Text Only | |
|---|---|
1 2 3 4 5 6 7 | |
14.5 关键提醒¶
- 全局 CLAUDE.md 是你的"个人工具箱"——队友看不到它,所以项目的 CLAUDE.md 必须自成体系,不能依赖你的全局配置
- MEMORY.md 是 Claude 的"自动笔记本"——存储在
~/.claude/projects/<项目>/memory/中,Claude 在工作中会自动往里写东西,可以用/memory命令查看和编辑 - 不要手动修改
history.jsonl和sessions/——这些是内部数据格式,手动修改可能导致会话损坏 settings.local.json会被自动 gitignore——放心写你的个人配置,不会影响队友
附录:快捷键速查¶
| 快捷键 | 说明 |
|---|---|
Ctrl + C |
中断当前操作 |
/clear |
清除对话 |
/compact |
压缩对话 |
/help |
查看帮助 |
/branch |
分支对话 |
@文件名 |
引用特定文件 |
📖 更多信息
- 官方文档:code.claude.com/docs
- GitHub 仓库:github.com/anthropics/claude-code
- Anthropic 产品页:anthropic.com/product/claude-code