asdf README

The project's README from github.com/asdf-vm/asdf. As one markdown file: README.md.

asdf

Lint Tests

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?

Documentation

Please head over to the documentation site for more information!

Contributing

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

Community & Questions

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

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

asdf (asdf-vm/asdf)

Searching Database…

25.6K ·GitHub
What is this?asdf is a CLI tool that manages multiple language runtime versions on a per-project basis — like gvm, nvm, rbenv and pyenv all in one. You add a plugin for each language you use.
Is it yet another single-language version manager, or does it replace tools like nvm and rbenv?It replaces them: a single CLI with consistent commands for all your languages, one global config for defaults, and one .tool-versions file per project.
How do I get it running?Install asdf, then simply install a plugin for each language you use and pin versions in your project's .tool-versions file. The Getting Started guide at asdf-vm.com covers the whole flow.
Which languages can it manage?Nothing is built in — every runtime comes from a plugin you install. Ruby, Node.js, Elixir and Erlang are called out in the project description, and the docs site keeps an index of all plugins.
What if there is no plugin for my language yet?Coverage depends on the plugin ecosystem: if your language is missing, you write your own plugin using the project's asdf-plugin-template.
Does it switch versions automatically between projects?Yes — asdf switches runtime versions automatically as you traverse directories, driven by each project's single .tool-versions config file.
I already use nvm and rbenv — can I migrate my configs?Yes. asdf supports existing config files — .node-version, .nvmrc and .ruby-version — for easy migration, so you don't have to rewrite every project's config right away.
Which shells get command completion?Shell completion is available for common shells: Bash, Zsh, Fish and Elvish.
Why did the author build yet another version manager?Per the README's 'Ballad of asdf': the author got tired of installing a version manager for every new language and learning a different command set for each, so they wrote one extendable, plugin-based manager instead.
What are similar projects?zoxide, oh-my-posh, inshellisense, gvm, nvm, pyenv, atuin, direnv
Creator
asdf-vm
Size
4.5 MB
Stars
25.6K
Age
11y
Commits · 90 Days