universal-asdf-plugin

command module
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 25, 2025 License: Apache-2.0 Imports: 18 Imported by: 0

README

Universal ASDF Plugin 🚀

Test codecov Go Report Card License

Translations: УкраїнськаEspañolFrançaisDeutschPolskiRomânăČeštinaNorsk한국어日本語

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

Supported Tools 🧩🛠️

▶️ Click to expand full list (60+ tools)
Tool Description
argo Argo Workflows CLI
argo-rollouts Argo Rollouts CLI
argocd Argo CD CLI
asdf asdf version manager (self-management)
awscli AWS Command Line Interface
aws-nuke AWS resource cleanup
aws-sso-cli AWS SSO CLI
buf Protobuf tooling
checkov Infrastructure as Code scanner
cmake Cross-platform build system
cosign Container signing
doctl DigitalOcean CLI
gcloud Google Cloud SDK
ginkgo Go testing framework
gitleaks Detect secrets in code
gitsign Git commit signing
go Go programming language
golangci-lint Go linters aggregator
goreleaser Release automation
grype Vulnerability scanner
helm Kubernetes package manager
jq JSON processor
k9s Kubernetes CLI UI
kind Kubernetes in Docker
ko Container image builder for Go
kubectl Kubernetes CLI
lazygit Git terminal UI
linkerd Service mesh CLI
nerdctl containerd CLI
nodejs Node.js runtime
opentofu Terraform fork
pipx Python app installer
protoc Protocol Buffers compiler
protolint Protocol Buffers linter
protoc-gen-go Go protobuf generator
protoc-gen-go-grpc gRPC Go protoc plugin
protoc-gen-grpc-web gRPC-Web protoc plugin
python Python runtime
rust Rust toolchain
sccache Shared compilation cache
shellcheck Shell script analyzer
shfmt Shell formatter
sops Secrets manager
sqlc SQL compiler
syft SBOM generator
tekton-cli Tekton Pipelines CLI
telepresence Kubernetes dev tool
terraform Infrastructure as Code
terragrunt Terraform wrapper
terrascan IaC security scanner
tflint Terraform linter
tfupdate Terraform updater
traefik Cloud-native proxy
trivy Security scanner
upx Executable packer
uv Python package manager
velero Kubernetes backup
vultr-cli Vultr CLI
yq YAML processor
zig Zig programming language

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.

Documentation

Overview

Package main implements a universal ASDF plugin CLI

Directories

Path Synopsis
Package plugins provides plugins for universal-asdf-plugin.
Package plugins provides plugins for universal-asdf-plugin.
asdf
Package asdf implements the ASDF plugin interface and common shared functionality.
Package asdf implements the ASDF plugin interface and common shared functionality.
asdf/plugins
Package plugins provides a registry for asdf plugins.
Package plugins provides a registry for asdf plugins.
github
Package github provides a GitHub API client for fetching version information.
Package github provides a GitHub API client for fetching version information.
github/mock
Package mock provides mock servers for testing the GitHub client.
Package mock provides mock servers for testing the GitHub client.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL