Alternatives to asdf

One version manager for many language runtimes. The listings below can replace it for an important use case. Each note says what changes if you switch.

The original

Replacements

Listings that take over the same core job as asdf.

  • mise

    Keep project tools, environment variables and tasks in one configuration.

    mise also manages many tool versions but adds environment variables and project tasks in one configuration, and it runs on Windows as well as macOS and Linux.

  • nvm

    Installs and switches between multiple Node.js versions per shell.

    nvm handles only Node.js versions per shell using .nvmrc files, installs in your home directory, and slows shell startup once sourced.

  • Fast Node Manager

    Install and switch Node.js versions for different projects.

    Fast Node Manager switches Node.js versions only, supports common project version files, runs on Windows too, and is licensed GPL-3.0 rather than MIT.

  • pyenv

    Builds and switches between multiple Python versions.

    pyenv manages only Python versions with per-directory selection, compiling each version from source, so it needs build dependencies and takes time.

  • SDKMAN!

    Manages parallel versions of JVM SDKs and build tools.

    SDKMAN! focuses on JVM SDKs and build tools from many vendors, pinning versions per project, and works only in Unix shells.

  • Devbox

    A command-line tool that creates isolated, reproducible development environments from Nix packages without containers.

    Devbox builds isolated per-project environments from Nix packages without learning the Nix language, replacing asdf plugins with Nix but depending on Nix under the hood.

  • Pixi

    Manage project packages and environments across languages.

    Pixi manages cross-language project packages and environments with lock files on Windows, macOS and Linux, drawing packages from configured channels instead of asdf plugins.

Also worth comparing

These listings name asdf as their own alternative, so the relationship runs both ways.

  • GHCup

    The main installer for the Haskell toolchain, managing GHC, Cabal, Stack and the Haskell Language Server.

    asdf manages many language runtimes through community plugins and a .tool-versions file, but runs on macOS and Linux only, without native Windows support.

  • rbenv

    A lightweight command-line version manager for switching between Ruby versions on Unix-like systems.

    asdf handles Ruby through a plugin alongside many other runtimes with one .tool-versions file, though shim indirection adds startup latency and plugins are community-maintained.

  • rustup

    The official installer and toolchain manager for the Rust programming language.

    asdf handles many language runtimes through plugins and one .tool-versions file. It runs on macOS and Linux only, uses shims that add latency, and its plugin quality varies.

Similar software

Related functionality, not a direct replacement.