Stians Tech Tips logoStians Tech Tips

mise

command-line·tool·productivity

mise

mise manages the versions of programming languages and command-line tools you use, one set per project. Instead of juggling nvm for Node, pyenv for Python and a separate thing for every other language, mise handles them all from a single config file.

Install it and add the shell hook:

curl https://mise.run | sh
echo 'eval "$(mise activate bash)"' >> ~/.bashrc

In a project, pin the tools you want:

mise use node@22 python@3.12

That writes a mise.toml file and installs those versions. Whenever you cd into the project mise puts the right versions on your PATH, and when you step into another project it switches automatically. It can also manage environment variables and run project tasks, so it often replaces direnv and a Makefile too.

I use it so every project brings its own toolchain and I never end up on the wrong Node version for the job.