If you've used Claude Code for anything beyond quick scripts, you know the pattern: you start prompting, things go well for 20 minutes, then your project turns into spaghetti because there was never a plan.
I ran into this constantly. So I started using two open-source tools separately:
- BMAD-METHOD: a structured planning system with AI agents that walk you through product briefs, PRDs, architecture docs, and user stories.
- Ralph: an autonomous bash loop that picks up stories one by one and implements them with TDD, committing as it goes.
Both are solid on their own. But switching between them was friction. Copy-pasting artifacts, manually setting up Ralph's task list, keeping things in sync when plans changed. It wasn't hard, just annoying enough that I kept thinking "this should be one thing."
So I spent about a month building bmalph: a CLI that installs both systems, connects them with slash commands, and handles the handoff from planning to implementation.
How it works
npm install -g bmalph
cd my-project
bmalph init
This drops BMAD agents, Ralph's loop, and 50+ slash commands into your project.
From there, you work through 3 planning phases in Claude Code using slash commands like /analyst, /pm, and /architect. Each phase has specific deliverables: product brief, PRD, architecture, stories.
When your plan is solid, you run /bmalph-implement. This reads your BMAD stories, generates Ralph's task list (@fix_plan.md), copies specs over, and you start the autonomous loop:
bash .ralph/ralph_loop.sh
Ralph picks stories from the plan, implements with TDD, commits, moves to the next one. Circuit breaker stops it if something goes wrong. Ctrl+C if you want to stop manually.
The part I actually like
Incremental development works well. You can plan Epic 1, let Ralph build it, then go back to BMAD to plan Epic 2. When you run /bmalph-implement again, it preserves completed stories and adds the new ones. A specs changelog tracks what changed so Ralph knows what's new.
Why I'm posting this
I've been using bmalph on my own projects and it works for my workflow. But I'm one person with one way of working, so I'm genuinely curious:
- Does this workflow make sense to you, or is it overengineered for how you use Claude Code?
- What's missing?
- What would you change?
If you try it, give it a star and open an issue or drop a comment. Stars help with visibility, but honest feedback is what actually makes it better.
GitHub: https://github.com/LarsCowe/bmalph
Top comments (0)