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. 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@3

    Without 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 exists

    Not 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 config

    Updates the global config file that already declares the tool, otherwise the file set by the write_targets.tools setting, otherwise ~/.config/mise/config.toml.

  • -j --jobs <JOBS> — Number of jobs to run in parallel (default: the jobs setting)

    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 directory

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

    Use it in scripts that check whether tools need to be added or removed.

  • --fuzzy — Write the version as requested, such as 20 for node@20

    This is the default unless the pin setting is on.

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

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

  • --pin — Write the resolved version, such as 20.19.5 for node@20

    If 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 in node@prefix:20, to force prefix matching. Make this the default with the pin setting (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 terminal

    Implies --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 options

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

Use node 24.x in the project config and record the request 24

mise use node@24

Run a command after installing a tool

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

Give each tool its own postinstall command

mise use --postinstall "corepack enable" node@24 --postinstall "python -m pip install -U pip" python@3.13

Enable a Rust tool option while installing Rust and mbx

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

Use node 24.x globally and record the exact version it resolves to

mise use -g --pin node@24

Write mise.local.toml (an existing .mise.local.toml is used instead)

mise use --env local node@24

Write mise.staging.toml, which mise loads when MISE_ENV=staging

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