Migrating from asdf to mise without the headaches
Source: Dev.to
1. Remove asdf plugins and uninstall asdf
# remove plugins
asdf plugin list | xargs -n 1 asdf plugin remove
# uninstall asdf
brew uninstall asdf --force
brew autoremove
Clean up .zshrc
# ASDF configuration
. "$BREW_PREFIX/opt/asdf/libexec/asdf.sh"
Remove leftover files
rm -rf ~/.asdf
rm -rf ~/.tool-versions
Confirm that asdf has been deleted
brew list asdf
# Expected output:
# Error: No such keg: /opt/homebrew/Cellar/asdf
2. Install mise
- Project page:
- Getting started:
brew install mise
Verify the installation
mise --version
_ __
____ ___ (_)_______ ___ ____ ____ / /___ _________
/ __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
/ / / / / / (__ ) __/_____/ __/ / / /_____/ /_/ / / /_/ / /__/ __/
/_/ /_/ /_/_/____/\___/ \___/_/ /_/ / .___/_/\__,_/\___/\___/
/_/ by @jdx
2025.12.12 macos-arm64 (2025-12-18)
Add the activation line to your shell configuration
(replace zsh with bash or fish if needed)
eval "$(mise activate zsh)"
3. Install mise plugins
In this example we install nodejs, pnpm, bun, yarn, and python.
List available plugins
mise plugins ls-remote
Core plugins
mise plugins ls --core
# bun, deno, elixir, erlang, go, java, node, python, ruby, rust, swift, zig
Check available versions
mise ls-remote node
mise ls-remote pnpm
mise ls-remote bun
mise ls-remote yarn
mise ls-remote python
Install specific versions
mise install node@22.21.1
mise install yarn@1.22.22
mise install pnpm@10.22.0
mise install bun@1.3.5
mise install python@3.12.12
Or use a mise.toml file
Create mise.toml in your project directory:
[tools]
node = "22.21.1"
python = "3.12.12"
yarn = "1.22.22"
pnpm = "10.22.0"
If you encounter a trust error, run:
mise trust
mise install
Verify installed versions
yarn -v
# 1.22.22
node -v
# v22.21.1
python --version
# Python 3.12.12
If you get zsh: command not found: node, ensure the activation line is present in your .zshrc:
eval "$(mise activate zsh)"
4. asdf → mise command mapping
| asdf (modern) | mise equivalent | Notes |
|---|---|---|
.tool-versions | mise.toml | Project‑local tool definitions |
asdf set | Edit mise.toml | Replaces asdf local/global |
asdf set -u | ~/.config/mise/config.toml | User/global config |
asdf install | mise install | Install all defined tools |
asdf exec | mise exec -- | Run with pinned tools |
asdf current | mise current | Show active versions |
asdf plugin add | (implicit) | mise auto‑manages plugins |
asdf plugin list | mise ls | List installed tools |
| shims | Shell activation (mise activate) | PATH‑based |
.asdf/installs | ~/.local/share/mise/installs | Tool installs |
.asdf/shims | ~/.local/share/mise/shims | Executable shims |