在AI辅助开发日益普及的今天,Claude Code 作为一款以项目目录为操作沙箱的AI Agent,凭借灵活的配置、强大的场景适配能力,成为很多开发者提升效率的得力工具。本文将从核心机制、配置案例到实操场景,全方位拆解 Claude Code,帮你快速上手、熟练运用。
一、核心机制与文件体系
🧠 核心运行机制
Claude Code 的核心定位是「以项目目录为操作沙箱的AI Agent」,它不绑定特定的 Claude 模型,可通过配置环境变量接入任何兼容API的模型(如通义千问、智谱AI等),其每次会话的完整流程如下:
-
加载记忆文件(CLAUDE.md),获取项目背景、开发规范等核心信息;
-
读取代码库,快速解析现有项目结构与代码逻辑;
-
规划执行步骤,并调用工具(读文件、写文件、执行终端命令等);
-
根据当前模式,等待用户确认后执行,或自动完成操作。
📁 完整文件体系与详细说明
Claude Code 的配置文件分为项目级、用户级、组织级,不同层级的文件各司其职,协同保障开发效率。以下是完整的文件体系及核心作用解析:
| 文件路径 | 核心作用 | 补充说明 |
|---|---|---|
| your-project/CLAUDE.md | 项目级记忆文件(核心) | 每次启动都加载,记录项目背景、技术栈、代码规范、禁止操作等 |
| your-project/CLAUDE.local.md | 个人本地配置文件 | 不提交git,记录本地数据库地址、测试账号、沙箱URL等个性化配置 |
| your-project/.claude/ | Claude Code 配置根目录 | 存放项目级配置、SubAgent定义、分文件规则等 |
| your-project/.claude/CLAUDE.md | 项目级记忆文件(备选) | 与根目录CLAUDE.md二选一即可,功能完全一致 |
| your-project/.claude/settings.json | 项目级共享配置 | 提交git,供团队共享,配置权限规则、Hooks、MCP Server等 |
| your-project/.claude/settings.local.json | 本地个人配置 | 自动加入.gitignore,不影响团队配置 |
| your-project/.claude/agents/ | SubAgent 定义目录 | 存放专项助手(如代码审查),独立上下文,仅汇报最终结果 |
| your-project/.claude/rules/ | 分文件管理规则目录 | 大项目推荐使用,按前端、后端等维度拆分规则,按需加载 |
| ~/.claude/ | 用户级配置目录(跨所有项目生效) | 存放个人偏好、用户级配置、Agent Skill定义等 |
| ~/.claude/CLAUDE.md | 个人偏好配置 | 每次启动任何项目都加载,记录编码风格、沟通方式等 |
| ~/.claude/settings.json | 用户级全局配置 | 对所有项目生效,统一配置个人常用参数 |
| ~/.claude/skills/ | Agent Skill 定义目录 | 存放轻量快捷技能(如每日日报),共享主对话上下文 |
| /Library/Application Support/ClaudeCode/CLAUDE.md | 组织级策略文件 | 优先级最高,不可覆盖,用于IT部署、组织级规范约束 |
🔃 配置优先级(从高到低)
当不同层级的配置出现冲突时,将按照以下优先级生效,确保配置的灵活性与规范性:
-
组织策略(Managed):/Library/Application Support/ClaudeCode/CLAUDE.md
-
命令行参数(临时覆盖):启动时输入的终端命令参数
-
Local(本地配置):settings.local.json / CLAUDE.local.md
-
Project(项目配置):settings.json / CLAUDE.md
-
User(用户配置):~/.claude/ 目录下的所有配置
⏱️ 各文件加载时机一览
掌握文件加载时机,能更好地理解 Claude Code 的执行逻辑,避免配置无效或冲突:
| 文件名称 | 加载时机 |
|---|---|
| 根目录 CLAUDE.md | 每次启动 Claude Code,全量读入上下文 |
| ~/.claude/CLAUDE.md | 每次启动任何项目时都会加载 |
| 子目录 CLAUDE.md | Claude Code 读取该目录文件时,按需加载 |
| .claude/settings.json | 启动时加载,影响项目的权限控制和Hook执行 |
| skills/xxx/SKILL.md | 意图匹配时自动调用,或通过命令手动触发,动态注入上下文 |
| agents/xxx.md | 任务委托时,创建独立上下文并加载该SubAgent |
| Auto Memory(自动记忆) | 每次启动加载前200行,由Claude自动维护 |
二、关键配置和实践案例
了解完文件体系后,结合实际开发场景配置文件,才能真正发挥 Claude Code 的价值。以下是各核心配置文件的实战案例,可直接参考复用。
📄 CLAUDE.md — 项目的「开发指南」
CLAUDE.md 是项目的核心配置文件,相当于告诉 Claude Code「这是什么项目、该怎么干活」,所有开发规范、项目背景都在这里定义。
案例1:电商订单项目规范约束
# CLAUDE.md
## 项目背景
本项目为面向电商平台的订单管理系统,涉及支付、物流接口对接,需保证数据一致性。
## 技术栈
- 后端:Node.js + Express + Sequelize
- 数据库:PostgreSQL 14,所有写操作必须加事务
- 前端:Vue3 + Vite + Pinia
## 代码规范
- 所有涉及金额的字段必须做精度校验(保留2位小数)
- 禁止硬编码常量,统一放在 config/constants.js 中
- 新增接口必须添加 JWT 权限校验,无需校验的接口需标注原因
## 测试要求
- 跑测试命令:npm run test:order
- 接口测试覆盖率需达到 80% 以上
效果:Claude Code 每次启动后,写代码会自动遵守这些规范,无需每次手动提醒「记得加事务」「不要硬编码」,大幅减少沟通成本。
案例2:防止 Claude 误操作
## ⚠️ 禁止操作
- 禁止修改 `db/migrations/` 下的历史迁移文件,只能新增
- 不要删除 `config/production.js`,这是生产环境核心配置
- 提交代码前必须运行 `npm run lint` 修复代码格式问题
效果:Claude Code 会主动识别这些禁止操作,在执行相关操作前自动规避风险,避免误删核心文件、破坏生产配置。
📄 CLAUDE.local.md — 你的「本地配置备忘录」
CLAUDE.local.md 用于存储个人本地开发环境的差异化配置,不提交git,避免本地配置污染团队仓库,适合多人协作场景。
案例:本地开发环境差异化配置
# CLAUDE.local.md(不提交 git)
## 本地环境
- 本地数据库:postgresql://postgres:123456@localhost:5432/order_dev
- 测试账号:test_admin / Test@456
- 本地 Mock 支付服务器:http://localhost:9000
## 调试说明
- 启动 order-service 前需先启动 `npm run mock:pay`
- 调试时可通过 http://localhost:3000/dev 查看接口日志
效果:同事拉取代码后,可创建自己的 CLAUDE.local.md 配置本地环境,你的本地数据库地址、测试账号等信息不会影响团队其他成员。
📄 .claude/settings.json — 团队的「权限与自动化配置」
该文件是团队共享的配置文件,主要用于定义权限控制和自动化工作流(Hook),规范团队开发行为,提升协作效率。
案例1:Hook 自动代码校验与修复
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "cat | jq -r '.file_path' | xargs eslint --fix"
}
]
}
]
}
}
效果:Claude Code 每次写完 JS/TS 文件后,会自动触发 PostToolUse Hook,执行 ESLint 校验并自动修复格式问题,确保团队代码格式统一。
案例2:危险操作权限拦截
{
"permissions": {
"deny": [
"Bash(rm -rf /)",
"Bash(TRUNCATE TABLE*)",
"Bash(git rebase --force)"
]
}
}
效果:即使 Claude Code 判断需要执行删除、清空表、强制变基等危险操作,这些命令也会被直接拦截,避免误操作导致项目崩溃、数据丢失。
📄 ~/.claude/CLAUDE.md — 跨项目的「个人开发习惯」
该文件是用户级配置,全局生效,用于定义个人编码风格、沟通方式等偏好,无论切换到哪个项目,Claude Code 都会遵守这些习惯,无需重复设置。
案例:个人编码风格 + 沟通方式
# ~/.claude/CLAUDE.md(全局生效)
## 我的编码偏好
- 代码注释用中文,变量名和函数名用英文驼峰命名
- 函数超过 40 行提示我拆分,提高可读性
- 生成 SQL 时默认加上 LIMIT 100,避免全表查询
## 沟通方式
- 回答问题先给结论,再分点解释原因
- 不确定的方案列出 2 个选项并说明优缺点,让我选择
效果:无论你切换到哪个项目,Claude Code 都会按照你的编码偏好写代码,按照你的沟通方式回复问题,贴合个人使用习惯。
📄 agents/ — 独立的「专项辅助工具」
agents 目录用于存放 SubAgent(专项助手),每个 SubAgent 拥有独立的上下文,仅汇报最终结果,适合处理任务量大、不希望污染主对话上下文的场景(如代码审查、全量测试)。
案例:接口性能审查 SubAgent
文件路径:.claude/agents/performance-reviewer.md
---
name: performance-reviewer
description: 接口性能审查专家,当用户要求性能测试或上线前调用
model: claude-sonnet-4-5
tools: [Read, Bash]
color: blue
---
## 职责
对指定接口模块进行性能扫描,重点检查:
1. **查询性能**:是否存在未加索引的慢查询、全表扫描
2. **接口响应**:接口响应时间是否超过 500ms,是否需要分页
3. **资源占用**:接口调用时 CPU、内存占用是否异常
## 输出格式
### 性能审查报告
**扫描范围**:xxx
**发现问题**:
- 🔴 高危:[描述 + 文件位置 + 影响]
- 🟡 中危:[描述 + 文件位置 + 优化建议]
**优化方案**:...
实际效果
你:帮我审查一下 order-api 模块的接口性能
Claude Code 启动 performance-reviewer(蓝色标注)
→ SubAgent 读取 25 个接口文件,模拟 1000 次请求测试...
→ 主对话上下文完全没有变化
SubAgent 完成,汇报结果:
🔴 高危:OrderController.java:67 订单列表查询未加索引,响应时间 800ms
🟡 中危:订单详情接口未分页,大数据量下响应缓慢,建议添加分页参数
📄 skills/ — 轻量的「快捷操作技能」
skills 目录用于存放 Agent Skill(快捷技能),与 SubAgent 不同,Skill 共享主对话上下文,适合处理与当前对话强关联、影响小的轻量任务(如写接口文档、生成测试用例)。
案例:接口文档生成 Skill
文件路径:~/.claude/skills/api-doc/SKILL.md
---
name: api-doc
description: 根据当前接口代码,生成标准化的接口文档,包含请求参数、响应格式、错误码
---
## 输出格式
### 📄 接口文档 {apiName}
**接口路径**:/api/{path}
**请求方法**:GET/POST/PUT/DELETE
**请求参数**:
| 参数名 | 类型 | 必选 | 描述 |
|--------|------|------|------|
| param1 | String | 是 | 描述信息 |
**响应格式**:
{
"code": 200,
"message": "success",
"data": {}
}
**错误码说明**:
- 400:参数错误
- 401:未授权
- 500:服务器内部错误
触发方式
-
自动识别:输入「帮我生成这个接口的文档」,Claude Code 自动调用该 Skill;
-
手动触发:输入「/api-doc /api/order/list 订单列表接口」,直接生成标准化文档。
为什么用 Skill 而不用 SubAgent?因为接口文档需要结合当前接口的代码逻辑(主对话上下文),共享上下文能确保文档内容准确,而 SubAgent 的独立上下文无法获取这些信息。
🔗 综合场景:所有配置协同工作
以下是一个完整的开发流程,展示所有配置如何协同工作,提升开发效率:
1. 启动 claude
↓ 加载 CLAUDE.md → 知道:电商订单项目、禁止硬编码
↓ 加载 ~/.claude/CLAUDE.md → 知道:驼峰命名、回答先给结论
2. 你说:"帮我做订单列表接口"
↓ Claude Code 写代码(遵守 CLAUDE.md 规范)
↓ 写完触发 PostToolUse Hook → 自动跑 ESLint 修复格式
3. 你说:"帮我做接口性能审查"
↓ 启动 performance-reviewer SubAgent(独立上下文)
↓ 审查完毕,主对话收到报告,上下文无影响
4. 你说:"生成这个接口的文档"
↓ 调用 api-doc Skill(共享上下文)
↓ 根据接口代码生成标准化文档
5. 同事拉代码,用他自己的 CLAUDE.local.md
↓ 本地环境配置各自独立,互不影响
总结:一句话记住每个文件
| 文件名称 | 一句话定位核心作用 |
|---|---|
| CLAUDE.md | 告诉 Claude "这是什么项目、按什么规范干活" |
| CLAUDE.local.md | 告诉 Claude "我本地环境的特殊配置" |
| .claude/settings.json | 告诉 Claude "团队的权限和自动化规则" |
| ~/.claude/CLAUDE.md | 告诉 Claude "我个人的开发习惯" |
| agents/*.md | 给 Claude 配备"专项工具",大任务独立执行 |
| skills/*.md | 给 Claude 配备"快捷技能",小任务直接调用 |
三、高频场景汇总
掌握以下实操场景,能让 Claude Code 充分发挥作用,覆盖开发全流程,大幅提升开发效率。
🏗️ 场景一:项目快速初始化 / 架构重构
适用时机:从零开始创建项目,或把旧架构升级为现代化框架(如jQuery项目升级为Vue3+TS+Vite)。
典型操作
-
直接描述项目需求和技术栈,Claude Code 自动生成代码、目录结构;
-
更改架构前,先切换到 Plan Mode 讨论方案,确认方案可行后再执行,避免无效开发。
关键技巧:模式切换
# 默认模式(每次改文件都问你)→ 自动模式(不再打扰)→ Plan Mode(只聊不动手)
Shift + Tab # 循环切换三种模式
| 模式 | 显示标识 | 说明 |
|---|---|---|
| 默认模式 | ? for shortcuts | 每次写文件前询问用户,最稳妥,适合新手 |
| 自动模式 | accept edits on | 自动执行操作,不打扰用户,效率最高,适合熟悉项目后使用 |
| Plan Mode | plan mode on | 只讨论开发方案,不修改任何文件,适合架构设计、方案评审 |
🐛 场景二:代码调试与 Bug 修复
适用时机:遇到代码报错、功能异常、测试失败等问题,无法快速定位原因。
典型操作
-
将报错信息直接粘贴到对话中,让 Claude Code 定位报错原因、给出修复方案;
-
描述 Bug 复现步骤,让 Claude Code 追踪调用链,排查问题;
-
输入「!」进入 bash 模式,直接运行终端命令验证问题、测试修复效果。
♻️ 场景三:代码回滚操作
适用时机:修改代码后出现问题,想撤销某次修改,恢复到之前的状态。
# 双击 ESC 或输入 /rewind
# 选择回滚点 → 选回滚代码+会话 / 仅代码 / 仅会话
注意:Claude Code 只能回滚它直接写入的文件,由终端命令(如 npm install、mkdir 等)产生的文件无法回滚。推荐结合 git 做精准回滚,确保代码安全。
🎨 场景四:Figma 设计稿转前端代码
适用时机:有 Figma 设计稿,需要快速将设计转化为前端代码,减少手动编写成本。
两种还原方式
-
截图拖入 / 粘贴(Ctrl+V,非 Cmd+V):操作简单,但还原精度有限,适合简单设计;
-
接入 Figma MCP:获取组件间距、字体样式等精确数据,还原度高,适合复杂设计。
# 安装 Figma MCP Server 后,通过 /mcp 授权
# 然后把 Figma 设计稿链接直接贴给 Claude Code
修改当前页面,使其与 Figma 设计稿完全一致
https://www.figma.com/file/xxx...
⚙️ 场景五:自动化工作流配置(Hooks)
适用时机:每次 Claude Code 写完代码后,需要自动执行某段逻辑(如格式化、校验),避免手动操作。
典型用例:写完代码自动 prettier 格式化
# 在 /hooks 中配置
# 触发时机:PostToolUse → Write/Edit
cat | jq -r '.file_path' | xargs prettier --write --single-quote
Hook 触发时机说明
| 触发时机 | 说明 |
|---|---|
| PreToolUse | 工具执行前触发,适合前置校验 |
| PostToolUse | 工具执行后触发,最常用(如格式化、校验) |
| OnToolError | 工具执行失败时触发,适合错误处理、通知 |
| Notification | 发送通知时触发,适合自定义通知逻辑 |
🧩 场景六:Agent Skill 与 SubAgent 区别
很多人会混淆 Agent Skill 和 SubAgent,两者的核心区别在于「上下文是否独立」,具体对比如下:
| 特性 | Agent Skill | SubAgent |
|---|---|---|
| 本质 | 动态加载的 Prompt | 独立的 Agent |
| 上下文 | 共享主对话上下文 | 完全独立的上下文 |
| 适合场景 | 与上下文强关联、影响小的任务(如写接口文档、生成测试用例) | 任务量大、影响上下文大的任务(如全项目性能审查、全量测试) |
| 结果回传 | 全程记录在主对话 | 只返回最终结果 |
核心区别示例
假设审查 150 个接口性能:
❌ 用 Skill:150 个接口的性能数据全部塞进主对话上下文
→ Token 爆炸,后续 Claude 响应变慢、逻辑出错
✅ 用 SubAgent:独立窗口处理,主对话只收到最终性能报告
→ 主对话干干净净,可继续正常开发工作
📦 场景七:Plugin 安装与使用
适用时机:需要一键获得整套能力(Skill + SubAgent + Hook 打包),无需手动配置,快速拓展 Claude Code 功能。
/plugin # 进入插件管理器
# Discover → 找到目标插件 → 回车安装
# 安装后重启 Claude Code 即可生效
示例:安装 api-test 插件后,Claude Code 可自动生成接口测试用例,无需手动编写,同时支持一键运行测试,快速验证接口可用性。
🔧 场景八:上下文管理技巧
当对话次数过多、上下文内容繁杂时,可通过以下命令管理上下文,减少 Token 消耗,保持对话流畅。
/compact # 压缩上下文(保留关键信息,减少 Token 消耗)
/compact 重点保留接口开发相关内容 # 带策略的压缩,精准保留核心内容
/clear # 清空所有上下文(开始全新任务时用)
/tasks # 查看后台任务(如 npm run dev)
Ctrl + B # 把前台任务放到后台,让 Claude Code 继续响应
🔄 场景九:会话恢复操作
适用时机:关闭 Claude Code 后,需要恢复上一次的对话,继续之前的开发工作,无需重新描述需求。
claude -c # 启动并自动恢复上一次对话(continue 缩写)
/resume # 手动选择要恢复的历史会话
⚡ 场景十:跳过权限检查(危险)
适用时机:特殊场景下(如紧急修复生产问题),需要执行被权限拦截的命令,需谨慎使用。
claude --dangerously-skip-permissions
# 跳过所有权限确认,Claude 可执行任意终端命令
# 模式显示为:bypass permissions on
# ⚠️ 慎用,理论上 Claude 拥有与你相同的终端权限