Les hooks vous permettent d’exécuter une logique personnalisée en réaction à des événements du cycle de vie de l’agent. Vous pouvez utiliser des hooks pour appliquer des politiques, ajouter du contexte, consigner des actions, modifier des autorisations ou vous intégrer à des systèmes externes. Devin CLI utilise un format de hooks compatible avec les hooks de Claude Code. Si vous avez déjà des hooks configurés pour Claude Code, ils fonctionneront automatiquement avec 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.
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
| Événement | Quand il se déclenche |
|---|---|
PreToolUse | Avant l’exécution d’un outil |
PostToolUse | Après l’exécution d’un outil |
PermissionRequest | Lorsqu’une décision d’autorisation est requise |
UserPromptSubmit | Lorsque l’utilisateur envoie un message |
Stop | Lorsque l’agent souhaite s’arrêter |
SessionStart | Lorsqu’une session démarre |
SessionEnd | Lorsqu’une session se termine |
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 :
| Champ | Description |
|---|---|
matcher | Expression régulière appliquée à tool_name de l’événement de hook. Une chaîne vide ou l’absence de matcher correspond à tous les noms d’outil. |
type | "command" pour exécuter une commande shell, ou "prompt" pour évaluer un prompt de LLM. |
command | Commande shell à exécuter (pour le type command). |
prompt | Prompt de LLM à évaluer (pour le type prompt). |
timeout | Délai d’expiration en secondes (facultatif). |
Hooks de commande
| Champ de sortie | Description |
|---|---|
decision | "approve", "block" ou "deny" |
reason | Explication affichée à l’agent |
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.
Codes de sortie
| Code | Signification |
|---|---|
| 0 | Succès — le hook continue normalement |
| 2 | Blocage — l’action est refusée |
| Autre | Erreur — consignée dans les logs, mais ne bloque pas |
Où se trouvent les hooks
Au niveau du projet
| Emplacement | Description |
|---|---|
.devin/hooks.v1.json | Fichier de hooks autonome (recommandé) |
.devin/config.json | Clé "hooks" dans le fichier de configuration |
.devin/config.local.json | Clé "hooks" (surcharge locale, ignorée par Git) |
.claude/settings.json | Clé "hooks" (format Claude Code) |
.claude/settings.local.json | Clé "hooks" (format Claude Code) |
Niveau utilisateur (global)
| Emplacement | Description |
|---|---|
~/.config/devin/config.json (%APPDATA%\devin\config.json sous Windows) | Clé "hooks" dans la configuration utilisateur |
~/.claude.json | Clé "hooks" (format Claude Code) |
~/.claude/settings.json | Clé "hooks" (format Claude Code) |
~/.claude/settings.local.json | Clé "hooks" (format Claude Code) |
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
Hooks du cycle de vie
Découvrez en détail chaque type d’événement et les données disponibles.
Documentation des hooks de Claude Code
Référence complète du format des hooks.
