fnm
Fast Node.js version manager built in Rust with support for .node-version and .nvmrc files
fnm is a Node.js version manager implemented in Rust that focuses on speed and cross-platform compatibility. It provides functionality similar to nvm but with faster startup times and a single binary installation. The tool automatically detects and switches Node.js versions based on .node-version and .nvmrc files in project directories.
The core functionality includes installing, switching between, and managing multiple Node.js versions. fnm supports automatic version switching when entering directories with version files using the --use-on-cd flag. It includes shell completions for bash, zsh, fish, and PowerShell, and integrates with shell environments through the fnm env command.
Developers working on multiple Node.js projects with different version requirements would benefit from fnm's automatic version switching and fast performance. The tool works across macOS, Windows, and Linux, with installation methods ranging from package managers like Homebrew and Scoop to direct binary downloads. The Rust implementation provides instant startup compared to other Node version managers written in shell scripts or JavaScript.
Installation
# via Homebrew
brew install fnm
# via Cargo
cargo install fnm
# via Winget
winget install Schniz.fnm
# via Installation Script
curl -fsSL https://fnm.vercel.app/install | bash
Alternatives & related tools
difftastic
Structural diff tool that compares files based on their syntax rather than lines
hyperfine
Command-line benchmarking tool that runs statistical analysis across multiple timing runs of shell commands
Hurl
Command line tool that runs and tests HTTP requests defined in plain text files, with request chaining, captures, asserts, and CI reports.
mise
CLI tool for managing development environments with version-controlled tools, environment variables, and tasks
zellij
Terminal multiplexer with floating panes, multiplayer collaboration, WebAssembly plugins, and built-in web client
add a badge to your README
Maintain fnm? Show that it's featured on trmn. The badge links back to this page.
[](https://www.trmn.sh/tools/fnm?utm_source=badge)<a href="https://www.trmn.sh/tools/fnm?utm_source=badge"><img src="https://www.trmn.sh/badge/fnm.svg" alt="Featured on trmn" height="20"></a>