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\"'" } ] } ] } } 

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" }] } ] } } 

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 

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

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