BMAD-METHOD/tools/installer
Dicky Moore da90e1b2e2 feat(installer): package automator runtime from source 2026-05-01 11:32:11 +01:00
..
commands feat(installer): add --set and --list-options for non-interactive config (#2354) 2026-04-28 20:15:57 -05:00
core feat(installer): package automator runtime from source 2026-05-01 11:32:11 +01:00
ide feat(installer): package automator runtime from source 2026-05-01 11:32:11 +01:00
modules feat(installer): package automator runtime from source 2026-05-01 11:32:11 +01:00
README.md feat(installer): package automator runtime from source 2026-05-01 11:32:11 +01:00
bmad-cli.js fix(publish): advance @next dist-tag after stable release (#2320) 2026-04-26 10:30:41 -05:00
cli-utils.js chore(installer): remove 1,683 lines of dead code (#2247) 2026-04-10 20:24:50 -07:00
file-ops.js fix(installer): replace fs-extra with native node:fs to prevent file loss 2026-04-13 00:44:28 -05:00
fs-native.js fix(installer): add missing sync and async methods to fs-native wrapper 2026-04-13 09:59:41 -05:00
install-messages.yaml feat(installer): overhaul branding, versioning, and skill cleanup (#2223) 2026-04-07 02:31:36 -05:00
list-options.js feat(installer): add --set and --list-options for non-interactive config (#2354) 2026-04-28 20:15:57 -05:00
message-loader.js fix(installer): replace fs-extra with native node:fs to prevent file loss 2026-04-13 00:44:28 -05:00
project-root.js fix(installer): route community installs through PluginResolver when marketplace.json ships (#2331) 2026-04-26 22:50:47 -05:00
prompts.js chore(installer): remove 1,683 lines of dead code (#2247) 2026-04-10 20:24:50 -07:00
set-overrides.js feat(installer): add --set and --list-options for non-interactive config (#2354) 2026-04-28 20:15:57 -05:00
ui.js feat(installer): package automator runtime from source 2026-05-01 11:32:11 +01:00
yaml-format.js refactor(installer): restructure installer with clean separation of concerns (#2129) 2026-03-27 06:50:07 -06:00

README.md

BMad CLI Tool

Installing external repo BMad official modules

For external official modules to be discoverable during install, ensure an entry for the external repo is added to the marketplace registry/official.yaml source of truth. Add the same entry to modules/registry-fallback.yaml only when BMAD-METHOD needs a bundled fallback or a staged registry supplement.

For community modules - this is handled through the marketplace community registry.

Use module-definition for conventional module repos with module.yaml. Use source-root for pure skill bundles that should be copied directly into _bmad/<module-code>/.

Some modules also need packaging files that live outside the skill payload. BMad Automator (bma) is the current example: BMAD-METHOD copies its runtime files from source/, but the runtime behavior itself remains owned by bmad-automator.

Post-Install Notes

Modules can display setup guidance to users after configuration is collected during npx bmad-method install. Notes are defined in the module's own module.yaml — no changes to the installer are needed.

Simple Format

Always displayed after the module is configured:

post-install-notes: |
  Thank you for choosing the XYZ Cool Module
  For Support about this Module call 555-1212  

Conditional Format

Display different messages based on a config question's answer:

post-install-notes:
  config_key_name:
    value1: |
      Instructions for value1...      
    value2: |
      Instructions for value2...      

Values without an entry (e.g., none) display nothing. Multiple config keys can each have their own conditional notes.

Example: TEA Module

The TEA module uses the conditional format keyed on tea_browser_automation:

post-install-notes:
  tea_browser_automation:
    cli: |
      Playwright CLI Setup:
        npm install -g @playwright/cli@latest
        playwright-cli install --skills      
    mcp: |
      Playwright MCP Setup (two servers):
        1. playwright    — npx @playwright/mcp@latest
        2. playwright-test — npx playwright run-test-mcp-server      
    auto: |
      Playwright CLI Setup:
        ...
      Playwright MCP Setup (two servers):
        ...      

When a user selects auto, they see both CLI and MCP instructions. When they select none, nothing is shown.