nvm
brew install nvm
v0.40.5
MIT
Bash/Zsh shell tool to install and switch between multiple Node.js versions per-project or globally.
Why you might care
Essential for JavaScript developers who need to test code against different Node versions or follow per-project `.nvmrc` version pinning. Lighter than Docker for local development, works in CI/CD, and integrates seamlessly into your shell without a package manager. Standard choice in Node.js workflows.
48.4k
30-day installs · #130
131.7k
90-day · #156
499.6k
365-day · #151
93.9k
★ GitHub stars · updated 6d ago
GitHub topics
bash
install
lts
node
node-js
nodejs
nvm
nvmrc
posix
posix-compliant
shell
version-manager
zsh
Links
- https://github.com/nvm-sh/nvm
- GitHub: nvm-sh/nvm
- Brew formula source: Formula/n/nvm.rb
Caveats
Please note that upstream has asked us to make explicit managing nvm via Homebrew is unsupported by them and you should check any problems against the standard nvm install method prior to reporting. You should create NVM's working directory if it doesn't exist: mkdir ~/.nvm Add the following to your shell profile e.g. ~/.profile or ~/.zshrc: export NVM_DIR="$HOME/.nvm" [ -s "$HOMEBREW_PREFIX/opt/nvm/nvm.sh" ] && \. "$HOMEBREW_PREFIX/opt/nvm/nvm.sh" # This loads nvm [ -s "$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm" ] && \. "$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion You can set $NVM_DIR to any location, but leaving it unchanged from $HOMEBREW_CELLAR/nvm/0.40.5 will destroy any nvm-installed Node installations upon upgrade/reinstall. Type `nvm help` for further information.
Blurb generated by claude-haiku-4-5 on today.
Raw metadata
{
"aliases": [],
"alternatives": [
"fnm",
"nodenv",
"n",
"asdf"
],
"build_dependencies": [],
"categories": [
"shell",
"version-control",
"language-runtime"
],
"caveats": "Please note that upstream has asked us to make explicit managing\nnvm via Homebrew is unsupported by them and you should check any\nproblems against the standard nvm install method prior to reporting.\n\nYou should create NVM\u0027s working directory if it doesn\u0027t exist:\n mkdir ~/.nvm\n\nAdd the following to your shell profile e.g. ~/.profile or ~/.zshrc:\n export NVM_DIR=\"$HOME/.nvm\"\n [ -s \"$HOMEBREW_PREFIX/opt/nvm/nvm.sh\" ] \u0026\u0026 \\. \"$HOMEBREW_PREFIX/opt/nvm/nvm.sh\" # This loads nvm\n [ -s \"$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm\" ] \u0026\u0026 \\. \"$HOMEBREW_PREFIX/opt/nvm/etc/bash_completion.d/nvm\" # This loads nvm bash_completion\n\nYou can set $NVM_DIR to any location, but leaving it unchanged from\n$HOMEBREW_CELLAR/nvm/0.40.5 will destroy any nvm-installed Node installations\nupon upgrade/reinstall.\n\nType `nvm help` for further information.\n",
"conflicts_with": [],
"dependencies": [],
"deprecated": 0,
"deprecation_reason": null,
"desc": "Manage multiple Node.js versions",
"disable_reason": null,
"disabled": 0,
"enrichment_fetched_at": "2026-06-20T23:40:40+00:00",
"first_seen": "2026-06-20T23:34:18+00:00",
"full_name": "nvm",
"github_default_branch": "master",
"github_last_commit_at": "2026-06-15T03:56:24Z",
"github_readme_excerpt": "\u003ca href=\"https://github.com/nvm-sh/logos\"\u003e\n \u003cpicture\u003e\n \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/nvm-sh/logos/HEAD/nvm-logo-white.svg\" /\u003e\n \u003cimg src=\"https://raw.githubusercontent.com/nvm-sh/logos/HEAD/nvm-logo-color.svg\" height=\"50\" alt=\"nvm project logo\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n\n# Node Version Manager [][3] [][4] [](https://bestpractices.dev/projects/684)\n\n\u003c!-- To update this table of contents, ensure you have run `npm install` then `npm run doctoc` --\u003e\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON\u0027T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n## Table of Contents\n\n- [Intro](#intro)\n- [About](#about)\n- [Installing and Updating](#installing-and-updating)\n - [Install \u0026 Update Script](#install--update-script)\n - [Additional Notes](#additional-notes)\n - [Installing in Docker](#installing-in-docker)\n - [Installing in Docker for CICD-Jobs](#installing-in-docker-for-cicd-jobs)\n - [Troubleshooting on Linux](#troubleshooting-on-linux)\n - [Troubleshooting on macOS](#troubleshooting-on-macos)\n - [Ansible](#ansible)\n - [Verify Installation](#verify-installation)\n - [Important Notes](#important-notes)\n - [Git Install](#git-install)\n - [Manual Install](#manual-install)\n - [Manual Upgrade](#manual-upgrade)\n- [Usage](#usage)\n - [Long-term Support](#long-term-support)\n - [Migrating Global Packages While Installing](#migrating-global-packages-while-installing)\n - [Offline Install](#offline-install)\n - [Default Global Packages From File While Installing](#default-global-packages-from-file-while-installing)\n - [io.js](#iojs)\n - [System Version of Node](#system-version-of-node)\n - [Listing Versions](#listing-versions)\n ",
"github_repo": "nvm-sh/nvm",
"github_stars": 93886,
"github_topics": [
"bash",
"install",
"lts",
"node",
"node-js",
"nodejs",
"nvm",
"nvmrc",
"posix",
"posix-compliant",
"shell",
"version-manager",
"zsh"
],
"homepage": "https://github.com/nvm-sh/nvm",
"homepage_og_description": null,
"homepage_og_image": null,
"homepage_title": null,
"installs_30d": 48388,
"installs_365d": 499614,
"installs_90d": 131684,
"keg_only": 0,
"keg_only_reason": null,
"last_seen": "2026-06-20T23:34:18+00:00",
"license": "MIT",
"llm_generated_at": "2026-06-20T23:42:55+00:00",
"llm_model": "claude-haiku-4-5",
"name": "nvm",
"oldnames": [],
"one_liner": "Bash/Zsh shell tool to install and switch between multiple Node.js versions per-project or globally.",
"optional_dependencies": [],
"rank_30d": 130,
"rank_365d": 151,
"rank_90d": 156,
"raw_hash": "37c6ac168c769ea9",
"recommended_dependencies": [],
"revision": 0,
"ruby_source_path": "Formula/n/nvm.rb",
"tap": "homebrew/core",
"test_dependencies": [],
"uses_from_macos": [],
"version_head": "HEAD",
"version_stable": "0.40.5",
"versioned_formulae": [],
"why_use_this": "Essential for JavaScript developers who need to test code against different Node versions or follow per-project `.nvmrc` version pinning. Lighter than Docker for local development, works in CI/CD, and integrates seamlessly into your shell without a package manager. Standard choice in Node.js workflows."
}