Logo Vincent
返回文章列表

Claude Code /add-dir:被低估的 Monorepo 神器

Claude
Claude Code /add-dir:被低估的 Monorepo 神器

什么是 /add-dir

用 Claude Code 的时候,你可能遇到过这样的情况:

  • 你在项目 A 里工作,但需要参考项目 B 的代码
  • 你在一个 monorepo 的子包里启动了 Claude Code,但需要看另一个子包的实现
  • 你想让 Claude Code 同时了解前端和后端两个仓库,帮你做联调

默认情况下,Claude Code 只能看到当前工作目录下的文件。你启动时在哪个目录,它就只认识那个目录。

这就是 /add-dir 命令的用武之地。

/add-dir 是 Claude Code 的一个斜杠命令,让你在对话过程中把额外的目录添加到 Claude Code 的工作范围中,让它能够读取和操作这些目录下的文件。

简单来说:打破目录的围墙,让 Claude Code 看到更多代码。

两种用法

/add-dir 有两种使用方式:一种是在对话中随时添加,另一种是启动时就指定好。

方式一:交互模式下添加(/add-dir)

在 Claude Code 交互模式下输入:

/add-dir /path/to/another/project

执行后,Claude Code 就能访问这个目录下的所有文件了。你可以让它读取、搜索、甚至编辑这个目录中的代码。

每次 /add-dir 添加一个目录。如果需要添加多个,多次执行即可:

/add-dir /path/to/frontend
/add-dir /path/to/backend
/add-dir /path/to/shared-libs

方式二:启动时指定(—add-dir)

如果你在启动 Claude Code 之前就知道需要哪些额外目录,可以用 --add-dir 参数一次性指定:

claude --add-dir ../apps ../lib

注意和交互模式的区别——--add-dir 可以一次性指定多个目录,用空格分隔。路径会被验证是否存在且是一个目录。

这种方式适合你有固定的多项目组合,每次都需要加载同样的目录集。

使用相对路径

两种方式都支持相对路径:

# 交互模式
/add-dir ../another-project

# 启动时
claude --add-dir ../apps ../../shared/components

路径是相对于当前工作目录来解析的。

什么时候需要它

场景一:Monorepo 跨包协作

这是最常见的场景。假设你有一个 monorepo,结构如下:

my-monorepo/
├── packages/
│   ├── frontend/
│   ├── backend/
│   └── shared/

你在 packages/frontend/ 下启动了 Claude Code。现在你想让它看看 shared 包里某个工具函数的实现,然后在前端项目里调用它。

/add-dir ../shared

这样 Claude Code 就能同时看到前端和共享包的代码,帮你写出正确的导入路径和调用方式。

场景二:前后端联调

你在前端项目里工作,但需要知道后端 API 的请求和响应格式:

/add-dir /Users/me/projects/my-backend

现在你可以直接问 Claude Code:“后端的 /api/users 接口返回什么格式?帮我写一个对应的 TypeScript 类型定义。”

它会去后端目录找到对应的接口定义,然后在前端项目里帮你生成类型文件。

场景三:参考开源项目

想参考某个开源项目的实现方式?把它也加进来:

/add-dir ~/projects/reference-project

然后你可以说:“看看这个项目的路由怎么实现的,我们的项目也参考这个方式来做。“

场景四:共享配置和文档

很多团队会把公共配置、设计规范、API 文档放在单独的仓库里:

/add-dir ~/team/design-system
/add-dir ~/team/api-docs

加进来之后,Claude Code 就能基于这些规范帮你写代码,保证风格一致。

实际使用技巧

技巧一:只加需要的目录

不要一口气把整个磁盘都加进去。添加的目录越多,Claude Code 搜索文件时的范围就越大,可能会影响效率。建议只添加当前任务确实需要的目录。

技巧二:配合提问明确来源

添加多个目录后,提问时最好指明你说的是哪个项目:

看看 shared 包里的 formatDate 函数是怎么实现的,然后在 frontend 项目里调用它

而不是含糊地说”帮我看看 formatDate”——多个目录中可能有同名文件或函数,明确来源能避免歧义。

技巧三:Monorepo 的最佳实践

如果你经常在 monorepo 里工作,最好的做法是在 monorepo 根目录启动 Claude Code,而不是在子包里启动。这样 Claude Code 天然就能看到所有子包的代码,不需要额外 /add-dir

但如果你的 monorepo 特别大,几十上百个包,从根目录启动可能信息太多。这时候在子包里启动,按需 /add-dir 其他包反而更高效。

技巧四:用 —add-dir 写 alias

如果你每天都在同一组项目间切换,可以在 shell 配置里写一个 alias:

alias claude-fullstack="claude --add-dir ../backend ../shared"

以后在前端目录里直接敲 claude-fullstack,就会自动带上后端和共享库。比每次手动 /add-dir 省事多了。

技巧五:配合 CLAUDE.md 使用

如果你经常需要添加某个外部目录,可以在 CLAUDE.md 里提一下这个目录的作用和路径,方便 Claude Code 理解上下文。虽然 CLAUDE.md 不能自动添加目录,但它能帮 Claude Code 更好地理解你添加的目录是用来干什么的。

/add-dir vs —add-dir vs 在根目录启动

/add-dir(交互模式)—add-dir(启动参数)在根目录启动
时机对话过程中随时添加启动时一次性指定不需要额外操作
多目录每次一个,多次执行一次性指定多个天然包含所有子目录
灵活性最高,按需添加中等,需要提前规划固定的工作范围
适合场景临时需要看其他项目固定的多项目组合中小型 monorepo

我的经验是:

  • 中小型 monorepo → 直接在根目录启动,省事
  • 大型 monorepo → 在子包启动,claude --add-dir 指定需要的其他包
  • 跨仓库协作 → 在主仓库启动,按需 /add-dir 其他仓库
  • 固定工作组合 → 用 --add-dir 写成 alias,一个命令搞定

写在最后

/add-dir 是一个看起来不起眼但关键时刻能救命的命令。它解决的问题很朴素:让 Claude Code 的视野不再局限于一个目录。

现实中的开发工作很少只涉及一个目录。前后端分离、monorepo 多包、共享库依赖——这些场景下,Claude Code 只看一个目录是远远不够的。

下次遇到”要是 Claude Code 能看到另一个项目就好了”的时候,试试 /add-dir,给它多开一扇窗。

© 2026 vincentqiao.com . 保留所有权利。