Skip to main content

BMAD Expansion Pack Installer

A modern Python tool for installing BMAD (Breakthrough Method for Agile Ai Driven Development) expansion packs with proper directory structure, symbolic links, and manifest management.

Features

  • Installs BMAD expansion packs with proper directory structure
  • Creates symbolic links for Claude Code integration
  • Generates hidden directories using .bmad-pack-name format
  • Provides SHA-256 hash generation and verification
  • Creates and updates installation manifests
  • Excludes development files and directories automatically
  • Supports Windows, macOS, and Linux
  • Displays progress indicators during installation
  • Validates source packs and target projects

Installation

From PyPI

# Install with pip
pip install bmad-pack-installer

# Install with uv
uv add bmad-pack-installer

# Use the installed tool
bmad-pack-installer deploy ./expansion-pack-source ./target-project

From GitHub Source

# Clone the repository
git clone https://github.com/najibninaba/bmad-pack-installer.git
cd bmad-pack-installer

# Install in virtual environment with uv
uv venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -e .

# Install in virtual environment with pip
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e .

Direct Usage (No Installation)

# Run directly with uvx
uvx bmad-pack-installer deploy ./expansion-pack-source ./target-project

# Install as uv tool
uv tool install bmad-pack-installer
bmad-pack-installer deploy ./expansion-pack-source ./target-project

Usage

Basic Deployment

# Deploy expansion pack to BMAD project
uvx bmad-pack-installer deploy ./bmad-aisg-aiml /path/to/project

Advanced Options

# Custom pack and command names
uvx bmad-pack-installer deploy ./source /target \
  --pack-name=ai-ml-engineering \
  --command-name=bmadAISG

# Dry run to preview changes
uvx bmad-pack-installer deploy ./source /target --dry-run

# Force reinstall over existing pack
uvx bmad-pack-installer deploy ./source /target --force

# Skip certain installation steps
uvx bmad-pack-installer deploy ./source /target \
  --skip-core-update \
  --skip-symlinks

# Configure for different IDE
uvx bmad-pack-installer deploy ./source /target --ide=cursor

Validation Commands

# Check if directory is a valid BMAD project
uvx bmad-pack-installer check /path/to/project

# Validate expansion pack structure
uvx bmad-pack-installer validate ./expansion-pack

Command Line Options

Option Description
--pack-name Override pack name (auto-prepends 'bmad-' if missing)
--command-name Claude command name (default: from config.yaml)
--ide IDE to configure: claude-code, cursor, windsurf
--skip-core-update Skip updating .bmad-core/install-manifest.yaml
--skip-symlinks Skip creating symbolic links
--force Overwrite existing installation
--dry-run Show what would be installed without changes
--verbose Enable detailed logging

Expansion Pack Requirements

Your expansion pack must have this structure:

bmad-expansion-pack/
├── config.yaml                 # Required: Pack metadata
├── agents/                     # AI agent definitions
│   └── *.md
├── tasks/                      # Task definitions  
│   └── *.md
├── templates/                  # Document templates
│   └── *.yaml
├── checklists/                 # Validation checklists
│   └── *.md
├── workflows/                  # Multi-step workflows
│   └── *.yaml
├── agent-teams/               # Agent team configurations
│   └── *.yaml
├── data/                      # Reference data
│   └── *.md
└── web-bundles/              # Pre-built UI bundles
    └── *.txt

Required config.yaml

name: expansion-pack-name        # Will get 'bmad-' prefix
version: 1.0.0                   # Semantic version
description: Pack description    # Human-readable description
slashPrefix: commandName         # Claude command name (optional)

Deployment Process

The installer performs these steps:

  1. Validates source pack and target project
  2. Copies files to hidden .bmad-pack-name/ directory
  3. Generates SHA-256 hashes for integrity checking
  4. Creates installation manifests
  5. Updates .bmad-core/install-manifest.yaml
  6. Creates symbolic links in .claude/commands/

Examples

Deploying the AI/ML Engineering Pack

# Basic deployment
uvx bmad-pack-installer deploy ./bmad-aisg-aiml ./my-project

# Results in:
# - Hidden directory: ./my-project/.bmad-aisg-aiml/
# - Claude commands: ./my-project/.claude/commands/bmadAISG/
# - Updated manifests and symlinks

Dry Run Preview

uvx bmad-pack-installer deploy ./pack ./project --dry-run

# Output:
# DRY RUN: Would deploy expansion pack 'bmad-pack-name'
# Target directory: .bmad-pack-name
# Files to deploy: 47
# Potential symlinks: 12
# Command name: packCommand

Target Project Requirements

The target project must be BMAD-enabled with:

  • .bmad-core/ directory
  • .bmad-core/install-manifest.yaml file

Development

To develop or contribute to this tool:

# Clone and setup
git clone <repository>
cd bmad-pack-installer

# Install in development mode
uv pip install -e .

# Run tests
uv run pytest

# Format code
uv run black src/
uv run flake8 src/

Troubleshooting

Pack Not Recognized

  • Ensure config.yaml exists in source directory
  • Verify required fields: name, version

Target Not Valid BMAD Project

  • Check for .bmad-core/ directory
  • Verify .bmad-core/install-manifest.yaml exists
  • On Windows: Run as Administrator or enable Developer Mode
  • Fallback: Files are copied instead of symlinked

Permission Errors

  • Check write permissions to target directory
  • Ensure .bmad-core/install-manifest.yaml is writable

License

MIT License - see LICENSE file for details.

Support

For issues and feature requests, please visit the GitHub repository.

Metadata

Release files for bmad-pack-installer 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bmad-pack-installer 1.1.0
File Size Uploaded
bmad_pack_installer-1.1.0.tar.gz 75.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bmad-pack-installer 1.1.0
File Interpreter ABI Platform
bmad_pack_installer-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 95.0 kB

Release files / bmad_pack_installer-1.1.0.tar.gz

Download URL bmad_pack_installer-1.1.0.tar.gz
Size 75.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a3948f1ae6a28fab34ad8bef7093c872da0afea792bd2a908c113e1a2fec5a22
BLAKE2b-256 checksum
How to use checksums
80f6ed01185ab19d7dee551b38d315a5fa74b37e2ad9fb67bccb68b8f68a4f5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / bmad_pack_installer-1.1.0-py3-none-any.whl

Download URL bmad_pack_installer-1.1.0-py3-none-any.whl
Size 19.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c89a14c0f33e9d129044f196bfbd580e4ab4d74b9e9fb95960ac2696b98d00e3
BLAKE2b-256 checksum
How to use checksums
96044f69b73c849184c85eceb8e5e53b8314a03214457a5c930f40f2a6f71bd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page