nvm Shell Integration
Add automatic nvm use on directory changes so the correct Node version activates per project.
Workflow
-
Add auto-switching for bash (append to
~/.bashrc):cdnvm() { command cd "$@" || return $? nvm_path="$(nvm_find_up .nvmrc | command tr -d '\n')" if [ -n "$nvm_path" ]; then local nvm_node_version=$(nvm version "$(cat "$nvm_path/.nvmrc")") if [ "$nvm_node_version" = "N/A" ]; then nvm install elif [ "$nvm_node_version" != "$(nvm version)" ]; then nvm use fi fi } alias cd='cdnvm' -
Deactivate nvm and restore PATH when needed:
nvm deactivate # Removes nvm from PATH, restores system node nvm use system # Switch to system-installed Node -
Verify auto-switching works:
echo "20" > /tmp/test-project/.nvmrc cd /tmp/test-project # Should auto-switch to Node 20 node -v # Should show v20.x.x
Note: Base shell loading belongs to nvm-setup. This skill adds deeper integration on top.
Example file map
examples/shell-integration.md- Overview of integration optionsexamples/auto-use-bash.md- Bash auto-switching hookexamples/auto-use-zsh.md- Zsh auto-switching hookexamples/auto-use-fish.md- Fish auto-switching hookexamples/restore-path.md- PATH restoration and nvm deactivate
Keywords
shell integration, auto use, PATH restore, nvm deactivate, auto switch, cdnvm