TL;DR — Quick Summary
mise (formerly rtx) manages dev tool versions. Node.js, Python, Go, Rust, Java — one tool for all runtimes. asdf-compatible, faster, with built-in tasks and env vars.
mise manages everything. Node, Python, Go, Ruby, Java — one tool, one config, all versions.
Installation
# macOS
brew install mise
# Script
curl https://mise.run | sh
# Activate (add to .bashrc/.zshrc)
eval "$(mise activate bash)"
# or
eval "$(mise activate zsh)"
Usage
# Install and use a tool version
mise use node@20
mise use python@3.12
mise use go@1.22
# Pin version in current project
mise use --pin ruby@3.3.0
# List installed
mise list
# List available versions
mise list-all node
# Global version
mise use -g node@20
# Run in context
mise exec node@18 -- node app.js
# Environment variables
mise set MY_VAR=value
# Tasks
mise run build
mise run test
Configuration
# .mise.toml
[tools]
node = "20"
python = "3.12"
go = "1.22"
[env]
DATABASE_URL = "postgres://localhost/mydb"
[tasks.build]
run = "npm run build"
[tasks.test]
run = "npm test"
depends = ["build"]
Summary
- mise manages 400+ dev tool versions from one CLI
- asdf-compatible plugins, 10-100x faster (Rust)
- Built-in task runner with dependencies
- Environment variable management (.env support)
- Per-project and global version pinning