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. Running from your home directory targets global configuration.
Use --path for an explicit file/directory, --global for personal defaults, or --env to write mise.ENV.toml in the current directory (preserving an existing .mise.ENV.toml). These selectors override one another; use one per command.
See https://mise.jdx.dev/configuration.html#target-file-for-write-operations for filename overrides and configuration precedence. Selection takes effect in an activated shell on its next prompt, or immediately in mise exec commands.
Arguments
<TOOL@VERSION>— Tool to add to config filee.g.: node@20, cargo:ripgrep@latest, npm:prettier@3 If no version is specified, it defaults to @latest
Tool options can be set with this syntax:
mise use "cargo:ripgrep[features=pcre2]"
Flags
-e --env <ENV>— Create/modify an environment-specific config file like .mise.<env>.toml-f --force— Force reinstall even if already installed-g --global— Use the global config file (~/.config/mise/config.toml) instead of the local one-j --jobs <JOBS>— Number of jobs to run in parallel Values below 1 are treated as 1 Defaults to thejobssettingEnvironment Variable:
MISE_JOBS-n --dry-run— Perform a dry run, showing what would be installed and modified without making changes-p --path <PATH>— Specify a path to a config file or directoryIf a directory is specified, it will look for a config file in that directory following the target-file selection rules.
--dry-run-code— Like --dry-run but exits with code 1 if there are changes to makeThis is useful for scripts to check if tools need to be added or removed.
--fuzzy— Save fuzzy version to config filee.g.:
mise use --fuzzy node@20will save20as the version. This is the default behavior unlessMISE_PIN=1--minimum-release-age <MINIMUM_RELEASE_AGE>— Only install versions released before this date or older than this durationSupports absolute dates like "2024-06-01" and relative durations like "90d" or "1y".
--pin— Save the resolved concrete version to the config fileIf the request exactly matches an available release, that release is preferred over installed fuzzy matches. Use
prefix:to explicitly request recursive prefix matching. e.g.:mise use --pin node@20will save the resolved20.x.yversion SetMISE_PIN=1to make this the default behaviorConsider using mise.lock as a better alternative to pinning in mise.toml: https://mise.jdx.dev/configuration/settings.html#lockfile
--raw— Connect backend install command stdin/stdout/stderr directly to the terminal. Implies--jobs=1--remove <TOOL>— Remove the tool(s) from config file-h --help— Print help--postinstall <COMMAND>— Command to run after installing this tool--tool-option <KEY=VALUE>— Set an option for this tool (repeat for multiple options). Values use inline tool-option types; unquoted text is treated as a string. Place these flags before the tool they apply to.
Examples
run with no arguments to use the interactive selector
mise useset the current version of node to 20.x in the selected project config will write the fuzzy version (e.g.: 20)
mise use node@20run a command after installing a tool
mise use --postinstall "mbx setup --defaults" mr-boxingtonassociate a different postinstall command with each tool
mise use --postinstall "setup-a" tool-a --postinstall "setup-b" tool-benable a Rust tool option while installing Rust and mbx
mise use --tool-option mr_boxington=true rust mr-boxingtonset the current version of node to 20.x in ~/.config/mise/config.toml will write the precise version (e.g.: 20.0.0)
mise use -g --pin node@20writes mise.local.toml (preserving .mise.local.toml if it already exists)
mise use --env local node@20writes mise.staging.toml (loaded with MISE_ENV=staging)
mise use --env staging node@20