Skip to content
SPECIFICTION
Get listed

asdf vs goenv

asdf

asdf-vm.com

goenv

github.com

Side by side

Figureasdfgoenv
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
macOSYesYes
LinuxYesYes
Plans published11
Spec score · Runtime Version Managers8.1 (#6)7.7 (#10)
Spec score · Development Environment Managers8.0 (#15)7.6 (#29)
Purposeasdf is a tool version manager that uses one `.tool-versions` file to share exact tool versions with a project team.goenv manages Go versions using a model similar to pyenv and rbenv.
Version selectionasdf selects a tool version from `.tool-versions` files starting in the current directory and searching up toward the home directory.It supports global, per-project, and environment-variable overrides for the Go version.

Plans

asdf

  • asdfFree

asdf pricing →

goenv

  • goenvFree

goenv 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

goenv

goenv manages Go versions on Linux and macOS using a model similar to pyenv and rbenv. It supports global selections, per-project versions, and environment-variable overrides. Shim executables placed in PATH route Go commands to the selected installation, enabling automatic switching and project version pinning. The installation guide says goenv downloads prebuilt Go binaries provided by Google, while new Go versions are added automatically on a daily cron schedule. The project identifies v3 as its current stable version and recommends it for new installations; it says v3 is fully backward compatible with v2. Version 2 receives security patches and critical bug fixes, with support ending on or before December 31, 2028. Setup documentation covers Bash and Zsh, including a .bashrc note for Ubuntu. Installation options include Homebrew and ZPlug for Zsh, and the README includes AWS CodeBuild guidance. goenv is free under the MIT license.

Visit github.com