# asdf

> Version manager that handles multiple language runtimes per project through plugins, using a single CLI and a .tool-versions file.

Stars: 25.6k · Language: Go · License: MIT · Categories: Dev Tools

- Repository: https://github.com/asdf-vm/asdf
- Website: https://asdf-vm.com/
- Page: https://www.trmn.sh/tools/asdf

## Overview

asdf is a CLI version manager for language runtimes. It replaces separate tools such as gvm, nvm, rbenv and pyenv with one command set. Support for each language is added by installing that language's plugin, and the plugin system is open, so anyone can write a plugin for another language. A plugin template and a list of existing plugins are linked from the README.

Versions are set per project in a single `.tool-versions` file, and a single global config holds the defaults. asdf switches runtime versions automatically as you move between directories. It can also read existing `.node-version`, `.nvmrc` and `.ruby-version` files, which eases migration from other version managers.

Shell completion is available for Bash, Zsh, Fish and Elvish. The tool is aimed at developers who work in several languages, or on several projects that need different runtime versions, and want one consistent set of commands. Full documentation, including the command reference and plugin authoring guide, is on asdf-vm.com. The project also provides GitHub Actions.

## Alternatives

- [sops](https://www.trmn.sh/tools/sops.md): Editor for encrypted files supporting YAML, JSON, ENV, INI formats with AWS KMS, GCP KMS, Azure Key Vault, age, and PGP encryption (Go, 23.5k stars)
- [TruffleHog](https://www.trmn.sh/tools/trufflehog.md): Secrets scanner that finds credentials in Git, filesystems, S3/GCS buckets and Docker images, classifies 800+ types, and verifies whether they are live. (Go, 28.8k stars)
- [VHS](https://www.trmn.sh/tools/vhs.md): Generate terminal GIFs from code scripts for testing and demonstrating CLI tools (Go, 21.2k stars)
- [kubectx](https://www.trmn.sh/tools/kubectx.md): CLI tools to quickly switch between Kubernetes contexts and namespaces with fuzzy search support (Go, 20.1k stars)
- [k6](https://www.trmn.sh/tools/k6.md): JavaScript-based load testing tool for developers with HTTP, WebSockets, gRPC support and CI integration (Go, 32.1k stars)

---

Canonical: https://www.trmn.sh/tools/asdf
