SpyBara
Go Premium

Documentation 2026-10-06 23:59 UTC to 2026-10-07 19:00 UTC

54 files changed +392 −338. View all changes and history on the product overview
2026
Wed 7 20:01 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59

agent-sdk/hooks.md +12 −12

Details

36 </Step>36 </Step>

37 37 

38 <Step title="Votre rappel retourne une décision">38 <Step title="Votre rappel retourne une décision">

39 Après avoir effectué toute opération (enregistrement, appels API, validation), votre rappel retourne un [objet de sortie](#outputs) qui indique à l'agent quoi faire : autoriser l'opération, la bloquer, modifier l'entrée ou injecter du contexte dans la conversation.39 Après avoir effectué toute opération (journalisation, appels API, validation), votre rappel retourne un [objet de sortie](#outputs) qui indique à l'agent quoi faire : autoriser l'opération, la bloquer, modifier l'entrée ou injecter du contexte dans la conversation.

40 </Step>40 </Step>

41</Steps>41</Steps>

42 42 


140 ```140 ```

141</CodeGroup>141</CodeGroup>

142 142 

143Lorsque vous exécutez l'un ou l'autre script, Claude tente de créer le fichier `.env`, le hook refuse l'appel d'outil, et la réponse finale de Claude explique qu'il ne peut pas créer de fichiers `.env`.143Lorsque vous exécutez l'un ou l'autre script, Claude tente de créer le fichier `.env` et le hook refuse l'appel d'outil.

144 144 

145<h2 id="available-hooks">145<h2 id="available-hooks">

146 Hooks disponibles146 Hooks disponibles


179| `ConfigChange` | Non | Oui | Le fichier de configuration change | Recharger les paramètres dynamiquement |179| `ConfigChange` | Non | Oui | Le fichier de configuration change | Recharger les paramètres dynamiquement |

180| `InstructionsLoaded` | Non | Oui | Un fichier `CLAUDE.md` ou de règles est chargé dans le contexte | Auditer quels fichiers d'instructions se chargent |180| `InstructionsLoaded` | Non | Oui | Un fichier `CLAUDE.md` ou de règles est chargé dans le contexte | Auditer quels fichiers d'instructions se chargent |

181| `WorktreeCreate` | Non | Oui | Git worktree créé | Suivre les espaces de travail isolés |181| `WorktreeCreate` | Non | Oui | Git worktree créé | Suivre les espaces de travail isolés |

182| `WorktreeRemove` | Non | Oui | Git worktree supprimé | Nettoyer les ressources de l'espace de travail |182| `WorktreeRemove` | Non | Oui | Un worktree créé par un hook `WorktreeCreate` est en cours de suppression | Nettoyer les ressources de l'espace de travail |

183| `CwdChanged` | Non | Oui | Le répertoire de travail change pendant une session | Recharger les variables d'environnement par répertoire |183| `CwdChanged` | Non | Oui | Le répertoire de travail change pendant une session | Recharger les variables d'environnement par répertoire |

184| `FileChanged` | Non | Oui | Un fichier surveillé est modifié, créé ou supprimé | Recharger la configuration quand les fichiers du projet changent |184| `FileChanged` | Non | Oui | Un fichier surveillé est modifié, créé ou supprimé | Recharger la configuration quand les fichiers du projet changent |

185| `DirectoryAdded` | Non | Oui | Un répertoire de travail est ajouté pendant une session | Installer les dépendances pour un référentiel ajouté en cours de session |185| `DirectoryAdded` | Non | Oui | Un répertoire de travail est ajouté pendant une session | Installer les dépendances pour un référentiel ajouté en cours de session |


235| `hooks` | `HookCallback[]` | - | Requis. Tableau de fonctions de rappel à exécuter lorsque le motif correspond |235| `hooks` | `HookCallback[]` | - | Requis. Tableau de fonctions de rappel à exécuter lorsque le motif correspond |

236| `timeout` | `number` | `undefined` | Délai d'expiration en secondes. Lorsqu'il est omis, Claude Code applique le [délai d'expiration par défaut de l'événement](#hook-timeout). Vos rappels du SDK suivent les valeurs par défaut du hook `command` |236| `timeout` | `number` | `undefined` | Délai d'expiration en secondes. Lorsqu'il est omis, Claude Code applique le [délai d'expiration par défaut de l'événement](#hook-timeout). Vos rappels du SDK suivent les valeurs par défaut du hook `command` |

237 237 

238Utilisez le motif `matcher` pour cibler des outils spécifiques chaque fois que possible. Un matcher avec `'Bash'` s'exécute uniquement pour les commandes Bash, tandis que l'omission du motif exécute vos rappels pour chaque occurrence de l'événement. Omettez-le intentionnellement pour enregistrer chaque appel d'outil que votre session effectue.238Utilisez le motif `matcher` pour cibler des outils spécifiques chaque fois que possible. Un matcher avec `'Bash'` s'exécute uniquement pour les commandes Bash, tandis que l'omission du motif exécute vos rappels pour chaque occurrence de l'événement. Omettez-le intentionnellement pour journaliser chaque appel d'outil que votre session effectue.

239 239 

240<h3 id="callback-functions">240<h3 id="callback-functions">

241 Fonctions de rappel241 Fonctions de rappel


262* **Champs de niveau supérieur** sont acceptés sur chaque événement : `systemMessage` affiche un message à l'utilisateur, et `continue` (`continue_` en Python) détermine si l'agent continue à s'exécuter après ce hook. Certains événements les rejettent ou les livrent ailleurs. La section de chaque [événement](/docs/fr/hooks#hook-events) sur la page des hooks indique où ils aboutissent.262* **Champs de niveau supérieur** sont acceptés sur chaque événement : `systemMessage` affiche un message à l'utilisateur, et `continue` (`continue_` en Python) détermine si l'agent continue à s'exécuter après ce hook. Certains événements les rejettent ou les livrent ailleurs. La section de chaque [événement](/docs/fr/hooks#hook-events) sur la page des hooks indique où ils aboutissent.

263* **`hookSpecificOutput`** contrôle l'opération actuelle. Les champs que vous définissez à l'intérieur dépendent du type d'événement hook :263* **`hookSpecificOutput`** contrôle l'opération actuelle. Les champs que vous définissez à l'intérieur dépendent du type d'événement hook :

264 * Pour les hooks `PreToolUse`, c'est là que vous définissez `permissionDecision` (`"allow"`, `"deny"`, `"ask"` ou `"defer"`), `permissionDecisionReason` et `updatedInput`. Si vous retournez `"defer"`, le tour se termine par un message de résultat dont le `stop_reason` est `"tool_deferred"`, afin que vous puissiez [reprendre l'appel plus tard](/docs/fr/hooks#defer-a-tool-call-for-later).264 * Pour les hooks `PreToolUse`, c'est là que vous définissez `permissionDecision` (`"allow"`, `"deny"`, `"ask"` ou `"defer"`), `permissionDecisionReason` et `updatedInput`. Si vous retournez `"defer"`, le tour se termine par un message de résultat dont le `stop_reason` est `"tool_deferred"`, afin que vous puissiez [reprendre l'appel plus tard](/docs/fr/hooks#defer-a-tool-call-for-later).

265 * Pour les hooks `PostToolUse`, vous pouvez définir `additionalContext` pour ajouter des informations au résultat de l'outil. Pour remplacer la sortie de l'outil avant que Claude ne la voie, définissez `updatedToolOutput`, qui fonctionne pour n'importe quel outil dans les deux SDK. Le champ plus ancien `updatedMCPToolOutput` remplace uniquement la sortie de l'outil MCP et est déprécié.265 * Pour les hooks `PostToolUse`, vous pouvez définir `additionalContext` pour ajouter des informations au résultat de l'outil. Pour remplacer la sortie de l'outil avant que Claude ne la voie, définissez `updatedToolOutput`, qui fonctionne pour n'importe quel outil dans les deux SDK. Le champ plus ancien `updatedMCPToolOutput` remplace uniquement la sortie des outils MCP.

266 * Dans le SDK TypeScript, un rappel `PostToolUse` peut également retourner `classifierContext`, une courte note sur le résultat de l'appel d'outil pour le classificateur de permission du [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode). Parce que votre rappel s'exécute dans le propre processus de votre application, le classificateur peut peser une déclaration d'utilisateur que vous relayez dans la note comme intention de l'utilisateur. Le champ nécessite le SDK Agent TypeScript v0.3.236 ou ultérieur. [Annoter un résultat pour le classificateur du mode auto](/docs/fr/hooks#annotate-a-result-for-the-auto-mode-classifier) couvre le plafond de longueur, la règle synchrone uniquement, et ce qu'il ne faut pas mettre dans la note.266 * Dans le SDK TypeScript, un rappel `PostToolUse` peut également retourner `classifierContext`, une courte note sur le résultat de l'appel d'outil pour le classificateur de permission du [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode). Parce que votre rappel s'exécute dans le propre processus de votre application, le classificateur peut peser une déclaration d'utilisateur que vous relayez dans la note comme intention de l'utilisateur. Le champ nécessite le SDK Agent TypeScript v0.3.236 ou ultérieur. [Annoter un résultat pour le classificateur du mode auto](/docs/fr/hooks#annotate-a-result-for-the-auto-mode-classifier) couvre le plafond de longueur, la règle synchrone uniquement, et ce qu'il ne faut pas mettre dans la note.

267 267 

268Retournez `{}` pour autoriser l'opération sans modifications. Les hooks de rappel du SDK utilisent le même format de sortie JSON que les [hooks de commande shell Claude Code](/docs/fr/hooks#json-output), qui documente chaque champ et option spécifique à l'événement. Pour les définitions de type du SDK, consultez les références du SDK [TypeScript](/docs/fr/agent-sdk/typescript#synchookjsonoutput) et [Python](/docs/fr/agent-sdk/python#synchookjsonoutput).268Retournez `{}` pour autoriser l'opération sans modifications. Les hooks de rappel du SDK utilisent le même format de sortie JSON que les [hooks de commande shell Claude Code](/docs/fr/hooks#json-output), qui documente chaque champ et option spécifique à l'événement. Pour les définitions de type du SDK, consultez les références du SDK [TypeScript](/docs/fr/agent-sdk/typescript#synchookjsonoutput) et [Python](/docs/fr/agent-sdk/python#synchookjsonoutput).


297| Champ | Type | Description |297| Champ | Type | Description |

298| - | - | - |298| - | - | - |

299| `async` | `true` | Signale le mode asynchrone. L'agent continue sans attendre. En Python, utilisez `async_` pour éviter le mot-clé réservé. |299| `async` | `true` | Signale le mode asynchrone. L'agent continue sans attendre. En Python, utilisez `async_` pour éviter le mot-clé réservé. |

300| `asyncTimeout` | `number` | Délai d'expiration optionnel en millisecondes pour l'opération de fond |300| `asyncTimeout` | `number` | Délai d'expiration optionnel en millisecondes pour l'opération en arrière-plan |

301 301 

302<Note>302<Note>

303 Les sorties asynchrones ne peuvent pas bloquer, modifier ou injecter du contexte dans l'opération puisque l'agent a déjà avancé. Utilisez-les uniquement pour les effets secondaires comme la journalisation, les métriques ou les notifications.303 Les sorties asynchrones ne peuvent pas bloquer, modifier ou injecter du contexte dans l'opération puisque l'agent a déjà avancé. Utilisez-les uniquement pour les effets secondaires comme la journalisation, les métriques ou les notifications.


834 834 

835* `PreToolUse` : Claude Code n'exécute pas l'appel d'outil, Claude reçoit un résultat d'outil indiquant que le hook n'a pas répondu avant son délai d'expiration, et le tour continue. Si un autre hook `PreToolUse` a retourné un refus explicite, Claude reçoit ce refus à la place de l'erreur de délai d'expiration. Avant la v2.1.210, Claude Code signalait le délai d'expiration à Claude comme un refus utilisateur, ce qui faisait arrêter les sessions sans surveillance et attendre une entrée.835* `PreToolUse` : Claude Code n'exécute pas l'appel d'outil, Claude reçoit un résultat d'outil indiquant que le hook n'a pas répondu avant son délai d'expiration, et le tour continue. Si un autre hook `PreToolUse` a retourné un refus explicite, Claude reçoit ce refus à la place de l'erreur de délai d'expiration. Avant la v2.1.210, Claude Code signalait le délai d'expiration à Claude comme un refus utilisateur, ce qui faisait arrêter les sessions sans surveillance et attendre une entrée.

836* `PostToolUse` et `PostToolUseFailure` : Claude Code conserve le résultat de l'outil et le tour continue.836* `PostToolUse` et `PostToolUseFailure` : Claude Code conserve le résultat de l'outil et le tour continue.

837* `UserPromptSubmit` et [`UserPromptExpansion`](/docs/fr/hooks#userpromptexpansion) : Claude Code bloque l'invite avec un message nommant le hook et le délai d'expiration, et la session continue. Parce qu'un rappel sur ces événements peut agir comme une porte de politique, Claude Code ne laisse jamais passer une invite expirée sans contrôle. Avant la v2.1.208, Claude Code terminait la requête avec `error_during_execution` lorsqu'un rappel sur ces événements expirait.837* `UserPromptSubmit` et [`UserPromptExpansion`](/docs/fr/hooks#userpromptexpansion) : Claude Code bloque le prompt avec un message nommant le hook et le délai d'expiration, et la session continue. Parce qu'un rappel sur ces événements peut agir comme une porte de politique, Claude Code ne laisse jamais passer un prompt expiré sans contrôle. Avant la v2.1.208, Claude Code terminait la requête avec `error_during_execution` lorsqu'un rappel sur ces événements expirait.

838* `Stop` et `SubagentStop` : le rappel expiré compte comme ne retournant aucune décision. L'agent ou le sous-agent s'arrête comme si ce rappel l'avait autorisé, et une décision de vos autres hooks sur l'événement s'applique toujours. Avant Claude Code v2.1.273, un rappel `Stop` ou `SubagentStop` expiré comptait comme une exécution de hook échouée, et Claude Code rejetait les décisions de vos autres hooks sur l'événement.838* `Stop` et `SubagentStop` : le rappel expiré compte comme ne retournant aucune décision. L'agent ou le sous-agent s'arrête comme si ce rappel l'avait autorisé, et une décision de vos autres hooks sur l'événement s'applique toujours. Avant Claude Code v2.1.273, un rappel `Stop` ou `SubagentStop` expiré comptait comme une exécution de hook échouée, et Claude Code rejetait les décisions de vos autres hooks sur l'événement.

839* `SessionStart` : le rappel expiré compte comme ne retournant aucune sortie, et la session continue avec la sortie de vos autres hooks `SessionStart`.839* `SessionStart` : le rappel expiré compte comme ne retournant aucune sortie, et la session continue avec la sortie de vos autres hooks `SessionStart`.

840* `PreModelSwitch` : Claude Code bloque le changement de modèle. Un hook qui ne répond pas n'a pas approuvé le changement.840* `PreModelSwitch` : Claude Code bloque le changement de modèle. Un hook qui ne répond pas n'a pas approuvé le changement.

841* Autres événements, tels que `Notification`, `PreCompact` et `PostModelSwitch` : Claude Code enregistre l'échec et continue.841* Autres événements, tels que `Notification`, `PreCompact` et `PostModelSwitch` : Claude Code consigne l'échec dans les logs et continue.

842 842 

843La première fois qu'un rappel `Stop` ou `SessionStart` expire dans la session principale, Claude Code ajoute également un [`SDKInformationalMessage`](/docs/fr/agent-sdk/typescript#sdkinformationalmessage) au flux de messages indiquant que l'application pilotant la session n'a pas répondu. Les expirations ultérieures ne répètent pas ce message tant que votre application reste sans réponse.843La première fois qu'un rappel `Stop` ou `SessionStart` expire dans la session principale, Claude Code ajoute également un [`SDKInformationalMessage`](/docs/fr/agent-sdk/typescript#sdkinformationalmessage) au flux de messages indiquant que l'application pilotant la session n'a pas répondu. Les expirations ultérieures ne répètent pas ce message tant que votre application reste sans réponse.

844 844 


878 Hooks de session non disponibles en Python878 Hooks de session non disponibles en Python

879</h3>879</h3>

880 880 

881`SessionStart` et `SessionEnd` peuvent être enregistrés en tant que hooks de rappel du SDK en TypeScript, mais ne sont pas disponibles dans le SDK Python car son type `HookEvent` les omet. En Python, ils ne sont disponibles que comme [hooks de commande shell](/docs/fr/hooks#hook-events) définis dans les fichiers de paramètres tels que `.claude/settings.json`. Pour charger les hooks de commande shell à partir de votre application SDK, incluez la source de paramètre appropriée avec [`setting_sources`](/docs/fr/agent-sdk/python#settingsource) ou [`settingSources`](/docs/fr/agent-sdk/typescript#settingsource) :881`SessionStart` et `SessionEnd` peuvent être enregistrés en tant que hooks de rappel du SDK en TypeScript, mais ne sont pas disponibles dans le SDK Python car son type `HookEvent` les omet. En Python, ils ne sont disponibles que comme [hooks de commande shell](/docs/fr/hooks#hook-events) définis dans les fichiers de paramètres tels que `.claude/settings.json`. Les fichiers de paramètres que charge votre application SDK dépendent de [`setting_sources`](/docs/fr/agent-sdk/python#settingsource) ou de [`settingSources`](/docs/fr/agent-sdk/typescript#settingsource). Si vous définissez cette option, incluez la source qui contient les hooks :

882 882 

883<CodeGroup>883<CodeGroup>

884 ```python Python theme={null}884 ```python Python theme={null}


897Pour exécuter la logique d'initialisation en tant que rappel du SDK Python à la place, utilisez le premier message de `client.receive_response()` comme déclencheur.897Pour exécuter la logique d'initialisation en tant que rappel du SDK Python à la place, utilisez le premier message de `client.receive_response()` comme déclencheur.

898 898 

899<h3 id="subagent-permission-prompts-multiplying">899<h3 id="subagent-permission-prompts-multiplying">

900 Les invites de permission des sous-agents se multiplient900 Les demandes de permission des sous-agents se multiplient

901</h3>901</h3>

902 902 

903Lors du lancement de plusieurs sous-agents, chacun peut demander des permissions séparément pour ses propres appels d'outils. Pour éviter les invites répétées, utilisez les hooks `PreToolUse` pour approuver automatiquement des outils spécifiques, ou configurez des règles de permission, que les sous-agents [héritent de la conversation parent](/docs/fr/sub-agents#permission-modes).903Lors du lancement de plusieurs sous-agents, chacun peut demander des permissions séparément pour ses propres appels d'outils. Pour éviter les demandes répétées, utilisez les hooks `PreToolUse` pour approuver automatiquement des outils spécifiques, ou configurez des règles de permission, que les sous-agents [héritent de la conversation parent](/docs/fr/sub-agents#permission-modes).

904 904 

905<h3 id="recursive-hook-loops-with-subagents">905<h3 id="recursive-hook-loops-with-subagents">

906 Boucles de hook récursives avec des sous-agents906 Boucles de hook récursives avec des sous-agents


919 919 

920Avant la v2.1.227, le SDK ne faisait apparaître la sortie du hook dans le flux de messages que pour les hooks `SessionStart` et `Setup`. Pour tout autre événement, la sortie n'apparaissait que dans les événements de cycle de vie que [`includeHookEvents`](/docs/fr/agent-sdk/typescript#options) (`include_hook_events` en Python) ajoute. L'entrée de cette option couvre les événements de cycle de vie que chaque événement hook produit.920Avant la v2.1.227, le SDK ne faisait apparaître la sortie du hook dans le flux de messages que pour les hooks `SessionStart` et `Setup`. Pour tout autre événement, la sortie n'apparaissait que dans les événements de cycle de vie que [`includeHookEvents`](/docs/fr/agent-sdk/typescript#options) (`include_hook_events` en Python) ajoute. L'entrée de cette option couvre les événements de cycle de vie que chaque événement hook produit.

921 921 

922Si vous avez besoin de faire apparaître les décisions de hook à votre application de manière fiable, enregistrez-les séparément ou utilisez un canal de sortie dédié.922Si vous avez besoin de faire apparaître les décisions de hook à votre application de manière fiable, journalisez-les séparément ou utilisez un canal de sortie dédié.

923 923 

924<h2 id="related-resources">924<h2 id="related-resources">

925 Ressources connexes925 Ressources connexes

Details

194 `ToolAnnotations`194 `ToolAnnotations`

195</h4>195</h4>

196 196 

197Indices comportementaux pour un outil, passés comme argument `annotations` de [`tool()`](#tool). `ToolAnnotations` étend `mcp.types.ToolAnnotations` du SDK MCP avec un champ `maxResultSizeChars`, et vous pouvez écrire chaque indice en camelCase ou snake\_case : `ToolAnnotations(readOnlyHint=True)` et `ToolAnnotations(read_only_hint=True)` sont équivalents. Vous pouvez également passer un `mcp.types.ToolAnnotations` simple partout où le SDK accepte des annotations.197Indices comportementaux pour un outil, passés comme argument `annotations` de [`tool()`](#tool). `ToolAnnotations` étend `mcp.types.ToolAnnotations` du SDK MCP avec un champ `maxResultSizeChars`, et vous pouvez écrire chaque indice en camelCase ou snake\_case : `ToolAnnotations(readOnlyHint=True)` et `ToolAnnotations(read_only_hint=True)` sont équivalents. Pour relire un indice depuis l'objet, utilisez l'orthographe déclarée par votre package `mcp` installé : `.readOnlyHint` sur `mcp` 1.x et `.read_only_hint` sur 2.x, tandis que `.maxResultSizeChars` fonctionne sur les deux. Vous pouvez également passer un `mcp.types.ToolAnnotations` simple partout où le SDK accepte des annotations.

198 198 

199Les noms snake\_case et le champ typé `maxResultSizeChars` nécessitent Python Agent SDK 0.2.140 ou ultérieur. Les versions 0.1.31 à 0.2.139 réexportent `mcp.types.ToolAnnotations` inchangé. Sur les versions 0.1.55 à 0.2.139, vous pouvez toujours passer `maxResultSizeChars` comme argument de mot-clé : la classe MCP accepte les champs supplémentaires, et le SDK transmet la valeur à Claude Code.199Les noms snake\_case et le champ typé `maxResultSizeChars` nécessitent Python Agent SDK 0.2.140 ou ultérieur. Les versions 0.1.31 à 0.2.139 réexportent `mcp.types.ToolAnnotations` inchangé. Sur les versions 0.1.55 à 0.2.139, vous pouvez toujours passer `maxResultSizeChars` comme argument de mot-clé : la classe MCP accepte les champs supplémentaires, et le SDK transmet la valeur à Claude Code.

200 200 


321| `summary` | `str` | Titre d'affichage : titre personnalisé, prompt le plus récent, résumé généré automatiquement, ou premier prompt |321| `summary` | `str` | Titre d'affichage : titre personnalisé, prompt le plus récent, résumé généré automatiquement, ou premier prompt |

322| `last_modified` | `int` | Heure de dernière modification en millisecondes depuis l'époque |322| `last_modified` | `int` | Heure de dernière modification en millisecondes depuis l'époque |

323| `file_size` | `int \| None` | Taille du fichier de session en octets (`None` pour les backends de stockage distant) |323| `file_size` | `int \| None` | Taille du fichier de session en octets (`None` pour les backends de stockage distant) |

324| `custom_title` | `str \| None` | Titre de session défini par l'utilisateur |324| `custom_title` | `str \| None` | Titre de session : le titre défini par l'utilisateur, ou le titre généré automatiquement si aucun n'est défini |

325| `first_prompt` | `str \| None` | Premier prompt utilisateur significatif dans la session |325| `first_prompt` | `str \| None` | Premier prompt utilisateur significatif dans la session |

326| `git_branch` | `str \| None` | Branche git à la fin de la session |326| `git_branch` | `str \| None` | Branche git à la fin de la session |

327| `cwd` | `str \| None` | Répertoire de travail pour la session |327| `cwd` | `str \| None` | Répertoire de travail pour la session |


919| Property | Type | Default | Description |919| Property | Type | Default | Description |

920| :- | :- | :- | :- |920| :- | :- | :- | :- |

921| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Configuration des outils. Utilisez `{"type": "preset", "preset": "claude_code"}` pour les outils par défaut de Claude Code |921| `tools` | `list[str] \| ToolsPreset \| None` | `None` | Configuration des outils. Utilisez `{"type": "preset", "preset": "claude_code"}` pour les outils par défaut de Claude Code |

922| `allowed_tools` | `list[str]` | `[]` | Outils à approuver automatiquement sans demander. Cela ne restreint pas Claude à seulement ces outils. Si vous nommez l'un des [outils de suivi des tâches](/docs/fr/agent-sdk/todo-tracking#model-availability) ici, Claude Code opte également la session. Les autres outils non listés passent à `permission_mode` et `can_use_tool`. Utilisez `disallowed_tools` pour bloquer les outils. Voir [Permissions](/docs/fr/agent-sdk/permissions#allow-and-deny-rules) |922| `allowed_tools` | `list[str]` | `[]` | Outils à approuver automatiquement sans demander. Cela ne restreint pas Claude à seulement ces outils. Si vous nommez l'un des [outils de suivi des tâches](/docs/fr/agent-sdk/todo-tracking#model-availability) ici, Claude Code active également cette fonctionnalité pour la session. Les autres outils non listés passent à `permission_mode` et `can_use_tool`. Utilisez `disallowed_tools` pour bloquer les outils. Voir [Permissions](/docs/fr/agent-sdk/permissions#allow-and-deny-rules) |

923| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Configuration du prompt système. Passez une chaîne pour un prompt personnalisé, `{"type": "preset", "preset": "claude_code"}` pour le prompt système de Claude Code avec `"append"` optionnel, `{"type": "custom", "prompt": "..."}` pour un prompt personnalisé qui peut également définir `"snapshot"`, ou `{"type": "file", "path": "..."}` pour charger un grand prompt depuis le disque. Voir [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom), et [`SystemPromptFile`](#systempromptfile) |923| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Configuration du prompt système. Passez une chaîne pour un prompt personnalisé, `{"type": "preset", "preset": "claude_code"}` pour le prompt système de Claude Code avec `"append"` optionnel, `{"type": "custom", "prompt": "..."}` pour un prompt personnalisé qui peut également définir `"snapshot"`, ou `{"type": "file", "path": "..."}` pour charger un grand prompt depuis le disque. Voir [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom), et [`SystemPromptFile`](#systempromptfile) |

924| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Configurations des serveurs MCP ou chemin vers un fichier de configuration |924| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Configurations des serveurs MCP ou chemin vers un fichier de configuration |

925| `strict_mcp_config` | `bool` | `False` | Quand `True`, utilisez uniquement les serveurs passés dans `mcp_servers` et ignorez le `.mcp.json` du projet, les paramètres utilisateur, les serveurs MCP fournis par les plugins, et les [connecteurs claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai). Correspond au drapeau CLI `--strict-mcp-config` |925| `strict_mcp_config` | `bool` | `False` | Quand `True`, utilisez uniquement les serveurs passés dans `mcp_servers` et ignorez le `.mcp.json` du projet, les paramètres utilisateur, les serveurs MCP fournis par les plugins, et les [connecteurs claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai). Correspond au flag CLI `--strict-mcp-config` |

926| `permission_mode` | `PermissionMode \| None` | `None` | Mode de permission pour l'utilisation des outils |926| `permission_mode` | `PermissionMode \| None` | `None` | Mode de permission pour l'utilisation des outils |

927| `continue_conversation` | `bool` | `False` | Continuer la conversation la plus récente |927| `continue_conversation` | `bool` | `False` | Continuer la conversation la plus récente |

928| `resume` | `str \| None` | `None` | ID de session à reprendre |928| `resume` | `str \| None` | `None` | ID de session à reprendre |


930| `max_turns` | `int \| None` | `None` | Nombre maximum de tours d'agent (allers-retours d'utilisation d'outils) |930| `max_turns` | `int \| None` | `None` | Nombre maximum de tours d'agent (allers-retours d'utilisation d'outils) |

931| `max_budget_usd` | `float \| None` | `None` | Arrêter la requête quand l'estimation du coût côté client atteint cette valeur en USD. Compte uniquement les dépenses de l'appel lui-même ; les totaux restaurés à partir d'une session reprise ne comptent pas. Pour les avertissements de précision et le comportement de réinitialisation, voir [Suivre le coût et l'utilisation](/docs/fr/agent-sdk/cost-tracking) |931| `max_budget_usd` | `float \| None` | `None` | Arrêter la requête quand l'estimation du coût côté client atteint cette valeur en USD. Compte uniquement les dépenses de l'appel lui-même ; les totaux restaurés à partir d'une session reprise ne comptent pas. Pour les avertissements de précision et le comportement de réinitialisation, voir [Suivre le coût et l'utilisation](/docs/fr/agent-sdk/cost-tracking) |

932| `disallowed_tools` | `list[str]` | `[]` | Outils à refuser. Un nom simple tel que `"Bash"` supprime l'outil du contexte de Claude. Une règle délimitée telle que `"Bash(rm *)"` laisse l'outil disponible et refuse les appels correspondants dans chaque mode de permission, y compris `bypassPermissions`, pour la commande [telle qu'écrite](/docs/fr/permissions#bash-rule-limits). Voir [Permissions](/docs/fr/agent-sdk/permissions#allow-and-deny-rules) |932| `disallowed_tools` | `list[str]` | `[]` | Outils à refuser. Un nom simple tel que `"Bash"` supprime l'outil du contexte de Claude. Une règle délimitée telle que `"Bash(rm *)"` laisse l'outil disponible et refuse les appels correspondants dans chaque mode de permission, y compris `bypassPermissions`, pour la commande [telle qu'écrite](/docs/fr/permissions#bash-rule-limits). Voir [Permissions](/docs/fr/agent-sdk/permissions#allow-and-deny-rules) |

933| `enable_file_checkpointing` | `bool` | `False` | Activer le suivi des modifications de fichiers pour la rembobinage. Voir [Checkpointing de fichiers](/docs/fr/agent-sdk/file-checkpointing) |933| `enable_file_checkpointing` | `bool` | `False` | Activer le suivi des modifications de fichiers pour le rembobinage. Voir [Checkpointing de fichiers](/docs/fr/agent-sdk/file-checkpointing) |

934| `model` | `str \| None` | `None` | Alias de modèle Claude ou nom de modèle complet. Voir [valeurs acceptées et IDs spécifiques au fournisseur](/docs/fr/model-config#available-models) |934| `model` | `str \| None` | `None` | Alias de modèle Claude ou nom de modèle complet. Voir [valeurs acceptées et IDs spécifiques au fournisseur](/docs/fr/model-config#available-models) |

935| `fallback_model` | `str \| None` | `None` | Modèle de secours à utiliser si le modèle principal échoue. Accepte une liste séparée par des virgules. Pour des conseils, voir [Choisir un modèle](/docs/fr/agent-sdk/configuration#choose-a-model) |935| `fallback_model` | `str \| None` | `None` | Modèle de secours à utiliser si le modèle principal échoue. Accepte une liste séparée par des virgules. Pour des conseils, voir [Choisir un modèle](/docs/fr/agent-sdk/configuration#choose-a-model) |

936| `betas` | `list[SdkBeta]` | `[]` | Fonctionnalités bêta à activer. Voir [`SdkBeta`](#sdkbeta) pour les options disponibles |936| `betas` | `list[SdkBeta]` | `[]` | Fonctionnalités bêta à activer. Voir [`SdkBeta`](#sdkbeta) pour les options disponibles |

937| `output_format` | `dict[str, Any] \| None` | `None` | Format de sortie pour les réponses structurées (par exemple, `{"type": "json_schema", "schema": {...}}`). Voir [Sorties structurées](/docs/fr/agent-sdk/structured-outputs) pour les détails |937| `output_format` | `dict[str, Any] \| None` | `None` | Format de sortie pour les réponses structurées (par exemple, `{"type": "json_schema", "schema": {...}}`). Voir [Sorties structurées](/docs/fr/agent-sdk/structured-outputs) pour les détails |

938| `permission_prompt_tool_name` | `str \| None` | `None` | Nom de l'outil MCP pour les invites de permission |938| `permission_prompt_tool_name` | `str \| None` | `None` | Nom de l'outil MCP pour les demandes de permission |

939| `cwd` | `str \| Path \| None` | `None` | Répertoire de travail courant |939| `cwd` | `str \| Path \| None` | `None` | Répertoire de travail courant |

940| `cli_path` | `str \| Path \| None` | `None` | Chemin personnalisé vers l'exécutable CLI de Claude Code |940| `cli_path` | `str \| Path \| None` | `None` | Chemin personnalisé vers l'exécutable CLI de Claude Code |

941| `settings` | `str \| None` | `None` | Chemin vers un fichier de paramètres ou une chaîne JSON en ligne |941| `settings` | `str \| None` | `None` | Chemin vers un fichier de paramètres ou une chaîne JSON en ligne |

942| `add_dirs` | `list[str \| Path]` | `[]` | Répertoires supplémentaires auxquels Claude peut accéder. Le SDK transmet chaque entrée à Claude Code en tant que `--add-dir`, donc avec la source de paramètre `project` Claude Code [charge également les compétences, commandes et sous-agents du répertoire](/docs/fr/permissions#additional-directories-grant-file-access-not-configuration) |942| `add_dirs` | `list[str \| Path]` | `[]` | Répertoires supplémentaires auxquels Claude peut accéder. Le SDK transmet chaque entrée à Claude Code en tant que `--add-dir`, donc avec la source de paramètre `project` Claude Code [charge également les skills, commandes et sous-agents du répertoire](/docs/fr/permissions#additional-directories-grant-file-access-not-configuration) |

943| `env` | `dict[str, str]` | `{}` | Variables d'environnement fusionnées au-dessus de l'environnement de processus hérité. Voir [Variables d'environnement](/docs/fr/env-vars) pour les variables que le CLI sous-jacent lit, et [Gérer les réponses API lentes ou bloquées](#handle-slow-or-stalled-api-responses) pour les variables liées aux délais d'attente. Définissez `CLAUDE_AGENT_SDK_CLIENT_APP` pour identifier votre application dans l'en-tête User-Agent |943| `env` | `dict[str, str]` | `{}` | Variables d'environnement fusionnées au-dessus de l'environnement de processus hérité. Voir [Variables d'environnement](/docs/fr/env-vars) pour les variables que le CLI sous-jacent lit, et [Gérer les réponses API lentes ou bloquées](#handle-slow-or-stalled-api-responses) pour les variables liées aux délais d'attente. Définissez `CLAUDE_AGENT_SDK_CLIENT_APP` pour identifier votre application dans l'en-tête User-Agent |

944| `extra_args` | `dict[str, str \| None]` | `{}` | Arguments CLI supplémentaires à transmettre directement au CLI |944| `extra_args` | `dict[str, str \| None]` | `{}` | Arguments CLI supplémentaires à transmettre directement au CLI |

945| `max_buffer_size` | `int \| None` | `None` | Nombre maximum d'octets lors de la mise en mémoire tampon de la sortie standard du CLI |945| `max_buffer_size` | `int \| None` | `None` | Nombre maximum d'octets lors de la mise en mémoire tampon de la sortie standard du CLI |

946| `debug_stderr` | `Any` | `sys.stderr` | *Déprécié* - Le SDK ignore cette valeur. Utilisez le rappel `stderr` pour la sortie stderr du CLI |946| `debug_stderr` | `Any` | `sys.stderr` | *Déprécié* - Le SDK ignore cette valeur. Utilisez le rappel `stderr` pour la sortie stderr du CLI |

947| `stderr` | `Callable[[str], None] \| None` | `None` | Fonction de rappel pour la sortie stderr du CLI |947| `stderr` | `Callable[[str], None] \| None` | `None` | Fonction de rappel pour la sortie stderr du CLI |

948| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Rappel de permission d'outil, invoqué uniquement quand le [flux de permission](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) aboutit à une invite. Non invoqué pour les appels pré-approuvés par `allowed_tools`, les règles d'autorisation, ou `permission_mode`. Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves). Voir [`CanUseTool`](#canusetool) pour les détails |948| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Rappel de permission d'outil, invoqué uniquement quand le [flux de permission](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) aboutit à une demande de permission. Non invoqué pour les appels approuvés automatiquement par `allowed_tools`, les règles d'autorisation, ou `permission_mode`. Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves). Voir [`CanUseTool`](#canusetool) pour les détails |

949| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurations de hook pour intercepter les événements |949| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurations de hook pour intercepter les événements |

950| `user` | `str \| None` | `None` | Sur les plates-formes POSIX, le compte utilisateur du système d'exploitation sous lequel le sous-processus Claude Code s'exécute. Claude Code conserve l'environnement du processus parent, y compris `HOME`, et s'exécute dans `cwd` |950| `user` | `str \| None` | `None` | Sur les plates-formes POSIX, le compte utilisateur du système d'exploitation sous lequel le sous-processus Claude Code s'exécute. Claude Code conserve l'environnement du processus parent, y compris `HOME`, et s'exécute dans `cwd` |

951| `include_partial_messages` | `bool` | `False` | Inclure les événements de diffusion de messages partiels. Quand activé, les messages [`StreamEvent`](#streamevent) sont produits |951| `include_partial_messages` | `bool` | `False` | Inclure les événements de streaming de messages partiels. Quand activé, les messages [`StreamEvent`](#streamevent) sont produits |

952| `include_hook_events` | `bool` | `False` | Inclure les événements du cycle de vie des hooks dans le flux de messages en tant qu'objets `HookEventMessage` |952| `include_hook_events` | `bool` | `False` | Inclure les événements du cycle de vie des hooks dans le flux de messages en tant qu'objets `HookEventMessage` |

953| `forward_subagent_text` | `bool` | `False` | Transmettre les blocs de texte et de réflexion des sous-agents dans le flux de messages. Sans cette option, Claude Code émet les blocs `tool_use` et `tool_result` des sous-agents mais pas le texte ou la réflexion. Nécessite Python Agent SDK 0.2.140 ou ultérieur |953| `forward_subagent_text` | `bool` | `False` | Transmettre les blocs de texte et de réflexion des sous-agents dans le flux de messages. Sans cette option, Claude Code émet les blocs `tool_use` et `tool_result` des sous-agents mais pas le texte ou la réflexion. Nécessite Python Agent SDK 0.2.140 ou ultérieur |

954| `verbatim_prompts` | `bool` | `False` | Livrer chaque invite telle qu'écrite. Le SDK envoie chaque message utilisateur avec `client_composed` défini à `True`. Voir [`client_composed`](/docs/fr/agent-sdk/typescript#sdkusermessage) pour ce que Claude Code ignore sur ces messages. Utilisez cette option quand votre texte d'invite inclut du contenu que l'utilisateur final n'a pas tapé. Pour un contrôle par tour, laissez-le désactivé et définissez `"client_composed": True` sur les messages diffusés individuels à la place. Pendant que l'option est activée, le SDK écrase toute valeur `client_composed` que vous définissez. Nécessite Python Agent SDK 0.2.158 ou ultérieur et Claude Code v2.1.248 ou ultérieur ; le CLI fourni avec ces versions du SDK satisfait l'exigence de Claude Code |954| `verbatim_prompts` | `bool` | `False` | Livrer chaque prompt tel qu'écrit. Le SDK envoie chaque message utilisateur avec `client_composed` défini à `True`. Voir [`client_composed`](/docs/fr/agent-sdk/typescript#sdkusermessage) pour ce que Claude Code ignore sur ces messages. Utilisez cette option quand le texte de votre prompt inclut du contenu que l'utilisateur final n'a pas tapé. Pour un contrôle par tour, laissez-la désactivée et définissez plutôt `"client_composed": True` sur les messages individuels envoyés en streaming. Pendant que l'option est activée, le SDK écrase toute valeur `client_composed` que vous définissez. Nécessite Python Agent SDK 0.2.158 ou ultérieur et Claude Code v2.1.248 ou ultérieur ; le CLI fourni avec ces versions du SDK satisfait l'exigence de Claude Code |

955| `fork_session` | `bool` | `False` | Lors de la reprise avec `resume`, bifurquer vers un nouvel ID de session au lieu de continuer la session d'origine |955| `fork_session` | `bool` | `False` | Lors de la reprise avec `resume`, bifurquer vers un nouvel ID de session au lieu de continuer la session d'origine |

956| `resume_session_at` | `str \| None` | `None` | Lors de la reprise, charger la conversation uniquement jusqu'à et y compris le message avec cet UUID. Utilisez avec `resume`, et généralement `fork_session`, pour brancher à partir d'un point antérieur. Nécessite Python Agent SDK 0.2.137 ou ultérieur |956| `resume_session_at` | `str \| None` | `None` | Lors de la reprise, charger la conversation uniquement jusqu'à et y compris le message avec cet UUID. Utilisez avec `resume`, et généralement `fork_session`, pour créer une branche à partir d'un point antérieur. Nécessite Python Agent SDK 0.2.137 ou ultérieur |

957| `resume_drops_turn` | `str \| None` | `None` | UUID de l'invite utilisateur dont le tour une troncature `resume_session_at` rejette. Quand défini, le CLI refuse la reprise si la plage rejetée contient des entrées non attribuables à ce tour. Nécessite Python Agent SDK 0.2.137 ou ultérieur et Claude Code v2.1.223 ou ultérieur ; le CLI fourni avec ces versions du SDK satisfait l'exigence de Claude Code |957| `resume_drops_turn` | `str \| None` | `None` | UUID du prompt utilisateur dont le tour est rejeté par une troncature `resume_session_at`. Quand défini, le CLI refuse la reprise si la plage rejetée contient des entrées non attribuables à ce tour. Nécessite Python Agent SDK 0.2.137 ou ultérieur et Claude Code v2.1.223 ou ultérieur ; le CLI fourni avec ces versions du SDK satisfait l'exigence de Claude Code |

958| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Sous-agents définis par programmation |958| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Sous-agents définis par programmation |

959| `plugins` | `list[SdkPluginConfig]` | `[]` | Charger des plugins personnalisés à partir de chemins locaux. Voir [Plugins](/docs/fr/agent-sdk/plugins) pour les détails |959| `plugins` | `list[SdkPluginConfig]` | `[]` | Charger des plugins personnalisés à partir de chemins locaux. Voir [Plugins](/docs/fr/agent-sdk/plugins) pour les détails |

960| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurer le comportement du sandbox par programmation. Voir [Paramètres du sandbox](#sandboxsettings) pour les détails |960| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurer le comportement du sandbox par programmation. Voir [Paramètres du sandbox](#sandboxsettings) pour les détails |

961| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Contrôler quels paramètres du système de fichiers charger. Passez `[]` pour désactiver les paramètres utilisateur, projet et locaux. Avec `skills` défini et ce champ non défini, seules les sources utilisateur et projet se chargent. Définissez `setting_sources` explicitement pour conserver les paramètres locaux. La politique gérée par le point de terminaison se charge indépendamment ; les paramètres gérés par le serveur sont récupérés quand la session s'authentifie avec une credential d'organisation sur une [configuration éligible](/docs/fr/server-managed-settings#platform-availability). Pour les entrées lues indépendamment de cette option, voir [Ce que settingSources ne contrôle pas](/docs/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) |961| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Contrôler quels paramètres du système de fichiers charger. Passez `[]` pour désactiver les paramètres utilisateur, projet et locaux. Avec `skills` défini et ce champ non défini, seules les sources utilisateur et projet se chargent. Définissez `setting_sources` explicitement pour conserver les paramètres locaux. La politique gérée par le point de terminaison se charge indépendamment ; les paramètres gérés par le serveur sont récupérés quand la session s'authentifie avec des identifiants d'organisation sur une [configuration éligible](/docs/fr/server-managed-settings#platform-availability). Pour les entrées lues indépendamment de cette option, voir [Ce que settingSources ne contrôle pas](/docs/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

962| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Compétences disponibles pour la session. Passez `"all"` pour activer chaque compétence découverte, ou une liste de noms de compétences. Passez uniquement les noms exacts. Le SDK rejette les noms mal formés et de forme générique avec une `ValueError` avant de démarrer le processus Claude Code ; cette vérification nécessite Python Agent SDK 0.2.129 ou ultérieur. Quand défini, le SDK ajoute l'outil Skill à `allowed_tools` automatiquement. Si vous passez également `tools`, incluez `"Skill"` dans cette liste. Voir [Compétences](/docs/fr/agent-sdk/skills) |962| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills disponibles pour la session. Passez `"all"` pour activer chaque skill découvert, ou une liste de noms de skills. Passez uniquement les noms exacts. Le SDK rejette les noms mal formés et de forme générique avec une `ValueError` avant de démarrer le processus Claude Code ; cette vérification nécessite Python Agent SDK 0.2.129 ou ultérieur. Quand défini, le SDK ajoute l'outil Skill à `allowed_tools` automatiquement. Si vous passez également `tools`, incluez `"Skill"` dans cette liste. Voir [Skills](/docs/fr/agent-sdk/skills) |

963| `max_thinking_tokens` | `int \| None` | `None` | *Déprécié* - Nombre maximum de tokens pour les blocs de réflexion. Utilisez `thinking` à la place |963| `max_thinking_tokens` | `int \| None` | `None` | *Déprécié* - Nombre maximum de tokens pour les blocs de réflexion. Utilisez `thinking` à la place |

964| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Contrôle le comportement de la réflexion étendue. Prend la priorité sur `max_thinking_tokens` |964| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Contrôle le comportement de la réflexion étendue. A priorité sur `max_thinking_tokens` |

965| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Niveau d'effort pour la profondeur de réflexion. Voir [ajuster le niveau d'effort](/docs/fr/model-config#adjust-effort-level) |965| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Niveau d'effort pour la profondeur de réflexion. Voir [ajuster le niveau d'effort](/docs/fr/model-config#adjust-effort-level) |

966| `session_store` | [`SessionStore`](/docs/fr/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Refléter les transcriptions de session vers un backend externe afin qu'un autre hôte puisse les reprendre. Voir [Persister les sessions vers un stockage externe](/docs/fr/agent-sdk/session-storage) |966| `session_store` | [`SessionStore`](/docs/fr/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Refléter les transcriptions de session vers un backend externe afin qu'un autre hôte puisse les reprendre. Voir [Persister les sessions vers un stockage externe](/docs/fr/agent-sdk/session-storage) |

967| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quand vider les entrées de transcription refléchies vers `session_store`. `"batched"` vide une fois par tour ou quand le tampon se remplit ; `"eager"` déclenche un vidage en arrière-plan après chaque frame. Ignoré quand `session_store` est `None` |967| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quand vider les entrées de transcription reflétées vers `session_store`. `"batched"` vide une fois par tour ou quand le tampon se remplit ; `"eager"` déclenche un vidage en arrière-plan après chaque frame. Ignoré quand `session_store` est `None` |

968| `load_timeout_ms` | `int` | `60000` | Délai d'attente par appel pour `session_store.load()` et `list_subkeys()` lors de la matérialisation de la reprise, en millisecondes |968| `load_timeout_ms` | `int` | `60000` | Délai d'attente par appel pour `session_store.load()` et `list_subkeys()` lors de la matérialisation de la reprise, en millisecondes |

969| `task_budget` | `TaskBudget \| None` | `None` | Budget de tokens côté API. Envoyé en tant que `output_config.task_budget` avec l'en-tête bêta `task-budgets-2026-03-13`. Passez `{"total": <int>}`. |969| `task_budget` | `TaskBudget \| None` | `None` | Budget de tokens côté API. Envoyé en tant que `output_config.task_budget` avec l'en-tête bêta `task-budgets-2026-03-13`. Passez `{"total": <int>}`. |

970 970 


987```987```

988 988 

989* `API_TIMEOUT_MS` : délai d'attente par requête sur le client Anthropic, en millisecondes. Par défaut `600000`. S'applique à la boucle principale et à tous les sous-agents.989* `API_TIMEOUT_MS` : délai d'attente par requête sur le client Anthropic, en millisecondes. Par défaut `600000`. S'applique à la boucle principale et à tous les sous-agents.

990* `CLAUDE_CODE_MAX_RETRIES` : nombre maximum de tentatives d'API. Par défaut `10`, plafonné à `15`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire cas de temps mural est à peu près `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff. Pour les exécutions sans surveillance qui doivent attendre les pannes plus longues, définissez [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/fr/errors#tune-retry-behavior) : il réessaie les erreurs de capacité transitoires indéfiniment et, sur Claude Code v2.1.199 ou ultérieur, augmente la valeur par défaut pour les autres erreurs transitoires à `300` et supprime le plafond sur cette variable.990* `CLAUDE_CODE_MAX_RETRIES` : nombre maximum de nouvelles tentatives d'API. Par défaut `10`, plafonné à `15`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire cas de temps mural est à peu près `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff. Pour les exécutions sans surveillance qui doivent attendre la fin de pannes plus longues, définissez [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/fr/errors#tune-retry-behavior) : il réessaie les erreurs de capacité transitoires indéfiniment et, sur Claude Code v2.1.199 ou ultérieur, augmente la valeur par défaut pour les autres erreurs transitoires à `300` et supprime le plafond sur cette variable.

991* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : chien de garde de blocage pour les sous-agents. Pendant que le chien de garde de flux est activé, la valeur par défaut est `CLAUDE_STREAM_IDLE_TIMEOUT_MS` plus 5 minutes, ce qui donne `600000` sauf si vous augmentez cette variable. Avec le chien de garde de flux désactivé, la valeur par défaut est `600000`. Avant v2.1.257, la valeur par défaut était toujours `600000`.991* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : chien de garde de blocage pour les sous-agents. Pendant que le chien de garde de flux est activé, la valeur par défaut est `CLAUDE_STREAM_IDLE_TIMEOUT_MS` plus 5 minutes, ce qui donne `600000` sauf si vous augmentez cette variable. Avec le chien de garde de flux désactivé, la valeur par défaut est `600000`. Avant v2.1.257, la valeur par défaut était toujours `600000`.

992 992 

993 Le minuteur se réinitialise à chaque événement de flux. En cas de blocage, Claude Code abandonne le sous-agent et signale le blocage au parent. Pour un sous-agent en arrière-plan, il marque également la tâche comme échouée et joint tout résultat partiel.993 Le minuteur se réinitialise à chaque événement de flux. En cas de blocage, Claude Code abandonne le sous-agent et signale le blocage au parent. Pour un sous-agent en arrière-plan, il marque également la tâche comme échouée et joint tout résultat partiel.

994* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : chien de garde de flux qui abandonne la requête quand les en-têtes sont arrivés mais que le corps de la réponse cesse de diffuser. Le chien de garde est activé par défaut pour tous les fournisseurs ; définissez `CLAUDE_ENABLE_STREAM_WATCHDOG=0` pour le désactiver. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` par défaut à `300000` et est limité à ce minimum. Après l'abandon, [Tentatives automatiques](/docs/fr/errors#automatic-retries) couvre ce que Claude Code fait, en fonction de la progression de la réponse.994* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : chien de garde de flux qui abandonne la requête quand les en-têtes sont arrivés mais que le corps de la réponse cesse d'être envoyé en streaming. Le chien de garde est activé par défaut pour tous les fournisseurs ; définissez `CLAUDE_ENABLE_STREAM_WATCHDOG=0` pour le désactiver. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` vaut par défaut `300000` et est limité à ce minimum. Après l'abandon, [Nouvelles tentatives automatiques](/docs/fr/errors#automatic-retries) décrit ce que fait Claude Code, en fonction de la progression de la réponse.

995 995 

996 Pendant que le chien de garde attend une réponse qu'une passerelle derrière `ANTHROPIC_BASE_URL` maintient ouverte avec des pings de maintien de connexion, un hôte qui définit `include_partial_messages` continue de recevoir des messages [`StreamEvent`](#streamevent) de `ping`. Lisez ces frames comme une vivacité plutôt que de chronométrer la session sur le silence. Avant v2.1.257, les frames s'arrêtaient 5 minutes après le dernier événement de flux réel.996 Pendant que le chien de garde attend une réponse qu'une passerelle derrière `ANTHROPIC_BASE_URL` maintient ouverte avec des pings de maintien de connexion, un hôte qui définit `include_partial_messages` continue de recevoir des messages [`StreamEvent`](#streamevent) de `ping`. Interprétez ces frames comme un signe d'activité plutôt que de faire expirer la session en cas de silence. Avant v2.1.257, les frames s'arrêtaient 5 minutes après le dernier événement de flux réel.

997 997 

998<h3 id="outputformat">998<h3 id="outputformat">

999 `OutputFormat`999 `OutputFormat`


1034| `type` | Yes | Doit être `"preset"` pour utiliser un prompt système prédéfini |1034| `type` | Yes | Doit être `"preset"` pour utiliser un prompt système prédéfini |

1035| `preset` | Yes | Doit être `"claude_code"` pour utiliser le prompt système de Claude Code |1035| `preset` | Yes | Doit être `"claude_code"` pour utiliser le prompt système de Claude Code |

1036| `append` | No | Instructions supplémentaires à ajouter au prompt système prédéfini |1036| `append` | No | Instructions supplémentaires à ajouter au prompt système prédéfini |

1037| `exclude_dynamic_sections` | No | Déplacer le contexte par session tel que le répertoire de travail, le drapeau du dépôt git, et les chemins de mémoire automatique du prompt système vers le premier message utilisateur. Améliore la réutilisation du cache de prompt entre les utilisateurs et les machines. Voir [Modifier les prompts système](/docs/fr/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1037| `exclude_dynamic_sections` | No | Déplacer le contexte propre à chaque utilisateur, tel que l'emplacement de la mémoire automatique, du prompt système vers le premier message utilisateur. Améliore la réutilisation du cache de prompt entre les utilisateurs et les machines. Voir [Modifier les prompts système](/docs/fr/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |

1038| `snapshot` | No | Définissez à `False` pour reconstruire le prompt système à chaque requête au lieu de [réutiliser le prompt que la session a enregistré à sa première requête](/docs/fr/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Nécessite `claude-agent-sdk` v0.2.153 ou ultérieur |1038| `snapshot` | No | Définissez à `False` pour reconstruire le prompt système à chaque requête au lieu de [réutiliser le prompt que la session a enregistré à sa première requête](/docs/fr/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Nécessite `claude-agent-sdk` v0.2.153 ou ultérieur |

1039 1039 

1040<h3 id="systempromptcustom">1040<h3 id="systempromptcustom">


1060 `SystemPromptFile`1060 `SystemPromptFile`

1061</h3>1061</h3>

1062 1062 

1063Configuration pour charger un prompt système personnalisé à partir d'un fichier au lieu de le passer en tant que chaîne. Le SDK mappe ceci au drapeau CLI [`--system-prompt-file`](/docs/fr/cli-reference#system-prompt-flags). Utilisez la forme fichier quand le prompt est volumineux : le SDK transmet un `system_prompt` chaîne sur l'argv du sous-processus CLI, qui est soumis aux limites de longueur de ligne de commande du système d'exploitation avant que le SDK n'envoie une requête API. Sur Linux, un seul argument plus long que environ 128 KB échoue au lancement du processus avec `Argument list too long`. Sur Windows, la ligne de commande entière est plafonnée à environ 32 KB, donc la forme chaîne échoue à un seuil inférieur.1063Configuration pour charger un prompt système personnalisé à partir d'un fichier au lieu de le passer en tant que chaîne. Le SDK mappe ceci au flag CLI [`--system-prompt-file`](/docs/fr/cli-reference#system-prompt-flags). Utilisez la forme fichier quand le prompt est volumineux : le SDK transmet un `system_prompt` chaîne sur l'argv du sous-processus CLI, qui est soumis aux limites de longueur de ligne de commande du système d'exploitation avant que le SDK n'envoie une requête API. Sur Linux, un seul argument plus long qu'environ 128 KB échoue au lancement du processus avec `Argument list too long`. Sur Windows, la ligne de commande entière est plafonnée à environ 32 KB, donc la forme chaîne échoue à un seuil inférieur.

1064 1064 

1065```python theme={null}1065```python theme={null}

1066class SystemPromptFile(TypedDict):1066class SystemPromptFile(TypedDict):


1077 `SettingSource`1077 `SettingSource`

1078</h3>1078</h3>

1079 1079 

1080Contrôle quelles sources de configuration basées sur le système de fichiers le SDK charge les paramètres.1080Contrôle à partir de quelles sources de configuration basées sur le système de fichiers le SDK charge les paramètres.

1081 1081 

1082```python theme={null}1082```python theme={null}

1083SettingSource = Literal["user", "project", "local"]1083SettingSource = Literal["user", "project", "local"]


1093 Comportement par défaut1093 Comportement par défaut

1094</h4>1094</h4>

1095 1095 

1096Quand `setting_sources` est omis ou `None` et `skills` n'est pas défini, `query()` charge les mêmes paramètres du système de fichiers que le CLI Claude Code : utilisateur, projet et local. Avec `skills` défini, la ligne [`setting_sources`](#claudeagentoptions) décrit la valeur par défaut actuelle. La politique gérée par le point de terminaison est chargée dans tous les cas ; les paramètres gérés par le serveur sont récupérés quand la session s'authentifie avec une credential d'organisation sur une [configuration éligible](/docs/fr/server-managed-settings#platform-availability). Pour plus d'informations, voir [Ce que settingSources ne contrôle pas](/docs/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control).1096Quand `setting_sources` est omis ou `None` et `skills` n'est pas défini, `query()` charge les mêmes paramètres du système de fichiers que le CLI Claude Code : utilisateur, projet et local. Avec `skills` défini, la ligne [`setting_sources`](#claudeagentoptions) décrit la valeur par défaut actuelle. La politique gérée par le point de terminaison est chargée dans tous les cas ; les paramètres gérés par le serveur sont récupérés quand la session s'authentifie avec des identifiants d'organisation sur une [configuration éligible](/docs/fr/server-managed-settings#platform-availability). Pour plus d'informations, voir [Ce que settingSources ne contrôle pas](/docs/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control).

1097 1097 

1098<h4 id="why-use-setting_sources">1098<h4 id="why-use-setting_sources">

1099 Pourquoi utiliser setting\_sources1099 Pourquoi utiliser setting\_sources


1174asyncio.run(main())1174asyncio.run(main())

1175```1175```

1176 1176 

1177Pour charger les instructions de projet CLAUDE.md, incluez `"project"` dans `setting_sources`. Voir [Modifier les prompts système](/docs/fr/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) pour comment le chargement de CLAUDE.md interagit avec les options de prompt système.1177Pour charger les instructions de projet CLAUDE.md, incluez `"project"` dans `setting_sources`. Voir [Modifier les prompts système](/docs/fr/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions) pour savoir comment le chargement de CLAUDE.md interagit avec les options de prompt système.

1178 1178 

1179<h4 id="settings-precedence">1179<h4 id="settings-precedence">

1180 Précédence des paramètres1180 Priorité des paramètres

1181</h4>1181</h4>

1182 1182 

1183Quand plusieurs sources sont chargées, les paramètres sont fusionnés avec cette précédence (la plus haute à la plus basse) :1183Quand plusieurs sources sont chargées, les paramètres sont fusionnés selon cette priorité (de la plus haute à la plus basse) :

1184 1184 

11851. Paramètres locaux (`.claude/settings.local.json`)11851. Paramètres locaux (`.claude/settings.local.json`)

11862. Paramètres de projet (`.claude/settings.json`)11862. Paramètres de projet (`.claude/settings.json`)

11873. Paramètres utilisateur (`~/.claude/settings.json`)11873. Paramètres utilisateur (`~/.claude/settings.json`)

1188 1188 

1189Les options programmatiques telles que `agents`, `allowed_tools`, et `settings` remplacent les paramètres du système de fichiers utilisateur, projet et local. Les paramètres de politique gérée prennent la priorité sur les options programmatiques.1189Les options programmatiques telles que `agents`, `allowed_tools`, et `settings` remplacent les paramètres du système de fichiers utilisateur, projet et local. Les paramètres de politique gérée ont priorité sur les options programmatiques.

1190 1190 

1191<h3 id="agentdefinition">1191<h3 id="agentdefinition">

1192 `AgentDefinition`1192 `AgentDefinition`


1219| `tools` | No | Tableau de noms d'outils autorisés. S'il est omis, hérite de chaque [outil disponible pour les sous-agents](/docs/fr/sub-agents#available-tools) |1219| `tools` | No | Tableau de noms d'outils autorisés. S'il est omis, hérite de chaque [outil disponible pour les sous-agents](/docs/fr/sub-agents#available-tools) |

1220| `disallowedTools` | No | Tableau de noms d'outils à supprimer de l'ensemble d'outils de l'agent. Les motifs au niveau du serveur MCP sont également acceptés : `mcp__server` ou `mcp__server__*` supprime chaque outil de ce serveur, et `mcp__*` supprime chaque outil MCP de n'importe quel serveur |1220| `disallowedTools` | No | Tableau de noms d'outils à supprimer de l'ensemble d'outils de l'agent. Les motifs au niveau du serveur MCP sont également acceptés : `mcp__server` ou `mcp__server__*` supprime chaque outil de ce serveur, et `mcp__*` supprime chaque outil MCP de n'importe quel serveur |

1221| `model` | No | Remplacement de modèle pour cet agent. Accepte un alias tel que `"sonnet"`, `"opus"`, `"haiku"`, ou `"inherit"`, ou un ID de modèle complet. Quand vous l'omettez, Claude Code choisit le modèle dans l'[ordre de modèle des sous-agents](/docs/fr/sub-agents#choose-a-model) |1221| `model` | No | Remplacement de modèle pour cet agent. Accepte un alias tel que `"sonnet"`, `"opus"`, `"haiku"`, ou `"inherit"`, ou un ID de modèle complet. Quand vous l'omettez, Claude Code choisit le modèle dans l'[ordre de modèle des sous-agents](/docs/fr/sub-agents#choose-a-model) |

1222| `skills` | No | Liste de noms de compétences à précharger dans le contexte de l'agent au démarrage. Les compétences non listées restent invocables via l'outil Skill |1222| `skills` | No | Liste de noms de skills à précharger dans le contexte de l'agent au démarrage. Les skills non listés restent invocables via l'outil Skill |

1223| `memory` | No | Source de mémoire pour cet agent : `"user"`, `"project"`, ou `"local"` |1223| `memory` | No | Source de mémoire pour cet agent : `"user"`, `"project"`, ou `"local"` |

1224| `mcpServers` | No | Serveurs MCP disponibles pour cet agent. Chaque entrée est un nom de serveur ou un dict `{name: config}` en ligne |1224| `mcpServers` | No | Serveurs MCP disponibles pour cet agent. Chaque entrée est un nom de serveur ou un dict `{name: config}` en ligne |

1225| `initialPrompt` | No | Auto-soumis en tant que premier tour utilisateur quand cet agent s'exécute en tant qu'agent de thread principal |1225| `initialPrompt` | No | Auto-soumis en tant que premier tour utilisateur quand cet agent s'exécute en tant qu'agent de thread principal |


1245 "plan", # Mode planification - explorer sans éditer1245 "plan", # Mode planification - explorer sans éditer

1246 "dontAsk", # Refuser tout ce qui n'est pas pré-approuvé au lieu de demander1246 "dontAsk", # Refuser tout ce qui n'est pas pré-approuvé au lieu de demander

1247 "bypassPermissions", # Contourner les vérifications de permission ; les règles d'ask explicites demandent toujours (utiliser avec prudence)1247 "bypassPermissions", # Contourner les vérifications de permission ; les règles d'ask explicites demandent toujours (utiliser avec prudence)

1248 "auto", # Le classificateur de modèle approuve ou refuse les invites de permission1248 "auto", # Un classifieur de modèle examine les actions telles que les commandes shell et les requêtes réseau

1249]1249]

1250```1250```

1251 1251 


1285 1285 

1286Retourne un `PermissionResult` (soit `PermissionResultAllow` soit `PermissionResultDeny`).1286Retourne un `PermissionResult` (soit `PermissionResultAllow` soit `PermissionResultDeny`).

1287 1287 

1288Le rappel est le remplacement SDK pour l'invite de permission interactive : il est invoqué uniquement quand le [flux d'évaluation de permission](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) aboutit à une invite. Les appels d'outil déjà approuvés par une entrée `allowed_tools`, une règle d'autorisation de paramètres, ou le mode de permission, tel que `acceptEdits` ou `bypassPermissions`, ne l'invoquent jamais. Pour contrôler chaque appel d'outil, utilisez un hook [`PreToolUse`](/docs/fr/agent-sdk/hooks) à la place.1288Le rappel est le remplacement SDK de la demande de permission interactive : il est invoqué uniquement quand le [flux d'évaluation des permissions](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) aboutit à une demande de permission. Les appels d'outils déjà approuvés par une entrée `allowed_tools`, une règle d'autorisation des paramètres, ou le mode de permission, tel que `acceptEdits` ou `bypassPermissions`, ne l'invoquent jamais. Pour contrôler chaque appel d'outil, utilisez plutôt un [hook `PreToolUse`](/docs/fr/agent-sdk/hooks).

1289 1289 

1290Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves) ; voir [Comment les permissions sont évaluées](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) pour lesquelles d'entre elles atteignent le rappel et ce qui se passe en mode `dontAsk` et `auto`.1290Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves) ; voir [Comment les permissions sont évaluées](/docs/fr/agent-sdk/permissions#how-permissions-are-evaluated) pour savoir lesquelles d'entre elles atteignent le rappel et ce qui se passe en mode `dontAsk` et `auto`.

1291 1291 

1292<h3 id="toolpermissioncontext">1292<h3 id="toolpermissioncontext">

1293 `ToolPermissionContext`1293 `ToolPermissionContext`


1312| Field | Type | Description |1312| Field | Type | Description |

1313| :- | :- | :- |1313| :- | :- | :- |

1314| `signal` | `Any \| None` | Réservé pour le support futur du signal d'abandon |1314| `signal` | `Any \| None` | Réservé pour le support futur du signal d'abandon |

1315| `suggestions` | `list[PermissionUpdate]` | Suggestions de mise à jour de permission du CLI. Les invites Bash incluent une suggestion avec la destination `localSettings`, donc retourner cela dans `updated_permissions` écrit la règle à `.claude/settings.local.json` et persiste entre les sessions. |1315| `suggestions` | `list[PermissionUpdate]` | Suggestions de mise à jour de permission du CLI. Les demandes de permission Bash incluent une suggestion avec la destination `localSettings`, donc la retourner dans `updated_permissions` écrit la règle dans `.claude/settings.local.json` et persiste entre les sessions. |

1316| `tool_use_id` | `str \| None` | Identifiant de l'appel d'outil spécifique pour lequel cette invite est. Toujours rempli quand livré à `can_use_tool` |1316| `tool_use_id` | `str \| None` | Identifiant de l'appel d'outil spécifique concerné par cette demande de permission. Toujours rempli quand livré à `can_use_tool` |

1317| `agent_id` | `str \| None` | ID du sous-agent quand l'appel provient d'un sous-agent ; `None` pour l'agent principal |1317| `agent_id` | `str \| None` | ID du sous-agent quand l'appel provient d'un sous-agent ; `None` pour l'agent principal |

1318| `blocked_path` | `str \| None` | Chemin de fichier qui a déclenché la demande de permission, le cas échéant. Par exemple, quand une commande Bash essaie d'accéder à un chemin en dehors des répertoires autorisés |1318| `blocked_path` | `str \| None` | Chemin de fichier qui a déclenché la demande de permission, le cas échéant. Par exemple, quand une commande Bash essaie d'accéder à un chemin en dehors des répertoires autorisés |

1319| `decision_reason` | `str \| None` | Raison pour laquelle cette demande de permission a été déclenchée. Transmise d'un hook PreToolUse dont `permissionDecisionReason` quand le hook a retourné `"ask"` |1319| `decision_reason` | `str \| None` | Raison pour laquelle cette demande de permission a été déclenchée. Transmise depuis le `permissionDecisionReason` d'un hook PreToolUse quand le hook a retourné `"ask"` |

1320| `title` | `str \| None` | Phrase d'invite de permission complète, telle que `Claude wants to read foo.txt`. Utilisez comme texte d'invite principal quand présent |1320| `title` | `str \| None` | Phrase complète de la demande de permission, telle que `Claude wants to read foo.txt`. Utilisez-la comme texte principal de la demande quand elle est présente |

1321| `display_name` | `str \| None` | Phrase nominale courte pour l'action d'outil, telle que `Read file`, appropriée pour les étiquettes de bouton |1321| `display_name` | `str \| None` | Phrase nominale courte pour l'action d'outil, telle que `Read file`, appropriée pour les étiquettes de bouton |

1322| `description` | `str \| None` | Sous-titre lisible par l'homme pour l'interface utilisateur de permission |1322| `description` | `str \| None` | Sous-titre lisible par l'homme pour l'interface utilisateur de permission |

1323 1323 


1465| `enabled` | `type`, `budget_tokens`, `display` | Activer la réflexion avec un budget de tokens spécifique |1465| `enabled` | `type`, `budget_tokens`, `display` | Activer la réflexion avec un budget de tokens spécifique |

1466| `disabled` | `type` | Désactiver la réflexion |1466| `disabled` | `type` | Désactiver la réflexion |

1467 1467 

1468Le champ `display` optionnel contrôle si le texte de réflexion est retourné `"summarized"` ou `"omitted"`. Sur Claude Opus 4.7 et ultérieur, la valeur par défaut de l'API est `"omitted"`, donc définissez `"summarized"` pour recevoir le contenu de réflexion dans les sorties [`ThinkingBlock`](#thinkingblock). Claude Code n'envoie pas `display` à Amazon Bedrock ou à la plateforme d'agent de Google Cloud, donc sur ces fournisseurs Opus 4.7 et ultérieur retournent des sorties `ThinkingBlock` vides même quand vous définissez `display` à `"summarized"`.1468Le champ `display` optionnel contrôle si le texte de réflexion est retourné `"summarized"` ou `"omitted"`. Sur Claude Opus 4.7 et ultérieur, la valeur par défaut de l'API est `"omitted"`, donc définissez `"summarized"` pour recevoir le contenu de réflexion dans les sorties [`ThinkingBlock`](#thinkingblock). Claude Code omet `display` des requêtes envoyées à certains fournisseurs, tels qu'Amazon Bedrock et Agent Platform de Google Cloud. Sur ces fournisseurs, Opus 4.7 et ultérieur retournent des sorties `ThinkingBlock` vides même quand vous définissez `display` à `"summarized"`.

1469 1469 

1470Parce que ce sont des classes `TypedDict`, ce sont des dicts simples à l'exécution. Construisez-les soit comme des littéraux dict soit appelez la classe comme un constructeur ; les deux produisent un `dict`. Accédez aux champs avec `config["budget_tokens"]`, pas `config.budget_tokens` :1470Parce que ce sont des classes `TypedDict`, ce sont des dicts simples à l'exécution. Construisez-les soit comme des littéraux dict soit appelez la classe comme un constructeur ; les deux produisent un `dict`. Accédez aux champs avec `config["budget_tokens"]`, pas `config.budget_tokens` :

1471 1471 


1660 apiUsage: NotRequired[dict[str, Any] | None]1660 apiUsage: NotRequired[dict[str, Any] | None]

1661```1661```

1662 1662 

1663Chaque entrée `ContextUsageCategory` porte `name`, `tokens`, `color`, et un drapeau optionnel `isDeferred`. `totalTokens` est l'utilisation de contexte actuelle de la session, et `maxTokens` est la fenêtre contre laquelle l'utilisation est mesurée. Cette fenêtre est la fenêtre de contexte du modèle, ou la fenêtre de compaction automatique inférieure quand une s'applique, et `rawMaxTokens` porte la même valeur que `maxTokens`. `apiUsage` contient l'utilisation de la dernière réponse API, pas un total cumulé pour la session. Claude Code laisse les clés optionnelles `deferredBuiltinTools`, `systemTools`, et `systemPromptSections` non définies, donc attendez-vous à ce qu'elles soient absentes même si le type les déclare.1663Chaque entrée `ContextUsageCategory` porte `name`, `tokens`, `color`, et un flag optionnel `isDeferred`. `totalTokens` est l'utilisation de contexte actuelle de la session, et `maxTokens` est la fenêtre par rapport à laquelle cette utilisation est mesurée. Cette fenêtre est la fenêtre de contexte du modèle, ou la fenêtre de compaction automatique inférieure quand elle s'applique, et `rawMaxTokens` porte la même valeur que `maxTokens`. `apiUsage` contient l'utilisation de la dernière réponse API, pas un total cumulé pour la session. Claude Code laisse les clés optionnelles `deferredBuiltinTools`, `systemTools`, et `systemPromptSections` non définies, donc attendez-vous à ce qu'elles soient absentes même si le type les déclare.

1664 1664 

1665<h3 id="sdkpluginconfig">1665<h3 id="sdkpluginconfig">

1666 `SdkPluginConfig`1666 `SdkPluginConfig`


1840 1840 

1841Plusieurs champs portent des détails de diagnostic sur la façon dont la conversation s'est terminée :1841Plusieurs champs portent des détails de diagnostic sur la façon dont la conversation s'est terminée :

1842 1842 

1843* `is_error` : `True` quand la conversation s'est terminée dans un état d'erreur. Toujours `True` sur les sous-types `error_*`. Sur `subtype="success"` c'est `True` quand la dernière demande de modèle a échoué, ce qui signifie que la boucle d'agent s'est terminée mais le dernier appel API a retourné une erreur.1843* `is_error` : `True` quand la conversation s'est terminée dans un état d'erreur. Toujours `True` sur les sous-types `error_*`. Sur `subtype="success"` c'est `True` quand la dernière requête de modèle a échoué, ce qui signifie que la boucle d'agent s'est terminée mais le dernier appel API a retourné une erreur.

1844* `api_error_status` : le code de statut HTTP de l'erreur API terminale. `None` quand le tour s'est terminé sans une. Rempli uniquement sur `subtype="success"`.1844* `api_error_status` : le code de statut HTTP de l'erreur API terminale. `None` quand le tour s'est terminé sans une. Rempli uniquement sur `subtype="success"`.

1845* `result` : texte du message d'assistant final sur `subtype="success"`, ou `None` sur les sous-types `error_*`. Quand `subtype="success"` et `is_error=True`, ceci contient la chaîne d'erreur API si une est disponible mais peut être vide, donc vérifiez `api_error_status` et le contenu `AssistantMessage` précédent pour plus de détails.1845* `result` : texte du message d'assistant final sur `subtype="success"`, ou `None` sur les sous-types `error_*`. Quand `subtype="success"` et `is_error=True`, ceci contient la chaîne d'erreur API si une est disponible mais peut être vide, donc vérifiez `api_error_status` et le contenu `AssistantMessage` précédent pour plus de détails.

1846* `errors` : chaînes d'erreur au niveau de la boucle telles que le message max-turns. Rempli uniquement sur les sous-types `error_*`.1846* `errors` : chaînes d'erreur au niveau de la boucle telles que le message max-turns. Rempli uniquement sur les sous-types `error_*`.

1847* `terminal_reason` : pourquoi la boucle de requête s'est terminée, telle que `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"`, ou `"aborted_tools"`. Une valeur de `"aborted_streaming"` ou `"aborted_tools"` signifie que le tour a été interrompu avant de se terminer. Les causes courantes sont [`interrupt()`](#claudesdkclient) et un rappel de permission retournant [`PermissionResultDeny`](#permissionresultdeny) avec `interrupt=True`. `None` sur les versions CLI qui précèdent le champ, sur les résultats des commandes locales telles que `/voice` ou `/usage`, qui contournent la boucle de requête, ou sur les résultats d'erreur synthétisés émis quand la session échoue fatalement. Reflète le [`SDKResultMessage.terminal_reason`](/docs/fr/agent-sdk/typescript#sdkresultmessage) du SDK TypeScript, qui liste l'ensemble complet des valeurs.1847* `terminal_reason` : pourquoi la boucle de requête s'est terminée, telle que `"completed"`, `"max_turns"`, `"api_error"`, `"aborted_streaming"`, ou `"aborted_tools"`. Une valeur de `"aborted_streaming"` ou `"aborted_tools"` signifie que le tour a été interrompu avant de se terminer. Les causes courantes sont [`interrupt()`](#claudesdkclient) et un rappel de permission retournant [`PermissionResultDeny`](#permissionresultdeny) avec `interrupt=True`. `None` sur les versions CLI qui précèdent le champ, sur les résultats des commandes locales telles que `/voice` ou `/usage`, qui contournent la boucle de requête, ou sur les résultats d'erreur synthétisés émis quand la session échoue fatalement. Reflète le [`SDKResultMessage.terminal_reason`](/docs/fr/agent-sdk/typescript#sdkresultmessage) du SDK TypeScript, qui liste l'ensemble complet des valeurs.

1848* `origin` : origine du message utilisateur qui a déclenché ce tour. En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), vérifiez ceci pour distinguer le résultat de votre propre invite, où `origin` est `None` ou `{"kind": "human"}`, du résultat d'un tour injecté tel qu'une notification de tâche de fond. Nécessite Python Agent SDK 0.2.137 ou ultérieur.1848* `origin` : origine du message utilisateur qui a déclenché ce tour. En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), vérifiez ceci pour distinguer le résultat de votre propre prompt, où `origin` est `None` ou `{"kind": "human"}`, du résultat d'un tour injecté tel qu'une notification de tâche en arrière-plan. Nécessite Python Agent SDK 0.2.137 ou ultérieur.

1849 1849 

1850Le dict `usage` couvre uniquement la boucle d'agent principal et exclut les sous-agents et autres appels de modèle imbriqués ou auxiliaires. En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), les valeurs sont par tour. Préférez `model_usage` pour la comptabilité des tokens et des coûts. Le dict `usage` contient les clés suivantes quand présentes :1850Le dict `usage` couvre uniquement la boucle d'agent principal et exclut les sous-agents et autres appels de modèle imbriqués ou auxiliaires. En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), les valeurs sont par tour. Préférez `model_usage` pour la comptabilité des tokens et des coûts. Le dict `usage` contient les clés suivantes quand présentes :

1851 1851 


1856| `cache_creation_input_tokens` | `int` | Tokens utilisés pour créer de nouvelles entrées de cache. |1856| `cache_creation_input_tokens` | `int` | Tokens utilisés pour créer de nouvelles entrées de cache. |

1857| `cache_read_input_tokens` | `int` | Tokens lus à partir des entrées de cache existantes. |1857| `cache_read_input_tokens` | `int` | Tokens lus à partir des entrées de cache existantes. |

1858 1858 

1859Le dict `model_usage` mappe les noms de modèles à l'utilisation par modèle. Il couvre chaque appel de modèle effectué via le pipeline de requête : la boucle principale, les sous-agents, et les appels internes tels que la compaction et les agents Workflow. Les appels d'assistance en dehors de ce pipeline, tels que le classificateur de permission et les demandes de comptage de tokens, sont exclus de `model_usage`. Traitez `model_usage` comme une estimation, pas une déclaration de facturation.1859Le dict `model_usage` mappe les noms de modèles à l'utilisation par modèle. Il couvre chaque appel de modèle effectué via le pipeline de requête : la boucle principale, les sous-agents, et les appels internes tels que la compaction et les agents Workflow. Les appels d'assistance en dehors de ce pipeline, tels que le classificateur de permission et les requêtes de comptage de tokens, sont exclus de `model_usage`. Traitez `model_usage` comme une estimation, pas une déclaration de facturation.

1860 1860 

1861En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), `model_usage` et `total_cost_usd` sont cumulatifs entre les tours, donc lisez le dernier résultat plutôt que de faire la somme entre les résultats. Un appel qui reprend une session compte également les [totaux restaurés à partir des appels antérieurs de la session](/docs/fr/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Voir [Suivre les coûts en mode d'entrée en streaming](/docs/fr/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) pour les réinitialisations et [Récupérer les totaux après un crash de session](/docs/fr/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) pour les résultats remis à zéro.1861En [mode d'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), `model_usage` et `total_cost_usd` sont cumulatifs entre les tours, donc lisez le dernier résultat plutôt que de faire la somme entre les résultats. Un appel qui reprend une session compte également les [totaux restaurés à partir des appels antérieurs de la session](/docs/fr/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Voir [Suivre les coûts en mode d'entrée en streaming](/docs/fr/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) pour les réinitialisations et [Récupérer les totaux après un crash de session](/docs/fr/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) pour les résultats remis à zéro.

1862 1862 


1875| `maxOutputTokens` | `int` | Limite de tokens de sortie maximum pour ce modèle. |1875| `maxOutputTokens` | `int` | Limite de tokens de sortie maximum pour ce modèle. |

1876| `canonicalModel` | `str` | ID de modèle canonique utilisé pour la recherche de tarification. Peut différer de la chaîne de modèle brute par laquelle l'entrée est indexée, telle qu'un ID spécifique au fournisseur ou un alias. Pas toujours présent. |1876| `canonicalModel` | `str` | ID de modèle canonique utilisé pour la recherche de tarification. Peut différer de la chaîne de modèle brute par laquelle l'entrée est indexée, telle qu'un ID spécifique au fournisseur ou un alias. Pas toujours présent. |

1877| `provider` | `str` | Fournisseur d'API qui a servi ce modèle, tel que `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle`, ou `gateway`. Pas toujours présent. |1877| `provider` | `str` | Fournisseur d'API qui a servi ce modèle, tel que `firstParty`, `bedrock`, `vertex`, `foundry`, `anthropicAws`, `mantle`, ou `gateway`. Pas toujours présent. |

1878| `costBasis` | `str` | Grille tarifaire qui a déterminé le prix de la dernière requête de ce modèle : `list` pour le prix catalogue, `managed` pour une table [`modelPricing`](/docs/fr/settings-reference#modelpricing), ou `unknown` quand aucune ne correspondait à l'ID du modèle. Pas toujours présent, et non déclaré sur le TypedDict, donc lisez-le avec `.get()`. Nécessite Claude Code v2.1.246 ou ultérieur. |

1878 1879 

1879<h3 id="streamevent">1880<h3 id="streamevent">

1880 `StreamEvent`1881 `StreamEvent`


1945 1946 

1946| Champ | Type | Description |1947| Champ | Type | Description |

1947| :- | :- | :- |1948| :- | :- | :- |

1948| `status` | `RateLimitStatus` | Statut actuel. `"allowed_warning"` signifie approcher la limite ; `"rejected"` signifie que la limite a été atteinte |1949| `status` | `RateLimitStatus` | Statut actuel, l'un de `"allowed"`, `"allowed_warning"`, ou `"rejected"`. `"allowed_warning"` signifie approcher la limite ; `"rejected"` signifie que la limite a été atteinte |

1949| `resets_at` | `int \| None` | Timestamp Unix quand la fenêtre de limite de débit se réinitialise |1950| `resets_at` | `int \| None` | Timestamp Unix quand la fenêtre de limite de débit se réinitialise |

1950| `rate_limit_type` | `RateLimitType \| None` | Quelle fenêtre de limite de débit s'applique |1951| `rate_limit_type` | `RateLimitType \| None` | Quelle fenêtre de limite de débit s'applique |

1951| `utilization` | `float \| None` | Fraction de la limite de débit consommée (0,0 à 1,0) |1952| `utilization` | `float \| None` | Fraction de la limite de débit consommée (0,0 à 1,0) |


1978 `TaskStartedMessage`1979 `TaskStartedMessage`

1979</h3>1980</h3>

1980 1981 

1981Émis quand une tâche de fond démarre. Une tâche de fond est tout ce qui est suivi en dehors du tour principal : une commande Bash en arrière-plan, une montre [Monitor](#monitor), un sous-agent généré via l'outil Agent, ou un agent distant. Le champ `task_type` vous dit lequel. Ce nommage n'est pas lié au renommage de l'outil `Task`-à-`Agent`.1982Émis quand une tâche en arrière-plan démarre. Une tâche en arrière-plan est tout ce qui est suivi en dehors du tour principal : une commande Bash en arrière-plan, une surveillance [Monitor](#monitor), un sous-agent généré via l'outil Agent, ou un agent distant. Le champ `task_type` vous dit lequel. Ce nommage n'est pas lié au renommage de l'outil `Task`-à-`Agent`.

1982 1983 

1983```python theme={null}1984```python theme={null}

1984@dataclass1985@dataclass


1998| `uuid` | `str` | Identifiant de message unique |1999| `uuid` | `str` | Identifiant de message unique |

1999| `session_id` | `str` | Identifiant de session |2000| `session_id` | `str` | Identifiant de session |

2000| `tool_use_id` | `str \| None` | ID d'utilisation d'outil associé |2001| `tool_use_id` | `str \| None` | ID d'utilisation d'outil associé |

2001| `task_type` | `str \| None` | Quel type de tâche de fond : `"local_bash"` pour Bash en arrière-plan et les montres Monitor, `"local_agent"`, ou `"remote_agent"` |2002| `task_type` | `str \| None` | Quel type de tâche en arrière-plan : `"local_bash"` pour Bash en arrière-plan et les surveillances Monitor, `"local_agent"`, ou `"remote_agent"` |

2002 2003 

2003<h3 id="taskusage">2004<h3 id="taskusage">

2004 `TaskUsage`2005 `TaskUsage`

2005</h3>2006</h3>

2006 2007 

2007Données de tokens et de timing pour une tâche de fond.2008Données de tokens et de timing pour une tâche en arrière-plan.

2008 2009 

2009```python theme={null}2010```python theme={null}

2010class TaskUsage(TypedDict):2011class TaskUsage(TypedDict):


2017 `TaskProgressMessage`2018 `TaskProgressMessage`

2018</h3>2019</h3>

2019 2020 

2020Émis périodiquement avec les mises à jour de progression pour une tâche de fond en cours d'exécution.2021Émis périodiquement avec les mises à jour de progression pour une tâche en arrière-plan en cours d'exécution.

2021 2022 

2022```python theme={null}2023```python theme={null}

2023@dataclass2024@dataclass


2045 `TaskNotificationMessage`2046 `TaskNotificationMessage`

2046</h3>2047</h3>

2047 2048 

2048Émis quand une tâche de fond se termine, échoue, ou est arrêtée. Les tâches de fond incluent les commandes Bash `run_in_background`, les montres Monitor, et les sous-agents en arrière-plan.2049Émis quand une tâche en arrière-plan se termine, échoue, ou est arrêtée. Les tâches en arrière-plan incluent les commandes Bash `run_in_background`, les surveillances Monitor, et les sous-agents en arrière-plan.

2049 2050 

2050```python theme={null}2051```python theme={null}

2051@dataclass2052@dataclass


2166 """Base error for Claude SDK."""2167 """Base error for Claude SDK."""

2167```2168```

2168 2169 

2169Quand une requête `query()` unique se termine par un résultat d'erreur, par exemple une erreur de limite de tours, le SDK lève une [`ResultError`](#resulterror) après avoir cédé le message de résultat final. Les versions du Python Agent SDK antérieures à 0.2.140 levaient une `Exception` simple qui n'était pas une sous-classe de `ClaudeSDKError`.2170Quand une requête `query()` unique se termine par un résultat d'erreur, par exemple une erreur de limite de tours, le SDK lève une [`ResultError`](#resulterror).

2170 2171 

2171<h3 id="clinotfounderror">2172<h3 id="clinotfounderror">

2172 `CLINotFoundError`2173 `CLINotFoundError`


2216 `ResultError`2217 `ResultError`

2217</h3>2218</h3>

2218 2219 

2219Levée après le [`ResultMessage`](#resultmessage) final quand le processus Claude Code se termine parce que l'exécution s'est terminée par un résultat d'erreur, comme une erreur de limite de tours ou une erreur API. `ResultError` est une sous-classe de `ProcessError`, donc un gestionnaire `except ProcessError` existant la capture également. Ses attributs portent les champs de ce message de résultat, vous pouvez donc vous brancher sur la raison de l'échec de l'exécution sans analyser le texte du message. Nécessite Python Agent SDK 0.2.140 ou version ultérieure.2220Levée quand le processus Claude Code se termine parce que l'exécution s'est terminée par un [message de résultat](#resultmessage) d'erreur, comme une erreur de limite de tours ou une erreur API. `ResultError` est une sous-classe de `ProcessError`, donc un gestionnaire `except ProcessError` existant la capture également. Ses attributs portent les champs de ce message de résultat, vous pouvez donc adapter votre logique selon la raison de l'échec de l'exécution sans analyser le texte du message. Nécessite Python Agent SDK 0.2.140 ou version ultérieure.

2220 2221 

2221```python theme={null}2222```python theme={null}

2222class ResultError(ProcessError):2223class ResultError(ProcessError):


2649 hookEventName: Literal["PostToolUse"]2650 hookEventName: Literal["PostToolUse"]

2650 additionalContext: NotRequired[str]2651 additionalContext: NotRequired[str]

2651 updatedToolOutput: NotRequired[Any]2652 updatedToolOutput: NotRequired[Any]

2652 updatedMCPToolOutput: NotRequired[Any] # Deprecated: use updatedToolOutput, which works for all tools2653 updatedMCPToolOutput: NotRequired[Any] # MCP tools only. Prefer updatedToolOutput, which works for all tools

2653 2654 

2654 2655 

2655class PostToolUseFailureHookSpecificOutput(TypedDict):2656class PostToolUseFailureHookSpecificOutput(TypedDict):


2708 Exemple d'utilisation de hook2709 Exemple d'utilisation de hook

2709</h3>2710</h3>

2710 2711 

2711Cet exemple enregistre deux hooks : l'un qui bloque les commandes bash dangereuses comme `rm -rf /`, et un autre qui enregistre toute l'utilisation d'outils pour l'audit. Le hook de sécurité s'exécute uniquement sur les commandes Bash (via le `matcher`), tandis que le hook de journalisation s'exécute sur tous les outils.2712Cet exemple enregistre deux hooks : l'un qui bloque les commandes Bash dangereuses comme `rm -rf /`, et un autre qui journalise toute l'utilisation d'outils pour l'audit. Le hook de sécurité s'exécute uniquement sur les commandes Bash (via le `matcher`), tandis que le hook de journalisation s'exécute sur tous les outils.

2712 2713 

2713```python theme={null}2714```python theme={null}

2714import asyncio2715import asyncio


2767 Types d'entrée/sortie d'outil2768 Types d'entrée/sortie d'outil

2768</h2>2769</h2>

2769 2770 

2770Documentation des schémas d'entrée/sortie pour tous les outils Claude Code intégrés. Bien que le SDK Python n'exporte pas ceux-ci en tant que types, ils représentent la structure des entrées et sorties d'outils dans les messages.2771Documentation des schémas d'entrée/sortie pour les outils Claude Code intégrés. Bien que le SDK Python n'exporte pas ceux-ci en tant que types, ils représentent la structure des entrées et sorties d'outils dans les messages.

2771 2772 

2772Chaque sortie affichée est la valeur que vous lisez à partir de [`UserMessage.tool_use_result`](#usermessage) pour cet outil. Les noms de clés apparaissent exactement comme Claude Code les émet. Une clé annotée `| None` avec un commentaire « présent quand » ou « optionnel » est omise quand elle ne s'applique pas.2773Chaque sortie affichée est la valeur que vous lisez à partir de [`UserMessage.tool_use_result`](#usermessage) pour cet outil. Les noms de clés apparaissent exactement comme Claude Code les émet. Une clé annotée `| None` avec un commentaire « présent quand » ou « optionnel » est omise quand elle ne s'applique pas.

2773 2774 


3544 TaskOutput3545 TaskOutput

3545</h3>3546</h3>

3546 3547 

3547Supprimé dans Claude Code v2.1.277. Précédemment récupéré la sortie d'une tâche de fond en cours d'exécution ou terminée, avec `BashOutput` accepté comme alias ; Claude lit le fichier de sortie d'une tâche de fond avec `Read` à la place.3548Supprimé dans Claude Code v2.1.277. Récupérait auparavant la sortie d'une tâche en arrière-plan en cours d'exécution ou terminée, avec `BashOutput` accepté comme alias ; Claude lit le fichier de sortie d'une tâche en arrière-plan avec `Read` à la place.

3548 3549 

3549Une entrée `disallowed_tools` ou une règle de refus qui nomme toujours l'un ou l'autre nom est ignorée sans avertissement.3550Une entrée `disallowed_tools` ou une règle de refus qui nomme toujours l'un ou l'autre nom est ignorée sans avertissement.

3550 3551 

Details

60 60 

61Pour utiliser les sorties structurées, définissez un [JSON Schema](https://json-schema.org/understanding-json-schema/about) décrivant la forme des données que vous souhaitez, puis passez-le à `query()` via l'option `outputFormat` (TypeScript) ou `output_format` (Python). Quand l'agent termine, le message de résultat inclut un champ `structured_output` avec des données validées correspondant à votre schéma.61Pour utiliser les sorties structurées, définissez un [JSON Schema](https://json-schema.org/understanding-json-schema/about) décrivant la forme des données que vous souhaitez, puis passez-le à `query()` via l'option `outputFormat` (TypeScript) ou `output_format` (Python). Quand l'agent termine, le message de résultat inclut un champ `structured_output` avec des données validées correspondant à votre schéma.

62 62 

63L'exemple ci-dessous demande à l'agent de rechercher Anthropic et de retourner le nom de l'entreprise, l'année de fondation et le siège social en tant que sortie structurée.63Avant d'exécuter les exemples de cette page, installez le Claude Agent SDK en suivant le [démarrage rapide](/docs/fr/agent-sdk/quickstart#setup). L'exemple ci-dessous demande à l'agent de rechercher Anthropic et de retourner le nom de l'entreprise, l'année de fondation et le siège social en tant que sortie structurée.

64 64 

65<CodeGroup>65<CodeGroup>

66 ```typescript TypeScript theme={null}66 ```typescript TypeScript theme={null}


390 Gestion des erreurs390 Gestion des erreurs

391</h2>391</h2>

392 392 

393La génération de sortie structurée peut échouer quand l'agent ne peut pas produire du JSON valide correspondant à votre schéma. Cela se produit généralement quand le schéma est trop complexe pour la tâche, la tâche elle-même est ambiguë, ou l'agent atteint sa limite de tentatives en essayant de corriger les erreurs de validation. Cela peut aussi se produire sans aucune erreur de validation : un [repli de modèle](/docs/fr/model-config#automatic-model-fallback) peut rétracter une sortie déjà complétée en cours de flux, et si aucune nouvelle tentative ne la remplace, l'exécution se termine avec la même erreur. Vérifiez la liste `errors` du message de résultat pour distinguer les deux causes avant de déboguer votre schéma.393La génération de sortie structurée peut échouer quand l'agent ne peut pas produire du JSON valide correspondant à votre schéma. Cela se produit généralement quand le schéma est trop complexe pour la tâche, la tâche elle-même est ambiguë, ou l'agent atteint sa limite de tentatives en essayant de corriger les erreurs de validation. Cela peut aussi se produire sans aucune erreur de validation : un [basculement vers un modèle de secours](/docs/fr/model-config#automatic-model-fallback) peut rétracter une sortie déjà complétée en cours de flux, et si aucune nouvelle tentative ne la remplace, l'exécution se termine avec la même erreur. Vérifiez la liste `errors` du message de résultat d'erreur pour distinguer les deux causes avant de déboguer votre schéma.

394 394 

395Quand une erreur se produit, le message de résultat a un `subtype` indiquant ce qui s'est mal passé :395Quand une erreur se produit, le message de résultat a un `subtype` indiquant ce qui s'est mal passé :

396 396 

397| Subtype | Signification |397| Subtype | Signification |

398| - | - |398| - | - |

399| `success` | La sortie a été générée et validée avec succès |399| `success` | La sortie a été générée et validée avec succès |

400| `error_max_structured_output_retries` | Aucune sortie valide n'a survécu après plusieurs tentatives (erreurs de validation, ou une rétraction de repli de modèle sans nouvelle tentative réussie) |400| `error_max_structured_output_retries` | Aucune sortie valide ne subsistait après plusieurs tentatives (erreurs de validation, ou une rétraction due au basculement vers un modèle de secours sans nouvelle tentative réussie) |

401 401 

402Un résultat peut aussi se terminer avec le subtype `success` mais sans valeur `structured_output`, par exemple quand l'exécution se termine sans que l'agent produise une sortie structurée. Traitez ce cas comme un échec aussi. L'entrée de dépannage [structured\_output is None but the result says success](/docs/fr/agent-sdk/troubleshooting#structured_output-is-none-but-the-result-says-success) couvre ce cas. L'exemple ci-dessous traite un résultat comme réussi uniquement quand le `subtype` est `success` et `structured_output` est présent, et gère tous les autres résultats comme un échec :402Un résultat peut aussi se terminer avec le subtype `success` mais sans valeur `structured_output`, par exemple quand l'exécution se termine sans que l'agent produise une sortie structurée. Traitez ce cas comme un échec aussi. L'entrée de dépannage [structured\_output is None but the result says success](/docs/fr/agent-sdk/troubleshooting#structured_output-is-none-but-the-result-says-success) couvre ce cas. L'exemple ci-dessous traite un résultat comme réussi uniquement quand le `subtype` est `success` et `structured_output` est présent, et gère tous les autres résultats comme un échec :

403 403 


436 }436 }

437 }437 }

438 } catch (error) {438 } catch (error) {

439 // Une requête query() unique lève une exception après avoir produit un message d'erreur. Si439 // Une requête query() unique lève une exception après avoir produit un résultat d'erreur. Si

440 // l'échec était un message d'erreur, les branches de subtype d'erreur ci-dessus ont440 // l'échec était un résultat d'erreur, les branches de subtype d'erreur ci-dessus ont

441 // déjà été exécutées ; les défaillances de connexion ou de processus ne produisent aucun message de résultat.441 // déjà été exécutées ; les défaillances de connexion ou de processus ne produisent aucun message de résultat.

442 console.log(`Session ended with an error: ${error}`);442 console.log(`Session ended with an error: ${error}`);

443 }443 }


474 else:474 else:

475 print("Run ended without a structured output")475 print("Run ended without a structured output")

476 except Exception as error:476 except Exception as error:

477 # Une requête query() unique lève une exception après avoir produit un message d'erreur. Si477 # Une requête query() unique lève une exception après avoir produit un résultat d'erreur. Si

478 # l'échec était un message d'erreur, les branches de subtype d'erreur ci-dessus ont478 # l'échec était un résultat d'erreur, les branches de subtype d'erreur ci-dessus ont

479 # déjà été exécutées ; les défaillances de connexion ou de processus ne produisent aucun message de résultat.479 # déjà été exécutées ; les défaillances de connexion ou de processus ne produisent aucun message de résultat.

480 print(f"Session ended with an error: {error}")480 print(f"Session ended with an error: {error}")

481 481 


488 488 

489* **Gardez les schémas ciblés.** Les schémas profondément imbriqués avec de nombreux champs requis sont plus difficiles à satisfaire. Commencez simple et ajoutez de la complexité au besoin.489* **Gardez les schémas ciblés.** Les schémas profondément imbriqués avec de nombreux champs requis sont plus difficiles à satisfaire. Commencez simple et ajoutez de la complexité au besoin.

490* **Faites correspondre le schéma à la tâche.** Si la tâche pourrait ne pas avoir toutes les informations que votre schéma nécessite, rendez ces champs optionnels.490* **Faites correspondre le schéma à la tâche.** Si la tâche pourrait ne pas avoir toutes les informations que votre schéma nécessite, rendez ces champs optionnels.

491* **Utilisez des invites claires.** Les invites ambiguës rendent plus difficile pour l'agent de savoir quelle sortie produire.491* **Utilisez des prompts clairs.** Les prompts ambigus rendent plus difficile pour l'agent de savoir quelle sortie produire.

492 492 

493<h2 id="related-resources">493<h2 id="related-resources">

494 Ressources connexes494 Ressources connexes

Details

181});181});

182 182 

183spare.claimed.catch((error: Error) => {183spare.claimed.catch((error: Error) => {

184 // À moins que le message commence par « option_not_applied », l'invite n'a pas été exécutée :184 // À moins que le message commence par « option_not_applied », le prompt n'a pas été exécuté :

185 // démarrez cette session avec query() à la place185 // démarrez cette session avec query() à la place

186 console.error("Claim failed:", error.message);186 console.error("Claim failed:", error.message);

187});187});

188 188 

189for await (const message of claimedQuery) {189try {

190 for await (const message of claimedQuery) {

190 console.log(message);191 console.log(message);

192 }

193} catch (error) {

194 // Après une réclamation refusée, la requête réclamée lève une exception une fois qu'elle a produit le résultat d'erreur

195 console.error(`Session ended with an error: ${error}`);

191}196}

192```197```

193 198 


717| `accountInfo()` | Renvoie les informations du compte |722| `accountInfo()` | Renvoie les informations du compte |

718| `reconnectMcpServer(serverName)` | Reconnecter un serveur MCP par son nom. Si le nom correspond également à une entrée d'un fichier de paramètres tel que `.mcp.json` ou `~/.claude.json`, Claude Code reconnecte le serveur que vous avez configuré via [`mcpServers`](#options) ou `setMcpServers()`, et non l'entrée du fichier de paramètres. Cet ordre de résolution nécessite Claude Code v2.1.257 ou ultérieure |723| `reconnectMcpServer(serverName)` | Reconnecter un serveur MCP par son nom. Si le nom correspond également à une entrée d'un fichier de paramètres tel que `.mcp.json` ou `~/.claude.json`, Claude Code reconnecte le serveur que vous avez configuré via [`mcpServers`](#options) ou `setMcpServers()`, et non l'entrée du fichier de paramètres. Cet ordre de résolution nécessite Claude Code v2.1.257 ou ultérieure |

719| `toggleMcpServer(serverName, enabled)` | Activer ou désactiver un serveur MCP par son nom, avec la même résolution de nom que `reconnectMcpServer()`. La désactivation d'un serveur le déconnecte et retire ses outils. Consultez [`toggleMcpServer()`](#togglemcpserver) pour connaître la version de Claude Code requise pour chaque type de serveur |724| `toggleMcpServer(serverName, enabled)` | Activer ou désactiver un serveur MCP par son nom, avec la même résolution de nom que `reconnectMcpServer()`. La désactivation d'un serveur le déconnecte et retire ses outils. Consultez [`toggleMcpServer()`](#togglemcpserver) pour connaître la version de Claude Code requise pour chaque type de serveur |

720| `setMcpServers(servers)` | Remplacer dynamiquement l'ensemble des serveurs MCP de cette session. Se résout avec un [`McpSetServersResult`](#mcpsetserversresult) indiquant quels serveurs ont été ajoutés et retirés, ainsi que les éventuelles erreurs |725| `setMcpServers(servers)` | Remplacer les serveurs MCP gérés par cette méthode : les serveurs ajoutés par son intermédiaire et les [serveurs SDK in-process](#createsdkmcpserver). Se résout avec un [`McpSetServersResult`](#mcpsetserversresult) indiquant les serveurs ajoutés et retirés, ainsi que les éventuelles erreurs ; cette section précise quels autres serveurs restent connectés |

721| `readMcpResource(serverName, uri)` | *Alpha.* Lit une ressource MCP Apps `ui://` depuis un serveur MCP connecté afin que votre application puisse afficher le widget d'un outil. Se résout avec un [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse). Nécessite l'Agent SDK TypeScript v0.3.280 ou ultérieure |726| `readMcpResource(serverName, uri)` | *Alpha.* Lit une ressource MCP Apps `ui://` depuis un serveur MCP connecté afin que votre application puisse afficher le widget d'un outil. Se résout avec un [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse). Nécessite l'Agent SDK TypeScript v0.3.280 ou ultérieure |

722| `streamInput(stream)` | Envoyer en flux des messages d'entrée à la requête pour les conversations multi-tours |727| `streamInput(stream)` | Envoyer en flux des messages d'entrée à la requête pour les conversations multi-tours |

723| `stopTask(taskId)` | Arrêter une tâche en arrière-plan en cours d'exécution par son identifiant |728| `stopTask(taskId)` | Arrêter une tâche en arrière-plan en cours d'exécution par son identifiant |


844 849 

845`options.cwd` est obligatoire. Une réclamation peut également définir `additionalDirectories`, `model`, `permissionMode`, `maxThinkingTokens`, une surcouche de paramètres de flags dans `settings`, `appendSystemPrompt`, `title`, `agents` et des jetons propres à la session dans `env`.850`options.cwd` est obligatoire. Une réclamation peut également définir `additionalDirectories`, `model`, `permissionMode`, `maxThinkingTokens`, une surcouche de paramètres de flags dans `settings`, `appendSystemPrompt`, `title`, `agents` et des jetons propres à la session dans `env`.

846 851 

847Claude Code peut refuser une réclamation, par exemple pour un dossier qui n'existe pas ou dont les paramètres de projet définissent `env`, `agent` ou `model`. Lorsque `claimed` est rejetée avec un message commençant par `option_not_applied`, la session s'exécute sans le `model` ou le `maxThinkingTokens` que vous avez demandé. Après tout autre rejet, votre prompt n'a pas été exécuté ; démarrez donc plutôt la session avec `query()`.852Claude Code peut refuser une réclamation, par exemple pour un dossier qui n'existe pas ou dont les paramètres de projet définissent `env`, `agent` ou `model`. Après un refus, un prompt que `claim()` a déjà envoyé reçoit un résultat d'erreur dont le texte commence par `not_claimed`, puis la requête renvoyée lève une exception. Encapsulez la boucle de la requête dans un bloc try pour continuer au-delà de l'exception. Lorsque `claimed` est rejetée avec un message commençant par `option_not_applied`, la session s'exécute sans le `model` ou le `maxThinkingTokens` que vous avez demandé. Après tout autre rejet, votre prompt n'a pas été exécuté ; démarrez donc plutôt la session avec `query()`.

848 853 

849<h3 id="sdkcontrolinitializeresponse">854<h3 id="sdkcontrolinitializeresponse">

850 `SDKControlInitializeResponse`855 `SDKControlInitializeResponse`


1337| `mcpServer` | `{ name: string; source: string }` | Pour un outil `mcp__*`, le serveur MCP qui le fournit et l'origine de la définition de ce serveur, avec les champs de [`McpServerProvenance`](#mcpserverprovenance). Absent pour les autres outils. Nécessite Agent SDK v0.3.274 ou ultérieur |1342| `mcpServer` | `{ name: string; source: string }` | Pour un outil `mcp__*`, le serveur MCP qui le fournit et l'origine de la définition de ce serveur, avec les champs de [`McpServerProvenance`](#mcpserverprovenance). Absent pour les autres outils. Nécessite Agent SDK v0.3.274 ou ultérieur |

1338| `decisionReason` | `string` | Explique pourquoi cette demande de permission a été déclenchée |1343| `decisionReason` | `string` | Explique pourquoi cette demande de permission a été déclenchée |

1339| `defaultToNo` | `boolean` | Lorsque `true`, une seule frappe accidentelle ne doit pas approuver cette demande : ouvrez votre demande sur son option de refus, ne présélectionnez pas l'approbation et ne proposez aucun raccourci d'approbation à une touche. Nécessite Agent SDK v0.3.268 ou ultérieur |1344| `defaultToNo` | `boolean` | Lorsque `true`, une seule frappe accidentelle ne doit pas approuver cette demande : ouvrez votre demande sur son option de refus, ne présélectionnez pas l'approbation et ne proposez aucun raccourci d'approbation à une touche. Nécessite Agent SDK v0.3.268 ou ultérieur |

1340| `suppressAlwaysAllowRule` | `boolean` | Lorsque `true`, ne proposez pas de choix persistant « toujours autoriser » pour cette demande, car la règle qu'il écrirait accorderait davantage que l'action propre à la demande. Nécessite Agent SDK v0.3.268 ou ultérieur |1345| `suppressAlwaysAllowRule` | `boolean` | Lorsque `true`, ne proposez pas de choix « toujours autoriser » persistant pour cette demande. Nécessite Agent SDK v0.3.268 ou une version ultérieure |

1341| `toolUseID` | `string` | Identifiant unique de cet appel d'outil spécifique dans le message de l'assistant |1346| `toolUseID` | `string` | Identifiant unique de cet appel d'outil spécifique dans le message de l'assistant |

1342| `agentID` | `string` | Si l'exécution a lieu dans un sous-agent, l'ID du sous-agent |1347| `agentID` | `string` | Si l'exécution a lieu dans un sous-agent, l'ID du sous-agent |

1343| `requestId` | `string` | Le `request_id` de l'enveloppe `control_request`. Une `control_response` que votre application envoie en dehors du SDK, comme un HTTP POST signé, doit renvoyer cette valeur afin que le processus Claude Code puisse associer la réponse à la requête |1348| `requestId` | `string` | Le `request_id` de l'enveloppe `control_request`. Une `control_response` que votre application envoie en dehors du SDK, comme un HTTP POST signé, doit renvoyer cette valeur afin que le processus Claude Code puisse associer la réponse à la requête |


3790};3795};

3791```3796```

3792 3797 

3793Signale les résultats de révision de code sous forme de liste structurée pour que Claude Code puisse les rendre au lieu de les imprimer en tant que texte. `level` est le niveau d'effort auquel la révision s'est exécutée. Les résultats sont ordonnés du plus grave au moins grave, avec au maximum 32 par appel, et le tableau est vide lorsqu'aucun n'a survécu. Nécessite Claude Code v2.1.196 ou version ultérieure.3798Signale les résultats de revue de code sous forme de liste structurée pour que Claude Code puisse les rendre au lieu de les imprimer en tant que texte. Les résultats sont ordonnés du plus grave au moins grave, avec au maximum 32 par appel, et le tableau est vide lorsqu'aucun n'a survécu. Nécessite Claude Code v2.1.196 ou version ultérieure.

3799 

3800`level` est optionnel et contient le niveau d'effort que Claude indique pour la revue. Claude Code ne le compare pas au niveau auquel la revue s'est exécutée, les deux peuvent donc différer.

3794 3801 

3795Chaque résultat porte ces champs :3802Chaque résultat porte ces champs :

3796 3803 


4840};4847};

4841```4848```

4842 4849 

4843Retourne le nombre de résultats signalés, le niveau d'effort auquel l'examen s'est exécuté, et les résultats renvoyés pour le corps du résultat. Nécessite Claude Code v2.1.196 ou ultérieur. Le champ `short_summary` renvoyé nécessite Claude Code v2.1.212 ou ultérieur.4850Retourne le nombre de résultats signalés, la valeur `level` transmise par Claude, et les résultats renvoyés pour le corps du résultat. Nécessite Claude Code v2.1.196 ou ultérieur. Le champ `short_summary` renvoyé nécessite Claude Code v2.1.212 ou ultérieur.

4844 4851 

4845<h3 id="artifact-2">4852<h3 id="artifact-2">

4846 Artifact4853 Artifact


5461 | { type: "disabled" }; // No extended thinking5468 | { type: "disabled" }; // No extended thinking

5462```5469```

5463 5470 

5464Le champ optionnel `display` contrôle si le texte de réflexion est renvoyé `"summarized"` ou `"omitted"`. Sur Claude Opus 4.7 et versions ultérieures, la valeur par défaut de l'API est `"omitted"`, donc définissez `"summarized"` pour recevoir le contenu de réflexion dans les blocs `thinking`. Claude Code n'envoie pas `display` à Amazon Bedrock ou à la plateforme Agent de Google Cloud, donc sur ces fournisseurs Opus 4.7 et versions ultérieures renvoient des blocs `thinking` vides même lorsque vous définissez `display` sur `"summarized"`.5471Le champ optionnel `display` contrôle si le texte de réflexion est renvoyé `"summarized"` ou `"omitted"`. Sur Claude Opus 4.7 et versions ultérieures, la valeur par défaut de l'API est `"omitted"`, donc définissez `"summarized"` pour recevoir le contenu de réflexion dans les blocs `thinking`. Claude Code omet `display` dans les requêtes envoyées à certains fournisseurs, tels qu'Amazon Bedrock et la plateforme Agent de Google Cloud. Sur ces fournisseurs, Opus 4.7 et versions ultérieures renvoient des blocs `thinking` vides même lorsque vous définissez `display` sur `"summarized"`.

5465 5472 

5466<h3 id="spawnedprocess">5473<h3 id="spawnedprocess">

5467 `SpawnedProcess`5474 `SpawnedProcess`


5532 5539 

5533Lorsque vous appelez `setMcpServers()`, Claude Code applique ces règles :5540Lorsque vous appelez `setMcpServers()`, Claude Code applique ces règles :

5534 5541 

5535* **Serveurs que l'appel ne nomme pas** : Claude Code maintient les serveurs fournis par plugin en cours d'exécution. Nécessite Agent SDK v0.3.210 ou version ultérieure.5542* **Serveurs que l'appel ne nomme pas** : en dehors d'une [session cloud](/docs/fr/claude-code-on-the-web), Claude Code déconnecte les serveurs qu'un appel `setMcpServers()` antérieur a ajoutés ainsi que les serveurs SDK en processus, et les liste dans `removed`. Les autres serveurs continuent de s'exécuter et ne sont pas listés dans `removed`, parmi lesquels les serveurs stdio, HTTP et SSE de l'option [`mcpServers`](#options), les serveurs des fichiers de paramètres et les serveurs fournis par plugin.

5536* **Serveurs que l'appel nomme** : à l'exception des serveurs intégrés que l'interface de ligne de commande a démarrés au démarrage, Claude Code remplace un serveur en cours d'exécution uniquement lorsque sa configuration diffère de celle que vous avez transmise.5543* **Serveurs que l'appel nomme** : Claude Code remplace un serveur stdio, HTTP ou SSE qu'un appel `setMcpServers()` antérieur a ajouté uniquement lorsque sa configuration diffère de celle que vous avez transmise. Un serveur SDK en processus déjà enregistré sous ce nom reste tel quel ; pour en remplacer un, omettez-le d'un appel et ajoutez-le dans le suivant.

5537* **Serveurs intégrés que l'interface de ligne de commande a démarrés au démarrage** : si l'appel en nomme un, Claude Code supprime cette entrée et la signale dans `errors`.5544* **Serveurs intégrés que l'interface de ligne de commande a démarrés au démarrage** : si l'appel en nomme un, Claude Code supprime cette entrée et la signale dans `errors`.

5538 5545 

5539La promesse se résout après que les serveurs stdio, HTTP et SSE nouvellement ajoutés se connectent ou échouent, donc les outils des serveurs qui se sont connectés sont disponibles au tour suivant.5546La promesse se résout après que les serveurs stdio, HTTP et SSE nouvellement ajoutés se connectent ou échouent, donc les outils des serveurs qui se sont connectés sont disponibles au tour suivant.

agent-view.md +1 −0

Details

819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Supprimer une session dont la suppression a été refusée en raison de commits non poussés, en supprimant la worktree ainsi que sa branche et ses commits. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.260 ou ultérieur |819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Supprimer une session dont la suppression a été refusée en raison de commits non poussés, en supprimant la worktree ainsi que sa branche et ses commits. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.260 ou ultérieur |

820| `claude rm <id> --force-remove-worktree <worktree-id>` | Supprimer une session dont la suppression a été refusée parce que git ou le hook `WorktreeRemove` n'a pas pu supprimer sa worktree, en supprimant le répertoire worktree de toute façon et en laissant sa branche dans le dépôt. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.268 ou ultérieur |820| `claude rm <id> --force-remove-worktree <worktree-id>` | Supprimer une session dont la suppression a été refusée parce que git ou le hook `WorktreeRemove` n'a pas pu supprimer sa worktree, en supprimant le répertoire worktree de toute façon et en laissant sa branche dans le dépôt. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.268 ou ultérieur |

821| `claude daemon status` | Afficher l'état du [superviseur](#the-supervisor-process), la version, le répertoire socket et le nombre de workers |821| `claude daemon status` | Afficher l'état du [superviseur](#the-supervisor-process), la version, le répertoire socket et le nombre de workers |

822| `claude daemon logs` | Suivre le fichier de log du superviseur, [`~/.claude/daemon.log`](#where-state-is-stored), en affichant les nouvelles lignes à mesure qu'elles arrivent jusqu'à ce que vous appuyiez sur `Ctrl+C` |

822| `claude daemon stop --any` | Arrêter le processus superviseur et les sessions en arrière-plan qu'il héberge. Passez `--keep-workers` pour laisser les sessions en arrière-plan en cours d'exécution afin que le superviseur suivant se reconnecte à elles. Le prochain `claude agents` ou `claude --bg` démarre un nouveau superviseur |823| `claude daemon stop --any` | Arrêter le processus superviseur et les sessions en arrière-plan qu'il héberge. Passez `--keep-workers` pour laisser les sessions en arrière-plan en cours d'exécution afin que le superviseur suivant se reconnecte à elles. Le prochain `claude agents` ou `claude --bg` démarre un nouveau superviseur |

823 824 

824`claude attach` et `claude logs` peuvent prendre une partie du nom d'une session en cours d'exécution à la place de l'ID, comme dans `claude logs "auth refactor"`. Passer un nom nécessite Claude Code v2.1.290 ou ultérieur.825`claude attach` et `claude logs` peuvent prendre une partie du nom d'une session en cours d'exécution à la place de l'ID, comme dans `claude logs "auth refactor"`. Passer un nom nécessite Claude Code v2.1.290 ou ultérieur.

agents.md +1 −1

Details

20 20 

21Trois autres outils soutiennent ce travail sans être une façon d'exécuter des agents eux-mêmes :21Trois autres outils soutiennent ce travail sans être une façon d'exécuter des agents eux-mêmes :

22 22 

23* [Les worktrees](/docs/fr/worktrees) donnent à chaque session un checkout git séparé, de sorte que les sessions parallèles ne modifient jamais les mêmes fichiers. Utilisez-les pour les sessions que vous exécutez vous-même. Une session que vous dispatchez depuis la vue agent [se déplace dans son propre worktree avant qu'elle ne modifie les fichiers](/docs/fr/agent-view#how-file-edits-are-isolated), et les sous-agents que vous générez peuvent chacun en obtenir un aussi.23* [Les worktrees](/docs/fr/worktrees) donnent à chaque session un checkout git séparé, de sorte que les sessions parallèles modifient chacune leur propre copie des fichiers. Utilisez-les pour les sessions que vous exécutez vous-même. Une session que vous dispatchez depuis la vue agent [se déplace dans son propre worktree avant qu'elle ne modifie les fichiers](/docs/fr/agent-view#how-file-edits-are-isolated), et les sous-agents que vous générez peuvent chacun en obtenir un aussi.

24* [La messagerie inter-sessions](/docs/fr/cross-session-messaging) permet à Claude de lister et de communiquer avec vos autres sessions Claude Code sur cette machine, sur une autre machine ou [dans le cloud](/docs/fr/claude-code-on-the-web), de sorte que les sessions que vous exécutez vous-même peuvent transmettre les résultats et l'état entre elles.24* [La messagerie inter-sessions](/docs/fr/cross-session-messaging) permet à Claude de lister et de communiquer avec vos autres sessions Claude Code sur cette machine, sur une autre machine ou [dans le cloud](/docs/fr/claude-code-on-the-web), de sorte que les sessions que vous exécutez vous-même peuvent transmettre les résultats et l'état entre elles.

25* [`/batch`](/docs/fr/commands) est une [compétence](/docs/fr/skills) qui a Claude diviser un grand changement en 5 à 30 sous-agents isolés par worktree. C'est une utilisation packagée de sous-agents et de worktrees, pas un style de coordination séparé.25* [`/batch`](/docs/fr/commands) est une [compétence](/docs/fr/skills) qui a Claude diviser un grand changement en 5 à 30 sous-agents isolés par worktree. C'est une utilisation packagée de sous-agents et de worktrees, pas un style de coordination séparé.

26 26 

Details

681 681 

682Amazon Bedrock diffuse les réponses `InvokeModelWithResponseStream` dans un format d'événement binaire event-stream avec l'en-tête `Content-Type: application/vnd.amazon.eventstream`. Une passerelle ou un proxy entre Claude Code et Amazon Bedrock doit transmettre le corps de la réponse et ses en-têtes, y compris `Content-Type`, tels qu'Amazon Bedrock les a envoyés.682Amazon Bedrock diffuse les réponses `InvokeModelWithResponseStream` dans un format d'événement binaire event-stream avec l'en-tête `Content-Type: application/vnd.amazon.eventstream`. Une passerelle ou un proxy entre Claude Code et Amazon Bedrock doit transmettre le corps de la réponse et ses en-têtes, y compris `Content-Type`, tels qu'Amazon Bedrock les a envoyés.

683 683 

684Si la passerelle réécrit `Content-Type` en une autre valeur, Claude Code rejette la réponse avec une erreur qui commence par `Bedrock streaming response has content-type`, en nommant la valeur qu'il a reçue. La réécriture courante est `text/event-stream`, provenant d'une intégration qui réemet le flux sous forme d'événements envoyés par le serveur.684Si la passerelle réécrit `Content-Type` en une autre valeur, Claude Code rejette la réponse avec une erreur qui commence par `Bedrock streaming response has content-type`, en nommant la valeur qu'il a reçue. La réécriture courante est `text/event-stream`, provenant d'une intégration qui réémet le flux sous forme d'événements envoyés par le serveur. Pour la variable `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` que nomme le message d'erreur, consultez [Bedrock streaming response has an unexpected content-type](/docs/fr/errors#bedrock-streaming-response-has-an-unexpected-content-type).

685 685 

686Si la passerelle supprime ou efface l'en-tête à la place, Claude Code suppose que le corps est le flux d'événements d'Amazon Bedrock et le décode, donc un corps que la passerelle a transmis sans modification continue à diffuser.686Si la passerelle supprime ou efface l'en-tête à la place, Claude Code suppose que le corps est le flux d'événements d'Amazon Bedrock et le décode, donc un corps que la passerelle a transmis sans modification continue à diffuser.

687 687 

Details

12 Se connecter à Claude Code12 Se connecter à Claude Code

13</h2>13</h2>

14 14 

15Après [l'installation de Claude Code](/docs/fr/setup#install-claude-code), exécutez `claude` dans votre terminal. Au premier lancement, Claude Code ouvre une fenêtre de navigateur pour vous permettre de vous connecter. Si vous avez défini la variable d'environnement `ANTHROPIC_API_KEY`, Claude Code ignore l'invite de connexion et vous demande plutôt d'approuver la clé.15Après [l'installation de Claude Code](/docs/fr/setup#install-claude-code), exécutez `claude` dans votre terminal. Au premier lancement, Claude Code ouvre une fenêtre de navigateur pour vous permettre de vous connecter. Si vous avez défini la variable d'environnement `ANTHROPIC_API_KEY` et que vous approuvez la clé lorsque Claude Code vous demande s'il doit l'utiliser, Claude Code ignore l'invite de connexion.

16 16 

17Si le navigateur ne s'ouvre pas automatiquement, appuyez sur `c` pour copier l'URL de connexion dans votre presse-papiers, puis collez-la dans votre navigateur.17Si le navigateur ne s'ouvre pas automatiquement, appuyez sur `c` pour copier l'URL de connexion dans votre presse-papiers, puis collez-la dans votre navigateur.

18 18 

Details

351}351}

352```352```

353 353 

354Obtenez des commentaires d'IA sur vos règles personnalisées `allow`, `soft_deny` et `hard_deny` :354Obtenez des commentaires d'IA sur vos entrées personnalisées `allow`, `soft_deny`, `hard_deny` et `environment` :

355 355 

356```bash theme={null}356```bash theme={null}

357claude auto-mode critique357claude auto-mode critique

chrome.md +1 −1

Details

343 343 

344| Erreur | Cause | Solution |344| Erreur | Cause | Solution |

345| - | - | - |345| - | - | - |

346| « Browser extension is not connected » | L'hôte de messagerie native ne peut pas atteindre l'extension, ou la liste d'adresses IP autorisées de votre organisation rejette la connexion à `bridge.claudeusercontent.com` | Redémarrez Chrome et Claude Code, puis exécutez `/chrome` pour reconnecter. Si votre organisation utilise une liste d'adresses IP autorisées et que l'erreur persiste, consultez [Listes d'adresses IP autorisées et sortie proxy de l'organisation](/docs/fr/network-config#organization-ip-allowlists-and-proxy-egress) |346| « Browser extension is not connected » | L'hôte de messagerie native ne peut pas atteindre l'extension, ou la liste d'adresses IP autorisées de votre organisation rejette la connexion à `bridge.claudeusercontent.com` | Vérifiez que l'extension est connectée au même compte claude.ai que Claude Code, redémarrez Chrome et Claude Code, puis exécutez `/chrome` pour reconnecter. Si votre organisation utilise une liste d'adresses IP autorisées et que l'erreur persiste, consultez [Listes d'adresses IP autorisées et sortie proxy de l'organisation](/docs/fr/network-config#organization-ip-allowlists-and-proxy-egress) |

347| Extension shows "Not detected" in `/chrome` | L'extension Chrome n'est pas installée ou est désactivée | Installez ou activez l'extension dans `chrome://extensions` |347| Extension shows "Not detected" in `/chrome` | L'extension Chrome n'est pas installée ou est désactivée | Installez ou activez l'extension dans `chrome://extensions` |

348| « No tab available » | Claude a tenté d'agir avant qu'un onglet soit prêt | Demandez à Claude de créer un nouvel onglet et réessayez |348| « No tab available » | Claude a tenté d'agir avant qu'un onglet soit prêt | Demandez à Claude de créer un nouvel onglet et réessayez |

349| « Receiving end does not exist » | Le service worker de l'extension est devenu inactif | Exécutez `/chrome` et sélectionnez « Reconnect extension » |349| « Receiving end does not exist » | Le service worker de l'extension est devenu inactif | Exécutez `/chrome` et sélectionnez « Reconnect extension » |

Details

75| - | - |75| - | - |

76| Claude Code v2.1.195 ou ultérieur | La sous-commande `claude gateway` et le flux de connexion de la passerelle sont livrés dans v2.1.195. Les versions publiques antérieures ne les incluent pas. La machine exécutant le serveur de passerelle et la machine de chaque développeur doivent être sur v2.1.195 ou ultérieur ; exécutez `claude update` pour obtenir la dernière version. L'[amont Claude Platform on AWS](/docs/fr/claude-apps-gateway-config#claude-platform-on-aws) nécessite Claude Code v2.1.198 ou ultérieur sur le serveur de passerelle. |76| Claude Code v2.1.195 ou ultérieur | La sous-commande `claude gateway` et le flux de connexion de la passerelle sont livrés dans v2.1.195. Les versions publiques antérieures ne les incluent pas. La machine exécutant le serveur de passerelle et la machine de chaque développeur doivent être sur v2.1.195 ou ultérieur ; exécutez `claude update` pour obtenir la dernière version. L'[amont Claude Platform on AWS](/docs/fr/claude-apps-gateway-config#claude-platform-on-aws) nécessite Claude Code v2.1.198 ou ultérieur sur le serveur de passerelle. |

77| Fournisseur d'identité OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, ou Dex, ou tout autre IdP conforme à OIDC comme PingFederate. La passerelle exécute la découverte OIDC standard et le flux de code d'autorisation contre elle. SAML et LDAP ne sont pas supportés. |77| Fournisseur d'identité OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, ou Dex, ou tout autre IdP conforme à OIDC comme PingFederate. La passerelle exécute la découverte OIDC standard et le flux de code d'autorisation contre elle. SAML et LDAP ne sont pas supportés. |

78| PostgreSQL 14 ou ultérieur | Soutient le flux de connexion d'appareil, où le rappel du navigateur écrit et l'interface de ligne de commande d'interrogation lit, plus les compteurs de limite de débit. Tout Postgres géré fonctionne, y compris le plus petit niveau. Sans limites de dépenses configurées, la passerelle stocke quelques Ko d'état d'authentification de courte durée ; avec les [limites de dépenses](/docs/fr/claude-apps-gateway-spend-limits), elle détient également des tables de dépenses durables, d'audit et d'identité qui doivent être sauvegardées. TLS via `?sslmode=require` est recommandé. |78| PostgreSQL 11 ou ultérieur | Soutient le flux de connexion d'appareil et les compteurs de limite de débit. Un service PostgreSQL géré fonctionne, y compris le plus petit niveau ; voir [quelles bases de données sont prises en charge](/docs/fr/claude-apps-gateway-deploy#postgres). Avec les [limites de dépenses](/docs/fr/claude-apps-gateway-spend-limits), la base de données détient également des tables de dépenses durables, d'audit et d'identité qui doivent être sauvegardées. TLS via `?sslmode=require` est recommandé. PostgreSQL 11, 12 et 13 nécessitent Claude Code v2.1.290 ou ultérieur sur le serveur de passerelle. Le projet PostgreSQL ne maintient plus ces versions ; utilisez donc une version plus récente lorsque c'est possible. |

79| Amont du modèle | Identifiants Amazon Bedrock, identifiants Claude Platform on AWS, identifiants Google Cloud, une ressource Microsoft Foundry, ou une clé API Anthropic. Plusieurs ammonts sont supportés avec basculement. |79| Amont du modèle | Identifiants Amazon Bedrock, identifiants Claude Platform on AWS, identifiants Google Cloud, une ressource Microsoft Foundry, ou une clé API Anthropic. Plusieurs ammonts sont supportés avec basculement. |

80| HTTPS | La passerelle doit être accessible via `https://` à partir des ordinateurs portables des développeurs et de tout navigateur utilisé pour la connexion ; la passerelle sert la page de vérification d'appareil sur le même écouteur. Fournissez un certificat TLS via `listen.tls` ou exécutez derrière un ingress qui termine TLS, et définissez `listen.public_url` à l'origine externe dans les deux cas. À `/login`, Claude Code accepte une origine `http://` simple uniquement quand l'hôte de la passerelle est une boucle locale : `localhost`, `127.0.0.1`, ou `::1`. |80| HTTPS | La passerelle doit être accessible via `https://` à partir des ordinateurs portables des développeurs et de tout navigateur utilisé pour la connexion ; la passerelle sert la page de vérification d'appareil sur le même écouteur. Fournissez un certificat TLS via `listen.tls` ou exécutez derrière un ingress qui termine TLS, et définissez `listen.public_url` à l'origine externe dans les deux cas. À `/login`, Claude Code accepte une origine `http://` simple uniquement quand l'hôte de la passerelle est une boucle locale : `localhost`, `127.0.0.1`, ou `::1`. |

81| Adresse de réseau privé | À `/login`, Claude Code exige que le nom d'hôte ou l'adresse IP de la passerelle ne se résolve qu'à des adresses privées : RFC 1918, link-local, CGNAT `100.64.0.0/10`, ULA IPv6 `fc00::/7`, ou boucle locale. Pour une passerelle que vous hébergez, toute adresse publique en dehors d'un bloc que vous déclarez est rejetée ; voir le [modèle de menace](/docs/fr/claude-apps-gateway-deploy#threat-model-summary) dans le guide de déploiement. Si les machines des développeurs acheminent HTTPS via un proxy d'entreprise, la connexion exige également que l'hôte proxy se résolve à des adresses privées ; s'il ne le fait pas, ajoutez l'hôte de la passerelle à `NO_PROXY` pour que l'interface de ligne de commande se connecte directement. Si votre réseau interne est numéroté à partir d'un espace IPv4 public que votre organisation possède, [déclarez ces blocs](#allow-a-gateway-on-public-address-space-you-own) pour que `/login` accepte une passerelle là-bas. |81| Adresse de réseau privé | À `/login`, Claude Code exige que le nom d'hôte ou l'adresse IP de la passerelle ne se résolve qu'à des adresses privées : RFC 1918, link-local, CGNAT `100.64.0.0/10`, ULA IPv6 `fc00::/7`, ou boucle locale. Pour une passerelle que vous hébergez, toute adresse publique en dehors d'un bloc que vous déclarez est rejetée ; voir le [modèle de menace](/docs/fr/claude-apps-gateway-deploy#threat-model-summary) dans le guide de déploiement. Si les machines des développeurs acheminent HTTPS via un proxy d'entreprise, la connexion exige également que l'hôte proxy se résolve à des adresses privées ; s'il ne le fait pas, ajoutez l'hôte de la passerelle à `NO_PROXY` pour que l'interface de ligne de commande se connecte directement. Si votre réseau interne est numéroté à partir d'un espace IPv4 public que votre organisation possède, [déclarez ces blocs](#allow-a-gateway-on-public-address-space-you-own) pour que `/login` accepte une passerelle là-bas. |


91 </Step>91 </Step>

92 92 

93 <Step title="Provisionner une base de données PostgreSQL">93 <Step title="Provisionner une base de données PostgreSQL">

94 Tout Postgres 14 ou ultérieur fonctionne, y compris le plus petit niveau géré. La passerelle exécute ses propres migrations de schéma au démarrage, donc le rôle de la base de données a besoin de droits pour créer et modifier les tables ; voir [`store`](/docs/fr/claude-apps-gateway-config#store).94 Utilisez PostgreSQL 11 ou ultérieur. Le plus petit niveau géré suffit. La passerelle exécute ses propres migrations de schéma au démarrage, donc le rôle de la base de données a besoin de droits pour créer et modifier les tables ; voir [`store`](/docs/fr/claude-apps-gateway-config#store).

95 </Step>95 </Step>

96 96 

97 <Step title="Écrivez gateway.yaml">97 <Step title="Écrivez gateway.yaml">

Details

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 :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 159 

1601. Téléversez le nouveau certificat vers le fournisseur d'identité à côté de l'ancien.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.1612. Remplacez les fichiers de clé et de certificat que `gateway.yaml` charge, puis redémarrez la passerelle. Si vous exécutez plusieurs répliques, un [redémarrage progressif](/docs/fr/claude-apps-gateway-deploy#upgrades) fonctionne, car le fournisseur d'identité dispose des deux certificats jusqu'à ce que vous supprimiez l'ancien.

1623. Supprimez l'ancien certificat du fournisseur d'identité.1623. Une fois que chaque réplique a redémarré, supprimez l'ancien certificat du fournisseur d'identité.

163 163 

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

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


227 227 

228| Champ | Obligatoire | Description |228| Champ | Obligatoire | Description |

229| - | - | - |229| - | - | - |

230| `postgres_url` | Oui | URL `postgres://` ou `postgresql://`. Obligatoire : le rendez-vous de subvention d'appareil, où le rappel du navigateur écrit et le CLI d'interrogation lit, a besoin d'un état entre répliques. La passerelle exécute ses propres migrations de schéma au démarrage et à la mise à niveau, donc le rôle a besoin de droits pour créer et modifier les tables sur le schéma cible. Voir [Mises à niveau](/docs/fr/claude-apps-gateway-deploy#upgrades) et [Postgres](/docs/fr/claude-apps-gateway-deploy#postgres). |230| `postgres_url` | Oui | URL `postgres://` ou `postgresql://` avec un seul hôte, et non une liste séparée par des virgules. La passerelle exécute ses propres migrations de schéma au démarrage et à la mise à niveau, donc le rôle a besoin de droits pour créer et modifier les tables sur le schéma cible. Voir [Mises à niveau](/docs/fr/claude-apps-gateway-deploy#upgrades) et [Postgres](/docs/fr/claude-apps-gateway-deploy#postgres). |

231| `username` | Non | Remplace l'utilisateur dans `postgres_url` |231| `username` | Non | Remplace l'utilisateur dans `postgres_url` |

232| `password` | Non | Identifiant de base de données. Définissez-le ici plutôt que dans `postgres_url` pour que l'identifiant reste hors de l'URL. Accepte n'importe quel caractère et a priorité sur les identifiants d'URL. |232| `password` | Non | Identifiant de base de données. Définissez-le ici plutôt que dans `postgres_url` pour que l'identifiant reste hors de l'URL. Accepte n'importe quel caractère et a priorité sur les identifiants d'URL. |

233| `max_connections` | Non | Taille du pool de connexions Postgres par réplique. Par défaut `5`, ce qui est conservateur et convivial pour les bases de données partagées. Avec les [limites de dépenses](#admin) activées, le chemin chaud effectue quelques opérations par demande d'inférence, donc augmentez-le pour une base de données dédiée sous charge, et gardez répliques × ceci en dessous du `max_connections` de la base de données. |233| `max_connections` | Non | Taille du pool de connexions Postgres par réplique. Par défaut `5`, ce qui est conservateur et convivial pour les bases de données partagées. Avec les [limites de dépenses](#admin) activées, le chemin chaud effectue quelques opérations par demande d'inférence, donc augmentez-le pour une base de données dédiée sous charge, et gardez répliques × ceci en dessous du `max_connections` de la base de données. |

Details

249 Postgres249 Postgres

250</h3>250</h3>

251 251 

252La passerelle stocke son état dans une base de données PostgreSQL :

253 

254* **Base de données** : PostgreSQL lui-même, auto-hébergé ou managé, en [version minimale](/docs/fr/claude-apps-gateway#prerequisites) ou ultérieure. Les bases de données qui implémentent uniquement le protocole Postgres, comme les bases de données SQL distribuées, ne sont pas prises en charge.

255* **Adresse** : `store.postgres_url` accepte un seul hôte. Si la base de données comporte plusieurs nœuds, utilisez l'adresse placée devant eux, comme l'endpoint de votre service managé, un équilibreur de charge ou une IP virtuelle. Définissez une [période de grâce de disponibilité](#readiness-grace-period) plus longue que la durée d'un basculement.

256 

252La passerelle détient cinq tables de données plus une table `_migrations`, toutes créées par ses migrations au démarrage :257La passerelle détient cinq tables de données plus une table `_migrations`, toutes créées par ses migrations au démarrage :

253 258 

254| Table | Contenu | Rétention |259| Table | Contenu | Rétention |


396| CLI `/login` : `Could not resolve the configured HTTP proxy` | Le nom d'hôte dans `HTTPS_PROXY` ou `HTTP_PROXY` ne se résout pas à partir de la machine du développeur, généralement parce qu'il n'est pas connecté au réseau d'entreprise | Demandez au développeur de se connecter à votre réseau ou VPN et de réessayer, ou corrigez l'URL du proxy |401| CLI `/login` : `Could not resolve the configured HTTP proxy` | Le nom d'hôte dans `HTTPS_PROXY` ou `HTTP_PROXY` ne se résout pas à partir de la machine du développeur, généralement parce qu'il n'est pas connecté au réseau d'entreprise | Demandez au développeur de se connecter à votre réseau ou VPN et de réessayer, ou corrigez l'URL du proxy |

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` |402| 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`. |403| 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`. |

404| Le démarrage se termine : `store.postgres_url in <path> is not a URL the gateway can read`, ou avant v2.1.290 un simple `Invalid URL` ou `URI error` | L'URL ne peut pas être analysée, par exemple parce qu'elle liste plus d'un hôte ou que son mot de passe contient un `/`, `?`, `#` ou `%` non encodé | Nommez [un seul hôte](#postgres), et déplacez le mot de passe dans [`store.password`](/docs/fr/claude-apps-gateway-config#store) |

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) |405| 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 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. |406| 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 |407| 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. |408| 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`, notamment qu'elle nomme un seul hôte, ainsi que 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`. |409| `/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 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`. |410| 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é à 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. |411| 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. |

Details

169 </Step>169 </Step>

170 170 

171 <Step title="Provisionner Amazon RDS pour PostgreSQL">171 <Step title="Provisionner Amazon RDS pour PostgreSQL">

172 L'instance s'exécute dans les sous-réseaux privés sans adresse publique et avec le chiffrement du stockage activé. La version du moteur est épinglée à Postgres 16, ce qui satisfait le plancher pris en charge de PostgreSQL 14 de la passerelle et garantit que la famille du groupe de paramètres ci-dessous correspond à l'instance.172 L'instance exécute Postgres 16 dans les sous-réseaux privés, sans adresse publique et avec le chiffrement du stockage activé.

173 173 

174 Tout d'abord, créez le groupe de sous-réseaux qui place la base de données dans les sous-réseaux privés, et un groupe de paramètres avec `rds.force_ssl=1` pour que le serveur rejette les connexions en texte brut. La version du moteur est épinglée une fois car la famille du groupe de paramètres doit correspondre à la version majeure du moteur que l'instance exécute :174 Tout d'abord, créez le groupe de sous-réseaux qui place la base de données dans les sous-réseaux privés, et un groupe de paramètres avec `rds.force_ssl=1` pour que le serveur rejette les connexions en texte brut. La version du moteur est épinglée une fois car la famille du groupe de paramètres doit correspondre à la version majeure du moteur que l'instance exécute :

175 175 


203 203 

204 L'argument littéral `--master-user-password` est visible dans la table des processus et dans les journaux d'audit/EDR pendant l'exécution de la commande, la même exposition que celle couverte par la note de l'étape des secrets. Sur un hôte partagé ou surveillé, passez le mot de passe via `--cli-input-json` à partir d'un fichier `0600` à la place, de la même façon que le `setup.sh` du bundle.204 L'argument littéral `--master-user-password` est visible dans la table des processus et dans les journaux d'audit/EDR pendant l'exécution de la commande, la même exposition que celle couverte par la note de l'étape des secrets. Sur un hôte partagé ou surveillé, passez le mot de passe via `--cli-input-json` à partir d'un fichier `0600` à la place, de la même façon que le `setup.sh` du bundle.

205 205 

206 Attendez que l'instance soit opérationnelle, ce qui peut prendre plusieurs minutes, puis lisez son point de terminaison privé et assemblez la chaîne de connexion que la passerelle utilisera :206 Attendez que l'instance soit opérationnelle, ce qui peut prendre plusieurs minutes, puis lisez son endpoint privé et assemblez la chaîne de connexion que la passerelle utilisera :

207 207 

208 ```bash theme={null}208 ```bash theme={null}

209 aws rds wait db-instance-available --db-instance-identifier claude-gateway-db209 aws rds wait db-instance-available --db-instance-identifier claude-gateway-db


212 GATEWAY_POSTGRES_URL="postgres://gateway:${PGPASS}@${DB_HOST}:5432/claude_gateway?sslmode=verify-full"212 GATEWAY_POSTGRES_URL="postgres://gateway:${PGPASS}@${DB_HOST}:5432/claude_gateway?sslmode=verify-full"

213 ```213 ```

214 214 

215 `sslmode=verify-full` fait que la passerelle vérifie la chaîne du certificat du serveur RDS et le nom d'hôte, pas seulement le chiffrement. L'ancre de confiance est le [bundle de certificats AWS RDS](https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem), que l'étape de construction d'image ci-dessous copie à `/etc/claude/rds-global-bundle.pem` et approuve via `NODE_EXTRA_CA_CERTS`. N'ajoutez pas de paramètre `sslrootcert=` de style libpq à l'URL : le pilote de la passerelle lit uniquement `sslmode` à partir de la chaîne de requête et transmettrait `sslrootcert` à Postgres en tant que paramètre de démarrage, que le serveur rejette.215 `sslmode=verify-full` fait que la passerelle vérifie la chaîne du certificat du serveur RDS et le nom d'hôte, pas seulement le chiffrement. L'ancre de confiance est le [bundle de certificats AWS RDS](https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem), que l'étape de build d'image ci-dessous copie à `/etc/claude/rds-global-bundle.pem` et approuve via `NODE_EXTRA_CA_CERTS`. N'ajoutez pas de paramètre `sslrootcert=` de style libpq à l'URL : le pilote de la passerelle lit uniquement `sslmode` à partir de la chaîne de requête et transmettrait `sslrootcert` à Postgres en tant que paramètre de démarrage, que le serveur rejette.

216 216 

217 Le service ECS ou les pods EKS doivent s'exécuter dans ce VPC pour pouvoir atteindre le point de terminaison privé de l'instance, et le groupe de sécurité `claude-gateway-db` n'admet que le groupe de sécurité de la passerelle.217 Le service ECS ou les pods EKS doivent s'exécuter dans ce VPC pour pouvoir atteindre l'endpoint privé de l'instance, et le groupe de sécurité `claude-gateway-db` n'admet que le groupe de sécurité de la passerelle.

218 </Step>218 </Step>

219 219 

220 <Step title="Écrire gateway.yaml">220 <Step title="Écrire gateway.yaml">

221 Le bloc `upstreams` pointe vers Bedrock avec `auth: {}`, donc la passerelle s'authentifie via la chaîne de credentials par défaut d'AWS à partir du rôle de tâche sur ECS ou du rôle IRSA sur EKS. Consultez la [référence de configuration](/docs/fr/claude-apps-gateway-config) pour chaque champ.221 Le bloc `upstreams` pointe vers Bedrock avec `auth: {}`, donc la passerelle s'authentifie via la chaîne d'identifiants par défaut d'AWS à partir du rôle de tâche sur ECS ou du rôle IRSA sur EKS. Consultez la [référence de configuration](/docs/fr/claude-apps-gateway-config) pour chaque champ.

222 222 

223 Deux champs `listen` décrivent ce qui est en face de la passerelle :223 Deux champs `listen` décrivent ce qui est en face de la passerelle :

224 224 

225 * `public_url` : l'origine `https://` externe, requise pour tout bind non-loopback ; consultez la [référence `listen`](/docs/fr/claude-apps-gateway-config#listen). La passerelle construit l'`redirect_uri` de l'IdP et son document de découverte uniquement à partir de cette valeur, jamais à partir des en-têtes `X-Forwarded-*`.225 * `public_url` : l'origine `https://` externe, requise pour tout bind non-loopback ; consultez la [référence `listen`](/docs/fr/claude-apps-gateway-config#listen). La passerelle construit l'`redirect_uri` de l'IdP et son document de découverte uniquement à partir de cette valeur, jamais à partir des en-têtes `X-Forwarded-*`.

226 * `trusted_proxies` : les plages source du frontal. La passerelle honore `X-Forwarded-For` uniquement lorsque le pair TCP est dans cette liste, puis parcourt la chaîne au-delà des sauts de confiance, donc les limites de taux de connexion par IP et les événements d'audit enregistrent les adresses IP des développeurs au lieu de celle de l'équilibreur de charge.226 * `trusted_proxies` : les plages source du frontal. La passerelle honore `X-Forwarded-For` uniquement lorsque le pair TCP est dans cette liste, puis parcourt la chaîne au-delà des sauts de confiance, donc les limites de débit de connexion par IP et les événements d'audit enregistrent les adresses IP des développeurs au lieu de celle de l'équilibreur de charge.

227 227 

228 Sur les deux pistes, le frontal est un ALB interne, qu'il soit créé directement ou par le contrôleur AWS Load Balancer, et les nœuds d'un ALB prennent des adresses à partir des sous-réseaux auxquels il est attaché, donc définissez `trusted_proxies` sur les CIDR de ces sous-réseaux. Cela approuve chaque hôte de ces sous-réseaux en tant que proxy. Gardez la source d'entrée de l'ALB, votre CIDR d'entreprise, de ne pas chevaucher, et ne partagez pas les sous-réseaux avec des charges de travail non fiables qui pourraient usurper les adresses IP des clients via `X-Forwarded-For`.228 Sur les deux pistes, le frontal est un ALB interne, qu'il soit créé directement ou par le contrôleur AWS Load Balancer, et les nœuds d'un ALB prennent des adresses à partir des sous-réseaux auxquels il est attaché, donc définissez `trusted_proxies` sur les CIDR de ces sous-réseaux. Cela approuve chaque hôte de ces sous-réseaux en tant que proxy. Veillez à ce que la source d'entrée de l'ALB, votre CIDR d'entreprise, ne les chevauche pas, et ne partagez pas les sous-réseaux avec des charges de travail non fiables qui pourraient usurper les adresses IP des clients via `X-Forwarded-For`.

229 229 

230 L'attribut de préservation du port client de l'ALB, `routing.http.xff_client_port.enabled`, peut rester à l'un ou l'autre paramètre : avec lui activé, l'ALB écrit le client comme `203.0.113.7:54321` ou `[2001:db8::1]:54321`, et la passerelle lit les deux avec le port supprimé.230 L'attribut de préservation du port client de l'ALB, `routing.http.xff_client_port.enabled`, peut rester à l'un ou l'autre paramètre : avec lui activé, l'ALB écrit le client comme `203.0.113.7:54321` ou `[2001:db8::1]:54321`, et la passerelle lit les deux avec le port supprimé.

231 231 


244 # Le serveur d'autorisation org Okta retourne un id_token mince qui omet244 # Le serveur d'autorisation org Okta retourne un id_token mince qui omet

245 # l'email et les groupes ; la passerelle les remplit à partir de /userinfo.245 # l'email et les groupes ; la passerelle les remplit à partir de /userinfo.

246 userinfo_fallback: true246 userinfo_fallback: true

247 # Okta émet des groupes uniquement lorsque la portée `groups` est demandée et que247 # Okta émet des groupes uniquement lorsque le scope `groups` est demandé et que

248 # le filtre de revendication de groupes de l'application les autorise.248 # le filtre de revendication de groupes de l'application les autorise.

249 scopes: [openid, profile, email, offline_access, groups]249 scopes: [openid, profile, email, offline_access, groups]

250 250 


262 - provider: bedrock262 - provider: bedrock

263 region: <your-region> # correspondre à $AWS_REGION pour que les ARN de la politique IAM263 region: <your-region> # correspondre à $AWS_REGION pour que les ARN de la politique IAM

264 # le couvrent264 # le couvrent

265 auth: {} # chaîne de credentials par défaut d'AWS :265 auth: {} # chaîne d'identifiants par défaut d'AWS :

266 # rôle de tâche ECS, ou IRSA sur EKS266 # rôle de tâche ECS, ou IRSA sur EKS

267 ```267 ```

268 268 

269 <Note>269 <Note>

270 Seul le bloc `oidc` est spécifique à Okta. Pour utiliser Microsoft Entra ID à la place, définissez `issuer` sur `https://login.microsoftonline.com/<tenant-id>/v2.0`, supprimez `userinfo_fallback` et la portée `groups`, et notez qu'Entra émet des ID d'objet de groupe plutôt que des noms, donc [`managed.policies`](/docs/fr/claude-apps-gateway-config#managed) doit correspondre sur les GUID, ou sur les rôles d'application avec `oidc.groups_claim: roles`. Consultez [Configuration du fournisseur d'identité](/docs/fr/claude-apps-gateway-deploy#identity-provider-setup).270 Seul le bloc `oidc` est spécifique à Okta. Pour utiliser Microsoft Entra ID à la place, définissez `issuer` sur `https://login.microsoftonline.com/<tenant-id>/v2.0`, supprimez `userinfo_fallback` et le scope `groups`, et notez qu'Entra émet des ID d'objet de groupe plutôt que des noms, donc [`managed.policies`](/docs/fr/claude-apps-gateway-config#managed) doit correspondre sur les GUID, ou sur les rôles d'application avec `oidc.groups_claim: roles`. Consultez [Configuration du fournisseur d'identité](/docs/fr/claude-apps-gateway-deploy#identity-provider-setup).

271 </Note>271 </Note>

272 </Step>272 </Step>

273 273 


289 Les arguments littéraux `--secret-string` sont visibles dans la table des processus et dans les journaux d'audit/EDR pendant l'exécution de chaque commande. Sur un hôte partagé ou surveillé, mettez la valeur dans un fichier `0600` et passez `--secret-string file://<path>` à la place. Le `setup.sh` du bundle garde les valeurs secrètes hors de l'argv du processus de la même façon, en passant des fichiers temporaires `0600` à `--cli-input-json`.289 Les arguments littéraux `--secret-string` sont visibles dans la table des processus et dans les journaux d'audit/EDR pendant l'exécution de chaque commande. Sur un hôte partagé ou surveillé, mettez la valeur dans un fichier `0600` et passez `--secret-string file://<path>` à la place. Le `setup.sh` du bundle garde les valeurs secrètes hors de l'argv du processus de la même façon, en passant des fichiers temporaires `0600` à `--cli-input-json`.

290 </Note>290 </Note>

291 291 

292 Contrairement aux secrets, `gateway.yaml` lui-même ne contient aucune valeur secrète, car chaque credential se résout au démarrage via l'expansion [`${VAR}` ou `${file:...}`](/docs/fr/claude-apps-gateway-config#secret-expansion). La façon dont tout atteint le conteneur diffère selon la piste :292 Contrairement aux secrets, `gateway.yaml` lui-même ne contient aucune valeur secrète, car tous les identifiants se résolvent au démarrage via l'expansion [`${VAR}` ou `${file:...}`](/docs/fr/claude-apps-gateway-config#secret-expansion). La façon dont tout atteint le conteneur diffère selon la piste :

293 293 

294 * Sur ECS, l'étape de construction suivante copie `gateway.yaml` dans l'image à `/etc/claude/gateway.yaml`, et la définition de tâche injecte les trois secrets en tant que variables d'environnement via son champ `secrets`, donc le YAML référence `${GATEWAY_JWT_SECRET}`, `${OIDC_CLIENT_SECRET}` et `${GATEWAY_POSTGRES_URL}`.294 * Sur ECS, l'étape de build suivante copie `gateway.yaml` dans l'image à `/etc/claude/gateway.yaml`, et la définition de tâche injecte les trois secrets en tant que variables d'environnement via son champ `secrets`, donc le YAML référence `${GATEWAY_JWT_SECRET}`, `${OIDC_CLIENT_SECRET}` et `${GATEWAY_POSTGRES_URL}`.

295 * Sur EKS, montez `gateway.yaml` à partir d'une ConfigMap et les secrets en tant que fichiers à `/secrets`, référencés comme `${file:/secrets/...}`. Sourcez les secrets Kubernetes à partir de Secrets Manager avec External Secrets Operator ou le pilote AWS du pilote CSI Secrets Store, ou créez-les directement avec `kubectl`.295 * Sur EKS, montez `gateway.yaml` à partir d'une ConfigMap et les secrets en tant que fichiers à `/secrets`, référencés comme `${file:/secrets/...}`. Sourcez les secrets Kubernetes à partir de Secrets Manager avec External Secrets Operator ou le fournisseur AWS du pilote CSI Secrets Store, ou créez-les directement avec `kubectl`.

296 </Step>296 </Step>

297 297 

298 <Step title="Construire et pousser l'image vers Amazon ECR">298 <Step title="Construire et pousser l'image vers Amazon ECR">

299 Construisez l'image selon les [exigences d'image de conteneur](/docs/fr/claude-apps-gateway-deploy#container-image), en plaçant le binaire glibc `linux-x64` à `./claude` dans le contexte de construction. Écrivez votre propre Dockerfile selon ces exigences ou commencez par le [`Dockerfile`](https://github.com/anthropics/claude-code/blob/main/examples/gateway/aws/Dockerfile) du bundle, qui copie le `gateway.yaml` rempli des étapes précédentes dans l'image à `/etc/claude/gateway.yaml`. Sur ECS, cette copie intégrée est la façon dont la configuration atteint le conteneur, c'est pourquoi la construction vient après l'écriture du fichier. La piste EKS monte plutôt `gateway.yaml` à partir d'une ConfigMap au déploiement, donc la copie intégrée n'est pas utilisée là.299 Construisez l'image selon les [exigences d'image de conteneur](/docs/fr/claude-apps-gateway-deploy#container-image), en plaçant le binaire glibc `linux-x64` à `./claude` dans le contexte de build. Écrivez votre propre Dockerfile selon ces exigences ou commencez par le [`Dockerfile`](https://github.com/anthropics/claude-code/blob/main/examples/gateway/aws/Dockerfile) du bundle, qui copie le `gateway.yaml` rempli des étapes précédentes dans l'image à `/etc/claude/gateway.yaml`. Sur ECS, cette copie intégrée est la façon dont la configuration atteint le conteneur, c'est pourquoi le build vient après l'écriture du fichier. La piste EKS monte plutôt `gateway.yaml` à partir d'une ConfigMap au déploiement, donc la copie intégrée n'est pas utilisée là.

300 300 

301 L'image porte également le bundle de certificats AWS RDS comme ancre de confiance pour la chaîne de connexion `sslmode=verify-full`, donc téléchargez-le d'abord dans le contexte de construction. AWS fait tourner le bundle (les nouvelles autorités de certification régionales sont ajoutées), donc téléchargez-le par construction plutôt que d'épingler une somme de contrôle ou de le valider :301 L'image porte également le bundle de certificats AWS RDS comme ancre de confiance pour la chaîne de connexion `sslmode=verify-full`, donc téléchargez-le d'abord dans le contexte de build. AWS fait tourner le bundle (les nouvelles autorités de certification régionales sont ajoutées), donc téléchargez-le à chaque build plutôt que d'épingler une somme de contrôle ou de le valider :

302 302 

303 ```bash theme={null}303 ```bash theme={null}

304 curl -fL --proto '=https' -o rds-global-bundle.pem \304 curl -fL --proto '=https' -o rds-global-bundle.pem \

305 https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem305 https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem

306 ```306 ```

307 307 

308 Les exigences d'image de conteneur ne couvrent pas le bundle, donc si vous écrivez votre propre Dockerfile, ajoutez les deux lignes qui le copient et le font confiance ; le Dockerfile du bundle les inclut déjà :308 Les exigences d'image de conteneur ne couvrent pas le bundle, donc si vous écrivez votre propre Dockerfile, ajoutez les deux lignes qui le copient et le font confiance ; le `Dockerfile` du bundle les inclut déjà :

309 309 

310 ```dockerfile theme={null}310 ```dockerfile theme={null}

311 COPY rds-global-bundle.pem /etc/claude/rds-global-bundle.pem311 COPY rds-global-bundle.pem /etc/claude/rds-global-bundle.pem

312 ENV NODE_EXTRA_CA_CERTS=/etc/claude/rds-global-bundle.pem312 ENV NODE_EXTRA_CA_CERTS=/etc/claude/rds-global-bundle.pem

313 ```313 ```

314 314 

315 Créez le référentiel ECR et connectez Docker à celui-ci. Les balises immuables signifient que la balise `<version>` que l'étape de déploiement épingle ne peut pas être ultérieurement silencieusement réorientée vers une image différente :315 Créez le dépôt ECR et connectez Docker à celui-ci. Les balises immuables signifient que la balise `<version>` que l'étape de déploiement épingle ne peut pas être ultérieurement silencieusement réorientée vers une image différente :

316 316 

317 ```bash theme={null}317 ```bash theme={null}

318 aws ecr create-repository --repository-name claude-gateway \318 aws ecr create-repository --repository-name claude-gateway \


425 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"425 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"

426 ```426 ```

427 427 

428 La période de grâce de 60 secondes donne à une tâche froide le temps de tirer l'image, de se connecter au store et de répondre à sa première vérification de santé avant qu'ECS ne commence à compter les défaillances par rapport au déploiement. La vérification de santé du groupe cible sur `GET /readyz` vérifie que le store est accessible, donc une tâche qui ne peut pas atteindre Postgres n'entre jamais en rotation. Pour garder les tâches passant la vérification lors d'une courte panne de base de données telle qu'un basculement RDS, définissez `store.readiness_grace_seconds` comme décrit dans [Comportement en cas de panne](/docs/fr/claude-apps-gateway-deploy#outage-behavior), qui couvre également l'alternative `/healthz`.428 La période de grâce de 60 secondes donne à une tâche froide le temps de tirer l'image, de se connecter au store et de répondre à sa première vérification de santé avant qu'ECS ne commence à compter les défaillances par rapport au déploiement.

429 429 

430 Les tâches s'exécutent dans des sous-réseaux privés sans IP publique, donc tout le trafic sortant (vers Bedrock, votre IdP, Secrets Manager, ECR et CloudWatch Logs) passe par la passerelle NAT. Pour garder le trafic Bedrock hors du chemin public, créez un point de terminaison VPC d'interface `bedrock-runtime` et pointez l'`base_url` upstream vers celui-ci, comme indiqué dans la [référence upstream Bedrock](/docs/fr/claude-apps-gateway-config#amazon-bedrock) ; l'IdP a toujours besoin d'une sortie Internet.430 La vérification de santé du groupe cible sur `GET /readyz` vérifie que le store est accessible, donc une tâche qui ne peut pas atteindre Postgres n'entre jamais en rotation. Pour garder les tâches passant la vérification lors d'une courte panne de base de données telle qu'un basculement RDS, définissez `store.readiness_grace_seconds` comme décrit dans [Comportement en cas de panne](/docs/fr/claude-apps-gateway-deploy#outage-behavior), qui couvre également l'alternative `/healthz`.

431 

432 Les tâches s'exécutent dans des sous-réseaux privés sans IP publique, donc tout le trafic sortant (vers Bedrock, votre IdP, Secrets Manager, ECR et CloudWatch Logs) passe par la passerelle NAT. Pour garder le trafic Bedrock hors du chemin public, créez un endpoint VPC d'interface `bedrock-runtime` et pointez l'`base_url` upstream vers celui-ci, comme indiqué dans la [référence upstream Bedrock](/docs/fr/claude-apps-gateway-config#amazon-bedrock) ; l'IdP a toujours besoin d'une sortie Internet.

431 433 

432 Terminez en donnant aux développeurs un nom d'hôte privé résolvable : dans une zone hébergée privée Route 53, aliasez le nom DNS interne de la passerelle à l'ALB, et définissez `listen.public_url` sur ce nom d'hôte. Le nom `*.elb.amazonaws.com` propre de l'ALB se résout en adresses privées sur un ALB interne, mais il ne peut pas porter votre certificat ACM, donc utilisez votre propre nom.434 Terminez en donnant aux développeurs un nom d'hôte privé résolvable : dans une zone hébergée privée Route 53, aliasez le nom DNS interne de la passerelle à l'ALB, et définissez `listen.public_url` sur ce nom d'hôte. Le nom `*.elb.amazonaws.com` propre de l'ALB se résout en adresses privées sur un ALB interne, mais il ne peut pas porter votre certificat ACM, donc utilisez votre propre nom.

433 435 


435 </Tab>437 </Tab>

436 438 

437 <Tab title="EKS">439 <Tab title="EKS">

438 Cette piste a besoin de `kubectl` et `eksctl` installés localement, et d'un cluster EKS existant avec un fournisseur OIDC IAM et le contrôleur AWS Load Balancer installé. Le cluster doit être sur `$VPC_ID` pour que les pods puissent atteindre le point de terminaison privé RDS, et le groupe de sécurité `claude-gateway-db` doit admettre le groupe de sécurité du pod ou du nœud du cluster à la place de `$GW_SG`.440 Cette piste a besoin de `kubectl` et `eksctl` installés localement, et d'un cluster EKS existant avec un fournisseur OIDC IAM et le contrôleur AWS Load Balancer installé. Le cluster doit être sur `$VPC_ID` pour que les pods puissent atteindre l'endpoint privé RDS, et le groupe de sécurité `claude-gateway-db` doit admettre le groupe de sécurité du pod ou du nœud du cluster à la place de `$GW_SG`.

439 441 

440 Sur EKS, la passerelle obtient ses credentials Bedrock via IRSA plutôt que les rôles ECS. La politique de confiance `ecs-tasks.amazonaws.com` de l'étape IAM ne s'applique pas ici ; IRSA a besoin d'un rôle dont la politique de confiance fédère sur le fournisseur OIDC du cluster, limité à `system:serviceaccount:claude-gateway:gateway`. `eksctl create iamserviceaccount` crée ce rôle, attache les politiques et annote le compte de service Kubernetes avec l'ARN du rôle en une seule étape. Transformez les deux documents de politique de l'étape IAM en politiques gérées qu'il peut attacher :442 Sur EKS, la passerelle obtient ses identifiants Bedrock via IRSA plutôt que les rôles ECS. La politique de confiance `ecs-tasks.amazonaws.com` de l'étape IAM ne s'applique pas ici ; IRSA a besoin d'un rôle dont la politique de confiance fédère sur le fournisseur OIDC du cluster, limité à `system:serviceaccount:claude-gateway:gateway`. `eksctl create iamserviceaccount` crée ce rôle, attache les politiques et annote le compte de service Kubernetes avec l'ARN du rôle en une seule étape. Transformez les deux documents de politique de l'étape IAM en politiques gérées qu'il peut attacher :

441 443 

442 ```bash theme={null}444 ```bash theme={null}

443 BEDROCK_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-bedrock-invoke \445 BEDROCK_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-bedrock-invoke \


453 --approve455 --approve

454 ```456 ```

455 457 

456 La politique des secrets n'est nécessaire que lorsque les pods lisent eux-mêmes Secrets Manager, comme le fait le pilote AWS du pilote CSI Secrets Store en utilisant le compte de service du pod de montage ; supprimez-la si vous créez les secrets Kubernetes d'une autre façon. Le fournisseur a besoin des deux actions de la politique : il appelle `DescribeSecret` lorsqu'il réconcilie les secrets rotatés, donc une subvention `GetSecretValue`-uniquement monte au premier déploiement mais arrête de récupérer les rotations.458 La politique des secrets n'est nécessaire que lorsque les pods lisent eux-mêmes Secrets Manager, comme le fait le fournisseur AWS du pilote CSI Secrets Store en utilisant le compte de service du pod de montage ; supprimez-la si vous créez les secrets Kubernetes d'une autre façon. Le fournisseur a besoin des deux actions de la politique : il appelle `DescribeSecret` lorsqu'il réconcilie les secrets ayant fait l'objet d'une rotation, donc une autorisation limitée à `GetSecretValue` permet le montage au premier déploiement mais cesse de récupérer les rotations.

457 459 

458 Déployez la passerelle en tant que Deployment standard plus un Service et un Ingress, comme décrit dans [Déploiement Kubernetes](/docs/fr/claude-apps-gateway-deploy#kubernetes), avec :460 Déployez la passerelle en tant que Deployment standard plus un Service et un Ingress, comme décrit dans [Déploiement Kubernetes](/docs/fr/claude-apps-gateway-deploy#kubernetes), avec :

459 461 


476 </Step>478 </Step>

477 479 

478 <Step title="Pousser l'URL de la passerelle vers les machines des développeurs">480 <Step title="Pousser l'URL de la passerelle vers les machines des développeurs">

479 La passerelle s'exécute maintenant, mais les développeurs ne peuvent pas la atteindre à partir de `/login` jusqu'à ce que l'URL de la passerelle soit sur leurs machines. Définissez `forceLoginMethod` et `forceLoginGatewayUrl` dans le [fichier de paramètres gérés](/docs/fr/claude-apps-gateway#set-the-gateway-url) que vous déployez sur chaque appareil via MDM. Il n'y a pas d'option de passerelle dans le sélecteur de connexion pour qu'un développeur sélectionne manuellement.481 La passerelle s'exécute maintenant, mais les développeurs ne peuvent pas l'atteindre à partir de `/login` tant que l'URL de la passerelle n'est pas sur leurs machines. Définissez `forceLoginMethod` et `forceLoginGatewayUrl` dans le [fichier de paramètres gérés](/docs/fr/claude-apps-gateway#set-the-gateway-url) que vous déployez sur chaque appareil via MDM. Il n'y a pas d'option de passerelle dans le sélecteur de connexion pour qu'un développeur sélectionne manuellement.

480 </Step>482 </Step>

481</Steps>483</Steps>

482 484 

Details

416* **Machines virtuelles isolées** : chaque session s'exécute dans une VM isolée gérée par Anthropic. Les sessions que votre organisation achemine vers un [environnement auto-hébergé](/docs/fr/self-hosted-environments) s'exécutent sur votre propre infrastructure à la place, où l'isolation est la responsabilité de votre déploiement416* **Machines virtuelles isolées** : chaque session s'exécute dans une VM isolée gérée par Anthropic. Les sessions que votre organisation achemine vers un [environnement auto-hébergé](/docs/fr/self-hosted-environments) s'exécutent sur votre propre infrastructure à la place, où l'isolation est la responsabilité de votre déploiement

417* <span id="default-allowed-domains" />**Contrôles d'accès réseau** : dans les environnements hébergés par Anthropic, l'accès réseau est limité par défaut et peut être désactivé. Consultez [Accès réseau](/docs/fr/cloud-environments#network-access) pour les niveaux d'accès, les [domaines autorisés par défaut](/docs/fr/cloud-environments#default-allowed-domains), et le trafic qui ne passe pas par la liste d'autorisation. Dans un environnement auto-hébergé, vous restreignez la sortie de session à votre propre limite réseau. Lors de l'exécution avec l'accès réseau désactivé, Claude Code peut toujours communiquer avec l'API Anthropic, ce qui peut permettre aux données de quitter la VM.417* <span id="default-allowed-domains" />**Contrôles d'accès réseau** : dans les environnements hébergés par Anthropic, l'accès réseau est limité par défaut et peut être désactivé. Consultez [Accès réseau](/docs/fr/cloud-environments#network-access) pour les niveaux d'accès, les [domaines autorisés par défaut](/docs/fr/cloud-environments#default-allowed-domains), et le trafic qui ne passe pas par la liste d'autorisation. Dans un environnement auto-hébergé, vous restreignez la sortie de session à votre propre limite réseau. Lors de l'exécution avec l'accès réseau désactivé, Claude Code peut toujours communiquer avec l'API Anthropic, ce qui peut permettre aux données de quitter la VM.

418* **Protection des identifiants** : dans les environnements hébergés par Anthropic, les identifiants git et les clés de signature restent en dehors du sandbox, et un proxy authentifie au nom de la session avec des identifiants limités. Dans un environnement auto-hébergé, votre déploiement fournit les identifiants git ; consultez [Configurer git](/docs/fr/self-hosted-environments-deploy#configure-git)418* **Protection des identifiants** : dans les environnements hébergés par Anthropic, les identifiants git et les clés de signature restent en dehors du sandbox, et un proxy authentifie au nom de la session avec des identifiants limités. Dans un environnement auto-hébergé, votre déploiement fournit les identifiants git ; consultez [Configurer git](/docs/fr/self-hosted-environments-deploy#configure-git)

419* **Identifiants API** : dans les environnements hébergés par Anthropic sur les plans Pro et Max, les clés que vous [ajoutez à un environnement cloud](/docs/fr/cloud-environments#add-api-credentials) restent en dehors du sandbox de la même manière, attachées aux demandes correspondantes après qu'elles quittent la session. Un environnement auto-hébergé n'a pas d'identifiants API, et les plans Team et Enterprise ne les ont pas encore419* **Secrets réseau** : dans les environnements hébergés par Anthropic sur les plans Pro et Max, les clés que vous [ajoutez à un environnement cloud](/docs/fr/cloud-environments#add-api-credentials) restent en dehors du sandbox de la même manière, attachées aux requêtes correspondantes après qu'elles quittent la session. Un environnement auto-hébergé n'a pas de secrets réseau, et les plans Team et Enterprise ne les ont pas encore

420* **Analyse sécurisée** : le code est analysé et modifié dans l'environnement isolé de la session avant la création de PR420* **Analyse sécurisée** : le code est analysé et modifié dans l'environnement isolé de la session avant la création de PR

421 421 

422<h2 id="troubleshooting">422<h2 id="troubleshooting">


442`claude --cloud` et `claude --teleport` nécessitent une connexion avec un compte claude.ai. Si vous vous authentifiez avec une clé API, ou si vos détails de compte stockés sont obsolètes, vous voyez l'un des messages suivants :442`claude --cloud` et `claude --teleport` nécessitent une connexion avec un compte claude.ai. Si vous vous authentifiez avec une clé API, ou si vos détails de compte stockés sont obsolètes, vous voyez l'un des messages suivants :

443 443 

444* `Unable to get organization UUID`444* `Unable to get organization UUID`

445* Un message indiquant que l'authentification par clé API n'est pas suffisante445* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

446* `Error loading Claude Code sessions` dans le sélecteur de session, lorsque vous exécutez `claude --teleport` sans ID de session446* `Error loading Claude Code sessions` dans le sélecteur de session, lorsque vous exécutez `claude --teleport` sans ID de session

447 447 

448Exécutez `/login` pour vous connecter avec votre compte claude.ai, puis réessayez la commande. Si l'erreur nomme votre fournisseur à la place, consultez le [tableau d'erreurs](#errors-when-sending-to-a-cloud-session) : les sessions cloud ne sont pas disponibles via les fournisseurs tiers.448Exécutez [`claude auth login`](/docs/fr/cli-reference#cli-commands) dans votre shell pour vous connecter avec votre compte claude.ai, puis réessayez la commande. Dans une session en cours, `/login` fait de même. Si l'erreur nomme votre fournisseur à la place, consultez le [tableau d'erreurs](#errors-when-sending-to-a-cloud-session) : les sessions cloud ne sont pas disponibles via les fournisseurs tiers.

449 

450De la v2.1.274 à la v2.1.289, le message de connexion était `Claude Code cloud sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.`

449 451 

450<h3 id="remote-control-session-expired-or-access-denied">452<h3 id="remote-control-session-expired-or-access-denied">

451 Session Remote Control expirée ou accès refusé453 Session Remote Control expirée ou accès refusé

Details

34 oneLiner: 'Project instructions Claude reads every session',34 oneLiner: 'Project instructions Claude reads every session',

35 when: 'Loaded into context at the start of every session',35 when: 'Loaded into context at the start of every session',

36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',

37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/docs/en/skills">skill</A> or a path-scoped <A href="/docs/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>, <>If your repo already has an <C>AGENTS.md</C> for other coding agents, Claude Code <A href="/docs/en/memory#agents-md">can read that</A> on its own or alongside CLAUDE.md</>],37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/docs/en/skills">skill</A> or a path-scoped <A href="/docs/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>, <>If your repo already has an <C>AGENTS.md</C> for other coding agents, Claude Code <A href="/docs/en/memory#agents-md">can read that</A> in place of a <C>CLAUDE.md</C></>],

38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',

39 example: `# Project conventions39 example: `# Project conventions

40 40 


164 icon: 'folder',164 icon: 'folder',

165 color: '#9B7BC4',165 color: '#9B7BC4',

166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',

167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when Claude reads, writes, or edits a matching file</>,

168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads, writes, or edits a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/docs/en/hooks">hooks</A> or <A href="/docs/en/permissions">permissions</A>.</>],168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads, writes, or edits a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/docs/en/hooks">hooks</A> or <A href="/docs/en/permissions">permissions</A>.</>],

169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],

170 docsLink: '/en/memory#organize-rules-with-claude/rules/',170 docsLink: '/en/memory#organize-rules-with-claude/rules/',


176 color: '#9B7BC4',176 color: '#9B7BC4',

177 badge: 'committed',177 badge: 'committed',

178 oneLiner: 'Test conventions scoped to test files',178 oneLiner: 'Test conventions scoped to test files',

179 when: <>Loaded when Claude reads a file matching the <C>paths:</C> globs below</>,179 when: <>Loaded when Claude reads, writes, or edits a file matching the <C>paths:</C> globs below</>,

180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,

181 example: `---181 example: `---

182paths:182paths:


197 color: '#9B7BC4',197 color: '#9B7BC4',

198 badge: 'committed',198 badge: 'committed',

199 oneLiner: 'API conventions scoped to backend code',199 oneLiner: 'API conventions scoped to backend code',

200 when: <>Loaded when Claude reads a file matching the <C>paths:</C> glob below</>,200 when: <>Loaded when Claude reads, writes, or edits a file matching the <C>paths:</C> glob below</>,

201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is editing API routes.</>,201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is working on API routes.</>,

202 example: `---202 example: `---

203paths:203paths:

204 - "src/api/**/*.ts"204 - "src/api/**/*.ts"


605 icon: 'folder',605 icon: 'folder',

606 color: '#9B7BC4',606 color: '#9B7BC4',

607 oneLiner: 'User-level rules that apply to every project',607 oneLiner: 'User-level rules that apply to every project',

608 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,608 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when Claude reads, writes, or edits a matching file</>,

609 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',609 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',

610 docsLink: '/en/memory#organize-rules-with-claude/rules/',610 docsLink: '/en/memory#organize-rules-with-claude/rules/',

611 children: []611 children: []


1434 1434 

1435Sur Windows, `~/.claude` se résout en `%USERPROFILE%\.claude`. Si vous définissez [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars), chaque chemin `~/.claude` sur cette page se trouve sous ce répertoire à la place.1435Sur Windows, `~/.claude` se résout en `%USERPROFILE%\.claude`. Si vous définissez [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars), chaque chemin `~/.claude` sur cette page se trouve sous ce répertoire à la place.

1436 1436 

1437La plupart des utilisateurs ne modifient que `CLAUDE.md` et `settings.json`. Si votre référentiel possède déjà un `AGENTS.md` pour d'autres agents de codage, Claude Code [peut le lire](/docs/fr/memory#agents-md) seul ou aux côtés de `CLAUDE.md`. Le reste du répertoire est optionnel : ajoutez des skills, des rules ou des subagents selon vos besoins.1437La plupart des utilisateurs ne modifient que `CLAUDE.md` et `settings.json`. Si votre dépôt possède déjà un `AGENTS.md` pour d'autres agents de codage, Claude Code [peut le lire](/docs/fr/memory#agents-md) à la place d'un `CLAUDE.md`. Le reste du répertoire est optionnel : ajoutez des skills, des règles ou des sous-agents selon vos besoins.

1438 1438 

1439<h2 id="explore-the-directory">1439<h2 id="explore-the-directory">

1440 Explorez le répertoire1440 Explorez le répertoire


1454| - | - | - |1454| - | - | - |

1455| `managed-settings.json` | Au niveau du système, varie selon le système d'exploitation | Paramètres appliqués par l'entreprise que vous ne pouvez pas remplacer, à l'exception de [quelques cas particuliers](/docs/fr/settings#security-keys-where-the-stricter-value-applies). Consultez [où enregistrer le fichier](/docs/fr/managed-settings#deploy-a-managed-settings-file) et [quelle source gérée Claude Code utilise](/docs/fr/managed-settings#precedence-within-the-managed-tier). |1455| `managed-settings.json` | Au niveau du système, varie selon le système d'exploitation | Paramètres appliqués par l'entreprise que vous ne pouvez pas remplacer, à l'exception de [quelques cas particuliers](/docs/fr/settings#security-keys-where-the-stricter-value-applies). Consultez [où enregistrer le fichier](/docs/fr/managed-settings#deploy-a-managed-settings-file) et [quelle source gérée Claude Code utilise](/docs/fr/managed-settings#precedence-within-the-managed-tier). |

1456| `CLAUDE.local.md` | Racine du projet | Vos préférences privées pour ce projet, chargées aux côtés de CLAUDE.md. Créez-le manuellement et ajoutez-le à `.gitignore`. |1456| `CLAUDE.local.md` | Racine du projet | Vos préférences privées pour ce projet, chargées aux côtés de CLAUDE.md. Créez-le manuellement et ajoutez-le à `.gitignore`. |

1457| `AGENTS.md` | Racine du projet, `.claude/`, ou n'importe quel répertoire | Instructions de projet que vous écrivez pour les agents de codage IA. Claude Code peut [le charger](/docs/fr/memory#agents-md) de lui-même ou aux côtés de `CLAUDE.md`. |1457| `AGENTS.md` | Racine du projet, `.claude/`, ou n'importe quel répertoire | Instructions de projet que vous écrivez pour les agents de codage IA. Claude Code peut [le charger](/docs/fr/memory#agents-md) à la place d'un `CLAUDE.md`. |

1458| Plugins installés | `~/.claude/plugins` | Marketplaces clonées, versions de plugins installées, l'enregistrement d'installation `installed_plugins.json` et données par plugin, gérées par les commandes `claude plugin`. Les plugins [synchronisés à partir de votre compte claude.ai](/docs/fr/plugins/loading#synced-plugins) se téléchargent dans `~/.claude/plugins/synced/`. Pour un plugin installé à partir d'une source [`command`](/docs/fr/plugins/marketplace-reference#command-plugin-source) de marketplace en mode lien, Claude Code stocke les liens ici au lieu d'une copie, et les fichiers du plugin restent dans le répertoire que la commande affiche. Une source `command` nécessite Claude Code v2.1.229 ou version ultérieure. Un plugin listé par chemin relatif dans une marketplace que vous avez ajoutée à partir d'un chemin local [se charge également sur place](/docs/fr/plugins/loading#find-plugins-on-disk) à partir de son répertoire source plutôt qu'à partir d'une copie en cache. Consultez [mise en cache des plugins](/docs/fr/plugins/loading#find-plugins-on-disk) pour savoir comment les versions orphelines sont nettoyées. |1458| Plugins installés | `~/.claude/plugins` | Marketplaces clonées, versions de plugins installées, l'enregistrement d'installation `installed_plugins.json` et données par plugin, gérées par les commandes `claude plugin`. Les plugins [synchronisés à partir de votre compte claude.ai](/docs/fr/plugins/loading#synced-plugins) se téléchargent dans `~/.claude/plugins/synced/`. Pour un plugin installé à partir d'une source [`command`](/docs/fr/plugins/marketplace-reference#command-plugin-source) de marketplace en mode lien, Claude Code stocke les liens ici au lieu d'une copie, et les fichiers du plugin restent dans le répertoire que la commande affiche. Une source `command` nécessite Claude Code v2.1.229 ou version ultérieure. Un plugin listé par chemin relatif dans une marketplace que vous avez ajoutée à partir d'un chemin local [se charge également sur place](/docs/fr/plugins/loading#find-plugins-on-disk) à partir de son répertoire source plutôt qu'à partir d'une copie en cache. Consultez [mise en cache des plugins](/docs/fr/plugins/loading#find-plugins-on-disk) pour savoir comment les versions orphelines sont nettoyées. |

1459 1459 

1460`~/.claude` contient également les données que Claude Code écrit au fur et à mesure que vous travaillez : transcriptions, historique des invites, instantanés de fichiers, caches et journaux. Consultez [données d'application](#application-data) ci-dessous.1460`~/.claude` contient également les données que Claude Code écrit au fur et à mesure que vous travaillez : transcriptions, historique des invites, instantanés de fichiers, caches et journaux. Consultez [données d'application](#application-data) ci-dessous.

Details

57* **La conversation du projet** : une session longue durée unique où Claude agit en tant que coordinateur. Il prend ce que vous envoyez, décide ce qui devient un thread, et garde une trace de chaque thread qu'il a démarré. Il voit ce que les threads rapportent, pas chaque étape qu'ils prennent.57* **La conversation du projet** : une session longue durée unique où Claude agit en tant que coordinateur. Il prend ce que vous envoyez, décide ce qui devient un thread, et garde une trace de chaque thread qu'il a démarré. Il voit ce que les threads rapportent, pas chaque étape qu'ils prennent.

58* **Threads** : les travailleurs. Chacun est une session distincte avec sa propre fenêtre de contexte qui fait un morceau de travail et rapporte à la conversation quand il termine. Un thread cloud travaille sur sa propre branche et ouvre une pull request quand le travail l'exige.58* **Threads** : les travailleurs. Chacun est une session distincte avec sa propre fenêtre de contexte qui fait un morceau de travail et rapporte à la conversation quand il termine. Un thread cloud travaille sur sa propre branche et ouvre une pull request quand le travail l'exige.

59* **Ce que chaque thread cloud commence avec** :59* **Ce que chaque thread cloud commence avec** :

60 * Les référentiels et fichiers du projet, plus ses [instructions et mémoire](#give-a-project-standing-context)60 * Les dépôts et fichiers du projet, plus ses [instructions et mémoire](#give-a-project-standing-context)

61 * Le `CLAUDE.md` et skills dans [chacun des référentiels du projet](#what-threads-pick-up-from-your-repositories), et dans un projet avec un référentiel, les règles de permission et les hooks de ce référentiel aussi61 * Le `CLAUDE.md` et skills dans [chacun des dépôts du projet](#what-threads-pick-up-from-your-repositories), et dans un projet avec un dépôt, les règles de permission et les hooks de ce dépôt aussi

62 * Les [connecteurs](#get-skills-plugins-connectors-and-tools-into-threads) sur votre compte claude.ai62 * Les [connecteurs](#get-skills-plugins-connectors-and-tools-into-threads) sur votre compte claude.ai

63 * Un [environnement cloud](#choose-an-environment-for-threads) qui définit son accès réseau, les variables d'environnement, les identifiants API et les outils installés63 * Un [environnement cloud](#choose-an-environment-for-threads) qui définit son accès réseau, les variables d'environnement, les secrets réseau et les outils installés

64* **Le volet Overview** : où vous [voyez tous les threads à la fois](#see-what-needs-you-in-overview) et lesquels vous attendent. Ses autres onglets sont **Library** pour les fichiers que vous avez ajoutés et les fichiers que les threads ont produits, **Pull requests** pour ceux que les threads ont ouverts, et **Routines** pour le travail programmé dans le projet.64* **Le volet Overview** : où vous [voyez tous les threads à la fois](#see-what-needs-you-in-overview) et lesquels vous attendent. Ses autres onglets sont **Library** pour les fichiers que vous avez ajoutés et les fichiers que les threads ont produits, **Pull requests** pour ceux que les threads ont ouverts, et **Routines** pour le travail programmé dans le projet.

65 65 

66Les threads cloud ne reprennent rien de la configuration Claude Code sur votre propre machine. [Obtenir des skills, des plugins, des connecteurs et des outils dans les threads](#get-skills-plugins-connectors-and-tools-into-threads) couvre comment leur donner ce qui leur manquerait autrement.66Les threads cloud ne reprennent rien de la configuration Claude Code sur votre propre machine. [Obtenir des skills, des plugins, des connecteurs et des outils dans les threads](#get-skills-plugins-connectors-and-tools-into-threads) couvre comment leur donner ce qui leur manquerait autrement.


92 92 

93* **Plan** : vous êtes sur Pro ou Max et **Projects** s'affiche dans votre barre latérale.93* **Plan** : vous êtes sur Pro ou Max et **Projects** s'affiche dans votre barre latérale.

94* **GitHub, si le projet travaillera sur du code** : votre code est sur github.com plutôt que sur GitHub Enterprise Server, GitLab ou Bitbucket, votre compte GitHub connecté y a accès en push, et l'application Claude GitHub est installée dessus. Si vous avez connecté GitHub avec [`/web-setup`](/docs/fr/web-quickstart#connect-from-your-terminal), ce token permet à vos autres sessions cloud d'atteindre un référentiel mais n'est pas suffisant pour les threads du projet, qui ont besoin de l'application Claude GitHub. [Configurer l'accès GitHub](#set-up-github-access) a les étapes.94* **GitHub, si le projet travaillera sur du code** : votre code est sur github.com plutôt que sur GitHub Enterprise Server, GitLab ou Bitbucket, votre compte GitHub connecté y a accès en push, et l'application Claude GitHub est installée dessus. Si vous avez connecté GitHub avec [`/web-setup`](/docs/fr/web-quickstart#connect-from-your-terminal), ce token permet à vos autres sessions cloud d'atteindre un référentiel mais n'est pas suffisant pour les threads du projet, qui ont besoin de l'application Claude GitHub. [Configurer l'accès GitHub](#set-up-github-access) a les étapes.

95* **Réseau, identifiants et outils** : ceux-ci proviennent de l'[environnement cloud](#choose-an-environment-for-threads) du projet. L'environnement par défaut atteint déjà [les registres de packages courants](/docs/fr/cloud-environments#default-allowed-domains), donc vérifiez ceci seulement si le travail a besoin d'autres domaines, d'un secret ou d'un outil qui n'est pas préinstallé. Si le travail a besoin d'un serveur MCP, vérifiez qu'il s'affiche comme connecté dans vos [connecteurs claude.ai](https://claude.ai/customize/connectors).95* **Réseau, secrets et outils** : pour les threads cloud, ceux-ci proviennent de l'[environnement cloud](#choose-an-environment-for-threads) du projet. L'environnement par défaut atteint déjà [les registres de packages courants](/docs/fr/cloud-environments#default-allowed-domains), donc vérifiez ceci seulement si le travail a besoin d'autres domaines, d'un secret ou d'un outil qui n'est pas préinstallé. Si le travail a besoin d'un serveur MCP, vérifiez qu'il s'affiche comme connecté dans vos [connecteurs claude.ai](https://claude.ai/customize/connectors).

96 96 

97<h3 id="start-a-new-project-from-scratch">97<h3 id="start-a-new-project-from-scratch">

98 Démarrer un nouveau projet à partir de zéro98 Démarrer un nouveau projet à partir de zéro


396 Choisir un environnement pour les threads396 Choisir un environnement pour les threads

397</h3>397</h3>

398 398 

399Chaque nouveau thread cloud démarre dans l'[environnement cloud](/docs/fr/cloud-environments) du projet. L'environnement définit quels domaines les threads peuvent atteindre, quelles variables d'environnement ils ont, quels identifiants API sont ajoutés à leurs demandes et ce que le script de configuration installe avant que Claude commence. Les threads cloud utilisent un environnement par défaut hébergé par Anthropic jusqu'à ce que vous en choisissiez un dans **Project settings > Environment**.399Chaque nouveau thread cloud démarre dans l'[environnement cloud](/docs/fr/cloud-environments) du projet. L'environnement définit quels domaines les threads peuvent atteindre, quelles variables d'environnement ils ont, quels secrets réseau sont ajoutés à leurs requêtes et ce que le script de configuration installe avant que Claude commence. Les threads cloud utilisent un environnement par défaut hébergé par Anthropic jusqu'à ce que vous en choisissiez un dans **Project settings > Environment**.

400 400 

401Si les threads cloud ont besoin d'atteindre une API interne ou un registre de packages privé, ou ont besoin d'un token que votre machine détient normalement, changez l'environnement plutôt que le projet : voir [Accès réseau](/docs/fr/cloud-environments#network-access), [Ajouter des identifiants API](/docs/fr/cloud-environments#add-api-credentials) et [Scripts de configuration](/docs/fr/cloud-environments#setup-scripts).401Si les threads cloud ont besoin d'atteindre une API interne ou un registre de packages privé, ou ont besoin d'un jeton que votre machine détient normalement, changez l'environnement plutôt que le projet : voir [Accès réseau](/docs/fr/cloud-environments#network-access), [Ajouter des secrets réseau](/docs/fr/cloud-environments#add-api-credentials) et [Scripts de configuration](/docs/fr/cloud-environments#setup-scripts).

402 402 

403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">403<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

404 Obtenir des skills, des plugins, des connecteurs et des outils dans les threads404 Obtenir des skills, des plugins, des connecteurs et des outils dans les threads


590</h2>590</h2>

591 591 

592* [Utiliser Claude Code dans le cloud](/docs/fr/claude-code-on-the-web) : comment fonctionnent les sessions cloud derrière chaque thread, y compris les options d'accès GitHub et l'auto-fix sur les pull requests592* [Utiliser Claude Code dans le cloud](/docs/fr/claude-code-on-the-web) : comment fonctionnent les sessions cloud derrière chaque thread, y compris les options d'accès GitHub et l'auto-fix sur les pull requests

593* [Configurer les environnements cloud](/docs/fr/cloud-environments) : changez ce que les threads peuvent atteindre sur le réseau, donnez-leur des variables d'environnement et des identifiants API, et installez des outils avec un script de configuration593* [Configurer les environnements cloud](/docs/fr/cloud-environments) : changez ce que les threads cloud peuvent atteindre sur le réseau, donnez-leur des variables d'environnement et des secrets réseau, et installez des outils avec un script de configuration

594* [Automatiser le travail avec les routines](/docs/fr/routines) : calendriers, déclencheurs et gestion des routines, y compris celles que Claude crée à partir d'un projet594* [Automatiser le travail avec les routines](/docs/fr/routines) : calendriers, déclencheurs et gestion des routines, y compris celles que Claude crée à partir d'un projet

595* [Gérer plusieurs agents avec agent view](/docs/fr/agent-view) : exécutez et suivez plusieurs sessions sur votre propre machine quand le travail a besoin d'outils ou de services que seule votre machine peut atteindre595* [Gérer plusieurs agents avec agent view](/docs/fr/agent-view) : exécutez et suivez plusieurs sessions sur votre propre machine quand le travail a besoin d'outils ou de services que seule votre machine peut atteindre

596* [Projects redesigned: from folder to conversation](https://claude.com/blog/projects-redesigned) : l'annonce du lancement, avec la réflexion derrière la transformation d'un projet en conversation avec Claude596* [Projects redesigned: from folder to conversation](https://claude.com/blog/projects-redesigned) : l'annonce du lancement, avec la réflexion derrière la transformation d'un projet en conversation avec Claude

Details

31| `claude attach <id\|name>` | Attacher à une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal. Passer une partie du nom d'une session en cours d'exécution à la place de l'ID nécessite Claude Code v2.1.290 ou ultérieur | `claude attach 7c5dcf5d` |31| `claude attach <id\|name>` | Attacher à une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal. Passer une partie du nom d'une session en cours d'exécution à la place de l'ID nécessite Claude Code v2.1.290 ou ultérieur | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Imprimer les règles du classificateur [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) intégrées en JSON. Utilisez `claude auto-mode config` pour voir votre configuration effective avec les paramètres appliqués. `--label <prefix>` imprime uniquement les règles dont l'étiquette commence par ce préfixe, correspondance insensible à la casse. Nécessite Claude Code v2.1.208 ou ultérieur | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Imprimer les règles du classificateur [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) intégrées en JSON. Utilisez `claude auto-mode config` pour voir votre configuration effective avec les paramètres appliqués. `--label <prefix>` imprime uniquement les règles dont l'étiquette commence par ce préfixe, correspondance insensible à la casse. Nécessite Claude Code v2.1.208 ou ultérieur | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | Restaurer la configuration [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) par défaut en supprimant la section `autoMode` de votre fichier de paramètres utilisateur. Demande une confirmation avant d'écrire ; passez `-y`/`--yes` pour ignorer la demande. Les règles des [paramètres gérés](/docs/fr/server-managed-settings) ou du flag `--settings` s'appliquent toujours. Nécessite Claude Code v2.1.212 ou ultérieur. Voir [Inspecter les valeurs par défaut et votre configuration effective](/docs/fr/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | Restaurer la configuration [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) par défaut en supprimant la section `autoMode` de votre fichier de paramètres utilisateur. Demande une confirmation avant d'écrire ; passez `-y`/`--yes` pour ignorer la demande. Les règles des [paramètres gérés](/docs/fr/server-managed-settings) ou du flag `--settings` s'appliquent toujours. Nécessite Claude Code v2.1.212 ou ultérieur. Voir [Inspecter les valeurs par défaut et votre configuration effective](/docs/fr/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon logs` | Suivre le fichier de log du [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan, `~/.claude/daemon.log`, en imprimant les nouvelles lignes à mesure qu'elles arrivent jusqu'à ce que vous appuyiez sur `Ctrl+C` | `claude daemon logs` |

35| `claude daemon run` | Exécuter le [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan au premier plan de ce terminal, en imprimant son log | `claude daemon run` |

34| `claude daemon status` | Imprimer l'état du [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan, la version, le répertoire socket, et le nombre de workers pour les diagnostics. Quitte avec 1 si le superviseur n'est pas en cours d'exécution | `claude daemon status` |36| `claude daemon status` | Imprimer l'état du [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan, la version, le répertoire socket, et le nombre de workers pour les diagnostics. Quitte avec 1 si le superviseur n'est pas en cours d'exécution | `claude daemon status` |

35| `claude daemon stop --any` | Arrêter le [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan et les sessions qu'il héberge. Passez `--keep-workers` pour laisser les sessions d'arrière-plan en cours d'exécution afin que le superviseur suivant se reconnecte à elles. `--any` confirme l'arrêt d'un superviseur à la demande, qui est la valeur par défaut. Utilisez ceci pour récupérer d'un [superviseur qui ne répond pas](/docs/fr/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |37| `claude daemon stop --any` | Arrêter le [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan et les sessions qu'il héberge. Passez `--keep-workers` pour laisser les sessions d'arrière-plan en cours d'exécution afin que le superviseur suivant se reconnecte à elles. `--any` confirme l'arrêt d'un superviseur à la demande, qui est la valeur par défaut. Utilisez ceci pour récupérer d'un [superviseur qui ne répond pas](/docs/fr/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |

36| `claude doctor` | Imprimer les diagnostics d'installation et de paramètres en lecture seule depuis le terminal sans démarrer une session, y compris la vérification de la santé de l'installation, les erreurs de validation du fichier de paramètres, et l'éligibilité à Remote Control. Pour la vérification de configuration en session qui peut également appliquer des correctifs, exécutez [`/doctor`](/docs/fr/commands#all-commands) | `claude doctor` |38| `claude doctor` | Imprimer les diagnostics d'installation et de paramètres en lecture seule depuis le terminal sans démarrer une session, y compris la vérification de la santé de l'installation, les erreurs de validation du fichier de paramètres, et l'éligibilité à Remote Control. Pour la vérification de configuration en session qui peut également appliquer des correctifs, exécutez [`/doctor`](/docs/fr/commands#all-commands) | `claude doctor` |

Details

10 Les environnements cloud s'appliquent aux [sessions cloud](/docs/fr/claude-code-on-the-web), qui sont disponibles sur les plans Pro, Max et Team, et pour les utilisateurs Enterprise disposant de [sièges premium ou de sièges Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).10 Les environnements cloud s'appliquent aux [sessions cloud](/docs/fr/claude-code-on-the-web), qui sont disponibles sur les plans Pro, Max et Team, et pour les utilisateurs Enterprise disposant de [sièges premium ou de sièges Chat + Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).

11</Note>11</Note>

12 12 

13Chaque [session cloud](/docs/fr/claude-code-on-the-web) s'exécute dans un environnement cloud. Vous pouvez configurer un environnement pour autoriser ou refuser l'[accès réseau](#access-levels), [définir des variables d'environnement](#set-environment-variables) pour la session, sur les plans Pro et Max stocker des [identifiants API](#add-api-credentials) que les sessions utilisent sans les voir, et exécuter un [script de configuration](#setup-scripts) avant que Claude ne commence à travailler.13Chaque [session cloud](/docs/fr/claude-code-on-the-web) s'exécute dans un environnement cloud. Vous pouvez configurer un environnement pour autoriser ou refuser l'[accès réseau](#access-levels), [définir des variables d'environnement](#set-environment-variables) pour la session, sur les plans Pro et Max stocker des [secrets réseau](#add-api-credentials) que les sessions utilisent sans les voir, et exécuter un [script de configuration](#setup-scripts) avant que Claude ne commence à travailler.

14 14 

15Les mêmes environnements s'appliquent partout où vous démarrez une session cloud : l'[application de bureau](/docs/fr/desktop), l'[application mobile Claude](/docs/fr/mobile), votre navigateur sur [claude.ai/code](https://claude.ai/code), le terminal avec [`claude --cloud`](/docs/fr/claude-code-on-the-web#from-terminal-to-cloud), les [routines](/docs/fr/routines) et [Claude Tag](https://claude.com/docs/claude-tag/overview). Chacune de ces surfaces peut également router vers un [environnement auto-hébergé](/docs/fr/self-hosted-environments). La section [Disponibilité et limitations](/docs/fr/self-hosted-environments#availability-and-limitations) couvre ce que Claude ne peut pas encore utiliser quand une session Claude Tag s'exécute dans un.15Les mêmes environnements s'appliquent partout où vous démarrez une session cloud : l'[application de bureau](/docs/fr/desktop), l'[application mobile Claude](/docs/fr/mobile), votre navigateur sur [claude.ai/code](https://claude.ai/code), le terminal avec [`claude --cloud`](/docs/fr/claude-code-on-the-web#from-terminal-to-cloud), les [routines](/docs/fr/routines) et [Claude Tag](https://claude.com/docs/claude-tag/overview). Chacune de ces surfaces peut également router vers un [environnement auto-hébergé](/docs/fr/self-hosted-environments). La section [Disponibilité et limitations](/docs/fr/self-hosted-environments#availability-and-limitations) couvre ce que Claude ne peut pas encore utiliser quand une session Claude Tag s'exécute dans un.

16 16 


58 <Step title="Ajouter ou modifier un environnement">58 <Step title="Ajouter ou modifier un environnement">

59 Sélectionnez **Cloud** pour lister vos environnements. Ensuite, sélectionnez **Add cloud environment**, ou survolez un environnement existant et sélectionnez l'icône de paramètres qui apparaît à droite.59 Sélectionnez **Cloud** pour lister vos environnements. Ensuite, sélectionnez **Add cloud environment**, ou survolez un environnement existant et sélectionnez l'icône de paramètres qui apparaît à droite.

60 60 

61 La boîte de dialogue inclut le nom, le niveau d'accès réseau, les variables d'environnement et le script de configuration. Lorsque vous modifiez un environnement cloud existant sur un plan Pro ou Max, la boîte de dialogue inclut également les [identifiants API](#add-api-credentials).61 La boîte de dialogue inclut le nom, le niveau d'accès réseau, les variables d'environnement et le script de configuration. Lorsque vous modifiez un environnement cloud existant sur un plan Pro ou Max, la boîte de dialogue inclut également les [secrets réseau](#add-api-credentials).

62 62 

63 <Frame>63 <Frame>

64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="La boîte de dialogue New cloud environment. Un champ Name avec le texte d'espace réservé Default, un sélecteur Network access défini sur Trusted avec des liens vers la politique réseau et les niveaux d'accès, une zone Environment variables affichant un texte d'espace réservé au format .env avec une note indiquant que les valeurs sont visibles pour quiconque utilise l'environnement, une zone Setup script décrite comme un script Bash qui s'exécute au démarrage d'une nouvelle session avant le lancement de Claude Code, et les boutons Cancel et Create environment." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />64 <img src="https://mintcdn.com/claude-code/ZFId6l95856c5LSw/images/cloud-environment-dialog.png?fit=max&auto=format&n=ZFId6l95856c5LSw&q=85&s=30d4478b31d1f879f7ee287ddab32505" alt="La boîte de dialogue New cloud environment. Un champ Name avec le texte d'espace réservé Default, un sélecteur Network access défini sur Trusted avec des liens vers la politique réseau et les niveaux d'accès, une zone Environment variables affichant un texte d'espace réservé au format .env avec une note indiquant que les valeurs sont visibles pour quiconque utilise l'environnement, une zone Setup script décrite comme un script Bash qui s'exécute au démarrage d'une nouvelle session avant le lancement de Claude Code, et les boutons Cancel et Create environment." width="874" height="1372" data-path="images/cloud-environment-dialog.png" />


91 91 

92Une session cloud définit également certaines variables elle-même au démarrage. Pour [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/fr/claude-code-on-the-web#manage-context), la valeur que la session définit remplace celle que vous ajoutez ici, donc ajouter cette clé ici n'a aucun effet.92Une session cloud définit également certaines variables elle-même au démarrage. Pour [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/fr/claude-code-on-the-web#manage-context), la valeur que la session définit remplace celle que vous ajoutez ici, donc ajouter cette clé ici n'a aucun effet.

93 93 

94Quiconque utilise l'environnement peut lire les valeurs. Sur les plans Pro et Max, utilisez plutôt une [identifiant API](#add-api-credentials) pour une clé que le proxy d'agent peut joindre à une demande. Les [demandes qui ne reçoivent jamais d'identifiant](#requests-that-never-get-the-credential) sont listées là.94Quiconque utilise l'environnement peut lire les valeurs. Sur les plans Pro et Max, utilisez plutôt un [secret réseau](#add-api-credentials) pour une clé que le proxy d'agent peut joindre à une requête. Les [requêtes qui ne reçoivent jamais de secret](#requests-that-never-get-the-credential) y sont listées.

95 95 

96<h3 id="add-api-credentials">96<h3 id="add-api-credentials">

97 Ajouter des identifiants API97 Ajouter des secrets réseau

98</h3>98</h3>

99 99 

100Un identifiant API est une clé API ou un jeton que vous stockez sur un environnement cloud afin que Claude puisse appeler cette API à partir de n'importe quelle session dans l'environnement sans voir la clé. Le proxy d'agent d'Anthropic ajoute la clé aux demandes pour les hôtes que vous listez, après que chaque demande quitte la VM de la session. La clé n'atteint jamais Claude, les commandes qu'il exécute, ou les variables d'environnement de la session.100Un secret réseau est une clé API ou un jeton que vous stockez sur un environnement cloud afin que Claude puisse appeler cette API à partir de n'importe quelle session dans l'environnement sans voir la clé. Le proxy d'agent d'Anthropic ajoute la clé aux requêtes pour les hôtes que vous listez, après que chaque requête quitte la VM de la session. La clé n'atteint jamais Claude, les commandes qu'il exécute, ou les variables d'environnement de la session.

101 101 

102Les identifiants API sont disponibles sur les plans Pro et Max. Ils ne sont pas encore disponibles sur les plans Team ou Enterprise, donc la section **API credentials** n'apparaît pas dans la boîte de dialogue d'environnement sur ces plans.102Les secrets réseau sont disponibles sur les plans Pro et Max. Ils ne sont pas encore disponibles sur les plans Team ou Enterprise, donc la section **Network secrets** n'apparaît pas dans la boîte de dialogue d'environnement sur ces plans.

103 103 

104<h4 id="requirements">104<h4 id="requirements">

105 Exigences105 Exigences

106</h4>106</h4>

107 107 

108Deux d'entre elles décident si vous pouvez ajouter un identifiant, et deux décident si le proxy d'agent peut l'utiliser une fois ajouté :108Deux d'entre elles décident si vous pouvez ajouter un secret, et deux décident si le proxy d'agent peut l'utiliser une fois ajouté :

109 109 

110* **Rôle** : un rôle d'administrateur d'organisation dans votre organisation claude.ai110* **Rôle** : un rôle d'administrateur d'organisation dans votre organisation claude.ai

111 * Sur Team et Enterprise, les propriétaires le détiennent et les administrateurs ne le détiennent pas111 * Sur Team et Enterprise, les propriétaires le détiennent et les administrateurs ne le détiennent pas

112 * Sur Pro et Max, vous le détenez dans votre propre organisation112 * Sur Pro et Max, vous le détenez dans votre propre organisation

113* **Type d'environnement** : un environnement cloud hébergé par Anthropic qui existe déjà. Un [environnement auto-hébergé](/docs/fr/self-hosted-environments) n'a pas d'identifiants API113* **Type d'environnement** : un environnement cloud hébergé par Anthropic qui existe déjà. Un [environnement auto-hébergé](/docs/fr/self-hosted-environments) n'a pas de secrets réseau

114* **Accessibilité de l'API** : l'API accepte les connexions depuis Internet, car les demandes partent du réseau d'Anthropic114* **Accessibilité de l'API** : l'API accepte les connexions depuis Internet, car les demandes partent du réseau d'Anthropic

115* **Clés de chiffrement** : si votre organisation utilise des clés de chiffrement gérées par le client, vous ne pouvez pas enregistrer les identifiants115* **Clés de chiffrement** : si votre organisation utilise des clés de chiffrement gérées par le client, vous ne pouvez pas enregistrer de secrets réseau

116 116 

117<h4 id="add-a-credential">117<h4 id="add-a-credential">

118 Ajouter un identifiant118 Ajouter un secret

119</h4>119</h4>

120 120 

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.121Vous ajoutez les secrets un à la fois, et vous ne pouvez pas modifier un secret après l'avoir ajouté. Pour modifier les hôtes ou la valeur d'un secret, 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 secrets réseau 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 environment**, trouvez la section **API credentials**. 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 **Network secrets**. Vous voyez les secrets déjà présents 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 le secret">

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 :129 Sélectionnez **Add secret** 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 le secret, 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

133 * **Custom headers** : une ligne pour l'en-tête qui porte la clé. La ligne commence par `Authorization` comme **Name** de l'en-tête et `Bearer` comme son **Prefix** ; collez la clé elle-même comme **Value**. Pour un en-tête comme `X-Api-Key` qui prend la valeur brute, changez le nom et effacez le préfixe133 * **Custom headers** : une ligne pour l'en-tête qui porte la clé. La ligne commence par `Authorization` comme **Name** de l'en-tête et `Bearer` comme son **Prefix** ; collez la clé elle-même comme **Value**. Pour un en-tête comme `X-Api-Key` qui prend la valeur brute, changez le nom et effacez le préfixe

134 134 

135 Pour une API qui s'authentifie d'une autre manière, choisissez un **Credential type** différent. La liste est la même que celle que [Claude Tag](https://claude.com/docs/claude-tag/overview), l'intégration Slack pour les plans Team et Enterprise, propose pour les [connexions](https://claude.com/docs/claude-tag/admins/add-connections).135 Pour une API qui s'authentifie d'une autre manière, choisissez un **Credential type** différent. La liste est la même que celle que [Claude Tag](https://claude.com/docs/claude-tag/overview), l'intégration Slack pour les plans Team et Enterprise, propose pour les [connexions](https://claude.com/docs/claude-tag/admins/add-connections).

136 </Step>136 </Step>

137 137 

138 <Step title="Enregistrer l'identifiant">138 <Step title="Enregistrer le secret">

139 Sélectionnez **Connect**. L'identifiant apparaît dans la liste avec ses hôtes, enregistré sans le bouton **Save changes** de la boîte de dialogue. Vous ne pouvez pas afficher la valeur à nouveau après l'enregistrement.139 Sélectionnez **Connect**. Le secret apparaît dans la liste avec ses hôtes, enregistré sans le bouton **Save changes** de la boîte de dialogue. Vous ne pouvez pas afficher la valeur à nouveau après l'enregistrement.

140 </Step>140 </Step>

141</Steps>141</Steps>

142 142 

143Pour confirmer que l'identifiant fonctionne, démarrez une session dans l'environnement et demandez à Claude d'appeler l'API, par exemple avec `curl`. L'API répond comme si la clé était dans la demande, et la clé n'apparaît pas dans les variables d'environnement de la session ou dans aucun fichier. Si la liste marque un identifiant **Not sent** à la place, la note sous celui-ci explique pourquoi et quoi faire. Deux identifiants dont les hôtes se chevauchent sans correspondre exactement ne reçoivent aucun marqueur, et le proxy d'agent n'en envoie qu'un.143Pour confirmer que le secret fonctionne, démarrez une session dans l'environnement et demandez à Claude d'appeler l'API, par exemple avec `curl`. L'API répond comme si la clé était dans la requête, et la clé n'apparaît pas dans les variables d'environnement de la session ni dans aucun fichier. Si la liste marque plutôt un secret **Not sent**, la note en dessous explique pourquoi et quoi faire. Deux secrets dont les hôtes se chevauchent sans correspondre exactement ne reçoivent aucun marqueur, et le proxy d'agent n'en envoie qu'un.

144 144 

145<h4 id="which-requests-get-the-credential">145<h4 id="which-requests-get-the-credential">

146 Quelles demandes reçoivent l'identifiant146 Quelles requêtes reçoivent le secret

147</h4>147</h4>

148 148 

149Le proxy d'agent joint un identifiant à une demande lorsque l'hôte de la demande correspond à l'un de ceux que vous avez listés sur cet identifiant. Les sessions peuvent atteindre ces hôtes même lorsque le [niveau d'accès réseau](#access-levels) de l'environnement ne le permettrait pas autrement, sauf les [hôtes qui ne reçoivent jamais l'identifiant](#requests-that-never-get-the-credential). L'identifiant s'applique dans chaque session qui s'exécute dans l'environnement, peu importe qui l'a démarrée, jusqu'à ce que vous le supprimiez.149Le proxy d'agent joint un secret à une requête lorsque l'hôte de la requête correspond à l'un de ceux que vous avez listés sur ce secret. Les sessions peuvent atteindre ces hôtes même lorsque le [niveau d'accès réseau](#access-levels) de l'environnement ne le permettrait pas autrement, sauf les [hôtes qui ne reçoivent jamais le secret](#requests-that-never-get-the-credential). Le secret s'applique dans chaque session qui s'exécute dans l'environnement, peu importe qui l'a démarrée, jusqu'à ce que vous le supprimiez.

150 150 

151<h4 id="requests-that-never-get-the-credential">151<h4 id="requests-that-never-get-the-credential">

152 Demandes qui ne reçoivent jamais l'identifiant152 Requêtes qui ne reçoivent jamais le secret

153</h4>153</h4>

154 154 

155Le proxy d'agent ne joint jamais un identifiant que vous ajoutez à ces demandes :155Le proxy d'agent ne joint jamais un secret que vous ajoutez à ces requêtes :

156 156 

157* **GitHub** : le [proxy GitHub](#github-proxy) authentifie les demandes à GitHub à la place, donc vous n'avez pas besoin d'un identifiant API pour cela157* **GitHub** : le [proxy GitHub](#github-proxy) authentifie les requêtes vers GitHub à la place, donc vous n'avez pas besoin d'un secret réseau pour cela

158* **L'API Anthropic et les registres de paquets publics** : `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io`, et `proxy.golang.org`158* **L'API Anthropic et les registres de paquets publics** : `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io`, et `proxy.golang.org`

159* **Demandes de script de configuration** : Claude Code se connecte au proxy d'agent au lancement, après l'exécution du [script de configuration](#setup-scripts)159* **Demandes de script de configuration** : Claude Code se connecte au proxy d'agent au lancement, après l'exécution du [script de configuration](#setup-scripts)

160* **Export de télémétrie de Claude Code** : Claude Code envoie son propre [export de télémétrie](/docs/fr/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) plutôt que par une commande qu'il exécute, et cette demande ne passe pas par le proxy d'agent160* **Export de télémétrie de Claude Code** : Claude Code envoie son propre [export de télémétrie](/docs/fr/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) plutôt que par une commande qu'il exécute, et cette demande ne passe pas par le proxy d'agent


179 179 

180* Les sessions déjà en cours d'exécution dans l'environnement continuent de fonctionner.180* Les sessions déjà en cours d'exécution dans l'environnement continuent de fonctionner.

181* L'environnement disparaît du sélecteur et de `/remote-env`, donc vous ne pouvez pas le choisir pour les nouvelles sessions.181* L'environnement disparaît du sélecteur et de `/remote-env`, donc vous ne pouvez pas le choisir pour les nouvelles sessions.

182* Les identifiants API sur l'environnement restent attachés dans ses sessions en cours d'exécution. Supprimez ceux que vous ne voulez plus avant d'archiver.182* Les secrets réseau sur l'environnement restent attachés dans ses sessions en cours d'exécution. Supprimez ceux que vous ne voulez plus avant d'archiver.

183* Aucune nouvelle session ne peut démarrer dans un environnement archivé, sur aucune surface. Si l'environnement était votre [défaut CLI](#select-an-environment-from-the-cli) enregistré, Claude Code démarre les sessions cloud CLI dans l'environnement hébergé par Anthropic lorsque votre liste en a un, et sinon dans le premier environnement de votre liste qui n'est pas un [environnement de pont Remote Control](#the-default-environment). Tout ce qui est configuré avec l'environnement explicitement, comme une [routine](/docs/fr/routines#environments-and-network-access), ne peut pas démarrer de nouvelles sessions dedans. Pointez-le vers un autre environnement.183* Aucune nouvelle session ne peut démarrer dans un environnement archivé, sur aucune surface. Si l'environnement était votre [défaut CLI](#select-an-environment-from-the-cli) enregistré, Claude Code démarre les sessions cloud CLI dans l'environnement hébergé par Anthropic lorsque votre liste en a un, et sinon dans le premier environnement de votre liste qui n'est pas un [environnement de pont Remote Control](#the-default-environment). Tout ce qui est configuré avec l'environnement explicitement, comme une [routine](/docs/fr/routines#environments-and-network-access), ne peut pas démarrer de nouvelles sessions dedans. Pointez-le vers un autre environnement.

184 184 

185<h3 id="organization-shared-environments">185<h3 id="organization-shared-environments">


197 197 

198Les propriétaires choisissent l'[environnement par défaut](#the-default-environment) de l'organisation séparément, sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).198Les propriétaires choisissent l'[environnement par défaut](#the-default-environment) de l'organisation séparément, sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

199 199 

200Les sessions de chaque membre dans un environnement partagé lisent ses variables, donc n'incluez pas de secrets dedans. Les [identifiants API](#add-api-credentials), qui donnent aux sessions une clé qu'elles ne peuvent pas lire, ne sont pas encore disponibles sur les plans Team ou Enterprise.200Les sessions de chaque membre dans un environnement partagé lisent ses variables, donc n'y incluez pas de secrets. Les [secrets réseau](#add-api-credentials), qui donnent aux sessions une clé qu'elles ne peuvent pas lire, ne sont pas encore disponibles sur les plans Team ou Enterprise.

201 201 

202<h3 id="set-the-environment-a-claude-tag-channel-uses">202<h3 id="set-the-environment-a-claude-tag-channel-uses">

203 Définir l'environnement qu'un canal Claude Tag utilise203 Définir l'environnement qu'un canal Claude Tag utilise


239 239 

240* GitHub, via son [proxy séparé](#github-proxy)240* GitHub, via son [proxy séparé](#github-proxy)

241* Les [connecteurs MCP](#network-access) que vous activez, dont le trafic transite par les serveurs d'Anthropic241* Les [connecteurs MCP](#network-access) que vous activez, dont le trafic transite par les serveurs d'Anthropic

242* Les hôtes que vous avez listés sur les [identifiants API](#add-api-credentials) de l'environnement, sauf les [hôtes qui ne reçoivent jamais l'identifiant](#requests-that-never-get-the-credential)242* Les hôtes que vous avez listés sur les [secrets réseau](#add-api-credentials) de l'environnement, sauf les [hôtes qui ne reçoivent jamais le secret](#requests-that-never-get-the-credential)

243* L'API Anthropic, pour les propres requêtes de Claude Code, même au niveau **None**, comme noté sous [Security and isolation](/docs/fr/claude-code-on-the-web#security-and-isolation)243* L'API Anthropic, pour les propres requêtes de Claude Code, même au niveau **None**, comme noté sous [Security and isolation](/docs/fr/claude-code-on-the-web#security-and-isolation)

244 244 

245<h3 id="allow-specific-domains">245<h3 id="allow-specific-domains">


254registry.example.com254registry.example.com

255```255```

256 256 

257Les sessions dans cet environnement peuvent maintenant atteindre `api.example.com`, n'importe quel sous-domaine de `internal.example.com`, et `registry.example.com`, et aucun autre domaine via le réseau de la session. Le [trafic GitHub](#github-proxy), le [trafic des connecteurs MCP](#network-access), et les requêtes vers les hôtes des [identifiants API](#add-api-credentials) de l'environnement, autres que les [hôtes qui ne reçoivent jamais l'identifiant](#requests-that-never-get-the-credential), ne passent pas par cette liste d'autorisation. Un `*.` au début correspond à tous les sous-domaines. Pour conserver également les [domaines Trusted](#default-allowed-domains), cochez **Also include default list of common package managers** ; laissez-le décoché pour autoriser uniquement ce que vous listez.257Les sessions dans cet environnement peuvent maintenant atteindre `api.example.com`, n'importe quel sous-domaine de `internal.example.com`, et `registry.example.com`, et aucun autre domaine via le réseau de la session. Le [trafic GitHub](#github-proxy), le [trafic des connecteurs MCP](#network-access), et les requêtes vers les hôtes des [secrets réseau](#add-api-credentials) de l'environnement, autres que les [hôtes qui ne reçoivent jamais le secret](#requests-that-never-get-the-credential), ne passent pas par cette liste d'autorisation. Un `*.` au début correspond à tous les sous-domaines. Pour conserver également les [domaines Trusted](#default-allowed-domains), cochez **Also include default list of common package managers** ; laissez-le décoché pour autoriser uniquement ce que vous listez.

258 258 

259Si votre organisation utilise les [artifacts](/docs/fr/artifacts#availability), vous n'avez pas besoin de `*.frame.claudeusercontent.com` dans la liste pour que les sessions les lisent. Lorsque la liste omet cet hôte, Claude Code lit le contenu des artifacts via la connexion de la session à Anthropic à la place. Conservez l'hôte dans une liste d'autorisation dans deux situations :259Si votre organisation utilise les [artifacts](/docs/fr/artifacts#availability), vous n'avez pas besoin de `*.frame.claudeusercontent.com` dans la liste pour que les sessions les lisent. Lorsque la liste omet cet hôte, Claude Code lit le contenu des artifacts via la connexion de la session à Anthropic à la place. Conservez l'hôte dans une liste d'autorisation dans deux situations :

260 260 


292 Ce qui est disponible dans les sessions cloud292 Ce qui est disponible dans les sessions cloud

293</h2>293</h2>

294 294 

295Dans les environnements hébergés par Anthropic, chaque session obtient une machine virtuelle (VM) fraîche exécutant Ubuntu 24.04 sur x86\_64, quel que soit votre propre système d'exploitation et architecture CPU, avec votre dépôt cloné et les chaînes d'outils courantes pré-installées. Quand une dépendance fournit des binaires précompilés, comme les gems Ruby avec des extensions natives ou les roues Python précompilées, utilisez sa compilation Linux x86\_64 pour correspondre à la VM. Cette section couvre les défauts hébergés par Anthropic, les outils GitHub intégrés, comment [exécuter des tests et des services](#run-tests-start-services-and-add-packages), les [limites de ressources](#resource-limits) que chaque VM obtient, et les [limites de temps](#time-limits) sur les travaux de longue durée.295Dans les environnements hébergés par Anthropic, chaque session obtient une machine virtuelle (VM) fraîche exécutant Ubuntu 24.04 sur x86\_64, quel que soit votre propre système d'exploitation et architecture CPU, avec votre dépôt cloné et les chaînes d'outils courantes pré-installées. Quand une dépendance fournit des binaires précompilés, comme les gems Ruby avec des extensions natives ou les wheels Python précompilées, utilisez son build Linux x86\_64 pour correspondre à la VM. Cette section couvre les défauts hébergés par Anthropic, les outils GitHub intégrés, comment [exécuter des tests et des services](#run-tests-start-services-and-add-packages), les [limites de ressources](#resource-limits) que chaque VM obtient, et les [limites de temps](#time-limits) sur les travaux de longue durée.

296 296 

297<Note>297<Note>

298 Les sessions que votre organisation route vers un [environnement auto-hébergé](/docs/fr/self-hosted-environments) s'exécutent sur vos propres exécuteurs à la place, avec les outils que votre image d'exécuteur fournit.298 Les sessions que votre organisation route vers un [environnement auto-hébergé](/docs/fr/self-hosted-environments) s'exécutent sur vos propres exécuteurs à la place, avec les outils que votre image d'exécuteur fournit.


302 Ce qui est reporté de votre configuration302 Ce qui est reporté de votre configuration

303</h3>303</h3>

304 304 

305Les sessions cloud commencent à partir d'un clone frais de votre dépôt. Tout ce que vous validez dans le dépôt est disponible. Tout ce que vous avez installé ou configuré seulement sur votre propre machine n'est pas disponible dans la session. La politique de votre organisation arrive séparément via les [paramètres gérés par le serveur](/docs/fr/server-managed-settings).305Les sessions cloud commencent à partir d'un clone frais de votre dépôt. Tout ce que vous commitez dans le dépôt est disponible. Tout ce que vous avez installé ou configuré seulement sur votre propre machine n'est pas disponible dans la session. La politique de votre organisation arrive séparément via les [paramètres gérés par le serveur](/docs/fr/server-managed-settings).

306 306 

307| | Disponible dans les sessions cloud | Pourquoi |307| | Disponible dans les sessions cloud | Pourquoi |

308| :- | :- | :- |308| :- | :- | :- |

309| Votre `CLAUDE.md` du dépôt | Oui | Partie du clone |309| Votre `CLAUDE.md` du dépôt | Oui | Partie du clone |

310| Vos crochets `.claude/settings.json` du dépôt et règles de permission | Oui, dans une session avec un seul dépôt | Partie du clone. Une session avec plusieurs dépôts, incluant un fil de [projet](/docs/fr/claude-projects#what-threads-pick-up-from-your-repositories), démarre au-dessus des clones et ne les lit pas |310| Vos hooks `.claude/settings.json` du dépôt et règles de permission | Oui, dans une session avec un seul dépôt | Partie du clone. Une session avec plusieurs dépôts, incluant un fil de [projet](/docs/fr/claude-projects#what-threads-pick-up-from-your-repositories), démarre au-dessus des clones et ne les lit pas |

311| Vos serveurs MCP `.mcp.json` du dépôt | Oui, dans une session avec un seul dépôt | Partie du clone, trouvé à partir du répertoire de travail de la session |311| Vos serveurs MCP `.mcp.json` du dépôt | Oui, dans une session avec un seul dépôt | Partie du clone, trouvé à partir du répertoire de travail de la session |

312| Votre `.claude/rules/` du dépôt | Oui | Partie du clone |312| Votre `.claude/rules/` du dépôt | Oui | Partie du clone |

313| Votre `.claude/skills/`, `.claude/agents/`, `.claude/commands/` du dépôt | Oui | Partie du clone |313| Votre `.claude/skills/`, `.claude/agents/`, `.claude/commands/` du dépôt | Oui | Partie du clone |

314| Plugins et places de marché déclarés dans le `.claude/settings.json` de votre dépôt | Non | Une session cloud n'installe pas les plugins qu'un dépôt active sous [`enabledPlugins`](/docs/fr/settings-reference#enabledplugins), y compris ceux des places de marché qu'il liste sous [`extraKnownMarketplaces`](/docs/fr/settings-reference#extraknownmarketplaces) |314| Plugins et marketplaces déclarés dans le `.claude/settings.json` de votre dépôt | Non | Une session cloud n'installe pas les plugins qu'un dépôt active sous [`enabledPlugins`](/docs/fr/settings-reference#enabledplugins), y compris ceux des marketplaces qu'il liste sous [`extraKnownMarketplaces`](/docs/fr/settings-reference#extraknownmarketplaces) |

315| Les [paramètres gérés par le serveur](/docs/fr/server-managed-settings) de votre organisation | Oui, sauf dans les sessions [Claude Tag](https://claude.com/docs/claude-tag/overview) | Récupérés des serveurs d'Anthropic quand la session démarre. Consultez [Couverture de surface](/docs/fr/model-config#surface-coverage) pour savoir comment `availableModels` est appliqué dans les sessions cloud. Les paramètres déployés sur votre appareil via MDM ou des fichiers de paramètres gérés ne s'appliquent pas, car la session s'exécute sur une VM gérée par Anthropic ; dans un [environnement auto-hébergé](/docs/fr/self-hosted-environments), les sessions lisent également le fichier de paramètres gérés dans l'image d'exécuteur, selon [comment Claude Code combine les sources gérées](/docs/fr/managed-settings#how-claude-code-combines-managed-sources) |315| Les [paramètres gérés par le serveur](/docs/fr/server-managed-settings) de votre organisation | Oui, sauf dans les sessions [Claude Tag](https://claude.com/docs/claude-tag/overview) | Récupérés des serveurs d'Anthropic quand la session démarre. Consultez [Couverture de surface](/docs/fr/model-config#surface-coverage) pour savoir comment `availableModels` est appliqué dans les sessions cloud. Les paramètres déployés sur votre appareil via MDM ou des fichiers de paramètres gérés ne s'appliquent pas, car la session s'exécute sur une VM gérée par Anthropic ; dans un [environnement auto-hébergé](/docs/fr/self-hosted-environments), les sessions lisent également le fichier de paramètres gérés dans l'image d'exécuteur, selon [comment Claude Code combine les sources gérées](/docs/fr/managed-settings#how-claude-code-combines-managed-sources) |

316| Votre `~/.claude/CLAUDE.md` utilisateur | Non | Vit sur votre machine, pas dans le dépôt |316| Votre `~/.claude/CLAUDE.md` utilisateur | Non | Vit sur votre machine, pas dans le dépôt. Consultez [Ajouter des préférences personnelles sans les commiter dans le dépôt](#add-personal-preferences-without-committing-to-the-repo) |

317| Vos `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` utilisateur | Non | Vivent sur votre machine, pas dans le dépôt. Validez-les dans le répertoire `.claude/` du dépôt à la place. Les sessions cloud chargent automatiquement les compétences que vous activez sur claude.ai |317| Vos `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` utilisateur | Non | Vivent sur votre machine, pas dans le dépôt. Commitez-les dans le répertoire `.claude/` du dépôt à la place. Les sessions cloud chargent automatiquement les skills que vous activez sur claude.ai |

318| Plugins activés seulement dans vos paramètres utilisateur | Non | L'`enabledPlugins` au niveau utilisateur vit dans `~/.claude/settings.json` sur votre machine |318| Plugins activés seulement dans vos paramètres utilisateur | Non | L'`enabledPlugins` de portée utilisateur vit dans `~/.claude/settings.json` sur votre machine |

319| Serveurs MCP que vous avez ajoutés avec `claude mcp add` à la portée locale par défaut ou à la portée utilisateur | Non | Ceux-ci écrivent dans `~/.claude.json` sur votre machine, pas le dépôt. Ajoutez le serveur avec `claude mcp add --scope project`, qui écrit le [`.mcp.json`](/docs/fr/mcp#project-scope) du dépôt, et validez ce fichier. Une session avec un seul dépôt le charge |319| Serveurs MCP que vous avez ajoutés avec `claude mcp add` à la portée locale par défaut ou à la portée utilisateur | Non | Ceux-ci écrivent dans `~/.claude.json` sur votre machine, pas le dépôt. Ajoutez le serveur avec `claude mcp add --scope project`, qui écrit le [`.mcp.json`](/docs/fr/mcp#project-scope) du dépôt, et commitez ce fichier. Une session avec un seul dépôt le charge |

320| Variables de transport dans le bloc `env` de `.claude/settings.json` de votre dépôt, comme `NODE_EXTRA_CA_CERTS` et les [variables de certificat client mTLS](/docs/fr/network-config#mtls-authentication) | Non | L'environnement d'hébergement gère la connexion API de la session, donc Claude Code ignore ces clés et note chaque clé ignorée dans le journal de débogage de la session |320| Variables de transport dans le bloc `env` de `.claude/settings.json` de votre dépôt, comme `NODE_EXTRA_CA_CERTS` et les [variables de certificat client mTLS](/docs/fr/network-config#mtls-authentication) | Non | L'environnement d'hébergement gère la connexion API de la session, donc Claude Code ignore ces clés et note chaque clé ignorée dans le journal de débogage de la session |

321| Clés API et jetons pour les services que Claude appelle | Sur les plans Pro et Max, en tant qu'[identifiants API](#add-api-credentials) | Vous ajoutez la clé une fois sur l'environnement et le proxy d'agent la joint aux requêtes pour les hôtes que vous listez. Une clé que le proxy d'agent [ne peut pas joindre](#requests-that-never-get-the-credential), ou n'importe quelle clé sur un plan Team ou Enterprise, reste dans une variable d'environnement |321| Clés API et jetons pour les services que Claude appelle | Sur les plans Pro et Max, en tant que [secrets réseau](#add-api-credentials) | Vous ajoutez la clé une fois sur l'environnement et le proxy d'agent la joint aux requêtes pour les hôtes que vous listez. Une clé que le proxy d'agent [ne peut pas joindre](#requests-that-never-get-the-credential), ou n'importe quelle clé sur un plan Team ou Enterprise, reste dans une variable d'environnement |

322| Authentification interactive comme AWS SSO | Non | Non supporté. SSO nécessite une connexion basée sur un navigateur qui ne peut pas s'exécuter dans une session cloud |322| Authentification interactive comme AWS SSO | Non | Non supporté. SSO nécessite une connexion basée sur un navigateur qui ne peut pas s'exécuter dans une session cloud |

323 323 

324Pour rendre votre propre configuration disponible dans les sessions cloud, validez-la dans le dépôt.324Pour rendre votre propre configuration disponible dans les sessions cloud, commitez-la dans le dépôt.

325 325 

326Quiconque utilise l'environnement peut lire ses variables d'environnement et son script de configuration. La note de la boîte de dialogue sous **Environment variables** le dit et avertit contre l'ajout de secrets dedans. Sur les plans Pro et Max, stockez une clé que le proxy d'agent peut joindre en tant qu'[identifiant API](#add-api-credentials) à la place.326Quiconque utilise l'environnement peut lire ses variables d'environnement et son script de configuration. La note de la boîte de dialogue sous **Environment variables** le dit et avertit contre l'ajout de secrets dedans. Sur les plans Pro et Max, stockez une clé que le proxy d'agent peut joindre en tant que [secret réseau](#add-api-credentials) à la place.

327 

328<h4 id="add-personal-preferences-without-committing-to-the-repo">

329 Ajouter des préférences personnelles sans les commiter dans le dépôt

330</h4>

331 

332Dans un environnement hébergé par Anthropic, ajoutez un [script de configuration](#setup-scripts) qui écrit `~/.claude/CLAUDE.md` pour les préférences que vous préférez ne pas placer dans un dépôt partagé. Claude Code charge ce fichier en tant qu'[instructions utilisateur](/docs/fr/memory#choose-where-to-put-claude-md-files) dans la session. Cet exemple définit une préférence de message de commit :

333 

334```bash theme={null}

335#!/bin/bash

336mkdir -p ~/.claude

337cat > ~/.claude/CLAUDE.md <<'EOF'

338Use conventional commit messages.

339EOF

340```

341 

342Placez le script sur l'un de vos propres environnements plutôt que sur un [environnement partagé](#organization-shared-environments).

343 

344Exécutez `/context` dans votre prochaine session cloud et vérifiez que `/root/.claude/CLAUDE.md` apparaît sous **Memory files**.

327 345 

328<h3 id="installed-tools">346<h3 id="installed-tools">

329 Outils installés347 Outils installés

330</h3>348</h3>

331 349 

332Les sessions cloud sont livrées avec les runtimes de langage courants, les outils de construction et les bases de données pré-installés. Le tableau ci-dessous résume ce qui est inclus par catégorie.350Les sessions cloud sont livrées avec les runtimes de langage courants, les outils de build et les bases de données pré-installés. Le tableau ci-dessous résume ce qui est inclus par catégorie.

333 351 

334| Catégorie | Inclus |352| Catégorie | Inclus |

335| :- | :- |353| :- | :- |


354Les chaînes d'outils en dehors de cette liste, comme le SDK .NET, ne sont pas pré-installées même quand leurs registres de paquets sont sur la [liste d'autorisation par défaut](#default-allowed-domains). Installez-les avec un [script de configuration](#setup-scripts).372Les chaînes d'outils en dehors de cette liste, comme le SDK .NET, ne sont pas pré-installées même quand leurs registres de paquets sont sur la [liste d'autorisation par défaut](#default-allowed-domains). Installez-les avec un [script de configuration](#setup-scripts).

355 373 

356<h3 id="work-with-github-issues-and-pull-requests">374<h3 id="work-with-github-issues-and-pull-requests">

357 Travaillez avec les problèmes et les demandes de tirage GitHub375 Travaillez avec les issues et les pull requests GitHub

358</h3>376</h3>

359 377 

360Les sessions cloud incluent des outils GitHub intégrés qui permettent à Claude de lire les problèmes, de lister les demandes de tirage, de récupérer les diffs et de publier des commentaires sans aucune configuration. Ces outils s'authentifient via le [proxy GitHub](#github-proxy) en utilisant la méthode que vous avez configurée sous [Options d'authentification GitHub](/docs/fr/claude-code-on-the-web#github-authentication-options), donc votre jeton ne pénètre jamais dans le conteneur.378Les sessions cloud incluent des outils GitHub intégrés qui permettent à Claude de lire les issues, de lister les pull requests, de récupérer les diffs et de publier des commentaires sans aucune configuration. Ces outils s'authentifient via le [proxy GitHub](#github-proxy) en utilisant la méthode que vous avez configurée sous [Options d'authentification GitHub](/docs/fr/claude-code-on-the-web#github-authentication-options), donc votre jeton ne pénètre jamais dans le conteneur.

361 379 

362Vous pouvez définir `GH_TOKEN` ou `GITHUB_TOKEN` vous-même dans les [paramètres d'environnement](#set-environment-variables), ou laisser les deux non définis et laisser le [proxy GitHub](#github-proxy) s'authentifier pour vous :380Vous pouvez définir `GH_TOKEN` ou `GITHUB_TOKEN` vous-même dans les [paramètres d'environnement](#set-environment-variables), ou laisser les deux non définis et laisser le [proxy GitHub](#github-proxy) s'authentifier pour vous :

363 381 

364* Si vous définissez un jeton, il passe au conteneur inchangé, donc vos scripts et le [`gh` CLI](https://cli.github.com) de GitHub l'utilisent directement.382* Si vous définissez un jeton, il passe au conteneur inchangé, donc vos scripts et le [`gh` CLI](https://cli.github.com) de GitHub l'utilisent directement.

365* Si vous ne définissez ni l'un ni l'autre et que le [proxy GitHub](#github-proxy) gère l'authentification pour votre session, les deux variables lisent comme la chaîne d'espace réservé `proxy-injected` dans les commandes que Claude exécute, et le proxy substitue vos vrais identifiants sur les requêtes GitHub sortantes. `gh` fonctionne sans un jeton de votre côté, mais un script qui lit `GITHUB_TOKEN` directement obtient l'espace réservé, pas un jeton utilisable.383* Si vous ne définissez ni l'un ni l'autre et que le [proxy GitHub](#github-proxy) gère l'authentification pour votre session, les deux variables lisent comme la chaîne d'espace réservé `proxy-injected` dans les commandes que Claude exécute, et le proxy substitue vos vrais identifiants sur les requêtes GitHub sortantes. `gh` fonctionne sans un jeton de votre côté, mais un script qui lit `GITHUB_TOKEN` directement obtient l'espace réservé, pas un jeton utilisable.

366 384 

367Un jeton que vous définissez est une variable d'environnement ordinaire, donc quiconque utilise l'environnement peut le lire ; le chemin du proxy garde l'identifiant hors de la configuration de l'environnement et de la VM de la session.385Un jeton que vous définissez est une variable d'environnement ordinaire, donc quiconque utilise l'environnement peut le lire ; le chemin du proxy garde les identifiants hors de la configuration de l'environnement et de la VM de la session.

368 386 

369Pour vérifier quel cas s'applique à votre session, demandez à Claude d'exécuter `echo $GH_TOKEN`.387Pour vérifier quel cas s'applique à votre session, demandez à Claude d'exécuter `echo $GH_TOKEN`.

370 388 


374 Liez la sortie à la session392 Liez la sortie à la session

375</h3>393</h3>

376 394 

377Chaque session cloud a une URL de transcription sur claude.ai, et la session peut lire son propre ID à partir de la variable d'environnement `CLAUDE_CODE_REMOTE_SESSION_ID`. Utilisez ceci pour mettre un lien traçable dans les corps PR, les messages de validation, les publications Slack ou les rapports générés afin qu'un examinateur puisse ouvrir l'exécution qui les a produits.395Chaque session cloud a une URL de transcription sur claude.ai, et la session peut lire son propre ID à partir de la variable d'environnement `CLAUDE_CODE_REMOTE_SESSION_ID`. Utilisez ceci pour mettre un lien traçable dans les corps de PR, les messages de commit, les publications Slack ou les rapports générés afin qu'un examinateur puisse ouvrir l'exécution qui les a produits.

378 396 

379Les validations que Claude crée dans une session cloud incluent une remorque git `Claude-Session: <url>`, et les corps PR incluent l'URL de la session sur sa propre ligne. Pour omettre la remorque et le lien du corps PR, définissez [`attribution.sessionUrl`](/docs/fr/settings-reference#attribution-sessionurl) sur `false`.397Les commits que Claude crée dans une session cloud incluent un trailer git `Claude-Session: <url>`, et les corps de PR incluent l'URL de la session sur sa propre ligne. Pour omettre le trailer et le lien du corps de PR, définissez [`attribution.sessionUrl`](/docs/fr/settings-reference#attribution-sessionurl) sur `false`.

380 398 

381Pour inclure le lien de session dans quelque chose d'autre qu'une validation ou une PR, comme un message Slack que Claude publie ou un fichier de rapport qu'il écrit, demandez à Claude d'exécuter la commande suivante et d'utiliser sa sortie. La commande convertit le préfixe `cse_` dans la valeur de la variable d'environnement au préfixe `session_` que l'URL de transcription attend :399Pour inclure le lien de session dans quelque chose d'autre qu'un commit ou une PR, comme un message Slack que Claude publie ou un fichier de rapport qu'il écrit, demandez à Claude d'exécuter la commande suivante et d'utiliser sa sortie. La commande convertit le préfixe `cse_` dans la valeur de la variable d'environnement au préfixe `session_` que l'URL de transcription attend :

382 400 

383```bash theme={null}401```bash theme={null}

384echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID/#cse_/session_}"402echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID/#cse_/session_}"


388 Exécutez des tests, démarrez des services et ajoutez des paquets406 Exécutez des tests, démarrez des services et ajoutez des paquets

389</h3>407</h3>

390 408 

391Vous n'avez pas d'accès shell à la VM de la session. Claude exécute chaque commande pour vous, donc formulez les tâches de cette section comme des demandes dans votre invite.409Vous n'avez pas d'accès shell à la VM de la session. Claude exécute chaque commande pour vous, donc formulez les tâches de cette section comme des demandes dans votre prompt.

392 410 

393<h4 id="run-tests">411<h4 id="run-tests">

394 Exécutez des tests412 Exécutez des tests

395</h4>413</h4>

396 414 

397Claude exécute les tests dans le cadre du travail sur une tâche. Demandez-le dans votre invite, comme « corriger les tests échoués dans `tests/` » ou « exécuter pytest après chaque modification ». Les exécuteurs de tests qui viennent avec les [chaînes d'outils pré-installées](#installed-tools), comme pytest et cargo test, fonctionnent sans configuration supplémentaire. Un exécuteur que votre projet déclare comme dépendance, comme jest, s'installe avec vos dépendances.415Claude exécute les tests dans le cadre du travail sur une tâche. Demandez-le dans votre prompt, comme « corriger les tests échoués dans `tests/` » ou « exécuter pytest après chaque modification ». Les exécuteurs de tests qui viennent avec les [chaînes d'outils pré-installées](#installed-tools), comme pytest et cargo test, fonctionnent sans configuration supplémentaire. Un exécuteur que votre projet déclare comme dépendance, comme jest, s'installe avec vos dépendances.

398 416 

399<h4 id="start-services">417<h4 id="start-services">

400 Démarrez des services418 Démarrez des services


412 430 

413Docker est disponible pour exécuter des services conteneurisés. Demandez à Claude d'exécuter `docker compose up` pour démarrer les services de votre projet. L'accès réseau pour extraire les images suit le [niveau d'accès](#access-levels) de votre environnement, et les [défauts Trusted](#default-allowed-domains) incluent Docker Hub et d'autres registres courants.431Docker est disponible pour exécuter des services conteneurisés. Demandez à Claude d'exécuter `docker compose up` pour démarrer les services de votre projet. L'accès réseau pour extraire les images suit le [niveau d'accès](#access-levels) de votre environnement, et les [défauts Trusted](#default-allowed-domains) incluent Docker Hub et d'autres registres courants.

414 432 

415Si vos images sont grandes ou lentes à extraire, ajoutez `docker compose pull` ou `docker compose build` à votre [script de configuration](#setup-scripts). Le [cache d'environnement](#environment-caching) conserve les images extraites, donc chaque nouvelle session les a sur le disque. Le cache stocke seulement les fichiers, pas les processus en cours d'exécution, donc Claude démarre toujours les conteneurs chaque session.433Si vos images sont grandes ou lentes à extraire, ajoutez `docker compose pull` ou `docker compose build` à votre [script de configuration](#setup-scripts). Le [cache d'environnement](#environment-caching) conserve les images extraites, donc chaque nouvelle session les a sur le disque. Le cache stocke seulement les fichiers, pas les processus en cours d'exécution, donc Claude démarre toujours les conteneurs à chaque session.

416 434 

417<h4 id="add-packages">435<h4 id="add-packages">

418 Ajoutez des paquets436 Ajoutez des paquets


430* 16 Go de RAM448* 16 Go de RAM

431* 30 Go de disque449* 30 Go de disque

432 450 

433La VM peut arrêter les tâches qui ont besoin de beaucoup plus de mémoire, comme les gros travaux de construction ou les tests gourmands en mémoire. Pour les charges de travail au-delà de ces limites, utilisez [Remote Control](/docs/fr/remote-control) pour exécuter Claude Code sur votre propre matériel, ou exécutez les sessions cloud dans un [environnement auto-hébergé](/docs/fr/self-hosted-environments) sur le calcul que votre organisation exploite.451La VM peut arrêter les tâches qui ont besoin de beaucoup plus de mémoire vive, comme les gros jobs de build ou les tests gourmands en mémoire. Pour les charges de travail au-delà de ces limites, utilisez [Remote Control](/docs/fr/remote-control) pour exécuter Claude Code sur votre propre matériel, ou exécutez les sessions cloud dans un [environnement auto-hébergé](/docs/fr/self-hosted-environments) sur le calcul que votre organisation exploite.

434 452 

435<h3 id="time-limits">453<h3 id="time-limits">

436 Limites de temps454 Limites de temps

437</h3>455</h3>

438 456 

439Dans les environnements hébergés par Anthropic, ces limites de temps s'appliquent aux travaux de longue durée dans une session cloud, comme une construction, une installation ou une exécution de test. Chaque entrée renvoie à la section qui définit la limite.457Dans les environnements hébergés par Anthropic, ces limites de temps s'appliquent aux travaux de longue durée dans une session cloud, comme un build, une installation ou une exécution de test. Chaque entrée renvoie à la section qui définit la limite.

440 458 

441* **Commandes que Claude exécute** : un environnement cloud ne définit pas son propre délai d'expiration de commande, donc les défauts de l'outil Bash s'appliquent. Claude attend 2 minutes pour une commande par défaut et peut demander jusqu'à 10 minutes.459* **Commandes que Claude exécute** : un environnement cloud ne définit pas son propre délai d'expiration de commande, donc les défauts de l'outil Bash s'appliquent. Claude attend 2 minutes pour une commande au premier plan par défaut et peut demander jusqu'à 10 minutes.

442 460 

443 Quand une commande atteint son [délai d'expiration](/docs/fr/tools-reference#timeout-and-output-limits), Claude Code [la déplace en arrière-plan](/docs/fr/tools-reference#foreground-commands-that-move-to-the-background) au lieu de l'arrêter, sauf si la commande commence par `sleep`. Une commande déplacée de cette façon peut continuer à s'exécuter pendant jusqu'à 30 minutes supplémentaires avant que Claude Code l'arrête à son [délai d'expiration en arrière-plan](/docs/fr/tools-reference#time-limit-for-background-commands). Définir `BASH_DEFAULT_TIMEOUT_MS` au-dessus de `1800000` millisecondes allonge cette limite ainsi que le défaut de premier plan.461 Quand une commande atteint son [délai d'expiration](/docs/fr/tools-reference#timeout-and-output-limits), Claude Code [la déplace en arrière-plan](/docs/fr/tools-reference#foreground-commands-that-move-to-the-background) au lieu de l'arrêter, sauf si la commande commence par `sleep`. Une commande déplacée de cette façon peut continuer à s'exécuter pendant jusqu'à 30 minutes supplémentaires avant que Claude Code l'arrête à sa [limite de temps en arrière-plan](/docs/fr/tools-reference#time-limit-for-background-commands). Définir `BASH_DEFAULT_TIMEOUT_MS` au-dessus de `1800000` millisecondes allonge cette limite ainsi que le défaut de premier plan.

444* **Crochets SessionStart** : Claude Code annule un crochet `command` après 600 secondes sauf si vous définissez [`timeout`](/docs/fr/hooks#common-fields), en secondes, sur l'entrée du crochet. Claude Code n'applique pas le délai d'expiration sur un crochet que vous exécutez avec [`async: true`](/docs/fr/hooks#run-hooks-in-the-background).462* **Hooks SessionStart** : Claude Code annule un hook `command` après 600 secondes sauf si vous définissez [`timeout`](/docs/fr/hooks#common-fields), en secondes, sur l'entrée du hook. Claude Code n'applique pas le délai d'expiration sur un hook que vous exécutez avec [`async: true`](/docs/fr/hooks#run-hooks-in-the-background).

445* **Script de configuration** : un script qui prend plus que environ cinq minutes n'est pas mis en cache. [Exigences du script](#script-requirements) couvre comment rester en dessous de cela.463* **Script de configuration** : un script qui prend plus d'environ cinq minutes n'est pas mis en cache. [Exigences du script](#script-requirements) couvre comment rester en dessous de cela.

446* **Sessions inactives** : après quelques minutes sans activité, la VM d'une session s'arrête avec ses fichiers sauvegardés, et une VM arrêtée peut être réclamée ultérieurement. [Définir les variables d'environnement](#set-environment-variables) décrit ce qu'une session récupère dans chaque cas, et [Environnement expiré](/docs/fr/claude-code-on-the-web#environment-expired) couvre comment rouvrir une session dont la VM a été réclamée.464* **Sessions inactives** : après quelques minutes sans activité, la VM d'une session se met en pause avec ses fichiers sauvegardés, et une VM en pause peut être réclamée ultérieurement. [Définir les variables d'environnement](#set-environment-variables) décrit ce qu'une session récupère dans chaque cas, et [Environnement expiré](/docs/fr/claude-code-on-the-web#environment-expired) couvre comment rouvrir une session dont la VM a été réclamée.

447 465 

448Pour augmenter les délais d'expiration de commande pour les sessions d'un environnement, ajoutez [`BASH_DEFAULT_TIMEOUT_MS` et `BASH_MAX_TIMEOUT_MS`](/docs/fr/env-vars#variables) à ses [variables d'environnement](#set-environment-variables). Les deux prennent des millisecondes. Par exemple, `BASH_DEFAULT_TIMEOUT_MS=600000` rend 10 minutes le défaut.466Pour augmenter les délais d'expiration de commande pour les sessions d'un environnement, ajoutez [`BASH_DEFAULT_TIMEOUT_MS` et `BASH_MAX_TIMEOUT_MS`](/docs/fr/env-vars#variables) à ses [variables d'environnement](#set-environment-variables). Les deux prennent des millisecondes. Par exemple, `BASH_DEFAULT_TIMEOUT_MS=600000` rend 10 minutes le défaut.

449 467 

Details

1586 1586 

1587La session parcourt un flux réaliste avec des comptages de jetons représentatifs :1587La session parcourt un flux réaliste avec des comptages de jetons représentatifs :

1588 1588 

1589* **Avant que vous ne tapiez quoi que ce soit** : CLAUDE.md, la mémoire automatique, les noms d'outils MCP, et les descriptions de compétences se chargent tous dans le contexte. [Les fichiers AGENTS.md](/docs/fr/memory#agents-md) peuvent également se charger, seuls ou aux côtés de CLAUDE.md. Votre propre configuration peut ajouter plus ici, comme un [style de sortie](/docs/fr/output-styles) ou du texte provenant de [`--append-system-prompt`](/docs/fr/cli-reference).1589* **Avant que vous ne tapiez quoi que ce soit** : CLAUDE.md, la mémoire automatique, les noms d'outils MCP, et les descriptions de skills se chargent tous dans le contexte. [Les fichiers AGENTS.md](/docs/fr/memory#agents-md) peuvent se charger à la place de CLAUDE.md. Votre propre configuration peut ajouter plus ici, comme un [style de sortie](/docs/fr/output-styles) ou du texte provenant de [`--append-system-prompt`](/docs/fr/cli-reference).

1590* **Pendant que Claude travaille** : chaque lecture de fichier s'ajoute au contexte, les [règles délimitées par chemin](/docs/fr/memory#path-specific-rules) se chargent automatiquement aux côtés des fichiers correspondants, et un [hook PostToolUse](/docs/fr/hooks-guide) s'exécute après chaque modification.1590* **Pendant que Claude travaille** : chaque lecture de fichier s'ajoute au contexte, les [règles délimitées par chemin](/docs/fr/memory#path-specific-rules) se chargent automatiquement aux côtés des fichiers correspondants, et un [hook PostToolUse](/docs/fr/hooks-guide) s'exécute après chaque modification.

1591* **L'invite de suivi** : un [sous-agent](/docs/fr/sub-agents) gère la recherche dans sa propre fenêtre de contexte séparée, de sorte que les lectures de fichiers volumineux restent en dehors de la vôtre. Seul le résumé et une petite remorque de métadonnées reviennent.1591* **L'invite de suivi** : un [sous-agent](/docs/fr/sub-agents) gère la recherche dans sa propre fenêtre de contexte séparée, de sorte que les lectures de fichiers volumineux restent en dehors de la vôtre. Seul le résumé et une petite remorque de métadonnées reviennent.

1592* **À la fin de la présentation** : vous exécutez `/compact`, qui remplace la conversation par un résumé structuré. La plupart du contenu de démarrage se recharge automatiquement ; le tableau ci-dessous montre ce qui se passe pour chaque mécanisme.1592* **À la fin de la présentation** : vous exécutez `/compact`, qui remplace la conversation par un résumé structuré. La plupart du contenu de démarrage se recharge automatiquement ; le tableau ci-dessous montre ce qui se passe pour chaque mécanisme.

costs.md +1 −1

Details

394* **Utilisez le mode plan pour les tâches complexes** : Appuyez sur Maj+Tab pour entrer en [mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode) avant l'implémentation. Claude explore la base de code et propose une approche pour votre approbation, évitant les retouches coûteuses lorsque la direction initiale est mauvaise.394* **Utilisez le mode plan pour les tâches complexes** : Appuyez sur Maj+Tab pour entrer en [mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode) avant l'implémentation. Claude explore la base de code et propose une approche pour votre approbation, évitant les retouches coûteuses lorsque la direction initiale est mauvaise.

395* **Corriger la trajectoire tôt** : Si Claude commence à aller dans la mauvaise direction, appuyez sur Échap pour arrêter immédiatement. Utilisez `/rewind` ou appuyez deux fois sur Échap pour restaurer la conversation et le code à un point de contrôle précédent.395* **Corriger la trajectoire tôt** : Si Claude commence à aller dans la mauvaise direction, appuyez sur Échap pour arrêter immédiatement. Utilisez `/rewind` ou appuyez deux fois sur Échap pour restaurer la conversation et le code à un point de contrôle précédent.

396* **Donner des cibles de vérification** : Incluez des cas de test, collez des captures d'écran ou définissez la sortie attendue dans votre invite. Lorsque Claude peut vérifier son propre travail, il détecte les problèmes avant que vous ayez besoin de demander des corrections.396* **Donner des cibles de vérification** : Incluez des cas de test, collez des captures d'écran ou définissez la sortie attendue dans votre invite. Lorsque Claude peut vérifier son propre travail, il détecte les problèmes avant que vous ayez besoin de demander des corrections.

397* **Tester de manière progressive** : Écrivez un fichier, testez-le, puis continuez. Cela détecte les problèmes tôt lorsqu'ils sont bon marché à corriger.397* **Tester de manière progressive** : Écrivez un fichier, testez-le, puis continuez. Cela permet de détecter les problèmes tôt.

398 398 

399<h2 id="background-token-usage">399<h2 id="background-token-usage">

400 Utilisation des tokens en arrière-plan400 Utilisation des tokens en arrière-plan

desktop.md +1 −1

Details

1092Pour voir quelle version de l'application de bureau vous exécutez :1092Pour voir quelle version de l'application de bureau vous exécutez :

1093 1093 

1094* **macOS** : cliquez sur **Claude** dans la barre de menu, puis **À propos de Claude**1094* **macOS** : cliquez sur **Claude** dans la barre de menu, puis **À propos de Claude**

1095* **Windows** : cliquez sur **Aide**, puis **À propos**1095* **Windows** : cliquez sur **Aide**, puis **À propos de Claude**

1096 1096 

1097Cliquez sur le numéro de version pour le copier dans votre presse-papiers.1097Cliquez sur le numéro de version pour le copier dans votre presse-papiers.

1098 1098 

Details

92* Enregistrer une capture d'écran avec **Cmd+S** ou un enregistrement d'écran avec **Cmd+R**, en utilisant les boutons de capture du volet ou les raccourcis ; les fichiers sont enregistrés sur votre Bureau92* Enregistrer une capture d'écran avec **Cmd+S** ou un enregistrement d'écran avec **Cmd+R**, en utilisant les boutons de capture du volet ou les raccourcis ; les fichiers sont enregistrés sur votre Bureau

93* Arrêter la diffusion en continu d'un appareil sans l'arrêter en cliquant sur **Detach simulator**, ce qui ramène le volet à son état **Attach simulator**93* Arrêter la diffusion en continu d'un appareil sans l'arrêter en cliquant sur **Detach simulator**, ce qui ramène le volet à son état **Attach simulator**

94 94 

95Pour régler le flux vidéo du simulateur, ouvrez le menu **Display** du volet. Réduisez la **Frame rate** ou la **Resolution** si le volet surcharge votre Mac. Ces deux paramètres modifient la façon dont le volet affiche l'appareil, pas la façon dont l'application s'exécute.95Si le volet affiche un menu **Display**, utilisez-le pour régler le flux vidéo du simulateur. Réduisez la **Frame rate** ou la **Resolution** si le volet surcharge votre Mac. Ces deux paramètres modifient la façon dont le volet affiche l'appareil, pas la façon dont l'application s'exécute.

96 96 

97Vous et Claude pilotez le même appareil, donc vos appuis modifient l'état de l'application que Claude voit. Pour que Claude vérifie un écran spécifique, accédez-y en appuyant, puis demandez. Pendant que Claude pilote l'appareil, le volet affiche un badge **Claude is using this device** au-dessus de l'écran ; attendez avant d'appuyer jusqu'à ce que le badge disparaisse, afin que le résultat reflète l'application plutôt que votre entrée.97Vous et Claude pilotez le même appareil, donc vos appuis modifient l'état de l'application que Claude voit. Pour que Claude vérifie un écran spécifique, accédez-y en appuyant, puis demandez. Pendant que Claude pilote l'appareil, le volet affiche un badge **Claude is using this device** au-dessus de l'écran ; attendez avant d'appuyer jusqu'à ce que le badge disparaisse, afin que le résultat reflète l'application plutôt que votre entrée.

98 98 

env-vars.md +1 −0

Details

354| `CLAUDE_CODE_PERFORCE_MODE` | Définissez-la sur `1` pour activer une protection en écriture adaptée à Perforce. Lorsqu'elle est définie, Edit, Write et NotebookEdit échouent avec une indication `p4 edit <file>` si le fichier cible n'a pas le bit d'écriture 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 |354| `CLAUDE_CODE_PERFORCE_MODE` | Définissez-la sur `1` pour activer une protection en écriture adaptée à Perforce. Lorsqu'elle est définie, Edit, Write et NotebookEdit échouent avec une indication `p4 edit <file>` si le fichier cible n'a pas le bit d'écriture 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 |

355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Remplace le répertoire racine des plugins. Malgré son nom, cette variable définit le répertoire parent, et non 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` |355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Remplace le répertoire racine des plugins. Malgré son nom, cette variable définit le répertoire parent, et non 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` |

356| `CLAUDE_CODE_PLUGIN_DIRS` | Répertoires de plugins à charger pour la session, chacun étant chargé comme le ferait 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 faites-le commencer par `~`, car Claude Code ignore les chemins relatifs. Nécessite Claude Code v2.1.280 ou version ultérieure. Consultez [Charger un plugin pour une session](/docs/fr/plugins/create#load-a-directory-or-archive-for-one-session) |356| `CLAUDE_CODE_PLUGIN_DIRS` | Répertoires de plugins à charger pour la session, chacun étant chargé comme le ferait 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 faites-le commencer par `~`, car Claude Code ignore les chemins relatifs. Nécessite Claude Code v2.1.280 ou version ultérieure. Consultez [Charger un plugin pour une session](/docs/fr/plugins/create#load-a-directory-or-archive-for-one-session) |

357| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Contrôle si Claude Code recharge un [mod](/docs/fr/plugins/mods/overview) lorsque les fichiers du mod changent. Le rechargement s'applique à un mod que vous chargez depuis un répertoire avec `--plugin-dir`, et il est activé par défaut dans les sessions interactives. Définissez sur `1` pour l'activer également dans les sessions non interactives, ou sur `0` pour le désactiver dans toutes les sessions. Requiert Claude Code v2.1.287 ou ultérieur. Voir [paramètres et variables d'environnement des mods](/docs/fr/plugins/mods/reference#settings-and-environment-variables) |

357| `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. Consultez [Git clone timed out](/docs/fr/plugins/troubleshooting#git-clone-timed-out-after-120s) |358| `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. Consultez [Git clone timed out](/docs/fr/plugins/troubleshooting#git-clone-timed-out-after-120s) |

358| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Définissez-la sur `1` pour ne pas tenter de re-cloner 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 nouveau clonage échouerait de la même manière. Consultez [Les mises à jour de marketplace échouent dans les environnements hors ligne](/docs/fr/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |359| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Définissez-la sur `1` pour ne pas tenter de re-cloner 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 nouveau clonage échouerait de la même manière. Consultez [Les mises à jour de marketplace échouent dans les environnements hors ligne](/docs/fr/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

359| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Définissez-la sur `1` pour cloner les sources GitHub en notation abrégée `owner/repo` via HTTPS au lieu de SSH. S'applique à l'installation et à la mise à jour des plugins, ainsi qu'à `/plugin marketplace add` et `update`. Utile dans les runners CI, les conteneurs ou tout environnement sans clé SSH configurée pour `github.com` |360| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Définissez-la sur `1` pour cloner les sources GitHub en notation abrégée `owner/repo` via HTTPS au lieu de SSH. S'applique à l'installation et à la mise à jour des plugins, ainsi qu'à `/plugin marketplace add` et `update`. Utile dans les runners CI, les conteneurs ou tout environnement sans clé SSH configurée pour `github.com` |

errors.md +3 −4

Details

197| `Cloud sessions cannot be created from a --restricted session` | [Erreurs de ligne de commande](#cloud-sessions-cannot-be-created-from-a-restricted-session) |197| `Cloud sessions cannot be created from a --restricted session` | [Erreurs de ligne de commande](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

198| `Cloud sessions are disabled by your organization's policy` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) |198| `Cloud sessions are disabled by your organization's policy` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) |

199| `Couldn't verify your organization's policy for cloud sessions` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) |199| `Couldn't verify your organization's policy for cloud sessions` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) |

200| `Cloud sessions need a claude.ai sign-in` | [Impossible d'obtenir l'UUID de l'organisation](/docs/fr/claude-code-on-the-web#unable-to-get-organization-uuid) |

200| `Error: --json-schema is not a valid JSON Schema` | [Erreurs de ligne de commande](#the-json-schema-value-is-not-a-valid-json-schema) |201| `Error: --json-schema is not a valid JSON Schema` | [Erreurs de ligne de commande](#the-json-schema-value-is-not-a-valid-json-schema) |

201| `Error: Invalid --agents configuration:` | [Erreurs de ligne de commande](#invalid-agents-configuration) |202| `Error: Invalid --agents configuration:` | [Erreurs de ligne de commande](#invalid-agents-configuration) |

202| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Erreurs de ligne de commande](#invalid-agents-configuration) |203| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Erreurs de ligne de commande](#invalid-agents-configuration) |


387* Une connexion que Claude Code détecte comme ayant été interrompue par votre ordinateur qui s'endort au milieu d'une requête. Claude Code la compte comme une connexion interrompue selon les règles ci-dessus ; une fois que l'étiquette de tentative nomme la raison spécifique, elle lit `Connection lost while your computer was asleep`, et si le tour se termine après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, le message lit `Your computer went to sleep before a response was produced`.388* Une connexion que Claude Code détecte comme ayant été interrompue par votre ordinateur qui s'endort au milieu d'une requête. Claude Code la compte comme une connexion interrompue selon les règles ci-dessus ; une fois que l'étiquette de tentative nomme la raison spécifique, elle lit `Connection lost while your computer was asleep`, et si le tour se termine après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, le message lit `Your computer went to sleep before a response was produced`.

388* Un flux de réponse bloqué, lorsque les en-têtes de réponse sont arrivés mais aucune partie de la réponse de Claude n'est arrivée, ou lorsque Claude a terminé sa réflexion mais n'a pas commencé un texte ou un appel d'outil : Claude Code abandonne la connexion bloquée et renvoie la requête au maximum une fois, en dehors du budget de 10 tentatives ci-dessus. Si la réponse se bloque une deuxième fois après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, Claude Code termine le tour avec `The response stalled before a response was produced`.389* Un flux de réponse bloqué, lorsque les en-têtes de réponse sont arrivés mais aucune partie de la réponse de Claude n'est arrivée, ou lorsque Claude a terminé sa réflexion mais n'a pas commencé un texte ou un appel d'outil : Claude Code abandonne la connexion bloquée et renvoie la requête au maximum une fois, en dehors du budget de 10 tentatives ci-dessus. Si la réponse se bloque une deuxième fois après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, Claude Code termine le tour avec `The response stalled before a response was produced`.

389* Une requête en streaming à laquelle l'API ne répond jamais avec des en-têtes de réponse, sur une connexion où le [délai de premier octet s'exécute](/docs/fr/network-config#streaming-idle-watchdogs) : Claude Code l'abandonne à la date limite et la renvoie au maximum une fois par requête de modèle, dans le budget de tentatives, puis termine le tour avec [No response from API](#no-response-from-api) si cette tentative reste sans réponse aussi. Sur d'autres connexions, la requête attend `API_TIMEOUT_MS`. Lorsque vous définissez `CLAUDE_CODE_RETRY_WATCHDOG`, le plafond d'une tentative ne s'applique pas.390* Une requête en streaming à laquelle l'API ne répond jamais avec des en-têtes de réponse, sur une connexion où le [délai de premier octet s'exécute](/docs/fr/network-config#streaming-idle-watchdogs) : Claude Code l'abandonne à la date limite et la renvoie au maximum une fois par requête de modèle, dans le budget de tentatives, puis termine le tour avec [No response from API](#no-response-from-api) si cette tentative reste sans réponse aussi. Sur d'autres connexions, la requête attend `API_TIMEOUT_MS`. Lorsque vous définissez `CLAUDE_CODE_RETRY_WATCHDOG`, le plafond d'une tentative ne s'applique pas.

391* Une réponse en streaming que le filtre de contenu de sortie de l'API arrête avant que Claude n'ait terminé sa réflexion ou commencé un texte ou un appel d'outil. Claude Code renvoie la requête une fois, dans le budget de tentatives, et affiche [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) si le filtre arrête également la deuxième réponse.

390* Les throttles 429 temporaires, mais pas le `429` de limite de dépenses d'une passerelle, qui n'est pas un throttle ; voir [Spend limit reached](#spend-limit-reached).392* Les throttles 429 temporaires, mais pas le `429` de limite de dépenses d'une passerelle, qui n'est pas un throttle ; voir [Spend limit reached](#spend-limit-reached).

391 * Lorsque vous êtes connecté avec un abonnement claude.ai, cela inclut les throttles 429 qui ne portent pas les en-têtes de quota de votre plan. Avant v2.1.199, Claude Code ne réessayait ces throttles que pour les connexions par clé API et Enterprise.393 * Lorsque vous êtes connecté avec un abonnement claude.ai, cela inclut les throttles 429 qui ne portent pas les en-têtes de quota de votre plan. Avant v2.1.199, Claude Code ne réessayait ces throttles que pour les connexions par clé API et Enterprise.

392* Une requête rejetée parce que l'entrée plus `max_tokens` dépasse la limite de contexte. La renvoyer inchangée échouerait de la même manière, donc Claude Code réessaie avec un `max_tokens` réduit, et arrête de réessayer et compacte à la place dans deux cas :394* Une requête rejetée parce que l'entrée plus `max_tokens` dépasse la limite de contexte. La renvoyer inchangée échouerait de la même manière, donc Claude Code réessaie avec un `max_tokens` réduit, et arrête de réessayer et compacte à la place dans deux cas :


405* 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.407* 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.

406* 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.408* 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.

407* 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.409* 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.

408* 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.

409 410 

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

411 Ce que vous voyez pendant que Claude Code réessaie ou attend412 Ce que vous voyez pendant que Claude Code réessaie ou attend


2299 2300 

2300**Que faire :**2301**Que faire :**

2301 2302 

2302* Redimensionnez l'image avant de la coller. L'API accepte les images jusqu'à 8 000 pixels sur le côté le plus long pour une seule image, ou 2 000 pixels quand de nombreuses images sont en contexte.2303* Redimensionnez l'image avant de la coller. L'API accepte les images jusqu'à 8 000 pixels sur le côté le plus long pour une seule image, ou 3 000 pixels quand plus de 20 images sont en contexte.

2303* Prenez une capture d'écran plus serrée de la région pertinente au lieu de l'écran complet2304* Prenez une capture d'écran plus serrée de la région pertinente au lieu de l'écran complet

2304 2305 

2305<h3 id="unable-to-resize-image">2306<h3 id="unable-to-resize-image">


2905API Error: Output blocked by content filtering policy2906API Error: Output blocked by content filtering policy

2906```2907```

2907 2908 

2908Claude 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.

2909 

2910**Que faire :**2909**Que faire :**

2911 2910 

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

fast-mode.md +1 −1

Details

88 88 

89La tarification du mode rapide est forfaitaire sur toute la fenêtre de contexte de 1 M de jetons. Pour le taux Opus standard à comparer, consultez la [référence de tarification Claude](https://platform.claude.com/docs/en/about-claude/pricing).89La tarification du mode rapide est forfaitaire sur toute la fenêtre de contexte de 1 M de jetons. Pour le taux Opus standard à comparer, consultez la [référence de tarification Claude](https://platform.claude.com/docs/en/about-claude/pricing).

90 90 

91La première fois que vous activez le mode rapide dans une conversation, vous payez le prix complet du jeton d'entrée non mis en cache du mode rapide pour tout le contexte de la conversation. Plus vous êtes avancé dans une conversation, plus cela coûte cher, donc activer le mode rapide dès le départ est moins cher. Le coût s'applique une fois par conversation, donc désactiver le mode rapide et le réactiver plus tard ne le répète pas. Pour le mécanisme, consultez [comment le mode rapide interagit avec le cache de prompt](/docs/fr/prompt-caching#turning-on-fast-mode).91La première fois que vous activez le mode rapide dans une conversation, vous payez le prix complet du token d'entrée non mis en cache du mode rapide pour tout le contexte de la conversation. Plus vous êtes avancé dans une conversation, plus cela coûte cher, donc activer le mode rapide dès le départ est moins cher. Le coût s'applique une fois par conversation, donc désactiver le mode rapide et le réactiver plus tard ne le répète pas. Pour le mécanisme, consultez [comment le mode rapide interagit avec le cache de prompt](/docs/fr/prompt-caching#turning-on-fast-mode).

92 92 

93<h3 id="see-where-fast-mode-spend-appears">93<h3 id="see-where-fast-mode-spend-appears">

94 Voir où apparaît la dépense du mode rapide94 Voir où apparaît la dépense du mode rapide

glossary.md +1 −1

Details

130 130 

131Un fichier markdown d'instructions persistantes que vous écrivez pour Claude, chargé au début de chaque session en tant que message utilisateur après l'invite système. Mettez les conventions de projet, les notes d'architecture et les règles « toujours faire X » ici. Project-root CLAUDE.md survit à [compaction](#compaction) et est relu à nouveau à partir du disque après.131Un fichier markdown d'instructions persistantes que vous écrivez pour Claude, chargé au début de chaque session en tant que message utilisateur après l'invite système. Mettez les conventions de projet, les notes d'architecture et les règles « toujours faire X » ici. Project-root CLAUDE.md survit à [compaction](#compaction) et est relu à nouveau à partir du disque après.

132 132 

133Vous pouvez placer CLAUDE.md au niveau du projet dans `./CLAUDE.md` ou `./.claude/CLAUDE.md`, au niveau utilisateur dans `~/.claude/CLAUDE.md`, ou comme [managed policy](#managed-settings) pour votre organisation. Tous les fichiers découverts sont concaténés dans le contexte plutôt que de se remplacer les uns les autres, ordonnés du champ d'application le plus large au plus spécifique. Claude Code peut également charger les fichiers [AGENTS.md](#agents-md) d'un projet, seuls ou aux côtés de CLAUDE.md.133Vous pouvez placer CLAUDE.md dans la portée projet dans `./CLAUDE.md` ou `./.claude/CLAUDE.md`, dans la portée utilisateur dans `~/.claude/CLAUDE.md`, ou comme [politique gérée](#managed-settings) pour votre organisation. Tous les fichiers découverts sont concaténés dans le contexte plutôt que de se remplacer les uns les autres, ordonnés de la portée la plus large à la plus spécifique. Claude Code peut également charger les fichiers [AGENTS.md](#agents-md) d'un projet à la place de CLAUDE.md.

134 134 

135En savoir plus : [CLAUDE.md files](/docs/fr/memory#claude-md-files)135En savoir plus : [CLAUDE.md files](/docs/fr/memory#claude-md-files)

136 136 

Details

210export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1210export VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1

211```211```

212 212 

213La plupart des versions de modèle ont une variable `VERTEX_REGION_CLAUDE_*` correspondante. Consultez la [référence des variables d'environnement](/docs/fr/env-vars) pour la liste complète. Vérifiez [Google Cloud's Agent Platform Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) pour déterminer quels modèles prennent en charge les points de terminaison globaux par rapport aux points de terminaison régionaux uniquement.213La plupart des versions de modèle ont une variable `VERTEX_REGION_CLAUDE_*` correspondante. Consultez la [référence des variables d'environnement](/docs/fr/env-vars#variables) pour la liste complète. Vérifiez [Google Cloud's Agent Platform Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) pour déterminer quels modèles prennent en charge les endpoints globaux par rapport aux endpoints régionaux uniquement.

214 214 

215Si une valeur de région ne ressemble pas à un nom de région ou d'emplacement, Claude Code la traite comme non définie. Par exemple, Claude Code traite une valeur contenant une barre oblique, un point ou un espace comme non définie. Claude Code revient à une source différente pour chaque variable :215Si une valeur de région ne ressemble pas à un nom de région ou d'emplacement, Claude Code la traite comme non définie. Par exemple, Claude Code traite une valeur contenant une barre oblique, un point ou un espace comme non définie. Claude Code revient à une source différente pour chaque variable :

216 216 


364 364 

365* Confirmez que le modèle est activé dans [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)365* Confirmez que le modèle est activé dans [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden)

366* Vérifiez que le modèle est disponible dans l'emplacement que vous avez spécifié. Certains modèles ne sont proposés que sur les emplacements `global` ou multi-régions tels que `eu` et `us`, pas dans les régions spécifiques366* Vérifiez que le modèle est disponible dans l'emplacement que vous avez spécifié. Certains modèles ne sont proposés que sur les emplacements `global` ou multi-régions tels que `eu` et `us`, pas dans les régions spécifiques

367* Si vous utilisez `CLOUD_ML_REGION=global`, vérifiez que vos modèles prennent en charge les points de terminaison globaux dans [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) sous « Fonctionnalités prises en charge ». Pour les modèles qui ne prennent pas en charge les points de terminaison globaux, soit :367* Si vous utilisez `CLOUD_ML_REGION=global`, vérifiez que vos modèles prennent en charge les endpoints globaux dans [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) sous « Fonctionnalités prises en charge ». Pour les modèles qui ne prennent pas en charge les endpoints globaux, soit :

368 * Spécifiez un modèle pris en charge via `ANTHROPIC_MODEL` ou `ANTHROPIC_DEFAULT_HAIKU_MODEL`, soit368 * Spécifiez un modèle pris en charge via `ANTHROPIC_MODEL` ou `ANTHROPIC_DEFAULT_HAIKU_MODEL`, soit

369 * Définissez une région ou un emplacement multi-région à l'aide des variables d'environnement `VERTEX_REGION_<MODEL_NAME>`369 * Définissez une région ou un emplacement multi-région à l'aide de la variable `VERTEX_REGION_CLAUDE_*` du modèle, répertoriée dans la [référence des variables d'environnement](/docs/fr/env-vars#variables)

370 370 

371Si vous rencontrez des erreurs 429 :371Si vous rencontrez des erreurs 429 :

372 372 

hooks.md +4 −5

Details

63| `DirectoryAdded` | Quand un répertoire de travail est ajouté en milieu de session via `/add-dir` ou la demande de contrôle SDK `register_repo_root` |63| `DirectoryAdded` | Quand un répertoire de travail est ajouté en milieu de session via `/add-dir` ou la demande de contrôle SDK `register_repo_root` |

64| `FileChanged` | Quand un fichier surveillé change sur le disque. Le champ `matcher` spécifie les noms de fichiers à surveiller |64| `FileChanged` | Quand un fichier surveillé change sur le disque. Le champ `matcher` spécifie les noms de fichiers à surveiller |

65| `WorktreeCreate` | Quand un worktree est en cours de création via `--worktree`, `isolation: "worktree"`, ou pour une session en arrière-plan. Remplace le comportement git par défaut |65| `WorktreeCreate` | Quand un worktree est en cours de création via `--worktree`, `isolation: "worktree"`, ou pour une session en arrière-plan. Remplace le comportement git par défaut |

66| `WorktreeRemove` | Quand un worktree est supprimé à la sortie de la session, quand un sous-agent se termine, ou quand vous supprimez une session en arrière-plan |66| `WorktreeRemove` | Quand un worktree créé par un hook `WorktreeCreate` est en cours de suppression |

67| `PreCompact` | Avant la compaction du contexte |67| `PreCompact` | Avant la compaction du contexte |

68| `PostCompact` | Après la compaction du contexte est complétée |68| `PostCompact` | Après la compaction du contexte est complétée |

69| `PreModelSwitch` | Avant que Claude Code applique un changement de modèle que vous ou un client avez demandé. Peut bloquer le changement |69| `PreModelSwitch` | Avant que Claude Code applique un changement de modèle que vous ou un client avez demandé. Peut bloquer le changement |


3274 WorktreeRemove3274 WorktreeRemove

3275</h3>3275</h3>

3276 3276 

3277S'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 :3277S'exécute lorsque Claude Code nettoie un worktree créé par votre hook [`WorktreeCreate`](#worktreecreate). L'événement se déclenche lorsque :

3278 3278 

3279* vous quittez une session `--worktree` et choisissez de la supprimer3279* Vous quittez une session `--worktree` et choisissez de supprimer le worktree

3280* un sous-agent avec `isolation: "worktree"` se termine3280* Vous supprimez une [session en arrière-plan](/docs/fr/agent-view#what-deleting-a-session-removes) qui s'exécute dans le worktree

3281* 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

3282 3281 

3283Pour 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 :3282Pour 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 :

3284 3283 

hooks-guide.md +1 −1

Details

526| `DirectoryAdded` | Quand un répertoire de travail est ajouté en milieu de session via `/add-dir` ou la demande de contrôle SDK `register_repo_root` |526| `DirectoryAdded` | Quand un répertoire de travail est ajouté en milieu de session via `/add-dir` ou la demande de contrôle SDK `register_repo_root` |

527| `FileChanged` | Quand un fichier surveillé change sur le disque. Le champ `matcher` spécifie les noms de fichiers à surveiller |527| `FileChanged` | Quand un fichier surveillé change sur le disque. Le champ `matcher` spécifie les noms de fichiers à surveiller |

528| `WorktreeCreate` | Quand un worktree est en cours de création via `--worktree`, `isolation: "worktree"`, ou pour une session en arrière-plan. Remplace le comportement git par défaut |528| `WorktreeCreate` | Quand un worktree est en cours de création via `--worktree`, `isolation: "worktree"`, ou pour une session en arrière-plan. Remplace le comportement git par défaut |

529| `WorktreeRemove` | Quand un worktree est supprimé à la sortie de la session, quand un sous-agent se termine, ou quand vous supprimez une session en arrière-plan |529| `WorktreeRemove` | Quand un worktree créé par un hook `WorktreeCreate` est en cours de suppression |

530| `PreCompact` | Avant la compaction du contexte |530| `PreCompact` | Avant la compaction du contexte |

531| `PostCompact` | Après la compaction du contexte est complétée |531| `PostCompact` | Après la compaction du contexte est complétée |

532| `PreModelSwitch` | Avant que Claude Code applique un changement de modèle que vous ou un client avez demandé. Peut bloquer le changement |532| `PreModelSwitch` | Avant que Claude Code applique un changement de modèle que vous ou un client avez demandé. Peut bloquer le changement |

Details

76* **Votre projet.** Les fichiers de votre répertoire et sous-répertoires, plus les fichiers ailleurs avec votre permission.76* **Votre projet.** Les fichiers de votre répertoire et sous-répertoires, plus les fichiers ailleurs avec votre permission.

77* **Votre terminal.** N'importe quelle commande que vous pourriez exécuter : outils de build, git, gestionnaires de paquets, utilitaires système, scripts. Si vous pouvez le faire à partir de la ligne de commande, Claude aussi.77* **Votre terminal.** N'importe quelle commande que vous pourriez exécuter : outils de build, git, gestionnaires de paquets, utilitaires système, scripts. Si vous pouvez le faire à partir de la ligne de commande, Claude aussi.

78* **Votre état git.** La branche actuelle, les modifications non validées, et l'historique récent des commits.78* **Votre état git.** La branche actuelle, les modifications non validées, et l'historique récent des commits.

79* **Votre [CLAUDE.md](/docs/fr/memory).** Un fichier markdown où vous stockez les instructions spécifiques au projet, les conventions, et le contexte que Claude devrait connaître à chaque session. Si votre référentiel dispose d'un AGENTS.md pour d'autres agents de codage, Claude [peut le lire](/docs/fr/memory#agents-md) seul ou aux côtés de CLAUDE.md.79* **Votre [CLAUDE.md](/docs/fr/memory).** Un fichier markdown où vous stockez les instructions spécifiques au projet, les conventions, et le contexte que Claude devrait connaître à chaque session. Si votre dépôt dispose d'un AGENTS.md pour d'autres agents de codage, Claude [peut le lire](/docs/fr/memory#agents-md) à la place d'un CLAUDE.md.

80* **[Mémoire automatique](/docs/fr/memory#auto-memory).** Les apprentissages que Claude sauvegarde automatiquement au fur et à mesure que vous travaillez, comme vos préférences. Les 200 premières lignes ou 25 KB de MEMORY.md, selon ce qui vient en premier, se chargent au début de chaque session.80* **[Mémoire automatique](/docs/fr/memory#auto-memory).** Les apprentissages que Claude sauvegarde automatiquement au fur et à mesure que vous travaillez, comme vos préférences. Les 200 premières lignes ou 25 KB de MEMORY.md, selon ce qui vient en premier, se chargent au début de chaque session.

81* **Les extensions que vous configurez.** [Les serveurs MCP](/docs/fr/mcp) pour les services externes, [les skills](/docs/fr/skills) pour les workflows, [les subagents](/docs/fr/sub-agents) pour le travail délégué, et [Claude dans Chrome](/docs/fr/chrome) pour l'interaction avec le navigateur.81* **Les extensions que vous configurez.** [Les serveurs MCP](/docs/fr/mcp) pour les services externes, [les skills](/docs/fr/skills) pour les workflows, [les subagents](/docs/fr/sub-agents) pour le travail délégué, et [Claude dans Chrome](/docs/fr/chrome) pour l'interaction avec le navigateur.

82 82 

keybindings.md +3 −2

Details

299| :- | :- | :- |299| :- | :- | :- |

300| `footer:next` | Droite | Élément de pied de page suivant |300| `footer:next` | Droite | Élément de pied de page suivant |

301| `footer:previous` | Gauche | Élément de pied de page précédent |301| `footer:previous` | Gauche | Élément de pied de page précédent |

302| `footer:up` | Haut | Naviguer vers le haut dans le pied de page (désélectionne en haut) |302| `footer:up` | Haut, Ctrl+P | Naviguer vers le haut dans le pied de page (désélectionne en haut) |

303| `footer:down` | Bas | Naviguer vers le bas dans le pied de page |303| `footer:down` | Bas, Ctrl+N | Naviguer vers le bas dans le pied de page |

304| `footer:openSelected` | Entrée | Ouvrir l'élément de pied de page sélectionné |304| `footer:openSelected` | Entrée | Ouvrir l'élément de pied de page sélectionné |

305| `footer:clearSelection` | Échap | Effacer la sélection du pied de page |305| `footer:clearSelection` | Échap | Effacer la sélection du pied de page |

306| `footer:close` | x | Arrêter l'[agent](/docs/fr/sub-agents#observe-and-steer-running-forks) ou le [workflow](/docs/fr/workflows#manage-runs) sélectionné, ou rejeter sa ligne s'il n'est plus en cours d'exécution |

306| `footer:dismiss` | (non lié) | Lier une touche à cette action n'a aucun effet, et un `keybindings.json` qui la nomme reste valide. Avant v2.1.281, Retour arrière et Suppr y étaient liés et rejetaient le lien d'artefact sélectionné du pied de page. |307| `footer:dismiss` | (non lié) | Lier une touche à cette action n'a aucun effet, et un `keybindings.json` qui la nomme reste valide. Avant v2.1.281, Retour arrière et Suppr y étaient liés et rejetaient le lien d'artefact sélectionné du pied de page. |

307 308 

308Quand un élément de pied de page est sélectionné, comme une ligne dans le panneau agent sous l'invite, `Entrée` l'ouvre même quand vous reliez `Entrée` dans le contexte `Chat` à `chat:queueSubmit` ou `chat:newline`.309Quand un élément de pied de page est sélectionné, comme une ligne dans le panneau agent sous l'invite, `Entrée` l'ouvre même quand vous reliez `Entrée` dans le contexte `Chat` à `chat:queueSubmit` ou `chat:newline`.

Details

216* **Distribuée par un administrateur** : si votre organisation a [déployé la configuration](/docs/fr/llm-gateway-rollout#distribute-through-managed-settings), l'application de bureau route via la passerelle sans configuration de votre côté216* **Distribuée par un administrateur** : si votre organisation a [déployé la configuration](/docs/fr/llm-gateway-rollout#distribute-through-managed-settings), l'application de bureau route via la passerelle sans configuration de votre côté

217* **Configurée localement** : pour les appareils sans configuration distribuée par un administrateur, ouvrez Help → Troubleshooting → Enable Developer Mode, qui redémarre l'application avec un menu Developer. Ensuite, ouvrez Developer → Configure Third-Party Inference et entrez l'URL de base de votre passerelle. Une configuration distribuée par un administrateur a la priorité et rend ce formulaire en lecture seule217* **Configurée localement** : pour les appareils sans configuration distribuée par un administrateur, ouvrez Help → Troubleshooting → Enable Developer Mode, qui redémarre l'application avec un menu Developer. Ensuite, ouvrez Developer → Configure Third-Party Inference et entrez l'URL de base de votre passerelle. Une configuration distribuée par un administrateur a la priorité et rend ce formulaire en lecture seule

218 218 

219Avec la configuration de passerelle active, l'application de bureau exécute les sessions sur votre machine locale uniquement : le sélecteur d'environnement n'offre pas de sessions SSH ou d'environnements cloud hébergés par Anthropic, et [Remote Control](/docs/fr/remote-control) n'est pas disponible. Pour utiliser Claude Code sur un hôte distant via la passerelle, exécutez la CLI sur cet hôte avec [`ANTHROPIC_BASE_URL` et l'identifiant de passerelle](#set-the-base-url-and-credential) définis là.219Avec la configuration de passerelle active, le sélecteur d'environnement ne propose pas d'environnements cloud hébergés par Anthropic, et [Remote Control](/docs/fr/remote-control) n'est pas disponible.

220 

221Les sessions SSH sont en bêta avec une configuration de passerelle et nécessitent Claude Desktop v1.40609.0 ou une version ultérieure. Avant de vous connecter, vérifiez la liste d'autorisation et l'adresse de la passerelle :

222 

223* **Hôtes autorisés** : les sessions SSH sont désactivées par défaut. Pour les activer, vous ou votre administrateur répertoriez les hôtes autorisés dans la clé [`sshHostAllowlist`](https://claude.com/docs/third-party/claude-desktop/configuration#sshhostallowlist) de la configuration d'inférence tierce

224* **Adresse de la passerelle** : la machine distante se connecte elle-même à la passerelle, de sorte qu'une passerelle sur `localhost` sur votre ordinateur ne fonctionne pas pour les sessions SSH

225 

226Consultez [Sessions SSH à distance dans Claude Desktop sur 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Vous pouvez également exécuter la CLI sur l'hôte distant avec [`ANTHROPIC_BASE_URL` et l'identifiant de passerelle](#set-the-base-url-and-credential) définis là.

220 227 

221Si l'application de bureau affiche `Gateway was unreachable`, l'application n'a pas pu atteindre l'URL de base configurée au démarrage ; vérifiez l'URL et le chemin réseau avec le [test curl ci-dessus](#verify-the-connection).228Si l'application de bureau affiche `Gateway was unreachable`, l'application n'a pas pu atteindre l'URL de base configurée au démarrage ; vérifiez l'URL et le chemin réseau avec le [test curl ci-dessus](#verify-the-connection).

222 229 

managed-mcp.md +17 −5

Details

347 Comment les entrées `serverUrl` correspondent347 Comment les entrées `serverUrl` correspondent

348</h4>348</h4>

349 349 

350Les URL supportent les caractères génériques `*` n'importe où dans le motif, y compris le schéma. La correspondance du nom d'hôte est insensible à la casse et ignore un point FQDN final, donc `https://Mcp.Example.com/*` correspond à `https://mcp.example.com/api`. Les chemins restent sensibles à la casse.350Les URL prennent en charge les caractères génériques `*`, y compris `*` comme schéma entier. La correspondance du nom d'hôte est insensible à la casse et ignore un point FQDN final, donc `https://Mcp.Example.com/*` correspond à `https://mcp.example.com/api`. Les chemins restent sensibles à la casse. Si vous n'indiquez aucun port, la façon dont vous écrivez le nom d'hôte détermine si le motif correspond uniquement au port par défaut du schéma ou à tous les ports :

351 

352* **Nom d'hôte écrit en entier** : le port par défaut uniquement, 443 pour `https` et 80 pour `http`

353* **Nom d'hôte contenant un `*`** : tous les ports

351 354 

352Le tableau montre ce que les motifs courants autorisent :355Le tableau montre ce que les motifs courants autorisent :

353 356 

354| Motif | Autorise |357| Motif | Autorise |

355| :- | :- |358| :- | :- |

356| `https://mcp.example.com/*` | Tous les chemins sur un domaine spécifique |359| `https://mcp.example.com/*` | Tous les chemins sur un domaine spécifique, sur le port 443 uniquement |

357| `https://mcp.example.com` | Aussi tous les chemins sur ce domaine. Un motif sans chemin correspond à n'importe quel chemin |360| `https://mcp.example.com` | Aussi tous les chemins sur ce domaine, sur le port 443 uniquement. Un motif sans chemin correspond à n'importe quel chemin |

358| `https://*.example.com/*` | N'importe quel sous-domaine de `example.com` |361| `https://mcp.example.com:8443/*` | Tous les chemins sur ce domaine, sur le port 8443 uniquement |

362| `https://mcp.example.com:*/*` | Tous les chemins sur ce domaine, sur n'importe quel port, 443 compris |

363| `https://*.example.com/*` | N'importe quel sous-domaine de `example.com`, sur n'importe quel port |

359| `http://localhost:*/*` | N'importe quel port sur localhost |364| `http://localhost:*/*` | N'importe quel port sur localhost |

360| `*://mcp.example.com/*` | N'importe quel schéma vers un domaine spécifique |365| `*://mcp.example.com/*` | N'importe quel schéma vers un domaine spécifique, chaque schéma sur son port par défaut uniquement |

366 

367Les entrées de `deniedMcpServers` font correspondre les ports de la même façon, choisissez donc une entrée pour `staging.example.com` en fonction des ports et des schémas que vous devez bloquer :

368 

369* `https://staging.example.com/*` : bloque les serveurs `https` sur cet hôte sur le port 443 uniquement, donc ne bloque pas un serveur à `https://staging.example.com:8443/api`

370* `https://staging.example.com:*/*` : bloque les serveurs `https` sur cet hôte sur tous les ports

371* `*://staging.example.com:*/*` : bloque cet hôte quel que soit le schéma et sur n'importe quel port

361 372 

362<h4 id="how-policy-entries-expand">373<h4 id="how-policy-entries-expand">

363 Variables d'environnement dans les entrées `serverCommand` et `serverUrl`374 Variables d'environnement dans les entrées `serverCommand` et `serverUrl`


529 | :- | :- |540 | :- | :- |

530 | Serveur HTTP à `https://mcp.example.com/api` | Autorisé : correspond au motif d'URL de liste blanche, pas de correspondance de liste noire |541 | Serveur HTTP à `https://mcp.example.com/api` | Autorisé : correspond au motif d'URL de liste blanche, pas de correspondance de liste noire |

531 | Serveur HTTP à `https://staging.example.com/api` | Bloqué : correspond aux deux, mais la liste noire a la priorité |542 | Serveur HTTP à `https://staging.example.com/api` | Bloqué : correspond aux deux, mais la liste noire a la priorité |

543 | Serveur HTTP à `https://staging.example.com:8443/api` | Autorisé : correspond au motif d'URL de la liste d'autorisation, [pas de correspondance dans la liste de refus sur ce port](#how-serverurl-entries-match) |

532 | Serveur HTTP à `https://other.com/mcp` | Bloqué : ne correspond pas à la liste blanche |544 | Serveur HTTP à `https://other.com/mcp` | Bloqué : ne correspond pas à la liste blanche |

533</Accordion>545</Accordion>

534 546 

memory.md +2 −2

Details

8 8 

9Chaque session Claude Code commence avec une fenêtre de contexte vierge. Deux mécanismes transportent les connaissances d'une session à l'autre :9Chaque session Claude Code commence avec une fenêtre de contexte vierge. Deux mécanismes transportent les connaissances d'une session à l'autre :

10 10 

11* **Fichiers CLAUDE.md** : instructions que vous écrivez pour donner à Claude un contexte persistant. Claude peut également lire les fichiers [`AGENTS.md`](#agents-md) d'un référentiel, seuls ou aux côtés de CLAUDE.md11* **Fichiers CLAUDE.md** : instructions que vous écrivez pour donner à Claude un contexte persistant. Claude peut également lire les [fichiers `AGENTS.md`](#agents-md) d'un dépôt à la place de CLAUDE.md

12* **Mémoire automatique** : notes que Claude écrit lui-même en fonction de vos corrections et préférences12* **Mémoire automatique** : notes que Claude écrit lui-même en fonction de vos corrections et préférences

13 13 

14Cette page couvre comment :14Cette page couvre comment :

15 15 

16* [Écrire et organiser les fichiers CLAUDE.md](#claude-md-files)16* [Écrire et organiser les fichiers CLAUDE.md](#claude-md-files)

17* [Utiliser un fichier AGENTS.md existant](#agents-md) comme instructions de votre projet, seul ou aux côtés de CLAUDE.md17* [Utiliser un fichier AGENTS.md existant](#agents-md) comme instructions de votre projet

18* [Limiter les règles à des types de fichiers spécifiques](#organize-rules-with-claude/rules/) avec `.claude/rules/`18* [Limiter les règles à des types de fichiers spécifiques](#organize-rules-with-claude/rules/) avec `.claude/rules/`

19* [Configurer la mémoire automatique](#auto-memory) pour que Claude prenne des notes automatiquement19* [Configurer la mémoire automatique](#auto-memory) pour que Claude prenne des notes automatiquement

20* [Dépanner](#troubleshoot-memory-issues) quand les instructions ne sont pas suivies20* [Dépanner](#troubleshoot-memory-issues) quand les instructions ne sont pas suivies

Details

551* **Paramètres gérés par le serveur** : ajoutez-les au bloc `env` des [paramètres gérés par le serveur](/docs/fr/server-managed-settings) de votre organisation. Claude Code récupère ces paramètres au démarrage partout où [les paramètres gérés par le serveur s'appliquent](/docs/fr/model-config#surface-coverage), ce qui inclut les machines de vos utilisateurs et les sessions cloud autres que les sessions du canal Claude Tag. Les sessions Claude Tag ne reçoivent pas vos paramètres gérés par le serveur, donc cette route ne les configure pas.551* **Paramètres gérés par le serveur** : ajoutez-les au bloc `env` des [paramètres gérés par le serveur](/docs/fr/server-managed-settings) de votre organisation. Claude Code récupère ces paramètres au démarrage partout où [les paramètres gérés par le serveur s'appliquent](/docs/fr/model-config#surface-coverage), ce qui inclut les machines de vos utilisateurs et les sessions cloud autres que les sessions du canal Claude Tag. Les sessions Claude Tag ne reçoivent pas vos paramètres gérés par le serveur, donc cette route ne les configure pas.

552* **Les variables de l'environnement** : ajoutez-les aux [variables d'environnement](/docs/fr/cloud-environments#set-environment-variables) d'un environnement cloud pour configurer uniquement les sessions qui s'exécutent dans cet environnement. C'est la route qui atteint les sessions Claude Tag.552* **Les variables de l'environnement** : ajoutez-les aux [variables d'environnement](/docs/fr/cloud-environments#set-environment-variables) d'un environnement cloud pour configurer uniquement les sessions qui s'exécutent dans cet environnement. C'est la route qui atteint les sessions Claude Tag.

553 553 

554Quiconque utilise un environnement peut lire ses variables, donc ne mettez pas une credential là, comme un jeton de collecteur dans `OTEL_EXPORTER_OTLP_HEADERS`. Une [credential API](/docs/fr/cloud-environments#add-api-credentials) sur l'environnement n'aide pas non plus, car l'export de télémétrie propre de Claude Code est l'une des [requêtes qui ne reçoivent jamais la credential](/docs/fr/cloud-environments#requests-that-never-get-the-credential). Si votre collecteur nécessite une credential, configurez l'export entier via les paramètres gérés par le serveur à la place, car lorsque vous définissez une credential là, [Claude Code supprime les variables de point de terminaison définies en dehors des paramètres gérés](#how-managed-settings-lock-the-otlp-destination).554Quiconque utilise un environnement peut lire ses variables, donc n'y placez pas d'identifiants, comme un jeton de collecteur dans `OTEL_EXPORTER_OTLP_HEADERS`. Un [secret réseau](/docs/fr/cloud-environments#add-api-credentials) sur l'environnement n'aide pas non plus, car l'export de télémétrie propre de Claude Code est l'une des [requêtes qui ne reçoivent jamais le secret](/docs/fr/cloud-environments#requests-that-never-get-the-credential). Si votre collecteur nécessite des identifiants, configurez l'export entier via les paramètres gérés par le serveur à la place, car lorsque vous y définissez des identifiants, [Claude Code supprime les variables d'endpoint définies en dehors des paramètres gérés](#how-managed-settings-lock-the-otlp-destination).

555 555 

556Gardez ces contraintes à l'esprit lorsque vous configurez la télémétrie pour les sessions cloud :556Gardez ces contraintes à l'esprit lorsque vous configurez la télémétrie pour les sessions cloud :

557 557 

overview.md +7 −5

Details

28 curl -fsSL https://claude.ai/install.sh | bash28 curl -fsSL https://claude.ai/install.sh | bash

29 ```29 ```

30 30 

31 Sur Windows, votre invite affiche `PS C:\` quand vous êtes dans PowerShell et `C:\` sans le `PS` quand vous êtes dans CMD.

32 

31 **Windows PowerShell :**33 **Windows PowerShell :**

32 34 

33 ```powershell theme={null}35 ```powershell theme={null}


42 44 

43 Quand l'installateur se termine, ouvrez une nouvelle fenêtre de terminal et exécutez `claude --version`. Une installation fonctionnelle affiche un numéro de version. Si votre shell dit que `claude` n'est pas trouvé ou n'est pas reconnu, le répertoire d'installation n'est pas encore sur votre PATH : consultez [Corriger votre PATH](/docs/fr/troubleshoot-install#command-not-found-claude-after-installation).45 Quand l'installateur se termine, ouvrez une nouvelle fenêtre de terminal et exécutez `claude --version`. Une installation fonctionnelle affiche un numéro de version. Si votre shell dit que `claude` n'est pas trouvé ou n'est pas reconnu, le répertoire d'installation n'est pas encore sur votre PATH : consultez [Corriger votre PATH](/docs/fr/troubleshoot-install#command-not-found-claude-after-installation).

44 46 

45 Si vous voyez `The token '&&' is not a valid statement separator`, vous êtes dans PowerShell, pas dans CMD. Si vous voyez `'irm' is not recognized as an internal or external command`, vous êtes dans CMD, pas dans PowerShell. Votre invite affiche `PS C:\` quand vous êtes dans PowerShell et `C:\` sans le `PS` quand vous êtes dans CMD.47 Si vous voyez `The token '&&' is not a valid statement separator`, vous êtes dans PowerShell, pas dans CMD. Si vous voyez `'irm' is not recognized as an internal or external command`, vous êtes dans CMD, pas dans PowerShell.

46 48 

47 Si la commande d'installation échoue avec `syntax error near unexpected token '<'`, un `403`, ou une autre erreur curl, consultez [Dépannage de l'installation](/docs/fr/troubleshoot-install#find-your-error) pour faire correspondre l'erreur à une solution et pour connaître les méthodes d'installation alternatives.49 Si la commande d'installation échoue avec `syntax error near unexpected token '<'`, un `403`, ou toute autre erreur, consultez [Dépannage de l'installation](/docs/fr/troubleshoot-install#find-your-error) pour faire correspondre l'erreur à une solution et pour connaître les méthodes d'installation alternatives.

48 50 

49 [Git for Windows](https://git-scm.com/downloads/win) est recommandé sur Windows natif afin que Claude Code puisse utiliser l'outil Bash. Si Git for Windows n'est pas installé, Claude Code utilise PowerShell comme outil shell à la place. Les configurations WSL n'ont pas besoin de Git for Windows.51 [Git for Windows](https://git-scm.com/downloads/win) est recommandé sur Windows natif afin que Claude Code puisse utiliser l'outil Bash. Si Git for Windows n'est pas installé, Claude Code utilise PowerShell comme outil shell à la place. Les configurations WSL n'ont pas besoin de Git for Windows.

50 52 


85 claude87 claude

86 ```88 ```

87 89 

88 Vous serez invité à vous connecter lors de la première utilisation. Si vous avez défini la variable d'environnement `ANTHROPIC_API_KEY`, Claude Code ignore l'invite de connexion et vous demande plutôt d'approuver la clé. C'est tout ! [Continuez avec le Démarrage rapide →](/docs/fr/quickstart)90 Claude Code vous demande de vous connecter lors de la première utilisation. Si vous avez défini la variable d'environnement `ANTHROPIC_API_KEY` et que vous approuvez la clé lorsque Claude Code vous demande s'il doit l'utiliser, Claude Code ignore l'invite de connexion. [Continuez avec le Démarrage rapide →](/docs/fr/quickstart)

89 91 

90 <Tip>92 <Tip>

91 Consultez la [configuration avancée](/docs/fr/setup) pour les options d'installation, les mises à jour manuelles ou les instructions de désinstallation. Visitez la [résolution des problèmes d'installation](/docs/fr/troubleshoot-install) si vous rencontrez des problèmes.93 Consultez la [configuration avancée](/docs/fr/setup) pour les options d'installation, les mises à jour manuelles ou les instructions de désinstallation. Visitez la [résolution des problèmes d'installation](/docs/fr/troubleshoot-install) si vous rencontrez des problèmes.


163 claude "commit my changes with a descriptive message"165 claude "commit my changes with a descriptive message"

164 ```166 ```

165 167 

166 En CI, vous pouvez automatiser l'examen du code et le triage des problèmes avec [GitHub Actions](/docs/fr/github-actions) ou [GitLab CI/CD](/docs/fr/gitlab-ci-cd).168 En CI, vous pouvez automatiser la revue de code et le triage des problèmes avec [GitHub Actions](/docs/fr/github-actions) ou [GitLab CI/CD](/docs/fr/gitlab-ci-cd).

167 </Accordion>169 </Accordion>

168 170 

169 <Accordion title="Connecter vos outils avec MCP" icon="plug">171 <Accordion title="Connecter vos outils avec MCP" icon="plug">


171 </Accordion>173 </Accordion>

172 174 

173 <Accordion title="Personnaliser avec des instructions, des skills et des hooks" icon="sliders">175 <Accordion title="Personnaliser avec des instructions, des skills et des hooks" icon="sliders">

174 [`CLAUDE.md`](/docs/fr/memory) est un fichier markdown que vous ajoutez à la racine de votre projet que Claude Code lit au début de chaque session. Utilisez-le pour définir les normes de codage, les décisions architecturales, les bibliothèques préférées et les listes de contrôle d'examen. Si votre référentiel possède déjà un `AGENTS.md` pour d'autres agents de codage, Claude Code [peut le lire](/docs/fr/memory#agents-md) seul ou aux côtés de `CLAUDE.md`. Claude construit également une [mémoire automatique](/docs/fr/memory#auto-memory) au fur et à mesure qu'il travaille, en sauvegardant les apprentissages entre les sessions sans que vous ayez à écrire quoi que ce soit.176 [`CLAUDE.md`](/docs/fr/memory) est un fichier markdown que vous ajoutez à la racine de votre projet et que Claude Code lit au début de chaque session. Utilisez-le pour définir les normes de codage, les décisions architecturales, les bibliothèques préférées et les listes de contrôle de revue. Si votre dépôt possède déjà un `AGENTS.md` pour d'autres agents de codage, Claude Code [peut le lire](/docs/fr/memory#agents-md) à la place d'un `CLAUDE.md`. Claude construit également une [mémoire automatique](/docs/fr/memory#auto-memory) au fur et à mesure qu'il travaille, en sauvegardant les apprentissages entre les sessions sans que vous ayez à écrire quoi que ce soit.

175 177 

176 Créez des [skills](/docs/fr/skills) pour empaqueter les flux de travail répétables que votre équipe peut partager, comme `/review-pr` ou `/deploy-staging`.178 Créez des [skills](/docs/fr/skills) pour empaqueter les flux de travail répétables que votre équipe peut partager, comme `/review-pr` ou `/deploy-staging`.

177 179 

plugin-evals.md +1 −1

Details

122 122 

123 La découverte la plus courante au premier abord est un `Δ` proche de zéro avec l'évaluateur `tool_used: Skill` du cas échouant, ce qui signifie que Claude ne choisit pas votre skill sur une formulation naturelle. Ajustez la [`description`](/docs/fr/skills#frontmatter-reference) de la skill, exécutez `claude plugin eval .` à nouveau, et comparez.123 La découverte la plus courante au premier abord est un `Δ` proche de zéro avec l'évaluateur `tool_used: Skill` du cas échouant, ce qui signifie que Claude ne choisit pas votre skill sur une formulation naturelle. Ajustez la [`description`](/docs/fr/skills#frontmatter-reference) de la skill, exécutez `claude plugin eval .` à nouveau, et comparez.

124 124 

125 Pour itérer sur un cas à moindre coût, exécutez un seul bras une fois. Une seule exécution est bruyante, donc confirmez tout changement aux trois exécutions par défaut avant de lui faire confiance. Avec un seul bras, le tableau affiche les colonnes `SCORE` et `PASS%` au lieu de `WITH`, `W/OUT`, et `Δ` :125 Pour itérer sur un cas avec moins d'exécutions, exécutez un seul bras une fois. Une seule exécution est bruyante, donc confirmez tout changement aux trois exécutions par défaut avant de lui faire confiance. Avec un seul bras, le tableau affiche les colonnes `SCORE` et `PASS%` au lieu de `WITH`, `W/OUT`, et `Δ` :

126 126 

127 ```bash theme={null}127 ```bash theme={null}

128 claude plugin eval . --case <case-name> --runs 1 --ablation none128 claude plugin eval . --case <case-name> --runs 1 --ablation none

Details

733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

734```734```

735 735 

736Cet agent est nommé `my-plugin:security-reviewer`, et l'utilisateur peut l'[invoquer explicitement](/docs/fr/sub-agents#invoke-subagents-explicitly) avec `@agent-my-plugin:security-reviewer`. La forme du nom est `<plugin>:<name>`, où `<name>` provient du frontmatter, ou du nom du fichier quand il n'y en a pas.736Cet agent est nommé `my-plugin:security-reviewer`, et l'utilisateur peut l'[invoquer explicitement](/docs/fr/sub-agents#invoke-subagents-explicitly) avec `@agent-my-plugin:security-reviewer`. La forme du nom est `<plugin>:<name>`, où `<name>` provient du champ `name` du frontmatter, ou du nom du fichier quand ce champ est absent.

737 737 

738La clé de manifeste `agents` remplace le scan `agents/`.738La clé de manifeste `agents` remplace le scan `agents/`.

739 739 

Details

428 428 

429| Élément | Ce qu'il dessine | Où |429| Élément | Ce qu'il dessine | Où |

430| :- | :- | :- |430| :- | :- | :- |

431| `Box` | Un conteneur flex. Prend des props de mise en page comme `flexDirection`, `columnGap`, `padding`, `borderStyle`, et `width`. | Partout |431| `Box` | Un conteneur flex. Prend des props de mise en page comme `flexDirection`, `columnGap`, `padding`, [`borderStyle`](/docs/fr/plugins/mods/reference#box-border-styles), et `width`. | Partout |

432| `Text` | Texte stylisé. Prend `color`, `bold`, `dimColor`, `italic`, et `wrap`. Une `color` est une clé de thème ou une couleur comme `'red'`. Un `wrap` est `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'`, ou `'truncate-end'`. | Partout |432| `Text` | Texte stylisé. Prend `color`, `bold`, `dimColor`, `italic`, et `wrap`. Une `color` est une clé de thème ou une couleur comme `'red'`. Un `wrap` est `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'`, ou `'truncate-end'`. | Partout |

433| `Button` | Un contrôle qui appelle `onPress` | Partout |433| `Button` | Un contrôle qui appelle `onPress` | Partout |

434| `Link`, `Code`, `Markdown` | Un lien avec `href` et une `label` optionnelle, un bloc de code, et du texte formaté comme les réponses de Claude. `Markdown` prend son contenu dans une prop `text`, pas dans `children`, et a besoin d'une `key` quand vous passez `onLinkPress`. | Partout |434| `Link`, `Code`, `Markdown` | Un lien avec `href` et une `label` optionnelle, un bloc de code, et du texte formaté comme les réponses de Claude. `Markdown` prend son contenu dans une prop `text`, pas dans `children`, et a besoin d'une `key` quand vous passez `onLinkPress`. | Partout |


563De nombreux volets sont un champ de texte avec une liste en dessous. L'exemple de cette section est un volet de notes : vous tapez une note et appuyez sur Entrée pour l'ajouter, et chaque note a un bouton `x` qui la supprime. Avec deux notes ajoutées, le terminal dessine le volet de cette façon :563De nombreux volets sont un champ de texte avec une liste en dessous. L'exemple de cette section est un volet de notes : vous tapez une note et appuyez sur Entrée pour l'ajouter, et chaque note a un bouton `x` qui la supprime. Avec deux notes ajoutées, le terminal dessine le volet de cette façon :

564 564 

565```text theme={null}565```text theme={null}

566╭──────────────────────────────────────────────────────────╮566╭────────────────────────────────────────────────────────✕─╮

567│ Note: Type a note and press Enter ⏎ add ✕ │567│ Note: Type a note and press Enter ⏎ add │

568│ x buy milk │568│ x buy milk │

569│ x call bob │569│ x call bob │

570╰──────────────────────────────────────────────────────────╯570╰──────────────────────────────────────────────────────────╯

571```571```

572 572 

573Le `✕` sur la bordure supérieure est la marque propre à Claude Code pour fermer le volet.

574 

573L'exemple utilise ces techniques :575L'exemple utilise ces techniques :

574 576 

575* **Prendre l'entrée tapée** : un `Input` appelle `onSubmit(value)` avec le texte du champ quand l'utilisateur appuie sur Entrée, et `onInput(value)` à chaque changement577* **Prendre l'entrée tapée** : un `Input` appelle `onSubmit(value)` avec le texte du champ quand l'utilisateur appuie sur Entrée, et `onInput(value)` à chaque changement

Details

242Pour adapter un arbre à son point de rendu, lisez ces props dans le hook :242Pour adapter un arbre à son point de rendu, lisez ces props dans le hook :

243 243 

244* **Largeur d'un `Pane` ou du bandeau** : dessinez selon `e.props.bodyColumns`244* **Largeur d'un `Pane` ou du bandeau** : dessinez selon `e.props.bodyColumns`

245* **Hauteur d'un `Pane` à côté de la transcription** : lorsque `e.props.placement` vaut `'dock'`, `e.props.scroll.bodyRows` est le nombre de lignes dont dispose le volet245* **Hauteur d'un `Pane` à côté de la transcription** : lorsque `e.props.placement` vaut `'dock'`, `e.props.scroll.bodyRows` est le nombre de lignes dont dispose le volet pour votre arbre

246* **Hauteur d'un `Pane` au-dessus du prompt** : lorsque `e.props.placement` vaut `'inline'`, le volet s'agrandit avec votre arbre jusqu'à une limite, et `bodyRows` correspond à cette limite. Le [champ `rows` de `$.ui.open`](/docs/fr/plugins/mods/interface#open-a-pane-at-the-right-time) permet de demander une limite différente.246* **Hauteur d'un `Pane` au-dessus du prompt** : lorsque `e.props.placement` vaut `'inline'`, le volet s'agrandit avec votre arbre jusqu'à une limite, et `bodyRows` correspond à cette limite. Le [champ `rows` de `$.ui.open`](/docs/fr/plugins/mods/interface#open-a-pane-at-the-right-time) permet de demander une limite différente.

247 247 

248Un arbre plus haut que le volet défile d'un seul bloc.248Un arbre plus haut que le volet défile d'un seul bloc.


255 255 

256| Élément | Props principales | Terminal | Desktop |256| Élément | Props principales | Terminal | Desktop |

257| :- | :- | :-: | :-: |257| :- | :- | :-: | :-: |

258| [`Box`](/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `key`, disposition flex, `gap`, `padding`, `margin`, `width`, `height`, `borderStyle`, `backgroundColor`, `position`, `hover` | ✓ | ✓ |258| [`Box`](/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `key`, disposition flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |

259| [`Text`](/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |259| [`Text`](/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |

260| [`Button`](/docs/fr/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |260| [`Button`](/docs/fr/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |

261| `Link` | `href`, `label` | ✓ | ✓ |261| `Link` | `href`, `label` | ✓ | ✓ |


270 270 

271Autres règles pour `Button` : `action` nomme l'une des propres [actions de raccourci clavier](/docs/fr/keybindings) de Claude Code, et le raccourci de l'utilisateur pour cette action presse le bouton lorsque ce raccourci est une combinaison de touches ou une touche avec modificateur. Un `hotkey` numérique sur un bouton du bandeau se déclenche aussi lorsque l'utilisateur tape ce seul chiffre dans un prompt vide puis marque une pause. Lorsque deux boutons d'un même dessin désignent le même `hotkey`, c'est le dernier qui l'obtient. `autoFocus` n'accepte que `true` sur tout contrôle : omettez donc la prop pour le désactiver.271Autres règles pour `Button` : `action` nomme l'une des propres [actions de raccourci clavier](/docs/fr/keybindings) de Claude Code, et le raccourci de l'utilisateur pour cette action presse le bouton lorsque ce raccourci est une combinaison de touches ou une touche avec modificateur. Un `hotkey` numérique sur un bouton du bandeau se déclenche aussi lorsque l'utilisateur tape ce seul chiffre dans un prompt vide puis marque une pause. Lorsque deux boutons d'un même dessin désignent le même `hotkey`, c'est le dernier qui l'obtient. `autoFocus` n'accepte que `true` sur tout contrôle : omettez donc la prop pour le désactiver.

272 272 

273<h3 id="box-border-styles">

274 Styles de bordure de `Box`

275</h3>

276 

277Pour dessiner une bordure autour d'une `Box`, définissez sa prop `borderStyle` sur l'un de ces noms, comme dans `borderStyle: 'round'`. Chaque ligne indique ce que le terminal dessine pour ce nom et montre le bord supérieur de la bordure.

278 

279| `borderStyle` | Ce que dessine le terminal | Bord supérieur |

280| :- | :- | :- |

281| `'single'` | Traits fins avec des coins carrés | `┌──┐` |

282| `'double'` | Traits doubles | `╔══╗` |

283| `'round'` | Traits fins avec des coins arrondis | `╭──╮` |

284| `'bold'` | Traits épais | `┏━━┓` |

285| `'singleDouble'` | Traits fins en haut et en bas, traits doubles sur les côtés | `╓──╖` |

286| `'doubleSingle'` | Traits doubles en haut et en bas, traits fins sur les côtés | `╒══╕` |

287| `'classic'` | Les caractères ASCII `+`, `-` et `\|` | `+--+` |

288| `'arrow'` | Des flèches qui pointent vers l'intérieur de la `Box` | `↘↓↓↙` |

289| `'dashed'` | Traits en pointillés avec des coins vides | `╌╌` |

290| `'quote'` | Une barre, `▎`, le long du côté gauche et des cellules vides sur les trois autres côtés | Vide |

291 

292Une `Box` dont la prop `borderStyle` désigne tout autre nom, comme `'rounded'`, est dessinée sans bordure.

293 

273<h2 id="limits">294<h2 id="limits">

274 Limites295 Limites

275</h2>296</h2>

Details

15<Note>15<Note>

16 Ces cas sont couverts sur d'autres pages :16 Ces cas sont couverts sur d'autres pages :

17 17 

18 * **Pourquoi les portées, le cache et la précédence se comportent de cette façon** : lisez [Référence du chargement des plugins](/docs/fr/plugins/loading)18 * **Pourquoi les portées, le cache et la priorité se comportent de cette façon** : lisez [Référence du chargement des plugins](/docs/fr/plugins/loading)

19 * **Recherche d'un drapeau, d'un champ ou d'une commande** : utilisez la [référence des commandes de plugin](/docs/fr/plugins/cli-reference), la [référence du manifeste](/docs/fr/plugins/manifest-reference) ou la [référence de la marketplace](/docs/fr/plugins/marketplace-reference)19 * **Recherche d'un flag, d'un champ ou d'une commande** : utilisez la [référence des commandes de plugin](/docs/fr/plugins/cli-reference), la [référence du manifeste](/docs/fr/plugins/manifest-reference) ou la [référence de la marketplace](/docs/fr/plugins/marketplace-reference)

20 * **Un message `hooks module not loaded` ou `hooks module did not load`** : le plugin est un [mod](/docs/fr/plugins/mods/overview), lisez donc [Le mod ne se charge pas](/docs/fr/plugins/mods/troubleshoot#the-mod-doesn’t-load)

20</Note>21</Note>

21 22 

22Recherchez le message exact que vous avez vu. Chaque message est répertorié sous l'étape qui le produit, ce qui n'est pas toujours la commande que vous avez exécutée. Par exemple, une installation peut échouer parce qu'une marketplace est manquante, donc ce message se trouve sous [Ajouter une marketplace](#add-a-marketplace).23Recherchez le message exact que vous avez vu. Chaque message est répertorié sous l'étape qui le produit, ce qui n'est pas toujours la commande que vous avez exécutée. Par exemple, une installation peut échouer parce qu'une marketplace est manquante, donc ce message se trouve sous [Ajouter une marketplace](#add-a-marketplace).

Details

328| Conversation principale | Une heure | Cinq minutes |328| Conversation principale | Une heure | Cinq minutes |

329| Tout le reste | Cinq minutes, sauf les requêtes d'assistance contrôlées par le serveur, qui obtiennent une heure | Cinq minutes |329| Tout le reste | Cinq minutes, sauf les requêtes d'assistance contrôlées par le serveur, qui obtiennent une heure | Cinq minutes |

330 330 

331Une fois que vous dépassez la limite d'utilisation de votre plan et que Claude Code puise dans les [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), vous êtes facturé pour cette utilisation, donc Claude Code baisse la conversation principale au TTL de cinq minutes moins cher. Pour conserver le TTL d'une heure là, [choisissez le TTL vous-même](#choose-the-ttl-yourself).331Une fois que vous dépassez la limite d'utilisation de votre plan et que Claude Code puise dans les [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), vous êtes facturé pour cette utilisation, donc Claude Code fait passer la conversation principale au TTL de cinq minutes, qui facture les écritures de cache à un taux plus bas. Pour conserver le TTL d'une heure là, [choisissez le TTL vous-même](#choose-the-ttl-yourself).

332 332 

333<h3 id="choose-the-ttl-yourself">333<h3 id="choose-the-ttl-yourself">

334 Choisissez le TTL vous-même334 Choisissez le TTL vous-même

Details

1342 },1342 },

1343 "review-your-changes-before": {1343 "review-your-changes-before": {

1344 title: "Examiner vos modifications avant de faire un commit",1344 title: "Examiner vos modifications avant de faire un commit",

1345 teaches: "Attrapez les problèmes tant qu'ils sont encore bon marché à corriger. Claude lit les fichiers modifiés en entier, pas seulement les lignes de diff, afin qu'il repère les problèmes qu'un auto-examen rapide manquerait.",1345 teaches: "Repérez les problèmes tant qu'ils demandent moins de travail à corriger. Claude lit les fichiers modifiés en entier, pas seulement les lignes de diff, afin qu'il repère les problèmes qu'un auto-examen rapide manquerait.",

1346 next: "Exécutez `/code-review` pour la même vérification en une commande",1346 next: "Exécutez `/code-review` pour la même vérification en une commande",

1347 prompt: "examinez mes modifications non commitées et signalez tout ce qui semble risqué avant que je fasse un commit"1347 prompt: "examinez mes modifications non commitées et signalez tout ce qui semble risqué avant que je fasse un commit"

1348 },1348 },

quickstart.md +52 −86

Details

4 4 

5# Démarrage rapide5# Démarrage rapide

6 6 

7> Bienvenue dans Claude Code !7> Installez Claude Code dans votre terminal, connectez-vous et utilisez la CLI pour explorer votre base de code et effectuer votre première modification de code.

8 8 

9Ce guide de démarrage rapide vous permettra d'utiliser l'assistance au codage alimentée par l'IA en quelques minutes. À la fin, vous comprendrez comment utiliser Claude Code pour les tâches de développement courantes.9Ce démarrage rapide couvre Claude Code dans votre terminal : l'installation de la CLI, la connexion lors de votre première session et son utilisation pour les tâches de développement courantes dans votre propre projet.

10 10 

11<h2 id="before-you-begin">11<h2 id="before-you-begin">

12 Avant de commencer12 Avant de commencer


15Assurez-vous que vous avez :15Assurez-vous que vous avez :

16 16 

17* Un terminal ou une invite de commande ouvert17* Un terminal ou une invite de commande ouvert

18 * Si vous n'avez jamais utilisé le terminal auparavant, consultez le [guide du terminal](/docs/fr/terminal-guide)

19* Un projet de code avec lequel travailler18* Un projet de code avec lequel travailler

20* Un [abonnement Claude](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_prereq) (Pro, Max, Team ou Enterprise), un compte [Claude Console](https://platform.claude.com/), ou un accès via un [fournisseur cloud pris en charge](/docs/fr/third-party-integrations)19* Un [abonnement Claude](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_prereq) (Pro, Max, Team ou Enterprise), un compte [Claude Console](https://platform.claude.com/), ou un accès via un [fournisseur cloud pris en charge](/docs/fr/third-party-integrations)

21 20 

22<Note>21<Note>

23 Ce guide couvre le CLI du terminal. Claude Code est également disponible sur le [web](https://claude.ai/code), en tant qu'[application de bureau](/docs/fr/desktop), dans [VS Code](/docs/fr/vs-code) et [les IDE JetBrains](/docs/fr/jetbrains), dans [Slack](/docs/fr/slack), et en CI/CD avec [GitHub Actions](/docs/fr/github-actions) et [GitLab](/docs/fr/gitlab-ci-cd). Voir [toutes les interfaces](/docs/fr/overview#use-claude-code-everywhere).22 Ces cas sont couverts sur d'autres pages :

23 

24 * **Vous n'avez jamais utilisé de terminal** : commencez par le [guide du terminal](/docs/fr/terminal-guide)

25 * **Vous souhaitez utiliser Claude Code ailleurs que dans le terminal** : Claude Code est également disponible sur le [web](https://claude.ai/code), en tant qu'[application de bureau](/docs/fr/desktop), dans [VS Code](/docs/fr/vs-code) et [les IDE JetBrains](/docs/fr/jetbrains), dans [Slack](/docs/fr/slack), et en CI/CD avec [GitHub Actions](/docs/fr/github-actions) et [GitLab](/docs/fr/gitlab-ci-cd). Voir [toutes les interfaces](/docs/fr/overview#use-claude-code-everywhere).

24</Note>26</Note>

25 27 

26<h2 id="step-1-install-claude-code">28<h2 id="step-1-install-claude-code">


37 curl -fsSL https://claude.ai/install.sh | bash39 curl -fsSL https://claude.ai/install.sh | bash

38 ```40 ```

39 41 

42 Sur Windows, votre invite affiche `PS C:\` quand vous êtes dans PowerShell et `C:\` sans le `PS` quand vous êtes dans CMD.

43 

40 **Windows PowerShell :**44 **Windows PowerShell :**

41 45 

42 ```powershell theme={null}46 ```powershell theme={null}


51 55 

52 Quand l'installateur se termine, ouvrez une nouvelle fenêtre de terminal et exécutez `claude --version`. Une installation fonctionnelle affiche un numéro de version. Si votre shell dit que `claude` n'est pas trouvé ou n'est pas reconnu, le répertoire d'installation n'est pas encore sur votre PATH : consultez [Corriger votre PATH](/docs/fr/troubleshoot-install#command-not-found-claude-after-installation).56 Quand l'installateur se termine, ouvrez une nouvelle fenêtre de terminal et exécutez `claude --version`. Une installation fonctionnelle affiche un numéro de version. Si votre shell dit que `claude` n'est pas trouvé ou n'est pas reconnu, le répertoire d'installation n'est pas encore sur votre PATH : consultez [Corriger votre PATH](/docs/fr/troubleshoot-install#command-not-found-claude-after-installation).

53 57 

54 Si vous voyez `The token '&&' is not a valid statement separator`, vous êtes dans PowerShell, pas dans CMD. Si vous voyez `'irm' is not recognized as an internal or external command`, vous êtes dans CMD, pas dans PowerShell. Votre invite affiche `PS C:\` quand vous êtes dans PowerShell et `C:\` sans le `PS` quand vous êtes dans CMD.58 Si vous voyez `The token '&&' is not a valid statement separator`, vous êtes dans PowerShell, pas dans CMD. Si vous voyez `'irm' is not recognized as an internal or external command`, vous êtes dans CMD, pas dans PowerShell.

55 59 

56 Si la commande d'installation échoue avec `syntax error near unexpected token '<'`, un `403`, ou une autre erreur curl, consultez [Dépannage de l'installation](/docs/fr/troubleshoot-install#find-your-error) pour faire correspondre l'erreur à une solution et pour connaître les méthodes d'installation alternatives.60 Si la commande d'installation échoue avec `syntax error near unexpected token '<'`, un `403`, ou toute autre erreur, consultez [Dépannage de l'installation](/docs/fr/troubleshoot-install#find-your-error) pour faire correspondre l'erreur à une solution et pour connaître les méthodes d'installation alternatives.

57 61 

58 [Git for Windows](https://git-scm.com/downloads/win) est recommandé sur Windows natif afin que Claude Code puisse utiliser l'outil Bash. Si Git for Windows n'est pas installé, Claude Code utilise PowerShell comme outil shell à la place. Les configurations WSL n'ont pas besoin de Git for Windows.62 [Git for Windows](https://git-scm.com/downloads/win) est recommandé sur Windows natif afin que Claude Code puisse utiliser l'outil Bash. Si Git for Windows n'est pas installé, Claude Code utilise PowerShell comme outil shell à la place. Les configurations WSL n'ont pas besoin de Git for Windows.

59 63 


95 99 

96La commande affiche un numéro de version suivi de `(Claude Code)`.100La commande affiche un numéro de version suivi de `(Claude Code)`.

97 101 

98<h2 id="step-2-log-in-to-your-account">102<h2 id="step-2-start-your-first-session">

99 Étape 2 : Se connecter à votre compte103 Étape 2 : Démarrer votre première session

100</h2>104</h2>

101 105 

102Claude Code nécessite un compte pour être utilisé. Démarrez une session interactive avec la commande `claude` et vous serez invité à vous connecter lors de la première utilisation :106Ouvrez votre terminal dans n'importe quel répertoire de projet et démarrez Claude Code :

103 107 

104```bash theme={null}108```bash theme={null}

109cd /path/to/your/project

105claude110claude

106```111```

107 112 

108Pour les comptes Claude abonnement ou Console, suivez les invites pour terminer l'authentification dans votre navigateur. Si vous avez défini la variable d'environnement `ANTHROPIC_API_KEY`, Claude Code ignore l'invite de connexion et vous demande d'approuver la clé à la place. Pour changer de compte ultérieurement ou vous réauthentifier, tapez `/login` dans la session en cours :113Remplacez `/path/to/your/project` par le chemin du projet sur lequel vous souhaitez travailler.

109 114 

110```text wrap theme={null}115Claude Code vous demande de vous connecter lors de la première utilisation. Pour les comptes d'abonnement Claude ou Console, suivez les instructions pour terminer l'authentification dans votre navigateur. Si vous avez défini la variable d'environnement `ANTHROPIC_API_KEY` et que vous approuvez la clé lorsque Claude Code vous demande s'il doit l'utiliser, Claude Code ignore l'invite de connexion.

111/login

112```

113 116 

114Vous pouvez vous connecter en utilisant l'un de ces types de compte :117Vous pouvez vous connecter avec l'un de ces types de comptes :

115 118 

116* [Claude Pro, Max, Team ou Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (recommandé)119* [Claude Pro, Max, Team ou Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (recommandé)

117* [Claude Console](https://platform.claude.com/) (accès API avec crédits prépayés). Lors de la première connexion, un espace de travail « Claude Code » est automatiquement créé dans la Console pour un suivi centralisé des coûts.120* [Claude Console](https://platform.claude.com/) (accès à l'API avec des crédits prépayés). Lors de la première connexion, un espace de travail « Claude Code » est automatiquement créé dans la Console pour un suivi centralisé des coûts.

118* [Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry](/docs/fr/third-party-integrations) (fournisseurs cloud d'entreprise)121* [Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry](/docs/fr/third-party-integrations) (fournisseurs cloud d'entreprise)

119* Une passerelle [Claude apps gateway](/docs/fr/claude-apps-gateway) auto-hébergée, si votre organisation en exécute une : votre administrateur préconfigure l'URL de la passerelle, et `/login` ouvre directement l'écran **Cloud gateway** pour que vous vous connectiez avec l'authentification unique d'entreprise122* Une [passerelle Claude apps](/docs/fr/claude-apps-gateway) auto-hébergée, si votre organisation en exploite une : votre administrateur préconfigure l'URL de la passerelle, et `/login` s'ouvre directement sur l'écran **Cloud gateway** pour que vous vous connectiez avec le SSO de votre entreprise

120 

121Une fois connecté, vos identifiants sont stockés et vous n'aurez pas besoin de vous reconnecter. En savoir plus dans [Gestion des identifiants](/docs/fr/authentication#credential-management).

122 

123<h2 id="step-3-start-your-first-session">

124 Étape 3 : Démarrer votre première session

125</h2>

126 

127Ouvrez votre terminal dans n'importe quel répertoire de projet et démarrez Claude Code :

128 

129```bash theme={null}

130cd /path/to/your/project

131claude

132```

133 123 

134Remplacez `/path/to/your/project` par le chemin du projet sur lequel vous souhaitez travailler.124Une fois connecté, vos identifiants sont enregistrés et vous n'aurez plus besoin de vous reconnecter. Pour en savoir plus, consultez [Gestion des identifiants](/docs/fr/authentication#credential-management).

135 125 

136Vous verrez l'invite de Claude Code avec la version, le modèle actuel et le répertoire de travail affichés au-dessus. Tapez `/help` pour les commandes disponibles ou `/resume` pour continuer une conversation précédente.126Le prompt de Claude Code s'affiche, avec la version, le modèle actuel et le répertoire de travail indiqués au-dessus. Tapez `/help` pour afficher les commandes disponibles ou `/resume` pour reprendre une conversation précédente. Pour changer de compte ultérieurement ou vous authentifier à nouveau, tapez `/login` dans la session en cours.

137 127 

138<h2 id="step-4-ask-your-first-question">128<h2 id="step-3-ask-your-first-question">

139 Étape 4 : Posez votre première question129 Étape 3 : Posez votre première question

140</h2>130</h2>

141 131 

142Commençons par comprendre votre base de code. Essayez l'une de ces commandes :132Essayez l'une de ces commandes :

143 133 

144```text wrap theme={null}134```text wrap theme={null}

145what does this project do?135what does this project do?


159explain the folder structure149explain the folder structure

160```150```

161 151 

162Vous pouvez également demander à Claude ses propres capacités :152Vous pouvez également interroger Claude sur ses propres capacités :

163 153 

164```text wrap theme={null}154```text wrap theme={null}

165what can Claude Code do?155what can Claude Code do?


174```164```

175 165 

176<Note>166<Note>

177 Claude Code lit vos fichiers de projet selon les besoins. Vous n'avez pas à ajouter manuellement du contexte.167 Claude Code lit les fichiers de votre projet selon les besoins. Vous n'avez pas besoin d'ajouter manuellement du contexte.

178</Note>168</Note>

179 169 

180<h2 id="step-5-make-your-first-code-change">170<h2 id="step-4-make-your-first-code-change">

181 Étape 5 : Effectuez votre première modification de code171 Étape 4 : Effectuer votre première modification de code

182</h2>172</h2>

183 173 

184Maintenant, faisons en sorte que Claude Code fasse du vrai codage. Essayez une tâche simple :174Essayez une petite tâche :

185 175 

186```text wrap theme={null}176```text wrap theme={null}

187add a hello world function to the main file177add a hello world function to the main file

188```178```

189 179 

190Claude Code trouve le fichier approprié et vous montre la modification. S'il vous demande avant d'effectuer la modification, sélectionnez **Oui** pour approuver.180Claude Code trouve le fichier approprié et vous montre la modification. S'il vous demande votre accord avant d'effectuer la modification, sélectionnez **Yes** pour l'approuver.

191 181 

192Avec Claude Code v2.1.283 ou version ultérieure, le mode auto est le [mode de permission de démarrage intégré](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) pour les sessions de terminal interactives : un classificateur examine les actions au lieu de vous, et Claude modifie la plupart des fichiers et exécute la plupart des commandes sans vous demander. Sur les versions antérieures, le mode auto est le mode de permission de démarrage intégré uniquement sur les plans Pro, Max et Team. Pour la session que vous démarrez juste après l'installation, consultez [Première session après une installation ou une mise à jour](/docs/fr/env-vars#first-session-after-an-install-or-upgrade).182Le [mode de permission](/docs/fr/permission-modes) de la session détermine les actions que Claude peut effectuer sans vous demander au préalable. Appuyez sur `Shift+Tab` à tout moment pour changer le mode de permission de la session en cours.

193 183 

194<Note>184<h2 id="step-5-use-git-with-claude-code">

195 Vos paramètres ou votre organisation peuvent définir un mode de permission de démarrage différent. [Quel mode de permission une session démarre](/docs/fr/permission-modes#which-mode-a-session-starts-in) énumère ce qui le fait. Appuyez sur `Shift+Tab` à tout moment pour basculer le mode de permission de la session dans laquelle vous vous trouvez.185 Étape 5 : Utiliser Git avec Claude Code

196</Note>

197 

198<h2 id="step-6-use-git-with-claude-code">

199 Étape 6 : Utiliser Git avec Claude Code

200</h2>186</h2>

201 187 

202Claude Code rend les opérations Git conversationnelles :188Claude Code rend les opérations Git conversationnelles :


209commit my changes with a descriptive message195commit my changes with a descriptive message

210```196```

211 197 

212Vous pouvez également demander des opérations Git plus complexes :198Vous pouvez également utiliser des prompts pour des opérations Git plus complexes :

213 199 

214```text wrap theme={null}200```text wrap theme={null}

215create a new branch called feature/quickstart201create a new branch called feature/quickstart


223help me resolve merge conflicts209help me resolve merge conflicts

224```210```

225 211 

226<h2 id="step-7-fix-a-bug-or-add-a-feature">212<h2 id="step-6-fix-a-bug-or-add-a-feature">

227 Étape 7 : Corriger un bug ou ajouter une fonctionnalité213 Étape 6 : Corriger un bug ou ajouter une fonctionnalité

228</h2>214</h2>

229 215 

230Claude est compétent pour le débogage et l'implémentation de fonctionnalités.216Décrivez ce que vous souhaitez en langage naturel :

231 

232Décrivez ce que vous voulez en langage naturel :

233 217 

234```text wrap theme={null}218```text wrap theme={null}

235add input validation to the user registration form219add input validation to the user registration form

236```220```

237 221 

238Ou corrigez les problèmes existants :222Ou corrigez des problèmes existants :

239 223 

240```text wrap theme={null}224```text wrap theme={null}

241there's a bug where users can submit empty forms - fix it225there's a bug where users can submit empty forms - fix it

242```226```

243 227 

244Claude Code va :228<h2 id="step-7-test-out-other-common-workflows">

245 229 Étape 7 : Tester d'autres workflows courants

246* Localiser le code pertinent

247* Comprendre le contexte

248* Implémenter une solution

249* Exécuter les tests si disponibles

250 

251<h2 id="step-8-test-out-other-common-workflows">

252 Étape 8 : Testez d'autres flux de travail courants

253</h2>230</h2>

254 231 

255Il existe plusieurs façons de travailler avec Claude :232Il existe de nombreuses façons de travailler avec Claude :

256 233 

257**Refactoriser le code**234**Refactoriser du code**

258 235 

259```text wrap theme={null}236```text wrap theme={null}

260refactor the authentication module to use async/await instead of callbacks237refactor the authentication module to use async/await instead of callbacks


272update the README with installation instructions249update the README with installation instructions

273```250```

274 251 

275**Révision de code**252**Revue de code**

276 253 

277```text wrap theme={null}254```text wrap theme={null}

278review my changes and suggest improvements255review my changes and suggest improvements

279```256```

280 257 

281<Tip>258<Tip>

282 Parlez à Claude comme vous le feriez avec un collègue utile. Décrivez ce que vous voulez réaliser, et il vous aidera à y arriver.259 Parlez à Claude comme vous le feriez avec un collègue serviable. Décrivez ce que vous souhaitez accomplir, et il vous aidera à y parvenir.

283</Tip>260</Tip>

284 261 

285<h2 id="essential-commands">262<h2 id="essential-commands">


357 334 

358Maintenant que vous avez appris les bases, explorez des fonctionnalités plus avancées :335Maintenant que vous avez appris les bases, explorez des fonctionnalités plus avancées :

359 336 

360<CardGroup cols={2}>337* [Comment fonctionne Claude Code](/docs/fr/how-claude-code-works) : comprendre la boucle agentique, les outils intégrés et comment Claude Code interagit avec votre projet

361 <Card title="Comment fonctionne Claude Code" icon="microchip" href="/docs/fr/how-claude-code-works">338* [Bonnes pratiques](/docs/fr/best-practices) : obtenez de meilleurs résultats avec un prompting efficace et une configuration de projet appropriée

362 Comprendre la boucle agentique, les outils intégrés et comment Claude Code interagit avec votre projet339* [Workflows courants](/docs/fr/common-workflows) : guides étape par étape pour les tâches courantes

363 </Card>340* [Étendre Claude Code](/docs/fr/features-overview) : personnalisez avec CLAUDE.md, skills, hooks, MCP et bien plus

364 

365 <Card title="Meilleures pratiques" icon="star" href="/docs/fr/best-practices">

366 Obtenez de meilleurs résultats avec un prompting efficace et une configuration de projet appropriée

367 </Card>

368 

369 <Card title="Flux de travail courants" icon="graduation-cap" href="/docs/fr/common-workflows">

370 Guides étape par étape pour les tâches courantes

371 </Card>

372 341 

373 <Card title="Étendre Claude Code" icon="puzzle-piece" href="/docs/fr/features-overview">342Consultez la [configuration avancée](/docs/fr/setup) pour les options d'installation, les mises à jour manuelles ou les instructions de désinstallation.

374 Personnalisez avec CLAUDE.md, skills, hooks, MCP et bien plus

375 </Card>

376</CardGroup>

377 343 

378<h2 id="getting-help">344<h2 id="getting-help">

379 Obtenir de l'aide345 Obtenir de l'aide

380</h2>346</h2>

381 347 

382* **Dans Claude Code** : Tapez `/help` ou demandez « comment faire... »348* **Dans Claude Code** : Tapez `/help` ou posez une question du type « comment faire... »

383* **Documentation** : Vous êtes ici ! Parcourez les autres guides349* **Documentation** : Parcourez les autres guides de ce site

384* **Cours** : Suivez [Claude Code 101](https://academy.claude.com/courses/claude-code-101) et d'autres cours gratuits à votre rythme sur [Claude Academy](https://academy.claude.com/)350* **Cours** : Suivez [Claude Code 101](https://academy.claude.com/courses/claude-code-101) et d'autres cours gratuits à votre rythme sur [Claude Academy](https://academy.claude.com/)

385* **Communauté** : Rejoignez notre [Discord](https://www.anthropic.com/discord) pour des conseils et du support351* **Communauté** : Rejoignez le [serveur Discord](https://www.anthropic.com/discord) pour des conseils et du support

Details

365</h2>365</h2>

366 366 

367* **Une session distante par processus interactif** : en dehors du mode serveur, chaque instance Claude Code prend en charge une session distante à la fois. Utilisez le [mode serveur](#start-a-remote-control-session) pour exécuter plusieurs sessions simultanées à partir d'un seul processus.367* **Une session distante par processus interactif** : en dehors du mode serveur, chaque instance Claude Code prend en charge une session distante à la fois. Utilisez le [mode serveur](#start-a-remote-control-session) pour exécuter plusieurs sessions simultanées à partir d'un seul processus.

368* **Le processus local doit rester actif** : Remote Control s'exécute en tant que processus local. Si vous fermez le terminal, quittez l'application de bureau ou VS Code, ou arrêtez autrement le processus `claude`, la session se met hors ligne jusqu'à ce que vous la [rétablissiez](#resume-sessions-after-stopping-the-server). Pour maintenir une session en cours d'exécution sur une machine distante après vous être déconnecté de SSH, démarrez-la dans `tmux` ou `screen`.368* **Le processus local doit rester actif** : Remote Control s'exécute en tant que processus local. Si vous fermez le terminal, quittez l'application de bureau ou VS Code, ou arrêtez autrement le processus `claude`, la session se met hors ligne jusqu'à ce que vous la [rétablissiez](#resume-sessions-after-stopping-the-server). Si vous exécutez `claude` depuis un terminal sur une machine distante, démarrez-le dans `tmux` ou `screen` pour que la session reste active après votre déconnexion de SSH.

369* **Sessions plantées en mode serveur** : si une session servie par `claude remote-control` plante, envoyez-lui un message depuis un appareil connecté. Claude Code la sert à nouveau. Vous n'avez pas besoin de redémarrer le serveur. Nécessite Claude Code v2.1.238 ou version ultérieure.369* **Sessions plantées en mode serveur** : si une session servie par `claude remote-control` plante, envoyez-lui un message depuis un appareil connecté. Claude Code la sert à nouveau. Vous n'avez pas besoin de redémarrer le serveur. Nécessite Claude Code v2.1.238 ou version ultérieure.

370* **Refus HTTP 403 sur une session connectée** : une fois qu'une session interactive est connectée, Claude Code continue à réessayer pendant trois minutes au maximum lorsque quelque chose entre votre machine et les serveurs d'Anthropic répond avec HTTP 403, ce qui peut se produire après un changement de VPN ou de réseau. Si les refus persistent plus longtemps, Claude Code se déconnecte, et la raison indique ce qui a refusé : une périphérie réseau, ou un proxy, un VPN ou un pare-feu sur votre propre réseau.370* **Refus HTTP 403 sur une session connectée** : une fois qu'une session interactive est connectée, Claude Code continue à réessayer pendant trois minutes au maximum lorsque quelque chose entre votre machine et les serveurs d'Anthropic répond avec HTTP 403, ce qui peut se produire après un changement de VPN ou de réseau. Si les refus persistent plus longtemps, Claude Code se déconnecte, et la raison indique ce qui a refusé : une périphérie réseau, ou un proxy, un VPN ou un pare-feu sur votre propre réseau.

371* **Panne réseau prolongée** : si votre machine est allumée mais ne peut pas accéder au réseau, ce que vous faites ensuite dépend du mode :371* **Panne réseau prolongée** : si votre machine est allumée mais ne peut pas accéder au réseau, ce que vous faites ensuite dépend du mode :

routines.md +1 −1

Details

93 Choisissez un [environnement cloud](/docs/fr/cloud-environments) pour la routine. Les environnements contrôlent ce à quoi la session cloud a accès :93 Choisissez un [environnement cloud](/docs/fr/cloud-environments) pour la routine. Les environnements contrôlent ce à quoi la session cloud a accès :

94 94 

95 * **Network access** : définissez le niveau d'accès à Internet disponible pendant chaque exécution95 * **Network access** : définissez le niveau d'accès à Internet disponible pendant chaque exécution

96 * **Environment variables** : fournissez des valeurs que Claude peut utiliser pendant chaque exécution. Elles sont [visibles à quiconque utilise l'environnement](/docs/fr/cloud-environments#what-carries-over-from-your-setup), donc sur les plans Pro et Max, stockez les clés pour les API que Claude appelle pendant une exécution en tant que [API credentials](/docs/fr/cloud-environments#add-api-credentials) à la place. Cette section liste également les demandes qui ne reçoivent jamais d'identifiant96 * **Environment variables** : fournissez des valeurs que Claude peut utiliser pendant chaque exécution. Elles sont [visibles à quiconque utilise l'environnement](/docs/fr/cloud-environments#what-carries-over-from-your-setup), donc sur les plans Pro et Max, stockez plutôt les clés pour les API que Claude appelle pendant une exécution en tant que [secrets réseau](/docs/fr/cloud-environments#add-api-credentials). Cette section liste également les requêtes qui ne reçoivent jamais de secret

97 * **Setup script** : installez les dépendances et les outils dont la routine a besoin. Le résultat est [mis en cache](/docs/fr/cloud-environments#environment-caching), de sorte que le script ne se réexécute pas à chaque session97 * **Setup script** : installez les dépendances et les outils dont la routine a besoin. Le résultat est [mis en cache](/docs/fr/cloud-environments#environment-caching), de sorte que le script ne se réexécute pas à chaque session

98 98 

99 Un environnement **Default** est fourni avec un accès réseau **Trusted**, qui permet uniquement la [liste d'autorisation par défaut](/docs/fr/cloud-environments#default-allowed-domains) des registres de paquets, des API de fournisseurs cloud, des registres de conteneurs et des domaines de développement courants à travers le réseau de la session. Les connecteurs que vous ajoutez à la routine atteignent leurs services via les serveurs d'Anthropic, donc ils n'ont pas besoin de modifications de liste d'autorisation. Si votre routine doit atteindre vos propres services directement, ou un domaine en dehors de cette liste, modifiez l'[accès réseau](/docs/fr/cloud-environments#network-access) de l'environnement avant d'exécuter. Pour utiliser un environnement séparé, [créez-en un](/docs/fr/cloud-environments#configure-your-environment) d'abord.99 Un environnement **Default** est fourni avec un accès réseau **Trusted**, qui permet uniquement la [liste d'autorisation par défaut](/docs/fr/cloud-environments#default-allowed-domains) des registres de paquets, des API de fournisseurs cloud, des registres de conteneurs et des domaines de développement courants à travers le réseau de la session. Les connecteurs que vous ajoutez à la routine atteignent leurs services via les serveurs d'Anthropic, donc ils n'ont pas besoin de modifications de liste d'autorisation. Si votre routine doit atteindre vos propres services directement, ou un domaine en dehors de cette liste, modifiez l'[accès réseau](/docs/fr/cloud-environments#network-access) de l'environnement avant d'exécuter. Pour utiliser un environnement séparé, [créez-en un](/docs/fr/cloud-environments#configure-your-environment) d'abord.

Details

104 Exemple de script104 Exemple de script

105</h2>105</h2>

106 106 

107Le script ci-dessous exécute la boucle complète contre `$CLAUDE_TEST_ENVIRONMENT_ID`, l'ID `ccpool_...` de votre environnement de test, affiché dans la boîte de dialogue de détail de l'environnement sur la page d'administration ou retourné par l'[appel create-environment](#create-a-dedicated-test-environment), et affirme sur une phrase sentinelle dans chaque réponse. Exécutez-le à partir d'une extraction git du référentiel dans lequel vous voulez que la session fonctionne, après avoir démarré un runner sur cet hôte avec le hook de capture installé et `E2E_REPLY_DIR` exporté.107Le script ci-dessous exécute la boucle complète contre `$CLAUDE_TEST_ENVIRONMENT_ID`, l'ID `ccpool_...` de votre environnement de test, affiché dans la boîte de dialogue de détail de l'environnement sur la page d'administration ou retourné par l'[appel create-environment](#create-a-dedicated-test-environment), et affirme sur une phrase sentinelle dans chaque réponse. Exécutez-le à partir d'une extraction git du dépôt dans lequel vous voulez que la session fonctionne, après avoir démarré un runner sur cet hôte avec le hook de capture installé et `E2E_REPLY_DIR` exporté. Connectez-vous d'abord avec un compte claude.ai sur la machine qui exécute le script, comme décrit dans [S'authentifier depuis la CI](#authenticate-from-ci). Sans cette connexion, le premier envoi échoue avec une erreur telle que `Unable to get organization UUID for cloud session creation`.

108 108 

109```bash theme={null}109```bash theme={null}

110#!/usr/bin/env bash110#!/usr/bin/env bash

Details

43 <Step title="Ouvrir la console d'administration">43 <Step title="Ouvrir la console d'administration">

44 Dans la console claude.ai, accédez à [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).44 Dans la console claude.ai, accédez à [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).

45 45 

46 Si le lien vous redirige vers une page Organization settings différente au lieu de la page Claude Code, votre compte n'a pas le rôle requis. Les rôles Admin et autres rôles non-Propriétaire ne peuvent pas afficher ou modifier les paramètres gérés, donc demandez à un Propriétaire ou Propriétaire principal de votre organisation de faire la modification. Consultez [Contrôle d'accès](#access-control).46 Dans une organisation Team ou Enterprise, si la page indique que vous n'avez pas accès, demandez à un [Propriétaire ou Propriétaire principal](#access-control) d'effectuer la modification.

47 </Step>47 </Step>

48 48 

49 <Step title="Définir vos paramètres">49 <Step title="Définir vos paramètres">

sessions.md +3 −3

Details

83* Terminal : `claude --continue`, `claude --resume <session-id>` ou `claude --resume <name>` lorsque le nom correspond à une session, sans `-p`. Claude Code restaure le mode de permission dans lequel se trouvait la session, sauf dans les cas du tableau. Passez `--permission-mode` ou `--dangerously-skip-permissions` pour remplacer le mode restauré.83* Terminal : `claude --continue`, `claude --resume <session-id>` ou `claude --resume <name>` lorsque le nom correspond à une session, sans `-p`. Claude Code restaure le mode de permission dans lequel se trouvait la session, sauf dans les cas du tableau. Passez `--permission-mode` ou `--dangerously-skip-permissions` pour remplacer le mode restauré.

84* Non-interactif : `claude -p --resume` ou `claude -p --continue`. Claude Code démarre l'exécution dans le mode de permission qu'une nouvelle exécution `claude -p` démarrerait, sauf qu'une session qui s'est terminée en mode plan reprend en mode plan selon les [conditions ci-dessous](#resume-in-plan-mode-with-p).84* Non-interactif : `claude -p --resume` ou `claude -p --continue`. Claude Code démarre l'exécution dans le mode de permission qu'une nouvelle exécution `claude -p` démarrerait, sauf qu'une session qui s'est terminée en mode plan reprend en mode plan selon les [conditions ci-dessous](#resume-in-plan-mode-with-p).

85* VS Code : le panneau de conversation de l'extension. Le tableau couvre uniquement une conversation qui s'est terminée en mode plan ; pour le reste, voir [reprendre les conversations passées](/docs/fr/vs-code#resume-past-conversations).85* VS Code : le panneau de conversation de l'extension. Le tableau couvre uniquement une conversation qui s'est terminée en mode plan ; pour le reste, voir [reprendre les conversations passées](/docs/fr/vs-code#resume-past-conversations).

86* Sélecteur de sessions au lancement : une session que vous sélectionnez dans le [sélecteur de sessions](#use-the-session-picker), que vous l'ayez ouvert avec `claude --resume` seul, `claude --from-pr` ou un nom qui correspond à plus d'une session. Claude Code ne restaure pas le mode de permission stocké. Il démarre la session dans le mode de permission qu'il démarrerait une nouvelle session depuis la même ligne de commande.86* Sélecteur de sessions au lancement : une session que vous sélectionnez dans le [sélecteur de sessions](#use-the-session-picker), que vous l'ayez ouvert avec `claude --resume` seul, `claude --from-pr` ou un nom qui correspond à plus d'une session. Claude Code démarre la session dans le mode de permission dans lequel il démarrerait une nouvelle session depuis la même ligne de commande, sauf qu'une session qui s'est terminée en mode plan reprend en mode plan, à moins que vous ne passiez `--permission-mode`, `--dangerously-skip-permissions` ou `--fork-session`. Aucun autre mode de permission stocké n'est restauré.

87* `/resume` à l'intérieur d'une session, avec ou sans argument : Claude Code ne restaure pas le mode de permission stocké. La conversation vers laquelle vous basculez continue dans le mode de permission dans lequel se trouve votre session actuelle.87* `/resume` à l'intérieur d'une session, avec ou sans argument : la conversation vers laquelle vous basculez continue dans le mode de permission dans lequel se trouve votre session actuelle, sauf qu'une conversation qui s'est terminée en mode plan reprend en mode plan, même si vous avez lancé Claude Code avec `--permission-mode` ou `--dangerously-skip-permissions`. Si cette conversation était déjà ouverte plus tôt dans cette exécution de Claude Code, comme la conversation dans laquelle vous avez commencé ou une conversation que vous avez quittée avec `/clear` ou `/resume`, elle continue plutôt dans votre mode de permission actuel.

88 88 

89La restauration du mode plan sur les chemins non-interactif et VS Code nécessite Claude Code v2.1.246 ou ultérieur. Chaque ligne nomme le mode de permission dans lequel la session s'est terminée, lequel des chemins terminal, non-interactif et VS Code vous la reprenez par, et le mode de permission dans lequel Claude Code démarre la session reprise.89La restauration du mode plan sur les chemins non-interactif et VS Code nécessite Claude Code v2.1.246 ou ultérieur. Chaque ligne nomme le mode de permission dans lequel la session s'est terminée, lequel des chemins terminal, non-interactif et VS Code vous la reprenez par, et le mode de permission dans lequel Claude Code démarre la session reprise.

90 90 

91| Session terminée en | Comment vous la reprenez | Mode de permission après la reprise |91| Session terminée en | Comment vous la reprenez | Mode de permission après la reprise |

92| :- | :- | :- |92| :- | :- | :- |

93| `bypassPermissions` | Terminal | Le mode de permission qu'une nouvelle session démarrerait. Pour [contourner les permissions](/docs/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) à nouveau, activez-le au lancement avec l'un de ses drapeaux de lancement ou `permissions.defaultMode: "bypassPermissions"` dans les [paramètres utilisateur, `--settings` ou gérés](/docs/fr/settings-reference#permissions-defaultmode) |93| `bypassPermissions` | Terminal | Le mode de permission qu'une nouvelle session démarrerait. Pour [contourner les permissions](/docs/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) à nouveau, activez-le au lancement avec l'un de ses drapeaux de lancement ou `permissions.defaultMode: "bypassPermissions"` dans les [paramètres utilisateur, `--settings` ou gérés](/docs/fr/settings-reference#permissions-defaultmode) |

94| `plan` | Terminal | Le mode de permission qu'une nouvelle session démarrerait |94| `plan` | Terminal | Mode plan. Avec `--fork-session`, le mode de permission dans lequel une nouvelle session démarrerait |

95| `auto` | Terminal | `auto`, uniquement lorsque votre compte répond toujours aux [exigences du mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) |95| `auto` | Terminal | `auto`, uniquement lorsque votre compte répond toujours aux [exigences du mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) |

96| Manuel | Terminal | Manuel lorsqu'une nouvelle session démarrerait en mode auto à partir de la [valeur par défaut intégrée](/docs/fr/permission-modes#which-mode-a-session-starts-in). Lorsqu'un `defaultMode` d'un fichier de paramètres [prend effet](/docs/fr/permission-modes#which-mode-a-session-starts-in), Claude Code démarre la session reprise dans ce mode à la place |96| Manuel | Terminal | Manuel lorsqu'une nouvelle session démarrerait en mode auto à partir de la [valeur par défaut intégrée](/docs/fr/permission-modes#which-mode-a-session-starts-in). Lorsqu'un `defaultMode` d'un fichier de paramètres [prend effet](/docs/fr/permission-modes#which-mode-a-session-starts-in), Claude Code démarre la session reprise dans ce mode à la place |

97| `plan` | Non-interactif, selon les [conditions ci-dessous](#resume-in-plan-mode-with-p) | Mode plan |97| `plan` | Non-interactif, selon les [conditions ci-dessous](#resume-in-plan-mode-with-p) | Mode plan |

setup.md +5 −3

Details

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 Sur Windows, votre invite affiche `PS C:\` quand vous êtes dans PowerShell et `C:\` sans le `PS` quand vous êtes dans CMD.

53 

52 **Windows PowerShell :**54 **Windows PowerShell :**

53 55 

54 ```powershell theme={null}56 ```powershell theme={null}


63 65 

64 Quand l'installateur se termine, ouvrez une nouvelle fenêtre de terminal et exécutez `claude --version`. Une installation fonctionnelle affiche un numéro de version. Si votre shell dit que `claude` n'est pas trouvé ou n'est pas reconnu, le répertoire d'installation n'est pas encore sur votre PATH : consultez [Corriger votre PATH](/docs/fr/troubleshoot-install#command-not-found-claude-after-installation).66 Quand l'installateur se termine, ouvrez une nouvelle fenêtre de terminal et exécutez `claude --version`. Une installation fonctionnelle affiche un numéro de version. Si votre shell dit que `claude` n'est pas trouvé ou n'est pas reconnu, le répertoire d'installation n'est pas encore sur votre PATH : consultez [Corriger votre PATH](/docs/fr/troubleshoot-install#command-not-found-claude-after-installation).

65 67 

66 Si vous voyez `The token '&&' is not a valid statement separator`, vous êtes dans PowerShell, pas dans CMD. Si vous voyez `'irm' is not recognized as an internal or external command`, vous êtes dans CMD, pas dans PowerShell. Votre invite affiche `PS C:\` quand vous êtes dans PowerShell et `C:\` sans le `PS` quand vous êtes dans CMD.68 Si vous voyez `The token '&&' is not a valid statement separator`, vous êtes dans PowerShell, pas dans CMD. Si vous voyez `'irm' is not recognized as an internal or external command`, vous êtes dans CMD, pas dans PowerShell.

67 69 

68 Si la commande d'installation échoue avec `syntax error near unexpected token '<'`, un `403`, ou une autre erreur curl, consultez [Dépannage de l'installation](/docs/fr/troubleshoot-install#find-your-error) pour faire correspondre l'erreur à une solution et pour connaître les méthodes d'installation alternatives.70 Si la commande d'installation échoue avec `syntax error near unexpected token '<'`, un `403`, ou toute autre erreur, consultez [Dépannage de l'installation](/docs/fr/troubleshoot-install#find-your-error) pour faire correspondre l'erreur à une solution et pour connaître les méthodes d'installation alternatives.

69 71 

70 [Git for Windows](https://git-scm.com/downloads/win) est recommandé sur Windows natif afin que Claude Code puisse utiliser l'outil Bash. Si Git for Windows n'est pas installé, Claude Code utilise PowerShell comme outil shell à la place. Les configurations WSL n'ont pas besoin de Git for Windows.72 [Git for Windows](https://git-scm.com/downloads/win) est recommandé sur Windows natif afin que Claude Code puisse utiliser l'outil Bash. Si Git for Windows n'est pas installé, Claude Code utilise PowerShell comme outil shell à la place. Les configurations WSL n'ont pas besoin de Git for Windows.

71 73 


204 206 

205Claude Code nécessite un compte Pro, Max, Team, Enterprise ou Console. Le plan gratuit Claude.ai n'inclut pas l'accès à Claude Code. Vous pouvez également utiliser Claude Code avec un fournisseur d'API tiers comme [Amazon Bedrock](/docs/fr/amazon-bedrock), [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) ou [Microsoft Foundry](/docs/fr/microsoft-foundry).207Claude Code nécessite un compte Pro, Max, Team, Enterprise ou Console. Le plan gratuit Claude.ai n'inclut pas l'accès à Claude Code. Vous pouvez également utiliser Claude Code avec un fournisseur d'API tiers comme [Amazon Bedrock](/docs/fr/amazon-bedrock), [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) ou [Microsoft Foundry](/docs/fr/microsoft-foundry).

206 208 

207Après l'installation, connectez-vous en exécutant `claude` et en suivant les invites du navigateur. Si la variable d'environnement `ANTHROPIC_API_KEY` est définie, Claude Code vous demande une fois d'approuver la clé au lieu d'ouvrir un navigateur. Consultez [Authentification](/docs/fr/authentication) pour tous les types de comptes et les options de configuration d'équipe.209Après l'installation, connectez-vous en exécutant `claude` et en suivant les invites du navigateur. Si vous avez défini la variable d'environnement `ANTHROPIC_API_KEY` et que vous approuvez la clé lorsque Claude Code vous demande s'il doit l'utiliser, Claude Code ignore l'invite de connexion. Consultez [Authentification](/docs/fr/authentication) pour tous les types de comptes et les options de configuration d'équipe.

208 210 

209<h2 id="update-claude-code">211<h2 id="update-claude-code">

210 Mettre à jour Claude Code212 Mettre à jour Claude Code

sub-agents.md +3 −3

Details

310 310 

311| Champ | Obligatoire | Description |311| Champ | Obligatoire | Description |

312| :- | :- | :- |312| :- | :- | :- |

313| `name` | Oui | Identifiant unique, tel que `code-reviewer` ou `reviewer-v2`. Les [hooks](/docs/fr/hooks#subagentstart) reçoivent cette valeur comme `agent_type`. Le nom du fichier n'a pas besoin de correspondre. Les noms ne peuvent pas contenir `:`, qui est réservé aux [identifiants limités au plugin](/docs/fr/plugins/overview) tels que `my-plugin:reviewer`. Claude Code ne charge pas un fichier dont le nom en contient un et enregistre une erreur dans le journal de débogage. Avant la v2.1.218, de tels noms étaient acceptés |313| `name` | Oui | Identifiant unique d'au plus 256 caractères, tel que `code-reviewer` ou `reviewer-v2`. Les [hooks](/docs/fr/hooks#subagentstart) reçoivent cette valeur comme `agent_type`. Le nom du fichier n'a pas besoin de correspondre. Les noms ne peuvent pas contenir `:`, qui est réservé aux [identifiants limités au plugin](/docs/fr/plugins/overview) tels que `my-plugin:reviewer` |

314| `description` | Oui | Quand Claude doit déléguer à ce sous-agent |314| `description` | Oui | Quand Claude doit déléguer à ce sous-agent |

315| `tools` | Non | [Outils](#available-tools) que le sous-agent peut utiliser, sous forme de chaîne séparée par des virgules telle que `Read, Grep, Bash` ou une liste YAML. Hérite de tous les outils disponibles pour les sous-agents s'il est omis. Si aucune entrée de la liste ne se résout en un outil, le sous-agent échoue généralement au [lancement](/docs/fr/errors#agent-would-be-spawned-with-zero-tools) avec une erreur nommant les entrées. Pour précharger les Skills dans le contexte, utilisez le champ `skills` plutôt que de lister `Skill` ici |315| `tools` | Non | [Outils](#available-tools) que le sous-agent peut utiliser, sous forme de chaîne séparée par des virgules telle que `Read, Grep, Bash` ou une liste YAML. Hérite de tous les outils disponibles pour les sous-agents s'il est omis. Si aucune entrée de la liste ne se résout en un outil, le sous-agent échoue généralement au [lancement](/docs/fr/errors#agent-would-be-spawned-with-zero-tools) avec une erreur nommant les entrées. Pour précharger les Skills dans le contexte, utilisez le champ `skills` plutôt que de lister `Skill` ici |

316| `disallowedTools` | Non | Outils à refuser, supprimés de la liste héritée ou spécifiée. Même format que `tools`. Une entrée avec un spécificateur, tel que `Bash(git push *)`, supprime toujours l'[outil entier](#available-tools) |316| `disallowedTools` | Non | Outils à refuser, supprimés de la liste héritée ou spécifiée. Même format que `tools`. Une entrée avec un spécificateur, tel que `Bash(git push *)`, supprime toujours l'[outil entier](#available-tools) |


348 348 

349* **Pas de `name`** : Claude Code traite le fichier comme de la documentation conservée à côté de vos agents.349* **Pas de `name`** : Claude Code traite le fichier comme de la documentation conservée à côté de vos agents.

350* **Un `---` d'ouverture qui n'est pas la première ligne du fichier** : Claude Code lit le fichier comme n'ayant pas de frontmatter et le traite comme de la documentation.350* **Un `---` d'ouverture qui n'est pas la première ligne du fichier** : Claude Code lit le fichier comme n'ayant pas de frontmatter et le traite comme de la documentation.

351* **Un `name` qui commence par `-` ou contient `:`** : Claude Code ignore le fichier et écrit une erreur dans le journal de débogage. Consultez la ligne `name` dans le tableau ci-dessus.351* **Un `name` qui commence par `-`, contient `:` ou dépasse 256 caractères** : Claude Code ignore le fichier et écrit une erreur dans le journal de débogage.

352* **Un `name` mais pas de `description`** : Claude Code ignore le fichier et écrit la raison dans le journal de débogage.352* **Un `name` mais pas de `description`** : Claude Code ignore le fichier et écrit la raison dans le journal de débogage.

353* **YAML qui ne s'analyse pas** : Claude Code ne lit aucun champ du fichier, l'ignore et écrit l'erreur d'analyse dans le journal de débogage.353* **YAML qui ne s'analyse pas** : Claude Code ne lit aucun champ du fichier, l'ignore et écrit l'erreur d'analyse dans le journal de débogage.

354 354 


1279| Permissions | Les invites s'affichent dans votre terminal | [Les invites s'affichent dans votre session principale](#run-subagents-in-foreground-or-background) lors de l'exécution en arrière-plan |1279| Permissions | Les invites s'affichent dans votre terminal | [Les invites s'affichent dans votre session principale](#run-subagents-in-foreground-or-background) lors de l'exécution en arrière-plan |

1280| Cache d'invite | Partagé avec la session principale | Cache séparé |1280| Cache d'invite | Partagé avec la session principale | Cache séparé |

1281 1281 

1282Parce que l'invite système d'un fork et les définitions d'outils sont identiques au parent, sa première demande réutilise le [cache d'invite](/docs/fr/prompt-caching#subagents-and-the-cache) du parent. Cela rend le forking moins cher que la génération d'un sous-agent frais pour les tâches qui ont besoin du même contexte.1282Comme le prompt système d'un fork et ses définitions d'outils sont identiques à ceux du parent, sa première requête réutilise le [cache de prompt](/docs/fr/prompt-caching#subagents-and-the-cache) du parent. Grâce à cette réutilisation, un fork coûte moins cher qu'un sous-agent frais pour les tâches qui ont besoin du même contexte.

1283 1283 

1284Lorsque Claude génère un fork via l'outil Agent, il peut passer `isolation: "worktree"` pour que les modifications de fichiers du fork soient écrites dans un git worktree séparé au lieu de votre extraction. Un fork ne peut pas générer d'autres forks.1284Lorsque Claude génère un fork via l'outil Agent, il peut passer `isolation: "worktree"` pour que les modifications de fichiers du fork soient écrites dans un git worktree séparé au lieu de votre extraction. Un fork ne peut pas générer d'autres forks.

1285 1285 

vs-code.md +1 −1

Details

606| `environmentVariables` | `[]` | Définissez les variables d'environnement pour le processus Claude. Utilisez plutôt les paramètres Claude Code pour la configuration partagée. Une entrée [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars) ne s'applique que si sa valeur est un chemin absolu ; l'extension ne développe pas `~` et ignore une valeur relative. |606| `environmentVariables` | `[]` | Définissez les variables d'environnement pour le processus Claude. Utilisez plutôt les paramètres Claude Code pour la configuration partagée. Une entrée [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars) ne s'applique que si sa valeur est un chemin absolu ; l'extension ne développe pas `~` et ignore une valeur relative. |

607| `disableLoginPrompt` | `false` | Ignorez les invites d'authentification (pour les configurations de fournisseur tiers) |607| `disableLoginPrompt` | `false` | Ignorez les invites d'authentification (pour les configurations de fournisseur tiers) |

608| `allowDangerouslySkipPermissions` | `false` | Ajoute Bypass permissions au sélecteur de mode. Utilisez-le uniquement dans les sandboxes sans accès à Internet. |608| `allowDangerouslySkipPermissions` | `false` | Ajoute Bypass permissions au sélecteur de mode. Utilisez-le uniquement dans les sandboxes sans accès à Internet. |

609| `claudeProcessWrapper` | - | Exécutable utilisé pour lancer le processus Claude. Le chemin binaire fourni est transmis en tant qu'argument lorsqu'il est présent. Définissez-le sur un binaire `claude` installé séparément si la version de l'extension n'en inclut pas un pour votre plateforme. Dans une configuration encapsulée, les conversations commencent en mode Manual sauf si vous définissez `initialPermissionMode` ou avez choisi Manual, Edit automatically ou Auto dans une conversation antérieure, car l'extension ignore les paramètres et les étapes par défaut intégrées là ; voir [Switch permission modes](/docs/fr/permission-modes#switch-permission-modes). Une erreur « Unsupported platform » à l'activation signifie qu'aucun binaire n'est fourni pour votre plateforme ; voir [which platforms have prebuilt binaries](/docs/fr/troubleshoot-install#native-binary-not-found-after-npm-install). |609| `claudeProcessWrapper` | - | Exécutable utilisé pour lancer le processus Claude. Le chemin binaire fourni est transmis en tant qu'argument lorsqu'il est présent. Définissez-le sur un binaire `claude` installé séparément si la version de l'extension n'en inclut pas un pour votre plateforme. |

610 610 

611<h2 id="use-a-screen-reader">611<h2 id="use-a-screen-reader">

612 Utiliser un lecteur d'écran612 Utiliser un lecteur d'écran

worktrees.md +3 −1

Details

6 6 

7> Isolez les sessions Claude Code parallèles dans des git worktrees séparés pour que les modifications ne se heurtent pas. Couvre le flag `--worktree`, l'isolation des subagents, `.worktreeinclude`, le nettoyage et les hooks VCS non-git.7> Isolez les sessions Claude Code parallèles dans des git worktrees séparés pour que les modifications ne se heurtent pas. Couvre le flag `--worktree`, l'isolation des subagents, `.worktreeinclude`, le nettoyage et les hooks VCS non-git.

8 8 

9Un [git worktree](https://git-scm.com/docs/git-worktree) est un répertoire de travail séparé avec ses propres fichiers et branche, partageant le même historique de dépôt et la même télécommande que votre extraction principale. Exécuter chaque session Claude Code dans son propre worktree signifie que les modifications dans une session ne touchent jamais les fichiers d'une autre, vous pouvez donc avoir Claude construisant une fonctionnalité dans un terminal tout en corrigeant un bug dans un second.9Un [git worktree](https://git-scm.com/docs/git-worktree) est un répertoire de travail séparé avec ses propres fichiers et branche, partageant le même historique de dépôt et le même dépôt distant que votre extraction principale. Exécuter chaque session Claude Code dans son propre worktree lui donne une copie séparée des fichiers à modifier, de sorte qu'une session peut développer une fonctionnalité pendant qu'une seconde corrige un bug.

10 10 

11<Note>11<Note>

12 Les worktrees nécessitent un dépôt git ; pour les autres systèmes de contrôle de version, [configurez des hooks pour remplacer la logique git](#non-git-version-control). Dans l'[application de bureau](/docs/fr/desktop#work-in-parallel-with-sessions), sélectionnez l'option **worktree** quand vous démarrez une session pour lui donner son propre worktree.12 Les worktrees nécessitent un dépôt git ; pour les autres systèmes de contrôle de version, [configurez des hooks pour remplacer la logique git](#non-git-version-control). Dans l'[application de bureau](/docs/fr/desktop#work-in-parallel-with-sessions), sélectionnez l'option **worktree** quand vous démarrez une session pour lui donner son propre worktree.


104* **Redirections Git** : Claude Code bloque une commande Bash ou Monitor qui redirige git vers l'extraction principale. La redirection peut provenir de `git -C`, `--git-dir`, une variable `GIT_DIR` ou `GIT_WORK_TREE`, ou un `cd` dans l'extraction principale avant d'exécuter git.104* **Redirections Git** : Claude Code bloque une commande Bash ou Monitor qui redirige git vers l'extraction principale. La redirection peut provenir de `git -C`, `--git-dir`, une variable `GIT_DIR` ou `GIT_WORK_TREE`, ou un `cd` dans l'extraction principale avant d'exécuter git.

105* **Forme de la commande** : Claude Code bloque une commande Bash ou Monitor quand il ne peut pas vérifier à partir du texte de la commande que tout git que la commande exécute reste à l'intérieur du worktree. Cela se produit, par exemple, quand le nom de la commande est calculé à l'exécution, quand la syntaxe ne peut pas être analysée, ou quand une expansion telle que `${!name}` ou `${ command; }` pourrait exécuter une commande que le texte ne précise pas. Claude Code indique à Claude comment réécrire la commande refusée, par exemple en la divisant en commandes simples et séparées. Vous ne pouvez pas désactiver cette vérification.105* **Forme de la commande** : Claude Code bloque une commande Bash ou Monitor quand il ne peut pas vérifier à partir du texte de la commande que tout git que la commande exécute reste à l'intérieur du worktree. Cela se produit, par exemple, quand le nom de la commande est calculé à l'exécution, quand la syntaxe ne peut pas être analysée, ou quand une expansion telle que `${!name}` ou `${ command; }` pourrait exécuter une commande que le texte ne précise pas. Claude Code indique à Claude comment réécrire la commande refusée, par exemple en la divisant en commandes simples et séparées. Vous ne pouvez pas désactiver cette vérification.

106 106 

107Ces vérifications lisent le chemin ciblé par une modification, le répertoire dans lequel une commande s'exécute et le texte de la commande. Aucune d'elles ne suit les fichiers qu'une commande shell écrit, de sorte qu'une commande qui écrit dans l'extraction principale sans y exécuter git, comme `cp` ou une redirection shell, n'est pas refusée par celles-ci. Claude Code traite cette commande comme n'importe quelle autre commande shell : le fait qu'elle s'exécute ou qu'elle vous demande une permission dépend donc de votre [mode de permission](/docs/fr/permission-modes) et de vos règles.

108 

107Les vérifications s'appliquent au dépôt à partir duquel vous avez lancé Claude Code. Elles couvrent également l'extraction principale à laquelle un worktree lié est lié. Pour les commandes PowerShell, Claude Code applique uniquement la vérification du répertoire de travail.109Les vérifications s'appliquent au dépôt à partir duquel vous avez lancé Claude Code. Elles couvrent également l'extraction principale à laquelle un worktree lié est lié. Pour les commandes PowerShell, Claude Code applique uniquement la vérification du répertoire de travail.

108 110 

109Claude voit chaque refus comme une erreur d'outil qui nomme le worktree et dit comment procéder. Pour une commande refusée, consultez [ce que le message de refus signifie et comment le résoudre](/docs/fr/errors#command-blocked-by-the-worktree-isolation-checks).111Claude voit chaque refus comme une erreur d'outil qui nomme le worktree et dit comment procéder. Pour une commande refusée, consultez [ce que le message de refus signifie et comment le résoudre](/docs/fr/errors#command-blocked-by-the-worktree-isolation-checks).