DEV Community

El Telar
El Telar

Posted on Originally published at eltelar.es AI-assisted

Hooks de Claude Code: qué son y 3 ejemplos para copiar

Un hook es un comando que Claude Code ejecuta automáticamente en un momento concreto: después de editar un archivo, antes de ejecutar una orden o cuando te espera. Según la documentación oficial, dan un control determinista: la acción ocurre siempre, sin depender de que el modelo se acuerde.

1. Notificación cuando Claude te espera (macOS)

En ~/.claude/settings.json:

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          { "type": "command", "command": "osascript -e 'display notification \"Claude Code needs your attention\" with title \"Claude Code\"'" }
        ]
      }
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

Escribe /hooks para comprobar que aparece. Si no suena, activa las notificaciones de Script Editor en Ajustes del Sistema.

2. Prettier tras cada edición

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" }]
      }
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

3. Bloquear archivos protegidos

Un script que termina con código 2 bloquea la acción y Claude recibe el mensaje:

#!/bin/bash
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
for pattern in ".env" "package-lock.json" ".git/"; do
  if [[ "$FILE_PATH" == *"$pattern"* ]]; then
    echo "Blocked: $FILE_PATH matches '$pattern'" >&2
    exit 2
  fi
done
exit 0
Enter fullscreen mode Exit fullscreen mode

Regístralo como hook PreToolUse con matcher: "Edit|Write".

Guía completa, con diagrama, dónde se guardan y preguntas frecuentes: eltelar.es.

Top comments (0)