Skip to content
SPECIFICTION
Get listed

nvm vs SDKMAN!

nvm

github.com

SDKMAN!

sdkman.io

Side by side

FigurenvmSDKMAN!
Price fromFree—
Free planYes—
Free trial——
Open sourceYes—
WindowsYesYes
macOSYesYes
LinuxYesYes
API—Yes
Self-hostedYes—
Plans published20
Spec score · Runtime Version Managers8.5 (#4)7.2 (#22)
Spec score · Development Environment Managers8.4 (#10)7.1 (#45)
Purposenvm lets users install and use different Node.js versions from the command line.SDKMAN! manages multiple Software Development Kits on Unix systems.
Version managementUsers can install specific Node.js versions, switch between them, and set aliases such as a default version.Users can install, uninstall, list, switch and set default SDK versions.
Version switchingnvm use changes the active Node version in the current shell.Users can install, uninstall, list, use, default, upgrade and inspect SDK versions from the CLI.

Plans

nvm

  • nvmFree
  • nvmFree

nvm pricing →

SDKMAN!

No plans published.

SDKMAN! pricing →

In their own words

nvm

nvm is a free, MIT-licensed command-line tool for installing and managing Node.js versions. It is designed for installation per user and invocation per shell, and works in POSIX-compliant shells including sh, dash, ksh, zsh, and bash. Users can install specific versions, switch between them, set aliases such as a default, and use LTS aliases and commands to select long-term support versions. A project can specify its Node.js version in an.nvmrc file; documented shell snippets can support automatic switching. During installation, nvm can reinstall global npm packages from another installed Node.js version. With the --offline flag, it can install a version that was previously downloaded or cached without network access. The project documents use in Docker, including an example for CI/CD jobs. On Windows, nvm can work through WSL and may work with Git Bash or Cygwin depending on the environment. Fish shell is not supported, and the project points users to community alternatives. The project states that only the latest nvm version is supported.

Visit github.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