nvm-sh / nvm
git clone https://github.com/nvm-sh/nvm.git
v0.40.8 · 29d ago
🔥 on GitHub Trending today
Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions.
+14
stars, 24h · #339
+326
stars, 7 days · #176
+627
stars, 30 days · #466
96k
★ total · +0% this week
11k
forks · 387 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageShell
LicenseMIT
Created2010-04-15 (16y ago)
Last push10d ago
Watchers1.1k
OwnerOrganization
Seen on GitHub Trending
- 2026-10-20 — #11 daily in shell · +14 ★
- 2026-10-20 — #17 monthly in shell · +627 ★
- 2026-10-20 — #1 weekly in shell · +326 ★
GitHub topics
Links
- GitHub: github.com/nvm-sh/nvm
- Releases · Issues · Hacker News mentions
README excerpt
# Node Version Manager [ ][3] [ ][4] ## Table of Contents - Intro - About - Installing and Updating - Install & Update Script - Additional Notes - Installing in Docker - Installing in Docker for CICD-Jobs - Troubleshooting on Linux - Troubleshooting on macOS - Ansible - Verify Installation - Important Notes - Git Install - Manual Install - Manual Upgrade - Usage - Long-term Support - Migrating Global Packages While Installing - Migrating Global Packages Between Installed Versions - Offline Install - Default Global Packages From File While Installing - io.js - System Version of Node - Listing Versions - Setting Custom Colors - Persisting custom colors - Suppressing colorized output - Restoring PATH - Set default node version - Use a mirror of node binaries - Pass Authorization header to mirror - Platforms without official binaries - .nvmrc - Deeper Shell Integration - Calling `nvm use` automatically in a directory with a `.nvmrc` file - bash - zsh - fish - Running Tests - Environment variables - Bash Completion - Usage - Compatibility Issues - Installing nvm on Alpine Linux - Alpine Linux 3.13+ - Alpine Linux 3.5 - 3.12 - Uninstalling / Removal - Manual Uninstall - Docker For Development Environment - Problems - macOS Troubleshooting - WSL Troubleshooting - Maintainers - Project Support - Enterprise Support - License - Copyright notice ## Intro `nvm` allows you to quickly install and use different versions of node via the command line. **Example:** [code] Simple as that! ## About nvm is a version manager for node.js, designed to be installed per-user, and invoked per-shell. `nvm` works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and Windows WSL. ## Installing and Updating ### Install & Update Script To **install** or **update** nvm, you should run the [install script][2]. To do that, you may either download and run the script manually, or use the following cURL or Wget command: [code] [code] Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and attempts to add the source lines from the snippet below to the correct profile file (`~/.bashrc`, `~/.bash_profile`, `~/.zshrc`, or `~/.profile`). If you find the install script is updating the wrong profile file, set the `$PROFILE` env var to the profile file’s path, and then rerun the installation script. [code] #### Additional Notes - If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there. - You can add `--no-use` to the end of the above script to postpone using `nvm` until you manually `use` it: [code] - You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not contain a trailing slash. - The installer can use `git`, `curl`, or `