finds.dev← search

// the find

tj/n

★ 19,516 · Shell · MIT · updated Apr 2026

Node version management

A single-file Bash script for managing Node.js versions on Unix systems. No subshells, no PATH trickery — it just downloads a prebuilt Node.js tarball and installs it to a prefix directory, overwriting what was there. The right tool if you want something dead simple and don't need per-project version isolation.

The no-subshell approach means switching versions actually works without restarting your shell. The auto label reading from .nvmrc, .node-version, and package.json engines field means it plays well with teams already using nvm conventions. Custom mirror support (including authenticated URLs) makes it usable in corporate environments with private artifact repos. The test suite runs in Docker across multiple distros using bats — real coverage for a shell script.

No Windows support at all — not even WSL with caveats, native shells are completely out. Because it installs to a single global prefix by overwriting, you can't have two versions active simultaneously in different terminals, which is the main reason people reach for nvm or fnm instead. The interactive TUI for version selection is minimal and requires a terminal; no good story for non-interactive CI use beyond passing the version directly. The project is still on TJ's personal account and changes infrequently — recent commits are mostly maintenance, not development.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →