nvm: A POSIX-compliant bash script to manage multiple active node.js versions.
What problem it solves
Developers often need to install, select, and switch among multiple Node.js versions while working across projects. The project addresses this with a per-user, per-shell version manager that supports common POSIX-compliant shells and command-line workflows.
Key features
Install and switch Node.js versions — Install a selected Node.js release and activate it from the command line. Versions can be run directly or used inside an isolated subshell.
Source: README
Aliases and default versions — Create named aliases for installed versions and designate a default for new shells. Aliases can also represent release categories such as LTS lines.
Source: README
Per-user shell integration — The manager is loaded into a shell profile and remains scoped to the user account. It supports POSIX-compliant shells including sh, dash, ksh, zsh, and bash.
Source: README
LTS and version-category selection — Commands can select versions by category, including LTS releases, and aliases can identify specific LTS lines. Remote version listings also annotate the `node` alias and local aliases.
Source: README
Project-specific version configuration — Use `.nvmrc` files to record a project's Node.js version and configure shell integration to switch versions automatically in matching directories.
Source: README
Quick start
Copied verbatim from the project's README.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.41.0/install.sh | bash$ nvm install 24
Now using node v24.14.0 (npm v11.9.0)
$ node -v
v24.14.0
$ nvm use 22
Now using node v22.22.1 (npm v10.9.4)
$ node -v
v22.22.1
$ nvm use 20
Now using node v20.20.1 (npm v10.8.2)
$ node -v
v20.20.1Who it may suit
Inference: This may suit Node.js developers and teams that work across projects requiring different Node.js versions. It may also suit users of POSIX-compliant shells on unix, macOS, or Windows WSL.
Topics to discuss
Which shell integration patterns should be documented more clearly for project-based version switching?
How should teams standardize `.nvmrc` usage across repositories and onboarding workflows?
Which migration or global-package workflows need clearer examples for users adopting `nvm`?
Written by ReadmeX AI from the project's README, source and public GitHub data; it may contain mistakes.
Read the original README https://github.com/nvm-sh/nvm#readme
ReadmeX opened this community for a trending project; it is not run by the project. Maintainers can claim it from the community page.
Comments
…