mise use
- Usage:
mise use [FLAGS] [TOOL@VERSION]… - Aliases:
u - Effect: modifies state
- Source code:
src/cli/use.rs
Install a tool and add it to configuration
Installs missing tool versions and records the requests in a config file. By default, mise selects the nearest directory with a supported config and writes to its lowest-precedence file, such as mise.toml rather than mise.local.toml. If no project config exists, it creates one in the current directory. Run from your home directory, it writes to the global config.
Use --path for an explicit file or directory, --global for personal defaults, or --env to write mise.ENV.toml in the current directory (an existing .mise.ENV.toml is used instead). If you pass more than one, the last one wins.
See https://mise.jdx.dev/configuration.html#target-file-for-write-operations for filename overrides and config precedence. The change takes effect in an activated shell at its next prompt, and immediately in mise exec commands.
Arguments
<TOOL@VERSION>— Tool to add to the config file, such as node@24, cargo:ripgrep@latest, or npm:prettier@3Without a version, mise requests
latest; with --pin it writes the resolved version. Tool options can also be set inline:mise use "cargo:ripgrep[features=pcre2]"
Flags
-e --env <ENV>— Write mise.<ENV>.toml in the current directory, or .mise.<ENV>.toml if that existsNot the same as the global -E, which only chooses which config files are loaded.
-f --force— Reinstall even if already installed-g --global— Write to the global config instead of the project configUpdates the global config file that already declares the tool, otherwise the file set by the
write_targets.toolssetting, otherwise ~/.config/mise/config.toml.-j --jobs <JOBS>— Number of jobs to run in parallel (default: thejobssetting)Environment Variable:
MISE_JOBS-n --dry-run— Show what would change without changing anything-p --path <PATH>— Write to this config file, or to the config file in this directoryFor a directory, mise picks the file by the usual write-target rules.
--dry-run-code— Like --dry-run, but exit with code 1 if there are changes to makeUse it in scripts that check whether tools need to be added or removed.
--fuzzy— Write the version as requested, such as20for node@20This is the default unless the
pinsetting is on.--minimum-release-age <MINIMUM_RELEASE_AGE>— Only install versions released before this date or older than this durationSupports absolute dates such as "2024-06-01" and relative durations such as "90d" or "1y".
--pin— Write the resolved version, such as20.19.5for node@20If the request exactly matches an available release, mise uses that release rather than an installed version that only matches it as a prefix. Write
prefix:before the version, as innode@prefix:20, to force prefix matching. Make this the default with thepinsetting (MISE_PIN=1).To record exact versions without editing mise.toml, use a lockfile: https://mise.jdx.dev/dev-tools/mise-lock.html
--raw— Connect the install commands' stdin, stdout, and stderr to the terminalImplies
--jobs=1.--remove <TOOL>— Remove these tools from the config file-h --help— Print help--postinstall <COMMAND>— Command to run after installing this tool--tool-option <KEY=VALUE>— Set an option for the tool that follows; repeat for several optionsValues use inline tool-option types; unquoted text is a string. Put these flags before the tool they apply to.
Examples
Choose tools from an interactive selector
mise useUse node 24.x in the project config and record the request 24
mise use node@24Run a command after installing a tool
mise use --postinstall "mbx setup --defaults" mr-boxingtonGive each tool its own postinstall command
mise use --postinstall "corepack enable" node@24 --postinstall "python -m pip install -U pip" python@3.13Enable a Rust tool option while installing Rust and mbx
mise use --tool-option mr_boxington=true rust mr-boxingtonUse node 24.x globally and record the exact version it resolves to
mise use -g --pin node@24Write mise.local.toml (an existing .mise.local.toml is used instead)
mise use --env local node@24Write mise.staging.toml, which mise loads when MISE_ENV=staging
mise use --env staging node@24