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_*_VERSIONenvironment variable.prototools(local)- version manager configs (e.g.
.nvmrc) & manifest files (e.g.package.json) ~/.proto/.prototools(global)