Claude Code 项目初始化
Claude Code 项目初始化可以在 Claude Code 的交互界面中输入:
/init
我们可以在一个已有的项目目录初始化,也可以新建一个。
我们可以先创建一个目录:
mkdir claude-runoob-test
进入该目录:
cd claude-runoob-test
创建一个测试文件 test.py,代码如下:
print("Hello, Runoob!")
进入 Claude Code 的交互界面:
claude
使用 /init 命令来初始化项目:
/init

如果使用 VS Code,也可以在 VS Code 的 Claude Code 界面输入 /init:

Claude 会自动扫描你的代码库——读取 package.json、现有文档、配置文件以及代码结构,然后生成一份专属于你项目的 CLAUDE.md 文件。
Claude 整个过程无需手动操作,Claude 会自行分析并输出初始配置。

CLAUDE.md 文件
CLAUDE.md 是一个放在项目根目录的 Markdown 文件,Claude Code 在每次会话开始时都会自动读取。
CLAUDE.md 会成为 Claude 系统提示的一部分,使每次对话都能预先加载项目上下文,不再需要重复解释基本信息。
一份好的 CLAUDE.md 应该覆盖三个维度:
- WHAT(是什么):技术栈、项目结构,为 Claude 提供代码库的全局地图
- WHY(为什么):项目的目的,各模块的功能与定位
- HOW(怎么做):开发方式,例如使用 bun 而非 node,以及 Claude 如何验证改动是否正确 Humanlayer
以下是一份典型的 CLAUDE.md 结构示例:
# 项目名称 ## 项目概述 简述这个项目的目的和功能。 ## 技术栈 - Frontend: React + TypeScript - Backend: Node.js + Express - Database: PostgreSQL ## 目录结构 - `src/components/` - React 组件 - `src/api/` - API 层 - `tests/` - 测试文件 ## 常用命令 - 启动开发服务器:`pnpm dev` - 运行测试:`pnpm test` - 代码检查:`pnpm lint` ## 开发规范 - 使用 TypeScript strict 模式 - 优先使用 interface 而非 type - 禁止使用 any,使用 unknown 替代 ``` ### 文件位置与层级 项目的核心文件结构如下: ``` your-project/ ├── CLAUDE.md # 项目主记忆文件(团队共享) ├── .claude/ │ ├── settings.json # Hooks、权限、环境配置 │ ├── settings.local.json # 个人配置(建议加入 .gitignore) │ └── commands/ # 自定义斜杠命令 │ └── my-command.md └── .mcp.json # MCP 服务配置 ```
初始化后的最佳实践
迭代优化,而非一次写死。
/init 命令适合快速入门,但真正的价值来自于随时间不断迭代,可以补充 Claude 无法自动推断的内容,例如分支命名规范、部署流程、Code Review 要求;同时删去不适用的通用建议。
提交到版本控制:将
CLAUDE.md提交到 Git,这样整个团队都能从中受益,新成员可以通过让 Claude 解释代码库来快速上手。-
保持精简:内容要简洁且普遍适用。采用"渐进式披露"原则——不要把所有你想让 Claude 知道的内容都塞进去,而是告诉它如何查找重要信息,让它按需获取,避免撑爆上下文窗口。
-
不要让 CLAUDE.md 替代 linter:在文件中写代码风格规范是最常见的误区之一。永远不要用 LLM 来做 linter 的工作——linter 更快、更便宜,而且是确定性的。代码风格约束只会让上下文窗口膨胀,降低 Claude 的指令遵从质量。
使用 # 快捷键持续更新
在对话中,随时用 # 前缀给 Claude 发送记忆指令:
# 我们始终使用 pnpm,不用 npm # 所有组件必须包含单元测试
这些补充会逐渐积累,形成一份真正反映团队实际工作方式的 CLAUDE.md。
验证初始化效果
初始化完成后,可以通过以下对话确认 Claude 是否正确理解了项目:
- 这个项目是做什么的?
- 解释一下目录结构。
- 项目用了哪些技术?
- 运行测试的命令是什么?
