Hooks en Claude Code
Los hooks te permiten ejecutar automáticamente tus propios comandos en puntos determinados del flujo de trabajo de Claude Code, por ejemplo antes de cada llamada a una herramienta.
Qué es un hook
Un hook es un comando de shell definido por ti que Claude Code ejecuta automáticamente en un punto determinado del flujo, no decidido opcionalmente por el modelo, sino disparado de forma determinista por el sistema. Esto permite imponer reglas que no deben depender del "arbitrio" de un modelo.
Eventos de hook importantes
- PreToolUse: se ejecuta antes de que se use una herramienta; incluso puede bloquear la ejecución
- PostToolUse: se ejecuta después de que se ha usado una herramienta
- UserPromptSubmit: se ejecuta cuando envías un mensaje
- SessionStart / Stop: se ejecuta al iniciar o finalizar una sesión
Para qué se usan los hooks
- Guardrails: bloquear automáticamente comandos peligrosos (por ejemplo,
rm -rf) antes de su ejecución - Formateo o linting automático después de cada cambio de archivo
- Registro (logging) y notificaciones ante ciertas acciones
- Validación propia antes de que un agente pueda continuar
Configuración
Los hooks se configuran en el settings.json de Claude Code, por proyecto o de forma global, y así son reproducibles independientemente del prompt concreto, porque se ejecutan fuera del modelo.
EJEMPLO
Un hook PreToolUse comprueba cada comando de Bash en busca del patrón 'rm -rf' y cancela la ejecución con un mensaje de error antes de que el comando llegue a ejecutarse.
QUIZ RÁPIDO
¿Qué diferencia a un hook de una instrucción normal en el prompt?
FUENTES
- Claude Code Doku: Hooks (Referenz) ↗ code.claude.com
- Claude Code Doku: Get Started with Hooks ↗ code.claude.com