Appearance
Kiro IDE 支持在单个工作区中同时打开多个根目录(multi-root workspaces),适合需要同时操作主项目与共享工具库的开发场景。每个根目录下的 .kiro 文件夹独立存储各自的 Specs、Steering 文件、Hooks 和 MCP server 配置,Kiro 会将它们聚合展示为统一列表。了解各组件在多根模式下的具体行为,有助于避免配置冲突和意外触发。
Kiro IDE 多根工作区:跨仓库开发的配置与行为说明
Kiro 默认以单根目录模式运行,但也支持 multi-root workspaces——在同一个工作区窗口中同时管理多个独立项目或代码库。
创建多根工作区
有两种方式将新目录加入当前工作区:
- 顶部菜单:File > Add Folder to Workspace...,选择目标文件夹
- 直接将文件夹从 macOS Finder 或 Windows 文件资源管理器拖入 Kiro 的 Explorer 视图
加入后,两个根目录会并列显示在 Explorer 中,各自保持独立的文件结构。
核心行为
Kiro 会智能解析多根目录下的文件路径,确保导航和更新操作正确定位到对应的根目录。
Codebase Indexing 和 Repository Maps 在多根模式下无缝工作,索引包含所有根目录的代码,可在 Chat 中像单根模式一样直接引用。
使用 #file 上下文命令时,如果多个根目录下存在同名文件,Kiro 会列出所有匹配项及其路径,供你手动选择正确的文件。
Specs
Kiro 会从每个根目录的 .kiro 文件夹中读取所有 Spec 文件,并在 Kiro 面板的 Specs 区域聚合展示为统一列表,每条 Spec 旁边会标注所属根目录名称。
- 可以让 Kiro 处理任意根目录下的 Spec
- 新建 Spec 时,Kiro 会自动判断应放入哪个根目录
Steering 文件
Steering 文件 同样从每个根目录的 .kiro 文件夹读取,聚合显示在 Kiro 面板的 Agent Steering 区域(Workspace 分组下),每个文件旁标注所属根目录。
触发规则:
- Always Included(始终加载) 指令的 Steering 文件:无论 Agent 当前操作哪个根目录,都会加载
- Conditional Inclusion(条件加载) 指令的 Steering 文件:仅当 Agent 操作的文件位于该 Steering 文件所在根目录,且匹配 inclusion 模式时才加载
新建 Workspace Steering 文件时,会提示选择目标根目录。
Hooks
Hooks 从每个根目录的 .kiro 文件夹读取,统一显示在 Kiro 面板的 Agent Hooks 区域,每条 Hook 旁标注所属根目录。
触发规则:File Create、File Save、File Delete 类 Hook 只有在 Agent 修改的文件与该 Hook 定义在同一根目录下时才会触发。
新建 Hook 时,会提示选择目标根目录。
MCP servers
MCP server 配置从每个根目录的 .kiro 文件夹读取,统一列出在 Kiro 面板的 MCP Servers 区域。
注意事项:
- 所有根目录中定义的 MCP server 都会在启动时初始化
- 如果两个根目录定义了同名 MCP server,以最后一个根目录的配置为准
- 所有 MCP server 的启动工作目录统一为第一个根目录,与 server 定义所在的根目录无关
查看 MCP 配置:点击 MCP Servers 区域的 "Open MCP config" 按钮,默认打开用户级(全局)配置文件;点击 "Workspace Config" 按钮查看 workspace 级配置。在多根工作区中点击后会提示选择要查看哪个根目录的配置。
常见问题
Q:多根工作区的 .kiro 文件夹相互独立还是共享?
A:完全独立。每个根目录下的 .kiro 文件夹只管理该根目录的配置,Kiro 会在界面上聚合展示,但存储和触发逻辑各自隔离,不会互相干扰。
Q:两个根目录定义了相同名称的 MCP server,哪个生效?
A:后定义的根目录(在工作区中排列靠后的)中的配置生效。建议为不同根目录的同类 MCP server 使用不同的名称,避免意外覆盖。
Q:在多根模式下新建 Spec 或 Steering 文件,Kiro 如何决定放到哪个根目录?
A:Spec 由 Kiro 根据当前操作上下文自动判断;Steering 文件和 Hook 则会显示一个根目录选择器,由你手动指定。建议在新建前先确认当前操作的文件属于哪个根目录,以便做出正确选择。