/init — 项目初始化命令

Claude Code 斜杠命令系列 · 第 7.1 节


一、这个命令做什么?

/init 是 Claude Code 的项目引导命令。它在你项目的根目录下生成一个 CLAUDE.md 文件——相当于给 Claude Code 的"项目说明书",让后续的每一次对话都自带完整的项目上下文,而不是每次都从零猜你的代码结构。

执行效果一句话概括:

扫描 → 理解 → 写入 CLAUDE.md → 后续对话自动加载


二、基本用法

在 Claude Code 的交互式 REPL 中(即你已经 claude 进入了对话界面),直接在提示符处输入:

/init

不需要额外参数。Claude Code 会以当前工作目录为项目根目录进行扫描。


三、/init 做了什么?

执行 /init 后,Claude Code 大致按以下流程工作:

步骤 行为 说明
目录扫描 遍历当前目录及子目录 读取文件树结构,识别源码、配置、文档等
内容解析 分析代码与配置文件 推断技术栈、目录约定、入口文件、依赖关系等
生成知识摘要 提炼为结构化项目描述 写入 CLAUDE.md,作为持久化的项目记忆
自动挂载上下文 后续对话隐式引用 你不用每次手动贴代码或解释项目结构

最终产物就是一个 CLAUDE.md 文件,出现在你的项目根目录中。


四、CLAUDE.md 是什么?怎么用?

4.1 本质

CLAUDE.md 是一个 Markdown 格式的指令/记忆文件,Claude Code 会在每次对话启动时自动读取它,当作系统上下文的一部分注入。

它通常包含(由 /init 自动生成 + 你手动补充):

  • 项目用途与架构概述
  • 技术栈与关键依赖
  • 目录结构说明
  • 构建/运行方式
  • 编码规范或特殊约定

4.2 你可以(而且应该)手动编辑它

/init 给的是起点,不是终点。建议你打开 CLAUDE.md 做补充:

## 项目概述
这是一个 xxx 服务,负责……

## 技术栈
- Runtime: Node.js 20 + TypeScript
- Framework: Express / Hono / Next.js(按实际情况)
- DB: PostgreSQL + Prisma
- 测试: Vitest

## 目录速览
/src
  /routes   # API 路由
  /services # 业务逻辑
  /db       # 数据访问层

## 开发命令
- dev: `npm run dev`
- build: `npm run build`
- test: `npm test`

## 约定
- 所有 API 返回统一信封 { code, data, message }
- 不允许在 route 层写业务逻辑

这条文件的价值 = 你往里面填的有用信息 × 被 Claude Code 自动引用的次数

4.3 要不要提交到 Git?

策略 适合场景
提交到仓库 团队共用 Claude Code,CLAUDE.md 描述的是项目客观事实(结构、命令、规约)
放进 .gitignore 里面有个人偏好、路径、本地环境信息,或你希望每个人各自维护自己的

折中方案:提交一个 CLAUDE.md.example(模板),个人的 CLAUDE.md 忽略。


五、什么时候用 /init

典型场景

场景 1:第一次在一个项目里用 Claude Code

cd your-project/
claude        # 进入 REPL
/init         # 让 Claude Code 认识这个项目

之后你问它"帮我给 /api/users 加一个删除接口",它已经知道你的路由在哪、你的 DB 层怎么写、你的返回格式长什么样。

场景 2:项目结构发生了较大变化

/init

重新跑一次,CLAUDE.md 会被刷新( 注意下面说的覆盖问题)。


六、注意事项 & 坑位提醒

注意点 说明
/init 主要产出只有 CLAUDE.md 它不会帮你改代码、建文件、装依赖——只是写"说明书"
大型项目扫描耗时 monorepo / node_modules 没配好忽略规则的话会很慢且噪音多。建议先用 .gitignore 或告诉 Claude Code 忽略哪些目录
重新 /init 可能覆盖手工编辑 如果你已经在 CLAUDE.md 里写了一堆宝贵注释,重跑 /init 前建议先备份:cp CLAUDE.md CLAUDE.md.bak
不是魔法 /init 生成的初稿质量取决于项目本身是否"自描述"(有没有 package.jsonREADME、清晰的目录名)。越规范的仓库效果越好
.gitignore 里的文件不会被关注 这和 git 的忽略规则通常是一致的,但如果有特殊目录不想让它看,留意一下

七、推荐工作流(最佳实践)

# 1. 进入项目
cd my-project

# 2. 首次初始化
claude
/init

# 3. 打开 CLAUDE.md,手补一段"人话"——
#    项目是干嘛的、核心约定是什么、哪些目录千万别乱动
vim CLAUDE.md   # 或用 VS Code 打开编辑

# 4. 清掉初始化过程中的闲聊历史(可选),正式开工
/clear

之后日常开发:

你:「帮我在 src/services/payment.ts 里加一个 refund() 方法,
     复用现有的 prisma 实例和日志工具」

Claude Code 已经知道 prisma 在哪、logger 怎么用、错误该怎么返回——因为这些都在 CLAUDE.md 里。


八、常与 /init 搭配的命令

命令 用途
/clear 清空当前对话历史,保留 CLAUDE.md 上下文——适合 init 完想"重新开始"
/memory 直接编辑 CLAUDE.md(有些版本支持此快捷入口)
/context 查看当前上下文占用情况
/model 如果 init 过程中发现需要用更大上下文窗口的模型

一句话总结/init 的意义不是"初始化项目"(项目早就在那了),而是初始化 Claude Code 对这个项目的认知CLAUDE.md 就是这个认知的物化载体——自动生成打底,人工精修加码,才是正确打开方式。


如果你愿意,把你项目的 目录树tree -L 2 -I 'node_modules|.git|dist' 的输出)或者现有的 CLAUDE.md 贴出来,我可以帮你进一步精炼成一份高质量的项目记忆文件,让它对 Claude Code 的指导效果最大化。

Last modification:June 10, 2026
如果觉得我的文章对你有用,请随意赞赏