--- name: nvm-setup description: "Configure shell initialization files so nvm loads correctly in bash, zsh, and fish. Covers NVM_DIR, nvm.sh sourcing, profile file selection, XDG_CONFIG_HOME, and bash completion. Use when the user reports nvm not found after installation, needs to configure shell profiles, or wants to set up nvm environment variables." license: Complete terms in LICENSE.txt --- # nvm Shell Setup Configure shell profiles so nvm loads automatically on every new terminal session. ## Workflow 1. **Identify the shell and profile file:** - bash: `~/.bashrc` (or `~/.bash_profile` on macOS) - zsh: `~/.zshrc` - fish: `~/.config/fish/config.fish` - With XDG_CONFIG_HOME: `$XDG_CONFIG_HOME/bash/bashrc` etc. 2. **Add nvm initialization** to the correct profile: ```bash # Required lines for bash/zsh: export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" ``` 3. **Optional: Load nvm without switching versions** (faster shell startup): ```bash [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" --no-use ``` 4. **Verify nvm loads** in a new shell: ```bash # Open a new terminal, then: command -v nvm # Should print "nvm" nvm --version # Should print version number ``` **Notes:** - XDG_CONFIG_HOME changes the expected profile path. - Use `--no-use` when you only want nvm loaded without switching versions. - For installation, use the nvm-install skill. For version usage, use nvm-usage-basics. ### Example file map - `templates/shell-config.md` - Profile configuration templates - `examples/environment-variables.md` - Environment variable reference - `examples/bash-completion.md` - Bash completion setup - `examples/bash-completion-usage.md` - Completion usage examples ## Keywords nvm setup, NVM_DIR, nvm.sh, profile, bash, zsh, fish, XDG_CONFIG_HOME, shell init