Claude Code 多项目、多目录怎么用:--add-dir、/add-dir 与 /cd 的区别,以及加进来的目录哪些配置不生效

前端和后端分在两个文件夹,Claude Code 却只看得到启动目录?按官方 Permissions 与 CLI reference 讲清 --add-dir、/add-dir、permissions.additionalDirectories 和 /cd 的区别,以及加进来的目录哪些配置会加载、哪些不会。

NNathaniel bigo··原创首发·AI 辅助撰写
10 分钟读完
资料核对于 2026-11-05 · 依据官方文档与公开资料整理 Pro 账号
本文根据 Claude Code 官方文档《Configure permissions》《CLI reference》整理,资料核对于 2026-11-05。配图为本站整理的示意图,不是界面截图。本站(bigolab.com)不是 Anthropic 官方网站。

适用于谁

  • 项目拆成了多个文件夹(前端、后端、公共库、文档),想让 Claude Code 同时读写的人;
  • 加了目录却发现「它没读到那边的 CLAUDE.md」「那边的 Skill 没生效」的人;
  • 分不清 --add-dir、/add-dir 和 /cd 的人。

结论先说

  1. 默认只能访问启动目录。 官方说,Claude 默认可以访问你启动它的目录里的文件,这个目录就是会话的主工作目录。
  2. 扩展访问有三种方式: 启动时用 --add-dir <路径>;会话中用 /add-dir;想长期生效,在设置文件里写 permissions.additionalDirectories。
  3. 附加目录享受和主目录同样的权限规则。 读文件不再逐个询问,写文件是否需要确认取决于当前权限模式。
  4. 加目录只是给文件访问权,不是把它变成第二个项目。 官方明确说:大部分 .claude/ 配置不会从附加目录被发现,只有少数例外。
  5. 要把整个会话换到另一个项目,用 /cd,不是 /add-dir。 前者换主目录并应用新目录的配置,后者只是多开一扇门。

三种方式让 Claude Code 访问更多目录

图:本站根据 Claude Code 官方文档:Permissions 整理的示意图

一、三种加目录的方式

假设你的项目是这样放的:

text
work/
├── web/        # 前端
├── api/        # 后端
└── shared/     # 公共类型

方式一:启动时加。 在 web 里启动,同时把另外两个带上。官方 CLI 参考里的写法是后面可以跟多个路径:

bash
cd work/web
claude --add-dir ../api ../shared

官方说明 --add-dir 会校验每个路径必须是已存在的目录。

方式二:会话里加。 已经在对话中了,才发现还要读另一个目录,直接输入:

text
/add-dir ../api

方式三:写进设置,长期生效。 官方 CLI 参考说,想让这些目录跨会话保留,设置 permissions.additionalDirectories。示例(写在 .claude/settings.json 里,目录名按你的实际情况改):

json
{
  "permissions": {
    "additionalDirectories": ["../api", "../shared"]
  }
}

注意官方的一个安全细节:项目里 .claude/settings.json 的 additionalDirectories 是「授予能力」的配置,只有你接受了该文件夹的工作区信任对话框之后才会生效。所以刚克隆下来的陌生仓库里写的目录,不会在你没确认的情况下被使用。

二、加进来的目录,哪些配置生效

这是最容易踩的坑。官方的原话意思是:附加目录让 Claude 能读写文件,但不会让它成为完整的配置根目录。表格整理如下(来自官方 Permissions 页面):

配置通过 --add-dir / /add-dir 加进来的目录
.claude/skills/ 里的 Skill加载,并支持实时刷新
.claude/commands/ 里的命令文件加载,但不支持实时刷新;同名时用你项目里的
.claude/agents/ 里的子智能体加载,不支持实时刷新
.claude/settings.json 等设置只读取 enabledPlugins 和 extraKnownMarketplaces 这两个键
CLAUDE.md、.claude/rules/、CLAUDE.local.md默认不读;设置环境变量 CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 才读

两个要点:

  • Skill 能带过来。 官方还给了命名规则:当附加目录里的 Skill 与已有的重名时,命令前面会加上该目录的文件夹名,比如 --add-dir ../cli 的 verify 技能变成 /cli:verify(官方标注需要 v2.1.309 或更高)。
  • 只写在 permissions.additionalDirectories 里的目录,只给文件访问,上面表格里的例外都不适用。 官方特别说明,例外只针对用 --add-dir 标志或 /add-dir 命令加的目录。

所以如果你想让后端目录里的 CLAUDE.md 也生效,有两种做法:一是启动前设置上面那个环境变量;二是把真正需要共享的规矩放进你当前项目的 CLAUDE.md。CLAUDE.md 本身怎么写,见 /guides/claude-md-agents-md。

三、/add-dir 和 /cd 到底差在哪

官方对 /cd 的描述:把会话移到另一个主工作目录,保留对话,加载新目录的 CLAUDE.md;如果你没在那里工作过,会提示你信任该工作区。移动之后,新目录的这些东西立刻生效:

  • 项目设置,包括权限规则和 Hooks;
  • .mcp.json 里的 MCP 服务器(要经过同样的审批);
  • 它的设置里启用的插件、Skill 和子智能体;
  • 它的 env 值。

同时,旧目录的项目级和本地级 MCP 服务器会断开。你用 --add-dir 或 /add-dir 加的目录会保留。

一句话选择:还在同一个任务里,只是需要读另一个目录 → /add-dir;这个任务已经转到另一个项目了 → /cd。 如果只是想一次改两个仓库,又要各自隔离,可以看 /guides/claude-code-worktree。

四、实战提示词

跨前后端改一个接口:

text
我在 web 目录启动,已经加了 ../api。请先读 api 里 /orders 接口的定义和 web 里调用它的代码,列出两边不一致的字段;
先不要改,给我一份改动清单(哪个文件、改什么),我确认后再改。

让它只读不改附加目录:

text
../shared 里的类型定义只读,不要修改它。需要新字段的话,把建议写在回复里,我自己去改。

官方还提供了更硬的办法:把 permissions.blockWritesOutsideWorkingDirectories 设为 true,让 Write、Edit、NotebookEdit 工具拒绝向工作目录之外写入(官方标注需要 v2.1.314 或更高)。注意官方明确说它不限制 shell 命令、MCP 工具和 Hook 运行的程序,限制命令写入要用沙箱,见 /guides/claude-code-sandbox-security。

加了目录却没按预期工作时先查什么

图:本站根据官方文档整理的示意图

五、常见问题

Q:能加网络共享路径吗?

官方说大部分网络路径(例如 \\server\share)加不了,因为查找它可能联系它指向的主机。Windows 上的办法是先把共享映射成盘符,再在启动时传盘符,比如映射到 Z: 就运行 claude --add-dir Z:\(PowerShell 里)。其他 Windows 常见问题见 /guides/claude-code-windows-pitfalls-paths-git-bash-powershell。

Q:以前的会话还找得到吗?

官方 CLI 参考说,--resume 的会话选择器和名称搜索会包含添加过该目录的会话。会话怎么续接见 /guides/claude-code-resume-history。

Q:加了很多目录,额度会更快用完吗?

官方没有对这一点给出数字。道理上,读进来的文件越多,上下文占用越多,所以提示词里最好写明具体读哪个目录、哪几个文件,而不是让它全盘扫描。

Q:能用 --bare 模式吗?

官方说 --bare 会跳过 Hook、Skill、插件、MCP、CLAUDE.md 等自动发现,但用 --add-dir 传入的目录里的 Skill 仍会加载。

订阅和额度

跨目录读写会让上下文变大,长期这样用的话要留意额度。订阅选择见 /chongzhi/claude-code,价格和额度以官方页面当前显示为准。

相关教程

参考资料

  • Claude Code 文档:Configure permissions — https://code.claude.com/docs/en/permissions
  • Claude Code 文档:CLI reference — https://code.claude.com/docs/en/cli-reference

Nathaniel 的更多内容

  1. 01

    Claude Personal Finance 是什么:连银行账户问花销、怎么开、只读权限、谁能用、怎么解除

    Claude 的 Personal Finance(beta)通过 Plaid 只读连接你的银行、信用卡、贷款和投资账户,在一页里看余额和花销并用自然语言提问。本文按官方帮助页讲谁能用(仅美国、Pro/Max/Ultra)、连接与解除步骤、Claude 能看什么,以及它做不到的事。

    Claude0
  2. 02

    Claude Code 离开一小时回来对话被「压缩」了:Idle compaction 是什么、条件、怎么关

    Claude Code 的 idle compaction 会在你离开约一小时后,把 200K token 以上的长对话先压缩成摘要,下一条消息就不用重新处理整段历史。本文按官方文档讲触发条件、看到什么提示、用 /config 或 idleCompaction 关闭、调阈值,以及恢复旧对话的用量警告。

    Claude0
  3. 03

    ChatGPT Computer History 是什么:Mac 桌面端的活动记忆怎么开、怎么暂停和清除、谁能用

    Computer History 是 ChatGPT macOS 桌面应用里默认关闭的可选功能,把你在应用和网站里的活动整理成记忆和时间线,供 ChatGPT 与 Codex 引用。本文按官方文档讲怎么开、记录什么不记录什么、怎么暂停与清除、数据存哪、谁能用,以及提示注入风险。

    ChatGPTCodex0
  4. 04

    Codex 输入框出现灰色建议:Composer predictions 是什么、Tab 接受、怎么关、谁能用

    Codex 桌面 App 的 Composer predictions(beta)会在 Codex 回完后,根据当前对话在输入框里给出下一条消息的建议,按 Tab 接受、不会自动发送。本文按官方帮助页讲谁能用、哪些线程支持、怎么关、算不算额度,以及没出现时怎么查。

    ChatGPTCodex0
  5. 05

    ChatGPT 隐私中心(Privacy Center)在哪里:隐私设置入口、三大分类和哪些套餐有

    ChatGPT 的 Privacy Center 把记忆、广告、位置、临时对话、锁定对话、两步验证、模型改进、数据导出和删号等入口集中到一页。本文按官方帮助页讲怎么打开、三大分类各有什么、哪些套餐有,以及它不会替你改任何设置。

    ChatGPT0
  6. 06

    Claude Code 处理大仓库:怎么让它只看需要的目录(子目录 CLAUDE.md、claudeMdExcludes、deny 规则)

    仓库太大,Claude Code 总在读无关文件、读进别的包的规则?本文按官方大仓库指南讲:从哪个目录启动、子目录 CLAUDE.md、claudeMdExcludes、Read 的 deny 规则、worktree.sparsePaths、additionalDirectories,以及一份合并后的配置示例。

    Claude0

同产品的其他教程

  1. 01

    Claude Code 在 CI 里跑:从本机 claude -p 到 GitHub Actions 的完整例子(自动审 PR、控成本)

    一条线走完 Claude Code 的 CI 用法:先在本机用 claude --bare -p 配 --json-schema 跑通,再写进 GitHub Actions 用 claude-code-action@v1 自动审 PR,最后加上 --max-turns、超时、并发限制来控成本,并附上常见故障的排查顺序。

    Claude0
  2. 02

    Claude Code 自定义 subagent 实例:测试员、调试员、只读调研员、只读数据库员怎么写

    四个可直接改的 subagent 实例:跑测试的 test-runner、找根因的 debugger、只读调研员、用 PreToolUse hook 限成只读 SQL 的 db-reader;讲 tools、disallowedTools、model、maxTurns 怎么配,怎么点名调用。

    Claude0
  3. 03

    Claude Code 的 CLAUDE.md 模板:前端、后端、数据分析各一份,附拆分与自检方法

    直接拿去改的三份 CLAUDE.md 模板(前端、后端、数据分析),每份都控制在官方建议的 200 行以内;再讲怎么用 .claude/rules 的 paths 拆出专属规则、用 @ 导入长文档,以及用 /context all 和 /doctor prompt-audit 检查是否生效。

    Claude0
  4. 04

    Claude Code 自己写一个插件并发布到 marketplace:plugin.json、marketplace.json、validate 到团队安装的完整流程

    想把自己写的 Skill、Hook 打包给团队用?按 Claude Code 官方 Plugins 文档,从目录结构、plugin.json、claude plugin validate,到写 marketplace.json、推到 Git、让同事一条命令安装,再到版本更新,走完一遍完整流程。

    Claude0
  5. 05

    Claude Code 写一个会自动触发的 Skill:从需求到触发,用 description、when_to_use 和 paths 控制它什么时候出场

    写好的 Skill 总是不触发,或者什么都触发?本文按 Claude Code 官方「Extend Claude with skills」走一遍完整实例:把「改数据库迁移前先检查」写成一个会自动出场的 Skill,包含 description、when_to_use、paths、附带脚本、触发测试和评估。

    Claude0
  6. 06

    Claude Code 配 Sentry MCP 排查线上报错:添加命令、浏览器授权、贴 issue 链接修 bug 和插件子智能体

    线上报错只能手动复制堆栈给 Claude Code?Sentry 官方提供 MCP 服务,可以让它直接读 issue、堆栈和 trace。本文按 Claude Code 官方 MCP 文档和 Sentry MCP 官方说明,讲添加命令、/mcp 授权、典型排查流程、插件方式和自托管注意事项。

    Claude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~