Skip to main content

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-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

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.yaml is writable

License

MIT License - see LICENSE file for details.

Support

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bmad_pack_installer-1.1.0.tar.gz (75.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bmad_pack_installer-1.1.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

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

Hashes for bmad_pack_installer-1.1.0.tar.gz
Algorithm Hash digest
SHA256 a3948f1ae6a28fab34ad8bef7093c872da0afea792bd2a908c113e1a2fec5a22
MD5 ff9131d9e247dba52c3cb23d425347cf
BLAKE2b-256 80f6ed01185ab19d7dee551b38d315a5fa74b37e2ad9fb67bccb68b8f68a4f5d

See more details on using hashes here.

File details

Details for the file bmad_pack_installer-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bmad_pack_installer-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c89a14c0f33e9d129044f196bfbd580e4ab4d74b9e9fb95960ac2696b98d00e3
MD5 ec555220e2c9684b53a50525a00dd1bb
BLAKE2b-256 96044f69b73c849184c85eceb8e5e53b8314a03214457a5c930f40f2a6f71bd5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page