n is a Node.js version manager that works without requiring subshells, profile modifications, or complex configuration.
The tool solves the problem of switching between different Node.js versions on a single machine. It operates by caching downloaded Node.js versions in a local directory and symlinking the active version into standard system paths. Users can interactively select which version to use, and the tool handles downloading, installing, and switching between versions with a single command. The approach avoids the overhead of subshells or shell profile manipulation that some alternative version managers require.
n suits developers who need to test code against multiple Node.js versions or work on projects with different version requirements. It works on macOS, Linux, and Unix-like systems including Windows Subsystem for Linux, but does not support native Windows shells, PowerShell, Git for Windows BASH, or Cygwin. Installation can be bootstrapped with curl if Node.js is not yet available, or installed via npm, Homebrew, or MacPorts. The tool allows customization through environment variables for cache location and architecture selection, and supports pointing to custom mirrors for Node.js downloads.
Development activity shows consistent maintenance with regular updates addressing user-reported issues and platform compatibility. The project maintains responsiveness to bug reports and feature requests from its user base. Documentation is kept current with platform support details and installation instructions for various package managers. The codebase remains focused on its core simplicity goal without feature creep, keeping the shell script implementation straightforward and maintainable.