Nouveau avec Kiro CLI 3.0? Cette page couvre la migration des Hooks de CLI 2.x. Pour la référence actuelle du format des Hooks, consultez Hooks →.
Astuce : Exécutez d'abord
kiro-cli agent migrate— cette commande convertit automatiquement les Hooks vers le nouveau format et signale tous les triggers qu'elle n'a pas pu convertir.
Les Hooks ont été déplacés des champs intégrés dans la configuration de l'agent vers des fichiers autonomes .kiro/hooks/*.json avec un schéma JSON versionné. Renommez les clés de vos triggers à l'aide du tableau ci-dessous, puis déplacez les définitions vers un nouveau fichier.
Les Hooks étaient intégrés directement dans la configuration de l'agent :
{ "hooks": { "agentSpawn": [{"command": "echo 'starting'", "matcher": ".*"}], "preToolUse": [{"command": "npm run lint", "matcher": "Write|Edit"}], "fileEdited": [{"command": "prettier --write", "matcher": "\\.ts$"}] } }
Chaque fichier de Hooks est un fichier autonome .kiro/hooks/*.json :
{ "version": "v1", "hooks": [ { "name": "lint-on-save", "trigger": "PostFileSave", "matcher": "\\.ts$", "action": { "type": "command", "command": "npm run lint" }, "timeout": 30, "enabled": true }, { "name": "format-on-save", "trigger": "PostFileSave", "matcher": "\\.ts$", "action": { "type": "command", "command": "prettier --write {{filePath}}" }, "timeout": 10, "enabled": true } ] }
La syntaxe du matcher est inchangée — les motifs regex de la version 2.x se transfèrent directement. La variable de gabarit {{filePath}} est nouvelle en 3.0 et n'est disponible que dans le nouveau format.
| Trigger | Se déclenche quand | Le matcher correspond à | Peut bloquer? |
|---|---|---|---|
SessionStart | La session commence | — | Non |
Stop | La session se termine | — | Non |
PreToolUse | Avant l'exécution d'un outil | Nom de l'outil (regex) | Oui |
PostToolUse | Après l'exécution d'un outil | Nom de l'outil (regex) | Non |
PreTaskExec | Avant le début d'une tâche d'un Spec | — | Oui |
PostTaskExec | Après la fin d'une tâche d'un Spec | — | Non |
UserPromptSubmit | L'utilisateur soumet une requête | — | Oui |
PostFileCreate | Après la création d'un fichier par l'agent | Chemin du fichier (regex) | Non |
PostFileSave | Après l'enregistrement/la modification d'un fichier par l'agent | Chemin du fichier (regex) | Non |
PostFileDelete | Après la suppression d'un fichier par l'agent | Chemin du fichier (regex) | Non |
Manual | Déclenché à la demande de l'utilisateur | — | Non |
Anciens noms de triggers (correspondance 2.x → 3.0) :
| Ancien trigger | Nouveau trigger | Notes |
|---|---|---|
agentSpawn | SessionStart | Se déclenche au début d'une nouvelle session |
userPromptSubmit | UserPromptSubmit | Se déclenche avant que l'agent traite une requête |
preToolUse | PreToolUse | Se déclenche avant l'exécution d'un outil |
postToolUse | PostToolUse | Se déclenche après qu'un outil se termine |
fileEdited | PostFileSave | Se déclenche après l'écriture d'un fichier |
fileCreated | PostFileCreate | Se déclenche après la création d'un nouveau fichier (alias héri de l'IDE, maintenant unifié) |
agentStop / stop | Stop | Se déclenche à la fin de la session — agentStop est un héritage de l'IDE; CLI utilisait stop |
Le champ matcher est un motif regex, mais ce à quoi il correspond dépend du trigger :
| Trigger | Le matcher correspond à |
|---|---|
PostFileSave, PostFileCreate, PostFileDelete | Chemin du fichier (p. ex., \\.ts$, src/.*) |
PreToolUse, PostToolUse | Nom de l'outil (p. ex., write, shell, write|read) |
UserPromptSubmit | Contenu du texte de la requête |
SessionStart, Stop, PreTaskExec, PostTaskExec, Manual | Non évalué — le Hook se déclenche toujours |
Les motifs regex de CLI 2.x se transfèrent directement. La variable de gabarit {{filePath}} n'est disponible que dans le nouveau format pour les triggers liés aux fichiers.
Une fois vos fichiers dans .kiro/hooks/, Kiro les détecte automatiquement. Consultez la référence complète des Hooks → pour les détails du schéma et les types d'actions avancés.
Migration des Hooks