- 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.
mise will attempt to migrate most of its internal files making the transition as easy as possible. That said, it's worth reading the migration guide because there are a few things to watch out for.
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
mise 2024.2.19
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
Install a runtime and set it as the global default:
$ mise use --global node@20
$ node -v
v20.0.0
See mise.jdx.dev