Skip to content
SPECIFICTION
Get listed

GVM

github.com

Free plan macOSLinux
Visit github.com
Spec score 7.7 #11 of 30 in Runtime Version Managers

What it is

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.

Spec sheet

Purpose
GVM provides an interface to manage Go versions.Read 4 Oct 2026 · github.com
Platforms
The README provides requirements and setup instructions for macOS and Linux, and also lists FreeBSD requirements.Read 4 Oct 2026 · github.com
Security
The GitHub security page opened for the repository displays no security details in the accessible page content.Read 4 Oct 2026 · github.com
License
The repository includes an MIT license granting permission to use, copy, modify, distribute, sublicense, and sell copies of the software subject to its conditions.Read 4 Oct 2026 · github.com
Available releases
The `gvm listall` command lists available release tags, with an option to include weekly builds.Read 4 Oct 2026 · github.com
GOROOT changes
The `gvm diff` command lists added and removed files in GOROOT.Read 4 Oct 2026 · github.com
Install options
Install options include choosing a source or name, installing protobufs or build tools, and preferring or requiring binaries.Read 4 Oct 2026 · github.com
Install versions
It installs and uninstalls Go versions by tag, including releases and the tip version.Read 4 Oct 2026 · github.com
Limitations
The README says compiling Go 1.5 and later requires an existing Go installation for bootstrapping, and gives Go 1.4 as an example.Read 4 Oct 2026 · github.com
Maintainer
The README says the project is lovingly maintained by Benjamin Knigge and welcomes contributions.Read 4 Oct 2026 · github.com
Native dependencies
GVM supports package set-specific native code and dependencies using an overlay prefix and related environment variables.Read 4 Oct 2026 · github.com
Package sets
It manages GOPATH package sets and can keep a package set local to a repository.Read 4 Oct 2026 · github.com
Prerequisites
The installation instructions require Bison, and the platform-specific sections list additional tools such as Git, Mercurial, Make, and GCC.Read 4 Oct 2026 · github.com
Project linking
GVM can link project directories into GOPATH.Read 4 Oct 2026 · github.com

Plans and prices

gvm Free Go version management · MIT-licensed software Read 4 Oct 2026 · github.com

Every GVM plan and price →

Strong points and limits

Strong points

  • Installs and uninstalls Go versions by tag.
  • Lists release tags, optionally including weekly builds.
  • Can keep GOPATH package sets local to a repository.
  • Supports version pinning, lockfiles, and automatic switching.
  • MIT license permits use, modification, and distribution under its conditions.

Limits

  • Installation requires Bison and may require additional tools.
  • Compiling Go 1.5 or later requires an existing Go installation.
  • Listed platforms are Linux and macOS.

Who it suits

GVM suits developers who need to manage Go versions and GOPATH package sets on Linux or macOS. Its repository-local package sets and CI/CD support may also fit projects with distinct Go environments.

Verdict

GVM covers Go version installation, package sets, and shell or CI/CD workflows. Before adopting it, account for its build prerequisites and the existing Go installation needed to compile Go 1.5 or later.

Where Specifiction places it

Alternatives to GVMAll alternatives →