Skip to content

asdf Backend

WARNING

asdf plugins are considered legacy. For new tools, prefer vfox plugins which are written in Lua, work cross-platform (including Windows), and have access to built-in modules for HTTP, JSON, HTML parsing, and more.

asdf is the original backend for mise.

It relies on asdf plugins for each tool. asdf plugins are more risky to use because they're typically written by a single developer unrelated to the tool vendor. They also generally do not function on Windows because they're written in bash which is often not available on Windows and the scripts generally are not written to be cross-platform.

asdf plugins are not used for tools inside the registry whenever possible. Sometimes it is not possible to use more secure backends like aqua/github because tools have complex install setups or need to export env vars.

All of these are hosted in the mise-plugins org to secure the supply chain so you do not need to rely on plugins maintained by anyone except me.

Because of the extra complexity of asdf tools and security concerns we are actively moving tools in the registry away from asdf where possible to backends like aqua and github which don't require plugins. That said, not all tools can function with github/aqua if they have a unique installation process or need to set env vars other than PATH.

Feature Comparison: asdf vs vfox

Featureasdf Pluginsvfox Plugins
LanguageBash scriptsLua
Windows Support
Built-in HTTP module❌ (requires curl)
Built-in JSON module❌ (requires jq)
Built-in HTML parsing
Built-in archive extraction
Built-in semver module
Built-in logging
Post-install hooks
Security attestations✅ (cosign, SLSA)
Multi-tool plugins✅ (backend plugins)
Lock file support
Rolling version checksums

Hook Migration: asdf to vfox

asdf Scriptvfox HookNotes
bin/list-allAvailableReturn structured version objects instead of plain text
bin/downloadPreInstallReturn URL and checksum; mise handles the download
bin/installPostInstallRuns after mise downloads and extracts the tool
bin/exec-envEnvKeysReturn structured key/value pairs instead of export statements
bin/list-legacy-filenamesPLUGIN.legacyFilenamesSet in metadata.lua instead of a script
bin/parse-legacy-fileParseLegacyFileReturn structured result instead of plain text

Writing asdf (legacy) plugins for mise

See the asdf documentation for more information on writing plugins.

Licensed under the MIT License. Maintained by @jdx and friends.