Skip to content
SPECIFICTION
Get listed

asdf vs nvm

asdf

asdf-vm.com

nvm

github.com

Side by side

Figureasdfnvm
Price fromFreeFree
Free planYesYes
Free trial——
Open source—Yes
Windows—Yes
macOSYesYes
LinuxYesYes
Self-hosted—Yes
Plans published12
Spec score · Runtime Version Managers8.1 (#6)8.5 (#4)
Spec score · Development Environment Managers8.0 (#15)8.4 (#10)
Purposeasdf is a tool version manager that uses one `.tool-versions` file to share exact tool versions with a project team.nvm lets users install and use different Node.js versions from the command line.
Shell supportThe homepage lists Bash, ZSH, Fish, and Elvish support with completions available.It works on POSIX-compliant shells including sh, dash, ksh, zsh, and bash.

Plans

asdf

  • asdfFree

asdf pricing →

nvm

  • nvmFree
  • nvmFree

nvm pricing →

In their own words

asdf

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`.

Visit asdf-vm.com

nvm

nvm is a free, MIT-licensed command-line tool for installing and managing Node.js versions. It is designed for installation per user and invocation per shell, and works in POSIX-compliant shells including sh, dash, ksh, zsh, and bash. Users can install specific versions, switch between them, set aliases such as a default, and use LTS aliases and commands to select long-term support versions. A project can specify its Node.js version in an.nvmrc file; documented shell snippets can support automatic switching. During installation, nvm can reinstall global npm packages from another installed Node.js version. With the --offline flag, it can install a version that was previously downloaded or cached without network access. The project documents use in Docker, including an example for CI/CD jobs. On Windows, nvm can work through WSL and may work with Git Bash or Cygwin depending on the environment. Fish shell is not supported, and the project points users to community alternatives. The project states that only the latest nvm version is supported.

Visit github.com