Skip to content

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 file

    e.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 the jobs setting

    Environment 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 directory

    If 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 make

    This is useful for scripts to check if tools need to be added or removed.

  • --fuzzy — Save fuzzy version to config file

    e.g.: mise use --fuzzy node@20 will save 20 as the version. This is the default behavior unless MISE_PIN=1

  • --minimum-release-age <MINIMUM_RELEASE_AGE> — Only install versions released before this date or older than this duration

    Supports absolute dates like "2024-06-01" and relative durations like "90d" or "1y".

  • --pin — Save the resolved concrete version to the config file

    If 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@20 will save the resolved 20.x.y version Set MISE_PIN=1 to make this the default behavior

    Consider 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 use

set the current version of node to 20.x in the selected project config will write the fuzzy version (e.g.: 20)

mise use node@20

run a command after installing a tool

mise use --postinstall "mbx setup --defaults" mr-boxington

associate a different postinstall command with each tool

mise use --postinstall "setup-a" tool-a --postinstall "setup-b" tool-b

enable a Rust tool option while installing Rust and mbx

mise use --tool-option mr_boxington=true rust mr-boxington

set 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@20

writes mise.local.toml (preserving .mise.local.toml if it already exists)

mise use --env local node@20

writes mise.staging.toml (loaded with MISE_ENV=staging)

mise use --env staging node@20
MIT LicenseCopyright © 2026jdx.dev