Skip to content

MISE

Pronounced "meez" (short for mise-en-place). One tool that replaces asdf, direnv, and Make: installs runtimes, loads env vars per project, runs tasks. Written in Rust by Jeff Dickey (jdx) — the guy who got tired of waiting for Bash. 30k+ GitHub stars, ThoughtWorks Adopt rating.

2026 Update

MISE hit 30.6k stars, 7,437 commits, 1000+ tools in registry. Renamed from rtx in 2024. Fully backward-compatible with .tool-versions — zero migration friction. Active development with daily releases (v2026.7.5).


Quick Hits

Install:

# Quick install (recommended)
curl https://mise.run | sh

# Or via package manager
brew install mise           # macOS
sudo snap install mise      # Linux
cargo install mise          # From source

Activate in shell:

# Add to ~/.zshrc / ~/.bashrc
eval "$(~/.local/bin/mise activate zsh)"   # or bash, fish, pwsh

Install tools:

# One command: installs plugin + runtime + sets version
mise use node@22
mise use python@3.12

# Install from existing .tool-versions or .mise.toml
mise install

# List installed / available
mise ls                 # Installed tools
mise ls-remote node     # Available versions

Real talk: - mise use node@22 does everything — plugin install, version install, config write - Reads .tool-versions automatically (no migration needed from asdf) - mise install installs everything in the config file at once - Use mise use --global for system-wide defaults

.mise.toml — project config:

[tools]
node = "22"
python = "3.12"
terraform = "1"

[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost/myapp"

[tasks.build]
run = "npm run build"

[tasks.test]
depends = ["build"]
run = "pytest"

Using env vars:

# Load .env files
mise set DATABASE_URL=postgres://localhost/myapp

# Show env for current project
mise env

Running tasks:

# Define tasks in mise.toml, then:
mise run test
mise build   # Shortcut — no "run" needed if no name conflict

# Selector UI for picking a task
mise run

Why this works: - TOML is readable, git-friendly, supports comments - Tasks auto-install required tools before running - Env vars load per-directory (like direnv, but built-in) - Replaces asdf + direnv + Makefile with one file

Tips: - No shims — MISE modifies PATH directly, so node -v has zero overhead (asdf shims add ~120ms per call) - Fuzzy matching everywheremise use node@20 works in all contexts (config files, CLI, tasks) - Auto-install — entering a project with uninstalled tools triggers automatic installation - Backends — supports asdf, aqua, cargo, npm, pipx, go, gem, ubi, vfox backends (not just asdf plugins) - Security — built-in support for Cosign, SLSA, GitHub Artifact Attestations - Legacy compat — reads .nvmrc, .node-version, .ruby-version files - Updatemise self-update keeps you on latest (daily releases) - Use mise doctor to diagnose shell integration issues

Gotchas: - brew vs curl — the brew formula lags slightly behind the curl install (curl recommended) - Shell hook required — without eval "$(mise activate ...)", tools won't switch automatically - Windows support — limited (no native Windows, WSL2 recommended) - Task naming conflicts — if MISE adds a command name you use as a task, fall back to mise run task-name - Plugin dependency — some asdf plugins need build tools (Python needs libssl-dev, etc.) - Cache — run mise cache clear if remote version listings seem stale


Resources

Official: - MISE Docs — Full documentation - :lucide-github: GitHub — Source code, 30.6k stars - :simple-git-compare: Comparison to asdf — Why MISE exists

Install: - Quick installcurl https://mise.run | sh - Homebrewbrew install mise - Crates.iocargo install mise

Communities: - Discord — MISE community server - GitHub Discussions — Q&A, ideas, bug reports - X X/Twitter @jdxcode — Creator updates

Related: - aube — Node.js package manager by @jdx - rtx — Predecessor (renamed to MISE in 2024)


Last Updated: 2026-07-09 | Vibe Check: Rust-Powered Upgrade - MISE is what asdf should have been from day one. Same plugin ecosystem, zero migration cost, dramatically better performance. If you use asdf, switch. If you don't, start here.

Tags: mise, version-manager, rust, dev-tools, task-runner, cli, development-tools