Installer for BMAD expansion packs
Project description
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-nameformat - 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:
- Validates source pack and target project
- Copies files to hidden
.bmad-pack-name/directory - Generates SHA-256 hashes for integrity checking
- Creates installation manifests
- Updates
.bmad-core/install-manifest.yaml - 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.yamlfile
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.yamlexists in source directory - Verify required fields:
name,version
Target Not Valid BMAD Project
- Check for
.bmad-core/directory - Verify
.bmad-core/install-manifest.yamlexists
Symlink Creation Failed
- 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.yamlis writable
License
MIT License - see LICENSE file for details.
Support
For issues and feature requests, please visit the GitHub repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bmad_pack_installer-1.1.0.tar.gz.
File metadata
- Download URL: bmad_pack_installer-1.1.0.tar.gz
- Upload date:
- Size: 75.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3948f1ae6a28fab34ad8bef7093c872da0afea792bd2a908c113e1a2fec5a22
|
|
| MD5 |
ff9131d9e247dba52c3cb23d425347cf
|
|
| BLAKE2b-256 |
80f6ed01185ab19d7dee551b38d315a5fa74b37e2ad9fb67bccb68b8f68a4f5d
|
File details
Details for the file bmad_pack_installer-1.1.0-py3-none-any.whl.
File metadata
- Download URL: bmad_pack_installer-1.1.0-py3-none-any.whl
- Upload date:
- Size: 19.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c89a14c0f33e9d129044f196bfbd580e4ab4d74b9e9fb95960ac2696b98d00e3
|
|
| MD5 |
ec555220e2c9684b53a50525a00dd1bb
|
|
| BLAKE2b-256 |
96044f69b73c849184c85eceb8e5e53b8314a03214457a5c930f40f2a6f71bd5
|