Les Hooks utilisent un schéma JSON défini dans des fichiers autonomes situés à .kiro/hooks/*.json. Cela remplace le format .kiro.hook de l'IDE précédent par un schéma structuré et validé, partagé avec la CLI — le même fichier de hook fonctionne sur toutes les surfaces.
{ "version": "v1", "hooks": [ { "name": "format-on-save", "trigger": "PostFileSave", "matcher": "\\.ts$", "action": { "type": "command", "command": "prettier --write {{filePath}}" } } ] }
| Champ | Requis | Description |
|---|---|---|
version | Oui | Version du schéma — actuellement "v1" |
hooks[].name | Oui | Identifiant unique du hook |
hooks[].trigger | Oui | Nom du déclencheur d'événement en PascalCase (voir le tableau ci-dessous) |
hooks[].matcher | Non | Motif regex comparé au sujet de l'événement |
hooks[].action.type | Oui | Type d'action : command ou agent |
hooks[].action.command | Cond. | Commande shell à exécuter (lorsque action.type: "command") |
hooks[].action.prompt | Cond. | Requête de l'agent à injecter (lorsque action.type: "agent") |
| Déclencheur | Se déclenche quand | Le matcher correspond à | Peut bloquer? |
|---|---|---|---|
SessionStart | La session commence | — | Non |
Stop | L'exécution de l'agent se termine | — | Non |
UserPromptSubmit | Vous envoyez un message | Le texte de la requête | Oui |
PreTaskExec | Avant le début d'une tâche de spec | — | Oui |
PostTaskExec | Après la fin d'une tâche de spec | — | Non |
PreToolUse | Avant l'exécution d'un outil | Le nom de l'outil | Oui |
PostToolUse | Après l'exécution d'un outil | Le nom de l'outil | Non |
PostFileCreate | Un nouveau fichier est créé par l'agent | Le chemin du fichier | Non |
PostFileSave | Un fichier est enregistré ou modifié par l'agent | Le chemin du fichier | Non |
PostFileDelete | Un fichier est supprimé par l'agent | Le chemin du fichier | Non |
Blocage : une action command qui se termine avec le code de sortie 2 bloque l'événement déclencheur (PreToolUse, UserPromptSubmit, PreTaskExec). Utilisez ceci pour l'application de politiques — par exemple, bloquer les écritures dans les fichiers *.env. Tout autre code de sortie non nul est traité comme une erreur, pas comme un blocage.
Les anciens noms de déclencheurs .kiro.hook correspondent directement aux nouveaux déclencheurs en PascalCase :
Ancien (when.type) | Nouveau (trigger) |
|---|---|
agentSpawn | SessionStart |
agentStop | Stop |
promptSubmit | UserPromptSubmit |
preToolUse | PreToolUse |
postToolUse | PostToolUse |
fileCreated | PostFileCreate |
fileEdited | PostFileSave |
fileDeleted | PostFileDelete |
preTaskExecution | PreTaskExec |
postTaskExecution | PostTaskExec |
userTriggered | Remplacé par des fichiers de steering manuels — voir ci-dessous |
Vos motifs regex se transfèrent directement; la structure when/then devient trigger/matcher/action. L'IDE migre les hooks pour vous : ouvrez le panneau Agent Hooks et cliquez sur l'insigne de mise à niveau sur chaque hook hérité.
Les hooks manuels (l'ancien déclencheur userTriggered) sont remplacés par des fichiers de steering manuels — des fichiers markdown dans .kiro/steering/ invoqués comme des commandes barre oblique /<filename>. Voir Steering.
command — exécute un sous-processus; reçoit le contexte JSON sur stdin. La variable de gabarit {{filePath}} est disponible pour les déclencheurs liés aux fichiers.agent — injecte une requête dans le contexte de l'agent au moment du déclenchement. Utilisez ceci pour ajouter du steering conditionnel (par exemple, « Un fichier de test a été enregistré — vérifiez la couverture »). Contrairement à command, cela ne peut pas bloquer le déclencheur.Pour la référence complète (sémantique des codes de sortie, charges utiles stdin, hooks globaux dans ~/.kiro/hooks/), voir Hooks.
Hooks