Node environment manager
You can not 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
2 months ago
.github/workflows Add changelog 2 months ago
src Fix bug where the lts version is used for init 2 months ago
.gitignore Add web api 2 months ago Fix bug where the lts version is used for init 2 months ago
Cargo.toml chore: Release nenv version 0.5.2 2 months ago
LICENSE Create LICENSE 2 months ago Change syntax of exec to use a -- to separate args from nenv args 2 months ago
icon.png Add icon 2 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.