asdf
asdf-vm.com
What it is
asdf is a free, open-source version manager for Linux and macOS. It gives project teams one command interface and a shared `.tool-versions` file for selecting exact versions of multiple tools and runtimes. Plugins support tools such as Node.js, Ruby, and Elixir, while the plugin API allows additional tools. When a command runs, asdf searches for configuration from the current directory upward toward the home directory, then uses shims to launch the selected executable. Existing `.ruby-version`, `.nvmrc`, and `.node-version` files can be supported per plugin. Listed shell support includes Bash, ZSH, Fish, and Elvish, with completions. A GitHub Action uses `.tool-versions` in CI/CD workflows. Installation options include Homebrew, Zypper, Pacman, precompiled binaries, Go, and source builds. asdf manages tool versions rather than system packages or upstream dependencies. If no version is set, execution errors unless the tool is configured as `system`.
Spec sheet
- Purpose
- asdf is a tool version manager that uses one `.tool-versions` file to share exact tool versions with a project team.Read 4 Oct 2026 · asdf-vm.com
- Intended users
- The documentation describes using a shared `.tool-versions` file to help project teams use the same tool versions.Read 4 Oct 2026 · asdf-vm.com
- CI integration
- The homepage says asdf provides a GitHub Action to use `.tool-versions` in CI/CD workflows.Read 4 Oct 2026 · asdf-vm.com
- Execution
- asdf creates shims for installed executables so it can run the version specified for the current project.Read 4 Oct 2026 · asdf-vm.com
- Installation
- The getting-started guide describes installation through Homebrew, Zypper, Pacman, precompiled binaries, Go, or a source build.Read 4 Oct 2026 · asdf-vm.com
- Limits
- asdf is a tool version manager, not a system package manager, and it does not manage upstream dependencies.Read 4 Oct 2026 · asdf-vm.com
- Migration
- asdf supports existing version files such as `.ruby-version`, `.nvmrc`, and `.node-version` on a per-plugin basis.Read 4 Oct 2026 · asdf-vm.com
- Plugins
- Plugins let asdf manage tools such as Node.js, Ruby, and Elixir, and the plugin API allows support for more tools.Read 4 Oct 2026 · asdf-vm.com
- Security and trust
- The official pages opened for this research did not state security certifications or compliance claims.Read 4 Oct 2026 · asdf-vm.com
- Shell support
- The homepage lists Bash, ZSH, Fish, and Elvish support with completions available.Read 4 Oct 2026 · asdf-vm.com
- Supported operating systems
- The installation guide lists Linux and macOS dependency instructions and provides binaries for operating-system and architecture combinations.Read 4 Oct 2026 · asdf-vm.com
- Unified interface
- asdf provides one command interface and configuration file for managing multiple tools and runtimes.Read 4 Oct 2026 · asdf-vm.com
- Version resolution limit
- If no version is listed for a tool, executing that tool produces an error unless its version is set to `system`.Read 4 Oct 2026 · asdf-vm.com
- Version selection
- asdf selects a tool version from `.tool-versions` files starting in the current directory and searching up toward the home directory.Read 4 Oct 2026 · asdf-vm.com
Plans and prices
Strong points and limits
Strong points
- Free open-source tool
- Shared `.tool-versions` configuration
- Plugins for multiple runtimes
- Shell completions listed
- GitHub Action for CI/CD
Limits
- Linux and macOS only
- Not a system package manager
- Unselected versions produce execution errors
Who it suits
It suits development teams that need shared, repeatable tool versions across Linux or macOS projects. Users wanting a system package manager or upstream dependency management need a different tool.
Verdict
asdf offers a consistent way to pin project tool versions with plugins, shims, and CI support. Its scope is version management, so system packages and upstream dependencies remain outside it.
Where Specifiction places it
- Runtime Version Managers#6 of 308.1
- Development Environment Managers#15 of 508.0
- Development Environment Management Tools#9 of 268.0