EVERYTHING XIAOMI
Get listed

asdf

asdf is a free, open-source tool version manager for Linux and macOS.

Place
#6 of 30
Score
6.2
asdf's website

What asdf is

asdf is a free, open-source tool version manager for Linux and macOS. It gives project teams a shared `.tool-versions` file and one command interface for selecting versions of multiple tools and runtimes. Plugins let it manage tools such as Node.js, Ruby, and Elixir, and its plugin API allows support for more tools. To choose a version, asdf checks `.tool-versions` files beginning in the current directory and searching toward the home directory; shims then run the selected executable. Per-plugin support can use existing files such as `.ruby-version`, `.nvmrc`, and `.node-version`.

The listed shells are Bash, ZSH, Fish, and Elvish, with completions available. A GitHub Action can use `.tool-versions` in CI/CD workflows. Installation options include Homebrew, Zypper, Pacman, precompiled binaries, Go, or a source build. The installation guide provides Linux and macOS dependency instructions and binaries for operating-system and architecture combinations. asdf manages tool versions, not system packages or upstream dependencies. If no version is set for a tool, running it errors unless that tool is set to `system`.

Good

  • Open-source tool version manager with no paid plans listed.
  • One `.tool-versions` file can share selections across a team.
  • Supports plugins for Node.js, Ruby, and Elixir.
  • A GitHub Action supports `.tool-versions` in CI/CD.

Watch out

  • Available platforms listed are Linux and macOS.
  • It does not manage system packages or upstream dependencies.
  • An unset tool version causes an error unless set to `system`.

Who it suits

asdf suits project teams that want to share tool versions through a common configuration file. It is for managing tool runtimes, rather than system packages or upstream dependencies.

Verdict

asdf provides a shared way to select tool versions across project environments, with plugin and shell support. Keep its scope in mind: it manages tool versions, not system packages or upstream dependencies.

Plans and prices

From asdf's own pricing page, checked 4 Oct 2026.

All about pricing
PlanPriceWhat it gives you
asdfFreeOpen-source tool version manager · no paid plans listed

The facts

Each one read from asdf's own pages, with the date it was checked.

What it does

CI integration
The homepage says asdf provides a GitHub Action to use `.tool-versions` in CI/CD workflows.checked 4 Oct 2026
Execution
asdf creates shims for installed executables so it can run the version specified for the current project.checked 4 Oct 2026
Installation
The getting-started guide describes installation through Homebrew, Zypper, Pacman, precompiled binaries, Go, or a source build.checked 4 Oct 2026
Intended users
The documentation describes using a shared `.tool-versions` file to help project teams use the same tool versions.checked 4 Oct 2026
Limits
asdf is a tool version manager, not a system package manager, and it does not manage upstream dependencies.checked 4 Oct 2026
Migration
asdf supports existing version files such as `.ruby-version`, `.nvmrc`, and `.node-version` on a per-plugin basis.checked 4 Oct 2026
Plugins
Plugins let asdf manage tools such as Node.js, Ruby, and Elixir, and the plugin API allows support for more tools.checked 4 Oct 2026
Purpose
asdf is a tool version manager that uses one `.tool-versions` file to share exact tool versions with a project team.checked 4 Oct 2026
Security and trust
The official pages opened for this research did not state security certifications or compliance claims.checked 4 Oct 2026
Shell support
The homepage lists Bash, ZSH, Fish, and Elvish support with completions available.checked 4 Oct 2026
Supported operating systems
The installation guide lists Linux and macOS dependency instructions and provides binaries for operating-system and architecture combinations.checked 4 Oct 2026
Unified interface
asdf provides one command interface and configuration file for managing multiple tools and runtimes.checked 4 Oct 2026
Version resolution limit
If no version is listed for a tool, executing that tool produces an error unless its version is set to `system`.checked 4 Oct 2026
Version selection
asdf selects a tool version from `.tool-versions` files starting in the current directory and searching up toward the home directory.checked 4 Oct 2026
The full review of asdf

asdf is a free, open-source version manager for teams that want projects to share exact versions of tools and runtimes. Its plugin-based approach suits developers working across several ecosystems; its main trade-off is that it manages tool versions, not system packages or upstream dependencies.

Overview

A shared .tool-versions file gives a project team one place to specify the tool versions it should use. asdf provides a common command interface for managing those tools, rather than requiring a separate manager and configuration approach for each supported ecosystem.

That consistency is useful when a project spans runtimes such as Node.js, Ruby, and Elixir. The plugin API extends the range of tools it can manage, but support depends on plugins, and asdf is not a substitute for a system package manager or dependency manager.

Key features

Project-based version selection

asdf searches for .tool-versions from the current directory up toward the home directory, then uses the selected version through shims for installed executables. This lets tools resolve according to the project a developer is working in. If a tool has no version set, running it produces an error unless its version is explicitly set to system.

Plugins and existing version files

Plugins let asdf manage tools including Node.js, Ruby, and Elixir, and its plugin API allows support for additional tools. Per-plugin migration support can read existing files such as .ruby-version, .nvmrc, and .node-version. That can ease adoption in repositories that already use those conventions, though compatibility depends on the relevant plugin.

Shells and CI

The homepage lists Bash, ZSH, Fish, and Elvish support, with completions. A GitHub Action can use .tool-versions in CI/CD workflows, which helps carry the project's version choices into automation.

Installation

Installation options include Homebrew, Zypper, Pacman, precompiled binaries, Go, and a source build. The installation guide provides Linux and macOS dependency instructions and binaries for operating-system and architecture combinations. The listed platform support is Linux and macOS.

Pricing

asdf is free and open source, with no paid plans listed. The free plan includes its tool version management capabilities without a stated trial period or paid-tier distinction. It is a straightforward fit for individual developers and teams who want shared tool-version configuration without a software subscription; it does not cover package management or upstream dependency management.

Platforms

asdf supports Linux and macOS. Installation guidance covers both, with binaries for operating-system and architecture combinations. Windows is not among its listed platforms, so users who require a Windows-supported option should consider an alternative such as rustup or fnm.

Who it's for

asdf is best for project teams that need a shared, repository-level way to select versions across multiple tools and runtimes. It is also a practical choice for developers who value one interface and can use the available plugins for their stack. It is a poor fit when the requirement is system package installation, upstream dependency control, or a listed Windows platform.

Pros and cons

Pros

  • One project file for multiple tools: teams can share exact tool versions through .tool-versions rather than coordinating separate version choices.
  • Broadly extensible model: plugins cover tools such as Node.js, Ruby, and Elixir, while the plugin API can add support for more.
  • Useful workflow coverage: shell completions and a GitHub Action connect version selection with daily shell use and CI/CD.
  • Flexible installation: package managers, binaries, Go, and source builds provide several routes for Linux and macOS users.

Cons

  • Limited scope: asdf does not manage system packages or upstream dependencies, so teams need other tools for those jobs.
  • Version configuration is consequential: executing a tool without a configured version errors unless it is set to system.
  • Plugin-dependent compatibility: migration from existing version files is supported per plugin, not as a universal guarantee.
  • Linux and macOS only: its listed platform range excludes Windows.

Alternatives

Choose rustup if you need a free version manager with listed Linux, macOS, and Windows support. Consider SDKMAN! for a free, open-source alternative listed for Linux, macOS, and Windows. tenv is another free option with those three platforms listed.

fnm is a free alternative listed for Linux, macOS, and Windows. RVM is a free option with Linux, macOS, Windows, self-hosted, and web platforms listed. Volta is a free alternative listed for Linux, macOS, and Windows.

elan is a free option for Lean version management, with Apache-2.0 and MIT licenses. nvm is a free, open-source Node.js version manager. Browse Runtime Version Managers, Development Environment Managers, or Development Environment Management Tools for more options.

Verdict

Choose asdf if your team wants one shared file and interface for selecting tool versions across project environments, particularly when your stack spans multiple plugin-supported ecosystems. Its extensibility, shell support, and CI integration make that shared configuration useful beyond an individual workstation. Look elsewhere if you need Windows support, system package management, or upstream dependency management.

Alternatives to asdf

All alternatives
  1. 1

    nvm

    Free planOpen sourceLinuxmacOSSelf-hostedWindows
    7.4Free plan
  2. 2

    GHCup

    Free planWebLinuxmacOSSelf-hosted
    7.0Free plan
  3. 3

    Jabba

    Free planLinuxmacOSWindows
    6.6Free plan
  4. 4rustup logo

    rustup

    Free planLinuxmacOSWindows
    6.6Free plan
  5. 5

    axe-playwright

    Free planWebLinux
    6.4Free plan
  6. 6mise logo

    mise

    Free planLinuxmacOSWindows
    6.2Free plan