You are on page 1of 2

asdf-vm/asdf: Extendable version manager with

support for Ruby, Node.js, Elixir, Erlang & more


github.com/asdf-vm/asdf

asdf-vm

asdf
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)

Documentation
Please head over to the documentation site for more information!

Getting Started
All Commands
All Plugins
Create a Plugin with our asdf-plugin-template
asdf GitHub Actions

Contributing
See CONTRIBUTING.md in the repo or the Contributing section on the docs site.

Community & Questions

Ballad of asdf

1/2
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

So, there came another version manager


asdf version manager - https://github.com/asdf-vm/asdf

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

@HashNuke

2/2

You might also like