Skip to content
SPECIFICTION
Get listed

asdf vs SDKMAN!

asdf

asdf-vm.com

SDKMAN!

sdkman.io

Side by side

FigureasdfSDKMAN!
Price fromFree—
Free planYes—
Free trial——
Open source——
Windows—Yes
macOSYesYes
LinuxYesYes
API—Yes
Plans published10
Spec score · Runtime Version Managers8.1 (#6)7.2 (#22)
Spec score · Development Environment Managers8.0 (#15)7.1 (#45)
Purposeasdf is a tool version manager that uses one `.tool-versions` file to share exact tool versions with a project team.SDKMAN! manages multiple Software Development Kits on Unix systems.

Plans

asdf

  • asdfFree

asdf pricing →

SDKMAN!

No plans published.

SDKMAN! pricing →

In their own words

asdf

asdf is a free, open-source version manager for Linux and macOS. It gives project teams one command interface and a shared `.tool-versions` file for selecting exact versions of multiple tools and runtimes. Plugins support tools such as Node.js, Ruby, and Elixir, while the plugin API allows additional tools. When a command runs, asdf searches for configuration from the current directory upward toward the home directory, then uses shims to launch the selected executable. Existing `.ruby-version`, `.nvmrc`, and `.node-version` files can be supported per plugin. Listed shell support includes Bash, ZSH, Fish, and Elvish, with completions. A GitHub Action uses `.tool-versions` in CI/CD workflows. Installation options include Homebrew, Zypper, Pacman, precompiled binaries, Go, and source builds. asdf manages tool versions rather than system packages or upstream dependencies. If no version is set, execution errors unless the tool is configured as `system`.

Visit asdf-vm.com

SDKMAN!

SDKMAN! is a command-line interface and API for managing Software Development Kits in the JVM ecosystem. It supports languages and tools including Java, Scala, Kotlin, Groovy, Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot, and Vert.x. From the CLI, users can install, uninstall, list, inspect, switch, upgrade, and set default SDK versions. A project can record its versions in an .sdkmanrc file, with automatic switching available when entering its directory. Java distributions are obtained through the Foojay DISCO API. SDKMAN! works on macOS and Linux; Windows use requires WSL or MSYS with MinGW, since it does not run natively there. Cygwin is no longer supported. The installer requires curl, zip, and unzip, and works with Bash and ZSH. Its CI mode answers prompts, disables colored output, and turns off self-updates. SDKMAN! is free, open source, and Apache 2.0 licensed. Security updates are provided only for the latest released CLI version. The project says Go, Rust, Node.js, Python, and Ruby toolchains are outside its intended scope.

Visit sdkman.io