Verifies if a required CLI tool is installed and offers to install it. Use when about to execute a command whose binary might not be installed. Trigger: "¿tienes X instalado?", "instala Y si no está", "check dependencies", "setup environment".
Activar cuando necesites verificar si una herramienta, CLI o runtime está disponible antes de usarla. Ejemplos: "¿tienes X instalado?", "instala Y si no está", "necesito que uses Z", "verifica que tengas Node", "asegúrate de tener Python", "check dependencies", "setup environment"
También activarlo automáticamente cuando Claude vaya a ejecutar un comando cuyo binario podría no estar instalado en el sistema del usuario.
Antes de ejecutar o sugerir instalar, verificar si ya existe:
# El comando más portable para verificar existencia:
# Windows (PowerShell)
Get-Command <tool> -ErrorAction SilentlyContinue
# Unix/macOS
which <tool> 2>/dev/null || command -v <tool> 2>/dev/null
Nunca instalar sin confirmación explícita. Presentar:
❓ [tool] no está instalado en tu sistema.
¿Deseas que lo instale ahora?
[S] Sí, instalar automáticamente
[N] No, lo instalaré manualmente
[I] Ver instrucciones de instalación manual
⚠️ Nota: La instalación requiere permisos de administrador / internet.
Seleccionar el gestor de instalación según el OS y la herramienta:
| Herramienta | Windows | macOS | Linux (Debian/Ubuntu) |
|---|---|---|---|
| Node.js / npm | winget install OpenJS.NodeJS | brew install node | apt install nodejs npm |
| Python | winget install Python.Python.3 | brew install python | apt install python3 pip3 |
| Git | winget install Git.Git | brew install git | apt install git |
| Docker | winget install Docker.DockerDesktop | brew install --cask docker | [Instrucciones Docker] |
| pnpm | npm install -g pnpm | npm install -g pnpm | npm install -g pnpm |
| Bun | npm install -g bun | brew install bun | curl -fsSL https://bun.sh/install | bash |
| uv (Python) | pip install uv | brew install uv | pip install uv |
| ruff | pip install ruff | brew install ruff | pip install ruff |
| jq | winget install jqlang.jq | brew install jq | apt install jq |
| Rust / cargo | winget install Rustlang.Rust | brew install rust | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
| kubectl | winget install Kubernetes.kubectl | brew install kubectl | [Instrucciones kubectl] |
Después de cada instalación:
# Verificar versión instalada
<tool> --version
# o
<tool> -v
Si la verificación falla después de instalar:
Siempre detectar el OS antes de elegir el comando de instalación:
# Python
import platform
os_name = platform.system() # 'Windows', 'Darwin', 'Linux'
// Node.js
const os = require('os');
os.platform() // 'win32', 'darwin', 'linux'
# Bash/Shell
uname -s # Darwin, Linux
# Windows: $env:OS en PowerShell
Sin importar el contexto, estas operaciones siempre requieren aprobación explícita:
sudo / instalaciones globales de sistemaPATH, .bashrc, .zshrc, .profilenpm install -g, pip install sin virtualenv)Cuando se detecta una herramienta faltante, usar siempre este formato:
🔍 Verificando herramientas necesarias...
❌ [tool-name] (v[min-version]+) — No encontrado
✅ [other-tool] v[version] — OK
---
Para continuar necesito instalar: [tool-name]
Comando de instalación para [OS detectado]:
[comando]
¿Procedo con la instalación? [S/N]
brew install X en Windows es inútil.winget, el binario puede no estar disponible hasta abrir una nueva terminal. Siempre advertir esto.winget y instalaciones de sistema requieren PowerShell con permisos de administrador. Verificar antes de intentar.pyproject.toml o requirements.txt. Siempre usar el entorno virtual del proyecto.npm install -g en sistemas con permisos restrictivos — En Linux/macOS sin configuración de npm, puede requerir sudo. Mejor usar nvm o un directorio local.