asdf-vm/asdf

Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 1 minute ago
Added to GitGenius on September 2nd, 2026
Created on November 29th, 2014
Open Issues & Pull Requests: 144 (+0)
GitHub issues: Enabled
Number of forks: 943
Total Stargazers: 25,567 (+0)
Total Subscribers: 115 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.8 days
Mean response time: 80.9 days
90th percentile: 264.9 days
Tracked items: 354

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 91% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 6% of issues opened in the past year have been closed. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 81
New in 7 days: 1
Closed in 7 days: 7
Avg open age: 887 days
Stale 30+ days: 76
Stale 90+ days: 71

Recent activity

Opened in 7 days: 1
Closed in 7 days: 7
Comments in 7 days: 1
Events in 7 days: 4

Top labels

  • bug (211)
  • enhancement (115)
  • documentation (30)
  • help wanted (16)
  • good first issue (3)
  • homebrew (3)
  • priority (3)
  • faq (2)

Detailed Description

asdf is a CLI tool that manages multiple language runtime versions on a per-project basis, extendable via plugins.

The problem asdf solves is the fragmentation of version managers across different languages. Rather than installing separate tools like gvm, nvm, rbenv, and pyenv, asdf provides a single interface for managing versions across all supported languages. It automatically switches runtime versions as you move between project directories, reading from a `.tool-versions` file per project. The tool also supports migration from existing language-specific version files like `.node-version`, `.nvmrc`, and `.ruby-version`.

Developers managing multiple languages in different projects should choose asdf to reduce cognitive load and maintain consistency. A single set of commands works across Ruby, Node.js, Elixir, Erlang, Python, Go, and any language with a community-maintained plugin. The plugin system is designed to be simple enough that adding support for new languages requires minimal effort. Shell completion is available for Bash, Zsh, Fish, and Elvish. This approach works best for teams or individuals working across polyglot codebases where per-project version pinning matters.

The project maintains active engagement with its community through multiple channels, including GitHub Issues for bug reports and feature requests, and monitoring of Stack Overflow discussions tagged with asdf-vm. The tool provides comprehensive documentation at its dedicated site, including guides for getting started, all available commands, plugin creation with a template, and GitHub Actions integration. A contributing guide is available for those interested in extending the core tool.