Hooks
Todo lo que has aprendido en este curso —el archivo CLAUDE.md, las Habilidades, las instrucciones del prompt— tiene una limitación: Claude puede ignorarlo. Los Hooks, no. Son la única herramienta de Claude Code que siempre se ejecuta, sin excepciones.
🌐 Este vídeo es el original de Anthropic, en inglés. Para seguirlo en español, dale al play al audio 🎬 «Sigue el vídeo en español» de aquí abajo — es la traducción exacta de lo que se dice.
Sigue el vídeo en español
Escucha la lección
¿Por qué usar Hooks?
Puedes pedirle a Claude en el CLAUDE.md que ejecute Prettier después de cada edición. La mayoría de las veces lo hará. Pero a veces no. Un Hook lo hace ocurrir siempre, sin falta.
Casos de uso habituales:
- ›Formateo automático después de editar archivos.
- ›Registro de todos los comandos ejecutados para cumplimiento normativo.
- ›Bloqueo de operaciones peligrosas, como modificar archivos de producción.
- ›Notificaciones para avisarte cuando Claude termina una tarea.
Cómo funcionan
Los Hooks se configuran en settings.json. Eliges un evento, opcionalmente defines un matcher para indicar a qué herramientas aplica, y proporcionas el comando a ejecutar.

Estos son los eventos disponibles:
| Evento | Cuándo se ejecuta |
|---|---|
| PreToolUse | Antes de que Claude llame a una herramienta |
| PostToolUse | Después de que una herramienta completa su ejecución |
| UserPromptSubmit | Cuando envías un prompt, antes de que Claude lo procese |
| Stop | Cuando Claude termina de responder |
| Notification | Cuando Claude envía una notificación |
Puedes configurarlos con el comando /hooks dentro de Claude Code, o editando settings.json directamente.
PostToolUse — el Hook más útil
El caso más común: el formateo automático después de editar archivos. Configura un PostToolUse con el matcher Edit · MultiEdit · Write para que se active siempre que Claude modifique un archivo. El comando comprueba la extensión del archivo y ejecuta el formateador adecuado: Prettier para TypeScript, gofmt para Go, lo que uses en tu proyecto.
PreToolUse — para bloquear operaciones
Los Hooks de PreToolUse pueden bloquear una llamada a herramienta antes de que se ejecute. El Hook recibe el nombre de la herramienta y sus parámetros como JSON, y el código de salida decide qué ocurre:
- ›Código 0 — procede con normalidad.
- ›Código 2 — bloquea la acción. El mensaje de error se devuelve a Claude para que sepa por qué fue bloqueado y pueda ajustarse.
- ›Cualquier otro código — error no bloqueante: se muestra al usuario, pero no detiene la ejecución.

Así es como impones reglas absolutas: bloquear escrituras en directorios de producción, bloquear comandos con rm -rf, bloquear commits directos a main. Lo que tu equipo necesite garantizar, no solo sugerir.
Compartir Hooks con el equipo
Los Hooks configurados en .claude/settings.json son de nivel de proyecto y puedes incluirlos en el repositorio. Todo el equipo los obtiene automáticamente al clonar.
Usa la variable de entorno CLAUDE_PROJECT_DIR en tus comandos para referenciar scripts guardados en el proyecto, así funcionan independientemente del directorio de trabajo actual de Claude.
En una frase: si algo necesita ocurrir siempre, sin excepción, no lo pongas en un prompt. Ponlo en un Hook.
¿No programas? Te lo explico fácil · sin tecnicismos
Escucha la explicación sencilla
Esta lección es bastante técnica, así que te la cuento con un ejemplo de andar por casa.
Imagina que Claude Code es un ayudante muy bueno, pero con mucho trabajo. Puedes pedirle las cosas de dos maneras:
Pedírselo de palabra
Como decirle a alguien "acuérdate de apagar la luz al salir". Lo hará casi siempre... pero algún día, con prisas, se le olvidará. Eso es lo que pasa cuando escribes una norma en el CLAUDE.md o en tus instrucciones: es una petición, y se puede ignorar.
Poner un automatismo
Como un sensor que apaga la luz solo cada vez que sales. Da igual si va con prisa: ocurre siempre. Eso es un Hook.
¿Para qué sirve en la práctica?
- ›Que el código se ordene solo cada vez que se toca un archivo (como recoger la cocina automáticamente después de cocinar).
- ›Que se bloquee una acción peligrosa antes de que ocurra (como una tapa de seguridad que no te deja pulsar el botón rojo sin querer).
- ›Que te avise cuando termina una tarea.
La idea que de verdad importa
Si una cosa tiene que pasar siempre, sí o sí, no se la pidas de palabra: ponla en un Hook. Lo de palabra es una sugerencia; un Hook es una garantía.
No necesitas saber programarlos para entender la idea: los Hooks son las normas que Claude no puede saltarse.
Glosario
Hook
Comando que se ejecuta automáticamente en un evento del ciclo de vida de Claude Code (PreToolUse, PostToolUse, Stop…), de forma determinista: siempre se ejecuta.
Una orden que se ejecuta sola y siempre, sin que tengas que acordarte. Como el sensor que apaga la luz cada vez que sales.
settings.json
Archivo en formato JSON, dentro de la carpeta .claude, donde defines la configuración de Claude Code: hooks, permisos, modelo, etc.
El archivo de "ajustes" de Claude Code, como la pantalla de preferencias de una app.
Evento (PreToolUse, PostToolUse…)
Punto concreto del ciclo de vida en el que se dispara un hook: antes de usar una herramienta, después, al enviar un prompt, al terminar de responder…
El momento exacto en el que quieres que salte la orden automática: antes de hacer algo, después, al terminar…
Matcher
Filtro opcional que indica a qué herramientas se aplica un hook (por ejemplo, Edit, MultiEdit o Write).
Una condición para decir "esto solo cuando pase tal cosa" (por ejemplo, solo cuando se edita un archivo).
Código de salida
Número que devuelve un comando al terminar. En un hook de PreToolUse: 0 deja continuar, 2 bloquea la acción, y otro valor avisa sin bloquear.
La forma que tiene la orden de decir "todo bien, sigue" (0) o "para, esto no" (2). Como un semáforo.
Formateador (Prettier, gofmt…)
Herramienta que ordena automáticamente el código con un estilo consistente: sangrías, espacios, comillas.
Un "corrector de estilo" que deja el código ordenado y bonito sin que tú lo toques.
Repositorio (repo)
Carpeta de un proyecto bajo control de versiones (Git) con todo su historial de cambios; el equipo la comparte al clonarla.
La carpeta de tu proyecto guardada con su historial, que tu equipo comparte. Si pones ahí los Hooks, los recibe todo el mundo.
Fuentes oficiales de Anthropic
