DEV Community

Alex Spinov
Alex Spinov

Posted on

Mise Has a Free Dev Tool Manager — Replace nvm, pyenv, rbenv With One Tool

Tool Version Management Is a Mess

You need nvm for Node.js versions. pyenv for Python. rbenv for Ruby. goenv for Go. Each has its own installer, shell config, and upgrade process.

Project A needs Node 18. Project B needs Node 22. Project C needs Node 20 + Python 3.11 + Go 1.22.

Mise: One Tool to Manage Them All

Mise (formerly rtx) is a polyglot dev tool version manager. Manage Node.js, Python, Ruby, Go, Java, Rust, and 400+ tools with one command.

Replace Everything

# Before: 5 different tools
nvm install 22
nvm use 22
pyenv install 3.12
pyenv local 3.12
rbenv install 3.3

# After: 1 tool
mise use node@22
mise use python@3.12
mise use ruby@3.3
Enter fullscreen mode Exit fullscreen mode

Per-Project Versions

# .mise.toml (in your project root)
[tools]
node = "22"
python = "3.12"
go = "1.22"

[env]
DATABASE_URL = "postgres://localhost/myapp"
Enter fullscreen mode Exit fullscreen mode

cd into the project → correct versions activate automatically. Leave → your global versions return.

400+ Supported Tools

mise use node@22        # Node.js
mise use python@3.12    # Python
mise use go@1.22        # Go
mise use rust@stable    # Rust
mise use java@21        # Java
mise use terraform@1.7  # Terraform
mise use kubectl@1.29   # Kubernetes CLI
mise use deno@2         # Deno
mise use bun@1          # Bun
Enter fullscreen mode Exit fullscreen mode

Any tool that asdf supports, mise supports — but 10x faster.

Why Mise Over asdf

Feature Mise asdf
Speed 10x faster (Rust) Slow (Bash)
Shell activation Instant Shim-based (slow)
Config format TOML .tool-versions
Env management Built-in No
Task runner Built-in No
Fuzzy versions Yes (node@22) Exact only

Built-in Task Runner

# .mise.toml
[tasks.dev]
run = "npm run dev"
description = "Start dev server"

[tasks.test]
run = "npm test"
description = "Run tests"

[tasks.deploy]
depends = ["test"]
run = "kamal deploy"
Enter fullscreen mode Exit fullscreen mode
mise run dev    # Start dev server with correct tool versions
mise run deploy # Run tests first, then deploy
Enter fullscreen mode Exit fullscreen mode

Environment Variables

[env]
DATABASE_URL = "postgres://localhost/dev"
REDIS_URL = "redis://localhost:6379"
NODE_ENV = "development"
Enter fullscreen mode Exit fullscreen mode

No more .env files or direnv. Mise handles everything.

Install

curl https://mise.jdx.dev/install.sh | sh
mise activate
Enter fullscreen mode Exit fullscreen mode

Building dev tools? 88+ web scrapers on Apify. Custom data solutions: spinov001@gmail.com

Top comments (0)