关联文件夹

多个文件夹,一个项目
给你启动的每一个 AI 代理

一个文件夹里是游戏,另一个文件夹里是它移植到更新引擎版本的版本。一个 Web 应用和它调用的 API,分在两个仓库里。一个共享库,旁边是使用它的各个应用。你的代理两边都需要,而把这些文件夹挪到同一个父文件夹下,会破坏一套原本好好的配置。

改为把其他文件夹关联到项目。它们留在原处,保留各自的版本控制。在项目中启动的每个代理都会收到它们:在 Claude Code、Codex、GitHub Copilot CLI、Antigravity CLI、Kimi Code 和 Mistral Vibe 上通过 --add-dir,在其他 CLI 上则写进它的简报。之后,「更改」标签页可以分别审查并提交每个仓库。

一个项目,三个仓库
  • /work/web-app项目文件夹 · git
  • /work/api关联文件夹 · git
  • /work/shared-lib关联文件夹 · git
启动时
Claude Code--add-dir=/work/api --add-dir=/work/shared-lib
Codex--add-dir=/work/api --add-dir=/work/shared-lib
GitHub Copilot CLI--add-dir=/work/api --add-dir=/work/shared-lib
OpenCode文件夹列在简报中

一个项目,三个仓库:每个代理都在项目文件夹中启动,并以它的 CLI 能理解的形式拿到另外两个。

代理在一个文件夹中启动,大多数 CLI 会把它限制在那里。它往往能读取周围的文件,但要修改工作目录之外的内容,就会遇到权限确认、沙箱拒绝,或者一个每次启动都得记得加上的参数。在工作只涉及一个地方时,这都没问题;一旦跨越两个地方就不行了:应用和它的 API,游戏和它在更新引擎上的副本,一个库和使用它的项目。

常见的解决办法都有代价。把两个文件夹挪到同一个父文件夹下,会破坏原本能用的路径、脚本和编辑器配置。符号链接会让一些工具出错,还会掩盖文件真正所在的位置。每次启动都手动输入 --add-dir,直到你忘记的那一次为止。

关联文件夹是保存在项目上的一个列表。你只需在「项目设置」、「常规」、「关联文件夹」中添加一次文件夹。从此以后,项目中的每个代理,无论你是从代理列表、从待办工单还是从手机启动它,都会收到这些文件夹,而每个文件夹都保留自己的仓库。

关联文件夹能做什么

一个保存在项目上的列表,每次启动时读取。没有关联文件夹的项目和以前完全一样。

文件夹留在原处

用系统的文件夹选择器选择文件夹。不会移动、复制或创建符号链接,每个文件夹都保留自己的仓库、分支和历史。每个项目最多十个文件夹。

每个 CLI 用对应的参数

Claude Code、Codex、GitHub Copilot CLI、Antigravity CLI、Kimi Code 和 Mistral Vibe 通过各自的 --add-dir 参数收到每个文件夹,无论代理是全新启动还是恢复会话。

写进代理的简报

无论用的是哪个 CLI,每个代理的简报中还会多一小段:有哪些文件夹,它们属于这个项目,以及 git 要在每个文件夹内部运行。没有该参数的 CLI,在自身沙箱允许时通过完整路径访问它们。

分别提交每个仓库

在「更改」标签页中,仓库选择器列出项目文件夹以及每个属于 git 仓库的关联文件夹。选中一个即可查看它的 diff,然后暂存、提交并推送。

手机上也一样

从 AgentsRoom 移动应用启动的代理会收到相同的参数和相同的简报,因为启动是由电脑端准备的。手机在项目菜单中显示关联文件夹,它的「更改」界面也提供关联仓库。

启动时检查

磁盘上找不到的文件夹(比如在已拔出的硬盘上)会带着警告留在列表中,启动时被跳过,并在终端里显示一行说明。项目文件夹本身和重复的文件夹会被拒绝。

AgentsRoom 的项目设置、常规、关联文件夹:两个关联到 my-shop 项目的文件夹 my-shop-api 和 shared-ui,一个「添加文件夹」按钮,以及说明 Claude Code、Codex、Copilot、Antigravity、Kimi 和 Mistral Vibe 会在启动时收到它们的提示
项目设置「常规」中的「关联文件夹」卡片:两个仓库关联到项目,各自留在原处。列表下方的提示说明哪些 CLI 通过参数收到它们,以及其他 CLI 如何访问它们。

工作原理

四个步骤,前两步每个项目只需做一次。

  1. 1

    打开项目设置

    「项目设置」、「常规」、「关联文件夹」。这里会说明哪些 CLI 通过参数收到文件夹,以及其他 CLI 如何访问它们。

  2. 2

    添加文件夹

    「添加文件夹」会打开系统的文件夹选择器,文件夹会立即保存。之后点它旁边的叉号即可把它从项目中移除:磁盘上什么都不会改变。

  3. 3

    启动代理

    像平时一样启动项目中的任意代理:从代理列表、从待办工单或从你的手机。它在项目文件夹中启动,同时也拥有关联文件夹。

  4. 4

    分别审查并提交每个仓库

    打开「更改」标签页并选择一个仓库:项目文件夹或某个关联文件夹。阅读它的 diff,然后就在那里暂存、提交并推送。每个文件夹都保留自己的历史。

AgentsRoom 的「更改」标签页:仓库选择器选中 my-shop-api(关联文件夹),显示关联文件夹提示、有 2 处更改的 main 分支,以及两个被修改的文件 products.ts 和 shipping.ts
打开一个关联仓库时的「更改」标签页:在仓库选择器中选中它,分支、更改和提交按钮就都是它自己的。自动提交和每个工单一个 worktree 仍只作用于项目文件夹。

Claude Code 和 Codex 本来就能添加目录。区别在这里

Claude Code 在启动时接受 --add-dir,在会话中接受 /add-dir,并在设置文件的 additionalDirectories 中保存一个持久列表。添加的目录按照与工作目录相同的权限规则获得文件访问权限。对于通过 --add-dir 或 /add-dir 传入的目录,它还会加载其中的技能、命令和子代理,但不会加载它的 CLAUDE.md,除非设置了 CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1;设置文件中列出的目录只获得文件访问权限。已于 2026 年 10 月对照 Claude Code 文档和 2.1.300 版本验证。

Codex 也有 --add-dir,可以让主工作区之外的另一个目录变为可写,持久列表则放在 config.toml 中 sandbox_workspace_write 下的 writable_roots(codex-cli 0.162.1)。GitHub Copilot CLI、Antigravity CLI、Kimi Code 和 Mistral Vibe 也都有各自的 --add-dir。

所以参数本身并不新鲜。AgentsRoom 增加的是:保存在项目上的列表,在每次启动时以每个 CLI 期望的形式传给每个代理(Claude Code 要求参数和文件夹连成一体,比如 --add-dir=/work/api,否则这个选项会吞掉紧随其后的提示词),给没有该参数的 CLI 同样的简报,从手机启动的代理也拿到同样的文件夹,以及一个能分别提交每个仓库的「更改」标签页。AgentsRoom 不会替你设置 CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD。

需要知道的事

  • 工单完成时的自动提交、每个工单一个 worktree,以及团队步骤的差异,都只作用于项目文件夹。在关联文件夹中,你需要手动审查和提交。
  • 这个列表按电脑分别保存,因为像 D:\Games\UE5 这样的路径在另一台机器上毫无意义。请在你的其他电脑上重新添加这些文件夹。
  • 通过 SSH 在远程服务器上启动的代理不会收到关联文件夹:它们是这台电脑上的路径。它的终端里会有一行说明。
  • OpenCode、Aider、Grok Build、Amp、oh-my-pi、Freebuff、Devin 和 Cursor 没有用于额外目录的参数。它们的代理从简报中得知这些文件夹,只有在自身沙箱允许时才能通过完整路径访问它们。
  • 手机可以查看列表,但不能编辑:文件夹要用电脑上的文件夹选择器来选。
  • 每个项目最多十个文件夹,因为在 Windows 上启动命令有长度限制。

常见问题

如何让 Claude Code 访问多个目录?

在 Claude Code 本身中:启动时在 --add-dir 后面跟上路径,会话中使用 /add-dir,或者在设置文件的 additionalDirectories 中保存一个持久列表。在 AgentsRoom 中,只需把这些文件夹作为项目的关联文件夹添加一次(「项目设置」、「常规」、「关联文件夹」):此后项目中的每个 Claude Code 代理启动时都会为每个文件夹带上一个 --add-dir,其他拥有这个参数的 CLI 的代理也一样。

Codex 能跨多个仓库工作吗?

可以。Codex 在一个工作区中启动,--add-dir 让它旁边的另一个目录变为可写,config.toml 中的 writable_roots 则保存一个持久列表。AgentsRoom 为项目中的每个 Codex 代理、为每个关联文件夹传入 --add-dir,包括代理恢复会话的时候,它的简报还会告诉它要在每个仓库内部运行 git。

一个项目可以包含多个 git 仓库吗?

可以。项目保留它的主文件夹,代理在这里启动,再关联其他仓库。每个仓库都保留自己的版本控制。在「更改」标签页中,仓库选择器可以在项目文件夹和每个关联仓库之间切换,用来阅读 diff、提交和推送。

我的文件夹会被移动、复制或创建符号链接吗?

不会。AgentsRoom 只保存它们的路径,并在启动时传给代理。添加或移除关联文件夹时,磁盘上什么都不会改变。

哪些代理 CLI 会收到关联文件夹?

Claude Code、Codex、GitHub Copilot CLI、Antigravity CLI、Kimi Code 和 Mistral Vibe 通过各自的 --add-dir 参数收到每个文件夹。OpenCode、Aider、Grok Build、Amp、oh-my-pi、Freebuff、Devin 和 Cursor 没有这样的参数:它们从简报中得知这些文件夹,并在沙箱允许时通过完整路径打开它们。

代理会读取关联文件夹里的 CLAUDE.md 吗?

默认不会。Claude Code 会加载通过 --add-dir 传入的目录中的技能、命令和子代理,但只有在设置了 CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 时才会加载它的 CLAUDE.md,而 AgentsRoom 不会替你设置。每个代理都一定会收到的是简报:每个关联文件夹在哪里,它属于这个项目,以及它保留自己的版本控制。

worktree 和自动提交会覆盖关联文件夹吗?

不会,它们只作用于项目文件夹:每个工单一个 worktree、工单完成时的自动提交,以及团队步骤的差异。在关联文件夹中,请在「更改」标签页里手动审查和提交。

关联文件夹会跟着我到其他电脑上吗?

不会。这个列表保存在你创建它的那台电脑上,因为文件夹路径只在那里存在。通过 SSH 在远程服务器上启动的代理也收不到这些文件夹。项目的其余部分,包括它的代理、待办和设置,照常跟随你的账号。

它能在 Windows 和 Linux 上使用吗?

能,在 macOS、Windows 和 Linux 上都可以。在 Windows 上,盘符和两种斜杠都能识别,并且每个 --add-dir 都会为 PowerShell 加上引号。

你可能还会喜欢

把整个项目交给你的代理

下载 AgentsRoom,把你的主仓库作为项目打开,然后在「项目设置」、「常规」、「关联文件夹」中关联其他仓库。

免费下载 AgentsRoom

配套应用:随时随地监控你的 Agent

使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。

获取扩展程序
Chrome Web Store

把 Bug 和需求直接发送到您的公开待办清单。

多项目管理
多供应商
多代理运行
实时状态
文件差异与提交
移动应用
实时预览
代理团队
浏览器自动化
Backlog 驱动开发
提示词库
技能库
查看所有功能