--- title: "安装自定义和社区模块" description: 从社区注册表、Git 仓库或本地路径安装第三方模块 sidebar: order: 3 --- 使用 BMad 安装程序从社区注册表、第三方 Git 仓库或本地文件路径添加模块。 ## 何时使用 - 从 BMad 注册表安装社区贡献的模块 - 从第三方 Git 仓库安装模块(GitHub、GitLab、Bitbucket、自托管) - 使用 BMad Builder 测试本地开发中的模块 - 从私有或自托管 Git 服务器安装模块 :::note[前置条件] 需要 [Node.js](https://nodejs.org) v20+ 和 `npx`(npm 自带)。自定义和社区模块可以在全新安装时选择,也可以添加到现有安装中。 ::: ## 社区模块 社区模块收录在 [BMad 插件市场](https://github.com/bmad-code-org/bmad-plugins-marketplace)。它们按类别组织,并锁定在经过审核的 commit 上以确保安全。 ### 1. 运行安装程序 ```bash npx bmad-method install ``` ### 2. 浏览社区目录 选择官方模块后,安装程序会询问: ``` Would you like to browse community modules? ``` 选择 **Yes** 进入目录浏览器。你可以: - 按类别浏览 - 查看推荐模块 - 查看所有可用模块 - 按关键词搜索 ### 3. 选择模块 从任意类别中选取模块。安装程序显示描述、版本和信任等级。已安装的模块会预选以便更新。 ### 4. 继续安装 选择社区模块后,安装程序将继续到自定义来源,然后是工具/IDE 配置及其余安装流程。 ## 自定义来源(Git URL 和本地路径) 自定义模块可以来自任何 Git 仓库或本地目录。安装程序会解析来源、分析模块结构,并将其与其他模块一起安装。 ### 交互式安装 安装过程中,在社区模块步骤之后,安装程序会询问: ``` Would you like to install from a custom source (Git URL or local path)? ``` 选择 **Yes**,然后提供来源: | 输入类型 | 示例 | | -------- | ---- | | HTTPS URL(任意主机) | `https://github.com/org/repo` | | HTTP URL(任意主机) | `http://host/org/repo` | | 带子目录的 HTTPS URL | `https://github.com/org/repo/tree/main/my-module` | | SSH URL | `git@github.com:org/repo.git` | | 本地路径 | `/Users/me/projects/my-module` | | 使用 ~ 的本地路径 | `~/projects/my-module` | 安装程序会克隆仓库(URL 来源)或直接从磁盘读取(本地路径),然后展示发现的模块供你选择。 ### 非交互式安装 使用 `--custom-source` 标志从命令行安装自定义模块: ```bash npx bmad-method install \ --directory . \ --custom-source /path/to/my-module \ --tools claude-code \ --yes ``` 提供 `--custom-source` 但未指定 `--modules` 时,只安装 core 和自定义模块。要同时包含官方模块,需添加 `--modules`: ```bash npx bmad-method install \ --directory . \ --modules bmm \ --custom-source https://gitlab.com/myorg/my-module \ --tools claude-code \ --yes ``` 多个来源可用逗号分隔: ```bash --custom-source /path/one,https://github.com/org/repo,/path/two ``` ## 模块发现机制 安装程序使用两种模式在来源中查找可安装的模块: | 模式 | 触发条件 | 行为 | | ---- | -------- | ---- | | 发现模式 | 来源包含 `.claude-plugin/marketplace.json` | 列出清单中的所有插件;你选择要安装哪些 | | 直接模式 | 未找到 marketplace.json | 扫描目录中的 skill(包含 `SKILL.md` 的子目录),作为单个模块解析 | 发现模式适用于已发布的模块。直接模式适合本地开发时指向 skills 目录。 :::note[关于 `.claude-plugin/`] `.claude-plugin/marketplace.json` 路径是多个 AI 工具安装程序采用的标准约定,用于插件可发现性。它不依赖 Claude,不使用 Claude API,也不影响你使用哪个 AI 工具。任何包含此文件的模块都可以被遵循此约定的安装程序发现。 ::: ## 本地开发工作流 如果你正在使用 [BMad Builder](https://github.com/bmad-code-org/bmad-builder) 构建模块,可以直接从工作目录安装: ```bash npx bmad-method install \ --directory ~/my-project \ --custom-source ~/my-module-repo/skills \ --tools claude-code \ --yes ``` 本地来源通过路径引用,不会复制到缓存。当你更新模块源码并重新安装时,安装程序会获取最新变更。 :::caution[来源移除] 如果你在安装后删除了本地来源目录,`_bmad/` 中已安装的模块文件会保留。在恢复来源路径之前,该模块在更新时会被跳过。 ::: ## 安装结果 安装后,自定义模块与官方模块一起出现在 `_bmad/` 中: ``` your-project/ ├── _bmad/ │ ├── core/ # 内置核心模块 │ ├── bmm/ # 官方模块(如已选择) │ ├── my-module/ # 你的自定义模块 │ │ ├── my-skill/ │ │ │ └── SKILL.md │ │ └── module-help.csv │ └── _config/ │ └── manifest.yaml # 跟踪所有模块、版本和来源 └── ... ``` manifest 记录每个自定义模块的来源(Git 来源为 `repoUrl`,本地来源为 `localPath`),以便快速更新时能重新定位来源。 ## 更新自定义模块 自定义模块参与正常的更新流程: - **快速更新**(`--action quick-update`):从原始来源刷新所有模块。基于 Git 的模块会重新拉取;本地模块会从来源路径重新读取。 - **完整更新**:重新运行模块选择,你可以添加或移除自定义模块。 ## 创建自己的模块 使用 [BMad Builder](https://github.com/bmad-code-org/bmad-builder) 创建可供他人安装的模块: 1. 运行 `bmad-module-builder` 搭建模块结构 2. 使用各种 BMad Builder 工具添加 skill、agent 和 workflow 3. 发布到 Git 仓库或共享文件夹集合 4. 他人使用 `--custom-source ` 安装 要让模块支持发现模式,请在仓库根目录包含 `.claude-plugin/marketplace.json`(这是跨工具约定,非 Claude 专属)。格式详见 [BMad Builder 文档](https://github.com/bmad-code-org/bmad-builder)。 :::tip[先在本地测试] 开发期间,使用本地路径安装模块以快速迭代,发布到 Git 仓库之前先确认一切正常。 :::