Skip to content
mise
Hidden Gem

Curated by Surfaced Editorial·Developer·2 min read
Share:

mise (formerly `rtx`) is a fast, polyglot version manager for development tools written in Rust, created by jdx. It allows developers to manage multiple versions of programming languages, runtimes, and tools (like Node.js, Python, Ruby, Go, Docker, etc.) on a per-project or global basis. The primary user is any software developer who works with different programming languages or projects requiring specific tool versions, simplifying environment setup and preventing conflicts. You would use mise to ensure that when you switch between projects, the correct versions of your compilers, interpreters, and associated tools are automatically activated. It integrates seamlessly with popular shells on Linux, macOS, and Windows (via WSL).

Why It’s Useful

mise provides a unified and faster approach to tool version management, replacing or complementing tools like `nvm`, `pyenv`, `rvm`, `asdf`, and `volta` with a single, performant solution. For the full-stack developer juggling projects in Node.js, Python, and Ruby, mise automatically switches to the correct runtime versions when they `cd` into a project directory, eliminating manual version management. For a DevOps engineer setting up CI/CD pipelines, mise ensures consistent tool versions across development and build environments, preventing "works on my machine" issues. It is free and open-source. A powerful but often overlooked feature is its `mise activate` command, which allows you to define per-directory tool versions without modifying your shell's `.bashrc` or `.zshrc`, making it incredibly flexible. Its newer status and name change (from `rtx`) contribute to its lesser-known status, despite its superior performance and unified approach. mise has an active GitHub community and receives frequent updates.

Enjoyed this? Get five picks like this every morning.

Free daily newsletter — zero spam, unsubscribe anytime.