Skip to content

Settings

The following is a list of all of mise's settings. These can be set via mise settings set, by directly modifying ~/.config/mise/config.toml or local config, or via environment variables.

Some of them also can be set via global CLI flags.

activate_aggressive

  • Type: Bool
  • Env: MISE_ACTIVATE_AGGRESSIVE
  • Default: false

Pushes tools' bin-paths to the front of PATH instead of allowing modifications of PATH after activation to take precedence. For example, if you have the following in your mise.toml:

[tools]
node = '20'
python = '3.12'

But you also have this in your ~/.zshrc:

eval "$(mise activate zsh)"
PATH="/some/other/python:$PATH"

What will happen is /some/other/python will be used instead of the python installed by mise. This means you typically want to put mise activate at the end of your shell config so nothing overrides it.

If you want to always use the mise versions of tools despite what is in your shell config, set this to true. In that case, using this example again, /some/other/python will be after mise's python in PATH.

all_compile

  • Type: Bool
  • Env: MISE_ALL_COMPILE
  • Default: false

Default: false unless running NixOS or Alpine (let me know if others should be added)

Do not use precompiled binaries for all languages. Useful if running on a Linux distribution like Alpine that does not use glibc and therefore likely won't be able to run precompiled binaries.

Note that this needs to be setup for each language. File a ticket if you notice a language that is not working with this config.

always_keep_download

  • Type: Bool
  • Env: MISE_ALWAYS_KEEP_DOWNLOAD
  • Default: false

should mise keep downloaded files after installation

always_keep_install

  • Type: Bool
  • Env: MISE_ALWAYS_KEEP_INSTALL
  • Default: false

should mise keep install files after installation even if the installation fails

aqua_registry_url

  • Type: Url(optional)
  • Env: MISE_AQUA_REGISTRY_URL
  • Default: None

URL to fetch aqua registry from. This is used to install tools from the aqua registry.

By default, the official aqua registry is used: https://github.com/aquaproj/aqua-registry

However when this is not specified, instead of cloning the entire registry each individual tool's metadata is fetched via HTTP individually.

asdf_compat

  • Type: Bool
  • Env: MISE_ASDF_COMPAT
  • Default: false

Only output .tool-versions files in mise local|global which will be usable by asdf. This disables mise functionality that would otherwise make these files incompatible with asdf such as non-pinned versions.

This will also change the default global tool config to be ~/.tool-versions instead of ~/.config/mise/config.toml.

cache_prune_age

  • Type: Duration
  • Env: MISE_CACHE_PRUNE_AGE
  • Default: 30d

The age of the cache before it is considered stale. mise will occasionally delete cache files which have not been accessed in this amount of time.

Set to 0s to keep cache files indefinitely.

color

  • Type: Bool
  • Env: MISE_COLOR
  • Default: true

Use color in mise terminal output

disable_backends

  • Type: string[]
  • Env: MISE_DISABLE_BACKENDS
  • Default: []

Backends to disable such as asdf or pipx

disable_default_registry

  • Type: Bool
  • Env: MISE_DISABLE_DEFAULT_REGISTRY
  • Default: false

Disable the default mapping of short tool names like go -> vfox:version-fox/vfox-golang

disable_hints

  • Type: string[]
  • Env: MISE_DISABLE_HINTS
  • Default: []

Turns off helpful hints when using different mise features

disable_tools

  • Type: string[]
  • Env: MISE_DISABLE_TOOLS
  • Default: []

Tools defined in mise.toml that should be ignored

experimental

  • Type: Bool
  • Env: MISE_EXPERIMENTAL
  • Default: false

Enables experimental features. I generally will publish new features under this config which needs to be enabled to use them. While a feature is marked as "experimental" its behavior may change or even disappear in any release.

The idea is experimental features can be iterated on this way so we can get the behavior right, but once that label goes away you shouldn't expect things to change without a proper deprecation—and even then it's unlikely.

Also, I very often will use experimental as a beta flag as well. New functionality that I want to test with a smaller subset of users I will often push out under experimental mode even if it's not related to an experimental feature.

If you'd like to help me out, consider enabling it even if you don't have a particular feature you'd like to try. Also, if something isn't working right, try disabling it if you can.

fetch_remote_versions_cache

  • Type: Duration
  • Env: MISE_FETCH_REMOTE_VERSIONS_CACHE
  • Default: 1h

duration that remote version cache is kept for for "fast" commands (represented by PREFER_STALE), these are always cached. For "slow" commands like mise ls-remote or mise install:

  • if MISE_FETCH_REMOTE_VERSIONS_CACHE is set, use that
  • if MISE_FETCH_REMOTE_VERSIONS_CACHE is not set, use HOURLY

fetch_remote_versions_timeout

  • Type: Duration
  • Env: MISE_FETCH_REMOTE_VERSIONS_TIMEOUT
  • Default: 10s

Timeout in seconds for HTTP requests to fetch new tool versions in mise.

go_default_packages_file

  • Type: Path
  • Env: MISE_GO_DEFAULT_PACKAGES_FILE
  • Default: ~/.default-go-packages

Path to a file containing default go packages to install when installing go

go_download_mirror

  • Type: string
  • Env: MISE_GO_DOWNLOAD_MIRROR
  • Default: https://dl.google.com/go

Mirror to download go sdk tarballs from.

go_repo

  • Type: Url
  • Env: MISE_GO_REPO
  • Default: https://github.com/golang/go

URL to fetch go from.

go_set_gobin

  • Type: Bool(optional)
  • Env: MISE_GO_SET_GOBIN
  • Default: None

Defaults to ~/.local/share/mise/installs/go/.../bin. Set to true to override GOBIN if previously set. Set to false to not set GOBIN (default is ${GOPATH:-$HOME/go}/bin).

go_set_gopathdeprecated

  • Type: Bool
  • Env: MISE_GO_SET_GOPATH
  • Default: false
  • Deprecated: Use env._go.set_goroot instead.

[deprecated] Set to true to set GOPATH=~/.local/share/mise/installs/go/.../packages.

go_set_goroot

  • Type: Bool
  • Env: MISE_GO_SET_GOROOT
  • Default: true

Sets GOROOT=~/.local/share/mise/installs/go/.../.

go_skip_checksum

  • Type: Bool
  • Env: MISE_GO_SKIP_CHECKSUM
  • Default: false

Set to true to skip checksum verification when downloading go sdk tarballs.

http_timeout

  • Type: Duration
  • Env: MISE_HTTP_TIMEOUT
  • Default: 30s

Timeout in seconds for all HTTP requests in mise.

jobs

  • Type: integer
  • Env: MISE_JOBS
  • Default: 4

How many jobs to run concurrently such as tool installs.

legacy_version_file

  • Type: Bool
  • Env: MISE_LEGACY_VERSION_FILE
  • Default: true

Plugins can read the versions files used by other version managers (if enabled by the plugin) for example, .nvmrc in the case of node's nvm. See legacy version files for more information.

Set to "false" to disable legacy version file parsing.

legacy_version_file_disable_tools

  • Type: string[]
  • Env: MISE_LEGACY_VERSION_FILE_DISABLE_TOOLS
  • Default: []

Specific tools to disable idiomatic version files for.

libgit2

  • Type: Bool
  • Env: MISE_LIBGIT2
  • Default: true

Use libgit2 for git operations. This is generally faster but may not be as compatible if the system's libgit2 is not the same version as the one used by mise.

lockfile

  • Type: Bool
  • Env: MISE_LOCKFILE
  • Default: false

Read/update lockfiles for tool versions. This is useful when you'd like to have loose versions in mise.toml like this:

[tools]
node = "22"
gh = "latest"

But you'd like the versions installed to be consistent within a project. When this is enabled, mise will update mise.lock files next to mise.toml files containing pinned versions. When installing tools, mise will reference this lockfile if it exists and this setting is enabled to resolve versions.

The lockfiles are not created automatically. To generate them, run the following (assuming the config file is mise.toml):

touch mise.lock && mise install

The lockfile is named the same as the config file but with .lock instead of .toml as the extension, e.g.:

  • mise.toml -> mise.lock
  • mise.local.toml -> mise.local.lock
  • .config/mise.toml -> .config/mise.lock

not_found_auto_install

  • Type: Bool
  • Env: MISE_NOT_FOUND_AUTO_INSTALL
  • Default: true

Set to false to disable the "command not found" handler to autoinstall missing tool versions. Disable this if experiencing strange behavior in your shell when a command is not found.

This also runs in shims if the terminal is interactive.

paranoid

  • Type: Bool
  • Env: MISE_PARANOID
  • Default: false

Enables extra-secure behavior. See Paranoid.

pin

  • Type: Bool
  • Env: MISE_PIN
  • Default: false

This sets --pin by default when running mise use in mise.toml files. This can be overridden by passing --fuzzy on the command line.

plugin_autoupdate_last_check_duration

  • Type: string
  • Env: MISE_PLUGIN_AUTOUPDATE_LAST_CHECK_DURATION
  • Default: 7d

How long to wait before updating plugins automatically (note this isn't currently implemented).

profile

  • Type: string(optional)
  • Env: MISE_PROFILE
  • Default: None

Profile to use for mise.${MISE_PROFILE}.toml files.

quiet

  • Type: Bool
  • Env: MISE_QUIET
  • Default: false

Suppress all output except errors.

raw

  • Type: Bool
  • Env: MISE_RAW
  • Default: false

Connect stdin/stdout/stderr to child processes.

shorthands_file

  • Type: Path(optional)
  • Env: MISE_SHORTHANDS_FILE
  • Default: None

Use a custom file for the shorthand aliases. This is useful if you want to share plugins within an organization.

Shorthands make it so when a user runs something like mise install elixir mise will automatically install the asdf-elixir plugin. By default, it uses the shorthands in registry.toml.

The file should be in this toml format:

elixir = "https://github.com/my-org/mise-elixir.git"
node = "https://github.com/my-org/mise-node.git"

task_output

  • Type: string(optional)
  • Env: MISE_TASK_OUTPUT
  • Default: None
  • Choices:
    • prefix – (default if jobs > 1) print by line with the prefix of the task name
    • interleave – (default if jobs > 1) print by line with the prefix of the task name

Change output style when executing tasks. This controls the output of mise run.

task_timings

  • Type: Bool
  • Env: MISE_TASK_TIMINGS
  • Default: false

Show completion message with elapsed time for each task on mise run.

trusted_config_paths

  • Type: string[]
  • Env: MISE_TRUSTED_CONFIG_PATHS
  • Default: []

This is a list of config paths that mise will automatically mark as trusted.

unix_default_file_shell_args

  • Type: string[]
  • Env: MISE_UNIX_DEFAULT_FILE_SHELL_ARGS
  • Default: [ "sh" ]

List of default shell arguments for unix to be used with file. For example sh.

unix_default_inline_shell_args

  • Type: string[]
  • Env: MISE_UNIX_DEFAULT_INLINE_SHELL_ARGS
  • Default: [ "sh", "-c" ]

List of default shell arguments for unix to be used with inline commands. For example, sh, -c for sh.

use_file_shell_for_executable_tasks

  • Type: Bool
  • Env: MISE_USE_FILE_SHELL_FOR_EXECUTABLE_TASKS
  • Default: false

Determines whether to use a specified shell for executing tasks in the tasks directory. When set to true, the shell defined in the file will be used, or the default shell specified by windows_default_file_shell_args or unix_default_file_shell_args will be applied. If set to false, tasks will be executed directly as programs.

use_versions_host

  • Type: Bool
  • Env: MISE_USE_VERSIONS_HOST
  • Default: true

Set to "false" to disable using mise-versions as a quick way for mise to query for new versions. This host regularly grabs all the latest versions of core and community plugins. It's faster than running a plugin's list-all command and gets around GitHub rate limiting problems when using it.

See FAQ for more information.

verbose

  • Type: Bool
  • Env: MISE_VERBOSE
  • Default: false

Shows more verbose output such as installation logs when installing tools.

windows_default_file_shell_args

  • Type: string[]
  • Env: MISE_WINDOWS_DEFAULT_FILE_SHELL_ARGS
  • Default: [ "cmd", "/c" ]

List of default shell arguments for Windows to be used for file commands. For example, cmd, /c for cmd.exe.

windows_default_inline_shell_args

  • Type: string[]
  • Env: MISE_WINDOWS_DEFAULT_INLINE_SHELL_ARGS
  • Default: [ "cmd", "/c" ]

List of default shell arguments for Windows to be used for inline commands. For example, cmd, /c for cmd.exe.

windows_executable_extensions

  • Type: string[]
  • Env: MISE_WINDOWS_EXECUTABLE_EXTENSIONS
  • Default: [ "exe", "bat", "cmd", "com", "ps1", "vbs" ]

List of executable extensions for Windows. For example, exe for .exe files, bat for .bat files, and so on.

yes

  • Type: Bool
  • Env: MISE_YES
  • Default: false

This will automatically answer yes or no to prompts. This is useful for scripting.

cargo

cargo.binstall

  • Type: Bool
  • Env: MISE_CARGO_BINSTALL
  • Default: true

If true, mise will use cargo binstall instead of cargo install if cargo-binstall is installed and on PATH. This makes installing CLIs with cargo much faster by downloading precompiled binaries.

You can install it with mise:

mise use -g cargo-binstall

node

node.compile

  • Type: Bool(optional)
  • Env: MISE_NODE_COMPILE
  • Default: None

Compile node from source.

node.flavor

  • Type: string(optional)
  • Env: MISE_NODE_FLAVOR
  • Default: None

Install a specific node flavor like glibc-217 or musl. Use with unofficial node build repo.

node.mirror_url

  • Type: Url(optional)
  • Env: MISE_NODE_MIRROR_URL
  • Default: None

Mirror to download node tarballs from.

npm

npm.bun

  • Type: Bool
  • Env:
  • Default: false

If true, mise will use bun instead of npm if bun is installed and on PATH. This makes installing CLIs faster by using bun as the package manager.

You can install it with mise:

mise use -g bun

pipx

pipx.uvx

  • Type: Bool
  • Env:
  • Default: false

If true, mise will use uvx instead of pipx if uv is installed and on PATH. This makes installing CLIs much faster by using uv as the package manager.

You can install it with mise:

mise use -g uv

python

python.compile

  • Type: Bool(optional)
  • Env: MISE_PYTHON_COMPILE
  • Default: None
  • Values:
    • true - always compile with python-build instead of downloading precompiled binaries.
    • false - always download precompiled binaries.
    • [undefined] - use precompiled binary if one is available for the current platform, compile otherwise.

python.default_packages_file

  • Type: Path(optional)
  • Env: MISE_PYTHON_DEFAULT_PACKAGES_FILE
  • Default: None

Path to a file containing default python packages to install when installing a python version.

python.patch_url

  • Type: Url(optional)
  • Env: MISE_PYTHON_PATCH_URL
  • Default: None

URL to fetch python patches from to pass to python-build.

python.patches_directory

  • Type: Path(optional)
  • Env: MISE_PYTHON_PATCHES_DIRECTORY
  • Default: None

Directory to fetch python patches from.

python.precompiled_arch

  • Type: string(optional)
  • Env: MISE_PYTHON_PRECOMPILED_ARCH
  • Default: None

Specify the architecture to use for precompiled binaries.

python.precompiled_os

  • Type: string(optional)
  • Env: MISE_PYTHON_PRECOMPILED_OS
  • Default: None

Specify the architecture to use for precompiled binaries. If on an old CPU, you may want to set this to "x86_64" for the most compatible binaries. See https://gregoryszorc.com/docs/python-build-standalone/main/running.html for more information.

python.pyenv_repo

  • Type: string
  • Env: MISE_PYENV_REPO
  • Default: https://github.com/pyenv/pyenv.git

URL to fetch pyenv from for compiling python with python-build.

python.venv_auto_createdeprecated

  • Type: Bool
  • Env: MISE_PYTHON_VENV_AUTO_CREATE
  • Default: false
  • Deprecated: Use env._python.venv instead.

Automatically create virtualenvs for python tools.

python.venv_stdlib

  • Type: Bool
  • Env: MISE_VENV_STDLIB
  • Default: false

Prefer to use venv from Python's standard library.

ruby

ruby.apply_patches

  • Type: string(optional)
  • Env: MISE_RUBY_APPLY_PATCHES
  • Default: None

A list of patch files or URLs to apply to ruby source.

ruby.default_packages_file

  • Type: string
  • Env: MISE_RUBY_DEFAULT_PACKAGES_FILE
  • Default: ~/.default-gems

Path to a file containing default ruby gems to install when installing ruby.

ruby.ruby_build_opts

  • Type: string(optional)
  • Env: MISE_RUBY_BUILD_OPTS
  • Default: None

Options to pass to ruby-build.

ruby.ruby_build_repo

  • Type: string
  • Env: MISE_RUBY_BUILD_REPO
  • Default: https://github.com/rbenv/ruby-build.git

URL to fetch ruby-build from.

ruby.ruby_install

  • Type: Bool
  • Env: MISE_RUBY_INSTALL
  • Default: false

Use ruby-install instead of ruby-build.

ruby.ruby_install_opts

  • Type: string(optional)
  • Env: MISE_RUBY_INSTALL_OPTS
  • Default: None

Options to pass to ruby-install.

ruby.ruby_install_repo

  • Type: string
  • Env: MISE_RUBY_INSTALL_REPO
  • Default: https://github.com/postmodern/ruby-install.git

URL to fetch ruby-install from.

ruby.verbose_install

  • Type: Bool(optional)
  • Env: MISE_RUBY_VERBOSE_INSTALL
  • Default: None

Set to true to enable verbose output during ruby installation.

status

status.missing_tools

  • Type: string
  • Env: MISE_STATUS_MESSAGE_MISSING_TOOLS
  • Default: if_other_versions_installed
Choice Description
if_other_versions_installed [default] Show the warning only when the tool has at least 1 other version installed
always Always show the warning
never Never show the warning

Show a warning if tools are not installed when entering a directory with a mise.toml file.

::: tip Disable tools with disable_tools. :::

status.show_env

  • Type: Bool
  • Env: MISE_STATUS_MESSAGE_SHOW_ENV
  • Default: false

Show configured env vars when entering a directory with a mise.toml file.

status.show_tools

  • Type: Bool
  • Env: MISE_STATUS_MESSAGE_SHOW_TOOLS
  • Default: false

Show configured env vars when entering a directory with a mise.toml file.

Licensed under the MIT License. Maintained by @jdx and friends.