- Like asdf (or nvm or pyenv but for any language) it manages dev tools like node, python, cmake, terraform, and hundreds more.
- Like direnv it manages environment variables for different project directories.
- Like make it manages tasks used to build and test projects.
The following shows using mise to install different versions
of node.
Note that calling which node
gives us a real path to node, not a shim.
Install mise (other methods here):
$ curl https://mise.run | sh
$ ~/.local/bin/mise --version
2024.12.19 macos-arm64 (a1b2d3e 2024-12-23)
or install a specific a version:
$ curl https://mise.run | MISE_VERSION=v2024.5.16 sh
$ ~/.local/bin/mise --version
2024.5.16 macos-arm64 (8838098 2024-05-14)
Hook mise into your shell (pick the right one for your shell):
# note this assumes mise is located at ~/.local/bin/mise
# which is what https://mise.run does by default
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
echo '~/.local/bin/mise activate mise activate pwsh | Out-String | Invoke-Expression' >> ~/.config/powershell/Microsoft.PowerShell_profile.ps1
Install a runtime and set it as the global default:
$ mise use --global node@20
$ node -v
v20.0.0
See mise.jdx.dev