Automate your BMAD implementation phase with AI-powered orchestration
Inspired by Ralph β because every BMAD project deserves an assistant who never sleeps.
Quick Start β’ Documentation β’ Configuration β’ Contributing
Johnny BMAD orchestrates multiple AI agent sessions to automate your BMAD implementation workflow. From sprint planning through code review and commit, Johnny handles the entire story lifecycle β letting you focus on what matters most.
- β Automates story creation β Generates implementation stories from epics
- β Orchestrates development β Coordinates Dev, Review, and SM agents
- β Manages iterations β Handles dev-review cycles automatically
- β Tracks progress β Saves state for seamless resumption
- β Multi-provider support β Works with Claude, OpenAI, GLM, and more
- β Smart commits β Auto-commits with proper story-based messages
- Node.js 18+ (or Bun)
- BMAD project with
_bmad/folder structure - At least one LLM provider configured (CLI tool or API key)
- Git (optional, for auto-commits)
npm install -g @webeleon/johnny-bmadcd your-bmad-project
johnny-bmadThat's it! Johnny will:
- Check your sprint status
- Let you pick an epic
- For each story: create β implement β review β commit
- Repeat until the epic is complete
On first run, Johnny will guide you through:
- Detecting CLI tools (Claude, Codex, Kimi, etc.)
- Configuring API providers (OpenAI, GLM, custom)
- Discovering available models
- Selecting models for each agent role
| Option | Short | Description |
|---|---|---|
--resume |
-r |
Auto-resume from saved state without prompting |
--verbose |
-v |
Enable debug output for troubleshooting |
--max-iterations N |
-m N |
Max dev-review cycles per story (default: 10) |
--yolo |
-y |
Auto-complete stories when max iterations reached |
--batch |
-b |
Create all stories first, then review (no implementation) [EXPERIMENTAL] |
--dev-only |
-d |
Skip story creation, implement existing stories only [EXPERIMENTAL] |
--sm-model MODEL |
-s |
Model for SM agent (default: opus) |
--story-model MODEL |
-t |
Model for Story Creator (default: opus) |
--dev-model MODEL |
Model for Dev agent (default: sonnet) | |
--review-model MODEL |
-R |
Model for Reviewer (default: opus) |
--reconfigure |
Force run model configuration onboarding | |
--refresh-models |
Refresh model cache (discover available models) | |
--help |
-h |
Show help message |
johnny-bmadCreates stories one at a time, implements them immediately, reviews, and commits.
johnny-bmad --resumePicks up where you left off using saved state from .johnny-bmad-state.json.
johnny-bmad --batchNote: currently an experimental stub β it will print a warning and exit.
johnny-bmad --dev-onlyNote: currently an experimental stub β it will print a warning and exit.
johnny-bmad -m 3 --yoloLimits to 3 dev-review cycles per story, auto-completes if stuck (no prompts).
johnny-bmad --dev-model openai:gpt-4 --review-model opusUses GPT-4 for development, Claude Opus for reviews.
johnny-bmad -v --dev-model sonnetEnables detailed logging for troubleshooting.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Johnny BMAD Orchestrator β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββ
β SM Agent (opus) β
β β’ Check sprint status β
β β’ Validate epic readiness β
βββββββββββββββββββββββββββββββββββββ
β
βΌ
User selects epic
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Story Implementation Loop β
β β
β ββββββββββββββββββββββββββββββββββββββββββββ β
β β Story Creator (opus) β β
β β β’ Generate story from epic β β
β β β’ Define acceptance criteria β β
β ββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββ β
β β Dev Agent (sonnet) β β
β β β’ Implement story requirements β β
β β β’ Write code and tests β β
β ββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βΌ β
β ββββββββββββββββββββββββββββββββββββββββββββ β
β β Reviewer (opus) β β
β β β’ Code review β β
β β β’ Verify acceptance criteria β β
β β β’ Output: REVIEW_PASSED / REVIEW_FAILED β β
β ββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β ββββββββββββ΄βββββββββββ β
β β β β
β PASSED FAILED β
β β β β
β βΌ βΌ β
β ββββββββββββ ββββββββββββββββ β
β β Git β β Loop back β β
β β Commit β β to Dev β β
β ββββββββββββ ββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
Epic Complete β
- Sprint Status Check β SM agent validates current sprint state
- Epic Selection β User chooses which epic to implement
- Story Loop β For each story in the epic:
- Create β Story Creator generates implementation story
- Implement β Dev agent writes code
- Review β Reviewer validates implementation
- Iterate β If review fails, loop back to Dev (max 10 iterations)
- Commit β On pass, commit with
feat(STORY-ID): titleformat
- State Persistence β Progress saved to
.johnny-bmad-state.json - Resume β Can resume from any interruption point
Johnny BMAD supports multiple LLM providers through CLI tools and API keys:
| Provider | Type | Detection | Example Models |
|---|---|---|---|
| Claude | CLI | claude --version |
opus, sonnet, haiku |
| OpenAI Codex | CLI | codex --version |
gpt-5.3-codex |
| Kimi | CLI | kimi --version |
moonshot-v1-8k, 32k, 128k |
| OpenAI | API | API key | gpt-4, gpt-4-turbo, gpt-3.5-turbo |
| GLM | API | API key | glm-4, glm-4-plus, glm-4v |
| Custom | API | User-configured | User-defined |
~/.johnny-bmad/providers.jsonβ Global API keys (shared across projects).johnny-bmad/models.jsonβ Per-project model selection.johnny-bmad-models-cache.jsonβ Model cache (1-hour TTL)
Models can be specified in two ways:
Short name (auto-detects provider):
johnny-bmad --dev-model sonnet # Uses Claude
johnny-bmad --dev-model gpt-4 # Uses OpenAIFull ID (explicit provider):
johnny-bmad --dev-model claude:opus
johnny-bmad --dev-model openai:gpt-4
johnny-bmad --dev-model glm:glm-4Progress is automatically saved to .johnny-bmad-state.json in your project directory. This enables:
- Resume functionality β Continue after interruption
- Progress tracking β Current epic, story index, iteration counts
- Completion history β Track completed stories
To resume:
johnny-bmad --resumegit clone https://github.com/webeleon/johnny-bmad.git
cd johnny-bmad
bun install # or npm installbun run dev # Watch mode development
bun run build # Build to dist/
bun test # Run unit tests
npx . # Test built package locallysrc/
βββ index.ts # CLI entry point
βββ orchestrator.ts # Main workflow orchestration
βββ config.ts # State persistence
βββ types.ts # TypeScript interfaces
βββ agents/ # AI agent implementations
β βββ sm.ts # Scrum Master agent
β βββ story-creator.ts # Story creation agent
β βββ dev.ts # Development agent
β βββ reviewer.ts # Review agent
βββ claude/ # Claude CLI integration
β βββ cli.ts # Process spawning
β βββ prompts.ts # Prompt templates
βββ providers/ # Multi-provider system
β βββ registry.ts # Provider registry
β βββ api-provider.ts # API provider base
β βββ cli-provider.ts # CLI provider base
β βββ cache.ts # Model cache
β βββ providers/ # Built-in providers
βββ config/ # Configuration management
β βββ models.ts # Model config save/load
βββ onboarding.ts # First-run setup
βββ git/ # Git operations
β βββ commit.ts # Commit handling
βββ utils/ # Utilities
βββ logger.ts # Colored logging
βββ files.ts # BMAD file parsing
βββ user-input.ts # Interactive prompts
# Run all tests
bun test
# Watch mode
bun test --watch
# Test CLI parsing
bun run src/index.ts --helpWe welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit with clear messages (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use
async/awaitwith Promises - Prefer
constdeclarations - Use TypeScript strict mode
- Include
.jsextensions in ESM imports - Follow existing patterns for consistency
- BMAD Framework β Learn more about the BMAD methodology
- Documentation β Full docs available at GitHub Pages
- Issues β Report bugs or request features on GitHub Issues
Have questions? Need help? Join our community:
- Discord β Webeleon Discord Server
- GitHub Discussions β Discuss features and ideas
- Issues β Report bugs
MIT License β see LICENSE file for details.
Made with β€οΈ by Webeleon