An nvm alternative for Node.js, Java and Android
nvm manages Node.js and nothing else. If your projects also need a JDK or the Android SDK, or you want versions to follow the project directory without extra scripts, AVM covers all three and reads the version files you already have.
Why people move away from nvm
nvm is a shell script focused on Node.js. Java and the Android SDK need separate tools, and each tool has its own install, switching and configuration habits.
AVM handles Node.js, Java (Temurin OpenJDK) and the Android SDK through plugins with one command style, one project file (.avm.json) and one lockfile format for Node.js and Java.
Keep your .nvmrc
You do not need to rewrite anything. AVM reads .nvmrc, .node-version and package.json (volta.node, or the engines.node range) by default, searching upward from the current directory. Partial specs such as 20 or lts/* resolve to the newest installed match.
Run avm which to see which file decided the version.
$ avm which node
tool 'node': 20.11.1 (from ./.nvmrc)Install and switch
Install AVM, add the shell hook, add the Node.js plugin and install a version. avm node use pins it in the project; add --global to set your machine default.
echo 'eval "$(avm shell-init)"' >> ~/.zshrc
source ~/.zshrc
avm plugin add node
avm node install 22
avm node use 22What you gain over nvm
One tool for Node.js, Java and the Android SDK. Checksum-verified downloads. A committed .avm.lock with exact versions and archive SHA-256 for Node.js and Java, enforced in CI with avm install --frozen. Native Windows support with PowerShell integration.
Project aliases and environment variables live next to the versions in .avm.json, and cloned projects stay inactive until you run avm trust.
What to know before switching
AVM keeps its own installs under ~/.avm, separate from nvm, so install the versions you need again with avm node install. If a pinned version is not installed, AVM falls back to the system binary with a warning instead of failing.
Android and legacy asdf plugins support ordinary installs only, not lockfiles.