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.
Top comments (0)