Bmad Customize logo

Bmad Customize

OrganizationPopular
bmad-code-org
bmad-customize

Authors and updates customization overrides for installed BMad skills. Use when the user says 'customize bmad', 'override a skill', 'change agent behavior', or 'customize a workflow'

Overview

Publisherbmad-code-org
RepositoryBMAD-METHOD
Skill namebmad-customize
Stars
53.7K
Forks
6.1K
Bundled files
3
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 3 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by bmad-code-org on GitHub. Read the source before you install it.

Installation

Install the Bmad Customize AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/bmad-code-org/BMAD-METHOD/tree/main/skills/bmad-customize
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/bmad-code-org/BMAD-METHOD.git /tmp/BMAD-METHOD
mkdir -p .claude/skills
cp -r /tmp/BMAD-METHOD/skills/bmad-customize .claude/skills/bmad-customize
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Bmad Customize in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Bmad Customize on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Bmad Customize is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

BMad Customize

Translate the user's intent into a correctly-placed TOML override file under {project-root}/_bmad/custom/ for a customizable agent or workflow skill. Discover, route, author, write, verify.

Scope v1: per-skill [agent] overrides (bmad-agent-<role>.toml / .user.toml) and per-skill [workflow] overrides (bmad-<workflow>.toml / .user.toml). Central config ({project-root}/_bmad/custom/config.toml) is out of scope — point users at the How to Customize BMad guide.

When the target's customize.toml doesn't expose what the user wants, say so plainly. Don't invent fields.

Preflight

  • No {project-root}/_bmad/ → BMad is not set up here. Offer to run the bmad skill's setup, installing bmad first if you do not have it (npx skills add bmad-code-org/BMAD-METHOD --skill bmad). Stop if the user declines.
  • {project-root}/_bmad/scripts/resolve_customization.py missing → continue, but Step 6 verify falls back to manual merge.
  • Both present → proceed.

Activation

Greet the user. If the user's invocation already names a target skill AND a specific change, jump to Step 3.

Step 1: Classify intent

  • Directed — specific skill + specific change → Step 3.
  • Exploratory — "what can I customize?" → Step 2.
  • Audit/iterate — wants to review or change something already customized → Step 2, lead with skills that have existing overrides; read the existing override in Step 3 before composing.
  • Cross-cutting — could live on multiple surfaces → Step 3, choose agent vs workflow explicitly with the user.

Step 2: Discovery

uv run {skill-root}/scripts/list_customizable_skills.py --project-root {project-root}

Use --extra-root <path> (repeatable) if the user has skills installed in additional locations.

Group the returned agents and workflows for the user; for each show name, description, whether has_team_override or has_user_override is true. Surface any errors[]. For audit/iterate intents, lead with already-overridden entries.

Empty list: show scanned_roots, ask whether skills live elsewhere (offer --extra-root); otherwise stop.

Step 3: Determine the right surface

Read the target's customize.toml. Top-level [agent] or [workflow] block defines the surface.

If a team or user override already exists, read it first and summarize what's already overridden before composing.

Cross-cutting intent — walk both surfaces with the user:

  • Every workflow a given agent runs → agent surface (e.g. bmad-agent-pm.toml with persistent_facts, principles).
  • One workflow only → workflow surface (e.g. bmad-prd.toml with activation_steps_prepend).
  • Several specific workflows → multiple workflow overrides in sequence, not an agent override.

Single-surface heuristic:

  • Workflow-level: template swap, output path, step-specific behavior, or a named scalar already exposed (*_template, on_complete). Surgical, reliable.
  • Agent-level: persona, communication style, org-wide facts, menu changes, behavior that should apply to every workflow the agent dispatches.

When ambiguous, present both with tradeoff, recommend one, let the user decide.

Intent outside the exposed surface (step logic, ordering, anything not in customize.toml): say so; offer activation_steps_prepend/append or persistent_facts as approximations, or recommend bmad-builder to create a custom skill.

Step 4: Compose the override

Translate plain-English into TOML against the target's customize.toml fields. If an existing override was read, frame the change as additive.

Merge semantics:

  • Scalars (icon, role, *_template, on_complete) — override wins.
  • Append arrays (persistent_facts, activation_steps_prepend/append, principles) — team/user entries append in order.
  • Keyed arrays of tables (menu items with code or id) — matching keys replace, new keys append.

Overrides are sparse: only the fields being changed. Never copy the whole customize.toml.

Template swap (*_template scalar): offer to copy the default template to {project-root}/_bmad/custom/{skill-name}-{purpose}-template.md, point the override at the new path, offer to help edit it.

Step 5: Team or user placement

Under {project-root}/_bmad/custom/:

  • {skill-name}.toml — team, committed. Policies, org conventions, compliance.
  • {skill-name}.user.toml — user, gitignored. Personal tone, private facts, shortcuts.

Default by character (policy → team, personal → user), confirm before writing.

Step 6: Show, confirm, write, verify

  1. Show the full TOML. If the file exists, show a diff. Never silently overwrite.

  2. Wait for explicit yes.

  3. Write. Create {project-root}/_bmad/custom/ if needed.

  4. Verify:

    uv run {project-root}/_bmad/scripts/resolve_customization.py --skill <install-path> --project-root {project-root} --key <agent-or-workflow>

    Show the merged output, point out the changed fields.

    Resolver missing or fails: read whichever layers exist — <install-path>/customize.toml (base), {project-root}/_bmad/custom/{skill-name}.toml (team), {project-root}/_bmad/custom/{skill-name}.user.toml (user) — apply base → team → user with the same merge rules (scalars override, tables deep-merge, code/id-keyed arrays merge by key, all other arrays append), describe how the changed fields resolve.

    Verify shows override didn't land (field unchanged, merge conflict, file not picked up): re-enter Step 4 with the verify output as context. Usually wrong field name, wrong merge mode (scalar vs array), or wrong scope.

  5. Summarize what changed, where the file lives, how to iterate. Remind the user to commit team overrides.

Complete when

  • Override file written (or user explicitly aborted).
  • User has seen resolver output (or manual fallback merge summary).
  • User has acknowledged the summary.

Otherwise the skill isn't done — finish or tell the user they're exiting incomplete.

When this skill can't help

  • Central config ({project-root}/_bmad/custom/config.toml) — see the How to Customize BMad guide.
  • Step logic, ordering, behavior not in customize.toml — open a feature request, or use bmad-builder to create a custom skill. Offer to help with either.
  • Skills without a customize.toml — not customizable.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Bmad Customize AI skill do?

Authors and updates customization overrides for installed BMad skills. Use when the user says 'customize bmad', 'override a skill', 'change agent behavior', or 'customize a workflow'

Why use Bmad Customize on TypingMind?

Because you install it once and use it with any model. Bmad Customize is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Bmad Customize in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bmad-code-org/BMAD-METHOD/tree/main/skills/bmad-customize. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Bmad Customize?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Bmad Customize?

As many as you like. As long as a model supports skills, you can use Bmad Customize with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Bmad Customize AI skill free?

It is published on GitHub by bmad-code-org. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇