🍺 BREW Explorer

← all formulae

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.

Categories

Alternatives

fnm nodenv n asdf
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

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 [![Tests](https://github.com/nvm-sh/nvm/actions/workflows/tests-fast.yml/badge.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.40.5-yellow.svg)][4] [![CII Best Practices](https://bestpractices.dev/projects/684/badge)](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."
}