Skip to content
SPECIFICTION
Get listed

asdf vs GVM

asdf

asdf-vm.com

GVM

github.com

Side by side

FigureasdfGVM
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
macOSYesYes
LinuxYesYes
Plans published11
Spec score · Runtime Version Managers8.1 (#6)7.7 (#11)
Spec score · Development Environment Managers8.0 (#15)7.7 (#25)
Purposeasdf is a tool version manager that uses one `.tool-versions` file to share exact tool versions with a project team.GVM provides an interface to manage Go versions.

Plans

asdf

  • asdfFree

asdf pricing →

GVM

  • gvmFree

GVM 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

GVM

GVM is a free tool for managing Go versions on Linux and macOS. It installs and removes versions by tag, including releases and the tip version; `gvm listall` shows available release tags and can include weekly builds. Install options allow a source or name to be selected, along with settings for protobufs, build tools, and whether binaries are preferred or required. The `gvm diff` command reports files added to or removed from GOROOT. GVM also manages GOPATH package sets, including sets kept local to a repository, and can link project directories into GOPATH. Package sets can use their own native code and dependencies through an overlay prefix and related environment variables. The project supports version pinning, lockfiles, automatic switching, shell integration, and CI/CD use. Installation requires Bison; platform instructions also list tools such as Git, Mercurial, Make, and GCC. Compiling Go 1.5 or later requires an existing Go installation for bootstrapping, with Go 1.4 offered as an example. The repository includes an MIT license.

Visit github.com