C.W.K.
Stream
Lesson 08 of 08 · published

mise / asdf: Multi-Tool Version Manager

~10 min · mise, asdf, version-manager

Level 0Window Tourist
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

One tool, every runtime version

You used to install nvm for Node, pyenv for Python, rbenv for Ruby, jenv for Java. mise (formerly rtx) and asdf replace all of them with one CLI that pins per-project versions via a single config file.

Install mise

brew install mise
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc

Pin versions per project

# In any project root
mise use python@3.12 node@20 ruby@3.3
# Writes .mise.toml with the pins
cat .mise.toml
# Anyone cd-ing in gets the right versions automatically

.mise.toml is the project's source of truth. New machines run mise install to download the pinned versions; after that the right runtime is always active inside the project dir.

Global tool defaults

mise use -g python@3.12 node@22
mise list                 # see what's installed
mise upgrade              # bump pinned versions to latest patch

Why mise over asdf

  • Faster (Rust binary; asdf is shell scripts).
  • Compatible with asdf plugins out of the box.
  • Built-in env var management ([env] in mise.toml).
  • direnv-style hooks without needing a second tool.

If you're starting fresh, mise. If you have an asdf setup that works, no rush — both are healthy projects.

Pippa note

cwkPippa uses conda + direnv for Python because the conda ecosystem matters for ML packages. mise excels for non-ML stacks (web, scripting, Java). Pick per project — they coexist fine.

Code

Bootstrap mise·bash
brew install mise
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
exec zsh
cd ~/myproject
mise use python@3.12 node@20
cat .mise.toml

External links

Exercise

Install mise. cd into any project. Run mise use python@3.12 and watch .mise.toml appear. cd out of the project, run python --version, see your global. cd back in, see the pinned version.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.