SpyBara
Go Premium

Documentation 2026-10-02 22:59 UTC to 2026-10-03 11:02 UTC

44 files changed +1,232 −1,070. View all changes and history on the product overview
2026
Sat 3 12:00 Fri 2 22:59 Thu 1 23:59
Details

145Certains comportements ne sont pas adaptés au mode lecteur d'écran :145Certains comportements ne sont pas adaptés au mode lecteur d'écran :

146 146 

147* Le mode lecteur d'écran ne s'active pas automatiquement lorsqu'un lecteur d'écran est en cours d'exécution.147* Le mode lecteur d'écran ne s'active pas automatiquement lorsqu'un lecteur d'écran est en cours d'exécution.

148* Claude Code n'annonce pas un changement de mode de permission effectué de toute autre manière que le cycle avec `Shift+Tab`, comme l'entrée en [mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode) à partir d'une commande.148* Claude Code n'annonce pas un changement de mode de permission effectué à l'aide d'une commande, comme l'entrée en [mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode) avec `/plan`.

149* L'attachement à une [session d'arrière-plan](/docs/fr/agent-view) avec `claude attach` ou à partir de la vue agent entre dans l'écran alternatif du terminal, qui n'a pas de scrollback natif. C'est le [même comportement que les autres sessions attachées](/docs/fr/fullscreen). Pour en sortir, appuyez sur la flèche gauche sur une invite vide, ou Ctrl+Z si une boîte de dialogue a le focus.149* L'attachement à une [session d'arrière-plan](/docs/fr/agent-view) avec `claude attach` ou à partir de la vue agent entre dans l'écran alternatif du terminal, qui n'a pas de scrollback natif. C'est le [même comportement que les autres sessions attachées](/docs/fr/fullscreen). Pour en sortir, appuyez sur la flèche gauche sur une invite vide, ou Ctrl+Z si une boîte de dialogue a le focus.

150* Claude Code annonce les coûts dans le résumé qu'il imprime à la sortie, pas par tour.150* Claude Code annonce les coûts dans le résumé qu'il imprime à la sortie, pas par tour.

151* Le mode lecteur d'écran ne change pas le [mode non interactif](/docs/fr/headless) avec l'indicateur `-p`. Le mode non interactif écrit déjà du texte simple et reste une alternative pour les scripts.151* Le mode lecteur d'écran ne change pas le [mode non interactif](/docs/fr/headless) avec l'indicateur `-p`. Le mode non interactif écrit déjà du texte simple et reste une alternative pour les scripts.

Details

154| `PostToolUse` | Oui | Oui | Résultat de l'exécution de l'outil | Enregistrer tous les changements de fichiers dans la piste d'audit |154| `PostToolUse` | Oui | Oui | Résultat de l'exécution de l'outil | Enregistrer tous les changements de fichiers dans la piste d'audit |

155| `PostToolUseFailure` | Oui | Oui | Échec de l'exécution de l'outil | Gérer ou enregistrer les erreurs d'outil |155| `PostToolUseFailure` | Oui | Oui | Échec de l'exécution de l'outil | Gérer ou enregistrer les erreurs d'outil |

156| `PostToolBatch` | Non | Oui | Un lot complet d'appels d'outil se résout, une fois par lot avant l'appel du modèle suivant | Injecter des conventions une fois pour tout le lot |156| `PostToolBatch` | Non | Oui | Un lot complet d'appels d'outil se résout, une fois par lot avant l'appel du modèle suivant | Injecter des conventions une fois pour tout le lot |

157| `UserPromptSubmit` | Oui | Oui | Soumission d'invite utilisateur | Injecter du contexte supplémentaire dans les invites |157| [`UserPromptSubmit`](/docs/fr/hooks#userpromptsubmit) | Oui | Oui | Un prompt est soumis, y compris un tour que Claude Code démarre de lui-même | Injecter du contexte supplémentaire dans les prompts |

158| [`UserPromptExpansion`](/docs/fr/hooks#userpromptexpansion) | Non | Oui | Une commande tapée par l'utilisateur, ou une invite MCP, se développe en une invite avant d'atteindre Claude. Ne se déclenche pas quand Claude invoque une compétence lui-même | Bloquer une commande d'invocation directe ou ajouter du contexte quand une compétence est tapée |158| [`UserPromptExpansion`](/docs/fr/hooks#userpromptexpansion) | Non | Oui | Une commande tapée par l'utilisateur, ou une invite MCP, se développe en une invite avant d'atteindre Claude. Ne se déclenche pas quand Claude invoque une compétence lui-même | Bloquer une commande d'invocation directe ou ajouter du contexte quand une compétence est tapée |

159| `MessageDisplay` | Non | Oui | Un message d'assistant avec du texte se termine, une fois par message avec le texte complet du message | Masquer ou reformater le texte affiché sans modifier la transcription |159| `MessageDisplay` | Non | Oui | Un message d'assistant avec du texte se termine, une fois par message avec le texte complet du message | Masquer ou reformater le texte affiché sans modifier la transcription |

160| `Stop` | Oui | Oui | Arrêt de l'exécution de l'agent | Enregistrer l'état de la session avant la sortie |160| `Stop` | Oui | Oui | Arrêt de l'exécution de l'agent | Enregistrer l'état de la session avant la sortie |

Details

2241 "PreToolUse", # Called before tool execution2241 "PreToolUse", # Called before tool execution

2242 "PostToolUse", # Called after tool execution2242 "PostToolUse", # Called after tool execution

2243 "PostToolUseFailure", # Called when a tool execution fails2243 "PostToolUseFailure", # Called when a tool execution fails

2244 "UserPromptSubmit", # Called when user submits a prompt2244 "UserPromptSubmit", # Called when a prompt is submitted

2245 "Stop", # Called when stopping execution2245 "Stop", # Called when stopping execution

2246 "SubagentStop", # Called when a subagent stops2246 "SubagentStop", # Called when a subagent stops

2247 "PreCompact", # Called before message compaction2247 "PreCompact", # Called before message compaction


2443| Champ | Type | Description |2443| Champ | Type | Description |

2444| :- | :- | :- |2444| :- | :- | :- |

2445| `hook_event_name` | `Literal["UserPromptSubmit"]` | Toujours « UserPromptSubmit » |2445| `hook_event_name` | `Literal["UserPromptSubmit"]` | Toujours « UserPromptSubmit » |

2446| `prompt` | `str` | Le prompt soumis par l'utilisateur |2446| `prompt` | `str` | Le prompt soumis |

2447 2447 

2448<h3 id="stophookinput">2448<h3 id="stophookinput">

2449 `StopHookInput`2449 `StopHookInput`

Details

275| `options.version` | `string` | Chaîne de version optionnelle |275| `options.version` | `string` | Chaîne de version optionnelle |

276| `options.instructions` | `string` | Instructions optionnelles du serveur, retournées depuis `initialize` et exposées au modèle comme un bloc d'instructions MCP |276| `options.instructions` | `string` | Instructions optionnelles du serveur, retournées depuis `initialize` et exposées au modèle comme un bloc d'instructions MCP |

277| `options.tools` | `Array<SdkMcpToolDefinition>` | Tableau de définitions d'outils créées avec [`tool()`](#tool) |277| `options.tools` | `Array<SdkMcpToolDefinition>` | Tableau de définitions d'outils créées avec [`tool()`](#tool) |

278| `options.alwaysLoad` | `boolean` | Quand `true`, chaque outil de ce serveur reste dans l'invite initiale et n'est jamais différé derrière la [recherche d'outils](/docs/fr/agent-sdk/tool-search). Se combine avec `alwaysLoad` par outil dans [`tool()`](#tool) |278| `options.alwaysLoad` | `boolean` | Quand `true`, chaque outil de ce serveur reste dans le prompt initial et n'est jamais différé derrière la [recherche d'outils](/docs/fr/agent-sdk/tool-search). Se combine avec `alwaysLoad` par outil dans [`tool()`](#tool) |

279| `options.timeout` | `number` | Délai d'expiration en millisecondes pour les appels d'outils de ce serveur. Claude Code l'applique à ce serveur à la place de [`MCP_TOOL_TIMEOUT`](/docs/fr/env-vars). Passez un nombre entier d'au moins 1000. Claude Code ignore les autres valeurs. Nécessite TypeScript Agent SDK v0.3.248 ou ultérieur |279| `options.timeout` | `number` | Délai d'expiration en millisecondes pour les appels d'outils de ce serveur. Claude Code l'applique à ce serveur à la place de [`MCP_TOOL_TIMEOUT`](/docs/fr/env-vars). Passez un nombre entier d'au moins 1000. Claude Code ignore les autres valeurs. Nécessite TypeScript Agent SDK v0.3.248 ou ultérieur |

280 280 

281<h3 id="listsessions">281<h3 id="listsessions">

agent-teams.md +1 −1

Details

91* **Entrée** : ouvrir la transcription du coéquipier sélectionné et lui envoyer un message directement91* **Entrée** : ouvrir la transcription du coéquipier sélectionné et lui envoyer un message directement

92* **Échap** : effacer la sélection. Pendant que vous consultez la transcription d'un coéquipier, Échap interrompt le tour actuel de ce coéquipier92* **Échap** : effacer la sélection. Pendant que vous consultez la transcription d'un coéquipier, Échap interrompt le tour actuel de ce coéquipier

93 93 

94À partir de la v2.1.199, la ligne d'un coéquipier inactif reste dans le panneau tant que n'importe quel coéquipier ou sous-agent travaille encore, vous pouvez donc la sélectionner pour examiner sa transcription ou lui envoyer plus de travail. Une fois que chaque agent du panneau est inactif, les lignes inactives se masquent après 30 secondes et réapparaissent au prochain tour du coéquipier ; le coéquipier continue de fonctionner et reste adressable pendant qu'il est masqué. Dans les versions v2.1.181 à v2.1.198, une ligne inactif s'est masquée 30 secondes après la fin de son propre tour, même si d'autres coéquipiers travaillaient encore ; les lignes inactives ne sont pas masquées dans les versions antérieures à v2.1.181.94La ligne d'un coéquipier inactif reste dans le panneau tant que n'importe quel coéquipier ou sous-agent travaille encore, vous pouvez donc la sélectionner pour examiner sa transcription ou lui envoyer plus de travail. Une fois que chaque agent du panneau est inactif, les lignes inactives se masquent après 30 secondes et réapparaissent au prochain tour du coéquipier ; le coéquipier continue de fonctionner et reste adressable pendant qu'il est masqué.

95 95 

96Lorsque plus de trois coéquipiers sont inactifs à la fois, les lignes au-delà des trois premières se réduisent en une seule ligne qui compte les coéquipiers réduits, comme `2 agents inactifs` quand cinq sont inactifs. Sélectionnez-la et appuyez sur Entrée pour développer les lignes réduites, ou appuyez sur Échap pour les réduire à nouveau. Les coéquipiers qui travaillent, les coéquipiers qui ont échoué, et le coéquipier que vous consultez conservent toujours leurs propres lignes.96Lorsque plus de trois coéquipiers sont inactifs à la fois, les lignes au-delà des trois premières se réduisent en une seule ligne qui compte les coéquipiers réduits, comme `2 agents inactifs` quand cinq sont inactifs. Sélectionnez-la et appuyez sur Entrée pour développer les lignes réduites, ou appuyez sur Échap pour les réduire à nouveau. Les coéquipiers qui travaillent, les coéquipiers qui ont échoué, et le coéquipier que vous consultez conservent toujours leurs propres lignes.

97 97 

champion-kit.md +7 −7

Details

50Exemples de techniques réutilisables :50Exemples de techniques réutilisables :

51 51 

52* « J'ai appris que @-mentionner un répertoire fonctionne. En le pointant vers `@src/components/` et en demandant lesquels manquaient de tests, j'ai découvert deux que j'avais oubliés. »52* « J'ai appris que @-mentionner un répertoire fonctionne. En le pointant vers `@src/components/` et en demandant lesquels manquaient de tests, j'ai découvert deux que j'avais oubliés. »

53* « Le mode Plan (`Maj+Tab`) montre exactement quels fichiers seront touchés avant toute modification, c'est pourquoi je suis à l'aise de l'utiliser sur du code partagé. »53* « Le mode plan (`Maj+Tab`) présente d'abord les modifications proposées, c'est pourquoi je suis à l'aise de l'utiliser sur du code partagé. »

54* « J'ai configuré un hook Stop pour recevoir une notification de bureau quand une tâche longue se termine. La configuration est dans le fil. »54* « J'ai configuré un hook Stop pour recevoir une notification de bureau quand une tâche longue se termine. La configuration est dans le fil. »

55* « L'exécution de `/init` génère un `CLAUDE.md` à partir du référentiel afin que l'assistant arrête de redemander nos conventions. »55* « L'exécution de `/init` génère un `CLAUDE.md` à partir du référentiel afin que l'assistant arrête de redemander nos conventions. »

56 56 


88```88```

89 89 

90```text theme={null}90```text theme={null}

91Le mode Plan est la raison pour laquelle je suis à l'aise d'utiliser ceci sur du code qui compte.91Le mode plan est la raison pour laquelle je suis à l'aise d'utiliser ceci sur du code qui compte.

92Appuyez sur Maj+Tab jusqu'à ce que vous voyiez « plan » ; cela énumère exactement quels fichiers92Appuyez sur Maj+Tab jusqu'à ce que vous voyiez « plan » ; il présente les modifications qu'il propose

93il a l'intention de toucher avant de changer quoi que ce soit.93sans toucher à votre code source.

94```94```

95 95 

96<h2 id="be-the-person-people-ask">96<h2 id="be-the-person-people-ask">


126| Question | Réponse suggérée | Ressource de suivi |126| Question | Réponse suggérée | Ressource de suivi |

127| - | - | - |127| - | - | - |

128| « Sur quoi devrais-je d'abord l'essayer ? » | Recommandez une tâche réelle mais contenue, idéalement un bug ou une tâche que la personne a reportée parce qu'elle est fastidieuse plutôt que difficile. | [Flux de travail courants](/docs/fr/common-workflows) |128| « Sur quoi devrais-je d'abord l'essayer ? » | Recommandez une tâche réelle mais contenue, idéalement un bug ou une tâche que la personne a reportée parce qu'elle est fastidieuse plutôt que difficile. | [Flux de travail courants](/docs/fr/common-workflows) |

129| « Comment puis-je lui faire confiance avec mon code ? » | Présentez le mode plan : appuyer sur `Maj+Tab` le bascule, Claude propose exactement ce qu'il a l'intention de changer, et rien n'est modifié jusqu'à ce que l'utilisateur approuve. | [Permissions](/docs/fr/permissions) |129| « Comment puis-je lui faire confiance avec mon code ? » | Présentez le mode plan : appuyer sur `Maj+Tab` permet d'y basculer, et Claude effectue ses recherches et propose des modifications sans toucher à votre code source. | [Permissions](/docs/fr/permissions) |

130| « L'installation en vaut-elle la peine ? » | L'installation prend environ deux minutes, s'exécute dans le terminal et ne nécessite aucune extension IDE. L'exécution de `/init` une fois suffit pour commencer à travailler. | [Quickstart](/docs/fr/quickstart) |130| « L'installation en vaut-elle la peine ? » | L'installation prend environ deux minutes, s'exécute dans le terminal et ne nécessite aucune extension IDE. L'exécution de `/init` une fois suffit pour commencer à travailler. | [Quickstart](/docs/fr/quickstart) |

131| « Il a produit un résultat incorrect. » | Encouragez-les à fournir l'échec à Claude. Coller le message d'erreur ou le test échoué est beaucoup plus efficace que de reformuler la demande originale. | [Flux de travail courants](/docs/fr/common-workflows) |131| « Il a produit un résultat incorrect. » | Encouragez-les à fournir l'échec à Claude. Coller le message d'erreur ou le test échoué est beaucoup plus efficace que de reformuler la demande originale. | [Flux de travail courants](/docs/fr/common-workflows) |

132| « Il ne comprend pas les conventions de notre codebase. » | Suggérez d'exécuter `/init` pour générer un fichier `CLAUDE.md`, puis d'ajouter les conventions de l'équipe, les commandes de test et tous les répertoires qui doivent être évités. | [Memory](/docs/fr/memory) |132| « Il ne comprend pas les conventions de notre codebase. » | Suggérez d'exécuter `/init` pour générer un fichier `CLAUDE.md`, puis d'ajouter les conventions de l'équipe, les commandes de test et tous les répertoires qui doivent être évités. | [Memory](/docs/fr/memory) |


199| Préoccupation | Réponse suggérée | Preuve à offrir |199| Préoccupation | Réponse suggérée | Preuve à offrir |

200| - | - | - |200| - | - | - |

201| « Je suis plus rapide sans cela. » | C'est probablement vrai pour le code que la personne écrit régulièrement. Suggérez de l'essayer sur le travail qu'ils ont tendance à éviter : fichiers hérités, services inconnus ou échafaudage de test, où l'effet de levier est le plus élevé. | Chronométrez une tâche fastidieuse des deux façons et comparez. |201| « Je suis plus rapide sans cela. » | C'est probablement vrai pour le code que la personne écrit régulièrement. Suggérez de l'essayer sur le travail qu'ils ont tendance à éviter : fichiers hérités, services inconnus ou échafaudage de test, où l'effet de levier est le plus élevé. | Chronométrez une tâche fastidieuse des deux façons et comparez. |

202| « Je ne fais pas confiance à l'IA pour toucher le code de production. » | Acceptez qu'aucune modification ne devrait être fusionnée sans être lue. Le mode plan combiné à l'examen diff normal signifie que rien n'est appliqué que l'ingénieur n'a pas inspecté, la même norme que n'importe quelle pull request. | Démontrez le mode plan sur un fichier réel. |202| « Je ne fais pas confiance à l'IA pour toucher le code de production. » | Acceptez qu'aucune modification ne devrait être fusionnée sans être lue. Suggérez le mode plan pour voir d'abord les modifications proposées, puis examinez le diff avec la même exigence que n'importe quelle pull request. | Démontrez le mode plan sur un fichier réel. |

203| « Cela rendra les ingénieurs juniors plus faibles. » | Utilisé correctement, c'est un expliquant efficace. Encouragez les ingénieurs juniors à demander à Claude d'expliquer un fichier et ses sites d'appel avant de lui demander de changer quoi que ce soit. | Exécutez « Expliquez @file et où il est appelé depuis » ensemble. |203| « Cela rendra les ingénieurs juniors plus faibles. » | Utilisé correctement, c'est un expliquant efficace. Encouragez les ingénieurs juniors à demander à Claude d'expliquer un fichier et ses sites d'appel avant de lui demander de changer quoi que ce soit. | Exécutez « Expliquez @file et où il est appelé depuis » ensemble. |

204| « J'ai essayé une fois et cela a hallucié. » | C'est généralement un problème de contexte plutôt qu'un problème de modèle. @-mentionner les fichiers pertinents, exécuter `/init` et fournir la sortie d'erreur réelle résout généralement cela. | Réexécutez leur prompt original avec le contexte `@` approprié. |204| « J'ai essayé une fois et cela a hallucié. » | C'est généralement un problème de contexte plutôt qu'un problème de modèle. @-mentionner les fichiers pertinents, exécuter `/init` et fournir la sortie d'erreur réelle résout généralement cela. | Réexécutez leur prompt original avec le contexte `@` approprié. |

205| « Nous n'avons pas le temps d'apprendre un autre outil. » | Claude Code est une commande de terminal plutôt qu'une plateforme. S'il ne retourne pas de valeur dans la première session, il est raisonnable de le mettre de côté. | Une installation de deux minutes suivie d'un bug réel. |205| « Nous n'avons pas le temps d'apprendre un autre outil. » | Claude Code est une commande de terminal plutôt qu'une plateforme. S'il ne retourne pas de valeur dans la première session, il est raisonnable de le mettre de côté. | Une installation de deux minutes suivie d'un bug réel. |


213| Technique | Comment l'appliquer |213| Technique | Comment l'appliquer |

214| - | - |214| - | - |

215| Fournissez le bon contexte | Utilisez les références `@file` ou `@directory/`, ou collez directement la sortie d'erreur ou de journal. Fournir un contexte pertinent est plus efficace qu'une formulation élaborée. |215| Fournissez le bon contexte | Utilisez les références `@file` ou `@directory/`, ou collez directement la sortie d'erreur ou de journal. Fournir un contexte pertinent est plus efficace qu'une formulation élaborée. |

216| Examinez le plan avant la modification | Appuyez sur `Maj+Tab` pour entrer en mode plan. Claude décrira les modifications prévues pour votre approbation avant de les exécuter. |216| Examinez le plan avant la modification | Appuyez sur `Shift+Tab` pour entrer en mode plan. Claude effectue ses recherches et propose des modifications sans modifier votre code source. |

217| Enseignez-lui votre référentiel | Exécutez `/init` pour générer un fichier `CLAUDE.md`, puis ajoutez vos conventions, commandes de test et tous les répertoires qui ne doivent pas être modifiés. Voir [Memory](/docs/fr/memory). |217| Enseignez-lui votre référentiel | Exécutez `/init` pour générer un fichier `CLAUDE.md`, puis ajoutez vos conventions, commandes de test et tous les répertoires qui ne doivent pas être modifiés. Voir [Memory](/docs/fr/memory). |

218| Réutilisez un flux de travail | Enregistrez un fichier `SKILL.md` dans `.claude/skills/<name>/` pour créer une compétence `/name` que toute l'équipe peut utiliser. Voir [Skills](/docs/fr/skills). |218| Réutilisez un flux de travail | Enregistrez un fichier `SKILL.md` dans `.claude/skills/<name>/` pour créer une compétence `/name` que toute l'équipe peut utiliser. Voir [Skills](/docs/fr/skills). |

219| Restez informé pendant les tâches longues | Configurez un hook Stop pour recevoir une notification de bureau quand une tâche longue se termine. Voir [Hooks](/docs/fr/hooks-guide). |219| Restez informé pendant les tâches longues | Configurez un hook Stop pour recevoir une notification de bureau quand une tâche longue se termine. Voir [Hooks](/docs/fr/hooks-guide). |

channels.md +1 −1

Details

349 349 

350Si vous définissez un tableau vide, vous bloquez tous les plugins de canal de la liste blanche, mais `--dangerously-load-development-channels` peut toujours le contourner pour les tests locaux. Pour bloquer complètement les canaux, y compris l'indicateur de développement, laissez plutôt `channelsEnabled` non défini.350Si vous définissez un tableau vide, vous bloquez tous les plugins de canal de la liste blanche, mais `--dangerously-load-development-channels` peut toujours le contourner pour les tests locaux. Pour bloquer complètement les canaux, y compris l'indicateur de développement, laissez plutôt `channelsEnabled` non défini.

351 351 

352Ce paramètre nécessite `channelsEnabled: true`. Si un utilisateur transmet un plugin à `--channels` qui ne figure pas sur votre liste, Claude Code démarre normalement mais le canal ne s'enregistre pas, et l'avis de démarrage explique que le plugin ne figure pas sur la liste approuvée de l'organisation. Si vous définissez `MCP_PROTOCOL_NEGOTIATION` sur `auto` sur le runtime du client MCP v2, un canal peut également ne pas s'enregistrer car Claude Code [n'enregistre pas un serveur de canal qui négocie la révision de protocole 2026-07-28](/docs/fr/mcp#push-messages-with-channels).352Ce paramètre nécessite `channelsEnabled: true`. Si un utilisateur transmet un plugin à `--channels` qui ne figure pas sur votre liste, Claude Code démarre normalement mais le canal ne s'enregistre pas, et l'avis de démarrage explique que le plugin ne figure pas sur la liste approuvée de l'organisation. Sur le runtime du client MCP v2, un canal peut également ne pas s'enregistrer car Claude Code [n'enregistre pas un serveur de canal qui négocie la révision de protocole 2026-07-28](/docs/fr/mcp#push-messages-with-channels).

353 353 

354<h2 id="research-preview">354<h2 id="research-preview">

355 Aperçu de recherche355 Aperçu de recherche

chrome.md +1 −1

Details

129Dans une session VS Code, le fait que Claude Code vous demande votre accord avant une action du navigateur dépend de la façon dont la session s'est connectée à votre navigateur :129Dans une session VS Code, le fait que Claude Code vous demande votre accord avant une action du navigateur dépend de la façon dont la session s'est connectée à votre navigateur :

130 130 

131* **Vous avez tapé `@browser`** : l'extension approuve chaque action du navigateur pour laquelle Claude Code vous aurait autrement sollicité.131* **Vous avez tapé `@browser`** : l'extension approuve chaque action du navigateur pour laquelle Claude Code vous aurait autrement sollicité.

132* **Le paramètre [Enabled by default](#enable-chrome-by-default) l'a connectée au démarrage** : Claude Code vous demande votre accord avant les actions du navigateur dans les modes de permission Manual, Edit automatically, Auto et Bypass permissions, jusqu'à ce que vous tapiez `@browser` dans cette session.132* **Le paramètre [Enabled by default](#enable-chrome-by-default) l'a connectée au démarrage** : Claude Code vous demande votre accord avant les actions du navigateur sur un site que vous n'avez pas autorisé, dans les modes de permission Manual, Edit automatically, Auto et Bypass permissions, jusqu'à ce que vous tapiez `@browser` dans cette session.

133 133 

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

135 Outils du navigateur en mode plan135 Outils du navigateur en mode plan

Details

79| Champ | Obligatoire | Description |79| Champ | Obligatoire | Description |

80| - | - | - |80| - | - | - |

81| `issuer` | Oui | Base de découverte OIDC. Doit servir la découverte à `/.well-known/openid-configuration`. Utilisez HTTPS en production ; la passerelle accepte un émetteur `http://`. Un émetteur loopback tel que `http://localhost:8081` est rejeté par la [protection SSRF](/docs/fr/claude-apps-gateway-deploy#threat-model-summary) sauf si `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` est défini dans l'environnement de la passerelle. |81| `issuer` | Oui | Base de découverte OIDC. Doit servir la découverte à `/.well-known/openid-configuration`. Utilisez HTTPS en production ; la passerelle accepte un émetteur `http://`. Un émetteur loopback tel que `http://localhost:8081` est rejeté par la [protection SSRF](/docs/fr/claude-apps-gateway-deploy#threat-model-summary) sauf si `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` est défini dans l'environnement de la passerelle. |

82| `client_id` / `client_secret` | Oui | À partir de votre enregistrement de client OAuth |82| `client_id` | Oui | À partir de votre enregistrement de client OAuth |

83| `client_secret` | Sauf si `token_endpoint_auth_method` est `private_key_jwt` | À partir de votre enregistrement de client OAuth. Omettez-le lorsque vous utilisez l'[authentification client par certificat](#certificate-client-authentication). |

83| `allowed_email_domains` | Non | Rejeter les id\_tokens dont la revendication `email` n'est pas dans l'un de ces domaines, insensible à la casse. Défense en profondeur contre les erreurs de configuration du fournisseur d'identité multi-locataire. Indépendamment de ce paramètre, un id\_token dont la revendication `email_verified` est explicitement `false` est toujours rejeté. |84| `allowed_email_domains` | Non | Rejeter les id\_tokens dont la revendication `email` n'est pas dans l'un de ces domaines, insensible à la casse. Défense en profondeur contre les erreurs de configuration du fournisseur d'identité multi-locataire. Indépendamment de ce paramètre, un id\_token dont la revendication `email_verified` est explicitement `false` est toujours rejeté. |

84| `allowed_groups` | Non | Restreindre la connexion aux membres de ces groupes du fournisseur d'identité, comparés à `groups_claim`. Un utilisateur dans un domaine d'e-mail autorisé mais dans aucun de ces groupes est rejeté. Nécessite que le fournisseur d'identité émette la revendication de groupes. La correspondance est une comparaison de chaîne exacte et sensible à la casse par rapport aux valeurs de cette revendication, et la passerelle n'étend pas les groupes imbriqués : pour admettre les membres d'un sous-groupe, listez le sous-groupe ici ou configurez le fournisseur d'identité pour émettre l'appartenance aplatie. |85| `allowed_groups` | Non | Restreindre la connexion aux membres de ces groupes du fournisseur d'identité, comparés à `groups_claim`. Un utilisateur dans un domaine d'e-mail autorisé mais dans aucun de ces groupes est rejeté. Nécessite que le fournisseur d'identité émette la revendication de groupes. La correspondance est une comparaison de chaîne exacte et sensible à la casse par rapport aux valeurs de cette revendication, et la passerelle n'étend pas les groupes imbriqués : pour admettre les membres d'un sous-groupe, listez le sous-groupe ici ou configurez le fournisseur d'identité pour émettre l'appartenance aplatie. |

85| `groups_claim` | Non | Quelle revendication id\_token porte l'appartenance au groupe. Par défaut `groups`. Microsoft Entra émet les rôles d'application sous `roles`. Accepte une clé plate ou un pointeur JSON RFC 6901 tel que `/resource_access/gateway/roles` pour les revendications imbriquées. |86| `groups_claim` | Non | Quelle revendication id\_token porte l'appartenance au groupe. Par défaut `groups`. Microsoft Entra émet les rôles d'application sous `roles`. Accepte une clé plate ou un pointeur JSON RFC 6901 tel que `/resource_access/gateway/roles` pour les revendications imbriquées. |


91| `userinfo_fallback` | Non | Lorsque le id\_token omet l'e-mail ou les groupes, les récupérer à partir de `/userinfo`. Nécessaire pour les jetons d'accès légers Keycloak, le serveur org Okta, et les jetons minimaux ADFS. Le id\_token reste faisant autorité ; userinfo remplit uniquement les lacunes. Par défaut `false`. |92| `userinfo_fallback` | Non | Lorsque le id\_token omet l'e-mail ou les groupes, les récupérer à partir de `/userinfo`. Nécessaire pour les jetons d'accès légers Keycloak, le serveur org Okta, et les jetons minimaux ADFS. Le id\_token reste faisant autorité ; userinfo remplit uniquement les lacunes. Par défaut `false`. |

92| `use_pkce` | Non | Envoyer un défi PKCE (S256) sur la demande d'autorisation. Par défaut `true`. Définissez `false` uniquement si votre fournisseur d'identité rejette PKCE pour ce client confidentiel. |93| `use_pkce` | Non | Envoyer un défi PKCE (S256) sur la demande d'autorisation. Par défaut `true`. Définissez `false` uniquement si votre fournisseur d'identité rejette PKCE pour ce client confidentiel. |

93| `clock_skew_seconds` | Non | Tolérer la dérive d'horloge lors de la validation des revendications de temps id\_token. Par défaut `0`, ce qui est strict. Augmentez si vous voyez des erreurs « token expired / not yet valid » juste après la connexion en raison d'une dérive d'horloge hôte/fournisseur d'identité. |94| `clock_skew_seconds` | Non | Tolérer la dérive d'horloge lors de la validation des revendications de temps id\_token. Par défaut `0`, ce qui est strict. Augmentez si vous voyez des erreurs « token expired / not yet valid » juste après la connexion en raison d'une dérive d'horloge hôte/fournisseur d'identité. |

94| `token_endpoint_auth_method` | Non | Remplacer la méthode d'authentification du point de terminaison de jeton. Accepte `client_secret_basic` ou `client_secret_post`. Négocié automatiquement par défaut. |95| `token_endpoint_auth_method` | Non | Comment la passerelle s'authentifie auprès de l'endpoint de jeton du fournisseur d'identité : `client_secret_basic`, `client_secret_post`, ou `private_key_jwt` pour l'[authentification client par certificat](#certificate-client-authentication). Par défaut, la passerelle choisit l'une des deux méthodes `client_secret` en fonction de ce que le fournisseur d'identité annonce. |

96| `client_assertion` | Avec `private_key_jwt` | Un bloc avec `private_key_pem` et `certificate_pem` : la clé privée et le certificat pour l'[authentification client par certificat](#certificate-client-authentication). Nécessite v2.1.284 ou ultérieur. |

95| `id_token_signed_response_alg` | Non | Algorithme de signature id\_token attendu. Par défaut `RS256`. Définissez pour les fournisseurs d'identité qui signent avec ES256, PS256, ou EdDSA. |97| `id_token_signed_response_alg` | Non | Algorithme de signature id\_token attendu. Par défaut `RS256`. Définissez pour les fournisseurs d'identité qui signent avec ES256, PS256, ou EdDSA. |

96| `additional_authorized_parties` | Non | Valeurs `azp` supplémentaires à accepter au-delà de `client_id`, pour les flux de courtier Keycloak et d'échange de jetons |98| `additional_authorized_parties` | Non | Valeurs `azp` supplémentaires à accepter au-delà de `client_id`, pour les flux de courtier Keycloak et d'échange de jetons |

97| `discovery_url` | Non | Récupérer le document de découverte à partir de cette URL au lieu de le dériver de `issuer`, pour les fournisseurs d'identité derrière un proxy qui réécrit l'hôte émetteur. Le chemin doit contenir `/.well-known/`. |99| `discovery_url` | Non | Récupérer le document de découverte à partir de cette URL au lieu de le dériver de `issuer`, pour les fournisseurs d'identité derrière un proxy qui réécrit l'hôte émetteur. Le chemin doit contenir `/.well-known/`. |


99| `form_action_origins` | Non | Origines supplémentaires pour la directive `Content-Security-Policy: form-action` de la page `/device`. La passerelle autorise déjà `'self'` et l'origine `authorization_endpoint` découverte, mais Chrome applique `form-action` à toute la chaîne de redirection. Si votre fournisseur d'identité redirige via un deuxième hôte, tel qu'Azure AD fédéré à ADFS, Okta hub-spoke, ou un intercepteur SSO d'entreprise, listez chaque origine par laquelle la demande d'autorisation peut rediriger. |101| `form_action_origins` | Non | Origines supplémentaires pour la directive `Content-Security-Policy: form-action` de la page `/device`. La passerelle autorise déjà `'self'` et l'origine `authorization_endpoint` découverte, mais Chrome applique `form-action` à toute la chaîne de redirection. Si votre fournisseur d'identité redirige via un deuxième hôte, tel qu'Azure AD fédéré à ADFS, Okta hub-spoke, ou un intercepteur SSO d'entreprise, listez chaque origine par laquelle la demande d'autorisation peut rediriger. |

100| `ca_cert_pem` | Non | Le certificat CA codé en PEM lui-même, pas un chemin vers un fichier. Il remplace le magasin de confiance du système pour les demandes du fournisseur d'identité uniquement. Pour charger un fichier monté, écrivez `${file:/etc/gateway/idp-ca.pem}`. Utilisez pour Keycloak ou Dex derrière une PKI d'entreprise. |102| `ca_cert_pem` | Non | Le certificat CA codé en PEM lui-même, pas un chemin vers un fichier. Il remplace le magasin de confiance du système pour les demandes du fournisseur d'identité uniquement. Pour charger un fichier monté, écrivez `${file:/etc/gateway/idp-ca.pem}`. Utilisez pour Keycloak ou Dex derrière une PKI d'entreprise. |

101 103 

104<h4 id="certificate-client-authentication">

105 Authentification client par certificat

106</h4>

107 

108Si votre fournisseur d'identité authentifie les clients OAuth avec un certificat au lieu d'un secret client, comme le fait Microsoft Entra avec les identifiants de certificat, définissez `token_endpoint_auth_method: private_key_jwt`. Nécessite Claude Code v2.1.284 ou ultérieur sur le serveur de la passerelle.

109 

110Avec cette configuration, la passerelle n'envoie aucun secret. Elle s'authentifie auprès de l'endpoint de jeton du fournisseur d'identité avec un JWT de courte durée signé avec la clé privée du certificat lorsqu'un développeur se connecte et chaque fois que la passerelle actualise sa session. Le JWT est signé avec RS256 et identifie le certificat par les en-têtes d'empreinte `x5t` et `x5t#S256` plutôt que par un `kid`. Votre fournisseur d'identité doit pouvoir trouver le certificat enregistré par son empreinte.

111 

112<Steps>

113 <Step title="Créer la clé et le certificat">

114 Créez une clé privée RSA non chiffrée d'au moins 2048 bits, au format PEM PKCS#8 ou PKCS#1, et un certificat pour celle-ci. La passerelle refuse de démarrer avec toute clé qui ne remplit pas ces conditions. Cette commande `openssl` crée une telle clé avec un certificat auto-signé valide pendant un an :

115 

116 ```bash theme={null}

117 openssl req -x509 -newkey rsa:2048 -nodes -keyout idp-client.key -out idp-client.crt -days 365 -subj "/CN=claude-gateway"

118 ```

119 

120 Elle écrit `idp-client.key` et `idp-client.crt` dans le répertoire courant. Copiez ou montez les deux fichiers à un emplacement où la passerelle peut les lire. L'exemple de l'étape 3 utilise `/etc/gateway/`.

121 </Step>

122 

123 <Step title="Téléverser le certificat vers le fournisseur d'identité">

124 Téléversez le certificat, et non la clé privée, dans l'enregistrement d'application de la passerelle auprès du fournisseur d'identité.

125 </Step>

126 

127 <Step title="Ajouter la clé et le certificat à gateway.yaml">

128 Fournissez à la passerelle la clé privée et le certificat dans un bloc `client_assertion`. Omettez `client_secret`, car la passerelle refuse de démarrer lorsqu'un secret est défini en même temps que `private_key_jwt`. Ce bloc `oidc` authentifie la passerelle auprès d'un locataire Microsoft Entra avec un certificat :

129 

130 ```yaml theme={null}

131 oidc:

132 issuer: https://login.microsoftonline.com/<tenant-id>/v2.0

133 client_id: <application-id>

134 token_endpoint_auth_method: private_key_jwt

135 client_assertion:

136 private_key_pem: ${file:/etc/gateway/idp-client.key}

137 certificate_pem: ${file:/etc/gateway/idp-client.crt}

138 ```

139 

140 Les deux valeurs sont le contenu PEM, et non des chemins de fichiers, donc chargez les fichiers montés avec `${file:/path}` comme le fait l'exemple. La passerelle refuse de démarrer sauf si `certificate_pem` est un certificat PEM unique, sans le reste de sa chaîne, dont la clé publique correspond à `private_key_pem`.

141 </Step>

142 

143 <Step title="Redémarrer la passerelle et vérifier le log de démarrage">

144 Redémarrez la passerelle et repérez cette ligne dans le log de démarrage :

145 

146 ```text theme={null}

147 [gateway] 2026-10-01T23:07:40.512Z info oidc: client authentication private_key_jwt; certificate CN=claude-gateway, SHA-1 thumbprint DE92821854EE8BAA1D98C758FAA04AABE80B9F57, expires Oct 1 23:07:31 2027 GMT

148 ```

149 

150 Comparez l'empreinte SHA-1 avec celle que le fournisseur d'identité affiche pour le certificat que vous avez téléversé. Si le certificat a expiré ou n'est pas encore valide, la passerelle démarre quand même mais journalise un avertissement indiquant que les connexions et les actualisations échoueront jusqu'à ce que vous le remplaciez. Pour confirmer que le fournisseur d'identité accepte le certificat, demandez à un développeur de se connecter via la passerelle.

151 </Step>

152</Steps>

153 

154<h4 id="rotate-the-client-certificate">

155 Faire tourner le certificat client

156</h4>

157 

158La passerelle lit la clé et le certificat une seule fois au démarrage, donc un fichier modifié ne prend effet qu'après un redémarrage. Effectuez la rotation dans cet ordre afin qu'aucune requête de jeton ne présente un certificat dont le fournisseur d'identité ne dispose pas :

159 

1601. Téléversez le nouveau certificat vers le fournisseur d'identité à côté de l'ancien.

1612. Remplacez les fichiers de clé et de certificat que `gateway.yaml` charge, puis redémarrez la passerelle.

1623. Supprimez l'ancien certificat du fournisseur d'identité.

163 

102<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

103 Demandes du fournisseur d'identité via un proxy avant165 Demandes du fournisseur d'identité via un proxy avant

104</h4>166</h4>


1224| - | - | - | - |1286| - | - | - | - |

1225| `access_control` | `allow_cidrs` / `deny_cidrs` | vide | Autorisation/refus des IP entrantes par adresse client, après résolution de `trusted_proxies`. `deny_cidrs` est vérifié en premier ; un client auquel il correspond est rejeté même si `allow_cidrs` correspond également. Si `allow_cidrs` n'est pas vide, la passerelle refuse par défaut. `/healthz` et `/readyz` sont exemptés de `allow_cidrs`. Lorsqu'un proxy de confiance envoie une entrée `X-Forwarded-For` qui n'est pas une adresse IP, le client réel est inconnu et la passerelle journalise une fois un avertissement indiquant ce qu'il faut vérifier. Lorsque l'une ou l'autre liste s'applique à la requête, elle la refuse avec `403` et la raison d'audit `xff_unparseable`. Lorsqu'aucune ne s'applique, elle sert la requête et utilise l'adresse propre du proxy comme IP client pour les limites de débit par IP et l'audit. |1287| `access_control` | `allow_cidrs` / `deny_cidrs` | vide | Autorisation/refus des IP entrantes par adresse client, après résolution de `trusted_proxies`. `deny_cidrs` est vérifié en premier ; un client auquel il correspond est rejeté même si `allow_cidrs` correspond également. Si `allow_cidrs` n'est pas vide, la passerelle refuse par défaut. `/healthz` et `/readyz` sont exemptés de `allow_cidrs`. Lorsqu'un proxy de confiance envoie une entrée `X-Forwarded-For` qui n'est pas une adresse IP, le client réel est inconnu et la passerelle journalise une fois un avertissement indiquant ce qu'il faut vérifier. Lorsque l'une ou l'autre liste s'applique à la requête, elle la refuse avec `403` et la raison d'audit `xff_unparseable`. Lorsqu'aucune ne s'applique, elle sert la requête et utilise l'adresse propre du proxy comme IP client pour les limites de débit par IP et l'audit. |

1226| `limits` | `max_request_bytes` | 32 MiB | Taille max du corps de requête entrante ; les requêtes trop volumineuses obtiennent `413` avant que le corps ne soit mis en mémoire tampon. Augmentez-la pour les requêtes contenant des fichiers ou images volumineux. |1288| `limits` | `max_request_bytes` | 32 MiB | Taille max du corps de requête entrante ; les requêtes trop volumineuses obtiennent `413` avant que le corps ne soit mis en mémoire tampon. Augmentez-la pour les requêtes contenant des fichiers ou images volumineux. |

1227| `limits` | `max_request_header_bytes` | non défini | Lorsqu'il est défini, les en-têtes trop volumineux retournent `431` |1289| `limits` | `max_request_header_bytes` | non défini | Abaisse la limite de 256 KiB de la passerelle sur la taille totale des en-têtes d'une requête. Une requête dépassant la limite retourne `431`, et une valeur supérieure à 256 KiB n'a aucun effet. Si des développeurs obtiennent `431` après s'être connectés, consultez [En-têtes de requête trop volumineux après la connexion](/docs/fr/claude-apps-gateway-deploy#request-headers-too-large-after-sign-in). |

1228| `limits` | `max_url_length` | non défini | Lorsqu'il est défini, une URL trop longue retourne `414` |1290| `limits` | `max_url_length` | non défini | Lorsqu'il est défini, une URL trop longue retourne `414` |

1229| `timeouts` | `upstream_ttfb_ms` | 120000 | Attente max des en-têtes de réponse de l'upstream (temps jusqu'au premier octet). Le corps de la réponse est ensuite diffusé sans limite de durée. S'applique au chemin direct vers l'upstream Anthropic ; sur tous les autres fournisseurs, la passerelle attend jusqu'à une heure que la réponse commence. |1291| `timeouts` | `upstream_ttfb_ms` | 120000 | Attente max des en-têtes de réponse de l'upstream (temps jusqu'au premier octet). Le corps de la réponse est ensuite diffusé sans limite de durée. S'applique au chemin direct vers l'upstream Anthropic ; sur tous les autres fournisseurs, la passerelle attend jusqu'à une heure que la réponse commence. |

1230| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Limite de débit par IP sur l'endpoint d'autorisation d'appareil non authentifié. Augmentez-la pour une grande organisation derrière une IP de sortie partagée ou un NAT. [Déploiements à grande échelle](/docs/fr/claude-apps-gateway-deploy#large-rollouts) montre comment la dimensionner. Ces limites s'appliquent uniquement au flux de connexion par octroi d'appareil, pas à l'inférence `/v1/messages`. Consultez [Résistance à la force brute du code utilisateur](/docs/fr/claude-apps-gateway-deploy#user-code-brute-force-resistance). |1292| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Limite de débit par IP sur l'endpoint d'autorisation d'appareil non authentifié. Augmentez-la pour une grande organisation derrière une IP de sortie partagée ou un NAT. [Déploiements à grande échelle](/docs/fr/claude-apps-gateway-deploy#large-rollouts) montre comment la dimensionner. Ces limites s'appliquent uniquement au flux de connexion par octroi d'appareil, pas à l'inférence `/v1/messages`. Consultez [Résistance à la force brute du code utilisateur](/docs/fr/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

Details

25 Configuration du fournisseur d'identité25 Configuration du fournisseur d'identité

26</h2>26</h2>

27 27 

28Enregistrez une application web OAuth/OpenID Connect (OIDC) confidentielle auprès d'un seul URI de redirection, `https://<gateway>/oauth/callback`, et assignez-la aux utilisateurs ou groupes qui doivent avoir accès à la passerelle.28Enregistrez une application web OAuth/OpenID Connect (OIDC) confidentielle auprès d'un seul URI de redirection, `https://<gateway>/oauth/callback`, et assignez-la aux utilisateurs ou groupes qui doivent avoir accès à la passerelle. La passerelle s'authentifie auprès de l'IdP avec le secret client de l'enregistrement, ou avec un certificat que vous téléversez dans l'enregistrement si votre IdP utilise plutôt des [identifiants par certificat](/docs/fr/claude-apps-gateway-config#certificate-client-authentication).

29 29 

30Tout IdP conforme à OIDC fonctionne : Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate et autres. L'IdP doit répondre à trois exigences :30Tout IdP conforme à OIDC fonctionne : Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate et autres. L'IdP doit répondre à trois exigences :

31 31 


370 Dépannage370 Dépannage

371</h2>371</h2>

372 372 

373Pour les questions et les commentaires, utilisez le [support Claude Code](https://support.claude.com/en/collections/14445694-claude-code), ou ouvrez un problème sur le [référentiel GitHub Claude Code](https://github.com/anthropics/claude-code/issues). Lors de la signalisation d'un problème, incluez :373Pour les questions et les commentaires, utilisez le [support Claude Code](https://support.claude.com/en/collections/14445694-claude-code), ou ouvrez un problème sur le [dépôt GitHub Claude Code](https://github.com/anthropics/claude-code/issues). Lors de la signalisation d'un problème, incluez :

374 374 

375* **Problème de passerelle** : la sortie d'erreur de la passerelle pour la fenêtre pertinente, votre `gateway.yaml` avec les secrets masqués, la version de la passerelle, affichée sur la page d'accueil à `/` et dans l'en-tête de réponse `x-cc-gateway-version` sur `/managed/settings`, et ce qui a changé récemment375* **Problème de passerelle** : la sortie d'erreur de la passerelle pour la fenêtre pertinente, votre `gateway.yaml` avec les secrets masqués, la version de la passerelle, affichée sur la page d'accueil à `/` et dans l'en-tête de réponse `x-cc-gateway-version` sur `/managed/settings`, et ce qui a changé récemment

376* **Problème de connexion** : le développeur exécute `claude --debug-file ./claude-debug.txt`, reproduit le problème, et envoie ce fichier plus le journal d'audit de la passerelle pour la même fenêtre376* **Problème de connexion** : le développeur exécute `claude --debug-file ./claude-debug.txt`, reproduit le problème, et envoie ce fichier plus le journal d'audit de la passerelle pour la même fenêtre


387| Le démarrage se termine avec `Administrator policy requires a Cloud gateway sign-in on this machine` | L'environnement du développeur définit `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, ses paramètres configurent un [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper), ou une clé API d'une connexion Claude Console antérieure est toujours enregistrée | Demandez au développeur d'effacer chacun de ces éléments : désactiver la variable, supprimer l'entrée `apiKeyHelper`, ou exécuter `claude auth logout` pour supprimer la clé enregistrée. Une session qui sélectionne un fournisseur cloud avec `CLAUDE_CODE_USE_*` démarre ensuite sans connexion ; pour toute autre session, demandez-lui de démarrer `claude` et de se connecter avec `/login`. Voir aussi [La politique de l'administrateur nécessite une connexion à la passerelle Cloud](/docs/fr/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |387| Le démarrage se termine avec `Administrator policy requires a Cloud gateway sign-in on this machine` | L'environnement du développeur définit `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, ses paramètres configurent un [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper), ou une clé API d'une connexion Claude Console antérieure est toujours enregistrée | Demandez au développeur d'effacer chacun de ces éléments : désactiver la variable, supprimer l'entrée `apiKeyHelper`, ou exécuter `claude auth logout` pour supprimer la clé enregistrée. Une session qui sélectionne un fournisseur cloud avec `CLAUDE_CODE_USE_*` démarre ensuite sans connexion ; pour toute autre session, demandez-lui de démarrer `claude` et de se connecter avec `/login`. Voir aussi [La politique de l'administrateur nécessite une connexion à la passerelle Cloud](/docs/fr/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

388| Le démarrage ou `/login` signale `Claude Code may not be enabled for your organization` après un 403 lors du chargement des paramètres gérés | La passerelle, ou quelque chose devant elle, a répondu à la demande `/managed/settings` avec 403. La route de paramètres propre de la passerelle ne répond jamais 403. Le statut provient des vérifications IP [`access_control`](/docs/fr/claude-apps-gateway-config#http-tuning) ou d'un proxy ou WAF devant la passerelle. Le journal d'audit enregistre un refus de vérification IP sous la forme `access.denied` avec la raison. Le développeur reste connecté. | Vérifiez le journal d'audit pour `access.denied` au moment de l'échec et corrigez les listes `access_control` ou le front-end, puis demandez au développeur de démarrer `claude` à nouveau |388| Le démarrage ou `/login` signale `Claude Code may not be enabled for your organization` après un 403 lors du chargement des paramètres gérés | La passerelle, ou quelque chose devant elle, a répondu à la demande `/managed/settings` avec 403. La route de paramètres propre de la passerelle ne répond jamais 403. Le statut provient des vérifications IP [`access_control`](/docs/fr/claude-apps-gateway-config#http-tuning) ou d'un proxy ou WAF devant la passerelle. Le journal d'audit enregistre un refus de vérification IP sous la forme `access.denied` avec la raison. Le développeur reste connecté. | Vérifiez le journal d'audit pour `access.denied` au moment de l'échec et corrigez les listes `access_control` ou le front-end, puis demandez au développeur de démarrer `claude` à nouveau |

389| CLI `/login` : `The gateway is limiting sign-in attempts right now`, ou `Request failed with status code 429` sur les versions antérieures. La page `/device` peut afficher `Too many attempts` aux développeurs qui n'ont pas essayé auparavant | La limite de débit de connexion par IP a été atteinte. Soit `listen.trusted_proxies` ne couvre pas l'équilibreur de charge, donc chaque développeur partage son adresse, soit de nombreux développeurs partagent une adresse de sortie NAT ou VPN. Les événements d'audit avec `result: rate_limited` affichent la même une ou quelques valeurs `client_ip`. | Définissez d'abord `listen.trusted_proxies` sur les plages sources de l'équilibreur de charge, puis augmentez `rate_limits` si les développeurs partagent toujours des adresses. Voir [Déploiements à grande échelle](#large-rollouts). |389| CLI `/login` : `The gateway is limiting sign-in attempts right now`, ou `Request failed with status code 429` sur les versions antérieures. La page `/device` peut afficher `Too many attempts` aux développeurs qui n'ont pas essayé auparavant | La limite de débit de connexion par IP a été atteinte. Soit `listen.trusted_proxies` ne couvre pas l'équilibreur de charge, donc chaque développeur partage son adresse, soit de nombreux développeurs partagent une adresse de sortie NAT ou VPN. Les événements d'audit avec `result: rate_limited` affichent la même une ou quelques valeurs `client_ip`. | Définissez d'abord `listen.trusted_proxies` sur les plages sources de l'équilibreur de charge, puis augmentez `rate_limits` si les développeurs partagent toujours des adresses. Voir [Déploiements à grande échelle](#large-rollouts). |

390| CLI `/login` : `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Le nom d'hôte de la passerelle se résout en au moins une adresse IP publique. Claude Code vérifie chaque adresse résolue et exige que chacune soit privée. Une cause courante est un nom double pile où une famille se résout en une adresse publique, y compris les équilibreurs de charge double pile internes AWS, qui renvoient des adresses AAAA de plage publique. | Faites en sorte que le nom de la passerelle se résout uniquement en adresses privées sur les machines des développeurs. Pour un nom double pile, supprimez l'enregistrement de plage publique ou servez un nom DNS interne uniquement. Voir la [condition préalable du réseau privé](/docs/fr/claude-apps-gateway#prerequisites). Si l'adresse est un espace public que votre organisation possède et utilise en interne, [déclarez ce bloc](/docs/fr/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) à la place. |390| CLI `/login` : `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Le nom d'hôte de la passerelle se résout en au moins une adresse IP publique. Claude Code vérifie chaque adresse résolue et exige que chacune soit privée. Une cause courante est un nom double pile où une famille se résout en une adresse publique, y compris les équilibreurs de charge double pile internes AWS, qui renvoient des adresses AAAA de plage publique. | Faites en sorte que le nom de la passerelle se résout uniquement en adresses privées sur les machines des développeurs. Pour un nom double pile, supprimez l'enregistrement de plage publique ou servez un nom DNS interne uniquement. Voir le [prérequis du réseau privé](/docs/fr/claude-apps-gateway#prerequisites). Si l'adresse est un espace public que votre organisation possède et utilise en interne, [déclarez ce bloc](/docs/fr/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) à la place. |

391| CLI `/login` : `Gateway login would go through proxy <proxy>, which is not on a private network` | Un `HTTPS_PROXY` ou `HTTP_PROXY` s'applique à l'hôte de la passerelle et le nom d'hôte du proxy se résout en une adresse publique. Un proxy dont l'hôte se résout uniquement en adresses privées est autorisé et ne déclenche pas cette erreur | Ajoutez l'hôte de la passerelle à `NO_PROXY` sur la machine du développeur pour que la connexion soit directe, ou utilisez un proxy dont le nom d'hôte se résout en adresses privées. Le message nomme l'entrée `NO_PROXY` exacte à ajouter |391| CLI `/login` : `Gateway login would go through proxy <proxy>, which is not on a private network` | Un `HTTPS_PROXY` ou `HTTP_PROXY` s'applique à l'hôte de la passerelle et le nom d'hôte du proxy se résout en une adresse publique. Un proxy dont l'hôte se résout uniquement en adresses privées est autorisé et ne déclenche pas cette erreur | Ajoutez l'hôte de la passerelle à `NO_PROXY` sur la machine du développeur pour que la connexion soit directe, ou utilisez un proxy dont le nom d'hôte se résout en adresses privées. Le message nomme l'entrée `NO_PROXY` exacte à ajouter |

392| CLI `/login` : `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | La passerelle se trouve sur un bloc déclaré dans [`gatewayInternalNetworks`](/docs/fr/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), et la machine du développeur l'a atteinte à partir d'une adresse en dehors de ce bloc : une adresse de pool VPN, un segment NAT de conteneur ou WSL2, ou un réseau qui n'est pas le vôtre | Demandez au développeur d'exécuter `/login` à partir du système d'exploitation hôte sur votre réseau. Si l'adresse affichée est également votre propre espace public, remplacez l'entrée de la passerelle par un bloc qui couvre les deux, jusqu'à `/8` ; une deuxième entrée chevauchante est refusée |392| CLI `/login` : `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | La passerelle se trouve sur un bloc déclaré dans [`gatewayInternalNetworks`](/docs/fr/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), et la machine du développeur l'a atteinte à partir d'une adresse en dehors de ce bloc : une adresse de pool VPN, un segment NAT de conteneur ou WSL2, ou un réseau qui n'est pas le vôtre | Demandez au développeur d'exécuter `/login` à partir du système d'exploitation hôte sur votre réseau. Si l'adresse affichée est également votre propre espace public, remplacez l'entrée de la passerelle par un bloc qui couvre les deux, jusqu'à `/8` ; une deuxième entrée chevauchante est refusée |

393| CLI `/login` : `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | Le nom de la passerelle se résout en une adresse en dehors du bloc déclaré dans [`gatewayInternalNetworks`](/docs/fr/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) : un deuxième site, ou un enregistrement IPv6 sur un nom double pile. Sous un bloc déclaré, chaque enregistrement doit être à l'intérieur de ce bloc IPv4, adresses privées et IPv6 incluses | Publiez uniquement les enregistrements à l'intérieur du bloc pour le nom de la passerelle sur les machines des développeurs, ou servez un nom interne uniquement |393| CLI `/login` : `Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | Le nom de la passerelle se résout en une adresse en dehors du bloc déclaré dans [`gatewayInternalNetworks`](/docs/fr/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) : un deuxième site, ou un enregistrement IPv6 sur un nom double pile. Sous un bloc déclaré, chaque enregistrement doit être à l'intérieur de ce bloc IPv4, adresses privées et IPv6 incluses | Publiez uniquement les enregistrements à l'intérieur du bloc pour le nom de la passerelle sur les machines des développeurs, ou servez un nom interne uniquement |


397| CLI `/login` : `Could not resolve gateway host <host>` | La machine ne peut pas résoudre le nom DNS interne de la passerelle, généralement parce qu'elle n'est pas sur le réseau d'entreprise | Demandez au développeur de se connecter à votre réseau ou VPN, puis de réessayer `/login` |397| CLI `/login` : `Could not resolve gateway host <host>` | La machine ne peut pas résoudre le nom DNS interne de la passerelle, généralement parce qu'elle n'est pas sur le réseau d'entreprise | Demandez au développeur de se connecter à votre réseau ou VPN, puis de réessayer `/login` |

398| Le démarrage se termine avec une erreur de validation de configuration nommant `store.postgres_url` | Aucun Postgres configuré ; la passerelle nécessite Postgres | Définissez `store.postgres_url`. Pour le développement local, utilisez un conteneur jetable : `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |398| Le démarrage se termine avec une erreur de validation de configuration nommant `store.postgres_url` | Aucun Postgres configuré ; la passerelle nécessite Postgres | Définissez `store.postgres_url`. Pour le développement local, utilisez un conteneur jetable : `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

399| Le démarrage se termine : `requires the native binary` | Exécution sous Node au lieu du binaire natif | Installez Claude Code avec l'une des [méthodes d'installation autonome](/docs/fr/setup) |399| Le démarrage se termine : `requires the native binary` | Exécution sous Node au lieu du binaire natif | Installez Claude Code avec l'une des [méthodes d'installation autonome](/docs/fr/setup) |

400| Le démarrage se termine avec une erreur de découverte OIDC après `config.load` | `oidc.issuer` inaccessible, ou chaîne TLS non approuvée | Vérifiez que l'émetteur est accessible à partir du pod et sert `/.well-known/openid-configuration`. Définissez `ca_cert_pem` pour l'infrastructure à clé publique privée. Si le pod atteint l'IdP uniquement via un proxy de transfert, définissez [`oidc.use_proxy: true`](/docs/fr/claude-apps-gateway-config#idp-requests-through-a-forward-proxy) ; sur les versions antérieures à v2.1.227, donnez au pod une route directe vers chacun des points de terminaison de l'IdP à la place. Si le pod ne peut pas non plus résoudre le nom d'hôte de l'IdP, ou le proxy refuse `CONNECT` à une adresse IP, voir [Sortie proxy uniquement](/docs/fr/claude-apps-gateway-config#proxy-only-egress), qui nécessite v2.1.277 ou ultérieur. |400| Le démarrage se termine avec une erreur de découverte OIDC après `config.load` | `oidc.issuer` inaccessible, ou chaîne TLS non approuvée | Vérifiez que l'émetteur est accessible à partir du pod et sert `/.well-known/openid-configuration`. Définissez `ca_cert_pem` pour l'infrastructure à clé publique privée. Si le pod atteint l'IdP uniquement via un proxy de transfert, définissez [`oidc.use_proxy: true`](/docs/fr/claude-apps-gateway-config#idp-requests-through-a-forward-proxy) ; sur les versions antérieures à v2.1.227, donnez au pod une route directe vers chacun des endpoints de l'IdP à la place. Si le pod ne peut pas non plus résoudre le nom d'hôte de l'IdP, ou le proxy refuse `CONNECT` à une adresse IP, voir [Sortie proxy uniquement](/docs/fr/claude-apps-gateway-config#proxy-only-egress), qui nécessite v2.1.277 ou ultérieur. |

401| Le démarrage se termine avec une erreur de permission Postgres | Le rôle de base de données manque de droits DDL sur son schéma | Accordez au rôle `CREATE` sur le schéma de la passerelle pour qu'il puisse créer et modifier ses tables au démarrage |401| Le démarrage se termine avec une erreur de permission Postgres | Le rôle de base de données manque de droits DDL sur son schéma | Accordez au rôle `CREATE` sur le schéma de la passerelle pour qu'il puisse créer et modifier ses tables au démarrage |

402| Journal : `could not connect to Postgres at boot, attempt 1 of 3` | La base de données n'était pas accessible lorsque la passerelle a démarré, par exemple sur une instance froide dont le réseau est encore en cours de configuration | Si la passerelle termine ensuite le démarrage, aucune action n'est nécessaire. Lorsque la base de données n'est pas accessible, la passerelle essaie la connexion trois fois, deux secondes d'intervalle, avant de se terminer. Si elle se termine avec `could not connect to Postgres`, vérifiez `store.postgres_url` et le chemin réseau vers la base de données. Si les tentatives expirent plutôt que d'être refusées, augmentez [`store.connect_timeout_seconds`](/docs/fr/claude-apps-gateway-config#store) pour donner à chacune plus de temps. |402| Journal : `could not connect to Postgres at boot, attempt 1 of 3` | La base de données n'était pas accessible lorsque la passerelle a démarré, par exemple sur une instance froide dont le réseau est encore en cours de configuration | Si la passerelle termine ensuite le démarrage, aucune action n'est nécessaire. Lorsque la base de données n'est pas accessible, la passerelle essaie la connexion trois fois, deux secondes d'intervalle, avant de se terminer. Si elle se termine avec `could not connect to Postgres`, vérifiez `store.postgres_url` et le chemin réseau vers la base de données. Si les tentatives expirent plutôt que d'être refusées, augmentez [`store.connect_timeout_seconds`](/docs/fr/claude-apps-gateway-config#store) pour donner à chacune plus de temps. |

403| `/oauth/callback` affiche « Sign-in could not be completed » | Domaine de courrier électronique rejeté, validation id\_token échouée, ou `email_verified` est explicitement `false`, que la passerelle rejette toujours sans remplacement | Vérifiez `allowed_email_domains` et que l'IdP renvoie une réclamation `email` vérifiée. Pour `email_verified: false`, corrigez la vérification côté IdP. Si votre IdP émet le courrier électronique sous un nom de réclamation différent, définissez `oidc.email_claim`. |403| `/oauth/callback` affiche « Sign-in could not be completed » | Domaine de courrier électronique rejeté, validation id\_token échouée, ou `email_verified` est explicitement `false`, que la passerelle rejette toujours sans remplacement | Vérifiez `allowed_email_domains` et que l'IdP renvoie une réclamation `email` vérifiée. Pour `email_verified: false`, corrigez la vérification côté IdP. Si votre IdP émet le courrier électronique sous un nom de réclamation différent, définissez `oidc.email_claim`. |

404| Journal : `token exchange failed request_id=<id>: id_token missing email claim` | L'IdP n'inclut pas `email` dans l'id\_token par défaut. Ce rejet ne se déclenche que lorsque `allowed_email_domains` est défini ; sans lui, un courrier électronique manquant crée une session sans courrier électronique | Configurez l'IdP pour émettre `email` dans l'id\_token. Okta : ajoutez `email` aux réclamations de jeton d'ID d'un serveur d'autorisation personnalisé. Entra : ajoutez `email` comme réclamation facultative sur l'enregistrement de l'application. PingFederate : activez une politique OpenID Connect qui émet `email`. Si l'IdP sert `email` à partir du point de terminaison userinfo mais ne l'inclura pas dans l'id\_token, comme le serveur d'autorisation org Okta, définissez `oidc.userinfo_fallback: true`. |404| Journal : `token exchange failed request_id=<id>: id_token missing email claim` | L'IdP n'inclut pas `email` dans l'id\_token par défaut. Ce rejet ne se déclenche que lorsque `allowed_email_domains` est défini ; sans lui, un courrier électronique manquant crée une session sans courrier électronique | Configurez l'IdP pour émettre `email` dans l'id\_token. Okta : ajoutez `email` aux réclamations de jeton d'ID d'un serveur d'autorisation personnalisé. Entra : ajoutez `email` comme réclamation facultative sur l'enregistrement de l'application. PingFederate : activez une politique OpenID Connect qui émet `email`. Si l'IdP sert `email` à partir de l'endpoint userinfo mais ne l'inclura pas dans l'id\_token, comme le serveur d'autorisation org Okta, définissez `oidc.userinfo_fallback: true`. |

405| Journal : `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, et les développeurs voient `Cloud gateway session expired` tous les `session.ttl_hours` | L'IdP a accepté le jeton d'actualisation mais n'a renvoyé aucun id\_token avec lui, donc la passerelle a demandé au point de terminaison userinfo de l'IdP les réclamations de l'utilisateur. L'IdP a rejeté le jeton d'accès actualisé là. La passerelle répond `temporarily_unavailable`, donc Claude Code conserve le jeton d'actualisation mais ne peut pas renouveler la session. Les versions de passerelle antérieures à v2.1.260 enregistrent la même ligne sans le détail `(at …)`. | Définissez [`oidc.scope_on_refresh: true`](/docs/fr/claude-apps-gateway-config#oidc), disponible dans la passerelle v2.1.260 ou ultérieure, pour que la demande d'actualisation demande à nouveau `openid`. Certains IdP, comme Okta, renvoient un id\_token lors de l'actualisation uniquement lorsqu'on le demande. Sur PingFederate, activez **Return ID Token On Refresh Grant** sous **Applications > OAuth > OpenID Connect Policy Management** à la place. La clé ne change pas le comportement de PingFederate. Pour les autres IdP qui l'omettent toujours, vérifiez si le point de terminaison userinfo accepte les jetons d'accès émis par une actualisation. En tant que solution temporaire, augmentez [`session.ttl_hours`](/docs/fr/claude-apps-gateway-config#session). Voir [Configuration du fournisseur d'identité](#identity-provider-setup) pour le compromis de déprovisionnement. |405| Journal : `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, et les développeurs voient `Cloud gateway session expired` tous les `session.ttl_hours` | L'IdP a accepté le jeton d'actualisation mais n'a renvoyé aucun id\_token avec lui, donc la passerelle a demandé à l'endpoint userinfo de l'IdP les réclamations de l'utilisateur. L'IdP a rejeté le jeton d'accès actualisé là. La passerelle répond `temporarily_unavailable`, donc Claude Code conserve le jeton d'actualisation mais ne peut pas renouveler la session. Les versions de passerelle antérieures à v2.1.260 enregistrent la même ligne sans le détail `(at …)`. | Définissez [`oidc.scope_on_refresh: true`](/docs/fr/claude-apps-gateway-config#oidc), disponible dans la passerelle v2.1.260 ou ultérieure, pour que la demande d'actualisation demande à nouveau `openid`. Certains IdP, comme Okta, renvoient un id\_token lors de l'actualisation uniquement lorsqu'on le demande. Sur PingFederate, activez **Return ID Token On Refresh Grant** sous **Applications > OAuth > OpenID Connect Policy Management** à la place. La clé ne change pas le comportement de PingFederate. Pour les autres IdP qui l'omettent toujours, vérifiez si l'endpoint userinfo accepte les jetons d'accès émis par une actualisation. En tant que solution temporaire, augmentez [`session.ttl_hours`](/docs/fr/claude-apps-gateway-config#session). Voir [Configuration du fournisseur d'identité](#identity-provider-setup) pour le compromis de déprovisionnement. |

406| Chaque demande Amazon Bedrock renvoie 502 ; le journal affiche `Could not load credentials from any providers` | Sur EC2, la limite de saut par défaut d'IMDSv2 de 1 bloque la demande de métadonnées d'instance de l'intérieur du conteneur. Le démarrage et `/readyz` réussissent quand même parce que le SDK AWS résout les identifiants d'instance à la première demande, pas à la construction du client | Augmentez la limite de saut avec `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, ou définissez-la dans le modèle de lancement. La modification s'applique à chaque conteneur sur l'instance. Préférez les rôles de tâche ECS le cas échéant, qui lisent les identifiants à partir du point de terminaison des identifiants de conteneur ECS et évitent complètement la modification, ou appliquez la modification sur une instance de passerelle dédiée pour limiter l'exposition. |406| Un développeur se connecte, puis chaque requête de cette session échoue avec une erreur `431` | Le jeton de session dans l'en-tête `Authorization` de chaque requête liste les groupes IdP du développeur, donc pour un développeur membre de nombreux groupes, le total des en-têtes peut dépasser ce que la passerelle accepte | Voir [En-têtes de requête trop volumineux après la connexion](#request-headers-too-large-after-sign-in) pour savoir quelle limite s'applique et ce qu'il faut modifier |

407| Chaque demande Amazon Bedrock renvoie 502 ; le journal affiche `Could not load credentials from any providers` | Sur EC2, la limite de saut par défaut d'IMDSv2 de 1 bloque la demande de métadonnées d'instance de l'intérieur du conteneur. Le démarrage et `/readyz` réussissent quand même parce que le SDK AWS résout les identifiants d'instance à la première demande, pas à la construction du client | Augmentez la limite de saut avec `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, ou définissez-la dans le modèle de lancement. La modification s'applique à chaque conteneur sur l'instance. Préférez les rôles de tâche ECS le cas échéant, qui lisent les identifiants à partir de l'endpoint des identifiants de conteneur ECS et évitent complètement la modification, ou appliquez la modification sur une instance de passerelle dédiée pour limiter l'exposition. |

407| À charge maximale, les réponses sont lentes à démarrer ou semblent se bloquer, ou échouent avec un 502 `all upstreams failed` alors que l'upstream est sain | Une réplica a plus de demandes ouvertes qu'elle n'en envoie en amont à la fois, donc les demandes supplémentaires attendent à l'intérieur de la passerelle. Sur un upstream `provider: anthropic`, une demande qui attend plus longtemps que `timeouts.upstream_ttfb_ms` abandonne cet upstream, ce qui produit le 502 lorsqu'aucun upstream ultérieur ne la sert. Le journal affiche un avertissement contenant `client requests are open`. | Ajoutez des réplicas, ou augmentez la limite sur chaque réplica. Voir [Demandes upstream concurrentes](#concurrent-upstream-requests). |408| À charge maximale, les réponses sont lentes à démarrer ou semblent se bloquer, ou échouent avec un 502 `all upstreams failed` alors que l'upstream est sain | Une réplica a plus de demandes ouvertes qu'elle n'en envoie en amont à la fois, donc les demandes supplémentaires attendent à l'intérieur de la passerelle. Sur un upstream `provider: anthropic`, une demande qui attend plus longtemps que `timeouts.upstream_ttfb_ms` abandonne cet upstream, ce qui produit le 502 lorsqu'aucun upstream ultérieur ne la sert. Le journal affiche un avertissement contenant `client requests are open`. | Ajoutez des réplicas, ou augmentez la limite sur chaque réplica. Voir [Demandes upstream concurrentes](#concurrent-upstream-requests). |

408| Erreur IdP : portée inconnue ou non prise en charge | L'IdP rejette les portées qu'il ne reconnaît pas | Définissez `oidc.scopes` exactement à la liste que votre IdP accepte ; elle doit inclure `openid`. La valeur par défaut est `openid profile email offline_access`. |409| Erreur IdP : portée inconnue ou non prise en charge | L'IdP rejette les portées qu'il ne reconnaît pas | Définissez `oidc.scopes` exactement à la liste que votre IdP accepte ; elle doit inclure `openid`. La valeur par défaut est `openid profile email offline_access`. |

409| Les sessions ne se renouvellent pas silencieusement après la définition de `oidc.scopes` | `offline_access` a été supprimé de la substitution | Rajoutez `offline_access` si votre IdP le prend en charge. Sans jeton d'actualisation, les développeurs réexécutent la connexion du navigateur tous les `session.ttl_hours`. |410| Les sessions ne se renouvellent pas silencieusement après la définition de `oidc.scopes` | `offline_access` a été supprimé de la substitution | Rajoutez `offline_access` si votre IdP le prend en charge. Sans jeton d'actualisation, les développeurs réexécutent la connexion du navigateur tous les `session.ttl_hours`. |


420 421 

421Si Claude Code signale `couldn't load your organization's managed settings` après une connexion à la passerelle, Claude Code nomme la raison, redémarre sur place et reprend la conversation. Si Claude Code ne peut pas redémarrer, par exemple dans une session d'arrière-plan, Claude Code termine la session et conserve la connexion.422Si Claude Code signale `couldn't load your organization's managed settings` après une connexion à la passerelle, Claude Code nomme la raison, redémarre sur place et reprend la conversation. Si Claude Code ne peut pas redémarrer, par exemple dans une session d'arrière-plan, Claude Code termine la session et conserve la connexion.

422 423 

424<h3 id="request-headers-too-large-after-sign-in">

425 En-têtes de requête trop volumineux après la connexion

426</h3>

427 

428Les requêtes d'un développeur peuvent échouer avec une erreur `431` après la connexion lorsque le développeur appartient à de nombreux groupes IdP.

429 

430La passerelle répond `431` lorsque le total des en-têtes d'une requête dépasse 256 Kio, ou [`limits.max_request_header_bytes`](/docs/fr/claude-apps-gateway-config#http-tuning) si vous le définissez. Elle n'écrit aucune ligne de log ni aucun événement d'audit pour ces requêtes. Les versions de la passerelle antérieures à v2.1.284 répondent `431` au-delà de 16 Kio.

431 

432Ce qu'il faut modifier dépend de la version et de la configuration de votre passerelle :

433 

434* **Passerelle antérieure à v2.1.284** : mettez à niveau la passerelle

435* **`limits.max_request_header_bytes` défini** : augmentez la valeur ou supprimez la clé

436* **Aucun de ces cas ne s'applique, ou le `431` persiste ensuite** : faites en sorte que votre IdP émette moins de groupes. [Configuration du fournisseur d'identité](#identity-provider-setup) explique comment Okta, Microsoft Entra ID et Google Workspace fournissent les groupes

437 

423<h2 id="related">438<h2 id="related">

424 Connexes439 Connexes

425</h2>440</h2>

Details

1598 1598 

1599`<project>` est le chemin de votre répertoire de travail avec chaque caractère autre que les lettres et les chiffres remplacé par `-`, par exemple `-Users-you-my-project`. Si vous définissez [`CLAUDE_CODE_TMPDIR`](/docs/fr/env-vars), l'arborescence se déplace sous ce répertoire à la place. Les hooks reçoivent le chemin de la session actuelle en tant que [`scratchpad_dir`](/docs/fr/hooks#common-input-fields).1599`<project>` est le chemin de votre répertoire de travail avec chaque caractère autre que les lettres et les chiffres remplacé par `-`, par exemple `-Users-you-my-project`. Si vous définissez [`CLAUDE_CODE_TMPDIR`](/docs/fr/env-vars), l'arborescence se déplace sous ce répertoire à la place. Les hooks reçoivent le chemin de la session actuelle en tant que [`scratchpad_dir`](/docs/fr/hooks#common-input-fields).

1600 1600 

1601Les fichiers du bloc-notes durent aussi longtemps que la transcription de la session : le [balayage de rétention](#cleaned-up-automatically) supprime le répertoire lorsqu'il supprime la transcription, et [`claude project purge`](#clear-local-data) ne touche pas au répertoire temporaire. Parce que le répertoire se trouve sous l'emplacement temporaire du système, votre système d'exploitation peut également le supprimer, par exemple au redémarrage. Pour conserver quelque chose que Claude a écrit là, demandez à Claude de le déplacer dans votre projet.1601Les fichiers du bloc-notes durent aussi longtemps que la transcription de la session : le [balayage de rétention](#cleaned-up-automatically) supprime le répertoire lorsqu'il supprime la transcription, et [`claude purge`](#clear-local-data) ne touche pas au répertoire temporaire. Parce que le répertoire se trouve sous l'emplacement temporaire du système, votre système d'exploitation peut également le supprimer, par exemple au redémarrage. Pour conserver quelque chose que Claude a écrit là, demandez à Claude de le déplacer dans votre projet.

1602 1602 

1603Une session a un bloc-notes uniquement lorsque tous ces éléments sont vrais :1603Une session a un bloc-notes uniquement lorsque tous ces éléments sont vrais :

1604 1604 


1645 Effacer les données locales1645 Effacer les données locales

1646</h3>1646</h3>

1647 1647 

1648Exécutez `claude project purge` pour supprimer l'état que Claude Code conserve pour un projet. Il supprime :1648Exécutez `claude purge` pour supprimer l'état que Claude Code conserve pour un projet. Il supprime :

1649 1649 

1650* Transcriptions et mémoire automatique sous `projects/`1650* Transcriptions et mémoire automatique sous `projects/`

1651* Entrées `tasks/`, `debug/` et `file-history/` par session1651* Entrées `tasks/`, `debug/` et `file-history/` par session


1656 1656 

1657La commande imprime le plan de suppression complet et demande une confirmation avant de supprimer quoi que ce soit.1657La commande imprime le plan de suppression complet et demande une confirmation avant de supprimer quoi que ce soit.

1658 1658 

1659Avant v2.1.288, la commande était `claude project purge`.

1660 

1659Les exemples ci-dessous utilisent `~/work/my-repo` comme espace réservé. Remplacez-le par le chemin de votre projet. Si aucun état ne correspond au chemin, la commande imprime une erreur et se termine avec le statut 1.1661Les exemples ci-dessous utilisent `~/work/my-repo` comme espace réservé. Remplacez-le par le chemin de votre projet. Si aucun état ne correspond au chemin, la commande imprime une erreur et se termine avec le statut 1.

1660 1662 

1661Prévisualisez le plan sans rien supprimer :1663Prévisualisez le plan sans rien supprimer :

1662 1664 

1663```bash theme={null}1665```bash theme={null}

1664claude project purge ~/work/my-repo --dry-run1666claude purge ~/work/my-repo --dry-run

1665```1667```

1666 1668 

1667Le plan énumère chaque élément correspondant et pourquoi il est inclus :1669Le plan énumère chaque élément correspondant et pourquoi il est inclus :


1684Supprimez avec une seule invite de confirmation :1686Supprimez avec une seule invite de confirmation :

1685 1687 

1686```bash theme={null}1688```bash theme={null}

1687claude project purge ~/work/my-repo1689claude purge ~/work/my-repo

1688```1690```

1689 1691 

1690La commande imprime le même plan, puis demande `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` et supprime uniquement si vous répondez `y`.1692La commande imprime le même plan, puis demande `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` et supprime uniquement si vous répondez `y`.


1694Ignorez l'invite de confirmation pour utilisation dans les scripts :1696Ignorez l'invite de confirmation pour utilisation dans les scripts :

1695 1697 

1696```bash theme={null}1698```bash theme={null}

1697claude project purge ~/work/my-repo --yes1699claude purge ~/work/my-repo --yes

1698```1700```

1699 1701 

1700Passez `--all` au lieu d'un chemin pour purger l'état de chaque projet à la fois, ce qui supprime `history.jsonl` directement plutôt que de le filtrer. Passez `-i` pour parcourir le plan de suppression un élément à la fois.1702Passez `--all` au lieu d'un chemin pour purger l'état de chaque projet à la fois, ce qui supprime `history.jsonl` directement plutôt que de le filtrer. Passez `-i` pour parcourir le plan de suppression un élément à la fois.

Details

500 Limitations500 Limitations

501</h2>501</h2>

502 502 

503* Les projets sont disponibles à claude.ai/code, dans l'application de bureau et dans l'application mobile Claude, pas dans le CLI du terminal, l'extension VS Code ou le plugin JetBrains, et pas via Amazon Bedrock, la plateforme d'agents de Google Cloud ou Microsoft Foundry. La commande [`claude project`](/docs/fr/cli-reference) du CLI, qui gère l'état local de Claude Code pour un répertoire, n'est pas liée.503* Les projets sont disponibles à claude.ai/code, dans l'application de bureau et dans l'application mobile Claude, pas dans le CLI du terminal, l'extension VS Code ou le plugin JetBrains, et pas via Amazon Bedrock, la plateforme d'agents de Google Cloud ou Microsoft Foundry.

504* Les threads du projet sont des [sessions cloud](/docs/fr/claude-code-on-the-web), ou des sessions sur votre propre machine via [Remote Control](/docs/fr/remote-control), avec Anthropic comme fournisseur de modèle dans les deux cas. [Sécurité](/docs/fr/security) et [Utilisation des données](/docs/fr/data-usage) couvrent comment les sessions cloud sont isolées et ce qui est conservé, et [Connexion et sécurité](/docs/fr/remote-control#connection-and-security) couvre comment un thread sur votre machine se connecte et ce qui est stocké.504* Les threads du projet sont des [sessions cloud](/docs/fr/claude-code-on-the-web), ou des sessions sur votre propre machine via [Remote Control](/docs/fr/remote-control), avec Anthropic comme fournisseur de modèle dans les deux cas. [Sécurité](/docs/fr/security) et [Utilisation des données](/docs/fr/data-usage) couvrent comment les sessions cloud sont isolées et ce qui est conservé, et [Connexion et sécurité](/docs/fr/remote-control#connection-and-security) couvre comment un thread sur votre machine se connecte et ce qui est stocké.

505* Vous ne pouvez pas ajouter une session que vous avez démarrée vous-même sur votre machine à un projet. Un projet atteint votre machine uniquement en [exécutant un thread là-bas via Remote Control](#run-a-thread-on-your-own-computer), et cette section énumère ce dont il a besoin.505* Vous ne pouvez pas ajouter une session que vous avez démarrée vous-même sur votre machine à un projet. Un projet atteint votre machine uniquement en [exécutant un thread là-bas via Remote Control](#run-a-thread-on-your-own-computer), et cette section énumère ce dont il a besoin.

506* Le sandbox d'un thread cloud se met en pause entre les tours et reprend quand le thread continue. Si le sandbox ne peut pas être repris, le thread continue à partir d'un clone frais, donc les modifications non validées peuvent être perdues. Sur les tâches longues, demandez à Claude de valider et de pousser le travail en cours.506* Le sandbox d'un thread cloud se met en pause entre les tours et reprend quand le thread continue. Si le sandbox ne peut pas être repris, le thread continue à partir d'un clone frais, donc les modifications non validées peuvent être perdues. Sur les tâches longues, demandez à Claude de valider et de pousser le travail en cours.

Details

40| `claude mcp login <name>` | Exécuter le flux OAuth d'un serveur MCP configuré sans ouvrir le panneau interactif `/mcp`. Fonctionne pour les serveurs HTTP, SSE et les connecteurs claude.ai. Ajoutez `--no-browser` sur SSH pour imprimer l'URL d'autorisation au lieu d'ouvrir un navigateur, puis collez l'URL de redirection à l'invite. Voir [S'authentifier à partir de la ligne de commande](/docs/fr/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Exécuter le flux OAuth d'un serveur MCP configuré sans ouvrir le panneau interactif `/mcp`. Fonctionne pour les serveurs HTTP, SSE et les connecteurs claude.ai. Ajoutez `--no-browser` sur SSH pour imprimer l'URL d'autorisation au lieu d'ouvrir un navigateur, puis collez l'URL de redirection à l'invite. Voir [S'authentifier à partir de la ligne de commande](/docs/fr/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | Effacer les identifiants OAuth stockés pour un serveur MCP | `claude mcp logout sentry` |41| `claude mcp logout <name>` | Effacer les identifiants OAuth stockés pour un serveur MCP | `claude mcp logout sentry` |

42| `claude plugin` | Gérer les [plugins](/docs/fr/plugins/overview) Claude Code. Alias : `claude plugins`. Voir la [référence des plugins](/docs/fr/plugins/cli-reference#claude-plugin-commands) pour les sous-commandes | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Gérer les [plugins](/docs/fr/plugins/overview) Claude Code. Alias : `claude plugins`. Voir la [référence des plugins](/docs/fr/plugins/cli-reference#claude-plugin-commands) pour les sous-commandes | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | Supprimer tout l'état local de Claude Code pour un projet : transcriptions, listes de tâches, journaux de débogage, historique des modifications de fichiers, lignes d'historique des prompts, et l'entrée du projet dans `~/.claude.json`. Omettez `[path]` pour choisir dans une liste interactive. Flags : `--dry-run` pour prévisualiser, `-y`/`--yes` pour ignorer la confirmation, `-i`/`--interactive` pour confirmer chaque élément, `--all` pour chaque projet. Voir [Effacer les données locales](/docs/fr/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude purge [path]` | Supprimer tout l'état local de Claude Code pour un projet : transcriptions, listes de tâches, journaux de débogage, historique des modifications de fichiers, lignes d'historique des prompts, et l'entrée du projet dans `~/.claude.json`. Omettez `[path]` pour choisir dans une liste interactive. Flags : `--dry-run` pour prévisualiser, `-y`/`--yes` pour ignorer la confirmation, `-i`/`--interactive` pour confirmer chaque élément, `--all` pour chaque projet. Voir [Effacer les données locales](/docs/fr/claude-directory#clear-local-data) | `claude purge ~/work/repo --dry-run` |

44| `claude remote-control` | Démarrer un serveur [Remote Control](/docs/fr/remote-control) pour contrôler Claude Code depuis Claude.ai ou l'application Claude. S'exécute en mode serveur (pas de session interactive locale). Voir [Flags du mode serveur](/docs/fr/remote-control#start-a-remote-control-session). Après avoir arrêté le serveur, vous pouvez ramener les sessions qu'il servait. Voir [Reprendre les sessions après l'arrêt du serveur](/docs/fr/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Démarrer un serveur [Remote Control](/docs/fr/remote-control) pour contrôler Claude Code depuis Claude.ai ou l'application Claude. S'exécute en mode serveur (pas de session interactive locale). Voir [Flags du mode serveur](/docs/fr/remote-control#start-a-remote-control-session). Après avoir arrêté le serveur, vous pouvez ramener les sessions qu'il servait. Voir [Reprendre les sessions après l'arrêt du serveur](/docs/fr/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Redémarrer une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell), en cours d'exécution ou arrêtée, avec sa conversation intacte. Utilisez `--all` pour redémarrer chaque session en cours d'exécution, par exemple pour récupérer un binaire Claude Code mis à jour | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Redémarrer une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell), en cours d'exécution ou arrêtée, avec sa conversation intacte. Utilisez `--all` pour redémarrer chaque session en cours d'exécution, par exemple pour récupérer un binaire Claude Code mis à jour | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | Supprimer une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) de la liste. Quand la suppression est [refusée sur le worktree de la session](/docs/fr/agent-view#what-deleting-a-session-removes) et qu'une deuxième `claude rm` peut la résoudre, le refus imprime le flag exact et la valeur à passer : `--discard-unpushed <commit>@<worktree-id>` abandonne un worktree qui a des commits non poussés ainsi que ces commits, et `--force-remove-worktree <worktree-id>` supprime un répertoire worktree que git ou le hook `WorktreeRemove` n'a pas pu supprimer. `--discard-unpushed` nécessite Claude Code v2.1.260 ou ultérieur, et `--force-remove-worktree` nécessite v2.1.268 ou ultérieur. La transcription de la conversation reste sur votre machine locale, disponible via `claude --resume` | `claude rm 7c5dcf5d` |46| `claude rm <id>` | Supprimer une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) de la liste. Quand la suppression est [refusée sur le worktree de la session](/docs/fr/agent-view#what-deleting-a-session-removes) et qu'une deuxième `claude rm` peut la résoudre, le refus imprime le flag exact et la valeur à passer : `--discard-unpushed <commit>@<worktree-id>` abandonne un worktree qui a des commits non poussés ainsi que ces commits, et `--force-remove-worktree <worktree-id>` supprime un répertoire worktree que git ou le hook `WorktreeRemove` n'a pas pu supprimer. `--discard-unpushed` nécessite Claude Code v2.1.260 ou ultérieur, et `--force-remove-worktree` nécessite v2.1.268 ou ultérieur. La transcription de la conversation reste sur votre machine locale, disponible via `claude --resume` | `claude rm 7c5dcf5d` |


51 51 

52Si vous tapez mal une sous-commande, Claude Code suggère la correspondance la plus proche et quitte sans démarrer une session. Par exemple, `claude udpate` imprime `Did you mean claude update?`.52Si vous tapez mal une sous-commande, Claude Code suggère la correspondance la plus proche et quitte sans démarrer une session. Par exemple, `claude udpate` imprime `Did you mean claude update?`.

53 53 

54À partir de v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` exécute la sous-commande `daemon`. Les versions antérieures traitaient `daemon <subcommand>` comme le prompt d'une nouvelle session interactive, donc la sous-commande ne s'exécutait jamais quand le flag venait en premier, une configuration courante quand `claude` est aliasé pour inclure le flag. Seul un `--dangerously-skip-permissions` ou `--allow-dangerously-skip-permissions` en tête achemine vers `daemon` de cette façon ; tout autre flag en tête démarre toujours une session interactive.54`claude --dangerously-skip-permissions daemon <subcommand>` exécute la sous-commande `daemon`, de sorte que la sous-commande fonctionne quand `claude` est aliasé pour inclure le flag. Seul un `--dangerously-skip-permissions` ou `--allow-dangerously-skip-permissions` en tête achemine vers `daemon` de cette façon ; avec tout autre flag placé avant `daemon`, la sous-commande ne s'exécute pas.

55 55 

56<h2 id="cli-flags">56<h2 id="cli-flags">

57 Drapeaux CLI57 Drapeaux CLI

Details

118 Ajouter un identifiant118 Ajouter un identifiant

119</h4>119</h4>

120 120 

121Vous ajoutez les identifiants un à la fois à partir de l'éditeur d'un environnement qui existe déjà. La boîte de dialogue pour un nouvel environnement ne les propose pas. Il n'y a pas non plus de modification. Pour modifier les hôtes ou la valeur d'un identifiant, supprimez-le et ajoutez-le à nouveau.121Vous ajoutez les identifiants un à la fois, et vous ne pouvez pas modifier un identifiant après l'avoir ajouté. Pour modifier les hôtes ou la valeur d'un identifiant, supprimez-le et ajoutez-le à nouveau.

122 122 

123<Steps>123<Steps>

124 <Step title="Ouvrir les identifiants API de l'environnement">124 <Step title="Ouvrir les identifiants API de l'environnement">

125 [Ouvrez l'environnement pour modification](#configure-your-environment) sur [claude.ai/code](https://claude.ai/code). Dans la boîte de dialogue **Edit cloud environment**, trouvez **API credentials** sous **Environment variables**. Vous voyez les identifiants déjà sur l'environnement, chacun avec les hôtes auxquels il s'applique.125 [Ouvrez l'environnement pour modification](#configure-your-environment) sur [claude.ai/code](https://claude.ai/code). Dans la boîte de dialogue **Edit environment**, trouvez la section **API credentials**. Vous voyez les identifiants déjà sur l'environnement, chacun avec les hôtes auxquels il s'applique.

126 </Step>126 </Step>

127 127 

128 <Step title="Ajouter l'identifiant">128 <Step title="Ajouter l'identifiant">

129 Sélectionnez **Add credential** et remplissez le formulaire. Conservez le **Credential type** par défaut, **Bearer**, pour une clé API qui voyage dans un en-tête de demande, et remplissez ces champs :129 Sélectionnez **Add credential** et remplissez le formulaire. Conservez le **Credential type** par défaut, **Bearer**, pour une clé API qui voyage dans un en-tête de requête, et remplissez ces champs :

130 130 

131 * **Name** : une étiquette pour l'identifiant, comme `Internal billing API`131 * **Name** : une étiquette pour l'identifiant, comme `Internal billing API`

132 * **Allowed websites** : les hôtes de l'API, comme `api.example.com`. Un `*.` initial correspond à chaque sous-domaine132 * **Allowed websites** : les hôtes de l'API, comme `api.example.com`. Un `*.` initial correspond à chaque sous-domaine

code-review.md +4 −3

Details

344 344 

345 Vous pouvez également ajouter des drapeaux :345 Vous pouvez également ajouter des drapeaux :

346 346 

347 * `--fix` : applique les résultats à votre arborescence de travail après la révision347 * `--fix` : applique les résultats à votre arborescence de travail après la revue

348 * `--comment` : publie les résultats sous forme de commentaires en ligne sur une demande de tirage GitHub, ou sur une demande de fusion GitLab sous forme de note unique348 * `--comment` : publie les résultats sous forme de commentaires en ligne sur une pull request GitHub, ou sous forme de note unique sur une merge request GitLab

349 * `--post` : sur une révision `ultra` en cloud d'une demande de tirage `github.com`, présélectionne la publication des résultats terminés à la PR dans la boîte de dialogue de lancement ; voir [Publier les résultats à la demande de tirage](/docs/fr/ultrareview#post-findings-to-the-pull-request). Nécessite Claude Code v2.1.227 ou ultérieur349 * `--post` : lors d'une revue cloud `ultra` d'une pull request `github.com`, présélectionne la publication des résultats finaux sur la PR dans la boîte de dialogue de lancement ; voir [Publier les résultats sur la pull request](/docs/fr/ultrareview#post-findings-to-the-pull-request). Nécessite Claude Code v2.1.227 ou ultérieur

350 * `--max-findings <n>`, `--max-findings all` ou `--max-findings default` : signale jusqu'à `n` résultats, ou tous les résultats avec `all`, à la place de la limite habituelle de la revue. Les revues ultérieures réutilisent la valeur que vous avez saisie jusqu'à ce que vous passiez `--max-findings default`. Nécessite Claude Code v2.1.288 ou ultérieur

350 351 

351 Quand vous passez `--comment` pour une demande de fusion GitLab, Claude Code publie les résultats via l'interface de ligne de commande `glab` de GitLab. Nécessite Claude Code v2.1.257 ou ultérieur. Quand `glab` n'est pas installé, Claude imprime les résultats dans le terminal à la place.352 Quand vous passez `--comment` pour une demande de fusion GitLab, Claude Code publie les résultats via l'interface de ligne de commande `glab` de GitLab. Nécessite Claude Code v2.1.257 ou ultérieur. Quand `glab` n'est pas installé, Claude imprime les résultats dans le terminal à la place.

352 353 

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/fr/skills#bundled-skills).** Charger la documentation de référence de [Claude API](https://platform.claude.com/docs/en/api/overview) et [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) pour le langage de votre projet. S'active également automatiquement lorsque votre code importe `anthropic` ou `@anthropic-ai/sdk`. Pour ce que chaque sous-commande fait et la version qu'elle nécessite, consultez [Travailler sur les projets Claude API](/docs/fr/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/fr/skills#bundled-skills).** Charger la documentation de référence de [Claude API](https://platform.claude.com/docs/en/api/overview) et [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) pour le langage de votre projet. S'active également automatiquement lorsque votre code importe `anthropic` ou `@anthropic-ai/sdk`. Pour ce que chaque sous-commande fait et la version qu'elle nécessite, consultez [Travailler sur les projets Claude API](/docs/fr/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/fr/skills#bundled-skills).** Faire en sorte que Claude accomplisse une tâche dans votre navigateur, telle que tester une page, remplir un formulaire ou lire les journaux de la console, via [Claude dans Chrome](/docs/fr/chrome). Disponible lorsque l'intégration Chrome est activée pour la session, par exemple avec `claude --chrome`, ou lorsque Claude Code peut proposer d'[installer l'extension](/docs/fr/chrome#install-the-extension-when-claude-asks) |73| `/claude-in-chrome [task]` | **[Skill](/docs/fr/skills#bundled-skills).** Faire en sorte que Claude accomplisse une tâche dans votre navigateur, telle que tester une page, remplir un formulaire ou lire les journaux de la console, via [Claude dans Chrome](/docs/fr/chrome). Disponible lorsque l'intégration Chrome est activée pour la session, par exemple avec `claude --chrome`, ou lorsque Claude Code peut proposer d'[installer l'extension](/docs/fr/chrome#install-the-extension-when-claude-asks) |

74| `/clear [name]` | Démarrer une nouvelle conversation avec un contexte vide. Passez un nom pour étiqueter la conversation précédente dans le sélecteur `/resume`. Pour libérer du contexte tout en continuant la même conversation, utilisez `/compact` à la place. Reprendre la conversation précédente avec `/resume`, ou, dans le même processus Claude Code, la restaurer à partir de [l'entrée de session précédente du menu de rembobinage](/docs/fr/checkpointing#rewind-past-a-cleared-conversation). Alias : `/reset`, `/new` |74| `/clear [name]` | Démarrer une nouvelle conversation avec un contexte vide. Passez un nom pour étiqueter la conversation précédente dans le sélecteur `/resume`. Pour libérer du contexte tout en continuant la même conversation, utilisez `/compact` à la place. Reprendre la conversation précédente avec `/resume`, ou, dans le même processus Claude Code, la restaurer à partir de [l'entrée de session précédente du menu de rembobinage](/docs/fr/checkpointing#rewind-past-a-cleared-conversation). Alias : `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/fr/skills#bundled-skills).** Examiner le diff actuel, ou un numéro de PR, une branche ou un chemin que vous passez, pour les bogues de correction. Selon votre modèle et votre niveau d'effort, la revue couvre également les opportunités de nettoyage. Passez `--fix` pour appliquer les résultats, `--comment` pour les publier sur la PR GitHub ou la merge request GitLab, ou `ultra` pour exécuter une [revue cloud](/docs/fr/ultrareview) approfondie. La publication sur une merge request GitLab nécessite Claude Code v2.1.257 ou ultérieur. Avec `ultra` sur une cible de PR `github.com`, passez `--post` pour présélectionner [la publication des résultats terminés sur la pull request](/docs/fr/ultrareview#post-findings-to-the-pull-request) dans la boîte de dialogue de lancement ; `--post` nécessite Claude Code v2.1.227 ou ultérieur. Consultez [Examiner un diff localement](/docs/fr/code-review#review-a-diff-locally) pour les niveaux d'effort, le ciblage et la relation avec `/simplify`. Alias : `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/fr/skills#bundled-skills).** Examiner le diff actuel, ou un numéro de PR, une branche ou un chemin que vous passez, pour les bogues de correction. Selon votre modèle et votre niveau d'effort, la revue couvre également les opportunités de nettoyage. Passez `--fix` pour appliquer les résultats, `--comment` pour les publier sur la PR GitHub ou la merge request GitLab, ou `ultra` pour exécuter une [revue cloud](/docs/fr/ultrareview) approfondie. La publication sur une merge request GitLab nécessite Claude Code v2.1.257 ou ultérieur. Avec `ultra` sur une cible de PR `github.com`, passez `--post` pour présélectionner [la publication des résultats terminés sur la pull request](/docs/fr/ultrareview#post-findings-to-the-pull-request) dans la boîte de dialogue de lancement ; `--post` nécessite Claude Code v2.1.227 ou ultérieur. Consultez [Examiner un diff localement](/docs/fr/code-review#review-a-diff-locally) pour les niveaux d'effort, le ciblage et la relation avec `/simplify`. Alias : `/review` |

76| `/color [color\|default]` | Définir la couleur de la barre du prompt pour la session actuelle. Couleurs disponibles : `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Utilisez `default` pour réinitialiser, ou exécutez sans argument pour choisir une couleur aléatoire. Lorsque [Remote Control](/docs/fr/remote-control) est connecté, la couleur se synchronise avec claude.ai/code. Également disponible en mode non interactif (`-p`) ; nécessite Claude Code v2.1.205 ou ultérieur |76| `/color [color\|default]` | Définir la couleur de la barre du prompt pour la session actuelle. Couleurs disponibles : `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Utilisez `default` pour réinitialiser, ou exécutez sans argument pour choisir une couleur aléatoire. Lorsque [Remote Control](/docs/fr/remote-control) est connecté, la couleur se synchronise avec claude.ai/code. Également disponible en mode non interactif (`-p`) ; nécessite Claude Code v2.1.205 ou ultérieur |

77| `/compact [instructions]` | Libérer du contexte en résumant la conversation jusqu'à présent. Passez éventuellement des instructions de focus pour le résumé. Consultez [comment la compaction gère les règles, les skills et les fichiers de mémoire](/docs/fr/context-window#what-survives-compaction) |77| `/compact [instructions]` | Libérer du contexte en résumant la conversation jusqu'à présent. Passez éventuellement des instructions de focus pour le résumé. Consultez [comment la compaction gère les règles, les skills et les fichiers de mémoire](/docs/fr/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Ouvrir l'interface [Paramètres](/docs/fr/settings) pour ajuster le thème, le modèle, [le style de sortie](/docs/fr/output-styles), et d'autres préférences. Passez une ou plusieurs paires `key=value` pour définir un paramètre directement sans ouvrir l'interface, par exemple `/config thinking=false`, `/config theme=dark`, ou `/config model=sonnet`. Le formulaire `key=value` fonctionne également en mode non interactif (`-p`) et à partir de l'application mobile Claude via [Remote Control](/docs/fr/remote-control). Le formulaire `key=value` ne peut pas activer un paramètre qui nécessite votre confirmation dans le panneau, tel que [`autoContinueAtUsageLimit`](/docs/fr/interactive-mode#turn-automatic-continue-off), bien qu'il puisse en désactiver un. Exécutez `/config --help` pour répertorier les clés qu'il accepte. Alias : `/settings` |78| `/config [key=value ...]` | Ouvrir l'interface [Paramètres](/docs/fr/settings) pour ajuster le thème, le modèle, [le style de sortie](/docs/fr/output-styles), et d'autres préférences. Passez une ou plusieurs paires `key=value` pour définir un paramètre directement sans ouvrir l'interface, par exemple `/config thinking=false`, `/config theme=dark`, ou `/config model=sonnet`. Le formulaire `key=value` fonctionne également en mode non interactif (`-p`) et à partir de l'application mobile Claude via [Remote Control](/docs/fr/remote-control). Le formulaire `key=value` ne peut pas activer un paramètre qui nécessite votre confirmation dans le panneau, tel que [`autoContinueAtUsageLimit`](/docs/fr/interactive-mode#turn-automatic-continue-off), bien qu'il puisse en désactiver un. Exécutez `/config --help` pour répertorier les clés qu'il accepte. Alias : `/settings` |


134| `/remote-env` | Choisir l'[environnement cloud](/docs/fr/cloud-environments#select-an-environment-from-the-cli) par défaut pour les sessions cloud que vous démarrez à partir de la CLI |134| `/remote-env` | Choisir l'[environnement cloud](/docs/fr/cloud-environments#select-an-environment-from-the-cli) par défaut pour les sessions cloud que vous démarrez à partir de la CLI |

135| `/rename [name]` | Renommer la session actuelle et afficher le nom sur la barre du prompt. Sans nom, en génère automatiquement un à partir de l'historique de conversation. Également disponible en mode non interactif (`-p`) ; nécessite Claude Code v2.1.205 ou ultérieur. À partir de chaque surface de renommage, y compris claude.ai et l'application de bureau, Claude Code remplace les caractères de contrôle et invisibles dans le nouveau nom par des espaces et limite le nom à 200 caractères. Si le nom est vide une fois les caractères invisibles supprimés, Claude Code le rejette et affiche `That name is empty once invisible characters are removed. Usage: /rename <name>`. Le remplacement de caractères et la limite de longueur nécessitent Claude Code v2.1.221 ou ultérieur. Si une autre session en direct sur cette machine utilise déjà un nom que vous passez, Claude Code applique [une variante de celui-ci](/docs/fr/sessions#name-your-sessions) à la place |135| `/rename [name]` | Renommer la session actuelle et afficher le nom sur la barre du prompt. Sans nom, en génère automatiquement un à partir de l'historique de conversation. Également disponible en mode non interactif (`-p`) ; nécessite Claude Code v2.1.205 ou ultérieur. À partir de chaque surface de renommage, y compris claude.ai et l'application de bureau, Claude Code remplace les caractères de contrôle et invisibles dans le nouveau nom par des espaces et limite le nom à 200 caractères. Si le nom est vide une fois les caractères invisibles supprimés, Claude Code le rejette et affiche `That name is empty once invisible characters are removed. Usage: /rename <name>`. Le remplacement de caractères et la limite de longueur nécessitent Claude Code v2.1.221 ou ultérieur. Si une autre session en direct sur cette machine utilise déjà un nom que vous passez, Claude Code applique [une variante de celui-ci](/docs/fr/sessions#name-your-sessions) à la place |

136| `/resume [session]` | Reprendre une conversation par ID ou nom, ou ouvrir le sélecteur de session. Les [sessions en arrière-plan](/docs/fr/agent-view) apparaissent dans le sélecteur marquées avec `bg`. Reprendre une session encore en cours d'exécution, à partir du sélecteur ou par ID ou nom, [ouvre cette session](/docs/fr/sessions#resume-a-running-background-session) : votre conversation actuelle se déplace en arrière-plan et ce terminal s'attache à celle en cours d'exécution. Appuyez sur `←` sur un prompt vide pour revenir à la vue agent, qui répertorie également la conversation que vous avez laissée. Avant la v2.1.285, Claude Code refusait et vous disait d'ouvrir la session avec `claude attach` ou de l'arrêter d'abord. Alias : `/continue` |136| `/resume [session]` | Reprendre une conversation par ID ou nom, ou ouvrir le sélecteur de session. Les [sessions en arrière-plan](/docs/fr/agent-view) apparaissent dans le sélecteur marquées avec `bg`. Reprendre une session encore en cours d'exécution, à partir du sélecteur ou par ID ou nom, [ouvre cette session](/docs/fr/sessions#resume-a-running-background-session) : votre conversation actuelle se déplace en arrière-plan et ce terminal s'attache à celle en cours d'exécution. Appuyez sur `←` sur un prompt vide pour revenir à la vue agent, qui répertorie également la conversation que vous avez laissée. Avant la v2.1.285, Claude Code refusait et vous disait d'ouvrir la session avec `claude attach` ou de l'arrêter d'abord. Alias : `/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/fr/code-review#review-a-diff-locally) : examine le diff actuel, ou un numéro de PR, une branche ou un chemin que vous passez, tel que `/review 1234`, et prend les mêmes niveaux d'effort et flags. Sans niveau donné, la revue réutilise le dernier niveau `low` à `max` que vous avez tapé ; consultez [Examiner un diff localement](/docs/fr/code-review#review-a-diff-locally) pour les règles exactes. Pour une revue cloud approfondie, utilisez [`/code-review ultra`](/docs/fr/ultrareview). Avant la v2.1.223, `/review` était une commande distincte qui exécutait une revue en un seul passage et en lecture seule d'une pull request GitHub par numéro, répertoriant les PR ouvertes à choisir lorsqu'elle était exécutée sans argument ; de la v2.1.186 à la v2.1.201, elle exécutait le même moteur multi-agents que `/code-review medium` |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/fr/code-review#review-a-diff-locally) : examine le diff actuel, ou un numéro de PR, une branche ou un chemin que vous passez, tel que `/review 1234`, et prend les mêmes niveaux d'effort et flags. Sans niveau donné, la revue réutilise le dernier niveau `low` à `max` que vous avez tapé ; consultez [Examiner un diff localement](/docs/fr/code-review#review-a-diff-locally) pour les règles exactes. Pour une revue cloud approfondie, utilisez [`/code-review ultra`](/docs/fr/ultrareview). Avant la v2.1.223, `/review` était une commande distincte qui exécutait une revue en un seul passage et en lecture seule d'une pull request GitHub par numéro, répertoriant les PR ouvertes à choisir lorsqu'elle était exécutée sans argument ; de la v2.1.186 à la v2.1.201, elle exécutait le même moteur multi-agents que `/code-review medium` |

138| `/rewind` | Rembobiner la conversation et/ou le code à un point antérieur, ou résumer à partir d'un message sélectionné. Consultez [checkpointing](/docs/fr/checkpointing). Alias : `/checkpoint`, `/undo` |138| `/rewind` | Rembobiner la conversation et/ou le code à un point antérieur, ou résumer à partir d'un message sélectionné. Consultez [checkpointing](/docs/fr/checkpointing). Alias : `/checkpoint`, `/undo` |

139| `/run` | **[Skill](/docs/fr/skills#bundled-skills).** Lancer et piloter l'application de votre projet pour voir un changement fonctionner, pas seulement passer les tests. Consultez [Exécuter et vérifier votre application](/docs/fr/skills#run-and-verify-your-app) |139| `/run` | **[Skill](/docs/fr/skills#bundled-skills).** Lancer et piloter l'application de votre projet pour voir un changement fonctionner, pas seulement passer les tests. Consultez [Exécuter et vérifier votre application](/docs/fr/skills#run-and-verify-your-app) |

140| `/run-skill-generator` | **[Skill](/docs/fr/skills#bundled-skills).** Enseigner à `/run` et `/verify` comment compiler, lancer et piloter l'application de votre projet à partir d'un environnement propre en écrivant un [skill](/docs/fr/skills#run-and-verify-your-app) par projet |140| `/run-skill-generator` | **[Skill](/docs/fr/skills#bundled-skills).** Enseigner à `/run` et `/verify` comment compiler, lancer et piloter l'application de votre projet à partir d'un environnement propre en écrivant un [skill](/docs/fr/skills#run-and-verify-your-app) par projet |

Details

49 À partir d'aujourd'hui, vous avez accès à Claude Code, un agent de codage IA qui s'exécute dans49 À partir d'aujourd'hui, vous avez accès à Claude Code, un agent de codage IA qui s'exécute dans

50 votre terminal, lit votre base de code réelle et travaille sur des tâches réelles du début à la fin :50 votre terminal, lit votre base de code réelle et travaille sur des tâches réelles du début à la fin :

51 débogage, refactorisations, tests, PR. Ce n'est pas de l'autocomplétion et ce n'est pas une fenêtre de chat.51 débogage, refactorisations, tests, PR. Ce n'est pas de l'autocomplétion et ce n'est pas une fenêtre de chat.

52 Il édite des fichiers, exécute vos commandes et demande la permission avant tout ce qui est risqué.52 Il édite des fichiers et exécute vos commandes.

53 53 

54 Commencez en deux minutes :54 Commencez en deux minutes :

55 55 


58 claude58 claude

59 59 

60 Puis exécutez /init une fois. Claude lit votre projet et écrit un CLAUDE.md avec60 Puis exécutez /init une fois. Claude lit votre projet et écrit un CLAUDE.md avec

61 vos commandes de construction et conventions, afin que vous arrêtiez de réexpliquer les bases.61 vos commandes de build et conventions, afin que vous arrêtiez de réexpliquer les bases.

62 62 

63 Ensuite, essayez l'une de celles-ci sur le référentiel dans lequel vous êtes déjà :63 Ensuite, essayez l'une de celles-ci sur le référentiel dans lequel vous êtes déjà :

64 64 


67 - « Regardez mon diff de travail et dites-moi ce qui est risqué avant que je pousse »67 - « Regardez mon diff de travail et dites-moi ce qui est risqué avant que je pousse »

68 68 

69 Où va votre code : Claude Code s'exécute dans votre terminal et communique directement69 Où va votre code : Claude Code s'exécute dans votre terminal et communique directement

70 avec l'API d'Anthropic, sans serveurs tiers dans la boucle. Il demande avant70 avec l'API d'Anthropic. Avec notre plan Team ou Enterprise, Anthropic

71 d'éditer des fichiers ou d'exécuter des commandes. En vertu de notre plan Équipe ou Entreprise, Anthropic71 n'utilise pas votre code ou vos prompts pour entraîner ses modèles.

72 n'utilise pas votre code ou vos invites pour entraîner ses modèles.

73 Détails : https://code.claude.com/docs/en/data-usage72 Détails : https://code.claude.com/docs/en/data-usage

74 https://code.claude.com/docs/en/security73 https://code.claude.com/docs/en/security

75 74 


88 🚀 *Claude Code est en direct pour [équipe]*87 🚀 *Claude Code est en direct pour [équipe]*

89 88 

90 Agent de codage IA, s'exécute dans votre terminal, lit votre référentiel, fait du vrai travail :89 Agent de codage IA, s'exécute dans votre terminal, lit votre référentiel, fait du vrai travail :

91 bugs, refactorisations, tests, PR. Demande avant de toucher à quoi que ce soit.90 bugs, refactorisations, tests, PR.

92 91 

93 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`92 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`

94 93 

95 *Première chose à essayer* → exécutez `/init`, puis : « le test dans [fichier] est instable,94 *Première chose à essayer* → exécutez `/init`, puis : « le test dans [fichier] est instable,

96 découvrez pourquoi et corrigez-le. »95 découvrez pourquoi et corrigez-le. »

97 96 

98 🔒 S'exécute dans votre terminal, communique uniquement avec l'API d'Anthropic. En vertu de notre97 🔒 S'exécute dans votre terminal, communique directement avec l'API d'Anthropic. Avec notre

99 plan Équipe ou Entreprise, votre code et vos invites ne sont pas utilisés pour entraîner les modèles.98 plan Team ou Enterprise, votre code et vos prompts ne sont pas utilisés pour entraîner les modèles.

100 Utilisation des données → https://code.claude.com/docs/en/data-usage99 Utilisation des données → https://code.claude.com/docs/en/data-usage

101 100 

102 📚 Démarrage rapide · VS Code · Cours gratuit d'1 heure101 📚 Démarrage rapide · VS Code · Cours gratuit d'1 heure


183[Continuez avec « Commencez en deux minutes » de l'annonce standard]182[Continuez avec « Commencez en deux minutes » de l'annonce standard]

184 183 

185Une chose supplémentaire pour les pilotes : lors de votre premier changement multi-fichier, appuyez sur Maj+Tab184Une chose supplémentaire pour les pilotes : lors de votre premier changement multi-fichier, appuyez sur Maj+Tab

186jusqu'à ce que vous voyiez « plan ». Claude exposera exactement ce qu'il a l'intention de faire185jusqu'à ce que vous voyiez « plan ». Claude exposera ce qu'il a l'intention de faire

187avant de toucher à un fichier. C'est le moyen le plus rapide d'étalonner combien le faire confiance.186sans modifier votre code source. C'est le moyen le plus rapide d'étalonner à quel point lui faire confiance.

188```187```

189 188 

190<h3 id="champion-recruitment-dm">189<h3 id="champion-recruitment-dm">


299 298 

300Parfois, vous voulez que Claude demande avant chaque modification. Parfois, vous voulez juste qu'il le fasse. Vous ne devriez pas avoir à choisir une fois pour toutes.299Parfois, vous voulez que Claude demande avant chaque modification. Parfois, vous voulez juste qu'il le fasse. Vous ne devriez pas avoir à choisir une fois pour toutes.

301 300 

302*Maj+Tab* bascule entre ce que Claude peut faire sans demander : *Manual* (la valeur de paramètre `default`) demande avant les modifications de fichiers et la plupart des commandes shell, *acceptEdits* laisse les modifications de fichiers et les commandes de système de fichiers courantes passer tout en vérifiant avant les autres commandes shell, et *plan* propose des modifications pour votre approbation avant que quoi que ce soit ne soit touché. Le mode plan est le constructeur de confiance, alors commencez par là pour tout ce qui touche plusieurs fichiers.301*Maj+Tab* bascule entre ce que Claude peut faire sans demander : *Manual* (la valeur de paramètre `default`) demande avant les modifications de fichiers et la plupart des commandes shell, *acceptEdits* laisse les modifications de fichiers et les commandes de système de fichiers courantes passer tout en vérifiant avant les autres commandes shell, et *plan* effectue des recherches et propose des modifications sans toucher à votre code source. Le mode plan est le constructeur de confiance, alors commencez par là pour tout ce qui touche plusieurs fichiers.

303 302 

304*Essayez maintenant :* lors de votre prochaine refonte, appuyez sur Maj+Tab jusqu'à ce que vous voyiez « plan », puis décrivez la modification. Vous obtiendrez une proposition complète avant qu'un seul fichier ne bouge.303*Essayez maintenant :* lors de votre prochaine refonte, appuyez sur Maj+Tab jusqu'à ce que vous voyiez « plan », puis décrivez la modification. Vous obtiendrez une proposition complète à examiner.

305 304 

306📖 Modes de permission → https://code.claude.com/docs/en/permissions305📖 Modes de permission → https://code.claude.com/docs/en/permissions

307```306```


432Quelqu'un de votre équipe va demander « attendez, où va mon code ? »431Quelqu'un de votre équipe va demander « attendez, où va mon code ? »

433Voici la version courte que vous pouvez coller.432Voici la version courte que vous pouvez coller.

434 433 

435Basé sur les permissions par conception. Chaque modification de fichier, commande shell et appel externe est contrôlé par votre approbation. Le CLI s'exécute dans votre terminal et communique directement avec l'API d'Anthropic, sans serveurs tiers, et prend en charge le sandboxing optionnel au niveau du système d'exploitation pour les commandes shell. Sur un plan Team ou Enterprise, Anthropic n'utilise pas votre code ou vos invites pour entraîner ses modèles.434Un mode de permission détermine les actions que Claude peut effectuer sans vous demander au préalable. Le CLI s'exécute dans votre terminal, communique directement avec l'API d'Anthropic et prend en charge le sandboxing optionnel au niveau du système d'exploitation pour les commandes shell. Sur un plan Team ou Enterprise, Anthropic n'utilise pas votre code ou vos prompts pour entraîner ses modèles.

436 435 

437*Essayez maintenant :* enregistrez ces deux liens pour la prochaine fois que la question se pose. Ils répondent à la plupart des questions d'examen de sécurité.436*Essayez maintenant :* enregistrez ces deux liens pour la prochaine fois que la question se pose. Ils répondent à la plupart des questions d'examen de sécurité.

438 437 


471| - | - |470| - | - |

472| « Fonctionne-t-il dans VS Code ? » | Oui. Il existe une extension VS Code et un plugin JetBrains avec les mêmes fonctionnalités, intégrés dans votre éditeur. [VS Code →](/docs/fr/vs-code) |471| « Fonctionne-t-il dans VS Code ? » | Oui. Il existe une extension VS Code et un plugin JetBrains avec les mêmes fonctionnalités, intégrés dans votre éditeur. [VS Code →](/docs/fr/vs-code) |

473| « Dois-je configurer quelque chose en premier ? » | Non. Installez, puis exécutez `claude` dans n'importe quel dépôt. Exécutez `/init` une fois et c'est bon. [Démarrage rapide →](/docs/fr/quickstart) |472| « Dois-je configurer quelque chose en premier ? » | Non. Installez, puis exécutez `claude` dans n'importe quel dépôt. Exécutez `/init` une fois et c'est bon. [Démarrage rapide →](/docs/fr/quickstart) |

474| « Où va mon code ? » | L'interface de ligne de commande s'exécute dans votre terminal et envoie le contexte à l'API d'Anthropic pour l'inférence, sans serveurs tiers. Sur un plan Team ou Enterprise, votre code et vos invites ne sont pas utilisés pour entraîner les modèles. [Utilisation des données →](/docs/fr/data-usage) |473| « Où va mon code ? » | La CLI s'exécute dans votre terminal et envoie le contexte à l'API d'Anthropic pour l'inférence. Sur un plan Team ou Enterprise, votre code et vos prompts ne sont pas utilisés pour entraîner les modèles. [Utilisation des données →](/docs/fr/data-usage) |

475| « Peut-il voir tout mon dépôt ? » | Il lit ce à quoi vous lui donnez accès. Les lectures de fichiers dans votre répertoire de travail ne demandent pas de permission ; les invites de permission contrôlent les modifications, les commandes shell non-lecture seule et les lectures d'outils de fichiers en dehors de ce répertoire. Un ensemble intégré de commandes shell en lecture seule comme `ls` et `cat` s'exécute sans demander de permission ; limitez-le avec les [règles `denyRead` du sandbox](/docs/fr/sandboxing#filesystem-isolation). [Permissions →](/docs/fr/permissions) |474| « Peut-il voir tout mon dépôt ? » | Il lit ce à quoi vous lui donnez accès. Les lectures de fichiers dans votre répertoire de travail ne demandent pas de permission. [Permissions →](/docs/fr/permissions) |

476| « En quoi est-ce différent de Copilot ? » | Copilot complète les lignes. Claude Code est un agent qui lit les fichiers, exécute les commandes et effectue des modifications multi-fichiers. [Aperçu →](/docs/fr/overview) |475| « En quoi est-ce différent de Copilot ? » | Copilot complète les lignes. Claude Code est un agent qui lit les fichiers, exécute les commandes et effectue des modifications multi-fichiers. [Aperçu →](/docs/fr/overview) |

477| « Que devrais-je essayer en premier ? » | Un bug que vous avez remis à plus tard parce que c'est fastidieux. « Le test dans \[fichier] est instable, découvrez pourquoi. » [Démarrage rapide →](/docs/fr/quickstart) |476| « Que devrais-je essayer en premier ? » | Un bug que vous avez remis à plus tard parce que c'est fastidieux. « Le test dans \[fichier] est instable, découvrez pourquoi. » [Démarrage rapide →](/docs/fr/quickstart) |

478 477 

Details

226* **La session réceptrice invite pour les permissions** : Claude Code livre chaque message. Il retient un pour votre approbation seulement quand la session d'envoi s'identifie comme contournant les invites de permission.226* **La session réceptrice invite pour les permissions** : Claude Code livre chaque message. Il retient un pour votre approbation seulement quand la session d'envoi s'identifie comme contournant les invites de permission.

227* **La session réceptrice contourne les invites de permission** : Claude Code retient chaque message pour votre approbation. Il livre un seulement quand la session d'envoi s'identifie aussi comme contournant.227* **La session réceptrice contourne les invites de permission** : Claude Code retient chaque message pour votre approbation. Il livre un seulement quand la session d'envoi s'identifie aussi comme contournant.

228 228 

229Quand le défaut retient un message, Claude Code ouvre une boîte de dialogue d'approbation dans la session réceptrice. La boîte de dialogue affiche l'expéditeur et un aperçu :229Quand le défaut retient un message dans une session de terminal interactif, Claude Code y ouvre une boîte de dialogue d'approbation. La boîte de dialogue affiche l'expéditeur et un aperçu :

230 230 

231* **Approuver** livre ce message à Claude.231* **Approuver** livre ce message à Claude.

232* **Refuser**, ou fermer la boîte de dialogue, le supprime.232* **Refuser**, ou fermer la boîte de dialogue, le supprime.


234* Pendant qu'aucun terminal n'est attaché à une [session en arrière-plan](/docs/fr/agent-view), Claude Code laisse la boîte de dialogue ouverte au-delà de la date limite. Après que vous attachiez, si la boîte de dialogue reste sans réponse pendant une période de date limite complète, Claude Code la ferme et supprime le message.234* Pendant qu'aucun terminal n'est attaché à une [session en arrière-plan](/docs/fr/agent-view), Claude Code laisse la boîte de dialogue ouverte au-delà de la date limite. Après que vous attachiez, si la boîte de dialogue reste sans réponse pendant une période de date limite complète, Claude Code la ferme et supprime le message.

235* Si la classe de mode de permission de cette session change pendant que les messages sont retenus, Claude Code réapplique les règles entrantes, livre les messages qu'elles acceptent maintenant, et affiche un avis.235* Si la classe de mode de permission de cette session change pendant que les messages sont retenus, Claude Code réapplique les règles entrantes, livre les messages qu'elles acceptent maintenant, et affiche un avis.

236 236 

237Une session dans l'extension VS Code ou l'application Desktop ne peut pas afficher la boîte de dialogue. Claude Code y garde un message retenu jusqu'à la même date limite, comme le décrit [Sessions non-interactives](#non-interactive-sessions).

238 

237Claude Code retient au maximum 100 messages, et au-delà de cela supprime les plus anciens.239Claude Code retient au maximum 100 messages, et au-delà de cela supprime les plus anciens.

238 240 

239<h3 id="non-interactive-sessions">241<h3 id="non-interactive-sessions">

env-vars.md +376 −374

Details

124 Variables124 Variables

125</h2>125</h2>

126 126 

127Les variables numériques telles que les délais d'expiration, les budgets de jetons et les nombres de tentatives acceptent la notation scientifique et les orthographes avec séparateurs de chiffres en plus des chiffres simples, sauf si la ligne d'une variable indique qu'elle n'accepte que des chiffres simples. Par exemple, Claude Code lit `2e3` comme 2000 et `64_000` comme 64000. Avant la v2.1.211, ces orthographes pouvaient définir silencieusement une valeur beaucoup plus petite, comme `1e6` définissant un délai d'expiration à 1.127Les variables numériques telles que les délais d'expiration, les budgets de tokens et les nombres de nouvelles tentatives acceptent la notation scientifique et les séparateurs de chiffres en plus des chiffres simples, sauf lorsque la ligne d'une variable indique qu'elle n'accepte que des chiffres simples. Par exemple, Claude Code lit `2e3` comme 2000 et `64_000` comme 64000. Avant la v2.1.211, ces écritures pouvaient définir silencieusement une valeur beaucoup plus petite, par exemple `1e6` fixant un délai d'expiration à 1.

128 128 

129<Note>129<Note>

130 Pour les variables qui activent ou désactivent un comportement, définissez `1`, `true`, `yes` ou `on` pour l'activer et `0`, `false`, `no` ou `off` pour le désactiver, en n'importe quelle casse.130 Pour les variables qui activent ou désactivent un comportement, définissez `1`, `true`, `yes` ou `on` pour l'activer et `0`, `false`, `no` ou `off` pour le désactiver, quelle que soit la casse.

131 131 

132 Certaines variables ne lisent que si vous les avez définies, donc toute valeur non vide, y compris `0`, active le comportement, et vous désactivez le comportement en supprimant la variable ou en la définissant sur une valeur vide. Ces variables fonctionnent de cette façon :132 Certaines variables vérifient uniquement si vous les avez définies : toute valeur non vide, y compris `0`, active donc le comportement, et vous le désactivez en supprimant la variable ou en lui attribuant une valeur vide. Ces variables fonctionnent ainsi :

133 133 

134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

135 * `DISABLE_TELEMETRY`135 * `DISABLE_TELEMETRY`


138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

139 * `IS_DEMO`139 * `IS_DEMO`

140 140 

141 Une autre variable a sa propre règle : `FORCE_HYPERLINK` lit un nombre, donc seul `0` la désactive. La ligne de chaque variable énonce également sa propre règle.141 Une autre variable a sa propre règle : `FORCE_HYPERLINK` lit un nombre, donc seul `0` la désactive. La ligne de chaque variable indique également sa propre règle.

142</Note>142</Note>

143 143 

144| Variable | Objectif |144| Variable | Objectif |

145| :- | :- |145| :- | :- |

146| `ANTHROPIC_API_KEY` | Clé API envoyée en tant qu'en-tête `X-Api-Key`. Lorsqu'elle est définie, cette clé est utilisée à la place de votre abonnement Claude Pro, Max, Team ou Enterprise, même si vous êtes connecté. En mode non interactif (`-p`), la clé est toujours utilisée lorsqu'elle est présente. En mode interactif, vous êtes invité à approuver la clé une fois avant qu'elle ne remplace votre abonnement. Pour utiliser votre abonnement à la place, exécutez `unset ANTHROPIC_API_KEY` |146| `ANTHROPIC_API_KEY` | Clé API envoyée dans l'en-tête `X-Api-Key`. Lorsqu'elle est définie, cette clé est utilisée à la place de votre abonnement Claude Pro, Max, Team ou Enterprise, même si vous êtes connecté. En mode non interactif (`-p`), la clé est toujours utilisée lorsqu'elle est présente. En mode interactif, il vous est demandé d'approuver la clé une fois avant qu'elle ne remplace votre abonnement. Pour utiliser plutôt votre abonnement, exécutez `unset ANTHROPIC_API_KEY` |

147| `ANTHROPIC_AUTH_TOKEN` | Valeur personnalisée pour l'en-tête `Authorization` (la valeur que vous définissez ici sera préfixée par `Bearer `) |147| `ANTHROPIC_AUTH_TOKEN` | Valeur personnalisée pour l'en-tête `Authorization` (la valeur définie ici sera préfixée par `Bearer `) |

148| `ANTHROPIC_AWS_API_KEY` | Clé API de l'espace de travail pour [Claude Platform on AWS](/docs/fr/claude-platform-on-aws), générée dans la console AWS. Envoyée en tant que `x-api-key` et a la priorité sur AWS SigV4 |148| `ANTHROPIC_AWS_API_KEY` | Clé API d'espace de travail pour [Claude Platform on AWS](/docs/fr/claude-platform-on-aws), générée dans la console AWS. Envoyée en tant que `x-api-key` et prioritaire sur AWS SigV4 |

149| `ANTHROPIC_AWS_BASE_URL` | Remplacez l'URL du point de terminaison [Claude Platform on AWS](/docs/fr/claude-platform-on-aws). Utilisez pour les régions personnalisées ou lors du routage via une [passerelle LLM](/docs/fr/llm-gateway). Par défaut `https://aws-external-anthropic.{region}.api.aws`. Claude Code résout la région avec [la même priorité que sur Amazon Bedrock](/docs/fr/amazon-bedrock#3-configure-claude-code) |149| `ANTHROPIC_AWS_BASE_URL` | Remplace l'URL de l'endpoint [Claude Platform on AWS](/docs/fr/claude-platform-on-aws). À utiliser pour des régions personnalisées ou lors du routage via une [passerelle LLM](/docs/fr/llm-gateway). Par défaut `https://aws-external-anthropic.{region}.api.aws`. Claude Code résout la région selon la [même priorité que sur Amazon Bedrock](/docs/fr/amazon-bedrock#3-configure-claude-code) |

150| `ANTHROPIC_AWS_WORKSPACE_ID` | Requis pour [Claude Platform on AWS](/docs/fr/claude-platform-on-aws). Envoyé à chaque requête en tant qu'en-tête `anthropic-workspace-id` |150| `ANTHROPIC_AWS_WORKSPACE_ID` | Requis pour [Claude Platform on AWS](/docs/fr/claude-platform-on-aws). Envoyé avec chaque requête dans l'en-tête `anthropic-workspace-id` |

151| `ANTHROPIC_BASE_URL` | Remplacez le point de terminaison API pour router les requêtes via un proxy ou une passerelle. Lorsqu'il est défini sur un hôte non-propriétaire, [la recherche d'outils MCP](/docs/fr/mcp#scale-with-mcp-tool-search) est désactivée par défaut. Définissez `ENABLE_TOOL_SEARCH=true` si votre proxy transfère les blocs `tool_reference`. À partir de la v2.1.196, [Remote Control](/docs/fr/remote-control#requirements) est désactivé lorsque cela pointe vers un hôte autre que `api.anthropic.com`, correspondant à son comportement sur Amazon Bedrock, Google Cloud's Agent Platform et Microsoft Foundry |151| `ANTHROPIC_BASE_URL` | Remplace l'endpoint de l'API pour router les requêtes via un proxy ou une passerelle. Lorsqu'il pointe vers un hôte non first-party, [la recherche d'outils MCP](/docs/fr/mcp#scale-with-mcp-tool-search) est désactivée par défaut. Définissez `ENABLE_TOOL_SEARCH=true` si votre proxy transmet les blocs `tool_reference`. Depuis la v2.1.196, [Remote Control](/docs/fr/remote-control#requirements) est désactivé lorsque cette variable pointe vers un hôte autre que `api.anthropic.com`, comme c'est le cas sur Amazon Bedrock, Google Cloud's Agent Platform et Microsoft Foundry |

152| `ANTHROPIC_BEDROCK_BASE_URL` | Remplacez l'URL du point de terminaison Amazon Bedrock. Utilisez pour les points de terminaison Amazon Bedrock personnalisés ou lors du routage via une [passerelle LLM](/docs/fr/llm-gateway). Voir [Amazon Bedrock](/docs/fr/amazon-bedrock) |152| `ANTHROPIC_BEDROCK_BASE_URL` | Remplace l'URL de l'endpoint Amazon Bedrock. À utiliser pour des endpoints Amazon Bedrock personnalisés ou lors du routage via une [passerelle LLM](/docs/fr/llm-gateway). Voir [Amazon Bedrock](/docs/fr/amazon-bedrock) |

153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Remplacez l'URL du point de terminaison Amazon Bedrock Mantle. Voir [Point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint) |153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Remplace l'URL de l'endpoint Amazon Bedrock Mantle. Voir [Endpoint Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint) |

154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Préfixe du profil d'inférence inter-régions (`us`, `eu`, `apac`, `jp`, `au` ou `global`) que Claude Code essaie d'abord à la place de celui dérivé de la région AWS. Ignoré dans les régions AWS GovCloud. Nécessite Claude Code v2.1.224 ou ultérieur. Voir [Amazon Bedrock](/docs/fr/amazon-bedrock#cross-region-inference-profile-prefixes) |154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Préfixe de profil d'inférence interrégional (`us`, `eu`, `apac`, `jp`, `au` ou `global`) que Claude Code essaie en premier au lieu de celui dérivé de la région AWS. Ignoré dans les régions AWS GovCloud. Nécessite Claude Code v2.1.224 ou ultérieur. Voir [Amazon Bedrock](/docs/fr/amazon-bedrock#cross-region-inference-profile-prefixes) |

155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Niveau de service](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) Amazon Bedrock (`default`, `flex` ou `priority`). Envoyé en tant qu'en-tête `X-Amzn-Bedrock-Service-Tier`. Voir [Amazon Bedrock](/docs/fr/amazon-bedrock#service-tiers) |155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Niveau de service](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) Amazon Bedrock (`default`, `flex` ou `priority`). Envoyé dans l'en-tête `X-Amzn-Bedrock-Service-Tier`. Voir [Amazon Bedrock](/docs/fr/amazon-bedrock#service-tiers) |

156| `ANTHROPIC_BETAS` | Liste séparée par des virgules de valeurs d'en-tête `anthropic-beta` supplémentaires à inclure dans les requêtes API. Claude Code envoie déjà les en-têtes bêta dont il a besoin ; utilisez ceci pour vous inscrire à une [bêta API Anthropic](https://platform.claude.com/docs/en/api/beta-headers) avant que Claude Code n'ajoute le support natif. Contrairement au [drapeau `--betas`](/docs/fr/cli-reference#cli-flags), qui nécessite l'authentification par clé API, cette variable fonctionne avec toutes les méthodes d'authentification, y compris l'abonnement Claude.ai |156| `ANTHROPIC_BETAS` | Liste, séparée par des virgules, de valeurs d'en-tête `anthropic-beta` supplémentaires à inclure dans les requêtes API. Claude Code envoie déjà les en-têtes bêta dont il a besoin ; utilisez cette variable pour activer une [bêta de l'API Anthropic](https://platform.claude.com/docs/en/api/beta-headers) avant que Claude Code n'en ajoute la prise en charge native. Contrairement au [flag `--betas`](/docs/fr/cli-reference#cli-flags), qui nécessite une authentification par clé API, cette variable fonctionne avec toutes les méthodes d'authentification, y compris l'abonnement Claude.ai |

157| `ANTHROPIC_CUSTOM_HEADERS` | En-têtes personnalisés à ajouter aux requêtes (format `Name: Value`, séparés par des sauts de ligne pour plusieurs en-têtes). Si un nom ou une valeur contient un caractère qu'un en-tête HTTP ne peut pas transporter, comme un guillemet courbe ou un espace de largeur zéro, la requête échoue avec une erreur qui identifie la paire par position. Nécessite Claude Code v2.1.227 ou ultérieur. [Valeur d'en-tête de requête invalide](/docs/fr/errors#invalid-request-header-value) énumère l'ensemble exact des caractères et où la vérification s'exécute. Une valeur qui définit un en-tête d'authentification, d'organisation, de locataire, de routage ou de comportement API, comme `Authorization` ou `Host`, compte comme un [paramètre qui nécessite une approbation](/docs/fr/server-managed-settings#environment-variables-and-the-approval-dialog) lorsque les paramètres gérés par le serveur le livrent. À partir des paramètres de projet ou locaux, une telle valeur suit les [règles pour quand les valeurs `env` s'appliquent](/docs/fr/settings-reference#when-claude-code-applies-env-values) |157| `ANTHROPIC_CUSTOM_HEADERS` | En-têtes personnalisés à ajouter aux requêtes (format `Name: Value`, séparés par des retours à la ligne pour plusieurs en-têtes). Si un nom ou une valeur contient un caractère qu'un en-tête HTTP ne peut pas transporter, comme un guillemet typographique ou un espace de largeur nulle, la requête échoue avec une erreur qui identifie la paire par sa position. Nécessite Claude Code v2.1.227 ou ultérieur. [Invalid request header value](/docs/fr/errors#invalid-request-header-value) indique le jeu de caractères exact et l'endroit où la vérification s'effectue. Une valeur qui définit un en-tête d'identifiants, d'organisation ou de tenant, de routage ou de comportement de l'API, comme `Authorization` ou `Host`, compte comme un [paramètre nécessitant une approbation](/docs/fr/server-managed-settings#environment-variables-and-the-approval-dialog) lorsque des paramètres gérés par le serveur la fournissent. Depuis les paramètres de projet ou locaux, une telle valeur suit les [règles déterminant quand les valeurs `env` s'appliquent](/docs/fr/settings-reference#when-claude-code-applies-env-values) |

158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID de modèle à ajouter en tant qu'entrée personnalisée dans le sélecteur `/model`. Utilisez ceci pour rendre un modèle non standard ou spécifique à la passerelle sélectionnable sans remplacer les alias intégrés. Voir [Configuration du modèle](/docs/fr/model-config#add-a-custom-model-option) |158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID de modèle à ajouter comme entrée personnalisée dans le sélecteur `/model`. Utilisez-la pour rendre sélectionnable un modèle non standard ou propre à une passerelle sans remplacer les alias intégrés. Voir [Configuration du modèle](/docs/fr/model-config#add-a-custom-model-option) |

159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Description d'affichage pour l'entrée de modèle personnalisée dans le sélecteur `/model`. Par défaut `Custom model (<model-id>)` lorsqu'il n'est pas défini |159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Description affichée pour l'entrée de modèle personnalisé dans le sélecteur `/model`. Par défaut `Custom model (<model-id>)` lorsqu'elle n'est pas définie |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nom d'affichage pour l'entrée de modèle personnalisée dans le sélecteur `/model`. Lorsqu'il n'est pas défini, l'entrée affiche le nom du modèle si Claude Code [reconnaît l'ID](/docs/fr/model-config#customize-pinned-model-display-and-capabilities), et l'ID du modèle sinon |160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nom affiché pour l'entrée de modèle personnalisé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, l'entrée affiche le nom du modèle si Claude Code [reconnaît l'ID](/docs/fr/model-config#customize-pinned-model-display-and-capabilities), et l'ID du modèle sinon |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Liste séparée par des virgules des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) que le modèle personnalisé supporte, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Liste, séparée par des virgules, des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) prises en charge par le modèle personnalisé, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID de modèle auquel l'alias `fable` se résout, et l'ID que Claude Code reconnaît comme un modèle Fable pour [le basculement automatique du modèle](/docs/fr/model-config#automatic-model-fallback) sur les fournisseurs tiers. Voir [Configuration du modèle](/docs/fr/model-config#environment-variables) |162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID de modèle vers lequel l'alias `fable` est résolu, et ID que Claude Code reconnaît comme un modèle Fable pour le [basculement automatique de modèle](/docs/fr/model-config#automatic-model-fallback) chez les fournisseurs tiers. Voir [Configuration du modèle](/docs/fr/model-config#environment-variables) |

163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Description d'affichage pour le modèle Fable épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche une description par défaut qui commence par `Custom Fable model`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Description affichée pour le modèle Fable épinglé dans le sélecteur `/model`. Lorsqu'elle n'est pas définie, la ligne affiche une description par défaut commençant par `Custom Fable model`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nom d'affichage pour le modèle Fable épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche le nom du modèle si Claude Code reconnaît l'ID épinglé, et l'ID épinglé sinon. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nom affiché pour le modèle Fable épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche le nom du modèle si Claude Code reconnaît l'ID épinglé, et l'ID épinglé sinon. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Liste séparée par des virgules des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) que le modèle Fable épinglé supporte, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Liste, séparée par des virgules, des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) prises en charge par le modèle Fable épinglé, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID de modèle auquel l'alias `haiku` se résout, également utilisé pour [la fonctionnalité d'arrière-plan](/docs/fr/costs#background-token-usage). Voir [Configuration du modèle](/docs/fr/model-config#environment-variables) |166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID de modèle vers lequel l'alias `haiku` est résolu, également utilisé pour les [fonctionnalités en arrière-plan](/docs/fr/costs#background-token-usage). Voir [Configuration du modèle](/docs/fr/model-config#environment-variables) |

167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Description d'affichage pour le modèle Haiku épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche une description par défaut qui commence par `Custom Haiku model`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Description affichée pour le modèle Haiku épinglé dans le sélecteur `/model`. Lorsqu'elle n'est pas définie, la ligne affiche une description par défaut commençant par `Custom Haiku model`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nom d'affichage pour le modèle Haiku épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche le nom du modèle si Claude Code reconnaît l'ID épinglé, et l'ID épinglé sinon. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nom affiché pour le modèle Haiku épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche le nom du modèle si Claude Code reconnaît l'ID épinglé, et l'ID épinglé sinon. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Liste séparée par des virgules des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) que le modèle Haiku épinglé supporte, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Liste, séparée par des virgules, des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) prises en charge par le modèle Haiku épinglé, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

170| `ANTHROPIC_DEFAULT_MODEL` | Modèle sur lequel les nouvelles sessions commencent par défaut. Nécessite Claude Code v2.1.236 ou ultérieur. Voir [Définir un modèle par défaut pour les nouvelles sessions](/docs/fr/model-config#set-a-default-model-for-new-sessions) |170| `ANTHROPIC_DEFAULT_MODEL` | Modèle sur lequel les nouvelles sessions démarrent par défaut. Nécessite Claude Code v2.1.236 ou ultérieur. Voir [Définir un modèle par défaut pour les nouvelles sessions](/docs/fr/model-config#set-a-default-model-for-new-sessions) |

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID de modèle auquel l'alias `opus` se résout, et que `opusplan` utilise tandis que Plan Mode est actif. Voir [Configuration du modèle](/docs/fr/model-config#environment-variables) |171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID de modèle vers lequel l'alias `opus` est résolu, et que `opusplan` utilise lorsque le mode plan est actif. Voir [Configuration du modèle](/docs/fr/model-config#environment-variables) |

172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Description d'affichage pour le modèle Opus épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche une description par défaut qui commence par `Custom Opus model`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Description affichée pour le modèle Opus épinglé dans le sélecteur `/model`. Lorsqu'elle n'est pas définie, la ligne affiche une description par défaut commençant par `Custom Opus model`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nom d'affichage pour le modèle Opus épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche le nom du modèle si Claude Code reconnaît l'ID épinglé, et l'ID épinglé sinon. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nom affiché pour le modèle Opus épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche le nom du modèle si Claude Code reconnaît l'ID épinglé, et l'ID épinglé sinon. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Liste séparée par des virgules des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) que le modèle Opus épinglé supporte, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Liste, séparée par des virgules, des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) prises en charge par le modèle Opus épinglé, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID de modèle auquel l'alias `sonnet` se résout, et que `opusplan` utilise lorsque Plan Mode n'est pas actif. Voir [Configuration du modèle](/docs/fr/model-config#environment-variables) |175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID de modèle vers lequel l'alias `sonnet` est résolu, et que `opusplan` utilise lorsque le mode plan n'est pas actif. Voir [Configuration du modèle](/docs/fr/model-config#environment-variables) |

176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Description d'affichage pour le modèle Sonnet épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche une description par défaut qui commence par `Custom Sonnet model`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Description affichée pour le modèle Sonnet épinglé dans le sélecteur `/model`. Lorsqu'elle n'est pas définie, la ligne affiche une description par défaut commençant par `Custom Sonnet model`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nom d'affichage pour le modèle Sonnet épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche le nom du modèle si Claude Code reconnaît l'ID épinglé, et l'ID épinglé sinon. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nom affiché pour le modèle Sonnet épinglé dans le sélecteur `/model`. Lorsqu'il n'est pas défini, la ligne affiche le nom du modèle si Claude Code reconnaît l'ID épinglé, et l'ID épinglé sinon. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Liste séparée par des virgules des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) que le modèle Sonnet épinglé supporte, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Liste, séparée par des virgules, des [capacités](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) prises en charge par le modèle Sonnet épinglé, par exemple `effort,thinking`. Voir [Configuration du modèle](/docs/fr/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_FEDERATION_RULE_ID` | ID de règle de fédération pour [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Lorsque vous le définissez avec `ANTHROPIC_ORGANIZATION_ID`, Claude Code sélectionne les identifiants de fédération, qui sont classés au-dessus de votre identifiant `/login`. Voir [priorité d'authentification](/docs/fr/authentication#authentication-precedence) |179| `ANTHROPIC_FEDERATION_RULE_ID` | ID de règle de fédération pour [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Lorsque vous la définissez avec `ANTHROPIC_ORGANIZATION_ID`, Claude Code sélectionne les identifiants de fédération, qui ont priorité sur vos identifiants `/login`. Voir [priorité d'authentification](/docs/fr/authentication#authentication-precedence) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | Clé API pour l'authentification Microsoft Foundry (voir [Microsoft Foundry](/docs/fr/microsoft-foundry)) |180| `ANTHROPIC_FOUNDRY_API_KEY` | Clé API pour l'authentification Microsoft Foundry (voir [Microsoft Foundry](/docs/fr/microsoft-foundry)) |

181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Jeton porteur pour l'authentification Microsoft Foundry, comme un jeton d'accès Microsoft Entra. Claude Code l'envoie en tant qu'en-tête `Authorization: Bearer`. A la priorité sur `ANTHROPIC_FOUNDRY_API_KEY` et sur la chaîne d'authentification par défaut Azure. Voir [Microsoft Foundry](/docs/fr/microsoft-foundry). Nécessite Claude Code v2.1.203 ou ultérieur |181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Jeton Bearer pour l'authentification Microsoft Foundry, tel qu'un jeton d'accès Microsoft Entra. Claude Code l'envoie dans l'en-tête `Authorization: Bearer`. Prioritaire sur `ANTHROPIC_FOUNDRY_API_KEY` et sur la chaîne d'identifiants Azure par défaut. Voir [Microsoft Foundry](/docs/fr/microsoft-foundry). Nécessite Claude Code v2.1.203 ou ultérieur |

182| `ANTHROPIC_FOUNDRY_BASE_URL` | URL de base complète pour la ressource Microsoft Foundry (par exemple, `https://my-resource.services.ai.azure.com/anthropic`). Alternative à `ANTHROPIC_FOUNDRY_RESOURCE` (voir [Microsoft Foundry](/docs/fr/microsoft-foundry)) |182| `ANTHROPIC_FOUNDRY_BASE_URL` | URL de base complète de la ressource Microsoft Foundry (par exemple, `https://my-resource.services.ai.azure.com/anthropic`). Alternative à `ANTHROPIC_FOUNDRY_RESOURCE` (voir [Microsoft Foundry](/docs/fr/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nom de la ressource Microsoft Foundry (par exemple, `my-resource`). Claude Code [refuse une URL ou un nom d'hôte](/docs/fr/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Requis si `ANTHROPIC_FOUNDRY_BASE_URL` n'est pas définie (voir [Microsoft Foundry](/docs/fr/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nom de la ressource Microsoft Foundry (par exemple, `my-resource`). Claude Code [refuse une URL ou un nom d'hôte](/docs/fr/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Requis si `ANTHROPIC_FOUNDRY_BASE_URL` n'est pas défini (voir [Microsoft Foundry](/docs/fr/microsoft-foundry)) |

184| `ANTHROPIC_MODEL` | Nom du paramètre de modèle à utiliser (voir [Configuration du modèle](/docs/fr/model-config#environment-variables)) |184| `ANTHROPIC_MODEL` | Nom du paramètre de modèle à utiliser (voir [Configuration du modèle](/docs/fr/model-config#environment-variables)) |

185| `ANTHROPIC_ORGANIZATION_ID` | ID d'organisation pour [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Définissez-le avec `ANTHROPIC_FEDERATION_RULE_ID`. Voir [priorité d'authentification](/docs/fr/authentication#authentication-precedence) |185| `ANTHROPIC_ORGANIZATION_ID` | ID d'organisation pour [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Définissez-le avec `ANTHROPIC_FEDERATION_RULE_ID`. Voir [priorité d'authentification](/docs/fr/authentication#authentication-precedence) |

186| `ANTHROPIC_PROFILE` | Nom du profil Anthropic avec lequel s'authentifier, comme celui créé par [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) ou par [connexion à un compte Console sans clé API](/docs/fr/authentication#sign-in-without-an-api-key). Voir [priorité d'authentification](/docs/fr/authentication#authentication-precedence) |186| `ANTHROPIC_PROFILE` | Nom du profil Anthropic avec lequel s'authentifier, comme un profil créé par [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) ou par une [connexion à un compte Console sans clé API](/docs/fr/authentication#sign-in-without-an-api-key). Voir [priorité d'authentification](/docs/fr/authentication#authentication-precedence) |

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DÉPRÉCIÉ] Nom du [modèle de classe Haiku pour les tâches d'arrière-plan](/docs/fr/costs) |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DÉPRÉCIÉ] Nom du [modèle de classe Haiku pour les tâches en arrière-plan](/docs/fr/costs) |

188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Remplacez la région AWS pour le modèle de classe Haiku lors de l'utilisation d'Amazon Bedrock ou d'Amazon Bedrock Mantle. Sur Amazon Bedrock, cela ne prend effet que lorsque `ANTHROPIC_DEFAULT_HAIKU_MODEL` ou le `ANTHROPIC_SMALL_FAST_MODEL` déprécié est également défini, car Amazon Bedrock exécute autrement les tâches d'arrière-plan sur le [modèle Sonnet par défaut ou le modèle principal](/docs/fr/amazon-bedrock#4-pin-model-versions) dans la région de la session |188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Remplace la région AWS pour le modèle de classe Haiku lors de l'utilisation d'Amazon Bedrock ou d'Amazon Bedrock Mantle. Sur Amazon Bedrock, cela ne prend effet que si `ANTHROPIC_DEFAULT_HAIKU_MODEL` ou la variable dépréciée `ANTHROPIC_SMALL_FAST_MODEL` est également définie, car sinon Amazon Bedrock exécute les tâches en arrière-plan sur le [modèle Sonnet par défaut ou le modèle principal](/docs/fr/amazon-bedrock#4-pin-model-versions) dans la région de la session |

189| `ANTHROPIC_VERTEX_BASE_URL` | Remplacez l'URL du point de terminaison Google Cloud's Agent Platform. Utilisez pour les points de terminaison Google Cloud's Agent Platform personnalisés ou lors du routage via une [passerelle LLM](/docs/fr/llm-gateway). Voir [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) |189| `ANTHROPIC_VERTEX_BASE_URL` | Remplace l'URL de l'endpoint de Google Cloud's Agent Platform. À utiliser pour des endpoints Google Cloud's Agent Platform personnalisés ou lors du routage via une [passerelle LLM](/docs/fr/llm-gateway). Voir [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID de projet GCP auquel les requêtes Google Cloud's Agent Platform sont adressées. Voir [Configurer les identifiants GCP](/docs/fr/google-vertex-ai#3-configure-gcp-credentials) |190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID du projet GCP auquel les requêtes Google Cloud's Agent Platform sont adressées. Voir [Configurer les identifiants GCP](/docs/fr/google-vertex-ai#3-configure-gcp-credentials) |

191| `ANTHROPIC_WORKSPACE_ID` | ID d'espace de travail pour [la fédération d'identité de charge de travail](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Définissez ceci lorsque votre règle de fédération est limitée à plus d'un espace de travail afin que l'échange de jetons sache quel espace de travail cibler |191| `ANTHROPIC_WORKSPACE_ID` | ID d'espace de travail pour la [fédération d'identité de charge de travail](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Définissez-le lorsque votre règle de fédération couvre plusieurs espaces de travail, afin que l'échange de jetons sache quel espace de travail cibler |

192| `API_FORCE_IDLE_TIMEOUT` | Remplacez le délai d'inactivité du corps de 5 minutes qui interrompt une réponse de modèle en continu lorsqu'aucun octet n'arrive. Définissez sur `0` pour désactiver le délai d'expiration, par exemple lorsqu'une [passerelle](/docs/fr/llm-gateway) lente ou un modèle local fait une pause plus longue que 5 minutes entre les chunks, ou `1` pour le maintenir activé pour chaque fournisseur. Lorsqu'il n'est pas défini, le délai d'expiration est actif sur les fournisseurs autres que l'API Anthropic directe, [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) et Amazon Bedrock avec `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` défini. Les [chiens de garde de flux](/docs/fr/network-config#streaming-idle-watchdogs) s'exécutent indépendamment et interrompent une longue pause silencieuse même lorsque vous définissez `0` ici |192| `API_FORCE_IDLE_TIMEOUT` | Remplace le délai d'inactivité de 5 minutes sur le corps de la réponse, qui interrompt une réponse de modèle en streaming lorsqu'aucun octet n'arrive. Définissez `0` pour désactiver ce délai, par exemple lorsqu'une [passerelle](/docs/fr/llm-gateway) lente ou un modèle local marque une pause de plus de 5 minutes entre deux fragments, ou `1` pour le maintenir actif pour tous les fournisseurs. Lorsque la variable n'est pas définie, le délai est actif chez les fournisseurs autres que l'API Anthropic directe, [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) et Amazon Bedrock avec `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` défini. Les [watchdogs de flux](/docs/fr/network-config#streaming-idle-watchdogs) fonctionnent indépendamment de celui-ci et interrompent une longue pause silencieuse même si vous définissez `0` ici |

193| `API_TIMEOUT_MS` | Délai d'expiration pour les requêtes API en millisecondes (par défaut : 600000, ou 10 minutes ; maximum : 2147483647). Augmentez ceci lorsque les requêtes expirent sur les réseaux lents ou lors du routage via un proxy. Les valeurs au-dessus du maximum débordent du minuteur sous-jacent et causent l'échec immédiat des requêtes |193| `API_TIMEOUT_MS` | Délai d'expiration des requêtes API en millisecondes (par défaut : 600000, soit 10 minutes ; maximum : 2147483647). Augmentez-le lorsque les requêtes expirent sur des réseaux lents ou lors du routage via un proxy. Les valeurs supérieures au maximum font déborder le minuteur sous-jacent et provoquent l'échec immédiat des requêtes |

194| `AWS_BEARER_TOKEN_BEDROCK` | Clé API Amazon Bedrock pour l'authentification (voir [Clés API Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | Clé API Amazon Bedrock pour l'authentification (voir [Clés API Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | Délai d'expiration par défaut d'une commande de l'outil Bash ou PowerShell au premier plan, en millisecondes (par défaut : 120000, soit 2 minutes). Une valeur par défaut supérieure à 30 minutes devient également la [limite de temps par défaut des commandes en arrière-plan](/docs/fr/tools-reference#time-limit-for-background-commands) dans les sessions sans surveillance. La limite de temps en arrière-plan nécessite Claude Code v2.1.285 ou version ultérieure |195| `BASH_DEFAULT_TIMEOUT_MS` | Délai d'expiration par défaut d'une commande de l'outil Bash ou PowerShell au premier plan, en millisecondes (par défaut : 120000, soit 2 minutes). Une valeur par défaut supérieure à 30 minutes devient également la [limite de temps par défaut des commandes en arrière-plan](/docs/fr/tools-reference#time-limit-for-background-commands) dans les sessions sans surveillance. La limite de temps en arrière-plan nécessite Claude Code v2.1.285 ou ultérieur |

196| `BASH_MAX_OUTPUT_LENGTH` | Nombre maximum de caractères de sortie bash que Claude Code relit dans le résultat d'une commande (par défaut : 30000 ; maximum : 150000). Si vous définissez le paramètre [`bashOutputMaxChars`](/docs/fr/settings-reference#bashoutputmaxchars), Claude Code ignore cette variable. Voir [Limites de sortie](/docs/fr/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Nombre maximal de caractères de la sortie bash que Claude Code relit dans le résultat d'une commande (par défaut : 30000 ; maximum : 150000). Si vous définissez le paramètre [`bashOutputMaxChars`](/docs/fr/settings-reference#bashoutputmaxchars), Claude Code ignore cette variable. Voir [Limites de sortie](/docs/fr/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | Délai d'expiration maximal que le modèle peut définir pour une commande de l'outil Bash ou PowerShell au premier plan, en millisecondes (par défaut : 600000, soit 10 minutes). Le plafond effectif est la plus grande valeur entre celle-ci et `BASH_DEFAULT_TIMEOUT_MS`. Un plafond effectif supérieur à 2 heures devient également la [limite de temps](/docs/fr/tools-reference#time-limit-for-background-commands) maximale des commandes en arrière-plan dans les sessions sans surveillance. La limite de temps en arrière-plan nécessite Claude Code v2.1.285 ou version ultérieure |197| `BASH_MAX_TIMEOUT_MS` | Délai d'expiration maximal que le modèle peut définir pour une commande de l'outil Bash ou PowerShell au premier plan, en millisecondes (par défaut : 600000, soit 10 minutes). Le plafond effectif est la plus grande valeur entre celle-ci et `BASH_DEFAULT_TIMEOUT_MS`. Un plafond effectif supérieur à 2 heures devient également la [limite de temps maximale des commandes en arrière-plan](/docs/fr/tools-reference#time-limit-for-background-commands) dans les sessions sans surveillance. La limite de temps en arrière-plan nécessite Claude Code v2.1.285 ou ultérieur |

198| `BETA_TRACING_ENDPOINT` | Point de terminaison OTLP pour [le traçage bêta détaillé](/docs/fr/monitoring-usage#traces-beta) : avec `ENABLE_BETA_TRACING_DETAILED=1`, les journaux et les traces vont là au lieu des exportateurs configurés. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) |198| `BETA_TRACING_ENDPOINT` | Endpoint OTLP pour le [traçage bêta détaillé](/docs/fr/monitoring-usage#traces-beta) : avec `ENABLE_BETA_TRACING_DETAILED=1`, les logs et les traces y sont envoyés au lieu des exportateurs configurés. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) |

199| `CCR_FORCE_BUNDLE` | Définissez sur `1` pour forcer [`claude --cloud`](/docs/fr/claude-code-on-the-web#send-local-repositories-without-github) à regrouper et télécharger votre référentiel local au lieu de le cloner à partir de son distant |199| `CCR_FORCE_BUNDLE` | Définissez `1` pour forcer [`claude --cloud`](/docs/fr/claude-code-on-the-web#send-local-repositories-without-github) à empaqueter et téléverser votre dépôt local au lieu de le cloner depuis son remote |

200| `CLAUDECODE` | Définissez sur `1` dans les sous-processus que Claude Code génère (outils Bash et PowerShell, sessions tmux, commandes [hook](/docs/fr/hooks), commandes [ligne d'état](/docs/fr/statusline), sous-processus [serveur MCP](/docs/fr/mcp) stdio). Les extensions IDE définissent également ceci dans leurs terminaux intégrés. Utilisez pour détecter quand un script s'exécute à l'intérieur d'un sous-processus généré par Claude Code. Pour vérifier si le processus actuel a été généré directement par un appel d'outil ou un hook, plutôt qu'à l'intérieur d'un serveur MCP stdio que Claude Code a démarré, utilisez `CLAUDE_CODE_CHILD_SESSION` à la place |200| `CLAUDECODE` | Défini à `1` dans les sous-processus lancés par Claude Code (outils Bash et PowerShell, sessions tmux, commandes de [hook](/docs/fr/hooks), commandes de [barre de statut](/docs/fr/statusline), sous-processus de [serveur MCP](/docs/fr/mcp) stdio). Les extensions IDE le définissent également dans leurs terminaux intégrés. Utilisez-la pour détecter si un script s'exécute dans un sous-processus lancé par Claude Code. Pour vérifier si le processus actuel a été lancé directement par un appel d'outil ou un hook, plutôt qu'au sein d'un serveur MCP stdio démarré par Claude Code, utilisez plutôt `CLAUDE_CODE_CHILD_SESSION` |

201| `CLAUDE_AFK_COUNTDOWN_MS` | Combien de millisecondes avant la continuation automatique le compte à rebours à l'écran apparaît sur un dialogue [`AskUserQuestion`](/docs/fr/tools-reference) sans réponse. Par défaut `20000` (20 secondes), limité au délai d'expiration de la continuation automatique. N'a aucun effet sauf si la continuation automatique est activée ; voir le paramètre [`askUserQuestionTimeout`](/docs/fr/settings-reference#askuserquestiontimeout) et `CLAUDE_AFK_TIMEOUT_MS`. Nécessite Claude Code v2.1.198 ou ultérieur |201| `CLAUDE_AFK_COUNTDOWN_MS` | Nombre de millisecondes avant la poursuite automatique auquel le compte à rebours apparaît à l'écran sur une boîte de dialogue [`AskUserQuestion`](/docs/fr/tools-reference) sans réponse. Par défaut `20000` (20 secondes), plafonné au délai de poursuite automatique. Sans effet si la poursuite automatique n'est pas activée ; voir le paramètre [`askUserQuestionTimeout`](/docs/fr/settings-reference#askuserquestiontimeout) et `CLAUDE_AFK_TIMEOUT_MS`. Nécessite Claude Code v2.1.198 ou ultérieur |

202| `CLAUDE_AFK_TIMEOUT_MS` | Combien de millisecondes de temps d'inactivité avant qu'un dialogue [`AskUserQuestion`](/docs/fr/tools-reference) sans réponse ne continue automatiquement sans vous. La continuation automatique est désactivée par défaut ; activez-la avec le paramètre [`askUserQuestionTimeout`](/docs/fr/settings-reference#askuserquestiontimeout). Cette variable est une substitution pour les démos et les tests automatisés : lorsqu'elle est définie, elle a la priorité sur ce paramètre et active la continuation automatique même lorsque le paramètre n'est pas défini ou est `never`. Définir `0` ne désactive pas le délai d'expiration ; cela ferme le dialogue immédiatement. Dans v2.1.198 et v2.1.199, la continuation automatique était activée par défaut avec un délai d'expiration de `60000` (60 secondes). Nécessite Claude Code v2.1.198 ou ultérieur |202| `CLAUDE_AFK_TIMEOUT_MS` | Nombre de millisecondes d'inactivité avant qu'une boîte de dialogue [`AskUserQuestion`](/docs/fr/tools-reference) sans réponse ne se poursuive automatiquement sans vous. La poursuite automatique est désactivée par défaut ; activez-la avec le paramètre [`askUserQuestionTimeout`](/docs/fr/settings-reference#askuserquestiontimeout). Cette variable est un remplacement destiné aux démos et aux tests automatisés : lorsqu'elle est définie, elle a priorité sur ce paramètre et active la poursuite automatique même si le paramètre n'est pas défini ou vaut `never`. Définir `0` ne désactive pas le délai ; cela ferme immédiatement la boîte de dialogue. Dans les v2.1.198 et v2.1.199, la poursuite automatique était activée par défaut avec un délai de `60000` (60 secondes). Nécessite Claude Code v2.1.198 ou ultérieur |

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Définissez sur `1` pour désactiver tous les types de [sous-agents](/docs/fr/sub-agents) intégrés tels que Explore et Plan. S'applique uniquement en mode non interactif (le drapeau `-p`). Utile pour les utilisateurs du SDK qui veulent une ardoise vierge. Cela supprime également `general-purpose`, le sous-agent que Claude Code exécute lorsqu'un appel d'outil Agent omet `subagent_type`. Un tel appel échoue alors avec [`subagent_type is required`](/docs/fr/errors#subagent-type-is-required) |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Définissez `1` pour désactiver tous les types de [sous-agents](/docs/fr/sub-agents) intégrés tels qu'Explore et Plan. S'applique uniquement en mode non interactif (le flag `-p`). Utile pour les utilisateurs du SDK qui veulent partir de zéro. Cela supprime également `general-purpose`, le sous-agent que Claude Code exécute lorsqu'un appel de l'outil Agent omet `subagent_type`. Un tel appel échoue alors avec [`subagent_type is required`](/docs/fr/errors#subagent-type-is-required) |

204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Définissez sur `1` pour ignorer le préfixe `mcp__<server>__` sur les noms d'outils des serveurs MCP créés par le SDK. Les outils utilisent leurs noms d'origine. Utilisation du SDK uniquement |204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Définissez `1` pour omettre le préfixe `mcp__<server>__` des noms d'outils provenant de serveurs MCP créés par le SDK. Les outils utilisent leurs noms d'origine. Usage SDK uniquement |

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Délai d'expiration de stagnation en millisecondes pour les sous-agents. Par défaut `600000` (10 minutes) ; si vous augmentez `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tandis que le chien de garde de flux est activé, la valeur par défaut augmente avec lui, comme [Gérer les réponses API lentes ou bloquées](/docs/fr/agent-sdk/typescript#handle-slow-or-stalled-api-responses) le décrit. Le minuteur se réinitialise à chaque événement de progression en continu ; si aucune progression n'arrive dans la fenêtre, Claude Code interrompt le sous-agent et signale la stagnation au parent |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Délai de blocage en millisecondes pour les sous-agents. Par défaut `600000` (10 minutes) ; si vous augmentez `CLAUDE_STREAM_IDLE_TIMEOUT_MS` alors que le watchdog de flux est actif, la valeur par défaut augmente avec lui, comme le décrit [Gérer les réponses API lentes ou bloquées](/docs/fr/agent-sdk/typescript#handle-slow-or-stalled-api-responses). Le minuteur est réinitialisé à chaque événement de progression du streaming ; si aucune progression n'arrive dans l'intervalle, Claude Code interrompt le sous-agent et signale le blocage au parent |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Définissez le pourcentage (1-100) de la fenêtre de compaction automatique auquel la compaction automatique se déclenche. Utilisez des valeurs plus basses comme `50` pour compacter plus tôt ; la variable ne peut pas augmenter le seuil, donc les valeurs au-dessus du pourcentage par défaut sont ignorées. Elle s'applique uniquement aux sessions qui [compactent avant la limite de contexte du modèle](/docs/fr/model-config#context-window-and-auto-compaction). S'applique aux conversations principales et aux sous-agents |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Définit le pourcentage (1-100) de la fenêtre de compaction automatique auquel la compaction automatique se déclenche. Utilisez des valeurs plus basses comme `50` pour compacter plus tôt ; la variable ne peut pas relever le seuil, les valeurs supérieures au pourcentage par défaut sont donc ignorées. Elle s'applique uniquement aux sessions qui [compactent avant la limite de contexte du modèle](/docs/fr/model-config#context-window-and-auto-compaction). S'applique aux conversations principales comme aux sous-agents |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Définissez sur `1` pour forcer l'activation de la mise en arrière-plan automatique des tâches d'agent longues. Lorsqu'elle est activée, les sous-agents sont déplacés en arrière-plan après environ deux minutes d'exécution. Active également [la mise en arrière-plan automatique des appels d'outils MCP longs](/docs/fr/mcp#automatic-backgrounding-of-long-tool-calls) en mode non interactif sur Claude Code v2.1.212 ou ultérieur |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Définissez `1` pour forcer l'activation de la mise en arrière-plan automatique des tâches d'agent de longue durée. Lorsqu'elle est activée, les sous-agents passent en arrière-plan après environ deux minutes d'exécution. Active également la [mise en arrière-plan automatique des longs appels d'outils MCP](/docs/fr/mcp#automatic-backgrounding-of-long-tool-calls) en mode non interactif sur Claude Code v2.1.212 ou ultérieur |

208| `CLAUDE_AX_PREPARK_MS` | En [mode lecteur d'écran](/docs/fr/accessibility), nombre de millisecondes que Claude Code attend avant d'écrire une ligne nouvelle ou modifiée. Par défaut `0`, donc Claude Code n'attend pas. Avant la v2.1.287, la valeur par défaut était `50`. Claude Code plafonne l'attente à `5000`. Nécessite Claude Code v2.1.233 ou ultérieur |208| `CLAUDE_AX_PREPARK_MS` | En [mode lecteur d'écran](/docs/fr/accessibility), nombre de millisecondes que Claude Code attend avant d'écrire une ligne nouvelle ou modifiée. Par défaut `0`, Claude Code n'attend donc pas. Avant la v2.1.287, la valeur par défaut était `50`. Claude Code plafonne l'attente à `5000`. Nécessite Claude Code v2.1.233 ou ultérieur |

209| `CLAUDE_AX_SCREEN_READER` | Définissez sur `1` pour afficher une sortie conviviale pour les lecteurs d'écran : texte plat sans bordures décoratives ni animations. Définissez sur `0` pour forcer le mode lecteur d'écran désactivé même lorsque [`axScreenReader`](/docs/fr/settings-reference#axscreenreader) est `true`. Le [drapeau `--ax-screen-reader`](/docs/fr/cli-reference#cli-flags) a la priorité. Nécessite Claude Code v2.1.181 ou ultérieur |209| `CLAUDE_AX_SCREEN_READER` | Définissez `1` pour produire une sortie adaptée aux lecteurs d'écran : texte brut sans bordures décoratives ni animations. Définissez `0` pour forcer la désactivation du mode lecteur d'écran même lorsque [`axScreenReader`](/docs/fr/settings-reference#axscreenreader) vaut `true`. Le flag [`--ax-screen-reader`](/docs/fr/cli-reference#cli-flags) est prioritaire. Nécessite Claude Code v2.1.181 ou ultérieur |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | En [mode lecteur d'écran](/docs/fr/accessibility), combien de millisecondes Claude Code maintient le premier rendu d'interface après la ligne de confirmation de démarrage, afin que votre lecteur d'écran puisse prononcer la ligne en entier avant que la nouvelle sortie ne l'interrompe. Par défaut `3000`. Définissez `0` pour afficher immédiatement. Claude Code limite la tenue à `600000` (10 minutes). Votre première frappe termine la tenue plus tôt. Nécessite Claude Code v2.1.217 ou ultérieur |210| `CLAUDE_AX_STARTUP_QUIET_MS` | En [mode lecteur d'écran](/docs/fr/accessibility), nombre de millisecondes pendant lesquelles Claude Code retient le premier rendu de l'interface après la ligne de confirmation de démarrage, afin que votre lecteur d'écran puisse lire la ligne en entier avant qu'une nouvelle sortie ne l'interrompe. Par défaut `3000`. Définissez `0` pour un rendu immédiat. Claude Code plafonne cette attente à `600000` (10 minutes). Votre première frappe met fin à l'attente plus tôt. Nécessite Claude Code v2.1.217 ou ultérieur |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Retournez au répertoire de travail d'origine après chaque commande Bash ou PowerShell dans la session principale |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Revenir au répertoire de travail d'origine après chaque commande Bash ou PowerShell dans la session principale |

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Délai d'expiration en millisecondes pour le chien de garde d'inactivité de flux au niveau des octets ; lorsqu'il est défini, il a la priorité sur `CLAUDE_STREAM_IDLE_TIMEOUT_MS` pour ce chien de garde et laisse le chien de garde au niveau des événements inchangé. Claude Code limite cette variable entre 10 secondes et 30 minutes. Nécessite Claude Code v2.1.210 ou ultérieur |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Délai d'expiration en millisecondes du watchdog d'inactivité du streaming au niveau des octets ; lorsqu'il est défini, il a priorité sur `CLAUDE_STREAM_IDLE_TIMEOUT_MS` pour ce watchdog et laisse inchangé le watchdog au niveau des événements. Claude Code limite cette variable à une valeur comprise entre 10 secondes et 30 minutes. Nécessite Claude Code v2.1.210 ou ultérieur |

213| `CLAUDE_CLIENT_PRESENCE_FILE` | Chemin d'accès à un fichier qu'un outil externe, comme un écouteur de verrouillage d'écran, crée lorsque vous déverrouillez votre écran et supprime lorsque vous le verrouillez. Tant que le fichier existe, Claude Code ignore [les notifications push mobiles Remote Control](/docs/fr/remote-control#mobile-push-notifications), afin que vous cessiez de recevoir des notifications push pendant que vous utilisez activement l'ordinateur. Lorsque le fichier est absent ou illisible, les notifications sont envoyées normalement. Claude Code vérifie le fichier une fois par événement déclencheur de notification plutôt que de l'interroger. Nécessite Claude Code v2.1.181 ou ultérieur |213| `CLAUDE_CLIENT_PRESENCE_FILE` | Chemin vers un fichier qu'un outil externe, comme un écouteur de verrouillage d'écran, crée lorsque vous déverrouillez votre écran et supprime lorsque vous le verrouillez. Tant que le fichier existe, Claude Code ignore les [notifications push mobiles de Remote Control](/docs/fr/remote-control#mobile-push-notifications), afin que vous ne receviez plus de notifications push pendant que vous utilisez activement l'ordinateur. Lorsque le fichier est absent ou illisible, les notifications sont envoyées normalement. Claude Code vérifie le fichier une fois par événement déclenchant une notification push plutôt que de l'interroger en continu. Nécessite Claude Code v2.1.181 ou ultérieur |

214| `CLAUDE_CODE_ACCESSIBILITY` | Définissez sur `1` pour garder le curseur du terminal natif visible et désactiver l'indicateur de curseur en texte inversé. Permet aux loupes d'écran comme macOS Zoom de suivre la position du curseur |214| `CLAUDE_CODE_ACCESSIBILITY` | Définissez `1` pour garder le curseur natif du terminal visible et désactiver l'indicateur de curseur en texte inversé. Permet aux loupes d'écran comme le Zoom de macOS de suivre la position du curseur |

215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Définissez sur `1` pour charger les fichiers mémoire à partir des répertoires spécifiés avec `--add-dir`. Charge `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` et `CLAUDE.local.md`. Par défaut, les répertoires supplémentaires ne chargent pas les fichiers mémoire |215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Définissez `1` pour charger les fichiers mémoire depuis les répertoires spécifiés avec `--add-dir`. Charge `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` et `CLAUDE.local.md`. Par défaut, les répertoires supplémentaires ne chargent pas de fichiers mémoire |

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Définissez sur `1` pour repeindre l'écran entier à chaque image en [rendu plein écran](/docs/fr/fullscreen) au lieu d'envoyer des mises à jour incrémentielles. Utilisez ceci si le mode plein écran affiche des fragments de texte obsolètes ou mal placés. Claude Code active ceci automatiquement pour les sessions d'arrière-plan et [la vue agent](/docs/fr/agent-view) sur Windows |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Définissez `1` pour redessiner l'écran entier à chaque image en [rendu plein écran](/docs/fr/fullscreen) au lieu d'envoyer des mises à jour incrémentielles. Utilisez-la si le mode plein écran affiche des fragments de texte obsolètes ou mal placés. Claude Code l'active automatiquement pour les sessions en arrière-plan et la [vue des agents](/docs/fr/agent-view) sous Windows |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Définissez sur `1` pour envoyer le paramètre [effort](/docs/fr/model-config#adjust-effort-level) avec chaque requête, même lorsque Claude Code ne reconnaît pas l'ID du modèle comme capable d'effort. Utilisez ceci lors du routage via une [passerelle LLM](/docs/fr/llm-gateway) ou un fournisseur tiers qui sert les modèles sous des identifiants personnalisés. Les modèles qui rejettent le paramètre d'effort à l'API, y compris les modèles Claude 3, Sonnet 4.0 et 4.5, Opus 4.0 et 4.1, et Haiku 4.5, sont toujours exclus afin que les requêtes ne échouent pas |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Définissez `1` pour envoyer le paramètre [effort](/docs/fr/model-config#adjust-effort-level) avec chaque requête, même lorsque Claude Code ne reconnaît pas l'ID du modèle comme compatible avec l'effort. Utilisez-la lors du routage via une [passerelle LLM](/docs/fr/llm-gateway) ou un fournisseur tiers qui sert des modèles sous des identifiants personnalisés. Les modèles qui rejettent le paramètre effort au niveau de l'API, y compris les modèles Claude 3, Sonnet 4.0 et 4.5, Opus 4.0 et 4.1, et Haiku 4.5, restent exclus afin que les requêtes n'échouent pas |

218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalle en millisecondes auquel les identifiants doivent être actualisés (lors de l'utilisation de [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper)) |218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalle en millisecondes auquel les identifiants doivent être actualisés (lors de l'utilisation de [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper)) |

219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Définissez sur `0` pour empêcher Claude Code d'ouvrir automatiquement le navigateur lorsqu'un nouvel [artefact](/docs/fr/artifacts#create-an-artifact) est publié |219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Définissez `0` pour empêcher Claude Code d'ouvrir automatiquement le navigateur lorsqu'un nouvel [artefact](/docs/fr/artifacts#create-an-artifact) est publié |

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Définissez sur `0` pour arrêter la lecture et la réponse de Claude aux [commentaires sur un artefact](/docs/fr/artifacts#collect-comments-on-an-artifact). N'a aucun effet lorsque `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` a [désactivé les artefacts](/docs/fr/artifacts#availability). Nécessite Claude Code v2.1.221 ou ultérieur |220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Définissez `0` pour empêcher Claude de lire les [commentaires sur un artefact](/docs/fr/artifacts#collect-comments-on-an-artifact) et d'y répondre. Sans effet lorsque `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` a [désactivé les artefacts](/docs/fr/artifacts#availability). Nécessite Claude Code v2.1.221 ou ultérieur |

221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Définissez sur `0` pour arrêter Claude de [répondre de lui-même aux commentaires qui lui sont envoyés](/docs/fr/artifacts#let-claude-reply-to-comments-on-its-own). Nécessite Claude Code v2.1.228 ou ultérieur |221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Définissez `0` pour empêcher Claude de [répondre de lui-même aux commentaires qui lui sont envoyés](/docs/fr/artifacts#let-claude-reply-to-comments-on-its-own). Nécessite Claude Code v2.1.228 ou ultérieur |

222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Définissez sur `0` pour omettre le [bloc d'attribution](/docs/fr/llm-gateway-protocol#system-prompt-attribution-block), qui porte la version du client et une empreinte digitale d'invite, du début de l'invite système. La mise en cache sur une connexion directe à l'API Anthropic n'est affectée de toute façon. Dans certaines configurations de connexion directe, Claude Code maintient le bloc en mode [auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) pour les requêtes du classificateur même lorsque vous définissez `0`. Dans [Bloc d'attribution d'invite système](/docs/fr/llm-gateway-protocol#system-prompt-attribution-block), vérifiez quelles connexions et identifiants cela couvre. Avant v2.1.181, le bloc incluait un jeton par requête sur les URL de base personnalisées et les connexions Microsoft Foundry, donc sur ces versions, définissez-le sur `0` lorsque votre passerelle LLM met en cache sur le corps de la requête ou transfère les requêtes à un fournisseur tiers, ou lorsque vous vous connectez directement à Microsoft Foundry |222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Définissez `0` pour omettre le [bloc d'attribution](/docs/fr/llm-gateway-protocol#system-prompt-attribution-block), qui contient la version du client et une empreinte du prompt, au début du prompt système. La mise en cache sur une connexion directe à l'API Anthropic n'est pas affectée dans un cas comme dans l'autre. Dans certaines configurations à connexion directe, Claude Code conserve le bloc sur les requêtes du classifieur du [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) même si vous définissez `0`. Dans [Bloc d'attribution du prompt système](/docs/fr/llm-gateway-protocol#system-prompt-attribution-block), vérifiez quelles connexions et quels identifiants sont concernés. Avant la v2.1.181, le bloc incluait un jeton par requête sur les URL de base personnalisées et les connexions Microsoft Foundry ; sur ces versions, définissez-le donc à `0` lorsque votre passerelle LLM met en cache sur le corps de la requête ou transmet les requêtes à un fournisseur tiers, ou lorsque vous vous connectez directement à Microsoft Foundry |

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Lorsque `CLAUDE_AUTO_BACKGROUND_TASKS` est activé, secondes entre les rappels à Claude de vérifier les [sous-agents d'arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background) qui sont toujours en cours d'exécution. Accepte un entier simple de `1` à `86400` uniquement ; toute autre valeur ou orthographe est lue comme non définie. Lorsqu'il n'est pas défini, il n'y a pas de rappels de vérification. Nécessite Claude Code v2.1.248 ou ultérieur |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Lorsque `CLAUDE_AUTO_BACKGROUND_TASKS` est activé, nombre de secondes entre les rappels invitant Claude à vérifier les [sous-agents en arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background) encore en cours d'exécution. Accepte uniquement un entier simple de `1` à `86400` ; toute autre valeur ou écriture est traitée comme non définie. Lorsqu'elle n'est pas définie, il n'y a pas de rappels. Nécessite Claude Code v2.1.248 ou ultérieur |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Définissez la [fenêtre de compaction automatique](/docs/fr/model-config#set-the-auto-compact-window) en jetons, de `100000` à `1000000`. Accepte un entier simple comme `500000` uniquement : une valeur comme `500k` est lue comme `500` et limitée au minimum de 100K. La fenêtre effective est également limitée à la fenêtre de contexte du modèle. A la priorité sur la commande `/autocompact`, le drapeau `--autocompact` et le paramètre `autoCompactWindow`. Le `used_percentage` de la ligne d'état mesure toujours par rapport à la fenêtre de contexte complète du modèle, donc une fois cette variable définie, ce pourcentage n'indique plus quand la compaction s'exécutera |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Définit la [fenêtre de compaction automatique](/docs/fr/model-config#set-the-auto-compact-window) en tokens, de `100000` à `1000000`. Accepte uniquement un entier simple tel que `500000` : une valeur comme `500k` est lue comme `500` et ramenée au minimum de 100K. La fenêtre effective est également plafonnée à la fenêtre de contexte du modèle. Prioritaire sur la commande `/autocompact`, le flag `--autocompact` et le paramètre `autoCompactWindow`. Le `used_percentage` de la barre de statut se mesure toujours par rapport à la fenêtre de contexte complète du modèle ; une fois cette variable définie, ce pourcentage n'indique donc plus quand la compaction aura lieu |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Remplacez la [connexion IDE](/docs/fr/vs-code) automatique. Par défaut, Claude Code se connecte automatiquement lorsqu'il est lancé dans le terminal intégré d'un IDE pris en charge. Définissez sur `false` pour empêcher cela. Définissez sur `true` pour forcer une tentative de connexion lorsque la détection automatique échoue, par exemple lorsque tmux obscurcit le terminal parent. A la priorité sur le paramètre de configuration global [`autoConnectIde`](/docs/fr/settings-reference#autoconnectide) |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Remplace la [connexion IDE](/docs/fr/vs-code) automatique. Par défaut, Claude Code se connecte automatiquement lorsqu'il est lancé dans le terminal intégré d'un IDE pris en charge. Définissez `false` pour l'en empêcher. Définissez `true` pour forcer une tentative de connexion lorsque la détection automatique échoue, par exemple lorsque tmux masque le terminal parent. Prioritaire sur le paramètre de configuration globale [`autoConnectIde`](/docs/fr/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Contrôle si Claude Code demande au serveur de [vérifier les actions du mode auto](/docs/fr/permission-modes#server-side-classifier-review). Définissez sur `0` pour utiliser les requêtes du classificateur propre de Claude Code à la place. Sur une connexion directe à l'API Anthropic, nécessite v2.1.281 ou ultérieur. La section liée énumère les sessions qui demandent au serveur lorsque la variable n'est pas définie, et à partir de quelle version. Nécessite Claude Code v2.1.271 ou ultérieur |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Contrôle si Claude Code demande au serveur d'[examiner les actions du mode auto](/docs/fr/permission-modes#server-side-classifier-review). Définissez `0` pour utiliser à la place les requêtes de classifieur propres à Claude Code. Sur une connexion directe à l'API Anthropic, nécessite la v2.1.281 ou ultérieure. La section liée indique quelles sessions interrogent le serveur lorsque la variable n'est pas définie, et à partir de quelle version. Nécessite Claude Code v2.1.271 ou ultérieur |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Temps en millisecondes que Claude Code attend que la chaîne de fournisseur d'identifiants par défaut AWS produise des identifiants avant que la requête échoue avec [`AWS default-chain credential resolve timed out`](/docs/fr/errors#aws-default-chain-credential-resolve-timed-out) (par défaut : `60000`). Augmentez-le lorsqu'une étape de votre chaîne a légitimement besoin de plus de temps, comme une connexion SSO basée sur un navigateur avec MFA via un wrapper comme `aws-vault`. S'applique partout où Claude Code signe avec la chaîne par défaut : [Amazon Bedrock](/docs/fr/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) et le [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint). Nécessite Claude Code v2.1.207 ou ultérieur |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Temps en millisecondes pendant lequel Claude Code attend que la chaîne de fournisseurs d'identifiants AWS par défaut produise des identifiants avant que la requête échoue avec [`AWS default-chain credential resolve timed out`](/docs/fr/errors#aws-default-chain-credential-resolve-timed-out) (par défaut : `60000`). Augmentez-le lorsqu'une étape de votre chaîne a légitimement besoin de plus de temps, comme une connexion SSO via navigateur avec MFA à travers un wrapper tel que `aws-vault`. S'applique partout où Claude Code signe avec la chaîne par défaut : [Amazon Bedrock](/docs/fr/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) et l'[endpoint Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint). Nécessite Claude Code v2.1.207 ou ultérieur |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Définissez sur `0` pour désactiver la [différence des fichiers qui ont changé pendant l'exécution d'une commande Bash](/docs/fr/hooks#bash), ou `1` pour l'enregistrer dans chaque mode de permission. A la priorité sur le paramètre [`bashEditDiffEnabled`](/docs/fr/settings-reference#basheditdiffenabled). Nécessite Claude Code v2.1.269 ou ultérieur |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Définissez `0` pour désactiver le [diff des fichiers modifiés pendant l'exécution d'une commande Bash](/docs/fr/hooks#bash), ou `1` pour l'enregistrer dans tous les modes de permission. Prioritaire sur le paramètre [`bashEditDiffEnabled`](/docs/fr/settings-reference#basheditdiffenabled). Nécessite Claude Code v2.1.269 ou ultérieur |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Définissez sur `0` pour faire en sorte qu'une session non interactive signale un statut inactif à son hôte à chaque fin de tour, même si le travail d'arrière-plan est toujours en cours. Par défaut, la session continue de signaler un statut en cours au-delà de la fin du tour tandis que le travail d'arrière-plan, comme un agent d'arrière-plan ou une [exécution de flux de travail](/docs/fr/workflows), est toujours actif. Cela empêche un hôte qui surveille le statut, comme une liste de sessions distantes, d'annoncer que Claude attend votre entrée au milieu du travail. Les commandes shell d'arrière-plan, comme un serveur de développement, ne maintiennent pas le statut en cours. La valeur par défaut du statut en cours et l'opt-out `0` nécessitent Claude Code v2.1.269 ou ultérieur ; sur les versions antérieures, définissez `1` pour maintenir le statut en cours |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Définissez `0` pour qu'une session non interactive signale un statut inactif à son hôte à chaque fin de tour, même lorsque du travail en arrière-plan est encore en cours. Par défaut, la session continue de signaler un statut en cours d'exécution après la fin du tour tant qu'un travail en arrière-plan, tel qu'un agent en arrière-plan ou une exécution de [workflow](/docs/fr/workflows), est encore actif. Cela évite qu'un hôte qui surveille le statut, comme une liste de sessions à distance, annonce que Claude attend votre saisie en plein travail. Les commandes shell en arrière-plan, comme un serveur de développement, ne maintiennent pas le statut en cours d'exécution. Le statut en cours d'exécution par défaut et la désactivation via `0` nécessitent Claude Code v2.1.269 ou ultérieur ; sur les versions antérieures, définissez `1` pour maintenir le statut en cours d'exécution |

230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Défini automatiquement dans les sous-processus de l'outil Bash et [commande hook](/docs/fr/hooks) tandis que la session a une connexion [Remote Control](/docs/fr/remote-control) active, et supprimé lorsque la connexion se termine. La valeur est l'ID de la session sous la forme `session_`, le même identifiant qui apparaît dans l'URL `claude.ai/code` de la session, afin qu'un script puisse se lier à la session qui l'a exécuté. Nécessite Claude Code v2.1.199 ou ultérieur. Dans [les sessions cloud](/docs/fr/claude-code-on-the-web), lisez `CLAUDE_CODE_REMOTE_SESSION_ID` à la place |230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Défini automatiquement dans les sous-processus de l'outil Bash et des [commandes de hook](/docs/fr/hooks) tant que la session dispose d'une connexion [Remote Control](/docs/fr/remote-control) active, et supprimé à la fin de la connexion. La valeur est l'identifiant de la session au format `session_`, le même identifiant que celui qui apparaît dans l'URL `claude.ai/code` de la session, afin qu'un script puisse renvoyer vers la session qui l'a exécuté. Nécessite Claude Code v2.1.199 ou ultérieur. Dans les [sessions cloud](/docs/fr/claude-code-on-the-web), lisez plutôt `CLAUDE_CODE_REMOTE_SESSION_ID` |

231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Définissez sur `0` pour faire en sorte que Claude Code lise l'octet `0x08`, également écrit `^H`, comme Backspace simple, ou `1` pour le lire comme Ctrl+Backspace. Chaque valeur remplace la valeur par défaut de la plateforme. Par défaut, Claude Code le lit comme Ctrl+Backspace sur Windows, sauf lorsque `TERM_PROGRAM` est `mintty` ou `TERM` est `cygwin`, et comme Backspace simple sur macOS et Linux. Définissez `0` dans un terminal Windows où [Backspace supprime un mot entier](/docs/fr/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Définissez `0` pour que Claude Code lise l'octet `0x08`, également noté `^H`, comme un simple Backspace, ou `1` pour le lire comme Ctrl+Backspace. L'une ou l'autre valeur remplace le comportement par défaut de la plateforme. Par défaut, Claude Code le lit comme Ctrl+Backspace sous Windows, sauf lorsque `TERM_PROGRAM` vaut `mintty` ou `TERM` vaut `cygwin`, et comme un simple Backspace sous macOS et Linux. Définissez `0` dans un terminal Windows où [Backspace supprime un mot entier](/docs/fr/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |

232| `CLAUDE_CODE_CERT_STORE` | Liste séparée par des virgules des sources de certificats CA pour les connexions TLS. `bundled` est l'ensemble Mozilla CA fourni avec Claude Code. `system` est le magasin de confiance du système d'exploitation, lu uniquement sur les runtimes avec `tls.getCACertificates` : le binaire natif, ou Node 22.15 ou ultérieur pour les installations npm. Voir [Magasin de certificats CA](/docs/fr/network-config#ca-certificate-store). La valeur par défaut est `bundled,system` |232| `CLAUDE_CODE_CERT_STORE` | Liste, séparée par des virgules, des sources de certificats CA pour les connexions TLS. `bundled` est l'ensemble de CA Mozilla fourni avec Claude Code. `system` est le magasin de certificats de confiance du système d'exploitation, lu uniquement sur les runtimes disposant de `tls.getCACertificates` : le binaire natif, ou Node 22.15 ou ultérieur pour les installations npm. Voir [Magasin de certificats CA](/docs/fr/network-config#ca-certificate-store). Par défaut `bundled,system` |

233| `CLAUDE_CODE_CHILD_SESSION` | Défini sur `1` dans les sous-processus que Claude Code génère via les outils Bash, PowerShell et Monitor, les commandes [hook](/docs/fr/hooks) et les commandes [ligne d'état](/docs/fr/statusline). Non défini pour les sous-processus [serveur MCP](/docs/fr/mcp) stdio, qui sont de longue durée et survivent à la session qui les a générés. Contrairement à `CLAUDECODE`, ceci n'est défini que par Claude Code lui-même lorsqu'il lance un sous-processus et non par les extensions IDE, donc il distingue de manière fiable une session imbriquée d'un `claude` lancé au niveau supérieur dans un terminal intégré IDE. Un `claude` TUI interactif imbriqué démarré de cette façon est automatiquement exclu de `--resume`, `--continue`, l'historique de la flèche vers le haut et la liste `claude agents`. Les sessions non interactives `claude -p` persistent toujours. Définissez `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` pour remplacer cette exclusion. Nécessite Claude Code v2.1.172 ou ultérieur |233| `CLAUDE_CODE_CHILD_SESSION` | Défini à `1` dans les sous-processus que Claude Code lance via les outils Bash, PowerShell et Monitor, les commandes de [hook](/docs/fr/hooks) et les commandes de [barre de statut](/docs/fr/statusline). Non défini pour les sous-processus de [serveur MCP](/docs/fr/mcp) stdio, qui sont de longue durée et survivent à la session qui les a lancés. Contrairement à `CLAUDECODE`, cette variable n'est définie que par Claude Code lui-même lorsqu'il lance un sous-processus, et non par les extensions IDE ; elle distingue donc de manière fiable une session imbriquée d'un `claude` de premier niveau lancé dans un terminal intégré à un IDE. Un TUI `claude` interactif imbriqué démarré de cette façon est automatiquement exclu de `--resume`, `--continue`, de l'historique de la flèche haut et de la liste `claude agents`. Les sessions `claude -p` non interactives restent persistées. Définissez `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` pour annuler cette exclusion. Nécessite Claude Code v2.1.172 ou ultérieur |

234| `CLAUDE_CODE_CLIENT_CERT` | Chemin d'accès au fichier de certificat client pour l'authentification mTLS |234| `CLAUDE_CODE_CLIENT_CERT` | Chemin vers le fichier de certificat client pour l'authentification mTLS |

235| `CLAUDE_CODE_CLIENT_KEY` | Chemin d'accès au fichier de clé privée client pour l'authentification mTLS |235| `CLAUDE_CODE_CLIENT_KEY` | Chemin vers le fichier de clé privée client pour l'authentification mTLS |

236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Phrase de passe pour CLAUDE\_CODE\_CLIENT\_KEY chiffré (optionnel) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Phrase secrète pour la CLAUDE\_CODE\_CLIENT\_KEY chiffrée (facultatif) |

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Supprimé dans v2.1.186 et maintenant un no-op. Auparavant, définissait un délai d'expiration séparé pour la phase de connexion, TLS et d'en-tête de réponse d'une requête API en continu. Utilisez `API_TIMEOUT_MS` pour le délai d'expiration par requête. Pour la phase d'en-tête de réponse d'une requête en continu, voir `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Supprimée dans la v2.1.186 et désormais sans effet. Définissait auparavant un délai d'expiration distinct pour la phase de connexion, TLS et en-têtes de réponse d'une requête API en streaming. Utilisez `API_TIMEOUT_MS` pour le délai d'expiration par requête. Pour la phase d'en-têtes de réponse d'une requête en streaming, voir `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Remplacez le chemin d'accès au fichier journal de débogage. Malgré le nom, c'est un chemin d'accès au fichier, pas un répertoire. Nécessite que le mode débogage soit activé séparément via `--debug`, `/debug` ou la variable d'environnement `DEBUG` : définir cette variable seule n'active pas la journalisation. Le [drapeau `--debug-file`](/docs/fr/cli-reference#cli-flags) fait les deux à la fois. Par défaut `~/.claude/debug/<session-id>.txt` |238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Remplace le chemin du fichier de log de débogage. Malgré son nom, il s'agit d'un chemin de fichier, et non d'un répertoire. Nécessite que le mode débogage soit activé séparément via `--debug`, `/debug` ou la variable d'environnement `DEBUG` : définir cette variable seule n'active pas la journalisation. Le flag [`--debug-file`](/docs/fr/cli-reference#cli-flags) fait les deux à la fois. Par défaut `~/.claude/debug/<session-id>.txt` |

239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Niveau de journal minimum écrit dans le fichier journal de débogage. Valeurs : `verbose`, `debug` (par défaut), `info`, `warn`, `error`. Définissez sur `verbose` pour inclure les diagnostics à haut volume comme la sortie complète de la commande de ligne d'état, ou augmentez à `error` pour réduire le bruit |239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Niveau de log minimal écrit dans le fichier de log de débogage. Valeurs : `verbose`, `debug` (par défaut), `info`, `warn`, `error`. Définissez `verbose` pour inclure des diagnostics volumineux comme la sortie complète de la commande de barre de statut, ou montez à `error` pour réduire le bruit |

240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Définissez sur `1` pour désactiver le support de [fenêtre de contexte 1M](/docs/fr/model-config#extended-context). Lorsqu'il est défini, les variantes de modèle 1M ne sont pas disponibles dans le sélecteur de modèle, et Claude Code maintient les sessions sur les modèles avec une fenêtre 1M native, comme [Sonnet 5.5](/docs/fr/model-config#sonnet-5-5-and-sonnet-5-context-window) et les modèles Fable, à une fenêtre 200K ; voir [Contexte étendu](/docs/fr/model-config#extended-context) pour savoir comment la tenue est appliquée. Utile pour les environnements d'entreprise avec des exigences de conformité. Pour son rôle dans la correction de la fenêtre pour un ID de modèle non reconnu `[1m]`, voir [Corriger la fenêtre pour un ID de modèle de passerelle ou personnalisé](/docs/fr/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Définissez `1` pour désactiver la prise en charge de la [fenêtre de contexte de 1M](/docs/fr/model-config#extended-context). Lorsqu'elle est définie, les variantes de modèles 1M ne sont pas disponibles dans le sélecteur de modèle, et Claude Code limite à une fenêtre de 200K les sessions sur des modèles dotés d'une fenêtre native de 1M, comme [Sonnet 5.5](/docs/fr/model-config#sonnet-5-5-and-sonnet-5-context-window) et les modèles Fable ; voir [Contexte étendu](/docs/fr/model-config#extended-context) pour savoir comment cette limite est appliquée. Utile pour les environnements d'entreprise soumis à des exigences de conformité. Pour son rôle dans la correction de la fenêtre d'un ID de modèle `[1m]` non reconnu, voir [Corriger la fenêtre pour une passerelle ou un ID de modèle personnalisé](/docs/fr/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Définissez sur `1` pour désactiver le [raisonnement adaptatif](/docs/fr/model-config#adjust-effort-level) sur Opus 4.6 et Sonnet 4.6 et revenir au budget de réflexion fixe contrôlé par `MAX_THINKING_TOKENS`. N'a aucun effet sur les [modèles Fable](/docs/fr/model-config#extended-thinking), Sonnet 5 ou Opus 4.7 et ultérieur, qui utilisent toujours le raisonnement adaptatif |241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Définissez `1` pour désactiver le [raisonnement adaptatif](/docs/fr/model-config#adjust-effort-level) sur Opus 4.6 et Sonnet 4.6 et revenir au budget de réflexion fixe contrôlé par `MAX_THINKING_TOKENS`. Sans effet sur les [modèles Fable](/docs/fr/model-config#extended-thinking), Sonnet 5 et ultérieurs, ou Opus 4.7 et ultérieurs, qui utilisent toujours le raisonnement adaptatif |

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Définissez sur `1` pour empêcher Claude Code de fusionner les blocs `env` des [paramètres gérés](/docs/fr/managed-settings#precedence-within-the-managed-tier) par clé entre les sources d'administration, afin que seul le bloc `env` de la source la plus prioritaire s'applique, comme avant v2.1.223. Définissez-le dans l'environnement qui lance Claude Code, car Claude Code ignore une copie livrée via un bloc `env` de paramètres. Nécessite Claude Code v2.1.223 ou ultérieur |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Définissez `1` pour empêcher Claude Code de fusionner clé par clé les blocs `env` des [paramètres gérés](/docs/fr/managed-settings#precedence-within-the-managed-tier) entre les sources d'administration, de sorte que seul le bloc `env` complet de la source la plus prioritaire s'applique, comme avant la v2.1.223. Définissez-la dans l'environnement qui lance Claude Code, car Claude Code ignore une copie fournie via un bloc `env` de paramètres. Nécessite Claude Code v2.1.223 ou ultérieur |

243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Définissez sur `1` pour désactiver l'[outil conseiller](/docs/fr/advisor). La commande `/advisor` devient indisponible, tout `advisorModel` configuré est ignoré, et le drapeau `--advisor` est accepté mais n'a aucun effet, afin que les scripts existants qui le transmettent continuent à fonctionner sans erreurs |243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Définissez `1` pour désactiver l'[outil advisor](/docs/fr/advisor). La commande `/advisor` devient indisponible, tout `advisorModel` configuré est ignoré, et le flag `--advisor` est accepté mais sans effet, de sorte que les scripts existants qui le transmettent continuent de fonctionner sans erreur |

244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Définissez sur `1` pour désactiver [les agents d'arrière-plan et la vue agent](/docs/fr/agent-view) : `claude agents`, `--bg`, `/background` et le superviseur à la demande. Équivalent au paramètre [`disableAgentView`](/docs/fr/settings-reference#disableagentview) |244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Définissez `1` pour désactiver les [agents en arrière-plan et la vue des agents](/docs/fr/agent-view) : `claude agents`, `--bg`, `/background` et le superviseur à la demande. Équivalent au paramètre [`disableAgentView`](/docs/fr/settings-reference#disableagentview) |

245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Définissez sur `1` pour désactiver le [rendu plein écran](/docs/fr/fullscreen) et utiliser le rendu d'écran principal classique. La conversation reste dans le défilement natif de votre terminal afin que `Cmd+f` et le mode copie tmux fonctionnent comme d'habitude. A la priorité sur `CLAUDE_CODE_NO_FLICKER` et le paramètre [`tui`](/docs/fr/settings-reference#tui). Vous pouvez également basculer avec `/tui default`. Ne s'applique pas aux sessions d'arrière-plan ouvertes à partir de [la vue agent](/docs/fr/agent-view), qui utilisent toujours le rendu plein écran |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Définissez `1` pour désactiver le [rendu plein écran](/docs/fr/fullscreen) et utiliser le moteur de rendu classique sur l'écran principal. La conversation reste dans l'historique de défilement natif de votre terminal, de sorte que `Cmd+f` et le mode copie de tmux fonctionnent normalement. Prioritaire sur `CLAUDE_CODE_NO_FLICKER` et le paramètre [`tui`](/docs/fr/settings-reference#tui). Vous pouvez également basculer avec `/tui default`. Ne s'applique pas aux sessions en arrière-plan ouvertes depuis la [vue des agents](/docs/fr/agent-view), qui utilisent toujours le rendu plein écran |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Définissez sur `1` pour désactiver l'outil [Artifact](/docs/fr/artifacts), qui publie la sortie de session en tant que page web privée sur claude.ai. Une fois que vous le définissez, aucun fichier de paramètres n'active l'outil. Pour désactiver l'outil à partir d'un fichier de paramètres à la place, définissez [`enableArtifact`](/docs/fr/settings-reference#enableartifact) sur `false` ; la clé [`disableArtifact`](/docs/fr/settings-reference#disableartifact) dépréciée le désactive également |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Définissez `1` pour désactiver l'outil [Artifact](/docs/fr/artifacts), qui publie la sortie de la session sous forme de page web privée sur claude.ai. Une fois la variable définie, aucun fichier de paramètres ne peut réactiver l'outil. Pour désactiver plutôt l'outil depuis un fichier de paramètres, définissez [`enableArtifact`](/docs/fr/settings-reference#enableartifact) sur `false` ; la clé dépréciée [`disableArtifact`](/docs/fr/settings-reference#disableartifact) le désactive également |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Définissez sur `1` pour désactiver le traitement des pièces jointes. Les mentions de fichiers avec la syntaxe `@` sont envoyées en tant que texte simple au lieu d'être développées dans le contenu du fichier |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Définissez `1` pour désactiver le traitement des pièces jointes. Les mentions de fichiers avec la syntaxe `@` sont envoyées en texte brut au lieu d'être développées en contenu de fichier |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Définissez sur `1` pour qu'un processus Claude Code exécute lui-même sa commande [`gcpAuthRefresh`](/docs/fr/settings-reference#gcpauthrefresh) ou [`awsAuthRefresh`](/docs/fr/settings-reference#awsauthrefresh) au lieu d'attendre qu'un autre processus l'exécute. Nécessite Claude Code v2.1.286 ou ultérieur |248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Définissez `1` pour qu'un processus Claude Code exécute lui-même sa commande [`gcpAuthRefresh`](/docs/fr/settings-reference#gcpauthrefresh) ou [`awsAuthRefresh`](/docs/fr/settings-reference#awsauthrefresh) au lieu d'attendre qu'un autre processus l'exécute. Nécessite Claude Code v2.1.286 ou ultérieur |

249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Définissez sur `1` pour désactiver la [mémoire automatique](/docs/fr/memory#auto-memory). Définissez sur `0` pour forcer la mémoire automatique activée même lorsque le mode `--bare` ou [`autoMemoryEnabled: false`](/docs/fr/settings-reference#automemoryenabled) la désactiverait autrement. Lorsqu'elle est désactivée, Claude ne crée ni ne charge les fichiers de mémoire automatique |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Définissez `1` pour désactiver la [mémoire automatique](/docs/fr/memory#auto-memory). Définissez `0` pour forcer l'activation de la mémoire automatique même lorsque le mode `--bare` ou [`autoMemoryEnabled: false`](/docs/fr/settings-reference#automemoryenabled) la désactiverait autrement. Lorsqu'elle est désactivée, Claude ne crée ni ne charge de fichiers de mémoire automatique |

250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Définissez sur `1` pour désactiver toute la fonctionnalité de tâche d'arrière-plan, y compris le paramètre `run_in_background` sur les outils Bash et sous-agent, la mise en arrière-plan automatique et le raccourci Ctrl+B |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Définissez `1` pour désactiver toutes les fonctionnalités de tâches en arrière-plan, y compris le paramètre `run_in_background` des outils Bash et de sous-agent, la mise en arrière-plan automatique et le raccourci Ctrl+B |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Définissez sur `1` pour empêcher Claude Code de traiter une réponse en continu [Amazon Bedrock](/docs/fr/amazon-bedrock) avec un en-tête `Content-Type` manquant ou vide comme le flux d'événements binaires d'Amazon Bedrock. Par défaut, Claude Code suppose qu'une passerelle a supprimé l'en-tête d'une réponse autrement inmodifiée, afin que le décodage du corps et le flux continu fonctionnent. Définissez ceci uniquement pour une passerelle qui réemet également le flux en tant qu'événements envoyés par le serveur ; Claude Code lit alors le corps sans en-tête en tant qu'événements envoyés par le serveur à la place. Nécessite Claude Code v2.1.239 ou ultérieur |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Définissez `1` pour empêcher Claude Code de traiter une réponse en streaming [Amazon Bedrock](/docs/fr/amazon-bedrock) dont l'en-tête `Content-Type` est absent ou vide comme le flux d'événements binaire d'Amazon Bedrock. Par défaut, Claude Code suppose qu'une passerelle a supprimé l'en-tête d'une réponse par ailleurs non modifiée ; il décode donc le corps et le streaming continue de fonctionner. Ne la définissez que pour une passerelle qui réémet également le flux sous forme de server-sent events ; Claude Code lit alors le corps sans en-tête comme des server-sent events. Nécessite Claude Code v2.1.239 ou ultérieur |

252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Définissez sur `1` pour ignorer la vérification qu'une réponse en continu [Amazon Bedrock](/docs/fr/amazon-bedrock) porte le type de contenu `application/vnd.amazon.eventstream`. Sans cette variable, lorsqu'une réponse porte un type de contenu différent, Claude Code échoue la requête avec une erreur nommant ce type, ce qui signifie qu'une [passerelle ou un proxy transforme la réponse](/docs/fr/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configurez la passerelle pour transférer l'en-tête `Content-Type` et le corps inmodifiés plutôt que de définir cette variable. Nécessite Claude Code v2.1.208 ou ultérieur |252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Définissez `1` pour ignorer la vérification selon laquelle une réponse en streaming [Amazon Bedrock](/docs/fr/amazon-bedrock) porte le content-type `application/vnd.amazon.eventstream`. Sans cette variable, lorsqu'une réponse porte un autre content-type, Claude Code fait échouer la requête avec une erreur nommant ce type, ce qui signifie qu'une [passerelle ou un proxy transforme la réponse](/docs/fr/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configurez la passerelle pour qu'elle transmette l'en-tête `Content-Type` et le corps sans modification plutôt que de définir cette variable. Nécessite Claude Code v2.1.208 ou ultérieur |

253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Définissez sur `1` pour arrêter les commandes shell d'arrière-plan en cours d'exécution d'une [session d'arrière-plan](/docs/fr/agent-view), les flux de travail dynamiques, et, à partir de v2.1.198, les sous-agents d'arrière-plan lorsque le [superviseur](/docs/fr/agent-view#the-supervisor-process) arrête, redémarre ou met à jour le processus de cette session, au lieu de les remettre au processus suivant de la session. Affecte uniquement cette remise : la mise en arrière-plan d'une session avec `←` ou [`/background`](/docs/fr/agent-view#from-inside-a-session) porte toujours le travail en vol, et `CLAUDE_DISABLE_ADOPT` désactive les deux. Nécessite Claude Code v2.1.196 ou ultérieur |253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Définissez `1` pour arrêter les commandes shell en arrière-plan et les workflows dynamiques en cours d'une [session en arrière-plan](/docs/fr/agent-view), ainsi que, depuis la v2.1.198, ses sous-agents en arrière-plan, lorsque le [superviseur](/docs/fr/agent-view#the-supervisor-process) arrête, redémarre ou met à jour le processus de cette session, au lieu de les transmettre au processus suivant de la session. N'affecte que ce transfert : mettre une session en arrière-plan avec `←` ou [`/background`](/docs/fr/agent-view#from-inside-a-session) transfère toujours le travail en cours, et `CLAUDE_DISABLE_ADOPT` désactive les deux. Nécessite Claude Code v2.1.196 ou ultérieur |

254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Définissez sur `1` pour empêcher Claude Code de terminer les [commandes shell d'arrière-plan](/docs/fr/interactive-mode#background-bash-commands) sous la pression de la mémoire. Par défaut, sur macOS et Linux, Claude Code termine les shells d'arrière-plan lorsque le système d'exploitation signale une pression mémoire critique et que la session a été inactive pendant 30 minutes sans tour ni sous-agent en cours d'exécution. Windows n'a pas de signal de pression mémoire, donc cette variable n'a aucun effet là. Nécessite Claude Code v2.1.193 ou ultérieur |254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Définissez `1` pour empêcher Claude Code de terminer les [commandes shell en arrière-plan](/docs/fr/interactive-mode#background-bash-commands) en cas de pression mémoire. Par défaut, sous macOS et Linux, Claude Code termine les shells en arrière-plan lorsque le système d'exploitation signale une pression mémoire critique et que la session est inactive depuis 30 minutes sans tour ni sous-agent en cours. Windows n'a pas de signal de pression mémoire, cette variable n'y a donc aucun effet. Nécessite Claude Code v2.1.193 ou ultérieur |

255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Définissez sur `1` pour désactiver les [compétences](/docs/fr/skills) et les flux de travail inclus avec Claude Code : les compétences et flux de travail groupés sont supprimés entièrement, tandis que les commandes intégrées comme `/init` restent tapables mais sont masquées au modèle. `/doctor` reste tapable comme les commandes intégrées ; masquez-le avec `DISABLE_DOCTOR_COMMAND` à la place. Les compétences des plugins, `.claude/skills/` et `.claude/commands/` ne sont pas affectées. Équivalent au paramètre [`disableBundledSkills`](/docs/fr/settings-reference#disablebundledskills) |255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Définissez `1` pour désactiver les [skills](/docs/fr/skills) et workflows inclus avec Claude Code : les skills et workflows fournis sont entièrement supprimés, tandis que les commandes intégrées comme `/init` restent saisissables mais sont masquées pour le modèle. `/doctor` reste saisissable comme les commandes intégrées ; masquez-la plutôt avec `DISABLE_DOCTOR_COMMAND`. Les skills provenant des plugins, de `.claude/skills/` et de `.claude/commands/` ne sont pas affectés. Équivalent au paramètre [`disableBundledSkills`](/docs/fr/settings-reference#disablebundledskills) |

256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Définissez sur `1` pour garder les [outils du navigateur Claude in Chrome](/docs/fr/chrome) disponibles tout en omettant la section Chrome de l'invite système et la [compétence groupée](/docs/fr/skills#bundled-skills) `/claude-in-chrome`. Pour les hôtes qui intègrent Claude Code et fournissent leurs propres conseils de navigateur. Nécessite Claude Code v2.1.257 ou ultérieur |256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Définissez `1` pour conserver les outils de navigateur [Claude in Chrome](/docs/fr/chrome) tout en omettant la section Chrome du prompt système et le [skill fourni](/docs/fr/skills#bundled-skills) `/claude-in-chrome`. Destiné aux hôtes qui intègrent Claude Code et fournissent leurs propres instructions de navigation. Nécessite Claude Code v2.1.257 ou ultérieur |

257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Définissez sur `1` pour empêcher le chargement de tous les fichiers mémoire CLAUDE.md dans le contexte, y compris les fichiers mémoire utilisateur, projet et automatique |257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Définissez `1` pour empêcher le chargement de tout fichier mémoire CLAUDE.md dans le contexte, y compris les fichiers de mémoire utilisateur, de projet et de mémoire automatique |

258| `CLAUDE_CODE_DISABLE_CRON` | Définissez sur `1` pour désactiver les [tâches planifiées](/docs/fr/scheduled-tasks). La compétence `/loop` et les outils cron deviennent indisponibles et toutes les tâches déjà planifiées cessent de se déclencher, y compris les tâches qui s'exécutent déjà au milieu de la session |258| `CLAUDE_CODE_DISABLE_CRON` | Définissez `1` pour désactiver les [tâches planifiées](/docs/fr/scheduled-tasks). Le skill `/loop` et les outils cron deviennent indisponibles et toutes les tâches déjà planifiées cessent de se déclencher, y compris celles déjà en cours d'exécution en cours de session |

259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Définissez sur `1` pour désactiver la limite de temps sur les invites de [suppression de chemin critique](/docs/fr/permission-modes#critical-paths). En mode `auto`, Claude Code envoie alors ces suppressions au classificateur à la place, et en mode `bypassPermissions`, l'invite attend votre réponse. Définissez-le dans l'environnement qui lance Claude Code, car Claude Code ignore une copie livrée via un bloc `env` de paramètres. Nécessite Claude Code v2.1.281 ou ultérieur |259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Définissez `1` pour désactiver la limite de temps sur les demandes de permission de [suppression de chemins critiques](/docs/fr/permission-modes#critical-paths). En mode `auto`, Claude Code envoie alors ces suppressions au classifieur, et en mode `bypassPermissions`, la demande attend votre réponse. Définissez-la dans l'environnement qui lance Claude Code, car Claude Code ignore une copie fournie via un bloc `env` de paramètres. Nécessite Claude Code v2.1.281 ou ultérieur |

260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Définissez sur `1` pour retirer des requêtes API les en-têtes de requête `anthropic-beta` en préversion, les champs de corps qui leur sont associés et les champs bêta de schéma d'outil tels que `defer_loading` et `eager_input_streaming`. Utilisez-la lorsqu'une passerelle proxy rejette les requêtes avec une erreur `Unexpected value(s)` pour l'en-tête `anthropic-beta` ou une erreur `Extra inputs are not permitted`. [Désactiver les capacités en préversion](/docs/fr/llm-gateway-protocol#disable-pre-release-capabilities) liste ce que la variable supprime, y compris [MCP Tool Search](/docs/fr/mcp#scale-with-mcp-tool-search), et ce que Claude Code continue d'envoyer |260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Définissez `1` pour retirer des requêtes API les en-têtes de requête `anthropic-beta` de préversion, les champs de corps qui les accompagnent, et les champs bêta de schéma d'outil tels que `defer_loading` et `eager_input_streaming`. Utilisez-la lorsqu'une passerelle proxy rejette les requêtes avec une erreur `Unexpected value(s)` pour l'en-tête `anthropic-beta` ou une erreur `Extra inputs are not permitted`. [Désactiver les capacités de préversion](/docs/fr/llm-gateway-protocol#disable-pre-release-capabilities) liste ce que la variable supprime, y compris [la recherche d'outils MCP](/docs/fr/mcp#scale-with-mcp-tool-search), et ce que Claude Code continue d'envoyer |

261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Définissez sur `1` pour désactiver les [sous-agents Explore et Plan intégrés](/docs/fr/sub-agents#built-in-subagents). Claude explore avec ses outils de recherche ou le sous-agent à usage général à la place, et [le mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode) lit les fichiers directement plutôt que de lancer les agents Explore et Plan. Les sous-agents personnalisés nommés `Explore` ou `Plan` ne sont pas affectés. Pour supprimer tous les types de sous-agents intégrés dans le SDK Agent ou le mode non interactif, utilisez `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` à la place. Nécessite Claude Code v2.1.198 ou ultérieur |261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Définissez `1` pour désactiver les [sous-agents Explore et Plan](/docs/fr/sub-agents#built-in-subagents) intégrés. Claude explore alors avec ses outils de recherche ou le sous-agent general-purpose, et le [mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode) lit les fichiers directement au lieu de lancer les agents Explore et Plan. Les sous-agents personnalisés nommés `Explore` ou `Plan` ne sont pas affectés. Pour supprimer tous les types de sous-agents intégrés dans l'Agent SDK ou en mode non interactif, utilisez plutôt `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`. Nécessite Claude Code v2.1.198 ou ultérieur |

262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Définissez sur `1` pour désactiver le [mode rapide](/docs/fr/fast-mode) |262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Définissez `1` pour désactiver le [mode rapide](/docs/fr/fast-mode) |

263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Définissez sur `1` pour désactiver les sondages de qualité de session « How is Claude doing? ». Les sondages sont également désactivés lorsque `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` est défini, sauf si `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` se réinscrit. Pour définir un taux d'échantillonnage au lieu de désactiver complètement, utilisez le paramètre [`feedbackSurveyRate`](/docs/fr/settings-reference#feedbacksurveyrate). Voir [Sondages de qualité de session](/docs/fr/data-usage#session-quality-surveys) |263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Définissez `1` pour désactiver les enquêtes de qualité de session « How is Claude doing? ». Les enquêtes sont également désactivées lorsque `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` est défini, sauf si `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` les réactive. Pour définir un taux d'échantillonnage au lieu de les désactiver complètement, utilisez le paramètre [`feedbackSurveyRate`](/docs/fr/settings-reference#feedbacksurveyrate). Voir [Enquêtes de qualité de session](/docs/fr/data-usage#session-quality-surveys) |

264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Définissez sur `1` pour désactiver le [point de contrôle](/docs/fr/checkpointing) de fichier. La commande `/rewind` ne pourra pas restaurer les modifications de code. Remplace le paramètre [`fileCheckpointingEnabled`](/docs/fr/settings-reference#filecheckpointingenabled) |264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Définissez `1` pour désactiver le [checkpointing](/docs/fr/checkpointing) des fichiers. La commande `/rewind` ne pourra pas restaurer les modifications de code. Remplace le paramètre [`fileCheckpointingEnabled`](/docs/fr/settings-reference#filecheckpointingenabled) |

265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Définissez sur `1` pour supprimer les instructions de flux de travail de commit et PR intégrées et l'instantané d'état git du contexte de Claude. Utile lors de l'utilisation de vos propres compétences de flux de travail git. A la priorité sur le paramètre [`includeGitInstructions`](/docs/fr/settings-reference#includegitinstructions) lorsqu'il est défini |265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Définissez `1` pour retirer du contexte de Claude les instructions intégrées de workflow de commit et de PR ainsi que l'instantané du statut git. Utile lorsque vous utilisez vos propres skills de workflow git. Lorsqu'elle est définie, elle est prioritaire sur le paramètre [`includeGitInstructions`](/docs/fr/settings-reference#includegitinstructions) |

266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Définissez sur `1` pour empêcher le remappage automatique d'Opus 4.0 et 4.1 à la version Opus actuelle sur l'API Anthropic. Utilisez lorsque vous souhaitez intentionnellement épingler un modèle plus ancien. Le remappage ne s'exécute pas sur Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry |266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Définissez `1` pour empêcher le remappage automatique d'Opus 4.0 et 4.1 vers la version actuelle d'Opus sur l'API Anthropic. À utiliser lorsque vous souhaitez délibérément épingler un ancien modèle. Le remappage ne s'exécute pas sur Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry |

267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Définissez sur `1` pour arrêter Claude Code sur [Amazon Bedrock](/docs/fr/amazon-bedrock#when-a-model-is-disabled-mid-session) et [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai#when-a-model-is-disabled-mid-session) de basculer vers un modèle plus ancien lorsque votre compte perd l'accès au modèle d'une session au milieu de la session ; la requête refusée échoue immédiatement à la place. Une [chaîne de modèle de secours](/docs/fr/model-config#fallback-model-chains) que vous configurez bascule toujours sur ce refus, et les [vérifications du modèle de démarrage](/docs/fr/amazon-bedrock#startup-model-checks) basculent toujours au lancement. Nécessite Claude Code v2.1.285 ou ultérieur |267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Définissez `1` pour empêcher Claude Code, sur [Amazon Bedrock](/docs/fr/amazon-bedrock#when-a-model-is-disabled-mid-session) et [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai#when-a-model-is-disabled-mid-session), de basculer vers un modèle plus ancien lorsque votre compte perd l'accès au modèle d'une session en cours de session ; la requête refusée échoue alors immédiatement. Une [chaîne de modèles de secours](/docs/fr/model-config#fallback-model-chains) que vous configurez bascule toujours lors de ce refus, et les [vérifications de modèle au démarrage](/docs/fr/amazon-bedrock#startup-model-checks) se rabattent toujours sur un autre modèle au lancement. Nécessite Claude Code v2.1.285 ou ultérieur |

268| `CLAUDE_CODE_DISABLE_MOUSE` | Définissez sur `1` pour désactiver le suivi de la souris en [rendu plein écran](/docs/fr/fullscreen). Le défilement au clavier avec `PgUp` et `PgDn` fonctionne toujours. Utilisez ceci pour garder le comportement de copie à la sélection natif de votre terminal |268| `CLAUDE_CODE_DISABLE_MOUSE` | Définissez `1` pour désactiver le suivi de la souris en [rendu plein écran](/docs/fr/fullscreen). Le défilement au clavier avec `PgUp` et `PgDn` fonctionne toujours. Utilisez-la pour conserver le comportement natif de copie à la sélection de votre terminal |

269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Définissez sur `1` pour désactiver le clic, le glissement et la gestion du survol en [rendu plein écran](/docs/fr/fullscreen) tout en gardant le défilement à la molette de la souris. Utilisez ceci lorsque vous souhaitez que le défilement à la molette fonctionne à l'intérieur de Claude Code mais que vous ne souhaitez pas que les clics positionnent le curseur, développent la sortie de l'outil ou ouvrent les liens. `CLAUDE_CODE_DISABLE_MOUSE` a la priorité lorsque les deux sont définis. Nécessite Claude Code v2.1.195 ou ultérieur |269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Définissez `1` pour désactiver la gestion des clics, du glisser et du survol en [rendu plein écran](/docs/fr/fullscreen) tout en conservant le défilement à la molette. Utilisez-la lorsque vous souhaitez que le défilement à la molette fonctionne dans Claude Code sans que les clics positionnent le curseur, développent la sortie des outils ou ouvrent des liens. `CLAUDE_CODE_DISABLE_MOUSE` est prioritaire lorsque les deux sont définies. Nécessite Claude Code v2.1.195 ou ultérieur |

270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Définissez sur `1` pour empêcher Claude Code de relire le [certificat client mTLS et la clé](/docs/fr/network-config#mtls-authentication) lorsqu'une requête API échoue avec une erreur au niveau de la connexion, comme une réinitialisation de connexion ou une erreur de poignée de main TLS. Avec le rechargement désactivé, Claude Code charge les fichiers pivotés uniquement lorsqu'il applique ensuite les paramètres ou au prochain démarrage. Nécessite Claude Code v2.1.232 ou ultérieur |270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Définissez `1` pour empêcher Claude Code de relire le [certificat et la clé client mTLS](/docs/fr/network-config#mtls-authentication) lorsqu'une requête API échoue avec une erreur au niveau de la connexion, comme une réinitialisation de connexion ou une erreur de handshake TLS. Avec le rechargement désactivé, Claude Code ne charge les fichiers renouvelés que la prochaine fois qu'il applique les paramètres ou au prochain démarrage. Nécessite Claude Code v2.1.232 ou ultérieur |

271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour désactiver le trafic réseau non essentiel : les mises à jour automatiques, la télémétrie, la signalisation des erreurs, la commande `/feedback`, [les commentaires rédigés par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior), les notes de version, les [vérifications du badge d'état PR et MR](/docs/fr/interactive-mode#pr-review-status) et les vérifications de disponibilité telles que la vérification du [mode rapide](/docs/fr/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Il arrête également les [exécutions d'arrière-plan des sources de commande du plugin](/docs/fr/plugins/loading#when-a-command-source-re-runs), qui sont des commandes locales plutôt que du trafic réseau, car elles peuvent déclencher des installations de dépendances. **Définir sur `0` ou `false` désactive toujours ce trafic**, contrairement à la plupart des variables activées/désactivées ; supprimez la variable pour l'autoriser à nouveau. Désactive également la récupération des drapeaux de fonctionnalité, ce qui rend [Remote Control](/docs/fr/remote-control#requirements) et les autres [fonctionnalités qui nécessitent la récupération des drapeaux de fonctionnalité](#features-that-need-feature-flag-fetching) indisponibles. L'installation automatique de la place de marché officielle des plugins n'est pas couverte ; désactivez-la avec `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. N'affecte pas la [découverte du modèle de passerelle](/docs/fr/llm-gateway-connect#add-gateway-models-to-the-model-picker), qui a son propre opt-in |271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Définissez une valeur non vide quelconque, comme `1`, pour désactiver le trafic réseau non essentiel : mises à jour automatiques, télémétrie, rapports d'erreurs, la commande `/feedback`, les [retours rédigés par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior), les notes de version, les vérifications du [badge de statut des PR et MR](/docs/fr/interactive-mode#pr-review-status) et les vérifications de disponibilité telles que celle du [mode rapide](/docs/fr/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Elle arrête également les [exécutions en arrière-plan des sources `command` de plugins](/docs/fr/plugins/loading#when-a-command-source-re-runs), qui sont des commandes locales plutôt que du trafic réseau, car elles peuvent déclencher des installations de dépendances. **La définir à `0` ou `false` désactive tout de même ce trafic**, contrairement à la plupart des variables d'activation ; supprimez la variable pour l'autoriser à nouveau. Désactive également la récupération des feature flags, ce qui rend indisponibles [Remote Control](/docs/fr/remote-control#requirements) et les autres [fonctionnalités nécessitant la récupération des feature flags](#features-that-need-feature-flag-fetching). L'installation automatique de la marketplace de plugins officielle n'est pas concernée ; désactivez-la avec `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. N'affecte pas la [découverte des modèles de passerelle](/docs/fr/llm-gateway-connect#add-gateway-models-to-the-model-picker), qui dispose de sa propre activation |

272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Définissez sur `1` pour désactiver le secours non-continu lorsqu'une requête en continu échoue au milieu du flux. Les erreurs de flux continu se propagent à la couche de nouvelle tentative à la place. Utile lorsqu'une passerelle ou une proxy cause le secours pour produire une exécution d'outil dupliquée |272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Définissez `1` pour désactiver la solution de repli sans streaming lorsqu'une requête en streaming échoue en cours de flux. Les erreurs de streaming sont alors transmises à la couche de nouvelles tentatives. Utile lorsqu'un proxy ou une passerelle amène la solution de repli à exécuter des outils en double |

273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Définissez sur `1` pour envoyer la notification de bureau de l'outil `PushNotification` même pendant que vous tapez dans ou êtes concentré sur le terminal. Par défaut, l'outil ignore à la fois la notification de bureau et le [push mobile](/docs/fr/remote-control#mobile-push-notifications) lorsqu'il détecte une activité clavier récente ou une concentration du terminal. Cette variable désactive uniquement cette vérification locale, afin que le serveur puisse toujours supprimer le push mobile lorsqu'il détecte que vous êtes actif. Nécessite Claude Code v2.1.193 ou ultérieur |273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Définissez `1` pour envoyer la notification de bureau de l'outil `PushNotification` même lorsque vous tapez dans le terminal ou que celui-ci a le focus. Par défaut, l'outil ignore à la fois la notification de bureau et la [notification push mobile](/docs/fr/remote-control#mobile-push-notifications) lorsqu'il détecte une activité récente du clavier ou le focus du terminal. Cette variable désactive uniquement cette vérification locale ; le serveur peut donc toujours supprimer la notification push mobile lorsqu'il détecte que vous êtes actif. Nécessite Claude Code v2.1.193 ou ultérieur |

274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Définissez sur `1` pour désactiver l'enregistrement automatique de la place de marché officielle des plugins. Claude Code lit la variable lorsqu'il est sur le point d'enregistrer la place de marché, généralement lors du premier lancement interactif d'une machine. Si la variable est définie à ce moment, Claude Code omet l'enregistrement de manière permanente. Supprimer la variable plus tard n'annule pas l'omission. Exécutez `claude plugin marketplace add anthropics/claude-plugins-official` pour enregistrer la place de marché à tout moment |274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Définissez `1` pour désactiver l'enregistrement automatique de la marketplace de plugins officielle. Claude Code lit la variable au moment d'enregistrer la marketplace, généralement lors du premier lancement interactif sur une machine. Si la variable est définie à ce moment-là, Claude Code ignore définitivement l'enregistrement. Supprimer la variable ultérieurement n'annule pas cet abandon. Exécutez `claude plugin marketplace add anthropics/claude-plugins-official` pour enregistrer la marketplace à tout moment |

275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Définissez sur `1` pour empêcher Claude Code d'exécuter vos [crochets de notification pour les demandes de permission sans réponse](/docs/fr/hooks#notification) dans les sessions où Claude Code les envoie au rappel `canUseTool` du SDK Agent, ce qui est la façon dont Claude Desktop et l'extension VS Code hébergent Claude Code. N'a aucun effet dans les sessions de terminal. Nécessite Claude Code v2.1.233 ou ultérieur |275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Définissez `1` pour empêcher Claude Code d'exécuter vos [hooks `Notification` pour les demandes de permission sans réponse](/docs/fr/hooks#notification) dans les sessions où Claude Code les envoie au callback `canUseTool` de l'Agent SDK, ce qui correspond à la façon dont Claude Desktop et l'extension VS Code hébergent Claude Code. Sans effet dans les sessions de terminal. Nécessite Claude Code v2.1.233 ou ultérieur |

276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Définissez sur `1` pour ignorer le chargement des compétences à partir du répertoire des compétences gérées à l'échelle du système. Utile pour les sessions de conteneur ou CI qui ne doivent pas charger les compétences provisionnées par l'opérateur |276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Définissez `1` pour ne pas charger les skills du répertoire de skills gérés à l'échelle du système. Utile pour les sessions en conteneur ou en CI qui ne doivent pas charger les skills provisionnés par l'opérateur |

277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Définissez sur `1` pour désactiver la vérification de l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool) qui refuse les commandes intégrées `cmd` `rd`, `rmdir`, `del` et `erase` sur un [chemin système](/docs/fr/permission-modes#remove-item-in-powershell), comme une racine de lecteur ou votre répertoire personnel. Claude Code ignore cette variable dans un bloc `env` du fichier de paramètres. Nécessite Claude Code v2.1.283 ou ultérieur |277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Définissez `1` pour désactiver la vérification de l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool) qui refuse les commandes intégrées `cmd` `rd`, `rmdir`, `del` et `erase` sur un [chemin système](/docs/fr/permission-modes#remove-item-in-powershell), comme la racine d'un lecteur ou votre répertoire personnel. Claude Code ignore cette variable dans le bloc `env` d'un fichier de paramètres. Nécessite Claude Code v2.1.283 ou ultérieur |

278| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Définissez sur `1` pour désactiver la vérification du [chemin critique](/docs/fr/permission-modes#critical-paths) pour un `rm` récursif dont la cible est entièrement la sortie d'une substitution de commande, comme `rm -rf "$(pwd)"`. Les autres vérifications du chemin critique continuent à s'exécuter. Définissez-le dans l'environnement qui lance Claude Code, car Claude Code ignore une copie livrée via un bloc `env` de paramètres. Nécessite Claude Code v2.1.281 ou ultérieur |278| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Définissez `1` pour empêcher Claude Code d'envoyer le champ de sortie structurée `output_config.format` et la valeur `anthropic-beta` associée, pour une [passerelle LLM](/docs/fr/llm-gateway-protocol#feature-pass-through) dont l'amont les rejette. Cela laisse activées les autres capacités de préversion que [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/fr/llm-gateway-protocol#disable-pre-release-capabilities) désactive. Nécessite Claude Code v2.1.288 ou ultérieur |

279| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Définissez sur `1` pour désactiver les mises à jour automatiques du titre du terminal en fonction du contexte de la conversation. Cela ignore également la requête de modèle petit/rapide d'arrière-plan qui [génère un titre de session](/docs/fr/sessions#name-your-sessions) |279| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Définissez `1` pour désactiver la vérification de [chemin critique](/docs/fr/permission-modes#critical-paths) pour un `rm` récursif dont la cible est entièrement la sortie d'une substitution de commande, comme `rm -rf "$(pwd)"`. Les autres vérifications de chemins critiques continuent de s'exécuter. Définissez-la dans l'environnement qui lance Claude Code, car Claude Code ignore une copie fournie via un bloc `env` de paramètres. Nécessite Claude Code v2.1.281 ou ultérieur |

280| `CLAUDE_CODE_DISABLE_THINKING` | Définissez sur `1` pour omettre complètement le paramètre `thinking` des requêtes API. C'est une option de compatibilité pour les proxies et les passerelles qui rejettent le paramètre. Sur les modèles qui pensent par défaut, omettre le paramètre signifie que le modèle peut toujours penser. Pour désactiver explicitement la [réflexion étendue](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) sur l'API Anthropic, utilisez `MAX_THINKING_TOKENS=0` à la place. Aucune variable ne désactive la réflexion sur Opus 5.5, Sonnet 5.5 ou les modèles Fable, qui ne peuvent pas avoir la réflexion désactivée. Sur [les fournisseurs tiers](/docs/fr/third-party-integrations), `MAX_THINKING_TOKENS=0` omet également le paramètre, afin que les deux variables se comportent de la même manière là |280| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Définissez `1` pour désactiver les mises à jour automatiques du titre du terminal basées sur le contexte de la conversation. Cela ignore également la requête en arrière-plan au modèle small/fast qui [génère un titre de session](/docs/fr/sessions#name-your-sessions) |

281| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Définissez sur `1` pour ignorer la [compaction automatique](/docs/fr/costs#reduce-token-usage) proactive lorsque Claude Code ne reconnaît pas l'ID du modèle, comme un alias de [passerelle LLM](/docs/fr/llm-gateway). Sans cette variable, Claude Code compacte à la fenêtre de contexte qu'il suppose pour l'ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` peut corriger la fenêtre supposée à la place ; voir [Corriger la fenêtre pour un ID de modèle de passerelle ou personnalisé](/docs/fr/model-config#correct-the-window-for-a-gateway-or-custom-model-id) pour savoir quand chaque variable s'applique. Nécessite Claude Code v2.1.223 ou ultérieur |281| `CLAUDE_CODE_DISABLE_THINKING` | Définissez `1` pour omettre entièrement le paramètre `thinking` des requêtes API. Il s'agit d'une option de compatibilité pour les proxys et passerelles qui rejettent ce paramètre. Sur les modèles qui réfléchissent par défaut, omettre le paramètre signifie que le modèle peut toujours réfléchir. Pour désactiver explicitement la [réflexion étendue](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) sur l'API Anthropic, utilisez plutôt `MAX_THINKING_TOKENS=0`. Aucune des deux variables ne désactive la réflexion sur Opus 5.5, Sonnet 5.5 ou les modèles Fable, sur lesquels la réflexion ne peut pas être désactivée. Chez les [fournisseurs tiers](/docs/fr/third-party-integrations), `MAX_THINKING_TOKENS=0` omet également le paramètre, de sorte que les deux variables s'y comportent de la même manière |

282| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Définissez sur `1` pour désactiver le défilement virtuel en [rendu plein écran](/docs/fr/fullscreen) et afficher chaque message dans la transcription. Utilisez ceci si le défilement en mode plein écran affiche des régions vierges où les messages doivent apparaître |282| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Définissez `1` pour ignorer la [compaction automatique](/docs/fr/costs#reduce-token-usage) proactive lorsque Claude Code ne reconnaît pas l'ID du modèle, comme un alias de [passerelle LLM](/docs/fr/llm-gateway). Sans cette variable, Claude Code compacte selon la fenêtre de contexte qu'il suppose pour l'ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` peut plutôt corriger la fenêtre supposée ; voir [Corriger la fenêtre pour une passerelle ou un ID de modèle personnalisé](/docs/fr/model-config#correct-the-window-for-a-gateway-or-custom-model-id) pour savoir quand chaque variable s'applique. Nécessite Claude Code v2.1.223 ou ultérieur |

283| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Définissez sur `1` pour désactiver l'[outil WebFetch](/docs/fr/tools-reference#webfetch-tool-behavior). L'[outil WebSearch](/docs/fr/tools-reference#websearch-tool-behavior) reste disponible. Nécessite Claude Code v2.1.285 ou ultérieur |283| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Définissez `1` pour désactiver le défilement virtuel en [rendu plein écran](/docs/fr/fullscreen) et afficher chaque message de la transcription. Utilisez-la si le défilement en mode plein écran affiche des zones vides là où des messages devraient apparaître |

284| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Définissez sur `1` pour démarrer les commandes de l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool) sur Windows directement au lieu de via le lanceur `cmd.exe`. Par défaut, le lanceur permet à une commande PowerShell [s'exécutant en arrière-plan](/docs/fr/tools-reference#background-commands) de [se reporter au processus suivant de la session](/docs/fr/agent-view#the-supervisor-process), par exemple lorsque vous [mettez la session en arrière-plan](/docs/fr/agent-view#from-inside-a-session). Si vous définissez la variable, une commande PowerShell mise en arrière-plan s'arrête lorsque le processus de la session se termine. Les commandes Bash ne sont pas affectées. Nécessite Claude Code v2.1.269 ou ultérieur |284| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Définissez `1` pour désactiver l'outil [WebFetch](/docs/fr/tools-reference#webfetch-tool-behavior). L'outil [WebSearch](/docs/fr/tools-reference#websearch-tool-behavior) reste disponible. Nécessite Claude Code v2.1.285 ou ultérieur |

285| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Définissez sur `1` pour désactiver les [flux de travail](/docs/fr/workflows#turn-workflows-off). Équivalent au paramètre [`disableWorkflows`](/docs/fr/settings-reference#disableworkflows) |285| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Définissez `1` pour démarrer directement les commandes de l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool) sous Windows au lieu de passer par le lanceur `cmd.exe`. Par défaut, le lanceur permet à une commande PowerShell [exécutée en arrière-plan](/docs/fr/tools-reference#background-commands) d'être [transférée au processus suivant de la session](/docs/fr/agent-view#the-supervisor-process), par exemple lorsque vous [mettez la session en arrière-plan](/docs/fr/agent-view#from-inside-a-session). Si vous définissez la variable, une commande PowerShell en arrière-plan s'arrête lorsque le processus de la session se termine. Les commandes Bash ne sont pas affectées. Nécessite Claude Code v2.1.269 ou ultérieur |

286| `CLAUDE_CODE_EFFORT_LEVEL` | Définissez le niveau d'effort pour les modèles pris en charge. Valeurs : `low`, `medium`, `high`, `xhigh`, `max` ou `auto` pour utiliser la valeur par défaut du modèle. Les niveaux disponibles dépendent du modèle. A la priorité sur `--effort`, `/effort` et les paramètres `modelSettings` et `effortLevel`. Un plafond [`maxEffortLevel`](/docs/fr/settings-reference#maxeffortlevel) s'applique toujours. Voir [Ajuster le niveau d'effort](/docs/fr/model-config#adjust-effort-level) |286| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Définissez `1` pour désactiver les [workflows](/docs/fr/workflows#turn-workflows-off). Équivalent au paramètre [`disableWorkflows`](/docs/fr/settings-reference#disableworkflows) |

287| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Accepté pour la compatibilité avec les versions antérieures et n'a aucun effet. Le mode auto est disponible par défaut sur chaque fournisseur, y compris Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry et les sessions de passerelle [Claude apps](/docs/fr/claude-apps-gateway) signées. Dans v2.1.158 à v2.1.206, définir ceci sur `1` était nécessaire pour rendre le [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) disponible sur ces fournisseurs |287| `CLAUDE_CODE_EFFORT_LEVEL` | Définit le niveau d'effort pour les modèles pris en charge. Valeurs : `low`, `medium`, `high`, `xhigh`, `max`, ou `auto` pour utiliser la valeur par défaut du modèle. Les niveaux disponibles dépendent du modèle. Prioritaire sur `--effort`, `/effort` et les paramètres `modelSettings` et `effortLevel`. Un plafond [`maxEffortLevel`](/docs/fr/settings-reference#maxeffortlevel) s'applique toujours. Voir [Ajuster le niveau d'effort](/docs/fr/model-config#adjust-effort-level) |

288| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Remplacez la disponibilité du [récapitulatif de session](/docs/fr/interactive-mode#session-recap). Définissez sur `0` pour forcer les récapitulatifs désactivés quel que soit le basculement `/config`. Définissez sur `1` pour forcer les récapitulatifs activés lorsque [`awaySummaryEnabled`](/docs/fr/settings-reference#awaysummaryenabled) est `false`. A la priorité sur le paramètre et le basculement `/config` |288| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Acceptée pour la compatibilité avec les versions antérieures et sans effet. Le mode auto est disponible par défaut chez tous les fournisseurs, y compris Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry et les sessions [Claude apps gateway](/docs/fr/claude-apps-gateway) connectées. De la v2.1.158 à la v2.1.206, définir cette variable à `1` était nécessaire pour rendre le [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) disponible chez ces fournisseurs |

289| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Définissez sur `1` pour actualiser l'état du plugin aux limites de tour en [mode non interactif](/docs/fr/headless) après la fin d'une installation d'arrière-plan. Désactivé par défaut car l'actualisation change l'invite système au milieu de la session, ce qui invalide la [mise en cache des invites](/docs/fr/prompt-caching) pour ce tour |289| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Remplace la disponibilité du [récapitulatif de session](/docs/fr/interactive-mode#session-recap). Définissez `0` pour forcer la désactivation des récapitulatifs quel que soit le réglage `/config`. Définissez `1` pour forcer leur activation lorsque [`awaySummaryEnabled`](/docs/fr/settings-reference#awaysummaryenabled) vaut `false`. Prioritaire sur le paramètre et le réglage `/config` |

290| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Définissez sur `1` pour router le sondage de qualité de session « How is Claude doing? » vers votre propre [collecteur OpenTelemetry](/docs/fr/monitoring-usage) lorsque le trafic non essentiel lié à Anthropic est bloqué. Les évaluations du sondage sont émises uniquement en tant qu'événements OTEL vers votre collecteur configuré. Aucune donnée de sondage n'est envoyée à Anthropic dans ce mode. S'applique lorsque `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` ou `DO_NOT_TRACK` est défini, et n'a aucun effet sinon. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` et la politique de commentaires du produit de l'organisation ont la priorité |290| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Définir sur `1` pour actualiser l'état des plugins aux limites de tour en [mode non interactif](/docs/fr/headless) après la fin d'une installation en arrière-plan. Désactivé par défaut, car l'actualisation modifie le prompt système en cours de session, ce qui invalide le [prompt caching](/docs/fr/prompt-caching) pour ce tour |

291| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Contrôle si les entrées d'appel d'outil se transmettent depuis l'API au fur et à mesure que Claude les génère. Avec ceci désactivé, une grande entrée d'outil comme une longue écriture de fichier n'arrive qu'après que Claude ait fini de la générer, ce qui peut sembler qu'elle se bloque. Activé par défaut sur l'API Anthropic. Sur Amazon Bedrock et Google Cloud's Agent Platform, activé par modèle où le conteneur déployé le supporte. Définissez sur `0` pour refuser. Définissez sur `1` pour forcer l'activation lors du routage via un proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` ou `ANTHROPIC_BEDROCK_BASE_URL`. Désactivé par défaut sur Microsoft Foundry et les connexions [passerelle](/docs/fr/llm-gateway) |291| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Définir sur `1` pour acheminer l'enquête de qualité de session « How is Claude doing? » vers votre propre [collecteur OpenTelemetry](/docs/fr/monitoring-usage) lorsque le trafic non essentiel destiné à Anthropic est bloqué. Les évaluations de l'enquête sont émises uniquement sous forme d'événements OTEL vers votre collecteur configuré. Aucune donnée d'enquête n'est envoyée à Anthropic dans ce mode. S'applique lorsque `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` ou `DO_NOT_TRACK` est défini, et n'a aucun effet sinon. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` et la politique de feedback produit de l'organisation ont priorité |

292| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Définissez sur `1` pour remplir le sélecteur `/model` à partir du point de terminaison `/v1/models` de votre passerelle lorsque `ANTHROPIC_BASE_URL` pointe vers une passerelle compatible Anthropic comme LiteLLM, Kong ou un proxy interne. Désactivé par défaut car les passerelles soutenues par une clé API partagée afficheraient autrement à chaque utilisateur chaque modèle auquel la clé peut accéder. Les modèles découverts sont toujours filtrés par une liste d'autorisation [`availableModels`](/docs/fr/settings-reference#availablemodels) que la session reçoit ; livrez la liste via [MDM ou un fichier de paramètres gérés](/docs/fr/managed-settings#delivery-mechanisms), car [la livraison gérée par le serveur n'est pas disponible sur les configurations de passerelle](/docs/fr/server-managed-settings#platform-availability) |292| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Contrôle si les entrées des appels d'outils sont diffusées en streaming depuis l'API au fur et à mesure que Claude les génère. Lorsque cette option est désactivée, une entrée d'outil volumineuse, comme l'écriture d'un long fichier, n'arrive qu'une fois que Claude a fini de la générer, ce qui peut donner l'impression d'un blocage. Activé par défaut sur l'API Anthropic. Sur Amazon Bedrock et Google Cloud's Agent Platform, activé par modèle lorsque le conteneur déployé le prend en charge. Définir sur `0` pour le désactiver. Définir sur `1` pour forcer l'activation lors du routage via un proxy avec `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` ou `ANTHROPIC_BEDROCK_BASE_URL`. Désactivé par défaut sur Microsoft Foundry et les connexions via une [passerelle](/docs/fr/llm-gateway) |

293| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Supprimé dans v2.1.142, lorsque la valeur par défaut du [mode rapide](/docs/fr/fast-mode) a été déplacée d'Opus 4.6 à Opus 4.7 |293| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Définir sur `1` pour alimenter le sélecteur `/model` à partir de l'endpoint `/v1/models` de votre passerelle lorsque `ANTHROPIC_BASE_URL` pointe vers une passerelle compatible Anthropic telle que LiteLLM, Kong ou un proxy interne. Désactivé par défaut, car les passerelles reposant sur une clé API partagée montreraient sinon à chaque utilisateur tous les modèles auxquels la clé peut accéder. Les modèles découverts restent filtrés par une liste d'autorisation [`availableModels`](/docs/fr/settings-reference#availablemodels) reçue par la session ; distribuez la liste via [MDM ou un fichier de paramètres gérés](/docs/fr/managed-settings#delivery-mechanisms), car [la distribution gérée par le serveur n'est pas disponible sur les configurations de passerelle](/docs/fr/server-managed-settings#platform-availability) |

294| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Définissez sur `false` pour désactiver les suggestions d'invite, les prédictions grisées qui apparaissent dans votre entrée d'invite. A la priorité sur le paramètre [`promptSuggestionEnabled`](/docs/fr/settings-reference#promptsuggestionenabled), qui est ce que le basculement **Prompt suggestions** dans `/config` écrit. Claude Code [met également en pause les suggestions tandis que votre compte est proche ou à sa limite d'utilisation](/docs/fr/interactive-mode#when-claude-code-skips-suggestions). Définissez sur `true` pour les garder activées jusqu'à ce que vous atteigniez la limite. Nécessite Claude Code v2.1.238 ou ultérieur. Voir [Suggestions d'invite](/docs/fr/interactive-mode#prompt-suggestions) |294| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Supprimée dans la v2.1.142, lorsque le [mode rapide](/docs/fr/fast-mode) par défaut est passé d'Opus 4.6 à Opus 4.7 |

295| `CLAUDE_CODE_ENABLE_TASKS` | Sélectionne les outils de suivi des tâches que Claude Code fournit dans [les sessions qui les ont](/docs/fr/tools-reference#task-tool-availability). Par défaut, Claude Code fournit les outils Task `TaskCreate`, `TaskUpdate`, `TaskGet` et `TaskList`. Définissez sur `0` pour obtenir l'outil `TodoWrite` hérité à la place. Voir [Liste des tâches](/docs/fr/interactive-mode#task-list) |295| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Définir sur `false` pour désactiver les suggestions de prompt, les prédictions grisées qui apparaissent dans votre zone de saisie. A priorité sur le paramètre [`promptSuggestionEnabled`](/docs/fr/settings-reference#promptsuggestionenabled), qui est celui qu'écrit le bouton **Prompt suggestions** dans `/config`. Claude Code [met également les suggestions en pause lorsque votre compte est proche de sa limite d'utilisation ou l'a atteinte](/docs/fr/interactive-mode#when-claude-code-skips-suggestions). Définir sur `true` pour les conserver jusqu'à ce que vous atteigniez la limite. Nécessite Claude Code v2.1.238 ou ultérieur. Voir [Suggestions de prompt](/docs/fr/interactive-mode#prompt-suggestions) |

296| `CLAUDE_CODE_ENABLE_TELEMETRY` | Définissez sur `1` pour activer la collecte de données OpenTelemetry pour les métriques et la journalisation. Requis avant de configurer les exportateurs OTel. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Voir [Surveillance](/docs/fr/monitoring-usage) |296| `CLAUDE_CODE_ENABLE_TASKS` | Sélectionne les outils de suivi des tâches que Claude Code fournit dans [les sessions qui en disposent](/docs/fr/tools-reference#task-tool-availability). Par défaut, Claude Code fournit les outils Task `TaskCreate`, `TaskUpdate`, `TaskGet` et `TaskList`. Définir sur `0` pour obtenir à la place l'ancien outil `TodoWrite`. Voir [Liste des tâches](/docs/fr/interactive-mode#task-list) |

297| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Définissez sur `1` pour obtenir les outils de suivi des tâches sur chaque modèle. Sans cela, Claude Code les fournit par défaut uniquement sur les modèles énumérés sous [Disponibilité de l'outil Task](/docs/fr/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` sélectionne toujours les outils Task ou `TodoWrite`. Nécessite Claude Code v2.1.233 ou ultérieur |297| `CLAUDE_CODE_ENABLE_TELEMETRY` | Définir sur `1` pour activer la collecte de données OpenTelemetry pour les métriques et les logs. Requis avant de configurer les exportateurs OTel. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Voir [Surveillance](/docs/fr/monitoring-usage) |

298| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Temps en millisecondes à attendre après que la boucle de requête devienne inactive avant de quitter automatiquement. Utile pour les flux de travail automatisés et les scripts utilisant le mode SDK |298| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Définir sur `1` pour obtenir les outils de suivi des tâches sur tous les modèles. Sans cela, Claude Code ne les fournit par défaut que sur les modèles listés sous [Disponibilité de l'outil Task](/docs/fr/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` sélectionne toujours les outils Task ou `TodoWrite`. Nécessite Claude Code v2.1.233 ou ultérieur |

299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Définissez sur `1` pour activer les [équipes d'agents](/docs/fr/agent-teams). Les équipes d'agents sont expérimentales et désactivées par défaut |299| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Durée en millisecondes à attendre après que la boucle de requêtes devient inactive avant de quitter automatiquement. Utile pour les workflows automatisés et les scripts utilisant le mode SDK |

300| `CLAUDE_CODE_EXTRA_BODY` | Objet JSON à fusionner au niveau supérieur de chaque corps de requête API. Utile pour transmettre des paramètres spécifiques au fournisseur que Claude Code n'expose pas directement. Une valeur exportée dans votre shell s'applique également aux [sessions d'arrière-plan](/docs/fr/agent-view) que vous distribuez avec `claude agents` ou `--bg`. Avant v2.1.206, les sessions d'arrière-plan ignoraient une valeur exportée par le shell et utilisaient la copie que le processus superviseur d'arrière-plan héritait |300| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Définir sur `1` pour activer les [équipes d'agents](/docs/fr/agent-teams). Les équipes d'agents sont expérimentales et désactivées par défaut |

301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Remplacez la limite de jetons par défaut pour les lectures de fichiers. Utile lorsque vous devez lire des fichiers plus volumineux en entier |301| `CLAUDE_CODE_EXTRA_BODY` | Objet JSON à fusionner au niveau supérieur de chaque corps de requête API. Utile pour transmettre des paramètres propres à un fournisseur que Claude Code n'expose pas directement. Une valeur exportée dans votre shell s'applique également aux [sessions en arrière-plan](/docs/fr/agent-view) que vous lancez avec `claude agents` ou `--bg`. Avant la v2.1.206, les sessions en arrière-plan ignoraient une valeur exportée depuis le shell et utilisaient la copie héritée par le processus superviseur en arrière-plan |

302| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Définissez sur `1` pour forcer la persistance de la transcription, l'historique des invites et l'enregistrement `claude agents` même lorsque ce `claude` a été lancé de l'intérieur d'une autre session Claude Code. Utilisez lorsqu'une valeur `CLAUDE_CODE_CHILD_SESSION` héritée, par exemple d'une session `screen` ou d'un lanceur d'arrière-plan d'abord démarré par l'outil Bash de Claude Code, cause une session de niveau supérieur authentique à être mal classée comme imbriquée. À partir de v2.1.178, Claude Code détecte automatiquement le cas tmux et ignore le marqueur hérité, afin que tmux n'ait plus besoin de cette variable. Également honoré sur v2.1.169 et antérieur ; n'a aucun effet sur v2.1.170 et v2.1.171, où la détection de session imbriquée qu'il remplace a été supprimée |302| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Remplace la limite de tokens par défaut pour la lecture de fichiers. Utile lorsque vous devez lire intégralement des fichiers plus volumineux |

303| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Définissez sur `1` pour forcer le rendu du barré pour `~~text~~` dans les réponses de Claude lorsque votre terminal le supporte mais n'est pas détecté automatiquement, par exemple sur SSH sans `TERM_PROGRAM` transféré. Sans cela, les terminaux non détectés affichent les marqueurs littéraux `~~` au lieu de rendre le texte comme barré. Nécessite Claude Code v2.1.186 ou ultérieur |303| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Définir sur `1` pour forcer la persistance de la transcription, l'historique des prompts et l'enregistrement dans `claude agents`, même lorsque ce `claude` a été lancé depuis une autre session Claude Code. À utiliser lorsqu'une valeur `CLAUDE_CODE_CHILD_SESSION` héritée, par exemple d'une session `screen` ou d'un lanceur en arrière-plan démarré à l'origine par l'outil Bash de Claude Code, fait qu'une véritable session de premier niveau est classée à tort comme imbriquée. Depuis la v2.1.178, Claude Code détecte automatiquement le cas de tmux et ignore le marqueur hérité, de sorte que tmux n'a plus besoin de cette variable. Également prise en compte dans la v2.1.169 et antérieures ; sans effet dans les v2.1.170 et v2.1.171, où la détection des sessions imbriquées qu'elle remplace avait été supprimée |

304| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Définissez sur `1` pour forcer l'activation du mode privé DEC 2026 [sortie synchronisée](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) lorsque votre terminal le supporte mais n'est pas détecté automatiquement. Utile pour les émulateurs comme Emacs `eat` qui implémentent BSU/ESU mais ne répondent pas à la sonde de capacité. N'a aucun effet sous tmux. Contrairement à `CLAUDE_CODE_NO_FLICKER`, qui bascule vers le [rendu plein écran](/docs/fr/fullscreen), cela ne change pas le rendu |304| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Définir sur `1` pour forcer le rendu barré de `~~text~~` dans les réponses de Claude lorsque votre terminal le prend en charge mais n'est pas détecté automatiquement, par exemple via SSH sans transmission de `TERM_PROGRAM`. Sans cela, les terminaux non détectés affichent les marqueurs `~~` littéraux au lieu de rendre le texte barré. Nécessite Claude Code v2.1.186 ou ultérieur |

305| `CLAUDE_CODE_FORK_SUBAGENT` | Contrôle le [mode fork](/docs/fr/sub-agents#turn-fork-mode-on-or-off), qui permet à Claude de générer des [sous-agents forqués](/docs/fr/sub-agents#fork-the-current-conversation) lui-même et est activé par défaut uniquement dans les sessions interactives. Définissez sur `1` pour l'activer dans `claude -p` et le SDK Agent également, ou `0` pour le désactiver dans tous les types de session. Vous pouvez exécuter `/subtask` que le mode fork soit activé ou non. La valeur par défaut interactive nécessite Claude Code v2.1.232 ou ultérieur ; sur les versions antérieures, définissez la variable sur `1` pour activer le mode fork |305| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Définir sur `1` pour forcer l'activation de la [sortie synchronisée](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) du mode privé DEC 2026 lorsque votre terminal la prend en charge mais n'est pas détecté automatiquement. Utile pour les émulateurs tels qu'Emacs `eat` qui implémentent BSU/ESU mais ne répondent pas à la sonde de capacités. Sans effet sous tmux. Contrairement à `CLAUDE_CODE_NO_FLICKER`, qui bascule vers le [rendu plein écran](/docs/fr/fullscreen), cette variable ne change pas le moteur de rendu |

306| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Définissez sur `1` pour émettre les blocs de texte et de réflexion du [sous-agent](/docs/fr/sub-agents) dans la sortie `claude -p --output-format stream-json`, le même comportement que le [drapeau `--forward-subagent-text`](/docs/fr/cli-reference#cli-flags). Utilisez la variable lorsqu'un harnais invoque `claude` et ne peut pas transmettre le drapeau lui-même. Contrairement au drapeau, qui quitte avec une erreur en dehors du mode non interactif avec la sortie stream-json, la variable est ignorée là afin que les invocations imbriquées continuent à fonctionner lorsqu'elle est définie au niveau du processus. Nécessite Claude Code v2.1.211 ou ultérieur |306| `CLAUDE_CODE_FORK_SUBAGENT` | Contrôle le [mode fork](/docs/fr/sub-agents#turn-fork-mode-on-or-off), qui permet à Claude de lancer lui-même des [sous-agents forkés](/docs/fr/sub-agents#fork-the-current-conversation) et qui est activé par défaut uniquement dans les sessions interactives. Définir sur `1` pour l'activer également dans `claude -p` et l'Agent SDK, ou sur `0` pour le désactiver dans tous les types de sessions. Vous pouvez exécuter `/subtask` que le mode fork soit activé ou non. L'activation par défaut en mode interactif nécessite Claude Code v2.1.232 ou ultérieur ; dans les versions antérieures, définissez la variable sur `1` pour activer le mode fork |

307| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Définissez sur `1` pour envoyer les [en-têtes d'indice de passerelle](/docs/fr/llm-gateway-protocol#gateway-hint-headers), comme `x-claude-code-request-class` et `x-claude-code-compaction`, sur un proxy personnalisé ou un fournisseur tiers comme Amazon Bedrock ou Claude Platform on AWS. Définissez sur `0` pour arrêter de les envoyer sur chaque connexion, y compris une connexion directe à l'API Anthropic, où Claude Code les envoie par défaut. Nécessite Claude Code v2.1.273 ou ultérieur |307| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Définir sur `1` pour émettre le texte et les blocs de réflexion des [sous-agents](/docs/fr/sub-agents) dans la sortie de `claude -p --output-format stream-json`, avec le même comportement que le flag [`--forward-subagent-text`](/docs/fr/cli-reference#cli-flags). Utilisez la variable lorsqu'un harnais invoque `claude` et ne peut pas transmettre le flag lui-même. Contrairement au flag, qui se termine avec une erreur en dehors du mode non interactif avec une sortie stream-json, la variable y est ignorée afin que les invocations imbriquées continuent de fonctionner lorsqu'elle est définie pour tout le processus. Nécessite Claude Code v2.1.211 ou ultérieur |

308| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Délai d'expiration en millisecondes pour la requête de [découverte du modèle de passerelle](/docs/fr/llm-gateway-protocol#model-discovery) que `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` active (par défaut : `3000`). Augmentez-le lorsque votre passerelle a besoin de plus de trois secondes pour répondre à `/v1/models` au démarrage. Accepte uniquement les chiffres simples ; `0`, les valeurs négatives et les autres orthographes conservent la valeur par défaut. Nécessite Claude Code v2.1.269 ou ultérieur |308| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Définir sur `1` pour envoyer les [en-têtes d'indication de passerelle](/docs/fr/llm-gateway-protocol#gateway-hint-headers), tels que `x-claude-code-request-class` et `x-claude-code-compaction`, vers un proxy personnalisé ou un fournisseur tiers tel qu'Amazon Bedrock ou Claude Platform on AWS. Définir sur `0` pour cesser de les envoyer sur toutes les connexions, y compris une connexion directe à l'API Anthropic, où Claude Code les envoie par défaut. Nécessite Claude Code v2.1.273 ou ultérieur |

309| `CLAUDE_CODE_GIT_BASH_PATH` | Windows uniquement : chemin d'accès à l'exécutable Git Bash (`bash.exe`). Utilisez lorsque Git Bash est installé mais pas dans votre PATH. Si le chemin n'existe pas ou que le fichier n'est pas nommé `bash.exe`, `sh.exe`, `bash` ou `sh`, Claude Code ignore la variable et détecte automatiquement Git Bash comme s'il était non défini, en enregistrant un avertissement visible avec `--debug`. Avant v2.1.219, Claude Code quittait au démarrage lorsque le chemin n'existait pas et utilisait n'importe quel fichier existant comme shell sans vérifier qu'il s'agissait de bash ou sh. Voir [Configuration Windows](/docs/fr/setup#set-up-on-windows) |309| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Délai d'expiration en millisecondes pour la requête de [découverte des modèles de la passerelle](/docs/fr/llm-gateway-protocol#model-discovery) qu'active `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (par défaut : `3000`). Augmentez-le lorsque votre passerelle a besoin de plus de trois secondes pour répondre à `/v1/models` au démarrage. N'accepte que des chiffres simples ; `0`, les valeurs négatives et les autres écritures conservent la valeur par défaut. Nécessite Claude Code v2.1.269 ou ultérieur |

310| `CLAUDE_CODE_GLOB_HIDDEN` | Définissez sur `false` pour exclure les fichiers pointillés des résultats lorsque Claude invoque l'[outil Glob](/docs/fr/tools-reference#glob-tool-behavior). Inclus par défaut. N'affecte pas l'autocomplétion de fichier `@`, `ls`, Grep ou Read |310| `CLAUDE_CODE_GIT_BASH_PATH` | Windows uniquement : chemin vers l'exécutable Git Bash (`bash.exe`). À utiliser lorsque Git Bash est installé mais ne figure pas dans votre PATH. Si le chemin n'existe pas ou si le fichier ne s'appelle pas `bash.exe`, `sh.exe`, `bash` ou `sh`, Claude Code ignore la variable et détecte automatiquement Git Bash comme si elle n'était pas définie, en consignant un avertissement visible avec `--debug`. Avant la v2.1.219, Claude Code se fermait au démarrage lorsque le chemin n'existait pas, et utilisait n'importe quel fichier existant comme shell sans vérifier qu'il s'agissait de bash ou sh. Voir [Configuration sous Windows](/docs/fr/setup#set-up-on-windows) |

311| `CLAUDE_CODE_GLOB_NO_IGNORE` | Définissez sur `false` pour faire en sorte que l'[outil Glob](/docs/fr/tools-reference#glob-tool-behavior) respecte les modèles `.gitignore`. Par défaut, Glob retourne tous les fichiers correspondants, y compris les fichiers gitignorés. N'affecte pas l'autocomplétion de fichier `@`, qui a son propre paramètre [`respectGitignore`](/docs/fr/settings-reference#respectgitignore) |311| `CLAUDE_CODE_GLOB_HIDDEN` | Définir sur `false` pour exclure les fichiers cachés (dotfiles) des résultats lorsque Claude invoque l'[outil Glob](/docs/fr/tools-reference#glob-tool-behavior). Inclus par défaut. N'affecte pas l'autocomplétion de fichiers `@`, `ls`, Grep ni Read |

312| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Délai d'expiration en secondes pour la découverte de fichiers de l'outil Glob. Par défaut 20 secondes sur la plupart des plates-formes et 60 secondes sur WSL |312| `CLAUDE_CODE_GLOB_NO_IGNORE` | Définir sur `false` pour que l'[outil Glob](/docs/fr/tools-reference#glob-tool-behavior) respecte les motifs `.gitignore`. Par défaut, Glob renvoie tous les fichiers correspondants, y compris ceux ignorés par Git. N'affecte pas l'autocomplétion de fichiers `@`, qui dispose de son propre [paramètre `respectGitignore`](/docs/fr/settings-reference#respectgitignore) |

313| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Combien de minutes le travail d'arrière-plan peut garder un objectif actif en attente avant que Claude Code [demande à Claude de le vérifier](/docs/fr/goal#background-work-defers-evaluation). Par défaut `30`. Définissez `0` pour désactiver les vérifications. Donnez des minutes entières en chiffres simples, au maximum `10080`, ce qui est une semaine. Claude Code traite toute autre valeur comme non définie et utilise la valeur par défaut. Nécessite Claude Code v2.1.234 ou ultérieur |313| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Délai d'expiration en secondes pour la découverte de fichiers par l'outil Glob. 20 secondes par défaut sur la plupart des plateformes et 60 secondes sur WSL |

314| `CLAUDE_CODE_HIDE_CWD` | Définissez sur `1` pour masquer le répertoire de travail dans le logo de démarrage. Utile pour les partages d'écran ou les enregistrements où le chemin expose votre nom d'utilisateur du système d'exploitation |314| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Nombre de minutes pendant lesquelles un travail en arrière-plan peut maintenir un objectif actif en attente avant que Claude Code [demande à Claude de le vérifier](/docs/fr/goal#background-work-defers-evaluation). Valeur par défaut : `30`. Définir sur `0` pour désactiver les vérifications. Indiquez des minutes entières en chiffres simples, au maximum `10080`, soit une semaine. Claude Code traite toute autre valeur comme non définie et utilise la valeur par défaut. Nécessite Claude Code v2.1.234 ou ultérieur |

315| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Remplacez l'adresse d'hôte utilisée pour se connecter à l'extension IDE. Par défaut, Claude Code détecte automatiquement l'adresse correcte, y compris le routage WSL vers Windows |315| `CLAUDE_CODE_HIDE_CWD` | Définir sur `1` pour masquer le répertoire de travail dans le logo de démarrage. Utile pour les partages d'écran ou les enregistrements où le chemin révèle votre nom d'utilisateur système |

316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Définissez sur `1` pour ignorer l'installation automatique des extensions IDE. Équivalent à la définition de [`autoInstallIdeExtension`](/docs/fr/settings-reference#autoinstallideextension) sur `false` |316| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Remplace l'adresse de l'hôte utilisée pour se connecter à l'extension IDE. Par défaut, Claude Code détecte automatiquement l'adresse correcte, y compris le routage de WSL vers Windows |

317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Définissez sur `1` pour ignorer la validation des entrées du fichier de verrouillage IDE lors de la connexion. Utilisez lorsque la connexion automatique ne trouve pas votre IDE malgré son exécution |317| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Définir sur `1` pour ignorer l'installation automatique des extensions IDE. Équivaut à définir [`autoInstallIdeExtension`](/docs/fr/settings-reference#autoinstallideextension) sur `false` |

318| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Combien de [sous-agents](/docs/fr/sub-agents#concurrent-subagent-limit) peuvent s'exécuter dans une session avant que l'outil Agent refuse d'en générer un autre (par défaut : 20). Accepte un nombre entier positif en chiffres simples uniquement ; tout le reste est ignoré, afin que la variable puisse ajuster le plafond mais ne peut pas le désactiver. Nécessite Claude Code v2.1.217 ou ultérieur |318| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Définir sur `1` pour ignorer la validation des entrées du fichier de verrouillage de l'IDE lors de la connexion. À utiliser lorsque la connexion automatique ne trouve pas votre IDE alors qu'il est en cours d'exécution |

319| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Remplacez la taille de la fenêtre de contexte que Claude Code suppose pour le modèle actif. À partir de v2.1.193, la façon dont elle s'applique dépend de la façon dont Claude Code résout l'ID du modèle ; voir [Corriger la fenêtre pour un ID de modèle de passerelle ou personnalisé](/docs/fr/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Utilisez ceci lors du routage vers un modèle via `ANTHROPIC_BASE_URL` dont la fenêtre de contexte ne correspond pas à la taille intégrée pour son nom |319| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Nombre de [sous-agents](/docs/fr/sub-agents#concurrent-subagent-limit) pouvant s'exécuter dans une session avant que l'outil Agent refuse d'en lancer un autre (par défaut : 20). Accepte un nombre entier positif en chiffres simples ; toute autre valeur est ignorée, de sorte que la variable peut ajuster le plafond mais pas le désactiver. Nécessite Claude Code v2.1.217 ou ultérieur |

320| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longueur maximale en caractères de chaque description d'outil MCP et des instructions de chaque serveur MCP que Claude Code envoie au modèle (par défaut : 2048). Claude Code [tronque le texte plus long](/docs/fr/mcp#for-mcp-server-authors). Accepte un nombre entier positif en chiffres simples. Tout le reste est ignoré et la valeur par défaut s'applique. Nécessite Claude Code v2.1.280 ou ultérieur |320| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Remplace la taille de la fenêtre de contexte que Claude Code suppose pour le modèle actif. Depuis la v2.1.193, la manière dont elle s'applique dépend de la façon dont Claude Code résout l'ID du modèle ; voir [Corriger la fenêtre pour une passerelle ou un ID de modèle personnalisé](/docs/fr/model-config#correct-the-window-for-a-gateway-or-custom-model-id). À utiliser lors du routage vers un modèle via `ANTHROPIC_BASE_URL` dont la fenêtre de contexte ne correspond pas à la taille intégrée associée à son nom |

321| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Définissez le nombre maximum de jetons de sortie pour la plupart des requêtes. Les valeurs par défaut et les plafonds varient selon le modèle ; voir [jetons de sortie max](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code utilise par défaut 32000 pour les ID de modèle qu'il ne reconnaît pas, comme les noms spécifiques à la passerelle, et abaisse les valeurs au-dessus du plafond d'un modèle au plafond. L'augmentation de cette valeur réduit la fenêtre de contexte effective disponible avant le déclenchement de la [compaction automatique](/docs/fr/costs#reduce-token-usage) |321| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longueur maximale en caractères de chaque description d'outil MCP et des instructions de chaque serveur MCP que Claude Code envoie au modèle (par défaut : 2048). Claude Code [tronque les textes plus longs](/docs/fr/mcp#for-mcp-server-authors). Accepte un nombre entier positif en chiffres simples. Toute autre valeur est ignorée et la valeur par défaut s'applique. Nécessite Claude Code v2.1.280 ou ultérieur |

322| `CLAUDE_CODE_MAX_RETRIES` | Remplacez le nombre de fois pour réessayer les requêtes API échouées (par défaut : 10). Limité à 15 à partir de v2.1.186 ; à partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` augmente la valeur par défaut et supprime le plafond. Pour les sessions sans surveillance qui doivent attendre les pannes plus longues, définissez `CLAUDE_CODE_RETRY_WATCHDOG` à la place |322| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Définit le nombre maximal de tokens de sortie pour la plupart des requêtes. Les valeurs par défaut et les plafonds varient selon le modèle ; voir [tokens de sortie maximum](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code ramène au plafond toute valeur qui dépasse le plafond d'un modèle. Pour un ID de modèle que Claude Code ne peut pas associer à un modèle connu, la valeur par défaut est 32000 et le plafond est 128000. Augmenter cette valeur réduit la fenêtre de contexte effective disponible avant le déclenchement de la [compaction automatique](/docs/fr/costs#reduce-token-usage) |

323| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Supprimé dans v2.1.224 et maintenant un no-op. Auparavant, limitait le nombre total de [sous-agents](/docs/fr/sub-agents) que Claude pouvait générer avec l'outil Agent dans une session (par défaut : 200) ; la génération au-delà du plafond échouait avec `Subagent spawn limit reached`. La [limite de sous-agent concurrent](/docs/fr/sub-agents#concurrent-subagent-limit) et la [limite de profondeur](/docs/fr/sub-agents#let-subagents-spawn-their-own-subagents) s'appliquent toujours |323| `CLAUDE_CODE_MAX_RETRIES` | Remplace le nombre de nouvelles tentatives pour les requêtes API ayant échoué (par défaut : 10). Plafonné à 15 depuis la v2.1.186 ; depuis la v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` augmente la valeur par défaut et supprime le plafond. Pour les sessions sans surveillance qui doivent patienter pendant des pannes plus longues, définissez plutôt `CLAUDE_CODE_RETRY_WATCHDOG` |

324| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Nombre de [couches de sous-agents](/docs/fr/sub-agents#let-subagents-spawn-their-own-subagents) autorisées sous la conversation principale (par défaut : 3). À la valeur par défaut, les sous-agents peuvent générer leurs propres sous-agents, et un sous-agent à la troisième couche ne peut pas générer plus loin ; définissez `1` pour désactiver l'imbrication. Dans v2.1.217 à v2.1.218, la valeur par défaut était 1, afin qu'un sous-agent ne puisse pas générer le sien à moins que vous augmentiez la limite ; v2.1.219 a augmenté la valeur par défaut à 3. Accepte un nombre entier positif en chiffres simples uniquement ; tout le reste est ignoré, afin que la limite puisse être ajustée mais pas supprimée. Nécessite Claude Code v2.1.217 ou ultérieur |324| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Supprimée dans la v2.1.224 et désormais sans effet. Plafonnait auparavant le nombre total de [sous-agents](/docs/fr/sub-agents) que Claude pouvait lancer avec l'outil Agent dans une session (par défaut : 200) ; tout lancement au-delà du plafond échouait avec `Subagent spawn limit reached`. La [limite de sous-agents simultanés](/docs/fr/sub-agents#concurrent-subagent-limit) et la [limite de profondeur](/docs/fr/sub-agents#let-subagents-spawn-their-own-subagents) s'appliquent toujours |

325| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Nombre maximum d'outils en lecture seule et de sous-agents qui peuvent s'exécuter en parallèle (par défaut : 10). Les valeurs plus élevées augmentent le parallélisme mais consomment plus de ressources |325| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Nombre de [niveaux de sous-agents](/docs/fr/sub-agents#let-subagents-spawn-their-own-subagents) autorisés sous la conversation principale (par défaut : 3). Avec la valeur par défaut, les sous-agents peuvent lancer leurs propres sous-agents, et un sous-agent au troisième niveau ne peut pas en lancer d'autres ; définir sur `1` pour désactiver l'imbrication. Dans les v2.1.217 à v2.1.218, la valeur par défaut était 1, de sorte qu'un sous-agent ne pouvait pas lancer les siens à moins que vous n'augmentiez la limite ; la v2.1.219 a porté la valeur par défaut à 3. Accepte un nombre entier positif en chiffres simples ; toute autre valeur est ignorée, de sorte que la limite peut être ajustée mais pas supprimée. Nécessite Claude Code v2.1.217 ou ultérieur |

326| `CLAUDE_CODE_MAX_TURNS` | Limitez le nombre de tours d'agent lorsqu'aucune limite explicite n'est transmise. Équivalent à transmettre [`--max-turns`](/docs/fr/cli-reference#cli-flags), qui a la priorité lorsque les deux sont définis. Une valeur qui n'est pas un entier positif est rejetée au démarrage avec une erreur plutôt que traitée comme aucun plafond |326| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Nombre maximal d'outils en lecture seule et de sous-agents pouvant s'exécuter en parallèle (par défaut : 10). Des valeurs plus élevées augmentent le parallélisme mais consomment davantage de ressources |

327| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Plafond sur le nombre total d'appels [WebSearch](/docs/fr/tools-reference#websearch-tool-behavior) qu'une session peut faire (par défaut : 200). Lorsque Claude atteint le plafond, les appels WebSearch supplémentaires retournent un avis lui disant de continuer avec les informations qu'il a déjà rassemblées. Accepte un nombre entier positif sans limite supérieure. Tout le reste est ignoré et la valeur par défaut s'applique, afin que le plafond puisse être augmenté mais pas désactivé. Nécessite Claude Code v2.1.212 ou ultérieur |327| `CLAUDE_CODE_MAX_TURNS` | Plafonne le nombre de tours agentiques lorsqu'aucune limite explicite n'est transmise. Équivaut à transmettre [`--max-turns`](/docs/fr/cli-reference#cli-flags), qui a priorité lorsque les deux sont définis. Une valeur qui n'est pas un entier positif est rejetée au démarrage avec une erreur au lieu d'être traitée comme une absence de plafond |

328| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Définissez sur `1` pour générer les serveurs MCP stdio avec uniquement un environnement de base sûr plus l'`env` configuré du serveur, au lieu d'hériter de votre environnement shell |328| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Plafond du nombre total d'appels [WebSearch](/docs/fr/tools-reference#websearch-tool-behavior) qu'une session peut effectuer (par défaut : 200). Lorsque Claude atteint le plafond, les appels WebSearch suivants renvoient un avis lui indiquant de continuer avec les informations déjà recueillies. Accepte un nombre entier positif sans limite supérieure. Toute autre valeur est ignorée et la valeur par défaut s'applique, de sorte que le plafond peut être relevé mais pas désactivé. Nécessite Claude Code v2.1.212 ou ultérieur |

329| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Temps écoulé en millisecondes avant qu'un appel d'outil MCP toujours en cours d'exécution ne [se déplace vers une tâche d'arrière-plan](/docs/fr/mcp#automatic-backgrounding-of-long-tool-calls) (par défaut : 120000, ou 2 minutes). Définissez sur `0` pour désactiver la mise en arrière-plan automatique. Nécessite Claude Code v2.1.212 ou ultérieur |329| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Définir sur `1` pour lancer les serveurs MCP stdio avec uniquement un environnement de base sûr plus l'`env` configuré du serveur, au lieu d'hériter de l'environnement de votre shell |

330| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Combien de temps en millisecondes le premier tour d'une session [non-interactive](/docs/fr/headless) attend les serveurs MCP qui se connectent toujours, à la place de l'[attente du premier tour](/docs/fr/agent-sdk/mcp#connection-timing) par défaut. Lorsqu'il est défini, l'attente couvre chaque serveur en attente. Définissez sur `0` pour ignorer l'attente. Un serveur [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags) conserve sa propre attente `MCP_TIMEOUT` quel que soit la valeur. Nécessite Claude Code v2.1.274 ou ultérieur |330| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Temps écoulé en millisecondes avant qu'un appel d'outil MCP encore en cours [passe en tâche en arrière-plan](/docs/fr/mcp#automatic-backgrounding-of-long-tool-calls) (par défaut : 120000, soit 2 minutes). Définir sur `0` pour désactiver le passage automatique en arrière-plan. Nécessite Claude Code v2.1.212 ou ultérieur |

331| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Délai d'inactivité en millisecondes pour les appels d'outils MCP. Lorsqu'un serveur MCP stdio, HTTP, SSE, WebSocket ou [connecteur claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai) n'envoie aucune réponse et aucune notification de progression pendant ce temps, l'appel d'outil interrompt avec une erreur au lieu d'attendre le `MCP_TOOL_TIMEOUT` global. Remplace les valeurs par défaut par transport de 300000 (5 minutes) pour les serveurs réseau et 1800000 (30 minutes) pour les serveurs stdio. Définissez sur `0` pour désactiver la vérification d'inactivité. Les valeurs inférieures à 1000 sont augmentées à une seconde, et la valeur est limitée au `MCP_TOOL_TIMEOUT` effectif. Un `timeout` par serveur dans `.mcp.json` d'au moins 1000 augmente la fenêtre d'inactivité de ce serveur à au moins la valeur `timeout`. Ne s'applique pas aux serveurs IDE ou aux serveurs en processus du SDK. Nécessite Claude Code v2.1.187 ou ultérieur. Avant v2.1.203, les serveurs stdio étaient exempts du délai d'inactivité |331| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Durée en millisecondes pendant laquelle le premier tour d'une session [non interactive](/docs/fr/headless) attend les serveurs MCP encore en cours de connexion, à la place de l'[attente du premier tour](/docs/fr/agent-sdk/mcp#connection-timing) par défaut. Lorsqu'elle est définie, l'attente couvre tous les serveurs en attente. Définir sur `0` pour ignorer l'attente. Un serveur [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags) conserve sa propre attente `MCP_TIMEOUT` quelle que soit la valeur. Nécessite Claude Code v2.1.274 ou ultérieur |

332| `CLAUDE_CODE_MESSAGING_SOCKET` | Défini par Claude Code, pas par vous : dans les sessions qui lient une [prise de réception](/docs/fr/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporte le chemin de cette prise à des crochets et des commandes Bash lorsqu'il lie la prise. Dans une session qui démarre avec la messagerie activée, Claude Code lie la prise avant l'exécution de tout crochet. Les autres sessions sur la machine livrent les messages à ce chemin. Chaque session exporte sa propre prise plutôt qu'une héritée d'un parent, et les messages arrivant sur elle passent par les [contrôles entrants](/docs/fr/cross-session-messaging#control-inbound-messages) de la session. Les blocs `env` des paramètres ne peuvent pas le définir. Nécessite Claude Code v2.1.224 ou ultérieur |332| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Délai d'inactivité en millisecondes pour les appels d'outils MCP. Lorsqu'un serveur MCP stdio, HTTP, SSE, WebSocket ou [connecteur claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai) n'envoie ni réponse ni notification de progression pendant cette durée, l'appel d'outil s'interrompt avec une erreur au lieu d'attendre le `MCP_TOOL_TIMEOUT` global. Remplace les valeurs par défaut par transport de 300000 (5 minutes) pour les serveurs réseau et de 1800000 (30 minutes) pour les serveurs stdio. Définir sur `0` pour désactiver la vérification d'inactivité. Les valeurs inférieures à 1000 sont portées à une seconde, et la valeur est plafonnée au `MCP_TOOL_TIMEOUT` effectif. Un `timeout` par serveur d'au moins 1000 dans `.mcp.json` porte la fenêtre d'inactivité de ce serveur à au moins la valeur de `timeout`. Ne s'applique pas aux serveurs IDE ni aux serveurs SDK in-process. Nécessite Claude Code v2.1.187 ou ultérieur. Avant la v2.1.203, les serveurs stdio étaient exemptés du délai d'inactivité |

333| `CLAUDE_CODE_MESSAGING_TOKEN` | Défini par Claude Code, pas par vous : dans les sessions qui lient une [prise de réception](/docs/fr/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporte ce jeton par session à des crochets et des commandes Bash aux côtés de `CLAUDE_CODE_MESSAGING_SOCKET`. Un script affichant sur la prise peut envoyer `{"type":"auth","token":"<token>"}` comme première ligne pour prouver qu'il appartient à la session. Sur Windows natif, Claude Code nécessite cette ligne et ferme toute connexion qui ne s'ouvre pas avec une valeur valide. Les [règles propres-enfants](/docs/fr/cross-session-messaging#the-sessions-inbox-socket) disent quand Claude Code consulte le jeton. Chaque session exporte son propre jeton, jamais un hérité d'une session parent. Les blocs `env` des paramètres ne peuvent pas le définir. Nécessite Claude Code v2.1.228 ou ultérieur |333| `CLAUDE_CODE_MESSAGING_SOCKET` | Définie par Claude Code, pas par vous : dans les sessions qui lient un [socket de boîte de réception](/docs/fr/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporte le chemin de ce socket vers les hooks et les commandes Bash lorsqu'il lie le socket. Dans une session qui démarre avec la messagerie activée, Claude Code lie le socket avant l'exécution de tout hook. Les autres sessions de la machine délivrent des messages vers ce chemin. Chaque session exporte son propre socket plutôt qu'un socket hérité d'un parent, et les messages qui y arrivent passent par les [contrôles entrants](/docs/fr/cross-session-messaging#control-inbound-messages) de la session. Les blocs `env` des paramètres ne peuvent pas la définir. Nécessite Claude Code v2.1.224 ou ultérieur |

334| `CLAUDE_CODE_NATIVE_CURSOR` | Définissez sur `1` pour afficher le curseur propre du terminal à la position du curseur d'insertion au lieu d'un bloc dessiné. Le curseur respecte les paramètres de clignotement, de forme et de focus du terminal |334| `CLAUDE_CODE_MESSAGING_TOKEN` | Définie par Claude Code, pas par vous : dans les sessions qui lient un [socket de boîte de réception](/docs/fr/cross-session-messaging#the-sessions-inbox-socket), Claude Code exporte ce jeton propre à la session vers les hooks et les commandes Bash, en même temps que `CLAUDE_CODE_MESSAGING_SOCKET`. Un script qui écrit sur le socket peut envoyer `{"type":"auth","token":"<token>"}` comme première ligne pour prouver qu'il appartient à la session. Sous Windows natif, Claude Code exige cette ligne et ferme toute connexion qui ne s'ouvre pas avec une ligne valide. Les [règles des processus enfants propres](/docs/fr/cross-session-messaging#the-sessions-inbox-socket) indiquent quand Claude Code consulte le jeton. Chaque session exporte son propre jeton, jamais un jeton hérité d'une session parente. Les blocs `env` des paramètres ne peuvent pas la définir. Nécessite Claude Code v2.1.228 ou ultérieur |

335| `CLAUDE_CODE_NEW_INIT` | Définissez sur `1` pour faire en sorte que `/init` exécute un flux de configuration interactif. Le flux demande quels fichiers générer, y compris CLAUDE.md, les compétences et les crochets, avant d'explorer la base de code et de les écrire. Sans cette variable, `/init` génère un CLAUDE.md automatiquement sans demander |335| `CLAUDE_CODE_NATIVE_CURSOR` | Définir sur `1` pour afficher le curseur propre au terminal au point d'insertion au lieu d'un bloc dessiné. Le curseur respecte les paramètres de clignotement, de forme et de focus du terminal |

336| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Définissez sur `1` pour écrire la sortie du terminal via un deuxième descripteur de fichier non bloquant, afin qu'un terminal qui arrête la lecture, comme un volet de mode contrôle tmux en pause ou une connexion SSH bloquée, ne puisse pas geler Claude Code au milieu de la session. S'applique sur macOS, Linux et WSL lorsque stdout est un terminal. Nécessite Claude Code v2.1.261 ou ultérieur |336| `CLAUDE_CODE_NEW_INIT` | Définir sur `1` pour que `/init` exécute un flux de configuration interactif. Le flux demande quels fichiers générer, notamment CLAUDE.md, les skills et les hooks, avant d'explorer la base de code et de les écrire. Sans cette variable, `/init` génère automatiquement un CLAUDE.md sans rien demander |

337| `CLAUDE_CODE_NO_FLICKER` | Définissez sur `1` pour activer le [rendu plein écran](/docs/fr/fullscreen), un aperçu de recherche qui réduit le scintillement et maintient la mémoire plate dans les longues conversations. Remplace le paramètre [`tui`](/docs/fr/settings-reference#tui) ; vous pouvez également basculer avec `/tui fullscreen` |337| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Définir sur `1` pour écrire la sortie du terminal via un second descripteur de fichier non bloquant, afin qu'un terminal qui cesse de lire, comme un volet tmux en mode contrôle mis en pause ou une connexion SSH bloquée, ne puisse pas figer Claude Code en cours de session. S'applique sur macOS, Linux et WSL lorsque stdout est un terminal. Nécessite Claude Code v2.1.261 ou ultérieur |

338| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Jeton d'actualisation OAuth pour l'authentification Claude.ai. Lorsqu'il est défini, `claude auth login` échange ce jeton directement au lieu d'ouvrir un navigateur. Nécessite `CLAUDE_CODE_OAUTH_SCOPES`. Utile pour l'authentification de provisionnement dans les environnements automatisés |338| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limite le nombre de fois où Claude Code renvoie une [requête non streaming](/docs/fr/errors#streaming-response-ended-before-any-complete-data-was-received) qui expire. Avec `0`, la requête échoue dès le premier délai d'expiration. Non définie par défaut, de sorte que `CLAUDE_CODE_MAX_RETRIES` limite ces renvois. Voir [Ajuster le comportement des nouvelles tentatives](/docs/fr/errors#tune-retry-behavior) pour le délai d'expiration. Nécessite Claude Code v2.1.285 ou ultérieur |

339| `CLAUDE_CODE_OAUTH_SCOPES` | Portées OAuth séparées par des espaces avec lesquelles le jeton d'actualisation a été émis, comme `"user:profile user:inference user:sessions:claude_code"`. Requis lorsque `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` est défini |339| `CLAUDE_CODE_NO_FLICKER` | Définir sur `1` pour activer le [rendu plein écran](/docs/fr/fullscreen), une research preview qui réduit le scintillement et maintient une consommation de mémoire stable dans les longues conversations. Remplace le paramètre [`tui`](/docs/fr/settings-reference#tui) ; vous pouvez également basculer avec `/tui fullscreen` |

340| `CLAUDE_CODE_OAUTH_TOKEN` | Jeton d'accès OAuth pour l'authentification claude.ai. Alternative à `/login` pour le SDK et les environnements automatisés. A la priorité sur les identifiants stockés dans le trousseau. Générez-en un avec [`claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token). Sauf si vous exécutez [`/login`](/docs/fr/authentication#authentication-precedence), Claude Code utilise le jeton que vous définissez pour la session entière. Pour remplacer un jeton expiré, générez-en un nouveau et redémarrez |340| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Jeton d'actualisation OAuth pour l'authentification Claude.ai. Lorsqu'il est défini, `claude auth login` échange directement ce jeton au lieu d'ouvrir un navigateur. Nécessite `CLAUDE_CODE_OAUTH_SCOPES`. Utile pour provisionner l'authentification dans des environnements automatisés |

341| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Supprimé dans v2.1.160 et maintenant un no-op. Auparavant, épinglait le [mode rapide](/docs/fr/fast-mode) à Claude Opus 4.6 au lieu de la valeur par défaut actuelle. Opus 4.6 ne supporte plus le mode rapide |341| `CLAUDE_CODE_OAUTH_SCOPES` | Scopes OAuth séparés par des espaces avec lesquels le jeton d'actualisation a été émis, par exemple `"user:profile user:inference user:sessions:claude_code"`. Requis lorsque `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` est défini |

342| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Longueur maximale des attributs OpenTelemetry porteurs de contenu (réponses du modèle, contenu de l'outil, invites système, corps API bruts), marqueur de troncature inclus, en unités de code UTF-16 (par défaut : 61440, c.-à-d. 60 Ko). Augmentez-le uniquement si votre backend de télémétrie accepte les valeurs d'attribut supérieures à 64 Ko, ou abaissez-le pour réduire le volume de télémétrie. Nécessite Claude Code v2.1.214 ou ultérieur. Voir [Surveillance](/docs/fr/monitoring-usage) |342| `CLAUDE_CODE_OAUTH_TOKEN` | Jeton d'accès OAuth pour l'authentification claude.ai. Alternative à `/login` pour le SDK et les environnements automatisés. A priorité sur les identifiants stockés dans le trousseau. Générez-en un avec [`claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token). Sauf si vous exécutez [`/login`](/docs/fr/authentication#authentication-precedence), Claude Code utilise le jeton que vous avez défini pendant toute la session. Pour remplacer un jeton expiré, générez-en un nouveau et redémarrez |

343| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Définissez sur `1` pour écrire les erreurs de diagnostic de l'exportateur OpenTelemetry sur stderr. Par défaut, ces erreurs n'apparaissent que avec `--debug`, afin qu'un exportateur mal configuré comme une collision de port Prometheus échoue silencieusement sinon. Nécessite Claude Code v2.1.179 ou ultérieur. Voir [Surveillance](/docs/fr/monitoring-usage) |343| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Supprimée dans la v2.1.160 et désormais sans effet. Épinglait auparavant le [mode rapide](/docs/fr/fast-mode) sur Claude Opus 4.6 au lieu du modèle par défaut actuel. Opus 4.6 ne prend plus en charge le mode rapide |

344| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Délai d'expiration en millisecondes pour vider les spans OpenTelemetry en attente (par défaut : 5000). Voir [Surveillance](/docs/fr/monitoring-usage) |344| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Longueur maximale des attributs OpenTelemetry porteurs de contenu (réponses du modèle, contenu des outils, prompts système, corps bruts de l'API), marqueur de troncature inclus, en unités de code UTF-16 (par défaut : 61440, soit 60 Ko). Augmentez-la uniquement si votre backend de télémétrie accepte des valeurs d'attribut supérieures à 64 Ko, ou réduisez-la pour diminuer le volume de télémétrie. Nécessite Claude Code v2.1.214 ou ultérieur. Voir [Surveillance](/docs/fr/monitoring-usage) |

345| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalle pour actualiser les en-têtes OpenTelemetry dynamiques en millisecondes (par défaut : 1740000 / 29 minutes). Voir [En-têtes dynamiques](/docs/fr/monitoring-usage#dynamic-headers) |345| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Définir sur `1` pour écrire les erreurs de diagnostic de l'exportateur OpenTelemetry sur stderr. Par défaut, ces erreurs n'apparaissent qu'avec `--debug`, de sorte qu'un exportateur mal configuré, par exemple en cas de conflit de port Prometheus, échoue sinon silencieusement. Nécessite Claude Code v2.1.179 ou ultérieur. Voir [Surveillance](/docs/fr/monitoring-usage) |

346| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Délai d'expiration en millisecondes pour que l'exportateur OpenTelemetry se termine à l'arrêt (par défaut : 2000). Augmentez si les métriques sont supprimées à la sortie. Voir [Surveillance](/docs/fr/monitoring-usage) |346| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Délai d'expiration en millisecondes pour le vidage des spans OpenTelemetry en attente (par défaut : 5000). Voir [Surveillance](/docs/fr/monitoring-usage) |

347| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Définissez sur `1` pour permettre à Claude Code d'exécuter la commande de mise à niveau de votre gestionnaire de paquets en arrière-plan lorsqu'une nouvelle version est disponible. S'applique aux installations Homebrew et WinGet. Les autres gestionnaires de paquets continuent à afficher la commande de mise à niveau sans l'exécuter. Voir [Mises à jour automatiques](/docs/fr/setup#auto-updates) |347| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalle d'actualisation des en-têtes OpenTelemetry dynamiques en millisecondes (par défaut : 1740000 / 29 minutes). Voir [En-têtes dynamiques](/docs/fr/monitoring-usage#dynamic-headers) |

348| `CLAUDE_CODE_PERFORCE_MODE` | Définissez sur `1` pour activer la protection en écriture consciente de Perforce. Lorsqu'il est défini, Edit, Write et NotebookEdit échouent avec un indice `p4 edit <file>` si le fichier cible manque le bit d'écriture du propriétaire, que Perforce efface sur les fichiers synchronisés jusqu'à ce que `p4 edit` les ouvre. Cela empêche Claude Code de contourner le suivi des modifications de Perforce |348| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Délai d'expiration en millisecondes accordé à l'exportateur OpenTelemetry pour terminer lors de l'arrêt (par défaut : 2000). Augmentez-le si des métriques sont perdues à la sortie. Voir [Surveillance](/docs/fr/monitoring-usage) |

349| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Remplacez le répertoire racine des plugins. Malgré le nom, cela définit le répertoire parent, pas le cache lui-même : les places de marché et le cache des plugins vivent dans des sous-répertoires sous ce chemin. Par défaut `~/.claude/plugins` |349| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Définir sur `1` pour permettre à Claude Code d'exécuter en arrière-plan la commande de mise à niveau de votre gestionnaire de paquets lorsqu'une nouvelle version est disponible. S'applique aux installations Homebrew et WinGet. Les autres gestionnaires de paquets continuent d'afficher la commande de mise à niveau sans l'exécuter. Voir [Mises à jour automatiques](/docs/fr/setup#auto-updates) |

350| `CLAUDE_CODE_PLUGIN_DIRS` | Répertoires de plugins à charger pour la session, chacun chargé de la façon qu'un [drapeau `--plugin-dir`](/docs/fr/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) le charge. Séparez plusieurs chemins avec `:` sur Unix ou `;` sur Windows. Donnez chaque chemin comme un chemin absolu ou commencez-le par `~`, car Claude Code ignore les chemins relatifs. Nécessite Claude Code v2.1.280 ou ultérieur. Voir [Charger un plugin pour une session](/docs/fr/plugins/create#load-a-directory-or-archive-for-one-session) |350| `CLAUDE_CODE_PERFORCE_MODE` | Définir sur `1` pour activer la protection en écriture compatible avec Perforce. Lorsqu'elle est définie, Edit, Write et NotebookEdit échouent avec une indication `p4 edit <file>` si le fichier cible ne possède pas le bit d'écriture du propriétaire, que Perforce retire sur les fichiers synchronisés jusqu'à ce que `p4 edit` les ouvre. Cela empêche Claude Code de contourner le suivi des modifications de Perforce |

351| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pour cloner ou actualiser une place de marché de plugins (par défaut : 120000). Augmentez cette valeur pour les grands référentiels ou les connexions réseau lentes. Voir [Git clone timed out](/docs/fr/plugins/troubleshooting#git-clone-timed-out-after-120s) |351| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Remplace le répertoire racine des plugins. Malgré son nom, cette variable définit le répertoire parent, pas le cache lui-même : les marketplaces et le cache des plugins se trouvent dans des sous-répertoires de ce chemin. Par défaut : `~/.claude/plugins` |

352| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Définissez sur `1` pour ignorer la tentative de re-clonage et continuer à utiliser le checkout de place de marché existant lorsqu'une actualisation de place de marché ne peut pas atteindre ou s'authentifier auprès du distant. Utile dans les environnements hors ligne ou isolés où le re-clonage échouerait de la même manière. Voir [Les mises à jour de la place de marché continuent d'échouer hors ligne](/docs/fr/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |352| `CLAUDE_CODE_PLUGIN_DIRS` | Répertoires de plugins à charger pour la session, chacun chargé de la même manière qu'avec un flag [`--plugin-dir`](/docs/fr/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Séparez plusieurs chemins par `:` sous Unix ou `;` sous Windows. Indiquez chaque chemin sous forme de chemin absolu ou commencez-le par `~`, car Claude Code ignore les chemins relatifs. Nécessite Claude Code v2.1.280 ou ultérieur. Voir [Charger un plugin pour une session](/docs/fr/plugins/create#load-a-directory-or-archive-for-one-session) |

353| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Définissez sur `1` pour cloner les sources de raccourci GitHub `owner/repo` sur HTTPS au lieu de SSH. S'applique à l'installation et à la mise à jour des plugins, et à `/plugin marketplace add` et `update`. Utile dans les exécuteurs CI, les conteneurs ou tout environnement sans clé SSH configurée pour `github.com` |353| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pour le clonage ou l'actualisation d'une marketplace de plugins (par défaut : 120000). Augmentez cette valeur pour les dépôts volumineux ou les connexions réseau lentes. Voir [Git clone timed out](/docs/fr/plugins/troubleshooting#git-clone-timed-out-after-120s) |

354| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Chemin d'accès à un ou plusieurs répertoires de graines de plugins en lecture seule, séparés par `:` sur Unix ou `;` sur Windows. Utilisez ceci pour regrouper un répertoire de plugins pré-rempli dans une image de conteneur. Claude Code enregistre les places de marché à partir de ces répertoires au démarrage et utilise les plugins pré-cachés sans re-clonage. Voir [Pré-remplir les plugins pour les conteneurs](/docs/fr/plugins/org#seed-containers-and-ci) |354| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Définir sur `1` pour ignorer la tentative de reclonage et continuer à utiliser le checkout existant de la marketplace lorsqu'une actualisation de marketplace ne parvient pas à joindre le dépôt distant ou à s'y authentifier. Utile dans les environnements hors ligne ou isolés (airgapped) où un reclonage échouerait de la même manière. Voir [Les mises à jour de marketplace échouent dans les environnements hors ligne](/docs/fr/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

355| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Définissez sur `1` pour empêcher Claude Code de transmettre `-ExecutionPolicy Bypass` lors du lancement de PowerShell pour les appels d'outils, les crochets et les commandes de ligne d'état, et respectez plutôt la politique d'exécution effective de la machine. Par défaut, Claude Code contourne la politique d'exécution à la portée du processus afin que les scripts `.ps1` et les importations de modules fonctionnent sur les installations Windows par défaut-Restricted. Le contournement à la portée du processus ne remplace jamais la politique de groupe `MachinePolicy` ou `UserPolicy` quel que soit ce paramètre |355| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Définir sur `1` pour cloner les sources GitHub au format abrégé `owner/repo` via HTTPS plutôt que SSH. S'applique à l'installation et à la mise à jour des plugins, ainsi qu'à `/plugin marketplace add` et `update`. Utile sur les runners CI, dans les conteneurs ou dans tout environnement sans clé SSH configurée pour `github.com` |

356| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Plafond en millisecondes sur l'attente inactive pour les sous-agents et flux de travail d'arrière-plan après le tour final en [mode non interactif](/docs/fr/headless#background-tasks-at-exit) avec le drapeau `-p`. L'attente inactive recommence chaque fois que Claude prend un tour pour gérer un résultat d'arrière-plan. Par défaut : `600000`, ou 10 minutes. Lorsque l'attente inactive atteint le plafond, Claude Code arrête d'attendre les tâches d'arrière-plan restantes et quitte. Définissez sur `0` pour attendre indéfiniment. Ce plafond est séparé de la période de grâce de cinq secondes qui s'applique aux shells d'arrière-plan simples. Nécessite Claude Code v2.1.182 ou ultérieur |356| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Chemin vers un ou plusieurs répertoires d'amorçage de plugins en lecture seule, séparés par `:` sous Unix ou `;` sous Windows. Utilisez-la pour intégrer un répertoire de plugins préremplis dans une image de conteneur. Claude Code enregistre les marketplaces de ces répertoires au démarrage et utilise les plugins déjà mis en cache sans les recloner. Voir [Préremplir les plugins pour les conteneurs](/docs/fr/plugins/org#seed-containers-and-ci) |

357| `CLAUDE_CODE_PROCESS_WRAPPER` | Lancez les processus que Claude Code démarre à partir de son propre binaire, comme le service d'arrière-plan qui héberge les sessions de [vue agent](/docs/fr/agent-view), via un lanceur d'entreprise donné en tant que préfixe argv comme `/opt/corp/launcher`. Définissez-le dans le bloc `env` des paramètres utilisateur ou [gérés](/docs/fr/managed-settings), pas en tant qu'export shell, afin que le service d'arrière-plan détaché l'hérite ; les paramètres de projet et locaux ne peuvent pas le définir. Équivalent au paramètre [`processWrapper`](/docs/fr/settings-reference#processwrapper), qui nécessite Claude Code v2.1.210 ou ultérieur ; cette variable a la priorité lorsque les deux sont définis. L'extension VS Code configure son propre lanceur séparément via son paramètre `claudeProcessWrapper`. Ignoré sur Windows. Voir [Exécuter Claude Code derrière un lanceur d'entreprise](/docs/fr/corporate-launcher) pour le format de valeur, ce que le lanceur couvre et le contrat que le lanceur doit satisfaire. Nécessite Claude Code v2.1.208 ou ultérieur |357| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Définir sur `1` pour empêcher Claude Code de transmettre `-ExecutionPolicy Bypass` lorsqu'il lance PowerShell pour les appels d'outils, les hooks et les commandes de la barre de statut, et respecter à la place la stratégie d'exécution effective de la machine. Par défaut, Claude Code contourne la stratégie d'exécution au niveau du processus afin que les scripts `.ps1` et les importations de modules fonctionnent sur les installations Windows configurées par défaut en mode Restricted. Le contournement au niveau du processus ne remplace jamais les stratégies de groupe `MachinePolicy` ou `UserPolicy`, quel que soit ce paramètre |

358| `CLAUDE_CODE_PROJECT_DIR_NAME` | Défini avec `CLAUDE_CONFIG_DIR` pour choisir le nom du répertoire `projects/` où Claude Code stocke les transcriptions et la mémoire automatique de cette session, à la place d'un dérivé du chemin du répertoire de travail. Par exemple, démarrer Claude Code avec `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` les stocke sous `/srv/tenant-a/projects/work/`. Claude Code ignore cette variable lorsque `CLAUDE_CONFIG_DIR` n'est pas défini, et la lit uniquement à partir de l'environnement à partir duquel vous démarrez `claude`, jamais à partir d'un [bloc `env` du fichier de paramètres](#in-settings-files). Voir [Nommer le répertoire du projet vous-même](/docs/fr/sessions#name-the-project-directory-yourself). Nécessite Claude Code v2.1.234 ou ultérieur |358| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Plafond en millisecondes de l'attente inactive des sous-agents et workflows en arrière-plan après le dernier tour en [mode non interactif](/docs/fr/headless#background-tasks-at-exit) avec le flag `-p`. L'attente inactive redémarre chaque fois que Claude effectue un tour pour traiter un résultat en arrière-plan. Par défaut : `600000`, soit 10 minutes. Lorsque l'attente inactive atteint le plafond, Claude Code cesse d'attendre les tâches en arrière-plan restantes et se ferme. Définir sur `0` pour attendre indéfiniment. Ce plafond est distinct du délai de grâce de cinq secondes qui s'applique aux shells en arrière-plan simples. Nécessite Claude Code v2.1.182 ou ultérieur |

359| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Définissez `5m` ou `1h`, les seules valeurs que Claude Code accepte, pour choisir la [TTL du cache d'invite](/docs/fr/prompt-caching#cache-lifetime) pour la conversation principale : vos tours interactifs, `-p` et SDK, plus les assistants qui s'exécutent en ligne avec eux. A la priorité sur le paramètre `promptCacheTtl` et sur `ENABLE_PROMPT_CACHING_1H`, et `FORCE_PROMPT_CACHING_5M` le remplace. L'API facture les écritures de cache d'une heure à un taux plus élevé. Nécessite Claude Code v2.1.242 ou ultérieur |359| `CLAUDE_CODE_PROCESS_WRAPPER` | Lance les processus que Claude Code démarre à partir de son propre binaire, comme le service en arrière-plan qui héberge les sessions de la [vue agents](/docs/fr/agent-view), via un lanceur d'entreprise indiqué sous forme de préfixe argv tel que `/opt/corp/launcher`. Définissez-la dans le bloc `env` des paramètres utilisateur ou des [paramètres gérés](/docs/fr/managed-settings), et non sous forme d'export shell, afin que le service en arrière-plan détaché en hérite ; les paramètres de projet et locaux ne peuvent pas la définir. Équivaut au [paramètre `processWrapper`](/docs/fr/settings-reference#processwrapper), qui nécessite Claude Code v2.1.210 ou ultérieur ; cette variable a priorité lorsque les deux sont définis. L'extension VS Code configure son propre lanceur séparément via son paramètre `claudeProcessWrapper`. Ignorée sous Windows. Voir [Exécuter Claude Code derrière un lanceur d'entreprise](/docs/fr/corporate-launcher) pour le format de la valeur, ce que couvre le lanceur et le contrat que le lanceur doit respecter. Nécessite Claude Code v2.1.208 ou ultérieur |

360| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Définissez sur `1` pour propager le contexte de trace W3C lorsque `ANTHROPIC_BASE_URL` pointe vers un proxy personnalisé. La propagation couvre l'en-tête `traceparent` sur les requêtes de modèle et MCP HTTP et la variable d'environnement `TRACEPARENT` pour les sous-processus Bash, PowerShell et hook. Par défaut, la propagation est activée uniquement lorsqu'elle est connectée directement à l'API Anthropic. Ajouté dans v2.1.152. Voir [Traces (bêta)](/docs/fr/monitoring-usage#traces-beta) |360| `CLAUDE_CODE_PROJECT_DIR_NAME` | À définir avec `CLAUDE_CONFIG_DIR` pour choisir le nom du répertoire `projects/` sous lequel Claude Code stocke les transcriptions et la mémoire automatique de cette session, à la place d'un nom dérivé du chemin du répertoire de travail. Par exemple, démarrer Claude Code avec `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` les stocke sous `/srv/tenant-a/projects/work/`. Claude Code ignore cette variable lorsque `CLAUDE_CONFIG_DIR` n'est pas définie, et ne la lit que depuis l'environnement à partir duquel vous lancez `claude`, jamais depuis un [bloc `env` d'un fichier de paramètres](#in-settings-files). Voir [Nommer vous-même le répertoire du projet](/docs/fr/sessions#name-the-project-directory-yourself). Nécessite Claude Code v2.1.234 ou ultérieur |

361| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Défini par les plates-formes hôtes qui intègrent Claude Code et gèrent le routage du fournisseur de modèles en son nom. Lorsqu'il est défini, Claude Code ignore les variables de sélection du fournisseur, de point de terminaison et d'authentification telles que `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` et `ANTHROPIC_API_KEY` dans les fichiers de paramètres, afin que les paramètres utilisateur ne puissent pas remplacer le routage de l'hôte. Claude Code ignore également les clés de sélection de modèle telles que `model`, `fallbackModel` et `modelOverrides` dans les [paramètres gérés](/docs/fr/managed-settings), quelle que soit la source gérée qui les livre, afin que la configuration du modèle de l'hôte ait la priorité sur une épingle de modèle gérée obsolète. Claude Code ignore également les variables de sélection de modèle telles que `ANTHROPIC_MODEL` et la famille `ANTHROPIC_DEFAULT_*_MODEL` dans un bloc `env` géré ; une liste d'autorisation [`availableModels`](/docs/fr/model-config#restrict-model-selection) dans les paramètres gérés s'applique toujours sauf si l'hôte fournit la sienne. Claude Code ignore également l'opt-out de télémétrie automatique qu'il applique autrement sur les fournisseurs tiers tels que Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform et Microsoft Foundry, afin que la télémétrie suive l'opt-out standard `DISABLE_TELEMETRY`. Voir [Comportements par défaut par fournisseur API](/docs/fr/data-usage#default-behaviors-by-api-provider) |361| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Définir sur `5m` ou `1h`, les seules valeurs acceptées par Claude Code, pour choisir le [TTL du cache de prompts](/docs/fr/prompt-caching#cache-lifetime) de la conversation principale : vos tours interactifs, `-p` et SDK, ainsi que les assistants qui s'exécutent en ligne avec eux. A priorité sur le paramètre `promptCacheTtl` et sur `ENABLE_PROMPT_CACHING_1H`, et `FORCE_PROMPT_CACHING_5M` la remplace. L'API facture les écritures en cache d'une heure à un tarif plus élevé. Nécessite Claude Code v2.1.242 ou ultérieur |

362| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Définissez sur `1` pour permettre au proxy d'effectuer la résolution DNS au lieu de l'appelant. Opt-in pour les environnements où le proxy doit gérer la résolution du nom d'hôte |362| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Définir sur `1` pour propager le contexte de trace W3C lorsque `ANTHROPIC_BASE_URL` pointe vers un proxy personnalisé. La propagation couvre l'en-tête `traceparent` des requêtes vers le modèle et vers les serveurs MCP HTTP, ainsi que la variable d'environnement `TRACEPARENT` pour les sous-processus Bash, PowerShell et des hooks. Par défaut, la propagation n'est activée qu'en cas de connexion directe à l'API Anthropic. Ajoutée dans la v2.1.152. Voir [Traces (bêta)](/docs/fr/monitoring-usage#traces-beta) |

363| `CLAUDE_CODE_REMOTE` | Défini automatiquement sur `true` lorsque Claude Code s'exécute en tant que [session cloud](/docs/fr/claude-code-on-the-web). Lisez ceci à partir d'un crochet ou d'un script de configuration pour détecter si vous êtes dans une session cloud |363| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Définie par les plateformes hôtes qui intègrent Claude Code et gèrent le routage vers le fournisseur de modèles en son nom. Lorsqu'elle est définie, Claude Code ignore les variables de sélection du fournisseur, d'endpoint et d'authentification telles que `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` et `ANTHROPIC_API_KEY` dans les fichiers de paramètres, de sorte que les paramètres utilisateur ne peuvent pas remplacer le routage de l'hôte. Claude Code ignore également les clés de sélection de modèle telles que `model`, `fallbackModel` et `modelOverrides` dans les [paramètres gérés](/docs/fr/managed-settings), quelle que soit la source gérée qui les fournit, de sorte que la configuration de modèle de l'hôte a priorité sur un épinglage de modèle géré obsolète. Claude Code ignore aussi les variables de sélection de modèle telles que `ANTHROPIC_MODEL` et la famille `ANTHROPIC_DEFAULT_*_MODEL` dans un bloc `env` géré ; une liste d'autorisation [`availableModels`](/docs/fr/model-config#restrict-model-selection) dans les paramètres gérés s'applique toujours, sauf si l'hôte fournit la sienne. Claude Code ignore également la désactivation automatique de la télémétrie qu'il applique sinon sur les fournisseurs tiers tels qu'Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform et Microsoft Foundry, de sorte que la télémétrie suit la désactivation standard `DISABLE_TELEMETRY`. Voir [Comportements par défaut selon le fournisseur d'API](/docs/fr/data-usage#default-behaviors-by-api-provider) |

364| `CLAUDE_CODE_REMOTE_SESSION_ID` | Défini automatiquement dans les [sessions cloud](/docs/fr/claude-code-on-the-web) à l'ID de la session actuelle. Lisez ceci pour construire un lien vers la transcription de la session. Voir [Lier la sortie à la session](/docs/fr/cloud-environments#link-output-back-to-the-session) |364| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Définir sur `1` pour permettre au proxy d'effectuer la résolution DNS à la place de l'appelant. Option à activer pour les environnements où le proxy doit gérer la résolution des noms d'hôte |

365| `CLAUDE_CODE_RESTRICTED` | Définissez sur `1` pour démarrer la session en mode restreint, identique à la transmission de [`--restricted`](/docs/fr/cli-reference#cli-flags). Claude Code ignore cette variable dans un bloc `env` du fichier de paramètres. Nécessite Claude Code v2.1.248 ou ultérieur |365| `CLAUDE_CODE_REMOTE` | Définie automatiquement sur `true` lorsque Claude Code s'exécute en tant que [session cloud](/docs/fr/claude-code-on-the-web). Lisez-la depuis un hook ou un script de configuration pour détecter si vous êtes dans une session cloud |

366| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Définir sur `1` pour reprendre automatiquement si la session précédente s'est terminée en plein tour. Utilisée en mode SDK pour que le modèle continue sans que le SDK ait besoin de renvoyer le prompt. Pour la désactiver, supprimez la variable ou définissez-la sur `0`. Pour le panneau de chat VS Code, voir [Poursuivre les conversations après un rechargement](/docs/fr/vs-code#continue-conversations-after-a-reload) |366| `CLAUDE_CODE_REMOTE_SESSION_ID` | Définie automatiquement dans les [sessions cloud](/docs/fr/claude-code-on-the-web) sur l'ID de la session en cours. Lisez-la pour construire un lien vers la transcription de la session. Voir [Relier la sortie à la session](/docs/fr/cloud-environments#link-output-back-to-the-session) |

367| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Âge maximum en millisecondes du dernier message de transcription pour qu'une session qui s'est terminée au milieu d'un tour continue automatiquement à la reprise. Lorsque le dernier message est plus ancien que cette limite, Claude Code ignore la reprise automatique `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` et son message de continuation `CLAUDE_CODE_RESUME_PROMPT`, et la session démarre inactive afin que vous continuiez explicitement. Non défini ou `0` signifie aucune limite, sauf qu'un tour dont la dernière requête a échoué avec une erreur API reprend uniquement tandis que cette erreur a moins de six heures. Une valeur positive limite chaque tour, y compris ceux ; une valeur négative ou non numérique applique une limite d'une heure. Les scripts de génération pour les agents de longue durée peuvent définir ceci afin qu'une redémarrage par rapport à une transcription ancienne ne réexécute pas une invite obsolète. Claude Code définit lui-même une limite d'une heure lorsqu'il redémarre une session de [vue agent](/docs/fr/agent-view) qui a hérité de sa conversation d'une session interactive. Nécessite Claude Code v2.1.211 ou ultérieur |367| `CLAUDE_CODE_RESTRICTED` | Définir sur `1` pour démarrer la session en mode restreint, comme en transmettant [`--restricted`](/docs/fr/cli-reference#cli-flags). Claude Code ignore cette variable dans le bloc `env` d'un fichier de paramètres. Nécessite Claude Code v2.1.248 ou ultérieur |

368| `CLAUDE_CODE_RESUME_PROMPT` | Remplacez le message de continuation que Claude Code envoie à Claude lorsque `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continue un tour interrompu au lieu de renvoyer son invite, ou lorsque vous reprenez un [appel d'outil différé](/docs/fr/hooks#defer-a-tool-call-for-later) avec `-p`. Par défaut `Continue from where you left off.`. Une chaîne vide utilise la valeur par défaut |368| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Définir sur `1` pour reprendre automatiquement si la session précédente s'est terminée en cours de tour. Utilisée en mode SDK pour que le modèle continue sans que le SDK ait à renvoyer le prompt. Pour la désactiver, supprimez la variable ou définissez-la sur `0`. Pour le panneau de chat VS Code, voir [Poursuivre les conversations après un rechargement](/docs/fr/vs-code#continue-conversations-after-a-reload) |

369| `CLAUDE_CODE_RETRY_WATCHDOG` | Définissez sur `1` pour les sessions sans surveillance telles que les harnais d'évaluation, les travaux CI ou les travailleurs distants. Réessaye les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Claude Code échoue immédiatement lorsqu'une requête à vitesse standard reçoit un `429` qui signale une limite de dépenses ou des crédits d'utilisation épuisés, même un de la [limite de dépenses de passerelle](/docs/fr/errors#spend-limit-reached) qui se réinitialise selon un calendrier. Avant v2.1.239, le chien de garde réessayait ceux-ci indéfiniment. Pour les requêtes en mode rapide, voir [Gérer les limites de débit](/docs/fr/fast-mode#handle-rate-limits). Le chien de garde recule jusqu'à 5 minutes entre les tentatives, ou jusqu'à ce que la limite se réinitialise lorsque la réponse porte un temps de réinitialisation de limite de débit, afin qu'une session qui atteint une limite d'utilisation attende la fenêtre restante. Sur v2.1.199 ou ultérieur, il augmente également le nombre de tentatives par défaut pour les autres erreurs transitoires, telles que les erreurs de serveur, les délais d'expiration et les connexions abandonnées, à 300, environ trois heures de recul, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez explicitement cette variable. Nécessite Claude Code v2.1.186 ou ultérieur |369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Âge maximal en millisecondes du dernier message de la transcription pour qu'une session terminée en cours de tour continue automatiquement à la reprise. Lorsque le dernier message est plus ancien que cette limite, Claude Code ignore la reprise automatique `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` et son message de continuation `CLAUDE_CODE_RESUME_PROMPT`, et la session démarre inactive afin que vous continuiez explicitement. Non définie ou `0` signifie aucune limite, sauf qu'un tour dont la dernière requête a échoué avec une erreur API ne reprend que si cette erreur date de moins de six heures. Une valeur positive limite chaque tour, y compris ceux-ci ; une valeur négative ou non numérique applique une limite d'une heure. Les scripts de lancement d'agents de longue durée peuvent la définir afin qu'un redémarrage sur une ancienne transcription ne réexécute pas un prompt obsolète. Claude Code définit lui-même une limite d'une heure lorsqu'il redémarre une session de la [vue agents](/docs/fr/agent-view) ayant planté qui a hérité sa conversation d'une session interactive. Nécessite Claude Code v2.1.211 ou ultérieur |

370| `CLAUDE_CODE_SAFE_MODE` | Définissez sur `1` pour démarrer en mode sûr : CLAUDE.md, les compétences, les plugins, les crochets, les serveurs MCP, les commandes personnalisées et les agents, les styles de sortie, les flux de travail, les thèmes personnalisés, les liaisons de clés personnalisées, les commandes de ligne d'état et de suggestion de fichier, les serveurs LSP et la mémoire automatique ne se chargent pas, pour dépanner une configuration cassée. La politique des paramètres gérés s'applique toujours, y compris les crochets configurés par la politique, la ligne d'état et les commandes de suggestion de fichier ; les plugins gérés, les compétences gérées, le CLAUDE.md géré et les serveurs MCP configurés par la politique ne le font pas. Équivalent à la transmission de [`--safe-mode`](/docs/fr/cli-reference#cli-flags). Les processus enfants directement générés héritent de la variable |370| `CLAUDE_CODE_RESUME_PROMPT` | Remplace le message de continuation que Claude Code envoie à Claude lorsque `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` poursuit un tour interrompu au lieu de renvoyer son prompt, ou lorsque vous reprenez un [appel d'outil différé](/docs/fr/hooks#defer-a-tool-call-for-later) avec `-p`. Par défaut : `Continue from where you left off.`. Une chaîne vide utilise la valeur par défaut |

371| `CLAUDE_CODE_SCRIPT_CAPS` | Objet JSON limitant le nombre de fois que des scripts spécifiques peuvent être invoqués par session lorsque `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` est défini. Les clés sont des sous-chaînes correspondant au texte de la commande ; les valeurs sont des limites d'appel entières. Par exemple, `{"deploy.sh": 2}` permet à `deploy.sh` d'être appelé au maximum deux fois. La correspondance est basée sur des sous-chaînes afin que les astuces d'expansion shell comme `./scripts/deploy.sh $(evil)` comptent toujours par rapport au plafond. L'expansion de fan-out au moment de l'exécution via `xargs` ou `find -exec` n'est pas détectée ; c'est un contrôle de défense en profondeur |371| `CLAUDE_CODE_RETRY_WATCHDOG` | Définir sur `1` pour les sessions sans surveillance telles que les harnais d'évaluation, les jobs CI ou les workers distants. Réessaie indéfiniment les erreurs de capacité `429` et `529` au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Claude Code échoue immédiatement lorsqu'une requête à vitesse standard reçoit une erreur `429` signalant une limite de dépenses ou des crédits d'utilisation épuisés, même si elle provient d'un [plafond de dépenses de passerelle](/docs/fr/errors#spend-limit-reached) qui se réinitialise selon un calendrier. Avant la v2.1.239, le watchdog réessayait ces requêtes indéfiniment. Pour les requêtes en mode rapide, voir [Gérer les limites de débit](/docs/fr/fast-mode#handle-rate-limits). Le watchdog espace les tentatives jusqu'à 5 minutes, ou jusqu'à la réinitialisation de la limite lorsque la réponse contient une heure de réinitialisation de la limite de débit, de sorte qu'une session qui atteint une limite d'utilisation attend la fin de la fenêtre restante. Dans la v2.1.199 ou ultérieure, il porte également à 300 le nombre de nouvelles tentatives par défaut pour les autres erreurs transitoires, telles que les erreurs serveur, les délais d'expiration et les connexions interrompues, soit environ trois heures d'attente progressive, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez explicitement cette variable. Nécessite Claude Code v2.1.186 ou ultérieur |

372| `CLAUDE_CODE_SCROLL_SPEED` | Définissez le multiplicateur de vitesse de défilement de la molette de la souris en [rendu plein écran](/docs/fr/fullscreen#mouse-wheel-scrolling). Accepte n'importe quelle valeur positive jusqu'à 20, y compris les valeurs fractionnaires inférieures à 1 comme `0.5` pour ralentir le défilement accéléré du pavé tactile et de la molette dans les terminaux qui amplifient déjà les événements de molette. Définissez sur `3` pour correspondre à `vim` si votre terminal envoie un événement de molette par cran sans amplification. Ignoré dans le terminal IDE JetBrains, où Claude Code utilise sa propre gestion du défilement |372| `CLAUDE_CODE_SAFE_MODE` | Définir sur `1` pour démarrer en mode sans échec : CLAUDE.md, les skills, les plugins, les hooks, les serveurs MCP, les commandes et agents personnalisés, les styles de sortie, les workflows, les thèmes personnalisés, les raccourcis clavier personnalisés, les commandes de barre de statut et de suggestion de fichiers, les serveurs LSP et la mémoire automatique ne sont pas chargés, afin de dépanner une configuration défaillante. La politique des paramètres gérés s'applique toujours, y compris les hooks, la barre de statut et les commandes de suggestion de fichiers configurés par la politique ; ce n'est pas le cas des plugins gérés, des skills gérés, du CLAUDE.md géré et des serveurs MCP configurés par la politique. Équivaut à transmettre [`--safe-mode`](/docs/fr/cli-reference#cli-flags). Les processus enfants lancés directement héritent de la variable |

373| `CLAUDE_CODE_SEND_FEEDBACK` | Définissez sur `0` pour désactiver les [commentaires rédigés par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior) pour une session. Définissez sur `1` pour l'activer où votre compte a déjà accès ; la variable ne peut pas accorder l'accès elle-même, et les autres commutateurs qui désactivent les commentaires, comme `DISABLE_FEEDBACK_COMMAND` et la valeur `off` du paramètre [`feedbackDrafts`](/docs/fr/settings-reference#feedbackdrafts), s'appliquent toujours |373| `CLAUDE_CODE_SCRIPT_CAPS` | Objet JSON limitant le nombre de fois où des scripts spécifiques peuvent être invoqués par session lorsque `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` est défini. Les clés sont des sous-chaînes comparées au texte de la commande ; les valeurs sont des limites d'appels entières. Par exemple, `{"deploy.sh": 2}` permet d'appeler `deploy.sh` au maximum deux fois. La correspondance repose sur des sous-chaînes, de sorte que les astuces d'expansion du shell comme `./scripts/deploy.sh $(evil)` sont tout de même comptabilisées dans le plafond. La démultiplication à l'exécution via `xargs` ou `find -exec` n'est pas détectée ; il s'agit d'un contrôle de défense en profondeur |

374| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Remplacez le budget de temps en millisecondes pour les crochets [SessionEnd](/docs/fr/hooks#sessionend). La valeur est également le délai d'expiration pour chaque crochet qui ne définit pas son propre `timeout`. S'applique à la sortie de session, `/clear` et au changement de session via `/resume` interactif. Par défaut, le budget est de 1,5 secondes, automatiquement augmenté au plus haut `timeout` par crochet configuré dans les fichiers de paramètres, jusqu'à 60 secondes. Les délais d'expiration sur les crochets fournis par les plugins ne lèvent pas le budget |374| `CLAUDE_CODE_SCROLL_SPEED` | Définit le multiplicateur de défilement de la molette de la souris en [rendu plein écran](/docs/fr/fullscreen#mouse-wheel-scrolling). Accepte toute valeur positive jusqu'à 20, y compris des valeurs fractionnaires inférieures à 1 comme `0.5` pour ralentir le défilement accéléré du trackpad et de la molette dans les terminaux qui amplifient déjà les événements de molette. Définir sur `3` pour correspondre à `vim` si votre terminal envoie un événement de molette par cran sans amplification. Ignorée dans le terminal des IDE JetBrains, où Claude Code utilise sa propre gestion du défilement |

375| `CLAUDE_CODE_SESSION_ID` | Défini automatiquement à l'ID de session actuelle dans les sous-processus de l'outil Bash et PowerShell, les sous-processus [commande hook](/docs/fr/hooks) et les sous-processus [serveur MCP](/docs/fr/mcp) stdio. Pour Bash, PowerShell et les crochets, cela correspond au champ `session_id` dans l'entrée JSON du crochet et est mis à jour sur `/clear`. Un sous-processus serveur MCP conserve l'ID avec lequel il a été généré. Sur `--resume <session-id>`, il reçoit l'ID repris, correspondant aux crochets et Bash. Sur `--continue` ou `--resume` sans ID explicite, il peut recevoir l'ID de démarrage initial à la place. Utilisez pour corréler les scripts et les outils externes avec la session Claude Code qui les a lancés |375| `CLAUDE_CODE_SEND_FEEDBACK` | Définir sur `0` pour désactiver le [feedback rédigé par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior) pour une session. Définir sur `1` pour l'activer lorsque votre compte y a déjà accès ; la variable ne peut pas accorder l'accès elle-même, et les autres options qui désactivent le feedback, telles que `DISABLE_FEEDBACK_COMMAND` et la valeur `off` du paramètre [`feedbackDrafts`](/docs/fr/settings-reference#feedbackdrafts), s'appliquent toujours |

376| `CLAUDE_CODE_SHELL` | Définissez le shell que Claude Code utilise pour exécuter les commandes de l'outil Bash. Accepte un chemin vers un binaire `bash` ou `zsh`, par exemple `/opt/homebrew/bin/bash`. Les autres shells comme `fish` ne sont pas pris en charge. Si la valeur n'est pas un chemin `bash` ou `zsh` fonctionnant, Claude Code l'ignore et revient à la détection automatique. La détection automatique utilise votre `$SHELL` lorsqu'il pointe vers `bash` ou `zsh`, sinon il choisit le premier `zsh` fonctionnant puis `bash` trouvé sur votre `PATH` et les emplacements d'installation standard |376| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Remplace le budget de temps en millisecondes des hooks [SessionEnd](/docs/fr/hooks#sessionend). La valeur sert également de délai d'expiration pour chaque hook qui ne définit pas son propre `timeout`. S'applique à la sortie de session, à `/clear` et au changement de session via `/resume` en mode interactif. Par défaut, le budget est de 1,5 seconde, automatiquement porté au `timeout` par hook le plus élevé configuré dans les fichiers de paramètres, jusqu'à 60 secondes. Les délais d'expiration des hooks fournis par des plugins n'augmentent pas le budget |

377| `CLAUDE_CODE_SHELL_PREFIX` | Préfixe de commande qui enveloppe les commandes shell que Claude Code génère : les appels de l'outil Bash, les commandes [hook](/docs/fr/hooks), les commandes [ligne d'état](/docs/fr/statusline) et les commandes de démarrage du [serveur MCP](/docs/fr/mcp) stdio. Les crochets PowerShell et les crochets de forme exec s'exécutent sans le préfixe. Utile pour la journalisation ou l'audit. Définir un chemin d'exécutable nu comme `/path/to/logger.sh` exécute chaque commande comme `/path/to/logger.sh '<command>'`. Le wrapper reçoit la ligne de commande en tant qu'argument shell-quoted unique dans `$1`, afin que le wrapper doit réévaluer `$1` avec un shell, par exemple `exec bash -c "$1"`. Traiter `$1` comme un chemin d'exécutable nu casse les serveurs MCP stdio qui transmettent des arguments comme `npx -y <package>`. Pour les appels de l'outil Bash, `$1` contient l'invocation shell complète que Claude Code assemble, y compris la configuration de l'environnement, pas seulement la commande que Claude a exécutée |377| `CLAUDE_CODE_SESSION_ID` | Définie automatiquement sur l'ID de la session en cours dans les sous-processus des outils Bash et PowerShell, les sous-processus des [commandes de hook](/docs/fr/hooks) et les sous-processus des [serveurs MCP](/docs/fr/mcp) stdio. Pour Bash, PowerShell et les hooks, elle correspond au champ `session_id` de l'entrée JSON du hook et est mise à jour lors de `/clear`. Un sous-processus de serveur MCP conserve l'ID avec lequel il a été lancé. Avec `--resume <session-id>`, il reçoit l'ID de la session reprise, comme les hooks et Bash. Avec `--continue` ou `--resume` sans ID explicite, il peut recevoir à la place l'ID initial du démarrage. À utiliser pour corréler les scripts et les outils externes avec la session Claude Code qui les a lancés |

378| `CLAUDE_CODE_SIMPLE` | Définissez sur `1` pour exécuter avec une invite système minimale et uniquement les outils Bash, lecture de fichier et édition de fichier. Les outils MCP de `--mcp-config` sont toujours disponibles. Désactive la découverte automatique des crochets, des compétences, des commandes personnalisées, des sous-agents, des plugins installés, des serveurs MCP, de la mémoire automatique et de CLAUDE.md. Les compétences dans un répertoire que vous transmettez avec `--add-dir` se chargent toujours. Les jetons OAuth et les identifiants du trousseau ne sont pas lus, afin que l'authentification Anthropic doit provenir de `ANTHROPIC_API_KEY` ou d'un `apiKeyHelper` dans `--settings`. Équivalent à la transmission de [`--bare`](/docs/fr/headless#start-faster-with-bare-mode) |378| `CLAUDE_CODE_SHELL` | Définit le shell que Claude Code utilise pour exécuter les commandes de l'outil Bash. Accepte un chemin vers un binaire `bash` ou `zsh`, par exemple `/opt/homebrew/bin/bash`. Les autres shells tels que `fish` ne sont pas pris en charge. Si la valeur n'est pas un chemin `bash` ou `zsh` fonctionnel, Claude Code l'ignore et revient à la détection automatique. La détection automatique utilise votre `$SHELL` lorsqu'il pointe vers `bash` ou `zsh`, sinon elle choisit le premier `zsh` puis `bash` fonctionnel trouvé dans votre `PATH` et les emplacements d'installation standard |

379| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Définissez sur `1` pour utiliser une invite système plus courte et des descriptions d'outils abrégées sur n'importe quel modèle. Définissez sur `0`, `false`, `no` ou `off` pour refuser même sur les modèles où l'expérience ou la configuration du serveur l'activerait autrement. L'ensemble complet d'outils, la découverte des crochets, des serveurs MCP et de CLAUDE.md restent activés |379| `CLAUDE_CODE_SHELL_PREFIX` | Préfixe de commande qui encapsule les commandes shell que Claude Code lance : les appels de l'outil Bash, les commandes de [hook](/docs/fr/hooks), les commandes de [barre de statut](/docs/fr/statusline) et les commandes de démarrage des [serveurs MCP](/docs/fr/mcp) stdio. Les hooks PowerShell et les hooks au format exec s'exécutent sans le préfixe. Utile pour la journalisation ou l'audit. Définir un simple chemin d'exécutable tel que `/path/to/logger.sh` exécute chaque commande sous la forme `/path/to/logger.sh '<command>'`. Le wrapper reçoit la ligne de commande sous la forme d'un seul argument entre guillemets shell dans `$1`, il doit donc réévaluer `$1` avec un shell, par exemple `exec bash -c "$1"`. Traiter `$1` comme un simple chemin d'exécutable casse les serveurs MCP stdio qui transmettent des arguments tels que `npx -y <package>`. Pour les appels de l'outil Bash, `$1` contient l'invocation shell complète assemblée par Claude Code, y compris la configuration de l'environnement, et pas seulement la commande exécutée par Claude |

380| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Ignorez l'authentification côté client pour [Claude Platform on AWS](/docs/fr/claude-platform-on-aws), pour les passerelles qui signent elles-mêmes les requêtes |380| `CLAUDE_CODE_SIMPLE` | Définir sur `1` pour s'exécuter avec un prompt système minimal et uniquement les outils Bash, de lecture de fichiers et de modification de fichiers. Les outils MCP provenant de `--mcp-config` restent disponibles. Désactive la découverte automatique des hooks, des skills, des commandes personnalisées, des sous-agents, des plugins installés, des serveurs MCP, de la mémoire automatique et de CLAUDE.md. Les skills d'un répertoire que vous transmettez avec `--add-dir` sont toujours chargés. Les jetons OAuth et les identifiants du trousseau ne sont pas lus, l'authentification Anthropic doit donc provenir de `ANTHROPIC_API_KEY` ou d'un `apiKeyHelper` dans `--settings`. Équivaut à transmettre [`--bare`](/docs/fr/headless#start-faster-with-bare-mode) |

381| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Définissez sur `1` pour désactiver le cache en processus des identifiants résolus à partir de la chaîne de fournisseur d'identifiants par défaut AWS, afin que Claude Code résout la chaîne à chaque requête API. Avec le cache désactivé, un profil soutenu par SSO demande des identifiants à IAM Identity Center à chaque requête. Voir [mise en cache des identifiants et délai d'expiration de la résolution](/docs/fr/amazon-bedrock#credential-caching-and-resolution-timeout). Nécessite Claude Code v2.1.207 ou ultérieur |381| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Définir sur `1` pour utiliser un prompt système plus court et des descriptions d'outils abrégées sur n'importe quel modèle. Définir sur `0`, `false`, `no` ou `off` pour le désactiver, même sur les modèles où l'expérimentation ou la configuration du serveur l'activeraient sinon. L'ensemble complet des outils, les hooks, les serveurs MCP et la découverte de CLAUDE.md restent activés |

382| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Ignorez l'authentification AWS pour Amazon Bedrock (par exemple, lors de l'utilisation d'une passerelle LLM) |382| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Ignore l'authentification côté client pour [Claude Platform on AWS](/docs/fr/claude-platform-on-aws), pour les passerelles qui signent elles-mêmes les requêtes |

383| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Définissez sur `1` pour traiter une vérification de disponibilité du [mode rapide](/docs/fr/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) échouée comme disponible, pour les réseaux qui bloquent la requête directe de la vérification vers `api.anthropic.com`. Claude Code honore toujours une réponse « disabled by your organization » |383| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Définir sur `1` pour désactiver le cache en mémoire du processus des identifiants résolus depuis la chaîne de fournisseurs d'identifiants AWS par défaut, afin que Claude Code résolve la chaîne à chaque requête API. Lorsque le cache est désactivé, un profil reposant sur SSO demande des identifiants à IAM Identity Center à chaque requête. Voir [mise en cache des identifiants et délai d'expiration de la résolution](/docs/fr/amazon-bedrock#credential-caching-and-resolution-timeout). Nécessite Claude Code v2.1.207 ou ultérieur |

384| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Définissez sur `1` pour ignorer la vérification de disponibilité du [mode rapide](/docs/fr/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) côté client, pour les proxies qui interceptent la requête de la vérification plutôt que de la refuser. L'API rejette toujours les requêtes en mode rapide lorsque votre organisation a le mode rapide désactivé |384| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Ignore l'authentification AWS pour Amazon Bedrock (par exemple, lors de l'utilisation d'une passerelle LLM) |

385| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Ignorez l'authentification Azure pour Microsoft Foundry, pour un proxy ou une passerelle qui injecte son propre en-tête `Authorization`. Claude Code envoie les requêtes sans identifiant Azure et préserve l'en-tête `Authorization` que vous fournissez, par exemple via `ANTHROPIC_CUSTOM_HEADERS`. Ignoré lorsque `ANTHROPIC_FOUNDRY_API_KEY` ou `ANTHROPIC_FOUNDRY_AUTH_TOKEN` est défini. Avant v2.1.203, cette variable laissait le client Microsoft Foundry incapable d'envoyer des requêtes sauf si une clé API était également définie |385| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Définir sur `1` pour traiter un échec de la vérification de disponibilité du [mode rapide](/docs/fr/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) comme une disponibilité, pour les réseaux qui bloquent la requête directe de la vérification vers `api.anthropic.com`. Claude Code respecte toujours une réponse « disabled by your organization » |

386| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Ignorez l'authentification AWS pour Amazon Bedrock Mantle (par exemple, lors de l'utilisation d'une passerelle LLM) |386| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Définir sur `1` pour ignorer la vérification côté client de la disponibilité du [mode rapide](/docs/fr/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways), pour les proxys qui interceptent la requête de vérification au lieu de la refuser. L'API rejette toujours les requêtes en mode rapide lorsque votre organisation a désactivé le mode rapide |

387| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | Les [vérifications du modèle de démarrage](/docs/fr/amazon-bedrock#startup-model-checks) sur [Amazon Bedrock](/docs/fr/amazon-bedrock) et [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) se souviennent sur cette machine quels modèles ils ont trouvé que votre compte ne peut pas invoquer, pendant jusqu'à un jour. Définissez sur `1` pour désactiver cette mémoire. Nécessite Claude Code v2.1.285 ou ultérieur |387| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Ignore l'authentification Azure pour Microsoft Foundry, pour un proxy ou une passerelle qui injecte son propre en-tête `Authorization`. Claude Code envoie les requêtes sans identifiant Azure et conserve l'en-tête `Authorization` que vous fournissez, par exemple via `ANTHROPIC_CUSTOM_HEADERS`. Ignorée lorsque `ANTHROPIC_FOUNDRY_API_KEY` ou `ANTHROPIC_FOUNDRY_AUTH_TOKEN` est défini. Avant la v2.1.203, cette variable empêchait le client Microsoft Foundry d'envoyer des requêtes sauf si une clé API était également définie |

388| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Définissez sur `1` pour ignorer l'écriture de l'historique des invites et des transcriptions de session sur le disque. Les sessions démarrées avec cette variable définie n'apparaissent pas dans `--resume`, `--continue` ou l'historique de la flèche vers le haut. Utile pour les sessions de script éphémères |388| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Ignore l'authentification AWS pour Amazon Bedrock Mantle (par exemple, lors de l'utilisation d'une passerelle LLM) |

389| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Ignorez l'authentification Google pour Google Cloud's Agent Platform (par exemple, lors de l'utilisation d'une passerelle LLM) |389| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | Les [vérifications de modèles au démarrage](/docs/fr/amazon-bedrock#startup-model-checks) sur [Amazon Bedrock](/docs/fr/amazon-bedrock) et [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) mémorisent sur cette machine, pendant au maximum une journée, les modèles que votre compte ne peut pas invoquer. Définir sur `1` pour désactiver cette mémorisation. Nécessite Claude Code v2.1.285 ou ultérieur |

390| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Définissez sur `1` pour qu'une session démarrée avec `--output-format stream-json` écrive un [message de résultat nommant pourquoi Claude Code a refusé de démarrer](/docs/fr/agent-sdk/typescript#startup_failure_reason) pour les défaillances de démarrage qui se terminent autrement avec stderr seul. Nécessite Claude Code v2.1.274 ou ultérieur |390| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Définir sur `1` pour ne pas écrire l'historique des prompts et les transcriptions de session sur le disque. Les sessions démarrées avec cette variable définie n'apparaissent pas dans `--resume`, `--continue` ni dans l'historique accessible avec la flèche haut. Utile pour les sessions scriptées éphémères |

391| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Nombre maximum de fois consécutives qu'un crochet [Stop](/docs/fr/hooks#stop) ou [SubagentStop](/docs/fr/hooks#subagentstop) peut bloquer la fin du tour avant que Claude Code le remplace et termine le tour de toute façon (par défaut : 8). Définissez sur `0` pour désactiver le plafond. Augmentez ceci si votre crochet a légitimement besoin de plus d'itérations pour se résoudre |391| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Ignore l'authentification Google pour Google Cloud's Agent Platform (par exemple, lors de l'utilisation d'une passerelle LLM) |

392| `CLAUDE_CODE_SUBAGENT_MODEL` | Le modèle par défaut pour les [sous-agents](/docs/fr/sub-agents#choose-a-model), les coéquipiers de l'[équipe d'agents](/docs/fr/agent-teams#specify-teammates-and-models) et les agents de [flux de travail](/docs/fr/workflows) qui ne sont pas assignés à un modèle d'une autre manière. Accepte un alias comme `haiku` ou un nom de modèle complet. Deux sources ont la priorité sur lui : un modèle que Claude transmet lorsqu'il génère l'agent, et un champ `model` dans la définition de l'agent, y compris `inherit`. Pour changer cela, définissez [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/fr/sub-agents#run-every-subagent-on-one-model). Voir [Choisir un modèle](/docs/fr/sub-agents#choose-a-model) pour l'ordre complet. Le définir sur `inherit` est identique à le laisser non défini. Avant v2.1.251, cette variable remplaçait à la fois le modèle par invocation et le champ `model` de la définition |392| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Définir sur `1` pour qu'une session démarrée avec `--output-format stream-json` écrive un [message de résultat indiquant pourquoi Claude Code a refusé de démarrer](/docs/fr/agent-sdk/typescript#startup_failure_reason) pour les échecs de démarrage qui se terminent sinon uniquement par stderr. Nécessite Claude Code v2.1.274 ou ultérieur |

393| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Définissez sur `1` pour forcer un modèle sur les sous-agents, les coéquipiers et les agents de flux de travail. [Exécuter chaque sous-agent sur un modèle](/docs/fr/sub-agents#run-every-subagent-on-one-model) dit quel modèle c'est. Nécessite Claude Code v2.1.257 ou ultérieur |393| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Nombre maximal de fois consécutives où un hook [Stop](/docs/fr/hooks#stop) ou [SubagentStop](/docs/fr/hooks#subagentstop) peut empêcher la fin du tour avant que Claude Code ne passe outre et termine tout de même le tour (par défaut : 8). Définir sur `0` pour désactiver le plafond. Augmentez-le si votre hook a légitimement besoin de plus d'itérations pour aboutir |

394| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Définissez `5m` ou `1h`, les seules valeurs que Claude Code accepte, pour choisir la [TTL du cache d'invite](/docs/fr/prompt-caching#cache-lifetime) pour les requêtes en dehors de la conversation principale, telles que les [sous-agents](/docs/fr/sub-agents), les flux de travail et le travail d'arrière-plan. A la priorité sur le paramètre `subagentPromptCacheTtl` et sur `ENABLE_PROMPT_CACHING_1H`, et `FORCE_PROMPT_CACHING_5M` le remplace. L'API facture les écritures de cache d'une heure à un taux plus élevé. Nécessite Claude Code v2.1.242 ou ultérieur |394| `CLAUDE_CODE_SUBAGENT_MODEL` | Le modèle par défaut des [sous-agents](/docs/fr/sub-agents#choose-a-model), des coéquipiers d'une [équipe d'agents](/docs/fr/agent-teams#specify-teammates-and-models) et des agents de [workflow](/docs/fr/workflows) auxquels aucun modèle n'est attribué d'une autre manière. Accepte un alias tel que `haiku` ou un nom de modèle complet. Deux sources ont priorité sur elle : un modèle que Claude transmet lorsqu'il lance l'agent, et un champ `model` dans la définition de l'agent, y compris `inherit`. Pour changer cela, définissez [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/fr/sub-agents#run-every-subagent-on-one-model). Voir [Choisir un modèle](/docs/fr/sub-agents#choose-a-model) pour l'ordre complet. La définir sur `inherit` revient à la laisser non définie. Avant la v2.1.251, cette variable remplaçait à la fois le modèle par invocation et le champ `model` de la définition |

395| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Définissez sur `1` pour supprimer les identifiants des environnements de sous-processus (outil Bash, crochets, serveurs MCP stdio) : les identifiants Anthropic et du fournisseur cloud, toute autre variable que Claude Code reconnaît comme un identifiant, et les identifiants intégrés dans les URL du registre de paquets. Le processus Claude parent conserve ces identifiants pour les appels API, mais les processus enfants ne peuvent pas les lire, réduisant l'exposition aux attaques par injection d'invite qui tentent d'exfiltrer les secrets via l'expansion shell. Sur v2.1.251 ou ultérieur, le nettoyage supprime également les variables de pointeur de magasin de configuration propres à Claude Code (comme `CLAUDE_CONFIG_DIR`), afin qu'un processus enfant ne puisse pas localiser un répertoire de configuration réinstallé. Laissez le nettoyage non défini si un sous-processus a besoin de ces variables. Sur Linux, cela exécute également les sous-processus Bash dans un espace de noms PID isolé afin qu'ils ne puissent pas lire les environnements de processus hôte via `/proc` ; en conséquence, `ps`, `pgrep` et `kill` ne peuvent pas voir ou signaler les processus hôte. `claude-code-action` définit ceci automatiquement lorsque `allowed_non_write_users` est configuré |395| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Définir sur `1` pour imposer un même modèle aux sous-agents, aux coéquipiers et aux agents de workflow. [Exécuter tous les sous-agents sur un même modèle](/docs/fr/sub-agents#run-every-subagent-on-one-model) indique de quel modèle il s'agit. Nécessite Claude Code v2.1.257 ou ultérieur |

396| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Définissez sur `1` en mode non interactif (le drapeau `-p`) pour attendre la fin de l'installation du plugin avant la première requête. Sans cela, les plugins s'installent en arrière-plan et peuvent ne pas être disponibles au premier tour. Combinez avec `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` pour limiter l'attente |396| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Définir sur `5m` ou `1h`, les seules valeurs acceptées par Claude Code, pour choisir le [TTL du cache de prompts](/docs/fr/prompt-caching#cache-lifetime) des requêtes en dehors de la conversation principale, telles que les [sous-agents](/docs/fr/sub-agents), les workflows et le travail en arrière-plan. A priorité sur le paramètre `subagentPromptCacheTtl` et sur `ENABLE_PROMPT_CACHING_1H`, et `FORCE_PROMPT_CACHING_5M` la remplace. L'API facture les écritures en cache d'une heure à un tarif plus élevé. Nécessite Claude Code v2.1.242 ou ultérieur |

397| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Délai d'expiration en millisecondes pour l'installation synchrone du plugin. Lorsqu'il est dépassé, Claude Code procède sans plugins et enregistre une erreur. Pas de valeur par défaut : sans cette variable, l'installation synchrone attend jusqu'à la fin |397| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Définir sur `1` pour retirer les identifiants des environnements des sous-processus (outil Bash, hooks, serveurs MCP stdio) : les identifiants Anthropic et des fournisseurs cloud, toute autre variable que Claude Code reconnaît comme un identifiant, et les identifiants intégrés dans les URL de registres de paquets. Le processus Claude parent conserve ces identifiants pour les appels API, mais les processus enfants ne peuvent pas les lire, ce qui réduit l'exposition aux attaques par injection de prompt qui tentent d'exfiltrer des secrets via l'expansion du shell. Dans la v2.1.251 ou ultérieure, le nettoyage supprime également les variables pointant vers le stockage de configuration de Claude Code (comme `CLAUDE_CONFIG_DIR`), de sorte qu'un processus enfant ne peut pas localiser un répertoire de configuration déplacé. Laissez le nettoyage non défini si un sous-processus a besoin de ces variables. Sous Linux, cela exécute également les sous-processus Bash dans un espace de noms PID isolé afin qu'ils ne puissent pas lire les environnements des processus hôtes via `/proc` ; par effet secondaire, `ps`, `pgrep` et `kill` ne peuvent ni voir ni signaler les processus hôtes. `claude-code-action` la définit automatiquement lorsque `allowed_non_write_users` est configuré |

398| `CLAUDE_CODE_SYNC_SKILLS` | Définissez sur `1` en mode non interactif avec le drapeau `-p` pour faire en sorte que Claude Code télécharge les compétences activées pour votre compte claude.ai dans cette exécution et attende la liste d'entre elles, jusqu'à `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, avant d'exécuter la première requête. Les téléchargements eux-mêmes se terminent en arrière-plan, et Claude attend le téléchargement d'une compétence lorsqu'il l'invoque. Nécessite l'authentification claude.ai. Les sessions de terminal où vous vous connectez avec votre compte claude.ai [téléchargent ces compétences](/docs/fr/skills#where-synced-skills-load) dans `~/.claude/skills/synced/` et se resynchronisent environ toutes les 10 minutes sans cette variable, afin de la définir uniquement lorsqu'une exécution `-p` a besoin de vos compétences actuelles à sa première requête. Avant v2.1.273, les sessions de terminal les téléchargeaient uniquement dans une exécution `-p` avec cette variable définie. Le nom du dossier `synced` est [réservé pour ce téléchargement](/docs/fr/skills#where-skills-live). Avant v2.1.227, les compétences téléchargeaient dans `~/.claude/skills/` directement. Claude Code applique [des règles supplémentaires aux compétences téléchargées](/docs/fr/skills#how-synced-skills-behave), comme ne pas exécuter leurs commandes `!` sur votre machine |398| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Définir sur `1` en mode non interactif (le flag `-p`) pour attendre la fin de l'installation des plugins avant la première requête. Sans cela, les plugins s'installent en arrière-plan et peuvent ne pas être disponibles au premier tour. À combiner avec `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` pour limiter l'attente |

399| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Délai d'expiration en millisecondes pour la resynchronisation des compétences qui s'exécute au milieu de la session lorsqu'une application construite sur le [SDK Agent](/docs/fr/agent-sdk/typescript#query-object) recharge les compétences (par défaut : 30000). Lorsqu'il est dépassé, le rechargement continue avec les compétences qui sont arrivées, et les téléchargements restants se terminent en arrière-plan |399| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Délai d'expiration en millisecondes pour l'installation synchrone des plugins. Lorsqu'il est dépassé, Claude Code continue sans les plugins et consigne une erreur. Aucune valeur par défaut : sans cette variable, l'installation synchrone attend jusqu'à son achèvement |

400| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pour que la première requête attende la liste de compétences initiale lorsque `CLAUDE_CODE_SYNC_SKILLS` est défini (par défaut : 5000). Lorsqu'il est dépassé, la première requête s'exécute avec les compétences qui sont arrivées. Les téléchargements se terminent en arrière-plan de toute façon, et Claude attend le téléchargement d'une compétence lorsqu'il l'invoque |400| `CLAUDE_CODE_SYNC_SKILLS` | Définir sur `1` en mode non interactif avec le flag `-p` pour que Claude Code télécharge les skills activés pour votre compte claude.ai lors de cette exécution et attende leur liste, jusqu'à `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, avant d'exécuter la première requête. Les téléchargements eux-mêmes se terminent en arrière-plan, et Claude attend le téléchargement d'un skill lorsqu'il invoque ce skill. Nécessite l'authentification claude.ai. Les sessions de terminal dans lesquelles vous vous connectez avec votre compte claude.ai [téléchargent ces skills](/docs/fr/skills#where-synced-skills-load) dans `~/.claude/skills/synced/` et les resynchronisent environ toutes les 10 minutes sans cette variable ; définissez-la donc uniquement lorsqu'une exécution `-p` a besoin de vos skills actuels dès sa première requête. Avant la v2.1.273, les sessions de terminal ne les téléchargeaient que lors d'une exécution `-p` avec cette variable définie. Le nom de dossier `synced` est [réservé à ce téléchargement](/docs/fr/skills#where-skills-live). Avant la v2.1.227, les skills étaient téléchargés directement dans `~/.claude/skills/`. Claude Code applique des [règles supplémentaires aux skills téléchargés](/docs/fr/skills#how-synced-skills-behave), comme ne pas exécuter leurs commandes `!` sur votre machine |

401| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Définissez sur `false` pour désactiver la coloration syntaxique dans la sortie diff. Utile lorsque les couleurs interfèrent avec votre configuration de terminal. Pour désactiver également la coloration dans les blocs de code et les aperçus de fichiers, utilisez le paramètre [`syntaxHighlightingDisabled`](/docs/fr/settings-reference#syntaxhighlightingdisabled) |401| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Délai d'expiration en millisecondes pour la resynchronisation des skills qui s'exécute en cours de session lorsqu'une application construite sur l'[Agent SDK](/docs/fr/agent-sdk/typescript#query-object) recharge les skills (par défaut : 30000). Lorsqu'il est dépassé, le rechargement se poursuit avec les skills déjà arrivés, et les téléchargements restants se terminent en arrière-plan |

402| `CLAUDE_CODE_TASK_LIST_ID` | Partagez une liste de tâches entre les sessions. Définissez le même ID dans plusieurs instances Claude Code pour coordonner une liste de tâches partagée, dans [les sessions qui ont les outils Task](/docs/fr/tools-reference#task-tool-availability). Voir [Liste des tâches](/docs/fr/interactive-mode#task-list) |402| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pendant lequel la première requête attend la liste initiale des skills lorsque `CLAUDE_CODE_SYNC_SKILLS` est défini (par défaut : 5000). Lorsqu'il est dépassé, la première requête s'exécute avec les skills déjà arrivés. Les téléchargements se terminent en arrière-plan dans tous les cas, et Claude attend le téléchargement d'un skill lorsqu'il invoque ce skill |

403| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Remplacez, en millisecondes, combien de temps une session non interactive attend à la sortie pour que son [équipe d'agents](/docs/fr/agent-teams) se démantèle. Accepte 1000 à 60000 ; une valeur hors plage est ignorée et la valeur par défaut de 10000 s'applique. Nécessite Claude Code v2.1.206 ou ultérieur |403| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Définir sur `false` pour désactiver la coloration syntaxique dans la sortie des diffs. Utile lorsque les couleurs interfèrent avec la configuration de votre terminal. Pour désactiver également la coloration dans les blocs de code et les aperçus de fichiers, utilisez le paramètre [`syntaxHighlightingDisabled`](/docs/fr/settings-reference#syntaxhighlightingdisabled) |

404| `CLAUDE_CODE_TMPDIR` | Remplacez le répertoire temporaire utilisé pour les fichiers temporaires internes. Claude Code ajoute `/claude-{uid}/` sur Unix ou `/claude/` sur Windows à ce chemin. Par défaut : `/tmp` sur macOS, `os.tmpdir()` sur Linux et Windows. Sur macOS et Linux, les sous-processus Bash [sandboxés](/docs/fr/sandboxing) reçoivent un `$TMPDIR` de secours court sous la valeur par défaut du système lorsque votre substitution est un chemin long, car certains outils échouent lorsque les chemins temporaires deviennent trop longs. Les commandes Bash non sandboxées héritent du `$TMPDIR` de votre shell lorsqu'il est défini. Les fichiers temporaires propres à Claude Code utilisent toujours votre substitution. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) |404| `CLAUDE_CODE_TASK_LIST_ID` | Partage une liste de tâches entre les sessions. Définissez le même ID dans plusieurs instances de Claude Code pour vous coordonner sur une liste de tâches partagée, dans [les sessions qui disposent des outils Task](/docs/fr/tools-reference#task-tool-availability). Voir [Liste des tâches](/docs/fr/interactive-mode#task-list) |

405| `CLAUDE_CODE_TMUX_TRUECOLOR` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour permettre la sortie truecolor 24 bits à l'intérieur de tmux. **Définir sur `0` ou `false` permet toujours truecolor**, contrairement à la plupart des variables activées/désactivées ; supprimez la variable pour restaurer le serrage 256 couleurs. Par défaut, Claude Code serre à 256 couleurs lorsque `$TMUX` est défini car tmux ne transmet pas les séquences d'échappement truecolor sauf s'il est configuré. Définissez ceci après avoir ajouté `set -ga terminal-overrides ',*:Tc'` à votre `~/.tmux.conf`. Voir [Configuration du terminal](/docs/fr/terminal-config) pour les autres paramètres tmux |405| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Remplace, en millisecondes, la durée pendant laquelle une session non interactive attend à la sortie que son [équipe d'agents](/docs/fr/agent-teams) ait fini de se démanteler. Accepte de 1000 à 60000 ; une valeur hors plage est ignorée et la valeur par défaut de 10000 s'applique. Nécessite Claude Code v2.1.206 ou ultérieur |

406| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Sur Linux et WSL, définissez sur une liste séparée par des virgules des types de processus que Claude Code [exclut du plafond de mémoire de l'outil](/docs/fr/tools-reference#memory-limit-on-linux-and-wsl), comme `mcp` ou `lsp`. Définissez `none` pour limiter chaque type, ou `all-new` pour limiter uniquement les commandes des outils Bash, PowerShell et Monitor. Claude Code maintient les commandes des outils Bash, PowerShell et Monitor sous le plafond quel que soit ce que vous énumérez. Nécessite Claude Code v2.1.246 ou ultérieur |406| `CLAUDE_CODE_TMPDIR` | Remplace le répertoire temporaire utilisé pour les fichiers temporaires internes. Claude Code ajoute `/claude-{uid}/` à ce chemin sous Unix, ou `/claude/` sous Windows. Par défaut : `/tmp` sur macOS, `os.tmpdir()` sous Linux et Windows. Sur macOS et Linux, les sous-processus Bash [en sandbox](/docs/fr/sandboxing) reçoivent un `$TMPDIR` de secours court sous le répertoire système par défaut lorsque votre remplacement est un chemin long, car certains outils échouent lorsque les chemins temporaires deviennent trop longs. Les commandes Bash hors sandbox héritent du `$TMPDIR` de votre shell lorsqu'il est défini. Sous Windows natif, lorsque votre shell ne définit pas `$TMPDIR`, une commande Bash qui référence `$TMPDIR` reçoit votre remplacement, ou `%TEMP%` si vous n'en avez pas défini. Les fichiers temporaires propres à Claude Code utilisent toujours votre remplacement. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) |

407| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Sur Linux et WSL, définissez sur une taille comme `4G` pour [limiter la mémoire que les commandes des outils Bash et PowerShell peuvent utiliser](/docs/fr/tools-reference#memory-limit-on-linux-and-wsl), et les commandes de l'outil Monitor sur v2.1.246 ou ultérieur. Écrivez la taille en chiffres simples, seuls pour un nombre d'octets ou avec un suffixe `K`, `M`, `G` ou `T`. Définissez `0` ou `off` pour désactiver le plafond. Une fois que le premier processus que Claude Code démarre a activé ou désactivé le plafond, une valeur modifiée prend effet la prochaine fois que vous lancez `claude`. Nécessite Claude Code v2.1.233 ou ultérieur |407| `CLAUDE_CODE_TMUX_TRUECOLOR` | Définir sur n'importe quelle valeur non vide, par exemple `1`, pour autoriser la sortie truecolor 24 bits dans tmux. **La définir sur `0` ou `false` autorise tout de même le truecolor**, contrairement à la plupart des variables d'activation/désactivation ; supprimez la variable pour rétablir la limitation à 256 couleurs. Par défaut, Claude Code se limite à 256 couleurs lorsque `$TMUX` est défini, car tmux ne transmet pas les séquences d'échappement truecolor sauf s'il est configuré pour le faire. Définissez-la après avoir ajouté `set -ga terminal-overrides ',*:Tc'` à votre `~/.tmux.conf`. Voir [Configuration du terminal](/docs/fr/terminal-config) pour les autres paramètres tmux |

408| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Délai avant que Claude Code annule un dialogue qu'il transfère à un client distant comme un [Remote Control](/docs/fr/remote-control) ou un hôte SDK, ou le dialogue d'approbation pour un [message inter-session retenu](/docs/fr/cross-session-messaging#control-inbound-messages) ; les invites de permission et les questions `AskUserQuestion` utilisent leurs propres flux et ne sont pas régis par cela. Sur Claude Code v2.1.236 ou ultérieur, il limite également l'invite de consentement des crédits d'utilisation [Fable](/docs/fr/model-config#fable-and-usage-credits) au milieu de la session dans une session qui peut s'exécuter sans surveillance. [Contrôler les messages entrants](/docs/fr/cross-session-messaging#control-inbound-messages) et [les sessions non interactives](/docs/fr/cross-session-messaging#non-interactive-sessions) couvrent les règles d'expiration complètes des messages retenus, y compris les cas où le délai ne s'applique pas. Remplace le paramètre [`dialogExpiry`](/docs/fr/settings-reference#dialogexpiry). `0` ou une valeur négative désactive le délai |408| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Sous Linux et WSL, définir sur une liste séparée par des virgules des types de processus que Claude Code [exclut du plafond de mémoire des outils](/docs/fr/tools-reference#memory-limit-on-linux-and-wsl), comme `mcp` ou `lsp`. Définir sur `none` pour plafonner tous les types, ou sur `all-new` pour ne plafonner que les commandes des outils Bash, PowerShell et Monitor. Claude Code maintient les commandes des outils Bash, PowerShell et Monitor sous le plafond, quoi que vous listiez. Nécessite Claude Code v2.1.246 ou ultérieur |

409| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Utilisez [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) |409| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Sous Linux et WSL, définir sur une taille telle que `4G` pour [plafonner la mémoire que peuvent utiliser les commandes des outils Bash et PowerShell](/docs/fr/tools-reference#memory-limit-on-linux-and-wsl), ainsi que les commandes de l'outil Monitor dans la v2.1.246 ou ultérieure. Écrivez la taille en chiffres simples, seuls pour un nombre d'octets ou avec un suffixe `K`, `M`, `G` ou `T`. Définir sur `0` ou `off` pour désactiver le plafond. Une fois que le premier processus lancé par Claude Code a activé ou désactivé le plafond, une valeur modifiée prend effet au prochain lancement de `claude`. Nécessite Claude Code v2.1.233 ou ultérieur |

410| `CLAUDE_CODE_USE_BEDROCK` | Utilisez [Amazon Bedrock](/docs/fr/amazon-bedrock) |410| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Délai en millisecondes avant que Claude Code annule une boîte de dialogue qu'il transmet à un client distant tel qu'un hôte [Remote Control](/docs/fr/remote-control) ou SDK, ou la boîte de dialogue d'approbation d'un [message inter-sessions retenu](/docs/fr/cross-session-messaging#control-inbound-messages) ; les demandes de permission et les questions `AskUserQuestion` utilisent leurs propres flux et ne sont pas régies par cette variable. Dans Claude Code v2.1.236 ou ultérieur, elle limite également la [demande de consentement aux crédits d'utilisation Fable](/docs/fr/model-config#fable-and-usage-credits) en cours de session dans une session susceptible de s'exécuter sans surveillance. [Contrôler les messages entrants](/docs/fr/cross-session-messaging#control-inbound-messages) et [Sessions non interactives](/docs/fr/cross-session-messaging#non-interactive-sessions) détaillent l'ensemble des règles d'expiration des messages retenus, y compris les cas où le délai ne s'applique pas. Remplace le paramètre [`dialogExpiry`](/docs/fr/settings-reference#dialogexpiry). `0` ou une valeur négative désactive le délai |

411| `CLAUDE_CODE_USE_FOUNDRY` | Utilisez [Microsoft Foundry](/docs/fr/microsoft-foundry) |411| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Utiliser [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) |

412| `CLAUDE_CODE_USE_MANTLE` | Utilisez le [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint) d'Amazon Bedrock |412| `CLAUDE_CODE_USE_BEDROCK` | Utiliser [Amazon Bedrock](/docs/fr/amazon-bedrock) |

413| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Définissez sur `1` pour découvrir les commandes personnalisées, les sous-agents et les styles de sortie en utilisant les API de fichiers Node.js au lieu de ripgrep. Définissez ceci si le binaire ripgrep fourni est indisponible ou bloqué dans votre environnement. N'affecte pas les outils Grep ou de recherche de fichiers |413| `CLAUDE_CODE_USE_FOUNDRY` | Utiliser [Microsoft Foundry](/docs/fr/microsoft-foundry) |

414| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Contrôle l'outil PowerShell. Sur Windows sans Git Bash, l'outil est activé automatiquement ; définissez sur `0` pour le désactiver. Sur Windows avec Git Bash installé, l'outil est activé par défaut pour les comptes claude.ai et Console ; définissez sur `1` pour l'activer dans les sessions Amazon Bedrock, Google Cloud's Agent Platform et Microsoft Foundry, ou `0` pour le désactiver. Sur Linux, macOS et WSL, définissez sur `1` pour l'activer, ce qui nécessite `pwsh` sur votre `PATH`. Lorsqu'il est activé sur Windows, Claude peut exécuter les commandes PowerShell en mode natif au lieu de les router via Git Bash. Voir [Outil PowerShell](/docs/fr/tools-reference#powershell-tool) |414| `CLAUDE_CODE_USE_MANTLE` | Utiliser l'[endpoint Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint) d'Amazon Bedrock |

415| `CLAUDE_CODE_USE_VERTEX` | Utilisez [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) |415| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Définir sur `1` pour découvrir les commandes personnalisées, les sous-agents et les styles de sortie à l'aide des API de fichiers de Node.js au lieu de ripgrep. Définissez-la si le binaire ripgrep fourni est indisponible ou bloqué dans votre environnement. N'affecte pas Grep ni les outils de recherche de fichiers |

416| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Définissez sur le nombre de millisecondes que [WebFetch](/docs/fr/tools-reference#webfetch-tool-behavior) maintient la réponse de chaque URL récupérée en cache. La valeur par défaut est `900000`, ce qui est 15 minutes. Accepte uniquement les chiffres simples ; `0`, une décimale ou toute autre orthographe conserve la valeur par défaut. Claude Code lit la valeur une fois par lancement, afin qu'une modification dans un bloc `env` des paramètres s'applique lorsque vous lancez ensuite `claude`. Nécessite Claude Code v2.1.233 ou ultérieur |416| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Contrôle l'outil PowerShell. Sous Windows sans Git Bash, l'outil est activé automatiquement ; définir sur `0` pour le désactiver. Sous Windows avec Git Bash installé, l'outil est activé par défaut pour les comptes claude.ai et Console ; définir sur `1` pour l'activer dans les sessions Amazon Bedrock, Google Cloud's Agent Platform et Microsoft Foundry, ou sur `0` pour le désactiver. Sous Linux, macOS et WSL, définir sur `1` pour l'activer, ce qui nécessite `pwsh` dans votre `PATH`. Lorsqu'il est activé sous Windows, Claude peut exécuter des commandes PowerShell nativement au lieu de passer par Git Bash. Voir [Outil PowerShell](/docs/fr/tools-reference#powershell-tool) |

417| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Limite supérieure en millisecondes sur combien de temps [WebFetch](/docs/fr/tools-reference#webfetch-tool-behavior) attend qu'une page se télécharge, y compris les redirections qu'elle suit. Un téléchargement qui n'est pas terminé à ce moment échoue avec une erreur de délai. La valeur par défaut est `300000`, ce qui est cinq minutes. Définissez sur `0` pour supprimer la limite. Accepte uniquement les chiffres simples ; une décimale ou toute autre orthographe conserve la valeur par défaut. Nécessite Claude Code v2.1.268 ou ultérieur |417| `CLAUDE_CODE_USE_VERTEX` | Utiliser [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) |

418| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Combien d'agents une seule exécution de [flux de travail](/docs/fr/workflows) exécute à la fois, de `1` à `256`. Par défaut, une exécution exécute jusqu'à 16 agents à la fois, moins lorsque Claude Code a moins de CPU disponibles ; les appels `agent()` en attente attendent un créneau libre. Chaque agent en cours d'exécution conserve sa transcription en mémoire de Claude Code, afin que les valeurs plus élevées augmentent l'utilisation de la mémoire. Accepte uniquement les chiffres simples ; les valeurs hors plage et les autres orthographes conservent la valeur par défaut. Nécessite Claude Code v2.1.269 ou ultérieur |418| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Définir sur le nombre de millisecondes pendant lesquelles [WebFetch](/docs/fr/tools-reference#webfetch-tool-behavior) conserve en cache la réponse de chaque URL récupérée. La valeur par défaut est `900000`, soit 15 minutes. N'accepte que des chiffres simples ; `0`, un nombre décimal ou toute autre écriture conserve la valeur par défaut. Claude Code lit la valeur une fois par lancement, de sorte qu'une modification dans un bloc `env` des paramètres s'applique au prochain lancement de `claude`. Nécessite Claude Code v2.1.233 ou ultérieur |

419| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite supérieure en millisecondes sur combien de temps un agent de [flux de travail](/docs/fr/workflows) attend la première réponse d'un frère de même préfixe avant d'envoyer sa propre première requête. Lorsqu'un fan-out démarre plusieurs agents qui partagent un [préfixe de cache d'invite](/docs/fr/workflows#prompt-caching-in-a-fan-out), Claude Code maintient tous sauf le premier agent pendant jusqu'à ce temps afin que le reste lise le préfixe en cache au lieu de chacun le traiter sans cache. Par défaut `5000`. Définissez sur `0` pour désactiver l'attente. Lorsque `DISABLE_PROMPT_CACHING` est défini, les agents n'attendent jamais. Nécessite Claude Code v2.1.229 ou ultérieur |419| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Limite supérieure en millisecondes de la durée pendant laquelle [WebFetch](/docs/fr/tools-reference#webfetch-tool-behavior) attend le téléchargement d'une page, y compris les redirections qu'il suit. Un téléchargement qui n'est pas terminé à ce moment-là échoue avec une erreur de délai. La valeur par défaut est `300000`, soit cinq minutes. Définir sur `0` pour supprimer la limite. N'accepte que des chiffres simples ; un nombre décimal ou toute autre écriture conserve la valeur par défaut. Nécessite Claude Code v2.1.268 ou ultérieur |

420| `CLAUDE_CONFIG_DIR` | Remplacez le répertoire de configuration (par défaut : `~/.claude`). Tous les paramètres, l'historique des sessions et les plugins sont stockés sous ce chemin. Pour les identifiants, voir [où Claude Code stocke les identifiants](/docs/fr/authentication#credential-management). Utile pour exécuter plusieurs comptes côte à côte : par exemple, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) |420| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Nombre d'agents qu'une seule exécution de [workflow](/docs/fr/workflows) exécute simultanément, de `1` à `256`. Par défaut, une exécution lance jusqu'à 16 agents simultanément, moins lorsque Claude Code dispose de moins de CPU ; les appels `agent()` en file d'attente attendent qu'un emplacement se libère. La transcription de chaque agent en cours d'exécution reste dans la mémoire de Claude Code, de sorte que des valeurs plus élevées augmentent l'utilisation de la mémoire. N'accepte que des chiffres simples ; les valeurs hors plage et les autres écritures conservent la valeur par défaut. Nécessite Claude Code v2.1.269 ou ultérieur |

421| `CLAUDE_DISABLE_ADOPT` | Définissez sur `1` pour arrêter le travail d'arrière-plan en vol au lieu de le reporter lorsque vous mettez une session en arrière-plan en appuyant sur `←` ou avec [`/background`](/docs/fr/agent-view#from-inside-a-session). Claude Code vous demande de confirmer avant de mettre en arrière-plan, puis arrête les tâches qui seraient autrement reportées. Nécessite Claude Code v2.1.195 ou ultérieur |421| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite supérieure, en millisecondes, du temps pendant lequel un agent de [workflow](/docs/fr/workflows) attend que la première réponse d'un agent frère partageant le même préfixe commence avant d'envoyer sa propre première requête. Lorsqu'un fan-out démarre plusieurs agents qui partagent un [préfixe de cache de prompt](/docs/fr/workflows#prompt-caching-in-a-fan-out), Claude Code retient tous les agents sauf le premier pendant au plus cette durée, afin que les autres lisent le préfixe mis en cache au lieu de le traiter chacun sans cache. Valeur par défaut `5000`. Définissez sur `0` pour désactiver l'attente. Lorsque `DISABLE_PROMPT_CACHING` est défini, les agents n'attendent jamais. Nécessite Claude Code v2.1.229 ou ultérieur |

422| `CLAUDE_EFFORT` | Défini automatiquement dans les sous-processus de l'outil Bash et les commandes hook au [niveau d'effort](/docs/fr/model-config#adjust-effort-level) en vigueur lorsque le sous-processus démarre : `low`, `medium`, `high`, `xhigh` ou `max`. Correspond au champ `effort.level` transmis aux [crochets](/docs/fr/hooks). Défini uniquement lorsque le modèle actuel supporte le paramètre d'effort |422| `CLAUDE_CONFIG_DIR` | Remplace le répertoire de configuration (par défaut : `~/.claude`). Tous les paramètres, l'historique des sessions et les plugins sont stockés sous ce chemin. Pour les identifiants, consultez [où Claude Code stocke les identifiants](/docs/fr/authentication#credential-management). Utile pour exécuter plusieurs comptes côte à côte : par exemple, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) |

423| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Définissez sur `1` pour forcer l'activation du chien de garde d'inactivité de flux au niveau des octets, ou définissez sur `0` pour le forcer à désactiver. `0` désactive également le [délai du premier octet](/docs/fr/network-config#streaming-idle-watchdogs) sur les connexions où ce délai s'exécute. Lorsqu'il n'est pas défini, le chien de garde est activé par défaut pour les connexions API Anthropic directes et [Claude Platform on AWS](/docs/fr/claude-platform-on-aws), et pour les réponses en continu sur les connexions [passerelle](/docs/fr/gateways) atteintes via `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL` ; avant v2.1.222, il ne s'exécutait pas sur ces connexions de passerelle, afin que le chien de garde au niveau des événements puisse signaler une stagnation là même tandis que les pings de maintien de la connexion arrivaient. Pour les délais d'expiration et la façon dont les minuteurs interagissent, voir [Chiens de garde d'inactivité de flux](/docs/fr/network-config#streaming-idle-watchdogs) |423| `CLAUDE_DISABLE_ADOPT` | Définissez sur `1` pour arrêter le travail en arrière-plan en cours au lieu de le reporter lorsque vous mettez une session en arrière-plan en appuyant sur `←` ou avec [`/background`](/docs/fr/agent-view#from-inside-a-session). Claude Code vous demande de confirmer avant la mise en arrière-plan, puis arrête les tâches qui auraient sinon été reportées. Nécessite Claude Code v2.1.195 ou ultérieur |

424| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Définissez sur `1` pour activer le chien de garde d'inactivité de flux au niveau des octets sur les réponses Amazon Bedrock `vnd.amazon.eventstream`, ce qui active également le [délai du premier octet](/docs/fr/network-config#streaming-idle-watchdogs) sur les requêtes en continu Bedrock. Désactivé par défaut. Configurez le délai d'expiration avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |424| `CLAUDE_EFFORT` | Définie automatiquement dans les sous-processus de l'outil Bash et les commandes de hook sur le [niveau d'effort](/docs/fr/model-config#adjust-effort-level) en vigueur au démarrage du sous-processus : `low`, `medium`, `high`, `xhigh` ou `max`. Correspond au champ `effort.level` transmis aux [hooks](/docs/fr/hooks). Définie uniquement lorsque le modèle actuel prend en charge le paramètre d'effort |

425| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Définissez sur `0` pour forcer la désactivation du chien de garde d'inactivité de flux au niveau des événements, ou définissez sur `1` pour le forcer à activer. Lorsqu'il n'est pas défini, le chien de garde est activé par défaut pour tous les fournisseurs. Avant v2.1.196, la valeur par défaut non définie était contrôlée par le serveur sur l'API Anthropic directe et désactivée sur les autres fournisseurs. Configurez le délai d'expiration avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` ; pour les autres minuteurs de stagnation qui s'exécutent aux côtés de celui-ci, voir [Chiens de garde d'inactivité de flux](/docs/fr/network-config#streaming-idle-watchdogs) |425| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Définissez sur `1` pour forcer l'activation du watchdog d'inactivité du streaming au niveau des octets, ou sur `0` pour forcer sa désactivation. `0` désactive également le [délai du premier octet](/docs/fr/network-config#streaming-idle-watchdogs) sur les connexions où ce délai s'applique. Lorsque la variable n'est pas définie, le watchdog est activé par défaut pour les connexions directes à l'API Anthropic et à [Claude Platform on AWS](/docs/fr/claude-platform-on-aws), ainsi que pour les réponses en streaming sur les connexions de [passerelle](/docs/fr/gateways) atteintes via `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL` ; avant la v2.1.222, il ne s'exécutait pas sur ces connexions de passerelle, de sorte que le watchdog au niveau des événements pouvait y signaler un blocage même lorsque des pings keep-alive arrivaient. Pour les délais d'expiration et la façon dont les minuteurs interagissent, consultez [Watchdogs d'inactivité du streaming](/docs/fr/network-config#streaming-idle-watchdogs) |

426| `CLAUDE_ENV_FILE` | Chemin d'accès à un script shell dont le contenu Claude Code exécute avant chaque commande Bash dans le même processus shell, afin que les exports du fichier soient visibles à la commande. Utilisez pour persister l'activation virtualenv ou conda entre les commandes. Également rempli dynamiquement par les crochets [SessionStart](/docs/fr/hooks#persist-environment-variables), [Setup](/docs/fr/hooks#setup), [CwdChanged](/docs/fr/hooks#cwdchanged) et [FileChanged](/docs/fr/hooks#filechanged) |426| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Définissez sur `1` pour activer le watchdog d'inactivité du streaming au niveau des octets sur les réponses Amazon Bedrock `vnd.amazon.eventstream`, ce qui active également le [délai du premier octet](/docs/fr/network-config#streaming-idle-watchdogs) sur les requêtes de streaming Bedrock. Désactivé par défaut. Configurez le délai d'expiration avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

427| `CLAUDE_JOB_DIR` | Défini par Claude Code dans chaque [session d'arrière-plan](/docs/fr/agent-view) au répertoire `~/.claude/jobs/<id>` de cette session. Les commandes shell que la session exécute l'héritent. Écrivez les fichiers de travail temporaire à [`$CLAUDE_JOB_DIR/tmp`](/docs/fr/agent-view#where-state-is-stored). Les appels `Write` et `Edit` de Claude là ne demandent pas la permission, et le répertoire est supprimé lorsque la session est supprimée |427| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Définissez sur `0` pour forcer la désactivation du watchdog d'inactivité du streaming au niveau des événements, ou sur `1` pour forcer son activation. Lorsque la variable n'est pas définie, le watchdog est activé par défaut pour tous les fournisseurs. Avant la v2.1.196, la valeur par défaut en l'absence de définition était contrôlée par le serveur sur l'API Anthropic directe et désactivée sur les autres fournisseurs. Configurez le délai d'expiration avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` ; pour les autres minuteurs de blocage qui s'exécutent en parallèle de celui-ci, consultez [Watchdogs d'inactivité du streaming](/docs/fr/network-config#streaming-idle-watchdogs) |

428| `CLAUDE_PID` | Claude Code définit ceci à son propre ID de processus dans les sous-processus qu'il génère : les commandes de l'outil Bash et PowerShell et les commandes hook. Sur Linux, l'intégration shell de l'outil Bash l'utilise pour refuser un modèle `pkill` qui correspondrait au processus Claude Code lui-même ; voir [la référence d'erreur](/docs/fr/errors#pkill-pattern-matches-the-claude-code-process). Lisez-le à partir de vos propres scripts pour identifier ou signaler délibérément le processus Claude Code parent. Nécessite Claude Code v2.1.214 ou ultérieur |428| `CLAUDE_ENV_FILE` | Chemin vers un script shell dont Claude Code exécute le contenu avant chaque commande Bash dans le même processus shell, de sorte que les exports du fichier sont visibles par la commande. Utilisez-la pour conserver l'activation de virtualenv ou de conda d'une commande à l'autre. Également renseignée dynamiquement par les hooks [SessionStart](/docs/fr/hooks#persist-environment-variables), [Setup](/docs/fr/hooks#setup), [CwdChanged](/docs/fr/hooks#cwdchanged) et [FileChanged](/docs/fr/hooks#filechanged) |

429| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Préfixe pour les noms de session [Remote Control](/docs/fr/remote-control) générés automatiquement lorsqu'aucun nom explicite n'est fourni. Par défaut, le nom d'hôte de votre machine, produisant des noms comme `myhost-graceful-unicorn`. Le drapeau CLI `--remote-control-session-name-prefix` définit la même valeur pour une seule invocation |429| `CLAUDE_JOB_DIR` | Définie par Claude Code dans chaque [session en arrière-plan](/docs/fr/agent-view) sur le répertoire `~/.claude/jobs/<id>` de cette session. Les commandes shell exécutées par la session en héritent. Écrivez les fichiers temporaires dans [`$CLAUDE_JOB_DIR/tmp`](/docs/fr/agent-view#where-state-is-stored). Les appels `Write` et `Edit` de Claude à cet emplacement ne demandent pas de permission, et le répertoire est supprimé lorsque la session est supprimée |

430| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Délai en millisecondes pour le premier octet de réponse d'une requête en continu, sur les connexions où le [délai du premier octet](/docs/fr/network-config#streaming-idle-watchdogs) s'exécute. Pour la façon dont Claude Code le serre, le temps supplémentaire qu'il ajoute pour les grands corps de requête et la façon dont il choisit le délai lorsque vous le laissez non défini, voir [Pas de réponse de l'API](/docs/fr/errors#no-response-from-api). Nécessite Claude Code v2.1.242 ou ultérieur |430| `CLAUDE_PID` | Claude Code la définit sur son propre ID de processus dans les sous-processus qu'il lance : les commandes des outils Bash et PowerShell et les commandes de hook. Sous Linux, l'intégration shell de l'outil Bash l'utilise pour refuser un motif `pkill` qui correspondrait au processus Claude Code lui-même ; consultez [la référence des erreurs](/docs/fr/errors#pkill-pattern-matches-the-claude-code-process). Lisez-la depuis vos propres scripts pour identifier ou signaler délibérément le processus Claude Code parent. Nécessite Claude Code v2.1.214 ou ultérieur |

431| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Délai d'expiration en millisecondes avant que les chiens de garde d'inactivité de flux au niveau des événements et des octets ferment une connexion bloquée. Lorsque vous définissez cette variable explicitement, le minimum est `300000` (5 minutes) ; les valeurs inférieures sont silencieusement serrées pour absorber les pauses de réflexion étendue et la mise en mémoire tampon du proxy, et le chien de garde au niveau des octets limite la valeur à 30 minutes. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` a la priorité sur cette variable pour le chien de garde au niveau des octets. Pour les valeurs par défaut non définies par chien de garde, voir [Chiens de garde d'inactivité de flux](/docs/fr/network-config#streaming-idle-watchdogs) |431| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Préfixe des noms de session [Remote Control](/docs/fr/remote-control) générés automatiquement lorsqu'aucun nom explicite n'est fourni. Par défaut, le nom d'hôte de votre machine, ce qui produit des noms comme `myhost-graceful-unicorn`. Le flag CLI `--remote-control-session-name-prefix` définit la même valeur pour une seule invocation |

432| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Supprimé dans v2.1.260 et maintenant un no-op. Auparavant, limitait combien de temps une [commande shell d'arrière-plan](/docs/fr/interactive-mode#background-bash-commands) qu'un [sous-agent](/docs/fr/sub-agents) a démarrée pouvait s'exécuter, en millisecondes, avec une valeur par défaut de 60 minutes. Voir [les règles de durée de vie de la commande d'arrière-plan](/docs/fr/tools-reference#background-commands) |432| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Délai en millisecondes pour le premier octet de réponse d'une requête de streaming, sur les connexions où le [délai du premier octet](/docs/fr/network-config#streaming-idle-watchdogs) s'applique. Pour savoir comment Claude Code le borne, le temps supplémentaire qu'il ajoute pour les corps de requête volumineux et comment il choisit le délai lorsque vous ne définissez pas cette variable, consultez [No response from API](/docs/fr/errors#no-response-from-api). Nécessite Claude Code v2.1.242 ou ultérieur |

433| `DEBUG` | Définissez sur `1` pour activer le mode débogage, équivalent au lancement avec [`--debug`](/docs/fr/cli-reference#cli-flags). Les journaux de débogage sont écrits dans `~/.claude/debug/<session-id>.txt`, ou dans le chemin défini par `CLAUDE_CODE_DEBUG_LOGS_DIR`. Seules les valeurs véridiques `1`, `true`, `yes` et `on` activent le mode débogage, afin que les modèles d'espace de noms comme `DEBUG=express:*` définis pour d'autres outils ne le déclenchent pas |433| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Délai d'expiration en millisecondes avant que les watchdogs d'inactivité du streaming au niveau des événements et des octets ne ferment une connexion bloquée. Lorsque vous définissez explicitement cette variable, le minimum est `300000` (5 minutes) ; les valeurs inférieures sont silencieusement relevées pour absorber les longues pauses de réflexion étendue et la mise en mémoire tampon du proxy, et le watchdog au niveau des octets plafonne la valeur à 30 minutes. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` a priorité sur cette variable pour le watchdog au niveau des octets. Pour les valeurs par défaut de chaque watchdog en l'absence de définition, consultez [Watchdogs d'inactivité du streaming](/docs/fr/network-config#streaming-idle-watchdogs) |

434| `DISABLE_AUTOUPDATER` | Définissez sur `1` pour désactiver les mises à jour automatiques d'arrière-plan. La commande manuelle `claude update` fonctionne toujours. Utilisez `DISABLE_UPDATES` pour bloquer les deux |434| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Supprimée dans la v2.1.260 et désormais sans effet. Limitait auparavant la durée d'exécution, en millisecondes, d'une [commande shell en arrière-plan](/docs/fr/interactive-mode#background-bash-commands) lancée par un [sous-agent](/docs/fr/sub-agents), avec une valeur par défaut de 60 minutes. Consultez [les règles de durée de vie des commandes en arrière-plan](/docs/fr/tools-reference#background-commands) |

435| `DISABLE_AUTO_COMPACT` | Définissez sur `1` pour désactiver la compaction automatique lorsque vous approchez de la limite de contexte. La commande manuelle `/compact` reste disponible. Utilisez lorsque vous souhaitez un contrôle explicite sur quand la compaction se produit. Remplace le paramètre [`autoCompactEnabled`](/docs/fr/settings-reference#autocompactenabled) |435| `DEBUG` | Définissez sur `1` pour activer le mode débogage, équivalent à un lancement avec [`--debug`](/docs/fr/cli-reference#cli-flags). Les logs de débogage sont écrits dans `~/.claude/debug/<session-id>.txt`, ou dans le chemin défini par `CLAUDE_CODE_DEBUG_LOGS_DIR`. Seules les valeurs vraies `1`, `true`, `yes` et `on` activent le mode débogage, de sorte que les motifs d'espace de noms comme `DEBUG=express:*` définis pour d'autres outils ne le déclenchent pas |

436| `DISABLE_COMPACT` | Définissez sur `1` pour désactiver toute la compaction : à la fois la compaction automatique et la commande manuelle `/compact` |436| `DISABLE_AUTOUPDATER` | Définissez sur `1` pour désactiver les mises à jour automatiques en arrière-plan. La commande manuelle `claude update` fonctionne toujours. Utilisez `DISABLE_UPDATES` pour bloquer les deux |

437| `DISABLE_AUTO_COMPACT` | Définissez sur `1` pour désactiver la compaction automatique à l'approche de la limite de contexte. La commande manuelle `/compact` reste disponible. Utilisez-la lorsque vous souhaitez contrôler explicitement le moment où la compaction a lieu. Remplace le paramètre [`autoCompactEnabled`](/docs/fr/settings-reference#autocompactenabled) |

438| `DISABLE_COMPACT` | Définissez sur `1` pour désactiver toute compaction : à la fois la compaction automatique et la commande manuelle `/compact` |

437| `DISABLE_COST_WARNINGS` | Définissez sur `1` pour désactiver les messages d'avertissement de coût |439| `DISABLE_COST_WARNINGS` | Définissez sur `1` pour désactiver les messages d'avertissement de coût |

438| `DISABLE_DOCTOR_COMMAND` | Définissez sur `1` pour masquer la compétence de vérification de configuration [`/doctor`](/docs/fr/commands#all-commands) et son alias `/checkup`. Utile pour les déploiements gérés où les utilisateurs ne doivent pas exécuter les diagnostics de configuration à partir d'une session. N'affecte pas la commande de terminal `claude doctor`. Avant v2.1.205, cette variable masquait l'écran de diagnostics `/doctor` |440| `DISABLE_DOCTOR_COMMAND` | Définissez sur `1` pour masquer le skill de vérification de la configuration [`/doctor`](/docs/fr/commands#all-commands) et son alias `/checkup`. Utile pour les déploiements gérés où les utilisateurs ne doivent pas exécuter de diagnostics de configuration depuis une session. N'affecte pas la commande de terminal `claude doctor`. Avant la v2.1.205, cette variable masquait la commande d'écran de diagnostic `/doctor` |

439| `DISABLE_ERROR_REPORTING` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour refuser la signalisation des erreurs. **Définir sur `0` ou `false` refuse toujours**, contrairement à la plupart des variables activées/désactivées ; supprimez la variable pour réactiver la signalisation des erreurs |441| `DISABLE_ERROR_REPORTING` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour désactiver le signalement des erreurs. **La définir sur `0` ou `false` le désactive quand même**, contrairement à la plupart des variables d'activation/désactivation ; supprimez la variable pour réactiver le signalement des erreurs |

440| `DISABLE_EXTRA_USAGE_COMMAND` | Définissez sur `1` pour masquer la commande `/usage-credits` qui permet aux utilisateurs d'acheter une utilisation supplémentaire au-delà des limites de débit |442| `DISABLE_EXTRA_USAGE_COMMAND` | Définissez sur `1` pour masquer la commande `/usage-credits` qui permet aux utilisateurs d'acheter une utilisation supplémentaire au-delà des limites de débit |

441| `DISABLE_FEEDBACK_COMMAND` | Définissez sur `1` pour désactiver la commande `/feedback` et les [commentaires rédigés par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior). Désactive également `/bug` et `/share`, qui signalent via le même chemin ; avant v2.1.212, c'étaient des alias de `/feedback`, afin que la commande soit désactivée sous chaque nom. Le nom plus ancien `DISABLE_BUG_COMMAND` est également accepté |443| `DISABLE_FEEDBACK_COMMAND` | Définissez sur `1` pour désactiver la commande `/feedback` et les [commentaires rédigés par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior). Désactive également `/bug` et `/share`, qui effectuent leurs signalements par le même chemin ; avant la v2.1.212, il s'agissait d'alias de `/feedback`, de sorte que la commande était désactivée sous tous ses noms. L'ancien nom `DISABLE_BUG_COMMAND` est également accepté |

442| `DISABLE_GROWTHBOOK` | Définissez sur `1` ou `true` pour désactiver la récupération des drapeaux de fonctionnalité GrowthBook et utiliser les valeurs par défaut du code pour chaque drapeau. Cela rend [Remote Control](/docs/fr/remote-control#requirements) et les autres [fonctionnalités qui nécessitent la récupération des drapeaux de fonctionnalité](#features-that-need-feature-flag-fetching) indisponibles. Définir sur `0` ou `false` laisse la récupération activée. La journalisation des événements de télémétrie reste activée sauf si `DISABLE_TELEMETRY` est également défini |444| `DISABLE_GROWTHBOOK` | Définissez sur `1` ou `true` pour désactiver la récupération des feature flags GrowthBook et utiliser les valeurs par défaut du code pour chaque flag. Cela rend indisponibles [Remote Control](/docs/fr/remote-control#requirements) et les autres [fonctionnalités qui nécessitent la récupération des feature flags](#features-that-need-feature-flag-fetching). La définir sur `0` ou `false` laisse la récupération activée. La journalisation des événements de télémétrie reste activée, sauf si `DISABLE_TELEMETRY` est également défini |

443| `DISABLE_INSTALLATION_CHECKS` | Définissez sur `1` pour désactiver les avertissements d'installation. Utilisez uniquement lorsque vous gérez manuellement l'emplacement d'installation, car cela peut masquer les problèmes avec les installations standard |445| `DISABLE_INSTALLATION_CHECKS` | Définissez sur `1` pour désactiver les avertissements d'installation. À utiliser uniquement lorsque vous gérez manuellement l'emplacement d'installation, car cela peut masquer des problèmes avec les installations standard |

444| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Définissez sur `1` pour masquer la commande `/install-github-app`. Déjà masquée lors de l'utilisation de fournisseurs tiers (Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry) |446| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Définissez sur `1` pour masquer la commande `/install-github-app`. Déjà masquée lors de l'utilisation de fournisseurs tiers (Amazon Bedrock, l'Agent Platform de Google Cloud ou Microsoft Foundry) |

445| `DISABLE_INTERLEAVED_THINKING` | Définissez sur `1` pour empêcher l'envoi de l'en-tête bêta de réflexion entrelacée. Utile lorsque votre passerelle LLM ou votre fournisseur ne supporte pas la [réflexion entrelacée](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |447| `DISABLE_INTERLEAVED_THINKING` | Définissez sur `1` pour empêcher l'envoi de l'en-tête bêta interleaved-thinking. Utile lorsque votre passerelle LLM ou votre fournisseur ne prend pas en charge la [réflexion entrelacée](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

446| `DISABLE_LOGIN_COMMAND` | Définissez sur `1` pour masquer la commande `/login`. Utile lorsque l'authentification est gérée en externe via des clés API ou `apiKeyHelper` |448| `DISABLE_LOGIN_COMMAND` | Définissez sur `1` pour masquer la commande `/login`. Utile lorsque l'authentification est gérée en externe via des clés API ou `apiKeyHelper` |

447| `DISABLE_LOGOUT_COMMAND` | Définissez sur `1` pour masquer la commande `/logout` |449| `DISABLE_LOGOUT_COMMAND` | Définissez sur `1` pour masquer la commande `/logout` |

448| `DISABLE_PROMPT_CACHING` | Définissez sur `1` pour désactiver la [mise en cache des invites](/docs/fr/prompt-caching#disable-prompt-caching) pour tous les modèles (a la priorité sur les paramètres par modèle) |450| `DISABLE_PROMPT_CACHING` | Définissez sur `1` pour désactiver le [prompt caching](/docs/fr/prompt-caching#disable-prompt-caching) pour tous les modèles (a priorité sur les paramètres par modèle) |

449| `DISABLE_PROMPT_CACHING_FABLE` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Fable |451| `DISABLE_PROMPT_CACHING_FABLE` | Définissez sur `1` pour désactiver le prompt caching pour les modèles Fable |

450| `DISABLE_PROMPT_CACHING_HAIKU` | Définissez sur `1` pour désactiver la mise en cache des invites pour le [modèle Haiku par défaut](/docs/fr/prompt-caching#disable-prompt-caching), où qu'il s'exécute |452| `DISABLE_PROMPT_CACHING_HAIKU` | Définissez sur `1` pour désactiver le prompt caching pour le [modèle Haiku par défaut](/docs/fr/prompt-caching#disable-prompt-caching), où qu'il s'exécute |

451| `DISABLE_PROMPT_CACHING_OPUS` | Définissez sur `1` pour désactiver la mise en cache des invites pour le [modèle Opus par défaut](/docs/fr/prompt-caching#disable-prompt-caching) |453| `DISABLE_PROMPT_CACHING_OPUS` | Définissez sur `1` pour désactiver le prompt caching pour le [modèle Opus par défaut](/docs/fr/prompt-caching#disable-prompt-caching) |

452| `DISABLE_PROMPT_CACHING_SONNET` | Définissez sur `1` pour désactiver la mise en cache des invites pour le [modèle Sonnet par défaut](/docs/fr/prompt-caching#disable-prompt-caching) |454| `DISABLE_PROMPT_CACHING_SONNET` | Définissez sur `1` pour désactiver le prompt caching pour le [modèle Sonnet par défaut](/docs/fr/prompt-caching#disable-prompt-caching) |

453| `DISABLE_TELEMETRY` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour refuser la télémétrie. **Définir sur `0` ou `false` refuse toujours**, contrairement à la plupart des variables activées/désactivées ; supprimez la variable pour réactiver la télémétrie. Les événements de télémétrie n'incluent pas les données utilisateur comme le code, les chemins de fichiers ou les commandes Bash. Désactive également la [récupération des drapeaux de fonctionnalité](#features-that-need-feature-flag-fetching). Voir [Désactiver la télémétrie pour votre organisation](/docs/fr/managed-settings#turn-telemetry-off-for-your-organization) |455| `DISABLE_TELEMETRY` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour désactiver la télémétrie. **La définir sur `0` ou `false` la désactive quand même**, contrairement à la plupart des variables d'activation/désactivation ; supprimez la variable pour réactiver la télémétrie. Les événements de télémétrie n'incluent pas de données utilisateur comme le code, les chemins de fichiers ou les commandes Bash. Désactive également la [récupération des feature flags](#features-that-need-feature-flag-fetching). Consultez [Désactiver la télémétrie pour votre organisation](/docs/fr/managed-settings#turn-telemetry-off-for-your-organization) |

454| `DISABLE_UPDATES` | Définissez sur `1` pour bloquer toutes les mises à jour, y compris la commande manuelle `claude update` et `claude install`. Plus strict que `DISABLE_AUTOUPDATER`. Utilisez lorsque vous distribuez Claude Code via vos propres canaux et que les utilisateurs ne doivent pas se mettre à jour eux-mêmes |456| `DISABLE_UPDATES` | Définissez sur `1` pour bloquer toutes les mises à jour, y compris les commandes manuelles `claude update` et `claude install`. Plus strict que `DISABLE_AUTOUPDATER`. À utiliser lorsque vous distribuez Claude Code via vos propres canaux et que les utilisateurs ne doivent pas effectuer eux-mêmes les mises à jour |

455| `DISABLE_UPGRADE_COMMAND` | Définissez sur `1` pour masquer la commande `/upgrade` |457| `DISABLE_UPGRADE_COMMAND` | Définissez sur `1` pour masquer la commande `/upgrade` |

456| `DO_NOT_TRACK` | Définissez sur `1` pour refuser la télémétrie, avec le même effet que `DISABLE_TELEMETRY`, y compris sur la [récupération des drapeaux de fonctionnalité](#features-that-need-feature-flag-fetching). Claude Code lit cette variable en tant que booléen standard, afin que `0` laisse la télémétrie activée, et l'honore en tant que convention inter-outils reconnue par de nombreux CLI de développeur |458| `DO_NOT_TRACK` | Définissez sur `1` pour désactiver la télémétrie, avec le même effet que `DISABLE_TELEMETRY`, y compris sur la [récupération des feature flags](#features-that-need-feature-flag-fetching). Claude Code lit cette variable comme un booléen standard, donc `0` laisse la télémétrie activée, et la respecte en tant que convention inter-outils reconnue par de nombreuses CLI de développement |

457| `ENABLE_BETA_TRACING_DETAILED` | Définissez sur `1`, avec `BETA_TRACING_ENDPOINT`, pour activer le [traçage bêta détaillé](/docs/fr/monitoring-usage#traces-beta), qui ajoute des attributs de span porteurs de contenu et le span `claude_code.hook`. Les sessions CLI interactives nécessitent également que votre organisation soit sur la liste blanche pour la bêta. Les deux variables sont ignorées dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) |459| `ENABLE_BETA_TRACING_DETAILED` | Définissez sur `1`, avec `BETA_TRACING_ENDPOINT`, pour activer le [traçage bêta détaillé](/docs/fr/monitoring-usage#traces-beta), qui ajoute des attributs de span porteurs de contenu et le span `claude_code.hook`. Les sessions CLI interactives nécessitent également que votre organisation figure sur la liste d'autorisation de la bêta. Les deux variables sont ignorées dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env) |

458| `ENABLE_CLAUDEAI_MCP_SERVERS` | Définissez sur `false` pour empêcher Claude Code de récupérer les [serveurs MCP claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai). Activé par défaut pour les utilisateurs connectés. Pour désactiver par projet ou par organisation, définissez [`disableClaudeAiConnectors`](/docs/fr/settings-reference#disableclaudeaiconnectors) dans les paramètres à la place |460| `ENABLE_CLAUDEAI_MCP_SERVERS` | Définissez sur `false` pour empêcher Claude Code de récupérer les [serveurs MCP claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai). Activé par défaut pour les utilisateurs connectés. Pour désactiver par projet ou par organisation, définissez plutôt [`disableClaudeAiConnectors`](/docs/fr/settings-reference#disableclaudeaiconnectors) dans les paramètres |

459| `ENABLE_PROMPT_CACHING_1H` | Définissez sur `1` pour demander une [TTL du cache d'invite](/docs/fr/prompt-caching#cache-lifetime) d'une heure au lieu des 5 minutes par défaut. Destiné aux utilisateurs de clé API, [Amazon Bedrock](/docs/fr/amazon-bedrock), [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai), [Microsoft Foundry](/docs/fr/microsoft-foundry) et [Claude Platform on AWS](/docs/fr/claude-platform-on-aws). Les utilisateurs d'abonnement dans l'utilisation incluse reçoivent la TTL d'une heure automatiquement sur la [conversation principale](/docs/fr/prompt-caching#which-ttl-each-request-gets). Les utilisateurs d'abonnement tirant sur les [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) peuvent le définir pour conserver la TTL d'une heure. Les écritures de cache d'une heure sont facturées à un taux plus élevé. Pour choisir la TTL par compartiment de requête à la place, utilisez `CLAUDE_CODE_PROMPT_CACHE_TTL` et `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, qui ont la priorité sur cette variable |461| `ENABLE_PROMPT_CACHING_1H` | Définissez sur `1` pour demander un [TTL de cache de prompt](/docs/fr/prompt-caching#cache-lifetime) d'1 heure au lieu des 5 minutes par défaut. Destiné aux utilisateurs de clé API, d'[Amazon Bedrock](/docs/fr/amazon-bedrock), de l'[Agent Platform de Google Cloud](/docs/fr/google-vertex-ai), de [Microsoft Foundry](/docs/fr/microsoft-foundry) et de [Claude Platform on AWS](/docs/fr/claude-platform-on-aws). Les utilisateurs d'un abonnement dans les limites de l'utilisation incluse bénéficient automatiquement du TTL d'1 heure sur la [conversation principale](/docs/fr/prompt-caching#which-ttl-each-request-gets). Les utilisateurs d'un abonnement qui puisent dans leurs [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) peuvent la définir pour conserver le TTL d'1 heure. Les écritures de cache d'1 heure sont facturées à un tarif plus élevé. Pour choisir plutôt le TTL par catégorie de requêtes, utilisez `CLAUDE_CODE_PROMPT_CACHE_TTL` et `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, qui ont priorité sur cette variable |

460| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Déprécié. Utilisez `ENABLE_PROMPT_CACHING_1H` à la place |462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Dépréciée. Utilisez plutôt `ENABLE_PROMPT_CACHING_1H` |

461| `ENABLE_TOOL_SEARCH` | Contrôle la [recherche d'outils MCP](/docs/fr/mcp#scale-with-mcp-tool-search). Non défini, Claude Code diffère tous les outils MCP par défaut. Il les charge toujours en amont sur les modèles Google Cloud's Agent Platform antérieurs à la génération Claude 4.5, sur un déploiement Microsoft Foundry hébergé sur Azure et lorsque `ANTHROPIC_BASE_URL` pointe vers un hôte non-propriétaire. `true` diffère toujours et envoie l'en-tête bêta, sauf sur ces mêmes modèles Agent Platform et déploiements Microsoft Foundry ; les requêtes échouent sur les proxies qui ne supportent pas `tool_reference`. `auto` charge en amont lorsque les définitions d'outils tiennent dans 10 % du contexte. `auto:N` définit un seuil personnalisé, comme `auto:5` pour 5 %. `false` charge tous les outils en amont. Une valeur que vous définissez vous-même est ignorée lorsque `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` est défini. Avant v2.1.221, Claude Code désactivait la recherche d'outils pour tous les modèles sur Google Cloud's Agent Platform sauf si vous définissiez cette variable sur `true` |463| `ENABLE_TOOL_SEARCH` | Contrôle [MCP Tool Search](/docs/fr/mcp#scale-with-mcp-tool-search). Lorsque la variable n'est pas définie, Claude Code diffère par défaut tous les outils MCP. Il les charge néanmoins dès le départ sur les modèles de l'Agent Platform de Google Cloud antérieurs à la génération Claude 4.5, sur un déploiement Microsoft Foundry hébergé sur Azure, et lorsque `ANTHROPIC_BASE_URL` pointe vers un hôte non first-party. `true` diffère toujours et envoie l'en-tête bêta, sauf sur ces mêmes modèles Agent Platform et déploiements Microsoft Foundry ; les requêtes échouent sur les proxys qui ne prennent pas en charge `tool_reference`. `auto` charge dès le départ lorsque les définitions d'outils tiennent dans 10 % du contexte. `auto:N` définit un seuil personnalisé, comme `auto:5` pour 5 %. `false` charge tous les outils dès le départ. Une valeur que vous définissez vous-même est ignorée lorsque `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` est défini. Avant la v2.1.221, Claude Code désactivait la recherche d'outils pour tous les modèles sur l'Agent Platform de Google Cloud, sauf si vous définissiez cette variable sur `true` |

462| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour faire en sorte que Claude Code arrête de réessayer sur les erreurs de surcharge répétées pour chaque modèle lorsqu'aucun modèle de secours n'est configuré. **Définir sur `0` ou `false` active toujours ceci**, contrairement à la plupart des variables activées/désactivées ; supprimez la variable pour restaurer le comportement de nouvelle tentative par défaut. Sans cela, Claude Code arrête de réessayer de cette façon sur les modèles qu'il reconnaît comme des modèles Opus, Fable ou Mythos lorsque vous vous authentifiez avec une clé API ou un [fournisseur tiers](/docs/fr/third-party-integrations) plutôt qu'un abonnement Claude. Sur Claude Code v2.1.160 ou ultérieur, Claude Code bascule vers votre [chaîne de modèle de secours](/docs/fr/model-config#fallback-model-chains) configurée sur les erreurs de surcharge répétées pour n'importe quel modèle principal, si bien que cette variable n'affecte pas le basculement vers un modèle de secours |464| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour que Claude Code cesse de réessayer en cas d'erreurs de surcharge répétées pour tous les modèles lorsqu'aucun modèle de secours n'est configuré. **La définir sur `0` ou `false` l'active quand même**, contrairement à la plupart des variables d'activation/désactivation ; supprimez la variable pour rétablir le comportement par défaut des nouvelles tentatives. Sans elle, Claude Code cesse de réessayer de cette façon sur les modèles qu'il reconnaît comme des modèles Opus, Fable ou Mythos lorsque vous vous authentifiez avec une clé API ou un [fournisseur tiers](/docs/fr/third-party-integrations) plutôt qu'avec un abonnement Claude. Sur Claude Code v2.1.160 ou ultérieur, Claude Code bascule sur votre [chaîne de modèles de secours](/docs/fr/model-config#fallback-model-chains) configurée en cas d'erreurs de surcharge répétées pour tout modèle principal, de sorte que cette variable n'affecte pas le basculement vers un modèle de secours |

463| `FORCE_AUTOUPDATE_PLUGINS` | Définissez sur `1` pour forcer les mises à jour automatiques des plugins même lorsque le mise à jour automatique principale est désactivée via `DISABLE_AUTOUPDATER` |465| `FORCE_AUTOUPDATE_PLUGINS` | Définissez sur `1` pour forcer les mises à jour automatiques des plugins même lorsque le programme de mise à jour automatique principal est désactivé via `DISABLE_AUTOUPDATER` |

464| `FORCE_HYPERLINK` | Définissez sur `1` pour activer les hyperliens OSC 8 cliquables lorsque votre terminal les supporte mais n'est pas détecté automatiquement, ou `0` pour les désactiver. Lorsqu'il n'est pas défini, Claude Code active les hyperliens uniquement lorsqu'il détecte le support du terminal. Claude Code analyse cette valeur en tant que nombre, pas booléen, afin qu'une valeur comme `false`, `no` ou `off` active les hyperliens plutôt que de les désactiver. Le [badge PR ou merge request](/docs/fr/interactive-mode#pr-review-status) de pied de page se rend en tant qu'hyperlien même lorsque Claude Code ne peut pas détecter le support du terminal, par exemple sur SSH. Définissez `0` pour afficher le badge en tant que texte simple |466| `FORCE_HYPERLINK` | Définissez sur `1` pour activer les hyperliens OSC 8 cliquables lorsque votre terminal les prend en charge mais n'est pas détecté automatiquement, ou sur `0` pour les désactiver. Lorsque la variable n'est pas définie, Claude Code n'active les hyperliens que lorsqu'il détecte leur prise en charge par le terminal. Claude Code analyse cette valeur comme un nombre et non comme un booléen, de sorte qu'une valeur comme `false`, `no` ou `off` active les hyperliens au lieu de les désactiver. Le [badge de PR ou de merge request](/docs/fr/interactive-mode#pr-review-status) du pied de page s'affiche sous forme d'hyperlien même lorsque Claude Code ne peut pas détecter la prise en charge par le terminal, par exemple via SSH. Définissez `0` pour afficher le badge en texte brut |

465| `FORCE_PROMPT_CACHING_5M` | Définissez sur `1` pour forcer la TTL du cache d'invite de 5 minutes même lorsque la TTL d'une heure s'appliquerait autrement. Remplace `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` et les paramètres `promptCacheTtl` et `subagentPromptCacheTtl` |467| `FORCE_PROMPT_CACHING_5M` | Définissez sur `1` pour forcer le TTL de cache de prompt de 5 minutes même lorsque le TTL d'1 heure s'appliquerait autrement. Remplace `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` et les paramètres `promptCacheTtl` et `subagentPromptCacheTtl` |

466| `HTTP_PROXY` | Spécifiez le serveur proxy HTTP pour les connexions réseau |468| `HTTP_PROXY` | Spécifie le serveur proxy HTTP pour les connexions réseau |

467| `HTTPS_PROXY` | Spécifiez le serveur proxy HTTPS pour les connexions réseau |469| `HTTPS_PROXY` | Spécifie le serveur proxy HTTPS pour les connexions réseau |

468| `IS_DEMO` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour activer le mode démo : masque votre email et le nom de votre organisation à partir de l'en-tête et de la sortie `/status`, et ignore l'intégration. **Définir sur `0` ou `false` active toujours le mode démo**, contrairement à la plupart des variables activées/désactivées ; supprimez la variable pour le désactiver. Utile lors du streaming ou de l'enregistrement d'une session |470| `IS_DEMO` | Définissez sur n'importe quelle valeur non vide, comme `1`, pour activer le mode démo : masque votre e-mail et le nom de votre organisation dans l'en-tête et dans la sortie de `/status`, et ignore l'onboarding. **La définir sur `0` ou `false` active quand même le mode démo**, contrairement à la plupart des variables d'activation/désactivation ; supprimez la variable pour le désactiver. Utile lors de la diffusion en streaming ou de l'enregistrement d'une session |

469| `MAX_MCP_OUTPUT_TOKENS` | Nombre maximum de jetons autorisés dans les réponses des outils MCP. Claude Code affiche un avertissement lorsque la sortie dépasse 10 000 jetons. Les outils qui déclarent [`anthropic/maxResultSizeChars`](/docs/fr/mcp#raise-the-limit-for-a-specific-tool) utilisent cette limite de caractères pour le contenu textuel à la place, mais le contenu d'image de ces outils est toujours soumis à cette variable (par défaut : 25000) |471| `MAX_MCP_OUTPUT_TOKENS` | Nombre maximal de tokens autorisés dans les réponses des outils MCP. Claude Code affiche un avertissement lorsque la sortie dépasse 10 000 tokens. Les outils qui déclarent [`anthropic/maxResultSizeChars`](/docs/fr/mcp#raise-the-limit-for-a-specific-tool) utilisent plutôt cette limite de caractères pour le contenu textuel, mais le contenu image de ces outils reste soumis à cette variable (par défaut : 25000) |

470| `MAX_STRUCTURED_OUTPUT_RETRIES` | Nombre de tentatives que Claude Code autorise lorsque la réponse du modèle échoue la validation par rapport au [`--json-schema`](/docs/fr/cli-reference#cli-flags) en mode non interactif avec le drapeau `-p` ; après ce nombre de tentatives échouées sans sortie valide, l'exécution échoue. Le même plafond s'applique lorsque la sortie structurée d'un sous-agent de [flux de travail](/docs/fr/workflows) échoue la validation. Par défaut 5, une première tentative plus quatre tentatives |472| `MAX_STRUCTURED_OUTPUT_RETRIES` | Nombre de tentatives que Claude Code autorise lorsque la réponse du modèle échoue à la validation par rapport au [`--json-schema`](/docs/fr/cli-reference#cli-flags) en mode non interactif avec le flag `-p` ; après ce nombre de tentatives infructueuses sans sortie valide, l'exécution échoue. La même limite s'applique lorsque la sortie structurée d'un sous-agent de [workflow](/docs/fr/workflows) échoue à la validation. Par défaut 5, soit une première tentative plus quatre nouvelles tentatives |

471| `MAX_THINKING_TOKENS` | Budget de jetons fixe pour la [réflexion étendue](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code le limite à un jeton en dessous des jetons de sortie max de la requête et jamais en dessous de 1 024. Voir `CLAUDE_CODE_MAX_OUTPUT_TOKENS` pour la façon dont cette limite est définie. Lorsqu'il n'est pas défini et que la réflexion est activée, les modèles avec [raisonnement adaptatif](/docs/fr/model-config#adjust-effort-level) choisissent leur propre profondeur de réflexion, et les autres modèles utilisent le plafond. Définissez sur `0` pour désactiver la réflexion sur l'API Anthropic, sauf sur Opus 5.5, Sonnet 5.5 et les modèles Fable, qui ne peuvent pas avoir la réflexion désactivée. Sur [les fournisseurs tiers](/docs/fr/third-party-integrations), `0` omet le paramètre `thinking` à la place. Avec la réflexion désactivée sur l'API Anthropic, Claude Code envoie l'effort `high` au lieu d'un niveau plus élevé aux modèles qu'il sait [n'acceptent pas cette combinaison](/docs/fr/errors#effort-isnt-available-with-thinking-turned-off), comme Opus 5. Claude Code ignore les valeurs non nulles sur les modèles de raisonnement adaptatif, sauf sur les modèles où `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` désactive le raisonnement adaptatif |473| `MAX_THINKING_TOKENS` | Budget de tokens fixe pour la [réflexion étendue](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code le plafonne à un token en dessous du nombre maximal de tokens de sortie de la requête, et jamais en dessous de 1 024. Consultez `CLAUDE_CODE_MAX_OUTPUT_TOKENS` pour savoir comment cette limite est définie. Lorsque la variable n'est pas définie et que la réflexion est activée, les modèles dotés du [raisonnement adaptatif](/docs/fr/model-config#adjust-effort-level) choisissent eux-mêmes leur profondeur de réflexion, et les autres modèles utilisent le plafond. Définissez sur `0` pour désactiver la réflexion sur l'API Anthropic, sauf sur Opus 5.5, Sonnet 5.5 et les modèles Fable, dont la réflexion ne peut pas être désactivée. Sur les [fournisseurs tiers](/docs/fr/third-party-integrations), `0` omet plutôt le paramètre `thinking`. Lorsque la réflexion est désactivée sur l'API Anthropic, Claude Code envoie l'effort `high` au lieu d'un niveau supérieur aux modèles dont il sait qu'ils [n'acceptent pas cette combinaison](/docs/fr/errors#effort-isnt-available-with-thinking-turned-off), comme Opus 5. Claude Code ignore les valeurs non nulles sur les modèles à raisonnement adaptatif, sauf sur les modèles où `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` désactive le raisonnement adaptatif |

472| `MCP_CLIENT_SECRET` | Secret client OAuth pour les serveurs MCP qui nécessitent des [identifiants pré-configurés](/docs/fr/mcp#use-pre-configured-oauth-credentials). Évite l'invite interactive lors de l'ajout d'un serveur avec `--client-secret` |474| `MCP_CLIENT_SECRET` | Secret client OAuth pour les serveurs MCP qui nécessitent des [identifiants préconfigurés](/docs/fr/mcp#use-pre-configured-oauth-credentials). Évite la demande interactive lors de l'ajout d'un serveur avec `--client-secret` |

473| `MCP_CONNECTION_NONBLOCKING` | Contrôle si le démarrage attend que les serveurs MCP se connectent avant la première requête. Le démarrage MCP est non bloquant par défaut : les serveurs se connectent en arrière-plan et leurs outils deviennent disponibles au fur et à mesure qu'ils se terminent. Définissez sur `0` pour faire en sorte que Claude Code attende que les serveurs se connectent avant la première requête. Les serveurs configurés avec [`alwaysLoad: true`](/docs/fr/mcp#exempt-a-server-from-deferral) font toujours attendre le démarrage quel que soit le cas, sauf lorsqu'ils sont servis à partir du [cache de découverte](/docs/fr/mcp#server-status-detail), car leurs outils doivent être présents lorsque la première invite est construite. En mode non interactif (`-p`) sans `--input-format stream-json`, Claude Code attend également les serveurs toujours en attente avant le premier tour quel que soit le cas. Lorsque vous transmettez [`--mcp-config`](/docs/fr/cli-reference#cli-flags) explicitement, l'attente a un délai plus long ; voir l'entrée de ce drapeau pour l'exception du serveur en cache |475| `MCP_CONNECTION_NONBLOCKING` | Contrôle si le démarrage attend que les serveurs MCP se connectent avant la première requête. Le démarrage MCP est non bloquant par défaut : les serveurs se connectent en arrière-plan et leurs outils deviennent disponibles à mesure qu'ils terminent. Définissez sur `0` pour que Claude Code attende la connexion des serveurs avant la première requête. Les serveurs configurés avec [`alwaysLoad: true`](/docs/fr/mcp#exempt-a-server-from-deferral) font toujours attendre le démarrage malgré tout, sauf lorsqu'ils sont servis depuis le [cache de découverte](/docs/fr/mcp#server-status-detail), car leurs outils doivent être présents lors de la construction du premier prompt. En mode non interactif (`-p`) sans `--input-format stream-json`, Claude Code attend également les serveurs encore en attente avant le premier tour, quelle que soit cette variable. Lorsque vous passez explicitement [`--mcp-config`](/docs/fr/cli-reference#cli-flags), l'attente a une échéance plus longue ; consultez l'entrée de ce flag pour l'exception concernant les serveurs en cache |

474| `MCP_CONNECT_TIMEOUT_MS` | Combien de temps l'attente MCP de démarrage bloquant attend, en millisecondes, le lot de connexion avant de prendre un instantané de la liste d'outils (par défaut : 5000). S'applique lorsque `MCP_CONNECTION_NONBLOCKING=0` ou pour les serveurs marqués [`alwaysLoad: true`](/docs/fr/mcp#exempt-a-server-from-deferral). Les serveurs toujours en attente au délai continuent de se connecter en arrière-plan. Distinct de `MCP_TIMEOUT`, qui limite la tentative de connexion d'un serveur individuel |476| `MCP_CONNECT_TIMEOUT_MS` | Durée, en millisecondes, pendant laquelle le démarrage MCP bloquant attend le lot de connexions avant de capturer la liste des outils (par défaut : 5000). S'applique lorsque `MCP_CONNECTION_NONBLOCKING=0` ou pour les serveurs marqués [`alwaysLoad: true`](/docs/fr/mcp#exempt-a-server-from-deferral). Les serveurs encore en attente à l'échéance continuent de se connecter en arrière-plan. Distinct de `MCP_TIMEOUT`, qui limite la tentative de connexion d'un serveur individuel |

475| `MCP_DISCOVERY_CACHE` | Active ou désactive le [cache de découverte MCP](/docs/fr/mcp#server-status-detail). Avec le cache activé, un serveur HTTP ou SSE distant que vous avez utilisé auparavant peut afficher le [statut `cached`](/docs/fr/mcp#server-status-detail), et Claude Code le connecte à son premier appel d'outil au lieu du démarrage. Le cache est désactivé par défaut sauf si un déploiement progressif l'a activé pour votre compte. Définissez sur `1` pour l'activer, ou `0` pour le garder désactivé même lorsque le déploiement l'a activé. Avant v2.1.238, le cache était activé par défaut. Le statut `cached` nécessite Claude Code v2.1.221 ou ultérieur |477| `MCP_DISCOVERY_CACHE` | Active ou désactive le [cache de découverte MCP](/docs/fr/mcp#server-status-detail). Lorsque le cache est activé, un serveur HTTP ou SSE distant que vous avez déjà utilisé peut afficher le [statut `cached`](/docs/fr/mcp#server-status-detail), et Claude Code le connecte lors de son premier appel d'outil au lieu du démarrage. Le cache est désactivé par défaut, sauf si un déploiement progressif l'a activé pour votre compte. Définissez sur `1` pour l'activer, ou sur `0` pour le maintenir désactivé même lorsque le déploiement progressif l'a activé. Avant la v2.1.238, le cache était activé par défaut. Le statut `cached` nécessite Claude Code v2.1.221 ou ultérieur |

476| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Âge maximum, en secondes, d'une entrée du [cache de découverte](/docs/fr/mcp#server-status-detail) (par défaut : 14400, ou 4 heures). À un démarrage où l'entrée est plus ancienne que cela, Claude Code la rejette et connecte le serveur au démarrage, comme il le fait avec le cache désactivé. Claude Code limite la valeur à 7 jours. Avant v2.1.238, la valeur par défaut était 86400, ou 24 heures, et Claude Code ne limitait pas la valeur |478| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Âge maximal, en secondes, d'une entrée du [cache de découverte](/docs/fr/mcp#server-status-detail) (par défaut : 14400, soit 4 heures). Lors d'un démarrage où l'entrée est plus ancienne, Claude Code la supprime et connecte le serveur au démarrage, comme lorsque le cache est désactivé. Claude Code plafonne la valeur à 7 jours. Avant la v2.1.238, la valeur par défaut était 86400, soit 24 heures, et Claude Code ne plafonnait pas la valeur |

477| `MCP_DISCOVERY_CACHE_STRIKES` | À un démarrage où une entrée du [cache de découverte](/docs/fr/mcp#server-status-detail) est plus ancienne que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code l'actualise en arrière-plan. Cette variable définit combien d'actualisations d'affilée peuvent échouer avant que Claude Code rejette l'entrée et connecte le serveur au prochain démarrage à la place (par défaut : 1). Augmentez-la si votre connexion réseau s'interrompt occasionnellement, afin qu'une actualisation échouée ne rejette pas l'entrée. Nécessite Claude Code v2.1.238 ou ultérieur |479| `MCP_DISCOVERY_CACHE_STRIKES` | Lors d'un démarrage où une entrée du [cache de découverte](/docs/fr/mcp#server-status-detail) est plus ancienne que `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code l'actualise en arrière-plan. Cette variable définit combien d'actualisations consécutives peuvent échouer avant que Claude Code ne supprime l'entrée et connecte plutôt le serveur au démarrage suivant (par défaut : 1). Augmentez-la si votre connexion réseau est parfois interrompue, afin qu'une seule actualisation échouée ne supprime pas l'entrée. Nécessite Claude Code v2.1.238 ou ultérieur |

478| `MCP_DISCOVERY_CACHE_TTL_S` | Secondes pendant lesquelles Claude Code utilise une entrée du [cache de découverte](/docs/fr/mcp#server-status-detail) sans l'actualiser (par défaut : 900). À un démarrage où l'entrée est plus ancienne que cela, Claude Code l'utilise toujours mais l'actualise en arrière-plan. Une fois que l'entrée est plus ancienne que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code la rejette à la place. Claude Code limite la valeur à `MCP_DISCOVERY_CACHE_MAX_STALE_S`, qui est 4 heures par défaut. Avant v2.1.238, Claude Code ne limitait pas la valeur |480| `MCP_DISCOVERY_CACHE_TTL_S` | Nombre de secondes pendant lesquelles Claude Code utilise une entrée du [cache de découverte](/docs/fr/mcp#server-status-detail) sans l'actualiser (par défaut : 900). Lors d'un démarrage où l'entrée est plus ancienne, Claude Code l'utilise quand même mais l'actualise en arrière-plan. Une fois l'entrée plus ancienne que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code la supprime à la place. Claude Code plafonne la valeur à `MCP_DISCOVERY_CACHE_MAX_STALE_S`, soit 4 heures par défaut. Avant la v2.1.238, Claude Code ne plafonnait pas la valeur |

479| `MCP_OAUTH_CALLBACK_PORT` | Port fixe pour le rappel de redirection OAuth, comme alternative à `--callback-port` lors de l'ajout d'un serveur MCP avec des [identifiants pré-configurés](/docs/fr/mcp#use-pre-configured-oauth-credentials) |481| `MCP_OAUTH_CALLBACK_PORT` | Port fixe pour le callback de redirection OAuth, comme alternative à `--callback-port` lors de l'ajout d'un serveur MCP avec des [identifiants préconfigurés](/docs/fr/mcp#use-pre-configured-oauth-credentials) |

480| `MCP_PROTOCOL_NEGOTIATION` | Sur le [runtime client MCP v2](/docs/fr/mcp#mcp-client-runtimes) uniquement, si Claude Code sonde les serveurs pour la révision du protocole MCP 2026-07-28. Définissez `auto` pour sonder les serveurs HTTP, connecteur claude.ai et stdio ; un serveur qui ne répond pas à la sonde se connecte sur le protocole antérieur à la place, comme les serveurs SSE et WebSocket le font toujours. Définissez `legacy` pour ignorer la sonde pour chaque serveur. Sans la variable, Claude Code sonde les serveurs HTTP, et sonde également les serveurs connecteur claude.ai dans les sessions où il [récupère les drapeaux de fonctionnalité](#features-that-need-feature-flag-fetching). Toute autre valeur est ignorée avec un avertissement dans le journal de débogage. Nécessite Claude Code v2.1.221 ou ultérieur |482| `MCP_PROTOCOL_NEGOTIATION` | Sur le [runtime client MCP v2](/docs/fr/mcp#mcp-client-runtimes) uniquement, détermine si Claude Code sonde les serveurs pour la révision 2026-07-28 du protocole MCP. Définissez `auto` pour sonder les serveurs HTTP, de connecteur claude.ai et stdio, ou `legacy` pour n'en sonder aucun. Lorsque la variable n'est pas définie, Claude Code sonde les serveurs décrits dans [Runtimes client MCP](/docs/fr/mcp#mcp-client-runtimes). Toute autre valeur est ignorée avec un avertissement dans le log de débogage. Nécessite Claude Code v2.1.221 ou ultérieur |

481| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Nombre maximum de serveurs MCP distants (HTTP/SSE) à connecter en parallèle lors du démarrage (par défaut : 20) |483| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Nombre maximal de serveurs MCP distants (HTTP/SSE) à connecter en parallèle au démarrage (par défaut : 20) |

482| `MCP_SDK_GENERATION` | Épinglez quel [runtime client MCP](/docs/fr/mcp#mcp-client-runtimes) ce processus se connecte aux serveurs MCP avec : `v1`, construit sur MCP TypeScript SDK 1.x, ou `v2`, construit sur [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sans la variable, Claude Code utilise v2, à partir des versions énumérées dans cette section. Sur Claude Code v2.1.221 ou ultérieur, le runtime v2 vérifie l'émetteur qu'un serveur MCP OAuth retourne dans sa réponse d'autorisation et échoue la connexion avec une erreur qui commence `Issuer mismatch in authorization response` lorsqu'il ne correspond pas. Le runtime v1 n'exécute pas cette vérification. Si vous définissez une valeur non reconnue, Claude Code l'ignore et écrit un avertissement dans le journal de débogage. Claude Code lit la valeur une fois par processus. Nécessite Claude Code v2.1.218 ou ultérieur |484| `MCP_SDK_GENERATION` | Fixe le [runtime client MCP](/docs/fr/mcp#mcp-client-runtimes) avec lequel ce processus se connecte aux serveurs MCP : `v1`, basé sur le SDK TypeScript MCP 1.x, ou `v2`, basé sur le [SDK TypeScript MCP 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sans la variable, Claude Code utilise v2, à partir des versions indiquées dans cette section. Sur Claude Code v2.1.221 ou ultérieur, le runtime v2 vérifie l'émetteur qu'un serveur OAuth MCP renvoie dans sa réponse d'autorisation et fait échouer la connexion avec une erreur commençant par `Issuer mismatch in authorization response` lorsqu'il ne correspond pas. Le runtime v1 n'effectue pas cette vérification. Si vous définissez une valeur non reconnue, Claude Code l'ignore et écrit un avertissement dans le log de débogage. Claude Code lit la valeur une fois par processus. Nécessite Claude Code v2.1.218 ou ultérieur |

483| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Nombre maximum de serveurs MCP locaux (stdio) à connecter en parallèle lors du démarrage (par défaut : 3) |485| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Nombre maximal de serveurs MCP locaux (stdio) à connecter en parallèle au démarrage (par défaut : 3) |

484| `MCP_TIMEOUT` | Délai d'expiration en millisecondes pour le démarrage du serveur MCP (par défaut : 30000, ou 30 secondes) |486| `MCP_TIMEOUT` | Délai d'expiration en millisecondes pour le démarrage du serveur MCP (par défaut : 30000, soit 30 secondes) |

485| `MCP_TOOL_TIMEOUT` | Délai d'expiration en millisecondes pour l'exécution de l'outil MCP (par défaut : 100000000, environ 28 heures). Pour un serveur HTTP, SSE ou connecteur claude.ai, chaque requête expire également après 60 secondes par défaut ; définissez cette variable, ou le `timeout` par serveur, au-dessus de 60000 pour augmenter cette limite par requête. Une valeur inférieure raccourcit toujours le délai d'expiration global de l'exécution de l'outil mais laisse la limite par requête à 60 secondes. Les serveurs Stdio et WebSocket n'ont pas de minuteur par requête. Un champ `timeout` par serveur dans `.mcp.json` remplace ceci pour ce serveur. Un `timeout` par serveur d'au moins 1000 définit également la fenêtre d'inactivité minimale pour les appels d'outils de ce serveur, afin que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` ne les interrompe jamais plus tôt ; ce plancher nécessite Claude Code v2.1.203 ou ultérieur. Pour la variable env, les valeurs inférieures à 1000 sont limitées à une seconde ; pour le champ par serveur, les valeurs inférieures à 1000 sont ignorées |487| `MCP_TOOL_TIMEOUT` | Délai d'expiration en millisecondes pour l'exécution des outils MCP (par défaut : 100000000, environ 28 heures). Pour un serveur HTTP, SSE ou de connecteur claude.ai, chaque requête expire également après 60 secondes par défaut ; définissez cette variable, ou le `timeout` par serveur, au-dessus de 60000 pour relever cette limite par requête. Une valeur inférieure raccourcit toujours le délai d'expiration global de l'exécution de l'outil, mais laisse la limite par requête à 60 secondes. Les serveurs stdio et WebSocket n'ont pas de minuteur par requête. Un champ `timeout` par serveur dans `.mcp.json` remplace cette valeur pour ce serveur. Un `timeout` par serveur d'au moins 1000 définit également la fenêtre d'inactivité minimale pour les appels d'outils de ce serveur, de sorte que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` ne les interrompt jamais plus tôt ; ce plancher nécessite Claude Code v2.1.203 ou ultérieur. Pour la variable d'environnement, les valeurs inférieures à 1000 sont relevées à une seconde ; pour le champ par serveur, les valeurs inférieures à 1000 sont ignorées |

486| `NO_PROXY` | Liste des domaines et adresses IP auxquels les requêtes seront émises directement, en contournant le proxy |488| `NO_PROXY` | Liste des domaines et adresses IP vers lesquels les requêtes seront émises directement, en contournant le proxy |

487| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Limite standard du SDK OpenTelemetry sur la longueur de la valeur d'attribut. Claude Code limite les attributs de télémétrie porteurs de contenu au plus petit de ceci et de `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, afin que le marqueur de troncature reste dans la limite du SDK. Claude Code lit les variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` et `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` de la même manière, et la plus petite valeur définie s'applique à tous les signaux. Nécessite Claude Code v2.1.214 ou ultérieur. Voir [Surveillance](/docs/fr/monitoring-usage#common-configuration-variables) |489| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Limite standard du SDK OpenTelemetry sur la longueur des valeurs d'attributs. Claude Code plafonne les attributs de télémétrie porteurs de contenu à la plus petite valeur entre celle-ci et `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, afin que le marqueur de troncature reste dans la limite du SDK. Claude Code lit les variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` et `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` de la même façon, et la plus petite valeur définie s'applique à tous les signaux. Nécessite Claude Code v2.1.214 ou ultérieur. Consultez [Surveillance](/docs/fr/monitoring-usage#common-configuration-variables) |

488| `OTEL_LOG_ASSISTANT_RESPONSES` | Définissez sur `1` pour inclure le texte de réponse du modèle sur les événements de journal OpenTelemetry `assistant_response`. Lorsqu'il n'est pas défini, Claude Code utilise la valeur de `OTEL_LOG_USER_PROMPTS` à la place. Définissez sur `0` pour garder les réponses rédactées même lorsque `OTEL_LOG_USER_PROMPTS` est défini. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Nécessite Claude Code v2.1.193 ou ultérieur. Voir [Surveillance](/docs/fr/monitoring-usage#assistant-response-event) |490| `OTEL_LOG_ASSISTANT_RESPONSES` | Définissez sur `1` pour inclure le texte de réponse du modèle dans les événements de log OpenTelemetry `assistant_response`. Lorsque la variable n'est pas définie, Claude Code utilise plutôt la valeur de `OTEL_LOG_USER_PROMPTS`. Définissez sur `0` pour garder les réponses masquées même lorsque `OTEL_LOG_USER_PROMPTS` est défini. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Nécessite Claude Code v2.1.193 ou ultérieur. Consultez [Surveillance](/docs/fr/monitoring-usage#assistant-response-event) |

489| `OTEL_LOG_MANAGED_SETTINGS` | Définissez sur `1` pour ajouter les paramètres gérés rédactés, et un digest SHA-256 des paramètres avant la rédaction, aux événements de journal OpenTelemetry `managed_settings_resolved`. Désactivé par défaut. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés ; une valeur dans les paramètres de projet ou locaux ne l'active pas. Nécessite Claude Code v2.1.274 ou ultérieur. Voir [Surveillance](/docs/fr/monitoring-usage#managed-settings-resolved-event) |491| `OTEL_LOG_MANAGED_SETTINGS` | Définissez sur `1` pour ajouter les paramètres gérés masqués, ainsi qu'un condensé SHA-256 des paramètres avant masquage, aux événements de log OpenTelemetry `managed_settings_resolved`. Désactivé par défaut. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés ; une valeur dans les paramètres de projet ou locaux ne l'active pas. Nécessite Claude Code v2.1.274 ou ultérieur. Consultez [Surveillance](/docs/fr/monitoring-usage#managed-settings-resolved-event) |

490| `OTEL_LOG_RAW_API_BODIES` | Émettez les requêtes et réponses JSON de l'API Anthropic Messages en tant qu'événements de journal `api_request_body` / `api_response_body`. Définissez sur `1` pour les corps en ligne tronqués à la limite de contenu, ou `file:<dir>` pour écrire les corps non tronqués sur le disque et émettre un chemin `body_ref` à la place. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configure la limite de contenu, 60 Ko par défaut. Désactivé par défaut ; les corps incluent l'historique de conversation entier. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Voir [Surveillance](/docs/fr/monitoring-usage#api-request-body-event) |492| `OTEL_LOG_RAW_API_BODIES` | Émet le JSON des requêtes et réponses de l'API Messages d'Anthropic sous forme d'événements de log `api_request_body` / `api_response_body`. Définissez sur `1` pour des corps intégrés tronqués à la limite de contenu, ou sur `file:<dir>` pour écrire les corps non tronqués sur le disque et émettre plutôt un chemin `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configure la limite de contenu, 60 Ko par défaut. Désactivé par défaut ; les corps incluent l'intégralité de l'historique de conversation. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Consultez [Surveillance](/docs/fr/monitoring-usage#api-request-body-event) |

491| `OTEL_LOG_TOOL_CONTENT` | Définissez sur `1` pour inclure le contenu de l'outil dans l'événement de span OpenTelemetry `tool.output`. Les attributs de span portent le contenu de l'outil sous [leurs propres portes](/docs/fr/monitoring-usage#new-context-gates). Nécessite le [traçage](/docs/fr/monitoring-usage#traces-beta). Désactivé par défaut pour protéger les données sensibles. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env), à part les valeurs désactivées que cette section décrit. Voir [Surveillance](/docs/fr/monitoring-usage#tool-output-span-event) |493| `OTEL_LOG_TOOL_CONTENT` | Définissez sur `1` pour inclure le contenu des outils dans l'événement de span OpenTelemetry `tool.output`. Les attributs de span transportent le contenu des outils selon [leurs propres conditions](/docs/fr/monitoring-usage#new-context-gates). Nécessite le [traçage](/docs/fr/monitoring-usage#traces-beta). Désactivé par défaut pour protéger les données sensibles. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. Consultez [Surveillance](/docs/fr/monitoring-usage#tool-output-span-event) |

492| `OTEL_LOG_TOOL_DETAILS` | Définissez sur `1` pour inclure les arguments d'entrée de l'outil, les noms des serveurs MCP, les noms de flux de travail rédigés par l'utilisateur, les chaînes d'erreur brutes sur les défaillances d'outils, la `category` de refus sur les événements `api_refusal`, les noms d'agent, de compétence, de plugin et de serveur MCP réels sur [les métriques de coût et de jetons](/docs/fr/monitoring-usage#cost-counter) et d'autres détails d'outils dans les métriques, traces et journaux OpenTelemetry. Désactivé par défaut pour protéger les informations personnelles identifiables. Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env), à part les valeurs désactivées que cette section décrit. Voir [Surveillance](/docs/fr/monitoring-usage) |494| `OTEL_LOG_TOOL_DETAILS` | Définissez sur `1` pour inclure les arguments d'entrée des outils ; les noms des serveurs MCP ; les noms des workflows créés par l'utilisateur ; les chaînes d'erreur brutes en cas d'échec d'un outil ; la `category` de refus sur les événements `api_refusal` ; les vrais noms des agents, skills, plugins et serveurs MCP sur les [métriques de coût et de tokens](/docs/fr/monitoring-usage#cost-counter) ; et d'autres détails des outils dans les métriques, traces et logs OpenTelemetry. Désactivé par défaut pour protéger les données personnelles. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. Consultez [Surveillance](/docs/fr/monitoring-usage) |

493| `OTEL_LOG_USER_PROMPTS` | Définissez sur `1` pour inclure le texte de l'invite utilisateur dans les traces et journaux OpenTelemetry. Désactivé par défaut (les invites sont rédactées). Définissez-le dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignoré dans [les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env), à part les valeurs désactivées que cette section décrit. Voir [Surveillance](/docs/fr/monitoring-usage) |495| `OTEL_LOG_USER_PROMPTS` | Définissez sur `1` pour inclure le texte des prompts utilisateur dans les traces et logs OpenTelemetry. Désactivé par défaut (les prompts sont masqués). Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. Consultez [Surveillance](/docs/fr/monitoring-usage) |

494| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Définissez sur `false` pour exclure l'UUID du compte des attributs de métriques (par défaut : inclus). Voir [Surveillance](/docs/fr/monitoring-usage) |496| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Définissez sur `false` pour exclure l'UUID du compte des attributs de métriques (par défaut : inclus). Consultez [Surveillance](/docs/fr/monitoring-usage) |

495| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Définissez sur `true` pour inclure le point d'entrée de la session dans les attributs de métriques (par défaut : exclu). Ajouté dans v2.1.152. Voir [Surveillance](/docs/fr/monitoring-usage) |497| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Définissez sur `true` pour inclure le point d'entrée de la session dans les attributs de métriques (par défaut : exclu). Ajoutée dans la v2.1.152. Consultez [Surveillance](/docs/fr/monitoring-usage) |

496| `OTEL_METRICS_INCLUDE_REPOSITORY` | Définissez sur `true` pour étiqueter les métriques et événements OpenTelemetry avec les attributs `vcs.*` identifiant le référentiel de la session (par défaut : exclu). Nécessite Claude Code v2.1.269 ou ultérieur. Voir [Attributs du référentiel](/docs/fr/monitoring-usage#repository-attributes) |498| `OTEL_METRICS_INCLUDE_REPOSITORY` | Définissez sur `true` pour marquer les métriques et événements OpenTelemetry avec des attributs `vcs.*` identifiant le dépôt de la session (par défaut : exclus). Nécessite Claude Code v2.1.269 ou ultérieur. Consultez [Attributs de dépôt](/docs/fr/monitoring-usage#repository-attributes) |

497| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | À partir de v2.1.161, Claude Code attache les clés `OTEL_RESOURCE_ATTRIBUTES` aux étiquettes de point de données de métrique. Définissez sur `false` pour les exclure (par défaut : inclus). Voir [Surveillance](/docs/fr/monitoring-usage#multi-team-organization-support) |499| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Depuis la v2.1.161, Claude Code associe les clés de `OTEL_RESOURCE_ATTRIBUTES` aux libellés des points de données des métriques. Définissez sur `false` pour les exclure (par défaut : incluses). Consultez [Surveillance](/docs/fr/monitoring-usage#multi-team-organization-support) |

498| `OTEL_METRICS_INCLUDE_SESSION_ID` | Définissez sur `false` pour exclure l'ID de session des attributs de métriques (par défaut : inclus). Voir [Surveillance](/docs/fr/monitoring-usage) |500| `OTEL_METRICS_INCLUDE_SESSION_ID` | Définissez sur `false` pour exclure l'ID de session des attributs de métriques (par défaut : inclus). Consultez [Surveillance](/docs/fr/monitoring-usage) |

499| `OTEL_METRICS_INCLUDE_VERSION` | Définissez sur `true` pour inclure la version de Claude Code dans les attributs de métriques (par défaut : exclu). Voir [Surveillance](/docs/fr/monitoring-usage) |501| `OTEL_METRICS_INCLUDE_VERSION` | Définissez sur `true` pour inclure la version de Claude Code dans les attributs de métriques (par défaut : exclue). Consultez [Surveillance](/docs/fr/monitoring-usage) |

500| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Remplacez le budget de caractères pour les métadonnées de compétence affichées à l'[outil Skill](/docs/fr/skills#control-who-invokes-a-skill). Le budget s'adapte dynamiquement à 1 % de la fenêtre de contexte, avec un secours de 8 000 caractères. Nom hérité conservé pour la compatibilité rétroactive |502| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Remplace le budget de caractères pour les métadonnées des skills présentées à l'[outil Skill](/docs/fr/skills#control-who-invokes-a-skill). Le budget s'ajuste dynamiquement à 1 % de la fenêtre de contexte, avec une valeur de secours de 8 000 caractères. Ancien nom conservé pour la rétrocompatibilité |

501| `TASK_MAX_OUTPUT_LENGTH` | Supprimé dans v2.1.277 et maintenant un no-op, avec l'outil `TaskOutput` qu'il dimensionnait. Auparavant, définissait le nombre maximum de caractères de la sortie d'une [tâche d'arrière-plan](/docs/fr/tools-reference#background-commands) que l'outil `TaskOutput` conservait. Claude lit le fichier de sortie d'une tâche d'arrière-plan avec `Read` à la place |503| `TASK_MAX_OUTPUT_LENGTH` | Supprimée dans la v2.1.277 et désormais sans effet, de même que l'outil `TaskOutput` dont elle définissait la taille. Définissait auparavant le nombre maximal de caractères de la sortie d'une [tâche en arrière-plan](/docs/fr/tools-reference#background-commands) que l'outil `TaskOutput` conservait. Claude lit désormais le fichier de sortie d'une tâche en arrière-plan avec `Read` |

502| `USE_BUILTIN_RIPGREP` | Définissez sur `0` pour utiliser le `rg` installé sur le système au lieu du `rg` inclus avec Claude Code |504| `USE_BUILTIN_RIPGREP` | Définissez sur `0` pour utiliser le `rg` installé sur le système au lieu du `rg` inclus avec Claude Code |

503| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Remplacez la région pour Claude 3.5 Haiku lors de l'utilisation de Google Cloud's Agent Platform |505| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Remplace la région pour Claude 3.5 Haiku lors de l'utilisation de l'Agent Platform de Google Cloud |

504| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Remplacez la région pour Claude 3.5 Sonnet lors de l'utilisation de Google Cloud's Agent Platform |506| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Remplace la région pour Claude 3.5 Sonnet lors de l'utilisation de l'Agent Platform de Google Cloud |

505| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Remplacez la région pour Claude 3.7 Sonnet lors de l'utilisation de Google Cloud's Agent Platform |507| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Remplace la région pour Claude 3.7 Sonnet lors de l'utilisation de l'Agent Platform de Google Cloud |

506| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Remplacez la région pour Claude 4.0 Opus lors de l'utilisation de Google Cloud's Agent Platform |508| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Remplace la région pour Claude 4.0 Opus lors de l'utilisation de l'Agent Platform de Google Cloud |

507| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Remplacez la région pour Claude 4.0 Sonnet lors de l'utilisation de Google Cloud's Agent Platform |509| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Remplace la région pour Claude 4.0 Sonnet lors de l'utilisation de l'Agent Platform de Google Cloud |

508| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Remplacez la région pour Claude 4.1 Opus lors de l'utilisation de Google Cloud's Agent Platform |510| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Remplace la région pour Claude 4.1 Opus lors de l'utilisation de l'Agent Platform de Google Cloud |

509| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Remplacez la région pour Claude Opus 4.5 lors de l'utilisation de Google Cloud's Agent Platform |511| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Remplace la région pour Claude Opus 4.5 lors de l'utilisation de l'Agent Platform de Google Cloud |

510| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Remplacez la région pour Claude Sonnet 4.5 lors de l'utilisation de Google Cloud's Agent Platform |512| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Remplace la région pour Claude Sonnet 4.5 lors de l'utilisation de l'Agent Platform de Google Cloud |

511| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Remplacez la région pour Claude Opus 4.6 lors de l'utilisation de Google Cloud's Agent Platform |513| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Remplace la région pour Claude Opus 4.6 lors de l'utilisation de l'Agent Platform de Google Cloud |

512| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Remplacez la région pour Claude Sonnet 4.6 lors de l'utilisation de Google Cloud's Agent Platform |514| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Remplace la région pour Claude Sonnet 4.6 lors de l'utilisation de l'Agent Platform de Google Cloud |

513| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Remplacez la région pour Claude Opus 4.7 lors de l'utilisation de Google Cloud's Agent Platform |515| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Remplace la région pour Claude Opus 4.7 lors de l'utilisation de l'Agent Platform de Google Cloud |

514| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Remplacez la région pour Claude Opus 4.8 lors de l'utilisation de Google Cloud's Agent Platform |516| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Remplace la région pour Claude Opus 4.8 lors de l'utilisation de l'Agent Platform de Google Cloud |

515| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Remplacez la région pour Claude Opus 5.5 lors de l'utilisation de Google Cloud's Agent Platform. Ajouté dans v2.1.280 |517| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Remplace la région pour Claude Opus 5.5 lors de l'utilisation de l'Agent Platform de Google Cloud. Ajoutée dans la v2.1.280 |

516| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Remplacez la région pour Claude Sonnet 5.5 lors de l'utilisation de Google Cloud's Agent Platform. Ajouté dans v2.1.284 |518| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Remplace la région pour Claude Sonnet 5.5 lors de l'utilisation de l'Agent Platform de Google Cloud. Ajoutée dans la v2.1.284 |

517| `VERTEX_REGION_CLAUDE_5_OPUS` | Remplacez la région pour Claude Opus 5 lors de l'utilisation de Google Cloud's Agent Platform. Ajouté dans v2.1.219 |519| `VERTEX_REGION_CLAUDE_5_OPUS` | Remplace la région pour Claude Opus 5 lors de l'utilisation de l'Agent Platform de Google Cloud. Ajoutée dans la v2.1.219 |

518| `VERTEX_REGION_CLAUDE_5_SONNET` | Remplacez la région pour Claude Sonnet 5 lors de l'utilisation de Google Cloud's Agent Platform. Ajouté dans v2.1.197 |520| `VERTEX_REGION_CLAUDE_5_SONNET` | Remplace la région pour Claude Sonnet 5 lors de l'utilisation de l'Agent Platform de Google Cloud. Ajoutée dans la v2.1.197 |

519| `VERTEX_REGION_CLAUDE_FABLE_5` | Remplacez la région pour Claude Fable 5 lors de l'utilisation de Google Cloud's Agent Platform. Ajouté dans v2.1.170 |521| `VERTEX_REGION_CLAUDE_FABLE_5` | Remplace la région pour Claude Fable 5 lors de l'utilisation de l'Agent Platform de Google Cloud. Ajoutée dans la v2.1.170 |

520| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Remplacez la région pour Claude Fable 5.1 lors de l'utilisation de Google Cloud's Agent Platform. Ajouté dans v2.1.257 |522| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Remplace la région pour Claude Fable 5.1 lors de l'utilisation de l'Agent Platform de Google Cloud. Ajoutée dans la v2.1.257 |

521| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Remplacez la région pour Claude Haiku 4.5 lors de l'utilisation de Google Cloud's Agent Platform |523| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Remplace la région pour Claude Haiku 4.5 lors de l'utilisation de l'Agent Platform de Google Cloud |

522 524 

523Les variables d'exportateur OpenTelemetry standard (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` et les variantes spécifiques au signal) sont également prises en charge. Voir [Surveillance](/docs/fr/monitoring-usage) pour les détails de configuration.525Les variables standard d'exportateur OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` et les variantes propres à chaque signal) sont également prises en charge. Consultez [Surveillance](/docs/fr/monitoring-usage) pour les détails de configuration.

524 526 

525Définissez `CLAUDE_CODE_ENABLE_TELEMETRY` et les variables OpenTelemetry qui activent l'export, choisissent sa destination ou capturent le contenu dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Claude Code [les ignore dans les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env), à part les valeurs désactivées que cette section décrit. `OTEL_RESOURCE_ATTRIBUTES` et l'intervalle d'export, le délai d'expiration et les variables de compression, comme `OTEL_METRIC_EXPORT_INTERVAL`, s'appliquent toujours à partir des paramètres de projet et locaux.527Définissez `CLAUDE_CODE_ENABLE_TELEMETRY` et les variables OpenTelemetry qui activent l'export, choisissent sa destination ou capturent du contenu dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Claude Code [les ignore dans les paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. `OTEL_RESOURCE_ATTRIBUTES` et les variables d'intervalle, de délai d'expiration et de compression de l'export, comme `OTEL_METRIC_EXPORT_INTERVAL`, s'appliquent toujours depuis les paramètres de projet et locaux.

526 528 

527<h2 id="features-that-need-feature-flag-fetching">529<h2 id="features-that-need-feature-flag-fetching">

528 Fonctionnalités nécessitant la récupération de feature flags530 Fonctionnalités nécessitant la récupération de feature flags


545* Utiliser [l'outil advisor](/docs/fr/advisor#requirements)547* Utiliser [l'outil advisor](/docs/fr/advisor#requirements)

546* Lire ou répondre aux [commentaires sur un artifact](/docs/fr/artifacts#collect-comments-on-an-artifact)548* Lire ou répondre aux [commentaires sur un artifact](/docs/fr/artifacts#collect-comments-on-an-artifact)

547* Faire en sorte que Claude lise [l'artefact public d'une autre organisation](/docs/fr/artifacts#read-an-artifact-shared-with-you)549* Faire en sorte que Claude lise [l'artefact public d'une autre organisation](/docs/fr/artifacts#read-an-artifact-shared-with-you)

548* Faire en sorte que Claude Code sonde les serveurs connecteurs claude.ai pour [la révision du protocole MCP 2026-07-28](/docs/fr/mcp#mcp-client-runtimes) sauf si vous définissez `MCP_PROTOCOL_NEGOTIATION=auto`550* Faire en sorte que Claude Code sonde les serveurs connecteurs claude.ai ou les serveurs stdio pour [la révision du protocole MCP 2026-07-28](/docs/fr/mcp#mcp-client-runtimes) sauf si vous définissez `MCP_PROTOCOL_NEGOTIATION=auto`

549* Obtenir l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool) par défaut pour les comptes claude.ai et Console sur Windows avec Git Bash installé ; Claude Code achemine les commandes shell via Git Bash sauf si vous définissez `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Sur Windows sans Git Bash, l'outil reste activé551* Obtenir l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool) par défaut pour les comptes claude.ai et Console sur Windows avec Git Bash installé ; Claude Code achemine les commandes shell via Git Bash sauf si vous définissez `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Sur Windows sans Git Bash, l'outil reste activé

550* Obtenir les [retours rédigés par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior), que Claude Code active via un flag récupéré552* Obtenir les [retours rédigés par Claude](/docs/fr/tools-reference#sendfeedback-tool-behavior), que Claude Code active via un flag récupéré

551* Faire en sorte que Claude [traite les grands collages comme du texte collé plutôt que du texte saisi](/docs/fr/terminal-config#how-claude-treats-pasted-text) ; le contenu derrière un espace réservé `[Pasted text #N]` atteint Claude sans marquage553* Faire en sorte que Claude [traite les grands collages comme du texte collé plutôt que du texte saisi](/docs/fr/terminal-config#how-claude-treats-pasted-text) ; le contenu derrière un espace réservé `[Pasted text #N]` atteint Claude sans marquage

errors.md +44 −24

Details

187| `<model>'s safeguards flagged this message` | [Erreurs de requête](#safety-measures-flagged-a-cybersecurity-topic) |187| `<model>'s safeguards flagged this message` | [Erreurs de requête](#safety-measures-flagged-a-cybersecurity-topic) |

188| `<model>'s safeguards flagged this session` | [Erreurs de requête](#safety-measures-flagged-a-cybersecurity-topic) |188| `<model>'s safeguards flagged this session` | [Erreurs de requête](#safety-measures-flagged-a-cybersecurity-topic) |

189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Erreurs de requête](#safety-measures-flagged-a-cybersecurity-topic) |189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Erreurs de requête](#safety-measures-flagged-a-cybersecurity-topic) |

190| `API Error: Output blocked by content filtering policy` | [Erreurs de requête](#output-blocked-by-content-filtering-policy) |

190| `Installation was killed before it could finish (exit code 137)` | [Erreurs d'installation](#installation-was-killed-before-it-could-finish) |191| `Installation was killed before it could finish (exit code 137)` | [Erreurs d'installation](#installation-was-killed-before-it-could-finish) |

191| `The connection dropped while downloading the update` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) |192| `The connection dropped while downloading the update` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) |

192| `Download timed out: exceeded the total deadline` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) |193| `Download timed out: exceeded the total deadline` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) |


402* Une [réponse en streaming Amazon Bedrock avec un type de contenu inattendu](#bedrock-streaming-response-has-an-unexpected-content-type), parce que la passerelle ou le proxy réécrivant la réponse réécrirait la nouvelle tentative de la même manière. Nécessite Claude Code v2.1.208 ou ultérieur.403* Une [réponse en streaming Amazon Bedrock avec un type de contenu inattendu](#bedrock-streaming-response-has-an-unexpected-content-type), parce que la passerelle ou le proxy réécrivant la réponse réécrirait la nouvelle tentative de la même manière. Nécessite Claude Code v2.1.208 ou ultérieur.

403* Une nouvelle tentative sans streaming d'une requête en streaming défaillante qui obtient un statut de succès mais [aucun message API Claude dans le corps](#api-returned-an-empty-or-malformed-response). Claude Code termine le tour avec cette erreur.404* Une nouvelle tentative sans streaming d'une requête en streaming défaillante qui obtient un statut de succès mais [aucun message API Claude dans le corps](#api-returned-an-empty-or-malformed-response). Claude Code termine le tour avec cette erreur.

404* Une requête que la vérification de politique de votre organisation a refusée, qui apparaît comme une ligne `API Error:` portant le message de refus. Les administrateurs de votre organisation configurent la vérification avec [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), une fonctionnalité Claude Enterprise, et le message se termine par les instructions qu'ils ont configurées, ou par défaut vous dit de les contacter. Claude Code ne renvoie pas la requête refusée au même modèle ou à un [modèle de secours](/docs/fr/model-config#fallback-model-chains), parce que le refus concerne le contenu de la requête plutôt que le modèle. Avant v2.1.239, Claude Code pouvait renvoyer une requête refusée, sans streaming ou sur un modèle de secours configuré, avant de vous afficher le refus.405* Une requête que la vérification de politique de votre organisation a refusée, qui apparaît comme une ligne `API Error:` portant le message de refus. Les administrateurs de votre organisation configurent la vérification avec [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), une fonctionnalité Claude Enterprise, et le message se termine par les instructions qu'ils ont configurées, ou par défaut vous dit de les contacter. Claude Code ne renvoie pas la requête refusée au même modèle ou à un [modèle de secours](/docs/fr/model-config#fallback-model-chains), parce que le refus concerne le contenu de la requête plutôt que le modèle. Avant v2.1.239, Claude Code pouvait renvoyer une requête refusée, sans streaming ou sur un modèle de secours configuré, avant de vous afficher le refus.

406* Une réponse que le filtre de contenu de sortie de l'API a bloquée. Claude Code affiche immédiatement [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) et ne réessaie pas ni ne renvoie cette requête.

405 407 

406<h3 id="what-you-see-while-claude-code-retries-or-waits">408<h3 id="what-you-see-while-claude-code-retries-or-waits">

407 Ce que vous voyez pendant que Claude Code réessaie ou attend409 Ce que vous voyez pendant que Claude Code réessaie ou attend


432| [`CLAUDE_CODE_MAX_RETRIES`](/docs/fr/env-vars) | 10 | Nombre de nouvelles tentatives. Plafonné à 15 à partir de v2.1.186 ; à partir de v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` augmente la valeur par défaut et supprime le plafond. Réduisez-le pour afficher les défaillances plus rapidement dans les scripts. |434| [`CLAUDE_CODE_MAX_RETRIES`](/docs/fr/env-vars) | 10 | Nombre de nouvelles tentatives. Plafonné à 15 à partir de v2.1.186 ; à partir de v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` augmente la valeur par défaut et supprime le plafond. Réduisez-le pour afficher les défaillances plus rapidement dans les scripts. |

433| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/fr/env-vars) | non défini | Définissez sur `1` dans les sessions sans surveillance telles que les travaux CI pour réessayer les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Claude Code échoue immédiatement lorsqu'une requête à vitesse standard obtient un `429` qui signale une limite de dépenses ou des crédits d'utilisation épuisés, même un provenant d'un [plafond de dépenses de passerelle](#spend-limit-reached) qui se réinitialise selon un calendrier. Avant v2.1.239, le watchdog réessayait ceux-ci indéfiniment. Pour les requêtes en mode rapide, voir [Handle rate limits](/docs/fr/fast-mode#handle-rate-limits). Sur v2.1.199 ou ultérieur, il augmente également le nombre de tentatives par défaut pour les autres erreurs transitoires, telles que les erreurs serveur, les délais d'attente et les connexions interrompues, à 300, environ trois heures de backoff, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez explicitement cette variable. |435| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/fr/env-vars) | non défini | Définissez sur `1` dans les sessions sans surveillance telles que les travaux CI pour réessayer les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Claude Code échoue immédiatement lorsqu'une requête à vitesse standard obtient un `429` qui signale une limite de dépenses ou des crédits d'utilisation épuisés, même un provenant d'un [plafond de dépenses de passerelle](#spend-limit-reached) qui se réinitialise selon un calendrier. Avant v2.1.239, le watchdog réessayait ceux-ci indéfiniment. Pour les requêtes en mode rapide, voir [Handle rate limits](/docs/fr/fast-mode#handle-rate-limits). Sur v2.1.199 ou ultérieur, il augmente également le nombre de tentatives par défaut pour les autres erreurs transitoires, telles que les erreurs serveur, les délais d'attente et les connexions interrompues, à 300, environ trois heures de backoff, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez explicitement cette variable. |

434| [`API_TIMEOUT_MS`](/docs/fr/env-vars) | 600000 | Délai d'attente par requête en millisecondes. Augmentez-le pour les réseaux lents ou les proxys. Il plafonne également la durée pendant laquelle Claude Code attend les en-têtes de réponse, décrite dans [No response from API](#no-response-from-api). |436| [`API_TIMEOUT_MS`](/docs/fr/env-vars) | 600000 | Délai d'attente par requête en millisecondes. Augmentez-le pour les réseaux lents ou les proxys. Il plafonne également la durée pendant laquelle Claude Code attend les en-têtes de réponse, décrite dans [No response from API](#no-response-from-api). |

437| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/fr/env-vars) | non défini | Limite du nombre de renvois d'une [requête sans streaming](#streaming-response-ended-before-any-complete-data-was-received) qui expire. Une fois la limite atteinte, la requête échoue. Une réponse de Claude dont la génération dure plus longtemps que le délai d'expiration expire de nouveau à chaque renvoi ; définissez donc un nombre faible tel que `0` pour échouer plus tôt. Chaque tentative sans streaming expire après 300 secondes dans une session locale, ou après `API_TIMEOUT_MS` lorsque vous définissez une valeur positive. Nécessite Claude Code v2.1.285 ou ultérieur. |

435| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/fr/env-vars) | non défini | Délai en millisecondes pour le premier octet de réponse d'une requête en streaming. Nécessite Claude Code v2.1.242 ou ultérieur. Pour savoir comment Claude Code choisit le délai lorsque ceci n'est pas défini, voir [No response from API](#no-response-from-api). |438| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/fr/env-vars) | non défini | Délai en millisecondes pour le premier octet de réponse d'une requête en streaming. Nécessite Claude Code v2.1.242 ou ultérieur. Pour savoir comment Claude Code choisit le délai lorsque ceci n'est pas défini, voir [No response from API](#no-response-from-api). |

436 439 

437<h2 id="server-errors">440<h2 id="server-errors">


1839La plupart de ces erreurs signifient qu'une requête réseau de Claude Code n'a pas pu atteindre sa destination, ou que quelque chose entre Claude Code et l'API a modifié la réponse en chemin ; lorsqu'une entrée a également une cause locale, comme une écriture d'archive échouée, son corps l'indique. Elles proviennent généralement de votre réseau local, proxy ou pare-feu, ou de la politique réseau de l'environnement cloud.1842La plupart de ces erreurs signifient qu'une requête réseau de Claude Code n'a pas pu atteindre sa destination, ou que quelque chose entre Claude Code et l'API a modifié la réponse en chemin ; lorsqu'une entrée a également une cause locale, comme une écriture d'archive échouée, son corps l'indique. Elles proviennent généralement de votre réseau local, proxy ou pare-feu, ou de la politique réseau de l'environnement cloud.

1840 1843 

1841<h3 id="unable-to-connect-to-api">1844<h3 id="unable-to-connect-to-api">

1842 Impossible de se connecter à l'API1845 Unable to connect to API

1843</h3>1846</h3>

1844 1847 

1845La connexion TCP à l'API a échoué ou ne s'est jamais complétée. Pour les codes d'erreur de connexion courants, le message nomme le type d'échec et conserve le code entre parenthèses :1848La connexion TCP à l'API a échoué ou ne s'est jamais complétée. Pour les codes d'erreur de connexion courants, le message nomme le type d'échec et conserve le code entre parenthèses :


1876* Docker Desktop et les runtimes de conteneurs similaires peuvent intercepter le trafic sortant. Quittez-les et réessayez pour exclure cette possibilité.1879* Docker Desktop et les runtimes de conteneurs similaires peuvent intercepter le trafic sortant. Quittez-les et réessayez pour exclure cette possibilité.

1877 1880 

1878<h3 id="unable-to-connect-to-anthropic-services">1881<h3 id="unable-to-connect-to-anthropic-services">

1879 Impossible de se connecter aux services Anthropic1882 Unable to connect to Anthropic services

1880</h3>1883</h3>

1881 1884 

1882Lors de la configuration initiale, Claude Code vérifie qu'il peut atteindre `api.anthropic.com` et `platform.claude.com` avant d'afficher l'étape de connexion. Lorsque l'une des vérifications échoue, Claude Code imprime la raison et se ferme.1885Lors de la configuration initiale, Claude Code vérifie qu'il peut atteindre `api.anthropic.com` et `platform.claude.com` avant d'afficher l'étape de connexion. Lorsque l'une des vérifications échoue, Claude Code imprime la raison et se ferme.


1890 1893 

1891Claude Code envoie la vérification via la même [configuration proxy](/docs/fr/network-config) que les requêtes API et donne à chaque sonde 10 secondes. Lorsque la sonde échouée a traversé un proxy, le message nomme la variable d'environnement qui l'a configurée, comme `HTTPS_PROXY`. Avant la v2.1.222, la vérification utilisait un transport proxy différent sans délai d'expiration : derrière une URL proxy avec le schéma `https://`, elle pouvait se bloquer sur `Checking connectivity...` indéfiniment puis échouer même si les requêtes API via le même proxy réussissent.1894Claude Code envoie la vérification via la même [configuration proxy](/docs/fr/network-config) que les requêtes API et donne à chaque sonde 10 secondes. Lorsque la sonde échouée a traversé un proxy, le message nomme la variable d'environnement qui l'a configurée, comme `HTTPS_PROXY`. Avant la v2.1.222, la vérification utilisait un transport proxy différent sans délai d'expiration : derrière une URL proxy avec le schéma `https://`, elle pouvait se bloquer sur `Checking connectivity...` indéfiniment puis échouer même si les requêtes API via le même proxy réussissent.

1892 1895 

1893Claude Code ignore cette vérification lorsqu'un [fichier de paramètres gérés, une politique MDM ou un assistant de politique](/docs/fr/managed-settings) définit [`forceLoginMethod`](/docs/fr/settings-reference#forceloginmethod) sur `"gateway"`, ou définit [`forceLoginGatewayUrl`](/docs/fr/settings-reference#forcelogingatewayurl) sans `forceLoginMethod`. Avec l'une ou l'autre configuration, Claude Code ouvre l'étape de connexion sur l'écran **Cloud gateway** plutôt qu'une méthode de connexion Anthropic. Claude Code ignore également la vérification lorsqu'une source de paramètres gérés sur la machine existe mais ne peut pas être lue, car cette source peut contenir la configuration de la passerelle. Avant la v2.1.247, Claude Code exécutait la vérification sous cette configuration aussi, et se fermait avec cette erreur lorsque les points de terminaison d'Anthropic étaient inaccessibles.1896Claude Code ignore cette vérification lorsqu'un [fichier de paramètres gérés, une politique MDM ou un assistant de politique](/docs/fr/managed-settings) définit [`forceLoginMethod`](/docs/fr/settings-reference#forceloginmethod) sur `"gateway"`, ou définit [`forceLoginGatewayUrl`](/docs/fr/settings-reference#forcelogingatewayurl) sans `forceLoginMethod`. Avec l'une ou l'autre configuration, Claude Code ouvre l'étape de connexion sur l'écran **Cloud gateway** plutôt qu'une méthode de connexion Anthropic. Claude Code ignore également la vérification lorsqu'une source de paramètres gérés sur la machine existe mais ne peut pas être lue, car cette source peut contenir la configuration de la passerelle. Avant la v2.1.247, Claude Code exécutait la vérification sous cette configuration aussi, et se fermait avec cette erreur lorsque les endpoints d'Anthropic étaient inaccessibles.

1894 1897 

1895**À faire :**1898**À faire :**

1896 1899 


1904 1907 

1905`Socket is closed` signifie que la connexion transportant une réponse en streaming a été fermée alors que la réponse arrivait toujours. La cause la plus courante est un proxy d'entreprise sur Windows qui abandonne un tunnel établi au milieu de la réponse.1908`Socket is closed` signifie que la connexion transportant une réponse en streaming a été fermée alors que la réponse arrivait toujours. La cause la plus courante est un proxy d'entreprise sur Windows qui abandonne un tunnel établi au milieu de la réponse.

1906 1909 

1907Selon la progression de la réponse, Claude Code réessaye la requête, conserve ce que Claude a produit, ou termine le tour. Consultez [Réessais automatiques](#automatic-retries).1910Selon la progression de la réponse, Claude Code réessaye la requête, conserve ce que Claude a produit, ou termine le tour. Consultez [Nouvelles tentatives automatiques](#automatic-retries).

1908 1911 

1909Avant la v2.1.214, Claude Code ne réessayait pas cet échec, et le tour s'arrêtait avec une erreur contenant `Socket is closed`.1912Avant la v2.1.214, Claude Code ne réessayait pas cet échec, et le tour s'arrêtait avec une erreur contenant `Socket is closed`.

1910 1913 


1914* Si les tours continuent d'échouer derrière le même proxy après la mise à jour, parcourez [Impossible de se connecter à l'API](#unable-to-connect-to-api) et vérifiez la configuration du proxy dans [Configuration réseau](/docs/fr/network-config)1917* Si les tours continuent d'échouer derrière le même proxy après la mise à jour, parcourez [Impossible de se connecter à l'API](#unable-to-connect-to-api) et vérifiez la configuration du proxy dans [Configuration réseau](/docs/fr/network-config)

1915 1918 

1916<h3 id="api-returned-an-empty-or-malformed-response">1919<h3 id="api-returned-an-empty-or-malformed-response">

1917 L'API a retourné une réponse vide ou malformée1920 API returned an empty or malformed response

1918</h3>1921</h3>

1919 1922 

1920Claude Code affiche cette erreur lorsque sa nouvelle tentative sans streaming d'une requête en streaming échouée obtient un statut HTTP de succès mais le corps n'est pas un message API Claude : généralement une erreur HTML ou une page de connexion, un corps vide, ou du JSON dans un autre format. Un proxy, une passerelle ou une page de connexion réseau répondant à la place de l'API est la source habituelle. Claude Code ne réessaye pas la requête, et le tour se termine avec cette erreur.1923Claude Code affiche cette erreur lorsque sa nouvelle tentative sans streaming d'une requête en streaming échouée obtient un statut HTTP de succès mais le corps n'est pas un message API Claude : généralement une erreur HTML ou une page de connexion, un corps vide, ou du JSON dans un autre format. Un proxy, une passerelle ou une page de connexion réseau répondant à la place de l'API est la source habituelle. Claude Code ne réessaye pas la requête, et le tour se termine avec cette erreur.


1937* Lisez la clause `Response:` pour voir quel système a répondu. Un corps HTML, pas d'id de requête Anthropic, ou un serveur nommé comme `nginx` ou `cloudflare` signifie que quelque chose entre Claude Code et l'API a répondu à sa place1940* Lisez la clause `Response:` pour voir quel système a répondu. Un corps HTML, pas d'id de requête Anthropic, ou un serveur nommé comme `nginx` ou `cloudflare` signifie que quelque chose entre Claude Code et l'API a répondu à sa place

1938* Si vous routez via une [passerelle LLM](/docs/fr/llm-gateway-connect#troubleshoot-gateway-errors), testez la route avec une requête directe et corrigez le saut qui retourne la réponse non-API1941* Si vous routez via une [passerelle LLM](/docs/fr/llm-gateway-connect#troubleshoot-gateway-errors), testez la route avec une requête directe et corrigez le saut qui retourne la réponse non-API

1939* Sur un réseau avec une page de connexion, comme le Wi-Fi invité, complétez la connexion dans un navigateur, puis réessayez1942* Sur un réseau avec une page de connexion, comme le Wi-Fi invité, complétez la connexion dans un navigateur, puis réessayez

1940* Si seule la route sans streaming via votre passerelle est cassée, définissez [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/fr/env-vars#variables) pour désactiver ce secours, sauf lorsque le point de terminaison en streaming lui-même retourne `404`, où Claude Code se replie toujours1943* Si seule la route sans streaming via votre passerelle est cassée, définissez [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/fr/env-vars#variables) pour désactiver cette solution de repli, sauf lorsque l'endpoint en streaming lui-même retourne `404`, où Claude Code bascule toujours sur celle-ci

1941 1944 

1942<h3 id="streaming-response-ended-before-any-complete-data-was-received">1945<h3 id="streaming-response-ended-before-any-complete-data-was-received">

1943 La réponse en streaming s'est terminée avant que des données complètes ne soient reçues1946 Streaming response ended before any complete data was received

1944</h3>1947</h3>

1945 1948 

1946Une réponse en streaming de votre fournisseur de modèle s'est complétée sans livrer de données utilisables, donc Claude Code a renvoyé la requête sans streaming pour terminer le tour. Claude Code affiche l'avertissement une fois par session, dans les sessions interactives uniquement. Avant la v2.1.239, Claude Code réessayait silencieusement sans streaming.1949Une réponse en streaming de votre fournisseur de modèle s'est complétée sans livrer de données utilisables, donc Claude Code a renvoyé la requête sans streaming pour terminer le tour. Claude Code affiche l'avertissement une fois par session, dans les sessions interactives uniquement. Avant la v2.1.239, Claude Code réessayait silencieusement sans streaming.


1971**À faire :**1974**À faire :**

1972 1975 

1973* Configurez la passerelle pour passer le corps de la réponse `InvokeModelWithResponseStream` et son en-tête `Content-Type` sans modification. Un intermédiaire qui réemet le flux en tant qu'événements envoyés par le serveur est une cause courante.1976* Configurez la passerelle pour passer le corps de la réponse `InvokeModelWithResponseStream` et son en-tête `Content-Type` sans modification. Un intermédiaire qui réemet le flux en tant qu'événements envoyés par le serveur est une cause courante.

1974* Définir [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/fr/env-vars) masque cette erreur, mais Claude Code ne décode pas un corps binaire sous un en-tête réécrit, donc ces requêtes se replient sur un chemin plus lent sans streaming. Consultez [Erreurs de streaming derrière une passerelle ou un proxy](/docs/fr/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).1977* Définir [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/fr/env-vars) masque cette erreur, mais Claude Code ne décode pas un corps binaire sous un en-tête réécrit, donc ces requêtes se rabattent sur un chemin plus lent sans streaming. Consultez [Erreurs de streaming derrière une passerelle ou un proxy](/docs/fr/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

1975 1978 

1976<h3 id="ssl-certificate-errors">1979<h3 id="ssl-certificate-errors">

1977 Erreurs de certificat SSL1980 Erreurs de certificat SSL


1986 1989 

1987Avant la v2.1.273, les deux messages se terminaient à `Check your proxy or corporate SSL certificates`, sans le code OpenSSL ou l'indice `NODE_EXTRA_CA_CERTS`.1990Avant la v2.1.273, les deux messages se terminaient à `Check your proxy or corporate SSL certificates`, sans le code OpenSSL ou l'indice `NODE_EXTRA_CA_CERTS`.

1988 1991 

1989À partir de la v2.1.199, une défaillance de validation de certificat n'est pas réessayée, donc cette erreur apparaît à la première tentative au lieu d'après le [budget de nouvelle tentative](#automatic-retries) complet. Les versions antérieures passaient quelques minutes à réessayer avant de l'afficher. Les conditions TLS transitoires, comme un délai d'expiration de poignée de main, réessaient toujours.1992À partir de la v2.1.199, une défaillance de validation de certificat n'est pas réessayée, donc cette erreur apparaît à la première tentative au lieu d'après le [budget de nouvelles tentatives](#automatic-retries) complet. Les versions antérieures passaient quelques minutes à réessayer avant de l'afficher. Les conditions TLS transitoires, comme un délai d'expiration de poignée de main, sont toujours réessayées.

1990 1993 

1991Pendant `/login` et la vérification de connectivité au démarrage, la même défaillance produit un message différent :1994Pendant `/login` et la vérification de connectivité au démarrage, la même défaillance produit un message différent :

1992 1995 


1994SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.1997SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.

1995```1998```

1996 1999 

1997Sur [Amazon Bedrock](/docs/fr/amazon-bedrock), les requêtes que Claude Code lui-même envoie à AWS, comme les appels de rôle STS et SSO, la découverte de modèle, et les vérifications de l'assistant de configuration, dépendent de la même configuration de certificat. Consultez [Erreurs de certificat derrière un proxy qui inspecte TLS](/docs/fr/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy).2000Sur [Amazon Bedrock](/docs/fr/amazon-bedrock), les requêtes que Claude Code lui-même envoie à AWS, comme les appels d'identifiants de rôle STS et SSO, la découverte de modèle, et les vérifications de l'assistant de configuration, dépendent de la même configuration de certificat. Consultez [Erreurs de certificat derrière un proxy qui inspecte TLS](/docs/fr/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy).

1998 2001 

1999**À faire :**2002**À faire :**

2000 2003 


2022Ces étapes modifient l'un de vos propres environnements. Un [environnement partagé par l'organisation](/docs/fr/cloud-environments#organization-shared-environments) s'ouvre en lecture seule dans le sélecteur, donc demandez à un propriétaire de modifier son accès réseau à partir de la page **Cloud environments** dans les [paramètres d'administration](https://claude.ai/admin-settings).2025Ces étapes modifient l'un de vos propres environnements. Un [environnement partagé par l'organisation](/docs/fr/cloud-environments#organization-shared-environments) s'ouvre en lecture seule dans le sélecteur, donc demandez à un propriétaire de modifier son accès réseau à partir de la page **Cloud environments** dans les [paramètres d'administration](https://claude.ai/admin-settings).

2023 2026 

2024* Ouvrez votre environnement pour l'édition, soit à partir du [formulaire de routine](/docs/fr/routines#environments-and-network-access), soit à partir du [sélecteur d'environnement](/docs/fr/cloud-environments#configure-your-environment) où vous démarrez les sessions cloud.2027* Ouvrez votre environnement pour l'édition, soit à partir du [formulaire de routine](/docs/fr/routines#environments-and-network-access), soit à partir du [sélecteur d'environnement](/docs/fr/cloud-environments#configure-your-environment) où vous démarrez les sessions cloud.

2025* Dans la boîte de dialogue **Edit cloud environment**, changez **Network access** de **Trusted** à **Custom**, puis ajoutez le domaine bloqué à **Allowed domains**. Entrez un domaine par ligne. Cochez **Also include default list of common package managers** pour conserver la [liste d'autorisation par défaut](/docs/fr/cloud-environments#default-allowed-domains) aux côtés de vos domaines personnalisés. Sélectionnez **Full** à la place si vous voulez un accès sans restriction.2028* Dans la boîte de dialogue **Edit environment**, changez **Network access** de **Trusted** à **Custom**, puis ajoutez le domaine bloqué à **Allowed domains**. Entrez un domaine par ligne. Cochez **Also include default list of common package managers** pour conserver la [liste d'autorisation par défaut](/docs/fr/cloud-environments#default-allowed-domains) aux côtés de vos domaines personnalisés. Sélectionnez **Full** à la place si vous voulez un accès sans restriction.

2026* Cliquez sur **Save changes**. La prochaine exécution utilise la liste d'autorisation mise à jour. Pour une session cloud qui est déjà ouverte, consultez [quand une modification d'accès réseau atteint les sessions existantes](/docs/fr/cloud-environments#network-access).2029* Cliquez sur **Save changes**. La prochaine exécution utilise la liste d'autorisation mise à jour. Pour une session cloud qui est déjà ouverte, consultez [quand une modification d'accès réseau atteint les sessions existantes](/docs/fr/cloud-environments#network-access).

2027 2030 

2028Consultez [Network access](/docs/fr/cloud-environments#network-access) pour les niveaux d'accès et la liste d'autorisation par défaut. Les sessions CLI locales ne sont pas affectées par cette politique.2031Consultez [Network access](/docs/fr/cloud-environments#network-access) pour les niveaux d'accès et la liste d'autorisation par défaut. Les sessions CLI locales ne sont pas affectées par cette politique.


2031 Le proxy a refusé la connexion2034 Le proxy a refusé la connexion

2032</h3>2035</h3>

2033 2036 

2034Vous voyez ce message lorsque Claude lit un [artifact](/docs/fr/artifacts) via le proxy que vous avez défini dans `HTTPS_PROXY` ou une [variable proxy](/docs/fr/network-config#environment-variables) associée. Le contenu des artifacts provient de `*.frame.claudeusercontent.com`, donc Claude Code envoie d'abord au proxy une requête `CONNECT` lui demandant d'ouvrir un tunnel vers cet hôte. Lorsque le proxy refuse, rien n'atteint l'hôte, et le message porte le statut HTTP du proxy :2037Vous voyez ce message lorsque Claude lit un [artefact](/docs/fr/artifacts) via le proxy que vous avez défini dans `HTTPS_PROXY` ou une [variable proxy](/docs/fr/network-config#environment-variables) associée. Le contenu des artefacts provient de `*.frame.claudeusercontent.com`, donc Claude Code envoie d'abord au proxy une requête `CONNECT` lui demandant d'ouvrir un tunnel vers cet hôte. Lorsque le proxy refuse, rien n'atteint l'hôte, et le message porte le statut HTTP du proxy :

2035 2038 

2036```text theme={null}2039```text theme={null}

2037artifact content fetch failed (proxy refused the connection: HTTP 407)2040artifact content fetch failed (proxy refused the connection: HTTP 407)


2043 2046 

2044* `HTTP 407` : le proxy nécessite des identifiants qu'il n'a pas reçus. Mettez-les dans l'URL du proxy, comme [Basic authentication](/docs/fr/network-config#basic-authentication) le montre.2047* `HTTP 407` : le proxy nécessite des identifiants qu'il n'a pas reçus. Mettez-les dans l'URL du proxy, comme [Basic authentication](/docs/fr/network-config#basic-authentication) le montre.

2045* `HTTP 403` : le proxy refuse de tunneler vers `*.frame.claudeusercontent.com`. Demandez à celui qui gère le proxy d'autoriser cet hôte, que [Network access requirements](/docs/fr/network-config#network-access-requirements) liste.2048* `HTTP 403` : le proxy refuse de tunneler vers `*.frame.claudeusercontent.com`. Demandez à celui qui gère le proxy d'autoriser cet hôte, que [Network access requirements](/docs/fr/network-config#network-access-requirements) liste.

2046* Tout autre statut, comme `HTTP 502` : le proxy n'a pas ouvert le tunnel pour sa propre raison, comme l'échec à atteindre l'hôte. Recherchez le statut dans les journaux du proxy.2049* Tout autre statut, comme `HTTP 502` : le proxy n'a pas ouvert le tunnel pour sa propre raison, comme l'échec à atteindre l'hôte. Recherchez le statut dans les logs du proxy.

2047* `unreadable reply` à la place d'un statut : tout ce qui se trouve à l'adresse du proxy n'a pas répondu avec une ligne de statut HTTP. Vérifiez que l'adresse est un proxy HTTP.2050* `unreadable reply` à la place d'un statut : tout ce qui se trouve à l'adresse du proxy n'a pas répondu avec une ligne de statut HTTP. Vérifiez que l'adresse est un proxy HTTP.

2048 2051 

2049**À faire :**2052**À faire :**

2050 2053 

2051* Vérifiez l'adresse et les identifiants dans la variable proxy, comme [Proxy configuration](/docs/fr/network-config#proxy-configuration) le décrit, puis exécutez `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com` à partir du shell dans lequel vous démarrez Claude Code, en utilisant votre propre URL de proxy. Sur Windows PowerShell, exécutez `curl.exe`. Si cette sonde échoue de la même manière, corrigez d'abord la configuration du proxy. Si elle réussit, le refus est spécifique à l'hôte des artifacts.2054* Vérifiez l'adresse et les identifiants dans la variable proxy, comme [Proxy configuration](/docs/fr/network-config#proxy-configuration) le décrit, puis exécutez `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com` à partir du shell dans lequel vous démarrez Claude Code, en utilisant votre propre URL de proxy. Sur Windows PowerShell, exécutez `curl.exe`. Si cette sonde échoue de la même manière, corrigez d'abord la configuration du proxy. Si elle réussit, le refus est spécifique à l'hôte des artefacts.

2052* Si votre réseau permet à Claude Code d'atteindre l'hôte des artifacts directement, ajoutez `.frame.claudeusercontent.com` à [`NO_PROXY`](/docs/fr/network-config#environment-variables). Gardez l'entrée étroite : une entrée `.claudeusercontent.com` plus large contourne également le proxy pour `bridge.claudeusercontent.com`, que les organisations avec [IP allowlisting](/docs/fr/network-config#organization-ip-allowlists-and-proxy-egress) doivent garder sur le proxy.2055* Si votre réseau permet à Claude Code d'atteindre l'hôte des artefacts directement, ajoutez `.frame.claudeusercontent.com` à [`NO_PROXY`](/docs/fr/network-config#environment-variables). Gardez l'entrée étroite : une entrée `.claudeusercontent.com` plus large contourne également le proxy pour `bridge.claudeusercontent.com`, que les organisations avec [IP allowlisting](/docs/fr/network-config#organization-ip-allowlists-and-proxy-egress) doivent garder sur le proxy.

2053 2056 

2054Avant la v2.1.238, Claude Code rapportait un tunnel refusé comme une erreur réseau générique.2057Avant la v2.1.238, Claude Code rapportait un tunnel refusé comme une erreur réseau générique.

2055 2058 


2075Avant la v2.1.236, Claude Code affichait une TypeError JavaScript brute au lieu de ces messages.2078Avant la v2.1.236, Claude Code affichait une TypeError JavaScript brute au lieu de ces messages.

2076 2079 

2077<h3 id="couldnt-reconnect-to-your-remote-control-session">2080<h3 id="couldnt-reconnect-to-your-remote-control-session">

2078 Impossible de se reconnecter à votre session Remote Control2081 Couldn't reconnect to your Remote Control session

2079</h3>2082</h3>

2080 2083 

2081```text theme={null}2084```text theme={null}


2108* Exécutez `claude remote-control` pour démarrer un environnement frais2111* Exécutez `claude remote-control` pour démarrer un environnement frais

2109 2112 

2110<h3 id="couldnt-share-the-transcript">2113<h3 id="couldnt-share-the-transcript">

2111 Impossible de partager la transcription2114 Couldn't share the transcript

2112</h3>2115</h3>

2113 2116 

2114Après que vous ayez accepté de partager votre transcription de session à partir d'une invite d'enquête, comme l'[enquête de qualité de session](/docs/fr/data-usage#session-quality-surveys), Claude Code la télécharge vers Anthropic, ou enregistre une archive locale à la place sur les fournisseurs tiers, sur les sessions de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), et lorsqu'aucun identifiant Anthropic n'est disponible. Ce message signifie que le partage ne s'est pas complété.2117Après que vous ayez accepté de partager votre transcription de session à partir d'une invite d'enquête, comme l'[enquête de qualité de session](/docs/fr/data-usage#session-quality-surveys), Claude Code la télécharge vers Anthropic, ou enregistre une archive locale à la place sur les fournisseurs tiers, sur les sessions de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), et lorsqu'aucun identifiant Anthropic n'est disponible. Ce message signifie que le partage ne s'est pas complété.


2117Couldn't share the transcript.2120Couldn't share the transcript.

2118```2121```

2119 2122 

2120Le téléchargement doit tenir dans une limite de 8 MiB. Sur une longue session, Claude Code supprime progressivement des parties du partage, les paramètres du modèle de la dernière requête d'abord, puis la conversation structurée et les transcriptions des sous-agents, et affiche ce message uniquement lorsqu'aucune version réduite ne peut être envoyée ou qu'une erreur réseau ou serveur arrête le téléchargement. Lorsque Claude Code enregistre une archive locale à la place, le message signifie qu'il n'a pas pu écrire l'archive.2123Le téléchargement doit tenir dans une limite de 8 MiB. Sur une longue session, Claude Code supprime progressivement des parties du partage, les paramètres du modèle de la dernière requête d'abord, puis la conversation structurée et les transcriptions des sous-agents, et affiche ce message lorsqu'aucune version réduite ne peut être envoyée ou qu'une erreur réseau ou serveur arrête le téléchargement. Lorsque Claude Code enregistre une archive locale à la place, le message signifie qu'il n'a pas pu écrire l'archive.

2121 2124 

2122**À faire :**2125**À faire :**

2123 2126 


2125* Si d'autres requêtes échouent aussi, vérifiez votre connexion réseau et consultez [Impossible de se connecter à l'API](#unable-to-connect-to-api)2128* Si d'autres requêtes échouent aussi, vérifiez votre connexion réseau et consultez [Impossible de se connecter à l'API](#unable-to-connect-to-api)

2126 2129 

2127<h3 id="couldnt-send-feedback">2130<h3 id="couldnt-send-feedback">

2128 Impossible d'envoyer des commentaires2131 Couldn't send feedback

2129</h3>2132</h3>

2130 2133 

2131Vous avez envoyé un rapport à partir de la boîte de dialogue [`/feedback`, `/bug`, ou `/share`](/docs/fr/commands#all-commands) et le téléchargement vers Anthropic a échoué. La boîte de dialogue conserve votre texte pour que vous puissiez réessayer.2134Vous avez envoyé un rapport à partir de la boîte de dialogue [`/feedback`, `/bug`, ou `/share`](/docs/fr/commands#all-commands) et le téléchargement vers Anthropic a échoué. La boîte de dialogue conserve votre texte pour que vous puissiez réessayer.


2136 2139 

2137Le texte après le préfixe nomme ce qui a échoué :2140Le texte après le préfixe nomme ce qui a échoué :

2138 2141 

2139* **`: not signed in. Run /login, then retry.`**: la boîte de dialogue télécharge uniquement lorsque Claude Code a trouvé des identifiants Anthropic à son ouverture, et aucun n'était utilisable au moment où vous avez envoyé. Par exemple, vous vous êtes déconnecté sur cette machine entre-temps, ou votre connexion n'a plus pu être actualisée.2142* **`: not signed in. Run /login, then retry.`** : la boîte de dialogue télécharge uniquement lorsque Claude Code a trouvé des identifiants Anthropic à son ouverture, et aucun n'était utilisable au moment où vous avez envoyé. Par exemple, vous vous êtes déconnecté sur cette machine entre-temps, ou votre connexion n'a plus pu être actualisée.

2140* **Une parenthèse**: `(server returned <status>)` est le code de réponse du service ; `(request timed out)` et `(couldn't reach the service)` sont des défaillances réseau. Lorsque Claude Code ne peut pas nommer une raison, la parenthèse est absente.2143* **Une parenthèse** : `(server returned <status>)` est le code de réponse du service ; `(request timed out)` et `(couldn't reach the service)` sont des défaillances réseau. Lorsque Claude Code ne peut pas nommer une raison, la parenthèse est absente.

2141 2144 

2142Dans la [file d'attente des brouillons de commentaires](/docs/fr/tools-reference#sendfeedback-tool-behavior), la même défaillance se termine par `The draft is still queued. Try again later.` à la place, et le brouillon reste dans la file d'attente pour une autre tentative.2145Dans la [file d'attente des brouillons de commentaires](/docs/fr/tools-reference#sendfeedback-tool-behavior), la même défaillance se termine par `The draft is still queued. Try again later.` à la place, et le brouillon reste dans la file d'attente pour une autre tentative.

2143 2146 


2147* Sinon, envoyez à nouveau ; si d'autres requêtes échouent aussi, vérifiez votre connexion réseau et consultez [Impossible de se connecter à l'API](#unable-to-connect-to-api)2150* Sinon, envoyez à nouveau ; si d'autres requêtes échouent aussi, vérifiez votre connexion réseau et consultez [Impossible de se connecter à l'API](#unable-to-connect-to-api)

2148* Si cela continue d'échouer, déposez le rapport à [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), comme le message le dit2151* Si cela continue d'échouer, déposez le rapport à [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), comme le message le dit

2149 2152 

2150Avant la v2.1.281, chaque envoi échouait avec ce message une fois qu'un **Stop** Remote Control ou un message urgent entre sessions avait arrivé alors que la boîte de dialogue était ouverte. Sur ces versions, fermez la boîte de dialogue, rouvrez-la, et envoyez à nouveau.2153Avant la v2.1.281, chaque envoi échouait avec ce message une fois qu'un **Stop** Remote Control ou un message urgent entre sessions était arrivé alors que la boîte de dialogue était ouverte. Sur ces versions, fermez la boîte de dialogue, rouvrez-la, et envoyez à nouveau.

2151 2154 

2152<h2 id="request-errors">2155<h2 id="request-errors">

2153 Erreurs de requête2156 Erreurs de requête


2865* Si votre requête ne portait pas sur un sujet de cybersécurité, exécutez `/feedback` pour signaler le faux positif2868* Si votre requête ne portait pas sur un sujet de cybersécurité, exécutez `/feedback` pour signaler le faux positif

2866* Pour continuer à travailler dans la même session, appuyez deux fois sur Échap ou exécutez `/rewind` pour revenir à un checkpoint avant le tour qui a déclenché le signalement, puis prenez une approche différente. Voir [Checkpointing](/docs/fr/checkpointing).2869* Pour continuer à travailler dans la même session, appuyez deux fois sur Échap ou exécutez `/rewind` pour revenir à un checkpoint avant le tour qui a déclenché le signalement, puis prenez une approche différente. Voir [Checkpointing](/docs/fr/checkpointing).

2867 2870 

2871<h3 id="output-blocked-by-content-filtering-policy">

2872 Output blocked by content filtering policy

2873</h3>

2874 

2875Le filtre de contenu de sortie de l'API a arrêté la réponse que Claude générait. Le texte du message provient de l'API :

2876 

2877```text theme={null}

2878API Error: Output blocked by content filtering policy

2879```

2880 

2881Claude Code affiche l'erreur dès que le blocage arrive et termine la requête à ce moment-là. Il ne réessaie pas la requête, ne la renvoie pas sans streaming et ne bascule pas vers un [modèle de secours](/docs/fr/model-config#fallback-model-chains). Avant v2.1.285, Claude Code pouvait renvoyer et réessayer une requête bloquée, parfois pendant plusieurs minutes, avant de vous afficher l'erreur.

2882 

2883**Que faire :**

2884 

2885* Reformulez votre dernier message ou adoptez une approche différente

2886* Pour revenir à un checkpoint avant le tour qui a déclenché le blocage, appuyez deux fois sur Échap ou exécutez `/rewind`. Voir [Checkpointing](/docs/fr/checkpointing)

2887 

2868<h2 id="installation-errors">2888<h2 id="installation-errors">

2869 Erreurs d'installation2889 Erreurs d'installation

2870</h2>2890</h2>


4414 Teammate's agent definition was not restored4434 Teammate's agent definition was not restored

4415</h3>4435</h3>

4416 4436 

4417Claude a messagé un coéquipier d'[équipe d'agents](/docs/fr/agent-teams) arrêté, et Claude Code l'a ramené sans réappliquer la [définition du sous-agent](/docs/fr/agent-teams#use-subagent-definitions-for-teammates) à partir de laquelle il a été généré, parce que son fichier de définition provenait d'un dossier sans confiance enregistrée. L'avis suit le rapport de reprise dans le résultat de l'outil de l'agent d'envoi :4437Claude a messagé un coéquipier d'[équipe d'agents](/docs/fr/agent-teams) arrêté, et Claude Code l'a ramené sans réappliquer la [définition du sous-agent](/docs/fr/agent-teams#use-subagent-definitions-for-teammates) à partir de laquelle il a été généré. L'avis suit le rapport de reprise dans le résultat de l'outil de l'agent d'envoi et nomme la raison. Quand le fichier de définition provenait d'un dossier sans confiance enregistrée, il se lit :

4418 4438 

4419```text wrap theme={null}4439```text wrap theme={null}

4420Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.4440Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.


4467 Cross-session message was dropped at the recipient session's inbox4487 Cross-session message was dropped at the recipient session's inbox

4468</h3>4488</h3>

4469 4489 

4470Claude a envoyé un [message inter-sessions](/docs/fr/cross-session-messaging) à une autre de vos sessions sur cette machine, et la boîte aux lettres de cette session l'a rejeté avant que Claude dans cette session le lise. La ligne nomme l'adresse du destinataire et, quand le destinataire a donné une raison, ajoute la raison après un tiret :4490Claude a envoyé un [message inter-sessions](/docs/fr/cross-session-messaging) à une autre de vos sessions sur cette machine, et la boîte aux lettres de cette session l'a rejeté avant que Claude dans cette session le lise. La ligne nomme le destinataire et, quand le destinataire a donné une raison, ajoute la raison après un tiret :

4471 4491 

4472```text wrap theme={null}4492```text wrap theme={null}

4473Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.4493Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.

hooks.md +562 −551

Details

40| :- | :- |40| :- | :- |

41| `SessionStart` | Quand une session commence ou reprend |41| `SessionStart` | Quand une session commence ou reprend |

42| `Setup` | Quand vous démarrez Claude Code avec `--init-only`, ou avec `--init` ou `--maintenance` en mode `-p`. Pour une préparation unique en CI ou dans les scripts |42| `Setup` | Quand vous démarrez Claude Code avec `--init-only`, ou avec `--init` ou `--maintenance` en mode `-p`. Pour une préparation unique en CI ou dans les scripts |

43| `UserPromptSubmit` | Quand vous soumettez une invite, avant que Claude la traite |43| `UserPromptSubmit` | Quand un prompt est soumis, avant que Claude le traite. Se déclenche également lors des [tours que Claude Code démarre de lui-même](/docs/fr/hooks#userpromptsubmit) |

44| `UserPromptExpansion` | Quand une commande tapée par l'utilisateur se développe en une invite, avant qu'elle n'atteigne Claude. Peut bloquer l'expansion |44| `UserPromptExpansion` | Quand une commande tapée par l'utilisateur se développe en une invite, avant qu'elle n'atteigne Claude. Peut bloquer l'expansion |

45| `PreToolUse` | Avant qu'un appel d'outil s'exécute. Peut le bloquer |45| `PreToolUse` | Avant qu'un appel d'outil s'exécute. Peut le bloquer |

46| `PermissionRequest` | Quand un appel d'outil nécessite une décision de permission |46| `PermissionRequest` | Quand un appel d'outil nécessite une décision de permission |


1159 Événements de hook1159 Événements de hook

1160</h2>1160</h2>

1161 1161 

1162Chaque événement correspond à un point du cycle de vie de Claude Code où les hooks peuvent s'exécuter. Les sections ci-dessous sont ordonnées pour correspondre au cycle de vie : de la configuration de la session à la boucle agentive jusqu'à la fin de la session. Chaque section décrit quand l'événement se déclenche, quels matchers il supporte, l'entrée JSON qu'il reçoit, et comment contrôler le comportement via la sortie.1162Chaque événement correspond à un point du cycle de vie de Claude Code où des hooks peuvent s'exécuter. Les sections ci-dessous suivent l'ordre du cycle de vie : de la configuration de la session à la fin de la session, en passant par la boucle agentique. Chaque section décrit quand l'événement se déclenche, quels matchers il prend en charge, l'entrée JSON qu'il reçoit et comment contrôler le comportement via la sortie.

1163 1163 

1164<h3 id="sessionstart">1164<h3 id="sessionstart">

1165 SessionStart1165 SessionStart

1166</h3>1166</h3>

1167 1167 

1168S'exécute quand Claude Code démarre une nouvelle session ou reprend une session existante. Utile pour charger le contexte de développement comme les problèmes existants ou les modifications récentes de votre base de code, ou pour configurer des variables d'environnement. Pour un contexte statique qui ne nécessite pas de script, utilisez plutôt [CLAUDE.md](/docs/fr/memory).1168S'exécute lorsque Claude Code démarre une nouvelle session ou reprend une session existante. Utile pour charger du contexte de développement, comme les issues existantes ou les modifications récentes de votre base de code, ou pour définir des variables d'environnement. Pour un contexte statique qui ne nécessite pas de script, utilisez plutôt [CLAUDE.md](/docs/fr/memory).

1169 1169 

1170SessionStart s'exécute à chaque session, donc gardez ces hooks rapides. Seuls les hooks `type: "command"` et `type: "mcp_tool"` sont supportés. Voir [Champs de hook MCP tool](#mcp-tool-hook-fields) pour savoir quand les hooks `mcp_tool` s'exécutent.1170SessionStart s'exécute à chaque session, gardez donc ces hooks rapides. Seuls les hooks `type: "command"` et `type: "mcp_tool"` sont pris en charge. Consultez [Champs des hooks d'outil MCP](#mcp-tool-hook-fields) pour savoir quand les hooks `mcp_tool` s'exécutent.

1171 1171 

1172La valeur du matcher correspond à la façon dont la session a été initiée :1172La valeur du matcher correspond à la manière dont la session a été initiée :

1173 1173 

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

1175| :- | :- |1175| :- | :- |

1176| `startup` | Nouvelle session |1176| `startup` | Nouvelle session |

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

1178| `clear` | `/clear` |1178| `clear` | `/clear` |

1179| `compact` | Compaction automatique ou manuelle |1179| `compact` | Compaction automatique ou manuelle |

1180| `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) |1180| `fork` | Une nouvelle session dérivée d'une session existante : `--fork-session` avec `--resume` ou `--continue`, la copie en arrière-plan de `/fork`, `/branch`, ou une conversation que vous [déplacez en arrière-plan](/docs/fr/agent-view#from-inside-a-session) |

1181 1181 

1182Avant v2.1.214, les sessions créées rapportaient la source `"resume"`.1182Avant la v2.1.214, les sessions dérivées indiquaient la source `"resume"`.

1183 1183 

1184Quand 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.1184Lorsque 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 saisir du texte immédiatement, et une conversation que vous avez reprise s'affiche sans attendre les hooks. La première réponse de Claude attend toujours la fin des hooks, afin que leur contexte parvienne à Claude.

1185 1185 

1186Quand 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.1186Lorsque vous changez de conversation avec `/resume` au sein d'une session, le changement attend au contraire la fin des hooks. Si vous exécutez `/clear` ou passez à une autre conversation alors que des hooks en arrière-plan sont encore en cours d'exécution, rien de ce qu'ils renvoient ne s'applique à la session.

1187 1187 

1188La 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.1188La même attente s'applique au lancement, y compris pour une session reprise : un prompt que vous envoyez pendant que les hooks SessionStart sont encore en cours d'exécution ne parvient à Claude qu'une fois ceux-ci terminés.

1189 1189 

1190Pendant l'une ou l'autre attente, appuyez sur `Esc` pour reprendre l'invite dans l'entrée sans l'envoyer. Les hooks continuent de s'exécuter.1190Pendant l'une ou l'autre attente, appuyez sur `Esc` pour ramener le prompt dans la zone de saisie sans l'envoyer. Les hooks continuent de s'exécuter.

1191 1191 

1192<h4 id="sessionstart-input">1192<h4 id="sessionstart-input">

1193 Entrée SessionStart1193 Entrée de SessionStart

1194</h4>1194</h4>

1195 1195 

1196En plus des [champs d'entrée communs](#common-input-fields), les hooks SessionStart reçoivent `source` et optionnellement `model`, `agent_type`, et `session_title` :1196En plus des [champs d'entrée communs](#common-input-fields), les hooks SessionStart reçoivent `source` et, facultativement, `model`, `agent_type` et `session_title` :

1197 1197 

1198| Champ | Description |1198| Champ | Description |

1199| :- | :- |1199| :- | :- |

1200| `source` | Comment la session a démarré : `"startup"` pour les nouvelles sessions, `"resume"` pour les sessions reprises, `"clear"` après `/clear`, `"compact"` après compaction, ou `"fork"` pour une nouvelle session créée à partir d'une session existante |1200| `source` | Comment la session a démarré : `"startup"` pour les nouvelles sessions, `"resume"` pour les sessions reprises, `"clear"` après `/clear`, `"compact"` après une compaction, ou `"fork"` pour une nouvelle session dérivée d'une session existante |

1201| `model` | L'identifiant du modèle actif. Il peut être omis, par exemple après `/clear` ou quand une session est restaurée via la récupération de conversation, donc vérifiez le champ avant de le lire |1201| `model` | L'identifiant du modèle actif. Il peut être omis, par exemple après `/clear` ou lorsqu'une session est restaurée via la récupération de conversation ; vérifiez donc la présence du champ avant de le lire |

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

1203| `session_title` | Le titre personnalisé de la session, présent quand un est défini, par exemple avec `--name`, `/rename`, la sortie `sessionTitle` d'un hook, ou la méthode `renameSession()` du SDK Agent. Un hook qui émet `sessionTitle` peut vérifier ce champ d'abord pour éviter de remplacer un titre personnalisé existant |1203| `session_title` | Le titre personnalisé de la session, présent lorsqu'il est défini, par exemple avec `--name`, `/rename`, la sortie `sessionTitle` d'un hook, ou `renameSession()` de l'Agent SDK. Un hook qui émet `sessionTitle` peut d'abord vérifier ce champ pour éviter d'écraser un titre personnalisé existant |

1204 1204 

1205Une session que vous n'avez pas nommée peut toujours avoir un [titre généré](/docs/fr/sessions#name-your-sessions). Ce titre n'est pas un titre personnalisé et n'apparaît pas dans `session_title`.1205Une session que vous n'avez pas nommée peut tout de même avoir un [titre généré](/docs/fr/sessions#name-your-sessions). Ce titre n'est pas un titre personnalisé et n'apparaît pas dans `session_title`.

1206 1206 

1207Quand `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.1207Lorsque `source` vaut `"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 indiquer ce que coûte la reprise d'une conversation ancienne avant la première requête, par exemple dans un [`systemMessage`](#json-output). Ces champs nécessitent Claude Code v2.1.251 ou ultérieure.

1208 1208 

1209| Champ | Description |1209| Champ | Description |

1210| :- | :- |1210| :- | :- |

1211| `seconds_since_last_response` | Secondes d'horloge murale depuis la dernière réponse dans la transcription reprise |1211| `seconds_since_last_response` | Secondes réelles écoulées depuis la dernière réponse dans la transcription reprise |

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

1213| `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 |1213| `prompt_cache_likely_expired` | `true` lorsque la dernière réponse est plus ancienne que la [durée de vie du cache de prompt](/docs/fr/prompt-caching#cache-lifetime) de la session ou qu'une compaction ultérieure a remplacé la conversation mise en cache |

1214| `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 |1214| `estimated_cache_write_usd` | Coût estimé en dollars américains de l'écriture de `context_tokens` dans le cache de prompt sur le modèle de la session, hors réponse |

1215 1215 

1216Cet exemple montre l'entrée pour une session reprise 90 minutes après sa dernière réponse :1216Cet exemple montre l'entrée pour une session reprise 90 minutes après sa dernière réponse :

1217 1217 


1231```1231```

1232 1232 

1233<h4 id="sessionstart-decision-control">1233<h4 id="sessionstart-decision-control">

1234 Contrôle de décision SessionStart1234 Contrôle de décision de SessionStart

1235</h4>1235</h4>

1236 1236 

1237Claude 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 :1237Claude Code ajoute au contexte de Claude la sortie stdout qu'il [traite comme du texte brut](#exit-code-0). En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez renvoyer ces champs propres à l'événement :

1238 1238 

1239| Champ | Description |1239| Champ | Description |

1240| :- | :- |1240| :- | :- |

1241| `additionalContext` | Chaîne ajoutée au contexte de Claude au début de la conversation, avant la première invite. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) pour savoir comment le texte est livré et ce qu'il faut y mettre |1241| `additionalContext` | Chaîne ajoutée au contexte de Claude au début de la conversation, avant le premier prompt. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) pour savoir comment le texte est transmis et ce qu'il faut y mettre |

1242| `initialUserMessage` | Chaîne utilisée comme premier message utilisateur de la session. S'applique en [mode non-interactif](/docs/fr/headless) avec le drapeau `-p`, où elle devient le premier tour même si aucune invite n'est fournie. Si une invite est fournie, elle suit comme le tour suivant. Contrairement à `additionalContext`, qui s'attache à un tour existant, ceci crée le tour |1242| `initialUserMessage` | Chaîne utilisée comme premier message utilisateur de la session. S'applique en [mode non interactif](/docs/fr/headless) avec le flag `-p`, où elle devient le premier tour même si aucun prompt n'est fourni. Si un prompt est fourni, il suit comme tour suivant. Contrairement à `additionalContext`, qui s'attache à un tour existant, ce champ crée le tour |

1243| `sessionTitle` | Définit le titre de la session, avec le même effet que `/rename`. Utilisez pour nommer les sessions automatiquement à partir du dossier de lancement, de la branche git, ou du nom du worktree. S'applique quand `source` est `"startup"`, `"resume"`, ou `"fork"` ; ignoré sur `"clear"` et `"compact"` |1243| `sessionTitle` | Définit le titre de la session, avec le même effet que `/rename`. Utilisez-le pour nommer automatiquement les sessions à partir du dossier de lancement, de la branche git ou du nom du worktree. S'applique lorsque `source` vaut `"startup"`, `"resume"` ou `"fork"` ; ignoré pour `"clear"` et `"compact"` |

1244| `watchPaths` | Tableau de chemins absolus à surveiller pour les événements [FileChanged](#filechanged) pendant cette session |1244| `watchPaths` | Tableau de chemins absolus à surveiller pour les événements [FileChanged](#filechanged) pendant cette session |

1245| `reloadSkills` | Booléen. Quand `true`, Claude Code réanalyse les répertoires [skill](/docs/fr/skills) et command après que les hooks SessionStart se terminent, donc les skills que le hook a installés sont disponibles dans la même session, à partir de la première invite |1245| `reloadSkills` | Booléen. Lorsqu'il vaut `true`, Claude Code analyse à nouveau les répertoires de [skills](/docs/fr/skills) et de commandes une fois les hooks SessionStart terminés, de sorte que les skills installés par le hook sont disponibles dans la même session, dès le premier prompt |

1246 1246 

1247```json theme={null}1247```json theme={null}

1248{1248{


1254}1254}

1255```1255```

1256 1256 

1257Puisque 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`.1257Comme la sortie stdout brute parvient déjà à Claude pour cet événement, un hook qui ne fait que charger du contexte peut écrire directement sur stdout sans construire de JSON. Utilisez la forme JSON lorsque vous devez combiner du contexte avec d'autres champs tels que `sessionTitle`.

1258 1258 

1259Utilisez `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 :1259Utilisez `reloadSkills` lorsqu'un hook SessionStart installe ou met à jour des skills. La découverte des skills s'exécute normalement avant la fin des hooks SessionStart, de sorte que les fichiers que le hook écrit dans `~/.claude/skills/` ou `.claude/skills/` n'apparaîtraient sinon que dans la session suivante. Cet exemple synchronise un dépôt de skills partagé et demande la nouvelle analyse :

1260 1260 

1261```bash theme={null}1261```bash theme={null}

1262#!/bin/bash1262#!/bin/bash


1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1268```1268```

1269 1269 

1270L'URL du référentiel est un espace réservé ; remplacez-la par votre propre référentiel de skills. Avec l'espace réservé, le clone échoue et imprime un message `fatal:` sur stderr. Stderr d'un hook SessionStart qui quitte 0 est informatif uniquement, donc la demande `reloadSkills` s'applique toujours.1270L'URL du dépôt est un espace réservé ; remplacez-la par votre propre dépôt de skills. Avec l'espace réservé, le clone échoue et affiche un message `fatal:` sur stderr. La sortie stderr d'un hook SessionStart qui se termine avec le code 0 est uniquement informative, donc la demande `reloadSkills` s'applique quand même.

1271 1271 

1272<h4 id="persist-environment-variables">1272<h4 id="persist-environment-variables">

1273 Persister les variables d'environnement1273 Conserver les variables d'environnement

1274</h4>1274</h4>

1275 1275 

1276Les hooks SessionStart ont accès à la variable d'environnement `CLAUDE_ENV_FILE`, qui fournit un chemin de fichier où vous pouvez persister les variables d'environnement pour les commandes Bash suivantes.1276Les hooks SessionStart ont accès à la variable d'environnement `CLAUDE_ENV_FILE`, qui fournit un chemin de fichier dans lequel vous pouvez conserver des variables d'environnement pour les commandes Bash suivantes.

1277 1277 

1278Pour définir des variables d'environnement individuelles, écrivez des instructions `export` dans `CLAUDE_ENV_FILE`. Utilisez l'ajout (`>>`) pour préserver les variables définies par d'autres hooks :1278Pour définir des variables d'environnement individuelles, écrivez des instructions `export` dans `CLAUDE_ENV_FILE`. Utilisez l'ajout (`>>`) pour préserver les variables définies par d'autres hooks :

1279 1279 


1289exit 01289exit 0

1290```1290```

1291 1291 

1292Pour capturer tous les changements d'environnement à partir des commandes de configuration, comparez les variables exportées avant et après :1292Pour capturer toutes les modifications d'environnement effectuées par des commandes de configuration, comparez les variables exportées avant et après :

1293 1293 

1294```bash theme={null}1294```bash theme={null}

1295#!/bin/bash1295#!/bin/bash


1309```1309```

1310 1310 

1311<Note>1311<Note>

1312 `CLAUDE_ENV_FILE` est disponible pour les hooks SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged), et [FileChanged](#filechanged). Les autres types de hooks n'ont pas accès à cette variable.1312 `CLAUDE_ENV_FILE` est disponible pour les hooks SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) et [FileChanged](#filechanged). Les autres types de hooks n'ont pas accès à cette variable.

1313</Note>1313</Note>

1314 1314 

1315<h3 id="setup">1315<h3 id="setup">

1316 Setup1316 Setup

1317</h3>1317</h3>

1318 1318 

1319S'exécute uniquement quand vous lancez Claude Code avec `--init-only`, ou avec `--init` ou `--maintenance` en [mode non-interactif](/docs/fr/headless) avec le drapeau `-p`. Il ne s'exécute pas au démarrage normal. Utilisez-le pour l'installation de dépendances ponctuelles ou le nettoyage programmé que vous déclenchez explicitement à partir de CI ou de scripts, séparé du démarrage normal de la session. Pour l'initialisation par session, utilisez plutôt [SessionStart](#sessionstart).1319Se déclenche uniquement lorsque vous lancez Claude Code avec `--init-only`, ou avec `--init` ou `--maintenance` en [mode non interactif](/docs/fr/headless) avec le flag `-p`. Il ne se déclenche pas lors d'un démarrage normal. Utilisez-le pour une installation ponctuelle de dépendances ou un nettoyage planifié que vous déclenchez explicitement depuis la CI ou des scripts, indépendamment du démarrage normal de session. Pour une initialisation par session, utilisez plutôt [SessionStart](#sessionstart).

1320 1320 

1321La valeur du matcher correspond au drapeau CLI qui a déclenché le hook :1321La valeur du matcher correspond au flag CLI qui a déclenché le hook :

1322 1322 

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

1324| :- | :- |1324| :- | :- |

1325| `init` | `claude --init-only` ou `claude -p --init` |1325| `init` | `claude --init-only` ou `claude -p --init` |

1326| `maintenance` | `claude -p --maintenance` |1326| `maintenance` | `claude -p --maintenance` |

1327 1327 

1328Quand vous exécutez `claude --init-only`, Claude Code exécute les hooks Setup et les hooks `SessionStart` avec le matcher `startup`, puis quitte sans démarrer une conversation.1328Lorsque vous exécutez `claude --init-only`, Claude Code exécute les hooks Setup et les hooks `SessionStart` avec le matcher `startup`, puis se termine sans démarrer de conversation.

1329 1329 

1330Quand vous démarrez ou continuez une conversation avec `-p`, vous devez également fournir une invite, comme argument ou piped sur stdin. Vous pouvez ignorer l'invite quand un hook `SessionStart` fournit [`initialUserMessage`](#sessionstart-decision-control) ou quand vous reprenez une session avec un [appel d'outil différé](#defer-a-tool-call-for-later).1330Lorsque vous démarrez ou poursuivez une conversation avec `-p`, vous devez également fournir un prompt, en argument ou transmis via stdin. Vous pouvez omettre le prompt lorsqu'un hook `SessionStart` fournit [`initialUserMessage`](#sessionstart-decision-control) ou lorsque vous reprenez une session avec un [appel d'outil différé](#defer-a-tool-call-for-later).

1331 1331 

1332En cas de succès, `--init-only` n'imprime rien sur le terminal. Pour confirmer que les hooks se sont exécutés, commencez par `claude --debug-file <path> --init-only`, en remplaçant `<path>` par un emplacement de fichier journal, et vérifiez le journal pour les entrées de hook Setup et SessionStart.1332En cas de succès, `--init-only` n'affiche rien dans le terminal. Pour confirmer que les hooks se sont exécutés, lancez `claude --debug-file <path> --init-only`, en remplaçant `<path>` par l'emplacement d'un fichier de log, et recherchez dans le log les entrées des hooks Setup et SessionStart.

1333 1333 

1334Parce que Setup ne s'exécute pas à chaque lancement, un plugin qui a besoin d'une dépendance installée ne peut pas compter sur Setup seul. Le modèle pratique est de vérifier la dépendance à la première utilisation et d'installer en cas d'absence, par exemple un hook ou skill qui teste `${CLAUDE_PLUGIN_DATA}/node_modules` et exécute `npm install` s'il est absent. Voir le [répertoire de données persistantes](/docs/fr/plugins/components#path-variables-and-persistent-data) pour savoir où stocker les dépendances installées. Si vous distribuez votre plugin via une marketplace, vous n'aurez peut-être pas besoin de ce modèle : Claude Code [installe automatiquement les dépendances de package Node.js éligibles](/docs/fr/plugins/loading#node-js-package-dependencies) quand il met en cache le plugin.1334Comme Setup ne se déclenche pas à chaque lancement, un plugin qui a besoin d'une dépendance installée ne peut pas s'appuyer uniquement sur Setup. L'approche pratique consiste à vérifier la présence de la dépendance lors de la première utilisation et à l'installer si elle est absente, par exemple avec un hook ou un skill qui teste la présence de `${CLAUDE_PLUGIN_DATA}/node_modules` et exécute `npm install` en son absence. Consultez le [répertoire de données persistantes](/docs/fr/plugins/components#path-variables-and-persistent-data) pour savoir où stocker les dépendances installées. Si vous distribuez votre plugin via une marketplace, vous n'aurez peut-être pas besoin de cette approche : Claude Code [installe automatiquement les dépendances de packages Node.js éligibles](/docs/fr/plugins/loading#node-js-package-dependencies) lorsqu'il met le plugin en cache.

1335 1335 

1336<h4 id="setup-input">1336<h4 id="setup-input">

1337 Entrée Setup1337 Entrée de Setup

1338</h4>1338</h4>

1339 1339 

1340En plus des [champs d'entrée communs](#common-input-fields), les hooks Setup reçoivent un champ `trigger` défini à `"init"` ou `"maintenance"` :1340En plus des [champs d'entrée communs](#common-input-fields), les hooks Setup reçoivent un champ `trigger` défini sur `"init"` ou `"maintenance"` :

1341 1341 

1342```json theme={null}1342```json theme={null}

1343{1343{


1350```1350```

1351 1351 

1352<h4 id="setup-decision-control">1352<h4 id="setup-decision-control">

1353 Contrôle de décision Setup1353 Contrôle de décision de Setup

1354</h4>1354</h4>

1355 1355 

1356Les 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`.1356Les hooks Setup ne peuvent pas bloquer ; l'exécution continue quel que soit le code de sortie. Quel que soit le code de sortie, Claude Code ignore les [champs de sortie JSON](#json-output) d'un hook Setup, tels que `systemMessage`, `continue` et `hookSpecificOutput.additionalContext`. Avec `-p`, la sortie stdout, la sortie stderr et le code de sortie d'un hook Setup n'apparaissent dans la sortie de l'exécution que sous forme d'[événements `hook_response`](/docs/fr/headless#read-session-metadata) lorsque vous lancez avec `--output-format stream-json --verbose`.

1357 1357 

1358Les 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).1358Les hooks Setup ont accès à `CLAUDE_ENV_FILE`. Les variables écrites dans ce fichier persistent dans les commandes Bash suivantes de la session, 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 dans [Champs des hooks d'outil MCP](#mcp-tool-hook-fields).

1359 1359 

1360<h3 id="instructionsloaded">1360<h3 id="instructionsloaded">

1361 InstructionsLoaded1361 InstructionsLoaded

1362</h3>1362</h3>

1363 1363 

1364S'exécute quand un fichier `CLAUDE.md` ou `.claude/rules/*.md` est chargé dans le contexte. Cet événement se déclenche au démarrage de la session pour les fichiers chargés avec impatience et à nouveau plus tard quand les fichiers sont chargés avec paresse, par exemple quand Claude accède à un sous-répertoire qui contient un `CLAUDE.md` imbriqué ou quand les règles conditionnelles avec le frontmatter `paths:` correspondent. Le hook ne supporte pas le blocage ou le contrôle de décision. Il s'exécute de manière asynchrone à des fins d'observabilité.1364Se déclenche lorsqu'un fichier `CLAUDE.md` ou `.claude/rules/*.md` est chargé dans le contexte. Cet événement se déclenche au démarrage de la session pour les fichiers chargés immédiatement, puis à nouveau plus tard lorsque des fichiers sont chargés à la demande, par exemple lorsque Claude accède à un sous-répertoire contenant un `CLAUDE.md` imbriqué ou lorsque des règles conditionnelles avec un frontmatter `paths:` correspondent. Le hook ne prend en charge ni le blocage ni le contrôle de décision. Il s'exécute de manière asynchrone à des fins d'observabilité.

1365 1365 

1366Cet événement ne se déclenche pas quand Claude [lit `AGENTS.md` directement](/docs/fr/memory#agents-md) via le paramètre **Project instructions**. Il se déclenche quand un `CLAUDE.md` importe votre `AGENTS.md`, avec `load_reason` défini à `include` comme pour tout autre fichier importé, et quand `CLAUDE.md` est un lien symbolique vers lui, comme un chargement normal de `CLAUDE.md`.1366Cet événement ne se déclenche pas lorsque Claude [lit `AGENTS.md` directement](/docs/fr/memory#agents-md) via le paramètre **Project instructions**. Il se déclenche lorsqu'un `CLAUDE.md` importe votre `AGENTS.md`, avec `load_reason` défini sur `include` comme pour tout autre fichier importé, et lorsque `CLAUDE.md` est un lien symbolique vers celui-ci, comme un chargement normal de `CLAUDE.md`.

1367 1367 

1368Le matcher s'exécute contre `load_reason`. Par exemple, utilisez `"matcher": "session_start"` pour se déclencher uniquement pour les fichiers chargés au démarrage de la session, ou `"matcher": "path_glob_match|nested_traversal"` pour se déclencher uniquement pour les chargements avec paresse.1368Le matcher s'applique à `load_reason`. Par exemple, utilisez `"matcher": "session_start"` pour ne déclencher le hook que pour les fichiers chargés au démarrage de la session, ou `"matcher": "path_glob_match|nested_traversal"` pour ne le déclencher que pour les chargements à la demande.

1369 1369 

1370<h4 id="instructionsloaded-input">1370<h4 id="instructionsloaded-input">

1371 Entrée InstructionsLoaded1371 Entrée d'InstructionsLoaded

1372</h4>1372</h4>

1373 1373 

1374En plus des [champs d'entrée communs](#common-input-fields), les hooks InstructionsLoaded reçoivent ces champs :1374En plus des [champs d'entrée communs](#common-input-fields), les hooks InstructionsLoaded reçoivent ces champs :

1375 1375 

1376| Champ | Description |1376| Champ | Description |

1377| :- | :- |1377| :- | :- |

1378| `file_path` | Chemin absolu du fichier d'instructions qui a été chargé |1378| `file_path` | Chemin absolu du fichier d'instructions chargé |

1379| `memory_type` | Portée du fichier : `"User"`, `"Project"`, `"Local"`, ou `"Managed"` |1379| `memory_type` | Portée du fichier : `"User"`, `"Project"`, `"Local"` ou `"Managed"` |

1380| `load_reason` | Pourquoi le fichier a été chargé : `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"`, ou `"compact"`. La valeur `"compact"` se déclenche quand les fichiers d'instructions sont rechargés après un événement de compaction |1380| `load_reason` | Raison du chargement du fichier : `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ou `"compact"`. La valeur `"compact"` apparaît lorsque des fichiers d'instructions sont rechargés après un événement de compaction |

1381| `globs` | Modèles de glob de chemin du frontmatter `paths:` du fichier, le cas échéant. Présent uniquement pour les chargements `path_glob_match` |1381| `globs` | Motifs glob de chemin issus du frontmatter `paths:` du fichier, le cas échéant. Présent uniquement pour les chargements `path_glob_match` |

1382| `trigger_file_path` | Chemin du fichier dont l'accès a déclenché ce chargement, pour les chargements avec paresse |1382| `trigger_file_path` | Chemin du fichier dont l'accès a déclenché ce chargement, pour les chargements à la demande |

1383| `parent_file_path` | Chemin du fichier d'instructions parent qui a inclus celui-ci, pour les chargements `include` |1383| `parent_file_path` | Chemin du fichier d'instructions parent qui a inclus celui-ci, pour les chargements `include` |

1384 1384 

1385```json theme={null}1385```json theme={null}


1395```1395```

1396 1396 

1397<h4 id="instructionsloaded-decision-control">1397<h4 id="instructionsloaded-decision-control">

1398 Contrôle de décision InstructionsLoaded1398 Contrôle de décision d'InstructionsLoaded

1399</h4>1399</h4>

1400 1400 

1401Les hooks InstructionsLoaded n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer ou modifier le chargement des instructions. Claude Code rejette leurs [champs de sortie JSON](#json-output), comme `systemMessage` et `continue`. Utilisez cet événement pour l'audit logging, le suivi de conformité, ou l'observabilité.1401Les hooks InstructionsLoaded n'ont pas de contrôle de décision. Ils ne peuvent ni bloquer ni modifier le chargement des instructions. Claude Code ignore leurs [champs de sortie JSON](#json-output), tels que `systemMessage` et `continue`. Utilisez cet événement pour la journalisation d'audit, le suivi de conformité ou l'observabilité.

1402 1402 

1403<h3 id="userpromptsubmit">1403<h3 id="userpromptsubmit">

1404 UserPromptSubmit1404 UserPromptSubmit

1405</h3>1405</h3>

1406 1406 

1407S'exécute quand l'utilisateur soumet une invite, avant que Claude la traite. Cela vous permet d'ajouter du contexte supplémentaire basé sur l'invite/conversation, de valider les invites, ou de bloquer certains types d'invites.1407S'exécute lorsqu'un prompt est soumis, avant que Claude ne le traite. Cela vous permet

1408d'ajouter du contexte supplémentaire en fonction du prompt ou de la conversation, de valider des prompts ou

1409de bloquer certains types de prompts.

1408 1410 

1409Les hooks `UserPromptSubmit` ont un délai d'expiration par défaut de 30 secondes pour les types `command`, `http`, et `mcp_tool`, plus court que le défaut de 600 secondes pour ces types sur la plupart des autres événements. Parce que ce hook s'exécute avant chaque invite et bloque le traitement du modèle jusqu'à ce qu'il se termine, un hook bloqué paralyse la session. Si votre hook a besoin de plus de temps, définissez le champ `timeout` dans l'entrée du hook.1411Les hooks `UserPromptSubmit` ne se déclenchent pas uniquement pour les prompts que vous tapez. Claude Code les exécute également lors :

1410 1412 

1411À part un hook de commande que vous exécutez avec [`async: true`](#run-hooks-in-the-background), un hook de commande, HTTP, ou MCP tool `UserPromptSubmit` qui atteint son délai d'expiration est annulé et sa sortie, y compris tout `additionalContext`, est rejetée. L'invite atteint toujours Claude sans ce contexte. La transcription affiche un avis nommant le hook, le délai d'expiration qui s'est déclenché, et que la sortie a été rejetée.1413* du déclenchement d'une [tâche planifiée](/docs/fr/scheduled-tasks), y compris une itération de `/loop`

1414* du retour d'un [sous-agent en arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background) vers la session qui l'a lancé

1415* de la réception dans votre conversation principale d'un [message envoyé par une autre session](/docs/fr/cross-session-messaging)

1412 1416 

1413Un hook de rappel [Agent SDK](/docs/fr/agent-sdk/hooks) sur `UserPromptSubmit` qui atteint son délai d'expiration bloque l'invite avec un message nommant le hook et le délai d'expiration, parce qu'un rappel là peut agir comme une porte de politique qui ne doit pas échouer ouvertement. La session continue. Avant v2.1.208, un délai d'expiration de rappel sur cet événement terminait le tour avec une erreur d'exécution.1417Les hooks `UserPromptSubmit` ont un délai d'expiration par défaut de 30 secondes pour les types `command`, `http` et `mcp_tool`, plus court que la valeur par défaut de 600 secondes pour ces types sur la plupart des autres événements. Comme ce hook s'exécute avant chaque prompt et bloque le traitement par le modèle jusqu'à ce qu'il se termine, un hook bloqué paralyse la session. Si votre hook a besoin de plus de temps, définissez le champ `timeout` dans l'entrée du hook.

1418 

1419À l'exception d'un hook de commande que vous exécutez avec [`async: true`](#run-hooks-in-the-background), un hook de commande, HTTP ou d'outil MCP `UserPromptSubmit` qui atteint son délai d'expiration est annulé et sa sortie, y compris tout `additionalContext`, est ignorée. Le prompt parvient tout de même à Claude sans ce contexte. La transcription affiche un avis indiquant le nom du hook, le délai d'expiration atteint et le fait que la sortie a été ignorée.

1420 

1421Un [hook callback de l'Agent SDK](/docs/fr/agent-sdk/hooks) sur `UserPromptSubmit` qui atteint son délai d'expiration bloque le prompt avec un message indiquant le nom du hook et le délai d'expiration, car un callback à cet endroit peut jouer le rôle de garde-fou de politique qui ne doit pas laisser passer en cas d'échec. La session continue. Avant la v2.1.208, l'expiration d'un callback sur cet événement terminait le tour avec une erreur d'exécution.

1414 1422 

1415<h4 id="userpromptsubmit-input">1423<h4 id="userpromptsubmit-input">

1416 Entrée UserPromptSubmit1424 Entrée d'UserPromptSubmit

1417</h4>1425</h4>

1418 1426 

1419En plus des [champs d'entrée communs](#common-input-fields), les hooks UserPromptSubmit reçoivent le champ `prompt` contenant le texte que l'utilisateur a soumis. Le contenu collé qui s'est effondré en un espace réservé `[Pasted text #N]` arrive développé en place. Dans les sessions où Claude Code [marque le texte collé pour Claude](/docs/fr/terminal-config#how-claude-treats-pasted-text), ce contenu développé se situe entre une ligne `<pasted_content id="…">` et une ligne `</pasted_content id="…">`, donc tenez compte de ces lignes si votre hook analyse l'invite.1427En plus des [champs d'entrée communs](#common-input-fields), les hooks UserPromptSubmit reçoivent le champ `prompt` contenant le texte soumis. Le contenu collé qui a été réduit en un espace réservé `[Pasted text #N]` arrive développé à sa place. Dans les sessions où Claude Code [signale le texte collé à Claude](/docs/fr/terminal-config#how-claude-treats-pasted-text), ce contenu développé se trouve entre une ligne `<pasted_content id="…">` et une ligne `</pasted_content id="…">` ; tenez donc compte de ces lignes si votre hook analyse le prompt.

1420 1428 

1421Les hooks UserPromptSubmit reçoivent également `session_title` quand la session a un titre personnalisé, avec la même signification que le [champ SessionStart `session_title`](#sessionstart-input).1429Les hooks UserPromptSubmit reçoivent également `session_title` lorsque la session a un titre personnalisé, avec la même signification que le [champ `session_title` de SessionStart](#sessionstart-input).

1422 1430 

1423```json theme={null}1431```json theme={null}

1424{1432{


1432```1440```

1433 1441 

1434<h4 id="userpromptsubmit-decision-control">1442<h4 id="userpromptsubmit-decision-control">

1435 Contrôle de décision UserPromptSubmit1443 Contrôle de décision d'UserPromptSubmit

1436</h4>1444</h4>

1437 1445 

1438Les hooks `UserPromptSubmit` peuvent contrôler si une invite utilisateur est traitée et ajouter du contexte. Tous les [champs de sortie JSON](#json-output) sont disponibles.1446Les hooks `UserPromptSubmit` peuvent contrôler si un prompt soumis est traité et ajouter du contexte. Tous les [champs de sortie JSON](#json-output) sont disponibles.

1439 1447 

1440Il y a deux façons d'ajouter du contexte à la conversation en cas de code de sortie 0 :1448Il existe deux façons d'ajouter du contexte à la conversation avec le code de sortie 0 :

1441 1449 

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

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

1444 1452 

1445Aucun 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).1453Aucun des deux canaux ne produit d'entrée visible dans la transcription. La sortie stdout brute et la valeur `additionalContext` sont chacune injectées sous forme de rappel système commençant par le nom du hook ; Claude lit les deux. Pour confirmer la transmission, consultez le [log de débogage](#debug-hooks).

1446 1454 

1447Pour bloquer une invite, retournez un objet JSON avec `decision` défini à `"block"` :1455Pour bloquer un prompt, renvoyez un objet JSON avec `decision` défini sur `"block"` :

1448 1456 

1449| Champ | Description |1457| Champ | Description |

1450| :- | :- |1458| :- | :- |

1451| `decision` | `"block"` empêche l'invite d'être traitée. Omettez pour permettre à l'invite de procéder |1459| `decision` | `"block"` arrête le prompt avant qu'il n'atteigne Claude. Omettez-le pour laisser le prompt se poursuivre |

1452| `reason` | Montré à l'utilisateur quand `decision` est `"block"`. Non ajouté au contexte |1460| `reason` | Affiché à l'utilisateur lorsque `decision` vaut `"block"`. Non ajouté au contexte |

1453| `additionalContext` | Chaîne ajoutée au contexte de Claude aux côtés de l'invite soumise. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |1461| `additionalContext` | Chaîne ajoutée au contexte de Claude en plus du prompt soumis. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) |

1454| `sessionTitle` | Définit le titre de la session. Utilisez pour nommer les sessions automatiquement en fonction du contenu de l'invite |1462| `sessionTitle` | Définit le titre de la session. Utilisez-le pour nommer automatiquement les sessions en fonction du contenu du prompt |

1455| `suppressOriginalPrompt` | Si `true` quand `decision` est `"block"`, omet le texte d'invite original du message de blocage montré à l'utilisateur. Voir [Ce qu'une invite bloquée laisse derrière](#what-a-blocked-prompt-leaves-behind) |1463| `suppressOriginalPrompt` | Si `true` lorsque le hook bloque le prompt, le texte du prompt est exclu du message de blocage. Consultez [Ce que laisse un prompt bloqué](#what-a-blocked-prompt-leaves-behind) |

1456 1464 

1457Un hook qui bloque en quittant 2 s'achemine de la même façon que `reason` : le message de blocage montre le texte stderr à l'utilisateur, et il n'est pas ajouté au contexte.1465Un hook qui bloque en se terminant avec le code 2 est traité de la même manière que `reason` : le message de blocage affiche le texte de stderr à l'utilisateur, et celui-ci n'est pas ajouté au contexte.

1458 1466 

1459```json theme={null}1467```json theme={null}

1460{1468{


1470```1478```

1471 1479 

1472<h4 id="what-a-blocked-prompt-leaves-behind">1480<h4 id="what-a-blocked-prompt-leaves-behind">

1473 Ce qu'une invite bloquée laisse derrière1481 Ce que laisse un prompt bloqué

1474</h4>1482</h4>

1475 1483 

1476Une invite bloquée n'atteint jamais Claude, mais son texte n'est pas supprimé partout. Par défaut, le message de blocage montré à l'utilisateur se termine par `Original prompt:` suivi du texte soumis, et Claude Code écrit ce message dans le fichier de transcription de la session sur le disque. Pour laisser le texte hors du message, imprimez JSON avec `"suppressOriginalPrompt": true` à l'intérieur de `hookSpecificOutput`. Cela fonctionne que le hook bloque avec `decision: "block"` ou en quittant 2. Un hook de sortie 2 qui n'imprime pas JSON obtient toujours le texte d'invite dans son message de blocage.1484Un prompt bloqué n'atteint jamais Claude, mais son texte n'est pas supprimé partout. Par défaut, le message de blocage affiché à l'utilisateur se termine par `Original prompt:` suivi du texte soumis, et Claude Code écrit ce message dans le fichier de transcription de la session sur le disque. Pour exclure le texte du message, affichez un JSON avec `"suppressOriginalPrompt": true` dans `hookSpecificOutput`. Cela fonctionne que le hook bloque avec `decision: "block"` ou en se terminant avec le code 2. Un hook qui se termine avec le code 2 sans afficher de JSON inclut toujours le texte du prompt dans son message de blocage.

1477 1485 

1478`suppressOriginalPrompt` change uniquement le message de blocage. Le texte soumis peut toujours apparaître dans les fichiers locaux comme la transcription de session et votre historique d'invite, donc un hook de blocage n'est pas un moyen de garder un secret hors du disque. Pour limiter ou supprimer ces fichiers, voir [Stockage en texte brut](/docs/fr/claude-directory#plaintext-storage) et [Effacer les données locales](/docs/fr/claude-directory#clear-local-data).1486`suppressOriginalPrompt` ne modifie que le message de blocage. Le texte soumis peut toujours apparaître dans des fichiers locaux tels que la transcription de la session et votre historique de prompts ; un hook de blocage n'est donc pas un moyen d'empêcher qu'un secret soit écrit sur le disque. Pour limiter ou supprimer ces fichiers, consultez [Stockage en texte brut](/docs/fr/claude-directory#plaintext-storage) et [Effacer les données locales](/docs/fr/claude-directory#clear-local-data).

1479 1487 

1480<h3 id="userpromptexpansion">1488<h3 id="userpromptexpansion">

1481 UserPromptExpansion1489 UserPromptExpansion

1482</h3>1490</h3>

1483 1491 

1484S'exécute quand une commande tapée par l'utilisateur se développe en une invite avant d'atteindre Claude. Utilisez ceci pour bloquer des commandes spécifiques de l'invocation directe, injecter du contexte pour une skill particulière, ou enregistrer quelles commandes les utilisateurs invoquent. Par exemple, un hook correspondant à `deploy` peut bloquer `/deploy` sauf si un fichier d'approbation est présent, ou un hook correspondant à une skill de révision peut ajouter la liste de contrôle de révision de l'équipe comme `additionalContext`.1492S'exécute lorsqu'une commande saisie par l'utilisateur se développe en prompt avant d'atteindre Claude. Utilisez-le pour empêcher l'invocation directe de commandes spécifiques, injecter du contexte pour un skill particulier ou journaliser les commandes invoquées par les utilisateurs. Par exemple, un hook correspondant à `deploy` peut bloquer `/deploy` sauf si un fichier d'approbation est présent, ou un hook correspondant à un skill de revue peut ajouter la checklist de revue de l'équipe en tant qu'`additionalContext`.

1485 1493 

1486Cet événement couvre le chemin que `PreToolUse` ne couvre pas : un hook `PreToolUse` correspondant à l'outil `Skill` se déclenche uniquement quand Claude appelle l'outil, mais taper `/skillname` directement contourne `PreToolUse`. `UserPromptExpansion` se déclenche sur ce chemin direct.1494Cet événement couvre le chemin que `PreToolUse` ne couvre pas : un hook `PreToolUse` correspondant à l'outil `Skill` ne se déclenche que lorsque Claude appelle l'outil, mais saisir `/skillname` directement contourne `PreToolUse`. `UserPromptExpansion` se déclenche sur ce chemin direct.

1487 1495 

1488Correspond à `command_name`. Laissez le matcher vide pour se déclencher sur chaque commande de type invite.1496Correspond à `command_name`. Laissez le matcher vide pour le déclencher sur chaque commande de type prompt.

1489 1497 

1490<h4 id="userpromptexpansion-input">1498<h4 id="userpromptexpansion-input">

1491 Entrée UserPromptExpansion1499 Entrée d'UserPromptExpansion

1492</h4>1500</h4>

1493 1501 

1494En 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.1502En 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` d'origine. Le champ `expansion_type` vaut `slash_command` pour les skills et les commandes personnalisées, ou `mcp_prompt` pour les prompts de serveurs MCP.

1495 1503 

1496```json theme={null}1504```json theme={null}

1497{1505{


1509```1517```

1510 1518 

1511<h4 id="userpromptexpansion-decision-control">1519<h4 id="userpromptexpansion-decision-control">

1512 Contrôle de décision UserPromptExpansion1520 Contrôle de décision d'UserPromptExpansion

1513</h4>1521</h4>

1514 1522 

1515Les hooks `UserPromptExpansion` peuvent bloquer l'expansion ou ajouter du contexte. Tous les [champs de sortie JSON](#json-output) sont disponibles.1523Les hooks `UserPromptExpansion` peuvent bloquer le développement ou ajouter du contexte. Tous les [champs de sortie JSON](#json-output) sont disponibles.

1516 1524 

1517| Champ | Description |1525| Champ | Description |

1518| :- | :- |1526| :- | :- |

1519| `decision` | `"block"` empêche la commande de se développer. Omettez pour permettre à la commande de procéder |1527| `decision` | `"block"` empêche le développement de la commande. Omettez-le pour la laisser se poursuivre |

1520| `reason` | Montré à l'utilisateur quand `decision` est `"block"` |1528| `reason` | Affiché à l'utilisateur lorsque `decision` vaut `"block"` |

1521| `additionalContext` | Chaîne ajoutée au contexte de Claude aux côtés de l'invite développée. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |1529| `additionalContext` | Chaîne ajoutée au contexte de Claude en plus du prompt développé. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) |

1522 1530 

1523Un hook qui bloque en quittant 2 s'achemine de la même façon que `reason` : le message de blocage montre le texte stderr à l'utilisateur.1531Un hook qui bloque en se terminant avec le code 2 est traité de la même manière que `reason` : le message de blocage affiche le texte de stderr à l'utilisateur.

1524 1532 

1525```json theme={null}1533```json theme={null}

1526{1534{


1537 MessageDisplay1545 MessageDisplay

1538</h3>1546</h3>

1539 1547 

1540S'exécute pendant qu'un message d'assistant s'affiche à l'écran. Claude Code affiche le message par incréments : chaque fois qu'un lot de lignes nouvellement complétées est prêt à être rendu, le hook s'exécute une fois avec ces lignes et Claude Code rend le texte de remplacement du hook à leur place. Un long message produit plusieurs appels ; un court message peut ne produire qu'un seul.1548S'exécute pendant qu'un message de l'assistant est diffusé à l'écran. Claude Code affiche le message par incréments : chaque fois qu'un lot de lignes nouvellement terminées est prêt à être affiché, le hook s'exécute une fois avec ces lignes et Claude Code affiche le texte de remplacement du hook à leur place. Un message long produit plusieurs appels ; un message court peut n'en produire qu'un seul.

1541 1549 

1542Utilisez MessageDisplay pour :1550Utilisez MessageDisplay pour :

1543 1551 

1544* supprimer le markdown pour un affichage minimal1552* supprimer le markdown pour un affichage minimal

1545* transformer le texte qu'une application Agent SDK montre à ses utilisateurs1553* transformer le texte qu'une application Agent SDK affiche à ses utilisateurs

1546* masquer les clés API ou les noms d'hôtes internes des réponses de Claude1554* masquer les clés API ou les noms d'hôtes internes dans les réponses de Claude

1547 1555 

1548Claude 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.1556Claude Code retient chaque lot jusqu'à ce que votre hook renvoie une réponse, gardez donc le hook rapide. Si le hook échoue ou expire, Claude Code affiche le texte d'origine. Le délai d'expiration par défaut pour cet événement est de 10 secondes ; si votre hook a besoin de plus de temps, définissez le champ `timeout` dans l'entrée du hook.

1549 1557 

1550MessageDisplay 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.1558MessageDisplay concerne uniquement l'affichage : le texte de remplacement ne modifie que ce qui est rendu à l'écran. La transcription et ce que voit Claude conservent le texte d'origine, de sorte que Claude ne voit jamais le remplacement, et le mode verbeux affiche l'original. Le hook ne reçoit que le texte des messages de l'assistant, donc les résultats d'outils et le texte que vous saisissez s'affichent sans modification.

1551 1559 

1552MessageDisplay 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.1560MessageDisplay ne prend pas en charge les matchers et se déclenche pour chaque message de l'assistant qui diffuse du texte ; les messages sans texte, comme les réponses ne contenant que des appels d'outils, ne le déclenchent pas.

1553 1561 

1554Dans les exécutions non-interactives, y compris les requêtes Agent SDK et `claude -p`, MessageDisplay s'exécute une fois par message d'assistant au lieu d'une fois par lot de lignes. L'appel unique arrive après que le message se termine et porte le texte du message complet : `index` est `0`, `final` est `true`, et `delta` contient le message entier. Un hook qui collecte le texte `delta` pour chaque message reçoit le même texte total dans les deux modes.1562Dans les exécutions non interactives, y compris les requêtes Agent SDK et `claude -p`, MessageDisplay s'exécute une fois par message de l'assistant au lieu d'une fois par lot de lignes. L'appel unique arrive une fois le message terminé et contient le texte complet du message : `index` vaut `0`, `final` vaut `true`, et `delta` contient l'intégralité du message. Un hook qui collecte le texte `delta` de chaque message reçoit le même texte total dans les deux modes.

1555 1563 

1556<h4 id="messagedisplay-input">1564<h4 id="messagedisplay-input">

1557 Entrée MessageDisplay1565 Entrée de MessageDisplay

1558</h4>1566</h4>

1559 1567 

1560En 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.1568En 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 des lots dépendent de la manière dont le texte est diffusé ; utilisez donc `index` et `final` pour suivre la progression dans un message plutôt que de vous attendre à ce que les lignes soient regroupées d'une manière particulière.

1561 1569 

1562| Champ | Description |1570| Champ | Description |

1563| :- | :- |1571| :- | :- |

1564| `turn_id` | UUID du tour actuel |1572| `turn_id` | UUID du tour en cours |

1565| `message_id` | UUID du message d'assistant en cours d'affichage. Stable sur chaque lot du même message. Ce n'est pas l'ID API `msg_…`, donc il ne peut pas être corrélé avec les IDs de message de transcription |1573| `message_id` | UUID du message de l'assistant en cours d'affichage. Stable sur tous les lots d'un même message. Il ne s'agit pas de l'identifiant `msg_…` de l'API, il ne peut donc pas être mis en correspondance avec les identifiants de message de la transcription |

1566| `index` | Index de base zéro de ce lot dans le message |1574| `index` | Index à partir de zéro de ce lot dans le message |

1567| `final` | `true` sur le dernier lot du message. Chaque message a exactement un lot final |1575| `final` | `true` sur le dernier lot du message. Chaque message a exactement un lot final |

1568| `delta` | Les lignes nouvellement complétées depuis le lot précédent, y compris les sauts de ligne de fin. Toujours des lignes entières, sauf le lot final qui peut se terminer au milieu d'une ligne. Dans les exécutions interactives, le delta du lot final est vide quand le message se termine sur un saut de ligne, donc traitez `final`, pas un delta non-vide, comme le signal de fin de message. Dans les exécutions Agent SDK et `claude -p`, l'appel unique porte le message entier |1576| `delta` | Les lignes nouvellement terminées depuis le lot précédent, retours à la ligne de fin inclus. Toujours des lignes entières, sauf pour le lot final qui peut se terminer en milieu de ligne. Dans les exécutions interactives, le delta du lot final est vide lorsque le message se termine par un retour à la ligne ; considérez donc `final`, et non un delta non vide, comme le signal de fin de message. Dans les exécutions Agent SDK et `claude -p`, l'appel unique contient l'intégralité du message |

1569 1577 

1570```json theme={null}1578```json theme={null}

1571{1579{


1582```1590```

1583 1591 

1584<h4 id="messagedisplay-output">1592<h4 id="messagedisplay-output">

1585 Sortie MessageDisplay1593 Sortie de MessageDisplay

1586</h4>1594</h4>

1587 1595 

1588En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks MessageDisplay peuvent retourner `displayContent` pour remplacer le delta à l'écran :1596En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks MessageDisplay peuvent renvoyer `displayContent` pour remplacer le delta à l'écran :

1589 1597 

1590| Champ | Description |1598| Champ | Description |

1591| :- | :- |1599| :- | :- |

1592| `displayContent` | Texte affiché à la place du delta. Omettez-le pour afficher l'original |1600| `displayContent` | Texte affiché à la place du delta. Omettez-le pour afficher l'original |

1593 1601 

1594Les hooks MessageDisplay n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer le message ou changer ce qui est stocké dans la transcription ou envoyé à Claude. Claude Code agit sur `displayContent` de leur sortie JSON et rejette `systemMessage` et `continue`.1602Les hooks MessageDisplay n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer le message ni modifier ce qui est stocké dans la transcription ou envoyé à Claude. Claude Code tient compte de `displayContent` dans leur sortie JSON et ignore `systemMessage` et `continue`.

1595 1603 

1596Cet exemple supprime le formatage markdown des réponses de Claude pour un affichage en texte brut. Le script lit chaque lot depuis stdin, supprime les marqueurs gras et les backticks de code en ligne de `delta`, et retourne le résultat comme `displayContent`.1604Cet exemple supprime la mise en forme markdown des réponses de Claude pour un affichage en texte brut. Le script lit chaque lot depuis stdin, supprime les marqueurs de gras et les backticks de code en ligne de `delta`, et renvoie le résultat en tant que `displayContent`.

1597 1605 

1598<Tabs>1606<Tabs>

1599 <Tab title="macOS/Linux">1607 <Tab title="macOS/Linux">


1652 }1660 }

1653 ```1661 ```

1654 1662 

1655 Le drapeau `-NoProfile` ignore le chargement de votre profil PowerShell pour que le hook démarre rapidement, et `-ExecutionPolicy Bypass` permet à PowerShell d'exécuter le fichier de script local.1663 Le flag `-NoProfile` évite le chargement de votre profil PowerShell pour que le hook démarre rapidement, et `-ExecutionPolicy Bypass` permet à PowerShell d'exécuter le fichier de script local.

1656 1664 

1657 Enregistrez ce script dans `.claude/hooks/plain-display.ps1` dans votre projet :1665 Enregistrez ce script dans `.claude/hooks/plain-display.ps1` dans votre projet :

1658 1666 


1669 </Tab>1677 </Tab>

1670</Tabs>1678</Tabs>

1671 1679 

1672Les lots sans markdown passent inchangés. Si le script échoue, par exemple parce que `jq` est manquant, Claude Code affiche le texte original et note l'échec uniquement dans la [sortie de débogage](#debug-hooks), pas dans la session.1680Les lots sans markdown passent sans modification. Si le script échoue, par exemple parce que `jq` est absent, Claude Code affiche le texte d'origine et ne signale l'échec que dans la [sortie de débogage](#debug-hooks), pas dans la session.

1673 1681 

1674<h3 id="pretooluse">1682<h3 id="pretooluse">

1675 PreToolUse1683 PreToolUse

1676</h3>1684</h3>

1677 1685 

1678S'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).1686S'exécute après que Claude a créé les paramètres de l'outil et avant le traitement de l'appel d'outil. Correspond à n'importe quel nom d'outil sauf `EndConversation` : les outils intégrés tels que `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` et `ExitPlanMode`, ainsi que tout [nom d'outil MCP](#match-mcp-tools).

1679 1687 

1680Pour 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.1688Pour exécuter un hook lorsqu'un fichier spécifique change sur le disque, quel que soit ce qui l'a écrit, utilisez [FileChanged](#filechanged) plutôt que de faire correspondre les outils d'édition de fichiers par leur nom. Contrairement à PreToolUse, Claude Code exécute les hooks FileChanged après la modification, et ils n'ont pas de contrôle de décision ; ils ne peuvent donc pas bloquer l'écriture.

1681 1689 

1682<Warning>1690<Warning>

1683 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).1691 PreToolUse ne s'exécute que lorsque Claude appelle un outil. Les fichiers que vous [référencez avec `@` dans votre prompt](/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 du prompt, donc aucun hook PreToolUse ne se déclenche pour eux, y compris les hooks correspondant à `Read`. Pour empêcher des chemins spécifiques d'être référencés avec `@`, utilisez plutôt une [règle de refus `Read`](/docs/fr/permissions#read-and-edit).

1684 1692 

1685 PreToolUse ne se déclenche pas non plus pour [`EndConversation`](/docs/fr/tools-reference#endconversation-tool-behavior).1693 PreToolUse ne se déclenche pas non plus pour [`EndConversation`](/docs/fr/tools-reference#endconversation-tool-behavior).

1686</Warning>1694</Warning>

1687 1695 

1688Utilisez [Contrôle de décision PreToolUse](#pretooluse-decision-control) pour permettre, refuser, demander, ou différer l'appel d'outil.1696Utilisez le [contrôle de décision de PreToolUse](#pretooluse-decision-control) pour autoriser, refuser, demander ou différer l'appel d'outil.

1689 1697 

1690Un hook de rappel [Agent SDK](/docs/fr/agent-sdk/hooks) sur `PreToolUse` qui dépasse son délai d'expiration bloque l'appel d'outil, et Claude reçoit un résultat d'erreur nommant le délai d'expiration. Un refus explicite retourné par un autre hook a toujours la priorité.1698Un [hook callback de l'Agent SDK](/docs/fr/agent-sdk/hooks) sur `PreToolUse` qui dépasse son délai d'expiration bloque l'appel d'outil, et Claude reçoit un résultat d'erreur indiquant le délai d'expiration. Un refus explicite renvoyé par un autre hook reste prioritaire.

1691 1699 

1692<h4 id="pretooluse-input">1700<h4 id="pretooluse-input">

1693 Entrée PreToolUse1701 Entrée de PreToolUse

1694</h4>1702</h4>

1695 1703 

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

1697 1705 

1698Pour 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.1706Pour un [outil MCP](#match-mcp-tools), l'entrée contient également `mcp_server`, un objet comportant le `name` du serveur et une `source` qui indique d'où provient la définition du serveur. Les valeurs de `source` incluent `plugin`, `sdk` et des portées de configuration telles que `user` et `project`. [`McpServerProvenance`](/docs/fr/agent-sdk/typescript#mcpserverprovenance) dans la référence de l'Agent SDK les liste toutes et indique comment traiter une valeur que vous ne reconnaissez pas. Fondez vos décisions de confiance sur `source` plutôt que sur `name` ou sur le préfixe de nom d'outil `mcp__<server>__`. Le champ `mcp_server` nécessite Claude Code v2.1.274 ou ultérieure.

1699 1707 

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

1701 1709 

1702* Claude Code développe `~` et les chemins relatifs avant que les hooks s'exécutent, donc un hook qui correspond à des chemins ne peut pas être contourné via `~` ou une orthographe relative du même chemin1710* Claude Code développe `~` et les chemins relatifs avant l'exécution des hooks, de sorte qu'un hook qui filtre sur les chemins ne peut pas être contourné via `~` ou une écriture relative du même chemin

1703* Sur Windows, le chemin arrive avec des séparateurs de barre oblique inverse, même quand votre hook s'exécute sous Git Bash où `$PWD` ressemble à `/c/project`1711* Sous Windows, le chemin arrive avec des barres obliques inverses comme séparateurs, même lorsque votre hook s'exécute sous Git Bash où `$PWD` ressemble à `/c/project`

1704* Une comparaison écrite avec des barres obliques avant, comme une vérification `/src/`, ne correspond jamais à un chemin de barre oblique inverse, et l'appel d'outil procède comme si le hook n'avait rien à bloquer1712* Une comparaison écrite avec des barres obliques, comme une vérification de `/src/`, ne correspond jamais à un chemin avec barres obliques inverses, et l'appel d'outil se poursuit comme si le hook n'avait rien à bloquer

1705* Normalisez les séparateurs avant de comparer : `FILE_PATH="${FILE_PATH//\\//}"` en Bash, ou `file_path.replace("\\", "/")` en Python, puis correspondez à un segment de chemin comme `/src/` plutôt que d'ancrer avec `^`, puisque le chemin est absolu1713* Normalisez les séparateurs avant de comparer : `FILE_PATH="${FILE_PATH//\\//}"` en Bash, ou `file_path.replace("\\", "/")` en Python, puis faites correspondre un segment de chemin tel que `/src/` plutôt que d'ancrer avec `^`, puisque le chemin est absolu

1706 1714 

1707Un appel `Write` sur Windows livre :1715Un appel `Write` sous Windows transmet :

1708 1716 

1709```json theme={null}1717```json theme={null}

1710{1718{


1718}1726}

1719```1727```

1720 1728 

1721Les champs `tool_input` dépendent de l'outil :1729Les champs de `tool_input` dépendent de l'outil :

1722 1730 

1723<a id="bash" />1731<a id="bash" />

1724 1732 


1726 Bash1734 Bash

1727</h5>1735</h5>

1728 1736 

1729Exécute les commandes shell.1737Exécute des commandes shell.

1730 1738 

1731| Champ | Type | Exemple | Description |1739| Champ | Type | Exemple | Description |

1732| :- | :- | :- | :- |1740| :- | :- | :- | :- |

1733| `command` | string | `"npm test"` | La commande shell à exécuter |1741| `command` | string | `"npm test"` | La commande shell à exécuter |

1734| `description` | string | `"Run test suite"` | Description optionnelle de ce que la commande fait |1742| `description` | string | `"Run test suite"` | Description facultative de ce que fait la commande |

1735| `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 |1743| `timeout` | number | `120000` | Délai d'expiration facultatif en millisecondes. Les valeurs supérieures au [maximum](/docs/fr/tools-reference#bash-tool-behavior) sont ramenées au maximum plutôt que rejetées |

1736| `run_in_background` | boolean | `false` | Si la commande doit s'exécuter en arrière-plan |1744| `run_in_background` | boolean | `false` | Indique s'il faut exécuter la commande en arrière-plan |

1737 1745 

1738Quand 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.1746Lorsqu'une commande Bash modifie des fichiers dans un dépôt Git, Claude Code peut enregistrer ce qui a changé. Il enregistre les modifications dans tous les modes de permission lorsque le paramètre [`bashEditDiffEnabled`](/docs/fr/settings-reference#basheditdiffenabled) active l'enregistrement ; l'entrée de ce paramètre indique quels fichiers peuvent le définir. Sinon, il ne les enregistre qu'en mode auto et en mode `bypassPermissions`, et uniquement lorsque Claude Code demande à Claude de modifier des fichiers via Bash. Définissez `bashEditDiffEnabled` sur `false` pour désactiver l'enregistrement. Les commandes en arrière-plan et les commandes en lecture seule ne comportent pas de diff.

1739 1747 

1740Votre 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.1748Votre [hook PostToolUse](#posttooluse) reçoit alors les fichiers modifiés dans `tool_response.bashEditDiff`. La liste couvre ce qui a changé dans le dépôt pendant l'exécution de la commande. Les fichiers ignorés par Git et les fichiers des sous-modules ne sont pas listés. Nécessite Claude Code v2.1.269 ou ultérieure.

1741 1749 

1742<Note>1750<Note>

1743 La liste est au mieux un effort et en bêta publique. Claude Code peut manquer un changement, inclure un fichier qu'un autre processus a changé au même moment, ou s'arrêter à ses limites de taille. La forme du champ peut changer. Utilisez la liste pour trouver ce à examiner, pas pour appliquer une politique.1751 La liste est fournie au mieux et est en bêta publique. Claude Code peut manquer une modification, inclure un fichier qu'un autre processus a modifié au même moment, ou s'arrêter à ses limites de taille. La structure du champ peut changer. Utilisez la liste pour savoir quoi examiner, pas pour appliquer une politique.

1744</Note>1752</Note>

1745 1753 

1746`changedFiles` et `files` listent ce que la commande a changé ; les champs restants disent à quel point cette liste est complète et fiable.1754`changedFiles` et `files` listent ce que la commande a modifié ; les autres champs indiquent dans quelle mesure cette liste est complète et fiable.

1747 1755 

1748| Champ | Type | Exemple | Description |1756| Champ | Type | Exemple | Description |

1749| :- | :- | :- | :- |1757| :- | :- | :- | :- |

1750| `changedFiles` | array | `["/path/to/src/app.ts"]` | Chemins absolus des fichiers que la commande a changés, au maximum 200. Présent chaque fois que `files` contient un diff ou `moreFiles` est au-dessus de zéro |1758| `changedFiles` | array | `["/path/to/src/app.ts"]` | Chemins absolus des fichiers modifiés par la commande, 200 au maximum. Présent dès que `files` contient un diff ou que `moreFiles` est supérieur à zéro |

1751| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de jusqu'à 5 fichiers modifiés, pour l'affichage. `created` ou `deleted` est `true` pour un fichier que la commande a ajouté ou supprimé |1759| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs d'au plus 5 fichiers modifiés, pour l'affichage. `created` ou `deleted` vaut `true` pour un fichier que la commande a ajouté ou supprimé |

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

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

1754| `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 |1762| `skipped` | boolean | `true` | Défini pour une commande Git qui déplace l'arbre de travail, comme `git checkout` ou `git stash`, de sorte que Claude Code ne calcule pas de diff |

1755| `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 |1763| `shared` | boolean | `true` | Défini lorsqu'un autre appel d'outil Bash, comme celui d'un sous-agent, s'est exécuté dans le même dépôt au même moment, de sorte que certaines modifications listées peuvent provenir de cette commande |

1756 1764 

1757<a id="powershell" />1765<a id="powershell" />

1758 1766 


1760 PowerShell1768 PowerShell

1761</h5>1769</h5>

1762 1770 

1763Exécute les commandes PowerShell. Voir l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool) pour la disponibilité par plateforme.1771Exécute des commandes PowerShell. Consultez l'[outil PowerShell](/docs/fr/tools-reference#powershell-tool) pour la disponibilité par plateforme.

1764 1772 

1765Les champs correspondent à l'outil Bash, avec la chaîne de commande dans `command` :1773Les champs sont identiques à ceux de l'outil Bash, avec la chaîne de commande dans `command` :

1766 1774 

1767| Champ | Type | Exemple | Description |1775| Champ | Type | Exemple | Description |

1768| :- | :- | :- | :- |1776| :- | :- | :- | :- |

1769| `command` | string | `"Get-ChildItem -Recurse"` | La commande PowerShell à exécuter |1777| `command` | string | `"Get-ChildItem -Recurse"` | La commande PowerShell à exécuter |

1770| `description` | string | `"List files recursively"` | Description optionnelle de ce que la commande fait |1778| `description` | string | `"List files recursively"` | Description facultative de ce que fait la commande |

1771| `timeout` | number | `120000` | Délai d'expiration optionnel en millisecondes |1779| `timeout` | number | `120000` | Délai d'expiration facultatif en millisecondes |

1772| `run_in_background` | boolean | `false` | Si la commande doit s'exécuter en arrière-plan |1780| `run_in_background` | boolean | `false` | Indique s'il faut exécuter la commande en arrière-plan |

1773 1781 

1774Correspondez à `Bash|PowerShell` dans les hooks qui inspectent les commandes shell, pour qu'ils couvrent les deux outils :1782Utilisez le matcher `Bash|PowerShell` dans les hooks qui inspectent les commandes shell, afin qu'ils couvrent les deux outils :

1775 1783 

1776* Sur Windows, partout où l'outil PowerShell est activé, Claude traite PowerShell comme le shell principal et achemine les commandes shell à travers lui.1784* Sous Windows, partout où l'outil PowerShell est activé, Claude traite PowerShell comme le shell principal et y fait passer les commandes shell.

1777* Sur Windows sans Git Bash, l'outil est activé automatiquement et Claude Code n'enregistre pas l'outil Bash du tout.1785* Sous Windows sans Git Bash, l'outil est activé automatiquement et Claude Code n'enregistre pas du tout l'outil Bash.

1778* Un hook qui correspond uniquement à `Bash` ne se déclenche jamais là.1786* Un hook qui ne correspond qu'à `Bash` ne s'y déclenche jamais.

1779 1787 

1780<h5 id="write">1788<h5 id="write">

1781 Write1789 Write

1782</h5>1790</h5>

1783 1791 

1784Crée ou remplace un fichier.1792Crée ou écrase un fichier.

1785 1793 

1786| Champ | Type | Exemple | Description |1794| Champ | Type | Exemple | Description |

1787| :- | :- | :- | :- |1795| :- | :- | :- | :- |


1796 1804 

1797| Champ | Type | Exemple | Description |1805| Champ | Type | Exemple | Description |

1798| :- | :- | :- | :- |1806| :- | :- | :- | :- |

1799| `file_path` | string | `"/path/to/file.txt"` | Chemin absolu du fichier à éditer |1807| `file_path` | string | `"/path/to/file.txt"` | Chemin absolu du fichier à modifier |

1800| `old_string` | string | `"original text"` | Texte à trouver et remplacer |1808| `old_string` | string | `"original text"` | Texte à rechercher et remplacer |

1801| `new_string` | string | `"replacement text"` | Texte de remplacement |1809| `new_string` | string | `"replacement text"` | Texte de remplacement |

1802| `replace_all` | boolean | `false` | Si toutes les occurrences doivent être remplacées |1810| `replace_all` | boolean | `false` | Indique s'il faut remplacer toutes les occurrences |

1803 1811 

1804<h5 id="read">1812<h5 id="read">

1805 Read1813 Read

1806</h5>1814</h5>

1807 1815 

1808Lit le contenu des fichiers.1816Lit le contenu d'un fichier.

1809 1817 

1810| Champ | Type | Exemple | Description |1818| Champ | Type | Exemple | Description |

1811| :- | :- | :- | :- |1819| :- | :- | :- | :- |

1812| `file_path` | string | `"/path/to/file.txt"` | Chemin absolu du fichier à lire |1820| `file_path` | string | `"/path/to/file.txt"` | Chemin absolu du fichier à lire |

1813| `offset` | number | `10` | Numéro de ligne optionnel pour commencer la lecture |1821| `offset` | number | `10` | Numéro de ligne facultatif à partir duquel commencer la lecture |

1814| `limit` | number | `50` | Nombre optionnel de lignes à lire |1822| `limit` | number | `50` | Nombre facultatif de lignes à lire |

1815 1823 

1816<h5 id="glob">1824<h5 id="glob">

1817 Glob1825 Glob

1818</h5>1826</h5>

1819 1827 

1820Trouve les fichiers correspondant à un modèle glob.1828Trouve les fichiers correspondant à un motif glob.

1821 1829 

1822| Champ | Type | Exemple | Description |1830| Champ | Type | Exemple | Description |

1823| :- | :- | :- | :- |1831| :- | :- | :- | :- |

1824| `pattern` | string | `"**/*.ts"` | Modèle glob pour correspondre aux fichiers |1832| `pattern` | string | `"**/*.ts"` | Motif glob auquel faire correspondre les fichiers |

1825| `path` | string | `"/path/to/dir"` | Répertoire optionnel à rechercher. Par défaut le répertoire de travail actuel |1833| `path` | string | `"/path/to/dir"` | Répertoire facultatif dans lequel rechercher. Par défaut, le répertoire de travail actuel |

1826 1834 

1827<h5 id="grep">1835<h5 id="grep">

1828 Grep1836 Grep

1829</h5>1837</h5>

1830 1838 

1831Recherche le contenu des fichiers avec des expressions régulières.1839Recherche dans le contenu des fichiers avec des expressions régulières.

1832 1840 

1833| Champ | Type | Exemple | Description |1841| Champ | Type | Exemple | Description |

1834| :- | :- | :- | :- |1842| :- | :- | :- | :- |

1835| `pattern` | string | `"TODO.*fix"` | Modèle d'expression régulière à rechercher |1843| `pattern` | string | `"TODO.*fix"` | Motif d'expression régulière à rechercher |

1836| `path` | string | `"/path/to/dir"` | Fichier ou répertoire optionnel à rechercher |1844| `path` | string | `"/path/to/dir"` | Fichier ou répertoire facultatif dans lequel rechercher |

1837| `glob` | string | `"*.ts"` | Modèle glob optionnel pour filtrer les fichiers |1845| `glob` | string | `"*.ts"` | Motif glob facultatif pour filtrer les fichiers |

1838| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"`, ou `"count"`. Par défaut `"files_with_matches"` |1846| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` ou `"count"`. Par défaut `"files_with_matches"` |

1839| `-i` | boolean | `true` | Recherche insensible à la casse |1847| `-i` | boolean | `true` | Recherche insensible à la casse |

1840| `multiline` | boolean | `false` | Activer la correspondance multiligne |1848| `multiline` | boolean | `false` | Active la correspondance multiligne |

1841 1849 

1842<h5 id="webfetch">1850<h5 id="webfetch">

1843 WebFetch1851 WebFetch

1844</h5>1852</h5>

1845 1853 

1846Récupère et traite le contenu web.1854Récupère et traite du contenu web.

1847 1855 

1848| Champ | Type | Exemple | Description |1856| Champ | Type | Exemple | Description |

1849| :- | :- | :- | :- |1857| :- | :- | :- | :- |

1850| `url` | string | `"https://example.com/api"` | URL pour récupérer le contenu |1858| `url` | string | `"https://example.com/api"` | URL dont récupérer le contenu |

1851| `prompt` | string | `"Extract the API endpoints"` | Invite à exécuter sur le contenu récupéré |1859| `prompt` | string | `"Extract the API endpoints"` | Prompt à exécuter sur le contenu récupéré |

1852 1860 

1853<h5 id="websearch">1861<h5 id="websearch">

1854 WebSearch1862 WebSearch

1855</h5>1863</h5>

1856 1864 

1857Recherche le web.1865Effectue une recherche sur le web.

1858 1866 

1859| Champ | Type | Exemple | Description |1867| Champ | Type | Exemple | Description |

1860| :- | :- | :- | :- |1868| :- | :- | :- | :- |

1861| `query` | string | `"react hooks best practices"` | Requête de recherche |1869| `query` | string | `"react hooks best practices"` | Requête de recherche |

1862| `allowed_domains` | array | `["docs.example.com"]` | Optionnel : inclure uniquement les résultats de ces domaines |1870| `allowed_domains` | array | `["docs.example.com"]` | Facultatif : inclure uniquement les résultats de ces domaines |

1863| `blocked_domains` | array | `["spam.example.com"]` | Optionnel : exclure les résultats de ces domaines |1871| `blocked_domains` | array | `["spam.example.com"]` | Facultatif : exclure les résultats de ces domaines |

1864 1872 

1865<h5 id="agent">1873<h5 id="agent">

1866 Agent1874 Agent

1867</h5>1875</h5>

1868 1876 

1869Crée un [sous-agent](/docs/fr/sub-agents).1877Lance un [sous-agent](/docs/fr/sub-agents).

1870 1878 

1871| Champ | Type | Exemple | Description |1879| Champ | Type | Exemple | Description |

1872| :- | :- | :- | :- |1880| :- | :- | :- | :- |

1873| `prompt` | string | `"Find all API endpoints"` | La tâche pour l'agent à effectuer |1881| `prompt` | string | `"Find all API endpoints"` | La tâche que l'agent doit effectuer |

1874| `description` | string | `"Find API endpoints"` | Description courte de la tâche |1882| `description` | string | `"Find API endpoints"` | Brève description de la tâche |

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

1876| `model` | string | `"sonnet"` | Alias de modèle optionnel pour remplacer le défaut |1884| `model` | string | `"sonnet"` | Alias de modèle facultatif pour remplacer le modèle par défaut |

1877 1885 

1878Quand 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 :1886Lorsqu'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 de l'exécution dans `tool_response`. Lisez ces champs pour inspecter l'exécution ; pour des agrégats de tokens et de coûts sur l'ensemble des sous-agents, utilisez les [compteurs de tokens et de coûts](/docs/fr/monitoring-usage#token-counter) filtrés sur `query_source` `"subagent"`, car `totalTokens` et `usage` ne couvrent que la requête finale :

1879 1887 

1880| Champ | Type | Exemple | Description |1888| Champ | Type | Exemple | Description |

1881| :- | :- | :- | :- |1889| :- | :- | :- | :- |

1882| `status` | string | `"completed"` | `"completed"` pour les sous-agents au premier plan, `"async_launched"` pour les sous-agents en arrière-plan. Les sous-agents s'exécutent en arrière-plan par défaut, donc un appel Agent qui omet `run_in_background` produit également `"async_launched"` |1890| `status` | string | `"completed"` | `"completed"` pour les sous-agents au premier plan, `"async_launched"` pour les sous-agents en arrière-plan. Les sous-agents s'exécutent en arrière-plan par défaut, donc un appel Agent qui omet `run_in_background` produit également `"async_launched"` |

1883| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identifiant pour l'exécution du sous-agent |1891| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identifiant de l'exécution du sous-agent |

1884| `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 |1892| `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 sur cette remise à leur place |

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

1886| `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 |1894| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modèles utilisés dans l'ordre, les répétitions consécutives étant fusionnées ; défini uniquement lorsque le modèle a été changé en cours d'exécution. Nécessite Claude Code v2.1.212 ou ultérieure |

1887| `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 |1895| `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. Il ne s'agit pas d'un total sur l'ensemble de l'exécution |

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

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

1890| `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` |1898| `usage` | object | `{"input_tokens": 8320, ...}` | Répartition des tokens par type pour la requête API finale : `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1891 1899 

1892Sur 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`.1900Avec Claude Code v2.1.271 ou ultérieure, 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), transmet son rapport via cet outil plutôt que de le renvoyer sous forme de texte. Le champ `content` de son résultat `completed` contient alors une brève note sur cette remise plutôt que le rapport lui-même. Pour lire le rapport, faites correspondre un hook `PreToolUse` ou `PostToolUse` à `SubagentHandback` et lisez `tool_input.message`.

1893 1901 

1894Pour les sous-agents en arrière-plan, l'outil retourne quand la tâche passe en arrière-plan, donc `tool_response` ne porte pas de champs d'utilisation : un lancement en arrière-plan retourne immédiatement, et une tâche au premier plan que Claude Code met en arrière-plan en cours d'exécution retourne à cette transition. Il a `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, et `resolvedModel`.1902Pour les sous-agents en arrière-plan, l'outil rend la main lorsque la tâche passe en arrière-plan, donc `tool_response` ne contient aucun champ d'utilisation : un lancement en arrière-plan rend la main immédiatement, et une tâche au premier plan que Claude Code passe en arrière-plan en cours d'exécution rend la main lors de cette transition. Elle contient `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` et `resolvedModel`.

1895 1903 

1896Sur une réponse `completed`, `resolvedModel` nomme le modèle sur lequel le sous-agent a démarré, qui peut différer de la valeur `model` dans `tool_input`, comme quand `availableModels` ou un autre remplacement s'applique. Sur une réponse `async_launched`, `resolvedModel` nomme le modèle en utilisation quand l'agent est passé en arrière-plan, donc un échange qui s'est produit avant la mise en arrière-plan est reflété là. `modelsUsed` et le comportement `resolvedModel` au moment de la mise en arrière-plan nécessitent Claude Code v2.1.212 ou ultérieur.1904Dans une réponse `completed`, `resolvedModel` indique le modèle sur lequel le sous-agent a démarré, qui peut différer de la valeur `model` dans `tool_input`, par exemple lorsque `availableModels` ou un autre remplacement s'applique. Dans une réponse `async_launched`, `resolvedModel` indique le modèle utilisé au moment où l'agent est passé en arrière-plan, de sorte qu'un changement survenu avant le passage en arrière-plan y est reflété. `modelsUsed` et le comportement de `resolvedModel` au moment du passage en arrière-plan nécessitent Claude Code v2.1.212 ou ultérieure.

1897 1905 

1898<a id="askuserquestion" />1906<a id="askuserquestion" />

1899 1907 


1905 1913 

1906| Champ | Type | Exemple | Description |1914| Champ | Type | Exemple | Description |

1907| :- | :- | :- | :- |1915| :- | :- | :- | :- |

1908| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Questions à présenter, chacune avec une chaîne `question`, un court `header`, un tableau `options`, et un drapeau `multiSelect` optionnel |1916| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Questions à présenter, chacune avec une chaîne `question`, un `header` court, un tableau `options` et un flag `multiSelect` facultatif |

1909| `answers` | object | `{"Which framework?": "React"}` | Optionnel. Mappe le texte de la question à l'étiquette d'option sélectionnée. Les réponses multi-sélection joignent les étiquettes avec des virgules. Claude ne définit pas ce champ ; fournissez-le via `updatedInput` pour répondre par programmation |1917| `answers` | object | `{"Which framework?": "React"}` | Facultatif. Associe le texte de la question au libellé de l'option sélectionnée. Les réponses à sélection multiple joignent les libellés par des virgules. Claude ne définit pas ce champ ; fournissez-le via `updatedInput` pour répondre par programmation |

1910 1918 

1911<h5 id="exitplanmode">1919<h5 id="exitplanmode">

1912 ExitPlanMode1920 ExitPlanMode

1913</h5>1921</h5>

1914 1922 

1915Présente un plan et demande à l'utilisateur de l'approuver avant que Claude quitte le [mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode). Claude écrit le plan dans un fichier sur le disque avant d'appeler l'outil, donc le `tool_input` littéral du modèle est généralement vide. Claude Code injecte le contenu du plan et le chemin du fichier avant de passer l'entrée aux hooks.1923Présente un plan et demande à l'utilisateur de l'approuver avant que Claude ne quitte le [mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode). Claude écrit le plan dans un fichier sur le disque avant d'appeler l'outil, donc le `tool_input` littéral fourni par le modèle est généralement vide. Claude Code injecte le contenu du plan et le chemin du fichier avant de transmettre l'entrée aux hooks.

1916 1924 

1917| Champ | Type | Exemple | Description |1925| Champ | Type | Exemple | Description |

1918| :- | :- | :- | :- |1926| :- | :- | :- | :- |

1919| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenu du plan en Markdown. Injecté à partir du fichier de plan sur le disque |1927| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenu du plan en Markdown. Injecté depuis le fichier de plan sur le disque |

1920| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Chemin du fichier de plan. Injecté |1928| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Chemin du fichier de plan. Injecté |

1921| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Déprécié. Claude Code accepte le champ mais l'ignore. Avant v2.1.205, il portait les permissions basées sur les invites que Claude a demandées pour implémenter le plan |1929| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Déprécié. Claude Code accepte le champ mais l'ignore. Avant la v2.1.205, il contenait les permissions basées sur des prompts que Claude demandait pour mettre en œuvre le plan |

1922 1930 

1923Dans `PostToolUse`, `tool_response` est un objet avec les champs `plan` et `filePath` contenant le plan approuvé, plus les drapeaux d'état internes. Lisez `tool_response.plan` pour le contenu du plan plutôt que de relire le fichier depuis le disque.1931Dans `PostToolUse`, `tool_response` est un objet avec des champs `plan` et `filePath` contenant le plan approuvé, ainsi que des indicateurs d'état internes. Lisez `tool_response.plan` pour obtenir le contenu du plan plutôt que de relire le fichier sur le disque.

1924 1932 

1925<h4 id="pretooluse-decision-control">1933<h4 id="pretooluse-decision-control">

1926 Contrôle de décision PreToolUse1934 Contrôle de décision de PreToolUse

1927</h4>1935</h4>

1928 1936 

1929Les hooks `PreToolUse` peuvent contrôler si un appel d'outil procède. Contrairement aux autres hooks qui utilisent un champ `decision` de haut niveau, PreToolUse retourne sa décision à l'intérieur d'un objet `hookSpecificOutput`. Cela lui donne un contrôle plus riche : quatre résultats (permettre, refuser, demander, ou différer) plus la capacité de modifier l'entrée d'outil avant l'exécution.1937Les hooks `PreToolUse` peuvent contrôler si un appel d'outil se poursuit. Contrairement aux autres hooks qui utilisent un champ `decision` de premier niveau, PreToolUse renvoie sa décision dans un objet `hookSpecificOutput`. Cela lui donne un contrôle plus riche : quatre issues possibles (autoriser, refuser, demander ou différer) ainsi que la possibilité de modifier l'entrée de l'outil avant l'exécution.

1930 1938 

1931| Champ | Description |1939| Champ | Description |

1932| :- | :- |1940| :- | :- |

1933| `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 |1941| `permissionDecision` | `"allow"` ignore la demande 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 nécessitent [`updatedInput` en complément](#allow-with-updatedinput). `"deny"` empêche l'appel d'outil. `"ask"` demande à l'utilisateur de confirmer. `"defer"` se termine proprement afin 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, quelle que soit la réponse du hook |

1934| `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 |1942| `permissionDecisionReason` | Pour `"ask"`, affiché à l'utilisateur dans la demande de permission. Lorsque Claude Code [refuse l'appel](/docs/fr/headless#turn-off-permission-prompts-in-unattended-runs) dans une exécution `-p` où personne ne peut répondre à cette demande, Claude lit la raison dans le résultat de l'outil à la place. Pour `"deny"`, affiché à Claude. Pour `"allow"` et `"defer"`, écrit uniquement dans le [log de débogage](#debug-hooks) |

1935| `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#foreground-commands-that-move-to-the-background) 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é |1943| `updatedInput` | Modifie les paramètres d'entrée de l'outil avant l'exécution. Remplace l'intégralité de l'objet d'entrée ; incluez donc les champs inchangés en plus des champs modifiés. Claude Code évalue les règles de permission et l'[éligibilité au passage automatique en arrière-plan](/docs/fr/tools-reference#foreground-commands-that-move-to-the-background) d'une commande Bash par rapport à l'entrée renvoyée par votre hook, et non à l'entrée envoyée par Claude. Combinez avec `"allow"` pour approuver automatiquement, ou avec `"ask"` pour montrer l'entrée modifiée à l'utilisateur. Ignoré pour `"defer"` |

1936| `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) |1944| `additionalContext` | Chaîne ajoutée au contexte de Claude en plus du résultat de l'outil. Ignorée lorsque `permissionDecision` vaut `"defer"`. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) |

1937 1945 

1938Quand plusieurs hooks PreToolUse retournent des décisions différentes, la priorité est `deny` > `defer` > `ask` > `allow`.1946Lorsque plusieurs hooks PreToolUse renvoient des décisions différentes, l'ordre de priorité est `deny` > `defer` > `ask` > `allow`.

1939 1947 

1940Un 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.1948Un hook qui bloque en se terminant avec le code 2 est traité de la même manière que `"deny"` : Claude voit le message stderr comme raison du refus.

1941 1949 

1942Quand 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.1950Lorsqu'un hook renvoie `"ask"`, la demande de permission affichée à l'utilisateur comporte une étiquette identifiant l'origine du hook : `[settings]` pour un hook provenant d'un fichier de paramètres ou du frontmatter d'un agent, `[plugin:<name>]` pour le hook d'un plugin, ou `[skill]` pour un hook provenant du frontmatter d'un skill. Cela aide les utilisateurs à comprendre quelle source de configuration demande une confirmation.

1943 1951 

1944Un `"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é.1952Un `"ask"` renvoyé par un hook force également une demande de permission en [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) : le classifieur peut toujours refuser l'appel d'outil, mais il ne peut pas l'approuver silencieusement. Avant la v2.1.211, le classifieur pouvait approuver une commande Bash s'exécutant hors du [sandbox](/docs/fr/sandboxing) sans afficher la demande réclamée par le hook ; le classifieur appliquait néanmoins ses propres règles de sécurité à cette commande, et un `"deny"` de hook était toujours respecté.

1945 1953 

1946```json theme={null}1954```json theme={null}

1947{1955{


1959 1967 

1960<span id="allow-with-updatedinput" />1968<span id="allow-with-updatedinput" />

1961 1969 

1962En [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.1970En [mode non interactif](/docs/fr/headless) avec le flag `-p`, Claude Code ne propose `AskUserQuestion` et `ExitPlanMode` que lorsque l'exécution dispose d'un [hôte de permissions](/docs/fr/headless#turn-off-permission-prompts-in-unattended-runs) pour recevoir la demande, comme un callback `canUseTool` de l'Agent SDK. Ces outils nécessitent une interaction de l'utilisateur. Renvoyer `permissionDecision: "allow"` avec `updatedInput` satisfait cette exigence : le hook lit l'entrée de l'outil depuis stdin, recueille la réponse via votre propre interface et la renvoie dans `updatedInput` afin que l'outil s'exécute sans demande. Renvoyer `"allow"` seul ne suffit pas pour ces outils. Pour `AskUserQuestion`, renvoyez le tableau `questions` d'origine et ajoutez un objet [`answers`](#askuserquestion) associant le texte de chaque question à la réponse choisie.

1963 1971 

1964À 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.1972Un outil MCP que son serveur marque avec [`_meta["anthropic/requiresUserInteraction"]`](/docs/fr/mcp#require-approval-for-a-specific-tool) est plus strict : un hook ne peut pas ignorer sa demande d'approbation avec `"allow"`, avec ou sans `updatedInput`, car Claude Code ne peut pas confirmer que le hook a recueilli l'interaction dont l'outil a besoin.

1965 1973 

1966<Note>1974<Note>

1967 PreToolUse utilisait auparavant les champs `decision` et `reason` de haut niveau, mais ceux-ci sont dépréciés pour cet événement. Utilisez plutôt `hookSpecificOutput.permissionDecision` et `hookSpecificOutput.permissionDecisionReason`. Les valeurs dépréciées `"approve"` et `"block"` correspondent à `"allow"` et `"deny"` respectivement. D'autres événements comme PostToolUse et Stop continuent d'utiliser `decision` et `reason` de haut niveau comme leur format actuel.1975 PreToolUse utilisait auparavant les champs `decision` et `reason` de premier niveau, mais ceux-ci sont dépréciés pour cet événement. Utilisez plutôt `hookSpecificOutput.permissionDecision` et `hookSpecificOutput.permissionDecisionReason`. Les valeurs dépréciées `"approve"` et `"block"` correspondent respectivement à `"allow"` et `"deny"`. D'autres événements comme PostToolUse et Stop continuent d'utiliser `decision` et `reason` de premier niveau comme format actuel.

1968</Note>1976</Note>

1969 1977 

1970<h4 id="defer-a-tool-call-for-later">1978<h4 id="defer-a-tool-call-for-later">

1971 Différer un appel d'outil pour plus tard1979 Différer un appel d'outil

1972</h4>1980</h4>

1973 1981 

1974`"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.1982`"defer"` est destiné aux intégrations qui exécutent `claude -p` comme sous-processus et lisent sa sortie JSON, comme une application Agent SDK ou une interface personnalisée construite sur Claude Code. Il permet à ce processus appelant de mettre Claude en pause sur un appel d'outil, de recueillir une saisie via sa propre interface, puis de reprendre là où il s'était arrêté. Claude Code ne respecte cette valeur qu'en [mode non interactif](/docs/fr/headless) avec le flag `-p`. Dans les sessions interactives, il consigne un avertissement et ignore le résultat du hook.

1975 1983 

1976L'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 :1984L'outil `AskUserQuestion` est le cas typique : Claude veut poser une question à l'utilisateur, mais il n'y a pas de terminal pour y répondre. Une exécution `-p` ne propose `AskUserQuestion` que lorsqu'elle dispose d'un [hôte de permissions](/docs/fr/headless#turn-off-permission-prompts-in-unattended-runs), comme un outil MCP que vous transmettez avec `--permission-prompt-tool` ; démarrez donc l'exécution avec l'un d'eux. L'aller-retour fonctionne ainsi :

1977 1985 

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

19792. 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.19872. Le hook renvoie `permissionDecision: "defer"`. L'outil ne s'exécute pas. Le processus se termine avec `stop_reason: "tool_deferred"` et l'appel d'outil en attente est conservé dans la transcription.

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

19814. 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.19894. Le processus appelant exécute `claude -p --resume <session-id>` avec le même hôte de permissions. Le même appel d'outil déclenche à nouveau `PreToolUse`.

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

1983 1991 

1984Le 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 :1992Le champ `deferred_tool_use` contient l'`id`, le `name` et l'`input` de l'outil. L'`input` correspond aux paramètres que Claude a générés pour l'appel d'outil, capturés avant l'exécution :

1985 1993 

1986```json theme={null}1994```json theme={null}

1987{1995{


1997}2005}

1998```2006```

1999 2007 

2000Il 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.2008Il n'y a ni délai d'expiration ni limite de nouvelles tentatives. La session reste sur le disque jusqu'à ce que vous la repreniez, sous réserve du nettoyage de rétention [`cleanupPeriodDays`](/docs/fr/settings-reference#cleanupperioddays), qui supprime les fichiers de session après 30 jours par défaut, conformément aux [règles du nettoyage de rétention](/docs/fr/claude-directory#cleaned-up-automatically). Si la réponse n'est pas prête lorsque vous reprenez, le hook peut renvoyer `"defer"` à nouveau et le processus se termine de la même manière. Le processus appelant décide quand sortir de la boucle en renvoyant finalement `"allow"` ou `"deny"` depuis le hook.

2001 2009 

2002`"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.2010`"defer"` ne fonctionne que lorsque 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 suit le flux de permission normal. Cette 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.

2003 2011 

2004Si 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.2012Si l'outil différé n'est plus disponible lorsque vous reprenez, le processus se termine avec `stop_reason: "tool_deferred_unavailable"` et `is_error: true` avant que le hook ne se déclenche. Cela se produit lorsqu'un serveur MCP qui fournissait l'outil n'est pas connecté pour la session reprise. Le payload `deferred_tool_use` est tout de même inclus afin que vous puissiez identifier l'outil manquant.

2005 2013 

2006<Note>2014<Note>

2007 Pour reprendre une session différée en mode plan, passez [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags) avec `--resume` pour que Claude Code puisse présenter le plan pour approbation. Si vous passez certains autres drapeaux de lancement, l'exécution reprise ne retourne pas au mode plan ; voir [Reprendre en mode plan avec `-p`](/docs/fr/sessions#resume-in-plan-mode-with-p). Nécessite Claude Code v2.1.246 ou ultérieur.2015 Pour reprendre une session différée en mode plan, transmettez [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags) avec `--resume` afin que Claude Code puisse présenter le plan pour approbation. Si vous transmettez certains autres flags de lancement, l'exécution reprise ne revient pas en mode plan ; consultez [Reprendre en mode plan avec `-p`](/docs/fr/sessions#resume-in-plan-mode-with-p). Nécessite Claude Code v2.1.246 ou ultérieure.

2008 2016 

2009 Quand vous reprenez avec `-p`, Claude Code ne restaure aucun autre mode de permission stocké. Il démarre l'exécution dans le mode de permission qu'une nouvelle exécution `claude -p` démarrerait, donc passez `--permission-mode` ou `--dangerously-skip-permissions` à nouveau si la session différée en utilisait un. Quand vous reprenez avec `claude --resume <session-id>` sans `-p`, Claude Code restaure le mode de permission stocké, avec les exceptions listées dans [mode de permission à la reprise](/docs/fr/sessions#permission-mode-on-resume).2017 Lorsque vous reprenez avec `-p`, Claude Code ne restaure aucun autre mode de permission enregistré. Il démarre l'exécution dans le mode de permission dans lequel démarrerait une nouvelle exécution `claude -p` ; transmettez donc à nouveau `--permission-mode` ou `--dangerously-skip-permissions` si la session différée en utilisait un. Lorsque vous reprenez avec `claude --resume <session-id>` sans `-p`, Claude Code restaure le mode de permission enregistré, avec les exceptions listées dans [mode de permission lors de la reprise](/docs/fr/sessions#permission-mode-on-resume).

2010</Note>2018</Note>

2011 2019 

2012<h3 id="permissionrequest">2020<h3 id="permissionrequest">

2013 PermissionRequest2021 PermissionRequest

2014</h3>2022</h3>

2015 2023 

2016S'exécute lorsque Claude Code est sur le point de vous demander la permission d'utiliser un outil. Dans les sessions qui ne peuvent pas afficher de demande, comme les sous-agents en arrière-plan en [mode non interactif](/docs/fr/headless), Claude Code exécute tout de même ces hooks, et si aucun hook ne renvoie de décision, il refuse l'appel d'outil. Pour un appel qui atteint un `--permission-prompt-tool` ou le [callback `canUseTool`](/docs/fr/agent-sdk/permissions) de l'Agent SDK, les hooks s'exécutent en parallèle de votre hôte, et c'est la première décision rendue qui s'applique.2024S'exécute lorsque Claude Code est sur le point de vous demander la permission d'utiliser un outil. Dans les sessions qui ne peuvent pas afficher de demande, comme les sous-agents en arrière-plan en [mode non interactif](/docs/fr/headless), Claude Code exécute tout de même ces hooks, et si aucun hook ne renvoie de décision, il refuse l'appel d'outil. Pour un appel qui atteint un `--permission-prompt-tool` ou le [callback `canUseTool`](/docs/fr/agent-sdk/permissions) de l'Agent SDK, les hooks s'exécutent en parallèle de votre hôte, et la première décision prise s'applique.

2017Utilisez le [contrôle de décision de PermissionRequest](#permissionrequest-decision-control) pour autoriser ou refuser au nom de l'utilisateur.2025Utilisez le [contrôle de décision de PermissionRequest](#permissionrequest-decision-control) pour autoriser ou refuser au nom de l'utilisateur.

2018 2026 

2019Utilisez 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.2027Utilisez cet événement lorsque vous avez besoin d'un signal au moment où Claude demande la permission d'utiliser un outil. Claude Code n'exécute un hook [Notification](#notification) de type `permission_prompt` qu'après que la demande a attendu environ six secondes.

2020 2028 

2021Claude 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`.2029Claude Code n'exécute pas les hooks PermissionRequest pour la [requête réseau](/docs/fr/sandboxing#network-isolation) d'une commande exécutée dans le sandbox. Pour obtenir un signal pour cette demande, utilisez le type de notification `permission_prompt`.

2022 2030 

2023Correspond au nom de l'outil, mêmes valeurs que PreToolUse.2031Correspond au nom de l'outil, avec les mêmes valeurs que PreToolUse.

2024 2032 

2025<h4 id="permissionrequest-input">2033<h4 id="permissionrequest-input">

2026 Entrée PermissionRequest2034 Entrée de PermissionRequest

2027</h4>2035</h4>

2028 2036 

2029Les 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.2037Les 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 facultatif `permission_suggestions` contient les [mises à jour de permissions](#permission-update-entries) que Claude Code suggère pour cette demande, comme l'ajout d'une règle d'autorisation ou le changement du mode de permission.

2030 2038 

2031Le 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.2039Le tableau `permission_suggestions` n'est pas une liste exacte des options que vous voyez, car chaque boîte de dialogue de permission construit ses propres options. Certaines boîtes de dialogue, comme celle des modifications de fichiers, ne lisent pas du tout le tableau et dérivent leurs options de la demande elle-même. Une boîte de dialogue qui le lit peut tout de même masquer une option dont la suggestion reste dans le tableau, par exemple lorsque [`allowManagedPermissionRulesOnly`](/docs/fr/settings-reference#allowmanagedpermissionrulesonly) masque les options d'enregistrement de règles. Elle peut également proposer des options sans entrée de suggestion, comme [**Yes, and switch to auto mode**](/docs/fr/permission-modes#switch-permission-modes), qui change directement le mode de permission plutôt que de passer par une mise à jour de permissions.

2032 2040 

2033Les 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).2041Les hooks PreToolUse s'exécutent avant chaque appel d'outil, qu'il nécessite une permission ou non. Les hooks PermissionRequest ne s'exécutent que lorsque Claude Code est sur le point de vous demander la permission, ou lorsqu'il refuserait autrement automatiquement un appel qui ne peut pas afficher de demande. Aucun des deux événements ne se déclenche pour [`EndConversation`](/docs/fr/tools-reference#endconversation-tool-behavior).

2034 2042 

2035```json theme={null}2043```json theme={null}

2036{2044{


2056```2064```

2057 2065 

2058<h4 id="permissionrequest-decision-control">2066<h4 id="permissionrequest-decision-control">

2059 Contrôle de décision PermissionRequest2067 Contrôle de décision de PermissionRequest

2060</h4>2068</h4>

2061 2069 

2062Les hooks `PermissionRequest` peuvent permettre ou refuser les demandes de permission. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut retourner un objet `decision` avec ces champs spécifiques à l'événement :2070Les hooks `PermissionRequest` peuvent autoriser ou refuser des demandes de permission. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut renvoyer un objet `decision` avec ces champs propres à l'événement :

2063 2071 

2064| Champ | Description |2072| Champ | Description |

2065| :- | :- |2073| :- | :- |

2066| `behavior` | `"allow"` accorde la permission, `"deny"` la refuse. Les [règles de refus et de demande](/docs/fr/permissions#manage-permissions) sont toujours évaluées, donc un hook retournant `"allow"` ne remplace pas une règle de refus correspondante |2074| `behavior` | `"allow"` accorde la permission, `"deny"` la refuse. Les [règles de refus et de demande](/docs/fr/permissions#manage-permissions) sont toujours évaluées, donc un hook renvoyant `"allow"` ne remplace pas une règle de refus correspondante |

2067| `updatedInput` | Pour `"allow"` uniquement : 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. L'entrée modifiée est réévaluée contre les règles de refus et de demande |2075| `updatedInput` | Pour `"allow"` uniquement : modifie les paramètres d'entrée de l'outil avant l'exécution. Remplace l'intégralité de l'objet d'entrée ; incluez donc les champs inchangés en plus des champs modifiés. L'entrée modifiée est réévaluée par rapport aux règles de refus et de demande |

2068| `updatedPermissions` | Pour `"allow"` uniquement : tableau des [entrées de mise à jour de permission](#permission-update-entries) à appliquer, comme ajouter une règle d'autorisation ou changer le mode de permission de la session |2076| `updatedPermissions` | Pour `"allow"` uniquement : tableau d'[entrées de mise à jour de permissions](#permission-update-entries) à appliquer, comme l'ajout d'une règle d'autorisation ou le changement du mode de permission de la session |

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

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

2071 2079 

2072Un 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.2080Un hook qui se termine avec le code 2 sans objet `decision` laisse le flux de permission inchangé, et sa sortie stderr est ignorée. Seul l'objet `decision` peut accorder ou refuser la demande.

2073 2081 

2074```json theme={null}2082```json theme={null}

2075{2083{


2086```2094```

2087 2095 

2088<h4 id="permission-update-entries">2096<h4 id="permission-update-entries">

2089 Entrées de mise à jour de permission2097 Entrées de mise à jour de permissions

2090</h4>2098</h4>

2091 2099 

2092Le champ de sortie `updatedPermissions` et le champ d'entrée [`permission_suggestions`](#permissionrequest-input) utilisent tous deux le même tableau d'objets d'entrée. Chaque entrée a un `type` qui détermine ses autres champs, et une `destination` qui contrôle où le changement est écrit.2100Le champ de sortie `updatedPermissions` et le [champ d'entrée `permission_suggestions`](#permissionrequest-input) utilisent tous deux le même tableau d'objets d'entrée. Chaque entrée possède un `type` qui détermine ses autres champs, et une `destination` qui contrôle où la modification est écrite.

2093 2101 

2094| `type` | Champs | Effet |2102| `type` | Champs | Effet |

2095| :- | :- | :- |2103| :- | :- | :- |

2096| `addRules` | `rules`, `behavior`, `destination` | Ajoute des règles de permission. `rules` est un tableau d'objets `{toolName, ruleContent?}`. Omettez `ruleContent` pour correspondre à l'outil entier. `behavior` est `"allow"`, `"deny"`, ou `"ask"` |2104| `addRules` | `rules`, `behavior`, `destination` | Ajoute des règles de permission. `rules` est un tableau d'objets `{toolName, ruleContent?}`. Omettez `ruleContent` pour faire correspondre l'outil entier. `behavior` vaut `"allow"`, `"deny"` ou `"ask"` |

2097| `replaceRules` | `rules`, `behavior`, `destination` | Remplace toutes les règles du `behavior` donné à la `destination` par les `rules` fournies |2105| `replaceRules` | `rules`, `behavior`, `destination` | Remplace toutes les règles du `behavior` donné à la `destination` par les `rules` fournies |

2098| `removeRules` | `rules`, `behavior`, `destination` | Supprime les règles correspondantes du `behavior` donné |2106| `removeRules` | `rules`, `behavior`, `destination` | Supprime les règles correspondantes du `behavior` donné |

2099| `setMode` | `mode`, `destination` | Change le mode de permission. Les modes valides sont `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, et `manual` comme alias pour `default`. L'alias `manual` nécessite Claude Code v2.1.200 ou ultérieur |2107| `setMode` | `mode`, `destination` | Change le mode de permission. Les modes valides sont `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` et `manual` comme alias de `default`. L'alias `manual` nécessite Claude Code v2.1.200 ou ultérieure |

2100| `addDirectories` | `directories`, `destination` | Ajoute des répertoires de travail. `directories` est un tableau de chaînes de chemin |2108| `addDirectories` | `directories`, `destination` | Ajoute des répertoires de travail. `directories` est un tableau de chaînes de chemins |

2101| `removeDirectories` | `directories`, `destination` | Supprime les répertoires de travail |2109| `removeDirectories` | `directories`, `destination` | Supprime des répertoires de travail |

2102 2110 

2103<Note>2111<Note>

2104 `setMode` avec `bypassPermissions` ne prend effet que si vous avez lancé la session avec le mode bypass déjà disponible : `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, ou `permissions.defaultMode: "bypassPermissions"` dans les [paramètres utilisateur, `--settings`, ou gérés](/docs/fr/settings-reference#permissions-defaultmode). Sinon, la mise à jour est un non-op. La mise à jour est également un non-op quand [`permissions.disableBypassPermissionsMode`](/docs/fr/permissions#managed-settings) désactive le mode, ou quand la session démarre en [mode restreint](/docs/fr/cli-reference#cli-flags).2112 `setMode` avec `bypassPermissions` ne prend effet que si vous avez lancé la session avec le mode bypass déjà disponible : `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, ou `permissions.defaultMode: "bypassPermissions"` dans les [paramètres utilisateur, `--settings` ou les paramètres gérés](/docs/fr/settings-reference#permissions-defaultmode). Sinon, la mise à jour n'a aucun effet. La mise à jour n'a également aucun effet lorsque [`permissions.disableBypassPermissionsMode`](/docs/fr/permissions#managed-settings) désactive le mode, ou lorsque la session démarre en [mode restreint](/docs/fr/cli-reference#cli-flags).

2105 2113 

2106 `bypassPermissions` n'est jamais persisté comme `defaultMode` indépendamment de `destination`.2114 `bypassPermissions` n'est jamais conservé comme `defaultMode`, quelle que soit la valeur de `destination`.

2107</Note>2115</Note>

2108 2116 

2109Le champ `destination` sur chaque entrée détermine si le changement reste en mémoire ou persiste dans un fichier de paramètres.2117Le champ `destination` de chaque entrée détermine si la modification reste en mémoire ou est conservée dans un fichier de paramètres.

2110 2118 

2111| `destination` | Écrit dans |2119| `destination` | Écrit dans |

2112| :- | :- |2120| :- | :- |

2113| `session` | en mémoire uniquement, rejeté quand la session se termine |2121| `session` | en mémoire uniquement, supprimé à la fin de la session |

2114| `localSettings` | `.claude/settings.local.json` |2122| `localSettings` | `.claude/settings.local.json` |

2115| `projectSettings` | `.claude/settings.json` |2123| `projectSettings` | `.claude/settings.json` |

2116| `userSettings` | `~/.claude/settings.json` |2124| `userSettings` | `~/.claude/settings.json` |


2121 PostToolUse2129 PostToolUse

2122</h3>2130</h3>

2123 2131 

2124S'exécute immédiatement après qu'un outil se termine avec succès.2132S'exécute immédiatement après qu'un outil s'est terminé avec succès.

2125 2133 

2126Correspond au nom de l'outil, mêmes valeurs que PreToolUse.2134Correspond au nom de l'outil, avec les mêmes valeurs que PreToolUse.

2127 2135 

2128Correspondez plus largement quand le nom de l'outil n'est pas le bon filtre :2136Élargissez la correspondance lorsque le nom de l'outil n'est pas le bon filtre :

2129 2137 

2130* Pour exécuter un hook après que n'importe quel outil se termine avec succès, omettez le `matcher` ou définissez-le à `"*"`. Votre hook peut alors découvrir ce qui a changé lui-même, par exemple en exécutant `git status --porcelain`, qui liste également les fichiers non suivis que `git diff` manque. Pour les appels d'outils qui échouent, ajoutez le même hook sous [PostToolUseFailure](#posttoolusefailure).2138* Pour exécuter un hook après la réussite de n'importe quel outil, omettez le `matcher` ou définissez-le sur `"*"`. Votre hook peut alors découvrir lui-même ce qui a changé, par exemple en exécutant `git status --porcelain`, qui liste aussi les fichiers non suivis que `git diff` ignore. Pour les appels d'outils qui échouent, ajoutez le même hook sous [PostToolUseFailure](#posttoolusefailure).

2131* Pour exécuter un hook quand un fichier spécifique change sur le disque, peu importe ce qui l'a écrit, utilisez [FileChanged](#filechanged). Claude Code n'exécute pas un hook `PostToolUse` correspondant à `Edit|Write` quand une commande `Bash` ou un processus en dehors de Claude Code réécrit le même fichier.2139* Pour exécuter un hook lorsqu'un fichier spécifique change sur le disque, quel que soit ce qui l'a écrit, utilisez [FileChanged](#filechanged). Claude Code n'exécute pas un hook `PostToolUse` correspondant à `Edit|Write` lorsqu'une commande `Bash` ou un processus extérieur à Claude Code réécrit le même fichier.

2132 2140 

2133<h4 id="posttooluse-input">2141<h4 id="posttooluse-input">

2134 Entrée PostToolUse2142 Entrée PostToolUse

2135</h4>2143</h4>

2136 2144 

2137Les hooks `PostToolUse` se déclenchent après qu'un outil s'est déjà exécuté avec succès. L'entrée inclut à la fois `tool_input`, les arguments envoyés à l'outil, et `tool_response`, le résultat qu'il a retourné. Le schéma exact pour les deux dépend de l'outil. Les chemins `tool_input` des outils de fichier arrivent dans le même format que pour [PreToolUse](#pretooluse-input) : toujours absolu, avec les séparateurs natifs de la plateforme, donc les barres obliques inverses sur Windows. Pour un outil MCP, l'entrée porte également l'objet [`mcp_server`](#pretooluse-input).2145Les hooks `PostToolUse` se déclenchent après qu'un outil s'est déjà exécuté avec succès. L'entrée inclut à la fois `tool_input`, les arguments envoyés à l'outil, et `tool_response`, le résultat qu'il a renvoyé. Le schéma exact de ces deux champs dépend de l'outil. Les chemins `tool_input` des outils de fichiers arrivent dans le même format que pour [PreToolUse](#pretooluse-input) : toujours absolus, avec les séparateurs natifs de la plateforme, donc des barres obliques inverses sous Windows. Pour un outil MCP, l'entrée contient également l'objet [`mcp_server`](#pretooluse-input).

2138 2146 

2139```json theme={null}2147```json theme={null}

2140{2148{


2159 2167 

2160| Champ | Description |2168| Champ | Description |

2161| :- | :- |2169| :- | :- |

2162| `duration_ms` | Optionnel. Temps d'exécution de l'outil en millisecondes. Exclut le temps passé dans les invites de permission et les hooks PreToolUse |2170| `duration_ms` | Facultatif. Durée d'exécution de l'outil en millisecondes. Exclut le temps passé dans les demandes de permission et les hooks PreToolUse |

2163 2171 

2164<h4 id="posttooluse-decision-control">2172<h4 id="posttooluse-decision-control">

2165 Contrôle de décision PostToolUse2173 Contrôle de décision PostToolUse

2166</h4>2174</h4>

2167 2175 

2168Les hooks `PostToolUse` peuvent fournir des commentaires à Claude après l'exécution de l'outil. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut retourner ces champs spécifiques à l'événement :2176Les hooks `PostToolUse` peuvent fournir un retour à Claude après l'exécution de l'outil. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut renvoyer ces champs propres à l'événement :

2169 2177 

2170| Champ | Description |2178| Champ | Description |

2171| :- | :- |2179| :- | :- |

2172| `decision` | `"block"` ajoute la `reason` à côté du résultat de l'outil. Claude voit toujours la sortie originale ; pour la remplacer, utilisez `updatedToolOutput` |2180| `decision` | `"block"` ajoute la `reason` à côté du résultat de l'outil. Claude voit toujours la sortie d'origine ; pour la remplacer, utilisez `updatedToolOutput` |

2173| `reason` | Explication montrée à Claude quand `decision` est `"block"` |2181| `reason` | Explication affichée à Claude lorsque `decision` vaut `"block"` |

2174| `additionalContext` | Chaîne ajoutée au contexte de Claude aux côtés du résultat d'outil. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |2182| `additionalContext` | Chaîne ajoutée au contexte de Claude avec le résultat de l'outil. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |

2175| `classifierContext` | Brève note sur le résultat de cet appel pour le classificateur du [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) plutôt que pour Claude. Voir [Annoter un résultat pour le classificateur du mode auto](#annotate-a-result-for-the-auto-mode-classifier). Nécessite Claude Code v2.1.236 ou ultérieur |2183| `classifierContext` | Courte note sur le résultat de cet appel destinée au classifieur du [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) plutôt qu'à Claude. Voir [Annoter un résultat pour le classifieur du mode auto](#annotate-a-result-for-the-auto-mode-classifier). Nécessite Claude Code v2.1.236 ou ultérieur |

2176| `updatedToolOutput` | Remplace la sortie de l'outil par la valeur fournie avant qu'elle ne soit envoyée à Claude. La valeur doit correspondre à la forme de sortie de l'outil |2184| `updatedToolOutput` | Remplace la sortie de l'outil par la valeur fournie avant qu'elle ne soit envoyée à Claude. La valeur doit correspondre à la forme de sortie de l'outil |

2177| `updatedMCPToolOutput` | Remplace la sortie pour les [outils MCP](#match-mcp-tools) uniquement. Préférez `updatedToolOutput`, qui fonctionne pour tous les outils |2185| `updatedMCPToolOutput` | Remplace la sortie des [outils MCP](#match-mcp-tools) uniquement. Préférez `updatedToolOutput`, qui fonctionne pour tous les outils |

2178 2186 

2179L'exemple ci-dessous remplace la sortie d'un appel `Bash`. La valeur de remplacement correspond à la forme de sortie de l'outil `Bash` :2187L'exemple ci-dessous remplace la sortie d'un appel `Bash`. La valeur de remplacement correspond à la forme de sortie de l'outil `Bash` :

2180 2188 


2194```2202```

2195 2203 

2196<Warning>2204<Warning>

2197 `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).2205 `updatedToolOutput` ne modifie que ce que voit Claude. L'outil s'est déjà exécuté au moment où le hook se déclenche, donc les fichiers écrits, les commandes exécutées ou les 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, capture également la sortie d'origine avant l'exécution du hook. Pour empêcher ou modifier un appel d'outil avant son exécution, utilisez plutôt un hook [PreToolUse](#pretooluse).

2198 2206 

2199 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.2207 La valeur de remplacement doit correspondre à la forme de sortie de l'outil. Les outils intégrés renvoient des objets structurés plutôt que de simples chaînes. Par exemple, `Bash` renvoie 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 d'origine est utilisée. La sortie des outils MCP est transmise sans validation de schéma. Supprimer des détails d'erreur dont Claude a besoin peut l'amener à poursuivre sur une hypothèse erronée.

2200</Warning>2208</Warning>

2201 2209 

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

2203 Annoter un résultat pour le classificateur du mode auto2211 Annoter un résultat pour le classifieur du mode auto

2204</h4>2212</h4>

2205 2213 

2206Retournez `classifierContext` pour envoyer une brève note sur le résultat de l'appel d'outil au classificateur du [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) plutôt qu'à Claude. Le classificateur [ne reçoit jamais les résultats d'outils eux-mêmes](/docs/fr/permission-modes#how-the-classifier-evaluates-actions), donc ce champ est la façon supportée de lui dire quelque chose sur ce qu'un appel a retourné avant qu'il examine les actions ultérieures. Le champ nécessite Claude Code v2.1.236 ou ultérieur.2214Renvoyez `classifierContext` pour envoyer une courte note sur le résultat de l'appel d'outil au classifieur du [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) plutôt qu'à Claude. Le classifieur [ne reçoit jamais les résultats des outils eux-mêmes](/docs/fr/permission-modes#how-the-classifier-evaluates-actions), ce champ est donc le moyen prévu pour lui indiquer quelque chose sur ce qu'un appel a renvoyé avant qu'il n'examine les actions suivantes. Ce champ nécessite Claude Code v2.1.236 ou ultérieur.

2207 2215 

2208L'exemple ci-dessous dit au classificateur d'où provient la sortie d'une requête :2216L'exemple ci-dessous indique au classifieur d'où provient la sortie d'une requête :

2209 2217 

2210```json theme={null}2218```json theme={null}

2211{2219{


2216}2224}

2217```2225```

2218 2226 

2219Le poids que le classificateur donne à la note dépend de l'endroit où vous avez configuré le hook :2227Le poids que le classifieur accorde à la note dépend de l'endroit où vous avez configuré le hook :

2220 2228 

2221* **Hooks configurés dans Claude Code** : pour les hooks des fichiers de paramètres, plugins, skills, et frontmatter d'agent, le classificateur traite la note comme du contexte non vérifié fourni par l'application. La note n'établit jamais l'intention de l'utilisateur, et si elle prétend que vous avez approuvé ou demandé quelque chose, le classificateur vérifie cette affirmation contre vos propres messages dans la conversation2229* **Hooks configurés dans Claude Code** : pour les hooks provenant des fichiers de paramètres, des plugins, des skills et du frontmatter des agents, le classifieur traite la note comme un contexte non vérifié fourni par l'application. La note n'établit jamais l'intention de l'utilisateur, et si elle affirme que vous avez approuvé ou demandé quelque chose, le classifieur vérifie cette affirmation par rapport à vos propres messages dans la conversation

2222* **Rappels Agent SDK en processus** : quand une application intégrant Claude Code enregistre le hook comme un [rappel SDK TypeScript](/docs/fr/agent-sdk/hooks) et retourne la note pendant la session en direct, le classificateur peut peser une déclaration d'utilisateur relayée dans la note comme intention de l'utilisateur. Une telle déclaration peut satisfaire une exigence de consentement que le classificateur accepterait d'un message que vous envoyez, mais elle ne lève jamais un blocage que votre propre message ne pourrait pas lever non plus. Après qu'une session reprenne, Claude Code traite les notes restaurées comme du contexte non vérifié. Quand les hooks des deux groupes annotent le même appel, le classificateur traite la note combinée comme non vérifiée2230* **Callbacks Agent SDK en processus** : lorsqu'une application intégrant Claude Code enregistre le hook comme [callback du SDK TypeScript](/docs/fr/agent-sdk/hooks) et renvoie la note pendant la session en cours, le classifieur peut considérer une déclaration de l'utilisateur relayée dans la note comme une intention de l'utilisateur. Une telle déclaration peut satisfaire une exigence de consentement que le classifieur accepterait d'un message que vous envoyez, mais elle ne lève jamais un blocage que votre propre message ne pourrait pas lever non plus. Après la reprise d'une session, Claude Code traite les notes restaurées comme un contexte non vérifié. Lorsque des hooks des deux groupes annotent le même appel, le classifieur traite la note combinée comme non vérifiée

2223 2231 

2224Claude Code applique ces limites lors de la livraison de la note :2232Claude Code applique ces limites lors de la transmission de la note :

2225 2233 

2226* **Longueur** : Claude Code plafonne les notes pour un appel d'outil à 2 000 caractères et tronque le reste. Le plafond est partagé entre chaque hook qui répond à cet appel2234* **Longueur** : Claude Code plafonne les notes d'un appel d'outil à 2 000 caractères et tronque le reste. Ce plafond est partagé entre tous les hooks qui répondent à cet appel

2227* **Réponses synchrones uniquement** : Claude Code ignore le champ dans la réponse d'un hook qui [s'exécute en arrière-plan](#run-hooks-in-the-background), parce que cette réponse arrive après que Claude Code enregistre le résultat d'outil2235* **Réponses synchrones uniquement** : Claude Code ignore le champ dans la réponse d'un hook qui [s'exécute en arrière-plan](#run-hooks-in-the-background), car cette réponse arrive après que Claude Code a enregistré le résultat de l'outil

2228* **Appels que le classificateur n'enregistre pas** : la transcription du classificateur omet les recherches en lecture seule comme les lectures de fichiers et les recherches. Claude Code rejette une note attachée à l'un de ces appels2236* **Appels que le classifieur n'enregistre pas** : la transcription du classifieur omet les consultations en lecture seule comme les lectures de fichiers et les recherches. Claude Code supprime une note attachée à l'un de ces appels

2229* **Interaction avec les réécritures** : quand la note décrit la sortie que vous remplacez avec `updatedToolOutput`, retournez les deux champs dans la même réponse de hook. Claude Code rejette la note si cette réécriture est rejetée ou qu'une réécriture d'un autre hook la remplace. Claude Code livre une note que vous retournez sans réécriture même quand un autre hook réécrit la sortie2237* **Interaction avec les réécritures** : lorsque la note décrit une sortie que vous remplacez avec `updatedToolOutput`, renvoyez les deux champs dans la même réponse de hook. Claude Code abandonne la note si cette réécriture est rejetée ou si la réécriture d'un autre hook la remplace. Claude Code transmet une note que vous renvoyez sans réécriture même lorsqu'un autre hook réécrit la sortie

2230 2238 

2231<Warning>2239<Warning>

2232 Le classificateur lit le contenu que vous placez dans `classifierContext` comme des informations de l'application hébergeant la session, donc ne copiez pas la sortie d'outil non fiable ou le texte tiers dedans. Gardez la note à une brève affirmation sur cet appel uniquement, comme un fait sur son origine ou une déclaration d'utilisateur à ce sujet ; n'utilisez pas le champ pour livrer des messages non liés ou un flux d'événements.2240 Le classifieur lit le contenu que vous placez dans `classifierContext` comme une information provenant de l'application qui héberge la session ; n'y copiez donc pas de sortie d'outil non fiable ni de texte tiers. Limitez la note à une courte affirmation concernant cet appel précis, comme un fait sur son origine ou une déclaration de l'utilisateur à son sujet ; n'utilisez pas ce champ pour transmettre des messages sans rapport ou un flux d'événements.

2233</Warning>2241</Warning>

2234 2242 

2235<h3 id="posttoolusefailure">2243<h3 id="posttoolusefailure">

2236 PostToolUseFailure2244 PostToolUseFailure

2237</h3>2245</h3>

2238 2246 

2239S'exécute quand un outil qui a commencé à s'exécuter échoue : l'outil a levé une erreur, ou un outil MCP a retourné un résultat d'erreur. Utilisez ceci pour enregistrer les échecs, envoyer des alertes, ou fournir des commentaires correctifs à Claude.2247S'exécute lorsqu'un outil dont l'exécution a commencé échoue : l'outil a levé une erreur, ou un outil MCP a renvoyé un résultat d'erreur. Utilisez-le pour journaliser les échecs, envoyer des alertes ou fournir un retour correctif à Claude.

2240 2248 

2241Correspond au nom de l'outil, mêmes valeurs que PreToolUse.2249Correspond au nom de l'outil, avec les mêmes valeurs que PreToolUse.

2242 2250 

2243<Note>2251<Note>

2244 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).2252 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 du schéma ou à une validation propre à l'outil, ou un refus de permission. Les rejets de validation sont renvoyés sous forme de résultats `tool_use_error` et se produisent avant l'exécution des hooks, ils ne déclenchent donc ni `PreToolUse` ni `PostToolUseFailure`. Les refus de permission déclenchent `PreToolUse` mais pas cet événement ; voir [PermissionDenied](#permissiondenied).

2245</Note>2253</Note>

2246 2254 

2247<h4 id="posttoolusefailure-input">2255<h4 id="posttoolusefailure-input">

2248 Entrée PostToolUseFailure2256 Entrée PostToolUseFailure

2249</h4>2257</h4>

2250 2258 

2251Les hooks PostToolUseFailure reçoivent les mêmes champs `tool_name` et `tool_input` que PostToolUse, ainsi que les informations d'erreur comme champs de haut niveau. Pour un outil MCP, ils reçoivent également l'objet [`mcp_server`](#pretooluse-input). Par exemple, une commande `npm test` échouée pourrait livrer :2259Les hooks PostToolUseFailure reçoivent les mêmes champs `tool_name` et `tool_input` que PostToolUse, ainsi que des informations sur l'erreur sous forme de champs de premier niveau. Pour un outil MCP, ils reçoivent également l'objet [`mcp_server`](#pretooluse-input). Par exemple, une commande `npm test` en échec pourrait transmettre :

2252 2260 

2253```json theme={null}2261```json theme={null}

2254{2262{


2272| Champ | Description |2280| Champ | Description |

2273| :- | :- |2281| :- | :- |

2274| `error` | Chaîne décrivant ce qui s'est mal passé. Le format dépend de l'outil qui a échoué |2282| `error` | Chaîne décrivant ce qui s'est mal passé. Le format dépend de l'outil qui a échoué |

2275| `is_interrupt` | Booléen optionnel. True quand l'échec a atteint Claude Code comme un abandon plutôt que comme une erreur que l'outil a signalée. L'annulation d'un outil en cours d'exécution ne déclenche pas ce hook ; le résultat de l'outil porte le message d'interruption à la place |2283| `is_interrupt` | Booléen facultatif. Vrai lorsque l'échec est parvenu à Claude Code sous forme d'abandon plutôt que d'erreur signalée par l'outil. L'annulation d'un outil en cours d'exécution ne déclenche pas ce hook ; le résultat de l'outil contient alors le message d'interruption |

2276| `duration_ms` | Optionnel. Temps d'exécution de l'outil en millisecondes. Exclut le temps passé dans les invites de permission et les hooks PreToolUse |2284| `duration_ms` | Facultatif. Durée d'exécution de l'outil en millisecondes. Exclut le temps passé dans les demandes de permission et les hooks PreToolUse |

2277 2285 

2278La chaîne `error` est généralement le même texte que Claude reçoit comme résultat de l'outil échoué. Son format varie selon l'outil et l'échec. Clé votre hook sur `tool_name`, `is_interrupt`, et la première ligne `Exit code N` ; traitez le reste de la chaîne comme du texte d'affichage, pas un format stable.2286La chaîne `error` est généralement le même texte que Claude reçoit comme résultat de l'outil en échec. Son format varie selon l'outil et le type d'échec. Basez votre hook sur `tool_name`, `is_interrupt` et la première ligne `Exit code N` ; traitez le reste de la chaîne comme du texte d'affichage, et non comme un format stable.

2279 2287 

2280* 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és2288* Pour Bash et PowerShell, une commande qui s'est exécutée puis terminée produit une première ligne `Exit code N`, suivie de toute la sortie produite par la commande en un seul bloc, avec stdout et stderr entremêlés

2281* 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ême2289* Un payload peut aussi contenir un simple message d'échec sans ligne de code de sortie, lorsque Claude Code n'a pas pu démarrer le processus shell lui-même

2282* 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`2290* Claude Code tronque le milieu des longues chaînes autour d'un marqueur `... [N characters truncated] ...`, et peut insérer ses propres lignes, comme `Command timed out after 2m 0s`

2283 2291 

2284<h4 id="posttoolusefailure-decision-control">2292<h4 id="posttoolusefailure-decision-control">

2285 Contrôle de décision PostToolUseFailure2293 Contrôle de décision PostToolUseFailure

2286</h4>2294</h4>

2287 2295 

2288Les hooks `PostToolUseFailure` peuvent fournir du contexte à Claude après un échec d'outil. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut retourner ces champs spécifiques à l'événement :2296Les hooks `PostToolUseFailure` peuvent fournir du contexte à Claude après l'échec d'un outil. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut renvoyer ces champs propres à l'événement :

2289 2297 

2290| Champ | Description |2298| Champ | Description |

2291| :- | :- |2299| :- | :- |

2292| `additionalContext` | Chaîne ajoutée au contexte de Claude aux côtés de l'erreur. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |2300| `additionalContext` | Chaîne ajoutée au contexte de Claude avec l'erreur. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |

2293 2301 

2294```json theme={null}2302```json theme={null}

2295{2303{


2304 PostToolBatch2312 PostToolBatch

2305</h3>2313</h3>

2306 2314 

2307S'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.2315S'exécute une fois après la résolution de tous les appels d'outils d'un lot, avant que Claude Code n'envoie la requête suivante au modèle. `PostToolUse` se déclenche une fois par outil, ce qui signifie qu'il se déclenche de manière concurrente lorsque Claude effectue des appels d'outils parallèles. `PostToolBatch` se déclenche exactement une fois avec le lot complet ; c'est donc le bon endroit pour injecter un contexte qui dépend de l'ensemble des outils exécutés plutôt que d'un seul outil. Il n'y a pas de matcher pour cet événement.

2308 2316 

2309<h4 id="posttoolbatch-input">2317<h4 id="posttoolbatch-input">

2310 Entrée PostToolBatch2318 Entrée PostToolBatch

2311</h4>2319</h4>

2312 2320 

2313En plus des [champs d'entrée communs](#common-input-fields), les hooks PostToolBatch reçoivent `tool_calls`, un tableau décrivant chaque appel d'outil dans le lot :2321En plus des [champs d'entrée communs](#common-input-fields), les hooks PostToolBatch reçoivent `tool_calls`, un tableau décrivant chaque appel d'outil du lot :

2314 2322 

2315```json theme={null}2323```json theme={null}

2316{2324{


2336}2344}

2337```2345```

2338 2346 

2339`tool_response` contient le même contenu que le modèle reçoit dans le bloc `tool_result` correspondant. La valeur est une chaîne sérialisée ou un tableau de bloc de contenu, exactement comme l'outil l'a émis. Pour `Read`, cela signifie du texte préfixé par le numéro de ligne plutôt que le contenu brut du fichier. Les réponses peuvent être grandes, donc analysez uniquement les champs dont vous avez besoin.2347`tool_response` contient le même contenu que celui que le modèle reçoit dans le bloc `tool_result` correspondant. La valeur est une chaîne sérialisée ou un tableau de blocs de contenu, exactement tel que l'outil l'a émis. Pour `Read`, cela signifie du texte préfixé par des numéros de ligne plutôt que le contenu brut du fichier. Les réponses peuvent être volumineuses ; n'analysez donc que les champs dont vous avez besoin.

2340 2348 

2341<Note>2349<Note>

2342 La forme `tool_response` diffère de celle de `PostToolUse`. `PostToolUse` passe l'objet `Output` structuré de l'outil, comme `{filePath: "...", type: "create"}` pour `Write` ; `PostToolBatch` passe le contenu `tool_result` sérialisé que le modèle voit.2350 La forme de `tool_response` diffère de celle de `PostToolUse`. `PostToolUse` transmet l'objet `Output` structuré de l'outil, comme `{filePath: "...", type: "create"}` pour `Write` ; `PostToolBatch` transmet le contenu `tool_result` sérialisé que voit le modèle.

2343</Note>2351</Note>

2344 2352 

2345<h4 id="posttoolbatch-decision-control">2353<h4 id="posttoolbatch-decision-control">

2346 Contrôle de décision PostToolBatch2354 Contrôle de décision PostToolBatch

2347</h4>2355</h4>

2348 2356 

2349Les hooks `PostToolBatch` peuvent injecter du contexte pour Claude. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut retourner ces champs spécifiques à l'événement :2357Les hooks `PostToolBatch` peuvent injecter du contexte pour Claude. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut renvoyer ces champs propres à l'événement :

2350 2358 

2351| Champ | Description |2359| Champ | Description |

2352| :- | :- |2360| :- | :- |

2353| `additionalContext` | Chaîne de contexte injectée une fois avant l'appel du modèle suivant. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) pour les détails de livraison, ce qu'il faut y mettre, et comment les sessions reprises gèrent les valeurs passées |2361| `additionalContext` | Chaîne de contexte injectée une fois avant le prochain appel au modèle. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) pour les détails de transmission, ce qu'il faut y mettre et la façon dont les sessions reprises gèrent les valeurs passées |

2354 2362 

2355```json theme={null}2363```json theme={null}

2356{2364{


2361}2369}

2362```2370```

2363 2371 

2364Retourner `decision: "block"` ou `continue: false` arrête la boucle agentive avant l'appel du modèle suivant. Le message de blocage provient du `reason` JSON ou `stopReason`, ou de stderr en quittant 2. Vous le voyez comme un avertissement dans la transcription, et il reste dans la conversation, donc Claude le voit quand la conversation continue.2372Renvoyer `decision: "block"` ou `continue: false` arrête la boucle agentique avant le prochain appel au modèle. Le message de blocage provient de la `reason` ou du `stopReason` JSON, ou de stderr avec le code de sortie 2. Vous le voyez comme un avertissement dans la transcription, et il reste dans la conversation, de sorte que Claude le voit lorsque la conversation reprend.

2365 2373 

2366<h3 id="permissiondenied">2374<h3 id="permissiondenied">

2367 PermissionDenied2375 PermissionDenied

2368</h3>2376</h3>

2369 2377 

2370S'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.2378S'exécute lorsque le [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) refuse un appel d'outil, y compris lorsqu'il refuse sans verdict du classifieur parce qu'[un contrôle de sécurité distinct du mode auto a refusé la requête du classifieur lui-même](/docs/fr/errors#auto-mode-cannot-determine-the-safety-of-an-action) ou que sa réponse n'a pas pu être analysée. Ce hook ne se déclenche qu'en mode auto : il ne s'exécute pas lorsque vous refusez manuellement une boîte de dialogue de permission, lorsqu'un hook `PreToolUse` bloque un appel, ou lorsqu'une règle `deny` correspond. Utilisez-le pour journaliser les refus, ajuster la configuration ou indiquer au modèle qu'il peut réessayer l'appel d'outil.

2371 2379 

2372Correspond au nom de l'outil, mêmes valeurs que PreToolUse.2380Correspond au nom de l'outil, avec les mêmes valeurs que PreToolUse.

2373 2381 

2374<h4 id="permissiondenied-input">2382<h4 id="permissiondenied-input">

2375 Entrée PermissionDenied2383 Entrée PermissionDenied

2376</h4>2384</h4>

2377 2385 

2378En plus des [champs d'entrée communs](#common-input-fields), les hooks PermissionDenied reçoivent `tool_name`, `tool_input`, `tool_use_id`, et `reason`. Pour un outil MCP, ils reçoivent également l'objet [`mcp_server`](#pretooluse-input).2386En plus des [champs d'entrée communs](#common-input-fields), les hooks PermissionDenied reçoivent `tool_name`, `tool_input`, `tool_use_id` et `reason`. Pour un outil MCP, ils reçoivent également l'objet [`mcp_server`](#pretooluse-input).

2379 2387 

2380```json theme={null}2388```json theme={null}

2381{2389{


2396 2404 

2397| Champ | Description |2405| Champ | Description |

2398| :- | :- |2406| :- | :- |

2399| `reason` | La raison du refus. Pour un verdict du classificateur, dans la plupart des sessions, il nomme la règle correspondante entre crochets, comme `[Data Exfiltration]` ; voir [Examiner les refus](/docs/fr/auto-mode-config#review-denials) pour les autres formes. Pour un [refus sans verdict](#permissiondenied-decision-control), il commence par `Auto mode could not evaluate this action and is blocking it for safety`. Pour un refus parce que le modèle du classificateur n'était pas disponible, c'est le texte fixe `Classifier unavailable` |2407| `reason` | Le motif du refus. Pour un verdict du classifieur, dans la plupart des sessions, il nomme la règle correspondante entre crochets, comme `[Data Exfiltration]` ; voir [Examiner les refus](/docs/fr/auto-mode-config#review-denials) pour les autres formes. Pour un [refus sans verdict](#permissiondenied-decision-control), il commence par `Auto mode could not evaluate this action and is blocking it for safety`. Pour un refus dû à l'indisponibilité du modèle du classifieur, il s'agit du texte fixe `Classifier unavailable` |

2400 2408 

2401<h4 id="permissiondenied-decision-control">2409<h4 id="permissiondenied-decision-control">

2402 Contrôle de décision PermissionDenied2410 Contrôle de décision PermissionDenied

2403</h4>2411</h4>

2404 2412 

2405Les hooks PermissionDenied peuvent dire au modèle qu'il peut réessayer l'appel d'outil refusé. Retournez un objet JSON avec `hookSpecificOutput.retry` défini à `true` :2413Les hooks PermissionDenied peuvent indiquer au modèle qu'il peut réessayer l'appel d'outil refusé. Renvoyez un objet JSON avec `hookSpecificOutput.retry` défini sur `true` :

2406 2414 

2407```json theme={null}2415```json theme={null}

2408{2416{


2413}2421}

2414```2422```

2415 2423 

2416Quand `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.2424Lorsque `retry` vaut `true`, Claude Code ajoute un message à la conversation indiquant au modèle qu'il peut réessayer l'appel d'outil. Claude Code n'annule pas le refus lui-même. Si votre hook ne renvoie pas de JSON, ou renvoie `retry: false`, le refus est maintenu et le modèle reçoit le message de rejet d'origine.

2417 2425 

2418Claude 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.2426Claude Code ignore `retry: true` lorsque le classifieur n'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 pu être analysée, ou un contrôle de sécurité distinct du mode auto a refusé la requête du classifieur lui-même. Pour ces refus, Claude Code indique déjà au modèle, dans le message de rejet, s'il doit réessayer plus tard ou passer à autre chose.

2419 2427 

2420<h3 id="notification">2428<h3 id="notification">

2421 Notification2429 Notification

2422</h3>2430</h3>

2423 2431 

2424S'exécute quand Claude Code envoie des notifications. Correspond au type de notification. Omettez le matcher pour exécuter les hooks pour tous les types de notification.2432S'exécute lorsque Claude Code envoie des notifications. Correspond au type de notification. Omettez le matcher pour exécuter les hooks pour tous les types de notification.

2425 2433 

2426Vous recevez ces événements de hook même avec les notifications de bureau désactivées : le paramètre `preferredNotifChannel`, y compris `notifications_disabled`, change uniquement comment vous êtes alerté, pas si votre hook s'exécute.2434Vous recevez ces événements de hook même lorsque les notifications de bureau sont désactivées : le paramètre `preferredNotifChannel`, y compris `notifications_disabled`, ne modifie que la manière dont vous êtes alerté, et non l'exécution de votre hook.

2427 2435 

2428| Matcher | Quand il se déclenche |2436| Matcher | Quand il se déclenche |

2429| :- | :- |2437| :- | :- |

2430| `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 |2438| `permission_prompt` | Claude a besoin que vous approuviez l'utilisation d'un outil ou la [requête réseau](/docs/fr/sandboxing#network-isolation) d'une commande en sandbox, et la demande attend depuis environ six secondes |

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

2432| `auth_success` | L'authentification se termine |2440| `auth_success` | L'authentification se termine |

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

2434| `elicitation_url_dialog` | Un serveur MCP vous demande d'ouvrir une URL de navigateur et vous n'avez pas tapé pendant environ six secondes |2442| `elicitation_url_dialog` | Un serveur MCP vous demande d'ouvrir une URL dans le navigateur et vous n'avez rien saisi depuis environ six secondes |

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

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

2437| `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 |2445| `agent_needs_input` | Une session en arrière-plan commence à attendre votre saisie alors que la [vue des agents](/docs/fr/agent-view) est ouverte dans un terminal. Se déclenche également lorsqu'une session de terminal vous présente une [question de configuration du terminal d'un coéquipier d'une équipe d'agents](/docs/fr/agent-teams#choose-a-display-mode) ou l'avis du mode auto concernant les [frais de requêtes du classifieur](/docs/fr/auto-mode-classifier-billing) et que vous n'avez rien saisi depuis environ six secondes |

2438| `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 |2446| `agent_completed` | Une session en arrière-plan se termine ou échoue. Se déclenche uniquement lorsque la [vue des agents](/docs/fr/agent-view) est ouverte dans un terminal |

2439| `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) |2447| `quota_auto_resume_fired` | Claude Code poursuit votre tâche après qu'une limite d'utilisation de claude.ai l'a mise en pause : à la réinitialisation, ou plus tôt lorsqu'une action que vous effectuez dans Claude Code pendant l'attente, comme l'ajout de crédits d'utilisation, la mise à niveau de votre forfait ou le changement de modèle, rend l'utilisation à nouveau disponible, avec l'[exception du paramètre de modèle](/docs/fr/interactive-mode#wait-for-a-usage-limit-to-reset) |

2440| `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 |2448| `quota_auto_resume_stale` | Une limite d'utilisation de claude.ai s'est réinitialisée pendant que votre ordinateur était en veille pendant plus d'environ 30 minutes. Claude Code attend que vous appuyiez sur `Enter` au lieu de poursuivre. Après une veille plus courte, il poursuit et déclenche `quota_auto_resume_fired` à la place |

2441| `quota_auto_resume_disabled` | Claude Code termine son attente pour une limite d'utilisation claude.ai sans continuer votre tâche : [`autoContinueAtUsageLimit`](/docs/fr/settings-reference#autocontinueatusagelimit) s'est désactivé ou la réinitialisation s'est déplacée de plus de 24 heures pendant une attente que Claude Code a démarrée seul, la tâche continuée a continué à frapper la limite, ou la continuation a été bloquée avant d'atteindre le modèle. Ne se déclenche pas quand vous appuyez sur `Esc` ou `Ctrl+C`, ou choisissez **Ne pas continuer automatiquement** |2449| `quota_auto_resume_disabled` | Claude Code met fin à son attente d'une limite d'utilisation de claude.ai sans poursuivre votre tâche : [`autoContinueAtUsageLimit`](/docs/fr/settings-reference#autocontinueatusagelimit) a été désactivé ou la réinitialisation a été repoussée de plus de 24 heures pendant une attente que Claude Code a lancée de lui-même, la tâche poursuivie a continué d'atteindre la limite, ou la poursuite a été bloquée avant d'atteindre le modèle. Ne se déclenche pas lorsque vous appuyez sur `Esc` ou `Ctrl+C`, ou que vous choisissez **Don't continue automatically** |

2442 2450 

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

2444 2452 

2445En 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.2453Dans les 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.

2446 2454 

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

2448 2456 

2449<Note>2457<Note>

2450 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 :2458 Les types `permission_prompt`, `idle_prompt`, `elicitation_dialog` et `elicitation_url_dialog` partagent leur minutage avec les notifications de bureau ; dans les sessions de terminal, vous ne les voyez donc que lorsque vous semblez être éloigné du terminal :

2451 2459 

2452 * 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).2460 * Attendez-vous à `permission_prompt` lorsque vous n'avez rien saisi depuis environ six secondes. Le minuteur démarre lorsque la demande de permission apparaît, et chaque frappe le reporte. Pour exécuter un hook immédiatement lorsque Claude demande la permission d'utiliser un outil, utilisez plutôt [PermissionRequest](#permissionrequest).

2453 * 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.2461 * Attendez-vous à `idle_prompt` environ 60 secondes après que Claude a fini de répondre, et uniquement si vous n'avez rien saisi depuis et qu'aucun agent en arrière-plan, comme un [sous-agent](/docs/fr/sub-agents) en arrière-plan, n'est encore en cours d'exécution. Claude Code n'envoie pas `idle_prompt` pendant qu'il attend la réinitialisation d'une limite d'utilisation de claude.ai. Lorsque l'attente se termine d'elle-même, l'un des types `quota_auto_resume_*` se déclenche à la place.

2454 * 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.2462 * Attendez-vous à `elicitation_dialog` pour un formulaire d'élicitation, ou à `elicitation_url_dialog` pour une demande d'URL dans le navigateur, lorsque vous n'avez rien saisi depuis environ six secondes. Les deux partagent le même seuil de six secondes que `permission_prompt` : le minuteur démarre lorsque la boîte de dialogue apparaît, et chaque frappe le reporte.

2455 2463 

2456 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.2464 Une demande de permission ou une élicitation qui arrive alors qu'une autre boîte de dialogue est affichée conserve le même seuil de six secondes, calculé à partir de l'arrivée de la demande. Sa notification peut vous parvenir alors que la demande attend encore derrière la boîte de dialogue ouverte.

2457</Note>2465</Note>

2458 2466 

2459Claude 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 :2467Claude Code minute `permission_prompt` différemment dans les sessions où il envoie les demandes de permission au [callback `canUseTool`](/docs/fr/agent-sdk/user-input) de l'Agent SDK, ce qui est la façon dont Claude Desktop et l'extension VS Code hébergent Claude Code :

2460 2468 

2461* Attendez `permission_prompt` environ six secondes après que Claude demande la permission. Claude Code ne le reporte pas pendant que vous tapez.2469* Attendez-vous à `permission_prompt` environ six secondes après que Claude a demandé la permission. Claude Code ne le reporte pas pendant que vous tapez.

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

2463* Définissez [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/fr/env-vars) à `1` pour désactiver `permission_prompt` dans ces sessions.2471* Définissez [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/fr/env-vars) sur `1` pour désactiver `permission_prompt` dans ces sessions.

2464 2472 

2465Avant v2.1.233, `permission_prompt` ne se déclenchait pas dans ces sessions.2473Avant la v2.1.233, `permission_prompt` ne se déclenchait pas dans ces sessions.

2466 2474 

2467Utilisez des matchers séparés pour exécuter différents gestionnaires selon le type de notification. Cette configuration déclenche un script d'alerte spécifique à la permission quand Claude a besoin d'une approbation de permission et une notification différente quand Claude a été inactif :2475Utilisez des matchers distincts pour exécuter différents gestionnaires selon le type de notification. Cette configuration déclenche un script d'alerte propre aux permissions lorsque Claude a besoin d'une approbation de permission, et une notification différente lorsque Claude est inactif :

2468 2476 

2469```json theme={null}2477```json theme={null}

2470{2478{


2497 Entrée Notification2505 Entrée Notification

2498</h4>2506</h4>

2499 2507 

2500En plus des [champs d'entrée communs](#common-input-fields), les hooks Notification reçoivent `message` avec le texte de notification, un `title` optionnel, et `notification_type` indiquant quel type s'est déclenché.2508En plus des [champs d'entrée communs](#common-input-fields), les hooks Notification reçoivent `message` avec le texte de la notification, un `title` facultatif et `notification_type` indiquant quel type s'est déclenché.

2501 2509 

2502```json theme={null}2510```json theme={null}

2503{2511{


2511}2519}

2512```2520```

2513 2521 

2514Les hooks Notification ne peuvent pas bloquer ou modifier les notifications. Claude Code rejette leurs champs `systemMessage` et `continue` mais émet toujours [`terminalSequence`](#emit-terminal-notifications), sur lequel l'exemple de notification de bureau s'appuie. Les hooks Notification sont destinés aux effets secondaires comme transférer la notification à un service externe.2522Les hooks Notification ne peuvent ni bloquer ni modifier les notifications. Claude Code supprime leurs champs `systemMessage` et `continue`, mais émet toujours [`terminalSequence`](#emit-terminal-notifications), sur lequel repose l'exemple de notification de bureau. Les hooks Notification sont destinés aux effets de bord, comme la transmission de la notification à un service externe.

2515 2523 

2516<h3 id="subagentstart">2524<h3 id="subagentstart">

2517 SubagentStart2525 SubagentStart

2518</h3>2526</h3>

2519 2527 

2520S'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.2528S'exécute lorsque Claude lance un sous-agent avec l'outil Agent, lorsque Claude [reprend un sous-agent](/docs/fr/sub-agents#resume-subagents), et chaque fois qu'un coéquipier en processus d'une [équipe d'agents](/docs/fr/agent-teams) traite un nouveau message. Prend en charge les matchers pour filtrer par nom de type d'agent. Pour les agents intégrés, il s'agit du nom de l'agent, comme `general-purpose`, `Explore` ou `Plan`. Pour les [sous-agents personnalisés](/docs/fr/sub-agents), il s'agit du champ `name` du frontmatter de l'agent, et non du nom de fichier.

2521 2529 

2522Pour 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$`.2530Pour les sous-agents fournis par un [plugin](/docs/fr/plugins/overview), le type d'agent est l'identifiant propre au plugin, comme `my-plugin:reviewer`, et non le simple nom du frontmatter. Les deux-points font passer un nom propre au plugin par le traitement des expressions régulières ; ancrez donc le matcher avec `^` et `$` pour une correspondance exacte : `^my-plugin:reviewer$`.

2523 2531 

2524<h4 id="subagentstart-input">2532<h4 id="subagentstart-input">

2525 Entrée SubagentStart2533 Entrée SubagentStart


2538}2546}

2539```2547```

2540 2548 

2541Les hooks SubagentStart ne peuvent pas bloquer la création de sous-agent, mais ils peuvent injecter du contexte dans le sous-agent. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez retourner :2549Les hooks SubagentStart ne peuvent pas bloquer la création d'un sous-agent, mais ils peuvent injecter du contexte dans le sous-agent. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez renvoyer :

2542 2550 

2543| Champ | Description |2551| Champ | Description |

2544| :- | :- |2552| :- | :- |

2545| `additionalContext` | Chaîne ajoutée au contexte du sous-agent au début de sa conversation, avant sa première invite. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |2553| `additionalContext` | Chaîne ajoutée au contexte du sous-agent au début de sa conversation, avant son premier prompt. Voir [Ajouter du contexte pour Claude](#add-context-for-claude) |

2546 2554 

2547```json theme={null}2555```json theme={null}

2548{2556{


2553}2561}

2554```2562```

2555 2563 

2556Quand le hook s'exécute à nouveau pour le même sous-agent, Claude Code injecte le contexte retourné uniquement quand le contexte du sous-agent ne contient pas déjà la copie d'une exécution antérieure. La copie injectée au lancement reste en place, laissant le [cache d'invite](/docs/fr/prompt-caching#subagents-and-the-cache) du sous-agent intact. Après que la [compaction automatique](/docs/fr/sub-agents#auto-compaction) rejette cette copie, Claude Code injecte le contexte de la prochaine exécution à nouveau.2564Lorsque le hook s'exécute à nouveau pour le même sous-agent, Claude Code n'injecte le contexte renvoyé que si le contexte du sous-agent ne contient pas déjà la copie d'une exécution précédente. La copie injectée au lancement reste en place, ce qui préserve le [cache de prompt](/docs/fr/prompt-caching#subagents-and-the-cache) du sous-agent. Après que la [compaction automatique](/docs/fr/sub-agents#auto-compaction) a supprimé cette copie, Claude Code injecte à nouveau le contexte de l'exécution suivante.

2557 2565 

2558<h3 id="subagentstop">2566<h3 id="subagentstop">

2559 SubagentStop2567 SubagentStop

2560</h3>2568</h3>

2561 2569 

2562S'exécute quand un sous-agent Claude Code a fini de répondre. Correspond au type d'agent, mêmes valeurs que SubagentStart.2570S'exécute lorsqu'un sous-agent Claude Code a fini de répondre. Correspond au type d'agent, avec les mêmes valeurs que SubagentStart.

2563 2571 

2564<h4 id="subagentstop-input">2572<h4 id="subagentstop-input">

2565 Entrée SubagentStop2573 Entrée SubagentStop

2566</h4>2574</h4>

2567 2575 

2568En 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.2576En 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 par 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, afin que les hooks puissent y accéder sans analyser le fichier de transcription.

2569 2577 

2570Pas 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.2578Tous les événements SubagentStop ne proviennent pas d'un sous-agent lancé par Claude. Claude Code exécute également des agents internes pour certaines de ses propres fonctionnalités, comme les [suggestions de prompt](/docs/fr/interactive-mode#prompt-suggestions) et les [questions annexes `/btw`](/docs/fr/interactive-mode#side-questions-with-%2Fbtw), et SubagentStop se déclenche aussi lorsque l'un d'eux se termine. Pour ces événements, `agent_type` est le nom de l'agent sous lequel la session elle-même s'exécute, tel que 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 lorsque la session s'exécute sans agent.

2571 2579 

2572Un `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.2580Un `matcher` qui nomme des types d'agents ne correspond pas à un `agent_type` vide. Un hook dont le matcher est omis, vaut `""` ou `"*"`, ou est une expression régulière correspondant à une chaîne vide, s'exécute également pour les événements dont l'`agent_type` est vide.

2573 2581 

2574Sur 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`.2582Sur Claude Code v2.1.271 ou ultérieur, un sous-agent qui s'exécute avec l'outil [`SubagentHandback`](/docs/fr/tools-reference) transmet son rapport via cet outil avant de s'arrêter. Le champ `last_assistant_message` contient alors le texte de clôture du sous-agent, le cas échéant, qui n'est pas le rapport transmis. Le rapport est l'entrée `message` de cet appel, qu'un hook `PreToolUse` ou `PostToolUse` correspondant à `SubagentHandback` reçoit sous la forme `tool_input.message`.

2575 2583 

2576Les 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.2584Les hooks SubagentStop reçoivent également les tableaux `background_tasks` et `session_crons` décrits dans [Entrée Stop](#stop-input). Ces deux tableaux portent sur la session parente, et non sur le sous-agent.

2577 2585 

2578```json theme={null}2586```json theme={null}

2579{2587{


2592}2600}

2593```2601```

2594 2602 

2595Les hooks SubagentStop utilisent le même format de contrôle de décision que les [hooks Stop](#stop-decision-control), y compris `hookSpecificOutput.additionalContext` avec `hookEventName` défini à `"SubagentStop"`, pour les commentaires sans erreur qui gardent le sous-agent en cours d'exécution. Retourner `decision: "block"` avec une `reason` garde le sous-agent en cours d'exécution et livre `reason` au sous-agent comme sa prochaine instruction. Un hook qui bloque en quittant 2 livre son message stderr de la même façon. Pour injecter du contexte dans la session parent après qu'un sous-agent retourne, utilisez plutôt un hook [`PostToolUse`](#posttooluse) sur l'outil `Agent`.2603Les hooks SubagentStop utilisent le même format de contrôle de décision que les [hooks Stop](#stop-decision-control), y compris `hookSpecificOutput.additionalContext` avec `hookEventName` défini sur `"SubagentStop"`, pour un retour non lié à une erreur qui maintient le sous-agent en cours d'exécution. Renvoyer `decision: "block"` avec une `reason` maintient le sous-agent en cours d'exécution et lui transmet `reason` comme instruction suivante. Un hook qui bloque en se terminant avec le code 2 transmet son message stderr de la même manière. Pour injecter du contexte dans la session parente après le retour d'un sous-agent, utilisez plutôt un hook [`PostToolUse`](#posttooluse) sur l'outil `Agent`.

2596 2604 

2597<h3 id="taskcreated">2605<h3 id="taskcreated">

2598 TaskCreated2606 TaskCreated

2599</h3>2607</h3>

2600 2608 

2601S'exécute quand une tâche est en cours de création via l'outil `TaskCreate`. Utilisez ceci pour appliquer les conventions de nommage, exiger les descriptions de tâche, ou empêcher certaines tâches d'être créées. Dans une [session sans les outils Task](/docs/fr/tools-reference#task-tool-availability), cet événement ne se déclenche pas.2609S'exécute lorsqu'une tâche est en cours de création via l'outil `TaskCreate`. Utilisez-le pour imposer des conventions de nommage, exiger des descriptions de tâches ou empêcher la création de certaines tâches. Dans une [session sans les outils Task](/docs/fr/tools-reference#task-tool-availability), cet événement ne se déclenche pas.

2602 2610 

2603Les hooks TaskCreated ne supportent pas les matchers et se déclenchent à chaque occurrence.2611Les hooks TaskCreated ne prennent pas en charge les matchers et se déclenchent à chaque occurrence.

2604 2612 

2605<h4 id="taskcreated-input">2613<h4 id="taskcreated-input">

2606 Entrée TaskCreated2614 Entrée TaskCreated

2607</h4>2615</h4>

2608 2616 

2609En plus des [champs d'entrée communs](#common-input-fields), les hooks TaskCreated reçoivent `task_id`, `task_subject`, et optionnellement `task_description`, `teammate_name`, et `team_name`.2617En plus des [champs d'entrée communs](#common-input-fields), les hooks TaskCreated reçoivent `task_id`, `task_subject` et, de manière facultative, `task_description`, `teammate_name` et `team_name`.

2610 2618 

2611```json theme={null}2619```json theme={null}

2612{2620{


2627| `task_id` | Identifiant de la tâche en cours de création |2635| `task_id` | Identifiant de la tâche en cours de création |

2628| `task_subject` | Titre de la tâche |2636| `task_subject` | Titre de la tâche |

2629| `task_description` | Description détaillée de la tâche. Peut être absent |2637| `task_description` | Description détaillée de la tâche. Peut être absent |

2630| `teammate_name` | Nom du coéquipier créant la tâche. Peut être absent |2638| `teammate_name` | Nom du coéquipier qui crée la tâche. Peut être absent |

2631| `team_name` | Déprécié. Nom d'équipe dérivé de la session ; sera supprimé dans une version future |2639| `team_name` | Déprécié. Nom d'équipe dérivé de la session ; sera supprimé dans une version future |

2632 2640 

2633<h4 id="taskcreated-decision-control">2641<h4 id="taskcreated-decision-control">

2634 Contrôle de décision TaskCreated2642 Contrôle de décision TaskCreated

2635</h4>2643</h4>

2636 2644 

2637Un hook TaskCreated peut bloquer la création de deux façons. De toute façon, Claude Code supprime la tâche et retourne votre message à Claude comme l'erreur de l'outil. Claude Code ignore `continue: false` de cet événement et Claude continue de travailler.2645Un hook TaskCreated peut bloquer la création de deux manières. Dans les deux cas, Claude Code supprime la tâche et renvoie votre message à Claude comme erreur de l'outil. Claude Code ignore `continue: false` pour cet événement et Claude continue de travailler.

2638 2646 

2639* **Code de sortie 2** : Claude Code retourne le texte stderr comme le message.2647* **Code de sortie 2** : Claude Code renvoie le texte de stderr comme message.

2640* **JSON `{"decision": "block", "reason": "..."}`** : Claude Code retourne `reason` comme le message.2648* **JSON `{"decision": "block", "reason": "..."}`** : Claude Code renvoie `reason` comme message.

2641 2649 

2642Cet exemple bloque les tâches dont les sujets ne suivent pas le format requis :2650Cet exemple bloque les tâches dont le sujet ne respecte pas le format requis :

2643 2651 

2644```bash theme={null}2652```bash theme={null}

2645#!/bin/bash2653#!/bin/bash


2658 TaskCompleted2666 TaskCompleted

2659</h3>2667</h3>

2660 2668 

2661S'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.2669S'exécute lorsqu'une tâche est en cours de marquage comme terminée. Cela se déclenche dans deux situations : lorsqu'un agent marque explicitement une tâche comme terminée via l'outil TaskUpdate, ou lorsqu'un coéquipier d'une [équipe d'agents](/docs/fr/agent-teams) termine son tour avec des tâches en cours. Utilisez-le pour imposer des critères d'achèvement, comme la réussite des tests ou des vérifications de lint, avant qu'une tâche puisse être clôturée.

2662 2670 

2663Les hooks TaskCompleted ne supportent pas les matchers et se déclenchent à chaque occurrence.2671Les hooks TaskCompleted ne prennent pas en charge les matchers et se déclenchent à chaque occurrence.

2664 2672 

2665<h4 id="taskcompleted-input">2673<h4 id="taskcompleted-input">

2666 Entrée TaskCompleted2674 Entrée TaskCompleted

2667</h4>2675</h4>

2668 2676 

2669En plus des [champs d'entrée communs](#common-input-fields), les hooks TaskCompleted reçoivent `task_id`, `task_subject`, et optionnellement `task_description`, `teammate_name`, et `team_name`.2677En plus des [champs d'entrée communs](#common-input-fields), les hooks TaskCompleted reçoivent `task_id`, `task_subject` et, de manière facultative, `task_description`, `teammate_name` et `team_name`.

2670 2678 

2671```json theme={null}2679```json theme={null}

2672{2680{


2685 2693 

2686| Champ | Description |2694| Champ | Description |

2687| :- | :- |2695| :- | :- |

2688| `task_id` | Identifiant de la tâche en cours de complétion |2696| `task_id` | Identifiant de la tâche en cours d'achèvement |

2689| `task_subject` | Titre de la tâche |2697| `task_subject` | Titre de la tâche |

2690| `task_description` | Description détaillée de la tâche. Peut être absent |2698| `task_description` | Description détaillée de la tâche. Peut être absent |

2691| `teammate_name` | Nom du coéquipier complétant la tâche. Peut être absent |2699| `teammate_name` | Nom du coéquipier qui termine la tâche. Peut être absent |

2692| `team_name` | Déprécié. Nom d'équipe dérivé de la session ; sera supprimé dans une version future |2700| `team_name` | Déprécié. Nom d'équipe dérivé de la session ; sera supprimé dans une version future |

2693 2701 

2694<h4 id="taskcompleted-decision-control">2702<h4 id="taskcompleted-decision-control">

2695 Contrôle de décision TaskCompleted2703 Contrôle de décision TaskCompleted

2696</h4>2704</h4>

2697 2705 

2698Les hooks TaskCompleted supportent deux façons de contrôler la complétion de tâche :2706Les hooks TaskCompleted offrent deux manières de contrôler l'achèvement des tâches :

2699 2707 

2700* **Code de sortie 2** : la tâche n'est pas marquée comme complétée et le message stderr est renvoyé au modèle comme commentaire.2708* **Code de sortie 2** : la tâche n'est pas marquée comme terminée et le message stderr est renvoyé au modèle comme retour.

2701* **JSON `{"continue": false, "stopReason": "..."}`** : quand un coéquipier terminant son tour a déclenché l'événement, arrête le coéquipier entièrement, correspondant au comportement du hook `Stop`. Le `stopReason` est montré à l'utilisateur. Quand l'outil `TaskUpdate` a déclenché l'événement, Claude Code ignore `continue: false` ; le code de sortie 2 bloque toujours la complétion.2709* **JSON `{"continue": false, "stopReason": "..."}`** : lorsque l'événement a été déclenché par un coéquipier terminant son tour, arrête complètement le coéquipier, comme le comportement du hook `Stop`. Le `stopReason` est affiché à l'utilisateur. Lorsque l'événement a été déclenché par l'outil `TaskUpdate`, Claude Code ignore `continue: false` ; le code de sortie 2 bloque toujours l'achèvement.

2702 2710 

2703Cet exemple exécute les tests et bloque la complétion de tâche s'ils échouent :2711Cet exemple exécute les tests et bloque l'achèvement de la tâche s'ils échouent :

2704 2712 

2705```bash theme={null}2713```bash theme={null}

2706#!/bin/bash2714#!/bin/bash


2720 Stop2728 Stop

2721</h3>2729</h3>

2722 2730 

2723S'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).2731S'exécute lorsque l'agent principal de Claude Code a fini de répondre. Ne s'exécute pas

2732si l'arrêt est dû à une interruption de l'utilisateur. Les erreurs d'API déclenchent

2733[StopFailure](#stopfailure) à la place.

2724 2734 

2725<Tip>2735<Tip>

2726 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.2736 La commande [`/goal`](/docs/fr/goal) est un raccourci intégré pour un hook Stop basé sur un prompt et limité à la session. Utilisez-la lorsque vous voulez que Claude continue de travailler vers une condition sans écrire de configuration de hook.

2727</Tip>2737</Tip>

2728 2738 

2729<h4 id="stop-input">2739<h4 id="stop-input">

2730 Entrée Stop2740 Entrée Stop

2731</h4>2741</h4>

2732 2742 

2733En 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).2743En 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` vaut `true` lorsque Claude Code poursuit déjà à la suite 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 poursuites consécutives : après que les hooks Stop ont prolongé le tour huit fois de suite, Claude Code passe outre le blocage suivant et termine le tour. Pour relever ce plafond, définissez [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/fr/env-vars).

2734 2744 

2735Le 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.2745Le champ `last_assistant_message` contient le contenu textuel de la réponse finale de Claude, afin que les hooks puissent 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 à voix haute ou de notification, utilisez ce champ plutôt que de lire `transcript_path` : il n'est pas garanti, sur toutes les versions, que le fichier de transcription contienne le message final au moment de Stop.

2736 2746 

2737Les 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é.2747Les tableaux `background_tasks` et `session_crons` permettent aux hooks de distinguer « la session est terminée » de « la session est en pause en attendant qu'un travail en arrière-plan la réveille ». Les deux tableaux sont présents lorsque le registre des tâches est accessible et sont vides lorsque rien n'est en cours ni planifié.

2738 2748 

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

2740 2750 

2741| Champ | Description |2751| Champ | Description |

2742| :- | :- |2752| :- | :- |

2743| `id` | Identifiant de tâche |2753| `id` | Identifiant de la tâche |

2744| `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 |2754| `type` | Libellé lisible du type de tâche, comme `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` ou `MCP task`. Chaque libellé identifie la fonctionnalité de Claude Code qui a créé la tâche. Revient au discriminant brut pour les types non reconnus |

2745| `status` | Statut de tâche actuel |2755| `status` | Statut actuel de la tâche |

2746| `description` | Description en texte libre, plafonnée à 1000 caractères avec un marqueur `… [+N chars]` en chaîne quand coupée |2756| `description` | Description en texte libre, plafonnée à 1000 caractères avec un marqueur `… [+N chars]` dans la chaîne en cas de troncature |

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

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

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

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

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

2752 2762 

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

2754 2764 

2755| Champ | Description |2765| Champ | Description |

2756| :- | :- |2766| :- | :- |

2757| `id` | Identifiant de tâche cron |2767| `id` | Identifiant de la tâche cron |

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

2759| `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 |2769| `recurring` | `false` pour les réveils ponctuels dont la planification encode une seule heure de déclenchement, `true` pour les tâches qui se redéclenchent à chaque correspondance |

2760| `prompt` | Invite soumise quand le cron se déclenche, plafonnée à 1000 caractères avec le même marqueur `… [+N chars]` |2770| `prompt` | Prompt soumis lorsque le cron se déclenche, plafonné à 1000 caractères avec le même marqueur `… [+N chars]` |

2761 2771 

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

2763 2773 

2764```json theme={null}2774```json theme={null}

2765{2775{


2794 Contrôle de décision Stop2804 Contrôle de décision Stop

2795</h4>2805</h4>

2796 2806 

2797Les hooks `Stop` et `SubagentStop` peuvent contrôler si Claude continue. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut retourner ces champs spécifiques à l'événement :2807Les hooks `Stop` et `SubagentStop` peuvent contrôler si Claude continue. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut renvoyer ces champs propres à l'événement :

2798 2808 

2799| Champ | Description |2809| Champ | Description |

2800| :- | :- |2810| :- | :- |

2801| `decision` | `"block"` empêche Claude de s'arrêter. Omettez pour permettre à Claude de s'arrêter |2811| `decision` | `"block"` empêche Claude de s'arrêter. Omettez-le pour permettre à Claude de s'arrêter |

2802| `reason` | Requis quand `decision` est `"block"`. Dit à Claude pourquoi il devrait continuer |2812| `reason` | Obligatoire lorsque `decision` vaut `"block"`. Indique à Claude pourquoi il doit continuer |

2803| `hookSpecificOutput.additionalContext` | Commentaires sans erreur pour Claude. La conversation continue pour que Claude puisse agir dessus, mais contrairement à `decision: "block"`, elle est montrée dans la transcription comme commentaire de hook plutôt qu'une erreur de hook |2813| `hookSpecificOutput.additionalContext` | Retour non lié à une erreur pour Claude. La conversation continue afin que Claude puisse agir en conséquence, mais contrairement à `decision: "block"`, il est affiché dans la transcription comme un retour de hook plutôt que comme une erreur de hook |

2804 2814 

2805Un hook qui bloque en quittant 2 s'achemine de la même façon que `reason` : Claude reçoit le message stderr comme l'explication de pourquoi il devrait continuer.2815Un hook qui bloque en se terminant avec le code 2 est traité de la même manière que `reason` : Claude reçoit le message stderr comme explication de la raison pour laquelle il doit continuer.

2806 2816 

2807```json theme={null}2817```json theme={null}

2808{2818{


2811}2821}

2812```2822```

2813 2823 

2814Utilisez `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 :2824Utilisez `additionalContext` lorsque le hook fonctionne comme prévu et donne des indications à Claude, comme « exécuter la suite de tests avant de terminer ». Il fait continuer la conversation avec les mêmes protections contre les boucles que `decision: "block"`, à savoir l'entrée `stop_hook_active` et le plafond de 8 poursuites consécutives, mais la transcription l'étiquette `Stop hook feedback` et aucune notification d'erreur de hook n'est affichée :

2815 2825 

2816```json theme={null}2826```json theme={null}

2817{2827{


2826 StopFailure2836 StopFailure

2827</h3>2837</h3>

2828 2838 

2829S'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.2839S'exécute à la place de [Stop](#stop) lorsque le tour se termine en raison d'une erreur d'API. Claude Code ignore la sortie et le code de sortie du hook, à l'exception de [`terminalSequence`](#emit-terminal-notifications). Utilisez-le pour journaliser les échecs, envoyer des alertes ou prendre des mesures de récupération lorsque Claude ne peut pas terminer une réponse en raison de limites de débit, de problèmes d'authentification ou d'autres erreurs d'API.

2830 2840 

2831<h4 id="stopfailure-input">2841<h4 id="stopfailure-input">

2832 Entrée StopFailure2842 Entrée StopFailure

2833</h4>2843</h4>

2834 2844 

2835En plus des [champs d'entrée communs](#common-input-fields), les hooks StopFailure reçoivent `error`, optionnel `error_details`, et optionnel `last_assistant_message`. Le champ `error` identifie le type d'erreur et est utilisé pour le filtrage du matcher.2845En plus des [champs d'entrée communs](#common-input-fields), les hooks StopFailure reçoivent `error`, un `error_details` facultatif et un `last_assistant_message` facultatif. Le champ `error` identifie le type d'erreur et est utilisé pour le filtrage par matcher.

2836 2846 

2837| Champ | Description |2847| Champ | Description |

2838| :- | :- |2848| :- | :- |

2839| `error` | Type d'erreur : `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, ou `unknown` |2849| `error` | Type d'erreur : `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` ou `unknown` |

2840| `error_details` | Détails supplémentaires sur l'erreur, quand disponibles |2850| `error_details` | Détails supplémentaires sur l'erreur, lorsqu'ils sont disponibles |

2841| `last_assistant_message` | Le texte d'erreur rendu montré dans la conversation. Contrairement à `Stop` et `SubagentStop`, où ce champ contient la sortie conversationnelle de Claude, pour `StopFailure`, il contient la chaîne d'erreur API elle-même, comme `"API Error: Rate limit reached"` |2851| `last_assistant_message` | Le texte d'erreur affiché dans la conversation. Contrairement à `Stop` et `SubagentStop`, où ce champ contient la sortie conversationnelle de Claude, pour `StopFailure` il contient la chaîne d'erreur de l'API elle-même, comme `"API Error: Rate limit reached"` |

2842 2852 

2843```json theme={null}2853```json theme={null}

2844{2854{


2852}2862}

2853```2863```

2854 2864 

2855Les hooks StopFailure n'ont pas de contrôle de décision. Ils s'exécutent à des fins de notification et de logging uniquement.2865Les hooks StopFailure n'ont pas de contrôle de décision. Ils s'exécutent uniquement à des fins de notification et de journalisation.

2856 2866 

2857<h3 id="teammateidle">2867<h3 id="teammateidle">

2858 TeammateIdle2868 TeammateIdle

2859</h3>2869</h3>

2860 2870 

2861S'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.2871S'exécute lorsqu'un coéquipier d'une [équipe d'agents](/docs/fr/agent-teams) est sur le point de devenir inactif après avoir terminé son tour. Utilisez-le pour imposer des contrôles qualité avant qu'un coéquipier n'arrête de travailler, par exemple en exigeant la réussite des vérifications de lint ou en vérifiant l'existence des fichiers de sortie.

2862 2872 

2863Les hooks TeammateIdle ne supportent pas les matchers et se déclenchent à chaque occurrence.2873Les hooks TeammateIdle ne prennent pas en charge les matchers et se déclenchent à chaque occurrence.

2864 2874 

2865<h4 id="teammateidle-input">2875<h4 id="teammateidle-input">

2866 Entrée TeammateIdle2876 Entrée TeammateIdle


2889 Contrôle de décision TeammateIdle2899 Contrôle de décision TeammateIdle

2890</h4>2900</h4>

2891 2901 

2892Les hooks TeammateIdle supportent deux façons de contrôler le comportement du coéquipier :2902Les hooks TeammateIdle offrent deux manières de contrôler le comportement du coéquipier :

2893 2903 

2894* **Code de sortie 2** : le coéquipier reçoit le message stderr comme commentaire et continue de travailler au lieu de devenir inactif.2904* **Code de sortie 2** : le coéquipier reçoit le message stderr comme retour et continue de travailler au lieu de devenir inactif.

2895* **JSON `{"continue": false, "stopReason": "..."}`** : arrête le coéquipier entièrement, correspondant au comportement du hook `Stop`. Le `stopReason` est montré à l'utilisateur.2905* **JSON `{"continue": false, "stopReason": "..."}`** : arrête complètement le coéquipier, comme le comportement du hook `Stop`. Le `stopReason` est affiché à l'utilisateur.

2896 2906 

2897Cet exemple vérifie qu'un artefact de construction existe avant de permettre à un coéquipier de devenir inactif :2907Cet exemple vérifie qu'un artefact de build existe avant de permettre à un coéquipier de devenir inactif :

2898 2908 

2899```bash theme={null}2909```bash theme={null}

2900#!/bin/bash2910#!/bin/bash


2911 ConfigChange2921 ConfigChange

2912</h3>2922</h3>

2913 2923 

2914S'exécute quand un fichier de configuration change pendant une session. Utilisez ceci pour auditer les changements de paramètres, appliquer les politiques de sécurité, ou bloquer les modifications non autorisées aux fichiers de configuration.2924S'exécute lorsqu'un fichier de configuration change pendant une session. Utilisez-le pour auditer les modifications de paramètres, appliquer des politiques de sécurité ou bloquer les modifications non autorisées des fichiers de configuration.

2915 2925 

2916Claude Code exécute les hooks ConfigChange quand un fichier de paramètres, un fichier de politique gérée, ou un fichier de skill change. Pour la politique gérée, il les exécute uniquement quand `managed-settings.json` ou un fichier dans `managed-settings.d/` change. Il applique les [paramètres gérés par le serveur](/docs/fr/server-managed-settings) et les changements aux préférences gérées macOS ou à la politique du registre Windows sans les exécuter. Sur WSL avec [`wslInheritsWindowsSettings`](/docs/fr/settings-reference#wslinheritswindowssettings), il applique également un fichier de paramètres gérés Windows modifié du côté Windows sur son sondage de politique sans les exécuter.2926Claude Code exécute les hooks ConfigChange lorsqu'un fichier de paramètres, un fichier de politique gérée ou un fichier de skill change. Pour la politique gérée, il ne les exécute que lorsque `managed-settings.json` ou un fichier de `managed-settings.d/` change. Il applique les [paramètres gérés par le serveur](/docs/fr/server-managed-settings) et les modifications des préférences gérées macOS ou de la politique du registre Windows sans les exécuter. Sous WSL avec [`wslInheritsWindowsSettings`](/docs/fr/settings-reference#wslinheritswindowssettings), il applique également un fichier de paramètres gérés modifié côté Windows lors de son interrogation de politique, sans les exécuter.

2917 2927 

2918Le matcher filtre sur la source de configuration :2928Le matcher filtre sur la source de configuration :

2919 2929 


2922| `user_settings` | `~/.claude/settings.json` change |2932| `user_settings` | `~/.claude/settings.json` change |

2923| `project_settings` | `.claude/settings.json` change |2933| `project_settings` | `.claude/settings.json` change |

2924| `local_settings` | `.claude/settings.local.json` change |2934| `local_settings` | `.claude/settings.local.json` change |

2925| `policy_settings` | `managed-settings.json` ou un fichier dans `managed-settings.d/` change |2935| `policy_settings` | `managed-settings.json` ou un fichier de `managed-settings.d/` change |

2926| `skills` | Un fichier de skill dans `.claude/skills/` change |2936| `skills` | Un fichier de skill dans `.claude/skills/` change |

2927 2937 

2928Cet exemple enregistre tous les changements de configuration pour l'audit de sécurité :2938Cet exemple journalise toutes les modifications de configuration à des fins d'audit de sécurité :

2929 2939 

2930```json theme={null}2940```json theme={null}

2931{2941{


2949 Entrée ConfigChange2959 Entrée ConfigChange

2950</h4>2960</h4>

2951 2961 

2952En plus des [champs d'entrée communs](#common-input-fields), les hooks ConfigChange reçoivent `source` et optionnellement `file_path`. Le champ `source` indique quel type de configuration a changé, et `file_path` fournit le chemin du fichier spécifique qui a été modifié.2962En plus des [champs d'entrée communs](#common-input-fields), les hooks ConfigChange reçoivent `source` et, de manière facultative, `file_path`. Le champ `source` indique quel type de configuration a changé, et `file_path` fournit le chemin du fichier précis qui a été modifié.

2953 2963 

2954```json theme={null}2964```json theme={null}

2955{2965{


2966 Contrôle de décision ConfigChange2976 Contrôle de décision ConfigChange

2967</h4>2977</h4>

2968 2978 

2969Les hooks ConfigChange peuvent bloquer les changements de configuration de prendre effet. Utilisez le code de sortie 2 ou un JSON `decision` pour empêcher le changement. Quand bloqué, les nouveaux paramètres ne sont pas appliqués à la session en cours d'exécution.2979Les hooks ConfigChange peuvent empêcher des modifications de configuration de prendre effet. Utilisez le code de sortie 2 ou une `decision` JSON pour empêcher la modification. En cas de blocage, les nouveaux paramètres ne sont pas appliqués à la session en cours.

2970 2980 

2971| Champ | Description |2981| Champ | Description |

2972| :- | :- |2982| :- | :- |

2973| `decision` | `"block"` empêche le changement de configuration d'être appliqué. Omettez pour permettre le changement |2983| `decision` | `"block"` empêche l'application de la modification de configuration. Omettez-le pour autoriser la modification |

2974| `reason` | Accepté mais jamais montré |2984| `reason` | Accepté mais jamais affiché |

2975 2985 

2976```json theme={null}2986```json theme={null}

2977{2987{


2980}2990}

2981```2991```

2982 2992 

2983Les 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.2993Les modifications `policy_settings` ne peuvent pas être bloquées. Les hooks se déclenchent toujours pour les sources `policy_settings` lorsqu'un fichier de paramètres gérés sur la machine change, ce qui vous permet de les utiliser pour journaliser ces modifications, 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` lorsque des [paramètres gérés par le serveur](/docs/fr/server-managed-settings) arrivent ou sont actualisés.

2984 2994 

2985Claude 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.2995Claude Code applique la décision de blocage issue de la sortie JSON d'un hook ConfigChange et supprime `systemMessage` et `continue`. Une modification bloquée n'affiche aucun message, ni à vous ni à Claude, que vous bloquiez avec `reason` ou avec stderr et le code de sortie 2. Claude Code écrit seulement une ligne dans le log de débogage.

2986 2996 

2987<h3 id="cwdchanged">2997<h3 id="cwdchanged">

2988 CwdChanged2998 CwdChanged

2989</h3>2999</h3>

2990 3000 

2991S'exécute quand une commande shell dans la conversation principale change le répertoire de travail, par exemple quand Claude exécute une commande `cd`. Utilisez ceci pour réagir aux changements de répertoire : recharger les variables d'environnement, activer les chaînes d'outils spécifiques au projet, ou exécuter les scripts de configuration automatiquement. S'apparie avec [FileChanged](#filechanged) pour les outils comme [direnv](https://direnv.net/) qui gèrent l'environnement par répertoire.3001S'exécute lorsqu'une commande shell dans la conversation principale change le répertoire de travail, par exemple lorsque Claude exécute une commande `cd`. Utilisez-le pour réagir aux changements de répertoire : recharger des variables d'environnement, activer des chaînes d'outils propres au projet ou exécuter automatiquement des scripts de configuration. Se combine avec [FileChanged](#filechanged) pour des outils comme [direnv](https://direnv.net/) qui gèrent l'environnement par répertoire.

2992 3002 

2993Les hooks CwdChanged 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, quand Claude Code les efface.3003Les hooks CwdChanged 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, moment où Claude Code les efface.

2994 3004 

2995CwdChanged ne supporte pas les matchers et se déclenche à chaque occurrence.3005CwdChanged ne prend pas en charge les matchers et se déclenche à chaque occurrence.

2996 3006 

2997<h4 id="cwdchanged-input">3007<h4 id="cwdchanged-input">

2998 Entrée CwdChanged3008 Entrée CwdChanged


3015 Sortie CwdChanged3025 Sortie CwdChanged

3016</h4>3026</h4>

3017 3027 

3018En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks CwdChanged peuvent retourner `watchPaths` pour définir dynamiquement quels chemins de fichier [FileChanged](#filechanged) surveille :3028En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks CwdChanged peuvent renvoyer `watchPaths` pour définir dynamiquement les chemins de fichiers surveillés par [FileChanged](#filechanged) :

3019 3029 

3020| Champ | Description |3030| Champ | Description |

3021| :- | :- |3031| :- | :- |

3022| `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 |3032| `watchPaths` | Tableau de chemins absolus. Remplace la liste de surveillance dynamique actuelle. Les chemins issus de votre configuration `matcher` sont toujours surveillés. Renvoyer un tableau vide efface la liste dynamique, ce qui est typique lors de l'entrée dans un nouveau répertoire |

3023 3033 

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

3025 3035 

3026Claude Code lit `watchPaths` et `systemMessage` de leur sortie JSON et rejette `continue`. Dans les sessions interactives, il montre le `systemMessage` comme une brève notification de terminal. Le message n'atteint pas le flux de message SDK.3036Claude Code lit `watchPaths` et `systemMessage` dans leur sortie JSON et supprime `continue`. Dans les sessions interactives, il affiche le `systemMessage` sous forme de brève notification dans le terminal. Le message n'atteint pas le flux de messages du SDK.

3027 3037 

3028<h3 id="directoryadded">3038<h3 id="directoryadded">

3029 DirectoryAdded3039 DirectoryAdded

3030</h3>3040</h3>

3031 3041 

3032S'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.3042S'exécute après que vous avez ajouté un répertoire de travail en cours de session avec la commande `/add-dir`, ou après qu'un client SDK en a ajouté un avec la requête de contrôle `register_repo_root`. Utilisez-le pour préparer un dépôt nouvellement ajouté, par exemple en installant ses dépendances.

3033 3043 

3034Claude Code ne déclenche pas cet événement quand :3044Claude Code ne déclenche pas cet événement lorsque :

3035 3045 

3036* Vous passez un répertoire avec le drapeau de démarrage `--add-dir` ; [SessionStart](#sessionstart) couvre ces répertoires3046* Vous passez un répertoire avec le flag de démarrage `--add-dir` ; [SessionStart](#sessionstart) couvre ces répertoires

3037* Vous ajoutez un répertoire sur l'onglet Workspace `/permissions`3047* Vous ajoutez un répertoire dans l'onglet Workspace de `/permissions`

3038* Vous ajoutez un répertoire qui est déjà un répertoire de travail ou à l'intérieur d'un3048* Vous ajoutez un répertoire qui est déjà un répertoire de travail ou qui se trouve à l'intérieur de l'un d'eux

3039 3049 

3040Claude 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.3050Claude Code déclenche DirectoryAdded après avoir actualisé l'état du sandbox et des permissions, de sorte que les outils en sandbox voient déjà le nouveau répertoire lorsque votre hook s'exécute. Les commandes des hooks elles-mêmes s'exécutent hors sandbox.

3041 3051 

3042Claude 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.3052Claude 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.

3043 3053 

3044Le matcher filtre sur la façon dont le répertoire a été ajouté :3054Le matcher filtre sur la manière dont le répertoire a été ajouté :

3045 3055 

3046| Matcher | Quand il se déclenche |3056| Matcher | Quand il se déclenche |

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


3057| Champ | Description |3067| Champ | Description |

3058| :- | :- |3068| :- | :- |

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

3060| `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 |3070| `source` | La manière dont le répertoire a été ajouté : `"slash_command"` pour `/add-dir` ou `"register_repo_root"` pour la requête de contrôle du SDK |

3061 3071 

3062```json theme={null}3072```json theme={null}

3063{3073{


3070}3080}

3071```3081```

3072 3082 

3073Les hooks DirectoryAdded n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer l'ajout, qui s'est déjà terminé quand le hook s'exécute. Claude Code rejette le champ `continue` de leur sortie JSON et affiche le reste différemment par source :3083Les hooks DirectoryAdded n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer l'ajout, qui est déjà terminé lorsque le hook s'exécute. Claude Code supprime le champ `continue` de leur sortie JSON et présente le reste différemment selon la source :

3074 3084 

3075* `slash_command` : Claude Code livre le `systemMessage` du hook à Claude comme contexte sur le tour de conversation suivant, plutôt que de vous le montrer. Un nombre de hooks échoués apparaît dans la transcription. La sortie d'échec complète va au journal de débogage3085* `slash_command` : Claude Code transmet le `systemMessage` du hook à Claude comme contexte au tour suivant de la conversation, plutôt que de vous l'afficher. Le nombre de hooks en échec apparaît dans la transcription. La sortie complète des échecs est envoyée dans le log de débogage

3076* `register_repo_root` : Claude Code écrit la sortie `systemMessage` et la sortie d'échec au journal de débogage uniquement3086* `register_repo_root` : Claude Code écrit la sortie `systemMessage` et la sortie des échecs uniquement dans le log de débogage

3077 3087 

3078<h3 id="filechanged">3088<h3 id="filechanged">

3079 FileChanged3089 FileChanged

3080</h3>3090</h3>

3081 3091 

3082S'exécute quand un fichier surveillé change sur le disque. Claude Code détecte les changements avec un observateur de système de fichiers, pas en inspectant les appels d'outils, donc il exécute le hook peu importe ce qui a changé le fichier : un appel d'outil `Edit` ou `Write`, un script que Claude exécute avec `Bash`, ou un processus en dehors de Claude Code entièrement. Un usage courant est de recharger les variables d'environnement quand les fichiers de configuration du projet changent.3092S'exécute lorsqu'un fichier surveillé change sur le disque. Claude Code détecte les modifications avec un observateur du système de fichiers, et non en inspectant les appels d'outils ; il exécute donc le hook quelle que soit l'origine de la modification : un appel d'outil `Edit` ou `Write`, un script que Claude exécute avec `Bash`, ou un processus entièrement extérieur à Claude Code. Un usage courant consiste à recharger des variables d'environnement lorsque des fichiers de configuration du projet changent.

3083 3093 

3084Le `matcher` pour cet événement sert deux rôles :3094Le `matcher` de cet événement joue deux rôles :

3085 3095 

3086* **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`.3096* **Construire la liste de surveillance** : la valeur est découpée sur `|` et chaque segment est enregistré comme un nom de fichier littéral dans le répertoire de travail ; ainsi `".envrc|.env"` surveille exactement ces deux fichiers. Les expressions régulières ne sont pas utiles ici : une valeur comme `^\.env` surveillerait un fichier littéralement nommé `^\.env`.

3087* **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é.3097* **Filtrer les hooks qui s'exécutent** : lorsqu'un fichier surveillé change, la même valeur filtre les groupes de hooks qui s'exécutent selon les [règles standard des matchers](#matcher-patterns), appliquées au nom de base du fichier modifié.

3088 3098 

3089Cet 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 :3099Cet exemple normalise les fins de ligne de `data.csv` après toute modification, y compris lorsqu'une commande `Bash` ou un script externe réécrit le fichier :

3090 3100 

3091```json theme={null}3101```json theme={null}

3092{3102{


3106}3116}

3107```3117```

3108 3118 

3109Le 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 :3119Le hook lit le chemin absolu du fichier modifié dans le champ `file_path` de l'[entrée JSON](#filechanged-input) sur stdin. Sa garde `grep` teste la même chose que ce que `perl` supprime, un CR en fin de ligne, de sorte que l'exécution qui suit une normalisation se termine sans toucher au fichier. Une garde plus permissive boucle indéfiniment, car `perl -i` réécrit le fichier même lorsqu'il ne substitue rien et Claude Code réexécute le hook après chaque réécriture. Enregistrez ce script sous `/path/to/normalize-line-endings.sh` et rendez-le exécutable :

3110 3120 

3111```bash theme={null}3121```bash theme={null}

3112#!/bin/bash3122#!/bin/bash


3116fi3126fi

3117```3127```

3118 3128 

3119Pour 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.3129Pour vérifier 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 retrouve avec des fins de ligne LF.

3120 3130 

3121Pour 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é `*`.3131Pour surveiller des fichiers que vous ne pouvez pas nommer à l'avance, renvoyez [`watchPaths`](#filechanged-output) depuis un hook afin de mettre à jour dynamiquement la liste de surveillance. Claude Code ne démarre l'observateur que lorsqu'un élément nomme un fichier à surveiller ; amorcez donc 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 renvoie `watchPaths`. Le matcher filtre toujours les groupes de hooks qui s'exécutent lorsqu'un fichier surveillé change ; donnez donc au groupe qui gère les chemins dynamiques un matcher omis, qui correspond à tous les fichiers surveillés et n'ajoute rien à la liste de surveillance. Un matcher `"*"` correspond également à tous les fichiers, mais Claude Code l'enregistre dans la liste de surveillance comme n'importe quelle autre valeur, en tant que fichier littéral nommé `*`.

3122 3132 

3123Les 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.3133Les 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), moment où Claude Code les efface.

3124 3134 

3125<h4 id="filechanged-input">3135<h4 id="filechanged-input">

3126 Entrée FileChanged3136 Entrée FileChanged


3131| Champ | Description |3141| Champ | Description |

3132| :- | :- |3142| :- | :- |

3133| `file_path` | Chemin absolu du fichier qui a changé |3143| `file_path` | Chemin absolu du fichier qui a changé |

3134| `event` | Ce qui s'est passé : `"change"` pour un fichier modifié, `"add"` pour un fichier créé, ou `"unlink"` pour un fichier supprimé |3144| `event` | Ce qui s'est produit : `"change"` pour un fichier modifié, `"add"` pour un fichier créé ou `"unlink"` pour un fichier supprimé |

3135 3145 

3136```json theme={null}3146```json theme={null}

3137{3147{


3148 Sortie FileChanged3158 Sortie FileChanged

3149</h4>3159</h4>

3150 3160 

3151En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks FileChanged peuvent retourner `watchPaths` pour mettre à jour dynamiquement quels chemins de fichier sont surveillés :3161En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks FileChanged peuvent renvoyer `watchPaths` pour mettre à jour dynamiquement les chemins de fichiers surveillés :

3152 3162 

3153| Champ | Description |3163| Champ | Description |

3154| :- | :- |3164| :- | :- |

3155| `watchPaths` | Tableau de chemins absolus. Remplace la liste de surveillance dynamique actuelle. Les chemins de votre configuration `matcher` sont toujours surveillés. Utilisez ceci quand votre script de hook découvre des fichiers supplémentaires à surveiller en fonction du fichier modifié |3165| `watchPaths` | Tableau de chemins absolus. Remplace la liste de surveillance dynamique actuelle. Les chemins issus de votre configuration `matcher` sont toujours surveillés. Utilisez-le lorsque votre script de hook découvre des fichiers supplémentaires à surveiller en fonction du fichier modifié |

3156 3166 

3157Les hooks FileChanged n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer le changement de fichier de se produire.3167Les hooks FileChanged n'ont pas de contrôle de décision. Ils ne peuvent pas empêcher la modification du fichier.

3158 3168 

3159Claude Code lit `watchPaths` et `systemMessage` de leur sortie JSON et rejette `continue`. Dans les sessions interactives, il montre le `systemMessage` comme une brève notification de terminal. Le message n'atteint pas le flux de message SDK.3169Claude Code lit `watchPaths` et `systemMessage` dans leur sortie JSON et supprime `continue`. Dans les sessions interactives, il affiche le `systemMessage` sous forme de brève notification dans le terminal. Le message n'atteint pas le flux de messages du SDK.

3160 3170 

3161<h3 id="worktreecreate">3171<h3 id="worktreecreate">

3162 WorktreeCreate3172 WorktreeCreate

3163</h3>3173</h3>

3164 3174 

3165S'exécute quand un worktree est en cours de création, que ce soit à partir de `claude --worktree`, à partir d'un [sous-agent utilisant `isolation: "worktree"`](/docs/fr/sub-agents#choose-the-subagent-scope), ou pour une [session en arrière-plan](/docs/fr/agent-view#how-file-edits-are-isolated) que Claude Code isole dans son propre worktree. Par défaut, Claude Code crée la copie de travail isolée avec `git worktree`. Configurer un hook WorktreeCreate remplace ce comportement git par défaut, vous permettant d'utiliser un système de contrôle de version différent comme SVN, Perforce, ou Mercurial.3175S'exécute lorsqu'un worktree est en cours de création, que ce soit depuis `claude --worktree`, depuis un [sous-agent utilisant `isolation: "worktree"`](/docs/fr/sub-agents#choose-the-subagent-scope), ou pour une [session en arrière-plan](/docs/fr/agent-view#how-file-edits-are-isolated) que Claude Code isole dans son propre worktree. Par défaut, Claude Code crée la copie de travail isolée avec `git worktree`. Configurer un hook WorktreeCreate remplace ce comportement git par défaut, ce qui vous permet d'utiliser un autre système de gestion de versions comme SVN, Perforce ou Mercurial.

3166 3176 

3167Parce que le hook remplace le comportement par défaut entièrement, [`.worktreeinclude`](/docs/fr/worktrees#copy-gitignored-files-into-worktrees) n'est pas traité. Si vous avez besoin de copier les fichiers de configuration locaux comme `.env` dans le nouveau worktree, faites-le à l'intérieur de votre script de hook.3177Comme le hook remplace entièrement le comportement par défaut, [`.worktreeinclude`](/docs/fr/worktrees#copy-gitignored-files-into-worktrees) n'est pas traité. Si vous devez copier des fichiers de configuration locaux comme `.env` dans le nouveau worktree, faites-le dans votre script de hook.

3168 3178 

3169Le hook doit retourner le chemin du répertoire worktree créé. Claude Code utilise ce chemin comme le répertoire de travail pour la session isolée. Voir [Sortie WorktreeCreate](#worktreecreate-output) pour savoir comment chaque type de hook retourne le chemin.3179Le hook doit renvoyer le chemin du répertoire du worktree créé. Claude Code utilise ce chemin comme répertoire de travail pour la session isolée. Voir [Sortie WorktreeCreate](#worktreecreate-output) pour savoir comment chaque type de hook renvoie le chemin.

3170 3180 

3171Claude Code agit sur le succès du hook et le chemin retourné, et rejette `systemMessage` et `continue`.3181Claude Code tient compte de la réussite du hook et du chemin renvoyé, et supprime `systemMessage` et `continue`.

3172 3182 

3173Cet exemple crée une copie de travail SVN et imprime le chemin pour que Claude Code l'utilise. Remplacez l'URL du référentiel par la vôtre :3183Cet exemple crée une copie de travail SVN et affiche le chemin que Claude Code doit utiliser. Remplacez l'URL du dépôt par la vôtre :

3174 3184 

3175```json theme={null}3185```json theme={null}

3176{3186{


3189}3199}

3190```3200```

3191 3201 

3192Le hook lit le `name` du worktree de l'entrée JSON sur stdin, extrait une copie fraîche dans un nouveau répertoire, et imprime le chemin du répertoire. Le `echo` sur la dernière ligne est ce que Claude Code lit comme le chemin du worktree. Redirigez toute autre sortie vers stderr pour qu'elle n'interfère pas avec le chemin.3202Le hook lit le `name` du worktree dans l'entrée JSON sur stdin, extrait une nouvelle copie dans un nouveau répertoire et affiche le chemin du répertoire. L'`echo` de la dernière ligne est ce que Claude Code lit comme chemin du worktree. Redirigez toute autre sortie vers stderr afin qu'elle n'interfère pas avec le chemin.

3193 3203 

3194<h4 id="worktreecreate-input">3204<h4 id="worktreecreate-input">

3195 Entrée WorktreeCreate3205 Entrée WorktreeCreate

3196</h4>3206</h4>

3197 3207 

3198En plus des [champs d'entrée communs](#common-input-fields), les hooks WorktreeCreate reçoivent le champ `name`. C'est un identifiant slug pour le nouveau worktree, soit spécifié par l'utilisateur, soit auto-généré, par exemple `bold-oak-a3f2`.3208En plus des [champs d'entrée communs](#common-input-fields), les hooks WorktreeCreate reçoivent le champ `name`. Il s'agit d'un identifiant de type slug pour le nouveau worktree, soit spécifié par l'utilisateur, soit généré automatiquement, par exemple `bold-oak-a3f2`.

3199 3209 

3200```json theme={null}3210```json theme={null}

3201{3211{


3208```3218```

3209 3219 

3210<h4 id="worktreecreate-output">3220<h4 id="worktreecreate-output">

3211 Sortie WorktreeCreate3221 Sortie de WorktreeCreate

3212</h4>3222</h4>

3213 3223 

3214Les hooks WorktreeCreate n'utilisent pas le modèle de décision permettre/bloquer standard. Au lieu de cela, le succès ou l'échec du hook détermine le résultat. Le hook doit retourner le chemin du répertoire worktree créé :3224Les hooks WorktreeCreate n'utilisent pas le modèle de décision standard autoriser/bloquer. C'est plutôt la réussite ou l'échec du hook qui détermine le résultat. Le hook doit renvoyer le chemin vers le répertoire du worktree créé :

3215 3225 

3216* **Hooks de commande** (`type: "command"`) : imprimez le chemin comme la dernière ligne non-vide de stdout. Claude Code supprime les codes d'échappement ANSI avant de lire cette ligne, donc les bannières de démarrage du shell imprimées avant votre `echo` sont ignorées. Redirigez toute autre sortie du hook vers stderr.3226* **Hooks de commande** (`type: "command"`) : affichez le chemin sur la dernière ligne non vide de stdout. Claude Code supprime les codes d'échappement ANSI avant de lire cette ligne, de sorte que les bannières de démarrage du shell affichées avant votre `echo` sont ignorées. Redirigez toute autre sortie du hook vers stderr.

3217* **Hooks HTTP** (`type: "http"`) : retournez `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` dans le corps de la réponse.3227* **Hooks HTTP** (`type: "http"`) : renvoyez `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` dans le corps de la réponse.

3218 3228 

3219Si le hook échoue ou ne produit pas de chemin, la création du worktree échoue avec une erreur.3229Si le hook échoue ou ne produit aucun chemin, la création du worktree échoue avec une erreur.

3220 3230 

3221Claude Code résout un chemin relatif contre le répertoire où le hook s'est exécuté, en effondrant tout segment `.` ou `..` dedans. Si le chemin résultant n'est pas un répertoire que Claude Code peut entrer, la session imprime une erreur nommant le chemin et quitte avec le code 1.3231Claude Code résout un chemin relatif par rapport au répertoire dans lequel le hook s'est exécuté, en réduisant les éventuels segments `.` ou `..` qu'il contient. Si le chemin obtenu n'est pas un répertoire dans lequel Claude Code peut entrer, la session affiche une erreur indiquant le chemin et se termine avec le code 1.

3222 3232 

3223Claude Code refuse un chemin absolu qui contient des segments `.` ou `..`, et n'importe quel chemin qui passe par un lien symbolique en dessous de la racine du référentiel, parce qu'un lien symbolique commis au référentiel pourrait rediriger le worktree en dehors de lui. L'erreur nomme le composant rejeté. Retournez un chemin normalisé qui ne passe pas par un lien symbolique à l'intérieur du référentiel. Avant v2.1.216, la création du worktree suivait le chemin du hook sans ce dépistage.3233Claude Code refuse un chemin absolu contenant des segments `.` ou `..`, ainsi que tout chemin passant par un lien symbolique situé sous la racine du dépôt, car un lien symbolique commité dans le dépôt pourrait rediriger le worktree en dehors de celui-ci. L'erreur indique le composant rejeté. Renvoyez un chemin normalisé qui ne passe pas par un lien symbolique à l'intérieur du dépôt. Avant la v2.1.216, la création du worktree suivait le chemin du hook sans ce contrôle.

3224 3234 

3225<h3 id="worktreeremove">3235<h3 id="worktreeremove">

3226 WorktreeRemove3236 WorktreeRemove

3227</h3>3237</h3>

3228 3238 

3229S'exécute quand un worktree est en cours de suppression. C'est la contrepartie de nettoyage de [WorktreeCreate](#worktreecreate). L'événement se déclenche quand :3239S'exécute lorsqu'un worktree est en cours de suppression. C'est le pendant de nettoyage de [WorktreeCreate](#worktreecreate). L'événement se déclenche lorsque :

3230 3240 

3231* vous quittez une session `--worktree` et choisissez de la supprimer3241* vous quittez une session `--worktree` et choisissez de la supprimer

3232* un sous-agent avec `isolation: "worktree"` se termine3242* un sous-agent avec `isolation: "worktree"` se termine

3233* vous supprimez une [session en arrière-plan](/docs/fr/agent-view#what-deleting-a-session-removes) dont le worktree le hook a créé3243* 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 hook

3234 3244 

3235Pour 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 :3245Pour les worktrees basés sur git, Claude Code gère automatiquement le nettoyage 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 :

3236 3246 

3237* **Pas de hook WorktreeRemove** : quand vous quittez une session `--worktree` et choisissez la suppression, Claude Code revient à `git worktree remove --force` sur le chemin que votre hook WorktreeCreate a retourné, donc un worktree que git reconnaît est supprimé. Un worktree que git ne reconnaît pas, par exemple un que votre hook a créé avec un système de contrôle de version non-git, reste sur le disque. Pour ce que la suppression d'une [session en arrière-plan](/docs/fr/agent-view#what-deleting-a-session-removes) fait avec un worktree créé par hook, voir les règles de suppression de la vue agent.3247* **Aucun hook WorktreeRemove** : lorsque vous quittez une session `--worktree` et choisissez la suppression, Claude Code se rabat sur `git worktree remove --force` sur le chemin renvoyé par votre hook WorktreeCreate, de sorte qu'un worktree reconnu par git est supprimé. Un worktree que git ne reconnaît pas, par exemple un worktree créé par votre hook avec un système de gestion de versions autre que git, reste sur le disque. Pour savoir ce que la suppression d'une [session en arrière-plan](/docs/fr/agent-view#what-deleting-a-session-removes) fait d'un worktree créé par un hook, consultez les règles de suppression de la vue agent.

3238* **Le hook quitte 0** : le worktree compte comme supprimé. Claude Code ne lit rien d'autre du hook, donc assurez-vous que votre hook a supprimé le répertoire.3248* **Le hook se termine avec le code 0** : le worktree est considéré comme supprimé. Claude Code ne lit rien d'autre du hook ; assurez-vous donc que votre hook a bien supprimé le répertoire.

3239* **Le hook quitte non-zéro** : la suppression échoue si le répertoire à `worktree_path` existe toujours après, et le worktree reste sur le disque sans fallback git. Un hook qui a supprimé le répertoire avant de quitter non-zéro compte comme supprimé. Pour savoir comment l'échec est signalé, voir [Entrée WorktreeRemove](#worktreeremove-input).3249* **Le hook se termine avec un code non nul** : la suppression échoue si le répertoire situé à `worktree_path` existe toujours ensuite, et le worktree reste sur le disque sans solution de repli git. Un hook qui a supprimé le répertoire avant de se terminer avec un code non nul est considéré comme ayant supprimé le worktree. Pour savoir comment l'échec est signalé, consultez [Entrée de WorktreeRemove](#worktreeremove-input).

3240 3250 

3241Claude Code ne supprime jamais une branche appartenant à un worktree créé par hook, parce qu'il connaît uniquement le chemin que votre hook WorktreeCreate a retourné. Si votre hook WorktreeCreate crée une branche, supprimez-la dans votre hook WorktreeRemove.3251Claude Code ne supprime jamais une branche appartenant à un worktree créé par un hook, car il ne connaît que le chemin renvoyé par votre hook WorktreeCreate. Si votre hook WorktreeCreate crée une branche, supprimez-la dans votre hook WorktreeRemove.

3242 3252 

3243Claude Code rejette les [champs de sortie JSON](#json-output) d'un hook WorktreeRemove, comme `systemMessage` et `continue`.3253Claude Code ignore les [champs de sortie JSON](#json-output) d'un hook WorktreeRemove, tels que `systemMessage` et `continue`.

3244 3254 

3245Pour une suppression de session en arrière-plan, Claude Code vérifie le chemin du worktree stocké avant d'exécuter le hook et refuse un chemin qui est un lien symbolique ou passe par un en dessous de la racine du référentiel. Le hook s'exécute pour un worktree qui contient toujours des fichiers uniquement quand vous confirmez la suppression dans la [vue agent](/docs/fr/agent-view#what-deleting-a-session-removes) ; pour un tel worktree, [`claude rm`](/docs/fr/agent-view#manage-sessions-from-the-shell) garde la session et le worktree à la place. Avant v2.1.216, le hook s'exécutait sur le chemin stocké sans ces vérifications.3255Lors de la suppression d'une session en arrière-plan, Claude Code vérifie le chemin du worktree enregistré avant d'exécuter le hook et refuse un chemin qui est un lien symbolique ou qui passe par un lien symbolique sous la racine du dépôt. Le hook s'exécute pour un worktree contenant encore des fichiers uniquement lorsque vous confirmez la suppression dans la [vue agent](/docs/fr/agent-view#what-deleting-a-session-removes) ; pour un tel worktree, [`claude rm`](/docs/fr/agent-view#manage-sessions-from-the-shell) conserve plutôt la session et le worktree. Avant la v2.1.216, le hook s'exécutait sur le chemin enregistré sans ces vérifications.

3246 3256 

3247Claude Code passe le chemin retourné par WorktreeCreate comme `worktree_path` dans l'entrée du hook. Cet exemple lit ce chemin et supprime le répertoire :3257Claude Code transmet le chemin renvoyé par WorktreeCreate sous la forme `worktree_path` dans l'entrée du hook. Cet exemple lit ce chemin et supprime le répertoire :

3248 3258 

3249```json theme={null}3259```json theme={null}

3250{3260{


3264```3274```

3265 3275 

3266<h4 id="worktreeremove-input">3276<h4 id="worktreeremove-input">

3267 Entrée WorktreeRemove3277 Entrée de WorktreeRemove

3268</h4>3278</h4>

3269 3279 

3270En plus des [champs d'entrée communs](#common-input-fields), les hooks WorktreeRemove reçoivent le champ `worktree_path`, qui est le chemin absolu du worktree en cours de suppression.3280En plus des [champs d'entrée communs](#common-input-fields), les hooks WorktreeRemove reçoivent le champ `worktree_path`, qui est le chemin absolu vers le worktree en cours de suppression.

3271 3281 

3272```json theme={null}3282```json theme={null}

3273{3283{


3279}3289}

3280```3290```

3281 3291 

3282Le code de sortie d'un hook WorktreeRemove décide du résultat. Quand un hook quitte non-zéro et le répertoire à `worktree_path` existe toujours après, la suppression échoue :3292Le code de sortie d'un hook WorktreeRemove détermine le résultat. Lorsqu'un hook se termine avec un code non nul et que le répertoire situé à `worktree_path` existe toujours ensuite, la suppression échoue :

3283 3293 

3284* Le worktree reste sur le disque, et la commande du hook et stderr vont au [journal de débogage](#debug-hooks).3294* Le worktree reste sur le disque, et la commande et le stderr du hook sont envoyés au [log de débogage](#debug-hooks).

3285* Si vous supprimiez une session en arrière-plan, la session reste aussi. Le message de refus dans la [vue agent](/docs/fr/agent-view#what-deleting-a-session-removes) signale comment le hook s'est terminé, comme `exited 1`, cite le début de son stderr, et dit si la suppression de la session à nouveau supprime le répertoire de toute façon.3295* Si vous supprimiez une session en arrière-plan, la session est également conservée. Le message de refus dans la [vue agent](/docs/fr/agent-view#what-deleting-a-session-removes) indique comment le hook s'est terminé, par exemple `exited 1`, cite le début de son stderr et précise si une nouvelle suppression de la session supprime malgré tout le répertoire.

3286 3296 

3287<h3 id="precompact">3297<h3 id="precompact">

3288 PreCompact3298 PreCompact

3289</h3>3299</h3>

3290 3300 

3291S'exécute avant que Claude Code soit sur le point d'exécuter une opération de compaction.3301S'exécute juste avant que Claude Code n'effectue une opération de compaction.

3292 3302 

3293La valeur du matcher indique si la compaction a été déclenchée manuellement ou automatiquement :3303La valeur du matcher indique si la compaction a été déclenchée manuellement ou automatiquement :

3294 3304 

3295| Matcher | Quand il se déclenche |3305| Matcher | Quand il se déclenche |

3296| :- | :- |3306| :- | :- |

3297| `manual` | `/compact` |3307| `manual` | `/compact` |

3298| `auto` | Compaction automatique quand la conversation atteint la [fenêtre de compaction automatique](/docs/fr/model-config#set-the-auto-compact-window) |3308| `auto` | Compaction automatique lorsque la conversation atteint la [fenêtre de compaction automatique](/docs/fr/model-config#set-the-auto-compact-window) |

3299 3309 

3300Quittez 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"`.3310Terminez avec le code 2 pour bloquer la compaction. Pour un `/compact` manuel, le message stderr est affiché à l'utilisateur. Vous pouvez également bloquer en renvoyant du JSON avec `"decision": "block"`.

3301 3311 

3302Bloquer 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.3312Le blocage de la compaction automatique a des effets différents selon le moment où elle se déclenche. Si la compaction a été déclenchée de manière proactive avant la limite de contexte, Claude Code l'ignore et la conversation se poursuit sans être compactée. Si la compaction a été déclenchée pour récupérer d'une erreur de limite de contexte déjà renvoyée par l'API, l'erreur sous-jacente remonte et la requête en cours échoue.

3303 3313 

3304Claude Code rejette les champs `systemMessage` et `continue` d'un hook PreCompact.3314Claude Code ignore les champs `systemMessage` et `continue` d'un hook PreCompact.

3305 3315 

3306<h4 id="precompact-input">3316<h4 id="precompact-input">

3307 Entrée PreCompact3317 Entrée de PreCompact

3308</h4>3318</h4>

3309 3319 

3310En plus des [champs d'entrée communs](#common-input-fields), les hooks PreCompact reçoivent `trigger` et `custom_instructions`. Pour `manual`, `custom_instructions` contient ce que l'utilisateur passe dans `/compact` et est `null` quand il ne passe rien. Pour `auto`, `custom_instructions` est `null`.3320En plus des [champs d'entrée communs](#common-input-fields), les hooks PreCompact reçoivent `trigger` et `custom_instructions`. Pour `manual`, `custom_instructions` contient ce que l'utilisateur transmet à `/compact` et vaut `null` lorsqu'il ne transmet rien. Pour `auto`, `custom_instructions` vaut `null`.

3311 3321 

3312```json theme={null}3322```json theme={null}

3313{3323{


3324 PostCompact3334 PostCompact

3325</h3>3335</h3>

3326 3336 

3327S'exécute après que Claude Code termine une opération de compaction. Utilisez cet événement pour réagir à l'état compacté nouveau, par exemple pour enregistrer le résumé généré ou mettre à jour l'état externe. Claude Code rejette les champs `systemMessage` et `continue` d'un hook PostCompact.3337S'exécute après que Claude Code a terminé une opération de compaction. Utilisez cet événement pour réagir au nouvel état compacté, par exemple pour journaliser le résumé généré ou mettre à jour un état externe. Claude Code ignore les champs `systemMessage` et `continue` d'un hook PostCompact.

3328 3338 

3329Les mêmes valeurs de matcher s'appliquent que pour `PreCompact` :3339Les mêmes valeurs de matcher s'appliquent que pour `PreCompact` :

3330 3340 

3331| Matcher | Quand il se déclenche |3341| Matcher | Quand il se déclenche |

3332| :- | :- |3342| :- | :- |

3333| `manual` | Après `/compact` |3343| `manual` | Après `/compact` |

3334| `auto` | Après la compaction automatique quand la conversation atteint la [fenêtre de compaction automatique](/docs/fr/model-config#set-the-auto-compact-window) |3344| `auto` | Après la compaction automatique lorsque la conversation atteint la [fenêtre de compaction automatique](/docs/fr/model-config#set-the-auto-compact-window) |

3335 3345 

3336<h4 id="postcompact-input">3346<h4 id="postcompact-input">

3337 Entrée PostCompact3347 Entrée de PostCompact

3338</h4>3348</h4>

3339 3349 

3340En plus des [champs d'entrée communs](#common-input-fields), les hooks PostCompact reçoivent `trigger` et `compact_summary`. Le champ `compact_summary` contient le résumé de conversation généré par l'opération de compaction.3350En plus des [champs d'entrée communs](#common-input-fields), les hooks PostCompact reçoivent `trigger` et `compact_summary`. Le champ `compact_summary` contient le résumé de la conversation généré par l'opération de compaction.

3341 3351 

3342```json theme={null}3352```json theme={null}

3343{3353{


3350}3360}

3351```3361```

3352 3362 

3353Les 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.3363Les hooks PostCompact n'ont aucun contrôle de décision. Ils ne peuvent pas influer sur le résultat de la compaction, mais peuvent effectuer des tâches de suivi.

3354 3364 

3355<h3 id="premodelswitch">3365<h3 id="premodelswitch">

3356 PreModelSwitch3366 PreModelSwitch

3357</h3>3367</h3>

3358 3368 

3359S'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.3369S'exécute avant que Claude Code n'applique un changement de modèle demandé par vous ou par un client. Utilisez-le pour bloquer un changement, exiger une confirmation ou afficher ce que le changement coûtera avant qu'il n'ait lieu.

3360 3370 

3361PreModelSwitch nécessite Claude Code v2.1.251 ou ultérieur. Claude Code l'exécute pour ces requêtes :3371PreModelSwitch nécessite Claude Code v2.1.251 ou une version ultérieure. Claude Code l'exécute pour ces demandes :

3362 3372 

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

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

3365* Le paramètre Model dans `/config`3375* Le paramètre Model dans `/config`

3366* Activer le [mode rapide](/docs/fr/fast-mode) quand cela change le modèle de la session3376* L'activation du [mode rapide](/docs/fr/fast-mode) lorsque celle-ci change le modèle de la session

3367* 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)3377* Une requête `set_model`, ou un changement de modèle dans une requête `apply_flag_settings`, provenant d'un hôte [Agent SDK](/docs/fr/agent-sdk/typescript#query-object) ou de [Remote Control](/docs/fr/remote-control)

3368 3378 

3369Claude 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.3379Claude Code n'exécute pas les hooks PreModelSwitch pour les changements qu'il effectue de lui-même, comme un [basculement automatique vers un modèle de secours](/docs/fr/model-config#automatic-model-fallback) ou la restauration du modèle lorsque vous reprenez une session. Ces changements atteignent uniquement [PostModelSwitch](#postmodelswitch).

3370 3380 

3371Claude 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.3381Claude Code compare le matcher au nom canonique du modèle vers lequel la session bascule, en ignorant tout suffixe `[1m]`. Un alias tel que `opus`, un identifiant de modèle daté et un identifiant propre à un fournisseur, comme un identifiant de modèle Amazon Bedrock, correspondent tous au même nom canonique vers lequel ils se résolvent ; ainsi, `claude-opus-5` couvre toutes les écritures d'Opus 5.

3372 3382 

3373Quand 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.3383Lorsque Claude Code ne peut pas déterminer un nom canonique pour la cible, par exemple un identifiant de modèle personnalisé que seule votre [passerelle LLM](/docs/fr/llm-gateway) connaît, il exécute tous les hooks PreModelSwitch quel que soit le matcher. Un hook qui bloque doit donc vérifier `to_model` dans son entrée plutôt que de se fier uniquement au matcher.

3374 3384 

3375Écrivez le matcher comme un nom exact, une liste séparée par `|` comme `claude-opus-4-6|claude-opus-5`, ou une expression régulière comme `.*opus.*`. Cet exemple utilise un matcher de nom exact et vérifie également `to_model` de l'entrée du hook, donc il refuse un changement vers Opus 4.6 en quittant avec le code 2 et laisse n'importe quelle autre cible passer :3385Écrivez le matcher sous la forme d'un nom exact, d'une liste séparée par des `|` telle que `claude-opus-4-6|claude-opus-5`, ou d'une expression régulière telle que `.*opus.*`. Cet exemple utilise un matcher à nom exact et vérifie également `to_model` dans l'entrée du hook ; il refuse ainsi un changement vers Opus 4.6 en se terminant avec le code 2 et laisse passer toute autre cible :

3376 3386 

3377<Tabs>3387<Tabs>

3378 <Tab title="macOS/Linux">3388 <Tab title="macOS/Linux">


3438 </Tab>3448 </Tab>

3439</Tabs>3449</Tabs>

3440 3450 

3441Pour confirmer que le hook fonctionne, exécutez `/model claude-opus-4-6` à partir d'une session exécutant un modèle différent. Claude Code garde le modèle actuel et signale qu'un hook PreModelSwitch a bloqué le changement, avec votre message comme raison.3451Pour vérifier que le hook fonctionne, exécutez `/model claude-opus-4-6` depuis une session utilisant un autre modèle. Claude Code conserve le modèle actuel et indique qu'un hook PreModelSwitch a bloqué le changement, avec votre message comme motif.

3442 3452 

3443<h4 id="premodelswitch-input">3453<h4 id="premodelswitch-input">

3444 Entrée PreModelSwitch3454 Entrée de PreModelSwitch

3445</h4>3455</h4>

3446 3456 

3447En 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.3457En 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 ce que coûte le renvoi de la conversation au nouveau modèle, afin qu'un hook puisse afficher ce montant avant que le changement n'ait lieu.

3448 3458 

3449| Champ | Type | Description |3459| Champ | Type | Description |

3450| :- | :- | :- |3460| :- | :- | :- |

3451| `from_model` | string | ID de modèle du changement |3461| `from_model` | string | Identifiant du modèle que le changement quitte |

3452| `to_model` | string | ID de modèle du changement vers. Le matcher compare contre le nom canonique de ce modèle |3462| `to_model` | string | Identifiant du modèle vers lequel le changement s'effectue. Le matcher est comparé au nom canonique de ce modèle |

3453| `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 |3463| `requested_model` | string ou `null` | Le modèle indiqué dans la demande : un alias tel que `opus`, un identifiant de modèle complet, ou `null` lorsque la demande portait sur le modèle par défaut |

3454| `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 |3464| `source` | string | Origine de 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 requête `set_model`, ou un changement de modèle dans une requête `apply_flag_settings`, provenant d'un hôte Agent SDK ou de Remote Control |

3455| `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 |3465| `context_tokens` | number | Tokens que la prochaine requête renvoie comme prompt : la somme des tokens d'entrée, de lecture du cache, de création du cache et de sortie de la dernière réponse de la conversation principale. `0` avant la première réponse |

3456| `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 |3466| `prompt_cache_warm` | boolean | Indique si le cache de prompt du modèle actuel est probablement encore chaud, ce qui signifie que le changement le perd |

3457| `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"` |3467| `cache_ttl` | string | [Durée de vie du cache de prompt](/docs/fr/prompt-caching#cache-lifetime) que Claude Code demande pour cette session : `"5m"` ou `"1h"` |

3458| `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 |3468| `estimated_cache_write_usd` | number | Coût estimé en dollars américains de l'écriture de `context_tokens` dans le cache de prompt sur `to_model` au tarif `cache_ttl`, hors réponse suivante. Le serveur n'a pas forcément besoin de remettre en cache tout le contexte ; considérez donc cette valeur comme une estimation |

3459| `pricing` | string | Comment Claude Code a tarifé `estimated_cache_write_usd` : `"configured"` à vos propres taux d'organisation quand elle les a configurés, `"catalog"` au prix catalogue, ou `"default"` quand `to_model` n'a pas de prix connu et Claude Code a supposé un taux par défaut |3469| `pricing` | string | Façon dont Claude Code a calculé le prix de `estimated_cache_write_usd` : `"configured"` aux tarifs propres à votre organisation lorsqu'elle les a configurés, `"catalog"` au prix catalogue, ou `"default"` lorsque `to_model` n'a pas de prix connu et que Claude Code a supposé un tarif par défaut |

3460 3470 

3461Cet exemple montre l'entrée pour `/model opus` dans une session exécutant Sonnet 5 :3471Cet exemple montre l'entrée pour `/model opus` dans une session utilisant Sonnet 5 :

3462 3472 

3463```json theme={null}3473```json theme={null}

3464{3474{


3479```3489```

3480 3490 

3481<h4 id="premodelswitch-decision-control">3491<h4 id="premodelswitch-decision-control">

3482 Contrôle de décision PreModelSwitch3492 Contrôle de décision de PreModelSwitch

3483</h4>3493</h4>

3484 3494 

3485Les hooks `PreModelSwitch` peuvent annuler le changement, demander à l'utilisateur de le confirmer, ou le laisser procéder. Le code de sortie 2 ou un `decision: "block"` de haut niveau annule le changement.3495Les hooks `PreModelSwitch` peuvent annuler le changement, demander à l'utilisateur de le confirmer ou le laisser se poursuivre. Le code de sortie 2 ou un `decision: "block"` de premier niveau annule le changement.

3486 3496 

3487Pour un contrôle plus fin, retournez `permissionDecision` et `permissionDecisionReason` dans un objet `hookSpecificOutput`, comme sur [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` accepte `"allow"`, `"deny"`, et `"ask"`. Il n'accepte pas `"defer"`, `updatedInput`, ou `additionalContext`. Le tableau ci-dessous décrit les deux champs :3497Pour un contrôle plus fin, renvoyez `permissionDecision` et `permissionDecisionReason` dans un objet `hookSpecificOutput`, comme pour [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` accepte `"allow"`, `"deny"` et `"ask"`. Il n'accepte pas `"defer"`, `updatedInput` ni `additionalContext`. Le tableau ci-dessous décrit les deux champs :

3488 3498 

3489| Champ | Description |3499| Champ | Description |

3490| :- | :- |3500| :- | :- |

3491| `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 |3501| `permissionDecision` | `"allow"` poursuit et ignore la [confirmation que Claude Code affiche tant que le cache de prompt est chaud](/docs/fr/prompt-caching#switching-models). `"deny"` annule le changement. `"ask"` demande à l'utilisateur de le confirmer |

3492| `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"` |3502| `permissionDecisionReason` | Pour `"deny"`, affiché à l'utilisateur comme motif du blocage du changement, ou renvoyé comme erreur pour une requête `set_model`. Pour `"ask"`, affiché dans la demande de confirmation. Ignoré pour `"allow"` |

3493 3503 

3494Seul `/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.3504Seul `/model` dans une session interactive peut afficher la demande `"ask"`. Sur toutes les autres surfaces, y compris le mode non interactif avec le flag `-p`, `/config` et les requêtes `set_model`, Claude Code traite `"ask"` comme un refus.

3495 3505 

3496Cet exemple demande à l'utilisateur de confirmer et cite le nombre de tokens de `context_tokens` :3506Cet exemple demande une confirmation à l'utilisateur et cite le nombre de tokens issu de `context_tokens` :

3497 3507 

3498```json theme={null}3508```json theme={null}

3499{3509{


3505}3515}

3506```3516```

3507 3517 

3508Quand plusieurs hooks PreModelSwitch retournent des décisions différentes, la priorité est `deny` > `ask` > `allow`.3518Lorsque plusieurs hooks PreModelSwitch renvoient des décisions différentes, l'ordre de priorité est `deny` > `ask` > `allow`.

3509 3519 

3510Claude 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.3520Claude Code affiche à l'utilisateur tout `systemMessage` renvoyé par votre hook, quelle que soit la décision ; un hook de rapport de coût peut donc renvoyer `{"systemMessage": "..."}` et se terminer avec le code 0.

3511 3521 

3512Un 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.3522Un hook PreModelSwitch qui ne répond pas avant l'expiration de son délai bloque le changement. Pour [PreToolUse](#timeouts), à l'inverse, un hook de commande ayant expiré laisse l'appel d'outil se poursuivre. Le délai d'expiration par défaut pour cet événement est de 30 secondes. `PreModelSwitch` exécute uniquement les hooks `command`, `http` et `mcp_tool` ; les valeurs par défaut de `prompt` et `agent` ne s'appliquent donc pas.

3513 3523 

3514Un hook qui quitte avec un code autre que 0 ou 2 et n'imprime pas de décision JSON ne bloque pas : Claude Code montre son stderr et applique le changement, comme décrit sous [Autres codes de sortie](#other-exit-codes).3524Un hook qui se termine avec un code autre que 0 ou 2 et n'affiche aucune décision JSON ne bloque pas : Claude Code affiche son stderr et applique le changement, comme décrit dans [Autres codes de sortie](#other-exit-codes).

3515 3525 

3516<h3 id="postmodelswitch">3526<h3 id="postmodelswitch">

3517 PostModelSwitch3527 PostModelSwitch

3518</h3>3528</h3>

3519 3529 

3520S'exécute après que le modèle de la session change. Utilisez-le pour donner à Claude des conseils spécifiques au modèle sans éditer chaque CLAUDE.md, par exemple une instruction à l'échelle de l'organisation qui s'applique sur certains modèles.3530S'exécute après le changement du modèle de la session. Utilisez-le pour donner à Claude des consignes propres à un modèle sans modifier chaque CLAUDE.md, par exemple une instruction à l'échelle de l'organisation qui s'applique à certains modèles.

3521 3531 

3522PostModelSwitch nécessite Claude Code v2.1.251 ou ultérieur. Il ne peut pas bloquer, parce que le modèle a déjà changé. Claude Code exécute les hooks PostModelSwitch après n'importe lequel de ces changements :3532PostModelSwitch nécessite Claude Code v2.1.251 ou une version ultérieure. Il ne peut pas bloquer, car le modèle a déjà changé. Claude Code exécute les hooks PostModelSwitch après l'un de ces changements :

3523 3533 

3524* Un changement que vous ou un client avez demandé3534* Un changement demandé par vous ou par un client

3525* Un [fallback de modèle automatique](/docs/fr/model-config#automatic-model-fallback), qui change le modèle de la session3535* Un [basculement automatique vers un modèle de secours](/docs/fr/model-config#automatic-model-fallback), qui change le modèle de la session

3526* Un paramètre comme [`opusplan`](/docs/fr/model-config#opusplan-model-setting) entrant ou quittant le mode plan3536* Un paramètre tel que [`opusplan`](/docs/fr/model-config#opusplan-model-setting) entrant dans le mode plan ou en sortant

3527* Claude Code restaurant le modèle quand vous reprenez une session3537* La restauration du modèle par Claude Code lorsque vous reprenez une session

3528 3538 

3529Claude 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é.3539Claude Code n'exécute pas les hooks PostModelSwitch lorsqu'un modèle d'une [chaîne de modèles de secours](/docs/fr/model-config#fallback-model-chains) traite un tour, car cette substitution dure un seul tour et ne modifie pas le modèle de la session.

3530 3540 

3531Le 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é.3541Le matcher suit les mêmes règles que pour [PreModelSwitch](#premodelswitch) : Claude Code le compare au nom canonique du modèle vers lequel la session a basculé.

3532 3542 

3533Cet exemple ajoute des conseils chaque fois que le modèle de la session change vers n'importe quel modèle Opus :3543Cet exemple ajoute des consignes chaque fois que le modèle de la session passe à un modèle Opus :

3534 3544 

3535```json theme={null}3545```json theme={null}

3536{3546{


3550}3560}

3551```3561```

3552 3562 

3553Pour 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.3563Pour vérifier que le hook fonctionne, passez à un modèle Opus depuis une session utilisant un autre modèle, par exemple en exécutant `/model opus` depuis une session Sonnet, puis demandez à Claude quelles consignes il a concernant le modèle actuel.

3554 3564 

3555<h4 id="postmodelswitch-input">3565<h4 id="postmodelswitch-input">

3556 Entrée PostModelSwitch3566 Entrée de PostModelSwitch

3557</h4>3567</h4>

3558 3568 

3559Les hooks PostModelSwitch reçoivent les mêmes champs que [PreModelSwitch](#premodelswitch-input), avec `hook_event_name` défini à `"PostModelSwitch"` et deux valeurs `source` supplémentaires : `"auto"` pour un fallback automatique ou un autre changement que Claude Code a fait seul, et `"resume"` pour le modèle restauré quand vous reprenez une session.3569Les hooks PostModelSwitch reçoivent les mêmes champs que [PreModelSwitch](#premodelswitch-input), avec `hook_event_name` défini sur `"PostModelSwitch"` et deux valeurs supplémentaires pour `source` : `"auto"` pour un basculement automatique vers un modèle de secours ou tout autre changement effectué par Claude Code de lui-même, et `"resume"` pour le modèle restauré lorsque vous reprenez une session.

3560 3570 

3561`requested_model` est `null` quand `source` est `"auto"`. Quand `source` est `"resume"`, c'est le paramètre de modèle sauvegardé que Claude Code a restauré.3571`requested_model` vaut `null` lorsque `source` vaut `"auto"`. Lorsque `source` vaut `"resume"`, il s'agit du paramètre de modèle enregistré que Claude Code a restauré.

3562 3572 

3563<h4 id="postmodelswitch-decision-control">3573<h4 id="postmodelswitch-decision-control">

3564 Contrôle de décision PostModelSwitch3574 Contrôle de décision de PostModelSwitch

3565</h4>3575</h4>

3566 3576 

3567Claude Code prend la [sortie standard en texte brut](#exit-code-0) de votre hook avec le code de 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 :3577Claude Code récupère le [stdout en texte brut](#exit-code-0) de votre hook lors d'une sortie avec le code 0, ou `additionalContext` depuis la sortie JSON, et le transmet à Claude avec la prochaine requête après le changement. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez renvoyer :

3568 3578 

3569| Champ | Description |3579| Champ | Description |

3570| :- | :- |3580| :- | :- |

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

3572 3582 

3573Si 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.3583Si le hook n'a pas terminé dans les cinq secondes suivant l'envoi de votre prochain prompt, Claude Code envoie cette requête sans la sortie et la joint plutôt à la requête suivante. Si le modèle change plusieurs fois avant la prochaine requête, Claude Code transmet uniquement la sortie correspondant au modèle cible du dernier changement.

3574 3584 

3575<h3 id="sessionend">3585<h3 id="sessionend">

3576 SessionEnd3586 SessionEnd

3577</h3>3587</h3>

3578 3588 

3579S'exécute quand une session Claude Code se termine. Utile pour les tâches de nettoyage, l'enregistrement des statistiques de session, ou la sauvegarde de l'état de la session. Supporte les matchers pour filtrer par raison de sortie.3589S'exécute lorsqu'une session Claude Code se termine. Utile pour les tâches de nettoyage, la journalisation des

3590statistiques de session ou l'enregistrement de l'état de la session. Prend en charge les matchers pour filtrer selon le motif de sortie.

3580 3591 

3581Le champ `reason` dans l'entrée du hook indique pourquoi la session s'est terminée :3592Le champ `reason` dans l'entrée du hook indique pourquoi la session s'est terminée :

3582 3593 

3583| Raison | Description |3594| Motif | Description |

3584| :- | :- |3595| :- | :- |

3585| `clear` | Session effacée avec la commande `/clear` |3596| `clear` | Session effacée avec la commande `/clear` |

3586| `resume` | Session changée via `/resume` interactif |3597| `resume` | Session changée via `/resume` en mode interactif |

3587| `logout` | L'utilisateur s'est déconnecté |3598| `logout` | L'utilisateur s'est déconnecté |

3588| `prompt_input_exit` | L'utilisateur a quitté pendant que l'entrée d'invite était visible |3599| `prompt_input_exit` | L'utilisateur a quitté alors que la saisie du prompt était visible |

3589| `other` | Autres raisons de sortie |3600| `other` | Autres motifs de sortie |

3590| `bypass_permissions_disabled` | Supprimé en v2.1.234 ; Claude Code ne l'envoie pas. Supprimez-le de vos matchers `SessionEnd` |3601| `bypass_permissions_disabled` | Supprimé dans la v2.1.234 ; Claude Code ne l'envoie pas. Retirez-le de vos matchers `SessionEnd` |

3591 3602 

3592<h4 id="sessionend-input">3603<h4 id="sessionend-input">

3593 Entrée SessionEnd3604 Entrée de SessionEnd

3594</h4>3605</h4>

3595 3606 

3596En plus des [champs d'entrée communs](#common-input-fields), les hooks SessionEnd reçoivent un champ `reason` indiquant pourquoi la session s'est terminée. Voir le [tableau de raison](#sessionend) ci-dessus pour toutes les valeurs.3607En plus des [champs d'entrée communs](#common-input-fields), les hooks SessionEnd reçoivent un champ `reason` indiquant pourquoi la session s'est terminée. Consultez le [tableau des motifs](#sessionend) ci-dessus pour toutes les valeurs.

3597 3608 

3598```json theme={null}3609```json theme={null}

3599{3610{


3605}3616}

3606```3617```

3607 3618 

3608Les 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`.3619Les hooks SessionEnd n'ont aucun contrôle de décision. Ils ne peuvent pas bloquer la fin de la session, mais peuvent effectuer des tâches de nettoyage. Claude Code ignore leurs [champs de sortie JSON](#json-output), tels que `systemMessage`.

3609 3620 

3610Les 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 :3621Les hooks SessionEnd ont un délai d'expiration par défaut de 1,5 seconde. Il s'applique lorsque vous quittez, exécutez `/clear` ou changez de session avec `/resume` en mode interactif. Vous pouvez accorder plus de temps à un hook de deux façons :

3611 3622 

3612* **`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.3623* **`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é de vos fichiers de paramètres, jusqu'à 60 secondes. Si vous augmentez le budget de cette façon, un hook sans son propre `timeout` conserve tout de même la valeur par défaut. Les délais d'expiration définis sur des hooks fournis par des plugins n'augmentent pas le budget.

3613* **`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`.3624* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`** : définissez cette variable d'environnement en millisecondes pour remplacer explicitement le budget. La valeur que vous définissez devient également le délai d'expiration de chaque hook sans son propre `timeout`.

3614 3625 

3615Cet exemple définit le budget à 5 secondes :3626Cet exemple définit le budget à 5 secondes :

3616 3627 


3618CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3629CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

3619```3630```

3620 3631 

3621Avant v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` levait uniquement le budget global, et un hook sans son propre `timeout` était toujours annulé après 1,5 secondes.3632Avant la v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` augmentait uniquement le budget global, et un hook sans son propre `timeout` était tout de même annulé au bout de 1,5 seconde.

3622 3633 

3623<h3 id="elicitation">3634<h3 id="elicitation">

3624 Elicitation3635 Elicitation

3625</h3>3636</h3>

3626 3637 

3627S'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.3638S'exécute lorsqu'un serveur MCP demande une saisie de l'utilisateur en cours de tâche. Par défaut, Claude Code affiche une boîte de dialogue interactive pour que l'utilisateur réponde. Les hooks peuvent intercepter cette demande et y répondre de manière programmatique, en ignorant entièrement la boîte de dialogue.

3628 3639 

3629Le champ matcher correspond au nom du serveur MCP.3640Le champ matcher est comparé au nom du serveur MCP.

3630 3641 

3631<h4 id="elicitation-input">3642<h4 id="elicitation-input">

3632 Entrée Elicitation3643 Entrée d'Elicitation

3633</h4>3644</h4>

3634 3645 

3635En plus des [champs d'entrée communs](#common-input-fields), les hooks Elicitation reçoivent `mcp_server_name`, `message`, et les champs optionnels `mode`, `url`, `elicitation_id`, et `requested_schema`.3646En plus des [champs d'entrée communs](#common-input-fields), les hooks Elicitation reçoivent `mcp_server_name`, `message` et les champs facultatifs `mode`, `url`, `elicitation_id` et `requested_schema`.

3636 3647 

3637Pour l'élicitation en mode formulaire, le cas le plus courant :3648Pour l'élicitation en mode formulaire, le cas le plus courant :

3638 3649 


3654}3665}

3655```3666```

3656 3667 

3657Pour l'élicitation en mode URL, utilisée pour l'authentification basée sur navigateur :3668Pour l'élicitation en mode URL, utilisée pour l'authentification via le navigateur :

3658 3669 

3659```json theme={null}3670```json theme={null}

3660{3671{


3670```3681```

3671 3682 

3672<h4 id="elicitation-output">3683<h4 id="elicitation-output">

3673 Sortie Elicitation3684 Sortie d'Elicitation

3674</h4>3685</h4>

3675 3686 

3676Pour répondre par programmation sans montrer le dialogue, retournez un objet JSON avec `hookSpecificOutput` :3687Pour répondre de manière programmatique sans afficher la boîte de dialogue, renvoyez un objet JSON avec `hookSpecificOutput` :

3677 3688 

3678```json theme={null}3689```json theme={null}

3679{3690{


3689 3700 

3690| Champ | Valeurs | Description |3701| Champ | Valeurs | Description |

3691| :- | :- | :- |3702| :- | :- | :- |

3692| `action` | `accept`, `decline`, `cancel` | Si vous acceptez, refusez, ou annulez la requête |3703| `action` | `accept`, `decline`, `cancel` | Indique s'il faut accepter, refuser ou annuler la demande |

3693| `content` | object | Valeurs des champs de formulaire à soumettre. Utilisé uniquement quand `action` est `accept` |3704| `content` | object | Valeurs des champs du formulaire à soumettre. Utilisé uniquement lorsque `action` vaut `accept` |

3694 3705 

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

3696 3707 

3697Claude Code agit sur `hookSpecificOutput` de la sortie JSON d'un hook Elicitation et rejette `systemMessage` et `continue`.3708Claude Code tient compte de `hookSpecificOutput` dans la sortie JSON d'un hook Elicitation et ignore `systemMessage` et `continue`.

3698 3709 

3699<h3 id="elicitationresult">3710<h3 id="elicitationresult">

3700 ElicitationResult3711 ElicitationResult

3701</h3>3712</h3>

3702 3713 

3703S'exécute après qu'un utilisateur réponde à une élicitation MCP. Les hooks peuvent observer, modifier, ou bloquer la réponse avant qu'elle ne soit renvoyée au serveur MCP.3714S'exécute après qu'un utilisateur a répondu à une élicitation MCP. Les hooks peuvent observer, modifier ou bloquer la réponse avant qu'elle ne soit renvoyée au serveur MCP.

3704 3715 

3705Le champ matcher correspond au nom du serveur MCP.3716Le champ matcher est comparé au nom du serveur MCP.

3706 3717 

3707<h4 id="elicitationresult-input">3718<h4 id="elicitationresult-input">

3708 Entrée ElicitationResult3719 Entrée d'ElicitationResult

3709</h4>3720</h4>

3710 3721 

3711En plus des [champs d'entrée communs](#common-input-fields), les hooks ElicitationResult reçoivent `mcp_server_name`, `action`, et les champs optionnels `mode`, `elicitation_id`, et `content`.3722En plus des [champs d'entrée communs](#common-input-fields), les hooks ElicitationResult reçoivent `mcp_server_name`, `action` et les champs facultatifs `mode`, `elicitation_id` et `content`.

3712 3723 

3713```json theme={null}3724```json theme={null}

3714{3725{


3725```3736```

3726 3737 

3727<h4 id="elicitationresult-output">3738<h4 id="elicitationresult-output">

3728 Sortie ElicitationResult3739 Sortie d'ElicitationResult

3729</h4>3740</h4>

3730 3741 

3731Pour remplacer la réponse de l'utilisateur, retournez un objet JSON avec `hookSpecificOutput` :3742Pour remplacer la réponse de l'utilisateur, renvoyez un objet JSON avec `hookSpecificOutput` :

3732 3743 

3733```json theme={null}3744```json theme={null}

3734{3745{


3743| Champ | Valeurs | Description |3754| Champ | Valeurs | Description |

3744| :- | :- | :- |3755| :- | :- | :- |

3745| `action` | `accept`, `decline`, `cancel` | Remplace l'action de l'utilisateur |3756| `action` | `accept`, `decline`, `cancel` | Remplace l'action de l'utilisateur |

3746| `content` | object | Remplace les valeurs des champs de formulaire. Significatif uniquement quand `action` est `accept` |3757| `content` | object | Remplace les valeurs des champs du formulaire. N'a de sens que lorsque `action` vaut `accept` |

3747 3758 

3748Le code de sortie 2 bloque la réponse, changeant l'action effective à `decline`. Claude Code ne montre votre message stderr nulle part.3759Le code de sortie 2 bloque la réponse, en changeant l'action effective en `decline`. Claude Code n'affiche votre message stderr nulle part.

3749 3760 

3750Claude Code agit sur `hookSpecificOutput` de la sortie JSON d'un hook ElicitationResult et rejette `systemMessage` et `continue`.3761Claude Code tient compte de `hookSpecificOutput` dans la sortie JSON d'un hook ElicitationResult et ignore `systemMessage` et `continue`.

3751 3762 

3752<h2 id="prompt-based-hooks">3763<h2 id="prompt-based-hooks">

3753 Hooks basés sur des prompts3764 Hooks basés sur des prompts

hooks-guide.md +1 −1

Details

503| :- | :- |503| :- | :- |

504| `SessionStart` | Quand une session commence ou reprend |504| `SessionStart` | Quand une session commence ou reprend |

505| `Setup` | Quand vous démarrez Claude Code avec `--init-only`, ou avec `--init` ou `--maintenance` en mode `-p`. Pour une préparation unique en CI ou dans les scripts |505| `Setup` | Quand vous démarrez Claude Code avec `--init-only`, ou avec `--init` ou `--maintenance` en mode `-p`. Pour une préparation unique en CI ou dans les scripts |

506| `UserPromptSubmit` | Quand vous soumettez une invite, avant que Claude la traite |506| `UserPromptSubmit` | Quand un prompt est soumis, avant que Claude le traite. Se déclenche également lors des [tours que Claude Code démarre de lui-même](/docs/fr/hooks#userpromptsubmit) |

507| `UserPromptExpansion` | Quand une commande tapée par l'utilisateur se développe en une invite, avant qu'elle n'atteigne Claude. Peut bloquer l'expansion |507| `UserPromptExpansion` | Quand une commande tapée par l'utilisateur se développe en une invite, avant qu'elle n'atteigne Claude. Peut bloquer l'expansion |

508| `PreToolUse` | Avant qu'un appel d'outil s'exécute. Peut le bloquer |508| `PreToolUse` | Avant qu'un appel d'outil s'exécute. Peut le bloquer |

509| `PermissionRequest` | Quand un appel d'outil nécessite une décision de permission |509| `PermissionRequest` | Quand un appel d'outil nécessite une décision de permission |

keybindings.md +27 −1

Details

68| `EffortSlider` | Curseur d'effort ouvert par `/effort` |68| `EffortSlider` | Curseur d'effort ouvert par `/effort` |

69| `Select` | Composants génériques de sélection/liste |69| `Select` | Composants génériques de sélection/liste |

70| `Plugin` | Dialogue des plugins (parcourir, découvrir, gérer) |70| `Plugin` | Dialogue des plugins (parcourir, découvrir, gérer) |

71| `Pane` | Un volet affiché par un [mod](/docs/fr/plugins/mods/interface#know-which-keys-your-mod-can-receive) a le focus clavier |

72| `PaneField` | Un champ de saisie ou une sélection dans le volet d'un mod a le focus clavier |

71| `Agents` | [Vue Agent](/docs/fr/agent-view) (`claude agents`) |73| `Agents` | [Vue Agent](/docs/fr/agent-view) (`claude agents`) |

72| `Scroll` | Défilement de la conversation et sélection de texte en mode plein écran |74| `Scroll` | Défilement de la conversation et sélection de texte en mode plein écran |

73 75 


596 598 

597Cela fonctionne également pour les liaisons d'accords. Délier tous les accords qui partagent un préfixe libère ce préfixe pour une utilisation comme liaison à touche unique. Un accord dans n'importe quel contexte actif conserve son préfixe réservé, vous devez donc délier chaque accord dans le contexte qui le définit.599Cela fonctionne également pour les liaisons d'accords. Délier tous les accords qui partagent un préfixe libère ce préfixe pour une utilisation comme liaison à touche unique. Un accord dans n'importe quel contexte actif conserve son préfixe réservé, vous devez donc délier chaque accord dans le contexte qui le définit.

598 600 

599Claude Code lie ces accords par défaut sur le préfixe `ctrl+x` : `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s`, et `ctrl+x tab` dans `Chat`, `ctrl+x ctrl+b` dans `Task`, et `ctrl+x b` dans `DiffPanel`. L'accord `ctrl+x enter` nécessite la v2.1.247 ou une version ultérieure, `ctrl+x b`, `ctrl+x ctrl+a`, et `ctrl+x tab` nécessitent la v2.1.260 ou une version ultérieure, et `ctrl+x ctrl+s` nécessite la v2.1.275 ou une version ultérieure.601Claude Code lie ces accords par défaut sur le préfixe `ctrl+x`, par contexte :

602 

603* `Chat` : `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s` et `ctrl+x tab`

604* `Task` : `ctrl+x ctrl+b`

605* `DiffPanel` : `ctrl+x b`

606* `Pane` : `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` et `ctrl+x x`

607* `PaneField` : `ctrl+x x`

608 

609L'accord `ctrl+x enter` nécessite la v2.1.247 ou une version ultérieure, `ctrl+x b`, `ctrl+x ctrl+a`, et `ctrl+x tab` nécessitent la v2.1.260 ou une version ultérieure, et `ctrl+x ctrl+s` nécessite la v2.1.275 ou une version ultérieure.

600 610 

601Pour récupérer `ctrl+x` lui-même comme liaison à touche unique, déliez tous les éléments suivants :611Pour récupérer `ctrl+x` lui-même comme liaison à touche unique, déliez tous les éléments suivants :

602 612 


615 "ctrl+x b": null625 "ctrl+x b": null

616 }626 }

617 },627 },

628 {

629 "context": "Pane",

630 "bindings": {

631 "ctrl+x left": null,

632 "ctrl+x right": null,

633 "ctrl+x up": null,

634 "ctrl+x down": null,

635 "ctrl+x x": null

636 }

637 },

638 {

639 "context": "PaneField",

640 "bindings": {

641 "ctrl+x x": null

642 }

643 },

618 {644 {

619 "context": "Chat",645 "context": "Chat",

620 "bindings": {646 "bindings": {

Details

245| [Gestion du contexte](https://platform.claude.com/docs/en/build-with-claude/context-editing) | L'en-tête bêta de gestion du contexte s'associe au champ de corps `context_management` | `400` avec `Extra inputs are not permitted`. Courant lorsqu'une passerelle accepte les requêtes au format Anthropic mais les transmet à Amazon Bedrock | Transmettez les deux, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |245| [Gestion du contexte](https://platform.claude.com/docs/en/build-with-claude/context-editing) | L'en-tête bêta de gestion du contexte s'associe au champ de corps `context_management` | `400` avec `Extra inputs are not permitted`. Courant lorsqu'une passerelle accepte les requêtes au format Anthropic mais les transmet à Amazon Bedrock | Transmettez les deux, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

246| [Contexte étendu](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) et [pensée entrelacée](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | En-têtes bêta uniquement, pas de champ de corps | Silencieusement indisponible lorsque l'en-tête est supprimé ; l'amont ne voit jamais la demande de capacité | Transmettez `anthropic-beta` verbatim |246| [Contexte étendu](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) et [pensée entrelacée](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | En-têtes bêta uniquement, pas de champ de corps | Silencieusement indisponible lorsque l'en-tête est supprimé ; l'amont ne voit jamais la demande de capacité | Transmettez `anthropic-beta` verbatim |

247| Champs d'outil [bêta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | Les en-têtes bêta liés aux outils s'associent aux champs de schéma d'outil tels que `strict` et `defer_loading` | `400` nommant le champ de schéma d'outil non reconnu lorsque le corps passe sans son en-tête | Transmettez les deux, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |247| Champs d'outil [bêta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | Les en-têtes bêta liés aux outils s'associent aux champs de schéma d'outil tels que `strict` et `defer_loading` | `400` nommant le champ de schéma d'outil non reconnu lorsque le corps passe sans son en-tête | Transmettez les deux, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

248| [Effort](https://platform.claude.com/docs/en/build-with-claude/effort) et [sorties structurées](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | Le champ de corps `output_config` porte les paramètres d'effort, de format de sortie structurée et de budget de tâche ; chacun s'associe à son propre en-tête bêta | `400` nommant `output_config`, souvent `Extra inputs are not permitted`, sur les amonts Amazon Bedrock et Agent Platform de Google Cloud | Transmettez le champ et ses en-têtes ensemble, ou demandez aux développeurs de définir [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), qui supprime les paramètres de format et de budget de tâche mais pas l'effort |248| [Effort](https://platform.claude.com/docs/en/build-with-claude/effort) et [sorties structurées](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | Le champ de corps `output_config` porte les paramètres d'effort, de format de sortie structurée et de budget de tâche ; chacun s'associe à son propre en-tête bêta | `400` nommant `output_config`, souvent `Extra inputs are not permitted`, sur les amonts Amazon Bedrock et Agent Platform de Google Cloud | Transmettez le champ et ses en-têtes ensemble, ou demandez aux développeurs de définir [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), qui supprime les paramètres de format et de budget de tâche mais pas l'effort. Pour supprimer uniquement le format, ils peuvent définir [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/fr/env-vars) à la place, ce qui nécessite v2.1.288 ou ultérieur |

249| [Mise en cache des invites](/docs/fr/prompt-caching) | Pas d'appairage bêta. Claude Code attache les marqueurs `cache_control` aux blocs `system` et aux entrées `messages`, y compris les entrées `role: "system"` ajoutées en milieu de conversation | Pas d'erreur : la conversation est facturée comme entrée non mise en cache à chaque tour, visible comme `input_tokens` élevé avec peu ou pas d'activité de cache dans `usage` | Transmettez `cache_control` inchangé partout où il apparaît, et ne convertissez pas le formulaire de bloc `system` ou le contenu du message en chaînes simples |249| [Mise en cache des invites](/docs/fr/prompt-caching) | Pas d'appairage bêta. Claude Code attache les marqueurs `cache_control` aux blocs `system` et aux entrées `messages`, y compris les entrées `role: "system"` ajoutées en milieu de conversation | Pas d'erreur : la conversation est facturée comme entrée non mise en cache à chaque tour, visible comme `input_tokens` élevé avec peu ou pas d'activité de cache dans `usage` | Transmettez `cache_control` inchangé partout où il apparaît, et ne convertissez pas le formulaire de bloc `system` ou le contenu du message en chaînes simples |

250| [Comptage des jetons](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Pas d'appairage bêta ; utilise le point de terminaison `count_tokens` | Pas d'erreur : Claude Code revient à une estimation basée sur les caractères, donc `/context` affiche les comptages approximatifs | Exposez le point de terminaison pour les comptages de jetons exacts |250| [Comptage des jetons](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Pas d'appairage bêta ; utilise le point de terminaison `count_tokens` | Pas d'erreur : Claude Code revient à une estimation basée sur les caractères, donc `/context` affiche les comptages approximatifs | Exposez le point de terminaison pour les comptages de jetons exacts |

251 251 


362Un ID découvert n'obtient pas sa propre ligne lorsqu'il correspond à une ligne déjà dans le sélecteur :362Un ID découvert n'obtient pas sa propre ligne lorsqu'il correspond à une ligne déjà dans le sélecteur :

363 363 

364* Même ID : l'ID découvert correspond exactement à l'ID d'une ligne existante, ou les deux ID sont des orthographes de la même version [Fable](/docs/fr/model-config#work-with-fable).364* Même ID : l'ID découvert correspond exactement à l'ID d'une ligne existante, ou les deux ID sont des orthographes de la même version [Fable](/docs/fr/model-config#work-with-fable).

365* Même modèle qu'un alias intégré : lorsqu'un ID explicite découvert nomme le modèle auquel un alias intégré se résout actuellement, le sélecteur affiche uniquement la ligne d'alias. Par exemple, tandis que `sonnet` se résout en `claude-sonnet-5-5`, un `claude-sonnet-5-5` découvert s'effondre dans la ligne `sonnet`, et un `claude-sonnet-5` découvert obtient toujours sa propre ligne. Avant v2.1.197, Claude Code ne fusionnait pas ces ID dans les lignes intégrées, donc l'ID auquel un alias se résolvait obtenait également sa propre ligne « Depuis la passerelle ».365* Même modèle qu'un alias intégré : lorsqu'un ID explicite découvert nomme le modèle auquel un alias intégré se résout actuellement, le sélecteur affiche uniquement la ligne d'alias. Par exemple, tandis que `sonnet` se résout en `claude-sonnet-5-5`, un `claude-sonnet-5-5` découvert est fusionné dans la ligne `sonnet`, et un `claude-sonnet-5` découvert obtient toujours sa propre ligne.

366 366 

367Les résultats sont mis en cache dans `~/.claude/cache/gateway-models.json`, ou `%USERPROFILE%\.claude\cache\gateway-models.json` sur Windows, et actualisés à chaque démarrage. Si vous définissez [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars), le cache se trouve sous ce répertoire à la place. Si la requête échoue ou la passerelle n'implémente pas `/v1/models`, le sélecteur revient à la liste mise en cache du démarrage précédent ou à la liste de modèles intégrée. Si votre passerelle sert les modèles Claude sous des alias qui ne correspondent pas au filtre de découverte, les développeurs peuvent ajouter ces alias manuellement avec les [variables de configuration du modèle](/docs/fr/model-config).367Les résultats sont mis en cache dans `~/.claude/cache/gateway-models.json`, ou `%USERPROFILE%\.claude\cache\gateway-models.json` sur Windows, et actualisés à chaque démarrage. Si vous définissez [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars), le cache se trouve sous ce répertoire à la place. Si la requête échoue ou la passerelle n'implémente pas `/v1/models`, le sélecteur revient à la liste mise en cache du démarrage précédent ou à la liste de modèles intégrée. Si votre passerelle sert les modèles Claude sous des alias qui ne correspondent pas au filtre de découverte, les développeurs peuvent ajouter ces alias manuellement avec les [variables de configuration du modèle](/docs/fr/model-config).

368 368 

mcp.md +5 −5

Details

371 371 

372Sur v2, Claude Code également :372Sur v2, Claude Code également :

373 373 

374* Demande aux serveurs HTTP s'ils supportent la révision plus récente, et l'utilise avec ceux qui la supportent. Il le demande également aux serveurs de connecteurs claude.ai dans les sessions où il récupère les feature flags. Pour qu'il le demande aux serveurs stdio, ou aux serveurs de connecteurs dans chaque session, définissez [`MCP_PROTOCOL_NEGOTIATION`](/docs/fr/env-vars) à `auto`. Il se connecte à tous les autres serveurs comme le fait v1.374* Demande aux serveurs HTTP s'ils supportent la révision plus récente, et l'utilise avec ceux qui la supportent. Dans les sessions où il récupère les feature flags, il le demande également aux serveurs de connecteurs claude.ai, et sur Claude Code v2.1.285 ou ultérieur, il le demande aux serveurs stdio à mesure qu'Anthropic déploie ce changement. Pour qu'il le demande aux serveurs de connecteurs et stdio dans chaque session, définissez [`MCP_PROTOCOL_NEGOTIATION`](/docs/fr/env-vars) à `auto`. Il se connecte à tous les autres serveurs comme le fait v1.

375* Reçoit les notifications `list_changed` des serveurs sur la révision plus récente via un [flux qu'il maintient ouvert](#notification-streams-on-the-v2-runtime).375* Reçoit les notifications `list_changed` des serveurs sur la révision plus récente via un [flux qu'il maintient ouvert](#notification-streams-on-the-v2-runtime).

376* N'enregistre pas un serveur de [canal](#push-messages-with-channels) qui se connecte sur la révision plus récente, car cette révision ne peut pas transporter les messages de canal.376* N'enregistre pas un serveur de [canal](#push-messages-with-channels) qui se connecte sur la révision plus récente, car cette révision ne peut pas transporter les messages de canal.

377* Fait échouer une [connexion OAuth MCP](#authenticate-with-remote-mcp-servers) dont la réponse d'autorisation nomme un émetteur inattendu.377* Fait échouer une [connexion OAuth MCP](#authenticate-with-remote-mcp-servers) dont la réponse d'autorisation nomme un émetteur inattendu.


456 456 

457Un serveur MCP peut également pousser des messages directement dans votre session afin que Claude puisse réagir à des événements externes comme les résultats CI, les alertes de surveillance, ou les messages de chat. Pour activer cela, votre serveur déclare la capacité `claude/channel` et vous l'activez avec le flag `--channels` au démarrage. Voir [Canaux](/docs/fr/channels) pour utiliser un canal officiellement supporté, ou [Référence des canaux](/docs/fr/channels-reference) pour créer le vôtre.457Un serveur MCP peut également pousser des messages directement dans votre session afin que Claude puisse réagir à des événements externes comme les résultats CI, les alertes de surveillance, ou les messages de chat. Pour activer cela, votre serveur déclare la capacité `claude/channel` et vous l'activez avec le flag `--channels` au démarrage. Voir [Canaux](/docs/fr/channels) pour utiliser un canal officiellement supporté, ou [Référence des canaux](/docs/fr/channels-reference) pour créer le vôtre.

458 458 

459Sur le [runtime v2](#mcp-client-runtimes), si vous définissez [`MCP_PROTOCOL_NEGOTIATION`](/docs/fr/env-vars) à `auto` et qu'un serveur de canal négocie la révision de protocole MCP 2026-07-28, il ne peut pas livrer les messages de canal, donc Claude Code ne l'enregistre pas comme un canal. Laisser la variable non définie, ou la définir à `legacy`, maintient les serveurs stdio sur la poignée de main antérieure.459Sur le [runtime v2](#mcp-client-runtimes), un serveur de canal qui négocie la révision de protocole MCP 2026-07-28 ne peut pas livrer les messages de canal, donc Claude Code ne l'enregistre pas comme un canal. Un serveur de canal qui ne supporte pas cette révision se connecte avec la poignée de main antérieure et s'enregistre comme auparavant.

460 

461Claude Code demande cette révision aux serveurs stdio lorsque vous définissez [`MCP_PROTOCOL_NEGOTIATION`](/docs/fr/env-vars) à `auto`. Anthropic active également ce comportement par défaut, pour Claude Code v2.1.285 ou ultérieur, dans les sessions où Claude Code [récupère les feature flags](/docs/fr/env-vars#features-that-need-feature-flag-fetching). Pour maintenir un serveur de canal stdio sur la poignée de main antérieure, définissez `MCP_PROTOCOL_NEGOTIATION` à `legacy`, ce qui y maintient tous les serveurs.

460 462 

461<Tip>463<Tip>

462 Conseils :464 Conseils :


1499}1501}

1500```1502```

1501 1503 

1502L'annotation `anthropic/requiresUserInteraction` nécessite Claude Code v2.1.199 ou version ultérieure. Les versions antérieures l'ignorent et appliquent le flux de permission standard.

1503 

1504Certaines surfaces, comme [Remote Control](/docs/fr/remote-control) et les applications construites sur le [SDK Agent](/docs/fr/agent-sdk/overview), vous permettent normalement d'approuver les appels d'outils en un seul geste. Pour un outil marqué avec cette annotation, Claude Code retient l'action en un geste et affiche l'invite de permission complète de l'outil à la place, de sorte que l'approbation provient toujours d'une personne répondant à l'invite plutôt que d'un geste.1504Certaines surfaces, comme [Remote Control](/docs/fr/remote-control) et les applications construites sur le [SDK Agent](/docs/fr/agent-sdk/overview), vous permettent normalement d'approuver les appels d'outils en un seul geste. Pour un outil marqué avec cette annotation, Claude Code retient l'action en un geste et affiche l'invite de permission complète de l'outil à la place, de sorte que l'approbation provient toujours d'une personne répondant à l'invite plutôt que d'un geste.

1505 1505 

1506Claude Code retient l'approbation en un geste de la même manière pour toute demande de permission que seul le dialogue du terminal peut afficher complètement, comme celle qui porte un avertissement de sécurité ou une option d'autorisation permanente que la surface distante ne peut pas afficher. Vous répondez à cette demande dans le dialogue du terminal plutôt que depuis Remote Control. Nécessite Claude Code v2.1.214 ou version ultérieure.1506Claude Code retient l'approbation en un geste de la même manière pour toute demande de permission que seul le dialogue du terminal peut afficher complètement, comme celle qui porte un avertissement de sécurité ou une option d'autorisation permanente que la surface distante ne peut pas afficher. Vous répondez à cette demande dans le dialogue du terminal plutôt que depuis Remote Control. Nécessite Claude Code v2.1.214 ou version ultérieure.


1514Les serveurs peuvent demander une entrée de deux façons :1514Les serveurs peuvent demander une entrée de deux façons :

1515 1515 

1516* **Mode formulaire** : Claude Code affiche un dialogue avec des champs de formulaire définis par le serveur (par exemple, une invite de nom d'utilisateur et de mot de passe). Remplissez les champs et soumettez.1516* **Mode formulaire** : Claude Code affiche un dialogue avec des champs de formulaire définis par le serveur (par exemple, une invite de nom d'utilisateur et de mot de passe). Remplissez les champs et soumettez.

1517* **Mode URL** : Claude Code vous demande si vous souhaitez ouvrir un lien dans votre navigateur et l'ouvre lorsque vous acceptez. Les serveurs utilisent ce mode pour un flux qui se termine en dehors du terminal, comme la connexion.1517* **Mode URL** : Claude Code vous demande si vous souhaitez ouvrir un lien dans votre navigateur. Les serveurs utilisent ce mode pour un flux qui se termine en dehors du terminal, comme la connexion.

1518 1518 

1519En mode URL, Claude Code transmet l'URL en tant qu'argument de ligne de commande au gestionnaire d'URL de votre système, et limite la longueur de cet argument. Lorsque l'URL, une fois échappée pour la ligne de commande, dépasse cette limite, vous ne pouvez que refuser la demande. Chaque caractère qui doit être échappé, tel que `%` ou `&`, compte quatre fois vers la limite : son propre caractère plus trois caractères d'échappement. Une URL sans aucun d'entre eux atteint la limite à environ 8 000 caractères. Une URL construite largement à partir d'échappements de pourcentage, où chaque tiers caractère est un `%`, l'atteint à environ 4 000.1519En mode URL, Claude Code transmet l'URL en tant qu'argument de ligne de commande au gestionnaire d'URL de votre système, et limite la longueur de cet argument. Lorsque l'URL, une fois échappée pour la ligne de commande, dépasse cette limite, vous ne pouvez que refuser la demande. Chaque caractère qui doit être échappé, tel que `%` ou `&`, compte quatre fois vers la limite : son propre caractère plus trois caractères d'échappement. Une URL sans aucun d'entre eux atteint la limite à environ 8 000 caractères. Une URL construite largement à partir d'échappements de pourcentage, où chaque tiers caractère est un `%`, l'atteint à environ 4 000.

1520 1520 

model-config.md +4 −3

Details

794 794 

795<span id="context-window-behind-a-gateway" />795<span id="context-window-behind-a-gateway" />

796 796 

797Si vous définissez `ANTHROPIC_BASE_URL` sur une [passerelle LLM](/docs/fr/llm-gateway) ou un autre proxy, Claude Code donne à chaque modèle qu'il reconnaît la même fenêtre de contexte que le modèle a sur l'API Anthropic. Fable 5.1, Fable 5, Sonnet 5 et ultérieur, et Opus 4.7 et ultérieur obtiennent la fenêtre de 1M sans variante `[1m]` à sélectionner, et un modèle qui n'atteint 1M que via sa variante `[1m]`, comme Opus 4.6, s'exécute à 200K sans elle. Claude Code ne peut pas détecter une limite inférieure que la passerelle ou le serveur derrière elle applique. Si votre passerelle rejette les demandes au-dessus de 200K jetons, exécutez [`/autocompact 200k`](#set-the-auto-compact-window) de sorte que les sessions se compactent à cette limite.797Si vous définissez `ANTHROPIC_BASE_URL` sur une [passerelle LLM](/docs/fr/llm-gateway) ou un autre proxy, Claude Code donne à chaque modèle qu'il reconnaît la même fenêtre de contexte que celle du modèle sur l'API Anthropic. Fable 5.1, Fable 5, Sonnet 5 et ultérieurs, et Opus 4.7 et ultérieurs obtiennent la fenêtre de 1M sans variante `[1m]` à sélectionner, et un modèle qui n'atteint 1M que via sa variante `[1m]`, comme Opus 4.6, s'exécute à 200K sans elle. Claude Code ne peut pas détecter une limite inférieure appliquée par la passerelle ou le serveur situé derrière elle. Si votre passerelle rejette les requêtes au-delà de 200K tokens, définissez [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/fr/env-vars) dans l'environnement qui démarre Claude Code, afin que les sessions sur chaque modèle [se compactent à cette limite](#set-the-auto-compact-window).

798 798 

799Pour désactiver le contexte de 1M, définissez `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code supprime les variantes de modèle de 1M du sélecteur de modèle. Sur les modèles avec une fenêtre de 1M native, comme Sonnet 5 et les modèles Fable, il traite également le modèle comme ayant une fenêtre de contexte de 200K :799Pour désactiver le contexte de 1M, définissez `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code supprime les variantes de modèle de 1M du sélecteur de modèle. Sur les modèles avec une fenêtre de 1M native, comme Sonnet 5 et les modèles Fable, il traite également le modèle comme ayant une fenêtre de contexte de 200K :

800 800 


840 Définir la fenêtre de compaction automatique840 Définir la fenêtre de compaction automatique

841</h3>841</h3>

842 842 

843Vous pouvez définir la fenêtre de compaction automatique à trois endroits :843Vous pouvez définir la fenêtre de compaction automatique aux endroits suivants :

844 844 

845* **Pour cette session et les sessions ultérieures** : exécutez `/autocompact` avec une valeur, comme `/autocompact 500k`. Claude Code l'enregistre dans vos paramètres utilisateur sous [`autoCompactWindow`](/docs/fr/settings-reference#autocompactwindow) et l'applique à la session actuelle ; si une [portée de paramètres](/docs/fr/settings#settings-precedence) de priorité plus élevée, comme les paramètres gérés, définit la clé, la commande enregistre votre valeur mais la session conserve la fenêtre de cette portée, et la commande vous l'indique. Exécutez `/autocompact auto` pour revenir à la fenêtre optimisée pour votre modèle.845* **Pour le modèle actuel, dans cette session et les sessions ultérieures** : exécutez `/autocompact` avec une valeur, comme `/autocompact 500k`. Claude Code l'enregistre dans vos paramètres utilisateur sous le modèle actuel dans [`modelSettings`](/docs/fr/settings-reference#modelsettings) et l'applique à la session actuelle. Si une [portée de paramètres](/docs/fr/settings#settings-precedence) de priorité plus élevée, comme les paramètres gérés, définit sa propre fenêtre pour ce modèle ou pour tous les modèles, la commande enregistre votre valeur mais la session conserve la fenêtre de cette portée, et la commande vous l'indique. Exécutez `/autocompact auto` pour revenir à la fenêtre optimisée pour votre modèle. Avant la v2.1.288, la commande enregistrait une seule fenêtre pour tous les modèles, sous la clé de premier niveau `autoCompactWindow`.

846* **Pour tous les modèles** : définissez [`autoCompactWindow`](/docs/fr/settings-reference#autocompactwindow) dans un fichier de paramètres, comme `"autoCompactWindow": 200000` dans `~/.claude/settings.json`. Une fenêtre que vous avez enregistrée pour un modèle avec `/autocompact` a priorité sur cette clé dans le même fichier pour ce modèle.

846* **Pour un lancement** : passez [`--autocompact`](/docs/fr/cli-reference#cli-flags) au démarrage de Claude Code. Le drapeau remplace votre paramètre enregistré pour ce lancement sans le modifier, et `claude --autocompact auto` exécute la session à la fenêtre optimisée même si votre paramètre enregistré a une valeur. Contrairement à `/autocompact`, le drapeau n'est pas préempté par une portée de paramètres de priorité plus élevée, comme les paramètres gérés.847* **Pour un lancement** : passez [`--autocompact`](/docs/fr/cli-reference#cli-flags) au démarrage de Claude Code. Le drapeau remplace votre paramètre enregistré pour ce lancement sans le modifier, et `claude --autocompact auto` exécute la session à la fenêtre optimisée même si votre paramètre enregistré a une valeur. Contrairement à `/autocompact`, le drapeau n'est pas préempté par une portée de paramètres de priorité plus élevée, comme les paramètres gérés.

847* **Dans les scripts et les environnements cloud** : définissez [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/fr/env-vars). Tant qu'il est défini, il a la priorité sur la commande, le drapeau et le paramètre, et `/autocompact` signale le remplacement au lieu de modifier la fenêtre.848* **Dans les scripts et les environnements cloud** : définissez [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/fr/env-vars). Tant qu'il est défini, il a la priorité sur la commande, le drapeau et le paramètre, et `/autocompact` signale le remplacement au lieu de modifier la fenêtre.

848 849 

Details

785 Événement de prompt utilisateur785 Événement de prompt utilisateur

786</h4>786</h4>

787 787 

788Journalisé lorsqu'un utilisateur soumet un prompt.788Consigné lorsqu'un prompt est soumis, y compris lors des tours que Claude Code démarre de lui-même.

789 789 

790**Nom de l'événement** : `claude_code.user_prompt`790**Nom de l'événement** : `claude_code.user_prompt`

791 791 

Details

578 578 

579Si vous définissez le mode `dontAsk`, Claude Code refuse automatiquement chaque appel d'outil qui déclencherait autrement une invite. Claude exécute toujours les actions qui ne nécessitent aucune approbation en mode Manual, telles que les lectures de fichiers dans vos répertoires de travail et les [commandes Bash en lecture seule](/docs/fr/permissions#read-only-commands), ainsi que les actions correspondant à vos règles `permissions.allow` et les appels approuvés par un [hook PreToolUse](/docs/fr/permissions#extend-permissions-with-hooks). Utilisez ce mode pour les pipelines CI ou les environnements restreints où vous prédéfinissez ce que Claude peut faire ; la session n'attend jamais d'entrée. La barre d'état affiche `⏵⏵ don't ask on` tandis que ce mode est actif.579Si vous définissez le mode `dontAsk`, Claude Code refuse automatiquement chaque appel d'outil qui déclencherait autrement une invite. Claude exécute toujours les actions qui ne nécessitent aucune approbation en mode Manual, telles que les lectures de fichiers dans vos répertoires de travail et les [commandes Bash en lecture seule](/docs/fr/permissions#read-only-commands), ainsi que les actions correspondant à vos règles `permissions.allow` et les appels approuvés par un [hook PreToolUse](/docs/fr/permissions#extend-permissions-with-hooks). Utilisez ce mode pour les pipelines CI ou les environnements restreints où vous prédéfinissez ce que Claude peut faire ; la session n'attend jamais d'entrée. La barre d'état affiche `⏵⏵ don't ask on` tandis que ce mode est actif.

580 580 

581Claude Code refuse les appels correspondant à vos [règles `ask` explicites](/docs/fr/permissions#manage-permissions) plutôt que de déclencher une invite. Il refuse également l'outil intégré `AskUserQuestion` même si vos règles allow les correspondent, 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 Code. Il refuse les outils MCP marqués [`_meta["anthropic/requiresUserInteraction"]`](/docs/fr/mcp#require-approval-for-a-specific-tool) de la même manière, car leur carte d'approbation nécessite une réponse que ce mode ne collecte jamais ; cela nécessite Claude Code v2.1.199 ou ultérieur.581Claude Code refuse les appels correspondant à vos [règles `ask` explicites](/docs/fr/permissions#manage-permissions) plutôt que de déclencher une invite. Il refuse également l'outil intégré `AskUserQuestion` même si vos règles allow les correspondent, 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 Code. Il refuse les outils MCP marqués [`_meta["anthropic/requiresUserInteraction"]`](/docs/fr/mcp#require-approval-for-a-specific-tool) de la même manière, car leur carte d'approbation nécessite une réponse que ce mode ne collecte jamais.

582 582 

583Les suppressions `rm` et `rmdir` ciblant un [chemin critique](#critical-paths), comme `rm -rf /` et `rm -rf ~`, sont refusées même quand une règle allow les correspond ou qu'un hook `PreToolUse` les approuve.583Les suppressions `rm` et `rmdir` ciblant un [chemin critique](#critical-paths), comme `rm -rf /` et `rm -rf ~`, sont refusées même quand une règle allow les correspond ou qu'un hook `PreToolUse` les approuve.

584 584 

Details

371| `workspaceFolder` | No | Chemin du dossier d'espace de travail pour le serveur |371| `workspaceFolder` | No | Chemin du dossier d'espace de travail pour le serveur |

372| `startupTimeout` | No | Millisecondes à attendre pour le démarrage, un entier positif |372| `startupTimeout` | No | Millisecondes à attendre pour le démarrage, un entier positif |

373| `shutdownTimeout` | No | Millisecondes à attendre pour un arrêt gracieux, un entier positif. Lorsque le délai d'attente s'écoule, Claude Code termine le processus du serveur. Lorsqu'il n'est pas défini, aucun délai d'attente ne s'applique |373| `shutdownTimeout` | No | Millisecondes à attendre pour un arrêt gracieux, un entier positif. Lorsque le délai d'attente s'écoule, Claude Code termine le processus du serveur. Lorsqu'il n'est pas défini, aucun délai d'attente ne s'applique |

374| `requestTimeout` | No | Millisecondes à attendre que le serveur réponde à une requête, un entier positif. Par défaut `60000`, de sorte qu'une requête à laquelle le serveur ne répond jamais échoue après 60 secondes. Nécessite la v2.1.288 ou ultérieure |

374| `restartOnCrash` | No | Si le serveur doit redémarrer après un crash. Par défaut `true`. Définissez à `false` pour laisser un serveur planté arrêté au lieu de le redémarrer |375| `restartOnCrash` | No | Si le serveur doit redémarrer après un crash. Par défaut `true`. Définissez à `false` pour laisser un serveur planté arrêté au lieu de le redémarrer |

375| `maxRestarts` | No | Tentatives de redémarrage avant d'abandonner, zéro ou plus |376| `maxRestarts` | No | Tentatives de redémarrage avant d'abandonner, zéro ou plus |

376| `diagnostics` | No | Si les diagnostics doivent être poussés dans le contexte après les éditions. Par défaut `true` |377| `diagnostics` | No | Si les diagnostics doivent être poussés dans le contexte après les éditions. Par défaut `true` |

Details

63 63 

64| Champ | Type | Description |64| Champ | Type | Description |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | Identifiant de marketplace : lettres, chiffres, `.`, `_` et `-`, commençant par une lettre ou un chiffre, et pas de `..`. Il forme la moitié après `@` de chaque [ID de plugin](/docs/fr/plugins/loading#find-where-a-plugin-came-from) installé à partir de la marketplace, donc `claude plugin validate` échoue pour les autres noms. Voir [Noms réservés](#reserved-names) |66| `name` | string | Identifiant de marketplace : lettres, chiffres, `.`, `_` et `-`, commençant par une lettre ou un chiffre, et pas de `..`. `claude plugin validate` échoue pour tout autre nom, car Claude Code ne peut pas installer de plugins à partir d'une marketplace qui en utilise un. Les utilisateurs saisissent le nom après `@` dans un [ID de plugin](/docs/fr/plugins/loading#find-where-a-plugin-came-from) tel que `my-plugin@my-marketplace` lorsqu'ils installent un plugin. Voir [Noms réservés](#reserved-names) |

67| `owner` | object | Informations du responsable. `name` est obligatoire ; `email` et `url` sont optionnels |67| `owner` | object | Informations du responsable. `name` est obligatoire ; `email` et `url` sont optionnels |

68| `plugins` | array | [Entrées de plugin](#plugin-entries). Chaque entrée est validée indépendamment, donc une entrée invalide ne fait pas échouer la marketplace |68| `plugins` | array | [Entrées de plugin](#plugin-entries). Chaque entrée est validée indépendamment, donc une entrée invalide ne fait pas échouer la marketplace |

69| `$schema` | string | URL JSON Schema pour l'autocomplétion de l'éditeur. Ignorée au moment du chargement |69| `$schema` | string | URL JSON Schema pour l'autocomplétion de l'éditeur. Ignorée au moment du chargement |

Details

377 Partagez votre mod377 Partagez votre mod

378</h2>378</h2>

379 379 

380Un mod est un plugin, donc vous le versionnez dans le manifeste et les gens l'installent et le mettent à jour avec les commandes `/plugin`. Pour le donner à d'autres personnes, [ajoutez-le à une marketplace](/docs/fr/plugins/publish).380Un mod est un plugin, donc vous le versionnez dans le manifeste et les gens l'installent et le mettent à jour avec les commandes `/plugin`. La façon de le partager dépend de son public :

381 

382* **Quelques personnes** : envoyez-leur le répertoire du plugin ou un `.zip` de celui-ci. Consultez [Partager un plugin sans marketplace](/docs/fr/plugins/publish#share-a-plugin-without-a-marketplace)

383* **Votre équipe** : référencez-le dans [votre propre marketplace](/docs/fr/plugins/publish#publish-through-your-own-marketplace), par exemple un dépôt privé avec un répertoire pour chaque plugin. Pour ajouter cette marketplace pour toutes les personnes qui travaillent dans un dépôt, [enregistrez-la dans les paramètres du dépôt](/docs/fr/plugins/host-marketplace#register-the-marketplace-for-everyone-in-a-repository)

384* **Toute votre organisation** : un administrateur peut [installer les mods de votre organisation](/docs/fr/plugins/mods/admin#install-your-organizations-mods) via les paramètres gérés

385* **Tout le monde** : rendez public le dépôt de votre marketplace, ou [soumettez le plugin au répertoire d'Anthropic](/docs/fr/plugins/publish#submit-to-anthropics-directory)

381 386 

382Avant de le faire, vérifiez le `name` du plugin : `claude plugin validate` échoue un nom qui [ressemble à l'un des propres d'Anthropic](/docs/fr/plugins/manifest-reference#name), comme un qui commence par `claude-`. Les événements et méthodes peuvent changer entre les versions, donc votre README est l'endroit pour dire quelle version de Claude Code vous avez testée.387Avant de le faire, vérifiez le `name` du plugin : `claude plugin validate` échoue un nom qui [ressemble à l'un des propres d'Anthropic](/docs/fr/plugins/manifest-reference#name), comme un qui commence par `claude-`. Les événements et méthodes peuvent changer entre les versions, donc votre README est l'endroit pour dire quelle version de Claude Code vous avez testée.

383 388 

Details

531| Haut et Bas | Se déplacent entre les contrôles pendant que votre dessin s'adapte. Quand le volet ou la bande a plus de lignes qu'il ne peut en afficher, ils le font défiler. |531| Haut et Bas | Se déplacent entre les contrôles pendant que votre dessin s'adapte. Quand le volet ou la bande a plus de lignes qu'il ne peut en afficher, ils le font défiler. |

532| Entrée | Appuie sur le `Button` ciblé, soumet le `Input` ciblé, ou choisit dans un `Select` |532| Entrée | Appuie sur le `Button` ciblé, soumet le `Input` ciblé, ou choisit dans un `Select` |

533| La touche de raccourci d'un bouton | Appuie sur ce bouton. Pendant qu'un `Input` a le focus, chaque touche imprimable va au champ. |533| La touche de raccourci d'un bouton | Appuie sur ce bouton. Pendant qu'un `Input` a le focus, chaque touche imprimable va au champ. |

534| Page Up, Page Down, Home et End | Font défiler votre volet ou votre bande quand il a plus de lignes qu'il ne peut en afficher |

535| Ctrl+X puis une touche fléchée | Redimensionne votre volet. Gauche ou Haut lui donne plus d'espace, et Droite ou Bas rend l'espace. |

536| Ctrl+X puis X | Ferme votre volet, même pendant qu'un de ses champs a le focus |

534| Esc | Retourne le focus clavier à l'invite. Avec `closeOnEscape: true`, il ferme aussi le volet. |537| Esc | Retourne le focus clavier à l'invite. Avec `closeOnEscape: true`, il ferme aussi le volet. |

535 538 

536Un mod ne peut pas lier Tab ou les touches fléchées à autre chose, donc un jeu se dirige avec `w`, `a`, `s`, et `d`.539Un mod ne peut pas lier Tab ou les touches fléchées à autre chose, donc un jeu se dirige avec `w`, `a`, `s`, et `d`.

Details

63| :- | :- | :- |63| :- | :- | :- |

64| [`tool.call`](/docs/fr/plugins/mods/events#guard-or-change-a-tool-call) | Un outil est sur le point de s'exécuter | `next(e)`, `{ deny: reason }` ou `{ result }` |64| [`tool.call`](/docs/fr/plugins/mods/events#guard-or-change-a-tool-call) | Un outil est sur le point de s'exécuter | `next(e)`, `{ deny: reason }` ou `{ result }` |

65| [`tool.check`](/docs/fr/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code décide si un appel d'outil peut s'exécuter, après les hooks `tool.call` et `PreToolUse`. `next(e)` se résout avec la décision à laquelle ont abouti les règles, le mode de permission et ces hooks. | `{ decision }`, qui vaut `allow`, `ask` ou `deny` |65| [`tool.check`](/docs/fr/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code décide si un appel d'outil peut s'exécuter, après les hooks `tool.call` et `PreToolUse`. `next(e)` se résout avec la décision à laquelle ont abouti les règles, le mode de permission et ces hooks. | `{ decision }`, qui vaut `allow`, `ask` ou `deny` |

66| `tool.describe` | Une fois pour chaque outil, lorsque sa description est envoyée à Claude pour la première fois | `{ description }` |66| `tool.describe` | Une fois pour chaque outil, lorsque sa description est envoyée à Claude pour la première fois | `{ description }`, avec éventuellement `isDeferred` défini sur `true` pour placer l'outil derrière la [recherche d'outils](/docs/fr/mcp#scale-with-mcp-tool-search) ou sur `false` pour le charger dès le départ |

67 67 

68<h3 id="prompts-and-what-claude-reads">68<h3 id="prompts-and-what-claude-reads">

69 Prompts et ce que Claude lit69 Prompts et ce que Claude lit

plugins/publish.md +26 −11

Details

145 Soumettre au répertoire d'Anthropic145 Soumettre au répertoire d'Anthropic

146</h2>146</h2>

147 147 

148Le répertoire d'Anthropic est le catalogue que les utilisateurs parcourent sur claude.ai et dans Cowork pour ajouter des plugins et des connecteurs. Un listing là-bas atteint les utilisateurs sur claude.ai, dans Cowork et dans Claude Code. Vous soumettez à partir du portail des développeurs sur [claude.ai/directory/manage](https://claude.ai/directory/manage) ; [Préparer pour l'examen](https://claude.com/docs/directory/publish#prepare-for-review) sur claude.com décrit ce qui se passe pour chaque version avant sa publication.148[Le répertoire d'Anthropic](https://claude.ai/directory) est le catalogue que les utilisateurs parcourent sur claude.ai et dans Cowork pour ajouter des plugins et des connecteurs. Un listing là-bas atteint les utilisateurs sur claude.ai, dans Cowork et dans Claude Code. Vous soumettez à partir du portail des développeurs sur [claude.ai/directory/manage](https://claude.ai/directory/manage), et [Soumettre un plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) sur claude.com présente le fonctionnement du portail.

149 149 

150La soumission nécessite un plan claude.ai payant. Sur Pro et Max, vous soumettez à partir de votre propre compte. Sur Team et Enterprise, un propriétaire peut soumettre, et sur Enterprise, un propriétaire peut également accorder la permission **Directory** à d'autres membres via un rôle personnalisé sous **Organization settings > Roles**. Voir [Confirmer que vous pouvez soumettre au répertoire](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).150La marketplace officielle d'Anthropic, `claude-plugins-official`, n'accepte pas les soumissions via le portail du répertoire. Si vous travaillez avec un contact partenaire d'Anthropic, demandez-lui un listing de marketplace officielle.

151 151 

152Les étapes de soumission, les vérifications que chaque version doit réussir et ce qui se passe après la publication sont documentées sur claude.com, car elles sont les mêmes quelle que soit la surface sur laquelle se trouvent vos utilisateurs :152Pour soumettre un plugin :

153 153 

154* [Publier dans le répertoire](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory) : ce que vous pouvez soumettre et qui peut le soumettre154<Steps>

155* [Soumettre un plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) : les étapes du portail et [mettre à jour un plugin publié](https://claude.com/docs/plugins/submit#update-a-published-plugin)155 <Step title="Confirmer que vous pouvez soumettre">

156* [Liste de contrôle de pré-soumission du plugin](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit) : les vérifications à exécuter et corriger avant de soumettre156 La soumission nécessite un plan claude.ai payant. Sur Pro et Max, vous soumettez à partir de votre propre compte. Sur Team et Enterprise, un propriétaire peut soumettre, et sur Enterprise, un propriétaire peut également accorder la permission **Directory** à d'autres membres via un rôle personnalisé sous **Organization settings > Roles**. Voir [Confirmer que vous pouvez soumettre au répertoire](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).

157* [Déplacer une soumission antérieure vers le portail des développeurs](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal) : ce qu'il faut faire si vous avez soumis un plugin via l'un des formulaires de soumission antérieurs, avant que le portail n'existe157 </Step>

158 158 

159Avant d'ouvrir le portail, validez localement et vérifiez lesquels de vos composants se chargent en dehors de Claude Code :159 <Step title="Valider le plugin localement">

160 Exécutez `claude plugin validate ./your-plugin --strict` dans votre shell. Remplacez `./your-plugin` par le chemin vers votre répertoire de plugins. La commande détecte les erreurs de manifeste localement ; [plugin validate](/docs/fr/plugins/cli-reference#plugin-validate) répertorie les fichiers que chaque exécution lit. Le portail applique des règles de répertoire supplémentaires que la CLI ne vérifie pas, donc une exécution locale propre ne garantit pas une validation de portail propre.

160 161 

161* **Exécutez `claude plugin validate ./your-plugin --strict` dans votre shell** : remplacez `./your-plugin` par le chemin vers votre répertoire de plugins. La commande détecte les erreurs de manifeste localement ; [plugin validate](/docs/fr/plugins/cli-reference#plugin-validate) répertorie les fichiers que chaque exécution lit. Le portail applique des règles de répertoire supplémentaires que l'interface de ligne de commande ne vérifie pas, donc une exécution locale propre ne garantit pas une validation de portail propre.162 La [liste de contrôle de pré-soumission du plugin](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit) sur claude.com présente les vérifications à exécuter et corriger avant de soumettre.

162* **Vérifiez ce qui se charge où** : certains composants de plugin sont exclusifs à Claude Code et ne se chargent pas sur claude.ai ou dans Cowork. Le [tableau de support des composants](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) répertorie chaque composant par application, afin que vous sachiez ce que les utilisateurs en dehors de Claude Code obtiendront.163 </Step>

163 164 

164La marketplace officielle d'Anthropic, `claude-plugins-official`, n'accepte pas les soumissions via le portail du répertoire. Si vous travaillez avec un contact partenaire d'Anthropic, demandez-lui un listing de marketplace officielle.165 <Step title="Vérifier ce qui se charge où">

166 Certains composants de plugin sont exclusifs à Claude Code et ne se chargent pas sur claude.ai ou dans Cowork. Le [tableau de support des composants](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) répertorie chaque composant par application, afin que vous sachiez ce que les utilisateurs en dehors de Claude Code obtiendront.

167 </Step>

168 

169 <Step title="Soumettre dans le portail des développeurs">

170 Ouvrez le portail des développeurs sur [claude.ai/directory/manage](https://claude.ai/directory/manage) et suivez [Soumettre un plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) sur claude.com.

171 </Step>

172</Steps>

173 

174La suite du processus est documentée sur claude.com :

175 

176* [Préparer pour l'examen](https://claude.com/docs/directory/publish#prepare-for-review) : ce qui se passe pour chaque version avant sa publication

177* [Mettre à jour un plugin publié](https://claude.com/docs/plugins/submit#update-a-published-plugin) : comment une nouvelle version atteint les personnes qui ont votre plugin

178* [Soumettre votre plugin, et votre serveur MCP en tant que connecteur](https://claude.com/docs/directory/publish#submit-your-plugin-and-your-mcp-server-as-a-connector) : ce que vous pouvez soumettre

179* [Déplacer une soumission antérieure vers le portail des développeurs](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal) : ce qu'il faut faire si vous avez soumis un plugin via l'un des formulaires de soumission antérieurs, avant que le portail n'existe

165 180 

166<h3 id="how-a-listed-plugin-reaches-claude-code-users">181<h3 id="how-a-listed-plugin-reaches-claude-code-users">

167 Comment un plugin listé atteint les utilisateurs de Claude Code182 Comment un plugin listé atteint les utilisateurs de Claude Code

routines.md +1 −1

Details

403 </Step>403 </Step>

404 404 

405 <Step title="Modifier le niveau d'accès réseau">405 <Step title="Modifier le niveau d'accès réseau">

406 Dans la boîte de dialogue **Edit cloud environment**, modifiez **Network access** en **Custom** et entrez vos domaines dans **Allowed domains**. Cochez **Also include default list of common package managers** pour conserver la [liste d'autorisation par défaut](/docs/fr/cloud-environments#default-allowed-domains) aux côtés de vos domaines personnalisés. Sélectionnez **Full** à la place pour un accès sans restriction.406 Dans la boîte de dialogue **Edit environment**, modifiez **Network access** en **Custom** et entrez vos domaines dans **Allowed domains**. Cochez **Also include default list of common package managers** pour conserver la [liste d'autorisation par défaut](/docs/fr/cloud-environments#default-allowed-domains) aux côtés de vos domaines personnalisés. Sélectionnez **Full** à la place pour un accès sans restriction.

407 </Step>407 </Step>

408 408 

409 <Step title="Enregistrer">409 <Step title="Enregistrer">

sandboxing.md +2 −4

Details

459 Masquer les identifiants459 Masquer les identifiants

460</h3>460</h3>

461 461 

462Lorsque vous masquez un identifiant, Claude Code présente aux commandes en sandbox une valeur de substitution propre à la session, appelée la sentinelle, et le [proxy du sandbox](#network-isolation) substitue la valeur réelle dans les requêtes sortantes vers les hôtes que vous autorisez. Une entrée `deny` décrite dans [Protéger les identifiants](#protect-credentials) bloque plutôt l'identifiant. Pour les fichiers sous macOS, Claude Code [bloque plutôt le fichier](#mask-credential-files) au lieu de le masquer.462Lorsque vous masquez un identifiant, Claude Code présente aux commandes en sandbox une valeur de substitution propre à la session, appelée la sentinelle, et le [proxy du sandbox](#network-isolation) substitue la valeur réelle dans les requêtes sortantes vers les hôtes que vous autorisez. Une entrée `deny` décrite dans [Protéger les identifiants](#protect-credentials) bloque plutôt l'identifiant. Pour les fichiers sous macOS, Claude Code [bloque plutôt le fichier](#mask-credential-files) au lieu de le masquer. La référence [`sandbox.credentials`](/docs/fr/settings-reference#sandbox-credentials) liste tous les champs.

463 

464Le masquage des variables d'environnement nécessite Claude Code v2.1.199 ou une version ultérieure. La référence [`sandbox.credentials`](/docs/fr/settings-reference#sandbox-credentials) liste tous les champs.

465 463 

466Le masquage nécessite les éléments suivants :464Le masquage nécessite les éléments suivants :

467 465 


620Dans une règle `WebFetch(domain:...)`, le sandbox prend en charge deux formes de caractères génériques : un `*.` en préfixe, comme `*.example.com`, et un `*` seul. La forme `*` seule nécessite Claude Code v2.1.186 ou version ultérieure. Un caractère générique à toute autre position, comme `WebFetch(domain:example.*)`, correspond toujours aux récupérations mais n'a aucun effet sur les commandes en sandbox.618Dans une règle `WebFetch(domain:...)`, le sandbox prend en charge deux formes de caractères génériques : un `*.` en préfixe, comme `*.example.com`, et un `*` seul. La forme `*` seule nécessite Claude Code v2.1.186 ou version ultérieure. Un caractère générique à toute autre position, comme `WebFetch(domain:example.*)`, correspond toujours aux récupérations mais n'a aucun effet sur les commandes en sandbox.

621 619 

622<Note>620<Note>

623 Le proxy intégré applique la liste d'autorisation en fonction du nom d'hôte demandé et, par défaut, ne termine ni n'inspecte le trafic TLS. Le paramètre expérimental [`network.tlsTerminate`](/docs/fr/settings-reference#sandbox-network-tlsterminate), disponible dans Claude Code v2.1.199 et versions ultérieures, permet au proxy intégré de terminer lui-même le TLS, ce qu'exigent les [entrées d'identifiants `mask`](#mask-credentials). Consultez [Limites de sécurité](#security-limitations) pour connaître les implications du comportement par défaut, et [Configuration de proxy personnalisé](#custom-proxy-configuration) si votre modèle de menace nécessite une inspection TLS.621 Le proxy intégré applique la liste d'autorisation en fonction du nom d'hôte demandé et, par défaut, ne termine ni n'inspecte le trafic TLS. Le paramètre expérimental [`network.tlsTerminate`](/docs/fr/settings-reference#sandbox-network-tlsterminate) permet au proxy intégré de terminer lui-même le TLS, ce qu'exigent les [entrées d'identifiants `mask`](#mask-credentials). Consultez [Limites de sécurité](#security-limitations) pour connaître les implications du comportement par défaut, et [Configuration de proxy personnalisé](#custom-proxy-configuration) si votre modèle de menace nécessite une inspection TLS.

624</Note>622</Note>

625 623 

626<h4 id="hosts-outside-your-allowed-domains">624<h4 id="hosts-outside-your-allowed-domains">

sessions.md +1 −1

Details

299 Supprimer les données de session299 Supprimer les données de session

300</h3>300</h3>

301 301 

302Les transcriptions arrivent à expiration selon les [règles de nettoyage de rétention](/docs/fr/claude-directory#cleaned-up-automatically). Pour supprimer les transcriptions d'un projet et l'état associé plus tôt, exécutez [`claude project purge`](/docs/fr/claude-directory#clear-local-data). Si vous supprimez une [session en arrière-plan](/docs/fr/agent-view) avec [`claude rm <id>`](/docs/fr/agent-view#what-deleting-a-session-removes), sa transcription reste sur le disque et reste disponible via `claude --resume`.302Les transcriptions arrivent à expiration selon les [règles de nettoyage de rétention](/docs/fr/claude-directory#cleaned-up-automatically). Pour supprimer les transcriptions d'un projet et l'état associé plus tôt, exécutez [`claude purge`](/docs/fr/claude-directory#clear-local-data). Si vous supprimez une [session en arrière-plan](/docs/fr/agent-view) avec [`claude rm <id>`](/docs/fr/agent-view#what-deleting-a-session-removes), sa transcription reste sur le disque et reste disponible via `claude --resume`.

303 303 

304<h3 id="name-the-project-directory-yourself">304<h3 id="name-the-project-directory-yourself">

305 Nommer le répertoire du projet vous-même305 Nommer le répertoire du projet vous-même

Details

708| [`modelOverrides`](#modeloverrides) | [Mappez les ID de modèle](/docs/fr/model-config#override-model-ids-per-version) aux ID de votre fournisseur, comme les ARN Bedrock | Model and responses | Any file |708| [`modelOverrides`](#modeloverrides) | [Mappez les ID de modèle](/docs/fr/model-config#override-model-ids-per-version) aux ID de votre fournisseur, comme les ARN Bedrock | Model and responses | Any file |

709| [`modelPicker`](#modelpicker) | Choisissez les modèles que le sélecteur [`/model`](/docs/fr/model-config#available-models) liste, dans votre propre ordre et avec vos propres étiquettes | Model and responses | User or managed |709| [`modelPicker`](#modelpicker) | Choisissez les modèles que le sélecteur [`/model`](/docs/fr/model-config#available-models) liste, dans votre propre ordre et avec vos propres étiquettes | Model and responses | User or managed |

710| [`modelPricing`](#modelpricing) | Signalez les dépenses aux tarifs contractés de votre organisation au lieu du prix catalogue | Model and responses | Managed |710| [`modelPricing`](#modelpricing) | Signalez les dépenses aux tarifs contractés de votre organisation au lieu du prix catalogue | Model and responses | Managed |

711| [`modelSettings`](#modelsettings) | Conservez un [niveau d'effort](/docs/fr/model-config#adjust-effort-level) enregistré par modèle, ou limitez l'effort d'un modèle | Model and responses | Any file |711| [`modelSettings`](#modelsettings) | Conservez un [niveau d'effort](/docs/fr/model-config#adjust-effort-level) ou une [fenêtre de compaction automatique](/docs/fr/model-config#set-the-auto-compact-window) enregistrés par modèle, ou limitez l'effort d'un modèle | Model and responses | Any file |

712| [`otelHeadersHelper`](#otelheadershelper) | Générez les en-têtes [OpenTelemetry](/docs/fr/monitoring-usage#dynamic-headers) rotatifs avec votre propre commande | Authentication and providers | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | Générez les en-têtes [OpenTelemetry](/docs/fr/monitoring-usage#dynamic-headers) rotatifs avec votre propre commande | Authentication and providers | Any file |

713| [`outputStyle`](#outputstyle) | Modifiez le rôle, le ton et le format de sortie de Claude avec un [style de sortie](/docs/fr/output-styles) | Model and responses | Any file |713| [`outputStyle`](#outputstyle) | Modifiez le rôle, le ton et le format de sortie de Claude avec un [style de sortie](/docs/fr/output-styles) | Model and responses | Any file |

714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Appliquez ou supprimez les restrictions qu'un [hôte SDK ou IDE](/docs/fr/managed-settings#let-an-embedding-host-add-policy) transmet quand vous déployez les [paramètres gérés](/docs/fr/managed-settings) | Enterprise and managed settings | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Appliquez ou supprimez les restrictions qu'un [hôte SDK ou IDE](/docs/fr/managed-settings#let-an-embedding-host-add-policy) transmet quand vous déployez les [paramètres gérés](/docs/fr/managed-settings) | Enterprise and managed settings | Managed |


1282Pour limiter l'effort d'un modèle plutôt que de définir son niveau, ajoutez un champ [`maxEffortLevel`](#maxeffortlevel) à l'entrée de ce modèle. Le champ nécessite Claude Code v2.1.267 ou ultérieur.1282Pour limiter l'effort d'un modèle plutôt que de définir son niveau, ajoutez un champ [`maxEffortLevel`](#maxeffortlevel) à l'entrée de ce modèle. Le champ nécessite Claude Code v2.1.267 ou ultérieur.

1283 1283 

1284* **Portée** : [`Tout fichier`](#scopes)1284* **Portée** : [`Tout fichier`](#scopes)

1285* **Type** : objet mappant un nom de modèle à un objet avec un champ `effortLevel`, l'un de `"low"`, `"medium"`, `"high"`, ou `"xhigh"`, un champ [`maxEffortLevel`](#maxeffortlevel), ou les deux1285* **Type** : objet mappant un nom de modèle à un objet avec n'importe lequel de ces champs :

1286 * `effortLevel` : l'un de `"low"`, `"medium"`, `"high"`, ou `"xhigh"`

1287 * [`maxEffortLevel`](#maxeffortlevel) : le niveau d'effort le plus élevé auquel le modèle peut s'exécuter

1288 * `autoCompactWindow` : un nombre de tokens de `100000` à `1000000`, ou `"auto"` pour la fenêtre ajustée au modèle. [`/autocompact`](/docs/fr/model-config#set-the-auto-compact-window) enregistre ici. Pour ce modèle, la valeur a la priorité sur un [`autoCompactWindow`](#autocompactwindow) de niveau supérieur dans le même fichier de paramètres. Nécessite Claude Code v2.1.288 ou ultérieur

1286* **Par défaut** : non défini1289* **Par défaut** : non défini

1287 1290 

1288Claude Code écrit chaque entrée sous le nom canonique du modèle, comme `claude-opus-5-5`, et correspond à l'alias de ce modèle, daté, `[1m]`, et les ID spécifiques au fournisseur reconnus à la même entrée.1291Claude Code écrit chaque entrée sous le nom canonique du modèle, comme `claude-opus-5-5`, et correspond à l'alias de ce modèle, daté, `[1m]`, et les ID spécifiques au fournisseur reconnus à la même entrée.


2478 `sandbox.credentials.envVars`2481 `sandbox.credentials.envVars`

2479</h3>2482</h3>

2480 2483 

2481Protégez les variables d'environnement des commandes en sandbox. Avec `"mode": "deny"`, Claude Code supprime la variable de l'environnement des commandes en sandbox. Avec `"mode": "mask"`, les commandes en sandbox voient une valeur sentinelle par session, et le proxy du sandbox substitue la valeur réelle sur les requêtes sortantes vers les `injectHosts` de cette entrée, afin que les outils tels que `gh` et `npm` continuent de s'authentifier sans jamais détenir l'identifiant réel. `"mode": "mask"` nécessite Claude Code v2.1.199 ou ultérieur.2484Protégez les variables d'environnement des commandes en sandbox. Avec `"mode": "deny"`, Claude Code supprime la variable de l'environnement des commandes en sandbox. Avec `"mode": "mask"`, les commandes en sandbox voient une valeur sentinelle par session, et le proxy du sandbox substitue la valeur réelle sur les requêtes sortantes vers les `injectHosts` de cette entrée, afin que les outils tels que `gh` et `npm` continuent de s'authentifier sans jamais détenir l'identifiant réel.

2482 2485 

2483* **Scope** : [`Any file`](#scopes). Claude Code abandonne les entrées `mask` de `.claude/settings.json` du projet et de `.claude/settings.local.json` local.2486* **Scope** : [`Any file`](#scopes). Claude Code abandonne les entrées `mask` de `.claude/settings.json` du projet et de `.claude/settings.local.json` local.

2484* **Type** : tableau d'objets, chacun avec `name` et un `mode` de `"deny"` ou `"mask"`, plus les [champs mask optionnels pour les variables d'environnement](#mask-fields-for-environment-variables)2487* **Type** : tableau d'objets, chacun avec `name` et un `mode` de `"deny"` ou `"mask"`, plus les [champs mask optionnels pour les variables d'environnement](#mask-fields-for-environment-variables)


2499}2502}

2500```2503```

2501 2504 

2502Le `name` doit commencer par une lettre ou un trait de soulignement et contenir uniquement des lettres, des chiffres et des traits de soulignement. Claude Code fusionne les tableaux de chaque portée de paramètres que la session charge, et applique `deny` lorsque la même variable apparaît avec les deux modes. [Protect credentials](/docs/fr/sandboxing#protect-credentials) couvre ce qui s'applique toujours à partir des sources que vous excluez avec `--setting-sources`. Les entrées `mask` nécessitent Claude Code v2.1.199 ou ultérieur.2505Le `name` doit commencer par une lettre ou un trait de soulignement et contenir uniquement des lettres, des chiffres et des traits de soulignement. Claude Code fusionne les tableaux de chaque portée de paramètres que la session charge, et applique `deny` lorsque la même variable apparaît avec les deux modes. [Protect credentials](/docs/fr/sandboxing#protect-credentials) couvre ce qui s'applique toujours à partir des sources que vous excluez avec `--setting-sources`.

2503 2506 

2504La substitution `mask` s'exécute uniquement via le proxy du sandbox, donc définissez [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), ou [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) pour les réseaux de test HTTP simple ; consultez [Mask credentials](/docs/fr/sandboxing#mask-credentials). Claude Code accepte mais ignore les champs `mask` sur une entrée `deny`.2507La substitution `mask` s'exécute uniquement via le proxy du sandbox, donc définissez [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), ou [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) pour les réseaux de test HTTP simple ; consultez [Mask credentials](/docs/fr/sandboxing#mask-credentials). Claude Code accepte mais ignore les champs `mask` sur une entrée `deny`.

2505 2508 


2525| `onExtractNoMatch` | `"warn"`, `"deny"` ou `"error"` ; par défaut `"warn"`. Sur une entrée avec `decode`, seul `"warn"` est accepté | Ce qui se passe lorsque `extract` ne correspond à rien. `warn` transmet la variable sans masque, `deny` la désactive à l'intérieur du sandbox, et `error` arrête la configuration du sandbox jusqu'à ce que vous corrigiez la configuration. Nécessite v2.1.224 ou ultérieur |2528| `onExtractNoMatch` | `"warn"`, `"deny"` ou `"error"` ; par défaut `"warn"`. Sur une entrée avec `decode`, seul `"warn"` est accepté | Ce qui se passe lorsque `extract` ne correspond à rien. `warn` transmet la variable sans masque, `deny` la désactive à l'intérieur du sandbox, et `error` arrête la configuration du sandbox jusqu'à ce que vous corrigiez la configuration. Nécessite v2.1.224 ou ultérieur |

2526| `decode` | la chaîne `"jwt"` | Vérifiez que la valeur entière est un JWT et remplacez-la par un faux token structurellement valide, afin que le code à l'intérieur du sandbox qui décode le token continue de fonctionner ; le proxy substitue le token réel entier à la sortie. Une valeur qui ne se vérifie pas passe sans masque avec un avertissement. Nécessite v2.1.224 ou ultérieur |2529| `decode` | la chaîne `"jwt"` | Vérifiez que la valeur entière est un JWT et remplacez-la par un faux token structurellement valide, afin que le code à l'intérieur du sandbox qui décode le token continue de fonctionner ; le proxy substitue le token réel entier à la sortie. Une valeur qui ne se vérifie pas passe sans masque avec un avertissement. Nécessite v2.1.224 ou ultérieur |

2527| `maskClaims` | tableau de chaînes, au moins un nom de claim ; nécessite `decode` | Masquez uniquement les claims de charge utile de niveau supérieur nommés à l'intérieur du JWT décodé et reconstruisez le token autour de la charge utile modifiée, afin que les autres claims restent lisibles. Lorsqu'aucun claim nommé ne correspond, la variable passe sans masque avec un avertissement. Nécessite v2.1.224 ou ultérieur |2530| `maskClaims` | tableau de chaînes, au moins un nom de claim ; nécessite `decode` | Masquez uniquement les claims de charge utile de niveau supérieur nommés à l'intérieur du JWT décodé et reconstruisez le token autour de la charge utile modifiée, afin que les autres claims restent lisibles. Lorsqu'aucun claim nommé ne correspond, la variable passe sans masque avec un avertissement. Nécessite v2.1.224 ou ultérieur |

2528| `injectHosts` | tableau de chaînes, chacun un hôte que [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) admet également | Réduisez les hôtes où le proxy du sandbox substitue la valeur réelle. Lorsqu'il n'est pas défini, le proxy la substitue sur les requêtes vers chaque hôte dans `sandbox.network.allowedDomains`. Écrivez une destination IPv6 comme l'adresse compressée nue, comme `"::1"`, pas la forme entre crochets ; consultez [IPv6 destinations in `injectHosts`](/docs/fr/sandboxing#ipv6-destinations-in-injecthosts). Nécessite v2.1.199 ou ultérieur |2531| `injectHosts` | tableau de chaînes, chacun un hôte que [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) admet également | Réduisez les hôtes où le proxy du sandbox substitue la valeur réelle. Lorsqu'il n'est pas défini, le proxy la substitue sur les requêtes vers chaque hôte dans `sandbox.network.allowedDomains`. Écrivez une destination IPv6 comme l'adresse compressée nue, comme `"::1"`, pas la forme entre crochets ; consultez [IPv6 destinations in `injectHosts`](/docs/fr/sandboxing#ipv6-destinations-in-injecthosts) |

2529 2532 

2530Ceci masque uniquement le mot de passe à l'intérieur de `DATABASE_URL`, désactive la variable si le motif ne correspond à rien, et masque un JWT dans `SERVICE_JWT` tout en laissant chaque claim sauf `api_key` lisible :2533Ceci masque uniquement le mot de passe à l'intérieur de `DATABASE_URL`, désactive la variable si le motif ne correspond à rien, et masque un JWT dans `SERVICE_JWT` tout en laissant chaque claim sauf `api_key` lisible :

2531 2534 


2556 `sandbox.credentials.allowPlaintextInject`2559 `sandbox.credentials.allowPlaintextInject`

2557</h3>2560</h3>

2558 2561 

2559Autorisez la substitution `mask` sur les requêtes HTTP simples ainsi que sur HTTPS terminé par TLS. Sur HTTP simple, l'identité en amont n'est pas vérifiée et l'identifiant voyage en clair, donc laissez ceci désactivé en dehors des réseaux de test de confiance. Nécessite Claude Code v2.1.199 ou ultérieur.2562Autorisez la substitution `mask` sur les requêtes HTTP simples ainsi que sur HTTPS terminé par TLS. Sur HTTP simple, l'identité en amont n'est pas vérifiée et l'identifiant voyage en clair, donc laissez ceci désactivé en dehors des réseaux de test de confiance.

2560 2563 

2561* **Scope** : [`User or managed`](#scopes)2564* **Scope** : [`User or managed`](#scopes)

2562* **Type** : Booléen2565* **Type** : Booléen


2574}2577}

2575```2578```

2576 2579 

2577Nécessite Claude Code v2.1.199 ou ultérieur.

2578 

2579<h3 id="sandbox-credentials-awspairs">2580<h3 id="sandbox-credentials-awspairs">

2580 `sandbox.credentials.awsPairs`2581 `sandbox.credentials.awsPairs`

2581</h3>2582</h3>


2919}2920}

2920```2921```

2921 2922 

2922Lorsque plus d'une source honorée la définit, Claude Code utilise la valeur de la source la plus prioritaire : paramètres gérés, puis le flag `--settings`, puis paramètres utilisateur. Nécessite Claude Code v2.1.199 ou ultérieur.2923Lorsque plus d'une source honorée la définit, Claude Code utilise la valeur de la source la plus prioritaire : paramètres gérés, puis le flag `--settings`, puis paramètres utilisateur.

2923 2924 

2924<span id="context-and-memory" />2925<span id="context-and-memory" />

2925 2926 


2967}2968}

2968```2969```

2969 2970 

2970Définissez-le avec la commande [`/autocompact`](/docs/fr/commands#all-commands), qui écrit cette clé dans vos paramètres utilisateur. [Définir la fenêtre de compactage automatique](/docs/fr/model-config#set-the-auto-compact-window) explique comment la commande, l'indicateur, la variable et le paramètre interagissent.2971La commande [`/autocompact`](/docs/fr/commands#all-commands) enregistre une fenêtre pour le modèle actuel sous [`modelSettings`](#modelsettings), qui a la priorité sur cette clé dans le même fichier pour ce modèle. [Définir la fenêtre de compaction automatique](/docs/fr/model-config#set-the-auto-compact-window) explique comment la commande, le flag, la variable et le paramètre interagissent.

2971 2972 

2972<h3 id="automemorydirectory">2973<h3 id="automemorydirectory">

2973 `autoMemoryDirectory`2974 `autoMemoryDirectory`

setup.md +5 −5

Details

45 <Tab title="Installation native (recommandée)">45 <Tab title="Installation native (recommandée)">

46 **macOS, Linux, WSL :**46 **macOS, Linux, WSL :**

47 47 

48 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}48 ```bash theme={null}

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 **Windows PowerShell :**52 **Windows PowerShell :**

53 53 

54 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}54 ```powershell theme={null}

55 irm https://claude.ai/install.ps1 | iex55 irm https://claude.ai/install.ps1 | iex

56 ```56 ```

57 57 

58 **Windows CMD :**58 **Windows CMD :**

59 59 

60 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}60 ```batch theme={null}

61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

62 ```62 ```

63 63 


75 </Tab>75 </Tab>

76 76 

77 <Tab title="Homebrew">77 <Tab title="Homebrew">

78 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}78 ```bash theme={null}

79 brew install --cask claude-code79 brew install --cask claude-code

80 ```80 ```

81 81 


87 </Tab>87 </Tab>

88 88 

89 <Tab title="WinGet">89 <Tab title="WinGet">

90 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}90 ```powershell theme={null}

91 winget install Anthropic.ClaudeCode91 winget install Anthropic.ClaudeCode

92 ```92 ```

93 93 

skills.md +5 −4

Details

198 Résoudre les skills qui partagent un nom198 Résoudre les skills qui partagent un nom

199</h3>199</h3>

200 200 

201Quand deux skills partagent un nom de répertoire ou de fichier, l'endroit d'où chacune provient décide laquelle `/name` exécute. Pour un nom défini par le champ frontmatter `name`, voir [Comment une skill obtient son nom de commande](#how-a-skill-gets-its-command-name). Le tableau couvre les emplacements entreprise, personnel, projet, imbriqué, plugin et claude.ai, les skills regroupées et les fichiers de commande :201Quand deux skills partagent un nom de répertoire ou de fichier, l'endroit d'où chacun provient décide lequel `/name` exécute. Pour un nom défini par le champ frontmatter `name`, voir [Comment un skill obtient son nom de commande](#how-a-skill-gets-its-command-name). Le tableau couvre les emplacements entreprise, personnel, projet, imbriqué, plugin et claude.ai, les skills fournis, les commandes intégrées et les fichiers de commande :

202 202 

203| Même nom dans | Laquelle s'exécute |203| Même nom dans | Laquelle s'exécute |

204| :- | :- |204| :- | :- |

205| Deux parmi entreprise, personnel et projet | Entreprise sur personnel, et personnel sur projet. Avec `deploy` dans `~/.claude/skills/` et le `.claude/skills/` du projet, `/deploy` exécute celle personnelle |205| Deux parmi entreprise, personnel et projet | Entreprise sur personnel, et personnel sur projet. Avec `deploy` dans `~/.claude/skills/` et le `.claude/skills/` du projet, `/deploy` exécute celle personnelle |

206| N'importe lequel de ces emplacements et une [skill regroupée](#bundled-skills) | Votre skill remplace la commande regroupée, mais pas ses alias. Une skill `code-review` de projet remplace `/code-review`, et l'alias regroupé `/review` n'exécute jamais votre skill |206| N'importe lequel de ces emplacements et une [skill regroupée](#bundled-skills) | Votre skill remplace la commande regroupée, mais pas ses alias. Une skill `code-review` de projet remplace `/code-review`, et l'alias regroupé `/review` n'exécute jamais votre skill |

207| N'importe lequel de ces emplacements et une [commande intégrée](/docs/fr/commands) | Dans une session de terminal locale, votre skill remplace la commande intégrée, mais pas ses alias. Un skill `usage` de projet remplace `/usage`, et l'alias intégré `/cost` exécute toujours la commande intégrée |

207| Une skill et un fichier dans `.claude/commands/` | La skill |208| Une skill et un fichier dans `.claude/commands/` | La skill |

208| Une skill racine de projet et une skill imbriquée | Les deux se chargent. Voir [monorepos et sous-répertoires](#discovery-from-parent-and-nested-directories) |209| Une skill racine de projet et une skill imbriquée | Les deux se chargent. Voir [monorepos et sous-répertoires](#discovery-from-parent-and-nested-directories) |

209| Une skill de plugin et une skill à n'importe lequel des emplacements ci-dessus | Les deux se chargent, car les skills de plugin sont espacées de noms en tant que `/plugin-name:skill-name` |210| Une skill de plugin et une skill à n'importe lequel des emplacements ci-dessus | Les deux se chargent, car les skills de plugin sont espacées de noms en tant que `/plugin-name:skill-name` |


416| `allowed-tools` | Non | Outils que Claude peut utiliser sans demander la permission lors du tour qui invoque cette compétence. La subvention s'efface lorsque vous envoyez votre message suivant. Accepte une chaîne séparée par des espaces ou des virgules, ou une liste YAML. Voir [Pré-approuver les outils pour une compétence](#pre-approve-tools-for-a-skill). |417| `allowed-tools` | Non | Outils que Claude peut utiliser sans demander la permission lors du tour qui invoque cette compétence. La subvention s'efface lorsque vous envoyez votre message suivant. Accepte une chaîne séparée par des espaces ou des virgules, ou une liste YAML. Voir [Pré-approuver les outils pour une compétence](#pre-approve-tools-for-a-skill). |

417| `disallowed-tools` | Non | Outils supprimés du pool disponible de Claude tandis que cette compétence est active. Utilisez pour les compétences autonomes qui ne devraient jamais appeler certains outils, comme `AskUserQuestion` pour une boucle de fond. Accepte une chaîne séparée par des espaces ou des virgules, ou une liste YAML. La restriction s'efface lorsque vous envoyez votre message suivant. Comme les règles de refus, le champ ne peut pas supprimer [`EndConversation`](/docs/fr/tools-reference#endconversation-tool-behavior) tant que tout autre outil reste. |418| `disallowed-tools` | Non | Outils supprimés du pool disponible de Claude tandis que cette compétence est active. Utilisez pour les compétences autonomes qui ne devraient jamais appeler certains outils, comme `AskUserQuestion` pour une boucle de fond. Accepte une chaîne séparée par des espaces ou des virgules, ou une liste YAML. La restriction s'efface lorsque vous envoyez votre message suivant. Comme les règles de refus, le champ ne peut pas supprimer [`EndConversation`](/docs/fr/tools-reference#endconversation-tool-behavior) tant que tout autre outil reste. |

418| `model` | Non | Modèle à utiliser lorsque cette compétence est active. Le remplacement s'applique pour le reste du tour actuel et n'est pas enregistré dans les paramètres. Le modèle de session reprend à votre prochaine invite. Accepte les mêmes valeurs que [`/model`](/docs/fr/model-config), ou `inherit` pour conserver le modèle actif. Une valeur exclue par la liste d'autorisation [`availableModels`](/docs/fr/model-config#restrict-model-selection) de votre organisation n'est pas utilisée et la session conserve son modèle actuel. En [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) et en [mode plan tandis que le classificateur examine les commandes](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode), un modèle que le mode auto ne supporte pas n'est pas utilisé non plus, et la session conserve son modèle actuel. Avec `context: fork`, la valeur définit le [modèle du sous-agent forké](#run-skills-in-a-subagent) à la place, et une valeur exclue suit les [mêmes règles qu'un remplacement de modèle de sous-agent](/docs/fr/model-config#restrict-model-selection). |419| `model` | Non | Modèle à utiliser lorsque cette compétence est active. Le remplacement s'applique pour le reste du tour actuel et n'est pas enregistré dans les paramètres. Le modèle de session reprend à votre prochaine invite. Accepte les mêmes valeurs que [`/model`](/docs/fr/model-config), ou `inherit` pour conserver le modèle actif. Une valeur exclue par la liste d'autorisation [`availableModels`](/docs/fr/model-config#restrict-model-selection) de votre organisation n'est pas utilisée et la session conserve son modèle actuel. En [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) et en [mode plan tandis que le classificateur examine les commandes](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode), un modèle que le mode auto ne supporte pas n'est pas utilisé non plus, et la session conserve son modèle actuel. Avec `context: fork`, la valeur définit le [modèle du sous-agent forké](#run-skills-in-a-subagent) à la place, et une valeur exclue suit les [mêmes règles qu'un remplacement de modèle de sous-agent](/docs/fr/model-config#restrict-model-selection). |

419| `effort` | Non | [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) lorsque cette compétence est active. Remplace le niveau d'effort de la session. Par défaut : hérite de la session. Options : `low`, `medium`, `high`, `xhigh`, `max` ; les niveaux disponibles dépendent du modèle. |420| `effort` | Non | [Niveau d'effort](/docs/fr/model-config#adjust-effort-level) lorsque ce skill est actif. Remplace le niveau d'effort de la session. Lorsque vous l'omettez, le niveau provient de l'[ordre de résolution de l'effort](/docs/fr/model-config#adjust-effort-level). Options : `low`, `medium`, `high`, `xhigh`, `max` ; les niveaux disponibles dépendent du modèle. |

420| `context` | Non | Définissez sur `fork` pour exécuter dans un contexte de sous-agent forké. Voir [Exécuter les compétences dans un sous-agent](#run-skills-in-a-subagent). |421| `context` | Non | Définissez sur `fork` pour exécuter dans un contexte de sous-agent forké. Voir [Exécuter les compétences dans un sous-agent](#run-skills-in-a-subagent). |

421| `agent` | Non | Quel type de sous-agent utiliser lorsque `context: fork` est défini. |422| `agent` | Non | Quel type de sous-agent utiliser lorsque `context: fork` est défini. |

422| `background` | Non | S'applique uniquement avec `context: fork`. Définissez sur `false` pour attendre le résultat du sous-agent forké dans le tour qui a invoqué la compétence, au lieu de [l'exécuter en arrière-plan](#run-skills-in-a-subagent). Par défaut : `true`. Nécessite Claude Code v2.1.218 ou ultérieur. |423| `background` | Non | S'applique uniquement avec `context: fork`. Définissez sur `false` pour attendre le résultat du sous-agent forké dans le tour qui a invoqué la compétence, au lieu de [l'exécuter en arrière-plan](#run-skills-in-a-subagent). Par défaut : `true`. Nécessite Claude Code v2.1.218 ou ultérieur. |


664 665 

665Si vous invoquez une compétence avec des arguments mais qu'aucun espace réservé dans le contenu de la compétence n'en reçoit un, Claude Code ajoute `ARGUMENTS: <your input>` à la fin du contenu de la compétence afin que Claude voie toujours ce que vous avez tapé. Un espace réservé est `$ARGUMENTS`, une forme indexée comme `$1` ou un argument nommé. Un espace réservé indexé sans argument à sa position reste comme texte littéral et ne compte pas comme en recevant un. Un espace réservé nommé compte même lorsque sa position n'a pas d'argument, car il se développe à une chaîne vide.666Si vous invoquez une compétence avec des arguments mais qu'aucun espace réservé dans le contenu de la compétence n'en reçoit un, Claude Code ajoute `ARGUMENTS: <your input>` à la fin du contenu de la compétence afin que Claude voie toujours ce que vous avez tapé. Un espace réservé est `$ARGUMENTS`, une forme indexée comme `$1` ou un argument nommé. Un espace réservé indexé sans argument à sa position reste comme texte littéral et ne compte pas comme en recevant un. Un espace réservé nommé compte même lorsque sa position n'a pas d'argument, car il se développe à une chaîne vide.

666 667 

667Vous pouvez également empiler plusieurs compétences au début d'un message. Taper `/write-tests /fix-issue 123` charge les deux compétences et passe le texte final `123` comme `$ARGUMENTS` à chacune d'elles. Avant v2.1.199, seule la première compétence se chargeait et recevait `/fix-issue 123` comme texte d'argument littéral.668Vous pouvez également empiler plusieurs skills au début d'un message. Taper `/write-tests /fix-issue 123` charge les deux skills et passe le texte final `123` comme `$ARGUMENTS` à chacun d'eux.

668 669 

669Claude Code étend la première compétence plus jusqu'à cinq autres empilées après elle. L'expansion s'arrête au premier jeton qui n'est pas une compétence invocable par l'utilisateur en ligne, donc une compétence qui s'exécute en tant que [sous-agent forké](#run-skills-in-a-subagent), comme [`/code-review`](/docs/fr/code-review#review-a-diff-locally), ou une dont les arguments peuvent eux-mêmes commencer par une commande slash, comme `/loop`, termine également la course là. Ce jeton et tout ce qui le suit deviennent le texte d'argument pour chaque compétence étendue. `/code-review` s'exécute en tant que sous-agent forké à partir de v2.1.218 ; sur les versions antérieures, il s'exécutait en ligne et s'empilait.670Claude Code étend la première compétence plus jusqu'à cinq autres empilées après elle. L'expansion s'arrête au premier jeton qui n'est pas une compétence invocable par l'utilisateur en ligne, donc une compétence qui s'exécute en tant que [sous-agent forké](#run-skills-in-a-subagent), comme [`/code-review`](/docs/fr/code-review#review-a-diff-locally), ou une dont les arguments peuvent eux-mêmes commencer par une commande slash, comme `/loop`, termine également la course là. Ce jeton et tout ce qui le suit deviennent le texte d'argument pour chaque compétence étendue. `/code-review` s'exécute en tant que sous-agent forké à partir de v2.1.218 ; sur les versions antérieures, il s'exécutait en ligne et s'empilait.

670 671 


923 924 

924Le menu `/skills` étiquette l'état `"user-invocable-only"` `user-only`.925Le menu `/skills` étiquette l'état `"user-invocable-only"` `user-only`.

925 926 

926À partir de v2.1.199, `"off"` masque également la compétence des listes de commandes annoncées aux clients [Remote Control](/docs/fr/remote-control) et aux appelants [Agent SDK](/docs/fr/agent-sdk/skills#discover-available-commands), en plus du menu terminal `/`. Invoquer une compétence masquée par son nom complet retourne toujours l'erreur `skillOverrides` au lieu de l'exécuter.927`"off"` masque également le skill des listes de commandes annoncées aux clients [Remote Control](/docs/fr/remote-control) et aux appelants de l'[Agent SDK](/docs/fr/agent-sdk/skills#discover-available-commands), en plus du menu `/` du terminal. Invoquer un skill masqué par son nom complet retourne l'erreur `skillOverrides` au lieu de l'exécuter.

927 928 

928Une compétence absente de `skillOverrides` est traitée comme `"on"`. L'exemple ci-dessous réduit une compétence à son nom et en désactive une autre entièrement :929Une compétence absente de `skillOverrides` est traitée comme `"on"`. L'exemple ci-dessous réduit une compétence à son nom et en désactive une autre entièrement :

929 930 

sub-agents.md +2 −2

Details

986 986 

987Lorsque quelque chose [coupe la réponse d'un sous-agent en cours de flux](/docs/fr/errors#the-response-above-may-be-incomplete), et que la réponse partielle contient du texte mais pas d'appels d'outils, Claude Code demande au sous-agent de continuer plutôt que de terminer l'exécution. Cela se produit également dans les sessions interactives. L'exécution se termine sur l'erreur uniquement une fois que ces continuations sont épuisées.987Lorsque quelque chose [coupe la réponse d'un sous-agent en cours de flux](/docs/fr/errors#the-response-above-may-be-incomplete), et que la réponse partielle contient du texte mais pas d'appels d'outils, Claude Code demande au sous-agent de continuer plutôt que de terminer l'exécution. Cela se produit également dans les sessions interactives. L'exécution se termine sur l'erreur uniquement une fois que ces continuations sont épuisées.

988 988 

989À partir de la v2.1.199, un sous-agent dont l'exécution se termine sur une erreur API, comme une limite d'utilisation ou une erreur serveur répétée, signale cet échec à Claude au lieu de retourner le texte d'erreur comme s'il s'agissait des conclusions du sous-agent. Ce que Claude reçoit dépend de l'endroit où le sous-agent s'est exécuté :989Un sous-agent dont l'exécution se termine sur une erreur API, comme une limite d'utilisation ou une erreur serveur répétée, signale cet échec à Claude. Ce que Claude reçoit dépend de l'endroit où le sous-agent s'est exécuté :

990 990 

991* **Premier plan** : si une limite de débit, une surcharge ou une erreur serveur coupe un sous-agent qui a déjà produit une sortie texte, l'outil Agent retourne cette sortie partielle avec une note indiquant que le sous-agent a été coupé et n'a pas terminé sa tâche. Un sous-agent qui n'a rien produit, ou dont la seule sortie était des appels d'outils, échoue avec [`Agent terminated early due to an API error`](/docs/fr/errors#agent-terminated-early-due-to-an-api-error), suivi du détail de l'erreur. Dans la v2.1.199, une limite de débit, une surcharge ou une erreur serveur qui a coupé la forme contenant uniquement des appels d'outils a retourné un résultat partiel vide contenant uniquement la note de coupure à la place.991* **Premier plan** : si une limite de débit, une surcharge ou une erreur serveur coupe un sous-agent qui a déjà produit une sortie texte, l'outil Agent retourne cette sortie partielle avec une note indiquant que le sous-agent a été coupé et n'a pas terminé sa tâche. Un sous-agent qui n'a rien produit, ou dont la seule sortie était des appels d'outils, échoue avec [`Agent terminated early due to an API error`](/docs/fr/errors#agent-terminated-early-due-to-an-api-error), suivi du détail de l'erreur. Dans la v2.1.199, une limite de débit, une surcharge ou une erreur serveur qui a coupé la forme contenant uniquement des appels d'outils a retourné un résultat partiel vide contenant uniquement la note de coupure à la place.

992* **Arrière-plan** : le sous-agent est marqué comme échoué, et le message que Claude reçoit lorsqu'il se termine nomme l'erreur API et inclut la dernière sortie du sous-agent, de sorte que le travail partiel n'est pas perdu.992* **Arrière-plan** : le sous-agent est marqué comme échoué, et le message que Claude reçoit lorsqu'il se termine nomme l'erreur API et inclut la dernière sortie du sous-agent, de sorte que le travail partiel n'est pas perdu.


1188 1188 

1189La reprise démarre une nouvelle exécution de l'agent sous le même ID, de sorte qu'un sous-agent qui avait déjà échoué ou s'était terminé s'affiche à nouveau comme en cours d'exécution dans la liste des tâches et dans les événements de tâche du SDK Agent. Avant la v2.1.205, il gardait son statut antérieur échoué ou terminé pendant que l'exécution reprise travaillait.1189La reprise démarre une nouvelle exécution de l'agent sous le même ID, de sorte qu'un sous-agent qui avait déjà échoué ou s'était terminé s'affiche à nouveau comme en cours d'exécution dans la liste des tâches et dans les événements de tâche du SDK Agent. Avant la v2.1.205, il gardait son statut antérieur échoué ou terminé pendant que l'exécution reprise travaillait.

1190 1190 

1191À partir de la v2.1.199, `SendMessage` vérifie qu'un nom fait toujours référence au même agent qu'il a atteint plus tôt dans la conversation. Si un agent plus récent a pris le nom, comme un agent en arrière-plan re-généré qui l'a réutilisé, Claude Code refuse l'envoi plutôt que de le livrer au mauvais agent, et l'erreur signale quel agent le nom atteint maintenant pour que Claude puisse le rediriger. Pour atteindre l'agent antérieur pendant qu'il s'exécute toujours, Claude l'adresse par l'ID d'agent qu'il a reçu lorsqu'il a généré cet agent. La vérification est limitée à la conversation actuelle et se réinitialise sur `/clear`.1191`SendMessage` vérifie qu'un nom fait toujours référence au même agent qu'il a atteint plus tôt dans la conversation. Si un agent plus récent a pris le nom, comme un agent en arrière-plan re-généré qui l'a réutilisé, Claude Code refuse l'envoi plutôt que de le livrer au mauvais agent, et l'erreur signale quel agent le nom atteint maintenant pour que Claude puisse le rediriger. Pour atteindre l'agent antérieur pendant qu'il s'exécute toujours, Claude l'adresse par l'ID d'agent qu'il a reçu lorsqu'il a généré cet agent. La vérification est limitée à la conversation actuelle et se réinitialise sur `/clear`.

1192 1192 

1193Un sous-agent traite les messages de l'agent qui l'a lancé comme une direction de tâche normale, y compris les corrections de cours en cours de tâche, et agit en fonction de ses propres paramètres de permission. Deux limites tiennent indépendamment de qui a envoyé le message : aucun message d'aucun agent ne compte comme votre approbation pour une demande de permission en attente, et aucun message d'agent ne peut modifier les paramètres de permission, `CLAUDE.md` ou la configuration d'un sous-agent. Seul le système de permission ou vos propres messages peuvent accorder l'approbation.1193Un sous-agent traite les messages de l'agent qui l'a lancé comme une direction de tâche normale, y compris les corrections de cours en cours de tâche, et agit en fonction de ses propres paramètres de permission. Deux limites tiennent indépendamment de qui a envoyé le message : aucun message d'aucun agent ne compte comme votre approbation pour une demande de permission en attente, et aucun message d'agent ne peut modifier les paramètres de permission, `CLAUDE.md` ou la configuration d'un sous-agent. Seul le système de permission ou vos propres messages peuvent accorder l'approbation.

1194 1194 

ultrareview.md +1 −5

Details

134| - | - | - |134| - | - | - |

135| Pro | 3 exécutions gratuites | facturées comme [utilisation supplémentaire](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) |135| Pro | 3 exécutions gratuites | facturées comme [utilisation supplémentaire](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) |

136| Max | 3 exécutions gratuites | facturées comme [utilisation supplémentaire](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) |136| Max | 3 exécutions gratuites | facturées comme [utilisation supplémentaire](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) |

137| Team et Enterprise | aucune | facturées comme [utilisation supplémentaire](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) |

138 137 

139* **Exécutions gratuites** : les trois exécutions Pro et Max sont une allocation unique par compte et ne se renouvellent pas.138* **Exécutions gratuites** : les trois exécutions Pro et Max sont une allocation unique par compte et ne se renouvellent pas.

140* **Coût par révision** : après avoir utilisé les exécutions gratuites, généralement entre 5 et 25 dollars en utilisation supplémentaire selon la taille du changement, correspondant à l'estimation affichée par la boîte de dialogue de lancement avant chaque exécution.139* **Coût par révision** : après avoir utilisé les exécutions gratuites, généralement entre 5 et 25 dollars en utilisation supplémentaire selon la taille du changement, correspondant à l'estimation affichée par la boîte de dialogue de lancement avant chaque exécution.

141* **Quand une exécution compte** : une fois que la session cloud démarre. Une révision que vous arrêtez tôt ou qui ne se termine pas utilise quand même une exécution gratuite ; une révision payante facture uniquement l'utilisation supplémentaire pour la portion qui a été exécutée.140* **Quand une exécution compte** : une fois que la session cloud démarre. Une révision que vous arrêtez tôt ou qui ne se termine pas utilise quand même une exécution gratuite ; une révision payante facture uniquement l'utilisation supplémentaire pour la portion qui a été exécutée.

142 141 

143Parce que ultrareview facture toujours l'utilisation supplémentaire en dehors des exécutions gratuites, votre compte ou organisation doit avoir l'utilisation supplémentaire activée avant de pouvoir lancer une révision payante. Si l'utilisation supplémentaire n'est pas activée, Claude Code bloque le lancement, et la façon dont vous l'activez dépend de votre accès à la facturation :142Parce que ultrareview est toujours facturé en crédits d'utilisation en dehors des exécutions gratuites, votre compte ou organisation doit avoir les crédits d'utilisation activés avant de pouvoir lancer une révision payante. Si les crédits d'utilisation ne sont pas activés, Claude Code bloque le lancement. Si vous pouvez gérer la facturation de votre compte, Claude Code vous renvoie aux paramètres de facturation où vous pouvez activer les crédits d'utilisation.

144 

145* Si vous pouvez gérer la facturation de votre compte, Claude Code vous renvoie aux paramètres de facturation où vous pouvez activer l'utilisation supplémentaire.

146* Sur les plans Team et Enterprise, les membres sans accès à la facturation envoient une demande depuis la CLI demandant à leur administrateur d'activer l'utilisation supplémentaire.

147 143 

148Vous pouvez également exécuter `/usage-credits` pour vérifier ou modifier votre paramètre d'utilisation supplémentaire.144Vous pouvez également exécuter `/usage-credits` pour vérifier ou modifier votre paramètre d'utilisation supplémentaire.

149 145 

Details

184 184 

185Problèmes courants lorsque la dictée vocale ne s'active pas ou n'enregistre pas :185Problèmes courants lorsque la dictée vocale ne s'active pas ou n'enregistre pas :

186 186 

187* **`Voice mode requires a Claude.ai account`** : vous êtes authentifié avec une clé API ou un fournisseur tiers. Exécutez `/login` pour vous connecter avec un compte Claude.ai.187* **`Unknown command: /voice`** : `/voice` n'est disponible que lorsqu'un compte claude.ai est votre connexion active. Si vous n'êtes pas connecté avec un tel compte, exécutez `/login`. Si `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, un paramètre `apiKeyHelper` ou un [fournisseur tiers](#requirements) est utilisé, il a priorité sur une connexion claude.ai ; supprimez-le donc et redémarrez Claude Code.

188* **`Voice mode requires a Claude.ai account`** : Claude Code n'a pas trouvé de connexion claude.ai utilisable lorsque vous avez exécuté `/voice` ou commencé l'enregistrement. Exécutez `/login` pour vous reconnecter.

188* **`Voice mode is disabled by your organization's policy`** : une politique d'administrateur pour votre organisation désactive la dictée vocale. Contactez l'administrateur de votre organisation pour confirmer si la dictée vocale est disponible pour votre organisation.189* **`Voice mode is disabled by your organization's policy`** : une politique d'administrateur pour votre organisation désactive la dictée vocale. Contactez l'administrateur de votre organisation pour confirmer si la dictée vocale est disponible pour votre organisation.

189* **`Microphone access is denied`** : accordez la permission du microphone à votre terminal dans les paramètres système. Sur macOS, allez à Paramètres système → Confidentialité et sécurité → Microphone et activez votre application terminal, puis exécutez `/voice` à nouveau. Sur Windows, allez à Paramètres → Confidentialité et sécurité → Microphone et activez l'accès au microphone pour les applications de bureau, puis exécutez `/voice` à nouveau. Si votre terminal n'est pas répertorié dans les paramètres macOS, consultez [Terminal non répertorié dans les paramètres du microphone macOS](#terminal-not-listed-in-macos-microphone-settings).190* **`Microphone access is denied`** : accordez la permission du microphone à votre terminal dans les paramètres système. Sur macOS, allez à Paramètres système → Confidentialité et sécurité → Microphone et activez votre application terminal, puis exécutez `/voice` à nouveau. Sur Windows, allez à Paramètres → Confidentialité et sécurité → Microphone et activez l'accès au microphone pour les applications de bureau, puis exécutez `/voice` à nouveau. Si votre terminal n'est pas répertorié dans les paramètres macOS, consultez [Terminal non répertorié dans les paramètres du microphone macOS](#terminal-not-listed-in-macos-microphone-settings).

190* **`Voice mode requires SoX for audio recording` sur Linux** : le module audio natif n'a pas pu se charger et aucun retour n'est installé. Installez SoX avec la commande affichée dans le message d'erreur, par exemple `sudo apt-get install sox`.191* **`Voice mode requires SoX for audio recording` sur Linux** : le module audio natif n'a pas pu se charger et aucun retour n'est installé. Installez SoX avec la commande affichée dans le message d'erreur, par exemple `sudo apt-get install sox`.