mise bootstrap
- Usage:
mise bootstrap [FLAGS] [SUBCOMMAND] - Aliases:
bs - Effect: destructive — may delete or irreversibly overwrite
- Source code:
src/cli/bootstrap.rs
Set up a machine for the current config in one command
Runs the bootstrap steps for the current config in order:
mise bootstrap accounts apply— converge[bootstrap.users]and[bootstrap.groups](Linux)mise bootstrap plugins apply— install[bootstrap.plugins]1.7.[bootstrap.hooks.pre-packages]— optional setup hook- Install built-in-manager entries from
[bootstrap.packages] mise bootstrap files apply— converge[bootstrap.files]and[bootstrap.directories]mise bootstrap services apply— converge[bootstrap.services]systemd system services (Linux)mise bootstrap firewall apply— converge[bootstrap.linux.firewall]host firewall policy and rules (Linux)mise bootstrap compose apply— converge[bootstrap.compose]Docker Compose projectsmise bootstrap repos apply— clone/converge[bootstrap.repos]surrounded bypre-repos/post-reposhooksmise bootstrap dotfiles apply— apply dotfiles from[dotfiles]surrounded bypre-dotfiles/post-dotfileshooksmise bootstrap mise-shell-activate apply— configure shell activation from[bootstrap.mise_shell_activate]mise bootstrap macos defaults apply— write
`[bootstrap.macos.defaults]` entries (macOS)
surrounded by `pre-defaults`/`post-defaults` hooksmise bootstrap macos launchd-agents apply— install/load
`[bootstrap.macos.launchd.agents]`mise bootstrap linux systemd-units apply— install/start
`[bootstrap.linux.systemd.units]`mise bootstrap user apply— set[bootstrap.user].login_shell
(Unix)
surrounded by `pre-user`/`post-user` hooksmise install— install missing tools from[tools]
surrounded by `pre-tools`/`post-tools` hooks; package-plugin entries
from `[bootstrap.packages]` install afterward, followed by
`[bootstrap.hooks.post-packages]`mise run bootstrap— if a task namedbootstrapis defined[bootstrap.hooks.final]— optional final hook
The declarative steps converge — anything already in its desired state is skipped, so re-running is safe. The bootstrap task runs on every invocation; keep it idempotent. Use it for any project-specific setup that doesn't fit the declarative sections (seeding databases, auth flows, etc.) — it runs with the installed tools on PATH.
Use --skip <part> to skip named parts, or --only <part> to run just named parts. Both flags can be repeated or comma-separated, but they cannot be used together.
Flags
-n --dry-run
Print what would happen without installing anything
-y --yes
Skip confirmation prompts
--force-dotfiles
Overwrite existing files that conflict with whole-file dotfile entries
--only… <ONLY>
Run only one or more bootstrap parts
Can be passed multiple times or as a comma-separated list. Cannot be used with --skip.
Choices:
pluginspackagesaccountsfilesservicesfirewallcomposereposdotfilesmise-shell-activateshellmacos-defaultsdefaultsmacos-launchd-agentslaunchdlinux-systemd-unitssystemdusertoolstaskfinal-hook
--prompt-secrets
Prompt securely for missing bootstrap secret inputs
--skip… <SKIP>
Skip one or more bootstrap parts
Can be passed multiple times or as a comma-separated list.
Choices:
pluginspackagesaccountsfilesservicesfirewallcomposereposdotfilesmise-shell-activateshellmacos-defaultsdefaultsmacos-launchd-agentslaunchdlinux-systemd-unitssystemdusertoolstaskfinal-hook
--update
Refresh package manager metadata and update configured repos
mise bootstrap accounts <SUBCOMMAND>mise bootstrap compose <SUBCOMMAND>mise bootstrap dotfiles <SUBCOMMAND>mise bootstrap files <SUBCOMMAND>mise bootstrap firewall <SUBCOMMAND>mise bootstrap linux <SUBCOMMAND>mise bootstrap macos <SUBCOMMAND>mise bootstrap mise-shell-activate <SUBCOMMAND>mise bootstrap packages <SUBCOMMAND>mise bootstrap plan [FLAGS]mise bootstrap plugins <SUBCOMMAND>mise bootstrap remote [FLAGS] [TARGET]…mise bootstrap repos <SUBCOMMAND>mise bootstrap secrets <SUBCOMMAND>mise bootstrap services <SUBCOMMAND>mise bootstrap status [FLAGS]mise bootstrap user <SUBCOMMAND>
Examples:
mise bootstrap # packages + repos + dotfiles + tools + bootstrap task
mise bootstrap --force-dotfiles # replace conflicting dotfile targets
mise bootstrap --skip tools,task # skip tool installation and the bootstrap task
mise bootstrap --only tools # run just tool installation
mise bootstrap status --missing
mise bootstrap packages apply --yes
mise bootstrap repos status
mise bootstrap repos apply --dry-run
mise bootstrap dotfiles status
mise bootstrap mise-shell-activate apply --dry-run
mise bootstrap macos defaults status
mise bootstrap macos launchd-agents apply --dry-run
mise bootstrap linux systemd-units apply --dry-run
mise bootstrap user apply --dry-run