@claude-code-commands/code-check-path
You are helping the user analyze what's on their PATH and suggest additions or improvements.
prpm install @claude-code-commands/code-check-path2 total downloads
📄 Full Prompt Content
# Check and Analyze PATH
You are helping the user analyze what's on their PATH and suggest additions or improvements.
## Your tasks:
1. **Display current PATH:**
```bash
echo $PATH | tr ':' '\n'
```
2. **Check which paths actually exist:**
```bash
echo $PATH | tr ':' '\n' | while read p; do
if [ -d "$p" ]; then
echo "✓ $p"
else
echo "✗ $p (does not exist)"
fi
done
```
3. **Check for duplicate PATH entries:**
```bash
echo $PATH | tr ':' '\n' | sort | uniq -d
```
4. **Identify where PATH is being set:**
Check common locations:
```bash
grep -n "PATH" ~/.bashrc ~/.bash_profile ~/.profile /etc/environment /etc/profile 2>/dev/null
```
5. **Check for common development tool paths:**
**Programming languages:**
- Python user packages: `~/.local/bin`
- Rust cargo: `~/.cargo/bin`
- Go: `~/go/bin` or `$GOPATH/bin`
- Ruby gems: Check with `gem environment`
- Node/npm: Check with `npm config get prefix`
**Package managers:**
- Homebrew: `/home/linuxbrew/.linuxbrew/bin`
- SDKMAN: `~/.sdkman/candidates/*/current/bin`
- pipx: `~/.local/bin`
**Version managers:**
- pyenv: `~/.pyenv/bin`
- rbenv: `~/.rbenv/bin`
- nvm: (check ~/.nvm/)
- asdf: `~/.asdf/bin`
**System tools:**
- User binaries: `~/bin`, `~/.local/bin`
- Snap: `/snap/bin`
- Flatpak: `/var/lib/flatpak/exports/bin`
6. **Check what's installed in each PATH directory:**
For each directory in PATH:
```bash
echo "Contents of $dir:"
ls -la "$dir" | head -10
```
7. **Suggest missing common paths:**
Check and suggest if not in PATH:
- `~/.local/bin` (Python user packages, pipx)
- `~/bin` (User scripts)
- `~/.cargo/bin` (Rust packages)
- `~/go/bin` (Go packages)
- `/snap/bin` (Snap packages)
- `~/.npm-global/bin` (npm global packages)
For each missing path that has executables, suggest adding it.
8. **Check for security issues:**
- Warn if `.` (current directory) is in PATH
- Warn if world-writable directories are in PATH:
```bash
echo $PATH | tr ':' '\n' | while read p; do
if [ -d "$p" ] && [ -w "$p" ]; then
ls -ld "$p"
fi
done
```
9. **Check PATH order/precedence:**
Explain that earlier paths take precedence.
Show which binary would be executed:
```bash
which -a python python3 java gcc git node npm
```
10. **Check for conflicting tools:**
```bash
type -a python
type -a python3
type -a java
```
11. **Suggest PATH organization:**
Recommended order:
1. User binaries (`~/bin`, `~/.local/bin`)
2. Version managers (pyenv, rbenv, nvm)
3. Language-specific paths (cargo, go)
4. Homebrew
5. System binaries (`/usr/local/bin`, `/usr/bin`, `/bin`)
12. **Check environment-specific paths:**
**Python:**
```bash
python3 -m site --user-base
# Suggests adding $(python3 -m site --user-base)/bin
```
**Node/npm:**
```bash
npm config get prefix
# Suggests adding <prefix>/bin
```
**Go:**
```bash
go env GOPATH
# Suggests adding $GOPATH/bin
```
**Rust:**
```bash
echo $CARGO_HOME
# Suggests adding ~/.cargo/bin
```
13. **Generate suggested PATH setup:**
Based on findings, create suggested additions for ~/.bashrc:
```bash
# User binaries
export PATH="$HOME/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
# Python
export PATH="$HOME/.local/bin:$PATH"
# Rust
export PATH="$HOME/.cargo/bin:$PATH"
# Go
export PATH="$HOME/go/bin:$PATH"
# SDKMAN
# Added by sdkman-init.sh
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
# Homebrew
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
```
14. **Check for broken symlinks in PATH:**
```bash
echo $PATH | tr ':' '\n' | while read dir; do
if [ -d "$dir" ]; then
find "$dir" -maxdepth 1 -type l ! -exec test -e {} \; -print 2>/dev/null
fi
done
```
15. **Provide recommendations:**
- Remove non-existent directories from PATH
- Add missing common paths that have executables
- Fix duplicate entries
- Correct PATH order if needed
- Remove security issues (`.` in PATH, world-writable dirs)
- Consolidate PATH modifications into one file (prefer ~/.bashrc)
- Document what each PATH addition is for
16. **Show how to temporarily modify PATH:**
```bash
# Add to front (takes precedence)
export PATH="/new/path:$PATH"
# Add to end
export PATH="$PATH:/new/path"
# Remove from PATH
export PATH=$(echo $PATH | tr ':' '\n' | grep -v "/path/to/remove" | tr '\n' ':')
```
17. **Show how to make PATH changes permanent:**
```bash
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
```
## Important notes:
- Changes to PATH only affect current shell unless made permanent
- Order matters - earlier paths have precedence
- Don't add current directory (`.`) to PATH
- Use absolute paths when possible
- Source ~/.bashrc after changes: `source ~/.bashrc`
- Some tools (pyenv, conda, nvm) modify PATH dynamically
- Check for PATH modifications in multiple files
💡 Suggested Test Inputs
Loading suggested inputs...
🎯 Community Test Results
Loading results...
📦 Package Info
- Format
- claude
- Type
- slash-command
- Category
- configuration