Node environment manager
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
trivernis 49e401d419
chore: Release nenv version 0.5.2
10 months ago
.github/workflows Add changelog 10 months ago
src Fix bug where the lts version is used for init 10 months ago
.gitignore Add web api 11 months ago Fix bug where the lts version is used for init 10 months ago
Cargo.toml chore: Release nenv version 0.5.2 10 months ago
LICENSE Create LICENSE 11 months ago Change syntax of exec to use a -- to separate args from nenv args 10 months ago
icon.png Add icon 11 months ago


A Node environment manager written in rust.


  • Written in fast and safe rust
  • Multiple active nodejs versions at the same time
  • Configuration for project specific versions
  • Version matching with semver expressions


You can either

  • Install the application with cargo by downloading the repo and running cargo install --path . inside
  • Download the binary from the releases page

Now to initialize everything install any nodejs version with nenv install <version>. Afterwards add the bin directory to your PATH variable.

On windows this should be C:\Users\<yourusername>\AppData\Roaming\nenv\bin. On linux this will be ~/.local/share/nenv/bin.


Install node versions

# install the latest available node version
nenv install latest

# install the latest lts version
nenv install lts

# install the latest 14.x.x version.
nenv install 14

Change the system-wide default version

nenv default latest

Refresh installed binaries and upstream versions

nenv refresh

Pinning binaries to specific node versions

# rome will always be executed with the lts version
nenv pin rome lts

# tsc will always be executed with the latest typescript version
nenv pin tsc latest

# undo
nenv unpin rome
nenv unpin tsc

List nodejs versions

nenv list-versions

Version detection

The node version nenv uses is controlled by

  1. The engines.node config field in the package.json which is parsed as a semver requirement.
  "name": "my project",
  "engines": {
    "node": "18"
  1. The .node-version file in the current or parent directories which contains the version string.
  1. The NODE_VERSION environment variable.
  2. The default version set with nenv default.