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.
# 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