Analysis updated 2026-05-18
Automatically switch Node.js, Ruby, Python, or Elixir versions when entering a project folder.
Manage multiple language versions on one machine without installing separate version managers.
Ensure team members use identical language versions by committing a .tool-versions file to the repo.
| asdf-vm/asdf | microsoft/typescript-go | gocolly/colly | |
|---|---|---|---|
| Stars | 25,330 | 25,329 | 25,275 |
| Language | Go | Go | Go |
| Setup difficulty | easy | easy | easy |
| Complexity | 2/5 | 3/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
asdf is a command-line tool that lets you manage multiple versions of programming languages and runtimes on a single computer, all from one place. The problem it solves is version chaos: different projects often need different versions of Node.js, Ruby, Python, Elixir, or other languages, and historically you needed a separate tool for each one (nvm for Node, rbenv for Ruby, pyenv for Python, and so on). asdf replaces all of those with a single unified tool. It works through a plugin system, each language or runtime has a plugin you install once, and then you can install and switch between any version of that tool using the same consistent commands. Each project can have a file called .tool-versions that specifies exactly which versions it needs, and asdf automatically switches to those versions when you navigate into that project folder. It also respects existing version files like .nvmrc and .ruby-version, so migrating from older tools is straightforward. You would use asdf if you are a developer who works on multiple projects simultaneously and needs them to run on different language versions without manually switching tools. The shell completion feature works with Bash, Zsh, Fish, and Elvish shells. The core tool is written in Go.
Single command-line tool to manage multiple versions of programming languages and runtimes across projects, replacing separate tools like nvm, rbenv, and pyenv.
Mainly Go. The stack also includes Go, Bash, Zsh.
Use freely for any purpose including commercial, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.