asdf

module
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2025 License: MIT

README

asdf

Lint Tests

Manage multiple runtime versions with a single CLI tool, extendable via plugins - docs at asdf-vm.com

asdf is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm, nvm, rbenv & pyenv (and more) all in one! Simply install your language's plugin!

Why use asdf?

  • single CLI for multiple languages
  • consistent commands to manage all your languages
  • single global config keeping defaults in one place
  • single .tool-versions config file per project
  • support for existing config files .node-version, .nvmrc, .ruby-version for easy migration
  • automatically switches runtime versions as you traverse your directories
  • simple plugin system to add support for your language of choice
  • shell completion available for common shells (Bash, Zsh, Fish, Elvish)

Documentation

Please head over to the documentation site for more information!

Contributing

See CONTRIBUTING.md in the repo or the Contributing section on the docs site.

Community & Questions

  • FAQ
  • GitHub Issues GitHub Issues: report a bug or raise a feature request to the asdf core team
  • StackOverflow Tag StackOverflow Tag: see existing Q&A for asdf. Some of the core team watch this tag in addition to our helpful community

Ballad of asdf

Once upon a time there was a programming language
There were many versions of it
So people wrote a version manager for it
To switch between versions for projects
Different, old, new.

Then there came more programming languages
So there came more version managers
And many commands for them

I installed a lot of them
I learnt a lot of commands

Then I said, just one more version manager
Which I will write instead

So, there came another version manager
asdf version manager - https://github.com/asdf-vm/asdf

A version manager so extendable
for which anyone can create a plugin
To support their favourite language
No more installing more version managers
Or learning more commands


This was the mail I wrote to a few friends to tell them about the project. Thanks to @roshanvid for suggesting that this go into the readme
@HashNuke

Directories

Path Synopsis
cmd
asdf
Main entrypoint for the CLI app
Main entrypoint for the CLI app
internal
cli
Package cli contains the asdf CLI command code
Package cli contains the asdf CLI command code
cli/set
Package set provides the 'asdf set' command
Package set provides the 'asdf set' command
completions
Package completions handles shell completion files.
Package completions handles shell completion files.
config
Package config provides a unified API for fetching asdf config.
Package config provides a unified API for fetching asdf config.
data
Package data provides constants and functions pertaining to directories and files in the asdf data directory on disk, specified by the $ASDF_DATA_DIR
Package data provides constants and functions pertaining to directories and files in the asdf data directory on disk, specified by the $ASDF_DATA_DIR
exec
Package exec handles replacing the asdf go process with
Package exec handles replacing the asdf go process with
execenv
Package execenv contains logic for generating execution environing using a plugin's exec-env callback script if available.
Package execenv contains logic for generating execution environing using a plugin's exec-env callback script if available.
execute
Package execute is a simple package that wraps the os/exec Command features for convenient use in asdf.
Package execute is a simple package that wraps the os/exec Command features for convenient use in asdf.
git
Package git contains all the Git operations that can be applied to asdf Git repositories like the plugin index repo and individual asdf plugins.
Package git contains all the Git operations that can be applied to asdf Git repositories like the plugin index repo and individual asdf plugins.
help
Package help contains functions responsible for generating help output for asdf and asdf plugins.
Package help contains functions responsible for generating help output for asdf and asdf plugins.
hook
Package hook provides a simple interface for running hook commands that may be defined in the asdfrc file
Package hook provides a simple interface for running hook commands that may be defined in the asdfrc file
info
Package info exists to print important info about this asdf installation to STDOUT for use in debugging and bug reports.
Package info exists to print important info about this asdf installation to STDOUT for use in debugging and bug reports.
installs
Package installs contains tool installation logic.
Package installs contains tool installation logic.
installtest
Package installtest provides functions used by various asdf tests for installing versions of tools.
Package installtest provides functions used by various asdf tests for installing versions of tools.
paths
Package paths contains a variety of helper functions responsible for computing paths to various things.
Package paths contains a variety of helper functions responsible for computing paths to various things.
pluginindex
Package pluginindex is a package that handles fetching plugin repo URLs by name for user convenience.
Package pluginindex is a package that handles fetching plugin repo URLs by name for user convenience.
plugins
Package plugins provides functions for interacting with asdf plugins
Package plugins provides functions for interacting with asdf plugins
repotest
Package repotest contains various test helpers for tests that work with code relying on plugin Git repos and the asdf plugin index
Package repotest contains various test helpers for tests that work with code relying on plugin Git repos and the asdf plugin index
resolve
Package resolve contains functions for resolving a tool version in a given directory.
Package resolve contains functions for resolving a tool version in a given directory.
shims
Package shims manages writing and parsing of asdf shim scripts.
Package shims manages writing and parsing of asdf shim scripts.
toolversions
Package toolversions handles reading and writing tools and versions from asdf's .tool-versions files.
Package toolversions handles reading and writing tools and versions from asdf's .tool-versions files.
versions
Package versions handles all operations pertaining to specific versions.
Package versions handles all operations pertaining to specific versions.

Jump to

Keyboard shortcuts

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