Skip to content

Core ​

The core asdf command list is rather small, but can facilitate many workflows.

Installation & Setup ​

Covered in the Getting Started guide.

Exec ​

shell
asdf exec <command> [args...]

Executes the command shim for the current version.

Env ​

shell
asdf env <command> [util]

<command> is the name of a shimmed binary (for example node, python, ruby), not an arbitrary shell command. asdf env resolves the plugin and version that would handle that shim and runs [util] (defaults to env) inside the same environment, so you can inspect or invoke other tools with the plugin's PATH and ASDF_* variables already set.

shell
# Print the environment that `node` runs in.
$ asdf env node

# Run `which` inside that same environment to confirm where `npm` resolves.
$ asdf env node which npm

Info ​

shell
asdf info

A helper command to print the OS, Shell and asdf debug information. Share this when making a bug report.

Reshim ​

shell
asdf reshim <name> <version>

This recreates the shims for the current version of a package. By default, shims are created by plugins during installation of a tool. Some tools like the npm CLI allow global installation of executables, for example, installing Yarn via npm install -g yarn. Since this executable was not installed via the plugin lifecycle, no shim exists for it yet. asdf reshim nodejs <version> will force recalculation of shims for any new executables, like yarn, for <version> of nodejs .

Shim-versions ​

shell
asdf shimversions <command>

Lists the plugins and versions that provide shims for a command.

As an example, Node.js ships with two executables, node and npm. When many versions of the tools are installed with asdf-nodejs shimversions can return:

shell
➜ asdf shimversions node
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0
shell
➜ asdf shimversions npm
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0

Update ​

Please use the same method you used to install asdf to update it. The latest version of asdf is shown in the top right corner of this page.

Uninstall ​

To uninstall asdf follow these steps:

Bash & Git
  1. In your ~/.bashrc remove the lines that source asdf.sh and the completions:
shell
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"
  1. Remove the $HOME/.asdf dir:
shell
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Bash & Git (macOS)
  1. In your ~/.bash_profile remove the lines that source asdf.sh and the completions:
shell
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"
  1. Remove the $HOME/.asdf dir:
shell
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Bash & Homebrew
  1. In your ~/.bashrc remove the lines that source asdf.sh and the completions:
shell
. $(brew --prefix asdf)/libexec/asdf.sh
. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash

Completions may have been configured as per Homebrew's instructions so follow their guide to find out what to remove.

  1. Uninstall with your package manager:
shell
brew uninstall asdf --force
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Bash & Homebrew (macOS)

If using macOS Catalina or newer, the default shell has changed to ZSH. If you can't find any config in your ~/.bash_profile it may be in a ~/.zshrc in which case please follow the ZSH instructions.

  1. In your ~/.bash_profile remove the lines that source asdf.sh and the completions:
shell
. $(brew --prefix asdf)/libexec/asdf.sh
. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash

Completions may have been configured as per Homebrew's instructions so follow their guide to find out what to remove.

  1. Uninstall with your package manager:
shell
brew uninstall asdf --force
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Bash & Pacman
  1. In your ~/.bashrc remove the lines that source asdf.sh and the completions:
shell
. /opt/asdf-vm/asdf.sh
  1. Uninstall with your package manager:
shell
pacman -Rs asdf-vm
  1. Remove the $HOME/.asdf dir:
shell
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Fish & Git
  1. In your ~/.config/fish/config.fish remove the lines that source asdf.fish:
shell
source ~/.asdf/asdf.fish

and remove completions with this command:

shell
rm -rf ~/.config/fish/completions/asdf.fish
  1. Remove the $HOME/.asdf dir:
shell
rm -rf (string join : -- $ASDF_DATA_DIR $HOME/.asdf)
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Fish & Homebrew
  1. In your ~/.config/fish/config.fish remove the lines that source asdf.fish:
shell
source "(brew --prefix asdf)"/libexec/asdf.fish
  1. Uninstall with your package manager:
shell
brew uninstall asdf --force
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Fish & Pacman
  1. In your ~/.config/fish/config.fish remove the lines that source asdf.fish:
shell
source /opt/asdf-vm/asdf.fish
  1. Uninstall with your package manager:
shell
pacman -Rs asdf-vm
  1. Remove the $HOME/.asdf dir:
shell
rm -rf (string join : -- $ASDF_DATA_DIR $HOME/.asdf)
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Elvish & Git
  1. In your ~/.config/elvish/rc.elv remove the lines that use the asdf module:
shell
use asdf _asdf; var asdf~ = $_asdf:asdf~
set edit:completion:arg-completer[asdf] = $_asdf:arg-completer~

and uninstall the asdf module with this command:

shell
rm -f ~/.config/elvish/lib/asdf.elv
  1. Remove the $HOME/.asdf dir:
shell
if (!=s $E:ASDF_DATA_DIR "") { rm -rf $E:ASDF_DATA_DIR } else { rm -rf ~/.asdf }
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Elvish & Homebrew
  1. In your ~/.config/elvish/rc.elv remove the lines that use the asdf module:
shell
use asdf _asdf; var asdf~ = $_asdf:asdf~
set edit:completion:arg-completer[asdf] = $_asdf:arg-completer~

and uninstall the asdf module with this command:

shell
rm -f ~/.config/elvish/lib/asdf.elv
  1. Uninstall with your package manager:
shell
brew uninstall asdf --force
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
Elvish & Pacman
  1. In your ~/.config/elvish/rc.elv remove the lines that use the asdf module:
shell
use asdf _asdf; var asdf~ = $_asdf:asdf~
set edit:completion:arg-completer[asdf] = $_asdf:arg-completer~

and uninstall the asdf module with this command:

shell
rm -f ~/.config/elvish/lib/asdf.elv
  1. Uninstall with your package manager:
shell
pacman -Rs asdf-vm
  1. Remove the $HOME/.asdf dir:
shell
if (!=s $E:ASDF_DATA_DIR "") { rm -rf $E:ASDF_DATA_DIR } else { rm -rf ~/.asdf }
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
ZSH & Git
  1. In your ~/.zshrc remove the lines that source asdf.sh and completions:
shell
. "$HOME/.asdf/asdf.sh"
# ...
fpath=(${ASDF_DIR}/completions $fpath)
autoload -Uz compinit
compinit

OR the ZSH Framework plugin if used.

  1. Remove the $HOME/.asdf dir:
shell
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
ZSH & Homebrew
  1. In your ~/.zshrc remove the lines that source asdf.sh:
shell
. $(brew --prefix asdf)/libexec/asdf.sh
  1. Uninstall with your package manager:
shell
brew uninstall asdf --force && brew autoremove
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
ZSH & Pacman
  1. In your ~/.zshrc remove the lines that source asdf.sh:
shell
. /opt/asdf-vm/asdf.sh
  1. Uninstall with your package manager:
shell
pacman -Rs asdf-vm
  1. Remove the $HOME/.asdf dir:
shell
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"

That's it! 🎉