Back to Mise

`mise use`

docs/cli/use.md

2026.9.24.8 KB
Original Source
<!-- @generated by usage-cli from usage spec -->

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
<!-- generated reference navigation -->