n: Node.js Version Management Tool
A command-line utility for installing, switching between, and managing multiple Node.js versions on Unix-like systems.
Learn more about n
n is a Node.js version manager implemented as a BASH script that provides interactive version switching and management capabilities. It downloads and caches Node.js versions locally, then creates symbolic links or copies files to switch between versions without requiring shell configuration or subshells. The tool operates by managing Node.js installations in a centralized directory structure, typically under /usr/local, and provides both interactive and command-line interfaces for version selection. It supports various version specifiers including semantic versions, LTS releases, and project-specific version files like .nvmrc and package.json engines.
No Shell Configuration
Operates without requiring profile setup, subshells, or shell-specific configuration files. Works across different shell environments while being implemented as a BASH script.
Interactive Selection
Provides a built-in interactive menu for browsing and selecting from cached Node.js versions using keyboard navigation. Supports immediate switching between installed versions.
Project Integration
Automatically reads version requirements from .nvmrc, .node-version, and package.json files. Supports semantic version ranges and project-specific version resolution.
# Install a specific Node.js version
n 10.16.0
# Install the latest LTS version
n lts
# Launch interactive version selector
n
# Use arrow keys to select, Enter to install, 'd' to delete, 'q' to quit10.2.0
- –environment variable `N_ARCH` to set architecture for download, like using `--arch` (#832)
10.1.0
- –`--cleanup` option to delete cached version after install for a one-shot install (#818)
- –`download` command to download Node.js version into cache (#821)
- –document using `--download` with run/exec/which in README
- –support trailing comments in `.nvmrc` file (#820)
- –mask password in download URL when displayed (#815)
10.0.0
- –if `jq` is available, use `jq` for reading `engines` from `package.json` instead of using `node` (#810)
- –avoid a network lookup if auto or engine find a fully specified numeric version. (#813)
Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
Swag
CLI tool that generates Swagger 2.0 API documentation from Go source code annotations.
Build Your Own X
Curated guides for recreating popular technologies from scratch, from 3D renderers to operating systems.
httpx
Fast HTTP probing with response metadata extraction.
Neovim
Refactored Vim with modern APIs, async job control, and Lua scripting while maintaining plugin compatibility.
Floki
Elixir HTML parser with CSS selectors and multiple parser backends.