- Home
- Runtime Version Managers
- nodenv
nodenv
What it is
nodenv manages Node.js versions so projects on one machine can use different versions. You can select a version globally, for a particular project, or just for a shell session. When you enter a project directory, nodenv can read its .node-version file and switch to the specified version. It adds command shims to PATH, directing commands such as node, npm, and npx to the selected version. Installing Node.js versions requires the separate node-build plugin; that install command is not included by default. Bash-written plugins can extend nodenv, including plugins for installing versions and managing default npm packages. Globally installed npm packages are scoped to the active Node.js version. The project provides shell completion and initialization instructions for Bash, Zsh, and Fish. Installation options include Homebrew, Arch Linux’s AUR, or a manual Git checkout; Debian, Ubuntu, and Fedora repositories do not currently package it. nodenv is free, MIT licensed, and supports Linux and macOS.
For and against
For
- Select versions per project, globally, or per shell session.
- Switches versions based on a project’s .node-version file.
- Shims direct node, npm, and npx to the selected version.
- Provides completion scripts for Bash, Zsh, and Fish.
Against
- Installing versions requires the separate node-build plugin.
- Debian, Ubuntu, and Fedora repositories do not package it.
The verdict
nodenv offers several ways to select a Node.js version and can switch automatically as you move between projects. Keep in mind that installing versions requires a separate plugin.
Who it suits
It suits people building Node.js applications who need different versions across projects on one machine. It also supports shell-session version selection and CI/CD use.
Plans and prices
nodenv
Free version manager for Node.js on Unix-like systems
Read 5 Oct 2026 · github.com
On the record
- Audience
- The project is intended for people working on Node.js applications who need to switch versions across projects on one machine.github.com · read 5 Oct 2026
- Automatic switching
- It checks a project’s .node-version file and switches Node.js versions as you move between project directories.github.com · read 5 Oct 2026
- Command shims
- nodenv places shims in PATH so commands such as node, npm, and npx use the selected Node.js version.github.com · read 5 Oct 2026
- Install options
- Installation options include Homebrew, Arch Linux’s AUR, or a manual Git checkout; Debian, Ubuntu, and Fedora repositories do not currently package it.github.com · read 5 Oct 2026
- License
- The repository identifies the project as MIT licensed.github.com · read 5 Oct 2026
- Package scope
- Globally installed npm packages are scoped to the currently active Node.js version.github.com · read 5 Oct 2026
- Plugins
- nodenv is customizable through plugins written in Bash, including plugins for installing versions and managing default npm packages.github.com · read 5 Oct 2026
- Purpose
- nodenv manages Node.js versions so projects can use the correct version on the same machine.github.com · read 5 Oct 2026
- Security
- The repository links to a security policy, but the opened README does not state a security certification or compliance standard.github.com · read 5 Oct 2026
- Shell support
- The project provides completion scripts for Bash, Zsh, and Fish and documents shell initialization for these shells.github.com · read 5 Oct 2026
- Support
- The project directs users to file bugs in its GitHub issue tracker and submit pull requests.github.com · read 5 Oct 2026
- Version installation
- Installing Node.js versions requires the separate node-build plugin; the install command is not included out of the box.github.com · read 5 Oct 2026
- Version selection
- You can set Node.js versions per project, globally, or for a shell session.github.com · read 5 Oct 2026