Skip to content
SPECIFICTION
Get listed

asdf vs pyenv

asdf

asdf-vm.com

pyenv

github.com

Side by side

Figureasdfpyenv
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
macOSYesYes
LinuxYesYes
Self-hosted—Yes
Plans published11
Spec score · Runtime Version Managers8.1 (#6)7.4 (#19)
Spec score · Development Environment Managers8.0 (#15)7.3 (#39)
InstallationThe getting-started guide describes installation through Homebrew, Zypper, Pacman, precompiled binaries, Go, or a source build.The README documents installation on Linux/Unix and macOS, including a shell installer, Git checkout, and Homebrew.
PluginsPlugins let asdf manage tools such as Node.js, Ruby, and Elixir, and the plugin API allows support for more tools.The project supports extending and customizing functionality with plugins.
Purposeasdf is a tool version manager that uses one `.tool-versions` file to share exact tool versions with a project team.pyenv lets users switch between multiple Python versions.
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-user and per-project Python versions, plus overrides through an environment variable.

Plans

asdf

  • asdfFree

asdf pricing →

pyenv

  • pyenvFree

pyenv 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

pyenv

pyenv has no write-up on Specifiction yet; its figures are above.

Visit github.com