CLI Tools Skill
Manage CLI tool installation, environment auditing, and updates.
Capabilities
- Reactive: Auto-install missing tools on "command not found"
- Proactive: Audit project dependencies and tool versions
- Maintenance: Batch update all managed tools
Triggers
Reactive (auto-install):
bash: <tool>: command not found
Proactive (audit): "check environment", "what's missing", "update tools"
Workflows
Missing Tool Resolution
Phase 1: Diagnostic (BEFORE attempting install)
Check if tool exists elsewhere:
which <tool> # Is it installed but not in PATH? command -v <tool> # Alternative check type -a <tool> # Show all locationsWhy might it be missing?
- PATH issue: Tool installed but shell can't find it (check
~/.local/bin,/usr/local/bin) - Version conflict: Multiple versions installed, wrong one active
- Shell state: Installed in current session but shell hash table stale (
hash -r) - Package manager isolation: Installed via pip/npm/cargo but not in global PATH
- PATH issue: Tool installed but shell can't find it (check
If tool exists but not in PATH:
# Find the binary find /usr -name "<tool>" 2>/dev/null find ~/.local -name "<tool>" 2>/dev/null # Add to PATH temporarily export PATH="$PATH:/path/to/tool/directory"
Phase 2: Installation
- Extract tool name from error
- Lookup in
references/binary_to_tool_map.md(e.g.,rg→ripgrep) - Install:
scripts/install_tool.sh <tool> install
Phase 3: Verification (AFTER install)
Confirm installation succeeded:
which <tool> # Should show path <tool> --version # Should show versionIf "command not found" persists after install:
hash -r # Clear shell's command hash source ~/.bashrc # Reload shell configuration # Or start a new shell sessionRetry original command
Environment Audit
scripts/check_environment.sh audit .
Scripts
| Script | Purpose |
|---|---|
install_tool.sh |
Install/update/uninstall tools |
auto_update.sh |
Batch update package managers |
check_environment.sh |
Audit environment |
detect_project_type.sh |
Detect project type |
Catalog (74 tools)
Core CLI, Languages, Package Managers, DevOps, Linters, Security, Git Tools
Troubleshooting
PATH Issues
When a tool installs but still shows "command not found":
Check where it was installed:
# Common install locations ls -la ~/.local/bin/<tool> ls -la ~/.cargo/bin/<tool> ls -la ~/.npm-global/bin/<tool> ls -la /usr/local/bin/<tool>Ensure PATH includes common directories:
# Add to ~/.bashrc or ~/.zshrc export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH"Reload shell configuration:
source ~/.bashrc # or ~/.zshrc hash -r # Clear command cache exec $SHELL # Restart shell
Installation Blocked (Permission/System Restrictions)
When system prevents normal installation, use these alternatives:
Docker (no install required):
# Run tool in container docker run --rm -v "$PWD:/work" -w /work <tool-image> <tool> <args> # Create alias for convenience alias <tool>='docker run --rm -v "$PWD:/work" -w /work <tool-image> <tool>'Manual binary download:
# Download release binary directly curl -L <release-url> -o ~/.local/bin/<tool> chmod +x ~/.local/bin/<tool>Compile from source:
git clone <repo-url> cd <repo> make && make install PREFIX=~/.localUse package manager with user scope:
pip install --user <tool> npm install -g <tool> --prefix ~/.npm-global cargo install <tool> # Installs to ~/.cargo/bin
References
references/binary_to_tool_map.md- Binary to catalog mappingreferences/project_type_requirements.md- Project type requirements
Contributing: https://github.com/netresearch/cli-tools-skill