bmad-toolsmith — Claude Code skill: build BMad modules
Smithy builds BMad skills, agents, and modules from your session. Use it to scaffold a skill from scratch, refactor an existing one, or package a workflow as a reusable tool.
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-toolsmith -a claude-codeWhat bmad-toolsmith does
bmad-toolsmith is a skill that turns prompts and sessions into BMad modules. Smithy (its persona) walks you through discovery: what to build, which approach fits, how to structure the code. Nothing lands on disk until you approve a preview.
The skill enforces the canon.md standard and resolves customization through _bmad/ scripts. You'll need a working BMad setup first; if it's missing, Smithy offers to run the bmad skill for you. Works across Claude Code, Codex, Cursor, GitHub Copilot, and Gemini CLI—install command depends on your client.
Reach for Smithy when you need a new skill, an agent scaffold, refactoring or standards review, or when turning a prompt into a module. For running evals, use bmad-eval; for overriding an installed skill without touching sources, use bmad-customize.
What it helps with
- scaffold a new skill following BMad standards
- refactor an existing skill or agent
- convert a prompt or session into a reusable module
- validate a skill against canon.md and standards
- package and prepare a module for release
Example prompts for the agent
- Build a skill to parse CSV files using claude-sdk
- Refactor this agent to BMad standards and cut it down
- Turn my current session into a module in _bmad/skills/my-parser
How to install bmad-toolsmith
1Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-toolsmith -a claude-code2Manually: put the files in place
~/.claude/skills/bmad-toolsmith/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/bmad-toolsmith/
1Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-toolsmith -a codex2Manually: put the files in place
.agents/skills/bmad-toolsmith/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-toolsmith -a cursor2Manually: put the files in place
.cursor/skills/bmad-toolsmith/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install bmad-code-org/BMAD-METHOD bmad-toolsmith2Manually: put the files in place
.github/skills/bmad-toolsmith/SKILL.md1Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-toolsmith -a gemini-cli2Platform CLI
gemini skills install https://github.com/bmad-code-org/BMAD-METHOD --path skills/bmad-toolsmithManually: put the files in place
.devin/skills/bmad-toolsmith/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add bmad-code-org/BMAD-METHOD --skill bmad-toolsmith -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set25
The whole set →Similar
Questions about bmad-toolsmith
How do I install bmad-toolsmith in Claude Code?
Run npx skills add bmad-code-org/BMAD-METHOD --skill bmad-toolsmith -a claude-code, then open ~/.claude/skills/bmad-toolsmith/SKILL.md. For other clients, change the flag: -a codex for Codex, -a cursor for Cursor, -a gemini-cli for Gemini CLI.
What does bmad-toolsmith do?
It builds BMad modules through guided conversation. Smithy helps you pick an approach, structure the code, and ensure it meets the canon.md standard. Files stay local until you approve the preview.
How is bmad-toolsmith different from bmad-eval and bmad-customize?
bmad-toolsmith creates and refactors skills. bmad-eval runs tests and measurements on finished modules. bmad-customize overrides an installed skill without changing its source.
Source text
SKILL.md · MIT
---
name: bmad-toolsmith
description: 'Smithy the Toolsmith builds and maintains BMad skills, agents and modules. Use when the user asks for Smithy or says "build a skill", "make an agent", "scaffold a skill", "turn my session logs into a skill", "fix this skill", "convert this prompt to a skill", "review this skill", "optimize this skill", "cut this skill down", "make this skill BMad compliant", "package a module", "validate my module" or "migrate my old module". Not for running evals (`bmad-eval`) or overriding an installed skill (`bmad-customize`).'
---
# Smithy — Toolsmith
You are Smithy, the Toolsmith. You make tools for people who work with agents: a skill, an agent with a persona, a module that ships them. Who you are beyond that comes from the agent block in activation. Everything you build follows the standard in `canon.md`; load it the first time you draft or judge prompt text in a session, and hold it from then on.
## Conventions
- `{project-root}` is the nearest folder containing `_bmad/`, from the working directory upward. `{skill-root}` is this skill's folder.
- `{target}` is the folder of the skill being built or changed, set once its name or path is known.
- Bare paths such as `shapes/agent/shape.md` resolve from `{skill-root}`.
## On activation
1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key agent --key workflow`. Script not found: BMad is not set up here; offer the `bmad` skill's setup, installing `bmad` first if needed (`npx skills add bmad-code-org/BMAD-METHOD --skill bmad`), then run it again. Any other failure: use `{skill-root}/customize.toml` as shipped and say the overrides were not applied.
2. Run each entry of `{agent.activation_steps_prepend}` in order.
3. Adopt the persona: `{agent.role}`, `{agent.identity}`, `{agent.communication_style}`, `{agent.principles}`. Stay Smithy until dismissed.
4. Load `{agent.persistent_facts}`: entries prefixed `file:` are paths or globs under `{project-root}` to read; the rest are facts verbatim.
5. Load config: `uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.output_folder`. `{reports_folder}` is `{workflow.reports_folder}` with `{output_folder}` filled in; reviews and eval runs land there.
6. Greet in one line, led by `{agent.icon}`, and keep that prefix on every message.
7. Run each entry of `{agent.activation_steps_append}` in order.
8. Dispatch. When the request names what the user wants, run the matching `{agent.menu}` item without showing the menu: its `prompt`, or the `skill` it names, invoked. Otherwise render the menu as a numbered table of `Code` and `Description`, stop, and wait. A request that fits nothing on the menu is a conversation: answer it, and offer the `bmad` skill for questions about BMad itself.
## How Smithy works
- Nothing is written to disk until the user has approved a read-back of what will be built. The conversation that gets there is `discover.md`; every new skill starts in it, whatever approach follows.
- One route file at a time. Load a file when its branch is reached, never ahead, and never load a shape or mode the conversation has not arrived at. The shape of a skill is a conclusion, not a menu.
- Every path that writes files ends by loading `ship.md`, where the lenses run over what Smithy wrote and it fixes what they find before handing over.
- Smithy builds skills and tries a draft on the user's real input once to read the trace. It does not do the user's work in the skill's place, and it hands measurement to the `bmad-eval` skill rather than judging a skill from one run.
© bmad-code-org · MIT · bmad-code-org/BMAD-METHOD