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:
bashwhich <tool> # Is it installed but not in PATH? command -v <tool> # Alternative check type -a <tool> # Show all locations
- •
Why 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:
bash# 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:
bashwhich <tool> # Should show path <tool> --version # Should show version
- •
If "command not found" persists after install:
bashhash -r # Clear shell's command hash source ~/.bashrc # Reload shell configuration # Or start a new shell session
- •
Retry 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:
bash# 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:
bash# Add to ~/.bashrc or ~/.zshrc export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH"
- •
Reload shell configuration:
bashsource ~/.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):
bash# 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:
bash# Download release binary directly curl -L <release-url> -o ~/.local/bin/<tool> chmod +x ~/.local/bin/<tool>
- •
Compile from source:
bashgit clone <repo-url> cd <repo> make && make install PREFIX=~/.local
- •
Use package manager with user scope:
bashpip 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 mapping - •
references/project_type_requirements.md- Project type requirements
Contributing: https://github.com/netresearch/cli-tools-skill