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
zsh: command not found: <tool>
Proactive (audit): "check environment", "what's missing", "update tools"
Binary to Tool Mapping
Common binary names that differ from package names:
| Binary | Package (Homebrew) | Package (apt) |
|---|---|---|
rg | ripgrep | ripgrep |
fd | fd | fd-find |
bat | bat | bat |
delta | git-delta | N/A |
exa / eza | eza | eza |
fzf | fzf | fzf |
ag | the_silver_searcher | silversearcher-ag |
http | httpie | httpie |
jq | jq | jq |
yq | yq | N/A |
gh | gh | gh |
glab | glab | N/A |
Installation Commands
macOS (Homebrew)
# Install single tool
brew install <package>
# Install multiple tools
brew install ripgrep fd bat eza fzf jq gh
# Update all tools
brew update && brew upgrade
Linux (apt)
# Install single tool
sudo apt install <package>
# Install multiple tools
sudo apt install ripgrep fd-find bat fzf jq
# Update all tools
sudo apt update && sudo apt upgrade
PHP Tools (Composer)
# Global PHP tools
composer global require phpstan/phpstan
composer global require friendsofphp/php-cs-fixer
composer global require rector/rector
# Project-specific
composer require --dev phpstan/phpstan
composer require --dev friendsofphp/php-cs-fixer
Node.js Tools (npm)
# Global Node tools
npm install -g prettier eslint typescript
# Project-specific
npm install --save-dev prettier eslint typescript
Project Type Detection
PHP Project
Indicators: composer.json, vendor/, *.php
Required tools:
php- PHP interpretercomposer- Dependency managerphpstan- Static analysisphp-cs-fixer- Code style
TYPO3 Project
Indicators: composer.json with typo3/cms-core, public/typo3/
Required tools:
- All PHP tools
ddev- Local developmenttypo3- TYPO3 CLI
Node.js Project
Indicators: package.json, node_modules/
Required tools:
node- Node.js runtimenpm/pnpm/yarn- Package manager
Go Project
Indicators: go.mod, *.go
Required tools:
go- Go compilergolangci-lint- Linter
Environment Audit
Check if required tools are installed:
# Check single tool
command -v <tool> &> /dev/null && echo "Found" || echo "Missing"
# Check version
<tool> --version
# PHP project audit
php --version
composer --version
command -v phpstan &> /dev/null || echo "Missing: phpstan"
command -v php-cs-fixer &> /dev/null || echo "Missing: php-cs-fixer"
# TYPO3 project audit
php --version
composer --version
ddev --version
Tool Catalog
Core CLI Tools
curl- HTTP clientwget- File downloaderjq- JSON processoryq- YAML processortree- Directory visualizerhtop- Process viewertmux- Terminal multiplexer
Development Tools
git- Version controlgh- GitHub CLIglab- GitLab CLIdocker- Containerizationddev- Local development
Search & Navigation
ripgrep(rg) - Fast grepfd- Fast findfzf- Fuzzy finderbat- Cat with syntax highlightingeza- Modern ls replacementdelta- Git diff viewer
PHP Tools
php- PHP interpretercomposer- Dependency managerphpstan- Static analysisrector- Automated refactoringphp-cs-fixer- Code style fixerphpunit- Testing frameworkinfection- Mutation testing
Node.js Tools
node- JavaScript runtimenpm/pnpm- Package managersprettier- Code formattereslint- JavaScript lintertypescript- TypeScript compiler
Security Tools
trivy- Vulnerability scannergrype- Container scannercosign- Container signing
Auto-Install Workflow
When a command fails with "command not found":
- Extract tool name from error message
- Lookup package name in binary-to-tool mapping
- Detect OS (macOS/Linux)
- Install using appropriate package manager
- Retry original command
Example:
# Error: zsh: command not found: rg
# Resolution:
brew install ripgrep # macOS
# or
sudo apt install ripgrep # Linux
# Retry
rg "pattern" .
Batch Update
Update all managed tools:
# macOS
brew update && brew upgrade
# Linux
sudo apt update && sudo apt upgrade
# PHP global tools
composer global update
# Node global tools
npm update -g
Credits & Attribution
Thanks to Netresearch DTT GmbH for their contributions to the TYPO3 community.