Our take
- Activity
- 55
- Community
- 83
- Issues
- 47
- Pull requests
- 69
+6 stars in the last 7 days
- More contributors than 77% of the projects we track
- Slower to close issues than 92% of the projects we track
Overview
asdf is a command-line version manager for language runtimes. It addresses the overhead of using separate tools and commands for different languages by providing a shared interface and plugin system.
Projects can declare runtime versions in a .tool-versions file, so contributors can use the versions selected for that project. asdf also supports existing version files for some tools, which can help when migrating from other version managers.
Key Features
- Manage runtime versions for multiple languages through one CLI.
- Use plugins to add support for languages and tools.
- Set project-specific versions with
.tool-versions. - Keep default versions in a global configuration.
- Switch versions automatically when moving between directories.
- Recognize existing
.node-version,.nvmrc, and.ruby-versionfiles. - Provide shell completion for Bash, Zsh, Fish, and Elvish.
Use Cases
- Developers working across several languages can use one set of version-management commands instead of learning a separate tool for each runtime.
- Teams can record required runtime versions in project configuration to make development environments more consistent.
- Contributors can work on projects with different runtime versions and have asdf select versions as they move between directories.
- Developers migrating from other version managers can use supported Node.js or Ruby version files during the transition.
- Teams using a less common language can add support through an asdf plugin, if a suitable plugin is available or created.
Getting Started
Start with the Getting Started guide for installation and setup instructions. See the README for project links and contribution details.
Considerations
asdf depends on plugins for runtime support, so available tools and their setup depend on the plugins you choose. The repository describes support for existing version files for Node.js and Ruby; do not assume other version managers' configuration files are recognized. Consult the official documentation for installation requirements and plugin-specific instructions.
Found this useful?
Share it with someone who would like asdf.