SkillsApr 3, 2026·2 min read

Mise — Dev Tool Manager for Every Language

One tool to manage Node, Python, Ruby, Go, Rust, and 100+ dev tool versions. Replaces nvm, pyenv, rbenv. 26K+ GitHub stars.

SK
Skill Factory · Community
Quick Use

Use it first, then decide how deep to go

This block should tell both the user and the agent what to copy, install, and apply first.

curl https://mise.run | sh
# Install and use Node.js
mise use node@22
node --version  # v22.x.x

# Install and use Python
mise use python@3.12
python --version  # 3.12.x

# Install and use Go
mise use go@1.22
go version

# Set project-specific versions
cd my-project
mise use node@20 python@3.11
# Creates .mise.toml with pinned versions
# .mise.toml (committed to git)
[tools]
node = "22"
python = "3.12"
go = "1.22"

[env]
OPENAI_API_KEY = "{{env.OPENAI_API_KEY}}"

[tasks]
dev = "npm run dev"
test = "pytest"
deploy = "bash deploy.sh"

Intro

Mise ("meez") is a polyglot dev tool version manager with 26,300+ GitHub stars that replaces nvm, pyenv, rbenv, goenv, rustup, and dozens of other version managers with a single tool. Manage Node.js, Python, Ruby, Go, Rust, Java, and 100+ tools from one CLI. Mise also handles environment variables and task running — making it a complete development environment manager. For AI projects that need Python (ML), Node.js (frontend), and Go (backend) in the same repo, Mise ensures everyone on the team uses the exact same versions.

Works with: Node.js, Python, Ruby, Go, Rust, Java, .NET, PHP, Terraform, kubectl, and 100+ tools. Best for polyglot teams and AI projects that span multiple languages. Setup time: under 1 minute.


Mise Features

100+ Supported Tools

Category Tools
Languages Node.js, Python, Ruby, Go, Rust, Java, .NET, PHP, Elixir, Zig
Cloud Terraform, kubectl, helm, aws-cli, gcloud, az
Databases PostgreSQL, MySQL, Redis, MongoDB tools
Dev Tools jq, yq, shellcheck, hadolint, actionlint
AI/ML Python, uv, pipx, conda

Per-Project Versions

cd project-a
mise use python@3.11  # This project uses 3.11

cd ../project-b
mise use python@3.12  # This project uses 3.12

# Mise auto-switches when you cd between directories

Environment Variables

# .mise.toml
[env]
DATABASE_URL = "postgresql://localhost/mydb"
OPENAI_API_KEY = "{{env.OPENAI_API_KEY}}"  # From parent env
DEBUG = "true"

Task Runner

# .mise.toml
[tasks]
dev = "npm run dev"
test = "pytest tests/"
lint = "ruff check . && biome check src/"
deploy = "bash deploy.sh"
train = "python train.py --epochs 10"
mise run dev
mise run test
mise run deploy

Compatibility

Mise reads existing config files:

  • .nvmrc (Node.js)
  • .python-version (pyenv)
  • .ruby-version (rbenv)
  • .tool-versions (asdf)

Speed

Written in Rust, Mise is significantly faster than asdf (the tool it replaces):

  • Shell startup: ~5ms (vs asdf's ~200ms)
  • Tool install: parallel downloads

FAQ

Q: What is Mise? A: Mise is a polyglot dev tool version manager with 26,300+ GitHub stars. One CLI to manage Node.js, Python, Go, Rust, and 100+ tool versions, plus env vars and task running.

Q: How is Mise different from asdf? A: Mise is a Rust rewrite of the asdf concept, 40x faster shell startup, with built-in env var management and task runner. Compatible with asdf plugins.

Q: Is Mise free? A: Yes, open-source under MIT license.


🙏

Source & Thanks

Created by Jeff Dickey. Licensed under MIT.

mise — ⭐ 26,300+

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets