Manage multiple runtime versions with a single CLI tool, extendable via plugins - docs at asdf-vm.com
asdf is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm, nvm, rbenv & pyenv (and more) all in one! Simply install your language’s plugin!
Why use asdf?
single CLI for multiple languages
consistent commands to manage all your languages
single global config keeping defaults in one place
single .tool-versions config file per project
support for existing config files .node-version, .nvmrc, .ruby-version for easy migration
automatically switches runtime versions as you traverse your directories
simple plugin system to add support for your language of choice
shell completion available for common shells (Bash, Zsh, Fish, Elvish)
GitHub Issues
: report a bug or raise a feature request to the asdf core team
StackOverflow Tag
: see existing Q&A for asdf. Some of the core team watch this tag in addition to our helpful community
Ballad of asdf
Once upon a time there was a programming language There were many versions of it So people wrote a version manager for it To switch between versions for projects Different, old, new.
Then there came more programming languages So there came more version managers And many commands for them
I installed a lot of them I learnt a lot of commands
Then I said, just one more version manager Which I will write instead
A version manager so extendable for which anyone can create a plugin To support their favourite language No more installing more version managers Or learning more commands
This was the mail I wrote to a few friends to tell them about the project. Thanks to @roshanvid for suggesting that this go into the readme