Command Palette

Search for a command to run...

position in category
#10

Extensible runtime and tool version manager that consolidates multiple language and runtime managers into a single CLI. Replaces tool-specific managers like nvm, rbenv, and pyenv with one interface and one shared config file that teams can commit to version control.

Adopted widely for its plugin-based architecture and unified workflow. Stands out by letting you manage Ruby, Node.js, Elixir, Erlang, Python, Go, and hundreds of other tools through the same commands and config format. Recognizes existing config files such as .nvmrc, .node-version, and .ruby-version for straightforward migration from older managers.

Key features:

  • Single CLI and .tool-versions file for all tools across a project
  • Plugin ecosystem for runtimes and CLI tools with a straightforward API to add new ones
  • Shell support for Bash, ZSH, Fish, and Elvish with completions
  • GitHub Action for installing and using .tool-versions in CI/CD pipelines
  • Shim-based execution that picks the version from .tool-versions per directory

Teams use it to lock runtime versions per project and share them via Git. Developers switching between projects or languages avoid juggling multiple version managers. CI and local environments stay aligned through the same .tool-versions config.

GitHub Repositories
233
-6.4%
Trending down this week
Removed in 16 repos