Mise
Tools
Install a tool globally and pin it
sh
mise use --global <tool>@<version>
mise use --global node@22
mise use --global kubectl@latestInstall a tool for the current directory only
sh
mise use <tool>@<version>Install everything declared in the config
sh
mise installRemove a tool
sh
mise uninstall <tool> # removes the install, leaves the config entry
mise unuse --global <tool> # removes bothRun a command with a tool without installing it globally
sh
mise exec <tool>@<version> -- <command>
mise exec node@20 -- node --versionUpgrades
With
pin = true,mise userecords an exact version. A plainmise upgradeonly upgrades within that constraint, which an exact version already satisfies - so it reports "All tools are up to date" and changes nothing.--bumpis what rewrites the pin.
See what is actually behind
sh
mise outdated --bumpUpgrade everything and rewrite the pins
sh
mise upgrade --bumpUpgrade a single tool
sh
mise upgrade --bump <tool>Upgrade mise itself
sh
brew upgrade mise # macOS
mise self-update # installed via mise.runBackends
Tools missing from the registry are addressed by backend. Prefer
aqua: its packages are checksum-verified.asdfplugins are arbitrary shell scripts.
Install from a specific backend
sh
mise use --global aqua:<owner>/<repo>@latest
mise use --global github:<owner>/<repo>@latest
mise use --global pipx:<package>@latest
mise use --global npm:<package>@latest
mise use --global cargo:<crate>@latest
mise use --global go:<module>@latestFind which backend a registry name resolves to
sh
mise registry | grep <tool>Inspection
List installed tools and where each is declared
sh
mise lsList every version available upstream
sh
mise ls-remote <tool>Show the version that resolves here
sh
mise current
mise which <binary>Search the registry
sh
mise registry
mise registry | grep <tool>Configuration
Config file locations, highest precedence first
sh
# ~/.config/mise/config.toml <- `mise use --global` writes here
# ~/.config/mise/conf.d/*.toml <- merged in, survives the above
# ./mise.toml <- per projectRead or change a setting
sh
mise settings
mise settings get <key>
mise settings set <key> <value>Regenerate shims after installing globals via npm/go
sh
mise reshimActivate in a shell
sh
eval "$(mise activate zsh)" # interactive shells
export PATH="$HOME/.local/share/mise/shims:$PATH" # scripts, CI, containersTroubleshooting
Diagnose a broken install
sh
mise doctorHTTP 403 while resolving a version
The aqua and github backends resolve through the GitHub API, which rate-limits unauthenticated requests. mise retries 429 and 5xx but treats 403 as permanent.
sh
export GITHUB_TOKEN=<token>Verbose output for a failing install
sh
MISE_VERBOSE=1 mise install <tool>
mise install <tool> --verboseUseful environment variables
sh
MISE_YES=1 # never prompt (CI, container builds)
MISE_PIN=1 # record exact versions
MISE_DISABLE_BACKENDS=asdf # keep installs on verifying backends
MISE_DATA_DIR=<path> # where tools and shims live
MISE_OFFLINE=1 # use only locally cached data