SpyBara
Go Premium

Documentation 2026-09-29 23:58 UTC to 2026-09-30 02:58 UTC

31 files changed +406 −223. View all changes and history on the product overview
2026
Wed 30 05:58 Tue 29 23:58 Mon 28 22:59 Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02
Details

163 La charge utile arrive dans le contexte de Claude en tant que balise `<channel>` :163 La charge utile arrive dans le contexte de Claude en tant que balise `<channel>` :

164 164 

165 ```text theme={null}165 ```text theme={null}

166 <channel source="webhook" path="/" method="POST">build failed on main: https://ci.example.com/run/1234</channel>166 <channel source="webhook" path="/" method="POST">

167 build failed on main: https://ci.example.com/run/1234

168 </channel>

167 ```169 ```

168 170 

169 Votre terminal affiche l'événement sous la forme d'un résumé d'une ligne, `← webhook: build failed on main: https://ci.example.com/run/1234`, plutôt que la balise brute. Vous verrez ensuite Claude commencer à répondre : lire des fichiers, exécuter des commandes, ou tout ce que le message demande. C'est un canal unidirectionnel, donc Claude agit dans votre session mais ne renvoie rien via le webhook. Pour ajouter des réponses, consultez [Exposer un outil de réponse](#expose-a-reply-tool).171 Votre terminal affiche l'événement sous la forme d'un résumé d'une ligne, `← webhook: build failed on main: https://ci.example.com/run/1234`, plutôt que la balise brute. Vous verrez ensuite Claude commencer à répondre : lire des fichiers, exécuter des commandes, ou tout ce que le message demande. C'est un canal unidirectionnel, donc Claude agit dans votre session mais ne renvoie rien via le webhook. Pour ajouter des réponses, consultez [Exposer un outil de réponse](#expose-a-reply-tool).

chrome.md +1 −1

Details

117 Gérer les autorisations du site117 Gérer les autorisations du site

118</h3>118</h3>

119 119 

120Les autorisations au niveau du site sont héritées de l'extension Chrome. Gérez les autorisations dans les paramètres de l'extension Chrome pour contrôler les sites que Claude peut parcourir, cliquer et taper.120Les autorisations au niveau du site sont héritées de l'extension Chrome. Gérez les autorisations dans les paramètres de l'extension Chrome pour contrôler les sites que Claude peut parcourir, cliquer et taper. En [mode automatique](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode), lorsque le classificateur du mode automatique lui-même approuve un appel de navigateur à un site, l'extension ignore sa propre vérification par site pour cet appel, sauf si vos règles de permission refusent tout site à Claude dans Chrome.

121 121 

122<h3 id="browser-tools-in-plan-mode">122<h3 id="browser-tools-in-plan-mode">

123 Outils du navigateur en mode plan123 Outils du navigateur en mode plan

Details

362 362 

363Les machines qui exécutent uniquement Claude Desktop en ont besoin. Claude Desktop applique la liste des modèles et la liste des outils désactivés aux sessions intégrées elle-même, mais la liste d'autorisation de sortie ne les atteint que comme paramètres parents, sous la forme de règles de domaine `WebFetch` et de règles de réseau sandbox. Sans l'opt-in, ces sessions s'exécutent sans la restriction de sortie, et rien ne vous avertit. La passerelle rejette toujours les demandes d'inférence pour les modèles que la politique n'accorde pas.363Les machines qui exécutent uniquement Claude Desktop en ont besoin. Claude Desktop applique la liste des modèles et la liste des outils désactivés aux sessions intégrées elle-même, mais la liste d'autorisation de sortie ne les atteint que comme paramètres parents, sous la forme de règles de domaine `WebFetch` et de règles de réseau sandbox. Sans l'opt-in, ces sessions s'exécutent sans la restriction de sortie, et rien ne vous avertit. La passerelle rejette toujours les demandes d'inférence pour les modèles que la politique n'accorde pas.

364 364 

365Une liste d'autorisation de marché de plugins atteint également les sessions intégrées uniquement comme paramètres parents. Quand vous désactivez les marchés de plugins ajoutés par l'utilisateur dans la configuration gérée de Claude Desktop, Claude Desktop 2.16120.0 ou ultérieur masque les marchés que votre organisation n'a pas provisionné et refuse les installations à partir d'eux. Pour empêcher les sessions intégrées de charger les plugins déjà installés à partir de ces marchés, il leur envoie une liste `strictKnownMarketplaces` comme paramètres parents. Sans l'opt-in, Claude Code ignore cette liste, et ces plugins continuent de charger.

366 

365Les machines où les développeurs se connectent via `/login` n'en ont pas besoin ; chaque session Claude Code récupère sa politique auprès de la passerelle.367Les machines où les développeurs se connectent via `/login` n'en ont pas besoin ; chaque session Claude Code récupère sa politique auprès de la passerelle.

366 368 

367Les flottes dont [`policyHelper`](/docs/fr/settings-reference#policyhelper) fournit des paramètres gérés ne peuvent pas l'utiliser : Claude Code ne fusionne jamais les paramètres parents sur ces flottes, car il lit les paramètres gérés à partir de la sortie du helper seule.369Les flottes dont [`policyHelper`](/docs/fr/settings-reference#policyhelper) fournit des paramètres gérés ne peuvent pas l'utiliser : Claude Code ne fusionne jamais les paramètres parents sur ces flottes, car il lit les paramètres gérés à partir de la sortie du helper seule.


457* **`forceLoginOrgUUID`** : Claude Code honore une valeur fournie par le parent quand la source d'administrateur de plus haute priorité ne définit pas un UUID d'organisation. La connexion à la passerelle ne vérifie pas cette clé. Un UUID d'organisation dans la source d'administrateur de plus haute priorité bloque la valeur du parent et est celui que Claude Code applique.459* **`forceLoginOrgUUID`** : Claude Code honore une valeur fournie par le parent quand la source d'administrateur de plus haute priorité ne définit pas un UUID d'organisation. La connexion à la passerelle ne vérifie pas cette clé. Un UUID d'organisation dans la source d'administrateur de plus haute priorité bloque la valeur du parent et est celui que Claude Code applique.

458* **`allowedMcpServers`** : Claude Code honore une liste d'autorisation fournie par le parent quand aucune liste d'administrateur n'est en vigueur. `allowManagedMcpServersOnly` ne la bloque pas, car le verrou applique quelle que soit la liste qui gagne comme valeur gérée, y compris une liste fournie par le parent quand aucune source d'administrateur n'en fournit une. Une liste dans la source d'administrateur de plus haute priorité bloque celle du parent et est la liste que Claude Code applique, donc définissez `allowedMcpServers` là, à côté du verrou. Avant v2.1.223, une valeur pour l'une ou l'autre clé dans toute source d'administrateur bloquait celle du parent.460* **`allowedMcpServers`** : Claude Code honore une liste d'autorisation fournie par le parent quand aucune liste d'administrateur n'est en vigueur. `allowManagedMcpServersOnly` ne la bloque pas, car le verrou applique quelle que soit la liste qui gagne comme valeur gérée, y compris une liste fournie par le parent quand aucune source d'administrateur n'en fournit une. Une liste dans la source d'administrateur de plus haute priorité bloque celle du parent et est la liste que Claude Code applique, donc définissez `allowedMcpServers` là, à côté du verrou. Avant v2.1.223, une valeur pour l'une ou l'autre clé dans toute source d'administrateur bloquait celle du parent.

459* **`availableModels`** : Claude Code honore une liste de modèles fournie par le parent quand la source gérée gagnante n'en définit pas. Si votre flotte restreint les modèles, définissez `availableModels` dans la source gagnante.461* **`availableModels`** : Claude Code honore une liste de modèles fournie par le parent quand la source gérée gagnante n'en définit pas. Si votre flotte restreint les modèles, définissez `availableModels` dans la source gagnante.

460* **`strictKnownMarketplaces`** : Claude Code honore une liste d'autorisation de marché de plugins fournie par le parent quand la source gérée gagnante n'en définit pas. Si votre flotte restreint les marchés, définissez `strictKnownMarketplaces` dans la source gagnante. Nécessite Claude Code v2.1.282 ou ultérieur.462* **`strictKnownMarketplaces`** : Claude Code honore une liste d'autorisation de marché de plugins fournie par le parent quand la source gérée gagnante n'en définit pas. Claude Desktop 2.16120.0 ou ultérieur envoie une quand sa configuration gérée désactive les marchés de plugins ajoutés par l'utilisateur. Si votre flotte restreint les marchés, définissez `strictKnownMarketplaces` dans la source gagnante. Nécessite Claude Code v2.1.282 ou ultérieur.

461* **`blockedMarketplaces`** : une liste de blocage de marché fournie par le parent passe et s'ajoute à toute liste de blocage qu'une source gérée définit, puisqu'une liste de blocage ne peut que restreindre davantage. Nécessite Claude Code v2.1.282 ou ultérieur.463* **`blockedMarketplaces`** : une liste de blocage de marché fournie par le parent passe et s'ajoute à toute liste de blocage qu'une source gérée définit, puisqu'une liste de blocage ne peut que restreindre davantage. Nécessite Claude Code v2.1.282 ou ultérieur.

462* **`strictPluginOnlyCustomization`** : cette clé passe le filtre indépendamment de tout verrou, et elle fait que Claude Code ignore la personnalisation propre du développeur, y compris les hooks protecteurs. Aucun verrou ne la bloque.464* **`strictPluginOnlyCustomization`** : cette clé passe le filtre indépendamment de tout verrou, et elle fait que Claude Code ignore la personnalisation propre du développeur, y compris les hooks protecteurs. Aucun verrou ne la bloque.

463 465 

Details

566 * platform.claude.com566 * platform.claude.com

567 * code.claude.com567 * code.claude.com

568 * claude.ai568 * claude.ai

569 * claude.com

570 * support.claude.com

571 * anthropic.com

572 * [www.anthropic.com](http://www.anthropic.com)

569 </Accordion>573 </Accordion>

570 574 

571 <Accordion title="Contrôle de version">575 <Accordion title="Contrôle de version">


596 * hub.docker.com600 * hub.docker.com

597 * [www.docker.com](http://www.docker.com)601 * [www.docker.com](http://www.docker.com)

598 * production.cloudflare.docker.com602 * production.cloudflare.docker.com

603 * production.cloudfront.docker.com

599 * download.docker.com604 * download.docker.com

600 * gcr.io605 * gcr.io

601 * \*.gcr.io606 * \*.gcr.io

commands.md +1 −1

Details

91| `/fast [on\|off]` | Basculer le [mode rapide](/docs/fr/fast-mode) activé ou désactivé. L'exécuter pendant que Claude répond et Claude Code bascule le mode rapide sans attendre la fin du tour, bien que le tour en cours se termine à sa vitesse d'origine. Avant la v2.1.242, Claude Code a décidé à partir d'un drapeau de fonctionnalité qu'il a récupéré d'Anthropic s'il fallait exécuter la commande en milieu de tour ou la mettre en file d'attente jusqu'à la fin du tour, et l'a toujours mise en file d'attente dans une session qui ne [récupère pas les drapeaux de fonctionnalité](/docs/fr/env-vars#features-that-need-feature-flag-fetching). La disponibilité en mode non interactif avec `-p` est limitée ; consultez [Basculer le mode rapide](/docs/fr/fast-mode#toggle-fast-mode). Nécessite Claude Code v2.1.205 ou ultérieur |91| `/fast [on\|off]` | Basculer le [mode rapide](/docs/fr/fast-mode) activé ou désactivé. L'exécuter pendant que Claude répond et Claude Code bascule le mode rapide sans attendre la fin du tour, bien que le tour en cours se termine à sa vitesse d'origine. Avant la v2.1.242, Claude Code a décidé à partir d'un drapeau de fonctionnalité qu'il a récupéré d'Anthropic s'il fallait exécuter la commande en milieu de tour ou la mettre en file d'attente jusqu'à la fin du tour, et l'a toujours mise en file d'attente dans une session qui ne [récupère pas les drapeaux de fonctionnalité](/docs/fr/env-vars#features-that-need-feature-flag-fetching). La disponibilité en mode non interactif avec `-p` est limitée ; consultez [Basculer le mode rapide](/docs/fr/fast-mode#toggle-fast-mode). Nécessite Claude Code v2.1.205 ou ultérieur |

92| `/feedback [report]` | Envoyer des commentaires sur les produits concernant Claude Code. Ouvre la même boîte de dialogue que [`/bug`](#all-commands), avec la même étape de consentement, les mêmes règles d'envoi et le même comportement en milieu de tour. Dans les sessions avec [commentaires rédigés par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior), `/feedback` sans argument ouvre plutôt la file d'attente des brouillons, où vous examinez, modifiez, envoyez ou rejetez les brouillons que Claude a mis en file d'attente ; la file d'attente inclut une option pour rédiger un nouveau rapport dans la boîte de dialogue. Avec un argument, et pour `/bug` toujours, la boîte de dialogue s'ouvre directement |92| `/feedback [report]` | Envoyer des commentaires sur les produits concernant Claude Code. Ouvre la même boîte de dialogue que [`/bug`](#all-commands), avec la même étape de consentement, les mêmes règles d'envoi et le même comportement en milieu de tour. Dans les sessions avec [commentaires rédigés par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior), `/feedback` sans argument ouvre plutôt la file d'attente des brouillons, où vous examinez, modifiez, envoyez ou rejetez les brouillons que Claude a mis en file d'attente ; la file d'attente inclut une option pour rédiger un nouveau rapport dans la boîte de dialogue. Avec un argument, et pour `/bug` toujours, la boîte de dialogue s'ouvre directement |

93| `/fewer-permission-prompts` | **[Skill](/docs/fr/skills#bundled-skills).** Analyser vos transcriptions pour les appels d'outils Bash et MCP en lecture seule courants, puis ajouter une liste d'autorisation priorisée au `.claude/settings.json` du projet pour réduire les invites de permission |93| `/fewer-permission-prompts` | **[Skill](/docs/fr/skills#bundled-skills).** Analyser vos transcriptions pour les appels d'outils Bash et MCP en lecture seule courants, puis ajouter une liste d'autorisation priorisée au `.claude/settings.json` du projet pour réduire les invites de permission |

94| `/focus` | Basculer la vue de focus, qui affiche uniquement votre dernière invite, un résumé d'appel d'outil d'une ligne avec les statistiques de diff de modification, et la réponse finale. Le résumé d'appel d'outil compte également les sous-agents lancés dans le tour et réduit les notifications de tâche en arrière-plan terminées en un seul décompte. La sélection persiste entre les sessions ; définissez [`viewMode`](/docs/fr/settings-reference#viewmode) dans les paramètres pour la remplacer. Disponible uniquement dans le [rendu plein écran](/docs/fr/fullscreen). L'[extension VS Code](/docs/fr/vs-code#use-the-prompt-box) offre sa propre vue Focus en tant que basculement du menu de commande, stockée en tant que paramètre d'extension, indépendant de `viewMode` |94| `/focus` | Basculer la vue de focus, qui affiche uniquement votre dernière invite, un résumé d'appel d'outil d'une ligne avec les statistiques de diff de modification, et la réponse finale. Le résumé d'appel d'outil compte également les sous-agents lancés dans le tour et réduit les notifications de tâche en arrière-plan terminées en un seul décompte. La sélection persiste entre les sessions ; définissez [`viewMode`](/docs/fr/settings-reference#viewmode) dans les paramètres pour la remplacer. Disponible uniquement dans le [rendu plein écran](/docs/fr/fullscreen). À partir d'un client [Remote Control](/docs/fr/remote-control), exécutez `/focus [on\|off]` pour activer ou désactiver la vue de focus pour la session actuelle uniquement, sans modifier votre sélection enregistrée ; cela nécessite Claude Code v2.1.281 ou ultérieur. L'[extension VS Code](/docs/fr/vs-code#use-the-prompt-box) offre sa propre vue Focus en tant que basculement du menu de commande, stockée en tant que paramètre d'extension, indépendant de `viewMode` |

95| `/fork [prompt]` | [Copier la conversation actuelle](/docs/fr/agent-view#copy-the-session-with-%2Ffork) dans une nouvelle session en arrière-plan et continuer à travailler ici. Passez une invite et la copie commence immédiatement à travailler dessus ; sans une, elle attend dans la vue agent pour sa première invite. Sauf lorsque la copie [modifie sur place](/docs/fr/agent-view#how-file-edits-are-isolated), Claude Code l'instruit de créer son propre worktree avant d'apporter des modifications de code ; l'instruction d'isolation nécessite Claude Code v2.1.221 ou ultérieur. Pour confier une tâche secondaire à un sous-agent dont le résultat revient dans cette conversation, utilisez `/subtask` ; pour basculer dans une copie vous-même, utilisez `/branch`. Nécessite Claude Code v2.1.212 ou ultérieur ; sur la v2.1.161 à la v2.1.211, et chaque fois que la [vue agent est désactivée](/docs/fr/agent-view#turn-off-agent-view), `/fork` démarre un [sous-agent forké](/docs/fr/sub-agents#fork-the-current-conversation) à la place |95| `/fork [prompt]` | [Copier la conversation actuelle](/docs/fr/agent-view#copy-the-session-with-%2Ffork) dans une nouvelle session en arrière-plan et continuer à travailler ici. Passez une invite et la copie commence immédiatement à travailler dessus ; sans une, elle attend dans la vue agent pour sa première invite. Sauf lorsque la copie [modifie sur place](/docs/fr/agent-view#how-file-edits-are-isolated), Claude Code l'instruit de créer son propre worktree avant d'apporter des modifications de code ; l'instruction d'isolation nécessite Claude Code v2.1.221 ou ultérieur. Pour confier une tâche secondaire à un sous-agent dont le résultat revient dans cette conversation, utilisez `/subtask` ; pour basculer dans une copie vous-même, utilisez `/branch`. Nécessite Claude Code v2.1.212 ou ultérieur ; sur la v2.1.161 à la v2.1.211, et chaque fois que la [vue agent est désactivée](/docs/fr/agent-view#turn-off-agent-view), `/fork` démarre un [sous-agent forké](/docs/fr/sub-agents#fork-the-current-conversation) à la place |

96| `/goal [condition\|clear]` | Définir un [objectif](/docs/fr/goal) : Claude continue de travailler entre les tours jusqu'à ce que la condition soit remplie ou l'objectif [s'efface pour une autre raison](/docs/fr/goal#how-evaluation-works). Sans argument, affiche l'objectif actuel ou le plus récemment atteint. `clear`, `stop`, `off`, `reset`, `none`, ou `cancel` supprime un objectif actif tôt |96| `/goal [condition\|clear]` | Définir un [objectif](/docs/fr/goal) : Claude continue de travailler entre les tours jusqu'à ce que la condition soit remplie ou l'objectif [s'efface pour une autre raison](/docs/fr/goal#how-evaluation-works). Sans argument, affiche l'objectif actuel ou le plus récemment atteint. `clear`, `stop`, `off`, `reset`, `none`, ou `cancel` supprime un objectif actif tôt |

97| `/heapdump` | Écrire un instantané de tas JavaScript et une ventilation de la mémoire vers `~/Desktop`, ou votre répertoire personnel sur Linux sans dossier Desktop, pour diagnostiquer une utilisation élevée de la mémoire. Joignez uniquement le fichier `-diagnostics.json` lors de la signalisation d'un problème de mémoire ; le `.heapsnapshot` contient votre conversation complète et vos identifiants, donc ne le partagez pas. [Masqué du menu de commande](#how-the-command-menu-matches-what-you-type) ; tapez-le en entier. Consultez [ce qu'il faut faire avec la sortie](/docs/fr/troubleshooting#high-cpu-or-memory-usage) |97| `/heapdump` | Écrire un instantané de tas JavaScript et une ventilation de la mémoire vers `~/Desktop`, ou votre répertoire personnel sur Linux sans dossier Desktop, pour diagnostiquer une utilisation élevée de la mémoire. Joignez uniquement le fichier `-diagnostics.json` lors de la signalisation d'un problème de mémoire ; le `.heapsnapshot` contient votre conversation complète et vos identifiants, donc ne le partagez pas. [Masqué du menu de commande](#how-the-command-menu-matches-what-you-type) ; tapez-le en entier. Consultez [ce qu'il faut faire avec la sortie](/docs/fr/troubleshooting#high-cpu-or-memory-usage) |

costs.md +2 −0

Details

96 96 

97Exécutez [`/insights`](/docs/fr/commands#all-commands) pour un rapport sur votre façon de travailler plutôt que sur le nombre de tokens que vous avez utilisés. Il analyse vos sessions récentes sur cette machine et écrit un rapport HTML couvrant ce sur quoi vous travaillez, les points de friction tels que les demandes mal comprises ou le code bogué, et les suggestions pour utiliser Claude Code plus efficacement. Une seule exécution analyse jusqu'à 200 sessions qu'il n'a pas vues auparavant et ignore les très courtes. Quand des sessions sont omises, l'en-tête du rapport affiche le nombre analysé avec le total entre parenthèses, par exemple `200 sessions (412 total)`.97Exécutez [`/insights`](/docs/fr/commands#all-commands) pour un rapport sur votre façon de travailler plutôt que sur le nombre de tokens que vous avez utilisés. Il analyse vos sessions récentes sur cette machine et écrit un rapport HTML couvrant ce sur quoi vous travaillez, les points de friction tels que les demandes mal comprises ou le code bogué, et les suggestions pour utiliser Claude Code plus efficacement. Une seule exécution analyse jusqu'à 200 sessions qu'il n'a pas vues auparavant et ignore les très courtes. Quand des sessions sont omises, l'en-tête du rapport affiche le nombre analysé avec le total entre parenthèses, par exemple `200 sessions (412 total)`.

98 98 

99Quand le [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) est disponible pour la session et que vos sessions récentes se sont exécutées principalement sans lui, le rapport peut également inclure une estimation du nombre de demandes de permission que le mode auto aurait pu gérer dans ces sessions.

100 

99Claude Code écrit le dernier rapport dans `~/.claude/usage-data/report.html` et enregistre une copie horodatée de chaque exécution dans le même répertoire, donc les rapports antérieurs ne sont pas écrasés. Claude Code supprime les rapports selon le même calendrier que le reste de vos données de session : au démarrage, il supprime les fichiers plus anciens que [`cleanupPeriodDays`](/docs/fr/claude-directory#cleaned-up-automatically), 30 jours par défaut.101Claude Code écrit le dernier rapport dans `~/.claude/usage-data/report.html` et enregistre une copie horodatée de chaque exécution dans le même répertoire, donc les rapports antérieurs ne sont pas écrasés. Claude Code supprime les rapports selon le même calendrier que le reste de vos données de session : au démarrage, il supprime les fichiers plus anciens que [`cleanupPeriodDays`](/docs/fr/claude-directory#cleaned-up-automatically), 30 jours par défaut.

100 102 

101Vous pouvez exécuter `/insights` sur n'importe quel plan et avec n'importe quel fournisseur. L'analyse s'exécute via le même fournisseur et le même compte que vos sessions régulières, et les tokens comptent par rapport à votre utilisation de plan ou d'API. Les sessions d'autres appareils et de claude.ai ne sont pas incluses.103Vous pouvez exécuter `/insights` sur n'importe quel plan et avec n'importe quel fournisseur. L'analyse s'exécute via le même fournisseur et le même compte que vos sessions régulières, et les tokens comptent par rapport à votre utilisation de plan ou d'API. Les sessions d'autres appareils et de claude.ai ne sont pas incluses.

desktop.md +6 −0

Details

834* **Remote Control** : activez ou désactivez [Remote Control](/docs/fr/remote-control) pour votre organisation834* **Remote Control** : activez ou désactivez [Remote Control](/docs/fr/remote-control) pour votre organisation

835* **Désactiver le mode Contourner les permissions** : empêchez les utilisateurs de votre organisation d'activer le mode de contournement des permissions835* **Désactiver le mode Contourner les permissions** : empêchez les utilisateurs de votre organisation d'activer le mode de contournement des permissions

836 836 

837<Note>

838 Le formulaire OpenTelemetry pour Cowork sous **Monitoring** dans les [paramètres de données et de confidentialité](https://claude.ai/admin-settings/data-privacy-controls) de la console d'administration s'applique uniquement aux sessions Cowork. Dans une session Cowork sur cette machine, l'application de bureau transmet ce collecteur à Claude Code en tant que variables d'environnement `OTEL_*`, de sorte que le formulaire prend effet même si Claude Code dans cette session [ne récupère jamais les paramètres de la console d'administration](#managed-settings).

839 

840 Pour exporter la télémétrie à partir des sessions de l'onglet Code, définissez `CLAUDE_CODE_ENABLE_TELEMETRY` et les variables `OTEL_*` dans le bloc `env` de vos paramètres gérés Claude Code, comme indiqué dans [configuration de l'administrateur pour la surveillance](/docs/fr/monitoring-usage#administrator-configuration). Les sessions locales, cloud et SSH lisent chacune les [paramètres gérés à partir de sources différentes](#managed-settings). Pour les hôtes qu'une session cloud peut atteindre, voir [accès réseau](/docs/fr/cloud-environments#network-access). Pour le `service.name` que les sessions de l'onglet Code signalent, voir [informations de service](/docs/fr/monitoring-usage#service-information).

841</Note>

842 

837<h3 id="managed-settings">843<h3 id="managed-settings">

838 Paramètres gérés844 Paramètres gérés

839</h3>845</h3>

env-vars.md +1 −1

Details

110 110 

111Certains comportements ont à la fois une variable d'environnement et une clé de paramètres dédiée, et celle que Claude Code lit en premier diffère selon la clé. Pour `ANTHROPIC_MODEL` et `CLAUDE_CODE_AUTO_CONNECT_IDE`, Claude Code lit d'abord la variable et utilise le paramètre `model` ou `autoConnectIde` uniquement lorsque la variable n'est pas définie. Pour la paire que vous définissez, vérifiez la ligne de la variable ci-dessous et l'entrée de la clé sur la [référence des paramètres](/docs/fr/settings-reference).111Certains comportements ont à la fois une variable d'environnement et une clé de paramètres dédiée, et celle que Claude Code lit en premier diffère selon la clé. Pour `ANTHROPIC_MODEL` et `CLAUDE_CODE_AUTO_CONNECT_IDE`, Claude Code lit d'abord la variable et utilise le paramètre `model` ou `autoConnectIde` uniquement lorsque la variable n'est pas définie. Pour la paire que vous définissez, vérifiez la ligne de la variable ci-dessous et l'entrée de la clé sur la [référence des paramètres](/docs/fr/settings-reference).

112 112 

113Lorsque la même variable est définie à la fois dans votre shell et dans un bloc `env` du fichier de paramètres, la valeur du fichier de paramètres s'applique. Claude Code écrit chaque entrée `env` dans l'environnement du processus, en remplaçant la valeur héritée du shell. Le [paramètre `env`](/docs/fr/settings-reference#when-claude-code-applies-env-values) indique quand il les applique. Quelques variables sont traitées de manière spéciale ; le [paramètre `env`](/docs/fr/settings-reference#env) énumère les exceptions.113Lorsque la même variable est définie à la fois dans votre shell et dans un bloc `env` du fichier de paramètres, la valeur du fichier de paramètres s'applique dans la plupart des sessions. Claude Code écrit chaque entrée `env` dans l'environnement du processus, en remplaçant la valeur héritée du shell. [Comment les valeurs `env` interagissent avec votre shell](/docs/fr/settings-reference#how-env-values-interact-with-your-shell) couvre les sessions qui conservent la valeur héritée à la place, et le [paramètre `env`](/docs/fr/settings-reference#when-claude-code-applies-env-values) indique quand il les applique. Quelques variables sont traitées de manière spéciale ; le [paramètre `env`](/docs/fr/settings-reference#env) énumère les exceptions.

114 114 

115Dans un fichier de paramètres, vous pouvez définir une variable mais vous ne pouvez pas en retirer une. Pour remplacer une variable que vous ne pouvez pas supprimer, comme une `CLAUDE_CODE_USE_VERTEX` obsolète exportée par un profil de shell que vous ne contrôlez pas, définissez-la sur une chaîne vide dans le bloc `env` : `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code traite la valeur vide comme non définie pour la sélection du fournisseur. Les sous-processus héritent toujours de la valeur vide.115Dans un fichier de paramètres, vous pouvez définir une variable mais vous ne pouvez pas en retirer une. Pour remplacer une variable que vous ne pouvez pas supprimer, comme une `CLAUDE_CODE_USE_VERTEX` obsolète exportée par un profil de shell que vous ne contrôlez pas, définissez-la sur une chaîne vide dans le bloc `env` : `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code traite la valeur vide comme non définie pour la sélection du fournisseur. Les sous-processus héritent toujours de la valeur vide.

116 116 

errors.md +40 −9

Details

152| `There's an issue with the selected model` | [Erreurs de requête](#theres-an-issue-with-the-selected-model) |152| `There's an issue with the selected model` | [Erreurs de requête](#theres-an-issue-with-the-selected-model) |

153| `Model ... is not a recognized model id` | [Erreurs de requête](#model-is-not-a-recognized-model-id) |153| `Model ... is not a recognized model id` | [Erreurs de requête](#model-is-not-a-recognized-model-id) |

154| `Model ... not found` | [Erreurs de requête](#model-not-found) |154| `Model ... not found` | [Erreurs de requête](#model-not-found) |

155| `Couldn't confirm model ... with the API` | [Erreurs de requête](#couldnt-confirm-model-with-the-api) |

155| `API error: ... · model not changed` | [Erreurs de requête](#api-error-model-not-changed) |156| `API error: ... · model not changed` | [Erreurs de requête](#api-error-model-not-changed) |

156| `Claude Opus is not available with the Claude Pro plan` | [Erreurs de requête](#claude-opus-is-not-available-with-the-claude-pro-plan) |157| `Claude Opus is not available with the Claude Pro plan` | [Erreurs de requête](#claude-opus-is-not-available-with-the-claude-pro-plan) |

157| `Claude Code ... does not support this model; version ... or newer is required` | [Erreurs de requête](#claude-code-does-not-support-this-model) |158| `Claude Code ... does not support this model; version ... or newer is required` | [Erreurs de requête](#claude-code-does-not-support-this-model) |


2346 Le modèle n'est pas un ID de modèle reconnu2347 Le modèle n'est pas un ID de modèle reconnu

2347</h3>2348</h3>

2348 2349 

2349La chaîne de modèle que vous avez passée à un changement de modèle n'est pas un alias de modèle, un ID de modèle que cette version de Claude Code connaît, ou un ID qui commence par `claude-`. Les causes habituelles sont une faute de frappe dans l'ID, un nom d'affichage comme `Sonnet 5` où l'ID `claude-sonnet-5` est attendu, ou un alias que seules les versions plus récentes de Claude Code reconnaissent. Claude Code rejette le changement immédiatement. Avant v2.1.200, Claude Code enregistrait la chaîne et échouait à la requête suivante avec [Il y a un problème avec le modèle sélectionné](#theres-an-issue-with-the-selected-model).2350La chaîne que vous avez passée à un changement de modèle n'est pas un alias de modèle, un ID de modèle que Claude Code peut utiliser, donc il a refusé le changement sans envoyer de requête et la session garde son modèle actuel. Vous pouvez obtenir cette erreur quand un modèle est défini via la méthode [Agent SDK](/docs/fr/agent-sdk/typescript) `setModel()`, par une application qui exécute le CLI Claude Code pour vous, comme l'[application de bureau](/docs/fr/desktop), ou quand vous choisissez un modèle à partir d'un appareil connecté via [Contrôle à distance](/docs/fr/remote-control). Avant v2.1.200, Claude Code enregistrait la chaîne et échouait à la requête suivante avec [Il y a un problème avec le modèle sélectionné](#theres-an-issue-with-the-selected-model).

2350 2351 

2351```text theme={null}2352```text theme={null}

2352Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2353Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

2353```2354```

2354 2355 

2355L'indice de fin nomme l'alias ou l'ID de modèle le plus proche. Quand rien n'est assez proche, il se lit `Run /model to see available models.` à la place. Dans une session que l'[application de bureau](/docs/fr/desktop) démarre pour vous, l'indice sans correspondance se lit `Switch to a different model.`2356Dans cet exemple, une application a envoyé le nom d'affichage `Sonnet 5`, que le message répète sans son espace. L'indice de fin nomme l'alias ou l'ID de modèle le plus proche. Quand rien n'est assez proche, il se lit `Run /model to see available models.` à la place. Dans une session que l'[application de bureau](/docs/fr/desktop) démarre pour vous, l'indice sans correspondance se lit `Switch to a different model.`

2356 2357 

2357Claude Code produit cette erreur localement au moment où le changement est demandé, avant toute requête API. Elle s'applique quand un modèle est défini via la méthode [Agent SDK](/docs/fr/agent-sdk/typescript) `setModel()`, par une application comme l'[application de bureau](/docs/fr/desktop) qui exécute le CLI Claude Code pour vous, ou quand vous choisissez un modèle à partir d'un appareil connecté via [Contrôle à distance](/docs/fr/remote-control). Avant v2.1.260, la vérification ne couvrait pas les choix de contrôle à distance, donc Claude Code appliquait le choix et la requête suivante échouait avec [Il y a un problème avec le modèle sélectionné](#theres-an-issue-with-the-selected-model).2358Quand vous basculez via l'Agent SDK ou une application sur l'API Anthropic, seule une chaîne qui ne peut pas être un ID de modèle obtient cette erreur, comme un nom d'affichage ou une chaîne vide.

2359 

2360Quand vous choisissez un modèle à partir d'un appareil de contrôle à distance, Claude Code vérifie la chaîne localement. Toute chaîne qui n'est pas un alias de modèle, un modèle que Claude Code liste ou que vous avez configuré, ou un ID qui commence par `claude-` obtient cette erreur, un ID mal tapé comme `claud-sonnet-5` inclus. Avant v2.1.260, cette vérification ne couvrait pas les choix de contrôle à distance, donc une chaîne non reconnue était appliquée et échouait à la requête suivante.

2358 2361 

2359**Que faire :**2362**Que faire :**

2360 2363 

2361* Exécutez `/model` sans argument pour ouvrir le sélecteur et choisir parmi les modèles disponibles pour votre compte, puis passez l'alias ou l'ID affiché là2364* Exécutez `/model` sans argument pour ouvrir le sélecteur et choisir parmi les modèles disponibles pour votre compte, puis passez l'alias ou l'ID affiché là

2362* Si vous avez utilisé un alias qu'une version plus récente de Claude Code supporte, exécutez `claude update`. Un ID complet qui commence par `claude-` passe cette vérification locale même quand le modèle est plus récent que votre version de Claude Code. Le serveur peut toujours exiger une version minimale pour ce modèle ; voir [Claude Code ne supporte pas ce modèle](#claude-code-does-not-support-this-model).2365* Si vous avez utilisé un alias qu'une version plus récente de Claude Code supporte, exécutez `claude update`, ou passez l'ID complet du modèle à la place. Le serveur peut toujours exiger une version minimale de Claude Code pour ce modèle ; voir [Claude Code ne supporte pas ce modèle](#claude-code-does-not-support-this-model).

2363* Un modèle enregistré avant v2.1.200 n'est pas réparé par cette vérification. Si une valeur obsolète continue de revenir, supprimez-la des emplacements listés sous [Définir votre modèle](/docs/fr/model-config#setting-your-model).2366* Un modèle enregistré avant v2.1.200 n'est pas réparé par cette vérification. Si une valeur obsolète continue de revenir, supprimez-la des emplacements listés sous [Définir votre modèle](/docs/fr/model-config#setting-your-model).

2364* La vérification s'exécute uniquement sur l'API Anthropic. Sur tout autre fournisseur ou passerelle, y compris un `ANTHROPIC_BASE_URL` personnalisé, le fournisseur définit les noms de modèles, donc Claude Code accepte n'importe quelle chaîne et la transmet. Claude Code peut toujours écrire la [ligne de diagnostic de modèle non reconnu](#unrecognized-model-id-on-a-request) au moment de la requête, sur chaque fournisseur.2367* Sur tout fournisseur autre que l'API Anthropic, ou derrière une passerelle ou un `ANTHROPIC_BASE_URL` personnalisé, seule une chaîne vide obtient cette erreur. Claude Code peut toujours écrire la [ligne de diagnostic de modèle non reconnu](#unrecognized-model-id-on-a-request) au moment de la requête, sur chaque fournisseur.

2365 2368 

2366<h3 id="model-not-found">2369<h3 id="model-not-found">

2367 Modèle non trouvé2370 Modèle non trouvé

2368</h3>2371</h3>

2369 2372 

2370Vous avez choisi un modèle avec `/model <name>` et Claude Code n'a pas pu confirmer qu'un modèle avec ce nom existe. Quand le nom n'est pas un [alias de modèle](/docs/fr/model-config#model-aliases) ou une autre orthographe que Claude Code accepte localement, `/model` le vérifie avec une requête API minimale, et cette erreur est généralement la réponse de votre point de terminaison API. Un nom qui ne peut pas du tout être un ID de modèle, comme un contenant des espaces, obtient le même message.2373Vous avez choisi un modèle par nom et Claude Code n'a pas pu confirmer qu'un modèle avec ce nom existe. Quand le nom n'est pas un [alias de modèle](/docs/fr/model-config#model-aliases) ou une autre orthographe que Claude Code accepte localement, Claude Code le vérifie avec une requête API minimale, et cette erreur est généralement la réponse de votre point de terminaison API. Avec `/model <name>`, un nom qui ne peut pas du tout être un ID de modèle, comme un contenant des espaces, obtient le même message.

2371 2374 

2372```text theme={null}2375```text theme={null}

2373Model 'claude-opus-9' not found2376Model 'claude-opus-9' not found


2379 2382 

2380* Exécutez `/model` sans argument et choisissez parmi les modèles disponibles pour votre compte, ou utilisez un [alias de modèle](/docs/fr/model-config#model-aliases) comme `sonnet`, qui se résout à une valeur par défaut maintenue2383* Exécutez `/model` sans argument et choisissez parmi les modèles disponibles pour votre compte, ou utilisez un [alias de modèle](/docs/fr/model-config#model-aliases) comme `sonnet`, qui se résout à une valeur par défaut maintenue

2381* Si vous avez tapé un ID complet, vérifiez-le par rapport au catalogue de modèles de votre fournisseur. Un modèle nouvellement lancé peut être disponible sur l'API Anthropic avant que votre fournisseur ou région ne l'offre.2384* Si vous avez tapé un ID complet, vérifiez-le par rapport au catalogue de modèles de votre fournisseur. Un modèle nouvellement lancé peut être disponible sur l'API Anthropic avant que votre fournisseur ou région ne l'offre.

2385* Dans l'Agent SDK, `setModel()` échoue avec ce message et la session continue de s'exécuter sur son modèle précédent. Dans le SDK TypeScript, appelez [`supportedModels()`](/docs/fr/agent-sdk/typescript#query-object) pour lister les modèles vers lesquels vous pouvez basculer.

2382* Avant v2.1.265, `/model` rejetait aussi l'orthographe d'alias `opusplan[1m]` avec cette erreur. Sur ces versions, mettez à jour Claude Code, ou définissez le modèle dans [paramètres](/docs/fr/model-config#setting-your-model) ou avec `--model` à la place.2386* Avant v2.1.265, `/model` rejetait aussi l'orthographe d'alias `opusplan[1m]` avec cette erreur. Sur ces versions, mettez à jour Claude Code, ou définissez le modèle dans [paramètres](/docs/fr/model-config#setting-your-model) ou avec `--model` à la place.

2383 2387 

2388<h3 id="couldnt-confirm-model-with-the-api">

2389 Impossible de confirmer le modèle avec l'API

2390</h3>

2391 

2392Vous avez basculé les modèles via la méthode [Agent SDK](/docs/fr/agent-sdk/typescript) `setModel()` ou une application qui exécute le CLI Claude Code pour vous, comme l'[application de bureau](/docs/fr/desktop), et la requête qui confirme l'ID du modèle avec votre point de terminaison API n'a pas reçu de réponse dans les cinq secondes. La session garde son modèle actuel.

2393 

2394```text theme={null}

2395Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.

2396```

2397 

2398Dans une session que l'[application de bureau](/docs/fr/desktop) démarre pour vous, le message se termine à `Try again.`

2399 

2400**Que faire :**

2401 

2402* Basculez vers le modèle à nouveau

2403* Si le basculement continue d'échouer, vérifiez que Claude Code peut atteindre votre point de terminaison API ; voir [Erreurs de réseau et de connexion](#network-and-connection-errors)

2404 

2384<h3 id="api-error-model-not-changed">2405<h3 id="api-error-model-not-changed">

2385 Erreur API lors de la vérification du modèle choisi2406 Erreur API lors de la vérification du modèle choisi

2386</h3>2407</h3>


2432API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.2453API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

2433```2454```

2434 2455 

2456La version que l'API vérifie est celle signalée par le binaire Claude Code qui a fait la requête.

2457 

2435**Que faire :**2458**Que faire :**

2436 2459 

2437* Exécutez `claude update`, ou mettez à jour l'application de bureau Claude, puis démarrez une nouvelle session2460Mettez à jour ce binaire, puis démarrez une nouvelle session. D'où le binaire provient décide comment, sauf dans un [environnement auto-hébergé](/docs/fr/self-hosted-environments-deploy#pin-the-version) :

2438* Pour le libellé par modèle, vous pouvez continuer à travailler dans la session actuelle en basculant vers un autre modèle avec `/model`2461 

2462| Le binaire qui a fait la requête | Comment le mettre à jour |

2463| :- | :- |

2464| Un Claude Code que vous avez installé | Exécutez `claude update` |

2465| L'application de bureau Claude | Mettez à jour l'application |

2466| Le binaire que l'[extension VS Code](/docs/fr/vs-code) regroupe | Mettez à jour l'extension |

2467| Le binaire qu'un package Agent SDK regroupe | [Mettez à niveau le package SDK](/docs/fr/agent-sdk/hosting#runtime-dependencies), puis redémarrez votre application. Dans un [exécutable monofichier compilé](/docs/fr/agent-sdk/typescript#compile-to-a-single-executable), reconstruisez-le |

2468 

2469* Pour le libellé par modèle, vous pouvez continuer à travailler dans la session actuelle en basculant vers un autre modèle : exécutez `/model` dans le CLI, appelez [`setModel()`](/docs/fr/agent-sdk/typescript#query-object) sur l'objet `Query` du SDK TypeScript en mode d'entrée en continu, ou appelez [`set_model()`](/docs/fr/agent-sdk/python#claudesdkclient) sur le `ClaudeSDKClient` du SDK Python

2439* Pour le libellé de la politique organisationnelle, mettez à jour avant de continuer2470* Pour le libellé de la politique organisationnelle, mettez à jour avant de continuer

2440 2471 

2441<h3 id="model-is-restricted-by-your-organizations-settings">2472<h3 id="model-is-restricted-by-your-organizations-settings">

fast-mode.md +2 −0

Details

72 72 

73Tapez `/fast on` dans la session pour activer le mode rapide. Il reste activé pour cette session uniquement et n'est pas enregistré comme votre paramètre par défaut. Les [exigences](#requirements) s'appliquent également dans les sessions cloud.73Tapez `/fast on` dans la session pour activer le mode rapide. Il reste activé pour cette session uniquement et n'est pas enregistré comme votre paramètre par défaut. Les [exigences](#requirements) s'appliquent également dans les sessions cloud.

74 74 

75Dans le navigateur sur [claude.ai/code](https://claude.ai/code), vous pouvez également activer et désactiver le mode rapide à partir du menu des modèles sur la boîte de message. Le menu affiche le commutateur quand votre plan inclut le mode rapide et que le modèle sélectionné le supporte.

76 

75<h2 id="understand-the-cost-tradeoff">77<h2 id="understand-the-cost-tradeoff">

76 Comprendre le compromis de coût78 Comprendre le compromis de coût

77</h2>79</h2>

Details

43 43 

44Claude Code pousse ensuite une branche avec les fichiers de workflow que vous sélectionnez, déjà configurés pour utiliser ce secret, et ouvre GitHub dans votre navigateur avec une pull request prête à créer. Créez et fusionnez cette pull request, et `@claude` fonctionne dans le repository.44Claude Code pousse ensuite une branche avec les fichiers de workflow que vous sélectionnez, déjà configurés pour utiliser ce secret, et ouvre GitHub dans votre navigateur avec une pull request prête à créer. Créez et fusionnez cette pull request, et `@claude` fonctionne dans le repository.

45 45 

46Pour arrêter la configuration à mi-chemin, appuyez sur Échap. Une étape déjà en cours se termine et aucune étape ultérieure ne démarre. Le message de fermeture énumère ce qui s'est déjà passé dans le repository, comme une branche poussée ou un secret enregistré.

47 

46Si vous sélectionnez le workflow de révision, Claude publie chaque révision sur la pull request elle-même, en tant que commentaire en ligne sur chaque problème qu'il trouve ou en tant qu'un commentaire de résumé lorsqu'il n'en trouve aucun. Claude ignore certaines pull requests, comme les brouillons. L'[exemple de workflow de révision](#run-a-skill) utilise la même skill et les énumère. Avant v2.1.229, Claude écrivait sa révision uniquement dans le journal d'exécution du workflow.48Si vous sélectionnez le workflow de révision, Claude publie chaque révision sur la pull request elle-même, en tant que commentaire en ligne sur chaque problème qu'il trouve ou en tant qu'un commentaire de résumé lorsqu'il n'en trouve aucun. Claude ignore certaines pull requests, comme les brouillons. L'[exemple de workflow de révision](#run-a-skill) utilise la même skill et les énumère. Avant v2.1.229, Claude écrivait sa révision uniquement dans le journal d'exécution du workflow.

47 49 

48Pour mettre à jour un workflow de révision qu'une version antérieure a généré, faites l'une des choses suivantes :50Pour mettre à jour un workflow de révision qu'une version antérieure a généré, faites l'une des choses suivantes :

hooks.md +104 −104

Details

274 274 

275Les hooks des fichiers de paramètres, des paramètres de politique gérée et des plugins s'exécutent également à l'intérieur des [subagents](/docs/fr/sub-agents). Lorsqu'un subagent appelle un outil, les événements d'outil tels que `PreToolUse` et `PostToolUse` déclenchent les mêmes hooks configurés que dans la conversation principale, et l'entrée porte les champs d'entrée communs `agent_id` et `agent_type` [](#common-input-fields) qui identifient le subagent.275Les hooks des fichiers de paramètres, des paramètres de politique gérée et des plugins s'exécutent également à l'intérieur des [subagents](/docs/fr/sub-agents). Lorsqu'un subagent appelle un outil, les événements d'outil tels que `PreToolUse` et `PostToolUse` déclenchent les mêmes hooks configurés que dans la conversation principale, et l'entrée porte les champs d'entrée communs `agent_id` et `agent_type` [](#common-input-fields) qui identifient le subagent.

276 276 

277Les administrateurs d'entreprise peuvent utiliser `allowManagedHooksOnly` pour restreindre les hooks qui s'exécutent :277Les administrateurs peuvent utiliser [`allowManagedHooksOnly`](/docs/fr/settings-reference#allowmanagedhooksonly) dans les [paramètres gérés](/docs/fr/managed-settings) pour restreindre les hooks qui s'exécutent :

278 278 

279* Vos hooks utilisateur, projet, local et plugin sont bloqués. Les hooks des plugins forcément activés dans les paramètres gérés `enabledPlugins` sont exempts279* Vos hooks utilisateur, projet, local et plugin sont bloqués. Les hooks des plugins forcément activés dans les paramètres gérés `enabledPlugins` sont exempts

280* Claude Code restreint également votre [`statusLine`](/docs/fr/statusline), [`fileSuggestion`](/docs/fr/settings-reference#filesuggestion) et [`subagentStatusLine`](/docs/fr/statusline#subagent-status-lines) aux paramètres gérés280* Claude Code restreint également votre [`statusLine`](/docs/fr/statusline), [`fileSuggestion`](/docs/fr/settings-reference#filesuggestion) et [`subagentStatusLine`](/docs/fr/statusline#subagent-status-lines) aux paramètres gérés


1187| `resume` | `--resume`, `--continue`, ou `/resume` |1187| `resume` | `--resume`, `--continue`, ou `/resume` |

1188| `clear` | `/clear` |1188| `clear` | `/clear` |

1189| `compact` | Compaction automatique ou manuelle |1189| `compact` | Compaction automatique ou manuelle |

1190| `fork` | Une nouvelle session créée à partir d'une session existante : `--fork-session` avec `--resume` ou `--continue`, la copie de fond `/fork`, ou `/branch` |1190| `fork` | Une nouvelle session créée à partir d'une session existante : `--fork-session` avec `--resume` ou `--continue`, la copie de fond `/fork`, `/branch`, ou une conversation que vous [déplacez en arrière-plan](/docs/fr/agent-view#from-inside-a-session) |

1191 1191 

1192Avant v2.1.214, les sessions créées rapportaient la source `"resume"`.1192Avant v2.1.214, les sessions créées rapportaient la source `"resume"`.

1193 1193 

1194Quand vous démarrez une session interactive, reprenez une conversation au lancement avec `--continue` ou `--resume`, ou exécutez `/clear`, les hooks SessionStart s'exécutent en arrière-plan. Vous pouvez taper immédiatement, et une conversation que vous avez reprise apparaît sans attendre les hooks. La première réponse de Claude attend toujours que les hooks se terminent, donc leur contexte atteint Claude.1194Quand vous démarrez une session interactive, reprenez une conversation au lancement avec `--continue` ou `--resume`, ou exécutez `/clear`, les hooks SessionStart s'exécutent en arrière-plan. Vous pouvez taper immédiatement, et une conversation que vous avez reprise apparaît sans attendre les hooks. La première réponse de Claude attend toujours que les hooks se terminent, donc leur contexte atteint Claude.

1195 1195 

1196Quand vous changez de conversation avec `/resume` dans une session, le changement attend que les hooks se terminent. Si vous exécutez `/clear` ou basculez vers une autre conversation pendant que les hooks en arrière-plan s'exécutent toujours, rien de ce qu'ils retournent ne s'applique à la session.1196Quand vous changez de conversation avec `/resume` dans une session, le changement attend que les hooks se terminent. Si vous exécutez `/clear` ou changez vers une autre conversation pendant que les hooks en arrière-plan s'exécutent toujours, rien de ce qu'ils retournent ne s'applique à la session.

1197 1197 

1198La même attente s'applique au lancement, y compris une session reprise : une invite que vous envoyez pendant que les hooks SessionStart s'exécutent toujours n'atteint Claude que lorsqu'ils se terminent.1198La même attente s'applique au lancement, y compris une session reprise : une invite que vous envoyez pendant que les hooks SessionStart s'exécutent toujours n'atteint Claude que lorsqu'ils se terminent.

1199 1199 


1212| `agent_type` | Le nom de l'agent, présent quand vous démarrez Claude Code avec `claude --agent <name>` |1212| `agent_type` | Le nom de l'agent, présent quand vous démarrez Claude Code avec `claude --agent <name>` |

1213| `session_title` | Le titre de la session actuelle s'il est déjà défini, par exemple via `--name` ou `/rename`. Un hook qui émet `sessionTitle` peut vérifier `session_title` d'abord pour éviter de remplacer un titre que l'utilisateur a défini explicitement |1213| `session_title` | Le titre de la session actuelle s'il est déjà défini, par exemple via `--name` ou `/rename`. Un hook qui émet `sessionTitle` peut vérifier `session_title` d'abord pour éviter de remplacer un titre que l'utilisateur a défini explicitement |

1214 1214 

1215Quand `source` est `"resume"` ou `"fork"` et que la transcription contient au moins une réponse de Claude, les hooks SessionStart reçoivent également les quatre champs ci-dessous. Votre hook peut les utiliser pour signaler le coût de reprendre une conversation obsolète avant la première demande, par exemple dans un [`systemMessage`](#json-output). Ces champs nécessitent Claude Code v2.1.251 ou ultérieur.1215Quand `source` est `"resume"` ou `"fork"` et que la transcription contient au moins une réponse de Claude, les hooks SessionStart reçoivent également les quatre champs ci-dessous. Votre hook peut les utiliser pour signaler le coût de reprendre une conversation obsolète avant la première requête, par exemple dans un [`systemMessage`](#json-output). Ces champs nécessitent Claude Code v2.1.251 ou ultérieur.

1216 1216 

1217| Champ | Description |1217| Champ | Description |

1218| :- | :- |1218| :- | :- |

1219| `seconds_since_last_response` | Secondes d'horloge murale depuis la dernière réponse dans la transcription reprise |1219| `seconds_since_last_response` | Secondes d'horloge murale depuis la dernière réponse dans la transcription reprise |

1220| `context_tokens` | Tokens que la première demande de la session reprise renvoie comme son invite |1220| `context_tokens` | Tokens que la première requête de la session reprise renvoie comme son invite |

1221| `prompt_cache_likely_expired` | `true` quand la dernière réponse est plus ancienne que la [durée de vie du cache d'invite](/docs/fr/prompt-caching#cache-lifetime) de la session ou qu'une compaction ultérieure a remplacé la conversation en cache |1221| `prompt_cache_likely_expired` | `true` quand la dernière réponse est plus ancienne que la [durée de vie du cache d'invite](/docs/fr/prompt-caching#cache-lifetime) de la session ou qu'une compaction ultérieure a remplacé la conversation en cache |

1222| `estimated_cache_write_usd` | Coût estimé en dollars US de l'écriture de `context_tokens` dans le cache d'invite sur le modèle de la session, excluant la réponse |1222| `estimated_cache_write_usd` | Coût estimé en dollars US de l'écriture de `context_tokens` dans le cache d'invite sur le modèle de la session, excluant la réponse |

1223 1223 


1242 Contrôle de décision SessionStart1242 Contrôle de décision SessionStart

1243</h4>1243</h4>

1244 1244 

1245Claude Code ajoute stdout qu'il [traite comme du texte brut](#exit-code-0) au contexte de Claude. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez retourner ces champs spécifiques à l'événement :1245Claude Code ajoute la sortie standard qu'il [traite comme du texte brut](#exit-code-0) au contexte de Claude. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez retourner ces champs spécifiques à l'événement :

1246 1246 

1247| Champ | Description |1247| Champ | Description |

1248| :- | :- |1248| :- | :- |


1262}1262}

1263```1263```

1264 1264 

1265Puisque stdout brut atteint déjà Claude pour cet événement, un hook qui charge uniquement du contexte peut imprimer sur stdout directement sans construire JSON. Utilisez la forme JSON quand vous devez combiner du contexte avec d'autres champs comme `sessionTitle`.1265Puisque la sortie standard brute atteint déjà Claude pour cet événement, un hook qui charge uniquement du contexte peut imprimer sur la sortie standard directement sans construire JSON. Utilisez la forme JSON quand vous devez combiner le contexte avec d'autres champs comme `sessionTitle`.

1266 1266 

1267Utilisez `reloadSkills` quand un hook SessionStart installe ou met à jour des skills. La découverte de skills s'exécute normalement avant que les hooks SessionStart se terminent, donc les fichiers que le hook écrit dans `~/.claude/skills/` ou `.claude/skills/` n'apparaîtraient autrement que dans la session suivante. Cet exemple synchronise un référentiel de skills partagé et demande la réanalyse :1267Utilisez `reloadSkills` quand un hook SessionStart installe ou met à jour des skills. La découverte de skills s'exécute normalement avant que les hooks SessionStart se terminent, donc les fichiers que le hook écrit dans `~/.claude/skills/` ou `.claude/skills/` n'apparaîtraient autrement que dans la session suivante. Cet exemple synchronise un référentiel de skills partagé et demande la réanalyse :

1268 1268 


1361 Contrôle de décision Setup1361 Contrôle de décision Setup

1362</h4>1362</h4>

1363 1363 

1364Les hooks Setup ne peuvent pas bloquer ; l'exécution continue sur n'importe quel code de sortie. Sur chaque code de sortie, Claude Code rejette les [champs de sortie JSON](#json-output) d'un hook Setup, comme `systemMessage`, `continue`, et `hookSpecificOutput.additionalContext`. Avec `-p`, stdout, stderr, et le code de sortie d'un hook Setup n'apparaissent dans la sortie de la session que comme des événements [`hook_response`](/docs/fr/headless#read-session-metadata) quand vous lancez avec `--output-format stream-json --verbose`.1364Les hooks Setup ne peuvent pas bloquer ; l'exécution continue sur n'importe quel code de sortie. Sur chaque code de sortie, Claude Code rejette les [champs de sortie JSON](#json-output) d'un hook Setup, comme `systemMessage`, `continue`, et `hookSpecificOutput.additionalContext`. Avec `-p`, la sortie standard, stderr, et le code de sortie d'un hook Setup n'apparaissent dans la sortie de la session que comme des événements [`hook_response`](/docs/fr/headless#read-session-metadata) quand vous lancez avec `--output-format stream-json --verbose`.

1365 1365 

1366Les hooks Setup ont accès à `CLAUDE_ENV_FILE`. Les variables écrites dans ce fichier persistent dans les commandes Bash suivantes pour la session, tout comme dans les [hooks SessionStart](#persist-environment-variables). Seuls les hooks `type: "command"` s'exécutent sur `Setup`. Un hook `type: "mcp_tool"` sur `Setup` est toujours ignoré, comme décrit sous [Champs de hook MCP tool](#mcp-tool-hook-fields).1366Les hooks Setup ont accès à `CLAUDE_ENV_FILE`. Les variables écrites dans ce fichier persistent dans les commandes Bash suivantes pour la session, tout comme dans les [hooks SessionStart](#persist-environment-variables). Seuls les hooks `type: "command"` s'exécutent sur `Setup`. Un hook `type: "mcp_tool"` sur `Setup` est toujours ignoré, comme décrit sous [Champs de hook MCP tool](#mcp-tool-hook-fields).

1367 1367 


1445 1445 

1446Il y a deux façons d'ajouter du contexte à la conversation en cas de code de sortie 0 :1446Il y a deux façons d'ajouter du contexte à la conversation en cas de code de sortie 0 :

1447 1447 

1448* **Stdout en texte brut** : Claude Code ajoute stdout qu'il [traite comme du texte brut](#exit-code-0) au contexte de Claude1448* **Sortie standard en texte brut** : Claude Code ajoute la sortie standard qu'il [traite comme du texte brut](#exit-code-0) au contexte de Claude

1449* **JSON avec `additionalContext`** : utilisez le format JSON ci-dessous pour plus de contrôle. Le champ `additionalContext` est ajouté comme contexte1449* **JSON avec `additionalContext`** : utilisez le format JSON ci-dessous pour plus de contrôle. Le champ `additionalContext` est ajouté comme contexte

1450 1450 

1451Aucun canal ne produit une entrée de transcription visible. Le stdout brut et la valeur `additionalContext` sont chacun injectés comme un rappel système qui commence par le nom du hook ; Claude lit les deux. Pour confirmer la livraison, vérifiez le [journal de débogage](#debug-hooks).1451Aucun canal ne produit une entrée de transcription visible. La sortie standard brute et la valeur `additionalContext` sont chacune injectées comme un rappel système qui commence par le nom du hook ; Claude lit les deux. Pour confirmer la livraison, vérifiez le [journal de débogage](#debug-hooks).

1452 1452 

1453Pour bloquer une invite, retournez un objet JSON avec `decision` défini à `"block"` :1453Pour bloquer une invite, retournez un objet JSON avec `decision` défini à `"block"` :

1454 1454 


1488 Entrée UserPromptExpansion1488 Entrée UserPromptExpansion

1489</h4>1489</h4>

1490 1490 

1491En plus des [champs d'entrée communs](#common-input-fields), les hooks UserPromptExpansion reçoivent `expansion_type`, `command_name`, `command_args`, `command_source`, et la chaîne `prompt` originale. Le champ `expansion_type` est `slash_command` pour les skills et commandes personnalisées, ou `mcp_prompt` pour les invites du serveur MCP.1491En plus des [champs d'entrée communs](#common-input-fields), les hooks UserPromptExpansion reçoivent `expansion_type`, `command_name`, `command_args`, `command_source`, et la chaîne `prompt` originale. Le champ `expansion_type` est `slash_command` pour les skills et commandes personnalisées, ou `mcp_prompt` pour les prompts du serveur MCP.

1492 1492 

1493```json theme={null}1493```json theme={null}

1494{1494{


1544 1544 

1545Claude Code retient chaque lot jusqu'à ce que votre hook retourne, donc gardez le hook rapide. Si le hook échoue ou expire, Claude Code affiche le texte original. Le délai d'expiration par défaut pour cet événement est 10 secondes ; si votre hook a besoin de plus de temps, définissez le champ `timeout` dans l'entrée du hook.1545Claude Code retient chaque lot jusqu'à ce que votre hook retourne, donc gardez le hook rapide. Si le hook échoue ou expire, Claude Code affiche le texte original. Le délai d'expiration par défaut pour cet événement est 10 secondes ; si votre hook a besoin de plus de temps, définissez le champ `timeout` dans l'entrée du hook.

1546 1546 

1547MessageDisplay est affichage uniquement : le texte de remplacement change uniquement ce qui est rendu à l'écran. La transcription et ce que Claude voit conservent le texte original, donc Claude ne voit jamais le remplacement, et le mode verbeux montre l'original. Le hook reçoit uniquement le texte du message d'assistant, donc les résultats d'outils et le texte que vous tapez s'affichent inchangés.1547MessageDisplay est affichage uniquement : le texte de remplacement change uniquement ce qui est rendu à l'écran. La transcription et ce que Claude voit conservent le texte original, donc Claude ne voit jamais le remplacement, et le mode verbeux affiche l'original. Le hook reçoit uniquement le texte du message d'assistant, donc les résultats d'outils et le texte que vous tapez s'affichent inchangés.

1548 1548 

1549MessageDisplay ne supporte pas les matchers et se déclenche pour chaque message d'assistant qui affiche du texte ; les messages sans texte, comme les réponses contenant uniquement des appels d'outils, ne le déclenchent pas.1549MessageDisplay ne supporte pas les matchers et se déclenche pour chaque message d'assistant qui affiche du texte ; les messages sans texte, comme les réponses contenant uniquement des appels d'outils, ne le déclenchent pas.

1550 1550 


1554 Entrée MessageDisplay1554 Entrée MessageDisplay

1555</h4>1555</h4>

1556 1556 

1557En plus des [champs d'entrée communs](#common-input-fields), les hooks MessageDisplay reçoivent des identifiants pour le tour et le message, la position de cet appel dans le message, et le nouveau texte dans `delta`. Les limites de lot dépendent de la façon dont le texte s'affiche, donc utilisez `index` et `final` pour suivre la progression dans un message plutôt que de vous attendre à ce que les lignes soient groupées d'une manière particulière.1557En plus des [champs d'entrée communs](#common-input-fields), les hooks MessageDisplay reçoivent des identifiants pour le tour et le message, la position de cet appel dans le message, et le nouveau texte dans `delta`. Les limites de lot dépendent de la façon dont le texte s'affiche, donc utilisez `index` et `final` pour suivre la progression à travers un message plutôt que de vous attendre à ce que les lignes soient groupées d'une manière particulière.

1558 1558 

1559| Champ | Description |1559| Champ | Description |

1560| :- | :- |1560| :- | :- |


1674 1674 

1675S'exécute après que Claude crée les paramètres d'outil et avant de traiter l'appel d'outil. Correspond à n'importe quel nom d'outil sauf `EndConversation` : les outils intégrés comme `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, et `ExitPlanMode`, et n'importe quels [noms d'outils MCP](#match-mcp-tools).1675S'exécute après que Claude crée les paramètres d'outil et avant de traiter l'appel d'outil. Correspond à n'importe quel nom d'outil sauf `EndConversation` : les outils intégrés comme `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, et `ExitPlanMode`, et n'importe quels [noms d'outils MCP](#match-mcp-tools).

1676 1676 

1677Pour exécuter un hook quand un fichier spécifique change sur le disque, peu importe ce qui l'a écrit, utilisez [FileChanged](#filechanged) au lieu de correspondre aux outils d'édition de fichiers par nom. Contrairement à PreToolUse, Claude Code exécute les hooks FileChanged après le changement, et ils n'ont pas de contrôle de décision, donc ils ne peuvent pas bloquer l'écriture.1677Pour exécuter un hook quand un fichier spécifique change sur le disque, peu importe ce qui l'a écrit, utilisez [FileChanged](#filechanged) au lieu de faire correspondre les outils d'édition de fichiers par nom. Contrairement à PreToolUse, Claude Code exécute les hooks FileChanged après le changement, et ils n'ont pas de contrôle de décision, donc ils ne peuvent pas bloquer l'écriture.

1678 1678 

1679<Warning>1679<Warning>

1680 PreToolUse s'exécute uniquement quand Claude appelle un outil. Les fichiers que vous [référencez avec `@` dans votre invite](/docs/fr/common-workflows#reference-files-and-directories) sont ajoutés sans aucun appel d'outil : Claude Code insère leur contenu lors de la construction de l'invite, donc aucun hook PreToolUse ne se déclenche pour eux, y compris les hooks correspondant à `Read`. Pour bloquer des chemins spécifiques des références `@`, utilisez plutôt une [règle de refus `Read`](/docs/fr/permissions#read-and-edit).1680 PreToolUse s'exécute uniquement quand Claude appelle un outil. Les fichiers que vous [référencez avec `@` dans votre invite](/docs/fr/common-workflows#reference-files-and-directories) sont ajoutés sans aucun appel d'outil : Claude Code insère leur contenu lors de la construction de l'invite, donc aucun hook PreToolUse ne se déclenche pour eux, y compris les hooks correspondant à `Read`. Pour bloquer des chemins spécifiques des références `@`, utilisez plutôt une [règle de refus `Read`](/docs/fr/permissions#read-and-edit).


1692 1692 

1693En plus des [champs d'entrée communs](#common-input-fields), les hooks PreToolUse reçoivent `tool_name`, `tool_input`, et `tool_use_id`.1693En plus des [champs d'entrée communs](#common-input-fields), les hooks PreToolUse reçoivent `tool_name`, `tool_input`, et `tool_use_id`.

1694 1694 

1695Pour un [outil MCP](#match-mcp-tools), l'entrée porte également `mcp_server`, un objet avec le `name` du serveur et une `source` qui dit d'où vient la définition du serveur. Les valeurs `source` incluent `plugin`, `sdk`, et les portées de configuration comme `user` et `project`. [`McpServerProvenance`](/docs/fr/agent-sdk/typescript#mcpserverprovenance) dans la référence Agent SDK les énumère toutes et dit comment traiter une que vous ne reconnaissez pas. Basez les décisions de confiance sur `source` plutôt que sur `name` ou le préfixe de nom d'outil `mcp__<server>__`. Le champ `mcp_server` nécessite Claude Code v2.1.274 ou ultérieur.1695Pour un [outil MCP](#match-mcp-tools), l'entrée porte également `mcp_server`, un objet avec le `name` du serveur et une `source` qui dit d'où vient la définition du serveur. Les valeurs `source` incluent `plugin`, `sdk`, et les portées de configuration comme `user` et `project`. [`McpServerProvenance`](/docs/fr/agent-sdk/typescript#mcpserverprovenance) dans la référence Agent SDK les énumère toutes et dit comment traiter une que vous ne reconnaissez pas. Basez les décisions de confiance sur `source` plutôt que sur `name` ou le préfixe du nom d'outil `mcp__<server>__`. Le champ `mcp_server` nécessite Claude Code v2.1.274 ou ultérieur.

1696 1696 

1697Pour les outils de fichier `Write`, `Edit`, et `Read`, `tool_input.file_path` est toujours absolu :1697Pour les outils de fichier `Write`, `Edit`, et `Read`, `tool_input.file_path` est toujours absolu :

1698 1698 


1732| `timeout` | number | `120000` | Délai d'expiration optionnel en millisecondes. Les valeurs au-dessus du [maximum](/docs/fr/tools-reference#bash-tool-behavior) sont réduites au maximum plutôt que rejetées |1732| `timeout` | number | `120000` | Délai d'expiration optionnel en millisecondes. Les valeurs au-dessus du [maximum](/docs/fr/tools-reference#bash-tool-behavior) sont réduites au maximum plutôt que rejetées |

1733| `run_in_background` | boolean | `false` | Si la commande doit s'exécuter en arrière-plan |1733| `run_in_background` | boolean | `false` | Si la commande doit s'exécuter en arrière-plan |

1734 1734 

1735Quand une commande Bash change des fichiers dans un référentiel Git, Claude Code peut enregistrer ce qui a changé. Il enregistre les changements dans chaque mode de permission quand le paramètre [`bashEditDiffEnabled`](/docs/fr/settings-reference#basheditdiffenabled) active l'enregistrement ; l'entrée de ce paramètre dit quels fichiers peuvent le définir. Sinon, il les enregistre uniquement en mode auto et en mode `bypassPermissions`, et uniquement quand Claude Code dirige Claude à éditer des fichiers via Bash. Définissez `bashEditDiffEnabled` à `false` pour désactiver l'enregistrement. Les commandes en arrière-plan et les commandes en lecture seule ne portent pas de diff.1735Quand une commande Bash change des fichiers dans un référentiel Git, Claude Code peut enregistrer ce qui a changé. Il enregistre les changements dans chaque mode de permission quand le paramètre [`bashEditDiffEnabled`](/docs/fr/settings-reference#basheditdiffenabled) active l'enregistrement ; l'entrée de ce paramètre dit quels fichiers peuvent le définir. Sinon, il les enregistre uniquement en mode auto et mode `bypassPermissions`, et uniquement quand Claude Code dirige Claude à éditer des fichiers via Bash. Définissez `bashEditDiffEnabled` à `false` pour désactiver l'enregistrement. Les commandes en arrière-plan et les commandes en lecture seule ne portent pas de diff.

1736 1736 

1737Votre hook [PostToolUse](#posttooluse) reçoit alors les fichiers modifiés dans `tool_response.bashEditDiff`. La liste couvre ce qui a changé sous le référentiel pendant que la commande s'exécutait. Les fichiers que Git ignore et les fichiers dans les sous-modules ne sont pas listés. Nécessite Claude Code v2.1.269 ou ultérieur.1737Votre hook [PostToolUse](#posttooluse) reçoit alors les fichiers modifiés dans `tool_response.bashEditDiff`. La liste couvre ce qui a changé sous le référentiel pendant que la commande s'exécutait. Les fichiers que Git ignore et les fichiers dans les sous-modules ne sont pas listés. Nécessite Claude Code v2.1.269 ou ultérieur.

1738 1738 


1749| `moreFiles` | number | `2` | Nombre de fichiers modifiés sans diff dans `files` |1749| `moreFiles` | number | `2` | Nombre de fichiers modifiés sans diff dans `files` |

1750| `unavailable` | boolean | `true` | Défini quand le diff est incomplet ou n'a pas pu être pris |1750| `unavailable` | boolean | `true` | Défini quand le diff est incomplet ou n'a pas pu être pris |

1751| `skipped` | boolean | `true` | Défini pour une commande Git qui déplace l'arborescence de travail, comme `git checkout` ou `git stash`, donc Claude Code ne prend pas de diff |1751| `skipped` | boolean | `true` | Défini pour une commande Git qui déplace l'arborescence de travail, comme `git checkout` ou `git stash`, donc Claude Code ne prend pas de diff |

1752| `shared` | boolean | `true` | Défini quand un autre appel d'outil Bash, comme celui d'un sous-agent, s'est exécuté dans le même référentiel au même moment, donc certains changements listés peuvent être celui de cette commande |1752| `shared` | boolean | `true` | Défini quand un autre appel d'outil Bash, comme celui d'un sous-agent, s'exécutait dans le même référentiel au même moment, donc certains changements listés peuvent être celui de cette commande |

1753 1753 

1754<a id="powershell" />1754<a id="powershell" />

1755 1755 


1872| `subagent_type` | string | `"Explore"` | Type d'agent spécialisé à utiliser |1872| `subagent_type` | string | `"Explore"` | Type d'agent spécialisé à utiliser |

1873| `model` | string | `"sonnet"` | Alias de modèle optionnel pour remplacer le défaut |1873| `model` | string | `"sonnet"` | Alias de modèle optionnel pour remplacer le défaut |

1874 1874 

1875Quand un appel Agent au premier plan se termine, votre hook [PostToolUse](#posttooluse) reçoit le résultat du sous-agent et la télémétrie d'exécution dans `tool_response`. Lisez ces champs pour inspecter l'exécution ; pour les cumuls de tokens et de coûts entre les sous-agents, utilisez les [compteurs de tokens et de coûts](/docs/fr/monitoring-usage#token-counter) filtrés à `query_source` `"subagent"`, puisque `totalTokens` et `usage` couvrent uniquement la demande finale :1875Quand un appel Agent au premier plan se termine, votre hook [PostToolUse](#posttooluse) reçoit le résultat du sous-agent et la télémétrie d'exécution dans `tool_response`. Lisez ces champs pour inspecter l'exécution ; pour les cumuls de tokens et de coûts entre les sous-agents, utilisez les [compteurs de tokens et de coûts](/docs/fr/monitoring-usage#token-counter) filtrés à `query_source` `"subagent"`, puisque `totalTokens` et `usage` couvrent uniquement la requête finale :

1876 1876 

1877| Champ | Type | Exemple | Description |1877| Champ | Type | Exemple | Description |

1878| :- | :- | :- | :- |1878| :- | :- | :- | :- |


1881| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Les blocs de texte finaux du sous-agent, ou, pour un sous-agent dont le rapport passe par `SubagentHandback`, une brève note à ce sujet à leur place |1881| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Les blocs de texte finaux du sous-agent, ou, pour un sous-agent dont le rapport passe par `SubagentHandback`, une brève note à ce sujet à leur place |

1882| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modèle sur lequel le sous-agent a démarré, qui peut différer du modèle demandé |1882| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modèle sur lequel le sous-agent a démarré, qui peut différer du modèle demandé |

1883| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modèles utilisés dans l'ordre, avec les répétitions consécutives effondrées ; défini uniquement quand le modèle a été échangé en cours d'exécution. Nécessite Claude Code v2.1.212 ou ultérieur |1883| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modèles utilisés dans l'ordre, avec les répétitions consécutives effondrées ; défini uniquement quand le modèle a été échangé en cours d'exécution. Nécessite Claude Code v2.1.212 ou ultérieur |

1884| `totalTokens` | number | `12450` | Nombre de tokens de la demande API finale du sous-agent : tokens d'entrée, de sortie, et de cache combinés. Ce n'est pas un total sur toute l'exécution |1884| `totalTokens` | number | `12450` | Nombre de tokens de la requête API finale du sous-agent : tokens d'entrée, de sortie, et de cache combinés. Ce n'est pas un total sur toute l'exécution |

1885| `totalDurationMs` | number | `48211` | Durée d'horloge murale de l'exécution du sous-agent |1885| `totalDurationMs` | number | `48211` | Durée d'horloge murale de l'exécution du sous-agent |

1886| `totalToolUseCount` | number | `7` | Nombre d'appels d'outils que le sous-agent a effectués |1886| `totalToolUseCount` | number | `7` | Nombre d'appels d'outils que le sous-agent a effectués |

1887| `usage` | object | `{"input_tokens": 8320, ...}` | Ventilation des tokens par type de la demande API finale : `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1887| `usage` | object | `{"input_tokens": 8320, ...}` | Ventilation des tokens par type de la requête API finale : `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1888 1888 

1889Sur Claude Code v2.1.271 ou ultérieur, un sous-agent qui s'exécute avec l'outil [`SubagentHandback`](/docs/fr/tools-reference), que Claude Code fournit en [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode), livre son rapport via cet outil plutôt que de le retourner comme texte. Le champ `content` de son résultat `completed` porte alors une brève note à ce sujet plutôt que le rapport lui-même. Pour lire le rapport, correspondez à un hook `PreToolUse` ou `PostToolUse` sur `SubagentHandback` et lisez `tool_input.message`.1889Sur Claude Code v2.1.271 ou ultérieur, un sous-agent qui s'exécute avec l'outil [`SubagentHandback`](/docs/fr/tools-reference), que Claude Code fournit en [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode), livre son rapport via cet outil plutôt que de le retourner comme texte. Le champ `content` de son résultat `completed` porte alors une brève note à ce sujet plutôt que le rapport lui-même. Pour lire le rapport, correspondez à un hook `PreToolUse` ou `PostToolUse` sur `SubagentHandback` et lisez `tool_input.message`.

1890 1890 


1927 1927 

1928| Champ | Description |1928| Champ | Description |

1929| :- | :- |1929| :- | :- |

1930| `permissionDecision` | `"allow"` ignore l'invite de permission, sauf pour les [actions que aucun mode n'auto-approuve](/docs/fr/permission-modes#actions-no-mode-auto-approves) et pour `AskUserQuestion` et `ExitPlanMode`, qui ont besoin de [`updatedInput` associé à lui](#allow-with-updatedinput). `"deny"` empêche l'appel d'outil. `"ask"` invite l'utilisateur à confirmer. `"defer"` quitte proprement pour que l'outil puisse être repris plus tard. Les [règles de refus et de demande](/docs/fr/permissions#manage-permissions) sont toujours évaluées indépendamment de ce que le hook retourne |1930| `permissionDecision` | `"allow"` ignore l'invite de permission, sauf pour les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves) et pour `AskUserQuestion` et `ExitPlanMode`, qui ont besoin de [`updatedInput` associé](#allow-with-updatedinput). `"deny"` empêche l'appel d'outil. `"ask"` demande à l'utilisateur de confirmer. `"defer"` quitte proprement pour que l'outil puisse être repris plus tard. Les [règles de refus et de demande](/docs/fr/permissions#manage-permissions) sont toujours évaluées indépendamment de ce que le hook retourne |

1931| `permissionDecisionReason` | Pour `"ask"`, montré à l'utilisateur mais pas Claude. Pour `"deny"`, montré à Claude. Pour `"allow"` et `"defer"`, écrit au [journal de débogage](#debug-hooks) uniquement |1931| `permissionDecisionReason` | Pour `"ask"`, montré à l'utilisateur mais pas Claude. Pour `"deny"`, montré à Claude. Pour `"allow"` et `"defer"`, écrit au [journal de débogage](#debug-hooks) uniquement |

1932| `updatedInput` | Modifie les paramètres d'entrée de l'outil avant l'exécution. Remplace l'objet d'entrée entier, donc incluez les champs inchangés aux côtés des champs modifiés. Claude Code évalue les règles de permission et l'[éligibilité de mise en arrière-plan automatique](/docs/fr/tools-reference#background-commands) d'une commande Bash contre l'entrée que votre hook retourne, pas l'entrée que Claude a envoyée. Combinez avec `"allow"` pour auto-approuver, ou `"ask"` pour montrer l'entrée modifiée à l'utilisateur. Pour `"defer"`, ignoré |1932| `updatedInput` | Modifie les paramètres d'entrée de l'outil avant l'exécution. Remplace l'objet d'entrée entier, donc incluez les champs inchangés aux côtés des champs modifiés. Claude Code évalue les règles de permission et l'[éligibilité de mise en arrière-plan automatique](/docs/fr/tools-reference#background-commands) d'une commande Bash contre l'entrée que votre hook retourne, pas l'entrée que Claude a envoyée. Combinez avec `"allow"` pour approuver automatiquement, ou `"ask"` pour montrer l'entrée modifiée à l'utilisateur. Pour `"defer"`, ignoré |

1933| `additionalContext` | Chaîne ajoutée au contexte de Claude aux côtés du résultat d'outil. Ignoré quand `permissionDecision` est `"defer"`. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |1933| `additionalContext` | Chaîne ajoutée au contexte de Claude aux côtés du résultat d'outil. Ignoré quand `permissionDecision` est `"defer"`. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |

1934 1934 

1935Quand plusieurs hooks PreToolUse retournent des décisions différentes, la priorité est `deny` > `defer` > `ask` > `allow`.1935Quand plusieurs hooks PreToolUse retournent des décisions différentes, la priorité est `deny` > `defer` > `ask` > `allow`.

1936 1936 

1937Un hook qui bloque en quittant 2 s'achemine de la même façon que `"deny"` : Claude voit le message stderr comme la raison du refus.1937Un hook qui bloque en quittant 2 s'achemine de la même façon que `"deny"` : Claude voit le message stderr comme la raison du refus.

1938 1938 

1939Quand un hook retourne `"ask"`, l'invite de permission affichée à l'utilisateur inclut une étiquette identifiant d'où vient le hook : `[settings]` pour un hook de n'importe quel fichier de paramètres ou du frontmatter d'agent, `[plugin:<name>]` pour le hook d'un plugin, ou `[skill]` pour un hook du frontmatter de skill. Cela aide les utilisateurs à comprendre quelle source de configuration demande une confirmation.1939Quand un hook retourne `"ask"`, l'invite de permission affichée à l'utilisateur inclut une étiquette identifiant d'où vient le hook : `[settings]` pour un hook de n'importe quel fichier de paramètres ou du frontmatter d'agent, `[plugin:<name>]` pour le hook d'un plugin, ou `[skill]` pour un hook du frontmatter de skill. Cela aide les utilisateurs à comprendre quelle source de configuration demande la confirmation.

1940 1940 

1941Un `"ask"` d'un hook force également une invite de permission en [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) : le classificateur peut toujours refuser l'appel d'outil, mais il ne peut pas approuver l'appel silencieusement. Avant v2.1.211, le classificateur pouvait approuver une commande Bash s'exécutant en dehors du [sandbox](/docs/fr/sandboxing) sans montrer l'invite que le hook a demandée ; le classificateur appliquait toujours ses propres règles de sécurité à cette commande, et un refus de hook `"deny"` était toujours honoré.1941Un `"ask"` d'un hook force également une invite de permission en [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) : le classificateur peut toujours refuser l'appel d'outil, mais il ne peut pas approuver l'appel silencieusement. Avant v2.1.211, le classificateur pouvait approuver une commande Bash s'exécutant en dehors du [sandbox](/docs/fr/sandboxing) sans montrer l'invite que le hook a demandée ; le classificateur appliquait toujours ses propres règles de sécurité à cette commande, et un refus de hook `"deny"` était toujours honoré.

1942 1942 


1956 1956 

1957<span id="allow-with-updatedinput" />1957<span id="allow-with-updatedinput" />

1958 1958 

1959En [mode non-interactif](/docs/fr/headless) avec le drapeau `-p`, Claude Code offre `AskUserQuestion` et `ExitPlanMode` uniquement quand l'exécution a un [hôte de permission](/docs/fr/headless#turn-off-permission-prompts-in-unattended-runs) pour recevoir l'invite, comme un rappel `canUseTool` d'Agent SDK. Ces outils nécessitent l'interaction de l'utilisateur. Retourner `permissionDecision: "allow"` avec `updatedInput` satisfait cette exigence : le hook lit l'entrée de l'outil depuis stdin, collecte la réponse via votre propre UI, et la retourne dans `updatedInput` pour que l'outil s'exécute sans inviter. Retourner `"allow"` seul n'est pas suffisant pour ces outils. Pour `AskUserQuestion`, renvoyez le tableau `questions` original et ajoutez un objet [`answers`](#askuserquestion) mappant le texte de chaque question à la réponse choisie.1959En [mode non-interactif](/docs/fr/headless) avec le drapeau `-p`, Claude Code offre `AskUserQuestion` et `ExitPlanMode` uniquement quand l'exécution a un [hôte de permission](/docs/fr/headless#turn-off-permission-prompts-in-unattended-runs) pour recevoir l'invite, comme un rappel `canUseTool` d'Agent SDK. Ces outils nécessitent l'interaction de l'utilisateur. Retourner `permissionDecision: "allow"` avec `updatedInput` satisfait cette exigence : le hook lit l'entrée de l'outil depuis stdin, collecte la réponse via votre propre interface utilisateur, et la retourne dans `updatedInput` pour que l'outil s'exécute sans demander. Retourner `"allow"` seul n'est pas suffisant pour ces outils. Pour `AskUserQuestion`, renvoyez le tableau `questions` original et ajoutez un objet [`answers`](#askuserquestion) mappant le texte de chaque question à la réponse choisie.

1960 1960 

1961À partir de v2.1.199, un outil MCP dont le serveur le marque avec [`_meta["anthropic/requiresUserInteraction"]`](/docs/fr/mcp#require-approval-for-a-specific-tool) est plus strict : un hook ne peut pas ignorer son invite d'approbation avec `"allow"`, avec ou sans `updatedInput`, parce que Claude Code ne peut pas confirmer que le hook a collecté l'interaction que l'outil nécessite.1961À partir de v2.1.199, un outil MCP dont le serveur le marque avec [`_meta["anthropic/requiresUserInteraction"]`](/docs/fr/mcp#require-approval-for-a-specific-tool) est plus strict : un hook ne peut pas ignorer son invite d'approbation avec `"allow"`, avec ou sans `updatedInput`, parce que Claude Code ne peut pas confirmer que le hook a collecté l'interaction que l'outil nécessite.

1962 1962 


1968 Différer un appel d'outil pour plus tard1968 Différer un appel d'outil pour plus tard

1969</h4>1969</h4>

1970 1970 

1971`"defer"` est pour les intégrations qui exécutent `claude -p` comme un sous-processus et lisent sa sortie JSON, comme une application Agent SDK ou une UI personnalisée construite au-dessus de Claude Code. Cela permet à ce processus appelant de mettre en pause Claude à un appel d'outil, de collecter l'entrée via sa propre interface, et de reprendre où il s'était arrêté. Claude Code honore cette valeur uniquement en [mode non-interactif](/docs/fr/headless) avec le drapeau `-p`. Dans les sessions interactives, il enregistre un avertissement et ignore le résultat du hook.1971`"defer"` est pour les intégrations qui exécutent `claude -p` comme un sous-processus et lisent sa sortie JSON, comme une application Agent SDK ou une interface utilisateur personnalisée construite au-dessus de Claude Code. Cela permet à ce processus appelant de mettre en pause Claude à un appel d'outil, de collecter l'entrée via sa propre interface, et de reprendre où il s'était arrêté. Claude Code honore cette valeur uniquement en [mode non-interactif](/docs/fr/headless) avec le drapeau `-p`. Dans les sessions interactives, il enregistre un avertissement et ignore le résultat du hook.

1972 1972 

1973L'outil `AskUserQuestion` est le cas typique : Claude veut poser quelque chose à l'utilisateur, mais il n'y a pas de terminal pour répondre. Une exécution `-p` offre `AskUserQuestion` uniquement quand elle a un [hôte de permission](/docs/fr/headless#turn-off-permission-prompts-in-unattended-runs), comme un outil MCP que vous passez avec `--permission-prompt-tool`, donc commencez l'exécution avec un. Le aller-retour fonctionne comme ceci :1973L'outil `AskUserQuestion` est le cas typique : Claude veut poser quelque chose à l'utilisateur, mais il n'y a pas de terminal pour répondre. Une exécution `-p` offre `AskUserQuestion` uniquement quand elle a un [hôte de permission](/docs/fr/headless#turn-off-permission-prompts-in-unattended-runs), comme un outil MCP que vous passez avec `--permission-prompt-tool`, donc commencez l'exécution avec un. Le aller-retour fonctionne comme ceci :

1974 1974 

19751. Claude appelle `AskUserQuestion`. Le hook `PreToolUse` se déclenche.19751. Claude appelle `AskUserQuestion`. Le hook `PreToolUse` se déclenche.

19762. Le hook retourne `permissionDecision: "defer"`. L'outil ne s'exécute pas. Le processus quitte avec `stop_reason: "tool_deferred"` et l'appel d'outil en attente préservé dans la transcription.19762. Le hook retourne `permissionDecision: "defer"`. L'outil ne s'exécute pas. Le processus quitte avec `stop_reason: "tool_deferred"` et l'appel d'outil en attente préservé dans la transcription.

19773. Le processus appelant lit `deferred_tool_use` du résultat SDK, affiche la question dans sa propre UI, et attend une réponse.19773. Le processus appelant lit `deferred_tool_use` du résultat SDK, affiche la question dans sa propre interface utilisateur, et attend une réponse.

19784. Le processus appelant exécute `claude -p --resume <session-id>` avec le même hôte de permission. Le même appel d'outil déclenche `PreToolUse` à nouveau.19784. Le processus appelant exécute `claude -p --resume <session-id>` avec le même hôte de permission. Le même appel d'outil déclenche `PreToolUse` à nouveau.

19795. Le hook retourne `permissionDecision: "allow"` avec la réponse dans `updatedInput`. L'outil s'exécute et Claude continue.19795. Le hook retourne `permissionDecision: "allow"` avec la réponse dans `updatedInput`. L'outil s'exécute et Claude continue.

1980 1980 

1981Le champ `deferred_tool_use` porte l'`id` de l'outil, le `name`, et l'`input`. L'`input` est les paramètres que Claude a générés pour l'appel d'outil, capturés avant l'exécution :1981Le champ `deferred_tool_use` porte l'`id`, le `name`, et l'`input` de l'outil. L'`input` est les paramètres que Claude a générés pour l'appel d'outil, capturés avant l'exécution :

1982 1982 

1983```json theme={null}1983```json theme={null}

1984{1984{


1994}1994}

1995```1995```

1996 1996 

1997Il n'y a pas de délai d'expiration ou de limite de tentatives. La session reste sur le disque jusqu'à ce que vous la repreniez, soumise aux [règles de balayage de rétention](/docs/fr/claude-directory#cleaned-up-automatically) de [`cleanupPeriodDays`](/docs/fr/settings-reference#cleanupperioddays), qui supprime les fichiers de session après 30 jours par défaut. Si la réponse n'est pas prête quand vous reprenez, le hook peut retourner `"defer"` à nouveau et le processus quitte de la même façon. Le processus appelant contrôle quand casser la boucle en retournant finalement `"allow"` ou `"deny"` du hook.1997Il n'y a pas de délai d'expiration ou de limite de tentatives. La session reste sur le disque jusqu'à ce que vous la repreniez, soumise aux règles de balayage de rétention [`cleanupPeriodDays`](/docs/fr/settings-reference#cleanupperioddays), qui supprime les fichiers de session après 30 jours par défaut, en suivant les [règles de balayage de rétention](/docs/fr/claude-directory#cleaned-up-automatically). Si la réponse n'est pas prête quand vous reprenez, le hook peut retourner `"defer"` à nouveau et le processus quitte de la même façon. Le processus appelant contrôle quand casser la boucle en retournant finalement `"allow"` ou `"deny"` du hook.

1998 1998 

1999`"defer"` fonctionne uniquement quand Claude effectue un seul appel d'outil dans le tour. Si Claude effectue plusieurs appels d'outils à la fois, `"defer"` est ignoré avec un avertissement et l'outil procède via le flux de permission normal. La contrainte existe parce que la reprise ne peut réexécuter qu'un seul outil : il n'y a aucun moyen de différer un appel d'un lot sans laisser les autres non résolus.1999`"defer"` fonctionne uniquement quand Claude effectue un seul appel d'outil dans le tour. Si Claude effectue plusieurs appels d'outils à la fois, `"defer"` est ignoré avec un avertissement et l'outil procède par le flux de permission normal. La contrainte existe parce que la reprise ne peut relancer qu'un seul outil : il n'y a aucun moyen de différer un appel d'un lot sans laisser les autres non résolus.

2000 2000 

2001Si l'outil différé n'est plus disponible quand vous reprenez, le processus quitte avec `stop_reason: "tool_deferred_unavailable"` et `is_error: true` avant que le hook se déclenche. Cela se produit quand un serveur MCP qui a fourni l'outil n'est pas connecté pour la session reprise. La charge utile `deferred_tool_use` est toujours incluse pour que vous puissiez identifier quel outil a disparu.2001Si l'outil différé n'est plus disponible quand vous reprenez, le processus quitte avec `stop_reason: "tool_deferred_unavailable"` et `is_error: true` avant que le hook se déclenche. Cela se produit quand un serveur MCP qui a fourni l'outil n'est pas connecté pour la session reprise. La charge utile `deferred_tool_use` est toujours incluse pour que vous puissiez identifier quel outil a disparu.

2002 2002 


2015 2015 

2016Utilisez cet événement quand vous avez besoin d'un signal au moment où Claude demande la permission d'utiliser un outil. Claude Code exécute un hook [Notification](#notification) avec le type `permission_prompt` uniquement après que l'invite ait attendu environ six secondes.2016Utilisez cet événement quand vous avez besoin d'un signal au moment où Claude demande la permission d'utiliser un outil. Claude Code exécute un hook [Notification](#notification) avec le type `permission_prompt` uniquement après que l'invite ait attendu environ six secondes.

2017 2017 

2018Claude Code n'exécute pas les hooks PermissionRequest pour la [demande réseau](/docs/fr/sandboxing#network-isolation) d'une commande en sandbox. Pour obtenir un signal pour cette invite, utilisez le type de notification `permission_prompt`.2018Claude Code n'exécute pas les hooks PermissionRequest pour la [requête réseau](/docs/fr/sandboxing#network-isolation) d'une commande en sandbox. Pour obtenir un signal pour cette invite, utilisez le type de notification `permission_prompt`.

2019 2019 

2020Correspond au nom de l'outil, mêmes valeurs que PreToolUse.2020Correspond au nom de l'outil, mêmes valeurs que PreToolUse.

2021 2021 


2023 Entrée PermissionRequest2023 Entrée PermissionRequest

2024</h4>2024</h4>

2025 2025 

2026Les hooks PermissionRequest reçoivent les champs `tool_name` et `tool_input` comme les hooks PreToolUse, mais sans `tool_use_id`. Pour un outil MCP, ils reçoivent également l'objet [`mcp_server`](#pretooluse-input). Un tableau optionnel `permission_suggestions` contient les [mises à jour de permission](#permission-update-entries) que Claude Code suggère pour cette demande, comme ajouter une règle d'autorisation ou changer le mode de permission.2026Les hooks PermissionRequest reçoivent les champs `tool_name` et `tool_input` comme les hooks PreToolUse, mais sans `tool_use_id`. Pour un outil MCP, ils reçoivent également l'objet [`mcp_server`](#pretooluse-input). Un tableau optionnel `permission_suggestions` contient les [mises à jour de permission](#permission-update-entries) que Claude Code suggère pour cette requête, comme ajouter une règle d'autorisation ou changer le mode de permission.

2027 2027 

2028Le tableau `permission_suggestions` n'est pas une liste exacte des options que vous voyez, parce que chaque dialogue de permission construit ses propres options. Certains dialogues, comme celui pour les éditions de fichiers, ne lisent pas du tout le tableau et dérivent leurs options de la demande elle-même. Un dialogue qui le lit peut toujours retenir une option dont la suggestion reste dans le tableau, par exemple quand [`allowManagedPermissionRulesOnly`](/docs/fr/settings-reference#allowmanagedpermissionrulesonly) cache les options de sauvegarde de règles. Il peut également offrir des options qui n'ont pas d'entrée de suggestion, comme [**Oui, et basculer en mode auto**](/docs/fr/permission-modes#switch-permission-modes), qui change le mode de permission directement plutôt que via une mise à jour de permission.2028Le tableau `permission_suggestions` n'est pas une liste exacte des options que vous voyez, parce que chaque dialogue de permission construit ses propres options. Certains dialogues, comme celui pour les éditions de fichiers, ne lisent pas du tout le tableau et dérivent leurs options de la requête elle-même. Un dialogue qui le lit peut toujours retenir une option dont la suggestion reste dans le tableau, par exemple quand [`allowManagedPermissionRulesOnly`](/docs/fr/settings-reference#allowmanagedpermissionrulesonly) cache les options de sauvegarde de règles. Il peut également offrir des options qui n'ont pas d'entrée de suggestion, comme [**Oui, et passer en mode auto**](/docs/fr/permission-modes#switch-permission-modes), qui change le mode de permission directement plutôt que via une mise à jour de permission.

2029 2029 

2030Les hooks PreToolUse s'exécutent avant chaque appel d'outil, qu'il ait besoin de permission ou non. Les hooks PermissionRequest s'exécutent uniquement quand Claude Code est sur le point de vous demander la permission, ou quand il refuserait autrement un appel qui ne peut pas inviter. Aucun événement ne se déclenche pour [`EndConversation`](/docs/fr/tools-reference#endconversation-tool-behavior).2030Les hooks PreToolUse s'exécutent avant chaque appel d'outil, qu'il ait besoin de permission ou non. Les hooks PermissionRequest s'exécutent uniquement quand Claude Code est sur le point de vous demander la permission, ou quand il refuserait autrement un appel qui ne peut pas demander. Aucun événement ne se déclenche pour [`EndConversation`](/docs/fr/tools-reference#endconversation-tool-behavior).

2031 2031 

2032```json theme={null}2032```json theme={null}

2033{2033{


2066| `message` | Pour `"deny"` uniquement : dit à Claude pourquoi la permission a été refusée |2066| `message` | Pour `"deny"` uniquement : dit à Claude pourquoi la permission a été refusée |

2067| `interrupt` | Pour `"deny"` uniquement : si `true`, arrête Claude |2067| `interrupt` | Pour `"deny"` uniquement : si `true`, arrête Claude |

2068 2068 

2069Un hook qui quitte 2 sans un objet `decision` laisse le flux de permission inchangé, et son stderr est rejeté. Seul l'objet `decision` peut accorder ou refuser la demande.2069Un hook qui quitte 2 sans un objet `decision` laisse le flux de permission inchangé, et son stderr est rejeté. Seul l'objet `decision` peut accorder ou refuser la requête.

2070 2070 

2071```json theme={null}2071```json theme={null}

2072{2072{


2191```2191```

2192 2192 

2193<Warning>2193<Warning>

2194 `updatedToolOutput` change uniquement ce que Claude voit. L'outil s'est déjà exécuté au moment où le hook se déclenche, donc tous les fichiers écrits, commandes exécutées, ou demandes réseau envoyées ont déjà pris effet. La télémétrie comme les spans d'outils OpenTelemetry et les événements d'analyse capturent également la sortie originale avant que le hook s'exécute. Pour empêcher ou modifier un appel d'outil avant qu'il s'exécute, utilisez plutôt un hook [PreToolUse](#pretooluse).2194 `updatedToolOutput` change uniquement ce que Claude voit. L'outil s'est déjà exécuté au moment où le hook se déclenche, donc tous les fichiers écrits, commandes exécutées, ou requêtes réseau envoyées ont déjà pris effet. La télémétrie comme les spans d'outils OpenTelemetry et les événements d'analyse capturent également la sortie originale avant que le hook s'exécute. Pour empêcher ou modifier un appel d'outil avant qu'il s'exécute, utilisez plutôt un hook [PreToolUse](#pretooluse).

2195 2195 

2196 La valeur de remplacement doit correspondre à la forme de sortie de l'outil. Les outils intégrés retournent des objets structurés plutôt que des chaînes brutes. Par exemple, `Bash` retourne un objet avec les champs `stdout`, `stderr`, `interrupted`, et `isImage`. Pour les outils intégrés, une valeur qui ne correspond pas au schéma de sortie de l'outil est ignorée et la sortie originale est utilisée. La sortie d'outil MCP est transmise sans validation de schéma. Supprimer les détails d'erreur que Claude a besoin peut le faire procéder sur une fausse hypothèse.2196 La valeur de remplacement doit correspondre à la forme de sortie de l'outil. Les outils intégrés retournent des objets structurés plutôt que des chaînes brutes. Par exemple, `Bash` retourne un objet avec les champs `stdout`, `stderr`, `interrupted`, et `isImage`. Pour les outils intégrés, une valeur qui ne correspond pas au schéma de sortie de l'outil est ignorée et la sortie originale est utilisée. La sortie d'outil MCP est transmise sans validation de schéma. Supprimer les détails d'erreur dont Claude a besoin peut le faire procéder sur une fausse hypothèse.

2197</Warning>2197</Warning>

2198 2198 

2199<h4 id="annotate-a-result-for-the-auto-mode-classifier">2199<h4 id="annotate-a-result-for-the-auto-mode-classifier">


2238Correspond au nom de l'outil, mêmes valeurs que PreToolUse.2238Correspond au nom de l'outil, mêmes valeurs que PreToolUse.

2239 2239 

2240<Note>2240<Note>

2241 Cet événement ne se déclenche pas pour les appels d'outils rejetés avant l'exécution : un nom d'outil inconnu, une entrée qui échoue la validation de schéma ou spécifique à l'outil, ou un refus de permission. Les rejets de validation sont retournés comme des résultats `tool_use_error` et se produisent avant que les hooks s'exécutent, donc ils ne déclenchent ni `PreToolUse` ni `PostToolUseFailure`. Les refus de permission déclenchent `PreToolUse` mais pas cet événement ; voir [PermissionDenied](#permissiondenied).2241 Cet événement ne se déclenche pas pour les appels d'outils rejetés avant l'exécution : un nom d'outil inconnu, une entrée qui échoue la validation de schéma ou spécifique à l'outil, ou un refus de permission. Les rejets de validation sont retournés comme résultats `tool_use_error` et se produisent avant que les hooks s'exécutent, donc ils ne déclenchent ni `PreToolUse` ni `PostToolUseFailure`. Les refus de permission déclenchent `PreToolUse` mais pas cet événement ; voir [PermissionDenied](#permissiondenied).

2242</Note>2242</Note>

2243 2243 

2244<h4 id="posttoolusefailure-input">2244<h4 id="posttoolusefailure-input">


2276 2276 

2277* Pour Bash et PowerShell, une commande qui s'est exécutée et a quitté produit une première ligne `Exit code N`, puis toute sortie que la commande a produite comme un bloc avec stdout et stderr entrelacés2277* Pour Bash et PowerShell, une commande qui s'est exécutée et a quitté produit une première ligne `Exit code N`, puis toute sortie que la commande a produite comme un bloc avec stdout et stderr entrelacés

2278* Une charge utile peut également porter un message d'échec nu sans ligne de code de sortie, quand Claude Code n'a pas pu démarrer le processus shell lui-même2278* Une charge utile peut également porter un message d'échec nu sans ligne de code de sortie, quand Claude Code n'a pas pu démarrer le processus shell lui-même

2279* Claude Code tronque au milieu les longues chaînes autour d'un marqueur `... [N characters truncated] ...`, et peut insérer des lignes de son propre, comme `Command timed out after 2m 0s`2279* Claude Code tronque au milieu les longues chaînes autour d'un marqueur `... [N characters truncated] ...`, et peut insérer ses propres lignes, comme `Command timed out after 2m 0s`

2280 2280 

2281<h4 id="posttoolusefailure-decision-control">2281<h4 id="posttoolusefailure-decision-control">

2282 Contrôle de décision PostToolUseFailure2282 Contrôle de décision PostToolUseFailure


2301 PostToolBatch2301 PostToolBatch

2302</h3>2302</h3>

2303 2303 

2304S'exécute une fois après que chaque appel d'outil dans un lot se soit résolu, avant que Claude Code envoie la demande suivante au modèle. `PostToolUse` se déclenche une fois par outil, ce qui signifie qu'il se déclenche simultanément quand Claude effectue des appels d'outils parallèles. `PostToolBatch` se déclenche exactement une fois avec le lot complet, donc c'est le bon endroit pour injecter du contexte qui dépend de l'ensemble des outils qui se sont exécutés plutôt que de n'importe quel outil unique. Il n'y a pas de matcher pour cet événement.2304S'exécute une fois après que chaque appel d'outil dans un lot se soit résolu, avant que Claude Code envoie la requête suivante au modèle. `PostToolUse` se déclenche une fois par outil, ce qui signifie qu'il se déclenche simultanément quand Claude effectue des appels d'outils parallèles. `PostToolBatch` se déclenche exactement une fois avec le lot complet, donc c'est le bon endroit pour injecter du contexte qui dépend de l'ensemble des outils qui se sont exécutés plutôt que de n'importe quel outil unique. Il n'y a pas de matcher pour cet événement.

2305 2305 

2306<h4 id="posttoolbatch-input">2306<h4 id="posttoolbatch-input">

2307 Entrée PostToolBatch2307 Entrée PostToolBatch


2364 PermissionDenied2364 PermissionDenied

2365</h3>2365</h3>

2366 2366 

2367S'exécute quand le [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) refuse un appel d'outil, y compris quand il refuse sans un verdict du classificateur parce qu'une [vérification de sécurité séparée du mode auto a refusé la demande du classificateur lui-même](/docs/fr/errors#auto-mode-cannot-determine-the-safety-of-an-action) ou sa réponse n'a pas analysé. Ce hook ne se déclenche que en mode auto : il ne s'exécute pas quand vous refusez manuellement un dialogue de permission, quand un hook `PreToolUse` bloque un appel, ou quand une règle `deny` correspond. Utilisez-le pour enregistrer les refus, ajuster la configuration, ou dire au modèle qu'il peut réessayer l'appel d'outil.2367S'exécute quand le [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) refuse un appel d'outil, y compris quand il refuse sans verdict du classificateur parce qu'une [vérification de sécurité séparée du mode auto a refusé la propre requête du classificateur](/docs/fr/errors#auto-mode-cannot-determine-the-safety-of-an-action) ou sa réponse n'a pas analysé. Ce hook ne se déclenche que en mode auto : il ne s'exécute pas quand vous refusez manuellement un dialogue de permission, quand un hook `PreToolUse` bloque un appel, ou quand une règle `deny` correspond. Utilisez-le pour enregistrer les refus, ajuster la configuration, ou dire au modèle qu'il peut réessayer l'appel d'outil.

2368 2368 

2369Correspond au nom de l'outil, mêmes valeurs que PreToolUse.2369Correspond au nom de l'outil, mêmes valeurs que PreToolUse.

2370 2370 


2412 2412 

2413Quand `retry` est `true`, Claude Code ajoute un message à la conversation disant au modèle qu'il peut réessayer l'appel d'outil. Claude Code ne renverse pas le refus lui-même. Si votre hook ne retourne pas JSON, ou retourne `retry: false`, le refus tient et le modèle reçoit le message de rejet original.2413Quand `retry` est `true`, Claude Code ajoute un message à la conversation disant au modèle qu'il peut réessayer l'appel d'outil. Claude Code ne renverse pas le refus lui-même. Si votre hook ne retourne pas JSON, ou retourne `retry: false`, le refus tient et le modèle reçoit le message de rejet original.

2414 2414 

2415Claude Code ignore `retry: true` quand le classificateur a produit [aucun verdict sur l'action](/docs/fr/errors#auto-mode-cannot-determine-the-safety-of-an-action) : sa réponse n'a pas analysé, ou une vérification de sécurité séparée du mode auto a refusé la demande du classificateur. Pour ces refus, Claude Code dit déjà au modèle dans le message de rejet s'il faut réessayer plus tard ou continuer.2415Claude Code ignore `retry: true` quand le classificateur a produit [aucun verdict sur l'action](/docs/fr/errors#auto-mode-cannot-determine-the-safety-of-an-action) : sa réponse n'a pas analysé, ou une vérification de sécurité séparée du mode auto a refusé la requête du classificateur. Pour ces refus, Claude Code dit déjà au modèle dans le message de rejet s'il faut réessayer plus tard ou continuer.

2416 2416 

2417<h3 id="notification">2417<h3 id="notification">

2418 Notification2418 Notification


2424 2424 

2425| Matcher | Quand il se déclenche |2425| Matcher | Quand il se déclenche |

2426| :- | :- |2426| :- | :- |

2427| `permission_prompt` | Claude a besoin de votre permission pour utiliser un outil ou la [demande réseau](/docs/fr/sandboxing#network-isolation) d'une commande en sandbox, et l'invite a attendu environ six secondes |2427| `permission_prompt` | Claude a besoin de votre permission pour utiliser un outil ou la [requête réseau](/docs/fr/sandboxing#network-isolation) d'une commande en sandbox, et l'invite a attendu environ six secondes |

2428| `idle_prompt` | Claude a fini de répondre il y a environ 60 secondes et vous n'avez pas tapé depuis |2428| `idle_prompt` | Claude a fini de répondre il y a environ 60 secondes et vous n'avez pas tapé depuis |

2429| `auth_success` | L'authentification se termine |2429| `auth_success` | L'authentification se termine |

2430| `elicitation_dialog` | Un serveur MCP ouvre un formulaire d'élicitation et vous n'avez pas tapé depuis environ six secondes |2430| `elicitation_dialog` | Un serveur MCP ouvre un formulaire d'élicitation et vous n'avez pas tapé pendant environ six secondes |

2431| `elicitation_url_dialog` | Un serveur MCP vous demande d'ouvrir une URL de navigateur et vous n'avez pas tapé depuis environ six secondes |2431| `elicitation_url_dialog` | Un serveur MCP vous demande d'ouvrir une URL de navigateur et vous n'avez pas tapé pendant environ six secondes |

2432| `elicitation_complete` | Un serveur MCP signale qu'une [élicitation en mode URL](#elicitation-input) est complète |2432| `elicitation_complete` | Un serveur MCP signale qu'une [élicitation en mode URL](#elicitation-input) est complète |

2433| `elicitation_response` | Une réponse d'élicitation MCP est renvoyée au serveur |2433| `elicitation_response` | Une réponse d'élicitation MCP est renvoyée au serveur |

2434| `agent_needs_input` | Une session en arrière-plan commence à attendre votre entrée pendant que la [vue agent](/docs/fr/agent-view) est ouverte dans un terminal, ou la session actuelle vous pose une [question de configuration de terminal d'un coéquipier d'équipe agent](/docs/fr/agent-teams#choose-a-display-mode) et vous n'avez pas tapé depuis environ six secondes |2434| `agent_needs_input` | Une session en arrière-plan commence à attendre votre entrée pendant que la [vue agent](/docs/fr/agent-view) est ouverte dans un terminal. Se déclenche également quand une session de terminal vous montre une [question de configuration de terminal du coéquipier d'une équipe d'agents](/docs/fr/agent-teams#choose-a-display-mode) ou l'avis du mode auto sur les [frais de requête du classificateur](/docs/fr/auto-mode-classifier-billing) et vous n'avez pas tapé pendant environ six secondes |

2435| `agent_completed` | Une session en arrière-plan se termine ou échoue. Se déclenche uniquement pendant que la [vue agent](/docs/fr/agent-view) est ouverte dans un terminal |2435| `agent_completed` | Une session en arrière-plan se termine ou échoue. Se déclenche uniquement pendant que la [vue agent](/docs/fr/agent-view) est ouverte dans un terminal |

2436| `quota_auto_resume_fired` | Claude Code continue votre tâche après qu'une limite d'utilisation claude.ai l'ait mise en pause : à la réinitialisation, ou plus tôt quand quelque chose que vous faites dans Claude Code pendant l'attente, comme ajouter des crédits d'utilisation, mettre à niveau votre plan, ou changer de modèles, rend l'utilisation disponible à nouveau, avec l'[exception de paramètre de modèle](/docs/fr/interactive-mode#wait-for-a-usage-limit-to-reset) |2436| `quota_auto_resume_fired` | Claude Code continue votre tâche après qu'une limite d'utilisation claude.ai l'ait mise en pause : à la réinitialisation, ou plus tôt quand quelque chose que vous faites dans Claude Code pendant l'attente, comme ajouter des crédits d'utilisation, mettre à niveau votre plan, ou changer de modèles, rend l'utilisation disponible à nouveau, avec l'[exception de paramètre de modèle](/docs/fr/interactive-mode#wait-for-a-usage-limit-to-reset) |

2437| `quota_auto_resume_stale` | Une limite d'utilisation claude.ai s'est réinitialisée pendant que votre ordinateur dormait pendant plus d'environ 30 minutes. Claude Code attend que vous appuyiez sur `Enter` au lieu de continuer. Après un sommeil plus court, il continue et se déclenche `quota_auto_resume_fired` à la place |2437| `quota_auto_resume_stale` | Une limite d'utilisation claude.ai s'est réinitialisée pendant que votre ordinateur dormait pendant plus d'environ 30 minutes. Claude Code attend que vous appuyiez sur `Enter` au lieu de continuer. Après un sommeil plus court, il continue et se déclenche `quota_auto_resume_fired` à la place |


2441 2441 

2442Les types `quota_auto_resume_fired`, `quota_auto_resume_stale`, et `quota_auto_resume_disabled` nécessitent Claude Code v2.1.234 ou ultérieur.2442Les types `quota_auto_resume_fired`, `quota_auto_resume_stale`, et `quota_auto_resume_disabled` nécessitent Claude Code v2.1.234 ou ultérieur.

2443 2443 

2444En sessions de terminal, `permission_prompt` pour la demande réseau d'une commande en sandbox nécessite Claude Code v2.1.246 ou ultérieur.2444En sessions de terminal, `permission_prompt` pour la requête réseau d'une commande en sandbox nécessite Claude Code v2.1.246 ou ultérieur.

2445 2445 

2446`agent_needs_input` pour une question de configuration de terminal d'un coéquipier nécessite Claude Code v2.1.248 ou ultérieur.2446`agent_needs_input` pour la question de configuration de terminal d'un coéquipier nécessite Claude Code v2.1.248 ou ultérieur.

2447 2447 

2448<Note>2448<Note>

2449 Les types `permission_prompt`, `idle_prompt`, `elicitation_dialog`, et `elicitation_url_dialog` partagent leur timing avec les notifications de bureau, donc en sessions de terminal vous ne les voyez que quand vous semblez être loin du terminal :2449 Les types `permission_prompt`, `idle_prompt`, `elicitation_dialog`, et `elicitation_url_dialog` partagent leur timing avec les notifications de bureau, donc en sessions de terminal vous ne les voyez que quand vous semblez être loin du terminal :

2450 2450 

2451 * Attendez `permission_prompt` une fois que vous n'avez pas tapé pendant environ six secondes. Le minuteur démarre quand l'invite de permission apparaît, et chaque frappe le reporte. Pour exécuter un hook immédiatement quand Claude demande la permission d'utiliser un outil, utilisez plutôt [PermissionRequest](#permissionrequest).2451 * Attendez `permission_prompt` une fois que vous n'avez pas tapé pendant environ six secondes. Le minuteur démarre quand l'invite de permission apparaît, et chaque frappe le reporte. Pour exécuter un hook immédiatement quand Claude demande la permission d'utiliser un outil, utilisez plutôt [PermissionRequest](#permissionrequest).

2452 * Attendez `idle_prompt` environ 60 secondes après que Claude finisse de répondre, et uniquement si vous n'avez pas tapé depuis. Claude Code n'envoie pas `idle_prompt` pendant qu'il attend qu'une limite d'utilisation claude.ai se réinitialise. Quand l'attente se termine seule, l'un des types `quota_auto_resume_*` se déclenche à la place.2452 * Attendez `idle_prompt` environ 60 secondes après que Claude finisse de répondre, et uniquement si vous n'avez pas tapé depuis. Claude Code n'envoie pas `idle_prompt` pendant qu'il attend qu'une limite d'utilisation claude.ai se réinitialise. Quand l'attente se termine d'elle-même, l'un des types `quota_auto_resume_*` se déclenche à la place.

2453 * Attendez `elicitation_dialog` pour un formulaire d'élicitation, ou `elicitation_url_dialog` pour une demande d'URL de navigateur, une fois que vous n'avez pas tapé pendant environ six secondes. Les deux partagent la même porte de six secondes que `permission_prompt` : le minuteur démarre quand le dialogue apparaît, et chaque frappe le reporte.2453 * Attendez `elicitation_dialog` pour un formulaire d'élicitation, ou `elicitation_url_dialog` pour une requête d'URL de navigateur, une fois que vous n'avez pas tapé pendant environ six secondes. Les deux partagent la même porte de six secondes que `permission_prompt` : le minuteur démarre quand le dialogue apparaît, et chaque frappe le reporte.

2454 2454 

2455 Une demande de permission ou d'élicitation qui arrive pendant qu'un autre dialogue est à l'écran garde la même porte de six secondes, chronométrée à partir de quand la demande arrive. Sa notification peut vous atteindre pendant que la demande attend toujours derrière le dialogue ouvert.2455 Une requête de permission ou d'élicitation qui arrive pendant qu'un autre dialogue est à l'écran garde la même porte de six secondes, chronométrée à partir de quand la requête arrive. Sa notification peut vous atteindre pendant que la requête attend toujours derrière le dialogue ouvert.

2456</Note>2456</Note>

2457 2457 

2458Claude Code chronométre `permission_prompt` différemment dans les sessions où il envoie les demandes de permission au rappel [`canUseTool`](/docs/fr/agent-sdk/user-input) d'Agent SDK, ce qui est comment Claude Desktop et l'extension VS Code hébergent Claude Code :2458Claude Code chronomètre `permission_prompt` différemment dans les sessions où il envoie les requêtes de permission au rappel [`canUseTool`](/docs/fr/agent-sdk/user-input) d'Agent SDK, ce qui est comment Claude Desktop et l'extension VS Code hébergent Claude Code :

2459 2459 

2460* Attendez `permission_prompt` environ six secondes après que Claude demande la permission. Claude Code ne le reporte pas pendant que vous tapez.2460* Attendez `permission_prompt` environ six secondes après que Claude demande la permission. Claude Code ne le reporte pas pendant que vous tapez.

2461* Si vous ou un hook [PermissionRequest](#permissionrequest) répondez plus tôt, Claude Code n'exécute pas `permission_prompt`.2461* Si vous ou un hook [PermissionRequest](#permissionrequest) répondez plus tôt, Claude Code n'exécute pas `permission_prompt`.


2516 SubagentStart2516 SubagentStart

2517</h3>2517</h3>

2518 2518 

2519S'exécute quand Claude crée un sous-agent avec l'outil Agent, quand Claude [reprend un sous-agent](/docs/fr/sub-agents#resume-subagents), et chaque fois qu'un coéquipier d'[équipe agent](/docs/fr/agent-teams) en processus gère un nouveau message. Supporte les matchers pour filtrer par nom de type d'agent. Pour les agents intégrés, c'est le nom de l'agent comme `general-purpose`, `Explore`, ou `Plan`. Pour les [sous-agents personnalisés](/docs/fr/sub-agents), c'est le champ `name` du frontmatter de l'agent, pas le nom du fichier.2519S'exécute quand Claude crée un sous-agent avec l'outil Agent, quand Claude [reprend un sous-agent](/docs/fr/sub-agents#resume-subagents), et chaque fois qu'un coéquipier d'[équipe d'agents](/docs/fr/agent-teams) en processus gère un nouveau message. Supporte les matchers pour filtrer par nom de type d'agent. Pour les agents intégrés, c'est le nom de l'agent comme `general-purpose`, `Explore`, ou `Plan`. Pour les [sous-agents personnalisés](/docs/fr/sub-agents), c'est le champ `name` du frontmatter de l'agent, pas le nom du fichier.

2520 2520 

2521Pour les sous-agents fournis par un [plugin](/docs/fr/plugins/overview), le type d'agent est l'identifiant scoped du plugin comme `my-plugin:reviewer`, pas le nom du frontmatter nu. Le deux-points place un nom scoped du plugin sur le chemin d'expression régulière, donc ancrez le matcher avec `^` et `$` pour une correspondance exacte : `^my-plugin:reviewer$`.2521Pour les sous-agents expédiés par un [plugin](/docs/fr/plugins/overview), le type d'agent est l'identifiant délimité par plugin comme `my-plugin:reviewer`, pas le nom du frontmatter nu. Le deux-points place un nom délimité par plugin sur le chemin d'expression régulière, donc ancrez le matcher avec `^` et `$` pour une correspondance exacte : `^my-plugin:reviewer$`.

2522 2522 

2523<h4 id="subagentstart-input">2523<h4 id="subagentstart-input">

2524 Entrée SubagentStart2524 Entrée SubagentStart

2525</h4>2525</h4>

2526 2526 

2527En plus des [champs d'entrée communs](#common-input-fields), les hooks SubagentStart reçoivent `agent_id` avec l'identifiant unique du sous-agent et `agent_type` avec le nom de l'agent que le matcher filtre.2527En plus des [champs d'entrée communs](#common-input-fields), les hooks SubagentStart reçoivent `agent_id` avec l'identifiant unique du sous-agent et `agent_type` avec le nom de l'agent sur lequel le matcher filtre.

2528 2528 

2529```json theme={null}2529```json theme={null}

2530{2530{


2566 2566 

2567En plus des [champs d'entrée communs](#common-input-fields), les hooks SubagentStop reçoivent `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, et `last_assistant_message`. Le champ `agent_type` est la valeur utilisée pour le filtrage du matcher. Le `transcript_path` est la transcription de la session principale, tandis que `agent_transcript_path` est la propre transcription du sous-agent stockée dans un dossier `subagents/` imbriqué. Le champ `last_assistant_message` contient le contenu textuel de la réponse finale du sous-agent, donc les hooks peuvent y accéder sans analyser le fichier de transcription.2567En plus des [champs d'entrée communs](#common-input-fields), les hooks SubagentStop reçoivent `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, et `last_assistant_message`. Le champ `agent_type` est la valeur utilisée pour le filtrage du matcher. Le `transcript_path` est la transcription de la session principale, tandis que `agent_transcript_path` est la propre transcription du sous-agent stockée dans un dossier `subagents/` imbriqué. Le champ `last_assistant_message` contient le contenu textuel de la réponse finale du sous-agent, donc les hooks peuvent y accéder sans analyser le fichier de transcription.

2568 2568 

2569Pas chaque événement SubagentStop provient d'un sous-agent que Claude a créé. Claude Code exécute également des agents internes pour certaines de ses propres fonctionnalités, comme les [suggestions d'invite](/docs/fr/interactive-mode#prompt-suggestions) et les [questions latérales `/btw`](/docs/fr/interactive-mode#side-questions-with-%2Fbtw), et SubagentStop se déclenche quand l'un de ceux-ci se termine aussi. Pour ces événements, `agent_type` est le nom de l'agent que la session elle-même exécute, comme celui défini avec [`--agent`](/docs/fr/cli-reference#cli-flags) ou le paramètre [`agent`](/docs/fr/settings-reference#agent), et une chaîne vide quand la session s'exécute sans un.2569Pas chaque événement SubagentStop provient d'un sous-agent que Claude a créé. Claude Code exécute également des agents internes pour certaines de ses propres fonctionnalités, comme les [suggestions d'invite](/docs/fr/interactive-mode#prompt-suggestions) et les [questions latérales `/btw`](/docs/fr/interactive-mode#side-questions-with-%2Fbtw), et SubagentStop se déclenche quand l'un d'eux se termine aussi. Pour ces événements, `agent_type` est le nom de l'agent que la session elle-même exécute, comme celui défini avec [`--agent`](/docs/fr/cli-reference#cli-flags) ou le paramètre [`agent`](/docs/fr/settings-reference#agent), et une chaîne vide quand la session s'exécute sans un.

2570 2570 

2571Un `matcher` qui nomme les types d'agent ne correspond pas à un `agent_type` vide. Un hook dont le matcher est omis, `""`, ou `"*"`, ou est une expression régulière qui correspond à une chaîne vide, s'exécute pour les événements avec un `agent_type` vide aussi.2571Un `matcher` qui nomme les types d'agent ne correspond pas à un `agent_type` vide. Un hook dont le matcher est omis, `""`, ou `"*"`, ou est une expression régulière qui correspond à une chaîne vide, s'exécute pour les événements avec un `agent_type` vide aussi.

2572 2572 

2573Sur Claude Code v2.1.271 ou ultérieur, un sous-agent qui s'exécute avec l'outil [`SubagentHandback`](/docs/fr/tools-reference) livre son rapport via cet outil avant qu'il ne s'arrête. Le champ `last_assistant_message` contient alors le texte de fermeture du sous-agent, le cas échéant, qui n'est pas le rapport livré. Le rapport est l'entrée `message` de cet appel, qu'un hook `PreToolUse` ou `PostToolUse` correspondant à `SubagentHandback` reçoit comme `tool_input.message`.2573Sur Claude Code v2.1.271 ou ultérieur, un sous-agent qui s'exécute avec l'outil [`SubagentHandback`](/docs/fr/tools-reference) livre son rapport via cet outil avant qu'il ne s'arrête. Le champ `last_assistant_message` contient alors le texte de fermeture du sous-agent, le cas échéant, qui n'est pas le rapport livré. Le rapport est l'entrée `message` de cet appel, qu'un hook `PreToolUse` ou `PostToolUse` correspondant à `SubagentHandback` reçoit comme `tool_input.message`.

2574 2574 

2575Les hooks SubagentStop reçoivent également les tableaux `background_tasks` et `session_crons` décrits sous [Entrée Stop](#stop-input). Les deux tableaux sont scoped à la session parent, pas au sous-agent.2575Les hooks SubagentStop reçoivent également les tableaux `background_tasks` et `session_crons` décrits sous [Entrée Stop](#stop-input). Les deux tableaux sont délimités à la session parent, pas au sous-agent.

2576 2576 

2577```json theme={null}2577```json theme={null}

2578{2578{


2657 TaskCompleted2657 TaskCompleted

2658</h3>2658</h3>

2659 2659 

2660S'exécute quand une tâche est en cours de marquage comme complétée. Cela se déclenche dans deux situations : quand n'importe quel agent mar explicitement une tâche comme complétée via l'outil TaskUpdate, ou quand un coéquipier d'[équipe agent](/docs/fr/agent-teams) termine son tour avec des tâches en cours. Utilisez ceci pour appliquer les critères de complétion comme passer les tests ou les vérifications lint avant qu'une tâche puisse se fermer.2660S'exécute quand une tâche est en cours de marquage comme complétée. Cela se déclenche dans deux situations : quand n'importe quel agent marque explicitement une tâche comme complétée via l'outil TaskUpdate, ou quand un coéquipier d'[équipe d'agents](/docs/fr/agent-teams) termine son tour avec des tâches en cours. Utilisez ceci pour appliquer les critères de complétion comme passer les tests ou les vérifications de lint avant qu'une tâche puisse se fermer.

2661 2661 

2662Les hooks TaskCompleted ne supportent pas les matchers et se déclenchent à chaque occurrence.2662Les hooks TaskCompleted ne supportent pas les matchers et se déclenchent à chaque occurrence.

2663 2663 


2722S'exécute quand l'agent Claude Code principal a fini de répondre. Ne s'exécute pas si l'arrêt s'est produit en raison d'une interruption utilisateur. Les erreurs API déclenchent plutôt [StopFailure](#stopfailure).2722S'exécute quand l'agent Claude Code principal a fini de répondre. Ne s'exécute pas si l'arrêt s'est produit en raison d'une interruption utilisateur. Les erreurs API déclenchent plutôt [StopFailure](#stopfailure).

2723 2723 

2724<Tip>2724<Tip>

2725 La commande [`/goal`](/docs/fr/goal) est un raccourci intégré pour un hook Stop basé sur les invites scoped à la session. Utilisez-le quand vous voulez que Claude continue à travailler vers une condition sans écrire la configuration du hook.2725 La commande [`/goal`](/docs/fr/goal) est un raccourci intégré pour un hook Stop basé sur les invites délimité à la session. Utilisez-le quand vous voulez que Claude continue à travailler vers une condition sans écrire la configuration du hook.

2726</Tip>2726</Tip>

2727 2727 

2728<h4 id="stop-input">2728<h4 id="stop-input">


2731 2731 

2732En plus des [champs d'entrée communs](#common-input-fields), les hooks Stop reçoivent `stop_hook_active`, `last_assistant_message`, `background_tasks`, et `session_crons`. Le champ `stop_hook_active` est `true` quand Claude Code continue déjà en raison d'un hook stop. Vérifiez cette valeur ou traitez la transcription pour éviter de bloquer sur une condition qui ne se résoudra jamais. Claude Code applique un plafond de 8 continuations consécutives : après que les hooks stop aient continué le tour huit fois de suite, Claude Code remplace le bloc suivant et termine le tour. Pour augmenter le plafond, définissez [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/fr/env-vars).2732En plus des [champs d'entrée communs](#common-input-fields), les hooks Stop reçoivent `stop_hook_active`, `last_assistant_message`, `background_tasks`, et `session_crons`. Le champ `stop_hook_active` est `true` quand Claude Code continue déjà en raison d'un hook stop. Vérifiez cette valeur ou traitez la transcription pour éviter de bloquer sur une condition qui ne se résoudra jamais. Claude Code applique un plafond de 8 continuations consécutives : après que les hooks stop aient continué le tour huit fois de suite, Claude Code remplace le bloc suivant et termine le tour. Pour augmenter le plafond, définissez [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/fr/env-vars).

2733 2733 

2734Le champ `last_assistant_message` contient le contenu textuel de la réponse finale de Claude, donc les hooks peuvent y accéder sans analyser le fichier de transcription. Pour les hooks qui agissent sur le tour qui vient de se terminer, comme les hooks de lecture à haute voix ou de notification, utilisez ce champ plutôt que de lire `transcript_path` : le fichier de transcription n'est pas garanti d'inclure le message final au moment de Stop sur toutes les versions.2734Le champ `last_assistant_message` contient le contenu textuel de la réponse finale de Claude, donc les hooks peuvent y accéder sans analyser le fichier de transcription. Pour les hooks qui agissent sur le tour qui vient de se terminer, comme les hooks de lecture à haute voix ou de notification, utilisez ce champ plutôt que de lire `transcript_path` : le fichier de transcription n'est pas garanti d'inclure le message final au moment du Stop sur toutes les versions.

2735 2735 

2736Les tableaux `background_tasks` et `session_crons` permettent aux hooks de distinguer « la session est terminée » de « la session est mise en pause en attente que le travail en arrière-plan la réveille ». Les deux tableaux sont présents quand le registre de tâches est accessible et sont vides quand rien n'est en vol ou programmé.2736Les tableaux `background_tasks` et `session_crons` permettent aux hooks de distinguer « la session est terminée » de « la session est en pause en attente que le travail en arrière-plan la réveille ». Les deux tableaux sont présents quand le registre de tâches est accessible et sont vides quand rien n'est en vol ou programmé.

2737 2737 

2738Chaque entrée dans `background_tasks` décrit une tâche en vol et utilise ces champs :2738Chaque entrée dans `background_tasks` décrit une tâche en vol et utilise ces champs :

2739 2739 


2742| `id` | Identifiant de tâche |2742| `id` | Identifiant de tâche |

2743| `type` | Étiquette de type de tâche conviviale comme `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, ou `MCP task`. Chaque étiquette identifie quelle fonctionnalité Claude Code a créé la tâche. Revient au discriminant brut pour les types non reconnus |2743| `type` | Étiquette de type de tâche conviviale comme `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, ou `MCP task`. Chaque étiquette identifie quelle fonctionnalité Claude Code a créé la tâche. Revient au discriminant brut pour les types non reconnus |

2744| `status` | Statut de tâche actuel |2744| `status` | Statut de tâche actuel |

2745| `description` | Description en texte libre, plafonnée à 1 000 caractères avec un marqueur `… [+N chars]` en chaîne quand clippée |2745| `description` | Description en texte libre, plafonnée à 1000 caractères avec un marqueur `… [+N chars]` en chaîne quand coupée |

2746| `command` | Ligne de commande shell, plafonnée à 1 000 caractères. Présent uniquement pour les tâches `shell` |2746| `command` | Ligne de commande shell, plafonnée à 1000 caractères. Présente uniquement pour les tâches `shell` |

2747| `agent_type` | Nom de type de sous-agent. Présent uniquement pour les tâches `subagent` |2747| `agent_type` | Nom de type de sous-agent. Présent uniquement pour les tâches `subagent` |

2748| `server` | Nom du serveur MCP. Présent uniquement pour les tâches `monitor` et `MCP task` |2748| `server` | Nom du serveur MCP. Présent uniquement pour les tâches `monitor` et `MCP task` |

2749| `tool` | Nom de l'outil MCP. Présent uniquement pour les tâches `monitor` et `MCP task` |2749| `tool` | Nom de l'outil MCP. Présent uniquement pour les tâches `monitor` et `MCP task` |

2750| `name` | Nom du workflow. Présent uniquement pour les tâches `workflow` |2750| `name` | Nom du workflow. Présent uniquement pour les tâches `workflow` |

2751 2751 

2752Chaque entrée dans `session_crons` décrit un réveil programmé scoped à la session, provenant de `CronCreate`, `ScheduleWakeup`, et `/loop` :2752Chaque entrée dans `session_crons` décrit un réveil programmé délimité à la session, provenant de `CronCreate`, `ScheduleWakeup`, et `/loop` :

2753 2753 

2754| Champ | Description |2754| Champ | Description |

2755| :- | :- |2755| :- | :- |

2756| `id` | Identifiant de tâche cron |2756| `id` | Identifiant de tâche cron |

2757| `schedule` | Expression cron, par exemple `0 9 * * 1-5` |2757| `schedule` | Expression cron, par exemple `0 9 * * 1-5` |

2758| `recurring` | `false` pour les réveils ponctuels dont le calendrier encode un seul temps de déclenchement, `true` pour les tâches qui se redéclenchent à chaque correspondance |2758| `recurring` | `false` pour les réveils ponctuels dont l'horaire encode un seul moment de déclenchement, `true` pour les tâches qui se redéclenchent à chaque correspondance |

2759| `prompt` | Invite soumise quand le cron se déclenche, plafonnée à 1 000 caractères avec le même marqueur `… [+N chars]` |2759| `prompt` | Invite soumise quand le cron se déclenche, plafonnée à 1000 caractères avec le même marqueur `… [+N chars]` |

2760 2760 

2761Cet exemple montre une entrée Stop avec une tâche shell en vol et un cron récurrent :2761Cet exemple montre une entrée Stop avec une tâche shell en vol et un cron récurrent :

2762 2762 


2810}2810}

2811```2811```

2812 2812 

2813Utilisez `additionalContext` quand le hook fonctionne comme prévu et donne des conseils à Claude, comme « exécutez la suite de tests avant de terminer ». Cela garde la conversation en cours via les mêmes protections de boucle que `decision: "block"`, à savoir l'entrée `stop_hook_active` et le plafond de 8 continuations consécutives, mais la transcription l'étiquette `Stop hook feedback` et aucune notification d'erreur de hook n'est montrée :2813Utilisez `additionalContext` quand le hook fonctionne comme prévu et donne des conseils à Claude, comme « exécutez la suite de tests avant de terminer ». Cela garde la conversation en cours à travers les mêmes protections de boucle que `decision: "block"`, à savoir l'entrée `stop_hook_active` et le plafond de 8 continuations consécutives, mais la transcription l'étiquette `Stop hook feedback` et aucune notification d'erreur de hook n'est montrée :

2814 2814 

2815```json theme={null}2815```json theme={null}

2816{2816{


2825 StopFailure2825 StopFailure

2826</h3>2826</h3>

2827 2827 

2828S'exécute à la place de [Stop](#stop) quand le tour se termine en raison d'une erreur API. Claude Code ignore la sortie et le code de sortie du hook, à part [`terminalSequence`](#emit-terminal-notifications). Utilisez ceci pour enregistrer les échecs, envoyer des alertes, ou prendre des actions de récupération quand Claude ne peut pas terminer une réponse en raison des limites de débit, des problèmes d'authentification, ou d'autres erreurs API.2828S'exécute à la place de [Stop](#stop) quand le tour se termine en raison d'une erreur API. Claude Code ignore la sortie du hook et le code de sortie, à part [`terminalSequence`](#emit-terminal-notifications). Utilisez ceci pour enregistrer les échecs, envoyer des alertes, ou prendre des actions de récupération quand Claude ne peut pas terminer une réponse en raison des limites de débit, des problèmes d'authentification, ou d'autres erreurs API.

2829 2829 

2830<h4 id="stopfailure-input">2830<h4 id="stopfailure-input">

2831 Entrée StopFailure2831 Entrée StopFailure


2857 TeammateIdle2857 TeammateIdle

2858</h3>2858</h3>

2859 2859 

2860S'exécute quand un coéquipier d'[équipe agent](/docs/fr/agent-teams) est sur le point de devenir inactif après avoir terminé son tour. Utilisez ceci pour appliquer les portes de qualité avant qu'un coéquipier arrête de travailler, comme exiger que les vérifications lint passent ou vérifier que les fichiers de sortie existent.2860S'exécute quand un coéquipier d'[équipe d'agents](/docs/fr/agent-teams) est sur le point de devenir inactif après avoir terminé son tour. Utilisez ceci pour appliquer les portes de qualité avant qu'un coéquipier arrête de travailler, comme exiger que les vérifications de lint passent ou vérifier que les fichiers de sortie existent.

2861 2861 

2862Les hooks TeammateIdle ne supportent pas les matchers et se déclenchent à chaque occurrence.2862Les hooks TeammateIdle ne supportent pas les matchers et se déclenchent à chaque occurrence.

2863 2863 


2979}2979}

2980```2980```

2981 2981 

2982Les changements `policy_settings` ne peuvent pas être bloqués. Les hooks se déclenchent toujours pour les sources `policy_settings` quand un fichier de paramètres gérés sur la machine change, pour que vous puissiez enregistrer ces édits, mais toute décision de blocage est ignorée. Cela garantit que les paramètres gérés par l'entreprise prennent toujours effet. Claude Code n'exécute pas les hooks ConfigChange quand les [paramètres gérés par le serveur](/docs/fr/server-managed-settings) arrivent ou se rafraîchissent.2982Les changements `policy_settings` ne peuvent pas être bloqués. Les hooks se déclenchent toujours pour les sources `policy_settings` quand un fichier de paramètres gérés sur la machine change, pour que vous puissiez enregistrer ces édits, mais toute décision de blocage est ignorée. Cela garantit que les paramètres gérés par l'entreprise prennent toujours effet. Claude Code n'exécute pas les hooks `ConfigChange` quand les [paramètres gérés par le serveur](/docs/fr/server-managed-settings) arrivent ou se rafraîchissent.

2983 2983 

2984Claude Code agit sur la décision de blocage de la sortie JSON d'un hook ConfigChange et rejette `systemMessage` et `continue`. Un changement bloqué ne surface aucun message pour vous ou Claude, que vous bloquez avec `reason` ou avec stderr en quittant 2. Claude Code écrit uniquement une ligne au journal de débogage.2984Claude Code agit sur la décision de blocage de la sortie JSON d'un hook ConfigChange et rejette `systemMessage` et `continue`. Un changement bloqué ne surface aucun message à vous ou à Claude, que vous bloquez avec `reason` ou avec stderr en quittant 2. Claude Code écrit uniquement une ligne au journal de débogage.

2985 2985 

2986<h3 id="cwdchanged">2986<h3 id="cwdchanged">

2987 CwdChanged2987 CwdChanged


3018 3018 

3019| Champ | Description |3019| Champ | Description |

3020| :- | :- |3020| :- | :- |

3021| `watchPaths` | Tableau de chemins absolus. Remplace la liste de surveillance dynamique actuelle. Les chemins de votre configuration `matcher` sont toujours surveillés. Retourner un tableau vide efface la liste dynamique, ce qui est typique quand vous entrez un nouveau répertoire |3021| `watchPaths` | Tableau de chemins absolus. Remplace la liste de surveillance dynamique actuelle. Les chemins de votre configuration `matcher` sont toujours surveillés. Retourner un tableau vide efface la liste dynamique, ce qui est typique quand vous entrez dans un nouveau répertoire |

3022 3022 

3023Les hooks CwdChanged n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer le changement de répertoire.3023Les hooks CwdChanged n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer le changement de répertoire.

3024 3024 


3028 DirectoryAdded3028 DirectoryAdded

3029</h3>3029</h3>

3030 3030 

3031S'exécute après que vous ajoutiez un répertoire de travail en cours de session avec la commande `/add-dir`, ou après qu'un client SDK en ajoute un avec la demande de contrôle `register_repo_root`. Utilisez ceci pour préparer un référentiel nouvellement ajouté, par exemple en installant ses dépendances.3031S'exécute après que vous ajoutiez un répertoire de travail en cours de session avec la commande `/add-dir`, ou après qu'un client SDK en ajoute un avec la requête de contrôle `register_repo_root`. Utilisez ceci pour préparer un référentiel nouvellement ajouté, par exemple en installant ses dépendances.

3032 3032 

3033Claude Code ne déclenche pas cet événement quand :3033Claude Code ne déclenche pas cet événement quand :

3034 3034 


3036* Vous ajoutez un répertoire sur l'onglet Workspace `/permissions`3036* Vous ajoutez un répertoire sur l'onglet Workspace `/permissions`

3037* Vous ajoutez un répertoire qui est déjà un répertoire de travail ou à l'intérieur d'un3037* Vous ajoutez un répertoire qui est déjà un répertoire de travail ou à l'intérieur d'un

3038 3038 

3039Claude Code se déclenche après avoir rafraîchi l'état du sandbox et de la permission, donc les outils en sandbox voient déjà le nouveau répertoire quand votre hook s'exécute. Les commandes du hook elles-mêmes s'exécutent sans sandbox.3039Claude Code se déclenche DirectoryAdded après avoir rafraîchi l'état du sandbox et de la permission, donc les outils en sandbox voient déjà le nouveau répertoire quand votre hook s'exécute. Les commandes du hook elles-mêmes s'exécutent sans sandbox.

3040 3040 

3041Claude Code n'attend pas le hook : l'ajout se termine immédiatement, et le hook s'exécute en arrière-plan avec le délai d'expiration par défaut de 600 secondes.3041Claude Code n'attend pas le hook : l'ajout se termine immédiatement, et le hook s'exécute en arrière-plan avec le délai d'expiration par défaut de 600 secondes.

3042 3042 


3045| Matcher | Quand il se déclenche |3045| Matcher | Quand il se déclenche |

3046| :- | :- |3046| :- | :- |

3047| `slash_command` | Vous ajoutez un répertoire avec `/add-dir` |3047| `slash_command` | Vous ajoutez un répertoire avec `/add-dir` |

3048| `register_repo_root` | Un client SDK ajoute un répertoire avec la demande de contrôle `register_repo_root` |3048| `register_repo_root` | Un client SDK ajoute un répertoire avec la requête de contrôle `register_repo_root` |

3049 3049 

3050<h4 id="directoryadded-input">3050<h4 id="directoryadded-input">

3051 Entrée DirectoryAdded3051 Entrée DirectoryAdded


3056| Champ | Description |3056| Champ | Description |

3057| :- | :- |3057| :- | :- |

3058| `directory` | Chemin absolu du répertoire qui a été ajouté |3058| `directory` | Chemin absolu du répertoire qui a été ajouté |

3059| `source` | Comment le répertoire a été ajouté, `"slash_command"` pour `/add-dir` ou `"register_repo_root"` pour la demande de contrôle SDK |3059| `source` | Comment le répertoire a été ajouté, `"slash_command"` pour `/add-dir` ou `"register_repo_root"` pour la requête de contrôle SDK |

3060 3060 

3061```json theme={null}3061```json theme={null}

3062{3062{


3085* **Construire la liste de surveillance** : la valeur est divisée sur `|` et chaque segment est enregistré comme un nom de fichier littéral dans le répertoire de travail, donc `".envrc|.env"` surveille exactement ces deux fichiers. Les modèles regex ne sont pas utiles ici : une valeur comme `^\.env` surveillerait un fichier littéralement nommé `^\.env`.3085* **Construire la liste de surveillance** : la valeur est divisée sur `|` et chaque segment est enregistré comme un nom de fichier littéral dans le répertoire de travail, donc `".envrc|.env"` surveille exactement ces deux fichiers. Les modèles regex ne sont pas utiles ici : une valeur comme `^\.env` surveillerait un fichier littéralement nommé `^\.env`.

3086* **Filtrer quels hooks s'exécutent** : quand un fichier surveillé change, la même valeur filtre quels groupes de hook s'exécutent en utilisant les [règles de matcher](#matcher-patterns) standard contre le nom de base du fichier modifié.3086* **Filtrer quels hooks s'exécutent** : quand un fichier surveillé change, la même valeur filtre quels groupes de hook s'exécutent en utilisant les [règles de matcher](#matcher-patterns) standard contre le nom de base du fichier modifié.

3087 3087 

3088Cet exemple normalise les fins de ligne dans `data.csv` après n'importe quel changement, y compris une commande `Bash` ou un script externe réécrivant le fichier :3088Cet exemple normalise les fins de ligne dans `data.csv` après n'importe quel changement, y compris un appel d'outil `Bash` ou un script externe réécrivant le fichier :

3089 3089 

3090```json theme={null}3090```json theme={null}

3091{3091{


3105}3105}

3106```3106```

3107 3107 

3108Le hook lit le chemin absolu du fichier modifié depuis le champ `file_path` de l'[entrée JSON](#filechanged-input) sur stdin. Sa garde `grep` teste pour la même chose que `perl` supprime, un CR à la fin d'une ligne, donc l'exécution après une normalisation quitte sans toucher le fichier. Une garde plus lâche boucle pour toujours, parce que `perl -i` réécrit le fichier même quand il ne substitue rien et Claude Code exécute le hook à nouveau après chaque réécriture. Enregistrez ce script à `/path/to/normalize-line-endings.sh` et rendez-le exécutable :3108Le hook lit le chemin absolu du fichier modifié du champ `file_path` de l'[entrée JSON](#filechanged-input) sur stdin. Sa garde `grep` teste la même chose que `perl` supprime, un CR à la fin d'une ligne, donc l'exécution après une normalisation quitte sans toucher le fichier. Une garde plus lâche boucle pour toujours, parce que `perl -i` réécrit le fichier même quand il ne substitue rien et Claude Code exécute le hook à nouveau après chaque réécriture. Enregistrez ce script à `/path/to/normalize-line-endings.sh` et rendez-le exécutable :

3109 3109 

3110```bash theme={null}3110```bash theme={null}

3111#!/bin/bash3111#!/bin/bash


3117 3117 

3118Pour confirmer que le hook fonctionne, demandez à Claude d'ajouter une ligne CRLF à `data.csv` avec une commande `Bash`. Claude Code exécute le hook et le fichier se termine avec les fins de ligne LF.3118Pour confirmer que le hook fonctionne, demandez à Claude d'ajouter une ligne CRLF à `data.csv` avec une commande `Bash`. Claude Code exécute le hook et le fichier se termine avec les fins de ligne LF.

3119 3119 

3120Pour surveiller les fichiers que vous ne pouvez pas nommer à l'avance, retournez [`watchPaths`](#filechanged-output) d'un hook pour mettre à jour la liste de surveillance dynamiquement. Claude Code démarre l'observateur uniquement quand quelque chose nomme un fichier à surveiller, donc semez la liste avec un groupe FileChanged dont le matcher nomme au moins un fichier, ou avec un hook [SessionStart](#sessionstart-decision-control) ou [CwdChanged](#cwdchanged) qui retourne `watchPaths`. Le matcher filtre toujours quels groupes de hook s'exécutent quand un fichier surveillé change, donc donnez au groupe qui gère les chemins dynamiques un matcher omis, qui correspond à chaque fichier surveillé et n'ajoute rien à la liste de surveillance. Un matcher `"*"` correspond également à chaque fichier, mais Claude Code l'enregistre dans la liste de surveillance comme n'importe quelle autre valeur, comme un fichier littéralement nommé `*`.3120Pour surveiller les fichiers que vous ne pouvez pas nommer à l'avance, retournez [`watchPaths`](#filechanged-output) d'un hook pour mettre à jour la liste de surveillance dynamiquement. Claude Code démarre l'observateur uniquement quand quelque chose nomme un fichier à surveiller, donc semez la liste avec un groupe FileChanged dont le matcher nomme au moins un fichier, ou avec un hook [SessionStart](#sessionstart-decision-control) ou [CwdChanged](#cwdchanged) qui retourne `watchPaths`. Le matcher filtre toujours quels groupes de hook s'exécutent quand un fichier surveillé change, donc donnez au groupe qui gère les chemins dynamiques un matcher omis, qui correspond à chaque fichier surveillé et n'ajoute rien à la liste de surveillance. Un matcher `"*"` correspond également à chaque fichier, mais Claude Code l'enregistre dans la liste de surveillance comme un fichier littéral nommé `*`.

3121 3121 

3122Les hooks FileChanged ont accès à [`CLAUDE_ENV_FILE`](#persist-environment-variables). Les variables écrites dans ce fichier persistent dans les commandes Bash suivantes jusqu'au prochain événement [CwdChanged](#cwdchanged), quand Claude Code les efface.3122Les hooks FileChanged ont accès à [`CLAUDE_ENV_FILE`](#persist-environment-variables). Les variables écrites dans ce fichier persistent dans les commandes Bash suivantes jusqu'au prochain événement [CwdChanged](#cwdchanged), quand Claude Code les efface.

3123 3123 


3229 3229 

3230* vous quittez une session `--worktree` et choisissez de la supprimer3230* vous quittez une session `--worktree` et choisissez de la supprimer

3231* un sous-agent avec `isolation: "worktree"` se termine3231* un sous-agent avec `isolation: "worktree"` se termine

3232* vous supprimez une [session en arrière-plan](/docs/fr/agent-view#what-deleting-a-session-removes) dont le worktree a été créé par le hook3232* vous supprimez une [session en arrière-plan](/docs/fr/agent-view#what-deleting-a-session-removes) dont le worktree le hook a créé

3233 3233 

3234Pour les worktrees basés sur git, Claude Code gère le nettoyage automatiquement avec `git worktree remove`. Si vous avez configuré un hook WorktreeCreate, associez-le à un hook WorktreeRemove pour contrôler le nettoyage des worktrees qu'il crée :3234Pour les worktrees basés sur git, Claude Code gère le nettoyage automatiquement avec `git worktree remove`. Si vous avez configuré un hook WorktreeCreate, associez-le à un hook WorktreeRemove pour contrôler le nettoyage des worktrees qu'il crée :

3235 3235 


3298 3298 

3299Quittez avec le code 2 pour bloquer la compaction. Pour un `/compact` manuel, le message stderr est montré à l'utilisateur. Vous pouvez également bloquer en retournant JSON avec `"decision": "block"`.3299Quittez avec le code 2 pour bloquer la compaction. Pour un `/compact` manuel, le message stderr est montré à l'utilisateur. Vous pouvez également bloquer en retournant JSON avec `"decision": "block"`.

3300 3300 

3301Bloquer la compaction automatique a des effets différents selon quand elle se déclenche. Si la compaction a été déclenchée de manière proactive avant la limite de contexte, Claude Code la saute et la conversation continue sans compaction. Si la compaction a été déclenchée pour récupérer d'une erreur de limite de contexte déjà retourné par l'API, l'erreur sous-jacente surface et la demande actuelle échoue.3301Bloquer la compaction automatique a des effets différents selon quand elle se déclenche. Si la compaction a été déclenchée de manière proactive avant la limite de contexte, Claude Code la saute et la conversation continue sans compaction. Si la compaction a été déclenchée pour récupérer d'une erreur de limite de contexte déjà retourné par l'API, l'erreur sous-jacente surface et la requête actuelle échoue.

3302 3302 

3303Claude Code rejette les champs `systemMessage` et `continue` d'un hook PreCompact.3303Claude Code rejette les champs `systemMessage` et `continue` d'un hook PreCompact.

3304 3304 


3349}3349}

3350```3350```

3351 3351 

3352Les hooks PostCompact n'ont pas de contrôle de décision. Ils ne peuvent pas affecter le résultat de compaction mais peuvent effectuer les tâches de suivi.3352Les hooks PostCompact n'ont pas de contrôle de décision. Ils ne peuvent pas affecter le résultat de la compaction mais peuvent effectuer les tâches de suivi.

3353 3353 

3354<h3 id="premodelswitch">3354<h3 id="premodelswitch">

3355 PreModelSwitch3355 PreModelSwitch

3356</h3>3356</h3>

3357 3357 

3358S'exécute avant que Claude Code applique un changement de modèle que vous ou un client avez demandé. Utilisez-le pour bloquer un changement, exiger une confirmation, ou montrer quel coût le changement aura avant qu'il se produise.3358S'exécute avant que Claude Code applique un changement de modèle que vous ou un client avez demandé. Utilisez-le pour bloquer un changement, exiger une confirmation, ou montrer quel changement coûtera avant qu'il se produise.

3359 3359 

3360PreModelSwitch nécessite Claude Code v2.1.251 ou ultérieur. Claude Code l'exécute pour ces demandes :3360PreModelSwitch nécessite Claude Code v2.1.251 ou ultérieur. Claude Code l'exécute pour ces requêtes :

3361 3361 

3362* `/model <name>` et le sélecteur `/model`3362* `/model <name>` et le sélecteur `/model`

3363* Le sélecteur de modèle `Option+P` ou `Alt+P`3363* Le sélecteur de modèle `Option+P` ou `Alt+P`

3364* Le paramètre Model dans `/config`3364* Le paramètre Model dans `/config`

3365* Activer le [mode rapide](/docs/fr/fast-mode) quand cela change le modèle de la session3365* Activer le [mode rapide](/docs/fr/fast-mode) quand cela change le modèle de la session

3366* Une demande `set_model`, ou un changement de modèle dans une demande `apply_flag_settings`, d'un hôte [Agent SDK](/docs/fr/agent-sdk/typescript#query-object) ou [Remote Control](/docs/fr/remote-control)3366* Une requête `set_model`, ou un changement de modèle dans une requête `apply_flag_settings`, d'un hôte [Agent SDK](/docs/fr/agent-sdk/typescript#query-object) ou [Remote Control](/docs/fr/remote-control)

3367 3367 

3368Claude Code n'exécute pas les hooks PreModelSwitch pour les changements qu'il fait seul, comme un [fallback de modèle automatique](/docs/fr/model-config#automatic-model-fallback) ou la restauration du modèle quand vous reprenez une session. Ces changements atteignent [PostModelSwitch](#postmodelswitch) uniquement.3368Claude Code n'exécute pas les hooks PreModelSwitch pour les changements qu'il fait seul, comme un [fallback de modèle automatique](/docs/fr/model-config#automatic-model-fallback) ou la restauration du modèle quand vous reprenez une session. Ces changements atteignent [PostModelSwitch](#postmodelswitch) uniquement.

3369 3369 

3370Claude Code compare le matcher contre le nom canonique du modèle vers lequel la session bascule, en ignorant tout suffixe `[1m]`. Un alias comme `opus`, un ID de modèle daté, et un ID spécifique au fournisseur comme un ID de modèle Amazon Bedrock correspondent tous au nom canonique unique auquel ils se résolvent, donc `claude-opus-5` couvre chaque orthographe d'Opus 5.3370Claude Code compare le matcher contre le nom canonique du modèle vers lequel la session change, en ignorant tout suffixe `[1m]`. Un alias comme `opus`, un ID de modèle daté, et un ID spécifique au fournisseur comme un ID de modèle Amazon Bedrock correspondent tous au nom canonique unique auquel ils se résolvent, donc `claude-opus-5` couvre chaque orthographe d'Opus 5.

3371 3371 

3372Quand Claude Code ne peut pas déterminer un nom canonique pour la cible, par exemple un ID de modèle personnalisé que seule votre [passerelle LLM](/docs/fr/llm-gateway) connaît, il exécute chaque hook PreModelSwitch indépendamment du matcher. Un hook qui bloque devrait donc vérifier `to_model` de son entrée plutôt que de compter uniquement sur le matcher.3372Quand Claude Code ne peut pas déterminer un nom canonique pour la cible, par exemple un ID de modèle personnalisé que seule votre [passerelle LLM](/docs/fr/llm-gateway) connaît, il exécute chaque hook PreModelSwitch indépendamment du matcher. Un hook qui bloque devrait donc vérifier `to_model` de son entrée plutôt que de compter uniquement sur le matcher.

3373 3373 


3443 Entrée PreModelSwitch3443 Entrée PreModelSwitch

3444</h4>3444</h4>

3445 3445 

3446En plus des [champs d'entrée communs](#common-input-fields), les hooks PreModelSwitch reçoivent les champs de ce tableau. Les cinq derniers décrivent quel coût a la renvoi de la conversation au nouveau modèle, donc un hook peut montrer ce chiffre avant que le changement se produise.3446En plus des [champs d'entrée communs](#common-input-fields), les hooks PreModelSwitch reçoivent les champs du tableau ci-dessous. Les cinq derniers décrivent quel changement de modèle coûte de renvoyer la conversation au nouveau modèle, donc un hook peut montrer ce chiffre avant que le changement se produise.

3447 3447 

3448| Champ | Type | Description |3448| Champ | Type | Description |

3449| :- | :- | :- |3449| :- | :- | :- |

3450| `from_model` | string | ID de modèle que le changement change de |3450| `from_model` | string | ID de modèle du changement |

3451| `to_model` | string | ID de modèle que le changement change vers. Le matcher compare contre le nom canonique de ce modèle |3451| `to_model` | string | ID de modèle du changement vers. Le matcher compare contre le nom canonique de ce modèle |

3452| `requested_model` | string ou `null` | Le modèle que la demande a nommé : un alias comme `opus`, un ID de modèle complet, ou `null` quand la demande était pour le modèle par défaut |3452| `requested_model` | string ou `null` | Le modèle que la requête a nommé : un alias comme `opus`, un ID de modèle complet, ou `null` quand la requête était pour le modèle par défaut |

3453| `source` | string | D'où provient la demande : `"command"` pour `/model <name>`, le paramètre Model dans `/config`, ou l'activation du mode rapide ; `"picker"` pour un sélecteur de modèle ; `"sdk"` pour une demande `set_model`, ou un changement de modèle dans une demande `apply_flag_settings`, d'un hôte Agent SDK ou Remote Control |3453| `source` | string | D'où provient la requête : `"command"` pour `/model <name>`, le paramètre Model dans `/config`, ou l'activation du mode rapide ; `"picker"` pour un sélecteur de modèle ; `"sdk"` pour une requête `set_model`, ou un changement de modèle dans une requête `apply_flag_settings`, d'un hôte Agent SDK ou Remote Control |

3454| `context_tokens` | number | Tokens que la demande suivante renvoie comme son invite : les tokens d'entrée, de lecture de cache, de création de cache, et de sortie de la dernière réponse dans la conversation principale, combinés. `0` avant la première réponse |3454| `context_tokens` | number | Tokens que la requête suivante renvoie comme son invite : les tokens d'entrée, de lecture de cache, de création de cache, et de sortie de la dernière réponse dans la conversation principale, combinés. `0` avant la première réponse |

3455| `prompt_cache_warm` | boolean | Si le cache d'invite du modèle actuel est probablement toujours chaud, ce qui signifie que le changement le perd |3455| `prompt_cache_warm` | boolean | Si le cache d'invite du modèle actuel est probablement toujours chaud, ce qui signifie que le changement le perd |

3456| `cache_ttl` | string | [Durée de vie du cache d'invite](/docs/fr/prompt-caching#cache-lifetime) que Claude Code demande pour cette session : `"5m"` ou `"1h"` |3456| `cache_ttl` | string | [Durée de vie du cache d'invite](/docs/fr/prompt-caching#cache-lifetime) que Claude Code demande pour cette session : `"5m"` ou `"1h"` |

3457| `estimated_cache_write_usd` | number | Coût estimé en dollars US de l'écriture de `context_tokens` dans le cache d'invite sur `to_model` au taux `cache_ttl`, excluant la réponse suivante. Le serveur n'a peut-être pas besoin de re-cacher le contexte entier, donc traitez-le comme une estimation |3457| `estimated_cache_write_usd` | number | Coût estimé en dollars US de l'écriture de `context_tokens` dans le cache d'invite sur `to_model` au taux `cache_ttl`, excluant la réponse suivante. Le serveur n'a peut-être pas besoin de re-cacher le contexte entier, donc traitez-le comme une estimation |


3487 3487 

3488| Champ | Description |3488| Champ | Description |

3489| :- | :- |3489| :- | :- |

3490| `permissionDecision` | `"allow"` procède et ignore la [confirmation que Claude Code montre pendant que le cache d'invite est chaud](/docs/fr/prompt-caching#switching-models). `"deny"` annule le changement. `"ask"` invite l'utilisateur à le confirmer |3490| `permissionDecision` | `"allow"` procède et ignore la [confirmation que Claude Code montre pendant que le cache d'invite est chaud](/docs/fr/prompt-caching#switching-models). `"deny"` annule le changement. `"ask"` demande à l'utilisateur de le confirmer |

3491| `permissionDecisionReason` | Pour `"deny"`, montré à l'utilisateur comme la raison du blocage du changement, ou retourné comme l'erreur pour une demande `set_model`. Pour `"ask"`, montré dans l'invite de confirmation. Ignoré pour `"allow"` |3491| `permissionDecisionReason` | Pour `"deny"`, montré à l'utilisateur comme la raison du blocage du changement, ou retourné comme l'erreur pour une requête `set_model`. Pour `"ask"`, montré dans l'invite de confirmation. Ignoré pour `"allow"` |

3492 3492 

3493Seul `/model` dans une session interactive peut montrer l'invite `"ask"`. Sur chaque autre surface, y compris le mode non-interactif avec le drapeau `-p`, `/config`, et les demandes `set_model`, Claude Code traite `"ask"` comme un refus.3493Seul `/model` dans une session interactive peut montrer l'invite `"ask"`. Sur chaque autre surface, y compris le mode non-interactif avec le drapeau `-p`, `/config`, et les requêtes `set_model`, Claude Code traite `"ask"` comme un refus.

3494 3494 

3495Cet exemple demande à l'utilisateur de confirmer et cite le nombre de tokens de `context_tokens` :3495Cet exemple demande à l'utilisateur de confirmer et cite le nombre de tokens de `context_tokens` :

3496 3496 


3506 3506 

3507Quand plusieurs hooks PreModelSwitch retournent des décisions différentes, la priorité est `deny` > `ask` > `allow`.3507Quand plusieurs hooks PreModelSwitch retournent des décisions différentes, la priorité est `deny` > `ask` > `allow`.

3508 3508 

3509Claude Code montre à l'utilisateur n'importe quel `systemMessage` que votre hook retourne indépendamment de la décision, donc un hook de rapport de coût peut retourner `{"systemMessage": "..."}` et quitter 0.3509Claude Code montre à l'utilisateur n'importe quel `systemMessage` que votre hook retourne indépendamment de la décision, donc un hook de rapport de coûts peut retourner `{"systemMessage": "..."}` et quitter 0.

3510 3510 

3511Un hook PreModelSwitch qui ne répond pas avant son délai d'expiration bloque le changement. Sur [PreToolUse](#timeouts), par contraste, un hook de commande qui expire laisse l'appel d'outil continuer. Le délai d'expiration par défaut pour cet événement est 30 secondes. `PreModelSwitch` exécute uniquement les hooks `command`, `http`, et `mcp_tool`, donc les défauts `prompt` et `agent` ne s'appliquent pas.3511Un hook PreModelSwitch qui ne répond pas avant son délai d'expiration bloque le changement. Sur [PreToolUse](#timeouts), par contraste, un hook de commande qui expire laisse l'appel d'outil continuer. Le délai d'expiration par défaut pour cet événement est 30 secondes. `PreModelSwitch` exécute uniquement les hooks `command`, `http`, et `mcp_tool`, donc les défauts `prompt` et `agent` ne s'appliquent pas.

3512 3512 


3527 3527 

3528Claude Code n'exécute pas les hooks PostModelSwitch quand un modèle d'une [chaîne de modèles de fallback](/docs/fr/model-config#fallback-model-chains) sert un tour, parce que cette substitution dure un tour et laisse le modèle de la session inchangé.3528Claude Code n'exécute pas les hooks PostModelSwitch quand un modèle d'une [chaîne de modèles de fallback](/docs/fr/model-config#fallback-model-chains) sert un tour, parce que cette substitution dure un tour et laisse le modèle de la session inchangé.

3529 3529 

3530Le matcher suit les mêmes règles que [PreModelSwitch](#premodelswitch) : Claude Code le compare contre le nom canonique du modèle vers lequel la session a basculé.3530Le matcher suit les mêmes règles que [PreModelSwitch](#premodelswitch) : Claude Code le compare contre le nom canonique du modèle vers lequel la session a changé.

3531 3531 

3532Cet exemple ajoute des conseils chaque fois que le modèle de la session change vers n'importe quel modèle Opus :3532Cet exemple ajoute des conseils chaque fois que le modèle de la session change vers n'importe quel modèle Opus :

3533 3533 


3549}3549}

3550```3550```

3551 3551 

3552Pour confirmer que le hook fonctionne, basculez vers un modèle Opus à partir d'une session exécutant un modèle différent, par exemple exécutez `/model opus` à partir d'une session Sonnet, puis demandez à Claude quels conseils il a sur le modèle actuel.3552Pour confirmer que le hook fonctionne, changez vers un modèle Opus à partir d'une session exécutant un modèle différent, par exemple exécutez `/model opus` à partir d'une session Sonnet, puis demandez à Claude quels conseils il a sur le modèle actuel.

3553 3553 

3554<h4 id="postmodelswitch-input">3554<h4 id="postmodelswitch-input">

3555 Entrée PostModelSwitch3555 Entrée PostModelSwitch


3563 Contrôle de décision PostModelSwitch3563 Contrôle de décision PostModelSwitch

3564</h4>3564</h4>

3565 3565 

3566Claude Code prend votre stdout brut du hook sur la sortie 0, ou `additionalContext` de la sortie JSON, et le livre à Claude avec la demande suivante après le changement. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez retourner :3566Claude Code prend votre sortie standard brute du hook sur la sortie 0, ou `additionalContext` de la sortie JSON, et la livre à Claude avec la requête suivante après le changement. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez retourner :

3567 3567 

3568| Champ | Description |3568| Champ | Description |

3569| :- | :- |3569| :- | :- |

3570| `additionalContext` | Chaîne ajoutée au contexte de Claude avec la demande suivante. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |3570| `additionalContext` | Chaîne ajoutée au contexte de Claude avec la requête suivante. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |

3571 3571 

3572Si le hook n'a pas terminé dans les cinq secondes après que vous envoyiez la demande suivante, Claude Code envoie cette demande sans la sortie et l'attache à la demande suivante à la place. Si le modèle change plusieurs fois avant la demande suivante, Claude Code livre uniquement la sortie pour le changement vers le modèle cible final.3572Si le hook n'a pas terminé dans les cinq secondes après que vous envoyiez la requête suivante, Claude Code envoie cette requête sans la sortie et l'attache à la requête suivante à la place. Si le modèle change plusieurs fois avant la requête suivante, Claude Code livre uniquement la sortie pour le modèle cible du dernier changement.

3573 3573 

3574<h3 id="sessionend">3574<h3 id="sessionend">

3575 SessionEnd3575 SessionEnd


3582| Raison | Description |3582| Raison | Description |

3583| :- | :- |3583| :- | :- |

3584| `clear` | Session effacée avec la commande `/clear` |3584| `clear` | Session effacée avec la commande `/clear` |

3585| `resume` | Session basculée via `/resume` interactif |3585| `resume` | Session changée via `/resume` interactif |

3586| `logout` | L'utilisateur s'est déconnecté |3586| `logout` | L'utilisateur s'est déconnecté |

3587| `prompt_input_exit` | L'utilisateur a quitté pendant que l'entrée d'invite était visible |3587| `prompt_input_exit` | L'utilisateur a quitté pendant que l'entrée d'invite était visible |

3588| `other` | Autres raisons de sortie |3588| `other` | Autres raisons de sortie |


3606 3606 

3607Les hooks SessionEnd n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer la terminaison de la session mais peuvent effectuer les tâches de nettoyage. Claude Code rejette leurs [champs de sortie JSON](#json-output), comme `systemMessage`.3607Les hooks SessionEnd n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer la terminaison de la session mais peuvent effectuer les tâches de nettoyage. Claude Code rejette leurs [champs de sortie JSON](#json-output), comme `systemMessage`.

3608 3608 

3609Les hooks SessionEnd ont un délai d'expiration par défaut de 1,5 secondes. Il s'applique quand vous quittez, exécutez `/clear`, ou basculez les sessions avec `/resume` interactif. Vous pouvez donner à un hook plus de temps de deux façons :3609Les hooks SessionEnd ont un délai d'expiration par défaut de 1,5 secondes. Il s'applique quand vous quittez, exécutez `/clear`, ou changez de sessions avec `/resume` interactif. Vous pouvez donner à un hook plus de temps de deux façons :

3610 3610 

3611* **`timeout` par hook** : définissez `timeout` dans la configuration de ce hook. Le budget global augmente automatiquement pour correspondre au `timeout` par hook le plus élevé dans vos fichiers de paramètres, jusqu'à 60 secondes. Si vous augmentez le budget de cette façon, un hook sans son propre `timeout` garde toujours le défaut. Les délais d'expiration définis sur les hooks fournis par plugin ne lèvent pas le budget.3611* **`timeout` par hook** : définissez `timeout` dans la configuration de ce hook. Le budget global augmente automatiquement pour correspondre au `timeout` par hook le plus élevé dans vos fichiers de paramètres, jusqu'à 60 secondes. Si vous augmentez le budget de cette façon, un hook sans son propre `timeout` garde toujours le défaut. Les délais d'expiration définis sur les hooks fournis par plugin ne lèvent pas le budget.

3612* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`** : définissez cette variable d'environnement en millisecondes pour remplacer le budget explicitement. La valeur que vous définissez devient également le délai d'expiration pour chaque hook sans son propre `timeout`.3612* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`** : définissez cette variable d'environnement en millisecondes pour remplacer le budget explicitement. La valeur que vous définissez devient également le délai d'expiration pour chaque hook sans son propre `timeout`.


3623 Elicitation3623 Elicitation

3624</h3>3624</h3>

3625 3625 

3626S'exécute quand un serveur MCP demande l'entrée utilisateur en cours de tâche. Par défaut, Claude Code montre un dialogue interactif pour que l'utilisateur réponde. Les hooks peuvent intercepter cette demande et répondre par programmation, ignorant entièrement le dialogue.3626S'exécute quand un serveur MCP demande l'entrée de l'utilisateur en cours de tâche. Par défaut, Claude Code montre un dialogue interactif pour que l'utilisateur réponde. Les hooks peuvent intercepter cette requête et répondre par programmation, ignorant entièrement le dialogue.

3627 3627 

3628Le champ matcher correspond au nom du serveur MCP.3628Le champ matcher correspond au nom du serveur MCP.

3629 3629 


3688 3688 

3689| Champ | Valeurs | Description |3689| Champ | Valeurs | Description |

3690| :- | :- | :- |3690| :- | :- | :- |

3691| `action` | `accept`, `decline`, `cancel` | Si vous acceptez, refusez, ou annulez la demande |3691| `action` | `accept`, `decline`, `cancel` | Si vous acceptez, refusez, ou annulez la requête |

3692| `content` | object | Valeurs des champs de formulaire à soumettre. Utilisé uniquement quand `action` est `accept` |3692| `content` | object | Valeurs des champs de formulaire à soumettre. Utilisé uniquement quand `action` est `accept` |

3693 3693 

3694Le code de sortie 2 refuse l'élicitation. Claude Code ne montre votre message stderr nulle part.3694Le code de sortie 2 refuse l'élicitation. Claude Code ne montre votre message stderr nulle part.

hooks-guide.md +1 −1

Details

196| `elicitation_url_dialog` | Un serveur MCP vous demande d'ouvrir une URL de navigateur et vous n'avez pas tapé pendant environ six secondes |196| `elicitation_url_dialog` | Un serveur MCP vous demande d'ouvrir une URL de navigateur et vous n'avez pas tapé pendant environ six secondes |

197| `elicitation_complete` | Un serveur MCP signale qu'une [élicitation en mode URL](/docs/fr/hooks#elicitation-input) est complète |197| `elicitation_complete` | Un serveur MCP signale qu'une [élicitation en mode URL](/docs/fr/hooks#elicitation-input) est complète |

198| `elicitation_response` | Une réponse d'élicitation MCP est renvoyée au serveur |198| `elicitation_response` | Une réponse d'élicitation MCP est renvoyée au serveur |

199| `agent_needs_input` | Une session en arrière-plan commence à attendre votre entrée tandis que la [vue agent](/docs/fr/agent-view) est ouverte, ou la session actuelle vous pose une [question de configuration de terminal d'un coéquipier d'équipe agent](/docs/fr/agent-teams#choose-a-display-mode) et vous n'avez pas tapé pendant environ six secondes |199| `agent_needs_input` | Une session en arrière-plan commence à attendre votre entrée tandis que la [vue agent](/docs/fr/agent-view) est ouverte. Se déclenche également lorsqu'une session de terminal vous pose une [question de configuration de terminal d'un coéquipier d'équipe agent](/docs/fr/agent-teams#choose-a-display-mode) ou l'avis du mode auto concernant les [frais de demande de classificateur](/docs/fr/auto-mode-classifier-billing) et vous n'avez pas tapé pendant environ six secondes |

200| `agent_completed` | Une session en arrière-plan se termine ou échoue. Se déclenche uniquement lorsque la [vue agent](/docs/fr/agent-view) est ouverte |200| `agent_completed` | Une session en arrière-plan se termine ou échoue. Se déclenche uniquement lorsque la [vue agent](/docs/fr/agent-view) est ouverte |

201| `quota_auto_resume_fired` | Claude Code continue votre tâche après qu'une limite d'utilisation claude.ai l'ait mise en pause : au réinitialisation, ou plus tôt lorsque quelque chose que vous faites dans Claude Code pendant l'attente, comme l'ajout de crédits d'utilisation, la mise à niveau de votre plan, ou le changement de modèles, rend l'utilisation disponible à nouveau, avec l'[exception de paramètre de modèle](/docs/fr/interactive-mode#wait-for-a-usage-limit-to-reset) |201| `quota_auto_resume_fired` | Claude Code continue votre tâche après qu'une limite d'utilisation claude.ai l'ait mise en pause : au réinitialisation, ou plus tôt lorsque quelque chose que vous faites dans Claude Code pendant l'attente, comme l'ajout de crédits d'utilisation, la mise à niveau de votre plan, ou le changement de modèles, rend l'utilisation disponible à nouveau, avec l'[exception de paramètre de modèle](/docs/fr/interactive-mode#wait-for-a-usage-limit-to-reset) |

202| `quota_auto_resume_stale` | Une limite d'utilisation claude.ai s'est réinitialisée tandis que votre ordinateur dormait pendant plus d'environ 30 minutes. Claude Code attend que vous appuyiez sur `Entrée` au lieu de continuer. Après un sommeil plus court, il continue et déclenche `quota_auto_resume_fired` à la place |202| `quota_auto_resume_stale` | Une limite d'utilisation claude.ai s'est réinitialisée tandis que votre ordinateur dormait pendant plus d'environ 30 minutes. Claude Code attend que vous appuyiez sur `Entrée` au lieu de continuer. Après un sommeil plus court, il continue et déclenche `quota_auto_resume_fired` à la place |

managed-mcp.md +7 −3

Details

303 303 

304| Paramètre | Non défini (par défaut) | Tableau vide `[]` | Rempli |304| Paramètre | Non défini (par défaut) | Tableau vide `[]` | Rempli |

305| :- | :- | :- | :- |305| :- | :- | :- | :- |

306| `allowedMcpServers` | Tous les serveurs autorisés | Aucun serveur autorisé, à part [les serveurs de l'organisation](#how-a-server-is-evaluated) | Seuls les serveurs correspondants autorisés, à part [les serveurs de l'organisation](#how-a-server-is-evaluated) |306| `allowedMcpServers` | Tous les serveurs autorisés | Aucun serveur autorisé, à part [ceux qui ignorent la vérification de la liste blanche](#how-a-server-is-evaluated) | Seuls les serveurs correspondants autorisés, à part [ceux qui ignorent la vérification de la liste blanche](#how-a-server-is-evaluated) |

307| `deniedMcpServers` | Aucun serveur bloqué | Aucun serveur bloqué | Serveurs correspondants bloqués |307| `deniedMcpServers` | Aucun serveur bloqué | Aucun serveur bloqué | Serveurs correspondants bloqués |

308 308 

309Voir [Entrées invalides dans les paramètres gérés](/docs/fr/managed-settings#invalid-entries-in-managed-settings) pour savoir ce qui se passe quand une entrée échoue la validation du schéma.309Voir [Entrées invalides dans les paramètres gérés](/docs/fr/managed-settings#invalid-entries-in-managed-settings) pour savoir ce qui se passe quand une entrée échoue la validation du schéma.


3292. **Vérifier la liste noire.** Un serveur qui correspond à n'importe quelle entrée de liste noire, par URL, commande ou nom, est bloqué. Rien ne remplace une correspondance de liste noire.3292. **Vérifier la liste noire.** Un serveur qui correspond à n'importe quelle entrée de liste noire, par URL, commande ou nom, est bloqué. Rien ne remplace une correspondance de liste noire.

3303. **Vérifier la liste blanche.** Si `allowedMcpServers` n'est défini nulle part, tous les serveurs qui ont réussi la liste noire se chargent. S'il est défini, ce que le serveur doit correspondre dépend de son type, montré dans le tableau ci-dessous.3303. **Vérifier la liste blanche.** Si `allowedMcpServers` n'est défini nulle part, tous les serveurs qui ont réussi la liste noire se chargent. S'il est défini, ce que le serveur doit correspondre dépend de son type, montré dans le tableau ci-dessous.

331 331 

332 Les serveurs de l'organisation ignorent cette vérification : chaque entrée `managedMcpServers`, et toute entrée `managed-mcp.json` dont les valeurs n'utilisent pas d'expansion `${VAR}`. Les serveurs intégrés l'ignorent aussi, comme Claude dans Chrome, le serveur `ide` auquel Claude Code se connecte dans un IDE VS Code ou JetBrains en cours d'exécution, et les serveurs que l'interface CLI elle-même configure.332 Trois groupes de serveurs ignorent cette vérification :

333 333 

334 Un serveur `managed-mcp.json` qui utilise l'expansion `${VAR}` dans sa commande, ses arguments, `env`, son URL ou ses en-têtes est toujours vérifié, tout comme tous les serveurs qu'un utilisateur, un plugin, `--mcp-config` ou claude.ai ajoute.334 * Les serveurs de l'organisation : chaque entrée `managedMcpServers`, et toute entrée `managed-mcp.json` dont les valeurs n'utilisent pas d'expansion `${VAR}`.

335 * Les serveurs intégrés, comme Claude dans Chrome, le serveur `ide` auquel Claude Code se connecte dans un IDE VS Code ou JetBrains en cours d'exécution, et les serveurs que l'interface CLI elle-même configure.

336 * Les outils Slack d'une session [Claude Tag](/docs/fr/claude-tag) : les serveurs qu'elle utilise pour lire le fil et publier ses réponses se chargent sans entrée de liste blanche.

337 

338 Un serveur `managed-mcp.json` qui utilise l'expansion `${VAR}` dans sa commande, ses arguments, `env`, son URL ou ses en-têtes est toujours vérifié. Il en va de même pour tous les serveurs qu'un utilisateur, un plugin, ou claude.ai ajoute, et tous les serveurs qu'un utilisateur transmet avec `--mcp-config`.

335 339 

336| Type de serveur | Autorisé quand il correspond |340| Type de serveur | Autorisé quand il correspond |

337| :- | :- |341| :- | :- |

Details

430<span id="managed-only-settings" />430<span id="managed-only-settings" />

431 431 

432<h2 id="keys-only-a-managed-source-can-set">432<h2 id="keys-only-a-managed-source-can-set">

433 Clés qu'une source gérée seule peut définir433 Clés que seule une source gérée peut définir

434</h2>434</h2>

435 435 

436Claude Code lit les clés suivantes uniquement d'une source gérée ; les placer dans les fichiers de paramètres utilisateur ou projet n'a aucun effet.436Claude Code lit les clés suivantes uniquement à partir d'une source gérée ; les placer dans les fichiers de paramètres utilisateur ou projet n'a aucun effet.

437 437 

438La plupart d'entre elles sont des verrous : la valeur qu'un verrou gouverne, comme les règles de permission ou `sandbox.network.allowedDomains`, est une clé ordinaire que n'importe quel niveau peut définir, et le verrou dit à Claude Code d'honorer uniquement la valeur gérée.438La plupart d'entre elles sont des verrous : la valeur qu'un verrou gouverne, comme les règles de permission ou `sandbox.network.allowedDomains`, est une clé ordinaire que n'importe quel niveau peut définir, et le verrou indique à Claude Code de n'honorer que la valeur gérée.

439 439 

440Le tableau couvre les contrôles de permission, plugin et livraison. Pour toute clé non énumérée ici, la colonne Scope de l'[index de référence des paramètres](/docs/fr/settings-reference#all-settings) dit si elle est gérée uniquement ; les clés gérées uniquement restantes là incluent l'URL de connexion à la passerelle, la version, le navigateur, le simulateur mobile, l'hôte SSH, la session locale Desktop, le chemin binaire sandbox, la tarification du modèle, la restriction du modèle, et les contrôles CLAUDE.md.440Le tableau couvre les contrôles de permission, de plugin et de livraison. Pour toute clé non listée ici, la colonne Scope de l'index de [référence des paramètres](/docs/fr/settings-reference#all-settings) indique si elle est réservée aux sources gérées ; les clés restantes réservées aux sources gérées incluent l'URL de connexion de la passerelle, la version, le navigateur, le simulateur mobile, l'hôte SSH, la session locale Desktop, le chemin binaire du sandbox, la tarification du modèle, la restriction du modèle et les contrôles CLAUDE.md.

441 441 

442| Paramètre | Description |442| Paramètre | Description |

443| :- | :- |443| :- | :- |

444| [`allowAllClaudeAiMcps`](/docs/fr/settings-reference#allowallclaudeaimcps) | Charger les connecteurs claude.ai que Claude Code récupère lui-même aux côtés d'un `managed-mcp.json` déployé au lieu de les supprimer |444| [`allowAllClaudeAiMcps`](/docs/fr/settings-reference#allowallclaudeaimcps) | Charger les connecteurs claude.ai que Claude Code récupère lui-même aux côtés d'un `managed-mcp.json` déployé au lieu de les supprimer |

445| [`allowedChannelPlugins`](/docs/fr/settings-reference#allowedchannelplugins) | Liste d'autorisation des plugins de canal qui peuvent pousser des messages. Remplace la liste d'autorisation Anthropic par défaut quand défini. Nécessite `channelsEnabled: true`. Consultez [Restreindre quels plugins de canal peuvent s'exécuter](/docs/fr/channels#restrict-which-channel-plugins-can-run) |445| [`allowedChannelPlugins`](/docs/fr/settings-reference#allowedchannelplugins) | Liste blanche des plugins de canal qui peuvent envoyer des messages. Remplace la liste blanche Anthropic par défaut lorsqu'elle est définie. Nécessite `channelsEnabled: true`. Voir [Restreindre les plugins de canal qui peuvent s'exécuter](/docs/fr/channels#restrict-which-channel-plugins-can-run) |

446| [`allowManagedHooksOnly`](/docs/fr/settings-reference#allowmanagedhooksonly) | Quand `true`, restreint quels hooks s'exécutent ; consultez [ce qui s'exécute sous `allowManagedHooksOnly`](/docs/fr/settings-reference#what-runs-under-allowmanagedhooksonly) pour la liste complète des effets |446| [`allowManagedHooksOnly`](/docs/fr/settings-reference#allowmanagedhooksonly) | Lorsque `true`, restreint les hooks qui s'exécutent ; voir [ce qui s'exécute sous `allowManagedHooksOnly`](/docs/fr/settings-reference#what-runs-under-allowmanagedhooksonly) pour la liste complète des effets |

447| [`allowManagedMcpServersOnly`](/docs/fr/settings-reference#allowmanagedmcpserversonly) | Quand `true`, seul `allowedMcpServers` des paramètres gérés est respecté. `deniedMcpServers` fusionne toujours de toutes les sources. Consultez [Clés lues de chaque source d'administrateur](#keys-read-from-every-admin-source) pour savoir quelles sources gérées peuvent le définir, et [Configuration MCP gérée](/docs/fr/managed-mcp) |447| [`allowManagedMcpServersOnly`](/docs/fr/settings-reference#allowmanagedmcpserversonly) | Lorsque `true`, seuls les `allowedMcpServers` des paramètres gérés sont respectés. `deniedMcpServers` fusionne toujours à partir de toutes les sources. Voir [Clés lues à partir de chaque source d'administration](#keys-read-from-every-admin-source) pour savoir quelles sources gérées peuvent la définir, et [Configuration MCP gérée](/docs/fr/managed-mcp) |

448| [`allowManagedPermissionRulesOnly`](/docs/fr/settings-reference#allowmanagedpermissionrulesonly) | Rend les paramètres gérés la seule source de paramètres des règles de permission. L'entrée énumère chaque source qu'elle ignore |448| [`allowManagedPermissionRulesOnly`](/docs/fr/settings-reference#allowmanagedpermissionrulesonly) | Rend les paramètres gérés la seule source de paramètres des règles de permission. L'entrée liste chaque source qu'elle ignore |

449| [`blockedMarketplaces`](/docs/fr/settings-reference#blockedmarketplaces) | Liste de blocage des sources de place de marché. Les sources bloquées sont vérifiées avant le téléchargement, donc elles ne touchent jamais le système de fichiers. Consultez [restrictions de place de marché gérée](/docs/fr/plugins/org#restrict-what-users-can-install) |449| [`blockedMarketplaces`](/docs/fr/settings-reference#blockedmarketplaces) | Liste noire des sources de marketplace. Les sources bloquées sont vérifiées avant le téléchargement, elles ne touchent donc jamais le système de fichiers. Voir [restrictions de marketplace gérées](/docs/fr/plugins/org#restrict-what-users-can-install) |

450| [`channelsEnabled`](/docs/fr/settings-reference#channelsenabled) | Autoriser les [canaux](/docs/fr/channels) pour l'organisation. Consultez [contrôles d'entreprise](/docs/fr/channels#enterprise-controls) pour la valeur par défaut sur chaque plan |450| [`channelsEnabled`](/docs/fr/settings-reference#channelsenabled) | Autoriser les [canaux](/docs/fr/channels) pour l'organisation. Voir [contrôles d'entreprise](/docs/fr/channels#enterprise-controls) pour la valeur par défaut sur chaque plan |

451| [`disableCommandPluginSources`](/docs/fr/settings-reference#disablecommandpluginsources) | Quand `true`, bloque entièrement les [sources de plugin `command`](/docs/fr/plugins/marketplace-reference#command-plugin-source), donc la commande déclarée par la place de marché ne s'exécute jamais. Bloque également les commandes [`headersHelper`](/docs/fr/plugins/host-marketplace#authenticate-archive-downloads) de la place de marché, sauf pour une place de marché que les paramètres gérés eux-mêmes déclarent. Quand non défini, suit `allowManagedHooksOnly`. Nécessite Claude Code v2.1.229 ou ultérieur, et le bloc `headersHelper` nécessite v2.1.238 ou ultérieur |451| [`disableCommandPluginSources`](/docs/fr/settings-reference#disablecommandpluginsources) | Lorsque `true`, bloque entièrement les [sources de plugin `command`](/docs/fr/plugins/marketplace-reference#command-plugin-source), de sorte que la commande déclarée par le marketplace ne s'exécute jamais. Bloque également les commandes [`headersHelper`](/docs/fr/plugins/host-marketplace#authenticate-archive-downloads) du marketplace, sauf pour un marketplace que les paramètres gérés eux-mêmes déclarent. Lorsque non défini, suit `allowManagedHooksOnly`. Nécessite Claude Code v2.1.229 ou ultérieur, et le bloc `headersHelper` nécessite v2.1.238 ou ultérieur |

452| [`disableSideloadFlags`](/docs/fr/settings-reference#disablesideloadflags) | Rejeter les drapeaux `--plugin-dir`, `--plugin-url`, `--agents`, et `--mcp-config` au démarrage. Dans les sessions cloud, Claude Code supprime les serveurs MCP que le serveur a livrés via `--mcp-config`, autres que les entrées `type: "sdk"` en processus, et démarre la session. Nécessite Claude Code v2.1.193 ou ultérieur |452| [`disableSideloadFlags`](/docs/fr/settings-reference#disablesideloadflags) | Rejeter les drapeaux `--plugin-dir`, `--plugin-url`, `--agents` et `--mcp-config` au démarrage. Dans les sessions cloud, Claude Code démarre plutôt la session et supprime les serveurs `--mcp-config` livrés par le serveur, à l'exception des exceptions que son [entrée de référence](/docs/fr/settings-reference#disablesideloadflags) liste. Nécessite Claude Code v2.1.193 ou ultérieur |

453| [`forceRemoteSettingsRefresh`](/docs/fr/settings-reference#forceremotesettingsrefresh) | Quand `true`, bloque le démarrage CLI jusqu'à ce que les paramètres gérés distants soient fraîchement récupérés et se termine si la récupération échoue. Consultez [application fail-closed](/docs/fr/server-managed-settings#enforce-fail-closed-startup) |453| [`forceRemoteSettingsRefresh`](/docs/fr/settings-reference#forceremotesettingsrefresh) | Lorsque `true`, bloque le démarrage de la CLI jusqu'à ce que les paramètres gérés distants soient fraîchement récupérés et se termine si la récupération échoue. Voir [application de fermeture en cas d'échec](/docs/fr/server-managed-settings#enforce-fail-closed-startup) |

454| [`managedMcpServers`](/docs/fr/settings-reference#managedmcpservers) | Serveurs MCP distants fournis à chaque utilisateur aux côtés des leurs. Il fournit des serveurs plutôt que de verrouiller quoi que ce soit. Consultez [Fournir des serveurs via les paramètres gérés](/docs/fr/managed-mcp#provide-servers-through-managed-settings). Nécessite Claude Code v2.1.259 ou ultérieur |454| [`managedMcpServers`](/docs/fr/settings-reference#managedmcpservers) | Serveurs MCP distants fournis à chaque utilisateur aux côtés des leurs. Il fournit des serveurs plutôt que de verrouiller quoi que ce soit. Voir [Fournir des serveurs via les paramètres gérés](/docs/fr/managed-mcp#provide-servers-through-managed-settings). Nécessite Claude Code v2.1.259 ou ultérieur |

455| [`managedSourcesBehavior`](/docs/fr/settings-reference#managedsourcesbehavior) | Si Claude Code applique uniquement la source gérée de priorité la plus élevée ou [compose chacune d'elles](#compose-every-managed-source) |455| [`managedSourcesBehavior`](/docs/fr/settings-reference#managedsourcesbehavior) | Si Claude Code applique uniquement la source gérée de plus haute priorité ou [compose chacune d'elles](#compose-every-managed-source) |

456| [`parentSettingsBehavior`](/docs/fr/settings-reference#parentsettingsbehavior) | Si les paramètres parent fournis par l'hôte fusionnent sous la politique gérée |456| [`parentSettingsBehavior`](/docs/fr/settings-reference#parentsettingsbehavior) | Si les paramètres parents fournis par l'hôte fusionnent selon la politique gérée |

457| [`pluginSuggestionMarketplaces`](/docs/fr/settings-reference#pluginsuggestionmarketplaces) | Places de marché dont les plugins Claude Code peut suggérer aux utilisateurs |457| [`pluginSuggestionMarketplaces`](/docs/fr/settings-reference#pluginsuggestionmarketplaces) | Marketplaces dont les plugins Claude Code peut suggérer aux utilisateurs |

458| [`pluginTrustMessage`](/docs/fr/settings-reference#plugintrustmessage) | Message personnalisé ajouté à l'avertissement de confiance du plugin affiché avant l'installation |458| [`pluginTrustMessage`](/docs/fr/settings-reference#plugintrustmessage) | Message personnalisé ajouté à l'avertissement de confiance du plugin affiché avant l'installation |

459| [`policyHelper`](/docs/fr/settings-reference#policyhelper) | Exécutable qui calcule les paramètres gérés au démarrage ; consultez [Calculer les paramètres gérés avec un aide de politique](/docs/fr/settings-reference#policyhelper) |459| [`policyHelper`](/docs/fr/settings-reference#policyhelper) | Exécutable qui calcule les paramètres gérés au démarrage ; voir [Calculer les paramètres gérés avec un assistant de politique](/docs/fr/settings-reference#policyhelper) |

460| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/fr/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Quand `true`, seuls les chemins `filesystem.allowRead` des paramètres gérés sont respectés. `denyRead` fusionne toujours de toutes les sources |460| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/fr/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Lorsque `true`, seuls les chemins `filesystem.allowRead` des paramètres gérés sont respectés. `denyRead` fusionne toujours à partir de toutes les sources |

461| [`sandbox.network.allowManagedDomainsOnly`](/docs/fr/settings-reference#sandbox-network-allowmanageddomainsonly) | Honorer uniquement les `allowedDomains` gérés et les règles d'autorisation `WebFetch(domain:...)` ; bloquer les autres domaines sans demander |461| [`sandbox.network.allowManagedDomainsOnly`](/docs/fr/settings-reference#sandbox-network-allowmanageddomainsonly) | Honorer uniquement les règles d'autorisation `allowedDomains` et `WebFetch(domain:...)` gérées ; bloquer les autres domaines sans demander |

462| [`strictKnownMarketplaces`](/docs/fr/settings-reference#strictknownmarketplaces) | Contrôle quelles sources de place de marché de plugin les utilisateurs peuvent ajouter et installer des plugins. Consultez [restrictions de place de marché gérée](/docs/fr/plugins/org#restrict-what-users-can-install) |462| [`strictKnownMarketplaces`](/docs/fr/settings-reference#strictknownmarketplaces) | Contrôle les sources de marketplace de plugins à partir desquelles les utilisateurs peuvent ajouter et installer des plugins. Voir [restrictions de marketplace gérées](/docs/fr/plugins/org#restrict-what-users-can-install) |

463| [`strictPluginOnlyCustomization`](/docs/fr/settings-reference#strictpluginonlycustomization) | Bloquer les skills, agents, hooks, et serveurs MCP des sources utilisateur et projet ; `true` verrouille les quatre, un tableau nomme lesquels |463| [`strictPluginOnlyCustomization`](/docs/fr/settings-reference#strictpluginonlycustomization) | Bloquer les skills, agents, hooks et serveurs MCP à partir des sources utilisateur et projet ; `true` verrouille les quatre, un tableau nomme lesquels |

464| [`wslInheritsWindowsSettings`](/docs/fr/settings-reference#wslinheritswindowssettings) | Quand défini dans le registre HKLM ou un fichier sous `C:\Program Files\ClaudeCode`, faire que WSL lise la chaîne de politique Windows, et lire `/etc/claude-code` uniquement quand [aucun document d'administrateur Windows n'est présent](#present-admin-documents) ; l'entrée donne l'ordre |464| [`wslInheritsWindowsSettings`](/docs/fr/settings-reference#wslinheritswindowssettings) | Lorsqu'elle est définie dans le registre HKLM ou un fichier sous `C:\Program Files\ClaudeCode`, faire en sorte que WSL lise la chaîne de politique Windows, et lise `/etc/claude-code` uniquement lorsque [aucun document d'administration Windows n'est présent](#present-admin-documents) ; l'entrée donne l'ordre |

465 465 

466<Note>466<Note>

467 Sur les plans Team et Enterprise, un Owner active ou désactive [Remote Control](/docs/fr/remote-control) et [sessions web](/docs/fr/claude-code-on-the-web) à l'échelle de l'organisation dans [les paramètres d'administration Claude Code](https://claude.ai/admin-settings/claude-code). Remote Control peut en outre être désactivé par appareil avec le paramètre [`disableRemoteControl`](/docs/fr/settings-reference#disableremotecontrol). Les sessions web n'ont pas de clé de paramètres gérés par appareil.467 Sur les plans Team et Enterprise, un propriétaire active ou désactive [Remote Control](/docs/fr/remote-control) et les [sessions cloud](/docs/fr/claude-code-on-the-web) à l'échelle de l'organisation dans les [paramètres d'administration Claude Code](https://claude.ai/admin-settings/claude-code). Remote Control peut également être désactivé par appareil avec le paramètre [`disableRemoteControl`](/docs/fr/settings-reference#disableremotecontrol). Les sessions cloud n'ont pas de clé de paramètres gérés par appareil.

468 468 

469 Pour vérifier si ces paramètres d'organisation ont atteint une machine donnée, exécutez `claude doctor` là et lisez la ligne `Organization policy`, qui dit où Claude Code a chargé la politique ou pourquoi il ne l'a pas chargée. Nécessite Claude Code v2.1.261 ou ultérieur. Dans une session en cours d'exécution, `/status` affiche la même ligne quand la politique n'a pas été chargée.469 Pour vérifier si ces paramètres d'organisation ont atteint une machine donnée, exécutez `claude doctor` là-bas et lisez la ligne `Organization policy`, qui indique où Claude Code a chargé la politique ou pourquoi elle n'a pas été chargée. Nécessite Claude Code v2.1.261 ou ultérieur. Dans une session en cours, `/status` affiche la même ligne lorsque la politique n'a pas été chargée.

470</Note>470</Note>

471 471 

472<h2 id="turn-telemetry-off-for-your-organization">472<h2 id="turn-telemetry-off-for-your-organization">

memory.md +6 −0

Details

115 115 

116Les chemins relatifs et absolus sont autorisés. Les chemins relatifs se résolvent par rapport au fichier contenant l'import, pas au répertoire de travail. Les fichiers importés peuvent importer récursivement d'autres fichiers, avec une profondeur maximale de quatre sauts.116Les chemins relatifs et absolus sont autorisés. Les chemins relatifs se résolvent par rapport au fichier contenant l'import, pas au répertoire de travail. Les fichiers importés peuvent importer récursivement d'autres fichiers, avec une profondeur maximale de quatre sauts.

117 117 

118Pour importer un fichier dont le chemin contient des espaces, mettez une barre oblique inverse avant chaque espace. Sans les barres obliques inverses, le chemin se termine au premier espace, même quand l'import est sur une ligne à lui seul. Un chemin enveloppé entre guillemets n'est pas importé du tout, avec ou sans les barres obliques inverses. Cet import charge un fichier à partir d'un dossier nommé `Design Docs` :

119 

120```text theme={null}

121- Conventions d'API @Design\ Docs/api-conventions.md

122```

123 

118L'analyse d'import ignore les étendues de code Markdown et les blocs de code clôturés. Pour mentionner un chemin dans votre CLAUDE.md sans l'importer, enveloppez-le dans des backticks : écrire `` `@README` `` garde le texte littéral, tandis que `@README` en dehors des backticks importe le fichier.124L'analyse d'import ignore les étendues de code Markdown et les blocs de code clôturés. Pour mentionner un chemin dans votre CLAUDE.md sans l'importer, enveloppez-le dans des backticks : écrire `` `@README` `` garde le texte littéral, tandis que `@README` en dehors des backticks importe le fichier.

119 125 

120Pour intégrer un README, package.json et un guide de flux de travail, référencez-les avec la syntaxe `@` n'importe où dans votre CLAUDE.md :126Pour intégrer un README, package.json et un guide de flux de travail, référencez-les avec la syntaxe `@` n'importe où dans votre CLAUDE.md :

model-config.md +8 −10

Details

65Les alias pointent vers la version recommandée pour votre fournisseur et se mettent à jour au fil du temps. Pour épingler une version spécifique, utilisez le nom de modèle complet, par exemple `claude-opus-5-5`, ou définissez la variable d'environnement correspondante comme `ANTHROPIC_DEFAULT_OPUS_MODEL`.65Les alias pointent vers la version recommandée pour votre fournisseur et se mettent à jour au fil du temps. Pour épingler une version spécifique, utilisez le nom de modèle complet, par exemple `claude-opus-5-5`, ou définissez la variable d'environnement correspondante comme `ANTHROPIC_DEFAULT_OPUS_MODEL`.

66 66 

67<Note>67<Note>

68 Sonnet 5.5 nécessite Claude Code v2.1.284 ou ultérieur, et Opus 5.5 nécessite v2.1.280 ou ultérieur. Exécutez `claude update` pour mettre à jour.68 Sonnet 5.5 nécessite Claude Code v2.1.284 ou ultérieur, et Opus 5.5 nécessite v2.1.280 ou ultérieur. Si une demande pour l'un d'eux à partir d'une version plus ancienne échoue, consultez [Claude Code ne supporte pas ce modèle](/docs/fr/errors#claude-code-does-not-support-this-model). Exécutez `claude update` pour mettre à jour.

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


164 164 

165Lorsque Claude Code ne peut pas dire quels hooks PreModelSwitch vos [plugins gérés](/docs/fr/settings-reference#enabledplugins) de l'organisation fournissent, par exemple parce qu'un plugin géré n'a pas pu se charger, il refuse le basculement plutôt que de l'appliquer sans vérification, et il vérifie à nouveau à chaque nouvelle tentative. Consultez [Le basculement de modèle a été bloqué par un hook PreModelSwitch](/docs/fr/errors#model-switch-was-blocked-by-a-premodelswitch-hook) pour le message et la récupération.165Lorsque Claude Code ne peut pas dire quels hooks PreModelSwitch vos [plugins gérés](/docs/fr/settings-reference#enabledplugins) de l'organisation fournissent, par exemple parce qu'un plugin géré n'a pas pu se charger, il refuse le basculement plutôt que de l'appliquer sans vérification, et il vérifie à nouveau à chaque nouvelle tentative. Consultez [Le basculement de modèle a été bloqué par un hook PreModelSwitch](/docs/fr/errors#model-switch-was-blocked-by-a-premodelswitch-hook) pour le message et la récupération.

166 166 

167Lorsque vous basculez les modèles via la méthode [`setModel()`](/docs/fr/agent-sdk/overview) du SDK Agent ou à partir d'un appareil connecté via [Contrôle à distance](/docs/fr/remote-control), ou une application telle que l'[application de bureau](/docs/fr/desktop) qui exécute le CLI Claude Code bascule pour vous, Claude Code vérifie que la chaîne est une qu'il reconnaît avant de l'enregistrer. Cette vérification nécessite Claude Code v2.1.200 ou ultérieur. La vérification d'un choix Contrôle à distance nécessite Claude Code v2.1.260 ou ultérieur sur votre machine. Sur l'API Anthropic, Claude Code reconnaît :167Lorsque vous basculez les modèles via la méthode [`setModel()`](/docs/fr/agent-sdk/overview) du SDK Agent, via une application telle que l'[application de bureau](/docs/fr/desktop), ou à partir d'un appareil connecté via [Contrôle à distance](/docs/fr/remote-control), Claude Code vérifie la valeur au basculement :

168 168 

169* un alias de modèle169* **SDK Agent ou une application** : avec Claude Code v2.1.268 ou ultérieur, sauf si Claude Code accepte un ID de modèle localement, comme il le fait pour votre [option de modèle personnalisé](#add-a-custom-model-option), il confirme l'ID auprès de votre fournisseur la première fois que la session bascule vers celui-ci. La confirmation s'exécute sur chaque fournisseur, et un ID que votre fournisseur n'offre pas est refusé au basculement au lieu d'échouer à votre prochaine demande.

170* une entrée du sélecteur `/model`170* **Contrôle à distance** : sur l'API Anthropic, Claude Code vérifie la valeur localement et n'envoie aucune demande.

171* tout nom qui commence par `claude-`

172* une valeur que vous avez configurée vous-même comme [option de modèle personnalisé](#add-a-custom-model-option) ou dans [`modelOverrides`](#override-model-ids-per-version)

173 171 

174Claude Code rejette une chaîne non reconnue avec `Model "<name>" is not a recognized model id.` et la session conserve son modèle actuel, au lieu d'enregistrer la chaîne et d'échouer à la prochaine demande. Consultez [la référence d'erreur](/docs/fr/errors#model-is-not-a-recognized-model-id) pour les étapes de récupération.172Consultez [Model is not a recognized model id](/docs/fr/errors#model-is-not-a-recognized-model-id) et [Model not found](/docs/fr/errors#model-not-found) pour les messages.

175 173 

176La vérification s'exécute uniquement sur l'API Anthropic. Sur Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry, [Claude Platform on AWS](/docs/fr/claude-platform-on-aws), et derrière une [passerelle LLM](/docs/fr/llm-gateway) ou une `ANTHROPIC_BASE_URL` personnalisée, votre fournisseur ou passerelle définit les noms de modèle, donc Claude Code transmet n'importe quelle chaîne sans la vérifier. La vérification ne couvre pas non plus l'indicateur `--model`, la variable d'environnement `ANTHROPIC_MODEL`, ou le paramètre `model` ; une valeur mal orthographiée là-bas produit [Il y a un problème avec le modèle sélectionné](/docs/fr/errors#theres-an-issue-with-the-selected-model) à la première demande à la place. Claude Code peut toujours écrire la [ligne de diagnostic de modèle non reconnu](/docs/fr/errors#unrecognized-model-id-on-a-request) au moment de la demande, sur chaque fournisseur.174Si vous définissez le modèle avec l'indicateur `--model`, la variable d'environnement `ANTHROPIC_MODEL`, ou le paramètre `model`, Claude Code ne le vérifie pas à l'avance, et une valeur mal orthographiée produit [There's an issue with the selected model](/docs/fr/errors#theres-an-issue-with-the-selected-model) à la première demande.

177 175 

178Lorsque le modèle demandé a une date de retrait programmée ou est automatiquement remappé à une version plus récente, Claude Code affiche un avertissement qui nomme le modèle demandé. Les sessions interactives l'affichent comme un avis de démarrage. À partir de v2.1.182, le même avertissement est écrit sur stderr en [mode non interactif](/docs/fr/headless) lors de l'utilisation du format de sortie texte par défaut. La vérification couvre également un `model` défini dans [frontmatter de sous-agent](/docs/fr/sub-agents). L'avertissement stderr est supprimé pour `--output-format json` et `stream-json` ; lisez le modèle réel à partir du champ `modelUsage` du [message de résultat](/docs/fr/headless#get-structured-output) à la place.176Lorsque le modèle demandé a une date de retrait programmée ou est automatiquement remappé à une version plus récente, Claude Code affiche un avertissement qui nomme le modèle demandé. Les sessions interactives l'affichent comme un avis de démarrage. À partir de v2.1.182, le même avertissement est écrit sur stderr en [mode non interactif](/docs/fr/headless) lors de l'utilisation du format de sortie texte par défaut. La vérification couvre également un `model` défini dans [frontmatter de sous-agent](/docs/fr/sub-agents). L'avertissement stderr est supprimé pour `--output-format json` et `stream-json` ; lisez le modèle réel à partir du champ `modelUsage` du [message de résultat](/docs/fr/headless#get-structured-output) à la place.

179 177 


241 Restreindre la sélection de modèle239 Restreindre la sélection de modèle

242</h2>240</h2>

243 241 

244Les administrateurs d'entreprise peuvent utiliser `availableModels` dans les [paramètres gérés ou de politique](/docs/fr/managed-settings) pour restreindre les modèles que les utilisateurs peuvent sélectionner. Les entrées correspondent à une famille de modèles telle que `sonnet`, un préfixe de version tel que `claude-sonnet-4-5`, ou un ID de modèle complet tel que `claude-sonnet-4-5-20250929`. Un préfixe de version correspond également aux ID de modèles ultérieurs qui l'étendent avec un autre segment, donc `claude-fable-5` permet à la fois Fable 5 et Fable 5.1, tandis que `claude-fable-5-1` permet uniquement Fable 5.1. Pour bloquer un modèle que la liste permet, ou pour faire en sorte que chaque entrée d'ID de modèle ne permette que la version qu'elle nomme, voir [Bloquer des modèles ou des versions spécifiques](#block-specific-models-or-versions).242Les administrateurs peuvent utiliser `availableModels` dans les [paramètres gérés ou de politique](/docs/fr/managed-settings) pour restreindre les modèles que les utilisateurs peuvent sélectionner. Les entrées correspondent à une famille de modèles telle que `sonnet`, un préfixe de version tel que `claude-sonnet-4-5`, ou un ID de modèle complet tel que `claude-sonnet-4-5-20250929`. Un préfixe de version correspond également aux ID de modèles ultérieurs qui l'étendent avec un autre segment, donc `claude-fable-5` permet à la fois Fable 5 et Fable 5.1, tandis que `claude-fable-5-1` permet uniquement Fable 5.1. Pour bloquer un modèle que la liste permet, ou pour faire en sorte que chaque entrée d'ID de modèle ne permette que la version qu'elle nomme, voir [Bloquer des modèles ou des versions spécifiques](#block-specific-models-or-versions).

245 243 

246Sur les plateformes qui intègrent Claude Code et définissent [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/fr/env-vars), la configuration de modèle de l'hôte a priorité sur les paramètres de modèle gérés, tandis qu'une liste d'autorisation `availableModels` gérée reste en vigueur sauf si l'hôte fournit la sienne ; [Exceptions à la priorité des paramètres gérés](/docs/fr/settings#exceptions-to-managed-settings-precedence) indique quelles clés et variables l'hôte remplace.244Sur les plateformes qui intègrent Claude Code et définissent [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/fr/env-vars), la configuration de modèle de l'hôte a priorité sur les paramètres de modèle gérés, tandis qu'une liste d'autorisation `availableModels` gérée reste en vigueur sauf si l'hôte fournit la sienne ; [Exceptions à la priorité des paramètres gérés](/docs/fr/settings#exceptions-to-managed-settings-precedence) indique quelles clés et variables l'hôte remplace.

247 245 


751| Définir le défaut global | Exécutez `/config` et basculez le mode de réflexion. Enregistré comme `alwaysThinkingEnabled` dans `~/.claude/settings.json` |749| Définir le défaut global | Exécutez `/config` et basculez le mode de réflexion. Enregistré comme `alwaysThinkingEnabled` dans `~/.claude/settings.json` |

752| Désactiver via une variable d'environnement | Définissez [`MAX_THINKING_TOKENS=0`](/docs/fr/env-vars), qui désactive la réflexion sur l'API Anthropic sauf sur Opus 5.5, Sonnet 5.5 et les modèles Fable. Sur les [fournisseurs tiers](/docs/fr/third-party-integrations), Claude Code omet le paramètre `thinking` à la place, et les modèles de raisonnement adaptatif peuvent toujours penser. D'autres valeurs s'appliquent uniquement avec un [budget de réflexion fixe](#adaptive-reasoning-and-fixed-thinking-budgets) |750| Désactiver via une variable d'environnement | Définissez [`MAX_THINKING_TOKENS=0`](/docs/fr/env-vars), qui désactive la réflexion sur l'API Anthropic sauf sur Opus 5.5, Sonnet 5.5 et les modèles Fable. Sur les [fournisseurs tiers](/docs/fr/third-party-integrations), Claude Code omet le paramètre `thinking` à la place, et les modèles de raisonnement adaptatif peuvent toujours penser. D'autres valeurs s'appliquent uniquement avec un [budget de réflexion fixe](#adaptive-reasoning-and-fixed-thinking-budgets) |

753 751 

754Vous ne pouvez pas désactiver la réflexion sur Opus 5.5, Sonnet 5.5 ou les modèles Fable. Le basculement de session, `alwaysThinkingEnabled` et `MAX_THINKING_TOKENS=0` n'ont aucun effet là, et le modèle décide à chaque étape combien penser en fonction du niveau d'effort.752Vous ne pouvez pas désactiver la réflexion sur Opus 5.5, Sonnet 5.5 ou les modèles Fable. Le basculement de session et le `/config` affichent `Thinking can't be turned off` pour ces modèles à la place d'offrir le basculement, et une `alwaysThinkingEnabled: false` enregistrée ou `MAX_THINKING_TOKENS=0` n'a aucun effet là. Sur ces modèles, le modèle décide à chaque étape combien penser en fonction du niveau d'effort. Le paramètre enregistré s'applique à nouveau quand vous basculez vers un modèle qui l'accepte.

755 753 

756Claude Code réduit la sortie de réflexion par défaut. Appuyez sur `Ctrl+O` pour basculer le mode verbeux et voir le raisonnement en tant que texte gris en italique. Les sessions interactives sur l'API Anthropic reçoivent des blocs de réflexion édités par défaut, donc définissez `showThinkingSummaries: true` dans les [paramètres](/docs/fr/settings) si vous voulez les résumés complets disponibles quand vous développez. Vous êtes facturé pour tous les jetons de réflexion générés, même quand réduits ou édités.754Claude Code réduit la sortie de réflexion par défaut. Appuyez sur `Ctrl+O` pour basculer le mode verbeux et voir le raisonnement en tant que texte gris en italique. Les sessions interactives sur l'API Anthropic reçoivent des blocs de réflexion édités par défaut, donc définissez `showThinkingSummaries: true` dans les [paramètres](/docs/fr/settings) si vous voulez les résumés complets disponibles quand vous développez. Vous êtes facturé pour tous les jetons de réflexion générés, même quand réduits ou édités.

757 755 

Details

64}64}

65```65```

66 66 

67Dans l'application Claude Desktop, les sessions de l'onglet Code lisent ces paramètres gérés à partir des sources qui [atteignent chaque type de session Desktop](/docs/fr/desktop#managed-settings). Le formulaire OpenTelemetry pour Cowork sous **Monitoring** dans les [paramètres de confidentialité et de données](https://claude.ai/admin-settings/data-privacy-controls) de la console d'administration s'applique uniquement aux sessions Cowork, donc ni l'interface de ligne de commande du terminal ni l'onglet Code n'exporte vers un collecteur que vous définissez là.

68 

67Claude Code ignore les [variables d'exportateur OpenTelemetry](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) dans le `.claude/settings.json` et `.claude/settings.local.json` d'un référentiel, donc un référentiel ne peut pas les utiliser pour activer la télémétrie, choisir où elle va ou capturer du contenu. Définissez-les dans les paramètres gérés, ou laissez chaque développeur les définir dans son shell ou `~/.claude/settings.json`. Un référentiel peut toujours désactiver un signal en définissant son sélecteur d'exportateur, tel que `OTEL_LOGS_EXPORTER`, sur `none`, sauf si les paramètres gérés, un fichier `--settings` ou l'environnement à partir duquel vous lancez Claude Code définit cette variable.69Claude Code ignore les [variables d'exportateur OpenTelemetry](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) dans le `.claude/settings.json` et `.claude/settings.local.json` d'un référentiel, donc un référentiel ne peut pas les utiliser pour activer la télémétrie, choisir où elle va ou capturer du contenu. Définissez-les dans les paramètres gérés, ou laissez chaque développeur les définir dans son shell ou `~/.claude/settings.json`. Un référentiel peut toujours désactiver un signal en définissant son sélecteur d'exportateur, tel que `OTEL_LOGS_EXPORTER`, sur `none`, sauf si les paramètres gérés, un fichier `--settings` ou l'environnement à partir duquel vous lancez Claude Code définit cette variable.

68 70 

69Claude Code ne transmet pas les variables d'environnement `OTEL_*` aux sous-processus qu'il génère, y compris l'outil Bash, les hooks, les serveurs MCP et les serveurs de langage. Une application instrumentée par OpenTelemetry que vous exécutez via l'outil Bash n'hérite pas du point de terminaison de l'exportateur ou des en-têtes de Claude Code, donc définissez ces variables directement dans la commande si cette application doit exporter sa propre télémétrie.71Claude Code ne transmet pas les variables d'environnement `OTEL_*` aux sous-processus qu'il génère, y compris l'outil Bash, les hooks, les serveurs MCP et les serveurs de langage. Une application instrumentée par OpenTelemetry que vous exécutez via l'outil Bash n'hérite pas du point de terminaison de l'exportateur ou des en-têtes de Claude Code, donc définissez ces variables directement dans la commande si cette application doit exporter sa propre télémétrie.

Details

299 299 

300Par défaut, le classificateur n'examine pas les suppressions `rm` et `rmdir` ciblant un chemin critique, comme `rm -rf /` ou `rm -rf ~`. [Chemins critiques](#critical-paths) couvre ce qui leur arrive dans chaque mode de permission.300Par défaut, le classificateur n'examine pas les suppressions `rm` et `rmdir` ciblant un chemin critique, comme `rm -rf /` ou `rm -rf ~`. [Chemins critiques](#critical-paths) couvre ce qui leur arrive dans chaque mode de permission.

301 301 

302Le mode auto encourage également Claude à continuer à travailler sans s'arrêter pour des questions de clarification, bien que Claude demande toujours quand votre invite ou une compétence s'y fient explicitement. Pour un comportement plus autonome dans un mode qui vous invite toujours, définissez plutôt le [style de sortie proactif](/docs/fr/output-styles).302Le mode auto encourage également Claude à continuer à travailler sans s'arrêter pour des questions de clarification, bien que Claude demande toujours quand votre invite ou une compétence s'y appuie explicitement. Pour un comportement plus autonome dans un mode qui vous invite toujours, définissez plutôt le [style de sortie proactif](/docs/fr/output-styles).

303 303 

304<Warning>304<Warning>

305 Le mode auto réduit les invites de permission mais ne garantit pas la sécurité. Utilisez-le pour les tâches où vous faites confiance à la direction générale, pas comme remplacement de l'examen sur les opérations sensibles.305 Le mode auto réduit les invites de permission mais ne garantit pas la sécurité. Utilisez-le pour les tâches où vous faites confiance à la direction générale, pas comme remplacement pour l'examen sur les opérations sensibles.

306</Warning>306</Warning>

307 307 

308Le mode auto est disponible uniquement quand votre compte répond à tous ces critères :308Le mode auto est disponible uniquement quand votre compte répond à tous ces critères :

309 309 

310* **Plan** : Tous les plans.310* **Plan** : Tous les plans.

311* **Organisation** : sur Team et Enterprise, le mode auto est disponible par défaut. Les administrateurs peuvent le désactiver pour l'organisation en définissant `permissions.disableAutoMode` sur `"disable"` dans les [paramètres gérés](/docs/fr/managed-settings).311* **Organisation** : sur Team et Enterprise, le mode auto est disponible par défaut. Les administrateurs peuvent le désactiver pour l'organisation en définissant `permissions.disableAutoMode` à `"disable"` dans les [paramètres gérés](/docs/fr/managed-settings).

312* **Modèle** : sur l'API Anthropic et [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws), Claude Opus 4.6 ou ultérieur, Sonnet 4.6 ou ultérieur, ou un [modèle Fable](/docs/fr/model-config#work-with-fable). Sur Amazon Bedrock, la plateforme d'agents de Google Cloud, Microsoft Foundry et les sessions de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) connectées, uniquement Claude Sonnet 5 ou ultérieur, Opus 4.7 ou ultérieur, et les modèles Fable. Les modèles plus anciens, y compris Sonnet 4.5, Opus 4.5, Haiku et les modèles claude-3, ne sont pas pris en charge sur aucun fournisseur.312* **Modèle** : sur l'API Anthropic et [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws), Claude Opus 4.6 ou ultérieur, Sonnet 4.6 ou ultérieur, ou un [modèle Fable](/docs/fr/model-config#work-with-fable). Sur Amazon Bedrock, la plateforme Agent de Google Cloud, Microsoft Foundry et les sessions [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) connectées, uniquement Claude Sonnet 5 ou ultérieur, Opus 4.7 ou ultérieur, et les modèles Fable. Les modèles plus anciens, y compris Sonnet 4.5, Opus 4.5, Haiku et les modèles claude-3, ne sont pas supportés sur aucun fournisseur.

313* **Fournisseur** : disponible par défaut sur l'API Anthropic, Claude Platform sur AWS, Amazon Bedrock, la plateforme d'agents de Google Cloud, Microsoft Foundry et les sessions de passerelle d'applications Claude connectées.313* **Fournisseur** : disponible par défaut sur l'API Anthropic, Claude Platform sur AWS, Amazon Bedrock, la plateforme Agent de Google Cloud, Microsoft Foundry et les sessions passerelle d'applications Claude connectées.

314 314 

315Si Claude Code signale que le mode auto n'est pas disponible, vérifiez d'abord ces critères et si un fichier de paramètres définit [`disableAutoMode`](/docs/fr/settings-reference#disableautomode). Anthropic peut également avoir désactivé le mode auto côté serveur, ou le serveur peut avoir rejeté le mode auto pour votre compte. Une session qui a reçu l'une ou l'autre réponse garde le mode auto désactivé jusqu'à la fin de la session, donc démarrez une nouvelle session plus tard.315Si Claude Code signale que le mode auto n'est pas disponible, vérifiez d'abord ces critères et si un fichier de paramètres définit [`disableAutoMode`](/docs/fr/settings-reference#disableautomode). Anthropic peut également avoir désactivé le mode auto côté serveur, ou le serveur peut avoir rejeté le mode auto pour votre compte. Une session qui a reçu l'une ou l'autre réponse garde le mode auto désactivé jusqu'à la fin de la session, donc démarrez une nouvelle session plus tard.

316 316 


322 Mode auto sur Bedrock, Agent Platform ou Foundry322 Mode auto sur Bedrock, Agent Platform ou Foundry

323</h3>323</h3>

324 324 

325Sur [Amazon Bedrock](/docs/fr/amazon-bedrock), [la plateforme d'agents de Google Cloud](/docs/fr/google-vertex-ai), [Microsoft Foundry](/docs/fr/microsoft-foundry) et les sessions de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) connectées, le mode auto est disponible par défaut. Avec Claude Code v2.1.283 ou ultérieur, c'est aussi le [mode de permission intégré de démarrage](#which-mode-a-session-starts-in) pour les sessions de terminal interactif et [VS Code](/docs/fr/vs-code). Pour choisir vous-même le mode de permission de démarrage, définissez `permissions.defaultMode` comme le décrit [Démarrer dans un mode de permission différent](#start-in-a-different-mode), ou choisissez un mode de permission dans l'indicateur de mode de l'extension VS Code.325Sur [Amazon Bedrock](/docs/fr/amazon-bedrock), [la plateforme Agent de Google Cloud](/docs/fr/google-vertex-ai), [Microsoft Foundry](/docs/fr/microsoft-foundry) et les sessions [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) connectées, le mode auto est disponible par défaut. Avec Claude Code v2.1.283 ou ultérieur, c'est aussi le [mode de permission intégré de démarrage](#which-mode-a-session-starts-in) pour les sessions de terminal interactif et [VS Code](/docs/fr/vs-code). Pour choisir vous-même le mode de permission de démarrage, définissez `permissions.defaultMode` comme le décrit [Démarrer dans un mode de permission différent](#start-in-a-different-mode), ou choisissez un mode de permission dans l'indicateur de mode de l'extension VS Code.

326 326 

327Seuls Claude Sonnet 5 ou ultérieur, Opus 4.7 ou ultérieur, et les modèles Fable sont pris en charge sur ces fournisseurs. Sur tout autre modèle, la session démarre en Manual à la place.327Seuls Claude Sonnet 5 ou ultérieur, Opus 4.7 ou ultérieur, et les modèles Fable sont supportés sur ces fournisseurs. Sur tout autre modèle, la session démarre en Manual à la place.

328 328 

329Pour empêcher les développeurs d'utiliser le mode auto, définissez `disableAutoMode` sur `"disable"` dans les [paramètres gérés](/docs/fr/managed-settings). Cela supprime `auto` du cycle `Shift+Tab`, et une session démarrée avec `--permission-mode auto` démarre en Manual à la place. Une session déjà en cours d'exécution en mode auto le quitte quand le paramètre l'atteint à partir d'une [source déployée par l'administrateur](/docs/fr/managed-settings#which-managed-source-claude-code-uses), et affiche `auto mode disabled by settings`. Avant v2.1.251, une session en cours d'exécution gardait le mode auto jusqu'à sa fin.329Pour empêcher les développeurs d'utiliser le mode auto, définissez `disableAutoMode` à `"disable"` dans les [paramètres gérés](/docs/fr/managed-settings). Cela supprime `auto` du cycle `Shift+Tab`, et une session démarrée avec `--permission-mode auto` démarre en Manual à la place. Une session déjà en cours d'exécution en mode auto le quitte quand le paramètre l'atteint à partir d'une [source déployée par l'administrateur](/docs/fr/managed-settings#which-managed-source-claude-code-uses), et affiche `auto mode disabled by settings`. Avant v2.1.251, une session en cours d'exécution gardait le mode auto jusqu'à la fin.

330 330 

331Dans v2.1.158 à v2.1.206, le mode auto était désactivé sur ces fournisseurs jusqu'à ce que vous définissiez `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, et Claude Code ignorait `defaultMode: "auto"` sur ces fournisseurs à moins que la variable ne soit également définie. La variable est toujours acceptée pour la compatibilité et n'a aucun effet à partir de v2.1.207.331Dans v2.1.158 à v2.1.206, le mode auto était désactivé sur ces fournisseurs jusqu'à ce que vous définissiez `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, et Claude Code ignorait `defaultMode: "auto"` sur ces fournisseurs à moins que la variable ne soit également définie. La variable est toujours acceptée pour la compatibilité et n'a aucun effet à partir de v2.1.207.

332 332 


337En mode auto, Claude Code peut demander au serveur de vérifier les actions que [l'ordre de décision](#how-the-classifier-evaluates-actions) envoie pour examen, dans le cadre des demandes de modèle de la session, à la place d'envoyer ses propres demandes de classificateur. Ces sessions demandent :337En mode auto, Claude Code peut demander au serveur de vérifier les actions que [l'ordre de décision](#how-the-classifier-evaluates-actions) envoie pour examen, dans le cadre des demandes de modèle de la session, à la place d'envoyer ses propres demandes de classificateur. Ces sessions demandent :

338 338 

339* **Une connexion directe à l'API Anthropic** : dans une session de terminal interactif, sur tous les plans claude.ai et sur les comptes qui utilisent l'API Claude, au fur et à mesure qu'Anthropic le déploie. Nécessite Claude Code v2.1.271 ou ultérieur sur les plans Pro, Max et Team, et v2.1.278 ou ultérieur sur les plans Enterprise et les comptes Claude API. À partir de v2.1.282, une session qui [ne récupère pas les drapeaux de fonctionnalité](/docs/fr/env-vars#features-that-need-feature-flag-fetching), par exemple parce que vous avez désactivé la télémétrie, demande au serveur par défaut dans n'importe quel type de session.339* **Une connexion directe à l'API Anthropic** : dans une session de terminal interactif, sur tous les plans claude.ai et sur les comptes qui utilisent l'API Claude, au fur et à mesure qu'Anthropic le déploie. Nécessite Claude Code v2.1.271 ou ultérieur sur les plans Pro, Max et Team, et v2.1.278 ou ultérieur sur les plans Enterprise et les comptes Claude API. À partir de v2.1.282, une session qui [ne récupère pas les drapeaux de fonctionnalité](/docs/fr/env-vars#features-that-need-feature-flag-fetching), par exemple parce que vous avez désactivé la télémétrie, demande au serveur par défaut dans n'importe quel type de session.

340* **Un fournisseur cloud, ou une passerelle LLM ou un proxy** : sur [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws), Amazon Bedrock, la plateforme d'agents de Google Cloud et Microsoft Foundry, et chaque fois que vous pointez `ANTHROPIC_BASE_URL` vers une [passerelle LLM ou un proxy](/docs/fr/llm-gateway), quel que soit votre plan. Demander par défaut nécessite Claude Code v2.1.278 ou ultérieur.340* **Un fournisseur cloud, ou une passerelle LLM ou un proxy** : sur [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws), Amazon Bedrock, la plateforme Agent de Google Cloud et Microsoft Foundry, et chaque fois que vous pointez `ANTHROPIC_BASE_URL` vers une [passerelle LLM ou un proxy](/docs/fr/llm-gateway), quel que soit votre plan. Demander par défaut nécessite Claude Code v2.1.278 ou ultérieur.

341* **Une session de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) connectée** : nécessite Claude Code v2.1.280 ou ultérieur341* **Une session [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) connectée** : nécessite Claude Code v2.1.280 ou ultérieur

342 342 

343Où le serveur examine les actions, ses verdicts les décident. Deux autres résultats sont possibles :343Où le serveur examine les actions, ses verdicts les décident. Deux autres résultats sont possibles :

344 344 

345* **Le serveur n'examine pas la session** : une réponse se termine sans résultats d'examen, ou le serveur répond qu'il n'examine pas cette session. Les causes les plus courantes sont une passerelle LLM ou un proxy qui supprime la demande d'examen ou les résultats, et une plateforme, une région ou des identifiants qui n'ont pas encore de vérifications côté serveur. Claude Code revient à ses propres demandes de classificateur. Une fois que ce retour en arrière tient pour le reste de la session, il affiche un [avis sur les frais de demande de classificateur](/docs/fr/auto-mode-classifier-billing) sur les comptes où ces demandes sont facturées.345* **Le serveur n'examine pas la session** : une réponse se termine sans résultats d'examen, ou le serveur répond qu'il n'examine pas cette session. Les causes les plus courantes sont une passerelle LLM ou un proxy qui abandonne la demande d'examen ou les résultats, et une plateforme, une région ou des identifiants qui n'ont pas encore de vérifications côté serveur. Claude Code revient à ses propres demandes de classificateur. Une fois que ce retour en arrière tient pour le reste de la session, il affiche un [avis sur les frais de demande de classificateur](/docs/fr/auto-mode-classifier-billing) sur les comptes où ces demandes sont facturées.

346* **Le serveur ne donne pas de verdict pour une action** : Claude Code refuse l'action plutôt que de l'exécuter sans examen. Sur n'importe quelle connexion, cela se produit quand la réponse se termine avant l'arrivée des résultats d'examen ou que les résultats arrivent sous une forme que Claude Code ne peut pas lire. Une passerelle LLM ou un proxy qui raccourcit les réponses ou réécrit les résultats peut causer l'un ou l'autre. Sur une connexion directe à l'API Anthropic, cela se produit également quand la vérification du serveur échoue pour l'action, par exemple en dépassant le délai d'attente. [Le serveur n'a pas retourné de verdict de sécurité](/docs/fr/errors#the-server-returned-no-safety-verdict) couvre le message de refus, ce qui se passe quand les refus se répètent, et ce qu'il faut faire.346* **Le serveur ne donne pas de verdict pour une action** : Claude Code refuse l'action plutôt que de l'exécuter sans examen. Sur n'importe quelle connexion, cela se produit quand la réponse se termine avant l'arrivée des résultats d'examen ou que les résultats arrivent sous une forme que Claude Code ne peut pas lire. Une passerelle LLM ou un proxy qui raccourcit les réponses ou réécrit les résultats peut causer l'un ou l'autre. Sur une connexion directe à l'API Anthropic, cela se produit également quand la vérification du serveur échoue pour l'action, par exemple en dépassant le délai d'attente. [Le serveur n'a pas retourné de verdict de sécurité](/docs/fr/errors#the-server-returned-no-safety-verdict) couvre le message de refus, ce qui se passe quand les refus se répètent, et ce qu'il faut faire.

347 347 

348Pour ignorer la demande au serveur et toujours utiliser les propres demandes de classificateur de Claude Code, définissez [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/fr/env-vars). Sur une connexion directe à l'API Anthropic, la variable nécessite Claude Code v2.1.281 ou ultérieur. La définir sur `1` active l'examen du serveur dans une session qui ne l'a pas encore, comme une session `-p` ou Agent SDK, à moins que vous n'ayez également défini `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Si vous définissez `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` et laissez `CLAUDE_CODE_AUTO_MODE_SERVER` non défini, Claude Code cesse également de demander au serveur, sauf comme le décrit [Désactiver les capacités de pré-version](/docs/fr/llm-gateway-protocol#disable-pre-release-capabilities).348Pour ignorer la demande au serveur et toujours utiliser les propres demandes de classificateur de Claude Code, définissez [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/fr/env-vars). Sur une connexion directe à l'API Anthropic, la variable nécessite Claude Code v2.1.281 ou ultérieur. La définir à `1` active l'examen du serveur dans une session qui ne l'a pas encore, comme une session `-p` ou Agent SDK, à moins que vous n'ayez également défini `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Si vous définissez `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` et laissez `CLAUDE_CODE_AUTO_MODE_SERVER` non défini, Claude Code cesse également de demander au serveur, sauf comme le décrit [Désactiver les capacités de pré-version](/docs/fr/llm-gateway-protocol#disable-pre-release-capabilities).

349 349 

350<h3 id="what-the-classifier-blocks-by-default">350<h3 id="what-the-classifier-blocks-by-default">

351 Ce que le classificateur bloque par défaut351 Ce que le classificateur bloque par défaut


360* Déploiements et migrations de production360* Déploiements et migrations de production

361* Suppression en masse sur le stockage cloud361* Suppression en masse sur le stockage cloud

362* Octroi de permissions IAM ou de dépôt362* Octroi de permissions IAM ou de dépôt

363* Modification d'infrastructure partagée363* Modification d'une infrastructure partagée

364* Destruction irréversible de fichiers qui existaient avant la session364* Destruction irréversible de fichiers qui existaient avant la session

365* Forcer la poussée365* Forcer la poussée

366* Valider ou pousser une modification qui enverrait des secrets ou des données sensibles en dehors du dépôt quand elle s'exécute, ou élargir ce qu'un déploiement expose. Cela couvre un flux de travail CI ou une configuration de déploiement qui transmet un secret à une destination qui ne le reçoit pas déjà, un script ou une étape de configuration qui lit un magasin de secrets et envoie les données, et une modification de configuration qui élargit ce qu'un déploiement publie, comme un registre, une visibilité, un artefact ou un paramètre de sourcemap. La vérification s'applique sur n'importe quelle branche, s'applique même quand le dépôt est public, et se déclenche quand la modification est validée ou poussée, que ce commit ou cette poussée déclenche le pipeline ou non ; la clarifier nécessite de nommer l'effet d'exécution, pas seulement le commit ou la poussée. Avant v2.1.211, cette vérification était limitée à la branche par défaut à la place : une poussée là était bloquée quand elle portait du contenu sensible, des modifications dissimulées ou mal décrites par rapport à ce que vous avez demandé, du contenu porté de l'extérieur du dépôt, ou contourné une révision que vous avez demandée366* Valider ou pousser une modification qui enverrait des secrets ou des données sensibles en dehors du dépôt quand elle s'exécute, ou élargir ce qu'un déploiement expose. Cela couvre un flux de travail CI ou une configuration de déploiement qui transmet un secret à une destination qui ne le reçoit pas déjà, un script ou une étape de configuration qui lit un magasin de secrets et envoie les données, et une modification de configuration qui élargit ce qu'un déploiement publie, comme un registre, une visibilité, un artefact ou un paramètre de sourcemap. La vérification s'applique sur n'importe quelle branche, s'applique même quand le dépôt est public, et se déclenche quand la modification est validée ou poussée, que ce commit ou cette poussée déclenche le pipeline ou non ; la clarifier nécessite de nommer l'effet d'exécution, pas seulement le commit ou la poussée. Avant v2.1.211, cette vérification était limitée à la branche par défaut à la place : une poussée là était bloquée quand elle portait du contenu sensible, des modifications dissimulées ou mal décrites par rapport à ce que vous avez demandé, du contenu porté de l'extérieur du dépôt, ou contourné une révision que vous avez demandée

367* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` ou `git stash clear`, que le classificateur présume éliminerait les modifications non validées367* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` ou `git stash clear`, que le classificateur présume élimineraient les modifications non validées

368* `git commit --amend` quand le commit à HEAD n'a pas été créé dans cette session368* `git commit --amend` quand le commit à HEAD n'a pas été créé dans cette session

369* À partir de v2.1.198, `git commit --amend` quand le commit à HEAD a déjà été poussé. Une réécriture de message uniquement n'est pas bloquée : `--amend -m` sans rien de nouvellement préparé, sur un commit que Claude a créé pendant cette session369* À partir de v2.1.198, `git commit --amend` quand le commit à HEAD a déjà été poussé. Une réécriture de message uniquement n'est pas bloquée : `--amend -m` sans rien de nouvellement préparé, sur un commit que Claude a créé pendant cette session

370* `terraform destroy`, `pulumi destroy`, `cdk destroy` ou `terragrunt destroy`, et appliquer un plan qui détruit des ressources370* `terraform destroy`, `pulumi destroy`, `cdk destroy` ou `terragrunt destroy`, et appliquer un plan qui détruit des ressources


376* Publication d'un commentaire qui est lui-même une commande à l'automatisation, comme `atlantis apply` ou le `/deploy` ou `/merge` d'un bot376* Publication d'un commentaire qui est lui-même une commande à l'automatisation, comme `atlantis apply` ou le `/deploy` ou `/merge` d'un bot

377* Basculement, augmentation ou suppression d'un drapeau de fonctionnalité de production377* Basculement, augmentation ou suppression d'un drapeau de fonctionnalité de production

378* Application de modifications d'infrastructure à une portée IaC protégée, ou drainage et suppression de nœuds de cluster378* Application de modifications d'infrastructure à une portée IaC protégée, ou drainage et suppression de nœuds de cluster

379* Écritures dans un cluster de calcul partagé qui vont au-delà de la ressource que vous avez nommée, comme un sélecteur d'étiquette ou `--all` qui capture les tâches d'autres utilisateurs379* Écritures dans un cluster de calcul partagé qui vont au-delà de la ressource que vous avez nommée, comme un sélecteur d'étiquette ou `--all` qui attrape les tâches d'autres utilisateurs

380* Création de ressources Kubernetes qui s'exécutent sur chaque nœud ou interceptent le trafic du cluster, comme les DaemonSets et les webhooks d'admission380* Création de ressources Kubernetes qui s'exécutent sur chaque nœud ou interceptent le trafic du cluster, comme les DaemonSets et les webhooks d'admission

381* Shells interactifs ou transferts de port vers une cible de télécommande sensible381* Shells interactifs ou transferts de port vers une cible de télécommande sensible

382* Ouverture d'un tunnel ou d'un shell inverse qui rend un service local accessible depuis l'internet public382* Ouverture d'un tunnel ou d'un shell inverse qui rend un service local accessible depuis l'internet public

383* Impression d'un identifiant ou d'un jeton en direct dans la transcription ou un fichier383* Impression d'une identifiant ou d'un jeton en direct dans la transcription ou un fichier

384* Accès à un emplacement répertorié comme emplacement de données sensibles dans votre [environnement](/docs/fr/auto-mode-config#define-trusted-infrastructure), ou copie de données hors de celui-ci. À partir de v2.1.198, cela bloque également l'envoi de données d'un vers un public que l'entrée exclut384* Accès à un emplacement répertorié comme emplacement de données sensibles dans votre [environnement](/docs/fr/auto-mode-config#define-trusted-infrastructure), ou copie de données hors de celui-ci. À partir de v2.1.198, cela bloque également l'envoi de données d'un à un public que l'entrée exclut

385* Routage d'une installation de paquet autour de votre registre de paquet interne vers un registre public. À partir de v2.1.198, cela s'applique également quand vous avez dit à Claude qu'un registre interne ou un miroir existe dans la conversation, pas seulement quand un est répertorié dans votre environnement385* Routage d'une installation de paquet autour de votre registre de paquet interne vers un registre public. À partir de v2.1.198, cela s'applique également quand vous avez dit à Claude qu'un registre interne ou un miroir existe dans la conversation, pas seulement quand un est répertorié dans votre environnement

386* Exécution d'une commande avec un drapeau qui désarme une garde de sécurité, comme `--insecure`386* Exécution d'une commande avec un drapeau qui désarme une garde de sécurité, comme `--insecure`

387* Lancement d'une boucle d'agent autonome qui s'exécute sans approbation humaine ou bac à sable, comme une lancée avec `--dangerously-skip-permissions` ou `--no-sandbox`. À partir de v2.1.198, cela couvre également l'exécution d'un agent tiers ou d'un harnais d'évaluation avec isolation et approbation par action désactivées, comme un coureur lancé avec `--yes-always`387* Lancement d'une boucle d'agent autonome qui s'exécute sans approbation humaine ou bac à sable, comme une lancée avec `--dangerously-skip-permissions` ou `--no-sandbox`. À partir de v2.1.198, cela couvre également l'exécution d'un agent tiers ou d'un harnais d'évaluation avec isolation et approbation par action désactivées, comme un coureur lancé avec `--yes-always`


390Claude Code v2.1.198 et ultérieur bloquent également ceux-ci par défaut :390Claude Code v2.1.198 et ultérieur bloquent également ceux-ci par défaut :

391 391 

392* Suppression de fichiers dans `/tmp`, `$TMPDIR` ou un autre répertoire de travail partagé ou de cache par caractère générique, glob ou filtre d'âge plutôt que par un chemin nommé spécifique392* Suppression de fichiers dans `/tmp`, `$TMPDIR` ou un autre répertoire de travail partagé ou de cache par caractère générique, glob ou filtre d'âge plutôt que par un chemin nommé spécifique

393* Inclusion de détails sensibles dans le contenu envoyé, téléchargé, publié ou écrit à d'autres personnes ou systèmes partagés, quand votre propre message n'a pas autorisé ces détails pour ce destinataire. Les corps de PR et de problème, les messages de commit et les commentaires comptent comme ce type de contenu sortant quand le dépôt est en dehors de la limite de confiance ou public, y compris les dépôts publics de votre propre organisation ; les chemins de fichiers internes, les noms de code, les données de réponse API en direct comme les e-mails ou les identifiants de compte, et les identifiants d'infrastructure comptent comme des détails sensibles. La portée de PR, de problème et de message de commit nécessite Claude Code v2.1.200 ou ultérieur. Les données personnelles en direct d'une réponse API dans un corps de PR ou de problème, comme une adresse e-mail, un identifiant de compte ou d'organisation, ou une métrique d'utilisation, vous obligent à nommer ces détails et le destinataire indépendamment de la visibilité du dépôt ou de la limite de confiance. Cette vérification nécessite Claude Code v2.1.203 ou ultérieur393* Inclusion de détails sensibles dans le contenu envoyé, téléchargé, publié ou écrit à d'autres personnes ou systèmes partagés, quand votre propre message n'a pas autorisé ces détails pour ce destinataire. Les corps de PR et de problème, les messages de commit et les commentaires comptent comme ce type de contenu sortant quand le dépôt est en dehors de la limite de confiance ou public, y compris les dépôts publics de votre propre organisation ; les chemins de fichiers internes, les noms de code, les données de réponse API en direct comme les e-mails ou les identifiants de compte, et les identifiants d'infrastructure comptent comme des détails sensibles. La portée PR, problème et message de commit nécessite Claude Code v2.1.200 ou ultérieur. Les données personnelles en direct d'une réponse API dans un corps de PR ou de problème, comme une adresse e-mail, un identifiant de compte ou d'organisation, ou une métrique d'utilisation, vous obligent à nommer ces détails et le destinataire indépendamment de la visibilité ou de la limite de confiance du dépôt. Cette vérification nécessite Claude Code v2.1.203 ou ultérieur

394* Envoi de frappes au clavier au propre volet tmux de Claude Code pour piloter sa propre interface, que le classificateur traite comme Claude changeant ses propres permissions ou surveillance394* Envoi de frappes à son propre volet tmux de Claude Code pour piloter sa propre interface, que le classificateur traite comme Claude changeant ses propres permissions ou surveillance

395 395 

396Claude Code v2.1.200 et ultérieur bloquent également ceux-ci par défaut :396Claude Code v2.1.200 et ultérieur bloquent également ceux-ci par défaut :

397 397 

398* Commentaire, suppression ou passage en force d'un test ou d'une assertion qui protège le comportement de sécurité, comme l'authentification, le contrôle d'accès, la validation d'entrée ou le bac à sable398* Commentaire, suppression ou passage en force d'un test ou d'une assertion qui protège le comportement de sécurité, comme l'authentification, le contrôle d'accès, la validation des entrées ou le bac à sable

399* Suppression ou démantèlement d'une ressource avec état que Claude n'a pas créée dans la session, quand aucune règle de suppression plus spécifique ne s'applique et que vous n'avez pas nommé cette ressource399* Suppression ou démantèlement d'une ressource avec état que Claude n'a pas créée dans la session, quand aucune règle de suppression plus spécifique ne s'applique et que vous n'avez pas nommé cette ressource

400* Réorientation d'une URL de base API, d'un point de terminaison proxy, d'un récepteur webhook ou d'un miroir de registre vers un hôte tiers qui ne correspond pas à la tâche, y compris dans les fichiers d'exemple comme `.env.example`400* Réorientation d'une URL de base API, d'un point de terminaison proxy, d'un récepteur webhook ou d'un miroir de registre vers un hôte tiers qui ne convient pas à la tâche, y compris dans les fichiers d'exemple comme `.env.example`

401* Modification de la destination des poussées avec `git remote set-url` ou `git remote add`, à moins que vous n'ayez nommé la nouvelle télécommande401* Modification de la destination des poussées avec `git remote set-url` ou `git remote add`, à moins que vous n'ayez nommé la nouvelle télécommande

402* Poussée de secrets ou de données personnelles ou confiées vers un dépôt connu pour être public, ou poussée de matériel confidentiel là qui ne fait pas partie du travail propre de ce dépôt. Le sujet propre d'un dépôt de dotfiles est la seule exception pour les données personnelles ou confiées, et le contenu d'un dépôt privé atteignant n'importe quelle surface publique est bloqué de la même manière ; les deux raffinements nécessitent Claude Code v2.1.203 ou ultérieur. Avant v2.1.203, les données personnelles étaient groupées avec le matériel confidentiel et bloquées uniquement quand elles ne faisaient pas partie du travail propre de ce dépôt. Quand la visibilité d'un dépôt n'est pas établie, le classificateur ne bloque pas sur cela seul ; il juge le contenu par rapport aux autres règles à la place402* Poussée de secrets ou de données personnelles ou confiées vers un dépôt connu pour être public, ou poussée de matériel confidentiel là qui ne fait pas partie du travail propre de ce dépôt. Le sujet propre d'un dépôt de dotfiles est la seule exception pour les données personnelles ou confiées, et le contenu d'un dépôt privé atteignant n'importe quelle surface publique est bloqué de la même manière ; les deux raffinements nécessitent Claude Code v2.1.203 ou ultérieur. Avant v2.1.203, les données personnelles étaient groupées avec le matériel confidentiel et bloquées uniquement quand elles ne faisaient pas partie du travail propre de ce dépôt. Quand la visibilité d'un dépôt n'est pas établie, le classificateur ne bloque pas sur cela seul ; il juge le contenu par rapport aux autres règles à la place

403* Ouverture d'une demande de tirage contre un dépôt ou une organisation différente, bifurcation avec `gh repo fork`, ou poussée vers un dépôt tiers, à moins que vous n'ayez nommé cette cible externe403* Ouverture d'une demande de tirage contre un dépôt ou une organisation différente, bifurcation avec `gh repo fork` ou poussée vers un dépôt tiers, à moins que vous n'ayez nommé cette cible externe

404 404 

405Claude Code v2.1.203 et ultérieur bloquent également ceux-ci par défaut :405Claude Code v2.1.203 et ultérieur bloquent également ceux-ci par défaut :

406 406 


415 415 

416Claude Code v2.1.257 et ultérieur bloquent également ceux-ci par défaut :416Claude Code v2.1.257 et ultérieur bloquent également ceux-ci par défaut :

417 417 

418* Demande d'identifiants à partir du point de terminaison de métadonnées d'instance cloud, comme `169.254.169.254`, ou authentification explicite d'un appel cloud, cluster ou registre avec l'identité de compte de service ou de nœud de la machine418* Demande d'identifiants à partir du point de terminaison de métadonnées d'instance cloud, comme `169.254.169.254`, ou authentification explicite d'un appel cloud, cluster ou registre avec l'identité de compte de service ou de nœud propre de la machine

419* Atteinte d'un hôte public par une route autre qu'une demande directe, comme un tunnel, un shell inverse ou une configuration de résolveur ou de proxy réécrite pour pointer vers l'extérieur419* Atteinte d'un hôte public par une route autre qu'une demande directe, comme un tunnel, un shell inverse ou une configuration de résolveur ou de proxy réécrite pour pointer vers l'extérieur

420* Lecture d'identifiants qui appartiennent à l'hôte plutôt qu'à votre tâche, comme les certificats de nœud ou l'authentification du registre de conteneurs du nœud420* Lecture d'identifiants qui appartiennent à l'hôte plutôt qu'à votre tâche, comme les certificats de nœud ou l'authentification du registre de conteneurs du nœud

421* Connexion à ou analyse de conteneurs, pods ou VMs frères que Claude n'a pas démarrés, ou le nœud sous le conteneur421* Connexion à ou analyse de conteneurs, pods ou VMs frères que Claude n'a pas démarrés, ou le nœud sous le conteneur

422 422 

423Si Claude Code s'exécute quelque part qui est censé permettre l'un de ceux-ci, décrivez cette configuration dans une entrée [Host containment](/docs/fr/auto-mode-config#define-trusted-infrastructure) dans `autoMode.environment`.423Si Claude Code s'exécute quelque part qui est censé permettre l'un de ceux-ci, décrivez cette configuration dans une [entrée Host containment](/docs/fr/auto-mode-config#define-trusted-infrastructure) dans `autoMode.environment`.

424 424 

425Claude Code v2.1.261 et ultérieur bloquent également ceux-ci par défaut :425Claude Code v2.1.261 et ultérieur bloquent également ceux-ci par défaut :

426 426 

427* Publication ou écriture d'un lien vers un service public de collage, de diagramme ou de partage de données dans un message, un texte de PR ou de problème, un document ou n'importe où ailleurs le lien sera ouvert ou récupéré, quand l'URL elle-même porte le contenu partagé, à moins que vous n'ayez nommé ce service427* Publication ou écriture d'un lien vers un service public de collage, de diagramme ou de partage de données dans un message, un texte de PR ou de problème, un document ou n'importe où ailleurs où le lien sera ouvert ou récupéré, quand l'URL elle-même porte le contenu partagé, à moins que vous n'ayez nommé ce service

428 428 

429**Autorisé par défaut** :429**Autorisé par défaut** :

430 430 

431* Opérations de fichier local dans votre répertoire de travail431* Opérations de fichiers locaux dans votre répertoire de travail

432* Installation de dépendances déclarées dans vos fichiers de verrouillage ou manifestes432* Installation de dépendances déclarées dans vos fichiers de verrouillage ou manifestes

433* Lecture de `.env` et envoi d'identifiants à leur API correspondante433* Lecture de `.env` et envoi d'identifiants à leur API correspondante

434* Demandes HTTP en lecture seule434* Demandes HTTP en lecture seule


438 438 

439* Suppression des tâches exactes que Claude a créées plus tôt dans la même session439* Suppression des tâches exactes que Claude a créées plus tôt dans la même session

440* Lecture, révision ou écriture de code, de configurations et de modèles de menace liés à la sécurité dans le cadre de votre tâche440* Lecture, révision ou écriture de code, de configurations et de modèles de menace liés à la sécurité dans le cadre de votre tâche

441* Messages entre agents travaillant ensemble dans la même session multi-agents441* Messages entre agents travaillant ensemble dans la même session multi-agent

442* Envoi de données vers les domaines approuvés, les buckets et les services que vous répertoriez dans [`environment`](/docs/fr/auto-mode-config#define-trusted-infrastructure). Cela couvre le flux de données uniquement, pas les opérations destructrices ou d'identifiant sur la même infrastructure442* Envoi de données aux domaines approuvés, aux buckets et aux services que vous répertoriez dans [`environment`](/docs/fr/auto-mode-config#define-trusted-infrastructure). Cela couvre le flux de données uniquement, pas les opérations destructrices ou d'identifiant sur la même infrastructure

443* [Claude dans Chrome](/docs/fr/chrome) navigation vers un domaine interne approuvé, localhost ou une URL que vous avez nommée443* [Claude dans Chrome](/docs/fr/chrome) navigation vers un domaine interne approuvé, localhost ou une URL que vous avez nommée

444 444 

445Les commandes en bac à sable n'obtiennent pas d'accès réseau par défaut. Claude nomme les hôtes qu'une commande a besoin sur la commande elle-même, le classificateur les examine avec la commande, et une liste approuvée ouvre ces hôtes pour cette seule commande. [Domaines autorisés par commande](/docs/fr/sandboxing#per-command-allowed-domains-in-auto-mode) couvre ce qu'une liste peut et ne peut pas ouvrir et ce qui se passe quand une commande atteint un hôte non répertorié.445Les commandes en bac à sable n'obtiennent pas d'accès réseau par défaut. Claude nomme les hôtes qu'une commande a besoin sur la commande elle-même, le classificateur les examine avec la commande, et une liste approuvée ouvre ces hôtes pour cette seule commande. [Domaines autorisés par commande](/docs/fr/sandboxing#per-command-allowed-domains-in-auto-mode) couvre ce qu'une liste peut et ne peut pas ouvrir et ce qui se passe quand une commande atteint un hôte non répertorié.

446 446 

447Exécutez `claude auto-mode defaults` pour imprimer les listes de règles complètes en JSON. Si les actions routinières sont bloquées, un administrateur peut ajouter des dépôts, des buckets et des services approuvés via le paramètre `autoMode.environment` : voir [Configurer le mode auto](/docs/fr/auto-mode-config).447Exécutez `claude auto-mode defaults` pour imprimer les listes de règles complètes en JSON. Si les actions routinières sont bloquées, un administrateur peut ajouter des dépôts, des buckets et des services approuvés via le paramètre `autoMode.environment` : voir [Configurer le mode auto](/docs/fr/auto-mode-config).

448 448 

449Pousser vers n'importe quelle branche du dépôt sur lequel vous travaillez et créer une demande de tirage qui correspond à votre demande s'exécutent sans invite, à moins que la poussée ou la demande de tirage ne tombe sous la [liste bloquée](#what-the-classifier-blocks-by-default), comme des secrets ou des données sensibles quittant le dépôt, ou une demande de tirage qui cible un dépôt ou une organisation différente. Pour exiger un point de contrôle humain avant ces commandes tout en restant en mode auto, ajoutez des règles `permissions.ask`, qui correspondent à la commande [telle qu'écrite](/docs/fr/permissions#bash-rule-limits) : voir [Limites courantes](/docs/fr/auto-mode-config#common-boundaries).449Pousser vers n'importe quelle branche du dépôt sur lequel vous travaillez et créer une demande de tirage qui correspond à votre demande s'exécutent sans invite, à moins que la poussée ou la demande de tirage ne tombe sous la [liste bloquée](#what-the-classifier-blocks-by-default), comme des secrets ou des données sensibles quittant le dépôt, ou une demande de tirage qui cible un dépôt ou une organisation différente. Pour exiger un point de contrôle humain avant ces commandes tout en restant en mode auto, ajoutez des règles `permissions.ask`, qui correspondent à la commande [telle qu'écrite](/docs/fr/permissions#bash-rule-limits) : voir [Limites communes](/docs/fr/auto-mode-config#common-boundaries).

450 450 

451<h3 id="first-read-outside-the-working-directories">451<h3 id="first-read-outside-the-working-directories">

452 La première lecture en dehors des répertoires de travail452 La première lecture en dehors des répertoires de travail

453</h3>453</h3>

454 454 

455Tandis que [`permissions.blockReadsOutsideWorkingDirectories`](/docs/fr/settings-reference#permissions-blockreadsoutsideworkingdirectories) est désactivé, les lectures de fichier s'exécutent sans invite en mode auto, y compris les lectures en dehors des [répertoires de travail](/docs/fr/permissions#working-directories). La première fois que Claude utilise l'outil Read, Grep ou Glob sur un chemin en dehors d'eux, Claude Code demande s'il faut autoriser cette lecture.455Tandis que [`permissions.blockReadsOutsideWorkingDirectories`](/docs/fr/settings-reference#permissions-blockreadsoutsideworkingdirectories) est désactivé, les lectures de fichiers s'exécutent sans invite en mode auto, y compris les lectures en dehors des [répertoires de travail](/docs/fr/permissions#working-directories). La première fois que Claude utilise l'outil Read, Grep ou Glob sur un chemin en dehors d'eux, Claude Code demande s'il faut autoriser cette lecture.

456 456 

457L'invite n'apparaît pas dans les exécutions `-p` non interactives ou les sessions en arrière-plan ; les lectures là s'exécutent comme avant.457L'invite n'apparaît pas dans les exécutions `-p` non interactives ou les sessions d'arrière-plan ; les lectures là s'exécutent comme avant.

458 458 

459Quelle que soit votre réponse, Claude continue à travailler :459Quelle que soit votre réponse, Claude continue à travailler :

460 460 

461* **Oui, et continuez à autoriser toute lecture en dehors des répertoires de travail** : la lecture s'exécute, les lectures ultérieures en dehors des répertoires de travail s'exécutent comme avant, et Claude Code enregistre votre réponse pour que l'invite n'apparaisse plus461* **Oui, et continuez à autoriser toute lecture en dehors des répertoires de travail** : la lecture s'exécute, les lectures ultérieures en dehors des répertoires de travail s'exécutent comme avant, et Claude Code enregistre votre réponse pour que l'invite n'apparaisse plus

462* **Non, et bloquez les lectures en dehors des répertoires de travail à partir de maintenant** : la lecture est refusée, et Claude Code définit [`permissions.blockReadsOutsideWorkingDirectories`](/docs/fr/settings-reference#permissions-blockreadsoutsideworkingdirectories) sur `true` dans vos paramètres utilisateur, ce qui fait que les outils de fichier refusent ces lectures dans chaque session ultérieure et chaque mode de permission. Pour laisser Claude lire un tel chemin plus tard, ajoutez son répertoire avec `/add-dir` ou supprimez le paramètre.462* **Non, et bloquez les lectures en dehors des répertoires de travail à partir de maintenant** : la lecture est refusée, et Claude Code définit [`permissions.blockReadsOutsideWorkingDirectories`](/docs/fr/settings-reference#permissions-blockreadsoutsideworkingdirectories) à `true` dans vos paramètres utilisateur, ce qui fait que les outils de fichier refusent ces lectures dans chaque session ultérieure et chaque mode de permission. Pour laisser Claude lire ce chemin plus tard, ajoutez son répertoire avec `/add-dir` ou supprimez le paramètre.

463* **Non, et demandez à nouveau la prochaine fois** : la lecture est refusée, et la prochaine lecture en dehors des répertoires de travail invite à nouveau463* **Non, et demandez à nouveau la prochaine fois** : la lecture est refusée, et la prochaine lecture en dehors des répertoires de travail invite à nouveau

464* **Oui, mais demandez à nouveau la prochaine fois** : la lecture s'exécute, rien n'est enregistré, et la prochaine lecture en dehors des répertoires de travail invite à nouveau464* **Oui, mais demandez à nouveau la prochaine fois** : la lecture s'exécute, rien n'est enregistré, et la prochaine lecture en dehors des répertoires de travail invite à nouveau

465 465 


467 Limites que vous énoncez dans la conversation467 Limites que vous énoncez dans la conversation

468</h3>468</h3>

469 469 

470Le classificateur traite les limites que vous énoncez dans la conversation comme un signal de bloc. Si vous dites à Claude « ne poussez pas » ou « attendez que j'examine avant de déployer », le classificateur bloque les actions correspondantes même quand les règles par défaut les autoriseraient. Une limite reste en vigueur jusqu'à ce que vous la leviez dans un message ultérieur. Le propre jugement de Claude qu'une condition a été remplie ne la lève pas.470Le classificateur traite les limites que vous énoncez dans la conversation comme un signal de bloc. Si vous dites à Claude « ne pousse pas » ou « attends que j'examine avant de déployer », le classificateur bloque les actions correspondantes même quand les règles par défaut les autoriseraient. Une limite reste en vigueur jusqu'à ce que vous la leviez dans un message ultérieur. Le propre jugement de Claude qu'une condition a été remplie ne la lève pas.

471 471 

472Les limites ne sont pas stockées en tant que règles. Le classificateur les relit à partir de la transcription à chaque vérification, donc une limite peut être perdue si la [compaction de contexte](/docs/fr/costs#reduce-token-usage) supprime le message qui l'a énoncée. Pour une garantie ferme, ajoutez une [règle deny](/docs/fr/permissions#permission-rule-syntax) à la place.472Les limites ne sont pas stockées en tant que règles. Le classificateur les relit à partir de la transcription à chaque vérification, donc une limite peut être perdue si la [compaction de contexte](/docs/fr/costs#reduce-token-usage) supprime le message qui l'a énoncée. Pour une garantie ferme, ajoutez une [règle deny](/docs/fr/permissions#permission-rule-syntax) à la place.

473 473 


478Si vous dites à Claude qu'une action bloquée est autorisée, le classificateur lit cela comme votre approbation et peut clarifier le bloc. La façon dont vous l'avez formulé décide si l'action s'exécute et jusqu'où l'approbation s'étend :478Si vous dites à Claude qu'une action bloquée est autorisée, le classificateur lit cela comme votre approbation et peut clarifier le bloc. La façon dont vous l'avez formulé décide si l'action s'exécute et jusqu'où l'approbation s'étend :

479 479 

480* **Nommez l'action et ses spécificités** : votre message doit nommer l'action et la chose spécifique qui la rend dangereuse, comme la branche d'une poussée forcée. Nommer le verbe seul ne clarifie rien, donc « vous pouvez forcer la poussée » laisse le bloc en place.480* **Nommez l'action et ses spécificités** : votre message doit nommer l'action et la chose spécifique qui la rend dangereuse, comme la branche d'une poussée forcée. Nommer le verbe seul ne clarifie rien, donc « vous pouvez forcer la poussée » laisse le bloc en place.

481* **Attendez-vous à ce qu'elle couvre une action** : une approbation couvre l'action destructrice que vous avez nommée, donc une action ultérieure est bloquée à nouveau à moins que vous n'ayez accordé l'approbation en tant que permanente. Pour arrêter d'approuver un modèle routinier une action à la fois, ajoutez-le à [`autoMode.allow`](/docs/fr/auto-mode-config#override-the-block-and-allow-rules).481* **Attendez-vous à ce qu'il couvre une action** : une approbation couvre l'action destructrice que vous avez nommée, donc une action ultérieure est bloquée à nouveau à moins que vous n'ayez accordé l'approbation en tant que permanente. Pour arrêter d'approuver un modèle routinier une action à la fois, ajoutez-le à [`autoMode.allow`](/docs/fr/auto-mode-config#override-the-block-and-allow-rules).

482* **Certains blocs restent en place** : [l'ordre de précédence du classificateur](/docs/fr/auto-mode-config#override-the-block-and-allow-rules) énonce les blocs que votre approbation peut atteindre. Pour exécuter une étape qu'elle ne clarifiera pas, [quittez le mode auto](#switch-permission-modes) et répondez à l'invite de permission.482* **Certains blocs restent en place** : [l'ordre de précédence du classificateur](/docs/fr/auto-mode-config#override-the-block-and-allow-rules) énonce quels blocs votre approbation peut atteindre. Pour exécuter une étape qu'il ne clarifiera pas, [quittez le mode auto](#switch-permission-modes) et répondez à l'invite de permission.

483 483 

484<h3 id="when-auto-mode-falls-back">484<h3 id="when-auto-mode-falls-back">

485 Quand le mode auto revient en arrière485 Quand le mode auto revient en arrière


488Quand le mode auto ne peut pas approuver les actions de votre session, ce qui se passe dépend du cas :488Quand le mode auto ne peut pas approuver les actions de votre session, ce qui se passe dépend du cas :

489 489 

490* **Une action bloquée** : Claude Code affiche une notification et répertorie l'action dans `/permissions` sous l'onglet **Recently denied**, où vous pouvez appuyer sur `r` pour la réessayer avec une approbation manuelle.490* **Une action bloquée** : Claude Code affiche une notification et répertorie l'action dans `/permissions` sous l'onglet **Recently denied**, où vous pouvez appuyer sur `r` pour la réessayer avec une approbation manuelle.

491* **Blocs répétés** : si le classificateur bloque une action 3 fois de suite ou 20 fois au total, le mode auto s'interrompt et Claude Code reprend l'invite. Approuver l'action invitée reprend le mode auto. Voir [Seuils de blocs répétés](#repeated-block-thresholds) pour la façon dont les blocs sont comptés.491* **Blocs répétés** : si le classificateur bloque une action 3 fois de suite ou 20 fois au total, le mode auto s'interrompt et Claude Code reprend l'invite. L'approbation de l'action invitée reprend le mode auto. Voir [Seuils de bloc répété](#repeated-block-thresholds) pour la façon dont les blocs sont comptés.

492* **Aucun verdict du classificateur** : quand une vérification de sécurité distincte du mode auto refuse la propre demande du classificateur, ou que la réponse du classificateur ne s'analyse pas, Claude Code refuse l'action sans la notification ou l'entrée **Recently denied**. Voir [Auto mode cannot determine the safety of an action](/docs/fr/errors#auto-mode-cannot-determine-the-safety-of-an-action) pour le message que chaque cas affiche et ce qu'il faut faire.492* **Aucun verdict du classificateur** : quand une vérification de sécurité distincte du mode auto refuse la propre demande du classificateur, ou que la réponse du classificateur ne s'analyse pas, Claude Code refuse l'action sans la notification ou l'entrée **Recently denied**. Voir [Le mode auto ne peut pas déterminer la sécurité d'une action](/docs/fr/errors#auto-mode-cannot-determine-the-safety-of-an-action) pour le message que chaque cas affiche et ce qu'il faut faire.

493* **Aucun verdict du serveur** : sous [examen du classificateur côté serveur](#server-side-classifier-review), Claude Code refuse une action pour laquelle le serveur ne donne pas de verdict, et arrête le tour après dix réponses de suite sans verdict. Voir [Le serveur n'a pas retourné de verdict de sécurité](/docs/fr/errors#the-server-returned-no-safety-verdict).493* **Aucun verdict du serveur** : sous [examen du classificateur côté serveur](#server-side-classifier-review), Claude Code refuse une action pour laquelle le serveur ne donne pas de verdict, et arrête le tour après dix réponses de suite sans verdict. Voir [Le serveur n'a pas retourné de verdict de sécurité](/docs/fr/errors#the-server-returned-no-safety-verdict).

494* **Un changement de mode pendant une vérification** : si vous changez les modes de permission tandis qu'une vérification de classificateur est en attente, Claude Code rejette un verdict que le nouveau mode n'aurait pas demandé plutôt que de l'appliquer : vous êtes invité pour approbation à la place, ou l'action est auto-refusée en [mode `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).494* **Un changement de mode pendant une vérification** : si vous changez les modes de permission tandis qu'une vérification de classificateur est en attente, Claude Code abandonne un verdict que le nouveau mode n'aurait pas demandé. Vous êtes invité à l'approbation à la place, ou l'action est auto-refusée en [mode `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

495 495 

496<h4 id="repeated-block-thresholds">496<h4 id="repeated-block-thresholds">

497 Seuils de blocs répétés497 Seuils de bloc répété

498</h4>498</h4>

499 499 

500Les seuils de 3 blocs de suite et 20 blocs au total ne sont pas configurables. Le compteur total persiste pour la session et se réinitialise uniquement quand sa propre limite déclenche un retour en arrière. Claude Code ne compte pas un refus vers l'un ou l'autre seuil quand une vérification de sécurité distincte du mode auto refuse la propre demande du classificateur.500Les seuils de 3 blocs de suite et 20 blocs au total ne sont pas configurables. Le compteur total persiste pour la session et se réinitialise uniquement quand sa propre limite déclenche un retour en arrière. Claude Code ne compte pas un refus vers l'un ou l'autre seuil quand une vérification de sécurité distincte du mode auto refuse la propre demande du classificateur.


518 1. Les actions correspondant à vos [règles allow, ask ou deny](/docs/fr/permissions#manage-permissions) se résolvent immédiatement, avec ces exceptions :518 1. Les actions correspondant à vos [règles allow, ask ou deny](/docs/fr/permissions#manage-permissions) se résolvent immédiatement, avec ces exceptions :

519 * Les écritures vers [chemins protégés](#protected-paths) sont acheminées vers le classificateur même quand une règle allow correspond519 * Les écritures vers [chemins protégés](#protected-paths) sont acheminées vers le classificateur même quand une règle allow correspond

520 * Aucune règle allow n'approuve les suppressions `rm` et `rmdir` ciblant un [chemin critique](#critical-paths)520 * Aucune règle allow n'approuve les suppressions `rm` et `rmdir` ciblant un [chemin critique](#critical-paths)

521 * Les outils MCP marqués [`requiresUserInteraction`](/docs/fr/mcp#require-approval-for-a-specific-tool) vous invitent directement même quand une règle allow correspond, et il en va de même pour les outils de connecteur [que votre organisation a définis sur `ask`](/docs/fr/mcp#organization-controls-on-connector-tools) dans les sessions où ce paramètre atteint Claude Code521 * Les outils MCP marqués [`requiresUserInteraction`](/docs/fr/mcp#require-approval-for-a-specific-tool) vous invitent directement même quand une règle allow correspond, et il en va de même pour les outils de connecteur [que votre organisation a définis à `ask`](/docs/fr/mcp#organization-controls-on-connector-tools) dans les sessions où ce paramètre atteint Claude Code

522 * Une commande shell qui porte [domaines autorisés par commande](/docs/fr/sandboxing#per-command-allowed-domains-in-auto-mode) est également acheminée vers le classificateur même quand une règle allow correspond, parce qu'une règle approuve la commande, pas ses hôtes522 * Une commande shell qui porte [domaines autorisés par commande](/docs/fr/sandboxing#per-command-allowed-domains-in-auto-mode) est également acheminée vers le classificateur même quand une règle allow correspond, car une règle approuve la commande, pas ses hôtes

523 * Les règles ask qui correspondent sur le contenu d'une commande, comme `Bash(git push *)`, reviennent à une invite de permission523 * Les règles ask qui correspondent sur le contenu d'une commande, comme `Bash(git push *)`, reviennent à une invite de permission

524 * Une écriture que la [vérification de lien symbolique](/docs/fr/permissions#symlinks) résout à un chemin protégé vous invite quand le chemin que Claude a demandé n'est pas lui-même protégé524 * Une écriture que la [vérification de lien symbolique](/docs/fr/permissions#symlinks) résout à un chemin protégé vous invite quand le chemin que Claude a demandé n'est pas lui-même protégé

525 2. Les actions en lecture seule et les éditions de fichier dans votre répertoire de travail sont auto-approuvées, sauf les écritures vers [chemins protégés](#protected-paths) et [la première lecture en dehors des répertoires de travail](#first-read-outside-the-working-directories), qui vous invite525 2. Les actions en lecture seule et les éditions de fichiers dans votre répertoire de travail sont auto-approuvées, sauf les écritures vers [chemins protégés](#protected-paths) et [la première lecture en dehors des répertoires de travail](#first-read-outside-the-working-directories), qui vous invitent

526 * Dans une session avec [examen du classificateur côté serveur](#server-side-classifier-review), les actions en lecture seule et les commandes shell [en bac à sable](/docs/fr/sandboxing#sandbox-modes) attendent cet examen et sont bloquées s'il les signale526 * Dans une session avec [examen du classificateur côté serveur](#server-side-classifier-review), les actions en lecture seule et les commandes shell [en bac à sable](/docs/fr/sandboxing#sandbox-modes) attendent cet examen et sont bloquées s'il les signale

527 * Une écriture dans votre répertoire de travail que la [vérification de lien symbolique](/docs/fr/permissions#symlinks) résout à un emplacement en dehors de celui-ci vous invite527 * Une écriture à l'intérieur de votre répertoire de travail que la [vérification de lien symbolique](/docs/fr/permissions#symlinks) résout à un emplacement en dehors d'elle vous invite

528 3. Tout le reste va au classificateur, à part les [suppressions de chemin critique](#critical-paths) sous leur gestion par défaut. Les outils de connecteur et les outils MCP `requiresUserInteraction` qui vous invitent directement à l'étape 1 n'atteignent jamais le classificateur non plus, donc ni une approbation requise par l'organisation ni une étape de consentement n'est auto-approuvée528 3. Tout le reste va au classificateur, à part les [suppressions de chemin critique](#critical-paths) sous leur gestion par défaut. Les outils de connecteur et les outils MCP `requiresUserInteraction` qui vous invitent directement à l'étape 1 n'atteignent jamais le classificateur non plus, donc ni une approbation requise par l'organisation ni une étape de consentement n'est auto-approuvée

529 4. Si le classificateur bloque, Claude reçoit la raison et essaie une alternative. Dans la plupart des sessions, la raison nomme la règle que le classificateur a correspondue, comme `[Data Exfiltration]`, plutôt que de donner une explication écrite ; voir [Examiner les refus](/docs/fr/auto-mode-config#review-denials)529 4. Si le classificateur bloque, Claude reçoit la raison. Dans la plupart des sessions, la raison nomme la règle que le classificateur a correspondante, comme `[Data Exfiltration]`, plutôt que de donner une explication écrite ; voir [Examiner les refus](/docs/fr/auto-mode-config#review-denials)

530 530 

531 En entrant en mode auto, les larges règles allow qui accordent l'exécution de code arbitraire sont supprimées :531 En entrant en mode auto, les règles allow larges qui accordent l'exécution de code arbitraire sont supprimées :

532 532 

533 * Blanket `Bash(*)` ou `PowerShell(*)`533 * Blanket `Bash(*)` ou `PowerShell(*)`

534 * Interpréteurs avec caractères génériques comme `Bash(python*)`534 * Interpréteurs avec caractères génériques comme `Bash(python*)`

535 * Commandes d'exécution du gestionnaire de paquet535 * Commandes d'exécution du gestionnaire de paquet

536 * Règles `Agent` allow536 * Règles `Agent` allow

537 * Règles [`Monitor`](/docs/fr/tools-reference#monitor-tool) allow, parce que Claude Code exécute les commandes Monitor via le shell537 * Règles [`Monitor`](/docs/fr/tools-reference#monitor-tool) allow, car Claude Code exécute les commandes Monitor via le shell

538 538 

539 Les règles étroites comme `Bash(npm test)` restent en vigueur. Claude Code restaure les règles supprimées quand vous quittez le mode auto. Avant v2.1.236, Claude Code laissait les règles `Monitor` allow en vigueur en mode auto, donc une règle qui correspondait à l'outil entier approuvait les commandes Monitor sans examen du classificateur.539 Les règles étroites comme `Bash(npm test)` restent en vigueur. Claude Code restaure les règles supprimées quand vous quittez le mode auto. Avant v2.1.236, Claude Code laissait les règles `Monitor` allow en vigueur en mode auto, donc une règle qui correspondait à l'outil entier approuvait les commandes Monitor sans examen du classificateur.

540 540 

541 Claude Code exécute également `git status` lui-même avant une commande qui éliminerait le travail non validé, comme `git reset --hard` ou `rm -rf`, et montre au classificateur si du travail préparé, modifié ou non suivi est présent. Claude Code signale les fichiers non suivis dans cette vérification même quand la configuration git du dépôt définit `status.showUntrackedFiles=no`.541 Claude Code exécute également `git status` lui-même avant une commande qui éliminerait le travail non validé, comme `git reset --hard` ou `rm -rf`, et montre au classificateur si le travail préparé, modifié ou non suivi est présent. Claude Code signale les fichiers non suivis dans cette vérification même quand la configuration git du dépôt définit `status.showUntrackedFiles=no`.

542 542 

543 Dans les demandes de classificateur envoyées par Claude Code lui-même, le classificateur voit les messages utilisateur, les appels d'outil autres que les recherches en lecture seule comme les lectures de fichier et les recherches, et votre contenu CLAUDE.md. Les résultats d'outil sont supprimés de ces demandes, donc le contenu hostile dans un fichier ou une page web ne peut pas manipuler le classificateur directement.543 Dans les demandes de classificateur envoyées par Claude Code lui-même, le classificateur voit les messages utilisateur, les appels d'outil autres que les recherches en lecture seule comme les lectures de fichiers et les recherches, et votre contenu CLAUDE.md. Les résultats d'outil sont supprimés de ces demandes, donc le contenu hostile dans un fichier ou une page web ne peut pas manipuler le classificateur directement.

544 544 

545 Vous pouvez annoter le résultat d'un appel avec le champ `classifierContext` d'un [hook PostToolUse](/docs/fr/hooks#annotate-a-result-for-the-auto-mode-classifier), que le classificateur lit comme contexte fourni par l'application. Le champ nécessite Claude Code v2.1.236 ou ultérieur.545 Vous pouvez annoter le résultat d'un appel avec le champ `classifierContext` d'un [hook PostToolUse](/docs/fr/hooks#annotate-a-result-for-the-auto-mode-classifier), que le classificateur lit comme contexte fourni par l'application. Le champ nécessite Claude Code v2.1.236 ou ultérieur.

546 546 

547 Une sonde côté serveur distincte analyse les résultats d'outil entrants et signale le contenu suspect avant que Claude ne le lise. Pour plus d'informations sur la façon dont ces couches fonctionnent ensemble, consultez l'[annonce du mode auto](https://claude.com/blog/auto-mode) et l'[approfondissement technique](https://www.anthropic.com/engineering/claude-code-auto-mode).547 Une sonde côté serveur distincte analyse les résultats d'outil entrants et signale le contenu suspect avant que Claude ne le lise. Pour plus d'informations sur la façon dont ces couches fonctionnent ensemble, voir l'[annonce du mode auto](https://claude.com/blog/auto-mode) et la [plongée technique](/docs/fr/engineering/claude-code-auto-mode).

548 </Accordion>548 </Accordion>

549 549 

550 <Accordion title="Comment le mode auto gère les sous-agents">550 <Accordion title="Comment le mode auto gère les sous-agents">


556 </Accordion>556 </Accordion>

557 557 

558 <Accordion title="Coût et latence">558 <Accordion title="Coût et latence">

559 Le classificateur s'exécute sur Claude Sonnet 5 par défaut plutôt que sur votre sélection `/model`. Un modèle de classificateur qu'Anthropic configure côté serveur prend précédence sur ce défaut. Quand le modèle de votre session est Claude Sonnet 4.6, ou quand [`availableModels`](/docs/fr/model-config#restrict-model-selection) exclut Sonnet 5, le classificateur s'exécute sur le modèle de votre session à la place, ou sur un modèle Opus quand la session s'exécute sur un [modèle Fable](/docs/fr/model-config#work-with-fable) ; sur les fournisseurs autres que l'API Anthropic, ce retour en arrière Opus est le modèle Opus par défaut du fournisseur.559 Le classificateur s'exécute sur Claude Sonnet 5 par défaut plutôt que sur votre sélection `/model`. Un modèle de classificateur que Anthropic configure côté serveur prend précédence sur ce défaut. Quand le modèle de votre session est Claude Sonnet 4.6, ou quand [`availableModels`](/docs/fr/model-config#restrict-model-selection) exclut Sonnet 5, le classificateur s'exécute sur le modèle de votre session à la place, ou sur un modèle Opus quand la session s'exécute sur un [modèle Fable](/docs/fr/model-config#work-with-fable) ; sur les fournisseurs autres que l'API Anthropic, ce retour en arrière Opus est le modèle Opus par défaut du fournisseur.

560 560 

561 La première demande en mode auto de la session valide le défaut Sonnet 5 : si la demande réussit, Sonnet 5 reste le modèle de classificateur de la session, et si elle échoue parce que le modèle n'est pas disponible, la session utilise le retour en arrière à la place. Après que cette validation se règle, le modèle du classificateur ne change pas pour la session.561 La première demande en mode auto de la session valide le défaut Sonnet 5 : si la demande réussit, Sonnet 5 reste le modèle de classificateur de la session, et si elle échoue parce que le modèle n'est pas disponible, la session utilise le retour en arrière à la place. Après que cette validation se règle, le modèle du classificateur ne change pas pour la session.

562 562 

563 Sur les plans Enterprise et sur les comptes qui utilisent l'API Claude, [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws), Amazon Bedrock, la plateforme d'agents de Google Cloud ou Microsoft Foundry, les appels de classificateur comptent vers votre utilisation de jetons. Chaque vérification envoie une partie de la transcription plus l'action en attente, ajoutant un aller-retour avant l'exécution. Les lectures et les éditions de répertoire de travail en dehors des chemins protégés ignorent le classificateur, donc la surcharge provient principalement des commandes shell et des opérations réseau. Où le serveur examine les actions dans le cadre des demandes de modèle de la session, il n'y a pas d'appels de classificateur distincts à compter ; voir [Examen du classificateur côté serveur](#server-side-classifier-review).563 Sur les plans Enterprise et sur les comptes qui utilisent l'API Claude, [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws), Amazon Bedrock, la plateforme Agent de Google Cloud ou Microsoft Foundry, les appels de classificateur comptent vers votre utilisation de jetons. Chaque vérification envoie une portion de la transcription plus l'action en attente, ajoutant un aller-retour avant l'exécution. Les lectures et les éditions de répertoire de travail en dehors des chemins protégés ignorent le classificateur, donc la surcharge provient principalement des commandes shell et des opérations réseau. Où le serveur examine les actions dans le cadre des demandes de modèle de la session, il n'y a pas d'appels de classificateur distincts à compter ; voir [Examen du classificateur côté serveur](#server-side-classifier-review).

564 564 

565 L'accès réseau en bac à sable n'ajoute pas de demandes de classificateur par connexion. Le classificateur juge [les hôtes qu'une commande nomme](/docs/fr/sandboxing#per-command-allowed-domains-in-auto-mode) ensemble avec la commande dans un examen, et Claude Code vérifie chaque connexion par rapport à la liste approuvée sans appeler le classificateur à nouveau.565 L'accès réseau en bac à sable n'ajoute pas de demandes de classificateur par connexion. Le classificateur juge [les hôtes qu'une commande nomme](/docs/fr/sandboxing#per-command-allowed-domains-in-auto-mode) ensemble avec la commande dans un examen, et Claude Code vérifie chaque connexion par rapport à la liste approuvée sans appeler le classificateur à nouveau.

566 </Accordion>566 </Accordion>

permissions.md +1 −0

Details

290* **`docker` pointant vers un autre daemon** : les formes en lecture seule de `docker` demandent lorsque la commande porte un drapeau qui sélectionne un daemon différent, tel que `-H`, `--context` ou `--url` et `--connection` de Podman.290* **`docker` pointant vers un autre daemon** : les formes en lecture seule de `docker` demandent lorsque la commande porte un drapeau qui sélectionne un daemon différent, tel que `-H`, `--context` ou `--url` et `--connection` de Podman.

291* **`file` avec des drapeaux d'ouverture de chemin** : `file` demande lorsqu'il passe `-m`/`--magic-file` ou `-f`/`--files-from`, car ces drapeaux font que `file` ouvre les chemins nommés dans la valeur du drapeau.291* **`file` avec des drapeaux d'ouverture de chemin** : `file` demande lorsqu'il passe `-m`/`--magic-file` ou `-f`/`--files-from`, car ces drapeaux font que `file` ouvre les chemins nommés dans la valeur du drapeau.

292* **Chemins réseau sur Windows** : une commande dont les arguments incluent un chemin réseau (UNC), tel que `\\server\share\file`, demande car l'accès à un chemin réseau peut envoyer vos identifiants Windows à l'hôte qu'il nomme. La même vérification s'applique aux commandes de l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool).292* **Chemins réseau sur Windows** : une commande dont les arguments incluent un chemin réseau (UNC), tel que `\\server\share\file`, demande car l'accès à un chemin réseau peut envoyer vos identifiants Windows à l'hôte qu'il nomme. La même vérification s'applique aux commandes de l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool).

293* **Écritures vers des variables shell spéciales** : une commande qui définit, annule ou boucle sur certaines variables shell spéciales, telles que `PATH` ou `IFS`, demande même lorsque le reste de la commande est en lecture seule.

293* **Commandes que l'analyse ne peut pas analyser** : lorsque Claude Code ne peut pas analyser complètement une commande, il demande une approbation au lieu de traiter la commande comme en lecture seule. Les commandes plus longues que 10 000 caractères demandent toujours car elles dépassent ce que l'analyse analyse.294* **Commandes que l'analyse ne peut pas analyser** : lorsque Claude Code ne peut pas analyser complètement une commande, il demande une approbation au lieu de traiter la commande comme en lecture seule. Les commandes plus longues que 10 000 caractères demandent toujours car elles dépassent ce que l'analyse analyse.

294 295 

295Un `cd` dans un chemin à l'intérieur de votre répertoire de travail ou d'un [répertoire supplémentaire](#working-directories) est également en lecture seule, et une commande composée comme `cd packages/api && ls` s'exécute sans invite lorsque chaque partie se qualifie seule. Ces combinaisons demandent même lorsque chaque partie est en lecture seule :296Un `cd` dans un chemin à l'intérieur de votre répertoire de travail ou d'un [répertoire supplémentaire](#working-directories) est également en lecture seule, et une commande composée comme `cd packages/api && ls` s'exécute sans invite lorsque chaque partie se qualifie seule. Ces combinaisons demandent même lorsque chaque partie est en lecture seule :

Details

121 121 

122Dans votre terminal, les plugins se synchronisent uniquement dans les sessions où vous vous connectez avec votre compte claude.ai.122Dans votre terminal, les plugins se synchronisent uniquement dans les sessions où vous vous connectez avec votre compte claude.ai.

123 123 

124Claude Code ne télécharge ni ne charge les plugins synchronisés dans ces sessions de terminal, même après vous être connecté avec `/login` :

125 

126* Une session où `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`, ou un script `apiKeyHelper` fournit les identifiants à la place de cette connexion

127* Une session qui ne [récupère pas les drapeaux de fonctionnalités auprès d'Anthropic](/docs/fr/env-vars#features-that-need-feature-flag-fetching), comme une session où vous avez défini `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

128* Une session en [mode bare](/docs/fr/headless#start-faster-with-bare-mode) ou une session que vous démarrez avec `--safe-mode`

129* Une session que vous démarrez avec une liste [`--setting-sources`](/docs/fr/cli-reference#cli-flags) qui omet `user`

130 

124Si vous vous êtes connecté sur une version antérieure de Claude Code, cette connexion ne couvre pas les plugins jusqu'à ce que Claude Code la renouvelle en arrière-plan. Pour accéder plus tôt, exécutez `/login` à nouveau. La synchronisation des plugins commence alors la prochaine fois que vous démarrez Claude Code.131Si vous vous êtes connecté sur une version antérieure de Claude Code, cette connexion ne couvre pas les plugins jusqu'à ce que Claude Code la renouvelle en arrière-plan. Pour accéder plus tôt, exécutez `/login` à nouveau. La synchronisation des plugins commence alors la prochaine fois que vous démarrez Claude Code.

125 132 

126<h4 id="control-which-synced-plugins-load">133<h4 id="control-which-synced-plugins-load">

Details

200 200 

201Le même bouton bascule apparaît en dehors de la CLI :201Le même bouton bascule apparaît en dehors de la CLI :

202 202 

203* **Application Desktop** : **Settings > Claude Code > Enable remote control by default**.203* **Application Desktop** : **Settings > Claude Code > Connect new sessions to Remote Control**.

204* **Extension VS Code** : **Enable Remote Control for all sessions** dans la section Paramètres du [menu de commande](/docs/fr/vs-code#use-the-prompt-box).204* **Extension VS Code** : **Enable Remote Control for all sessions** dans la section Paramètres du [menu de commande](/docs/fr/vs-code#use-the-prompt-box).

205 205 

206Pour activer l'auto-connexion à partir d'un fichier de paramètres à la place, définissez [`remoteControlAtStartup`](/docs/fr/settings-reference#remotecontrolatstartup) sur `true` dans votre fichier utilisateur `~/.claude/settings.json` ou dans les [paramètres gérés](/docs/fr/managed-settings). Dans les paramètres de projet ou locaux (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honore un `false` et désactive l'auto-connexion pour ce référentiel, mais ignore un `true`, afin qu'un fichier archivé ne puisse pas activer Remote Control pour tous ceux qui ouvrent le référentiel.206Pour activer l'auto-connexion à partir d'un fichier de paramètres à la place, définissez [`remoteControlAtStartup`](/docs/fr/settings-reference#remotecontrolatstartup) sur `true` dans votre fichier utilisateur `~/.claude/settings.json` ou dans les [paramètres gérés](/docs/fr/managed-settings). Dans les paramètres de projet ou locaux (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honore un `false` et désactive l'auto-connexion pour ce référentiel, mais ignore un `true`, afin qu'un fichier archivé ne puisse pas activer Remote Control pour tous ceux qui ouvrent le référentiel.

Details

170 170 

171Si votre hôte git rejette l'identifiant, ou que vous n'en avez pas configuré un, le runner réessaie quelques fois puis échoue la préparation du référentiel quand le référentiel est celui vers lequel la session pousse les résultats. Pour un référentiel que la session lit uniquement, [Troubleshooting](#troubleshooting) couvre quand le runner le saute à la place. Le runner ne transmet pas ces paramètres dans l'environnement de la session.171Si votre hôte git rejette l'identifiant, ou que vous n'en avez pas configuré un, le runner réessaie quelques fois puis échoue la préparation du référentiel quand le référentiel est celui vers lequel la session pousse les résultats. Pour un référentiel que la session lit uniquement, [Troubleshooting](#troubleshooting) couvre quand le runner le saute à la place. Le runner ne transmet pas ces paramètres dans l'environnement de la session.

172 172 

173Gardez tout programme que vous nommez dans `GIT_SSH_COMMAND` ou `GIT_ASKPASS` où les sessions ne peuvent pas y écrire, de la manière que la [liste de contrôle de durcissement](#harden-your-deployment) demande pour le répertoire de hooks et le script wrapper. Il en va de même pour toute clé ou fichier sur la ligne de commande de ce programme. Le git propre du runner exécute ce programme quand il clone ou récupère.

174 

173Si les répertoires de checkout sont possédés par un uid différent du processus runner, git refuse d'opérer sur eux ; ajoutez `safe.directory` :175Si les répertoires de checkout sont possédés par un uid différent du processus runner, git refuse d'opérer sur eux ; ajoutez `safe.directory` :

174 176 

175```dockerfile theme={null}177```dockerfile theme={null}


184 186 

185Le proxy nécessite `--capacity 1` car l'URL du proxy est par session, et git 2.32 ou plus récent car les anciennes versions de git ignorent le mécanisme de configuration que le proxy utilise pour isoler les sessions les unes des autres. Le runner refuse de démarrer si l'une ou l'autre exigence n'est pas satisfaite. Parce que le proxy récupère du côté d'Anthropic, votre hôte git doit être accessible depuis l'infrastructure Anthropic, la même exigence que les sessions hébergées par Anthropic ont ; pour un hôte git qui n'est routable que dans votre réseau, utilisez un [hook de cycle de vie `checkout`](/docs/fr/self-hosted-environments-configuration#checkout) à la place. Chaque processus runner gère une session à la fois, donc exécutez plus de répliques pour le parallélisme. Quand le proxy est activé, `--git-host-rewrite` et `--git-ssh-rewrite` n'ont aucun effet : l'URL du proxy pointe vers `api.anthropic.com`, pas votre hôte git.187Le proxy nécessite `--capacity 1` car l'URL du proxy est par session, et git 2.32 ou plus récent car les anciennes versions de git ignorent le mécanisme de configuration que le proxy utilise pour isoler les sessions les unes des autres. Le runner refuse de démarrer si l'une ou l'autre exigence n'est pas satisfaite. Parce que le proxy récupère du côté d'Anthropic, votre hôte git doit être accessible depuis l'infrastructure Anthropic, la même exigence que les sessions hébergées par Anthropic ont ; pour un hôte git qui n'est routable que dans votre réseau, utilisez un [hook de cycle de vie `checkout`](/docs/fr/self-hosted-environments-configuration#checkout) à la place. Chaque processus runner gère une session à la fois, donc exécutez plus de répliques pour le parallélisme. Quand le proxy est activé, `--git-host-rewrite` et `--git-ssh-rewrite` n'ont aucun effet : l'URL du proxy pointe vers `api.anthropic.com`, pas votre hôte git.

186 188 

189<Warning>

190 Les recettes [Kubernetes](#kubernetes) et [Docker Compose](#docker-compose) sur cette page utilisent `--capacity 4`. Si vous ajoutez `--use-anthropic-git-proxy` ou `CLAUDE_RUNNER_USE_GIT_PROXY=1` à l'une d'elles sans changer la capacité à `1`, le runner quitte au démarrage chaque fois que votre orchestrateur le redémarre. Définissez `--capacity 1` et exécutez plus de répliques pour le parallélisme. [When the runner exits](#when-the-runner-exits) affiche la ligne que le runner imprime.

191</Warning>

192 

187Le runner signale également l'adhésion à Anthropic quand il s'enregistre, affichant `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` au démarrage. Signaler l'adhésion nécessite Claude Code v2.1.267 ou plus récent, et les versions antérieures acceptent le drapeau sans le signaler ou afficher cette ligne. Chaque session sur un runner ayant adhéré utilise ensuite soit git géré par Anthropic, soit l'URL du proxy par session. Quand une session utilise l'URL du proxy par session, le runner enregistre une ligne `[runner:warn]` indiquant cela.193Le runner signale également l'adhésion à Anthropic quand il s'enregistre, affichant `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` au démarrage. Signaler l'adhésion nécessite Claude Code v2.1.267 ou plus récent, et les versions antérieures acceptent le drapeau sans le signaler ou afficher cette ligne. Chaque session sur un runner ayant adhéré utilise ensuite soit git géré par Anthropic, soit l'URL du proxy par session. Quand une session utilise l'URL du proxy par session, le runner enregistre une ligne `[runner:warn]` indiquant cela.

188 194 

195<h4 id="trust-a-private-certificate-authority-with-anthropic-managed-git">

196 Faire confiance à une autorité de certification privée avec git géré par Anthropic

197</h4>

198 

199Cette section s'applique si vous définissez `GIT_SSL_CAINFO` ou `GIT_SSL_NO_VERIFY` dans l'environnement d'un runner dont les sessions utilisent git géré par Anthropic. La gestion qu'elle décrit nécessite que le runner exécute Claude Code v2.1.283 ou plus récent.

200 

201Quand git sur le runner doit faire confiance à une autorité de certification (CA) privée, comme celle qu'un proxy d'inspection TLS signe, les approches habituelles fonctionnent comme suit :

202 

203* **Magasin de certificats système** : installez votre CA dans le magasin de certificats système de l'hôte runner, et git lui fait confiance sans l'une ou l'autre variable.

204* **`GIT_SSL_CAINFO`** : définissez-la sur un fichier PEM de vos CAs, par exemple `GIT_SSL_CAINFO=/etc/ssl/corp-ca.pem`.

205* **`GIT_SSL_NO_VERIFY`** : n'aide pas derrière un proxy de re-signature. Le clone propre du runner via git géré par Anthropic vérifie les certificats même quand la variable est définie, donc ce clone échoue jusqu'à ce que git fasse confiance à votre CA via l'une des deux autres approches.

206 

207Pour les connexions git qui portent le jeton d'une session à git géré par Anthropic, le runner applique les deux variables comme suit. Un [hook `command`](/docs/fr/self-hosted-environments-configuration#command) commence par l'environnement de la session, donc il obtient ce que git à l'intérieur de la session obtient :

208 

209* **`GIT_SSL_CAINFO`** : ce que git vérifie git géré par Anthropic dépend de l'endroit où git s'exécute :

210 * **Clone et récupérations propres du runner** : s'exécutent sans la variable et vérifient git géré par Anthropic par rapport à un fichier de certificat par session que le runner écrit. Ce fichier contient le bundle CA système de l'hôte runner plus les certificats de votre fichier.

211 * **Git à l'intérieur de la session** : obtient la configuration `http.sslCAInfo` nommant votre fichier à la place de la variable, plus les entrées `http.<url>.sslCAInfo` qui vérifient git géré par Anthropic par rapport au fichier par session.

212 * **Hooks `checkout` et `post-session`** : héritent la variable inchangée.

213* **`GIT_SSL_NO_VERIFY`** : quelles vérifications de certificat restent désactivées dépend de l'endroit où git s'exécute :

214 * **Clone et récupérations propres du runner** : s'exécutent sans la variable et vérifient le certificat qui leur est présenté.

215 * **Git à l'intérieur de la session** : obtient la configuration `http.sslVerify=false` à la place de la variable, donc les vérifications restent désactivées pour les autres hôtes. Il obtient également des entrées `http.<url>.sslVerify=true` qui gardent les vérifications activées pour git géré par Anthropic.

216 * **Hooks `checkout` et `post-session`** : quand la session a un référentiel sur git géré par Anthropic, obtiennent la configuration `http.sslVerify=false` à la place de la variable. Ils obtiennent également des entrées `http.<url>.sslVerify=true` qui gardent les vérifications activées pour git géré par Anthropic.

217 

218Le fichier de certificat par session a besoin d'un bundle CA système à `/etc/ssl/certs/ca-certificates.crt` ou `/etc/pki/tls/certs/ca-bundle.crt` sur l'hôte runner. Il a également besoin d'un fichier `GIT_SSL_CAINFO` que l'utilisateur du runner peut lire, qui contient des blocs PEM `CERTIFICATE`, et qui fait au maximum 1 MiB. Quand le runner ne peut pas construire le fichier par session, il enregistre une ligne `[runner:warn]` contenant `did not build the certificate file` et la raison. Git utilise alors votre fichier tel quel pour git géré par Anthropic. Corrigez ce que la ligne nomme.

219 

220Pour chaque session qui utilise git géré par Anthropic, le runner enregistre également une ligne `[runner:warn]` qui commence par `governed git: GIT_SSL_CAINFO is set` ou `governed git: GIT_SSL_NO_VERIFY is set`. La ligne dit ce que le runner a fait avec cette variable pour son propre git, pour git à l'intérieur de la session, et pour vos hooks de cycle de vie. Elle se termine par si vous devez changer quelque chose.

221 

189<h3 id="rewrite-git-urls-for-private-networks">222<h3 id="rewrite-git-urls-for-private-networks">

190 Réécrire les URL git pour les réseaux privés223 Réécrire les URL git pour les réseaux privés

191</h3>224</h3>


203 236 

204Anthropic ne publie pas d'image runner pré-construite. Construisez la vôtre autour du binaire `claude`, en superposant la chaîne d'outils que vos référentiels ont besoin : runtimes de langage, compilateurs, gestionnaires de paquets, et sidecars [MCP](/docs/fr/mcp).237Anthropic ne publie pas d'image runner pré-construite. Construisez la vôtre autour du binaire `claude`, en superposant la chaîne d'outils que vos référentiels ont besoin : runtimes de langage, compilateurs, gestionnaires de paquets, et sidecars [MCP](/docs/fr/mcp).

205 238 

206Les recettes ci-dessous utilisent `--capacity 4`, donc un conteneur sert jusqu'à quatre sessions concurrentes du même propriétaire verrouillé. Cela ne fournit pas l'isolation du conteneur par session dans la [section de durcissement](#harden-your-deployment) : avant de connecter un environnement aux systèmes de production, soit exécutez les recettes à `--capacity 1` avec un conteneur par session, soit utilisez les [runners à la demande](/docs/fr/self-hosted-environments-configuration#on-demand-runners), qui gardent également le secret de l'environnement hors des hôtes exécutant les sessions.239Les recettes ci-dessous utilisent `--capacity 4`, donc un conteneur sert jusqu'à quatre sessions concurrentes du même propriétaire verrouillé. Cela ne fournit pas l'isolation du conteneur par session dans la [section de durcissement](#harden-your-deployment) : avant de connecter un environnement aux systèmes de production, soit exécutez les recettes à `--capacity 1` avec un conteneur par session, soit utilisez les [runners à la demande](/docs/fr/self-hosted-environments-configuration#on-demand-runners), qui gardent également le secret de l'environnement hors des hôtes exécutant les sessions. Si vous ajoutez le [proxy git Anthropic](#use-the-anthropic-git-proxy) à l'une de ces recettes, changez également `--capacity` à `1`.

207 240 

208Ce Dockerfile est un point de départ minimal :241Ce Dockerfile est un point de départ minimal :

209 242 


338 371 

339Le service Compose ci-dessous redémarre le runner chaque fois qu'il se termine, ce qui couvre à la fois les crashes et la sortie normale après le drainage. Une politique de redémarrage Docker redémarre le même conteneur avec sa couche inscriptible intacte, donc le runner revient sur un système de fichiers réutilisé plutôt que le frais que la [posture de durcissement](#harden-your-deployment) recommande ; utilisez cette recette pour l'évaluation, et pour la production soit recréez le conteneur par exécution, soit utilisez un orchestrateur qui le fait.372Le service Compose ci-dessous redémarre le runner chaque fois qu'il se termine, ce qui couvre à la fois les crashes et la sortie normale après le drainage. Une politique de redémarrage Docker redémarre le même conteneur avec sa couche inscriptible intacte, donc le runner revient sur un système de fichiers réutilisé plutôt que le frais que la [posture de durcissement](#harden-your-deployment) recommande ; utilisez cette recette pour l'évaluation, et pour la production soit recréez le conteneur par exécution, soit utilisez un orchestrateur qui le fait.

340 373 

374Docker attend plus longtemps avant chaque redémarrage d'un conteneur qui continue de se terminer, jusqu'à un plafond, donc un runner qui ne peut pas démarrer ne continue pas à redémarrer dans une boucle serrée selon cette recette. [Quand le runner se termine](#when-the-runner-exits) décrit ce qu'il faut vérifier quand cela se produit.

375 

341```yaml theme={null}376```yaml theme={null}

342services:377services:

343 claude-runner:378 claude-runner:


451 486 

452Le processus enfant Claude Code de chaque session exécute le binaire du runner lui-même, et le runner désactive la mise à jour automatique à l'intérieur des sessions qu'il génère, donc chaque session exécute la version que vous avez installée sur l'hôte ou construite dans l'image. Une mise à jour au niveau de l'hôte prend effet la prochaine fois que le runner démarre.487Le processus enfant Claude Code de chaque session exécute le binaire du runner lui-même, et le runner désactive la mise à jour automatique à l'intérieur des sessions qu'il génère, donc chaque session exécute la version que vous avez installée sur l'hôte ou construite dans l'image. Une mise à jour au niveau de l'hôte prend effet la prochaine fois que le runner démarre.

453 488 

489Un modèle que vos sessions utilisent peut nécessiter une version plus récente de Claude Code que celle qu'elles exécutent. Le serveur rejette alors les demandes pour ce modèle avec [Claude Code ne supporte pas ce modèle](/docs/fr/errors#claude-code-does-not-support-this-model). Avant d'épingler une version, vérifiez [les versions de Claude Code que les modèles nécessitent](/docs/fr/model-config#available-models) pour chaque modèle que vos sessions utilisent.

490 

454* **Pour garder une flotte sur une version** : construisez l'image avec une version épinglée, ou sur un hôte nu installez une version spécifique et [désactivez les mises à jour automatiques](/docs/fr/setup#disable-auto-updates)491* **Pour garder une flotte sur une version** : construisez l'image avec une version épinglée, ou sur un hôte nu installez une version spécifique et [désactivez les mises à jour automatiques](/docs/fr/setup#disable-auto-updates)

455* **Pour mettre à niveau** : installez la version plus récente ou reconstruisez l'image, puis redémarrez les runners492* **Pour mettre à niveau** : installez la version plus récente ou reconstruisez l'image, puis redémarrez les runners

456* **Plugins** : les places de marché de plugins ne se mettent pas à jour automatiquement non plus ; définissez `FORCE_AUTOUPDATE_PLUGINS=1` dans l'environnement du runner pour laisser les plugins se mettre à jour automatiquement pendant que le binaire reste épinglé493* **Plugins** : les places de marché de plugins ne se mettent pas à jour automatiquement non plus ; définissez `FORCE_AUTOUPDATE_PLUGINS=1` dans l'environnement du runner pour laisser les plugins se mettre à jour automatiquement pendant que le binaire reste épinglé


554 591 

555Le processus enfant de chaque session écrit un journal de débogage séparé. En cas d'échec, le runner affiche la queue du journal aux côtés de la session dans claude.ai/code. À moins que vous n'ayez démarré le runner avec [`--remove-session-state`](/docs/fr/self-hosted-environments-reference#runner-cli-flags), il conserve également le journal d'une session échouée sur le disque et imprime son chemin dans le journal du runner.592Le processus enfant de chaque session écrit un journal de débogage séparé. En cas d'échec, le runner affiche la queue du journal aux côtés de la session dans claude.ai/code. À moins que vous n'ayez démarré le runner avec [`--remove-session-state`](/docs/fr/self-hosted-environments-reference#runner-cli-flags), il conserve également le journal d'une session échouée sur le disque et imprime son chemin dans le journal du runner.

556 593 

594<h3 id="when-the-runner-exits">

595 Quand le runner quitte

596</h3>

597 

598Ne redémarrez pas un [runner à la demande](/docs/fr/self-hosted-environments-configuration#on-demand-runners), car son ordre de travail est à usage unique. Un runner qui quitte juste après son démarrage nécessite un traitement différent de celui qui quitte pour toute autre raison.

599 

600* **Une sortie normale** : le runner a terminé ses sessions et s'est drainé, a atteint son heure de retraite, ou a reçu l'ordre de s'arrêter. Redémarrez-le pour que l'environnement ait à nouveau de la capacité. [Cycle de vie du runner](/docs/fr/self-hosted-environments#runner-lifecycle) décrit ces sorties.

601* **Un démarrage échoué** : le runner ne peut pas démarrer avec la configuration ou l'hôte qui lui a été donné, donc il quitte quelques secondes après son démarrage, et il quitte de la même manière chaque fois que vous le redémarrez. Le redémarrer plus rapidement n'aide pas. Quelqu'un doit lire sa sortie et corriger la cause.

602 

603Configurez votre superviseur pour redémarrer le runner chaque fois qu'il quitte, pour attendre plus longtemps entre les redémarrages quand le runner continue de quitter juste après son démarrage, et pour avertir quelqu'un quand cela continue de se produire.

604 

605<h4 id="recognize-a-failed-start">

606 Reconnaître un démarrage échoué

607</h4>

608 

609Quand le runner ne peut pas démarrer, il imprime une ligne qui dit pourquoi, puis il quitte. Pour la plupart des causes, la ligne contient `[runner:fatal]`. Pour certaines causes, la ligne commence par `error:` à la place, y compris quand le runner ne peut pas analyser ses drapeaux, ne peut pas lire le secret de l'environnement, ou ne peut pas créer ou écrire au répertoire de base. La ligne suivante pointe alors vers `--help`.

610 

611La plupart des lignes de journal commencent par un horodatage et `[self-hosted-runner]`, que l'exemple ci-dessous omet. Par exemple, un runner démarré avec le proxy git Anthropic et une capacité supérieure à un imprime une ligne comme celle-ci :

612 

613```text theme={null}

614[runner:fatal] --use-anthropic-git-proxy requires --capacity 1 (the proxy URL is per-session and linked worktrees share origin). Omit --use-anthropic-git-proxy or set --capacity 1.

615```

616 

617Cherchez la ligne dans la sortie standard et l'erreur standard du runner, dans les journaux de conteneur de votre plateforme, ou dans le fichier que vous avez défini avec [`--log-file`](/docs/fr/self-hosted-environments-reference#runner-cli-flags). Le runner imprime une ligne `error:` avant d'ouvrir le fichier journal, donc cherchez-la dans le terminal ou vos journaux de conteneur, comme le note [Dépannage](#troubleshooting).

618 

619Ceux-ci aident également quand vous lisez un démarrage échoué :

620 

621* **Aucune ligne du tout** : un runner que l'hôte tue n'en imprime aucune. Si la sortie se termine sans ligne `[runner:fatal]` et sans ligne `error:`, vérifiez si l'hôte ou votre orchestrateur a arrêté le processus, par exemple pour avoir dépassé une limite de mémoire.

622* **Le code de sortie** : le runner ne met pas de côté un code de sortie pour les erreurs qui se répètent à chaque démarrage. Il quitte avec le même code pour une erreur de configuration, comme une combinaison de drapeaux non supportée, et pour une défaillance qui peut se résoudre d'elle-même, comme l'API restant inaccessible via les propres tentatives du runner. Basez la décision d'attendre plus longtemps sur la rapidité avec laquelle le runner a quitté, et lisez la sortie du runner pour apprendre pourquoi.

623* **Un environnement qui semble sain** : certaines étapes de démarrage s'exécutent après que le runner s'enregistre auprès de votre environnement, comme [`--configure-git`](#let-the-runner-configure-git) et la configuration des identifiants du proxy git Anthropic. Si l'une de ces étapes échoue, l'environnement peut continuer à lister ce runner pendant quelques minutes après que le processus ait quitté, et la page **Environnements cloud** peut afficher **Sain** alors qu'aucun runner ne récupère le travail. Si les sessions restent en attente dans un environnement qui semble sain, vérifiez si votre superviseur redémarre le runner.

624 

625<h4 id="restart-with-a-wait-that-grows">

626 Redémarrer avec une attente qui grandit

627</h4>

628 

629La façon dont vous obtenez une attente croissante dépend de votre superviseur.

630 

631* **Kubernetes** : le [Deployment](#kubernetes) sur cette page n'a besoin d'aucune modification. Après qu'un conteneur quitte, le kubelet par défaut attend avant de redémarrer le conteneur, et l'attente grandit à chaque redémarrage jusqu'à un plafond. L'attente recommence une fois que le conteneur a fonctionné pendant un certain temps sans quitter.

632 

633 Le kubelet applique la même attente après une sortie normale quand le conteneur n'a fonctionné que brièvement. Un runner qui se draine souvent peut donc afficher le statut `CrashLoopBackOff` aussi, donc lisez la sortie avant de conclure que le runner ne peut pas démarrer. La commande ci-dessous lit la sortie de la dernière exécution d'un pod du Deployment :

634 

635 ```bash theme={null}

636 kubectl logs --previous -n claude-runners deploy/claude-runner

637 ```

638 

639 Quand la dernière exécution était un démarrage échoué, la ligne `[runner:fatal]` ou `error:` est parmi les dernières lignes de la sortie. Pour lire la dernière exécution d'un autre pod, nommez ce pod à la place de `deploy/claude-runner`.

640* **Docker et Docker Compose** : la [recette Compose](#docker-compose) sur cette page n'a besoin d'aucune modification. Avec `restart: always`, Docker attend plus longtemps avant chaque redémarrage d'un conteneur qui continue de quitter, jusqu'à un plafond. Remplacez `<container>` par le nom du conteneur dans la commande ci-dessous, qui lit combien de fois Docker a redémarré le conteneur :

641 

642 ```bash theme={null}

643 docker inspect --format '{{.RestartCount}}' <container>

644 ```

645 

646 La commande imprime un nombre. Un nombre qui continue de grimper signifie que Docker continue de redémarrer le runner.

647* **Une unité systemd** : par défaut, systemd attend le même `RestartSec` avant chaque redémarrage et ne l'allonge pas, donc une unité avec `Restart=always` redémarre un runner qui ne peut pas démarrer à cet intervalle chaque fois. Quand les démarrages viennent assez vite pour atteindre la limite de taux de démarrage de l'unité, cinq démarrages en 10 secondes par défaut, systemd arrête de redémarrer l'unité. L'unité reste arrêtée jusqu'à ce que quelqu'un la redémarre, ce que systemd permet une fois que l'intervalle de la limite de taux a passé ou après `systemctl reset-failed`. Parce que `RestartSec` s'applique à chaque redémarrage, une valeur plus longue retarde également le redémarrage après une sortie normale. Choisissez une valeur qui équilibre les deux, et alertez sur le nombre de redémarrages de l'unité.

648* **Une boucle shell ou votre propre superviseur** : appliquez la même règle vous-même. Commencez par une attente de cinq secondes. Après chaque exécution qui s'est terminée dans une minute, doublez l'attente pour le prochain redémarrage, jusqu'à cinq minutes. Après une exécution qui a duré une minute ou plus, revenez à cinq secondes.

649 

650<h4 id="check-why-the-runner-keeps-exiting">

651 Vérifier pourquoi le runner continue de quitter

652</h4>

653 

654Quand le runner a quitté juste après le démarrage plusieurs fois de suite, arrêtez et vérifiez ceux-ci avant de le redémarrer à nouveau.

655 

656* **La dernière ligne `[runner:fatal]` ou `error:`** : elle dit pourquoi le runner s'est arrêté. [Dépannage](#troubleshooting) énumère les causes courantes.

657* **La combinaison de drapeaux** : le [proxy git Anthropic](#use-the-anthropic-git-proxy) nécessite `--capacity 1`. Les recettes sur cette page utilisent une capacité plus élevée, donc abaissez-la quand vous ajoutez le proxy à l'une d'elles.

658* **Ce que le service de l'environnement peut atteindre** : si le runner démarre à la main et échoue sous votre superviseur, comparez l'utilisateur, le répertoire personnel, le `PATH`, et la limite de mémoire. `--configure-git` et le proxy git Anthropic ont besoin de git sur le `PATH` et d'un `~/.gitconfig` inscriptible.

659* **Le secret de l'environnement** : si vous avez révoqué le secret ou l'avez mal saisi, le runner imprime une ligne qui contient `RegisterRunner auth failed`.

660* **L'onglet Activité de l'environnement** : ouvrez l'environnement et sélectionnez **Activité**. Si de nouveaux runners continuent d'apparaître là et qu'aucun ne récupère le travail, votre superviseur redémarre le runner.

661 

662Pour un diagnostic guidé sur l'hôte runner, exécutez la [sous-commande doctor](#troubleshooting).

663 

557<h2 id="what’s-next">664<h2 id="what’s-next">

558 Prochaines étapes665 Prochaines étapes

559</h2>666</h2>

Details

105 </Step>105 </Step>

106</Steps>106</Steps>

107 107 

108Le runner se termine par conception une fois que ses sessions actives se terminent ; consultez [Cycle de vie du runner](/docs/fr/self-hosted-environments#runner-lifecycle). Pour la production, déployez-le sous un orchestrateur qui le redémarre à la sortie. Consultez [Déployer en production](/docs/fr/self-hosted-environments-deploy).108Le runner se termine par conception une fois que ses sessions actives se terminent ; consultez [Cycle de vie du runner](/docs/fr/self-hosted-environments#runner-lifecycle). Pour la production, déployez-le sous un orchestrateur qui le redémarre à la sortie et attend plus longtemps entre les redémarrages lorsque le runner continue à se terminer juste après son démarrage. Consultez [Déployer en production](/docs/fr/self-hosted-environments-deploy) et [Quand le runner se termine](/docs/fr/self-hosted-environments-deploy#when-the-runner-exits).

109 109 

110<h2 id="send-a-follow-up-message-to-a-running-session">110<h2 id="send-a-follow-up-message-to-a-running-session">

111 Envoyer un message de suivi à une session en cours d'exécution111 Envoyer un message de suivi à une session en cours d'exécution

Details

3064</h4>3064</h4>

3065 3065 

3066* Une valeur ici écrase la même variable exportée dans votre shell, et lorsque plus d'un fichier de paramètres définit une variable, celle avec la [plus haute priorité](/docs/fr/settings#settings-precedence) s'applique. [Variables que Claude Code ignore dans `env`](#variables-claude-code-ignores-in-env) répertorie les exceptions pour les paramètres de projet et locaux.3066* Une valeur ici écrase la même variable exportée dans votre shell, et lorsque plus d'un fichier de paramètres définit une variable, celle avec la [plus haute priorité](/docs/fr/settings#settings-precedence) s'applique. [Variables que Claude Code ignore dans `env`](#variables-claude-code-ignores-in-env) répertorie les exceptions pour les paramètres de projet et locaux.

3067* Lorsque l'application Claude Desktop ou un [environnement auto-hébergé](/docs/fr/self-hosted-environments) démarre la session, l'environnement de lancement qu'il construit a la priorité à la place : Claude Code ignore une valeur `env` de n'importe quel fichier de paramètres pour une variable que l'environnement de lancement a déjà définie. Le [journal de débogage](/docs/fr/debug-your-config) nomme chaque variable ignorée.

3067* Pour annuler une exportation de shell, définissez la variable sur `""`. Claude Code traite une valeur vide comme non définie pour la sélection du fournisseur, et les sous-processus héritent de la valeur vide.3068* Pour annuler une exportation de shell, définissez la variable sur `""`. Claude Code traite une valeur vide comme non définie pour la sélection du fournisseur, et les sous-processus héritent de la valeur vide.

3068* `NO_COLOR` et `FORCE_COLOR` définis ici ne parviennent qu'aux sous-processus. Pour modifier les couleurs de l'interface de Claude Code lui-même, définissez-les dans votre shell avant de lancer `claude`.3069* `NO_COLOR` et `FORCE_COLOR` définis ici ne parviennent qu'aux sous-processus. Pour modifier les couleurs de l'interface de Claude Code lui-même, définissez-les dans votre shell avant de lancer `claude`.

3069* Les valeurs ici sont du texte brut dans le fichier de paramètres et parviennent à chaque sous-processus que Claude Code démarre. Pour un jeton porteur OTLP qui tourne, utilisez [`otelHeadersHelper`](#otelheadershelper) ; pour les identifiants d'API, utilisez [`apiKeyHelper`](#apikeyhelper).3070* Les valeurs ici sont du texte brut dans le fichier de paramètres et parviennent à chaque sous-processus que Claude Code démarre. Pour un jeton porteur OTLP qui tourne, utilisez [`otelHeadersHelper`](#otelheadershelper) ; pour les identifiants d'API, utilisez [`apiKeyHelper`](#apikeyhelper).


5162 5163 

5163Créez une liste blanche des serveurs MCP que les utilisateurs peuvent ajouter. Claude Code bloque tout serveur qui ne correspond pas à une entrée, où qu'elle soit définie, y compris les serveurs de plugins, les serveurs passés avec `--mcp-config`, et les serveurs de claude.ai.5164Créez une liste blanche des serveurs MCP que les utilisateurs peuvent ajouter. Claude Code bloque tout serveur qui ne correspond pas à une entrée, où qu'elle soit définie, y compris les serveurs de plugins, les serveurs passés avec `--mcp-config`, et les serveurs de claude.ai.

5164 5165 

5165Les serveurs intégrés tels que Claude dans Chrome, le serveur `ide` auquel Claude Code se connecte dans un IDE [VS Code](/docs/fr/vs-code#the-built-in-ide-mcp-server) ou [JetBrains](/docs/fr/jetbrains#the-built-in-ide-mcp-server) en cours d'exécution, et les serveurs que l'interface de ligne de commande elle-même configure sont exemptés de la liste blanche, et la liste noire s'applique toujours à eux. Les serveurs `type: "sdk"` en processus sont exemptés des deux listes ; [l'application qui a démarré la session](/docs/fr/mcp#how-connectors-reach-claude-code) les enregistre.5166Les serveurs intégrés tels que Claude dans Chrome, le serveur `ide` auquel Claude Code se connecte dans un IDE [VS Code](/docs/fr/vs-code#the-built-in-ide-mcp-server) ou [JetBrains](/docs/fr/jetbrains#the-built-in-ide-mcp-server) en cours d'exécution, et les serveurs que l'interface de ligne de commande elle-même configure sont exemptés de la liste blanche, et la liste noire s'applique toujours à eux. Sur Claude Code v2.1.268 ou ultérieur, les outils Slack d'une session [Claude Tag](/docs/fr/claude-tag) sont également exemptés de la liste blanche, et la liste noire s'applique toujours à eux. Les serveurs `type: "sdk"` en processus sont exemptés des deux listes ; [l'application qui a démarré la session](/docs/fr/mcp#how-connectors-reach-claude-code) les enregistre.

5166 5167 

5167Les serveurs que votre organisation livre sont également exemptés de la liste blanche, et la liste noire s'applique toujours à eux. L'exemption couvre chaque entrée [`managedMcpServers`](#managedmcpservers), et toute entrée [`managed-mcp.json`](/docs/fr/managed-mcp#exclusive-control-with-managed-mcp-json) dont les valeurs n'utilisent pas d'expansion `${VAR}`. Consultez [Comment un serveur est évalué](/docs/fr/managed-mcp#how-a-server-is-evaluated) pour l'ordre de vérification complet. Avant la v2.1.259, les serveurs de `managed-mcp.json` devaient également correspondre.5168Les serveurs que votre organisation livre sont également exemptés de la liste blanche, et la liste noire s'applique toujours à eux. L'exemption couvre chaque entrée [`managedMcpServers`](#managedmcpservers), et toute entrée [`managed-mcp.json`](/docs/fr/managed-mcp#exclusive-control-with-managed-mcp-json) dont les valeurs n'utilisent pas d'expansion `${VAR}`. Consultez [Comment un serveur est évalué](/docs/fr/managed-mcp#how-a-server-is-evaluated) pour l'ordre de vérification complet. Avant la v2.1.259, les serveurs de `managed-mcp.json` devaient également correspondre.

5168 5169 


6303 `disableSideloadFlags`6304 `disableSideloadFlags`

6304</h3>6305</h3>

6305 6306 

6306Rejeter les drapeaux CLI `--plugin-dir`, `--plugin-url`, `--agents` et `--mcp-config` au démarrage, que les utilisateurs pourraient autrement transmettre pour contourner [`strictKnownMarketplaces`](#strictknownmarketplaces) pour une seule exécution. Claude Code se ferme avec une erreur nommant les drapeaux rejetés et applique la même vérification aux surfaces qui démarrent le CLI avec ces drapeaux en interne, actuellement les sessions locales [Cowork](/docs/fr/desktop) dans l'application de bureau. Dans les [sessions cloud](/docs/fr/claude-code-on-the-web), Claude Code supprime les serveurs MCP que le serveur a livrés via `--mcp-config`, sauf les entrées `type: "sdk"` en processus, et démarre la session. Nécessite Claude Code v2.1.193 ou ultérieur.6307Rejeter les drapeaux CLI `--plugin-dir`, `--plugin-url`, `--agents` et `--mcp-config` au démarrage, que les utilisateurs pourraient autrement transmettre pour contourner [`strictKnownMarketplaces`](#strictknownmarketplaces) pour une seule exécution. Claude Code se ferme avec une erreur nommant les drapeaux rejetés et applique la même vérification aux surfaces qui démarrent le CLI avec ces drapeaux en interne, actuellement les sessions locales [Cowork](/docs/fr/desktop) dans l'application de bureau. Dans les [sessions cloud](/docs/fr/claude-code-on-the-web), Claude Code démarre plutôt la session et supprime chaque entrée `--mcp-config` livrée par le serveur sauf les entrées `type: "sdk"` en processus et les outils Slack d'une session [Claude Tag](/docs/fr/claude-tag). Nécessite Claude Code v2.1.193 ou ultérieur.

6307 6308 

6308* **Portée** : [`Managed`](#scopes)6309* **Portée** : [`Managed`](#scopes)

6309* **Type** : Booléen6310* **Type** : Booléen

6310 * `true` : Claude Code rejette `--plugin-dir`, `--plugin-url`, `--agents` et `--mcp-config` au démarrage et se ferme avec une erreur les nommant, sauf que dans les sessions cloud il supprime les serveurs MCP que le serveur a livrés via `--mcp-config`, sauf les entrées `type: "sdk"` en processus, et démarre la session6311 * `true` : Claude Code rejette `--plugin-dir`, `--plugin-url`, `--agents` et `--mcp-config` au démarrage et se ferme avec une erreur les nommant. Dans les sessions cloud, il démarre plutôt la session et supprime chaque entrée `--mcp-config` livrée par le serveur sauf les entrées `type: "sdk"` en processus et les outils Slack d'une session Claude Tag

6311 * `false` : Claude Code accepte ces drapeaux6312 * `false` : Claude Code accepte ces drapeaux

6312* **Défaut** : `false`6313* **Défaut** : `false`

6313 6314 


6321 6322 

6322La même vérification couvre les dossiers de plugins nommés dans la variable d'environnement [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/fr/env-vars#variables), ce qui nécessite Claude Code v2.1.280 ou ultérieur. Lorsque la variable nomme un dossier, Claude Code se ferme avec la même erreur, et l'erreur dit de désactiver la variable.6323La même vérification couvre les dossiers de plugins nommés dans la variable d'environnement [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/fr/env-vars#variables), ce qui nécessite Claude Code v2.1.280 ou ultérieur. Lorsque la variable nomme un dossier, Claude Code se ferme avec la même erreur, et l'erreur dit de désactiver la variable.

6323 6324 

6324Dans les sessions cloud, Claude Code ignore également les mises à jour MCP livrées en milieu de session, le chemin derrière la configuration de session cloud et les appels SDK `setMcpServers()` qui atteignent ces sessions. Les entrées `type: "sdk"` en processus restent exemptes là aussi. Avant v2.1.239, un `--mcp-config` livré par le serveur bloquait le démarrage d'une session cloud.6325Dans les sessions cloud, Claude Code ignore également les mises à jour MCP livrées en milieu de session, le chemin derrière la configuration de session cloud et les appels SDK `setMcpServers()` qui atteignent ces sessions. Les entrées `type: "sdk"` en processus et les outils Slack d'une session Claude Tag restent exemptes là aussi. Avant v2.1.268, cette suppression au démarrage et la suppression au démarrage supprimaient également les outils Slack d'une session Claude Tag. Avant v2.1.239, un `--mcp-config` livré par le serveur bloquait le démarrage d'une session cloud.

6325 6326 

6326<h3 id="forceremotesettingsrefresh">6327<h3 id="forceremotesettingsrefresh">

6327 `forceRemoteSettingsRefresh`6328 `forceRemoteSettingsRefresh`

statusline.md +1 −1

Details

1178**Le pourcentage de contexte affiche des valeurs inattendues**1178**Le pourcentage de contexte affiche des valeurs inattendues**

1179 1179 

1180* Utilisez `used_percentage` pour l'état de contexte le plus simple et précis1180* Utilisez `used_percentage` pour l'état de contexte le plus simple et précis

1181* Le pourcentage de contexte peut différer de la sortie `/context` en raison du moment où chacun est calculé1181* La barre de statut rapporte les décomptes de la dernière réponse API, tandis que `/context` ajoute une estimation pour les messages ajoutés depuis cette réponse, donc `/context` peut afficher une valeur plus élevée jusqu'à la réponse suivante

1182 1182 

1183**Les liens OSC 8 ne sont pas cliquables**1183**Les liens OSC 8 ne sont pas cliquables**

1184 1184 

sub-agents.md +3 −3

Details

800 - matcher: "Bash"800 - matcher: "Bash"

801 hooks:801 hooks:

802 - type: command802 - type: command

803 command: "./scripts/validate-command.sh $TOOL_INPUT"803 command: "./scripts/validate-command.sh"

804 PostToolUse:804 PostToolUse:

805 - matcher: "Edit|Write"805 - matcher: "Edit|Write"

806 hooks:806 hooks:


874 874 

875* **Langage naturel** : nommez le sous-agent dans votre invite ; Claude décide s'il faut déléguer875* **Langage naturel** : nommez le sous-agent dans votre invite ; Claude décide s'il faut déléguer

876* **@-mention** : garantit que le sous-agent s'exécute pour une tâche876* **@-mention** : garantit que le sous-agent s'exécute pour une tâche

877* **À l'échelle de la session** : toute la session utilise le système prompt, les restrictions d'outils et le modèle de ce sous-agent via l'indicateur `--agent` ou le paramètre `agent`877* **À l'échelle de la session** : toute la session s'exécute en tant que ce sous-agent via l'indicateur `--agent` ou le paramètre `agent`

878 878 

879Pour le langage naturel, il n'y a pas de syntaxe spéciale. Nommez le sous-agent et Claude délègue généralement :879Pour le langage naturel, il n'y a pas de syntaxe spéciale. Nommez le sous-agent et Claude délègue généralement :

880 880 


895 895 

896Vous pouvez également taper la mention manuellement sans utiliser le sélecteur : `@agent-<name>` pour les sous-agents locaux, ou `@agent-` suivi du nom délimité pour les sous-agents de plugin, par exemple `@agent-my-plugin:code-reviewer`. Pendant que vous tapez ce formulaire, la saisie semi-automatique affiche les correspondances de fichiers plutôt que les agents. La mention d'agent se résout toujours lorsque vous soumettez.896Vous pouvez également taper la mention manuellement sans utiliser le sélecteur : `@agent-<name>` pour les sous-agents locaux, ou `@agent-` suivi du nom délimité pour les sous-agents de plugin, par exemple `@agent-my-plugin:code-reviewer`. Pendant que vous tapez ce formulaire, la saisie semi-automatique affiche les correspondances de fichiers plutôt que les agents. La mention d'agent se résout toujours lorsque vous soumettez.

897 897 

898**Exécutez toute la session en tant que sous-agent.** Passez [`--agent <name>`](/docs/fr/cli-reference) pour démarrer une session où le thread principal lui-même prend le système prompt, les restrictions d'outils et le modèle de ce sous-agent :898**Exécutez toute la session en tant que sous-agent.** Passez [`--agent <name>`](/docs/fr/cli-reference) pour démarrer une session où le thread principal lui-même prend les restrictions d'outils et le modèle de ce sous-agent :

899 899 

900```bash theme={null}900```bash theme={null}

901claude --agent code-reviewer901claude --agent code-reviewer

Details

445 Erreurs de connexion TLS ou SSL445 Erreurs de connexion TLS ou SSL

446</h3>446</h3>

447 447 

448Les erreurs comme `curl: (35) TLS connect error`, `schannel: next InitializeSecurityContext failed`, ou le `Could not establish trust relationship for the SSL/TLS secure channel` de PowerShell indiquent des échecs de négociation TLS.448Les erreurs telles que celles-ci signifient que la négociation TLS a échoué :

449 

450* `curl: (35) TLS connect error`

451* `schannel: next InitializeSecurityContext failed`

452* Le `Could not create SSL/TLS secure channel` de PowerShell

453* Le `Could not establish trust relationship for the SSL/TLS secure channel` de PowerShell

449 454 

450**Solutions :**455**Solutions :**

451 456 

Details

52 Le fichier `.heapsnapshot` contient chaque chaîne du processus, y compris votre conversation complète et vos identifiants. Ne l'attachez pas à un problème public ou ne le partagez pas.52 Le fichier `.heapsnapshot` contient chaque chaîne du processus, y compris votre conversation complète et vos identifiants. Ne l'attachez pas à un problème public ou ne le partagez pas.

53</Warning>53</Warning>

54 54 

55La commande imprime également un résumé dans la conversation, affichant la taille de l'ensemble résidant, le tas JS, les tampons de tableau et la mémoire native non comptabilisée, plus tous les indicateurs de fuite qu'elle a détectés, comme un taux de croissance de la mémoire élevé ou un nombre inhabituellement élevé de handles ouverts. Le résumé indique si la plupart de la mémoire se trouve dans le tas JS, que le snapshot capture, ou dans la mémoire native, qu'il ne capture pas.55La commande imprime également un résumé dans la conversation, affichant la mémoire totale du processus, la quantité de celle-ci dans le tas JS et la quantité qui se trouve en dehors du tas. Le résumé liste également tous les indicateurs de fuite, tels qu'un taux de croissance de la mémoire élevé ou un nombre inhabituellement élevé de handles ouverts. Le résumé indique si la plupart de la mémoire se trouve dans le tas JS, que le snapshot capture, ou dans la mémoire native, qu'il ne capture pas.

56 56 

57Faites l'une de ces deux choses avec la sortie :57Faites l'une de ces deux choses avec la sortie :

58 58 

workflows.md +1 −1

Details

91 Surveiller l'exécution91 Surveiller l'exécution

92</h3>92</h3>

93 93 

94Les workflows s'exécutent en arrière-plan, de sorte que la session reste réactive pendant que les agents travaillent. Exécutez `/workflows` à tout moment pour lister les workflows en cours d'exécution et terminés, puis sélectionnez-en un pour ouvrir sa vue de progression.94Les workflows s'exécutent en arrière-plan, de sorte que la session reste réactive pendant que les agents travaillent. Exécutez `/workflows` à tout moment pour lister les workflows en cours d'exécution et terminés, puis sélectionnez-en un pour ouvrir sa vue de progression. Pour arrêter un workflow en cours d'exécution sans l'ouvrir, sélectionnez-le dans la liste et appuyez sur `x`.

95 95 

96La vue de progression affiche chaque phase avec ses nombres d'agents, ses totaux de tokens et son temps écoulé. Le pied de page liste la clé pour chaque action :96La vue de progression affiche chaque phase avec ses nombres d'agents, ses totaux de tokens et son temps écoulé. Le pied de page liste la clé pour chaque action :

97 97