Browse the documentation
CLI overview
How to run bmad-plus, the options every command shares, the installer languages, non-interactive use with --yes, and the exit codes you can rely on in scripts and CI.
On this page
Most of BMAD+ happens in a conversation with your assistant. The bmad-plus command is the part that runs in a terminal: it installs the agents into a project, keeps them up to date, checks the installation, and gives the agents a few deterministic helpers (questionnaires, swarms, durable task runs, acceptance recipes, review evidence). This page is for anyone who types a command, whether by hand, in a script or in CI.
Running the command
The package is published on npm as bmad-plus and needs Node.js 20 or newer. You run it through npx, which is part of npm. Three forms matter.
| Form | What it does | Use it for |
|---|---|---|
npx bmad-plus <command> | Runs the copy found in the project; if there is none, npx downloads the published package first. | The first install in a project. |
npx bmad-plus@0.23.0 install | Runs exactly that published version. | Reproducible installs. |
npx --no-install bmad-plus <command> | Runs only a copy that is already installed locally and never downloads code; it fails when there is none. | Everything after the first install, once the package is also installed in the project (see the note below), and every command an agent runs on your behalf (for example update-check). |
Warning --no-install needs a local copy
The installer does not add bmad-plus to your project’s node_modules, so right after npx bmad-plus install the --no-install form fails with npx canceled due to missing packages and no YES option. To use it, add the package once with npm install --save-dev bmad-plus; otherwise keep using npx bmad-plus <command>, which downloads the package when needed. The generated CLAUDE.md and AGENTS.md tell the assistant to run npx --no-install bmad-plus update-check; when that command is unavailable the assistant skips the update check and carries on with your task.
npx --no-install bmad-plus --version
0.23.0npx --no-install bmad-plus --versionNote Chat words are not shell commands
bmad-help, autopilot and parallel are instructions you say to your assistant. Typing them in a terminal does nothing. Only the eighteen commands listed below exist in the shell.
The eighteen commands
| Command | What it is for |
|---|---|
install | Put the agents, skills, instruction files and configuration into a project. |
update | Move an installed project to a newer version, with backups and a receipt you can restore from. |
uninstall | Remove what BMAD+ owns and keep your memory, settings and edited files. |
doctor | Read-only health report on the installation. |
update-check | Ask npm whether a newer release exists, without applying it. |
update-policy | Show or set the project policy that governs update checks and automatic updates. |
autoconfig | Analyse an existing project, recommend packs, install them. |
scan | Find your projects on disk and index them in the global brain. |
memory | Health report and export of the persistent brain. |
mem | Recall, write, reinforce and observe lessons in the memory journal. |
studio | List Dev Studio workflows and prepare a read-only context bundle for one of them. |
intake | Ask a pack’s questions a few at a time, record the answers, render the brief. |
swarm | Deal, brief, check and tally a panel, jury or fanout of sub-agents. |
nexus | Durable task runs with independent verification and acceptance. |
uat (alias recette) | Human acceptance recipes: lint, build, serve, read, gate. |
review | Seal the scope of a code review and compute an honest verdict. |
assurance | Shield assurance cases with a hash-chained evidence ledger. |
ai-register | Check the register of AI integrations in a project. |
See also
- install install
- update update
- uninstall uninstall
- doctor doctor
- update-check update-check
- update-policy update-policy
- autoconfig autoconfig
- scan scan
- memory bmad-plus memory
- mem bmad-plus mem
- studio studio
- intake bmad-plus intake
- swarm bmad-plus swarm
- nexus nexus
- uat bmad-plus uat
- review bmad-plus review
- assurance assurance
- ai-register ai-register
Commander, the argument parser BMAD+ uses, provides -V, --version and -h, --help on the program, and bmad-plus help <command> or bmad-plus <command> --help for any command. The other shared options are declared command by command, so this table shows exactly where each one exists.
| Command | -d, --directory <path> | -y, --yes | -l, --lang <code> | --json |
|---|---|---|---|---|
install | ✓ | ✓ | ✓ | – |
update | ✓ | ✓ | ✓ | – |
uninstall | ✓ | ✓ | ✓ | – |
doctor | ✓ | – | ✓ | ✓ |
scan [path] | ✓ | ✓ | ✓ | – |
memory [subcommand] | ✓ | – | ✓ | – |
autoconfig | ✓ | ✓ | ✓ | – |
mem <action> [query...] | ✓ | – | – | ✓ |
update-check, update-policy, studio, nexus, swarm, uat, review, assurance, ai-register, intake | ✓ | – | – | ✓ |
-d, --directory <path>points the command at a project folder. Without it, the current folder is used. The cases where the folder holds no installation are explained on each page.-y, --yesaccepts the defaults and skips every prompt (see below).-l, --lang <code>picks the language of the installer screens (see below).--jsonprints a machine-readable result instead of text, so a script can parse it.
Installer languages
The installer and uninstaller screens exist in ten languages. Every other command prints English.
| Code | Language |
|---|---|
en | English |
fr | Français |
es | Español |
de | Deutsch |
pt-br | Português (Brasil) |
ru | Русский |
zh | 中文 (简体) |
he | עברית |
ja | 日本語 |
it | Italiano |
- Interactive
installwithout--lang: the first question is the language. install --yeswithout--lang: the screens are in English, and the communication language written to the configuration follows your system locale when it matches one of the ten, otherwise English.- An unknown code is not an error: the screens fall back to English.
uninstallandupdatewithout--languse the language recorded at install time (uiLanguagein the manifest), then English.
Non-interactive use with --yes
A script, a CI job or a pipe has no terminal to answer questions. install, uninstall and update refuse to start in that situation unless you pass --yes, instead of stopping halfway through a prompt. scan and autoconfig also accept --yes to take their recommended answers.
echo | npx bmad-plus install
This command requires a terminal. Run `npx bmad-plus install --yes` to proceed without prompts.
Exit code 1; nothing was written.echo | npx bmad-plus installnpx bmad-plus install --packs core,design --tools claude-code --yes --lang frWarning --yes never guesses a tool
With --yes and no AI tool detected in the folder, install writes no instruction file at all. Pass --tools <ids> (or --tools all) to say which assistants to prepare. See the adapters page for the ids.
Exit codes
Every command exits with 0 on success. An error that no command handles itself ends with the line BMAD+: <message> on the error stream and exit code 1. Beyond that, some commands use further codes to report a state a script can act on. After a command settles, BMAD+ releases the terminal input, so your shell prompt returns without Ctrl+C.
| Command | Code | Meaning |
|---|---|---|
install, uninstall, update | 1 | Any failure: no terminal and no --yes, version conflict, unreadable manifest, refused update. A cancelled uninstall or update prompt exits 0; a cancelled install exits 1. |
update-policy | 1 | Invalid option combination or unreadable policy. |
doctor | 1 | At least one check is an error. Warnings alone exit 0. |
update-check | 1 | Status begins with invalid- (runtime, installation or policy). |
intake | 1 / 2 | check: 1 when the file is invalid. plan: 2 when the intake is not ready. Other failures: 1. |
studio | 2 / 1 | 2 = needs-input, 1 = error. |
swarm | 2 / 1 | 2 = needs-approval, 1 = incomplete or error. |
nexus | 1 | verify not passed, launch not completed, collect not completed, or error. |
uat | 1 / 2 / 3 | read and gate: 0 passed, 1 failed, 2 no finished run, 3 answered another revision of the recipe. lint and order: 1 on errors or cycles. |
review | 1 / 2 / 3 | gate: 0 clean, 1 findings, 2 incomplete. continue: 3 when the code moved. Other errors: 3. anchor: 1 when a finding is not located. |
assurance | 1 / 3 | run and verify: 1 when a check failed or a claim is unsupported. Errors: 3. |
ai-register | 1 / 3 | check: 1 only when the register is unreadable or invalid. Bad action or failed init: 3. |
mem | 1 | Unknown action or failure. |
Tip Gating a script on a verdict
Codes 2 and 3 are deliberate: they separate “not ready yet” or “stale” from “failed”. In CI, treat any non-zero code as a stop, and read the page of the command to know which kind of stop it is.
See also
- Install, update, uninstall: the whole lifecycle Install, update, uninstall
- The configuration file Configuration file
- Supported tools and the files written for them Adapters
- Troubleshooting Troubleshooting