mise
Polyglot runtime and tool version manager (successor to asdf-vm and rtx). Manages multiple language runtimes and tools (Node.js, Python, Ruby, Go, Rust, Java, and 500+ more) with per-directory version pinning via .mise.toml or .tool-versions. Significantly faster than asdf (written in Rust). Supports task running (like Make/just), environment variable management per directory, and plugin ecosystem. Replaces nvm, pyenv, rbenv, and similar single-language version managers with one unified tool.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
MIT open source for auditability. Downloads from tool registries verified by checksum. Shim-based PATH management doesn't expose new network services. Environment variable support in .mise.toml requires care to not commit secrets. Rust-based implementation for memory safety.
⚡ Reliability
Best When
You're working with multiple languages and want one tool to manage all runtime versions with per-project pinning, faster than asdf and more powerful than nvm/pyenv.
Avoid When
You only use one language and have one version — a single-language version manager or system package is simpler than adding mise.
Use Cases
- • Manage language runtime versions across agent development projects — Node 20 for one, Python 3.12 for another, automatically switching when entering each project directory
- • Pin exact tool versions for agent projects in .mise.toml checked into git — CI environments install identical versions as local dev, eliminating version drift
- • Replace multiple single-language version managers (nvm, pyenv, rbenv, gvm) with a single unified tool across all agent development machines
- • Define and run project-specific tasks (lint, test, build, deploy) via mise tasks — unified task runner replacing Makefile for polyglot agent projects
- • Manage per-directory environment variables securely — .mise.toml can set env vars that activate automatically when entering a project directory
Not For
- • Production dependency management — mise manages development tool versions, not production library dependencies (use npm, pip, cargo for that)
- • Full isolated environments — mise manages tool versions but shares the system; use Devbox or Docker for full environment isolation with all system libraries
- • Teams on Windows without WSL — mise has experimental Windows support but works best on macOS and Linux
Interface
Authentication
No authentication — local CLI tool. Plugin downloads from mise registry. No account required.
Pricing
MIT licensed, completely free. No commercial components.
Agent Metadata
Known Gotchas
- ⚠ mise uses shims by default (like asdf) which can cause path resolution issues in some CI environments — use `mise exec` or `eval "$(mise activate)"` explicitly in CI rather than assuming PATH is correct
- ⚠ Tool plugins (for non-official tools) must be installed before the tool — `mise plugin add <tool>` before `mise install <tool>`; plugin installation requires network access to the plugin registry
- ⚠ Shell hook activation (`eval "$(mise activate bash)"`) is required for auto-switching on directory change — CI environments must include activation in .bashrc or explicitly call mise exec
- ⚠ Version pinning uses .mise.toml (TOML format) or .tool-versions (legacy asdf format) — mixing formats in a project can cause confusion; standardize on one
- ⚠ mise tasks (task runner) are defined in mise.toml and not automatically available without configuration — agents using mise for task running must have tasks defined in project mise.toml
- ⚠ Python via mise installs Python but not virtualenv by default — agents must still create and activate virtual environments for Python package isolation
- ⚠ First installation of a tool version downloads binary or compiles from source — initial install can be slow (minutes for compiled tools like Python); plan for CI cold start time
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for mise.
Scores are editorial opinions as of 2026-03-06.