fnm
What it is
fnm is a free Node.js version manager built in Rust for developers who manage versions from a command line or shell. It supports macOS, Windows, and Linux, and is distributed as a single file through installation scripts, package managers, Cargo, or release binaries. Projects can use `.node-version` and `.nvmrc` files, and shell setup can switch Node.js versions automatically when changing directories. Setup instructions cover Bash, Zsh, Fish, PowerShell, Windows Command Prompt, and Cmder. The binary includes completions for Bash, Zsh, Fish, and PowerShell. On macOS and Linux, the installation script requires `curl` and `unzip`. The project identifies its license as GPL-3.0 and invites pull requests, with issues available for project interaction. The project page reports no published security advisories, while also noting that it has not set up a SECURITY.md file. No paid plans are listed.
For and against
For
- Supports macOS, Windows, and Linux
- Works with `.node-version` and `.nvmrc` files
- Can switch versions when changing directories
- Shell guidance covers six environments
- Completions included for four shells
Against
- macOS and Linux install script requires `curl` and `unzip`
- Project has not set up a SECURITY.md file
The verdict
fnm offers shell-focused version management across three operating systems, with project file support and automatic switching. Installation-script users on macOS or Linux need `curl` and `unzip`; the project page also notes the absence of a SECURITY.md file.
Who it suits
fnm suits developers managing Node.js versions from a shell, particularly those working across supported operating systems or using project version files.
Plans and prices
fnm
No paid plans listed
Read 30 Sep 2026 · github.com
On the record
- Automatic switching
- Shell setup can enable automatic Node.js version switching when changing directories.github.com · read 30 Sep 2026
- Completions
- The binary includes completions for Bash, Zsh, Fish, and PowerShell.github.com · read 30 Sep 2026
- Cross-platform
- The project lists support for macOS, Windows, and Linux.github.com · read 30 Sep 2026
- Installation
- fnm is distributed as a single file and supports installation scripts, package managers, Cargo, and release binaries.github.com · read 30 Sep 2026
- Install prerequisites
- The macOS and Linux installation script requires `curl` and `unzip` to be installed.github.com · read 30 Sep 2026
- License
- The repository identifies its license as GPL-3.0.github.com · read 30 Sep 2026
- Purpose
- fnm is a fast and simple Node.js version manager built in Rust.github.com · read 30 Sep 2026
- Security advisories
- The project page reports that there are no published security advisories.github.com · read 30 Sep 2026
- Security policy
- GitHub reports that the project has not set up a SECURITY.md file.github.com · read 30 Sep 2026
- Shell integrations
- The README provides setup instructions for Bash, Zsh, Fish, PowerShell, Windows Command Prompt, and Cmder.github.com · read 30 Sep 2026
- Support and contributions
- The README invites pull requests and links to issues for project interaction.github.com · read 30 Sep 2026
- Version files
- fnm works with `.node-version` and `.nvmrc` files.github.com · read 30 Sep 2026
- Who it is for
- Its documented features and integrations are aimed at developers managing Node.js versions from their command line and shell.github.com · read 30 Sep 2026