.devin/ de tu proyecto (o en una configuración a nivel de usuario) y Devin CLI los ejecutará en los eventos del ciclo de vida que correspondan. Los hooks existentes en los directorios .claude/ también se detectan automáticamente — consulta Dónde se encuentran los hooks.
¿Qué pueden hacer los Hooks?
Aplicar políticas
Bloquear comandos peligrosos, exigir confirmación para acciones específicas o restringir el acceso a archivos.
Agregar contexto
Inyectar instrucciones o información adicional cuando se llaman herramientas específicas.
Ejecutar efectos secundarios
Ejecutar scripts, enviar notificaciones o registrar eventos cuando ocurren.
Modificar permisos
Otorgar o restringir permisos dinámicamente según la situación.
Ejemplo rápido
.devin/hooks.v1.json en tu proyecto:
./scripts/check-command.sh antes de ejecutar cada comando de shell. El script recibe los datos del evento por stdin y puede impedir la ejecución devolviendo un código de salida distinto de cero.
Eventos de hooks
Consulta Hooks del ciclo de vida para obtener más información sobre cada evento y los datos disponibles.
Formato de los hooks
command o prompt), un matcher opcional (una regex sobre el tool_name del evento del hook) y una configuración:
Hooks de comando
DEVIN_PROJECT_DIR se establece automáticamente como el directorio raíz del proyecto.
Consulta Cómo usar el Matcher para conocer los nombres de las herramientas integradas y el formato de nombre de herramienta de MCP con los que puedes hacer coincidencias.
Formato de salida
decision en el nivel superior (con un reason opcional):
additionalContext dentro de un objeto hookSpecificOutput identificado con el nombre del evento:
updatedInput dentro de un hookSpecificOutput de PreToolUse. Los campos de updatedInput se combinan con los argumentos de la herramienta, por lo que puedes actualizar un subconjunto (p. ej., solo command):
Códigos de salida
Dónde se encuentran los hooks
Nivel de proyecto
A nivel de usuario (global)
En
.devin/hooks.v1.json, el objeto hooks es el archivo completo (no se necesita una clave contenedora). En todas las demás ubicaciones, hooks está anidado bajo la clave "hooks" dentro de un archivo de configuración.Los hooks de las rutas
.claude/ se cargan cuando read_config_from.claude está habilitado (de forma predeterminada). Si es necesario, puedes desactivarlo en tu configuración de usuario.Verificar hooks
/hooks para ver todos los hooks cargados actualmente y sus archivos de origen:
Próximos pasos
Hooks del ciclo de vida
Profundiza en cada tipo de evento y en qué datos hay disponibles.
Configuración
Controla de qué ubicaciones de configuración lee los hooks Devin CLI.

