Cette page documente le comportement de la CLI 2.x pour les utilisateurs qui n'ont pas encore migré vers la version 3.0. Pour le format actuel, consultez la documentation des Features.
Dans la CLI 2.x, les Hooks étaient intégrés directement dans le fichier de configuration de l'agent plutôt que dans des fichiers autonomes.
{ "hooks": { "agentSpawn": [{"command": "echo 'starting'", "matcher": ".*"}], "preToolUse": [{"command": "npm run lint", "matcher": "Write|Edit"}], "fileEdited": [{"command": "prettier --write", "matcher": "\\.ts$"}] } }
Chaque nom de déclencheur correspond à un tableau de définitions de Hooks. Chaque définition comporte :
| Champ | Description |
|---|---|
command | Commande shell à exécuter |
matcher | Motif d'expression régulière pour le filtrage (ce qu'il vise dépend du déclencheur) |
| Déclencheur | Se déclenche quand | matcher correspond à |
|---|---|---|
agentSpawn | L'agent est activé | Non évalué |
userPromptSubmit | L'utilisateur envoie une requête | Non évalué |
preToolUse | Avant qu'un outil s'exécute | Nom de l'outil |
postToolUse | Après qu'un outil s'exécute | Nom de l'outil |
fileEdited | Après qu'un fichier est écrit | Chemin du fichier |
fileCreated | Après qu'un nouveau fichier est créé | Chemin du fichier |
agentStop / stop | La session se termine | Non évalué |
Les Hooks reçoivent le contexte en JSON via STDIN et communiquent les résultats via des codes de sortie :
.kiro/hooks/*.jsonagentSpawn → SessionStart)version: "v1" avec les champs name, description, enabled et timeoutPreTaskExec, PostTaskExec, PostFileDelete, Manual{{filePath}} disponible pour les déclencheurs liés aux fichiersstop a obtenu la prise en charge de la décision de blocage (retournez {"decision": "block"} pour poursuivre la session)Pour le guide de migration complet, consultez Hooks migration.
Dans la CLI 2.x, les permissions des outils étaient gérées par des indicateurs de la CLI, des commandes slash et des paramètres par outil dans la configuration de l'agent. Dans la version 3.0, ceci est remplacé par des fichiers permissions.yaml structurés.
kiro-cli --trust-all-tools kiro-cli --trust-tools shell,write
| Commande | Description |
|---|---|
/tools | Affiche l'état de permission actuel pour tous les outils |
/tools trust <tool> | Accorde la confiance à un outil précis pour la session |
/tools untrust <tool> | Ramène un outil à la confirmation par requête |
/tools trust-all | Accorde la confiance à tous les outils (équivalent à /acceptall) |
/tools reset | Réinitialise toutes les permissions d'exécution aux valeurs par défaut |
{ "toolsSettings": { "shell": { "allowedCommands": ["git *", "npm *"], "deniedCommands": ["rm -rf *", "sudo *"] }, "read": { "allowedPaths": ["src/**"], "deniedPaths": ["*.env"] } } }
| Paramètre | Description |
|---|---|
allowedCommands | Motifs d'expression régulière pour les commandes shell approuvées automatiquement |
deniedCommands | Motifs d'expression régulière pour les commandes shell bloquées |
allowedPaths | Motifs d'expression régulière pour les chemins de fichiers approuvés automatiquement |
deniedPaths | Motifs d'expression régulière pour les chemins de fichiers bloqués |
autoAllowReadonly | Approuve automatiquement les commandes shell en lecture seule (p. ex., git status) |
denyByDefault | Bloque tous les outils sauf ceux explicitement autorisés |
Lorsque l'agent demandait une commande shell, un sélecteur à paliers apparaissait :
Press (↑↓) to navigate (⏎) to select scope > Full command → git pull --rebase Partial command → git pull * Base command → git * Entire Tool → *
Les motifs de confiance persistaient pendant la session et étaient stockés comme expressions régulières dans allowedCommands.
Lorsque l'agent devait accéder à un fichier hors du répertoire de travail :
Press (↑↓) to navigate (⏎) to select scope > Specific paths → ~/.config/app/settings.json Complete directory → ~/.config/app Entire Tool → *
toolsSettings remplacé par permissions.yaml avec des règles capability/match/effect--trust-all-tools fonctionne toujours comme substitution à l'échelle de la session, mais permissions.yaml est privilégié.* → *, \.ts$ → *.ts)autoAllowReadonly supprimé — indiquez explicitement les commandes autoriséesdenyByDefault supprimé — utilisez plutôt des motifs exclude/tools sont toujours disponibles pour la gestion au niveau de la sessionPour le guide de migration complet, consultez Permissions migration.
Dans la CLI 2.x, le comportement du compactage était le même que dans la version 3.0 :
/compact pour un déclenchement manuel/chat resumecompaction.excludeMessages et compaction.excludeContextWindowPercentAucun changement dans la version 3.0 pour cette fonctionnalité.
Dans la CLI 2.x, les configurations d'agent étaient uniquement en JSON, avec toolsSettings et hooks intégrés.
.kiro/agents/my-agent.json :
{ "name": "my-agent", "description": "A development agent", "prompt": "file://resources/MY_PROMPT.md", "model": "claude-sonnet-4", "tools": ["fs_read", "fs_write", "execute_bash", "grep", "glob", "code"], "toolsSettings": { "execute_bash": { "allowedCommands": ["^git status$", "^cargo build[^&;]*$"], "deniedCommands": ["^rm -rf"], "denyByDefault": false }, "fs_read": { "allowedPaths": ["src/**", "docs/**"], "deniedPaths": [".env", "secrets/**"] }, "fs_write": { "allowedPaths": ["src/**"], "deniedPaths": ["*.lock"] } }, "resources": ["file://AGENTS.md"], "hooks": { "agentSpawn": [{ "command": "git status", "description": "Add git context" }] }, "welcomeMessage": "Hello! How can I help?" }
.md avec en-tête YAML + corps comme requête système)toolsSettings supprimé — remplacé par le champ permissions avec des règles fondées sur les capacitéshooks déplacés vers des fichiers autonomes .kiro/hooks/*.jsonexcludedTools, includeMcpJson, includePowers, permissions, welcomeMessageread, write, shell, web, @mcp, @builtin, *)resources prend maintenant en charge les URI skill:// en plus de file://Pour la référence du format actuel, consultez Custom agents.
Référence de la CLI 2.x