Universal ASDF Plugin 🚀

Translations: Українська • Español • Français • Deutsch • Polski • Română • Čeština • Norsk • 한국어 • 日本語
A unified collection of asdf plugins written in Go, replacing traditional bash-scripted plugins with a single, tested, and maintainable binary.
Why ❓
- 🔐 Security — Bash plugins scattered across repositories are a valid attack surface
- ✅ Reliability — Go provides decent testing capabilities and reproducibility
- 🧰 Maintenance — Single codebase for 60+ tools instead of maintaining separate plugins with kitchen-sink conventions
Quick Start 🚀
# 1. Download the latest release
curl -LO https://github.com/sumicare/universal-asdf-plugin/releases/latest/download/universal-asdf-plugin-linux-amd64.tar.gz
tar -xzf universal-asdf-plugin-linux-amd64.tar.gz
chmod +x universal-asdf-plugin
# Or install via Go (requires Go 1.25+)
go install github.com/sumicare/universal-asdf-plugin@latest
# 2. Bootstrap asdf (installs asdf version manager itself), assuming $GOPATH/bin is in PATH already
universal-asdf-plugin install-plugin asdf
universal-asdf-plugin install asdf latest
# 3. Configure your shell (add to ~/.bashrc, ~/.zshrc, etc.)
export PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"
# 4. Restart your shell, then install all plugins
universal-asdf-plugin install-plugin
After setup, manage your tools with asdf as usual:
asdf install go latest
asdf install nodejs latest
asdf global go latest
▶️ Click to expand full list (60+ tools)
Usage 🧪
# List available versions
universal-asdf-plugin list-all <tool>
# Install a specific version
universal-asdf-plugin install <tool> <version>
# Get the latest stable version
universal-asdf-plugin latest-stable <tool>
# Show help for a tool
universal-asdf-plugin help <tool>
# Update .tool-versions to latest versions
universal-asdf-plugin update-tool-versions
Development 🛠️
Prerequisites
- Go 1.25+
- Docker (for dev container)
Mostly plugins share the same BinaryPlugin interface, but there are custom ones as well:
Getting Started
# Clone the repository
git clone https://github.com/sumicare/universal-asdf-plugin.git
cd universal-asdf-plugin
# Open in VS Code with Dev Container
code universal-asdf-plugin.code-workspace
# Build locally
./scripts/build.sh
Running Tests
# Update goldenfiles
./scripts/test.sh --update
# Run all smoke tests with mocked servers
./scripts/test.sh
# Run mutation tests
./scripts/mutation-test.sh
# Linting
./scripts/lint.sh
# Spellcheck
npm install -g cspell
./scripts/spellcheck.sh
./scripts/spellcheck_add.sh
# inspect .code-workspace dictionary afterwards
License 📄
Copyright 2025 Sumicare
By using this project, you agree to the Sumicare OSS Terms of Use.
Licensed under the Apache License, Version 2.0.