[[command]]
name = "asdf"
description = "Extendable tool version manager that manages per-project runtime versions via a plugin system and .tool-versions files. The 0.16+ Go rewrite changed the surface: `asdf global` and `asdf local` are gone — both replaced by `asdf set` with `-u/--home` (writes ~/.tool-versions) and `-p/--parent` (walks up to nearest .tool-versions); `asdf shell` is also removed because the Go binary can't mutate the parent shell's env. Read-only subcommands (current, list, latest, where, which, info, shimversions, env, plugin list) inspect locally installed versions and plugin metadata. SafeWrite subcommands install (download via plugin scripts), uninstall, set, reshim, and plugin remove operate on local files only — install runs the plugin's third-party shell scripts, same trust posture as bundle install / mise install. The plugin add and plugin update subcommands fetch arbitrary third-party Git repos and run their install hooks; both stay out of coverage because the URL surface is unbounded. The asdf exec subcommand runs an arbitrary command and is also out of coverage."
url = "https://asdf-vm.com/manage/commands.html"
researched_version = "v0.19.0 (April 2026; Go rewrite line)"
bare_flags = ["--help", "--version", "-V", "-h"]

[[command.sub]]
name = "current"
standalone = ["--help", "-h"]

[[command.sub]]
name = "help"
standalone = ["--help", "-h"]

[[command.sub]]
name = "info"
standalone = ["--help", "-h"]

[[command.sub]]
name = "list"
standalone = ["--help", "-h"]

[[command.sub]]
name = "version"
standalone = ["--help", "-h"]

[[command.sub]]
name = "which"
bare = false
standalone = ["--help", "-h"]

[[command.sub]]
name = "where"
bare = false
standalone = ["--help", "-h"]

[[command.sub]]
name = "latest"
standalone = ["--all", "--help", "-h"]

[[command.sub]]
name = "shimversions"
bare = false
standalone = ["--help", "-h"]

[[command.sub]]
name = "env"
bare = false
standalone = ["--help", "-h"]

[[command.sub]]
name = "install"
level = "SafeWrite"
standalone = ["--help", "-h"]

[[command.sub]]
name = "uninstall"
level = "SafeWrite"
bare = false
standalone = ["--help", "-h"]

[[command.sub]]
name = "set"
level = "SafeWrite"
bare = false
standalone = ["--help", "--home", "--parent", "-h", "-p", "-u"]

[[command.sub]]
name = "reshim"
level = "SafeWrite"
standalone = ["--help", "-h"]

[[command.sub]]
name = "plugin"
[[command.sub.sub]]
name = "list"
standalone = ["--help", "--refs", "--urls", "-h"]
[[command.sub.sub]]
name = "remove"
level = "SafeWrite"
bare = false
standalone = ["--help", "-h"]
[[command.sub.sub]]
name = "add"
candidate = true
[[command.sub.sub]]
name = "update"
candidate = true

[[command.sub]]
name = "exec"
candidate = true
