Back to Mise

`mise bootstrap`

docs/cli/bootstrap.md

2026.8.25.9 KB
Original Source
<!-- @generated by usage-cli from usage spec -->

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:

  1. mise bootstrap accounts apply — converge [bootstrap.users] and [bootstrap.groups] (Linux)
  2. mise bootstrap plugins apply — install [bootstrap.plugins] 1.7. [bootstrap.hooks.pre-packages] — optional setup hook
  3. Install built-in-manager entries from [bootstrap.packages]
  4. mise bootstrap files apply — converge [bootstrap.files] and [bootstrap.directories]
  5. mise bootstrap services apply — converge [bootstrap.services] systemd system services (Linux)
  6. mise bootstrap firewall apply — converge [bootstrap.linux.firewall] host firewall policy and rules (Linux)
  7. mise bootstrap compose apply — converge [bootstrap.compose] Docker Compose projects
  8. mise bootstrap repos apply — clone/converge [bootstrap.repos] surrounded by pre-repos/post-repos hooks
  9. mise bootstrap dotfiles apply — apply dotfiles from [dotfiles] surrounded by pre-dotfiles/post-dotfiles hooks
  10. mise bootstrap mise-shell-activate apply — configure shell activation from [bootstrap.mise_shell_activate]
  11. mise bootstrap macos defaults apply — write
`[bootstrap.macos.defaults]` entries (macOS)
surrounded by `pre-defaults`/`post-defaults` hooks
  1. mise bootstrap macos launchd-agents apply — install/load
`[bootstrap.macos.launchd.agents]`
  1. mise bootstrap linux systemd-units apply — install/start
`[bootstrap.linux.systemd.units]`
  1. mise bootstrap user apply — set [bootstrap.user].login_shell
(Unix)
surrounded by `pre-user`/`post-user` hooks
  1. mise 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]`
  1. mise run bootstrap — if a task named bootstrap is defined
  2. [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:

  • plugins
  • packages
  • accounts
  • files
  • services
  • firewall
  • compose
  • repos
  • dotfiles
  • mise-shell-activate
  • shell
  • macos-defaults
  • defaults
  • macos-launchd-agents
  • launchd
  • linux-systemd-units
  • systemd
  • user
  • tools
  • task
  • final-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:

  • plugins
  • packages
  • accounts
  • files
  • services
  • firewall
  • compose
  • repos
  • dotfiles
  • mise-shell-activate
  • shell
  • macos-defaults
  • defaults
  • macos-launchd-agents
  • launchd
  • linux-systemd-units
  • systemd
  • user
  • tools
  • task
  • final-hook

--update

Refresh package manager metadata and update configured repos

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