Los hooks te permiten ejecutar lógica personalizada en respuesta a eventos del ciclo de vida del agente. Puedes usar hooks para aplicar políticas, agregar contexto, registrar acciones, modificar permisos o integrarlos con sistemas externos. Devin CLI usa un formato de hooks compatible con los hooks de Claude Code. Si ya tienes hooks configurados para Claude Code, funcionarán automáticamente con Devin CLI.Documentation Index
Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
Use this file to discover all available pages before exploring further.
¿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
| Evento | Cuándo se activa |
|---|---|
PreToolUse | Antes de que se ejecute una herramienta |
PostToolUse | Después de que una herramienta termine |
PermissionRequest | Cuando se requiere una decisión sobre permisos |
UserPromptSubmit | Cuando el usuario envía un mensaje |
Stop | Cuando el agente quiere detenerse |
SessionStart | Cuando comienza una sesión |
SessionEnd | Cuando termina una sesión |
Formato de los hooks
command o prompt), un matcher opcional (una regex sobre el tool_name del evento del hook) y una configuración:
| Campo | Descripción |
|---|---|
matcher | Expresión regular que se compara con tool_name del evento del hook. Una cadena vacía o la omisión de matcher coincide con todos los nombres de herramientas. |
type | "command" para ejecutar un comando de shell, o "prompt" para evaluar un prompt de LLM. |
command | Comando de shell que se debe ejecutar (para el tipo command). |
prompt | Prompt de LLM que se debe evaluar (para el tipo prompt). |
timeout | Tiempo de espera en segundos (opcional). |
Hooks de comando
| Campo de salida | Descripción |
|---|---|
decision | "approve", "block" o "deny" |
reason | Explicación que se muestra al agente |
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.
Códigos de salida
| Código | Significado |
|---|---|
| 0 | Éxito — el hook continúa con normalidad |
| 2 | Bloqueo — la acción se deniega |
| Otro | Error — se registra, pero no bloquea |
Dónde se encuentran los hooks
Nivel de proyecto
| Ubicación | Descripción |
|---|---|
.devin/hooks.v1.json | Archivo de hooks independiente (recomendado) |
.devin/config.json | clave "hooks" en el archivo de configuración |
.devin/config.local.json | clave "hooks" (anulación local, incluida en .gitignore) |
.claude/settings.json | clave "hooks" (formato de Claude Code) |
.claude/settings.local.json | clave "hooks" (formato de Claude Code) |
A nivel de usuario (global)
| Ubicación | Descripción |
|---|---|
~/.config/devin/config.json (%APPDATA%\devin\config.json en Windows) | clave "hooks" en la configuración del usuario |
~/.claude.json | clave "hooks" (formato de Claude Code) |
~/.claude/settings.json | clave "hooks" (formato de Claude Code) |
~/.claude/settings.local.json | clave "hooks" (formato de Claude Code) |
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.
Documentación de Claude Code Hooks
Referencia completa sobre el formato de los hooks.
