Meta version managers are generic enough to support multiple languages, unlike "regular" version managers.
Note that systems like Nix and Guix are intentionally omitted. They are completely different systems.
Name | GitHub Stars | Language | Method | Uses .tool-versions |
---|---|---|---|---|
asdf | 23,000+ | Bash | Shim | ✅ |
mise | 13,000+ | Rust | PATH | ✅ |
pkgx | 9,200+ | Rust | ❔ | ❌ |
sdkman | 5,000+ | Bash,Groovy | Shim | ❌ |
spack | 4,500+ | Python | ❔ | ❌ |
vfox | 3,100+ | Go | ❔ | ✅ |
anyenv | 1,800+ | Bash | ❔ | ❌ |
vmr | 925+ | Go | ❔ | ❌ |
Hermit | 500+ | Go,HCL | ❔ | ❌ |
aqua | 300+ | Go | ❔ | ❌ |
proto | 445+ | Rust | ❔ | ❌ |
Woof | 21+ | Bash,jq | PATH | ✅ |
Name | CLI | TUI | GUI |
---|---|---|---|
asdf | ✅ | ❌ | ❌ |
sdkman | ✅ | ❌ | ❌ |
mise | ✅ | ❔ | ❌ |
Hermit | ✅ | ❌ | ❌ |
aqua | ✅ | ✅ | ❌ |
proto | ✅ | ❔ | ❔ |
Woof | ✅ | ✅ | ❌ |
vmr | ✅ | ✅ | ❌ |
- Uses
.sdkmanrc
- Uses
.mise.toml
- CLI argument
PROTO_*_VERSION
environment variable.prototools
(local)- version manager configs (e.g.
.nvmrc
) & manifest files (e.g.package.json
) ~/.proto/.prototools
(global)