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...]
asdf exec <command> [args...]

Executes the command shim for the current version.

Env

shell
asdf env <command> [util]
asdf env <command> [util]

Info

shell
asdf info
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>
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 shim-versions <command>
asdf shim-versions <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 shim-versions can return:

shell
 asdf shim-versions node
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0
 asdf shim-versions node
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0
shell
 asdf shim-versions npm
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0
 asdf shim-versions npm
nodejs 14.8.0
nodejs 14.17.3
nodejs 16.5.0

Update

asdf has a built in command to update which relies on Git (our recommended installation method). If you installed using a different method you should follow the steps for that method:

MethodLatest Stable ReleaseLatest commit on master
asdf (via Git)asdf updateasdf update --head
Homebrewbrew upgrade asdfbrew upgrade asdf --fetch-HEAD
PacmanDownload a new PKGBUILD & rebuild
or use your preferred AUR helper

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"
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"
  1. Remove the $HOME/.asdf dir:
shell
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
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"
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"
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"
  1. Remove the $HOME/.asdf dir:
shell
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
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"
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
. $(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
brew uninstall asdf --force
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
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
. $(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
brew uninstall asdf --force
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
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
. /opt/asdf-vm/asdf.sh
  1. Uninstall with your package manager:
shell
pacman -Rs asdf-vm
pacman -Rs asdf-vm
  1. Remove the $HOME/.asdf dir:
shell
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
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"
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
source ~/.asdf/asdf.fish

and remove completions with this command:

shell
rm -rf ~/.config/fish/completions/asdf.fish
rm -rf ~/.config/fish/completions/asdf.fish
  1. Remove the $HOME/.asdf dir:
shell
rm -rf (string join : -- $ASDF_DATA_DIR $HOME/.asdf)
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"
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
source "(brew --prefix asdf)"/libexec/asdf.fish
  1. Uninstall with your package manager:
shell
brew uninstall asdf --force
brew uninstall asdf --force
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
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
source /opt/asdf-vm/asdf.fish
  1. Uninstall with your package manager:
shell
pacman -Rs asdf-vm
pacman -Rs asdf-vm
  1. Remove the $HOME/.asdf dir:
shell
rm -rf (string join : -- $ASDF_DATA_DIR $HOME/.asdf)
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"
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~
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
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 }
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"
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~
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
rm -f ~/.config/elvish/lib/asdf.elv
  1. Uninstall with your package manager:
shell
brew uninstall asdf --force
brew uninstall asdf --force
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
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~
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
rm -f ~/.config/elvish/lib/asdf.elv
  1. Uninstall with your package manager:
shell
pacman -Rs asdf-vm
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 }
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"
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
. "$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}"
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"
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
. $(brew --prefix asdf)/libexec/asdf.sh
  1. Uninstall with your package manager:
shell
brew uninstall asdf --force && brew autoremove
brew uninstall asdf --force && brew autoremove
  1. Run this command to remove all asdf config files:
shell
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
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
. /opt/asdf-vm/asdf.sh
  1. Uninstall with your package manager:
shell
pacman -Rs asdf-vm
pacman -Rs asdf-vm
  1. Remove the $HOME/.asdf dir:
shell
rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
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"
rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"

That's it! 🎉