最近刷技术圈,发现一个有意思的现象:
Anthropic 出 MCP,大家追 MCP。 出 Skill,追 Skill。 出 Subagent,追 Subagent。
新功能一个接一个,大家跟得很积极。
但有一个从第一天就存在、对 Claude Code 使用效果影响最大的功能,却几乎没人认真研究过:
CLAUDE.md 文件。
什么是 CLAUDE.md?
简单说:这是 Claude Code 的"记忆文件"。
每次你启动 Claude Code,它会自动读取项目里的 CLAUDE.md 文件,把里面的内容作为"背景知识"加载进来。
这意味着什么?
- 你不用每次都告诉它"这个项目用的是 FastAPI + React"
- 你不用每次都说"部署命令是 bash deploy.sh"
- 你不用每次都解释"数据库结构在 docs/database.md 里"
写一次,永久生效。
听起来很简单对吧?
但大多数人要么不知道这个文件,要么随便写两行就扔那儿了。
结果就是:Claude Code 对你的项目一无所知,每次都像个新来的实习生,什么都要从头问。
为什么 CLAUDE.md 比新功能更重要?
MCP、Skill、Subagent 这些功能确实强大,但它们解决的是"能力扩展"问题。
CLAUDE.md 解决的是基础认知问题。
打个比方:
- 新功能 = 给员工发新工具
- CLAUDE.md = 给员工做入职培训
你给一个不了解公司业务的新员工再多工具,他也用不好。
先让 Claude 真正理解你的项目,它才能把那些高级功能用到点子上。
实用技巧一:用 # 命令随时写入记忆
很多人不知道,Claude Code 内置了一个快捷命令:
在对话中输入 # 加内容,可以直接写入 CLAUDE.md。
比如你发现 Claude 总是用 npm,但你的项目用的是 pnpm:
# 本项目使用 pnpm,不要用 npm
回车,这条规则就写入记忆文件了。
下次对话,它就会记住。
这个功能的好处是:随时随地,想到就写。
不用专门打开文件编辑,不用中断当前工作流。用着用着发现它不知道什么,直接 # 一下就完事了。
实用技巧二:什么时候该更新记忆?
很多人问:我怎么知道 CLAUDE.md 里该写什么?
有个简单的判断标准:
当你发现自己在重复告诉 Claude 同一件事的时候,就该写进去了。
举几个例子:
- 你第三次告诉它"测试用 pytest 跑,不是 unittest" → 写进去
- 你又一次解释"这个项目的 API 前缀是 /api/v1" → 写进去
- 你再次提醒"提交代码前要跑 lint" → 写进去
你重复说的,就是它该记住的。
这样做的好处是:CLAUDE.md 里的内容都是真正有用的,不是凭空想象出来的规范文档。
实用技巧三:CLAUDE.md 可以有多个
很多人以为 CLAUDE.md 只能放在项目根目录。
不是的。你可以在任何子目录放 CLAUDE.md。
Claude Code 读取记忆文件的逻辑是:
1. ~/.claude/CLAUDE.md # 全局配置(所有项目通用)
2. /project/CLAUDE.md # 项目根目录
3. /project/frontend/CLAUDE.md # 子目录
4. /project/backend/CLAUDE.md # 子目录
它会根据你当前工作的目录,加载对应的 CLAUDE.md。
这对大型项目特别有用:
my-project/
├── CLAUDE.md # 项目总览、技术栈
├── frontend/
│ └── CLAUDE.md # 前端特定:组件规范、状态管理
├── backend/
│ └── CLAUDE.md # 后端特定:API 设计、数据库连接
└── infra/
└── CLAUDE.md # 运维特定:部署流程、服务器配置
当你在 frontend/ 目录工作时,Claude 会同时加载根目录和 frontend 的 CLAUDE.md。
分层管理,各司其职,还能减少主文件的臃肿。
实用技巧四:别让 Claude 自己写,或者写完要检查
有人说:直接让 Claude Code 帮我写 CLAUDE.md 不就行了?
可以,但有个大坑。
Claude 写东西有个毛病:太啰嗦。
你让它写 CLAUDE.md,它会给你整一篇"说明文档"出来:
## 项目介绍
本项目是一个基于 FastAPI 框架开发的后端服务,主要用于...
该项目采用了现代化的软件架构设计理念,包括...
## 技术栈详解
### 后端技术栈
- Python 3.11:我们选择 Python 3.11 是因为它提供了...
- FastAPI:FastAPI 是一个现代、快速的 Web 框架...
(200 行废话)
这不是记忆文件,这是产品文档。
CLAUDE.md 的正确写法是点到为止:
## 技术栈
- 后端:Python 3.11 + FastAPI
- 前端:Next.js 14 + TypeScript
- 数据库:MySQL 8.0
## 部署
```bash
bash scripts/deploy.sh
数据库设计
详见:docs/database.md
**简洁、直接、不废话。**
如果你让 Claude 帮你写,一定要自己检查一遍,把那些废话删掉。
否则会有两个问题:
1. **浪费 token**:每次启动都要读这么长的文件
2. **记忆失效**:信息太多太杂,Claude 反而会忽略重要内容
---
## 最佳实践:CLAUDE.md 该写什么?
根据我的使用经验,推荐这个结构:
### 1. 项目结构(必写)
```markdown
## 项目结构
| 目录 | 用途 |
|------|------|
| `app/` | 后端 API |
| `web/` | 前端 |
| `docs/` | 文档 |
| `scripts/` | 部署脚本 |
2. 技术栈(必写)
## 技术栈
- 后端:Python 3.11 + FastAPI + SQLAlchemy
- 前端:Next.js 14 + TypeScript + Tailwind
- 数据库:MySQL 8.0 + Redis 7.0
3. 常用命令(必写)
## 常用命令
```bash
pnpm dev # 启动前端开发服务器
python main.py # 启动后端
pytest tests/ # 运行测试
bash deploy.sh # 部署
这点特别重要。很多项目用 pnpm 不用 npm,用 poetry 不用 pip,用 bun 不用 yarn……**不写清楚,Claude 会猜错**。
### 4. 文档索引(重要)
```markdown
## 详细文档
- **[数据库设计](docs/database.md)** - 表结构、关系
- [API 文档](docs/api.md) - 接口说明
- [部署文档](docs/deploy.md) - 部署流程
关键:用引用,不要全部复制进来。
数据库有 20 张表?不要把表结构全写进 CLAUDE.md。写一句"详见 docs/database.md"就行了。
Claude 需要的时候会自己去读那个文件。
5. 特殊规则(如有)
## 注意事项
- 提交代码前必须运行 `pnpm lint`
- 数据库迁移用 alembic,不要手动改表
- 环境变量在 .env.example 里,不要提交 .env
反面教材:不该写什么?
❌ 不要写详细的表结构
## users 表
| 字段 | 类型 | 说明 |
| id | varchar(36) | 用户ID |
| username | varchar(50) | 用户名 |
...(50 行)
放到单独的文档里,这里只写一句"详见 docs/database.md"。
❌ 不要写示例代码
## 数据库查询示例
```python
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
...
Claude 会自己看你的代码,不需要在记忆文件里放示例。
### ❌ 不要写项目介绍
```markdown
## 关于本项目
本项目旨在为用户提供高效便捷的 xxx 服务...
Claude 不需要知道你的项目愿景,它需要知道的是怎么干活。
长度建议
< 100 行最佳,< 300 行是上限。
有个开源项目的 CLAUDE.md 只有 60 行,但效果非常好。
因为每一行都是有用的信息,没有废话。
记住:CLAUDE.md 不是文档,是备忘录。
快速检查清单
写完 CLAUDE.md 后,对照这个清单检查:
- 文件名是
CLAUDE.md(必须全大写) - 长度 < 300 行
- 包含项目结构
- 包含技术栈
- 包含常用命令
- 详细内容用引用,不是全部复制
- 没有废话和"说明文档"风格的段落
- 没有过时的信息
总结
Claude Code 的各种新功能确实值得关注,但别忘了最基础的东西。
CLAUDE.md 写得好,Claude Code 用起来完全不一样。
几个核心要点:
- 用
#命令随时写入记忆:想到就写,不用中断工作 - 重复说的就该写进去:你重复,它就该记住
- 可以有多个 CLAUDE.md:子目录各放各的,分层管理
- 保持简洁:点到为止,不是说明文档
- 让 Claude 写要检查:它写的太啰嗦,要删减
花 10 分钟写好这个文件,能让你接下来的每一次对话都更高效。
这才是 Claude Code 真正的"记忆"功能,比追任何新功能都管用。
关于 Claude Code 中转
国内直接用 Claude Code 有些门槛:注册、付费、网络环境。如果你不想折腾这些,可以试试 Code2AI(console.code2ai.codes),两行配置就能接入:
export ANTHROPIC_BASE_URL="https://code2ai.codes"
export ANTHROPIC_AUTH_TOKEN="你的token"
claude
新用户有 3 天免费试用。先写点代码感受一下,再决定是否值得投入。
体验地址
如果你还没用过 Claude Code,可以试试 AgentTerm,开箱即用,不用折腾配置。
体验地址:lite.beebywork.com