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_gopath
deprecated
- 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 nameinterleave
– (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_create
deprecated
- 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.