Repolode
asdf-vm

asdf-vm/asdf

A CLI version manager that switches runtime versions per project for many languages through a plugin system.

Stars
25,617
Forks
1,048
Open issues
149
Last commit
6 days ago

What is it?

asdf is a command-line tool for installing and switching language runtime versions such as Ruby, Node.js, Elixir and Erlang. Instead of running a separate version manager for each language, you use one CLI with consistent commands for all of them.

Versions are pinned per project in a single .tool-versions file, and asdf switches to the matching runtime automatically as you move between directories. A global config holds defaults, and existing files such as .nvmrc, .node-version and .ruby-version are recognized to ease migration.

Support for each language comes from a plugin, and anyone can write one to add a new runtime. Shell completion is available for Bash, Zsh, Fish and Elvish.

Key features

  • 01Single CLI and consistent commands for multiple language runtimes
  • 02Per-project version pinning via a .tool-versions file
  • 03Automatic version switching when changing directories
  • 04Reads existing .nvmrc, .node-version and .ruby-version files
  • 05Plugin system for adding new languages
  • 06Shell completion for Bash, Zsh, Fish and Elvish

Use cases

  • Working on several projects that each need a different Ruby or Node.js version
  • Standardizing runtime versions across a team with one committed config file
  • Migrating away from per-language tools like nvm, rbenv or pyenv

Things to know

  • Each language needs its own plugin installed before asdf can manage its versions.

In collections

Topics

FAQ

What is asdf?
A CLI version manager that switches runtime versions per project for many languages through a plugin system. asdf is a command-line tool for installing and switching language runtime versions such as Ruby, Node.js, Elixir and Erlang. Instead of running a separate version manager for each language, you use one CLI with consistent commands for all of them.
Is asdf free to use? What license does it have?
asdf is open source under the MIT license. Check the license terms before using it in commercial products.
Is asdf still maintained?
Actively maintained. The last commit to asdf was on Nov 1, 2026.
What can I use asdf for?
Working on several projects that each need a different Ruby or Node.js version Standardizing runtime versions across a team with one committed config file Migrating away from per-language tools like nvm, rbenv or pyenv
Where can I get asdf?
The source code and installation instructions are on GitHub: https://github.com/asdf-vm/asdf

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects