Custom Content Installation
This guide explains how to create and install custom BMAD content including agents, workflows, and modules. Custom content extends BMADâs functionality with specialized tools and workflows that can be shared across projects or teams.
For detailed information about the different types of custom content available, see Custom Content Types.
You can find example custom modules in the samples/sample-custom-modules/ folder of the repository. Download either of the sample folders to try them out.
Content Types Overview
Section titled âContent Types OverviewâBMAD Core supports several categories of custom content:
- Custom Stand Alone Modules
- Custom Add On Modules
- Custom Global Modules
- Custom Agents
- Custom Workflows
Making Custom Content Installable
Section titled âMaking Custom Content InstallableâCustom Modules
Section titled âCustom ModulesâTo create an installable custom module:
-
Folder Structure
- Create a folder with a short, abbreviated name (e.g.,
cisfor Creative Intelligence Suite) - The folder name serves as the module code
- Create a folder with a short, abbreviated name (e.g.,
-
Required File
- Include a
module.yamlfile in the root folder (this drives questions for the final generated config.yaml at install target)
- Include a
-
Folder Organization Follow these conventions for optimal compatibility:
module-code/module.yamlagents/workflows/tools/templates/...agents/- Agent definitionsworkflows/- Workflow definitions- Additional custom folders are supported but following conventions is recommended for agent and workflow discovery
Note: Full documentation for global modules and add-on modules will be available as support is finalized.
Standalone Content (Agents, Workflows, Tasks, Tools, Templates, Prompts)
Section titled âStandalone Content (Agents, Workflows, Tasks, Tools, Templates, Prompts)âFor standalone content that isnât part of a cohesive module collection, follow this structure:
-
Module Configuration
- Create a folder with a
module.yamlfile (similar to custom modules) - Add the property
unitary: truein the module.yaml- The
unitary: trueproperty indicates this is a collection of potentially unrelated items that donât depend on each other
- The
- Any content you add to this folder should still be nested under workflows and agents - but the key with stand alone content is they do not rely on each other.
- Agents do not reference other workflows even if stored in a unitary:true module. But unitary Agents can have their own workflows in their sidecar, or reference workflows as requirements from other modules - with a process known as workflow vendoring. Keep in mind, this will require that the workflow referenced from the other module would need to be available for the end user to install, so its recommended to only vendor workflows from the core module, or official bmm modules.
- Create a folder with a
-
Folder Structure Organize content in specific named folders:
module-name/module.yaml # Contains unitary: trueagents/workflows/templates/tools/tasks/prompts/ -
Individual Item Organization Each item should have its own subfolder:
my-custom-stuff/module.yamlagents/larry/larry.agent.mdcurly/curly.agent.mdmoe/moe.agent.mdmoe/moe-sidecar/memories.csv
Future Feature: Unitary modules will support selective installation, allowing users to pick and choose which specific items to install.
Note: Documentation explaining the distinctions between these content types and their specific use cases will be available soon.
Installation Process
Section titled âInstallation ProcessâPrerequisites
Section titled âPrerequisitesâEnsure your content follows the proper conventions and includes a module.yaml file (only one per top-level folder).
New Project Installation
Section titled âNew Project InstallationâWhen setting up a new BMAD project:
- The installer will prompt:
Would you like to install a local custom module (this includes custom agents and workflows also)? (y/N) - Select âyâ to specify the path to your module folder containing
module.yaml
Existing Project Modification
Section titled âExisting Project ModificationâTo add custom content to an existing BMAD project:
- Run the installer against your project location
- Select
Modify BMAD Installation - Choose the option to add, modify, or update custom modules
Upcoming Features
Section titled âUpcoming Featuresâ- Unitary Module Selection: For modules with
type: unitary(instead oftype: module), youâll be able to select specific items to install - Add-on Module Dependencies: The installer will verify and install dependencies for add-on modules automatically
Quick Updates
Section titled âQuick UpdatesâWhen updates to BMAD Core or core modules (BMM, CIS, etc.) become available, the quick update process will:
- Apply available updates to core modules
- Recompile all agents with customizations from the
_config/agentsfolder - Retain your custom content from a cached location
- Preserve your existing configurations and customizations
This means you donât need to keep the source module files locally. When updates are available, simply point to the updated module location during the update process.
Important Considerations
Section titled âImportant ConsiderationsâModule Naming Conflicts
Section titled âModule Naming ConflictsâWhen installing unofficial modules, ensure unique identification to avoid conflicts:
- Module Codes: Each module must have a unique code (e.g., donât use
bmmfor custom modules) - Module Names: Avoid using names that conflict with existing modules
- Multiple Custom Modules: If creating multiple custom modules, use distinct codes for each
Examples of conflicts to avoid:
- Donât create a custom module with code
bmm(already used by BMad Method) - Donât name multiple custom modules with the same code like
mca
Best Practices
Section titled âBest Practicesâ- Use descriptive, unique codes for your modules
- Document any dependencies your custom modules have
- Test custom modules in isolation before sharing
- Consider version numbering for your custom content to track updates