docs/bootstrap/packages/mas.md
Mac App Store apps via the mas CLI.
[bootstrap.packages]
"mas:497799835" = "latest" # Xcode
mas apps are part of [bootstrap.packages], just like apt packages,
Homebrew formulae, and casks. The package name is the App Store app ID:
a numeric ADAM ID accepted by mas install and mas upgrade.
mise needs the mas CLI before it can inspect or install these apps. Install
it as a mise tool:
mise use -g mas
Or install it through the built-in brew manager
and ensure the Homebrew prefix's bin directory is on PATH:
mise bootstrap packages use brew:mas
Declaring mas in [tools] alone does not make a fresh full bootstrap install
it before the built-in packages phase. Install the CLI first, then apply the App
Store declarations. Confirm mas can see the current user's App Store state
with mise exec -- mas list.
mise bootstrap packages use mas:497799835
mise bootstrap packages status
mise bootstrap packages apply --manager mas --dry-run
mise bootstrap packages apply --manager mas
mise bootstrap packages upgrade --manager mas
mise bootstrap packages apply runs mas install <id> for missing apps.
mise bootstrap packages upgrade runs mas upgrade <id> for installed apps.
Both commands require numeric ADAM IDs; bundle identifiers such as
com.apple.dt.Xcode are not valid package names.
mas is macOS-only and must be on PATH. On other platforms, or when the
mas command is missing, shared configs list the entries as skipped instead
of failing. Explicit commands such as mise bootstrap packages apply --manager mas still fail when mas is unavailable, matching the other
package managers.
Mac App Store operations may require an Apple Account signed in to the App
Store, macOS authentication, prior purchase/claiming for paid apps, and valid
Spotlight indexing. mise surfaces errors from mas rather than trying to
purchase or claim apps itself.
App Store version pins are not supported by these commands. "latest" accepts
an installed app; use mise bootstrap packages upgrade --manager mas when you
want mise to request an update. App installation does not by itself accept
Xcode's license or complete its first-launch setup.
Use mas search or copy an App Store URL and extract the numeric ID:
mas search xcode
For example, Xcode's App Store URL contains id497799835, so the package
entry is:
[bootstrap.packages]
"mas:497799835" = "latest"