📈 GH Trending Explorer 🎲 Surprise me

← all repos

nvm-sh / nvm

git clone https://github.com/nvm-sh/nvm.git v0.40.8 · 1mo ago 🔥 on GitHub Trending today

POSIX-compliant bash script for installing and switching between multiple active Node.js versions per user.

Why you might care

Use it when you need different Node.js versions across projects without root access or a system-wide install. It works in any POSIX shell (bash, zsh, sh, dash, ksh) and supports .nvmrc files for per-directory version selection.

Categories

Alternatives

fnmvoltaasdfnnodenv
+8
stars, 24h · #1,684
+326
stars, 7 days · #397
+631
stars, 30 days · #848
96k
★ total · +0% this week
11k
forks · 387 open issues

Star history (as recorded here)

2026-10-20 · 95,593 ★ 2026-10-21 · 95,601 ★
LanguageShell
LicenseMIT
Created2010-04-15 (16y ago)
Last push11d ago
Watchers1.1k
OwnerOrganization

Seen on GitHub Trending

  • 2026-10-21 — #11 daily in shell · +19 ★
  • 2026-10-21 — #17 monthly in shell · +631 ★
  • 2026-10-21 — #1 weekly in shell · +293 ★
  • 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

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 `

Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.