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 different systems entirely.
Name | GitHub Stars | Language | Method | Uses .tool-versions |
---|---|---|---|---|
asdf | 17,000+ | Bash | Shim | ✅ |
sdkman | 5,000+ | Bash,Groovy | Shim | ❌ |
mise | 2,000+ | Rust | PATH | ✅ |
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 | ✅ | ✅ | ❌ |
- 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)