Compatibility
mise reads .tool-versions files and supports legacy asdf plugins, so a project’s existing version declarations work as a starting point. mise also accepts the asdf tool names nodejs and golang, while its own mise.toml uses node and go. CLI and plugin compatibility are best-effort: some asdf spellings are accepted, but the aliases do not emulate asdf completely.
| Goal | asdf | mise |
|---|---|---|
| Install a version | asdf install nodejs 24.0.0 |
mise install node@24.0.0 |
| Set a project version | asdf set nodejs 24.0.0 |
mise use node@24.0.0 |
| Set a personal default | asdf set -u nodejs 24.0.0 |
mise use -g node@24.0.0 |
| List available versions | asdf list all nodejs |
mise ls-remote node |
| Show selected versions | asdf current |
mise ls --current |
Before you switch
The guide recommends trying one project before changing your shell:
- Install mise.
- In the project, run
mise config lsandmise ls --currentto see how mise reads the existing.tool-versions. - Run
mise install, then check a command through mise, for examplemise exec -- node --version. - Remove the asdf activation and shim
PATHentries from your shell startup files, activate mise, open a new shell and runmise doctor. - For personal defaults, use
mise use -gor edit~/.config/mise/config.toml, copying the versions you need.
Pitfalls
- mise does not reuse asdf’s installs. It installs every tool again in its own directories, so expect downloads and builds on the first
mise install. mise setis notasdf set: it writes environment variables. Usemise usefor tool versions.- If teammates still use asdf, keep the shared
.tool-versionsand update it withmise use --path .tool-versions --pin node@24. Keep mise-specific prefixes and backend identifiers out of that file. - A
mise.tomlin the same directory takes precedence over.tool-versionsfor the tools it declares. Check for conflicting entries before keeping both. - Legacy asdf shell plugins generally need a Unix environment. Running them through mise does not make them work natively on Windows.
- An asdf plugin runs shell code, so you keep trusting its maintainers when mise runs it. Many tools can instead come from mise’s built-in backends without a plugin.