.devin/ de votre projet (ou dans une configuration niveau utilisateur), et Devin CLI les exécute lors des événements correspondants du cycle de vie. Les hooks existants dans les répertoires .claude/ sont également détectés automatiquement — voir Où se trouvent les hooks.
Que peuvent faire les hooks ?
Appliquer des politiques
Bloquer les commandes dangereuses, exiger une confirmation pour des actions spécifiques ou restreindre l’accès aux fichiers.
Ajouter du contexte
Injecter des instructions ou des informations supplémentaires lorsque des outils spécifiques sont appelés.
Déclencher des effets secondaires
Exécuter des scripts, envoyer des notifications ou consigner des événements lors de certains événements.
Modifier les autorisations
Accorder ou restreindre dynamiquement les autorisations selon la situation.
Exemple rapide
.devin/hooks.v1.json dans votre projet :
./scripts/check-command.sh est exécuté avant chaque exécution de commande shell. Le script reçoit les données d’événement via stdin et peut bloquer l’opération en renvoyant un code de sortie non nul.
Événements des hooks
Consultez les hooks de cycle de vie pour en savoir plus sur chaque événement et les données disponibles associées.
Format des hooks
command ou prompt), un matcher facultatif (une regex appliquée au tool_name de l’événement du hook) et une configuration :
Hooks de commande
DEVIN_PROJECT_DIR est automatiquement définie sur le répertoire racine du projet.
Consultez Utiliser le Matcher pour connaître les noms des outils intégrés et le format des noms d’outils MCP sur lesquels vous pouvez effectuer une correspondance.
Format de sortie
decision à la racine (avec un champ reason facultatif) :
additionalContext dans un objet hookSpecificOutput identifié par le nom de l’événement :
updatedInput dans un objet hookSpecificOutput identifié par PreToolUse. Les champs de updatedInput sont fusionnés avec les arguments de l’outil, vous pouvez donc en mettre à jour un sous-ensemble (p. ex. seulement command) :
Codes de sortie
Où se trouvent les hooks
Au niveau du projet
Niveau utilisateur (global)
Dans
.devin/hooks.v1.json, l’objet hooks correspond à l’intégralité du fichier (sans clé enveloppante). Dans tous les autres emplacements, les hooks sont imbriqués sous la clé "hooks" dans un fichier de configuration.Les hooks issus des chemins
.claude/ sont chargés lorsque read_config_from.claude est activé (par défaut). Vous pouvez désactiver ce comportement dans votre configuration utilisateur si nécessaire.Vérifier les hooks
/hooks pour afficher tous les hooks actuellement chargés ainsi que leurs fichiers sources :
Étapes suivantes
hook de cycle de vie
Découvrez en détail chaque type d’événement et les données disponibles.
Configuration
Contrôlez les emplacements de configuration depuis lesquels Devin CLI lit les hooks.

