Saturday, October 24, 2026 4,350 lists 78,096 records on file
List your app or device

  1. Home
  2. Runtime Version Managers
  3. 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

Free version manager for Node.js on Unix-like systems

Every plan, in full

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

Alternatives to nodenv

Every alternative, ranked