nvm
AGENTS.md96k starsChanged 24 months agoMITView on GitHub
This document provides guidance for AI coding agents when working with the Node Version Manager (nvm) codebase. nvm is a version manager for Node.js, implemented as a POSIX-compliant function that works across multiple shells (sh, dash, bash, ksh, zsh). The codebase is primarily written in shell script and emphasizes portability and compatibility.
- Installs packages
We split this AGENTS.md into the rules it gives an agent
21 rules. About 0 are common, 11 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
All internal helper functions (prefixed with nvm_)
- Distinctive: line 50
When compiling from source, accepts additional arguments that are passed to the compilation task
- Very specific: line 239
Place mocks in test/mocks/ directory
- Very specific: line 364
Quoting: Always quote variables: "${VAR}" instead of $VAR
- Distinctive: line 365
POSIX compliance: Avoid bash-specific features in portable sections
- Very specific: line 366
Array usage: Use set -- for positional parameters instead of arrays, which are not supported in POSIX
- Distinctive: line 373
Follow POSIX shell guidelines for portability
- Very specific: line 375
Use nvm_echo instead of echo for output
- Very specific: line 376
Use nvm_err for error messages
- Distinctive: line 379
Test changes across all supported shells
- Distinctive: line 380
Avoid bash-specific features in core functionality
- Very specific: line 381
Use nvm_is_zsh to check when zsh-specific behavior is needed
- Distinctive: line 386
Use local variables to avoid scope pollution
- Very specific: line 391
Use nvm debug command for environment information
- Very specific: line 393
Test with NVM_DEBUG=1 environment variable
- Very specific: line 394
Check $NVM_DIR/.cache for cached data issues
- Distinctive: line 411
Important: Ensure you're using WSL2, not WSL1 - see Microsoft's WSL2 installation guide for up-to-date instructions
- Distinctive: line 413
Follow Linux installation instructions within WSL2
- Distinctive: line 435
Follow standard Linux installation within WSL2
- Distinctive: line 440
Run nvm installation script
- Distinctive: line 445
Run nvm installation in Cygwin terminal
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
nvm Coding Agent Instructions
This document provides guidance for AI coding agents when working with the Node Version Manager (nvm) codebase.
Overview
nvm is a version manager for Node.js, implemented as a POSIX-compliant function that works across multiple shells (sh, dash, bash, ksh, zsh). The codebase is primarily written in shell script and emphasizes portability and compatibility.
Core Architecture
- Main script:
nvm.sh- Contains all core functionality and the mainnvm()function - Installation script:
install.sh- Handles downloading and installing nvm itself - Execution wrapper:
nvm-exec- Allows running commands with specific Node.js versions - Bash completion:
bash_completion- Provides tab completion for bash users - Tests: Comprehensive test suite in
test/directory using the urchin test framework
Key Files and Their Purposes
nvm.sh
The core functionality file containing:
- Main
nvm()function (starts around line 3000) - All internal helper functions (prefixed with
nvm_) - Command implementations for install, use, ls, etc.
- Shell compatibility logic
- POSIX compliance utilities
install.sh
Handles nvm installation via curl/wget/git:
- Downloads nvm from GitHub
- Sets up directory structure
- Configures shell integration
- Supports both git clone and script download methods
nvm-exec
Simple wrapper script that:
- Sources nvm.sh with
--no-useflag - Switches to specified Node version via
NODE_VERSIONenv var or.nvmrc - Executes the provided command with that Node version
Top-Level nvm Commands and Internal Functions
Core Commands
nvm install [version]
- Internal functions:
nvm_install_binary(),nvm_install_source(),nvm_download_artifact() - Downloads and installs specified Node.js version
- Automatically
nvm uses that version after installation - Supports LTS versions, version ranges, and built-in aliases (like
node,stable) and user-defined aliases - Can install from binary or compile from source
- When compiling from source, accepts additional arguments that are passed to the compilation task
nvm use [version]
- Internal functions:
nvm_resolve_alias(),nvm_version_path(),nvm_change_path() - Switches current shell to use specified Node.js version
- Updates PATH environment variable
- Supports
.nvmrcfile integration
nvm ls [pattern]
- Internal functions:
nvm_ls(),nvm_tree_contains_path() - Lists installed Node.js versions
- Supports pattern matching and filtering
- Shows current version and aliases
nvm ls-remote [pattern]
- Internal functions:
nvm_ls_remote(),nvm_download(),nvm_ls_remote_index_tab() - Lists available Node.js versions from nodejs.org and iojs.org, or the env-var-configured mirrors
- Supports LTS filtering and pattern matching
- Downloads version index on-demand
nvm alias [name] [version]
- Internal functions:
nvm_alias(),nvm_alias_path() - Creates text files containing the mapped version, named as the alias name
- Special aliases:
default,node,iojs,stable,unstable(note:stableandunstableare deprecated, from node's pre-v1 release plan) - Stored in
$NVM_DIR/alias/directory
nvm current
- Internal functions:
nvm_ls_current() - Shows currently active Node.js version
- Returns "system" if using system Node.js
nvm which [version]
- Internal functions:
nvm_version_path(),nvm_resolve_alias() - Shows path to specified Node.js version
- Resolves aliases and version strings
Utility Commands
nvm cache clear|dir
- Cache management for downloaded binaries and source code
- Clears or shows cache directory path
nvm debug
- Diagnostic information for troubleshooting
- Shows environment, tool versions, and paths
nvm deactivate
- Removes nvm modifications from current shell
- Restores original PATH
nvm unload
- Completely removes nvm from shell environment
- Unsets all nvm functions and variables
Internal Function Categories
Version Resolution
nvm_resolve_alias()- Resolves aliases to version numbersnvm_version()- Finds best matching local versionnvm_remote_version()- Finds best matching remote versionnvm_normalize_version()- Standardizes version stringsnvm_version_greater()- Compares version numbersnvm_version_greater_than_or_equal_to()- Version comparison with equalitynvm_get_latest()- Gets latest version from a list
Installation Helpers
nvm_install_binary()- Downloads and installs precompiled binariesnvm_install_source()- Compiles Node.js from sourcenvm_download_artifact()- Downloads tarballs or binariesnvm_compute_checksum()- Verifies download integritynvm_checksum()- Checksum verification wrappernvm_get_mirror()- Gets appropriate download mirrornvm_get_arch()- Determines system architecture
Path Management
nvm_change_path()- Updates PATH for version switchingnvm_strip_path()- Removes nvm paths from PATHnvm_version_path()- Gets installation path for versionnvm_version_dir()- Gets version directory namenvm_prepend_path()- Safely prepends to PATH
Shell Detection and Compatibility
nvm_is_zsh()- Shell detection for zshnvm_is_iojs_version()- Checks if version is io.jsnvm_get_os()- Operating system detectionnvm_supports_source_options()- Checks if shell supports source options
Network and Remote Operations
nvm_download()- Generic download functionnvm_ls_remote()- Lists remote versionsnvm_ls_remote_iojs()- Lists remote io.js versionsnvm_ls_remote_index_tab()- Parses remote version index
Utility Functions
nvm_echo(),nvm_err()- Output functionsnvm_has()- Checks if command existsnvm_sanitize_path()- Cleans sensitive data from pathsnvm_die_on_prefix()- Validates npm prefix settingsnvm_ensure_default_set()- Ensures default alias is setnvm_auto()- Automatic version switching from .nvmrc
Alias Management
nvm_alias()- Creates or lists aliasesnvm_alias_path()- Gets path to alias filenvm_unalias()- Removes aliasesnvm_resolve_local_alias()- Resolves local aliases
Listing and Display
nvm_ls()- Lists local versionsnvm_ls_current()- Shows current versionnvm_tree_contains_path()- Checks if path is in nvm treenvm_format_version()- Formats version display
Running Tests
Test Framework
nvm uses the urchin test framework for shell script testing.
Test Structure
test/
├── fast/ # Quick unit tests
├── slow/ # Integration tests
├── sourcing/ # Shell sourcing tests
├── install_script/ # Installation script tests
├── installation_node/ # Node installation tests
├── installation_iojs/ # io.js installation tests
└── common.sh # Shared test utilitiesRunning Tests
Install Dependencies
npm install # Installs urchin, semver, and replace toolsRun All Tests
npm test # Runs tests in the current shell only (sh, bash, dash, zsh)
make test # Runs tests in default shells (sh, bash, dash, zsh)
make test-sh # Runs tests only in sh
make test-bash # Runs tests only in bash
make test-dash # Runs tests only in dash
make test-zsh # Runs tests only in zsh
make SHELLS=ksh test # Runs tests only in ksh (experimental, see issue #574)Run Specific Test Suites
npm run test/fast # Runs fast tests in the current shell
npm run test/slow # Runs slow tests in the current shell
npm run test/sourcing # Runs sourcing tests in the current shell
npm run test/install_script # Runs install script tests in the current shell
npm run test/installation # Runs installation tests (node + iojs) in the current shell
npm run test/installation/node # Runs Node installation tests in the current shell
npm run test/installation/iojs # Runs io.js installation tests in the current shell
make TEST_SUITE=fast test # Only fast tests
make TEST_SUITE=slow test # Only slow tests
make SHELLS=bash test # Only bash shellIndividual Test Execution
./test/fast/Unit\ tests/nvm_get_arch # Run single test (WARNING: This will exit/terminate your current shell session)
./node_modules/.bin/urchin test/fast/ # Run fast test suite
./node_modules/.bin/urchin 'test/fast/Unit tests/nvm_get_arch' # Run single test safely without shell termination
./node_modules/.bin/urchin test/slow/ # Run slow test suite
./node_modules/.bin/urchin test/sourcing/ # Run sourcing test suite
./node_modules/.bin/urchin test/install_script/ # Run install script test suite
./node_modules/.bin/urchin test/installation_node/ # Run Node installation test suite
./node_modules/.bin/urchin test/installation_iojs/ # Run io.js installation test suiteLinting and Docs Checks
npm run eclint # Checks EditorConfig compliance
npm run doctoc:check # Verifies README table of contents
npm run dockerfile_lint # Lints the Dockerfile
npm run test:check-exec # Checks test files have executable permission
npm run test:check-nonexec # Checks non-test files don't have executable permission
npm run markdown-link-check # Validates markdown links (requires markdown-link-check)Test Writing Guidelines
- Tests should work across all supported shells (sh, bash, dash, zsh, ksh)
- Define and use a
die()function for test failures - Clean up after tests in cleanup functions
- Mock external dependencies when needed
- Place mocks in
test/mocks/directory - Mock files should only be updated by the existing
update_test_mocks.shscript, and any new mocks must be added to this script
Shell Environment Setup
Supported Shells
- bash - Full feature support
- zsh - Full feature support
- dash - Basic POSIX support
- sh - Basic POSIX support
- ksh - Limited support (experimental)
Installing Shell Environments
Ubuntu/Debian
sudo apt-get update
sudo apt-get install bash zsh dash ksh
# sh is typically provided by dash or bash and is available by defaultmacOS
# bash and zsh are available by default, bash is not the default shell for new user accounts
# Install other shells via Homebrew
brew install dash ksh
# For actual POSIX sh (not bash), install mksh which provides a true POSIX sh
brew install mkshManual Shell Testing
# Test in specific shell
bash -c "source nvm.sh && nvm --version"
zsh -c "source nvm.sh && nvm --version"
dash -c ". nvm.sh && nvm --version"
sh -c ". nvm.sh && nvm --version" # On macOS: mksh -c ". nvm.sh && nvm --version"
ksh -c ". nvm.sh && nvm --version"Shell-Specific Considerations
- zsh: Requires basically any non-default zsh option to be temporarily unset to restore POSIX compliance
- dash: Limited feature set, avoid bash-specific syntax
- ksh: Some features may not work, primarily for compatibility testing
CI Environment Details
GitHub Actions Workflows
.github/workflows/tests.yml
- Runs test suite across multiple shells and test suites
- Uses
scriptcommand for proper TTY simulation - Matrix strategy covers shell × test suite combinations
- Excludes install_script tests from non-bash shells
.github/workflows/shellcheck.yml
- Lints all shell scripts using shellcheck
- Tests against multiple shell targets (bash, sh, dash, ksh)
- Note: zsh is not included due to shellcheck limitations
- Uses Homebrew to install latest shellcheck version
.github/workflows/lint.yml
- Runs additional linting and formatting checks
- Validates documentation and code style
Travis CI (Legacy)
- Configured in
.travis.yml - Tests on multiple Ubuntu versions
- Installs shell environments via apt packages
CI Test Execution
# Simulate CI environment locally
unset TRAVIS_BUILD_DIR # Disable Travis-specific logic
unset GITHUB_ACTIONS # Disable GitHub Actions logic
make testSetting Up shellcheck Locally
Installation
macOS (Homebrew)
brew install shellcheckUbuntu/Debian
sudo apt-get install shellcheckFrom Source
# Download from https://github.com/koalaman/shellcheck/releases
wget https://github.com/koalaman/shellcheck/releases/download/latest/shellcheck-latest.linux.x86_64.tar.xz
tar -xf shellcheck-latest.linux.x86_64.tar.xz
sudo cp shellcheck-latest/shellcheck /usr/local/bin/Usage
Lint Main Files
shellcheck -s bash nvm.sh
shellcheck -s bash install.sh
shellcheck -s bash nvm-exec
shellcheck -s bash bash_completionLint Across Shell Types
shellcheck -s sh nvm.sh # POSIX sh
shellcheck -s bash nvm.sh # Bash extensions
shellcheck -s dash nvm.sh # Dash compatibility
shellcheck -s ksh nvm.sh # Ksh compatibilityCommon shellcheck Directives in nvm
# shellcheck disable=SC2039- Allow bash extensions in POSIX mode# shellcheck disable=SC2016- Allow literal$in single quotes# shellcheck disable=SC2001- Allow sed usage instead of parameter expansion# shellcheck disable=SC3043- Allowlocalkeyword (bash extension)
Fixing shellcheck Issues
- Quoting: Always quote variables:
"${VAR}"instead of$VAR - POSIX compliance: Avoid bash-specific features in portable sections
- Array usage: Use
set --for positional parameters instead of arrays, which are not supported in POSIX - Local variables: Declared with
local FOOand then initialized on the next line (the latter is for ksh support)
Development Best Practices
Code Style
- Use 2-space indentation
- Follow POSIX shell guidelines for portability
- Prefix internal functions with
nvm_ - Use
nvm_echoinstead ofechofor output - Use
nvm_errfor error messages
Compatibility
- Test changes across all supported shells
- Avoid bash-specific features in core functionality
- Use
nvm_is_zshto check when zsh-specific behavior is needed - Mock external dependencies in tests
Performance
- Cache expensive operations (like remote version lists)
- Use local variables to avoid scope pollution
- Minimize subprocess calls where possible
- Implement lazy loading for optional features
Debugging
- Use
nvm debugcommand for environment information - Enable verbose output with
set -xduring development - Test with
NVM_DEBUG=1environment variable - Check
$NVM_DIR/.cachefor cached data issues
Common Gotchas
- PATH modification: nvm modifies PATH extensively; be careful with restoration
- Shell sourcing: nvm must be sourced, not executed as a script
- Version resolution: Aliases, partial versions, and special keywords interact complexly
- Platform differences: Handle differences between Linux, macOS, and other Unix systems
- Network dependencies: Many operations require internet access for version lists
- Concurrent access: Multiple shells can conflict when installing versions simultaneously
Windows Support
nvm works on Windows via several compatibility layers:
WSL2 (Windows Subsystem for Linux)
- Full nvm functionality available
- Important: Ensure you're using WSL2, not WSL1 - see Microsoft's WSL2 installation guide for up-to-date instructions
- Install Ubuntu or other Linux distribution from Microsoft Store
- Follow Linux installation instructions within WSL2
Cygwin
- POSIX-compatible environment for Windows
- Download Cygwin from cygwin.com and run the installer
- During installation, include these packages: bash, curl, git, tar, and wget
- May require additional PATH configuration
Git Bash (MSYS2)
- Comes with Git for Windows
- Limited functionality compared to full Linux environment
- Some features may not work due to path translation issues, including:
- Binary extraction paths may be incorrectly translated
- Symlink creation may fail
- Some shell-specific features may behave differently
- File permissions handling differs from Unix systems
Setup Instructions for Windows
WSL2 (recommended)
- Install WSL2 using the official Microsoft guide: https://docs.microsoft.com/en-us/windows/wsl/install
- Install Ubuntu or preferred Linux distribution from Microsoft Store
- Follow standard Linux installation within WSL2
Git Bash
- Install Git for Windows (includes Git Bash) from https://git-scm.com/download/win
- Open Git Bash terminal
- Run nvm installation script
Cygwin
- Download and install Cygwin from https://www.cygwin.com/install.html
- Include bash, curl, git, tar, and wget packages during installation
- Run nvm installation in Cygwin terminal
This guide should help AI coding agents understand the nvm codebase structure, testing procedures, and development environment setup requirements.
Trending
Quiet since September.about the whole repository
Who's talking about nvm-sh/nvm
- ProgrammingKnowledge2“How To Install Node and NVM on Mac / macOS”YouTube · Feb 28, 2024 · 36k views
- Codemify“What is NVM? How to set up NVM for dummies”YouTube · Sep 30, 2021 · 21k views
- Code Fallacy“How to install Node and NPM on the M1 Mac or Linux with NVM”YouTube · Oct 20, 2021 · 16k views
- WebStylePress“Install NodeJS (Multiple Versions) on Windows | Node Version Manager (NVM)”YouTube · Feb 16, 2021 · 11k views
- Dev Leonardo“Manage Multiple Node Versions with nvm [Mac, Windows, Linux - 2023]”YouTube · Feb 22, 2023 · 10k views
The biggest 5 of 112 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 112
Talked about on GitHub, Stack Overflow, YouTube, the web, Bluesky and Hacker News (112 times).
On GitHub · 31
- Sep 9, 2019[Request] Automatically install default packages — Schniz/fnm38 reactions · 16 comments
- Apr 18, 2022Support for `.nvmrc` latest release version — asdf-vm/asdf-nodejs21 reactions · 4 comments
- Jul 1, 2025feat: add `env use` local Node version management (`nvm`) functionality, implementing `devEngines.runtime.version` — pnpm/pnpm7 reactions · 18 comments
- Oct 27, 2023Install nodejs using http1.1 to work around download issues — localstack/localstack3 reactions · 2 comments
- May 12, 2026deps: bump the development group with 6 updates — cheaper-inference/OmniRoute2 reactions · 1 comment
26 more on GitHub
- May 11, 2026chore(deps): bump lint-staged from 16.4.0 to 17.0.4 — AI-Powered-Edtech/LMS2 reactions · 1 comment
- May 11, 2026Bump lint-staged from 15.2.10 to 17.0.4 — code-review-benchmark/keycloak__keycloak__entelligence__PR32918__202603062 reactions · 2 comments
- May 11, 2026Bump lint-staged from 15.4.3 to 17.0.4 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR36882__202603062 reactions · 2 comments
- May 11, 2026Bump lint-staged from 15.4.3 to 17.0.4 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR36880__202603062 reactions · 2 comments
- May 11, 2026Bump lint-staged from 15.4.3 to 17.0.4 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR37634__202603062 reactions · 3 comments
- May 11, 2026Bump lint-staged from 15.2.10 to 17.0.4 — code-review-benchmark/keycloak__keycloak__entelligence__PR33832__202603062 reactions · 3 comments
- May 11, 2026Bump lint-staged from 16.1.2 to 17.0.4 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR40940__202603062 reactions · 2 comments
- May 11, 2026Bump lint-staged from 16.1.2 to 17.0.4 in /js — code-review-benchmark/keycloak__keycloak-greptile__entelligence__PR1__202603062 reactions · 2 comments
- May 11, 2026Bump lint-staged from 15.4.3 to 17.0.4 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR37429__202603062 reactions · 3 comments
- May 11, 2026Bump lint-staged from 15.5.0 to 17.0.4 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR38446__202603062 reactions · 3 comments
- May 11, 2026Bump lint-staged from 15.4.3 to 17.0.4 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR37038__202603062 reactions · 3 comments
- May 8, 2026deps: bump the development group with 3 updates — galyarderlabs/galyarder-route2 reactions · 3 comments
- May 7, 2026Bump lint-staged from 15.4.3 to 17.0.2 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR37634__202603062 reactions · 3 comments
- May 7, 2026Bump lint-staged from 15.4.3 to 17.0.2 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR36880__202603062 reactions · 3 comments
- May 7, 2026Bump lint-staged from 16.1.2 to 17.0.2 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR40940__202603062 reactions · 2 comments
- May 7, 2026Bump lint-staged from 15.4.3 to 17.0.2 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR36882__202603062 reactions · 3 comments
- May 7, 2026Bump lint-staged from 15.4.3 to 17.0.2 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR37429__202603062 reactions · 3 comments
- May 7, 2026Bump lint-staged from 15.2.10 to 17.0.2 — code-review-benchmark/keycloak__keycloak__entelligence__PR32918__202603062 reactions · 3 comments
- May 7, 2026Bump lint-staged from 15.2.10 to 17.0.2 — code-review-benchmark/keycloak__keycloak__entelligence__PR33832__202603062 reactions · 3 comments
- May 7, 2026Bump lint-staged from 15.5.0 to 17.0.2 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR38446__202603062 reactions · 3 comments
- May 7, 2026Bump lint-staged from 15.4.3 to 17.0.2 in /js — code-review-benchmark/keycloak__keycloak__entelligence__PR37038__202603062 reactions · 3 comments
- May 7, 2026Bump lint-staged from 16.1.2 to 17.0.2 in /js — code-review-benchmark/keycloak__keycloak-greptile__entelligence__PR1__202603062 reactions · 2 comments
- Oct 26, 2023Set Node to v20 — electricitymaps/electricitymaps-contrib2 reactions · 5 comments
- Jan 18, 2023chore: update nvm version to v0.39.3 — CircleCI-Public/node-orb2 reactions · 1 comment
- Feb 16, 2022feat: add support `node` is an alias for the latest version — actions/setup-node2 reactions · 12 comments
- May 19, 2026Add tree-sitter language fixture cases — coolplayagent/relay-knowledge1 reaction · 1 comment
On Stack Overflow · 30
- Nov 13, 2014How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)722 votes
- Jun 13, 2020How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)230 votes
- Apr 28, 2021error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'?187 votes
- Oct 28, 2022Getting GLIBC_2.28 not found82 votes
- Nov 19, 2017How to install a specific version of Node on Ubuntu/Debian?66 votes
25 more on Stack Overflow
- Jul 10, 2020How to install nvm in docker?55 votes
- Nov 22, 2016Getting the error message "This is not the package you are looking for" when trying to run nvm, why?38 votes
- Dec 23, 2021How to downgrade node version?28 votes
- Dec 19, 2020Updating node version of a project from v6x to v12x27 votes
- Feb 16, 2020Installing a tar.gz on Linux26 votes
- Nov 7, 2019npm install ->Failed at the node-sass@4.5.0 postinstall script26 votes
- Aug 11, 2023How to install Node 14 on a M2 Chip Apple Macbook Air?20 votes
- Nov 2, 2020Connection to postgres from typescript hangs20 votes
- May 27, 2021Installing NVM on Ubuntu 20.04 LTS?18 votes
- Sep 24, 2012How can I uninstall or upgrade my old node.js version?18 votes
- Aug 20, 2022Visual Studio Code to use node version specified by NVM17 votes
- Dec 21, 2022Is it possible to install Node.js on macOS High Sierra Version 10.13.6? This is the latest version my mid 2014 Macbook Pro can support16 votes
- Sep 19, 2020How do I uninstall node using nvm or how uninstall one version of nodejs?16 votes
- Mar 6, 2020Command to download latest version of nvm?16 votes
- Feb 24, 2022run `nvm use` automatically every time there's a .nvmrc file on the directory12 votes
- Jun 23, 2021Failed to "nvm install 8.0.0"10 votes
- Jan 9, 2020Deploy nodejs app to bluehost10 votes
- Jun 4, 2020How to solve [curl: (60) SSL certificate problem: self signed certificate in certificate chain]9 votes · 2 answers
- Nov 19, 2022nvm keeps "forgetting" node in new terminal session8 votes
- Sep 18, 2021nvm on MacOS init says: zsh compinit: insecure directories, run compaudit for list8 votes · 1 answer
- Mar 18, 2023npx create-next-app@latest is giving errors7 votes
- Dec 18, 2022`GLIBC_2.28' not found7 votes
- Oct 3, 2021Node Version Manager runs very slow on M1 Macbook Air6 votes
- Nov 22, 2019Next.JS - `.htaccess` file?6 votes
- Jul 17, 2019Terminal (zsh) command not found for global npm installs6 votes
On YouTube · 25
- Feb 28, 2024How To Install Node and NVM on Mac / macOS — ProgrammingKnowledge236k views · 47 comments
- Sep 30, 2021What is NVM? How to set up NVM for dummies — Codemify21k views · 18 comments
- Oct 20, 2021How to install Node and NPM on the M1 Mac or Linux with NVM — Code Fallacy16k views · 41 comments
- Feb 16, 2021Install NodeJS (Multiple Versions) on Windows | Node Version Manager (NVM) — WebStylePress11k views · 8 comments
- Feb 22, 2023Manage Multiple Node Versions with nvm [Mac, Windows, Linux - 2023] — Dev Leonardo10k views · 26 comments
20 more on YouTube
- Jun 23, 2025How to Install and Use NVM (Node Version Manager) on Mac & Linux — Coding With Adam9.8k views · 2 comments
- Aug 11, 2021Use NVM Node Version Manager To Install Specific Version Of Node — gleb bahmutov5.8k views · 4 comments
- Jul 7, 2024Install nvm on windows || and Uninstall — Peta Stewart5k views · 8 comments
- Mar 29, 2021NVM Tutorial | Manage Node.js installations | Node Version Manager — GlitchITSystem4.6k views · 5 comments
- Nov 10, 2022Easily manage multiple Node.js versions with NVM — CSS Weekly4.3k views · 15 comments
- Jun 17, 2024Using NVM to Leverage Multiple Versions of NodeJS — Steve Griffith - Prof3ssorSt3v33.5k views · 13 comments
- May 20, 2020How to Manage Multiple Versions of Node.js with NVM — Eric Murphy2k views · 1 comment
- May 29, 2020Install multiple Node versions with NVM — Jantcu968 views · 2 comments
- Oct 4, 2020Node JS Tutorial for Beginners #4 | Installing Node JS using NVM | Node Version Management using nvm — WebStack638 views · 12 comments
- Oct 30, 2023How to Install Node Version Manager (NVM) on Ubuntu 22.04 LTS | LinuxSimply — LinuxSimply573 views
- Apr 10, 2021How to install NPM + Node using Nvm ( Recommended installation ) Linux/Mac — Jason Cheung361 views · 1 comment
- Apr 19, 2021Install node on Unix/Linux under 1 minute using NVM (Node Version Manager) — Tech Harvesting with Naseel335 views
- Jan 6, 2023Use Node Version Manager to Install Node.js on Mac and Linux. — TechTutelage309 views · 2 comments
- Sep 19, 2022How to Install Node.js Using nvm on Macbook M1 — Bini Barazany255 views · 2 comments
- Jun 3, 2020NVM nvm: command not found ao reiniciar o Terminal (Ubuntu 20.04) — Gabriel Veras163 views · 2 comments
- Apr 5, 2020How to install multiple versions of NodeJS using NVM — Develop with Daniel92 views
- Apr 17, 2021Installing NodeJS using NVM — Vincent Builds Systems85 views · 1 comment
- May 20, 2021Node Version Manager (nvm) - How, When, Why — Akshay S Dinesh65 views
- Apr 23, 2020How to use multiple versions of Node — Warm Program38 views · 2 comments
- May 19, 2022How and Why to use NVM - Node Version Manager [ENG] — Wilson Santos31 views
On the web · 13
- Jun 25, 2025How to Install NVM on macOS — dev.to
- Mar 5, 2025Installation and Usage of Javascript Developer Tools NVM, Node.js (v22), NPM (v10) – datazuul – deep dive into code — datazuul.github.io
- Aug 8, 2024Taming Node — Part 1: Managing node.js versions effectively with NVM | by Andrew Allison | The Tech Collective — medium.com
- Jun 22, 2024Advanced NVM Commands for Efficient Node.js Version Management — dev.to
- Jan 11, 2024Node.js version adventures using nvm — devxperiences.com
8 more on the web
- Dec 20, 2023Elegant Use of nvm for Node.js Management on Mac in 2024 — dev.to
- Dec 4, 2023How to Effortlessly Manage Different Node.js Versions with NVM — dev.to
- Nov 29, 2023How to Install and Use NVM (Node Version Manager) — akamai.com
- Nov 17, 2023Manage node versions with nvm — haiiiiiyun.github.io
- Mar 16, 2023Install nvm (Node Version Manager) inside zsh — dev.to
- Aug 31, 2022What is nvm, and How do you install nodejs with the nvm command? — medium.com
- Feb 14, 2022Speed up Zsh startup. 启动时间测试 | by Feng Yu — medium.com
- Mar 28, 2021A 5 minute guide to nvm — dev.to
On Bluesky · 12
- Sep 11, 2026I had a big delay spawning Bash every time because of github.com/nvm-sh/nvm A giant, ugly pile of bash — @evadeva.bsky.social1 likes and repost · 1 reply
- Jul 27, 2026The trade off is, its another tool you need to install and it might take a bit more space on your disk. I would still recommend using one.… — @homebasered.bsky.social1 likes and repost · 1 reply
- Feb 4, 2026📦 nvm-sh / nvm ⭐ 91,228 (+34) 🗒 Shell Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions — @github-trending.bsky.social1 likes and repost
- Nov 27, 2025📦 nvm-sh / nvm ⭐ 89,894 (+74) 🗒 Shell Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions — @github-trending.bsky.social1 likes and repost
- Nov 27, 2025今日のGitHubトレンド nvm-sh/nvm このリポジトリは、Node.jsのバージョン管理ツールである「nvm」(Node Version Manager)を提供することを目的としています。… — @dailygithubtrends.bsky.social1 likes and repost
7 more on Bluesky
- Nov 23, 2025📦 nvm-sh / nvm ⭐ 89,660 (+39) 🗒 Shell Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions — @github-trending.bsky.social1 likes and repost
- Nov 21, 2025今日のGitHubトレンド nvm-sh/nvm このリポジトリはNode.jsのバージョン管理ツール(nvm)を提供します。… — @dailygithubtrends.bsky.social1 likes and repost
- Nov 15, 2025📦 nvm-sh / nvm ⭐ 89,277 (+57) 🗒 Shell Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions — @github-trending.bsky.social1 likes and repost
- Oct 30, 2025📦 nvm-sh / nvm ⭐ 88,620 (+24) 🗒 Shell Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions — @github-trending.bsky.social1 likes and repost
- Oct 14, 2025📦 nvm-sh / nvm ⭐ 87,424 (+18) 🗒 Shell Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions — @github-trending.bsky.social1 likes and repost
- Mar 20, 2024📦 nvm-sh / nvm ⭐ 74,742 (+35) 🗒 Shell Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions — @github-trending.bsky.social1 likes and repost
- Apr 11, 2023my TS getting started guide: install nvm: https://github.com/nvm-sh/nvm $ nvm install node (restart shell) cd to project directory $ npm i… — @tautologer.com0 likes and reposts · 1 reply
On Hacker News · 1
- Jul 3, 2021NVM – Package for Ubuntu PPA and Backport1 point · 1 comment
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

