Skip to content
πŸ€– AI-optimized docs: llms-full.txt

Distribute Your Module

This guide walks through publishing a BMad module to GitHub with a .claude-plugin/marketplace.json manifest so anyone can install it in one command.

  • You have a module ready to share publicly or within your organization
  • Others should be able to install it through the BMad installer
  • The repository may host one module or several
  • The module is for personal use in a single project. Keep the skills in your project.
  • The module isn’t stable yet. Distribute once it is.

The BMad installer discovers modules through a .claude-plugin/marketplace.json manifest at the repository root. Create Module (CM) generates this file for you. Verify and complete it before publishing.

This format works for any skills-capable platform, not just Claude.

A minimal manifest for a single module:

{
"name": "my-module",
"owner": { "name": "Your Name" },
"license": "MIT",
"homepage": "https://github.com/your-github/my-module",
"repository": "https://github.com/your-github/my-module",
"keywords": ["bmad", "your-domain"],
"plugins": [
{
"name": "my-module",
"source": "./",
"description": "What your module does in one sentence.",
"version": "1.0.0",
"author": { "name": "Your Name" },
"skills": [
"./skills/my-agent",
"./skills/my-workflow"
]
}
]
}
FieldPurpose
namePackage identifier, lowercase and hyphenated
plugins[].sourcePath from repo root to the module’s skill folder parent
plugins[].skillsArray of relative paths to each skill directory
plugins[].versionSemantic version; bump on each release

For repositories that ship multiple modules, add an entry to the plugins array for each one, pointing to its own skill directories.

Organize the repository so the installer can locate skills relative to marketplace.json.

my-module/
β”œβ”€β”€ .claude-plugin/
β”‚ └── marketplace.json
β”œβ”€β”€ skills/
β”‚ β”œβ”€β”€ my-agent/
β”‚ β”‚ β”œβ”€β”€ SKILL.md
β”‚ β”‚ β”œβ”€β”€ prompts/
β”‚ β”‚ └── scripts/
β”‚ β”œβ”€β”€ my-workflow/
β”‚ β”‚ β”œβ”€β”€ SKILL.md
β”‚ β”‚ └── prompts/
β”‚ └── bmad-mymod-setup/ # Generated by Create Module (CM)
β”‚ β”œβ”€β”€ SKILL.md
β”‚ β”œβ”€β”€ assets/
β”‚ β”‚ β”œβ”€β”€ module.yaml
β”‚ β”‚ └── module-help.csv
β”‚ └── scripts/
β”‚ β”œβ”€β”€ merge-config.py
β”‚ β”œβ”€β”€ merge-help-csv.py
β”‚ └── cleanup-legacy.py
β”œβ”€β”€ README.md
└── LICENSE
my-skill/
β”œβ”€β”€ .claude-plugin/
β”‚ └── marketplace.json
β”œβ”€β”€ skills/
β”‚ └── my-skill/
β”‚ β”œβ”€β”€ SKILL.md
β”‚ β”œβ”€β”€ assets/
β”‚ β”‚ β”œβ”€β”€ module-setup.md
β”‚ β”‚ β”œβ”€β”€ module.yaml
β”‚ β”‚ └── module-help.csv
β”‚ β”œβ”€β”€ references/
β”‚ └── scripts/
β”‚ β”œβ”€β”€ merge-config.py
β”‚ └── merge-help-csv.py
β”œβ”€β”€ README.md
└── LICENSE
my-marketplace/
β”œβ”€β”€ .claude-plugin/
β”‚ └── marketplace.json # Multiple entries in plugins[]
β”œβ”€β”€ skills/
β”‚ β”œβ”€β”€ module-a/
β”‚ β”‚ β”œβ”€β”€ skill-one/
β”‚ β”‚ β”œβ”€β”€ skill-two/
β”‚ β”‚ └── bmad-moda-setup/
β”‚ └── module-b/
β”‚ └── standalone-skill/
β”œβ”€β”€ README.md
└── LICENSE

Before publishing, confirm the manifest is accurate.

Every path in the skills array must point to a directory containing a SKILL.md file.

Multi-skill modules need assets/module.yaml and assets/module-help.csv in the setup skill. Standalone modules keep these files in the skill’s own assets/ folder.

"Validate my module at ./skills"

Validate Module (VM) checks for missing files, orphan entries, and other structural problems. Fix anything it flags before publishing.

Push your repository to GitHub. Once the repo is accessible, anyone with permission can install the module.

Anyone can install with:

Terminal window
npx bmad-method install --custom-content https://github.com/your-org/my-module

Users with access install the same way. The installer uses whatever GitHub authentication is configured on the machine.

Tag releases with semantic versions. Installs pull from the default branch unless the user specifies a tag or branch.

After publishing, users can:

  • Install your module with --custom-content via the BMad installer
  • Run the setup skill to register with bmad-help
  • Browse your module’s capabilities through the help system
  • Get configuration prompts defined in module.yaml

Submit your module to the BMad Plugins Marketplace for visibility alongside official modules. A listing isn’t required for installation, but it adds discoverability and a trust tier badge after review.

See the marketplace CONTRIBUTING.md for the submission process.

  • Include a README.md covering what the module does, how to install it, and any external dependencies
  • Add a LICENSE file. MIT is common for open-source BMad modules.
  • Keep the marketplace.json version in sync with your release tags
  • External dependencies (CLI tools, MCP servers) should be documented in the README and detected by your setup skill
  • Run Validate Module (VM) before each release to catch regressions