As a long-time user of nvm and then n , I would like to add the crucial difference between those two, and why I prefer n over nvm . nvm works through usage of environment variables, changing the path for the node executable file. While this can be enough for most users, I've encountered problems in integrated shells in IDEs (namely in Sublime Text 2, back in the day). Back then, the IDE spawned a shell with a clean and minimal environment (using something like env -i ), thus wiping any nvm configurations from the session. n uses symbolic links to manage node and npm versions, thus being a little more robust to differences in environments.