SpyBara
Go Premium

Documentation 2026-07-02 23:59 UTC to 2026-07-03 23:00 UTC

52 files changed +1,114 −338. View all changes and history on the product overview
2026
Mon 6 23:57 Sat 4 03:01 Fri 3 23:00 Thu 2 23:59 Wed 1 21:01

admin-setup.md +2 −0

Details

90| [Plancher de version](/fr/settings) | Empêcher la mise à jour automatique d'installer en dessous d'un minimum à l'échelle de l'organisation | `minimumVersion` |90| [Plancher de version](/fr/settings) | Empêcher la mise à jour automatique d'installer en dessous d'un minimum à l'échelle de l'organisation | `minimumVersion` |

91| [Plage de version requise](/fr/settings) | Refuser de démarrer complètement lorsque la version en cours d'exécution est en dehors d'une plage approuvée par l'organisation. Plus fort que `minimumVersion`, qui bloque uniquement les rétrograder | `requiredMinimumVersion`, `requiredMaximumVersion` |91| [Plage de version requise](/fr/settings) | Refuser de démarrer complètement lorsque la version en cours d'exécution est en dehors d'une plage approuvée par l'organisation. Plus fort que `minimumVersion`, qui bloque uniquement les rétrograder | `requiredMinimumVersion`, `requiredMaximumVersion` |

92 92 

93Les organisations dont les membres s'authentifient via claude.ai ou l'API Anthropic peuvent également gouverner les modèles sans déployer de paramètres : les [restrictions de modèle d'organisation](/fr/model-config#organization-model-restrictions) désactivent les modèles individuels, un [modèle par défaut d'organisation](/fr/model-config#organization-default-model) définit le modèle sur lequel les nouvelles sessions commencent, et les [limites d'effort d'organisation](/fr/model-config#organization-effort-limits) limitent les niveaux d'effort par rôle. Les trois contrôles nécessitent un plan Claude Enterprise. Les restrictions de modèle et les limites d'effort sont appliquées côté serveur ; le modèle par défaut est un point de départ que les utilisateurs peuvent modifier, sauf si l'organisation l'applique. L'application est disponible pour un ensemble limité d'organisations ; demandez à votre équipe de compte Anthropic la disponibilité. Aucun de ces contrôles n'atteint les sessions sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou [Claude Platform on AWS](/fr/claude-platform-on-aws) ; sur ces fournisseurs, utilisez `availableModels` ci-dessus pour les restrictions et la clé `model` dans les paramètres gérés pour une valeur par défaut.

94 

93Les règles de permission et le sandboxing couvrent différentes couches. Refuser WebFetch bloque l'outil fetch de Claude, mais si Bash est autorisé, `curl` et `wget` peuvent toujours atteindre n'importe quelle URL. Le sandboxing ferme cette lacune avec une liste blanche de domaines réseau appliquée au niveau du système d'exploitation.95Les règles de permission et le sandboxing couvrent différentes couches. Refuser WebFetch bloque l'outil fetch de Claude, mais si Bash est autorisé, `curl` et `wget` peuvent toujours atteindre n'importe quelle URL. Le sandboxing ferme cette lacune avec une liste blanche de domaines réseau appliquée au niveau du système d'exploitation.

94 96 

95Pour le modèle de menace que ces contrôles défendent, consultez [Sécurité](/fr/security).97Pour le modèle de menace que ces contrôles défendent, consultez [Sécurité](/fr/security).

advisor.md +4 −3

Details

85L'advisor doit être au moins aussi capable que le modèle principal. Les advisors acceptés pour chaque modèle principal sont :85L'advisor doit être au moins aussi capable que le modèle principal. Les advisors acceptés pour chaque modèle principal sont :

86 86 

87| Modèle principal | Advisors acceptés | Notes |87| Modèle principal | Advisors acceptés | Notes |

88| ----------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |88| ----------------------------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

89| Haiku 4.5 | Fable, Opus, Sonnet | Haiku peut appeler l'advisor mais ne peut pas en être un |89| Haiku 4.5 | Fable, Opus, Sonnet | Haiku peut appeler l'advisor mais ne peut pas en être un |

90| Sonnet 4.6 | Fable, Opus, Sonnet | |90| Sonnet 4.6 | Fable, Opus, Sonnet | |

91| Sonnet 5 | Fable, Opus, Sonnet 5 | Un advisor Sonnet 4.6 est rejeté |91| Sonnet 5 | Fable, Opus, Sonnet 5 | Un advisor Sonnet 4.6 est rejeté |

92| Opus 4.6 ou ultérieur | Fable, Opus à la version du modèle principal ou ultérieure | Un Opus 4.7 principal avec un advisor Opus 4.6 est rejeté. Un Opus 4.6 principal accepte également un advisor Sonnet 5 |92| Opus 4.6 | Fable, Opus, Sonnet 5 | Sonnet 5 et Opus 4.6 sont classés comme également capables, donc un Opus 4.6 principal accepte un advisor Sonnet 5 |

93| Opus 4.7 ou ultérieur | Fable, Opus 4.7, Opus 4.8 | Opus 4.7 et Opus 4.8 sont classés comme également capables, donc l'un accepte l'autre comme advisor. Un Opus 4.7 principal avec un advisor Opus 4.6 ou Sonnet 5 est rejeté |

93| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Un advisor Opus ou Sonnet est rejeté |94| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Un advisor Opus ou Sonnet est rejeté |

94 95 

95Fable 5 nécessite Claude Code v2.1.170 ou ultérieur et l'accès à Fable 5, qu'il agisse comme modèle principal ou advisor.96Fable 5 nécessite Claude Code v2.1.170 ou ultérieur et l'accès à Fable 5, qu'il agisse comme modèle principal ou advisor.


174/advisor off175/advisor off

175```176```

176 177 

177Pour désactiver complètement l'outil advisor, y compris la commande `/advisor` et le drapeau `--advisor`, définissez `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`. Consultez [Variables d'environnement](/fr/env-vars).178Pour désactiver l'outil advisor entièrement, définissez `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`. La commande `/advisor` devient indisponible et tout `advisorModel` configuré est ignoré. Le drapeau `--advisor` est accepté mais n'a aucun effet ; les scripts existants qui le transmettent continuent de fonctionner sans erreurs. Consultez [Variables d'environnement](/fr/env-vars).

178 179 

179<h2 id="compare-with-related-features">180<h2 id="compare-with-related-features">

180 Comparer avec les fonctionnalités connexes181 Comparer avec les fonctionnalités connexes

Details

86<Accordion title="Exemple : Vérifier les types de messages et gérer les résultats">86<Accordion title="Exemple : Vérifier les types de messages et gérer les résultats">

87 <CodeGroup>87 <CodeGroup>

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

89 import asyncio

89 from claude_agent_sdk import query, AssistantMessage, ResultMessage90 from claude_agent_sdk import query, AssistantMessage, ResultMessage

90 91 

92 

93 async def main():

94 try:

91 async for message in query(prompt="Summarize this project"):95 async for message in query(prompt="Summarize this project"):

92 if isinstance(message, AssistantMessage):96 if isinstance(message, AssistantMessage):

93 print(f"Turn completed: {len(message.content)} content blocks")97 print(f"Turn completed: {len(message.content)} content blocks")


96 print(message.result)100 print(message.result)

97 else:101 else:

98 print(f"Stopped: {message.subtype}")102 print(f"Stopped: {message.subtype}")

103 except Exception as error:

104 # A single-shot query() raises after yielding an error result. If the

105 # failure was an error result, the error subtype branches above have

106 # already run; connection or process failures yield no result message.

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

108 

109 

110 asyncio.run(main())

99 ```111 ```

100 112 

101 ```typescript TypeScript theme={null}113 ```typescript TypeScript theme={null}

102 import { query } from "@anthropic-ai/claude-agent-sdk";114 import { query } from "@anthropic-ai/claude-agent-sdk";

103 115 

116 try {

104 for await (const message of query({ prompt: "Summarize this project" })) {117 for await (const message of query({ prompt: "Summarize this project" })) {

105 if (message.type === "assistant") {118 if (message.type === "assistant") {

106 console.log(`Turn completed: ${message.message.content.length} content blocks`);119 console.log(`Turn completed: ${message.message.content.length} content blocks`);


113 }126 }

114 }127 }

115 }128 }

129 } catch (error) {

130 // A single-shot query() throws after yielding an error result. If the

131 // failure was an error result, the error subtype branches above have

132 // already run; connection or process failures yield no result message.

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

134 }

116 ```135 ```

117 </CodeGroup>136 </CodeGroup>

118</Accordion>137</Accordion>


321 340 

322Le champ `result` (la sortie textuelle finale) n'est présent que sur la variante `success`, donc vérifiez toujours le sous-type avant de le lire. Tous les sous-types de résultat portent `total_cost_usd`, `usage`, `num_turns` et `session_id` afin que vous puissiez suivre le coût et reprendre même après des erreurs. En Python, `total_cost_usd` et `usage` sont typés comme optionnels et peuvent être `None` sur certains chemins d'erreur, donc gardez-les avant de les formater. Voir [Suivi des coûts et de l'utilisation](/fr/agent-sdk/cost-tracking) pour les détails sur l'interprétation des champs `usage`.341Le champ `result` (la sortie textuelle finale) n'est présent que sur la variante `success`, donc vérifiez toujours le sous-type avant de le lire. Tous les sous-types de résultat portent `total_cost_usd`, `usage`, `num_turns` et `session_id` afin que vous puissiez suivre le coût et reprendre même après des erreurs. En Python, `total_cost_usd` et `usage` sont typés comme optionnels et peuvent être `None` sur certains chemins d'erreur, donc gardez-les avant de les formater. Voir [Suivi des coûts et de l'utilisation](/fr/agent-sdk/cost-tracking) pour les détails sur l'interprétation des champs `usage`.

323 342 

343<Note>

344 Lorsqu'une requête se termine sur un résultat d'erreur :

345 

346 * Un appel `query()` unique produit le message de résultat final, puis lève une erreur qui inclut le texte d'échec, tel que `Reached maximum number of turns`. La levée est intentionnelle — enveloppez la boucle dans un bloc try si votre code doit continuer au-delà. Le processus Claude Code sous-jacent se termine également avec un code non nul.

347 * Une session d'entrée en streaming reste active, et vous pouvez continuer à envoyer des messages.

348</Note>

349 

324Le résultat inclut également un champ `stop_reason` (`string | null` en TypeScript, `str | None` en Python) indiquant pourquoi le modèle a arrêté de générer sur son tour final. Les valeurs courantes sont `end_turn` (le modèle a terminé normalement), `max_tokens` (limite de token de sortie atteinte) et `refusal` (le modèle a refusé la requête). Sur les sous-types de résultat d'erreur, `stop_reason` porte la valeur de la dernière réponse d'assistant avant la fin de la boucle. Pour détecter les refus, vérifiez `stop_reason === "refusal"` (TypeScript) ou `stop_reason == "refusal"` (Python). Voir [`SDKResultMessage`](/fr/agent-sdk/typescript#sdkresultmessage) (TypeScript) ou [`ResultMessage`](/fr/agent-sdk/python#resultmessage) (Python) pour le type complet.350Le résultat inclut également un champ `stop_reason` (`string | null` en TypeScript, `str | None` en Python) indiquant pourquoi le modèle a arrêté de générer sur son tour final. Les valeurs courantes sont `end_turn` (le modèle a terminé normalement), `max_tokens` (limite de token de sortie atteinte) et `refusal` (le modèle a refusé la requête). Sur les sous-types de résultat d'erreur, `stop_reason` porte la valeur de la dernière réponse d'assistant avant la fin de la boucle. Pour détecter les refus, vérifiez `stop_reason === "refusal"` (TypeScript) ou `stop_reason == "refusal"` (Python). Voir [`SDKResultMessage`](/fr/agent-sdk/typescript#sdkresultmessage) (TypeScript) ou [`ResultMessage`](/fr/agent-sdk/python#resultmessage) (Python) pour le type complet.

325 351 

326<h2 id="hooks">352<h2 id="hooks">


348 374 

349Cet exemple combine les concepts clés de cette page dans un seul agent qui corrige les tests défaillants. Il configure l'agent avec les outils autorisés (approuvés automatiquement afin que l'agent s'exécute de manière autonome), les paramètres du projet et les limites de sécurité sur les tours et l'effort de raisonnement. Lorsque la boucle s'exécute, elle capture l'ID de session pour une reprise potentielle, gère le résultat final et imprime le coût total.375Cet exemple combine les concepts clés de cette page dans un seul agent qui corrige les tests défaillants. Il configure l'agent avec les outils autorisés (approuvés automatiquement afin que l'agent s'exécute de manière autonome), les paramètres du projet et les limites de sécurité sur les tours et l'effort de raisonnement. Lorsque la boucle s'exécute, elle capture l'ID de session pour une reprise potentielle, gère le résultat final et imprime le coût total.

350 376 

377Parce qu'un appel unique `query()` lève une exception après avoir produit un résultat d'erreur, la boucle est enveloppée dans un bloc try afin que le script se termine proprement lorsqu'une limite est atteinte.

378 

351<CodeGroup>379<CodeGroup>

352 ```python Python theme={null}380 ```python Python theme={null}

353 import asyncio381 import asyncio


357 async def run_agent():385 async def run_agent():

358 session_id = None386 session_id = None

359 387 

388 try:

360 async for message in query(389 async for message in query(

361 prompt="Find and fix the bug causing test failures in the auth module",390 prompt="Find and fix the bug causing test failures in the auth module",

362 options=ClaudeAgentOptions(391 options=ClaudeAgentOptions(


389 print(f"Stopped: {message.subtype}")418 print(f"Stopped: {message.subtype}")

390 if message.total_cost_usd is not None:419 if message.total_cost_usd is not None:

391 print(f"Cost: ${message.total_cost_usd:.4f}")420 print(f"Cost: ${message.total_cost_usd:.4f}")

421 except Exception as error:

422 # A single-shot query() raises after yielding an error result. If the

423 # failure was an error result, the error subtype branches above have

424 # already run; connection or process failures yield no result message.

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

392 426 

393 427 

394 asyncio.run(run_agent())428 asyncio.run(run_agent())


399 433 

400 let sessionId: string | undefined;434 let sessionId: string | undefined;

401 435 

436 try {

402 for await (const message of query({437 for await (const message of query({

403 prompt: "Find and fix the bug causing test failures in the auth module",438 prompt: "Find and fix the bug causing test failures in the auth module",

404 options: {439 options: {


428 console.log(`Cost: $${message.total_cost_usd.toFixed(4)}`);463 console.log(`Cost: $${message.total_cost_usd.toFixed(4)}`);

429 }464 }

430 }465 }

466 } catch (error) {

467 // A single-shot query() throws after yielding an error result. If the

468 // failure was an error result, the error subtype branches above have

469 // already run; connection or process failures yield no result message.

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

471 }

431 ```472 ```

432</CodeGroup>473</CodeGroup>

433 474 

Details

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

64 import { query } from "@anthropic-ai/claude-agent-sdk";64 import { query } from "@anthropic-ai/claude-agent-sdk";

65 65 

66 try {

66 for await (const message of query({ prompt: "Summarize this project" })) {67 for await (const message of query({ prompt: "Summarize this project" })) {

67 if (message.type === "result") {68 if (message.type === "result") {

68 console.log(`Total cost: $${message.total_cost_usd}`);69 console.log(`Total cost: $${message.total_cost_usd}`);

69 }70 }

70 }71 }

72 } catch (error) {

73 // A single-shot query() throws after yielding an error result. If the

74 // failure was an error result, it still carried total_cost_usd and the

75 // branch above has already run; connection or process failures yield

76 // no result message.

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

78 }

71 ```79 ```

72 80 

73 ```python Python theme={null}81 ```python Python theme={null}


76 84 

77 85 

78 async def main():86 async def main():

87 try:

79 async for message in query(prompt="Summarize this project"):88 async for message in query(prompt="Summarize this project"):

80 if isinstance(message, ResultMessage):89 if isinstance(message, ResultMessage):

81 print(f"Total cost: ${message.total_cost_usd or 0}")90 print(f"Total cost: ${message.total_cost_usd or 0}")

91 except Exception as error:

92 # A single-shot query() raises after yielding an error result. If the

93 # failure was an error result, it still carried total_cost_usd and the

94 # branch above has already run; connection or process failures yield

95 # no result message.

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

82 97 

83 98 

84 asyncio.run(main())99 asyncio.run(main())


110let totalInputTokens = 0;125let totalInputTokens = 0;

111let totalOutputTokens = 0;126let totalOutputTokens = 0;

112 127 

113for await (const message of query({ prompt: "Summarize this project" })) {128try {

129 for await (const message of query({ prompt: "Summarize this project" })) {

114 if (message.type === "assistant") {130 if (message.type === "assistant") {

115 const msgId = message.message.id;131 const msgId = message.message.id;

116 132 


121 totalOutputTokens += message.message.usage.output_tokens;137 totalOutputTokens += message.message.usage.output_tokens;

122 }138 }

123 }139 }

140 }

141} catch (error) {

142 // A single-shot query() throws after yielding an error result, so the

143 // totals below still reflect the steps that ran before the failure.

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

124}145}

125 146 

126console.log(`Steps: ${seenIds.size}`);147console.log(`Steps: ${seenIds.size}`);


139```typescript theme={null}160```typescript theme={null}

140import { query } from "@anthropic-ai/claude-agent-sdk";161import { query } from "@anthropic-ai/claude-agent-sdk";

141 162 

142for await (const message of query({ prompt: "Summarize this project" })) {163try {

164 for await (const message of query({ prompt: "Summarize this project" })) {

143 if (message.type !== "result") continue;165 if (message.type !== "result") continue;

144 166 

145 for (const [modelName, usage] of Object.entries(message.modelUsage)) {167 for (const [modelName, usage] of Object.entries(message.modelUsage)) {


149 console.log(` Cache read: ${usage.cacheReadInputTokens}`);171 console.log(` Cache read: ${usage.cacheReadInputTokens}`);

150 console.log(` Cache creation: ${usage.cacheCreationInputTokens}`);172 console.log(` Cache creation: ${usage.cacheCreationInputTokens}`);

151 }173 }

174 }

175} catch (error) {

176 // A single-shot query() throws after yielding an error result. If the

177 // failure was an error result, the per-model breakdown above has already

178 // printed; connection or process failures yield no result message.

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

152}180}

153```181```

154 182 


173 ];201 ];

174 202 

175 for (const prompt of prompts) {203 for (const prompt of prompts) {

204 try {

176 for await (const message of query({ prompt })) {205 for await (const message of query({ prompt })) {

177 if (message.type === "result") {206 if (message.type === "result") {

178 totalSpend += message.total_cost_usd;207 totalSpend += message.total_cost_usd;

179 console.log(`This call: $${message.total_cost_usd}`);208 console.log(`This call: $${message.total_cost_usd}`);

180 }209 }

181 }210 }

211 } catch (error) {

212 // A single-shot query() throws after yielding an error result. If the

213 // failure was an error result, this call's cost was already counted;

214 // connection or process failures yield no result message. Continue

215 // with the next prompt.

216 console.error(`Call failed: ${error}`);

217 }

182 }218 }

183 219 

184 console.log(`Total spend: $${totalSpend.toFixed(4)}`);220 console.log(`Total spend: $${totalSpend.toFixed(4)}`);


199 ]235 ]

200 236 

201 for prompt in prompts:237 for prompt in prompts:

238 try:

202 async for message in query(prompt=prompt):239 async for message in query(prompt=prompt):

203 if isinstance(message, ResultMessage):240 if isinstance(message, ResultMessage):

204 cost = message.total_cost_usd or 0241 cost = message.total_cost_usd or 0

205 total_spend += cost242 total_spend += cost

206 print(f"This call: ${cost}")243 print(f"This call: ${cost}")

244 except Exception as error:

245 # A single-shot query() raises after yielding an error result. If

246 # the failure was an error result, this call's cost was already

247 # counted; connection or process failures yield no result message.

248 # Continue with the next prompt.

249 print(f"Call failed: {error}")

207 250 

208 print(f"Total spend: ${total_spend:.4f}")251 print(f"Total spend: ${total_spend:.4f}")

209 252 

Details

50 50 

51Pour utiliser le point de contrôle de fichier, activez-le dans vos options, capturez les UUID de point de contrôle du flux de réponse, puis appelez `rewindFiles()` (TypeScript) ou `rewind_files()` (Python) lorsque vous devez restaurer.51Pour utiliser le point de contrôle de fichier, activez-le dans vos options, capturez les UUID de point de contrôle du flux de réponse, puis appelez `rewindFiles()` (TypeScript) ou `rewind_files()` (Python) lorsque vous devez restaurer.

52 52 

53L'exemple suivant montre le flux complet : activez le point de contrôle, capturez l'UUID du point de contrôle et l'ID de session du flux de réponse, puis reprenez la session plus tard pour rembobiner les fichiers. Chaque étape est expliquée en détail ci-dessous.53L'exemple suivant montre le flux complet : activez le point de contrôle, capturez l'UUID du point de contrôle et l'ID de session du flux de réponse, puis reprenez la session plus tard pour rembobiner les fichiers. Chaque étape est expliquée en détail ci-dessous. Les exemples de cette section utilisent l'invite « Refactor the authentication module ». Exécutez-les dans un projet qui contient un module d'authentification, ou modifiez l'invite pour nommer les fichiers qui existent dans votre projet, afin que vous puissiez regarder les fichiers changer et voir le rembobinage les restaurer.

54 54 

55<CodeGroup>55<CodeGroup>

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


197 session_id = None197 session_id = None

198 198 

199 async for message in client.receive_response():199 async for message in client.receive_response():

200 # Update checkpoint on each user message (keeps the latest)200 # Capture the first user message UUID as the checkpoint

201 if isinstance(message, UserMessage) and message.uuid:201 if isinstance(message, UserMessage) and message.uuid and checkpoint_id is None:

202 checkpoint_id = message.uuid202 checkpoint_id = message.uuid

203 # Capture session ID from the result message203 # Capture session ID from the result message

204 if isinstance(message, ResultMessage):204 if isinstance(message, ResultMessage):


210 let sessionId: string | undefined;210 let sessionId: string | undefined;

211 211 

212 for await (const message of response) {212 for await (const message of response) {

213 // Update checkpoint on each user message (keeps the latest)213 // Capture the first user message UUID as the checkpoint

214 if (message.type === "user" && message.uuid) {214 if (message.type === "user" && message.uuid && !checkpointId) {

215 checkpointId = message.uuid;215 checkpointId = message.uuid;

216 }216 }

217 // Capture session ID from any message that has it217 // Capture session ID from any message that has it


250 ```250 ```

251 </CodeGroup>251 </CodeGroup>

252 252 

253 Si vous capturez l'ID de session et l'UUID de point de contrôle, vous pouvez également rembobiner à partir de la CLI :253 Si vous capturez l'ID de session et l'UUID de point de contrôle, vous pouvez également rembobiner à partir de la CLI. Cette commande nécessite l'exécutable `claude`, qui provient de l'[installation de Claude Code](/fr/setup) et n'est pas installé par le package SDK. Le SDK active le point de contrôle pour vous, mais lorsque vous exécutez `claude -p` directement, vous devez définir la variable d'environnement `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING` :

254 254 

255 ```bash theme={null}255 ```bash theme={null}

256 claude -p --resume <session-id> --rewind-files <checkpoint-uuid>256 CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>

257 ```257 ```

258 

259 Le drapeau `--rewind-files` n'apparaît pas dans la sortie `claude --help`, mais la CLI l'accepte comme indiqué.

258 </Step>260 </Step>

259</Steps>261</Steps>

260 262 


270 272 

271Ce modèle conserve uniquement l'UUID de point de contrôle le plus récent, le mettant à jour avant chaque tour d'agent. Si quelque chose se passe mal pendant le traitement, vous pouvez immédiatement rembobiner vers le dernier état sûr et sortir de la boucle.273Ce modèle conserve uniquement l'UUID de point de contrôle le plus récent, le mettant à jour avant chaque tour d'agent. Si quelque chose se passe mal pendant le traitement, vous pouvez immédiatement rembobiner vers le dernier état sûr et sortir de la boucle.

272 274 

275Avant d'exécuter cet exemple, remplacez `your_revert_condition` (Python) ou `yourRevertCondition` (TypeScript) par votre propre vérification, telle que la détection d'erreurs ou un échec de validation ; l'espace réservé n'est pas défini dans l'exemple.

276 

273<CodeGroup>277<CodeGroup>

274 ```python Python theme={null}278 ```python Python theme={null}

275 import asyncio279 import asyncio


752 756 

753**Solution** : Assurez-vous que `enable_file_checkpointing=True` (Python) ou `enableFileCheckpointing: true` (TypeScript) a été défini sur la session d'origine, puis utilisez le modèle montré dans les exemples : capturez l'UUID du premier message utilisateur, complétez la session entièrement, puis reprenez avec une invite vide et appelez `rewindFiles()` une fois.757**Solution** : Assurez-vous que `enable_file_checkpointing=True` (Python) ou `enableFileCheckpointing: true` (TypeScript) a été défini sur la session d'origine, puis utilisez le modèle montré dans les exemples : capturez l'UUID du premier message utilisateur, complétez la session entièrement, puis reprenez avec une invite vide et appelez `rewindFiles()` une fois.

754 758 

759<h3 id="file-rewinding-is-not-enabled-error">

760 Erreur « File rewinding is not enabled »

761</h3>

762 

763Cette erreur se produit lorsque vous tentez un rembobinage non interactif sans point de contrôle activé : exécuter `claude -p` avec `--rewind-files`, ou exécuter une session SDK, y compris une session reprise, dont les options n'activent pas le point de contrôle. Le SDK définit la variable d'environnement `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING` en interne uniquement lorsque `enable_file_checkpointing` (Python) ou `enableFileCheckpointing` (TypeScript) est activé sur la session effectuant le rembobinage ; l'interface CLI simple ne la définit jamais.

764 

765**Solution** : Pour l'interface CLI simple, définissez la variable d'environnement lors de l'exécution de la commande :

766 

767```bash theme={null}

768CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>

769```

770 

771Pour le SDK, définissez `enable_file_checkpointing=True` (Python) ou `enableFileCheckpointing: true` (TypeScript) sur la session reprise, comme le font les exemples sur cette page.

772 

755<h3 id="processtransport-is-not-ready-for-writing-error">773<h3 id="processtransport-is-not-ready-for-writing-error">

756 Erreur « ProcessTransport is not ready for writing »774 Erreur « ProcessTransport is not ready for writing »

757</h3>775</h3>

Details

28 </Step>28 </Step>

29 29 

30 <Step title="Règles de demande">30 <Step title="Règles de demande">

31 Vérifiez les règles `ask` à partir de [settings.json](/fr/settings#permission-settings). Si une règle de demande correspond, l'appel passe à votre callback [`canUseTool`](/fr/agent-sdk/user-input) pour confirmation, même en mode `bypassPermissions`. En mode `dontAsk`, une règle de demande correspondante est refusée à la place, car ce mode ne demande jamais.31 Vérifiez les règles `ask` à partir de [settings.json](/fr/settings#permission-settings). Si une règle de demande correspond, l'appel passe à votre callback [`canUseTool`](/fr/agent-sdk/user-input) pour confirmation, même en mode `bypassPermissions`.

32 

33 Les outils qui nécessitent une interaction utilisateur se comportent de la même manière : `AskUserQuestion` et les outils MCP dont le serveur définit [`_meta["anthropic/requiresUserInteraction"]`](/fr/mcp#require-approval-for-a-specific-tool) passent toujours au callback, même lorsqu'une règle d'autorisation correspond. En mode `dontAsk`, les deux cas sont refusés à la place, car ce mode ne demande jamais. {/* min-version: 2.1.199 */}L'annotation MCP nécessite Claude Code v2.1.199 ou ultérieur.

32 </Step>34 </Step>

33 35 

34 <Step title="Mode de permission">36 <Step title="Mode de permission">


46 48 

47<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" alt="Diagramme du flux d'évaluation des permissions en six étapes correspondant aux étapes ci-dessus : une demande d'outil passe par les hooks, les règles de refus, les règles de demande, le mode de permission, les règles d'autorisation et canUseTool. Les hooks, les règles de refus et canUseTool peuvent router vers Bloqué ; le contournement du mode de permission, les règles d'autorisation et canUseTool peuvent router vers Exécuter ; les règles de demande routent vers canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />49<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" alt="Diagramme du flux d'évaluation des permissions en six étapes correspondant aux étapes ci-dessus : une demande d'outil passe par les hooks, les règles de refus, les règles de demande, le mode de permission, les règles d'autorisation et canUseTool. Les hooks, les règles de refus et canUseTool peuvent router vers Bloqué ; le contournement du mode de permission, les règles d'autorisation et canUseTool peuvent router vers Exécuter ; les règles de demande routent vers canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />

48 50 

51À partir de la v2.1.198, si vous transmettez un callback `canUseTool` que cet ordre d'évaluation ne peut jamais atteindre, le SDK TypeScript émet un avertissement du processus Node.js une fois lorsque la requête est construite. Le code de l'avertissement est `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Deux configurations le déclenchent :

52 

53* `permissionMode: 'bypassPermissions'`, qui approuve automatiquement chaque appel qui atteint l'étape du mode de permission

54* Chaque entrée `allowedTools` simple comme `"Read"`, qui approuve automatiquement cet outil entier avant que le callback ne soit consulté

55 

56Les entrées avec un spécificateur comme `Bash(ls *)` et le mode `acceptEdits` ne le déclenchent pas, et les règles d'autorisation provenant des fichiers de paramètres ne sont pas visibles pour la vérification.

57 

58Écoutez avec `process.on('warning', ...)` et faites correspondre le code pour le journaliser ou le supprimer. Pour contrôler chaque appel d'outil indépendamment du mode et des règles, utilisez plutôt un [hook `PreToolUse`](/fr/agent-sdk/hooks).

59 

49Cette page se concentre sur les **règles d'autorisation et de refus** et les **modes de permission**. Pour les autres étapes :60Cette page se concentre sur les **règles d'autorisation et de refus** et les **modes de permission**. Pour les autres étapes :

50 61 

51* **Hooks :** exécutez du code personnalisé pour autoriser, refuser ou modifier les demandes d'outils. Consultez [Contrôler l'exécution avec les hooks](/fr/agent-sdk/hooks).62* **Hooks :** exécutez du code personnalisé pour autoriser, refuser ou modifier les demandes d'outils. Consultez [Contrôler l'exécution avec les hooks](/fr/agent-sdk/hooks).


67Les règles d'autorisation acceptent les globs de noms d'outils uniquement après un préfixe littéral `mcp__<server>__`. Le segment serveur doit être sans glob afin que la règle nomme un serveur spécifique que vous avez configuré : `mcp__puppeteer__*` correspond à chaque outil du serveur `puppeteer`, et `mcp__github__get_*` correspond à ses outils `get_`. Une entrée non ancrée comme `allowed_tools=["*"]` ou `allowed_tools=["mcp__*"]` est ignorée avec un avertissement au démarrage et n'auto-approuve rien.78Les règles d'autorisation acceptent les globs de noms d'outils uniquement après un préfixe littéral `mcp__<server>__`. Le segment serveur doit être sans glob afin que la règle nomme un serveur spécifique que vous avez configuré : `mcp__puppeteer__*` correspond à chaque outil du serveur `puppeteer`, et `mcp__github__get_*` correspond à ses outils `get_`. Une entrée non ancrée comme `allowed_tools=["*"]` ou `allowed_tools=["mcp__*"]` est ignorée avec un avertissement au démarrage et n'auto-approuve rien.

68 79 

69<Warning>80<Warning>

70 **Les outils auto-approuvés ne parviennent jamais à `canUseTool`.** Un appel d'outil approuvé à n'importe quelle étape antérieure, par `acceptEdits` ou `bypassPermissions`, ou par une règle d'autorisation, ignore votre rappel `canUseTool`, de sorte que les vérifications de permission que vous y mettez sont silencieusement contournées pour cet outil. La couverture dépend de la forme de l'entrée : un nom nu comme `Read` ou `mcp__github__get_issue` auto-approuve chaque appel à cet outil, tandis qu'une règle délimitée comme `Bash(ls *)` auto-approuve uniquement les appels correspondants et les autres appels `Bash` passent toujours au rappel. Pour les vérifications qui doivent s'exécuter sur chaque appel d'outil, utilisez un hook [`PreToolUse`](/fr/agent-sdk/hooks) : les hooks s'exécutent avant chaque autre étape, et un refus de hook s'applique même en mode `bypassPermissions`.81 **Les outils auto-approuvés ne parviennent jamais à `canUseTool`.** Un appel d'outil approuvé à n'importe quelle étape antérieure, par `acceptEdits` ou `bypassPermissions`, ou par une règle d'autorisation, ignore votre rappel `canUseTool`, de sorte que les vérifications de permission que vous y mettez sont silencieusement contournées pour cet outil. L'exception concerne les outils qui nécessitent une interaction utilisateur, `AskUserQuestion` et les outils MCP marqués avec [`_meta["anthropic/requiresUserInteraction"]`](/fr/mcp#require-approval-for-a-specific-tool), qui parviennent au rappel même lorsqu'une règle d'autorisation correspond. La couverture dépend de la forme de l'entrée : un nom nu comme `Read` ou `mcp__github__get_issue` auto-approuve chaque appel à cet outil, tandis qu'une règle délimitée comme `Bash(ls *)` auto-approuve uniquement les appels correspondants et les autres appels `Bash` passent toujours au rappel. Pour les vérifications qui doivent s'exécuter sur chaque appel d'outil, utilisez un hook [`PreToolUse`](/fr/agent-sdk/hooks) : les hooks s'exécutent avant chaque autre étape, et un refus de hook s'applique même en mode `bypassPermissions`.

71</Warning>82</Warning>

72 83 

73Pour un agent verrouillé, associez `allowedTools` avec `permissionMode: "dontAsk"`. Les outils listés sont approuvés ; tout le reste est refusé directement au lieu de demander :84Pour un agent verrouillé, associez `allowedTools` avec `permissionMode: "dontAsk"`. Les outils listés sont approuvés ; tout le reste est refusé directement au lieu de demander :

Details

958```958```

959 959 

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

961* `CLAUDE_CODE_MAX_RETRIES` : nombre maximum de tentatives API. Par défaut `10`, limité à `15`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire temps mural est approximativement `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff. Pour les exécutions sans surveillance qui doivent attendre des pannes plus longues, définissez `CLAUDE_CODE_RETRY_WATCHDOG=1` pour réessayer les erreurs de capacité indéfiniment.961* `CLAUDE_CODE_MAX_RETRIES` : nombre maximum de tentatives API. Par défaut `10`, limité à `15`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire temps mural est approximativement `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff. Pour les exécutions sans surveillance qui doivent attendre des pannes plus longues, définissez `CLAUDE_CODE_RETRY_WATCHDOG=1` : il réessaye les erreurs de capacité indéfiniment, et {/* min-version: 2.1.199 */}à partir de Claude Code v2.1.199 augmente la valeur par défaut pour les autres erreurs transitoires à `300` et supprime le plafond sur cette variable.

962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : chien de garde de blocage pour les sous-agents lancés avec `run_in_background`. Par défaut `600000`. Réinitialise à chaque événement de flux ; en cas de blocage, il abandonne le sous-agent, marque la tâche comme échouée et expose l'erreur au parent avec tout résultat partiel. Ne s'applique pas aux sous-agents synchrones.962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : chien de garde de blocage pour les sous-agents lancés avec `run_in_background`. Par défaut `600000`. Réinitialise à chaque événement de flux ; en cas de blocage, il abandonne le sous-agent, marque la tâche comme échouée et expose l'erreur au parent avec tout résultat partiel. Ne s'applique pas aux sous-agents synchrones.

963* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : abandonne la requête quand les en-têtes sont arrivés mais le corps de la réponse cesse de faire du 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` par défaut à `300000` et est limité à ce minimum. La requête abandonnée passe par le chemin de tentative normal.963* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : abandonne la requête quand les en-têtes sont arrivés mais le corps de la réponse cesse de faire du 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` par défaut à `300000` et est limité à ce minimum. La requête abandonnée passe par le chemin de tentative normal.

964 964 

Details

7> Définissez et invoquez des sous-agents pour isoler le contexte, exécuter des tâches en parallèle et appliquer des instructions spécialisées dans vos applications Claude Agent SDK.7> Définissez et invoquez des sous-agents pour isoler le contexte, exécuter des tâches en parallèle et appliquer des instructions spécialisées dans vos applications Claude Agent SDK.

8 8 

9Les sous-agents sont des instances d'agent distinctes que votre agent principal peut créer pour gérer des sous-tâches ciblées.9Les sous-agents sont des instances d'agent distinctes que votre agent principal peut créer pour gérer des sous-tâches ciblées.

10Utilisez les sous-agents pour isoler le contexte des sous-tâches ciblées, exécuter plusieurs analyses en parallèle et appliquer des instructions spécialisées sans surcharger l'invite du principal agent.10Utilisez les sous-agents pour isoler le contexte, exécuter plusieurs analyses en parallèle et appliquer des instructions spécialisées sans surcharger l'invite de l'agent principal.

11 11 

12Ce guide explique comment définir et utiliser les sous-agents dans le SDK en utilisant le paramètre `agents`.12Ce guide explique comment définir et utiliser les sous-agents dans le SDK en utilisant le paramètre `agents`.

13 13 


17 17 

18Vous pouvez créer des sous-agents de trois façons :18Vous pouvez créer des sous-agents de trois façons :

19 19 

20* **Par programmation** : utilisez le paramètre `agents` dans vos options `query()` ([TypeScript](/fr/agent-sdk/typescript#agentdefinition), [Python](/fr/agent-sdk/python#agentdefinition))20* **Par programmation** : utilisez le paramètre `agents` dans vos options `query()`. Consultez les références [TypeScript](/fr/agent-sdk/typescript#agentdefinition) et [Python](/fr/agent-sdk/python#agentdefinition)

21* **Basé sur le système de fichiers** : définissez les agents comme des fichiers markdown dans les répertoires `.claude/agents/` (voir [définir les sous-agents comme fichiers](/fr/sub-agents))21* **Basé sur le système de fichiers** : définissez les agents comme des fichiers markdown dans les répertoires `.claude/agents/`. Consultez [définir les sous-agents comme fichiers](/fr/sub-agents)

22* **Général intégré** : Claude peut invoquer le sous-agent `general-purpose` intégré à tout moment via l'outil Agent sans que vous ayez besoin de rien définir22* **Général intégré** : Claude peut invoquer le sous-agent `general-purpose` intégré à tout moment via l'outil Agent sans que vous ayez besoin de rien définir

23 23 

24Ce guide se concentre sur l'approche programmatique, qui est recommandée pour les applications SDK.24Ce guide se concentre sur l'approche programmatique, qui est recommandée pour les applications SDK.

25 25 

26Lorsque vous définissez des sous-agents, Claude détermine s'il faut les invoquer en fonction du champ `description` de chaque sous-agent. Écrivez des descriptions claires qui expliquent quand le sous-agent doit être utilisé, et Claude délèguera automatiquement les tâches appropriées. Vous pouvez également demander explicitement un sous-agent par son nom dans votre invite (par exemple, « Utilisez l'agent code-reviewer pour... »).26Lorsque vous définissez des sous-agents, Claude détermine s'il faut les invoquer en fonction du champ `description` de chaque sous-agent. Écrivez des descriptions claires qui expliquent quand utiliser le sous-agent, et Claude délèguera automatiquement les tâches appropriées. Vous pouvez également demander explicitement un sous-agent par son nom dans votre invite, par exemple « Utilisez l'agent code-reviewer pour... ».

27 27 

28<h2 id="benefits-of-using-subagents">28<h2 id="benefits-of-using-subagents">

29 Avantages de l'utilisation des sous-agents29 Avantages de l'utilisation des sous-agents


61 61 

62**Exemple :** un sous-agent `doc-reviewer` pourrait n'avoir accès qu'aux outils Read et Grep, garantissant qu'il peut analyser mais ne peut jamais modifier accidentellement vos fichiers de documentation.62**Exemple :** un sous-agent `doc-reviewer` pourrait n'avoir accès qu'aux outils Read et Grep, garantissant qu'il peut analyser mais ne peut jamais modifier accidentellement vos fichiers de documentation.

63 63 

64<h2 id="creating-subagents">64<h2 id="create-subagents">

65 Création de sous-agents65 Créer des sous-agents

66</h2>66</h2>

67 67 

68<h3 id="programmatic-definition-recommended">68<h3 id="programmatic-definition-recommended">

69 Définition programmatique (recommandée)69 Définition programmatique (recommandée)

70</h3>70</h3>

71 71 

72Définissez les sous-agents directement dans votre code en utilisant le paramètre `agents`. Cet exemple crée deux sous-agents : un examinateur de code avec accès en lecture seule et un exécuteur de tests qui peut exécuter des commandes. Claude invoque les sous-agents via l'outil `Agent`, donc incluez `Agent` dans `allowedTools` pour approuver automatiquement les invocations de sous-agents sans invite de permission.72Définissez les sous-agents directement dans votre code en utilisant le paramètre `agents`. Claude invoque les sous-agents via l'outil `Agent`, donc incluez `Agent` dans `allowedTools` pour approuver automatiquement les invocations de sous-agents sans invite de permission.

73 73 

74La plupart des exemples de cette page n'impriment que le résultat final. Pour confirmer que Claude a délégué à un sous-agent plutôt que de répondre directement, voir [Détection de l'invocation de sous-agent](#detecting-subagent-invocation).74La plupart des exemples de cette page n'impriment que le résultat final. Pour confirmer que Claude a délégué à un sous-agent plutôt que de répondre directement, voir [Détecter l'invocation de sous-agent](#detect-subagent-invocation).

75 

76Cet exemple crée deux sous-agents : un examinateur de code avec accès en lecture seule et un exécuteur de tests qui peut exécuter des commandes.

75 77 

76<CodeGroup>78<CodeGroup>

77 ```python Python theme={null}79 ```python Python theme={null}


197 199 

198Dans le SDK Python, les noms de champs multi-mots tels que `disallowedTools` et `mcpServers` conservent leur orthographe camelCase pour correspondre au format de transmission plutôt que de suivre la convention snake\_case de Python. Voir la référence [`AgentDefinition`](/fr/agent-sdk/python#agentdefinition) pour plus de détails.200Dans le SDK Python, les noms de champs multi-mots tels que `disallowedTools` et `mcpServers` conservent leur orthographe camelCase pour correspondre au format de transmission plutôt que de suivre la convention snake\_case de Python. Voir la référence [`AgentDefinition`](/fr/agent-sdk/python#agentdefinition) pour plus de détails.

199 201 

202Deux comportements de sous-agent ont changé dans Claude Code v2.1.198 :

203 

204* Les sous-agents s'exécutent en arrière-plan par défaut. Un appel d'outil Agent qui omet l'entrée [`run_in_background`](/fr/agent-sdk/typescript) lance un sous-agent en arrière-plan, et Claude définit `run_in_background: false` lorsqu'il a besoin du résultat avant de continuer. Avant v2.1.198, l'omission de `run_in_background` exécutait le sous-agent de manière synchrone. Définissez le champ `background` à `true` pour forcer l'exécution en arrière-plan pour un agent spécifique indépendamment de ce que Claude demande.

205* Un sous-agent hérite de la configuration de la réflexion étendue de la session principale. Sur les versions antérieures, la réflexion étendue est désactivée à l'intérieur des sous-agents indépendamment du paramètre de la session principale.

206 

200<Note>207<Note>

201 {/* min-version: 2.1.172 */}À partir de Claude Code v2.1.172, les sous-agents peuvent créer leurs propres sous-agents. Un sous-agent de fond cinq niveaux en dessous de l'agent principal ne peut pas créer d'autres sous-agents, indépendamment du fait qu'il s'exécute au premier plan ou en arrière-plan. Pour empêcher un sous-agent de créer d'autres agents, omettez `Agent` de son tableau `tools` ou ajoutez-le à `disallowedTools`. Voir [sous-agents imbriqués](/fr/sub-agents#spawn-nested-subagents) pour les règles de profondeur complètes.208 {/* min-version: 2.1.172 */}À partir de Claude Code v2.1.172, les sous-agents peuvent créer leurs propres sous-agents. Un sous-agent cinq niveaux en dessous de l'agent principal ne peut pas créer d'autres sous-agents, indépendamment du fait qu'il s'exécute au premier plan ou en arrière-plan. Pour empêcher un sous-agent de créer d'autres agents, omettez `Agent` de son tableau `tools` ou ajoutez-le à `disallowedTools`. Voir [sous-agents imbriqués](/fr/sub-agents#spawn-nested-subagents) pour les règles de profondeur complètes.

202</Note>209</Note>

203 210 

204<h3 id="filesystem-based-definition-alternative">211<h3 id="filesystem-based-definition-alternative">


215 Ce que les sous-agents héritent222 Ce que les sous-agents héritent

216</h2>223</h2>

217 224 

218La fenêtre de contexte d'un sous-agent commence fraîche (pas de conversation parent) mais n'est pas vide. Le seul canal du parent au sous-agent est la chaîne d'invite de l'outil Agent, donc incluez tous les chemins de fichiers, messages d'erreur ou décisions dont le sous-agent a besoin directement dans cette invite.225La fenêtre de contexte d'un sous-agent commence fraîche, sans conversation parent, mais n'est pas vide. Le seul canal du parent au sous-agent est la chaîne d'invite de l'outil Agent, donc incluez tous les chemins de fichiers, messages d'erreur ou décisions dont le sous-agent a besoin directement dans cette invite.

219 226 

220| Le sous-agent reçoit | Le sous-agent ne reçoit pas |227| Le sous-agent reçoit | Le sous-agent ne reçoit pas |

221| :----------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- |228| :----------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- |


224| Les définitions d'outils (héritées du parent, ou le sous-ensemble dans `tools`) | L'invite système du parent |231| Les définitions d'outils (héritées du parent, ou le sous-ensemble dans `tools`) | L'invite système du parent |

225 232 

226<Note>233<Note>

227 Le parent reçoit le message final du sous-agent tel quel comme résultat de l'outil Agent, mais peut le résumer dans sa propre réponse. Pour préserver la sortie du sous-agent tel quel dans la réponse visible par l'utilisateur, incluez une instruction pour le faire dans l'invite ou l'option `systemPrompt` que vous transmettez à l'appel `query()` **principal**.234 Le parent reçoit le message final du sous-agent tel quel comme résultat de l'outil Agent, mais peut le résumer dans sa propre réponse. Pour préserver la sortie du sous-agent tel quel dans la réponse visible par l'utilisateur, incluez une instruction pour le faire dans l'invite ou l'option `systemPrompt` que vous transmettez à l'appel `query()` principal.

228</Note>235</Note>

229 236 

230<h2 id="invoking-subagents">237{/* min-version: 2.1.199 */}À partir de Claude Code v2.1.199, une erreur API qui termine le sous-agent prématurément, comme une limite de débit, n'est jamais livrée comme résultat. Si le sous-agent a déjà produit une sortie, l'outil Agent retourne cette sortie partielle avec une note indiquant que le sous-agent n'a pas terminé ; sinon, le résultat de l'outil est un message d'erreur, `Agent terminated early due to an API error`, suivi du détail de l'erreur. Consultez [API errors in subagents](/fr/sub-agents#api-errors-in-subagents) pour le comportement au premier plan et en arrière-plan.

231 Invocation des sous-agents238 

239<h2 id="invoke-subagents">

240 Invoquer les sous-agents

232</h2>241</h2>

233 242 

234<h3 id="automatic-invocation">243<h3 id="automatic-invocation">


329 ```338 ```

330</CodeGroup>339</CodeGroup>

331 340 

332<h2 id="detecting-subagent-invocation">341<h2 id="detect-subagent-invocation">

333 Détection de l'invocation de sous-agents342 Détection de l'invocation de sous-agents

334</h2>343</h2>

335 344 

336Les sous-agents sont invoqués via l'outil Agent. Pour détecter quand un sous-agent est invoqué, vérifiez les blocs `tool_use` où `name` est `"Agent"`. Les messages provenant du contexte d'un sous-agent incluent un champ `parent_tool_use_id`.345Claude invoque les sous-agents via l'outil Agent. Pour détecter quand un sous-agent est invoqué, vérifiez les blocs `tool_use` où `name` est `"Agent"`. Les messages provenant du contexte d'un sous-agent incluent un champ `parent_tool_use_id`.

337 346 

338<Note>347<Note>

339 Le nom de l'outil a été renommé de `"Task"` à `"Agent"` dans Claude Code v2.1.63. Les versions actuelles du SDK émettent `"Agent"` dans les blocs `tool_use` mais utilisent toujours `"Task"` dans la liste des outils `system:init` et dans `result.permission_denials[].tool_name`. Vérifier les deux valeurs dans `block.name` assure la compatibilité entre les versions du SDK.348 Le nom de l'outil a été renommé de `"Task"` à `"Agent"` dans Claude Code v2.1.63. Les versions actuelles du SDK émettent `"Agent"` dans les blocs `tool_use` mais utilisent toujours `"Task"` dans la liste des outils `system:init` et dans `result.permission_denials[].tool_name`. Vérifier les deux valeurs dans `block.name` assure la compatibilité entre les versions du SDK.


422 ```431 ```

423</CodeGroup>432</CodeGroup>

424 433 

425<h2 id="resuming-subagents">434<h2 id="resume-subagents">

426 Reprise des sous-agents435 Reprise des sous-agents

427</h2>436</h2>

428 437 

429Les sous-agents peuvent être repris pour continuer là où ils se sont arrêtés. Les sous-agents repris conservent leur historique de conversation complet, y compris tous les appels d'outils précédents, les résultats et le raisonnement. Le sous-agent reprend exactement là où il s'est arrêté plutôt que de recommencer à zéro.438Vous pouvez reprendre un sous-agent pour continuer là où il s'est arrêté plutôt que de recommencer à zéro. Un sous-agent repris conserve son historique de conversation complet, y compris tous les appels d'outils précédents, les résultats et le raisonnement.

430 439 

431Lorsqu'un sous-agent se termine, le résultat de l'outil Agent inclut un bloc de texte contenant `agentId: <id>`. Les agents intégrés [`Explore` et `Plan`](/fr/sub-agents#built-in-subagents) sont ponctuels et ne retournent pas d'`agentId`, donc utilisez un agent personnalisé ou `general-purpose` lorsque vous avez besoin de reprendre. Pour reprendre un sous-agent par programmation :440Lorsqu'un sous-agent se termine, le résultat de l'outil Agent inclut un bloc de texte contenant `agentId: <id>`. Les agents intégrés [`Explore` et `Plan`](/fr/sub-agents#built-in-subagents) sont ponctuels et ne retournent pas d'`agentId`, donc utilisez un agent personnalisé ou `general-purpose` lorsque vous avez besoin de reprendre. Pour reprendre un sous-agent par programmation :

432 441 


568 577 

569* **Compaction de la conversation principale** : Lorsque la conversation principale se compacte, les transcriptions des sous-agents ne sont pas affectées. Elles sont stockées dans des fichiers séparés.578* **Compaction de la conversation principale** : Lorsque la conversation principale se compacte, les transcriptions des sous-agents ne sont pas affectées. Elles sont stockées dans des fichiers séparés.

570* **Persistance de la session** : Les transcriptions des sous-agents persistent au sein de leur session. Vous pouvez reprendre un sous-agent après avoir redémarré Claude Code en reprenant la même session.579* **Persistance de la session** : Les transcriptions des sous-agents persistent au sein de leur session. Vous pouvez reprendre un sous-agent après avoir redémarré Claude Code en reprenant la même session.

571* **Nettoyage automatique** : Les transcriptions sont nettoyées en fonction du paramètre `cleanupPeriodDays` (par défaut : 30 jours).580* **Nettoyage automatique** : Les transcriptions sont nettoyées en fonction du paramètre `cleanupPeriodDays`, qui est défini par défaut à 30 jours.

572 581 

573<h2 id="tool-restrictions-1">582<h2 id="tool-restrictions-1">

574 Restrictions d'outils583 Restrictions d'outils


662 671 

663Si Claude complète les tâches directement au lieu de déléguer à votre sous-agent :672Si Claude complète les tâches directement au lieu de déléguer à votre sous-agent :

664 673 

6651. **Vérifiez que les invocations d'Agent sont approuvées** : incluez `Agent` dans `allowedTools` pour approuver automatiquement les appels de sous-agent. Sans cela, les invocations d'Agent passent par votre callback `canUseTool` ou, en mode `dontAsk`, sont refusées674* **Vérifiez que les invocations d'Agent sont approuvées** : incluez `Agent` dans `allowedTools` pour approuver automatiquement les appels de sous-agent. Sans cela, les invocations d'Agent passent par votre callback `canUseTool` ou, en mode `dontAsk`, sont refusées

6662. **Utilisez des invites explicites** : mentionnez le sous-agent par son nom dans votre invite (par exemple, « Utilisez l'agent code-reviewer pour... »)675* **Utilisez des invites explicites** : mentionnez le sous-agent par son nom dans votre invite, par exemple « Utilisez l'agent code-reviewer pour... »

6673. **Écrivez une description claire** : expliquez exactement quand le sous-agent doit être utilisé pour que Claude puisse faire correspondre les tâches de manière appropriée676* **Écrivez une description claire** : expliquez exactement quand utiliser le sous-agent pour que Claude puisse faire correspondre les tâches de manière appropriée

668 677 

669<h3 id="filesystem-based-agents-not-loading">678<h3 id="filesystem-based-agents-not-loading">

670 Les agents basés sur le système de fichiers ne se chargent pas679 Les agents basés sur le système de fichiers ne se chargent pas

671</h3>680</h3>

672 681 

673Les agents définis dans `.claude/agents/` sont chargés au démarrage uniquement. Si vous créez un nouveau fichier d'agent pendant que Claude Code s'exécute, redémarrez la session pour le charger.682Claude Code surveille `~/.claude/agents/` et `.claude/agents/` et détecte un fichier d'agent nouveau ou modifié en quelques secondes, sans redémarrage nécessaire. Si une définition n'apparaît jamais, vérifiez ces causes :

683 

684* **Nouveau répertoire `agents`** : le moniteur couvre uniquement les répertoires qui existaient au démarrage de la session, donc le premier fichier dans un nouveau répertoire nécessite un redémarrage de session. C'est la cause la plus courante.

685* **Frontmatter invalide ou `name` en doublon** : vérifiez le YAML du fichier et si un agent existant utilise déjà le `name`.

686* **`--disable-slash-commands`** : les sessions démarrées avec ce flag ne surveillent pas ces répertoires et nécessitent toujours un redémarrage pour charger les nouveaux fichiers.

687* **Un agent programmatique avec le même nom** : les `agents` passés à `query()` remplacent un agent du système de fichiers avec le même nom.

688 

689Pour le format de fichier, consultez [comment écrire des fichiers de sous-agent](/fr/sub-agents#write-subagent-files).

674 690 

675<h3 id="windows-long-prompt-failures">691<h3 id="long-prompt-failures-on-windows">

676 Windows : échecs d'invite longue692 Échecs d'invite longue sur Windows

677</h3>693</h3>

678 694 

679Sur Windows, les sous-agents avec des invites très longues peuvent échouer en raison des limites de longueur de ligne de commande (8191 caractères). Gardez les invites concises ou utilisez des agents basés sur le système de fichiers pour les instructions complexes.695Sur Windows, les sous-agents avec des invites très longues peuvent échouer en raison de la limite de longueur de ligne de commande de 8191 caractères. Gardez les invites concises ou utilisez des agents basés sur le système de fichiers pour les instructions complexes.

680 696 

681<h2 id="related-documentation">697<h2 id="related-documentation">

682 Documentation connexe698 Documentation connexe

Details

9Le suivi des tâches fournit un moyen structuré de gérer les tâches et d'afficher la progression aux utilisateurs. Le SDK Claude Agent inclut une fonctionnalité de tâches intégrée qui aide à organiser les flux de travail complexes et à tenir les utilisateurs informés de la progression des tâches.9Le suivi des tâches fournit un moyen structuré de gérer les tâches et d'afficher la progression aux utilisateurs. Le SDK Claude Agent inclut une fonctionnalité de tâches intégrée qui aide à organiser les flux de travail complexes et à tenir les utilisateurs informés de la progression des tâches.

10 10 

11<Note>11<Note>

12 À partir du TypeScript Agent SDK 0.3.142 et Claude Code v2.1.142, les sessions utilisent les outils Task structurés `TaskCreate`, `TaskUpdate`, `TaskGet` et `TaskList` à la place de `TodoWrite`. Consultez [Migrer vers les outils Task](#migrate-to-task-tools) pour savoir comment le code de surveillance change. Les exemples de cette page définissent `CLAUDE_CODE_ENABLE_TASKS=0` pour continuer à afficher `TodoWrite` pour les sessions qui n'ont pas encore migré.12 À partir du TypeScript Agent SDK 0.3.142 et Claude Code v2.1.142, les sessions utilisent les outils Task structurés `TaskCreate`, `TaskUpdate`, `TaskGet` et `TaskList` à la place de `TodoWrite`. Le SDK Python obtient ce changement à partir de la CLI Claude Code qu'il lance, et non à partir de la version du package Python : le changement s'applique une fois que cette CLI — la copie fournie dans le package pip, ou celle vers laquelle vous pointez avec `cli_path` — est v2.1.142 ou ultérieure. Consultez [Migrer vers les outils Task](#migrate-to-task-tools) pour savoir comment le code de surveillance change. Les exemples de cette page définissent `CLAUDE_CODE_ENABLE_TASKS=0` pour continuer à afficher `TodoWrite` pour les sessions qui n'ont pas encore migré.

13</Note>13</Note>

14 14 

15<h3 id="todo-lifecycle">15<h3 id="todo-lifecycle">


27 Quand les tâches sont utilisées27 Quand les tâches sont utilisées

28</h3>28</h3>

29 29 

30Le SDK crée automatiquement des tâches pour :30Le SDK crée des tâches pour la plupart des travaux multi-étapes, tels que :

31 31 

32* **Les tâches complexes multi-étapes** nécessitant 3 actions distinctes ou plus32* **Les tâches complexes multi-étapes** nécessitant 3 actions distinctes ou plus

33* **Les listes de tâches fournies par l'utilisateur** lorsque plusieurs éléments sont mentionnés33* **Les listes de tâches fournies par l'utilisateur** lorsque plusieurs éléments sont mentionnés

34* **Les opérations non triviales** qui bénéficient du suivi de la progression34* **Les opérations non triviales** qui bénéficient du suivi de la progression

35* **Les demandes explicites** lorsque les utilisateurs demandent une organisation des tâches35* **Les demandes explicites** lorsque les utilisateurs demandent une organisation des tâches

36 36 

37Il peut ignorer les tâches pour les demandes très courtes ou à une seule étape.

38 

37<h2 id="examples">39<h2 id="examples">

38 Exemples40 Exemples

39</h2>41</h2>

40 42 

43Avant d'exécuter ces exemples, installez le Claude Agent SDK en suivant le [démarrage rapide](/fr/agent-sdk/quickstart).

44 

45Chaque exemple s'exécute jusqu'à ce que l'agent se termine et produise son message de résultat final. Si une session atteint d'abord sa limite de tours, ce message de résultat a le sous-type `error_max_turns`. Vérifiez `subtype` pour détecter cette fin.

46 

47Ces exemples utilisent des appels `query()` uniques. Après avoir produit un résultat `error_max_turns`, `query()` lève une erreur qui inclut `Reached maximum number of turns`. Chaque exemple enveloppe sa boucle dans un bloc try pour quitter proprement quand cela se produit.

48 

49Voir [Gérer le résultat](/fr/agent-sdk/agent-loop#handle-the-result) pour les sous-types de résultat.

50 

41<h3 id="monitoring-todo-changes">51<h3 id="monitoring-todo-changes">

42 Surveillance des modifications des tâches52 Surveillance des modifications des tâches

43</h3>53</h3>


46 ```typescript TypeScript theme={null}56 ```typescript TypeScript theme={null}

47 import { query } from "@anthropic-ai/claude-agent-sdk";57 import { query } from "@anthropic-ai/claude-agent-sdk";

48 58 

59 try {

49 for await (const message of query({60 for await (const message of query({

50 prompt: "Optimize my React app performance and track progress with todos",61 prompt: "Optimize my React app performance and track progress with todos",

51 // Re-enable TodoWrite, which this example monitors. Without it, the SDK uses62 // Re-enable TodoWrite, which this example monitors. Without it, the SDK uses


68 }79 }

69 }80 }

70 }81 }

82 } catch (error) {

83 // A single-shot query() throws after yielding an error result,

84 // such as when the maxTurns limit is hit.

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

86 }

71 ```87 ```

72 88 

73 ```python Python theme={null}89 ```python Python theme={null}

90 import asyncio

91 

74 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock92 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

75 93 

94 

95 async def main():

96 try:

76 async for message in query(97 async for message in query(

77 prompt="Optimize my React app performance and track progress with todos",98 prompt="Optimize my React app performance and track progress with todos",

78 # Re-enable TodoWrite, which this example monitors. Without it, the SDK uses99 # Re-enable TodoWrite, which this example monitors. Without it, the SDK uses


95 else "❌"116 else "❌"

96 )117 )

97 print(f"{i + 1}. {status} {todo['content']}")118 print(f"{i + 1}. {status} {todo['content']}")

119 except Exception as error:

120 # A single-shot query() raises after yielding an error result,

121 # such as when the max_turns limit is hit.

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

123 

124 

125 asyncio.run(main())

98 ```126 ```

99</CodeGroup>127</CodeGroup>

100 128 


128 }156 }

129 157 

130 async trackQuery(prompt: string) {158 async trackQuery(prompt: string) {

159 try {

131 for await (const message of query({160 for await (const message of query({

132 prompt,161 prompt,

133 // Re-enable TodoWrite, which this tracker watches for.162 // Re-enable TodoWrite, which this tracker watches for.


142 }171 }

143 }172 }

144 }173 }

174 } catch (error) {

175 // A single-shot query() throws after yielding an error result,

176 // such as when the maxTurns limit is hit.

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

178 }

145 }179 }

146 }180 }

147 181 


151 ```185 ```

152 186 

153 ```python Python theme={null}187 ```python Python theme={null}

188 import asyncio

189 

154 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock190 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

155 from typing import List, Dict191 from typing import List, Dict

156 192 


186 print(f"{i + 1}. {icon} {text}")222 print(f"{i + 1}. {icon} {text}")

187 223 

188 async def track_query(self, prompt: str):224 async def track_query(self, prompt: str):

225 try:

189 async for message in query(226 async for message in query(

190 prompt=prompt,227 prompt=prompt,

191 # Re-enable TodoWrite, which this tracker watches for.228 # Re-enable TodoWrite, which this tracker watches for.


196 if isinstance(block, ToolUseBlock) and block.name == "TodoWrite":233 if isinstance(block, ToolUseBlock) and block.name == "TodoWrite":

197 self.todos = block.input["todos"]234 self.todos = block.input["todos"]

198 self.display_progress()235 self.display_progress()

236 except Exception as error:

237 # A single-shot query() raises after yielding an error result,

238 # such as when the max_turns limit is hit.

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

199 240 

200 241 

201 # Usage242 # Usage

243 async def main():

202 tracker = TodoTracker()244 tracker = TodoTracker()

203 await tracker.track_query("Build a complete authentication system with todos")245 await tracker.track_query("Build a complete authentication system with todos")

246 

247 

248 asyncio.run(main())

204 ```249 ```

205</CodeGroup>250</CodeGroup>

206 251 


217| Forme d'élément : `{ content, status, activeForm }` | Entrée `TaskCreate` : `{ subject, description, activeForm?, metadata? }`. Entrée `TaskUpdate` : `{ taskId, status?, subject?, description?, activeForm?, addBlocks?, addBlockedBy?, owner?, metadata? }`. `status` est `"pending"`, `"in_progress"` ou `"completed"` ; définissez `status: "deleted"` pour supprimer |262| Forme d'élément : `{ content, status, activeForm }` | Entrée `TaskCreate` : `{ subject, description, activeForm?, metadata? }`. Entrée `TaskUpdate` : `{ taskId, status?, subject?, description?, activeForm?, addBlocks?, addBlockedBy?, owner?, metadata? }`. `status` est `"pending"`, `"in_progress"` ou `"completed"` ; définissez `status: "deleted"` pour supprimer |

218| Rendre `block.input.todos` directement | Accumuler les éléments entre les appels, ou lire un instantané à partir d'un résultat d'outil `TaskList` |263| Rendre `block.input.todos` directement | Accumuler les éléments entre les appels, ou lire un instantané à partir d'un résultat d'outil `TaskList` |

219 264 

220L'ID de tâche assigné ne se trouve pas dans l'entrée `TaskCreate`. Il revient dans le bloc `tool_result` correspondant sous la forme `{ task: { id, subject } }`, donc capturez-le à partir du bloc de résultat pour indexer votre carte. L'exemple suivant montre le changement minimal à la boucle [Surveillance des modifications des tâches](#monitoring-todo-changes). Pour rendre une liste complète, regardez un résultat d'outil `TaskList` dans le flux ou accumulez les résultats `TaskCreate` et les entrées `TaskUpdate` dans une carte.265L'ID de tâche assigné ne se trouve pas dans l'entrée `TaskCreate`. Il revient dans le bloc `tool_result` correspondant sous la forme `{ task: { id, subject } }`, donc capturez-le à partir du bloc de résultat pour indexer votre carte. L'exemple suivant montre le changement minimal à la boucle [Surveillance des modifications des tâches](#monitoring-todo-changes). Il lit uniquement les entrées `tool_use` et ignore la capture des ID à partir des blocs `tool_result`. Pour rendre une liste complète, regardez un résultat d'outil `TaskList` dans le flux ou accumulez les résultats `TaskCreate` et les entrées `TaskUpdate` dans une carte.

221 266 

222Le flux `tool_use` d'entrée est la forme brute que le modèle a émise. Claude Code répare certains noms de clés proches mais incorrects avant l'exécution, en mappant `id` ou `task_id` à `taskId` et `active_form` à `activeForm`, mais cette réparation n'est pas reflétée dans le flux. Lisez les champs d'entrée `TaskUpdate` de manière défensive, comme le font les exemples ci-dessous, plutôt que de supposer que le nom canonique est toujours présent.267Le flux `tool_use` d'entrée est la forme brute que le modèle a émise. Claude Code répare certains noms de clés proches mais incorrects avant l'exécution, en mappant `id` ou `task_id` à `taskId` et `active_form` à `activeForm`, mais cette réparation n'est pas reflétée dans le flux. Lisez les champs d'entrée `TaskUpdate` de manière défensive, comme le font les exemples ci-dessous, plutôt que de supposer que le nom canonique est toujours présent.

223 268 


225 ```typescript TypeScript theme={null}270 ```typescript TypeScript theme={null}

226 import { query } from "@anthropic-ai/claude-agent-sdk";271 import { query } from "@anthropic-ai/claude-agent-sdk";

227 272 

273 try {

228 for await (const message of query({274 for await (const message of query({

229 prompt: "Optimize my React app performance",275 prompt: "Optimize my React app performance and track progress with todos",

276 options: { maxTurns: 15 },

230 })) {277 })) {

231 if (message.type !== "assistant") continue;278 if (message.type !== "assistant") continue;

232 for (const block of message.message.content) {279 for (const block of message.message.content) {


246 }293 }

247 }294 }

248 }295 }

296 } catch (error) {

297 // A single-shot query() throws after yielding an error result.

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

299 }

249 ```300 ```

250 301 

251 ```python Python theme={null}302 ```python Python theme={null}

252 from claude_agent_sdk import query, AssistantMessage, ToolUseBlock303 import asyncio

253 304 

305 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

306 

307 async def main():

308 try:

254 async for message in query(309 async for message in query(

255 prompt="Optimize my React app performance",310 prompt="Optimize my React app performance and track progress with todos",

311 options=ClaudeAgentOptions(max_turns=15),

256 ):312 ):

257 if not isinstance(message, AssistantMessage):313 if not isinstance(message, AssistantMessage):

258 continue314 continue


269 )325 )

270 if task_id:326 if task_id:

271 print(f" {task_id} -> {block.input['status']}")327 print(f" {task_id} -> {block.input['status']}")

328 except Exception as error:

329 # A single-shot query() raises after yielding an error result.

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

331 

332 

333 asyncio.run(main())

272 ```334 ```

273</CodeGroup>335</CodeGroup>

274 336 

Details

551```551```

552 552 

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

554* `CLAUDE_CODE_MAX_RETRIES` : tentatives API maximales. Par défaut `10`, limité à `15`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire cas de temps mural est approximativement `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff. Pour les exécutions sans surveillance qui doivent attendre des pannes plus longues, définissez `CLAUDE_CODE_RETRY_WATCHDOG=1` pour réessayer les erreurs de capacité indéfiniment.554* `CLAUDE_CODE_MAX_RETRIES` : tentatives API maximales. Par défaut `10`, limité à `15`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire cas de temps mural est approximativement `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff. Pour les exécutions sans surveillance qui doivent attendre des pannes plus longues, définissez `CLAUDE_CODE_RETRY_WATCHDOG=1` : il réessaye les erreurs de capacité indéfiniment, et {/* min-version: 2.1.199 */}à partir de Claude Code v2.1.199 augmente la valeur par défaut pour les autres erreurs transitoires à `300` et supprime le plafond sur cette variable.

555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : chien de garde de blocage pour les sous-agents lancés avec `run_in_background`. Par défaut `600000`. Réinitialise à chaque événement de flux ; en cas de blocage, il abandonne le sous-agent, marque la tâche comme échouée et expose l'erreur au parent avec tout résultat partiel. Ne s'applique pas aux sous-agents synchrones.555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : chien de garde de blocage pour les sous-agents lancés avec `run_in_background`. Par défaut `600000`. Réinitialise à chaque événement de flux ; en cas de blocage, il abandonne le sous-agent, marque la tâche comme échouée et expose l'erreur au parent avec tout résultat partiel. Ne s'applique pas aux sous-agents synchrones.

556* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : 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. La requête abandonnée passe par le chemin de tentative normal.556* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : 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. La requête abandonnée passe par le chemin de tentative normal.

557 557 


901 decisionReason?: string;901 decisionReason?: string;

902 toolUseID: string;902 toolUseID: string;

903 agentID?: string;903 agentID?: string;

904 requestId: string;

904 }905 }

905) => Promise<PermissionResult>;906) => Promise<PermissionResult | null>;

906```907```

907 908 

908| Option | Type | Description |909| Option | Type | Description |


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

914| `toolUseID` | `string` | Identifiant unique pour cet appel d'outil spécifique dans le message assistant |915| `toolUseID` | `string` | Identifiant unique pour cet appel d'outil spécifique dans le message assistant |

915| `agentID` | `string` | Si exécuté dans un sous-agent, l'ID du sous-agent |916| `agentID` | `string` | Si exécuté dans un sous-agent, l'ID du sous-agent |

917| `requestId` | `string` | L'`request_id` du wrapper d'enveloppe `control_request`. Une `control_response` que votre application envoie en dehors du SDK, comme un POST HTTP signé, doit répéter cette valeur pour que le processus Claude Code puisse faire correspondre la réponse à la demande |

918 

919Le rappel résout normalement la demande en retournant un [`PermissionResult`](#permissionresult), que le SDK écrit en retour sur son transport en tant que `control_response`. Retournez `null` uniquement quand votre application a déjà envoyé la `control_response` pour cette demande sur son propre canal, en répétant `requestId` ; le SDK saute alors l'écriture de la réponse sur son transport. Retourner `null` dans tout autre cas laisse l'appel d'outil bloqué indéfiniment, car aucune `control_response` n'est jamais envoyée et les invites de permission ne s'écoulent pas.

920 

921L'option `requestId` et la valeur de retour `null` nécessitent Claude Code v2.1.199 ou ultérieur.

916 922 

917<h3 id="permissionresult">923<h3 id="permissionresult">

918 `PermissionResult`924 `PermissionResult`


2179};2185};

2180```2186```

2181 2187 

2182Arrête une tâche de fond en cours d'exécution ou un shell par ID.2188Arrête une tâche de fond en cours d'exécution ou un shell par ID. {/* min-version: 2.1.198 */}À partir de v2.1.198, `task_id` accepte également un coéquipier d'équipe d'agent ou un agent de fond nommé par ID d'agent ou nom.

2183 2189 

2184<h3 id="notebookedit">2190<h3 id="notebookedit">

2185 NotebookEdit2191 NotebookEdit


3788| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Configuration de binaire ripgrep personnalisée pour les environnements sandbox |3794| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Configuration de binaire ripgrep personnalisée pour les environnements sandbox |

3789 3795 

3790<Note>3796<Note>

3791 Le sandbox dépend du support de la plateforme et, sur Linux, d'outils comme `bubblewrap` et `socat`. Quand `enabled` est `true` et que le sandbox ne peut pas démarrer, `query()` signale un message `result` avec `subtype: "error_during_execution"` et la raison dans `errors`, puis s'arrête. Surveillez ce subtype plutôt que de vous attendre à ce que `query()` lève une exception avant de produire des messages.3797 Le sandbox dépend du support de la plateforme et, sur Linux, d'outils comme `bubblewrap` et `socat`. Quand `enabled` est `true` et que le sandbox ne peut pas démarrer, `query()` signale un message `result` avec `subtype: "error_during_execution"` et la raison dans `errors`. Pour un appel `query()` à message unique, le SDK lève une exception après avoir produit ce résultat d'erreur, donc enveloppez la boucle dans un bloc try pour continuer au-delà. Voir [Gérer le résultat](/fr/agent-sdk/agent-loop#handle-the-result) pour le contrat d'erreur.

3792 3798 

3793 Pour exécuter sans sandbox à la place, définissez `failIfUnavailable: false`.3799 Pour exécuter sans sandbox à la place, définissez `failIfUnavailable: false`.

3794</Note>3800</Note>


3800```typescript theme={null}3806```typescript theme={null}

3801import { query } from "@anthropic-ai/claude-agent-sdk";3807import { query } from "@anthropic-ai/claude-agent-sdk";

3802 3808 

3803for await (const message of query({3809try {

3810 for await (const message of query({

3804 prompt: "Build and test my project",3811 prompt: "Build and test my project",

3805 options: {3812 options: {

3806 sandbox: {3813 sandbox: {


3811 }3818 }

3812 }3819 }

3813 }3820 }

3814})) {3821 })) {

3815 if ("result" in message) console.log(message.result);3822 if ("result" in message) console.log(message.result);

3823 }

3824} catch (error) {

3825 // Un appel query() à message unique lève une exception après avoir produit un résultat d'erreur,

3826 // par exemple quand le sandbox ne peut pas démarrer (failIfUnavailable est par défaut true).

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

3816}3828}

3817```3829```

3818 3830 


3929<Warning>3941<Warning>

3930 Les commandes s'exécutant avec `dangerouslyDisableSandbox: true` ont un accès complet au système. Assurez-vous que votre gestionnaire `canUseTool` valide ces demandes avec soin.3942 Les commandes s'exécutant avec `dangerouslyDisableSandbox: true` ont un accès complet au système. Assurez-vous que votre gestionnaire `canUseTool` valide ces demandes avec soin.

3931 3943 

3932 Si `permissionMode` est défini sur `bypassPermissions` et `allowUnsandboxedCommands` est activé, le modèle peut exécuter de manière autonome des commandes en dehors du sandbox sans aucune invite d'approbation. Cette combinaison permet effectivement au modèle d'échapper à l'isolation du sandbox silencieusement.3944 Si `permissionMode` est défini sur `bypassPermissions` et `allowUnsandboxedCommands` est activé, le modèle peut exécuter de manière autonome des commandes en dehors du sandbox sans aucune invite d'approbation (une [règle `ask`](/fr/agent-sdk/permissions#how-permissions-are-evaluated) explicite en force toujours une). Cette combinaison permet effectivement au modèle d'échapper à l'isolation du sandbox silencieusement.

3933</Warning>3945</Warning>

3934 3946 

3935<h2 id="see-also">3947<h2 id="see-also">

agent-teams.md +12 −3

Details

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

90* **Échap** : interrompre le tour actuel du coéquipier sélectionné90* **Échap** : interrompre le tour actuel du coéquipier sélectionné

91 91 

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

93 

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

93 95 

94Si vous souhaitez que chaque coéquipier soit dans son propre volet divisé, consultez [Choisir un mode d'affichage](#choose-a-display-mode).96Si vous souhaitez que chaque coéquipier soit dans son propre volet divisé, consultez [Choisir un mode d'affichage](#choose-a-display-mode).

95 97 


174* **Mode in-process** : utilisez les touches fléchées haut et bas dans le panneau d'agent pour sélectionner un coéquipier, puis appuyez sur Entrée pour afficher sa session et tapez pour lui envoyer un message. Appuyez sur `x` sur un coéquipier sélectionné pour l'arrêter. Appuyez sur Ctrl+T pour basculer la liste des tâches.176* **Mode in-process** : utilisez les touches fléchées haut et bas dans le panneau d'agent pour sélectionner un coéquipier, puis appuyez sur Entrée pour afficher sa session et tapez pour lui envoyer un message. Appuyez sur `x` sur un coéquipier sélectionné pour l'arrêter. Appuyez sur Ctrl+T pour basculer la liste des tâches.

175* **Mode volets divisés** : cliquez dans le volet d'un coéquipier pour interagir directement avec sa session. Chaque coéquipier a une vue complète de son propre terminal.177* **Mode volets divisés** : cliquez dans le volet d'un coéquipier pour interagir directement avec sa session. Chaque coéquipier a une vue complète de son propre terminal.

176 178 

179Pendant que vous visualisez un coéquipier in-process, le texte brut et les [skills](/fr/skills) vont à ce coéquipier, mais les commandes intégrées s'exécutent toujours dans la session du chef.

180 

181Le modèle et le mode rapide d'un coéquipier sont fixés lorsqu'il est généré, donc `/model` et `/fast` ne changent que les paramètres du chef. {/* min-version: 2.1.199 */}À partir de la v2.1.199, taper l'une ou l'autre commande en visualisant un coéquipier affiche un avis indiquant que le changement s'applique au chef ; les versions antérieures l'appliquaient au chef sans indication. `/effort` s'applique toujours aux tours ultérieurs du coéquipier visualisé, car les coéquipiers suivent le [niveau d'effort](/fr/model-config#adjust-effort-level) du chef.

182 

177<h3 id="assign-and-claim-tasks">183<h3 id="assign-and-claim-tasks">

178 Assigner et revendiquer des tâches184 Assigner et revendiquer des tâches

179</h3>185</h3>


295**Comment les coéquipiers partagent les informations :**301**Comment les coéquipiers partagent les informations :**

296 302 

297* **Livraison automatique de messages** : lorsque les coéquipiers envoient des messages, ils sont livrés automatiquement aux destinataires. Le chef n'a pas besoin d'interroger les mises à jour.303* **Livraison automatique de messages** : lorsque les coéquipiers envoient des messages, ils sont livrés automatiquement aux destinataires. Le chef n'a pas besoin d'interroger les mises à jour.

298* **Notifications d'inactivité** : lorsqu'un coéquipier termine et s'arrête, il notifie automatiquement le chef.304* **Notifications d'inactivité** : lorsqu'un coéquipier termine et s'arrête, il notifie automatiquement le chef. {/* min-version: 2.1.198 */}À partir de la v2.1.198, un coéquipier dont le tour se termine sur une erreur API notifie le chef qu'il a échoué et inclut le texte d'erreur, au lieu d'apparaître comme terminé normalement.

299* **Liste de tâches partagée** : tous les agents peuvent voir l'état des tâches et revendiquer le travail disponible.305* **Liste de tâches partagée** : tous les agents peuvent voir l'état des tâches et revendiquer le travail disponible.

300* **Messagerie des coéquipiers** : envoyer un message à un coéquipier spécifique par son nom. Pour atteindre tout le monde, envoyez un message par destinataire.306* **Messagerie des coéquipiers** : envoyer un message à un coéquipier spécifique par son nom. Pour atteindre tout le monde, envoyez un message par destinataire.

301 307 


430Si les coéquipiers n'apparaissent pas après avoir demandé à Claude de créer une équipe :436Si les coéquipiers n'apparaissent pas après avoir demandé à Claude de créer une équipe :

431 437 

432* En mode in-process, les coéquipiers apparaissent dans le panneau d'agent sous l'entrée de prompt. Utilisez les touches fléchées haut et bas pour en sélectionner un, puis appuyez sur Entrée pour l'afficher.438* En mode in-process, les coéquipiers apparaissent dans le panneau d'agent sous l'entrée de prompt. Utilisez les touches fléchées haut et bas pour en sélectionner un, puis appuyez sur Entrée pour l'afficher.

433* Une ligne de coéquipier qui a disparu après être restée inactive a été masquée, non arrêtée. Les lignes inactives se masquent après 30 secondes et réapparaissent au prochain tour du coéquipier. Envoyez un message au coéquipier par son nom pour le ramener.439* Une ligne de coéquipier qui a disparu après être restée inactive a été masquée, non arrêtée. Les lignes inactives se masquent 30 secondes après que le panneau entier devienne inactif et réapparaissent au prochain tour du coéquipier. Quand plus de trois coéquipiers sont inactifs, leurs lignes excédentaires s'effondrent en une seule ligne `N idle agents` que Entrée développe. Envoyez un message au coéquipier par son nom pour ramener une ligne masquée.

434* Vérifiez que la tâche que vous avez donnée à Claude était suffisamment complexe pour justifier une équipe. Claude décide s'il faut générer des coéquipiers en fonction de la tâche.440* Vérifiez que la tâche que vous avez donnée à Claude était suffisamment complexe pour justifier une équipe. Claude décide s'il faut générer des coéquipiers en fonction de la tâche.

435* Si vous avez explicitement demandé des volets divisés, assurez-vous que tmux est installé et disponible dans votre PATH :441* Si vous avez explicitement demandé des volets divisés, assurez-vous que tmux est installé et disponible dans votre PATH :

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


453* Donnez-leur des instructions supplémentaires directement459* Donnez-leur des instructions supplémentaires directement

454* Générez un coéquipier de remplacement pour continuer le travail460* Générez un coéquipier de remplacement pour continuer le travail

455 461 

462{/* min-version: 2.1.198 */}À partir de la v2.1.198, un message du chef ou d'un autre coéquipier réveille un coéquipier in-process qui attend de réessayer une demande API échouée, il réessaie donc immédiatement au lieu d'attendre le délai de réessai complet.

463 

456<h3 id="lead-shuts-down-before-work-is-done">464<h3 id="lead-shuts-down-before-work-is-done">

457 Le chef s'arrête avant que le travail ne soit terminé465 Le chef s'arrête avant que le travail ne soit terminé

458</h3>466</h3>


481* **L'arrêt peut être lent** : les coéquipiers terminent leur demande actuelle ou appel d'outil avant de s'arrêter, ce qui peut prendre du temps.489* **L'arrêt peut être lent** : les coéquipiers terminent leur demande actuelle ou appel d'outil avant de s'arrêter, ce qui peut prendre du temps.

482* **Une équipe par session** : une session a exactement une équipe, limitée à cette session. Vous ne pouvez pas créer d'équipes nommées supplémentaires ou partager une équipe entre les sessions.490* **Une équipe par session** : une session a exactement une équipe, limitée à cette session. Vous ne pouvez pas créer d'équipes nommées supplémentaires ou partager une équipe entre les sessions.

483* **Pas d'équipes imbriquées** : les coéquipiers ne peuvent pas générer leurs propres coéquipiers. Seul le chef peut gérer l'équipe.491* **Pas d'équipes imbriquées** : les coéquipiers ne peuvent pas générer leurs propres coéquipiers. Seul le chef peut gérer l'équipe.

492* **Pas de sous-agents d'arrière-plan à partir de coéquipiers in-process** : les propres sous-agents d'un coéquipier in-process s'exécutent au premier plan. Demander un sous-agent d'arrière-plan, que ce soit avec `run_in_background` ou une définition de sous-agent qui définit `background: true`, retourne une erreur, car le travail d'arrière-plan d'un coéquipier ne peut pas survivre au processus du chef. Les sous-agents lancés à partir de la conversation principale suivent la [valeur par défaut d'arrière-plan](/fr/sub-agents#run-subagents-in-foreground-or-background).

484* **Le chef est fixe** : la session principale est le chef pour sa durée de vie. Vous ne pouvez pas promouvoir un coéquipier en chef ou transférer le leadership.493* **Le chef est fixe** : la session principale est le chef pour sa durée de vie. Vous ne pouvez pas promouvoir un coéquipier en chef ou transférer le leadership.

485* **Permissions définies au moment de la génération** : tous les coéquipiers commencent avec le mode de permission du chef. Vous pouvez modifier les modes de coéquipiers individuels après la génération, mais vous ne pouvez pas définir les modes par coéquipier au moment de la génération.494* **Permissions définies au moment de la génération** : tous les coéquipiers commencent avec le mode de permission du chef. Vous pouvez modifier les modes de coéquipiers individuels après la génération, mais vous ne pouvez pas définir les modes par coéquipier au moment de la génération.

486* **Les volets divisés nécessitent tmux ou iTerm2** : le mode in-process par défaut fonctionne dans n'importe quel terminal. Le mode volets divisés n'est pas supporté dans le terminal intégré de VS Code, Windows Terminal ou Ghostty.495* **Les volets divisés nécessitent tmux ou iTerm2** : le mode in-process par défaut fonctionne dans n'importe quel terminal. Le mode volets divisés n'est pas supporté dans le terminal intégré de VS Code, Windows Terminal ou Ghostty.

agent-view.md +59 −10

Details

27* [Démarrage rapide](#quick-start) : donnez à Claude une tâche à accomplir en arrière-plan, vérifiez-la et intervenez quand c'est nécessaire27* [Démarrage rapide](#quick-start) : donnez à Claude une tâche à accomplir en arrière-plan, vérifiez-la et intervenez quand c'est nécessaire

28* [Surveiller les sessions avec la vue agent](#monitor-sessions-with-agent-view), y compris les icônes d'état, l'aperçu et la réponse, l'attachement, l'organisation et les raccourcis clavier28* [Surveiller les sessions avec la vue agent](#monitor-sessions-with-agent-view), y compris les icônes d'état, l'aperçu et la réponse, l'attachement, l'organisation et les raccourcis clavier

29* [Lancer de nouveaux agents](#dispatch-new-agents) à partir de la vue agent, depuis l'intérieur d'une session, ou depuis votre shell29* [Lancer de nouveaux agents](#dispatch-new-agents) à partir de la vue agent, depuis l'intérieur d'une session, ou depuis votre shell

30* [Gérer les sessions depuis le shell](#manage-sessions-from-the-shell)30* [Gérer les sessions depuis le shell](#manage-sessions-from-the-shell) avec `claude agents`, `claude attach` et les commandes associées

31* [Comment les sessions en arrière-plan sont hébergées](#how-background-sessions-are-hosted) par le processus superviseur31* [Comment les sessions en arrière-plan sont hébergées](#how-background-sessions-are-hosted) par le processus superviseur

32 32 

33<h2 id="quick-start">33<h2 id="quick-start">


64 </Step>64 </Step>

65 65 

66 <Step title="Amener une session existante">66 <Step title="Amener une session existante">

67 Pour déplacer une session que vous avez déjà ouverte dans la vue agent, exécutez `/bg` à l'intérieur, ou appuyez sur `←` sur une invite vide pour la mettre en arrière-plan et ouvrir la vue agent en une seule étape. La session continue de s'exécuter et apparaît sous forme de ligne aux côtés de celles que vous avez dispatchées.67 Cette étape nécessite une session en cours d'exécution. Si vous avez suivi les étapes précédentes, vous n'en avez pas ouverte dans ce terminal, ouvrez donc une session `claude` régulière dans un autre terminal et envoyez-lui d'abord un message. Pour déplacer une session que vous avez déjà ouverte dans la vue agent, exécutez `/bg` à l'intérieur, ou appuyez sur `←` sur une invite vide pour la mettre en arrière-plan et ouvrir la vue agent en une seule étape. La session continue de s'exécuter et apparaît sous forme de ligne aux côtés de celles que vous avez dispatchées.

68 </Step>68 </Step>

69</Steps>69</Steps>

70 70 


76 76 

77Exécutez `claude agents` pour ouvrir la vue agent. Elle prend le contrôle du terminal complet et répertorie chaque session groupée par état, avec les sessions épinglées et celles qui ont besoin de vous en haut. Chaque ligne affiche le nom de la session, l'activité actuelle, et depuis combien de temps elle a changé pour la dernière fois.77Exécutez `claude agents` pour ouvrir la vue agent. Elle prend le contrôle du terminal complet et répertorie chaque session groupée par état, avec les sessions épinglées et celles qui ont besoin de vous en haut. Chaque ligne affiche le nom de la session, l'activité actuelle, et depuis combien de temps elle a changé pour la dernière fois.

78 78 

79Le nom est teinté avec la couleur définie par [`/color`](/fr/commands) dans cette session. À partir de la v2.1.199, la couleur se transporte quand vous [mettez une session en arrière-plan](#from-inside-a-session) avec `←` ou `/background`.

80 

79Par défaut, la liste affiche chaque session en arrière-plan que vous avez démarrée, dans tous vos projets. Une session travaillant dans un référentiel et une autre dans une worktree différente apparaissent toutes les deux ici, quel que soit le répertoire à partir duquel vous avez ouvert la vue agent. Pour limiter la liste à un projet, passez `--cwd` :81Par défaut, la liste affiche chaque session en arrière-plan que vous avez démarrée, dans tous vos projets. Une session travaillant dans un référentiel et une autre dans une worktree différente apparaissent toutes les deux ici, quel que soit le répertoire à partir duquel vous avez ouvert la vue agent. Pour limiter la liste à un projet, passez `--cwd` :

80 82 

81```bash theme={null}83```bash theme={null}


91 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m93 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m

92 94 

93Prêtes pour examen95Prêtes pour examen

94 ∙ jump physics Opened PR with collision fix PR #2048 2h96 ∙ jump physics Opened PR with collision fix #2048 2h

95 97 

96Nécessite une intervention98Nécessite une intervention

97 ✻ power-up design needs input: double jump or wall climb? 1m99 ✻ power-up design needs input: double jump or wall climb? 1m


129| `∙` | Le processus a quitté. Vous pouvez toujours apercevoir, répondre, ou vous attacher, et Claude redémarre à partir de là où il s'était arrêté |131| `∙` | Le processus a quitté. Vous pouvez toujours apercevoir, répondre, ou vous attacher, et Claude redémarre à partir de là où il s'était arrêté |

130| `✢` | Une session [`/loop`](/fr/scheduled-tasks) dormant entre les itérations. La ligne affiche son nombre d'exécutions et un compte à rebours |132| `✢` | Une session [`/loop`](/fr/scheduled-tasks) dormant entre les itérations. La ligne affiche son nombre d'exécutions et un compte à rebours |

131 133 

132L'étiquette `PR #N` qui peut apparaître au bord droit d'une ligne est le [statut de la pull request que la session a ouvert](#pull-request-status), pas une partie de l'icône d'état. Quand une session a ouvert plus d'une pull request, l'étiquette affiche un nombre à la place, comme `3 PRs`.134L'étiquette `#N` qui peut apparaître au bord droit d'une ligne est la [pull request que la session a ouvert](#pull-request-status), pas une partie de l'icône d'état.

133 135 

134Le titre de l'onglet du terminal affiche le nombre d'entrées en attente pendant que la vue agent est ouverte : `2 awaiting input · claude agents` quand les sessions ont besoin d'une intervention, ou `claude agents` quand ce n'est pas le cas.136Le titre de l'onglet du terminal affiche le nombre d'entrées en attente pendant que la vue agent est ouverte : `2 awaiting input · claude agents` quand les sessions ont besoin d'une intervention, ou `claude agents` quand ce n'est pas le cas.

135 137 

138À partir de la v2.1.198, pendant que la vue agent est ouverte, Claude Code envoie également une notification via votre [canal de notification de terminal configuré](/fr/terminal-config#get-a-terminal-bell-or-notification) quand une session en arrière-plan local commence à avoir besoin de votre intervention, se termine, ou échoue. Les sessions qui s'exécutent selon un calendrier, comme les sessions [`/loop`](/fr/scheduled-tasks), ne notifient que quand elles ont besoin de votre intervention. Les notifications utilisent le même paramètre [`preferredNotifChannel`](/fr/settings#available-settings) que le reste de Claude Code et déclenchent le hook [`Notification`](/fr/hooks#notification) avec le type `agent_needs_input` ou `agent_completed`.

139 

136Les sessions en arrière-plan n'ont besoin d'aucun terminal ouvert pour continuer à fonctionner. Un [processus superviseur](#the-supervisor-process) séparé les exécute, vous pouvez donc fermer la vue agent, fermer votre shell, ou démarrer une nouvelle session interactive et votre travail lancé continue.140Les sessions en arrière-plan n'ont besoin d'aucun terminal ouvert pour continuer à fonctionner. Un [processus superviseur](#the-supervisor-process) séparé les exécute, vous pouvez donc fermer la vue agent, fermer votre shell, ou démarrer une nouvelle session interactive et votre travail lancé continue.

137 141 

138L'état de la session persiste sur le disque via les mises à jour automatiques et les redémarrages du superviseur. Les sessions sont également préservées quand votre machine se met en veille. Leurs processus reprennent au réveil et le superviseur se reconnecte à eux au lieu de traiter l'écart de temps comme inactif. L'arrêt arrête toujours les sessions en cours ; consultez [Les sessions s'affichent comme échouées après l'arrêt](#sessions-show-as-failed-after-shutdown) pour savoir comment les récupérer.142L'état de la session persiste sur le disque via les mises à jour automatiques et les redémarrages du superviseur. Les sessions sont également préservées quand votre machine se met en veille. Leurs processus reprennent au réveil et le superviseur se reconnecte à eux au lieu de traiter l'écart de temps comme inactif. L'arrêt arrête toujours les sessions en cours ; consultez [Les sessions s'affichent comme échouées après l'arrêt](#sessions-show-as-failed-after-shutdown) pour savoir comment les récupérer.


151 Statut de la pull request155 Statut de la pull request

152</h3>156</h3>

153 157 

154Quand une session ouvre une pull request, une étiquette `PR #1234` apparaît au bord droit de la ligne, liée à la pull request dans les terminaux qui supportent les hyperliens. L'étiquette persiste quand vous envoyez un suivi à la session, donc la pull request reste visible pendant que la ligne revient à la progression en direct.158Quand une session ouvre une pull request, une étiquette `#1234` apparaît au bord droit de la ligne, liée à la pull request dans les terminaux qui supportent les hyperliens. L'étiquette persiste quand vous envoyez un suivi à la session, donc la pull request reste visible pendant que la ligne revient à la progression en direct. Les sessions en arrière-plan qui ont isolé leurs modifications dans une worktree ouvrent elles-mêmes ces pull requests ; [Comment les modifications de fichiers sont isolées](#how-file-edits-are-isolated) couvre quand cela se produit et ce qu'une session ne fait jamais sans demander.

155 159 

156Quand une session a ouvert plus d'une pull request, l'étiquette affiche un nombre à la place, comme `3 PRs`, colorée par la pull request ouverte qui a le plus besoin d'attention. Ouvrez le [panneau d'aperçu](#peek-and-reply) pour les voir toutes.160Quand une session a ouvert plus d'une pull request, l'étiquette affiche un nombre à la place, comme `3 PRs`, colorée par la pull request ouverte qui a le plus besoin d'attention. Ouvrez le [panneau d'aperçu](#peek-and-reply) pour les voir toutes.

157 161 


190 194 

191Les sessions attachées s'affichent toujours en [mode plein écran](/fr/fullscreen), quel que soit votre paramètre `tui`, car une session en arrière-plan n'a pas d'historique de terminal à ajouter. Faites défiler avec `PgUp`, `PgDn`, ou la molette de la souris, et appuyez sur `Ctrl+O` pour le mode transcription. Le défilement natif de votre terminal et le mode copie tmux affichent uniquement la fenêtre d'affichage actuelle, comme lorsque vous exécutez n'importe quelle application plein écran.195Les sessions attachées s'affichent toujours en [mode plein écran](/fr/fullscreen), quel que soit votre paramètre `tui`, car une session en arrière-plan n'a pas d'historique de terminal à ajouter. Faites défiler avec `PgUp`, `PgDn`, ou la molette de la souris, et appuyez sur `Ctrl+O` pour le mode transcription. Le défilement natif de votre terminal et le mode copie tmux affichent uniquement la fenêtre d'affichage actuelle, comme lorsque vous exécutez n'importe quelle application plein écran.

192 196 

193Appuyez sur `←` sur une invite vide pour vous détacher et revenir à la vue agent. Si une boîte de dialogue a le focus et ne répond pas à `←`, appuyez sur `Ctrl+Z` pour vous détacher immédiatement.197À partir de la v2.1.198, appuyez sur `←` sur une invite vide, ou exécutez `/exit`, pour vous détacher et revenir à la vue agent. À partir de la v2.1.198, cela fonctionne de la même manière que vous ayez ouvert la session à partir de la vue agent ou avec `claude attach <id>` à partir de votre shell.

198 

199`Ctrl+Z` se détache également mais revient à l'endroit où vous avez commencé à la place : la vue agent si vous vous êtes attaché à partir de là, ou votre shell si vous avez exécuté `claude attach`. Utilisez `Ctrl+Z` quand une boîte de dialogue a le focus et ne répond pas à `←`.

194 200 

195`Ctrl+C` conserve son comportement d'interruption standard pendant que vous êtes attaché : il annule une réponse en cours d'exécution ou une commande shell `!` plutôt que de vous détacher. Appuyer sur `Ctrl+C` deux fois sur une invite vide vous détache, comme dans n'importe quelle session.201`Ctrl+C` conserve son comportement d'interruption standard pendant que vous êtes attaché : il annule une réponse en cours d'exécution ou une commande shell `!` plutôt que de vous détacher. Appuyer sur `Ctrl+C` deux fois sur une invite vide vous détache, comme dans n'importe quelle session.

196 202 


289| `#<number>` ou une URL de pull request | Si une session travaille déjà sur cette PR, sélectionnez-la au lieu de lancer |295| `#<number>` ou une URL de pull request | Si une session travaille déjà sur cette PR, sélectionnez-la au lieu de lancer |

290| `Shift+Entrée` | Lancer et s'attacher immédiatement à la nouvelle session |296| `Shift+Entrée` | Lancer et s'attacher immédiatement à la nouvelle session |

291 297 

292Un petit ensemble de commandes s'exécutent dans la vue agent elle-même au lieu de lancer : `/exit` et `/quit` ferment la vue agent, `/logout` vous déconnecte, et `/model` définit le [modèle de lancement](#set-the-model). Les skills, vos propres commandes, et les built-ins qui développent les invites comme `/init` sont envoyés à une nouvelle session en arrière-plan comme leur première invite. Les autres commandes built-in affichent plutôt un indice `attach to a session to run it`.298Un petit ensemble de commandes s'exécutent dans la vue agent elle-même au lieu de lancer :

299 

300* `/exit` et `/quit` ferment la vue agent

301* `/logout` vous déconnecte

302* `/model` définit le [modèle de lancement](#set-the-model)

303* {/* min-version: 2.1.198 */}À partir de la v2.1.198, `/login` ouvre la boîte de dialogue de connexion pour que vous puissiez vous connecter à nouveau sans vous attacher à une session

304 

305Les skills, vos propres commandes, et les built-ins qui développent les invites comme `/init` sont envoyés à une nouvelle session en arrière-plan comme leur première invite. Les autres commandes built-in affichent plutôt un indice `attach to a session to run it`.

293 306 

294Empaqueter une tâche récurrente comme un [skill](/fr/skills) vous permet de démarrer le même workflow à partir de la vue agent à plusieurs reprises sans retaper l'invite.307Empaqueter une tâche récurrente comme un [skill](/fr/skills) vous permet de démarrer le même workflow à partir de la vue agent à plusieurs reprises sans retaper l'invite.

295 308 


313 326 

314Exécutez `/background` ou son alias `/bg` pour déplacer la conversation actuelle dans une session en arrière-plan. Passez une invite comme `/bg run the test suite and fix any failures` pour donner une instruction supplémentaire d'abord. Si Claude répond quand vous exécutez `/bg`, la réponse continue dans la session en arrière-plan.327Exécutez `/background` ou son alias `/bg` pour déplacer la conversation actuelle dans une session en arrière-plan. Passez une invite comme `/bg run the test suite and fix any failures` pour donner une instruction supplémentaire d'abord. Si Claude répond quand vous exécutez `/bg`, la réponse continue dans la session en arrière-plan.

315 328 

329Quitter une session interactive qui a encore du travail en arrière-plan en cours d'exécution, comme des sous-agents, des commandes shell en arrière-plan, des workflows, ou des [monitors](/fr/tools-reference#monitor-tool), affiche une boîte de dialogue `Background work is running` au lieu de quitter immédiatement. {/* min-version: 2.1.198 */}À partir de la v2.1.198, la boîte de dialogue propose `Move to background and exit` aux côtés de `Exit anyway` et `Stay`. La choisir déplace la session en arrière-plan de la même manière que `/background` le fait, puis vous ramène à votre shell, donc le travail qui peut se poursuivre continue de s'exécuter et la session apparaît dans la vue agent. L'option n'est pas affichée quand la vue agent est [désactivée](#turn-off-agent-view).

330 

316Mettre en arrière-plan à partir d'une session interactive démarre un processus nouveau qui reprend à partir de la conversation enregistrée, et le travail en cours se transfère à celui-ci : les commandes shell en arrière-plan en cours d'exécution, les sous-agents mis en arrière-plan, les workflows dynamiques, et les tâches planifiées que vous avez créées avec [`/loop`](/fr/scheduled-tasks) se transfèrent à la session en arrière-plan et continuent de s'exécuter là. Un sous-agent se déplace avec tout ce qu'il a démarré, donc il se transfère uniquement quand tout ce travail peut se transférer aussi, y compris sur Windows. Pour arrêter le travail en cours au lieu de le transférer, définissez la variable d'environnement [`CLAUDE_DISABLE_ADOPT=1`](/fr/env-vars#variables) ; Claude Code vous demande alors de confirmer avant de mettre en arrière-plan.331Mettre en arrière-plan à partir d'une session interactive démarre un processus nouveau qui reprend à partir de la conversation enregistrée, et le travail en cours se transfère à celui-ci : les commandes shell en arrière-plan en cours d'exécution, les sous-agents mis en arrière-plan, les workflows dynamiques, et les tâches planifiées que vous avez créées avec [`/loop`](/fr/scheduled-tasks) se transfèrent à la session en arrière-plan et continuent de s'exécuter là. Un sous-agent se déplace avec tout ce qu'il a démarré, donc il se transfère uniquement quand tout ce travail peut se transférer aussi, y compris sur Windows. Pour arrêter le travail en cours au lieu de le transférer, définissez la variable d'environnement [`CLAUDE_DISABLE_ADOPT=1`](/fr/env-vars#variables) ; Claude Code vous demande alors de confirmer avant de mettre en arrière-plan.

317 332 

318Le travail qui ne peut pas se transférer, comme un [monitor](/fr/tools-reference#monitor-tool) en cours d'exécution, est arrêté. Un sous-agent mis en arrière-plan qui possède un monitor est arrêté avec lui. Quand un tel travail s'exécute, Claude Code affiche une boîte de dialogue `Background this session?` pour que vous puissiez confirmer avant qu'il soit arrêté.333Le travail qui ne peut pas se transférer, comme un [monitor](/fr/tools-reference#monitor-tool) en cours d'exécution, est arrêté. Un sous-agent mis en arrière-plan qui possède un monitor est arrêté avec lui. Quand un tel travail s'exécute, Claude Code affiche une boîte de dialogue `Background this session?` pour que vous puissiez confirmer avant qu'il soit arrêté.


342claude --bg "investigate the flaky SettingsChangeDetector test"357claude --bg "investigate the flaky SettingsChangeDetector test"

343```358```

344 359 

360L'invite est l'argument positionnel, pas une valeur `-p`. {/* min-version: 2.1.198 */}À partir de la v2.1.198, combiner `--bg` avec `-p` ou `--print` est rejeté avec une erreur avant que toute session soit créée, car `--print` ne démarre jamais la session interactive à laquelle `claude agents` s'attache.

361 

345Pour exécuter un sous-agent spécifique comme l'agent principal de la session, combinez `--bg` avec `--agent` :362Pour exécuter un sous-agent spécifique comme l'agent principal de la session, combinez `--bg` avec `--agent` :

346 363 

347```bash theme={null}364```bash theme={null}


414 431 

415Un [sous-agent](/fr/sub-agents) que la session en arrière-plan lance hérite du répertoire de travail de la session, donc ses modifications de fichiers se retrouvent dans la worktree de la session plutôt que dans votre copie de travail. Pour donner à un sous-agent sa propre worktree séparée à la place, définissez [`isolation: worktree`](/fr/sub-agents#supported-frontmatter-fields) dans son frontmatter ou passez `isolation: "worktree"` lors de son lancement.432Un [sous-agent](/fr/sub-agents) que la session en arrière-plan lance hérite du répertoire de travail de la session, donc ses modifications de fichiers se retrouvent dans la worktree de la session plutôt que dans votre copie de travail. Pour donner à un sous-agent sa propre worktree séparée à la place, définissez [`isolation: worktree`](/fr/sub-agents#supported-frontmatter-fields) dans son frontmatter ou passez `isolation: "worktree"` lors de son lancement.

416 433 

434À partir de la v2.1.198, une session en arrière-plan qui a isolé ses modifications de code dans une worktree valide également, pousse sa propre branche, et ouvre une demande de tirage en brouillon sans s'arrêter pour demander. L'étiquette [`#N`](#pull-request-status) apparaît sur sa ligne quand la demande de tirage s'ouvre. Elle ne pousse jamais vers `main` ou `master`, ne force jamais les poussées ou les fusions, et elle ignore la demande de tirage quand vous lui avez dit de ne pas en ouvrir une ou que le référentiel n'a pas de remote.

435 

436Une session modifiant un checkout qu'elle n'a pas isolée elle-même demande toujours avant de valider ou de changer de branche. Cela s'applique quand l'isolation est définie sur `"none"`, quand le déplacement de la worktree a échoué, ou quand la session a démarré à l'intérieur d'une worktree qui existait déjà.

437 

417<h3 id="set-the-model">438<h3 id="set-the-model">

418 Définir le modèle439 Définir le modèle

419</h3>440</h3>


529 550 

530Une fois qu'une session se termine et reste non attachée pendant environ une heure, le superviseur arrête son processus pour libérer des ressources. Une session que vous avez [épinglée](#organize-the-list) avec `Ctrl+T` est exemptée et garde son processus en cours d'exécution pendant qu'elle est inactive. La transcription et l'état restent sur le disque de toute façon, et la prochaine fois que vous vous attachez, apercevez, ou répondez à une session arrêtée, le superviseur démarre un processus frais à partir de là où il s'était arrêté. Quand chaque session s'est terminée et qu'aucun terminal n'est connecté, le superviseur lui-même quitte et redémarre la prochaine fois que vous en avez besoin.551Une fois qu'une session se termine et reste non attachée pendant environ une heure, le superviseur arrête son processus pour libérer des ressources. Une session que vous avez [épinglée](#organize-the-list) avec `Ctrl+T` est exemptée et garde son processus en cours d'exécution pendant qu'elle est inactive. La transcription et l'état restent sur le disque de toute façon, et la prochaine fois que vous vous attachez, apercevez, ou répondez à une session arrêtée, le superviseur démarre un processus frais à partir de là où il s'était arrêté. Quand chaque session s'est terminée et qu'aucun terminal n'est connecté, le superviseur lui-même quitte et redémarre la prochaine fois que vous en avez besoin.

531 552 

532Les commandes shell en arrière-plan et les workflows dynamiques que la session a démarrés continuent de s'exécuter quand son processus est arrêté, redémarré ou mis à jour, y compris sur Windows. Le processus suivant démarré pour cette session les reprend, une commande shell qui s'est terminée entre-temps est signalée comme terminée avec sa sortie, et un workflow reprend à partir de là où il s'était arrêté. Les commandes shell démarrées par un sous-agent et les [monitors](/fr/tools-reference#monitor-tool) en cours d'exécution s'arrêtent toujours avec le processus, et supprimer la session arrête tout ce qu'elle a confié. Pour arrêter les commandes shell en arrière-plan et les workflows avec le processus aussi, définissez la variable d'environnement [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/fr/env-vars#variables) à `1`.553Le travail en arrière-plan que la session elle-même a démarré au niveau supérieur est confié quand son processus est arrêté, redémarré ou mis à jour, y compris sur Windows. Le processus suivant démarré pour cette session reprend le travail :

554 

555* Une commande shell en arrière-plan qui s'est terminée entre-temps est signalée comme terminée avec sa sortie

556* Un workflow dynamique reprend à partir de là où il s'était arrêté

557* Un [sous-agent en arrière-plan](/fr/sub-agents#run-subagents-in-foreground-or-background) reprend à partir de sa propre transcription

558 

559{/* min-version: 2.1.198 */}À partir de v2.1.198, la remise couvre tous les trois. Avant v2.1.198, elle couvrait uniquement les commandes shell et les workflows, donc un sous-agent en arrière-plan s'arrêtait avec le processus et était signalé comme échoué au prochain réveil.

560 

561Le travail dont l'état vit uniquement à l'intérieur du processus lui-même s'arrête avec lui au lieu d'être confié. C'est les commandes shell qu'un sous-agent a démarrées, que le sous-agent repris peut redémarrer, et les [monitors](/fr/tools-reference#monitor-tool) en cours d'exécution, dont le flux d'événements ne peut pas être déplacé vers un autre processus.

562 

563Supprimer la session arrête tout ce qu'elle a confié. Pour arrêter tout le travail en arrière-plan de la session avec le processus au lieu de le confier, définissez la variable d'environnement [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/fr/env-vars#variables) à `1`.

533 564 

534Si une session redémarrée revient en affichant uniquement son invite d'origine parce que Claude Code a mal lu sa transcription comme vide, la transcription de conversation est renommée avec un suffixe `.orphaned-` au lieu d'être supprimée, donc elle reste sur votre machine.565Si une session redémarrée revient en affichant uniquement son invite d'origine parce que Claude Code a mal lu sa transcription comme vide, la transcription de conversation est renommée avec un suffixe `.orphaned-` au lieu d'être supprimée, donc elle reste sur votre machine.

535 566 


606 637 

607La mise en veille seule ne cause pas cela. Les sessions sont préservées lors de la mise en veille et le superviseur se reconnecte à elles au réveil.638La mise en veille seule ne cause pas cela. Les sessions sont préservées lors de la mise en veille et le superviseur se reconnecte à elles au réveil.

608 639 

640<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">

641 Une session échoue avant de démarrer avec une note « possibly low memory »

642</h3>

643 

644À partir de la v2.1.199, quand le processus d'une session en arrière-plan se termine avant de finir de démarrer et que l'hôte manque de mémoire, le statut de la ligne nomme la sortie et ajoute `possibly low memory — free some up and retry`. Les versions antérieures affichaient uniquement la raison de sortie brute pour cet échec.

645 

646La note est une hypothèse, pas une cause confirmée. Claude Code l'ajoute uniquement quand le processus s'est terminé silencieusement, sans écrire d'erreur et sans être arrêté par un signal, et que l'hôte a signalé une mémoire faible à ce moment. Quand le processus a écrit une erreur avant de se terminer, la ligne affiche cette erreur à la place.

647 

648Libérez de la mémoire sur la machine, puis attachez-vous, apercevez, ou répondez à la ligne et le superviseur démarre un processus frais pour la session. Quand la mémoire reste faible, le superviseur [arrête également les sessions inactives](#the-supervisor-process) pour libérer des ressources de lui-même.

649 

609<h3 id="agent-view-says-the-background-service-did-not-respond">650<h3 id="agent-view-says-the-background-service-did-not-respond">

610 La vue agent indique que le service en arrière-plan n'a pas répondu651 La vue agent indique que le service en arrière-plan n'a pas répondu

611</h3>652</h3>


636 677 

637Voir la [référence d'erreur](/fr/errors#could-not-resolve-authentication-method) pour la liste complète des causes et des correctifs.678Voir la [référence d'erreur](/fr/errors#could-not-resolve-authentication-method) pour la liste complète des causes et des correctifs.

638 679 

639<h3 id="background-sessions-cannot-read-desktop-documents-or-downloads-on-macos">680<h3 id="background-sessions-can’t-read-desktop-documents-or-downloads-on-macos">

640 Les sessions en arrière-plan ne peuvent pas lire Desktop, Documents ou Downloads sur macOS681 Les sessions en arrière-plan ne peuvent pas lire Desktop, Documents ou Downloads sur macOS

641</h3>682</h3>

642 683 


644 685 

645Avec l'installateur natif, l'entrée apparaît comme Claude Code et l'autorisation persiste lors des mises à jour. Avec d'autres méthodes d'installation comme Homebrew ou npm, l'entrée affiche le chemin du binaire et peut avoir besoin d'être accordée à nouveau après la mise à jour.686Avec l'installateur natif, l'entrée apparaît comme Claude Code et l'autorisation persiste lors des mises à jour. Avec d'autres méthodes d'installation comme Homebrew ou npm, l'entrée affiche le chemin du binaire et peut avoir besoin d'être accordée à nouveau après la mise à jour.

646 687 

688<h3 id="background-sessions-can’t-reach-local-network-hosts-on-macos">

689 Les sessions en arrière-plan ne peuvent pas atteindre les hôtes du réseau local sur macOS

690</h3>

691 

692Sur macOS 15 et versions ultérieures, le système bloque un processus d'atteindre les appareils sur votre réseau local jusqu'à ce que vous accordiez la permission Réseau local. Avant la v2.1.198, l'hôte de session en arrière-plan n'a jamais demandé cette permission, donc les commandes ciblant une adresse LAN échouaient avec `connect: no route to host` même si la même commande fonctionnait dans un terminal de premier plan. {/* min-version: 2.1.198 */}À partir de la v2.1.198, la première commande dans une session en arrière-plan qui se connecte à une adresse de réseau local déclenche l'invite de permission Réseau local de macOS pour Claude Code. Accordez-la une fois et ces commandes atteindront les hôtes LAN de la même manière qu'ils le font dans un terminal de premier plan.

693 

647<h3 id="a-session-is-slow-to-respond-after-attaching">694<h3 id="a-session-is-slow-to-respond-after-attaching">

648 Une session est lente à répondre après l'attachement695 Une session est lente à répondre après l'attachement

649</h3>696</h3>


683La vue agent a évolué rapidement pendant l'aperçu de recherche. Si vous êtes sur une version plus ancienne de Claude Code, certains comportements sur cette page peuvent différer ; en particulier, `claude agents` rejette les drapeaux qu'il ne supporte pas encore avec une erreur `unknown option`. Le tableau ci-dessous répertorie quand chaque drapeau et comportement a été ajouté.730La vue agent a évolué rapidement pendant l'aperçu de recherche. Si vous êtes sur une version plus ancienne de Claude Code, certains comportements sur cette page peuvent différer ; en particulier, `claude agents` rejette les drapeaux qu'il ne supporte pas encore avec une erreur `unknown option`. Le tableau ci-dessous répertorie quand chaque drapeau et comportement a été ajouté.

684 731 

685| Version | Changement |732| Version | Changement |

686| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |733| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

734| v2.1.199 | {/* min-version: 2.1.199 */}Une session en arrière-plan dont le processus se termine avant de finir de démarrer sur un hôte à faible mémoire affiche `possibly low memory — free some up and retry` dans le statut de sa ligne au lieu de seulement la raison de sortie brute. Mettre en arrière-plan une session avec `←` ou `/background` transfère son `/color` vers la nouvelle ligne. |

735| v2.1.198 | {/* min-version: 2.1.198 */}La vue agent envoie une notification via `preferredNotifChannel` quand une session en arrière-plan a besoin d'une entrée, se termine ou échoue, et déclenche le hook `Notification` avec le type `agent_needs_input` ou `agent_completed`. `←` et `/exit` à l'intérieur de `claude attach <id>` reviennent à la vue agent au lieu de quitter vers le shell ; `Ctrl+Z` revient au shell. Une session en arrière-plan qui a isolé son travail dans un worktree valide, pousse sa propre branche isolée, jamais `main` ou `master`, et ouvre une demande de tirage en brouillon quand elle se termine au lieu de demander d'abord. `/login` s'exécute dans la vue agent et ouvre la boîte de dialogue de connexion. La boîte de dialogue de sortie `Background work is running` propose `Move to background and exit`. Le transfert de sortie couvre également les sous-agents en arrière-plan, qui reprennent à partir de leur transcription à la prochaine activation au lieu d'être signalés comme échoués. `claude --bg` combiné avec `-p` ou `--print` est rejeté avec une erreur. |

687| v2.1.196 | {/* min-version: 2.1.196 */}Une seule pression sur `←` met en arrière-plan une session au premier plan ; les versions antérieures nécessitaient deux pressions, avec un indice de pied de page et une confirmation. `--dangerously-skip-permissions` passé à `claude agents` affiche la clause de non-responsabilité du contournement au lieu d'être silencieusement supprimé. Les sessions interactives que vous n'avez jamais nommées portent un nom par défaut comme `my-app-3f` dans les listes de sessions et `claude agents --json`. Les commandes shell en arrière-plan et les workflows dynamiques survivent à l'arrêt, au redémarrage ou à la mise à jour du processus de la session, y compris sur Windows ; définissez `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` pour désactiver le transfert. Une transcription mal lue comme vide au redémarrage est renommée avec un suffixe `.orphaned-` au lieu d'être supprimée. |736| v2.1.196 | {/* min-version: 2.1.196 */}Une seule pression sur `←` met en arrière-plan une session au premier plan ; les versions antérieures nécessitaient deux pressions, avec un indice de pied de page et une confirmation. `--dangerously-skip-permissions` passé à `claude agents` affiche la clause de non-responsabilité du contournement au lieu d'être silencieusement supprimé. Les sessions interactives que vous n'avez jamais nommées portent un nom par défaut comme `my-app-3f` dans les listes de sessions et `claude agents --json`. Les commandes shell en arrière-plan et les workflows dynamiques survivent à l'arrêt, au redémarrage ou à la mise à jour du processus de la session, y compris sur Windows ; définissez `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` pour désactiver le transfert. Une transcription mal lue comme vide au redémarrage est renommée avec un suffixe `.orphaned-` au lieu d'être supprimée. |

688| v2.1.195 | {/* min-version: 2.1.195 */}Le travail en cours se transfère aussi quand vous mettez en arrière-plan une session sur Windows ; définissez `CLAUDE_DISABLE_ADOPT=1` pour l'arrêter à la place. Le groupe `Completed` remplit l'espace vertical restant et l'en-tête se compacte sur les terminaux courts. Une version plus ancienne de Claude Code ne supprime plus les champs `state.json` plus récents des sessions ou ne cache plus ces sessions de `claude agents`. S'attacher à une session arrêtée bascule immédiatement au lieu d'afficher un écran vide pendant jusqu'à cinq secondes. Un superviseur qui ne peut pas accepter les connexions quitte et libère son verrou de lui-même. |737| v2.1.195 | {/* min-version: 2.1.195 */}Le travail en cours se transfère aussi quand vous mettez en arrière-plan une session sur Windows ; définissez `CLAUDE_DISABLE_ADOPT=1` pour l'arrêter à la place. Le groupe `Completed` remplit l'espace vertical restant et l'en-tête se compacte sur les terminaux courts. Une version plus ancienne de Claude Code ne supprime plus les champs `state.json` plus récents des sessions ou ne cache plus ces sessions de `claude agents`. S'attacher à une session arrêtée bascule immédiatement au lieu d'afficher un écran vide pendant jusqu'à cinq secondes. Un superviseur qui ne peut pas accepter les connexions quitte et libère son verrou de lui-même. |

689| v2.1.174 | {/* min-version: 2.1.174 */}Les sessions en arrière-plan n'héritent plus des variables de point de terminaison de passerelle comme `ANTHROPIC_BASE_URL` du shell de lancement du superviseur ; le superviseur fournit un nouvel instantané d'identifiants aux workers préchauffés, corrigeant les erreurs `Could not resolve authentication method` spurieuses. |738| v2.1.174 | {/* min-version: 2.1.174 */}Les sessions en arrière-plan n'héritent plus des variables de point de terminaison de passerelle comme `ANTHROPIC_BASE_URL` du shell de lancement du superviseur ; le superviseur fournit un nouvel instantané d'identifiants aux workers préchauffés, corrigeant les erreurs `Could not resolve authentication method` spurieuses. |

agents.md +1 −1

Details

53La commande pour vérifier le travail en cours dépend de l'approche que vous avez utilisée :53La commande pour vérifier le travail en cours dépend de l'approche que vous avez utilisée :

54 54 

55* Pour les sessions en arrière-plan, `claude agents` ouvre [la vue agent](/fr/agent-view) : un écran montrant chaque session, son état et lesquelles ont besoin de votre entrée.55* Pour les sessions en arrière-plan, `claude agents` ouvre [la vue agent](/fr/agent-view) : un écran montrant chaque session, son état et lesquelles ont besoin de votre entrée.

56* Pour les sous-agents dans la session actuelle, `/agents` ouvre un panneau avec un onglet **Running** listant les sous-agents actifs et un onglet **Library** vous [créez et modifiez des sous-agents personnalisés](/fr/sub-agents#use-the-%2Fagents-command). Malgré le nom similaire, c'est séparé de `claude agents`.56* Pour les sous-agents dans la session actuelle, les sous-agents nommés en arrière-plan apparaissent dans la saisie semi-automatique @-mention avec leur statut. {/* min-version: 2.1.198 */}À partir de la v2.1.198, `/agents` n'ouvre plus un panneau ; il affiche un avis pointant vers les emplacements des fichiers de sous-agents. Pour [créer et modifier des sous-agents personnalisés](/fr/sub-agents#configure-subagents), demandez à Claude ou modifiez les fichiers directement. Malgré le nom similaire, `/agents` est séparé de `claude agents`.

57* Pour tout ce qui s'exécute en arrière-plan de la session actuelle, `/tasks` liste chaque élément et vous permet de le vérifier, de vous y attacher ou de l'arrêter.57* Pour tout ce qui s'exécute en arrière-plan de la session actuelle, `/tasks` liste chaque élément et vous permet de le vérifier, de vous y attacher ou de l'arrêter.

58* Pour les workflows dynamiques, `/workflows` liste les exécutions en cours et terminées, la phase dans laquelle chacune se trouve et le nombre d'agents qui ont terminé.58* Pour les workflows dynamiques, `/workflows` liste les exécutions en cours et terminées, la phase dans laquelle chacune se trouve et le nombre d'agents qui ont terminé.

59 59 

Details

184 184 

185Ces deux paramètres ont des conditions de déclenchement différentes :185Ces deux paramètres ont des conditions de déclenchement différentes :

186 186 

187* **`awsAuthRefresh`** : s'exécute uniquement lorsque Claude Code détecte que vos identifiants AWS ont expiré, soit localement en fonction de leur horodatage, soit lorsque Bedrock retourne une erreur d'identifiants, puis réessaye la demande avec des identifiants actualisés.187* **`awsAuthRefresh`** : s'exécute uniquement lorsque Claude Code détecte que vos identifiants AWS ont expiré, soit localement en fonction de leur horodatage, soit lorsque l'API retourne une erreur d'identifiants, puis réessaye la demande avec des identifiants actualisés.

188* **`awsCredentialExport`** : s'exécute au démarrage de la session et à chaque rechargement des identifiants, même lorsque les identifiants de votre chaîne de fournisseurs d'identifiants AWS par défaut sont toujours valides. Utilisez ceci lorsque votre compte Bedrock nécessite des identifiants inter-comptes qui diffèrent de ceux que la chaîne de fournisseurs par défaut résoudrait.188* **`awsCredentialExport`** : s'exécute au démarrage de la session et à chaque rechargement des identifiants, même lorsque les identifiants de votre chaîne de fournisseurs d'identifiants AWS par défaut sont toujours valides. Utilisez ceci lorsque votre compte Bedrock nécessite des identifiants inter-comptes qui diffèrent de ceux que la chaîne de fournisseurs par défaut résoudrait.

189 189 

190<h5 id="example-configuration">190<h5 id="example-configuration">

Details

54 54 

55Pour la plupart des organisations, `autoMode.environment` est le seul champ que vous devez définir. Il indique au classificateur quels dépôts, buckets et domaines sont approuvés : le classificateur l'utilise pour décider ce que signifie « externe », donc toute destination non listée est une cible d'exfiltration potentielle.55Pour la plupart des organisations, `autoMode.environment` est le seul champ que vous devez définir. Il indique au classificateur quels dépôts, buckets et domaines sont approuvés : le classificateur l'utilise pour décider ce que signifie « externe », donc toute destination non listée est une cible d'exfiltration potentielle.

56 56 

57À partir de Claude Code v2.1.195, `claude auto-mode defaults` imprime deux types d'entrées d'environnement.57À partir de Claude Code v2.1.198, `claude auto-mode defaults` imprime trois types d'entrées d'environnement. Les versions antérieures à v2.1.195 impriment uniquement les cinq premiers emplacements de confiance.

58 58 

59* **Emplacements de contexte** : décrivent votre organisation, votre pile technologique et votre posture de sécurité afin que le classificateur lise les autres règles dans votre contexte. Contrairement aux deux autres types, les emplacements de contexte n'ont pas de règles propres qui les ciblent. Chacun est par défaut `Aucun configuré` ou à l'hypothèse conservatrice nommée à côté :

60 * **Organisation**

61 * **Utilisation principale de Claude Code** : par défaut développement logiciel

62 * **Fournisseur(s) cloud**

63 * **Visibilité du dépôt** : un dépôt est supposé privé sauf si son hôte distant et son nom l'indiquent autrement

64 * **Partage interne / hébergement d'extraits** : les services publics de paste et gist sont traités comme en dehors de la limite de confiance jusqu'à ce que vous en nomiez un

65 * **CLI spécifiques à l'organisation**

66 * **Gestion des secrets**

67 * **Branches par défaut / protégées** : `main` et `master` sont traités comme protégés jusqu'à ce que vous en nomiez d'autres

68 * **Cibles de déploiement CI/CD**

69 * **Posture réseau**

70 * **Espaces de noms / environnements de déploiement protégés** : revient à l'heuristique des cibles distantes sensibles jusqu'à ce que vous les nomiez

71 * **Rétention des données / déclassification**

59* **Emplacements de confiance** : nomment ce que le classificateur traite comme à l'intérieur de votre limite. Les emplacements sont Dépôt approuvé, Contrôle de source, Domaines internes approuvés, Buckets cloud approuvés, Services internes clés et Registre de packages interne. Les entrées de dépôt et de contrôle de source sont par défaut le dépôt de travail et ses remotes configurées. Tous les autres emplacements de confiance sont par défaut `Aucun configuré`, donc rien d'autre n'est approuvé jusqu'à ce que vous l'ajoutiez.72* **Emplacements de confiance** : nomment ce que le classificateur traite comme à l'intérieur de votre limite. Les emplacements sont Dépôt approuvé, Contrôle de source, Domaines internes approuvés, Buckets cloud approuvés, Services internes clés et Registre de packages interne. Les entrées de dépôt et de contrôle de source sont par défaut le dépôt de travail et ses remotes configurées. Tous les autres emplacements de confiance sont par défaut `Aucun configuré`, donc rien d'autre n'est approuvé jusqu'à ce que vous l'ajoutiez.

60* **Emplacements de sensibilité** : nomment ce que les règles de protection traitent comme à haut risque. Les emplacements sont Emplacements de données PII / réglementées, Cibles distantes sensibles et Portées IaC protégées. Chacun est par défaut une heuristique large, comme traiter tout hôte ou espace de noms dont le nom porte `prod` ou `production` comme une cible distante sensible, donc les règles de protection sont actives avant que vous configuriez quoi que ce soit. Nommer des cibles concrètes dans un emplacement de sensibilité fait que ces règles s'appliquent aux cibles nommées au lieu de l'heuristique.73* **Emplacements de sensibilité** : nomment ce que les règles de protection traitent comme à haut risque. Les emplacements sont Emplacements de données sensibles et audiences, Cibles distantes sensibles et Portées IaC protégées. Chacun est par défaut une heuristique large, comme traiter tout hôte ou espace de noms dont le nom porte `prod` ou `production` comme une cible distante sensible, donc les règles de protection sont actives avant que vous configuriez quoi que ce soit. Nommer des cibles concrètes dans un emplacement de sensibilité fait que ces règles s'appliquent aux cibles nommées au lieu de l'heuristique.

61 

62Les versions antérieures à v2.1.195 impriment uniquement les cinq premiers emplacements de confiance.

63 74 

64Pour ajouter vos propres entrées aux côtés des valeurs par défaut, incluez la chaîne littérale `"$defaults"` dans le tableau. Les entrées par défaut sont insérées à cette position, donc vos entrées personnalisées peuvent aller avant ou après elles.75Pour ajouter vos propres entrées aux côtés des valeurs par défaut, incluez la chaîne littérale `"$defaults"` dans le tableau. Les entrées par défaut sont insérées à cette position, donc vos entrées personnalisées peuvent aller avant ou après elles.

65 76 


87* **Domaines internes approuvés** : noms d'hôtes pour les API, tableaux de bord et services à l'intérieur de votre réseau, comme `*.internal.example.com`98* **Domaines internes approuvés** : noms d'hôtes pour les API, tableaux de bord et services à l'intérieur de votre réseau, comme `*.internal.example.com`

88* **Services internes clés** : CI, registres d'artefacts, index de packages internes, outils d'incident99* **Services internes clés** : CI, registres d'artefacts, index de packages internes, outils d'incident

89* **Registre de packages interne** : le registre npm, PyPI ou autre privé par lequel les installations doivent être acheminées, donc les installations qui le contournent pour un registre public sont bloquées100* **Registre de packages interne** : le registre npm, PyPI ou autre privé par lequel les installations doivent être acheminées, donc les installations qui le contournent pour un registre public sont bloquées

90* **Emplacements de données PII / réglementées** : les buckets, bases de données ou chemins qui contiennent des données personnelles ou réglementées, afin que le classificateur protège ces emplacements au lieu de deviner à partir du contenu101* **Emplacements de données sensibles et audiences** : les buckets, bases de données ou chemins qui contiennent des données personnelles, des données commerciales confidentielles, des identifiants, des données réglementées ou du matériel similaire sensible, et les audiences avec lesquelles les données de chaque emplacement peuvent être partagées, afin que le classificateur protège ces emplacements au lieu de deviner à partir du contenu. {/* min-version: 2.1.195 */}{/* max-version: 2.1.197 */}Claude Code v2.1.195 à v2.1.197 nomme cette entrée Emplacements de données PII / réglementées et couvre uniquement les emplacements qui contiennent des données personnelles ou réglementées, sans la dimension d'audience

91* **Cibles distantes sensibles** : les espaces de noms, hôtes ou conteneurs qui comptent comme production, donc les shells distants et les redirections de ports vers eux ont besoin de votre approbation explicite102* **Cibles distantes sensibles** : les espaces de noms, hôtes ou conteneurs qui comptent comme production, donc les shells distants et les redirections de ports vers eux ont besoin de votre approbation explicite

92* **Portées IaC protégées** : les ressources d'infrastructure dont l'application ou la destruction doivent toujours vous demander de nommer le changement103* **Portées IaC protégées** : les ressources d'infrastructure dont l'application ou la destruction doivent toujours vous demander de nommer le changement

93* **Contexte supplémentaire** : contraintes d'industrie réglementée, infrastructure multi-locataire ou exigences de conformité qui affectent ce que le classificateur devrait traiter comme risqué104* **Contexte supplémentaire** : contraintes d'industrie réglementée, infrastructure multi-locataire ou exigences de conformité qui affectent ce que le classificateur devrait traiter comme risqué

94 105 

95Les entrées Registre de packages interne, Emplacements de données PII / réglementées, Cibles distantes sensibles et Portées IaC protégées nécessitent Claude Code v2.1.195 ou ultérieur. Les versions antérieures les lisent toujours comme du contexte simple mais n'ont pas les règles intégrées qui les ciblent.106Les entrées Registre de packages interne, Emplacements de données sensibles et audiences, Cibles distantes sensibles et Portées IaC protégées nécessitent Claude Code v2.1.195 ou ultérieur. Les versions antérieures les lisent toujours comme du contexte simple mais n'ont pas les règles intégrées qui les ciblent.

96 107 

97Un modèle de démarrage utile : remplissez les champs entre crochets et supprimez les lignes qui ne s'appliquent pas.108Un modèle de démarrage utile : remplissez les champs entre crochets et supprimez les lignes qui ne s'appliquent pas.

98 109 

chrome.md +15 −2

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# Utiliser Claude Code avec Chrome (bêta)5# Utiliser Claude Code avec Chrome

6 6 

7> Connectez Claude Code à votre navigateur Chrome pour tester des applications web, déboguer avec les journaux de console, automatiser le remplissage de formulaires et extraire des données des pages web.7> Connectez Claude Code à votre navigateur Chrome pour tester des applications web, déboguer avec les journaux de console, automatiser le remplissage de formulaires et extraire des données des pages web.

8 8 


11Claude ouvre de nouveaux onglets pour les tâches du navigateur et partage l'état de connexion de votre navigateur, ce qui lui permet d'accéder à n'importe quel site auquel vous êtes déjà connecté. Les actions du navigateur s'exécutent en temps réel dans une fenêtre Chrome visible. Lorsque Claude rencontre une page de connexion ou un CAPTCHA, il s'arrête et vous demande de le gérer manuellement.11Claude ouvre de nouveaux onglets pour les tâches du navigateur et partage l'état de connexion de votre navigateur, ce qui lui permet d'accéder à n'importe quel site auquel vous êtes déjà connecté. Les actions du navigateur s'exécutent en temps réel dans une fenêtre Chrome visible. Lorsque Claude rencontre une page de connexion ou un CAPTCHA, il s'arrête et vous demande de le gérer manuellement.

12 12 

13<Note>13<Note>

14 L'intégration Chrome est en bêta et fonctionne actuellement avec Google Chrome et Microsoft Edge. Elle n'est pas encore prise en charge sur Brave, Arc ou d'autres navigateurs basés sur Chromium. WSL (Windows Subsystem for Linux) n'est pas non plus pris en charge.14 L'intégration Chrome fonctionne avec Google Chrome et Microsoft Edge. Elle n'est pas encore prise en charge sur Brave, Arc ou d'autres navigateurs basés sur Chromium. Elle n'est pas non plus prise en charge dans Windows Subsystem for Linux (WSL).

15</Note>15</Note>

16 16 

17<h2 id="capabilities">17<h2 id="capabilities">


90 90 

91Les autorisations au niveau du site sont héritées de l'extension Chrome. Gérez les autorisations dans les paramètres de l'extension Chrome pour contrôler les sites que Claude peut parcourir, cliquer et taper.91Les autorisations au niveau du site sont héritées de l'extension Chrome. Gérez les autorisations dans les paramètres de l'extension Chrome pour contrôler les sites que Claude peut parcourir, cliquer et taper.

92 92 

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

94 Outils du navigateur en mode plan

95</h3>

96 

97En [mode plan](/fr/permission-modes#analyze-before-you-edit-with-plan-mode), les appels d'outils du navigateur qui lisent uniquement la page ou l'état du navigateur s'exécutent sans invite d'autorisation, et les appels qui modifient l'état demandent une approbation.

98 

99* **Appels en lecture seule** : `read_page`, `get_page_text`, `find`, lecture des messages de console ou des demandes réseau, et prise de capture d'écran

100* **Appels modifiant l'état** : clics, saisie, navigation, gestion des onglets et des fenêtres, et enregistrement d'un GIF

101 

102À partir de la v2.1.199, un appel autrement en lecture seule qui définit un drapeau d'entrée modifiant l'état, tel que `createIfEmpty` sur `tabs_context_mcp`, `clear` sur les lecteurs de console et de réseau, ou `save_to_disk` sur une capture d'écran, demande également une approbation. Un appel `browser_batch` s'exécute sans invite uniquement lorsque chaque action à l'intérieur est en lecture seule.

103 

93<h2 id="example-workflows">104<h2 id="example-workflows">

94 Exemples de flux de travail105 Exemples de flux de travail

95</h2>106</h2>


208 219 

209La première fois que vous activez l'intégration Chrome, Claude Code installe un fichier de configuration d'hôte de messagerie native. Chrome lit ce fichier au démarrage, donc si l'extension n'est pas détectée à votre première tentative, redémarrez Chrome pour récupérer la nouvelle configuration.220La première fois que vous activez l'intégration Chrome, Claude Code installe un fichier de configuration d'hôte de messagerie native. Chrome lit ce fichier au démarrage, donc si l'extension n'est pas détectée à votre première tentative, redémarrez Chrome pour récupérer la nouvelle configuration.

210 221 

222À partir de la v2.1.199, Claude Code ouvre un onglet du navigateur vous invitant à connecter l'extension uniquement lors de cette première installation. Les sessions ultérieures qui réécrivent le fichier de configuration, par exemple après le changement de versions de Claude Code ou de répertoires de configuration, ne le rouvrent pas.

223 

211Si la connexion échoue toujours, vérifiez que le fichier de configuration d'hôte existe à :224Si la connexion échoue toujours, vérifiez que le fichier de configuration d'hôte existe à :

212 225 

213Pour Chrome :226Pour Chrome :

Details

4 4 

5# Configuration de la passerelle Claude apps5# Configuration de la passerelle Claude apps

6 6 

7> Référence pour chaque option gateway.yaml : écouteur et TLS, OIDC, session, magasin Postgres, amonts Bedrock/Agent Platform/Foundry, routage des modèles, politiques gérées et télémétrie.7> Référence pour chaque option gateway.yaml : écouteur et TLS, OIDC, session, magasin Postgres, amonts Bedrock/Claude Platform sur AWS/Agent Platform/Foundry, routage des modèles, politiques gérées et télémétrie.

8 8 

9Un déploiement de passerelle Claude apps est configuré par un fichier YAML, conventionnellement `gateway.yaml`. Le fichier définit tout ce que fait la passerelle : où elle écoute, comment les développeurs se connectent, où va l'inférence et quelles politiques et télémétrie s'appliquent. Cette page est la référence pour chaque option de ce fichier. Pour écrire votre première, commencez par le [démarrage rapide](/fr/claude-apps-gateway#quickstart), qui crée une configuration minimale fonctionnelle et l'exécute ; une fois que vous avez une configuration avec laquelle vous êtes satisfait, le [guide de déploiement](/fr/claude-apps-gateway-deploy) couvre la conteneurisation et l'hébergement sur Kubernetes, Cloud Run ou votre propre plateforme.9Un déploiement de passerelle Claude apps est configuré par un fichier YAML, conventionnellement `gateway.yaml`. Le fichier définit tout ce que fait la passerelle : où elle écoute, comment les développeurs se connectent, où va l'inférence et quelles politiques et télémétrie s'appliquent. Cette page est la référence pour chaque option de ce fichier.

10 

11Pour écrire votre première, commencez par le [démarrage rapide](/fr/claude-apps-gateway#quickstart), qui crée une configuration minimale fonctionnelle et l'exécute. Une fois que vous avez une configuration avec laquelle vous êtes satisfait, le [guide de déploiement](/fr/claude-apps-gateway-deploy) couvre la conteneurisation et l'hébergement sur Kubernetes, Cloud Run ou votre propre plateforme.

10 12 

11La passerelle lit le fichier une fois, au démarrage, avec `claude gateway --config /path/to/gateway.yaml`. Chaque option est validée par rapport à un schéma au démarrage, donc une configuration mal formée échoue au démarrage avec une erreur au niveau du champ plutôt qu'à la première utilisation.13La passerelle lit le fichier une fois, au démarrage, avec `claude gateway --config /path/to/gateway.yaml`. Chaque option est validée par rapport à un schéma au démarrage, donc une configuration mal formée échoue au démarrage avec une erreur au niveau du champ plutôt qu'à la première utilisation.

12 14 


24* [`oidc`](#oidc) : votre fournisseur d'identité (IdP), y compris l'émetteur, le client, le mappage des réclamations et qui peut se connecter26* [`oidc`](#oidc) : votre fournisseur d'identité (IdP), y compris l'émetteur, le client, le mappage des réclamations et qui peut se connecter

25* [`session`](#session) : les jetons porteurs que la passerelle émet, avec secret et durée de vie27* [`session`](#session) : les jetons porteurs que la passerelle émet, avec secret et durée de vie

26* [`store`](#store) : PostgreSQL, pour les subventions d'appareils et les compteurs de limite de débit28* [`store`](#store) : PostgreSQL, pour les subventions d'appareils et les compteurs de limite de débit

27* [`upstreams`](#upstreams) : où l'inférence va, qu'il s'agisse d'Anthropic, Bedrock, Agent Platform ou Foundry29* [`upstreams`](#upstreams) : où l'inférence va, qu'il s'agisse d'Anthropic, Bedrock, Claude Platform sur AWS, Agent Platform ou Foundry

28 30 

29**Sections optionnelles :**31**Sections optionnelles :**

30 32 


68 `oidc`70 `oidc`

69</h3>71</h3>

70 72 

71OpenID Connect (OIDC) est le protocole SSO que la passerelle utilise avec votre fournisseur d'identité ; voir [Configuration du fournisseur d'identité](/fr/claude-apps-gateway-deploy#identity-provider-setup) pour ce qu'il faut enregistrer du côté IdP. Le bloc `oidc` connecte la passerelle à votre fournisseur d'identité et décide qui peut se connecter. Il nomme l'émetteur et le client OAuth, mappe les réclamations qui portent l'e-mail et les groupes, et restreint la connexion par domaine d'e-mail ou groupe.73Le bloc `oidc` connecte la passerelle à votre fournisseur d'identité et décide qui peut se connecter. Il nomme l'émetteur et le client OAuth, mappe les réclamations qui portent l'e-mail et les groupes, et restreint la connexion par domaine d'e-mail ou groupe.

74 

75OpenID Connect (OIDC) est le protocole SSO que la passerelle utilise avec votre fournisseur d'identité ; voir [Configuration du fournisseur d'identité](/fr/claude-apps-gateway-deploy#identity-provider-setup) pour ce qu'il faut enregistrer du côté IdP.

72 76 

73| Champ | Requis | Description |77| Champ | Requis | Description |

74| ------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |78| ------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


121 `upstreams`125 `upstreams`

122</h3>126</h3>

123 127 

124`upstreams` est une liste ordonnée. La passerelle transfère l'inférence au premier upstream qui résout le modèle demandé. Sur `5xx`, `429` ou timeout, elle bascule vers le suivant ; les autres `4xx` ne le font pas, car ces erreurs sont attribuables à la demande plutôt qu'à l'upstream. Plusieurs upstreams du même fournisseur doivent définir un `name:` distinct.128`upstreams` est une liste ordonnée. La passerelle transfère l'inférence au premier upstream qui résout le modèle demandé. Sur `5xx`, `429`, `401`, `403`, `404`, ou timeout, elle bascule vers le suivant ; les autres `4xx` ne le font pas, car ces erreurs sont attribuables à la demande plutôt qu'à l'upstream. Un `401` ou `403` signifie que l'identifiant propre de la passerelle a échoué contre cet upstream, et un `404` signifie que cet upstream ne sert pas le modèle demandé, donc un upstream ultérieur dans la liste peut toujours le faire.

129 

130Le basculement sur `404` nécessite la passerelle v2.1.198 ou ultérieure. Les versions antérieures retournaient le premier `404` au client même lorsqu'un upstream ultérieur dans la liste servait le modèle.

125 131 

126Les clients Bedrock, Agent Platform et Foundry sont construits une fois au démarrage, et leurs SDKs actualisent les identifiants en interne, donc la rotation des identifiants cloud ne nécessite pas un redémarrage. Les clés API Anthropic statiques et les porteurs sont lus au démarrage ; voir [Anthropic API](#anthropic-api).132Plusieurs upstreams du même fournisseur doivent définir un `name:` distinct.

133 

134Les clients Bedrock, Claude Platform on AWS, Agent Platform et Foundry sont construits une fois au démarrage, et leurs SDKs actualisent les identifiants en interne, donc la rotation des identifiants cloud ne nécessite pas un redémarrage. Les clés API Anthropic statiques et les porteurs sont lus au démarrage ; voir [Anthropic API](#anthropic-api).

127 135 

128<h4 id="anthropic-api">136<h4 id="anthropic-api">

129 Anthropic API137 Anthropic API


193| N'importe où ailleurs | Passez les identifiants via les variables env `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` et `AWS_SESSION_TOKEN`, ou définissez-les explicitement dans `auth:` avec expansion `${VAR}` |201| N'importe où ailleurs | Passez les identifiants via les variables env `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` et `AWS_SESSION_TOKEN`, ou définissez-les explicitement dans `auth:` avec expansion `${VAR}` |

194| Région | `region:` est la région du point de terminaison API. Les profils d'inférence inter-régions routent à travers la géographie (US, EU, APAC) indépendamment de celui que vous choisissez. Pour les régions non-US ou les ARNs de débit provisionné, ajoutez un bloc [`models:`](#models) avec les bons IDs par upstream. |202| Région | `region:` est la région du point de terminaison API. Les profils d'inférence inter-régions routent à travers la géographie (US, EU, APAC) indépendamment de celui que vous choisissez. Pour les régions non-US ou les ARNs de débit provisionné, ajoutez un bloc [`models:`](#models) avec les bons IDs par upstream. |

195 203 

204<h4 id="claude-platform-on-aws">

205 Claude Platform on AWS

206</h4>

207 

208Claude Platform on AWS sert l'API Anthropic propriétaire sur l'infrastructure AWS à `aws-external-anthropic.<region>.api.aws`. Il utilise les IDs de modèle propriétaires, honore les en-têtes `anthropic-beta` tels qu'envoyés, et sert `count_tokens`, donc aucune des traductions spécifiques à Bedrock ne s'applique. Le fournisseur `anthropicAws` nécessite Claude Code v2.1.198 ou ultérieur ; les versions antérieures de la passerelle le rejettent au démarrage.

209 

210Pour le déploiement côté client de la même plateforme, voir [Claude Code sur Claude Platform on AWS](/fr/claude-platform-on-aws). L'upstream côté passerelle :

211 

212```yaml theme={null}

213upstreams:

214 - provider: anthropicAws

215 region: us-east-1

216 workspace_id: wrkspc_...

217 auth:

218 api_key: ${ANTHROPIC_AWS_API_KEY} # envoyé en tant que x-api-key

219 # OU SigV4 via la chaîne d'identifiants par défaut AWS :

220 # auth: {}

221 # OU identifiants SigV4 explicites :

222 # auth:

223 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}

224 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}

225 # Remplacer le point de terminaison dérivé :

226 # base_url: https://aws-external-anthropic.us-east-1.api.aws

227```

228 

229La plateforme s'exécute dans un compte AWS séparé d'Amazon Bedrock et signe les demandes SigV4 pour son propre nom de service, `aws-external-anthropic`, donc un rôle IAM limité à Bedrock ne l'autorise pas. Une clé API dans `auth.api_key` prend la priorité lorsque les identifiants SigV4 sont également définis. Un bloc `auth` vide utilise la chaîne d'identifiants par défaut du SDK AWS, la même chaîne que l'upstream [Amazon Bedrock](#amazon-bedrock) utilise.

230 

231| Champ | Requis | Description |

232| ------------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

233| `region` | Oui | Région AWS, lettres minuscules, chiffres et traits d'union. La passerelle dérive le point de terminaison à partir de celui-ci en tant que `https://aws-external-anthropic.<region>.api.aws`. |

234| `workspace_id` | Oui | Envoyé en tant qu'en-tête sur chaque demande ; la plateforme l'exige |

235| `auth.api_key` | Non | Clé API pour la plateforme, envoyée en tant que `x-api-key`. Pas un jeton porteur : les deux modes d'authentification sont une clé API ou SigV4. |

236| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | Non | Identifiants SigV4 explicites. Définir l'un sans l'autre échoue au démarrage. `auth.aws_session_token` est accepté à côté d'eux. |

237| `base_url` | Non | Remplacer le point de terminaison dérivé |

238 

239Parce que la plateforme résout les IDs de modèle propriétaires, le catalogue intégré route vers elle sans bloc [`models:`](#models). Lorsque vous organisez une liste `models:`, indexez l'entrée `anthropicAws:` avec l'ID propriétaire.

240 

196<h4 id="google-cloud-agent-platform">241<h4 id="google-cloud-agent-platform">

197 Google Cloud Agent Platform242 Google Cloud Agent Platform

198</h4>243</h4>


255 300 

256Le même fournisseur peut apparaître plus d'une fois avec un `name:` distinct. Cela couvre différentes régions, différents comptes via différentes chaînes d'identifiants, débit provisionné par rapport à la demande, et basculement inter-fournisseur.301Le même fournisseur peut apparaître plus d'une fois avec un `name:` distinct. Cela couvre différentes régions, différents comptes via différentes chaînes d'identifiants, débit provisionné par rapport à la demande, et basculement inter-fournisseur.

257 302 

258La passerelle essaie les upstreams dans l'ordre. `5xx`, `429`, timeouts et point de terminaison manquant (`501`) basculent ; les autres `4xx` ne le font pas. `429` est la capacité par upstream, donc l'épuisement du débit provisionné (PT) bascule vers la demande. Un upstream qui ne peut pas résoudre le modèle demandé est ignoré sans un aller-retour réseau.303La passerelle essaie les upstreams dans l'ordre. `5xx`, `429`, `401`, `403`, `404`, timeouts et point de terminaison manquant (`501`) basculent ; les autres `4xx` ne le font pas.

304 

305`429` est la capacité par upstream, donc l'épuisement du débit provisionné (PT) bascule vers la demande. `404` est la disponibilité du modèle par upstream, donc un upstream qui n'a pas activé un modèle ne bloque pas un upstream ultérieur qui le sert. Un upstream qui ne peut pas résoudre le modèle demandé est ignoré sans un aller-retour réseau.

259 306 

260Cet exemple route une allocation Bedrock de débit provisionné en premier, déborde vers la demande et un deuxième compte, et revient à l'API Anthropic en dernier :307Cet exemple route une allocation Bedrock de débit provisionné en premier, déborde vers la demande et un deuxième compte, et revient à l'API Anthropic en dernier :

261 308 


580| `limits` | `max_request_bytes` | 32 MiB | Corps de demande entrant max ; les demandes surdimensionnées obtiennent `413` avant que le corps soit mis en mémoire tampon. Augmentez pour les demandes de fichiers ou d'images volumineux. |627| `limits` | `max_request_bytes` | 32 MiB | Corps de demande entrant max ; les demandes surdimensionnées obtiennent `413` avant que le corps soit mis en mémoire tampon. Augmentez pour les demandes de fichiers ou d'images volumineux. |

581| `limits` | `max_request_header_bytes` | non défini | Lorsqu'il est défini, les en-têtes surdimensionnés retournent `431` |628| `limits` | `max_request_header_bytes` | non défini | Lorsqu'il est défini, les en-têtes surdimensionnés retournent `431` |

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

583| `timeouts` | `upstream_ttfb_ms` | 120000 | Attente max pour les en-têtes de réponse upstream (time to first byte). Le corps de la réponse s'écoule ensuite sans plafond de temps mural. S'applique au chemin upstream Anthropic direct ; Bedrock, Agent Platform et Foundry sont limités par le timeout du SDK du fournisseur. |630| `timeouts` | `upstream_ttfb_ms` | 120000 | Attente max pour les en-têtes de réponse upstream (time to first byte). Le corps de la réponse s'écoule ensuite sans plafond de temps mural. S'applique au chemin upstream Anthropic direct ; chaque autre fournisseur est limité par le timeout du SDK du fournisseur. |

584| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Limite de débit par IP sur le point de terminaison d'autorisation d'appareil non authentifié. Augmentez pour une grande organisation derrière une IP de sortie partagée ou NAT. Ces limites s'appliquent uniquement au flux de connexion de subvention d'appareil, pas à l'inférence `/v1/messages`. Voir [Résistance à la force brute du code utilisateur](/fr/claude-apps-gateway-deploy#user-code-brute-force-resistance). |631| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Limite de débit par IP sur le point de terminaison d'autorisation d'appareil non authentifié. Augmentez pour une grande organisation derrière une IP de sortie partagée ou NAT. Ces limites s'appliquent uniquement au flux de connexion de subvention d'appareil, pas à l'inférence `/v1/messages`. Voir [Résistance à la force brute du code utilisateur](/fr/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

585| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Limite de débit par IP sur les soumissions `user_code` à `/device` |632| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Limite de débit par IP sur les soumissions `user_code` à `/device` |

586 633 


662 # region: us-east-1709 # region: us-east-1

663 # auth: {}710 # auth: {}

664 711 

712 # - provider: anthropicAws

713 # region: us-east-1

714 # workspace_id: wrkspc_...

715 # auth:

716 # api_key: ${ANTHROPIC_AWS_API_KEY}

717 

665 # - provider: vertex718 # - provider: vertex

666 # region: us-east5719 # region: us-east5

667 # project_id: example-prod720 # project_id: example-prod


678 upstream_model:731 upstream_model:

679 anthropic: claude-opus-4-8732 anthropic: claude-opus-4-8

680 # bedrock: us.anthropic.claude-opus-4-8733 # bedrock: us.anthropic.claude-opus-4-8

734 # anthropicAws: claude-opus-4-8

681 # vertex: claude-opus-4-8735 # vertex: claude-opus-4-8

682 # foundry: <your-opus-deployment-name>736 # foundry: <your-opus-deployment-name>

683 - id: claude-sonnet-4-6737 - id: claude-sonnet-4-6

Details

97<Note>97<Note>

98 **Identité de charge de travail**98 **Identité de charge de travail**

99 99 

100 Préférez l'identité de charge de travail de la plateforme aux clés statiques : IRSA sur EKS pour Bedrock, Workload Identity sur GKE pour Agent Platform, et identité de charge de travail sur AKS pour Foundry. Définissez `auth: {}` dans le bloc en amont, ou `use_azure_ad: true` pour Foundry, et la passerelle récupère l'identité du pod via la chaîne de credentials par défaut de ce fournisseur. Pour un appairage inter-cloud, tel qu'un amont Bedrock sur GKE, définissez des credentials explicites dans le bloc `auth` de l'amont à la place. La [référence `upstreams`](/fr/claude-apps-gateway-config#upstreams) a des détails de configuration par plateforme.100 Préférez l'identité de charge de travail de la plateforme aux clés statiques : IRSA sur EKS pour Bedrock et pour Claude Platform sur AWS, Workload Identity sur GKE pour Agent Platform, et identité de charge de travail sur AKS pour Foundry. Définissez `auth: {}` dans le bloc en amont, ou `use_azure_ad: true` pour Foundry, et la passerelle récupère l'identité du pod via la chaîne de credentials par défaut de ce fournisseur. Pour un appairage inter-cloud, tel qu'un amont Bedrock sur GKE, définissez des credentials explicites dans le bloc `auth` de l'amont à la place. La [référence `upstreams`](/fr/claude-apps-gateway-config#upstreams) a des détails de configuration par plateforme.

101</Note>101</Note>

102 102 

103<h3 id="cloud-run">103<h3 id="cloud-run">

Details

723La téléportation vérifie ces exigences avant de reprendre une session. Si une exigence n'est pas satisfaite, vous verrez une erreur ou vous serez invité à résoudre le problème.723La téléportation vérifie ces exigences avant de reprendre une session. Si une exigence n'est pas satisfaite, vous verrez une erreur ou vous serez invité à résoudre le problème.

724 724 

725| Exigence | Détails |725| Exigence | Détails |

726| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |726| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

727| État git propre | Votre répertoire de travail ne doit avoir aucune modification non validée. La téléportation vous invite à ranger les modifications si nécessaire. |727| État git propre | Votre répertoire de travail ne doit avoir aucune modification non validée. La téléportation vous invite à ranger les modifications si nécessaire. |

728| Référentiel correct | Vous devez exécuter `--teleport` à partir d'une extraction du même référentiel, pas d'une fourche. |728| Référentiel correct | Vous devez exécuter `--teleport` à partir d'une extraction du même référentiel, pas d'une fourche. À partir de la v2.1.199, Claude Code accepte une extraction même lorsqu'il ne peut pas analyser le serveur distant en nom d'hôte, comme un alias d'hôte SSH comme `git@work:owner/repo.git` ou une forme courte réécrite par `insteadOf`. Il affiche d'abord une invite de confirmation, et uniquement lorsque le propriétaire du serveur distant et le nom du référentiel correspondent au référentiel de la session. |

729| Branche disponible | La branche de la session cloud doit avoir été poussée vers le serveur distant. La téléportation la récupère et l'extrait automatiquement. |729| Branche disponible | La branche de la session cloud doit avoir été poussée vers le serveur distant. La téléportation la récupère et l'extrait automatiquement. |

730| Même compte | Vous devez être authentifié au même compte claude.ai utilisé dans la session cloud. |730| Même compte | Vous devez être authentifié au même compte claude.ai utilisé dans la session cloud. |

731 731 

Details

230 230 

231Pour l'intégration continue et l'automatisation, donnez au runner un rôle IAM avec la permission d'invoquer le service Anthropic et définissez `AWS_REGION`. La chaîne d'identifiants récupère automatiquement le rôle.231Pour l'intégration continue et l'automatisation, donnez au runner un rôle IAM avec la permission d'invoquer le service Anthropic et définissez `AWS_REGION`. La chaîne d'identifiants récupère automatiquement le rôle.

232 232 

233Si vos identifiants SSO expirent en cours de session, configurez [`awsAuthRefresh`](/fr/amazon-bedrock#advanced-credential-configuration) pour que Claude Code réexécute votre commande de connexion et réessaie au lieu d'échouer. Ajoutez la commande à votre `settings.json` :233Si vos identifiants SSO expirent en cours de session, configurez [`awsAuthRefresh`](/fr/amazon-bedrock#advanced-credential-configuration) pour que Claude Code réexécute votre commande de connexion et réessaie au lieu d'échouer. L'actualisation automatique sur Claude Platform on AWS nécessite Claude Code v2.1.198 ou version ultérieure ; les versions antérieures s'arrêtent avec une invite pour exécuter `/login`, qui ne peut pas actualiser les identifiants AWS. Ajoutez la commande à votre `settings.json` :

234 234 

235```json theme={null}235```json theme={null}

236{236{

Details

47 47 

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

49 49 

50{/* min-version: 2.1.199 */}À partir de v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` exécute la sous-commande `daemon`. Les versions antérieures traitaient `daemon <subcommand>` comme l'invite pour une nouvelle session interactive, donc la sous-commande ne s'exécutait jamais quand le drapeau venait en premier, une configuration courante quand `claude` est aliasé pour inclure le drapeau. Seul un `--dangerously-skip-permissions` ou `--allow-dangerously-skip-permissions` en tête achemine vers `daemon` de cette façon ; tout autre drapeau en tête démarre toujours une session interactive.

51 

50<h2 id="cli-flags">52<h2 id="cli-flags">

51 Drapeaux CLI53 Drapeaux CLI

52</h2>54</h2>


66| `--ax-screen-reader` | {/* min-version: 2.1.181 */}Afficher une sortie accessible aux lecteurs d'écran : texte plat sans bordures décoratives ni animations. Force le rendu classique, donc le paramètre [`tui`](/fr/settings#available-settings) n'a aucun effet pour la session. Prend la priorité sur [`CLAUDE_AX_SCREEN_READER`](/fr/env-vars) et le paramètre [`axScreenReader`](/fr/settings#available-settings). Nécessite Claude Code v2.1.181 ou ultérieur | `claude --ax-screen-reader` |68| `--ax-screen-reader` | {/* min-version: 2.1.181 */}Afficher une sortie accessible aux lecteurs d'écran : texte plat sans bordures décoratives ni animations. Force le rendu classique, donc le paramètre [`tui`](/fr/settings#available-settings) n'a aucun effet pour la session. Prend la priorité sur [`CLAUDE_AX_SCREEN_READER`](/fr/env-vars) et le paramètre [`axScreenReader`](/fr/settings#available-settings). Nécessite Claude Code v2.1.181 ou ultérieur | `claude --ax-screen-reader` |

67| `--bare` | Mode minimal : ignorer la découverte automatique des hooks, skills, plugins, serveurs MCP, mémoire automatique et CLAUDE.md afin que les appels scriptés démarrent plus rapidement. Claude a accès aux outils Bash, lecture de fichier et édition de fichier. Définit [`CLAUDE_CODE_SIMPLE`](/fr/env-vars). Voir [mode bare](/fr/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |69| `--bare` | Mode minimal : ignorer la découverte automatique des hooks, skills, plugins, serveurs MCP, mémoire automatique et CLAUDE.md afin que les appels scriptés démarrent plus rapidement. Claude a accès aux outils Bash, lecture de fichier et édition de fichier. Définit [`CLAUDE_CODE_SIMPLE`](/fr/env-vars). Voir [mode bare](/fr/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |

68| `--betas` | En-têtes bêta à inclure dans les requêtes API (utilisateurs de clé API uniquement) | `claude --betas interleaved-thinking` |70| `--betas` | En-têtes bêta à inclure dans les requêtes API (utilisateurs de clé API uniquement) | `claude --betas interleaved-thinking` |

69| `--bg`, `--background` | Démarrer la session en tant qu'[agent en arrière-plan](/fr/agent-view) et revenir immédiatement. Affiche l'ID de session et les commandes de gestion. Combinez avec `--exec` pour exécuter une commande shell en tant que travail en arrière-plan au lieu d'une session Claude, ou avec `--agent` pour exécuter un subagent spécifique | `claude --bg "investigate the flaky test"` |71| `--bg`, `--background` | Démarrer la session en tant qu'[agent en arrière-plan](/fr/agent-view) et revenir immédiatement. Affiche l'ID de session et les commandes de gestion. Combinez avec `--exec` pour exécuter une commande shell en tant que travail en arrière-plan au lieu d'une session Claude, ou avec `--agent` pour exécuter un subagent spécifique. {/* min-version: 2.1.198 */}Ne peut pas être combiné avec `-p`/`--print` ; voir la [référence d'erreur](/fr/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

70| `--channels` | (Aperçu de recherche) Serveurs MCP dont les notifications de [canal](/fr/channels) Claude doit écouter dans cette session. Liste séparée par des espaces d'entrées `plugin:<name>@<marketplace>`. Nécessite l'authentification Claude.ai | `claude --channels plugin:my-notifier@my-marketplace` |72| `--channels` | (Aperçu de recherche) Serveurs MCP dont les notifications de [canal](/fr/channels) Claude doit écouter dans cette session. Liste séparée par des espaces d'entrées `plugin:<name>@<marketplace>`. Nécessite l'authentification Claude.ai | `claude --channels plugin:my-notifier@my-marketplace` |

71| `--chrome` | Activer l'[intégration du navigateur Chrome](/fr/chrome) pour l'automatisation web et les tests | `claude --chrome` |73| `--chrome` | Activer l'[intégration du navigateur Chrome](/fr/chrome) pour l'automatisation web et les tests | `claude --chrome` |

72| `--continue`, `-c` | Charger la conversation la plus récente dans le répertoire courant. Inclut les sessions qui ont ajouté ce répertoire avec `/add-dir` | `claude --continue` |74| `--continue`, `-c` | Charger la conversation la plus récente dans le répertoire courant. Inclut les sessions qui ont ajouté ce répertoire avec `/add-dir` | `claude --continue` |


100| `--no-session-persistence` | Désactiver la persistance de session afin que les sessions ne soient pas enregistrées sur le disque et ne puissent pas être reprises. Mode impression uniquement. La variable d'environnement [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/fr/env-vars) fait la même chose dans n'importe quel mode | `claude -p --no-session-persistence "query"` |102| `--no-session-persistence` | Désactiver la persistance de session afin que les sessions ne soient pas enregistrées sur le disque et ne puissent pas être reprises. Mode impression uniquement. La variable d'environnement [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/fr/env-vars) fait la même chose dans n'importe quel mode | `claude -p --no-session-persistence "query"` |

101| `--output-format` | Spécifier le format de sortie pour le mode impression (options : `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |103| `--output-format` | Spécifier le format de sortie pour le mode impression (options : `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

102| `--permission-mode` | Commencer dans un [mode de permission](/fr/permission-modes) spécifié. Accepte `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, ou `bypassPermissions`. Remplace `defaultMode` des fichiers de paramètres | `claude --permission-mode plan` |104| `--permission-mode` | Commencer dans un [mode de permission](/fr/permission-modes) spécifié. Accepte `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, ou `bypassPermissions`. Remplace `defaultMode` des fichiers de paramètres | `claude --permission-mode plan` |

103| `--permission-prompt-tool` | Spécifier un outil MCP pour gérer les invites de permission en mode non interactif | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |105| `--permission-prompt-tool` | Spécifier un outil MCP pour gérer les invites de permission en mode non interactif. {/* min-version: 2.1.199 */}À partir de v2.1.199, l'outil d'invite ne peut pas approuver un outil MCP marqué comme [nécessitant une interaction utilisateur](/fr/mcp#require-approval-for-a-specific-tool) : un résultat `allow` pour celui-ci est converti en refus | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

104| `--plugin-dir` | Charger un plugin à partir d'un répertoire ou d'une archive `.zip` pour cette session uniquement. Chaque drapeau prend un chemin. Répétez le drapeau pour plusieurs plugins : `--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |106| `--plugin-dir` | Charger un plugin à partir d'un répertoire ou d'une archive `.zip` pour cette session uniquement. Chaque drapeau prend un chemin. Répétez le drapeau pour plusieurs plugins : `--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |

105| `--plugin-url` | Récupérer une archive `.zip` de plugin à partir d'une URL pour cette session uniquement. Répétez le drapeau pour plusieurs plugins, ou passez des URL séparées par des espaces dans une seule valeur entre guillemets | `claude --plugin-url https://example.com/plugin.zip` |107| `--plugin-url` | Récupérer une archive `.zip` de plugin à partir d'une URL pour cette session uniquement. Répétez le drapeau pour plusieurs plugins, ou passez des URL séparées par des espaces dans une seule valeur entre guillemets | `claude --plugin-url https://example.com/plugin.zip` |

106| `--print`, `-p` | Imprimer la réponse sans mode interactif (voir la [documentation du SDK Agent](/fr/agent-sdk/overview) pour les détails d'utilisation programmatique) | `claude -p "query"` |108| `--print`, `-p` | Imprimer la réponse sans mode interactif (voir la [documentation du SDK Agent](/fr/agent-sdk/overview) pour les détails d'utilisation programmatique) | `claude -p "query"` |

commands.md +10 −9

Details

10 10 

11Tapez `/` pour voir toutes les commandes disponibles pour vous, ou tapez `/` suivi de lettres pour filtrer.11Tapez `/` pour voir toutes les commandes disponibles pour vous, ou tapez `/` suivi de lettres pour filtrer.

12 12 

13Une commande n'est reconnue qu'au début de votre message. Le texte qui suit le nom de la commande lui est transmis en tant qu'arguments.13Une commande n'est reconnue qu'au début de votre message. Le texte qui suit le nom de la commande lui est transmis en tant qu'arguments. {/* min-version: 2.1.199 */}À partir de la v2.1.199, les [skills](/fr/skills#pass-arguments-to-skills) font exception : une invocation de skill suivie d'autres skills, comme `/skill-a /skill-b do XYZ`, charge chaque skill nommé au début et transmet le texte restant à chacun en tant qu'arguments. Jusqu'à six skills peuvent être chaînés.

14 14 

15<h2 id="commands-across-a-typical-workflow">15<h2 id="commands-across-a-typical-workflow">

16 Commandes au cours d'un workflow typique16 Commandes au cours d'un workflow typique


18 18 

19La plupart des commandes sont utiles à un moment spécifique d'une session, de la configuration d'un projet à la livraison d'une modification.19La plupart des commandes sont utiles à un moment spécifique d'une session, de la configuration d'un projet à la livraison d'une modification.

20 20 

21**Première session dans un référentiel.** Exécutez `/init` pour générer un `CLAUDE.md` de démarrage, puis `/memory` pour l'affiner. Utilisez `/mcp` et `/agents` pour configurer les serveurs ou sous-agents dont le projet a besoin, et `/permissions` pour définir les règles d'approbation que vous souhaitez.21**Première session dans un référentiel.** Exécutez `/init` pour générer un `CLAUDE.md` de démarrage, puis `/memory` pour l'affiner. Utilisez `/mcp` pour configurer les serveurs dont le projet a besoin, demandez à Claude de créer les [sous-agents](/fr/sub-agents) que vous souhaitez, et exécutez `/permissions` pour définir vos règles d'approbation.

22 22 

23**Pendant une tâche.** `/plan` bascule en mode plan avant une modification importante. `/model` et `/effort` ajustent le temps de réflexion que vous dépensez. Lorsque la conversation devient longue, `/context` montre la fenêtre va et `/compact` la résume ; utilisez `/btw` pour une question rapide qui ne devrait pas gonfler l'historique.23**Pendant une tâche.** `/plan` bascule en mode plan avant une modification importante. `/model` et `/effort` ajustent le modèle que vous utilisez et le raisonnement qu'il applique. Lorsque la conversation devient longue, `/context` montre ce qui remplit la fenêtre et `/compact` la résume pour libérer de l'espace. Utilisez `/btw` pour une remarque rapide qui ne devrait pas s'ajouter à l'historique de la conversation.

24 24 

25**Exécution du travail en parallèle.** `/agents` ouvre le gestionnaire pour les [sous-agents](/fr/sub-agents) auxquels Claude peut déléguer des tâches secondaires, et `/tasks` répertorie ce qui s'exécute en arrière-plan de la session actuelle. `/background` détache la session entière pour continuer à s'exécuter en tant qu'[agent en arrière-plan](/fr/agent-view) et libère votre terminal. Pour une modification importante qui s'étend sur la base de code, `/batch` la décompose en unités indépendantes et exécute chacune dans son propre [worktree](/fr/worktrees). Consultez [Exécuter des agents en parallèle](/fr/agents) pour comprendre comment ces approches se rapportent.25**Exécution du travail en parallèle.** Claude délègue les tâches secondaires aux [sous-agents](/fr/sub-agents), et `/tasks` répertorie ce qui s'exécute en arrière-plan de la session actuelle. `/background` détache la session entière pour continuer à s'exécuter en tant qu'[agent en arrière-plan](/fr/agent-view) et libère votre terminal. Pour une modification importante qui s'étend sur la base de code, `/batch` la décompose en unités indépendantes et exécute chacune dans son propre [worktree](/fr/worktrees). Consultez [Exécuter des agents en parallèle](/fr/agents) pour comprendre comment ces approches se rapportent.

26 26 

27**Avant de livrer.** `/diff` montre ce qui a changé, `/code-review` vérifie la diff pour les bugs de correction et les nettoyages et peut appliquer les résultats avec `--fix`, `/review` exécute le même examen en lecture seule sur une demande de tirage GitHub, et `/security-review` donne une lecture plus approfondie en lecture seule. `/code-review ultra` exécute un examen multi-agents dans le cloud.27**Avant de livrer.** `/diff` montre ce qui a changé, `/code-review` vérifie la diff pour les bugs de correction et les nettoyages et peut appliquer les résultats avec `--fix`, `/review` exécute le même examen en lecture seule sur une demande de tirage GitHub, et `/security-review` donne une lecture plus approfondie en lecture seule. `/code-review ultra` exécute un examen multi-agents dans le cloud.

28 28 


51| :--------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |51| :--------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

52| `/add-dir <path>` | Ajouter un répertoire de travail pour l'accès aux fichiers pendant la session actuelle. La plupart de la configuration `.claude/` [n'est pas découverte](/fr/permissions#additional-directories-grant-file-access-not-configuration) à partir du répertoire ajouté. Vous pouvez ensuite reprendre la session à partir du répertoire ajouté avec `--continue` ou `--resume` |52| `/add-dir <path>` | Ajouter un répertoire de travail pour l'accès aux fichiers pendant la session actuelle. La plupart de la configuration `.claude/` [n'est pas découverte](/fr/permissions#additional-directories-grant-file-access-not-configuration) à partir du répertoire ajouté. Vous pouvez ensuite reprendre la session à partir du répertoire ajouté avec `--continue` ou `--resume` |

53| `/advisor [model\|off]` | {/* min-version: 2.1.98 */}Activer ou désactiver l'[outil advisor](/fr/advisor), qui consulte un second modèle pour obtenir des conseils à des moments clés lors d'une tâche. Accepte `opus`, `sonnet`, `fable` ({/* min-version: 2.1.170 */}v2.1.170+), ou un ID de modèle complet. Sans argument, ouvre un sélecteur. Nécessite Claude Code v2.1.98 ou ultérieur |53| `/advisor [model\|off]` | {/* min-version: 2.1.98 */}Activer ou désactiver l'[outil advisor](/fr/advisor), qui consulte un second modèle pour obtenir des conseils à des moments clés lors d'une tâche. Accepte `opus`, `sonnet`, `fable` ({/* min-version: 2.1.170 */}v2.1.170+), ou un ID de modèle complet. Sans argument, ouvre un sélecteur. Nécessite Claude Code v2.1.98 ou ultérieur |

54| `/agents` | Gérer les configurations des [agents](/fr/sub-agents) |54| `/agents` | {/* min-version: 2.1.198 */}À partir de v2.1.198, exécuter `/agents` affiche un rappel pour demander à Claude de créer ou gérer des [sous-agents](/fr/sub-agents), ou pour modifier `.claude/agents/` ou `~/.claude/agents/` directement. {/* max-version: 2.1.197 */}Sur v2.1.197 et antérieur, ouvre une interface interactive pour créer et gérer les configurations des sous-agents |

55| `/autofix-pr [prompt]` | Générer une session [Claude Code sur le web](/fr/claude-code-on-the-web#auto-fix-pull-requests) qui surveille la PR de la branche actuelle et pousse les corrections lorsque la CI échoue ou que les relecteurs laissent des commentaires. Détecte la PR ouverte de votre branche extraite avec `gh pr view` ; pour surveiller une PR différente, extrayez d'abord sa branche. Par défaut, la session distante est invitée à corriger chaque échec de CI et commentaire de révision ; passez une invite pour lui donner des instructions différentes, par exemple `/autofix-pr only fix lint and type errors`. Nécessite le CLI `gh` et l'accès à [Claude Code sur le web](/fr/claude-code-on-the-web) |55| `/autofix-pr [prompt]` | Générer une session [Claude Code sur le web](/fr/claude-code-on-the-web#auto-fix-pull-requests) qui surveille la PR de la branche actuelle et pousse les corrections lorsque la CI échoue ou que les relecteurs laissent des commentaires. Détecte la PR ouverte de votre branche extraite avec `gh pr view` ; pour surveiller une PR différente, extrayez d'abord sa branche. Par défaut, la session distante est invitée à corriger chaque échec de CI et commentaire de révision ; passez une invite pour lui donner des instructions différentes, par exemple `/autofix-pr only fix lint and type errors`. Nécessite le CLI `gh` et l'accès à [Claude Code sur le web](/fr/claude-code-on-the-web) |

56| `/background [prompt]` | Détacher la session actuelle pour s'exécuter en tant qu'[agent d'arrière-plan](/fr/agent-view) et libérer ce terminal. Passez une invite pour envoyer une instruction supplémentaire avant de détacher. Surveillez la session avec `claude agents`. Alias : `/bg` |56| `/background [prompt]` | Détacher la session actuelle pour s'exécuter en tant qu'[agent d'arrière-plan](/fr/agent-view) et libérer ce terminal. Passez une invite pour envoyer une instruction supplémentaire avant de détacher. Surveillez la session avec `claude agents`. Alias : `/bg` |

57| `/batch <instruction>` | **[Skill](/fr/skills#bundled-skills).** Orchestrer des changements à grande échelle dans une base de code en parallèle. Recherche la base de code, décompose le travail en 5 à 30 unités indépendantes et présente un plan. Une fois approuvé, génère un [sous-agent d'arrière-plan](/fr/sub-agents#run-subagents-in-foreground-or-background) par unité dans un [git worktree](/fr/worktrees) isolé. Chaque sous-agent implémente son unité, exécute les tests et ouvre une demande de tirage. Nécessite un référentiel git. Exemple : `/batch migrate src/ from Solid to React` |57| `/batch <instruction>` | **[Skill](/fr/skills#bundled-skills).** Orchestrer des changements à grande échelle dans une base de code en parallèle. Recherche la base de code, décompose le travail en 5 à 30 unités indépendantes et présente un plan. Une fois approuvé, génère un [sous-agent d'arrière-plan](/fr/sub-agents#run-subagents-in-foreground-or-background) par unité dans un [git worktree](/fr/worktrees) isolé. Chaque sous-agent implémente son unité, exécute les tests et ouvre une demande de tirage. Nécessite un référentiel git. Exemple : `/batch migrate src/ from Solid to React` |


68| `/context [all]` | Visualiser l'utilisation actuelle du contexte sous forme de grille colorée. Affiche les suggestions d'optimisation pour les outils gourmands en contexte, le surpoids de la mémoire et les avertissements de capacité. En [mode plein écran](/fr/fullscreen), la ventilation par élément est réduite pour garder la grille visible. Passez `all` pour l'étendre |68| `/context [all]` | Visualiser l'utilisation actuelle du contexte sous forme de grille colorée. Affiche les suggestions d'optimisation pour les outils gourmands en contexte, le surpoids de la mémoire et les avertissements de capacité. En [mode plein écran](/fr/fullscreen), la ventilation par élément est réduite pour garder la grille visible. Passez `all` pour l'étendre |

69| `/copy [N]` | Copier la dernière réponse de l'assistant dans le presse-papiers. Passez un nombre `N` pour copier la Nième réponse la plus récente : `/copy 2` copie l'avant-dernière. Lorsque des blocs de code sont présents, affiche un sélecteur interactif pour sélectionner des blocs individuels ou la réponse complète. Appuyez sur `w` dans le sélecteur pour écrire la sélection dans un fichier au lieu du presse-papiers, ce qui est utile via SSH |69| `/copy [N]` | Copier la dernière réponse de l'assistant dans le presse-papiers. Passez un nombre `N` pour copier la Nième réponse la plus récente : `/copy 2` copie l'avant-dernière. Lorsque des blocs de code sont présents, affiche un sélecteur interactif pour sélectionner des blocs individuels ou la réponse complète. Appuyez sur `w` dans le sélecteur pour écrire la sélection dans un fichier au lieu du presse-papiers, ce qui est utile via SSH |

70| `/cost` | Alias pour `/usage` |70| `/cost` | Alias pour `/usage` |

71| `/dataviz [request]` | **[Skill](/fr/skills#bundled-skills).** Conseils de conception pour les graphiques, les diagrammes et les tableaux de bord. Claude choisit la forme de graphique pour les données, assigne la couleur par rôle, valide la palette pour la sécurité des daltoniens et le contraste avec un script fourni, et applique les règles de marque, d'interaction et d'accessibilité. Utilise une palette de marque neutre que vous remplacez par la vôtre. {/* min-version: 2.1.198 */}Nécessite Claude Code v2.1.198 ou ultérieur |

71| `/debug [description]` | **[Skill](/fr/skills#bundled-skills).** Activer la journalisation de débogage pour la session actuelle et dépanner les problèmes en lisant le journal de débogage de la session. La journalisation de débogage est désactivée par défaut sauf si vous avez démarré avec `claude --debug`, donc exécuter `/debug` en milieu de session commence à capturer les journaux à partir de ce moment. Décrivez optionnellement le problème pour concentrer l'analyse |72| `/debug [description]` | **[Skill](/fr/skills#bundled-skills).** Activer la journalisation de débogage pour la session actuelle et dépanner les problèmes en lisant le journal de débogage de la session. La journalisation de débogage est désactivée par défaut sauf si vous avez démarré avec `claude --debug`, donc exécuter `/debug` en milieu de session commence à capturer les journaux à partir de ce moment. Décrivez optionnellement le problème pour concentrer l'analyse |

72| `/deep-research <question>` | **[Workflow](/fr/workflows#bundled-workflows).** Déployer des recherches web sur une question, récupérer et vérifier les sources, et synthétiser un rapport cité |73| `/deep-research <question>` | **[Workflow](/fr/workflows#bundled-workflows).** Déployer des recherches web sur une question, récupérer et vérifier les sources, et synthétiser un rapport cité |

73| `/design-login` | Autoriser l'accès au système de conception pour `/design-sync` avec votre compte claude.ai |74| `/design-login` | Autoriser l'accès au système de conception pour `/design-sync` avec votre compte claude.ai |

74| `/design-sync [hint]` | **[Skill](/fr/skills#bundled-skills).** Convertir le système de conception React de votre référentiel et le télécharger vers [Claude Design](https://claude.ai/design), afin que les conceptions qu'il produit utilisent vos vrais composants. Nommez optionnellement le système de conception, par exemple `/design-sync Acme DS`. Une première synchronisation vérifie chaque composant et peut prendre quelques heures sur un grand référentiel. Disponible sur l'API Anthropic ; sur Amazon Bedrock, la plateforme d'agents de Google Cloud, et Microsoft Foundry, l'outil sous-jacent ne peut pas atteindre claude.ai, donc la commande n'est pas disponible |75| `/design-sync [hint]` | **[Skill](/fr/skills#bundled-skills).** Convertir le système de conception React de votre référentiel et le télécharger vers [Claude Design](https://claude.ai/design), afin que les conceptions qu'il produit utilisent vos vrais composants. Nommez optionnellement le système de conception, par exemple `/design-sync Acme DS`. Une première synchronisation vérifie chaque composant et peut prendre quelques heures sur un grand référentiel. Disponible sur l'API Anthropic ; sur Amazon Bedrock, la plateforme d'agents de Google Cloud, et Microsoft Foundry, l'outil sous-jacent ne peut pas atteindre claude.ai, donc la commande n'est pas disponible |

75| `/desktop` | Continuer la session actuelle dans l'application Claude Code Desktop. Nécessite macOS ou Windows et un abonnement Claude. Alias : `/app` |76| `/desktop` | Continuer la session actuelle dans l'application Claude Code Desktop. Nécessite macOS ou Windows et un abonnement Claude. Alias : `/app` |

76| `/diff` | Ouvrir un visualiseur de diff interactif montrant les modifications non validées et les diffs par tour. Utilisez les flèches gauche/droite pour basculer entre le diff git actuel et les tours Claude individuels, et haut/bas pour parcourir les fichiers |77| `/diff` | Ouvrir un visualiseur de diff interactif montrant les modifications non validées et les diffs par tour. Utilisez les flèches gauche/droite pour basculer entre le diff git actuel et les tours Claude individuels, et haut/bas pour parcourir les fichiers. {/* min-version: 2.1.198 */}À partir de v2.1.198, le visualiseur ouvert se rafraîchit également automatiquement lorsque l'état git du référentiel change en dehors de la session, comme un changement de branche ou un commit dans un autre terminal |

77| `/doctor` | Diagnostiquer et vérifier votre installation et vos paramètres Claude Code. Les résultats s'affichent avec des icônes de statut. Appuyez sur `f` pour que Claude corrige les problèmes signalés |78| `/doctor` | Diagnostiquer et vérifier votre installation et vos paramètres Claude Code. Les résultats s'affichent avec des icônes de statut. Appuyez sur `f` pour que Claude corrige les problèmes signalés |

78| `/effort [level\|auto]` | Définir le [niveau d'effort](/fr/model-config#adjust-effort-level) du modèle. Accepte `low`, `medium`, `high`, `xhigh`, `max`, ou `ultracode` ; les niveaux disponibles dépendent du modèle, et `max` et `ultracode` sont limités à la session. `ultracode` est un paramètre Claude Code qui combine le raisonnement `xhigh` avec l'orchestration automatique du [workflow](/fr/workflows#let-claude-decide-with-ultracode). `auto` réinitialise à la valeur par défaut du modèle. Sans argument, ouvre un curseur interactif ; utilisez les flèches gauche et droite pour choisir un niveau et `Entrée` pour appliquer. Prend effet immédiatement sans attendre la fin de la réponse actuelle |79| `/effort [level\|auto]` | Définir le [niveau d'effort](/fr/model-config#adjust-effort-level) du modèle. Accepte `low`, `medium`, `high`, `xhigh`, `max`, ou `ultracode` ; les niveaux disponibles dépendent du modèle, et `max` et `ultracode` sont limités à la session. `ultracode` est un paramètre Claude Code qui combine le raisonnement `xhigh` avec l'orchestration automatique du [workflow](/fr/workflows#let-claude-decide-with-ultracode). `auto` réinitialise à la valeur par défaut du modèle. Sans argument, ouvre un curseur interactif ; utilisez les flèches gauche et droite pour choisir un niveau et `Entrée` pour appliquer. Prend effet immédiatement sans attendre la fin de la réponse actuelle |

79| `/exit` | Quitter le CLI. Dans une [session d'arrière-plan](/fr/agent-view#attach-to-a-session) attachée, cela détache et la session continue de s'exécuter. Alias : `/quit` |80| `/exit` | Quitter le CLI. Dans une [session d'arrière-plan](/fr/agent-view#attach-to-a-session) attachée, cela détache et la session continue de s'exécuter. Alias : `/quit` |


81| `/fast [on\|off]` | Activer ou désactiver le [mode rapide](/fr/fast-mode) |82| `/fast [on\|off]` | Activer ou désactiver le [mode rapide](/fr/fast-mode) |

82| `/feedback [report]` | Soumettre des commentaires, signaler un bogue ou partager votre conversation. Alias : `/bug`, `/share` |83| `/feedback [report]` | Soumettre des commentaires, signaler un bogue ou partager votre conversation. Alias : `/bug`, `/share` |

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

84| `/focus` | Activer/désactiver la vue de focus, qui affiche uniquement votre dernière invite, un résumé d'appel d'outil d'une ligne avec les statistiques de diff d'édition, et la réponse finale. La sélection persiste entre les sessions ; définissez [`viewMode`](/fr/settings#available-settings) dans les paramètres pour la remplacer. Disponible uniquement dans le [rendu en plein écran](/fr/fullscreen) |85| `/focus` | Activer/désactiver la vue de focus, qui affiche uniquement votre dernière invite, un résumé d'appel d'outil d'une ligne avec les statistiques de diff d'édition, et la réponse finale. {/* min-version: 2.1.198 */}À partir de v2.1.198, le résumé d'appel d'outil compte également les sous-agents lancés dans le tour et réduit les notifications de tâche d'arrière-plan terminées en un seul décompte. La sélection persiste entre les sessions ; définissez [`viewMode`](/fr/settings#available-settings) dans les paramètres pour la remplacer. Disponible uniquement dans le [rendu en plein écran](/fr/fullscreen) |

85| `/fork <directive>` | {/* min-version: 2.1.161 */}Générer un [sous-agent forké](/fr/sub-agents#fork-the-current-conversation) : un sous-agent d'arrière-plan qui hérite de la conversation complète et travaille sur la directive pendant que vous continuez. Son résultat revient à votre conversation lorsqu'il se termine. Pour basculer dans une copie de la conversation vous-même, utilisez `/branch`. Avant v2.1.161, `/fork` est un alias pour `/branch` |86| `/fork <directive>` | {/* min-version: 2.1.161 */}Générer un [sous-agent forké](/fr/sub-agents#fork-the-current-conversation) : un sous-agent d'arrière-plan qui hérite de la conversation complète et travaille sur la directive pendant que vous continuez. Son résultat revient à votre conversation lorsqu'il se termine. Pour basculer dans une copie de la conversation vous-même, utilisez `/branch`. Avant v2.1.161, `/fork` est un alias pour `/branch` |

86| `/goal [condition\|clear]` | Définir un [objectif](/fr/goal) : Claude continue à travailler entre les tours jusqu'à ce que la condition soit remplie. Sans argument, affiche l'objectif actuel ou le plus récemment atteint. `clear`, `stop`, `off`, `reset`, `none`, ou `cancel` supprime un objectif actif plus tôt |87| `/goal [condition\|clear]` | Définir un [objectif](/fr/goal) : Claude continue à travailler entre les tours jusqu'à ce que la condition soit remplie. Sans argument, affiche l'objectif actuel ou le plus récemment atteint. `clear`, `stop`, `off`, `reset`, `none`, ou `cancel` supprime un objectif actif plus tôt |

87| `/heapdump` | Écrire un snapshot de tas JavaScript et une ventilation de la mémoire vers `~/Desktop`, ou votre répertoire personnel sur Linux sans dossier Desktop, pour diagnostiquer une utilisation élevée de la mémoire. Consultez le [dépannage](/fr/troubleshooting#high-cpu-or-memory-usage) |88| `/heapdump` | Écrire un snapshot de tas JavaScript et une ventilation de la mémoire vers `~/Desktop`, ou votre répertoire personnel sur Linux sans dossier Desktop, pour diagnostiquer une utilisation élevée de la mémoire. Consultez le [dépannage](/fr/troubleshooting#high-cpu-or-memory-usage) |


127| `/setup-bedrock` | Configurer l'authentification [Amazon Bedrock](/fr/amazon-bedrock), la région et les épingles de modèle via un assistant interactif. Visible uniquement lorsque `CLAUDE_CODE_USE_BEDROCK=1` est défini. Les utilisateurs de Bedrock pour la première fois peuvent également accéder à cet assistant à partir de l'écran de connexion |128| `/setup-bedrock` | Configurer l'authentification [Amazon Bedrock](/fr/amazon-bedrock), la région et les épingles de modèle via un assistant interactif. Visible uniquement lorsque `CLAUDE_CODE_USE_BEDROCK=1` est défini. Les utilisateurs de Bedrock pour la première fois peuvent également accéder à cet assistant à partir de l'écran de connexion |

128| `/setup-vertex` | Configurer l'authentification [Google Vertex AI](/fr/google-vertex-ai), le projet, la région et les épingles de modèle via un assistant interactif. Visible uniquement lorsque `CLAUDE_CODE_USE_VERTEX=1` est défini. Les utilisateurs de Vertex AI pour la première fois peuvent également accéder à cet assistant à partir de l'écran de connexion |129| `/setup-vertex` | Configurer l'authentification [Google Vertex AI](/fr/google-vertex-ai), le projet, la région et les épingles de modèle via un assistant interactif. Visible uniquement lorsque `CLAUDE_CODE_USE_VERTEX=1` est défini. Les utilisateurs de Vertex AI pour la première fois peuvent également accéder à cet assistant à partir de l'écran de connexion |

129| `/simplify [target]` | {/* min-version: 2.1.154 */}**[Skill](/fr/skills#bundled-skills).** Examiner le code modifié pour les opportunités de nettoyage et appliquer les corrections. Quatre [agents](/fr/sub-agents) d'examen s'exécutent en parallèle, couvrant la réutilisation des assistants existants, la simplification, l'efficacité et si le changement se situe au bon niveau d'abstraction. À partir de v2.1.154, l'examen ne recherche pas les bugs de correction. Utilisez `/code-review` pour trouver les bugs. Sur les versions antérieures, `/simplify` est équivalent à `/code-review --fix`. Passez un chemin ou une référence PR pour examiner une cible spécifique |130| `/simplify [target]` | {/* min-version: 2.1.154 */}**[Skill](/fr/skills#bundled-skills).** Examiner le code modifié pour les opportunités de nettoyage et appliquer les corrections. Quatre [agents](/fr/sub-agents) d'examen s'exécutent en parallèle, couvrant la réutilisation des assistants existants, la simplification, l'efficacité et si le changement se situe au bon niveau d'abstraction. À partir de v2.1.154, l'examen ne recherche pas les bugs de correction. Utilisez `/code-review` pour trouver les bugs. Sur les versions antérieures, `/simplify` est équivalent à `/code-review --fix`. Passez un chemin ou une référence PR pour examiner une cible spécifique |

130| `/skills` | Lister les [skills](/fr/skills) disponibles. Appuyez sur `t` pour trier par nombre de tokens. Appuyez sur `Espace` pour [masquer un skill à Claude ou au menu `/`](/fr/skills#override-skill-visibility-from-settings), puis `Entrée` pour enregistrer |131| `/skills` | Lister les [skills](/fr/skills) disponibles. {/* min-version: 2.1.121 */}À partir de v2.1.121, tapez pour filtrer la liste par nom. Appuyez sur `t` pour trier par nombre de tokens. Appuyez sur `Espace` pour [masquer un skill à Claude ou au menu `/`](/fr/skills#override-skill-visibility-from-settings), puis `Entrée` pour enregistrer |

131| `/stats` | Alias pour `/usage`. Ouvre l'onglet Stats |132| `/stats` | Alias pour `/usage`. Ouvre l'onglet Stats |

132| `/status` | Ouvrir l'interface des Paramètres (onglet Statut) affichant la version, le modèle, le compte et la connectivité. Fonctionne pendant que Claude répond, sans attendre la fin de la réponse actuelle |133| `/status` | Ouvrir l'interface des Paramètres (onglet Statut) affichant la version, le modèle, le compte et la connectivité. Fonctionne pendant que Claude répond |

133| `/statusline` | Configurer la [ligne de statut](/fr/statusline) de Claude Code. Décrivez ce que vous voulez, ou exécutez sans arguments pour auto-configurer à partir de votre invite shell |134| `/statusline` | Configurer la [ligne de statut](/fr/statusline) de Claude Code. Décrivez ce que vous voulez, ou exécutez sans arguments pour auto-configurer à partir de votre invite shell |

134| `/stickers` | Commander des autocollants Claude Code |135| `/stickers` | Commander des autocollants Claude Code |

135| `/stop` | Arrêter la [session d'arrière-plan](/fr/agent-view) actuelle. Disponible uniquement lors de l'attachement à une session d'arrière-plan ; la transcription et tout worktree sont conservés. Pour détacher sans arrêter, utilisez `/exit` ou appuyez sur `←` |136| `/stop` | Arrêter la [session d'arrière-plan](/fr/agent-view) actuelle. Disponible uniquement lors de l'attachement à une session d'arrière-plan ; la transcription et tout worktree sont conservés. Pour détacher sans arrêter, utilisez `/exit` ou appuyez sur `←` |

Details

1587 Ce qui survit à la compaction1587 Ce qui survit à la compaction

1588</h2>1588</h2>

1589 1589 

1590Quand une longue session se compacte, Claude Code résume l'historique de la conversation pour l'adapter à la fenêtre de contexte. Ce qui arrive à vos instructions dépend de la façon dont elles ont été chargées :1590Quand une longue session se compacte, Claude Code résume l'historique de la conversation pour l'adapter à la fenêtre de contexte. {/* min-version: 2.1.198 */}À partir de la v2.1.198, la demande de résumé hérite de la configuration de [réflexion étendue](/fr/model-config#extended-thinking) de votre session, de sorte qu'elle raisonne avec la réflexion activée quand votre session l'a activée et reste désactivée sinon. La réflexion affecte uniquement la façon dont le résumé est produit ; vos paramètres de session restent inchangés après. Ce qui arrive à vos instructions dépend de la façon dont elles ont été chargées :

1591 1591 

1592| Mécanisme | Après compaction |1592| Mécanisme | Après compaction |

1593| :---------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |1593| :---------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- |

costs.md +3 −3

Details

107* **Effacer entre les tâches** : Utilisez `/clear` pour recommencer à zéro lorsque vous passez à un travail non lié. Le contexte obsolète gaspille des tokens à chaque message suivant. Utilisez `/rename` avant d'effacer pour pouvoir facilement retrouver la session plus tard, puis `/resume` pour y revenir.107* **Effacer entre les tâches** : Utilisez `/clear` pour recommencer à zéro lorsque vous passez à un travail non lié. Le contexte obsolète gaspille des tokens à chaque message suivant. Utilisez `/rename` avant d'effacer pour pouvoir facilement retrouver la session plus tard, puis `/resume` pour y revenir.

108* **Ajouter des instructions de compaction personnalisées** : `/compact Focus on code samples and API usage` indique à Claude ce qu'il faut préserver lors de la résumé.108* **Ajouter des instructions de compaction personnalisées** : `/compact Focus on code samples and API usage` indique à Claude ce qu'il faut préserver lors de la résumé.

109 109 

110Vous pouvez également personnaliser le comportement de compaction dans votre CLAUDE.md :110Vous pouvez également personnaliser le comportement de compaction dans votre fichier CLAUDE.md à la racine de votre projet :

111 111 

112```markdown theme={null}112```markdown theme={null}

113# Compact instructions113# Compact instructions


170 </Tab>170 </Tab>

171 171 

172 <Tab title="filter-test-output.sh">172 <Tab title="filter-test-output.sh">

173 Le hook appelle ce script, qui vérifie si la commande est un exécuteur de test et la modifie pour afficher uniquement les échecs :173 Le hook appelle ce script. Créez le dossier avec `mkdir -p ~/.claude/hooks`, enregistrez le script ci-dessous sous `~/.claude/hooks/filter-test-output.sh` et rendez-le exécutable avec `chmod +x ~/.claude/hooks/filter-test-output.sh`. Il vérifie si la commande est un exécuteur de test et la modifie pour afficher uniquement les échecs :

174 174 

175 ```bash theme={null}175 ```bash theme={null}

176 #!/bin/bash176 #!/bin/bash


198 Ajuster la réflexion étendue198 Ajuster la réflexion étendue

199</h3>199</h3>

200 200 

201La réflexion étendue est activée par défaut car elle améliore considérablement les performances sur les tâches complexes de planification et de raisonnement. Les tokens de réflexion sont facturés comme des tokens de sortie, et le budget par défaut peut être des dizaines de milliers de tokens par requête selon le modèle. Pour les tâches plus simples où un raisonnement approfondi n'est pas nécessaire, vous pouvez réduire les coûts en abaissant le [niveau d'effort](/fr/model-config#adjust-effort-level) avec `/effort` ou dans `/model`, en désactivant la réflexion dans `/config`, ou, sur les modèles avec un [budget de réflexion fixe](/fr/model-config#adaptive-reasoning-and-fixed-thinking-budgets), en abaissant le budget avec `MAX_THINKING_TOKENS=8000`. Les modèles de raisonnement adaptatif ignorent les budgets non nuls, donc utilisez plutôt les niveaux d'effort. La désactivation de la réflexion n'est pas disponible sur Fable 5, qui utilise toujours la réflexion étendue.201La réflexion étendue est activée par défaut car elle améliore considérablement les performances sur les tâches complexes de planification et de raisonnement. Les tokens de réflexion sont facturés comme des tokens de sortie, et le budget par défaut peut être des dizaines de milliers de tokens par requête selon le modèle. Pour les tâches plus simples où un raisonnement approfondi n'est pas nécessaire, vous pouvez réduire les coûts en abaissant le [niveau d'effort](/fr/model-config#adjust-effort-level) avec `/effort` ou dans `/model`, en désactivant la réflexion dans `/config`, ou, sur les modèles avec un [budget de réflexion fixe](/fr/model-config#adaptive-reasoning-and-fixed-thinking-budgets), en abaissant le budget en définissant la [variable d'environnement](/fr/env-vars) `MAX_THINKING_TOKENS`, par exemple `MAX_THINKING_TOKENS=8000`. Les modèles de raisonnement adaptatif ignorent les budgets non nuls, donc utilisez plutôt les niveaux d'effort. La désactivation de la réflexion n'est pas disponible sur Fable 5, qui utilise toujours la réflexion étendue.

202 202 

203<h3 id="delegate-verbose-operations-to-subagents">203<h3 id="delegate-verbose-operations-to-subagents">

204 Déléguer les opérations détaillées aux subagents204 Déléguer les opérations détaillées aux subagents

Details

14 Voir ce qui a été chargé dans le contexte14 Voir ce qui a été chargé dans le contexte

15</h2>15</h2>

16 16 

17La commande `/context` affiche tout ce qui occupe la fenêtre de contexte pour la session actuelle, ventilé par catégorie : invite système, fichiers de mémoire, skills, outils MCP et messages de conversation. Exécutez-la d'abord pour confirmer si vos fichiers `CLAUDE.md`, règles ou descriptions de skills sont présents.17La commande `/context` affiche tout ce qui occupe la fenêtre de contexte pour la session actuelle, ventilé par catégorie : invite système, fichiers de mémoire, skills, sous-agents personnalisés avec la source de chacun, outils MCP et messages de conversation. Exécutez-la d'abord pour confirmer si vos fichiers `CLAUDE.md`, règles ou descriptions de skills sont présents.

18 18 

19Pour plus de détails sur une catégorie spécifique, suivez avec la commande dédiée :19Pour plus de détails sur une catégorie spécifique, suivez avec la commande dédiée :

20 20 


22| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |22| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

23| `/memory` | Quels fichiers `CLAUDE.md` et règles ont été chargés, plus les entrées de mémoire automatique |23| `/memory` | Quels fichiers `CLAUDE.md` et règles ont été chargés, plus les entrées de mémoire automatique |

24| `/skills` | Les skills disponibles provenant des sources de projet, utilisateur et plugin |24| `/skills` | Les skills disponibles provenant des sources de projet, utilisateur et plugin |

25| `/agents` | Les sous-agents configurés et leurs paramètres |

26| `/hooks` | Les configurations de hooks actives |25| `/hooks` | Les configurations de hooks actives |

27| `/mcp` | Les serveurs MCP connectés et leur statut |26| `/mcp` | Les serveurs MCP connectés et leur statut |

28| `/permissions` | Les règles d'autorisation et de refus résolues actuellement en vigueur |27| `/permissions` | Les règles d'autorisation et de refus résolues actuellement en vigueur |

desktop.md +1 −1

Details

829* **Linux (bêta)** : l'utilisation informatique n'est pas encore disponible dans l'application de bureau Linux. Voir [Claude Desktop sur Linux](/fr/desktop-linux).829* **Linux (bêta)** : l'utilisation informatique n'est pas encore disponible dans l'application de bureau Linux. Voir [Claude Desktop sur Linux](/fr/desktop-linux).

830* **Suggestions de code en ligne** : Desktop ne fournit pas de suggestions de style autocomplétion. Il fonctionne via des prompts conversationnels et des modifications de code explicites.830* **Suggestions de code en ligne** : Desktop ne fournit pas de suggestions de style autocomplétion. Il fonctionne via des prompts conversationnels et des modifications de code explicites.

831* **Équipes d'agents** : les sessions Claude Code parallèles qui se communiquent entre elles sont disponibles dans la [CLI](/fr/agent-teams), pas dans Desktop. Pour le travail multi-agents dans une seule session, utilisez les [flux de travail dynamiques](/fr/workflows), qui s'exécutent dans Desktop.831* **Équipes d'agents** : les sessions Claude Code parallèles qui se communiquent entre elles sont disponibles dans la [CLI](/fr/agent-teams), pas dans Desktop. Pour le travail multi-agents dans une seule session, utilisez les [flux de travail dynamiques](/fr/workflows), qui s'exécutent dans Desktop.

832* **Commandes de dialogue terminal** : les commandes intégrées qui ouvrent un panneau interactif dans le terminal, telles que `/permissions`, `/config`, `/agents` et `/doctor`, ne sont pas disponibles dans l'onglet Code et répondent avec `n'est pas disponible dans cet environnement`. Modifiez les [fichiers de paramètres](/fr/settings) directement pour gérer les règles de permission et la configuration, ou exécutez la commande à partir de la CLI autonome.832* **Commandes de dialogue terminal** : les commandes intégrées qui ouvrent un panneau interactif dans le terminal, telles que `/permissions`, `/config` et `/doctor`, ne sont pas disponibles dans l'onglet Code et répondent avec `n'est pas disponible dans cet environnement`. Modifiez les [fichiers de paramètres](/fr/settings) directement pour gérer les règles de permission et la configuration, ou exécutez la commande à partir de la CLI autonome.

833 833 

834<h2 id="troubleshooting">834<h2 id="troubleshooting">

835 Dépannage835 Dépannage

env-vars.md +9 −5

Details

145| `BASH_MAX_TIMEOUT_MS` | Délai d'expiration maximal que le modèle peut définir pour les commandes bash longues (par défaut : 600 000, ou 10 minutes) |145| `BASH_MAX_TIMEOUT_MS` | Délai d'expiration maximal que le modèle peut définir pour les commandes bash longues (par défaut : 600 000, ou 10 minutes) |

146| `CCR_FORCE_BUNDLE` | Définissez sur `1` pour forcer [`claude --remote`](/fr/claude-code-on-the-web#send-local-repositories-without-github) à regrouper et télécharger votre référentiel local même lorsque l'accès à GitHub est disponible |146| `CCR_FORCE_BUNDLE` | Définissez sur `1` pour forcer [`claude --remote`](/fr/claude-code-on-the-web#send-local-repositories-without-github) à regrouper et télécharger votre référentiel local même lorsque l'accès à GitHub est disponible |

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

148| `CLAUDE_AFK_COUNTDOWN_MS` | {/* min-version: 2.1.198 */}Combien de millisecondes avant le compte à rebours d'auto-continuation apparaît sur un dialogue `AskUserQuestion` sans réponse. Par défaut `20000` (20 secondes). Voir `CLAUDE_AFK_TIMEOUT_MS`. Nécessite Claude Code v2.1.198 ou ultérieur |

149| `CLAUDE_AFK_TIMEOUT_MS` | {/* min-version: 2.1.198 */}Combien de millisecondes de temps d'inactivité avant qu'un dialogue [`AskUserQuestion`](/fr/tools-reference) sans réponse se poursuive automatiquement sans vous. Par défaut `60000` (60 secondes). Pour garder les questions ouvertes pendant que vous êtes absent, définissez une grande valeur comme `86400000` (24 heures). La définition de `0` ne désactive pas le délai d'expiration ; elle ferme le dialogue immédiatement. Nécessite Claude Code v2.1.198 ou ultérieur |

148| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Définissez sur `1` pour désactiver tous les types de [subagent](/fr/sub-agents) intégrés tels que Explore et Plan. S'applique uniquement en mode non interactif (l'indicateur `-p`). Utile pour les utilisateurs du SDK qui veulent une ardoise vierge |150| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Définissez sur `1` pour désactiver tous les types de [subagent](/fr/sub-agents) intégrés tels que Explore et Plan. S'applique uniquement en mode non interactif (l'indicateur `-p`). Utile pour les utilisateurs du SDK qui veulent une ardoise vierge |

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

150| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Délai d'expiration de blocage en millisecondes pour les subagents en arrière-plan. Par défaut `600000` (10 minutes). Le minuteur se réinitialise à chaque événement de progression en continu ; si aucune progression n'arrive dans la fenêtre, le subagent est interrompu et la tâche est marquée comme échouée, exposant tout résultat partiel au parent |152| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Délai d'expiration de blocage en millisecondes pour les subagents en arrière-plan. Par défaut `600000` (10 minutes). Le minuteur se réinitialise à chaque événement de progression en continu ; si aucune progression n'arrive dans la fenêtre, le subagent est interrompu et la tâche est marquée comme échouée, exposant tout résultat partiel au parent |


162| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Définissez sur `0` pour omettre le bloc d'attribution (version client et empreinte digitale d'invite) du début de l'invite système. La désactiver améliore les taux de succès du cache d'invite lors du routage via une [passerelle LLM](/fr/llm-gateway). La mise en cache de l'API Anthropic n'est pas affectée |164| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Définissez sur `0` pour omettre le bloc d'attribution (version client et empreinte digitale d'invite) du début de l'invite système. La désactiver améliore les taux de succès du cache d'invite lors du routage via une [passerelle LLM](/fr/llm-gateway). La mise en cache de l'API Anthropic n'est pas affectée |

163| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Définissez la capacité de contexte en tokens utilisée pour les calculs de compactage automatique. Par défaut, la fenêtre de contexte du modèle : 200 K pour les modèles standard ou 1 M pour les modèles de [contexte étendu](/fr/model-config#extended-context), sauf sur Sonnet 5, qui a son propre [seuil par défaut](/fr/model-config#sonnet-5-context-window). Utilisez une valeur inférieure comme `500000` sur un modèle 1 M pour traiter la fenêtre comme 500 K à des fins de compactage. La valeur est plafonnée à la fenêtre de contexte réelle du modèle. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` est appliqué en pourcentage de cette valeur. La définition de cette variable découple le seuil de compactage du `used_percentage` de la ligne d'état, qui utilise toujours la fenêtre de contexte complète du modèle |165| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Définissez la capacité de contexte en tokens utilisée pour les calculs de compactage automatique. Par défaut, la fenêtre de contexte du modèle : 200 K pour les modèles standard ou 1 M pour les modèles de [contexte étendu](/fr/model-config#extended-context), sauf sur Sonnet 5, qui a son propre [seuil par défaut](/fr/model-config#sonnet-5-context-window). Utilisez une valeur inférieure comme `500000` sur un modèle 1 M pour traiter la fenêtre comme 500 K à des fins de compactage. La valeur est plafonnée à la fenêtre de contexte réelle du modèle. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` est appliqué en pourcentage de cette valeur. La définition de cette variable découple le seuil de compactage du `used_percentage` de la ligne d'état, qui utilise toujours la fenêtre de contexte complète du modèle |

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

167| `CLAUDE_CODE_BRIDGE_SESSION_ID` | {/* min-version: 2.1.199 */}Défini automatiquement dans les sous-processus de l'outil Bash et de la [commande hook](/fr/hooks) tandis que la session a une connexion [Contrôle à distance](/fr/remote-control) active, et supprimé lorsque la connexion se termine. La valeur est l'ID de la session sous la forme `session_`, le même identifiant qui apparaît dans l'URL `claude.ai/code` de la session, de sorte qu'un script peut créer un lien vers la session qui l'a exécuté. Nécessite Claude Code v2.1.199 ou ultérieur. Dans les [sessions cloud](/fr/claude-code-on-the-web), lisez `CLAUDE_CODE_REMOTE_SESSION_ID` à la place |

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

166| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Défini sur `1` dans les sous-processus que Claude Code génère via les outils Bash, PowerShell et Monitor, les commandes [hook](/fr/hooks) et les commandes de [ligne d'état](/fr/statusline). Non défini pour les sous-processus du serveur MCP [stdio](/fr/mcp), qui sont longue durée et survivent à la session qui les a générés. Contrairement à `CLAUDECODE`, ceci n'est défini que par Claude Code lui-même lorsqu'il lance un sous-processus et non par les extensions IDE, de sorte qu'il distingue de manière fiable une session imbriquée d'une `claude` de niveau supérieur lancée dans un terminal intégré IDE. Une `claude` TUI interactive imbriquée démarrée de cette manière est automatiquement exclue de `--resume`, `--continue`, l'historique de la flèche vers le haut et la liste `claude agents`. Les sessions non-interactives `claude -p` persistent toujours. Définissez `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` pour remplacer cette exclusion. Nécessite Claude Code v2.1.172 ou ultérieur |169| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Défini sur `1` dans les sous-processus que Claude Code génère via les outils Bash, PowerShell et Monitor, les commandes [hook](/fr/hooks) et les commandes de [ligne d'état](/fr/statusline). Non défini pour les sous-processus du serveur MCP [stdio](/fr/mcp), qui sont longue durée et survivent à la session qui les a générés. Contrairement à `CLAUDECODE`, ceci n'est défini que par Claude Code lui-même lorsqu'il lance un sous-processus et non par les extensions IDE, de sorte qu'il distingue de manière fiable une session imbriquée d'une `claude` de niveau supérieur lancée dans un terminal intégré IDE. Une `claude` TUI interactive imbriquée démarrée de cette manière est automatiquement exclue de `--resume`, `--continue`, l'historique de la flèche vers le haut et la liste `claude agents`. Les sessions non-interactives `claude -p` persistent toujours. Définissez `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` pour remplacer cette exclusion. Nécessite Claude Code v2.1.172 ou ultérieur |

167| `CLAUDE_CODE_CLIENT_CERT` | Chemin d'accès au fichier de certificat client pour l'authentification mTLS |170| `CLAUDE_CODE_CLIENT_CERT` | Chemin d'accès au fichier de certificat client pour l'authentification mTLS |


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

173| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Définissez sur `1` pour désactiver la prise en charge de la [fenêtre de contexte 1 M](/fr/model-config#extended-context). Lorsqu'elle est définie, les variantes de modèle 1 M ne sont pas disponibles dans le sélecteur de modèle, et les sessions [Sonnet 5](/fr/model-config#sonnet-5-context-window) sont traitées comme ayant une fenêtre 200K. Utile pour les environnements d'entreprise avec des exigences de conformité |176| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Définissez sur `1` pour désactiver la prise en charge de la [fenêtre de contexte 1 M](/fr/model-config#extended-context). Lorsqu'elle est définie, les variantes de modèle 1 M ne sont pas disponibles dans le sélecteur de modèle, et les sessions [Sonnet 5](/fr/model-config#sonnet-5-context-window) sont traitées comme ayant une fenêtre 200K. Utile pour les environnements d'entreprise avec des exigences de conformité |

174| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Définissez sur `1` pour désactiver le [raisonnement adaptatif](/fr/model-config#adjust-effort-level) sur Opus 4.6 et Sonnet 4.6 et revenir au budget de réflexion fixe contrôlé par `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}À partir de v2.1.111, n'a aucun effet sur Fable 5, Sonnet 5 ou Opus 4.7 et versions ultérieures, qui utilisent toujours le raisonnement adaptatif |177| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Définissez sur `1` pour désactiver le [raisonnement adaptatif](/fr/model-config#adjust-effort-level) sur Opus 4.6 et Sonnet 4.6 et revenir au budget de réflexion fixe contrôlé par `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}À partir de v2.1.111, n'a aucun effet sur Fable 5, Sonnet 5 ou Opus 4.7 et versions ultérieures, qui utilisent toujours le raisonnement adaptatif |

175| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Définissez sur `1` pour désactiver l'[outil advisor](/fr/advisor). La commande `/advisor` et le drapeau `--advisor` deviennent indisponibles et tout `advisorModel` configuré est ignoré. Nécessite Claude Code v2.1.98 ou ultérieur |178| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Définissez sur `1` pour désactiver l'[outil advisor](/fr/advisor). La commande `/advisor` devient indisponible, tout `advisorModel` configuré est ignoré, et le drapeau `--advisor` est accepté mais n'a aucun effet, de sorte que les scripts existants qui le transmettent continuent à fonctionner sans erreurs. Nécessite Claude Code v2.1.98 ou ultérieur |

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

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

178| `CLAUDE_CODE_DISABLE_ARTIFACT` | Définissez sur `1` pour désactiver l'outil [Artifact](/fr/artifacts), qui publie la sortie de session en tant que page web privée sur claude.ai. Équivalent au paramètre [`disableArtifact`](/fr/settings#available-settings) |181| `CLAUDE_CODE_DISABLE_ARTIFACT` | Définissez sur `1` pour désactiver l'outil [Artifact](/fr/artifacts), qui publie la sortie de session en tant que page web privée sur claude.ai. Équivalent au paramètre [`disableArtifact`](/fr/settings#available-settings) |

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

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

181| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Définissez sur `1` pour désactiver toutes les fonctionnalités de tâche en arrière-plan, y compris le paramètre `run_in_background` sur les outils Bash et subagent, l'arrière-plan automatique et le raccourci Ctrl+B |184| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Définissez sur `1` pour désactiver toutes les fonctionnalités de tâche en arrière-plan, y compris le paramètre `run_in_background` sur les outils Bash et subagent, l'arrière-plan automatique et le raccourci Ctrl+B |

182| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}Définissez sur `1` pour arrêter les commandes shell en arrière-plan en cours d'exécution et les workflows dynamiques d'une [session en arrière-plan](/fr/agent-view) lorsque le [superviseur](/fr/agent-view#the-supervisor-process) arrête, redémarre ou met à jour le processus de cette session, au lieu de les transmettre au processus suivant de la session. Affecte uniquement cette transmission : la mise en arrière-plan d'une session avec `←` ou [`/background`](/fr/agent-view#from-inside-a-session) porte toujours le travail en cours, et `CLAUDE_DISABLE_ADOPT` désactive les deux. Nécessite Claude Code v2.1.196 ou ultérieur |185| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}Définissez sur `1` pour arrêter les commandes shell en arrière-plan en cours d'exécution, les workflows dynamiques, {/* min-version: 2.1.198 */}et, à partir de v2.1.198, les subagents en arrière-plan d'une [session en arrière-plan](/fr/agent-view) lorsque le [superviseur](/fr/agent-view#the-supervisor-process) arrête, redémarre ou met à jour le processus de cette session, au lieu de les transmettre au processus suivant de la session. Affecte uniquement cette transmission : la mise en arrière-plan d'une session avec `←` ou [`/background`](/fr/agent-view#from-inside-a-session) porte toujours le travail en cours, et `CLAUDE_DISABLE_ADOPT` désactive les deux. Nécessite Claude Code v2.1.196 ou ultérieur |

183| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}Définissez sur `1` pour arrêter Claude Code de terminer les [commandes shell en arrière-plan](/fr/interactive-mode#background-bash-commands) lorsque le système d'exploitation signale une pression mémoire. Par défaut, sur macOS et Linux, Claude Code termine un shell en arrière-plan démarré dans la session principale sur un signal de pression mémoire une fois que la session a été inactive pendant 30 minutes et qu'aucun tour ou subagent n'est en cours d'exécution. Windows n'a pas de signal de pression mémoire, de sorte que cette variable n'a aucun effet là-bas. Nécessite Claude Code v2.1.193 ou ultérieur |186| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}Définissez sur `1` pour arrêter Claude Code de terminer les [commandes shell en arrière-plan](/fr/interactive-mode#background-bash-commands) lorsque le système d'exploitation signale une pression mémoire. Par défaut, sur macOS et Linux, Claude Code termine un shell en arrière-plan démarré dans la session principale sur un signal de pression mémoire une fois que la session a été inactive pendant 30 minutes et qu'aucun tour ou subagent n'est en cours d'exécution. Windows n'a pas de signal de pression mémoire, de sorte que cette variable n'a aucun effet là-bas. Nécessite Claude Code v2.1.193 ou ultérieur |

184| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Définissez sur `1` pour désactiver les [skills](/fr/skills) et workflows qui sont fournis avec Claude Code : les skills groupés et les workflows intégrés sont supprimés entièrement, tandis que les commandes slash intégrées comme `/init` restent tapables mais sont masquées au modèle. Les skills des plugins, `.claude/skills/` et `.claude/commands/` ne sont pas affectés. Équivalent au paramètre [`disableBundledSkills`](/fr/settings#available-settings) ; `0` ne le remplace pas |187| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Définissez sur `1` pour désactiver les [skills](/fr/skills) et workflows qui sont fournis avec Claude Code : les skills groupés et les workflows intégrés sont supprimés entièrement, tandis que les commandes slash intégrées comme `/init` restent tapables mais sont masquées au modèle. Les skills des plugins, `.claude/skills/` et `.claude/commands/` ne sont pas affectés. Équivalent au paramètre [`disableBundledSkills`](/fr/settings#available-settings) ; `0` ne le remplace pas |

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

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

187| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Définissez sur `1` pour supprimer les en-têtes de requête `anthropic-beta` spécifiques à Anthropic et les champs de schéma d'outil bêta (tels que `defer_loading` et `eager_input_streaming`) des requêtes API. Utilisez ceci lorsqu'une passerelle proxy rejette les requêtes avec des erreurs comme « Unexpected value(s) for the `anthropic-beta` header » ou « Extra inputs are not permitted ». Les champs standard (`name`, `description`, `input_schema`, `cache_control`) sont conservés |190| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Définissez sur `1` pour supprimer les en-têtes de requête `anthropic-beta` spécifiques à Anthropic et les champs de schéma d'outil bêta (tels que `defer_loading` et `eager_input_streaming`) des requêtes API. Utilisez ceci lorsqu'une passerelle proxy rejette les requêtes avec des erreurs comme « Unexpected value(s) for the `anthropic-beta` header » ou « Extra inputs are not permitted ». Les champs standard (`name`, `description`, `input_schema`, `cache_control`) sont conservés |

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

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

189| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Définissez sur `1` pour désactiver les sondages de qualité de session « Comment Claude se débrouille-t-il ? ». Les sondages sont également désactivés lorsque `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` est défini, sauf si `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` participe à nouveau. Pour définir un taux d'échantillonnage au lieu de désactiver complètement, utilisez le paramètre [`feedbackSurveyRate`](/fr/settings#available-settings). Voir [Sondages de qualité de session](/fr/data-usage#session-quality-surveys) |193| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Définissez sur `1` pour désactiver les sondages de qualité de session « Comment Claude se débrouille-t-il ? ». Les sondages sont également désactivés lorsque `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` est défini, sauf si `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` participe à nouveau. Pour définir un taux d'échantillonnage au lieu de désactiver complètement, utilisez le paramètre [`feedbackSurveyRate`](/fr/settings#available-settings). Voir [Sondages de qualité de session](/fr/data-usage#session-quality-surveys) |

190| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Définissez sur `1` pour désactiver le [checkpointing](/fr/checkpointing) de fichier. La commande `/rewind` ne pourra pas restaurer les modifications de code |194| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Définissez sur `1` pour désactiver le [checkpointing](/fr/checkpointing) de fichier. La commande `/rewind` ne pourra pas restaurer les modifications de code |


230| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Définissez sur `1` pour ignorer la validation des entrées du fichier de verrouillage IDE lors de la connexion. À utiliser lorsque la connexion automatique ne trouve pas votre IDE malgré son exécution |234| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Définissez sur `1` pour ignorer la validation des entrées du fichier de verrouillage IDE lors de la connexion. À utiliser lorsque la connexion automatique ne trouve pas votre IDE malgré son exécution |

231| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Remplacer la taille de la fenêtre de contexte que Claude Code suppose pour le modèle actif. {/* min-version: 2.1.193 */}À partir de v2.1.193, appliqué directement pour les noms de modèles que Claude Code ne reconnaît pas comme un modèle Claude ; pour les modèles Claude reconnus, il ne prend effet que lorsque `DISABLE_COMPACT` est également défini. À utiliser lors du routage vers un modèle via `ANTHROPIC_BASE_URL` dont la fenêtre de contexte ne correspond pas à la taille intégrée pour son nom |235| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Remplacer la taille de la fenêtre de contexte que Claude Code suppose pour le modèle actif. {/* min-version: 2.1.193 */}À partir de v2.1.193, appliqué directement pour les noms de modèles que Claude Code ne reconnaît pas comme un modèle Claude ; pour les modèles Claude reconnus, il ne prend effet que lorsque `DISABLE_COMPACT` est également défini. À utiliser lors du routage vers un modèle via `ANTHROPIC_BASE_URL` dont la fenêtre de contexte ne correspond pas à la taille intégrée pour son nom |

232| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Définissez le nombre maximal de tokens de sortie pour la plupart des requêtes. Les valeurs par défaut et les plafonds varient selon le modèle ; voir [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). L'augmentation de cette valeur réduit la fenêtre de contexte effective disponible avant que le [compactage automatique](/fr/costs#reduce-token-usage) ne se déclenche |236| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Définissez le nombre maximal de tokens de sortie pour la plupart des requêtes. Les valeurs par défaut et les plafonds varient selon le modèle ; voir [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). L'augmentation de cette valeur réduit la fenêtre de contexte effective disponible avant que le [compactage automatique](/fr/costs#reduce-token-usage) ne se déclenche |

233| `CLAUDE_CODE_MAX_RETRIES` | Remplacer le nombre de fois pour réessayer les requêtes API échouées (par défaut : 10). {/* min-version: 2.1.186 */}Plafonné à 15 à partir de v2.1.186. Pour les sessions sans surveillance qui doivent attendre les pannes plus longues, définissez `CLAUDE_CODE_RETRY_WATCHDOG` à la place |237| `CLAUDE_CODE_MAX_RETRIES` | Remplacer le nombre de fois pour réessayer les requêtes API échouées (par défaut : 10). {/* min-version: 2.1.186 */}Plafonné à 15 à partir de v2.1.186 ; {/* min-version: 2.1.199 */}à partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` augmente la valeur par défaut et supprime le plafond. Pour les sessions sans surveillance qui doivent attendre les pannes plus longues, définissez `CLAUDE_CODE_RETRY_WATCHDOG` à la place |

234| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Nombre maximal d'outils en lecture seule et de subagents qui peuvent s'exécuter en parallèle (par défaut : 10). Les valeurs plus élevées augmentent le parallélisme mais consomment plus de ressources |238| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Nombre maximal d'outils en lecture seule et de subagents qui peuvent s'exécuter en parallèle (par défaut : 10). Les valeurs plus élevées augmentent le parallélisme mais consomment plus de ressources |

235| `CLAUDE_CODE_MAX_TURNS` | Plafonner le nombre de tours d'agent lorsqu'aucune limite explicite n'est transmise. Équivalent à la transmission de [`--max-turns`](/fr/cli-reference#cli-flags), qui prend la priorité lorsque les deux sont définis. Une valeur qui n'est pas un entier positif est rejetée au démarrage avec une erreur plutôt que traitée comme aucun plafond |239| `CLAUDE_CODE_MAX_TURNS` | Plafonner le nombre de tours d'agent lorsqu'aucune limite explicite n'est transmise. Équivalent à la transmission de [`--max-turns`](/fr/cli-reference#cli-flags), qui prend la priorité lorsque les deux sont définis. Une valeur qui n'est pas un entier positif est rejetée au démarrage avec une erreur plutôt que traitée comme aucun plafond |

236| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Définissez sur `1` pour générer les serveurs MCP stdio avec uniquement un environnement de base sûr plus l'`env` configuré du serveur, au lieu d'hériter de votre environnement shell |240| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Définissez sur `1` pour générer les serveurs MCP stdio avec uniquement un environnement de base sûr plus l'`env` configuré du serveur, au lieu d'hériter de votre environnement shell |


262| `CLAUDE_CODE_REMOTE_SESSION_ID` | Défini automatiquement dans les [sessions cloud](/fr/claude-code-on-the-web) à l'ID de session actuel. Lisez ceci pour construire un lien vers la transcription de session. Voir [Lier la sortie à la session](/fr/claude-code-on-the-web#link-output-back-to-the-session) |266| `CLAUDE_CODE_REMOTE_SESSION_ID` | Défini automatiquement dans les [sessions cloud](/fr/claude-code-on-the-web) à l'ID de session actuel. Lisez ceci pour construire un lien vers la transcription de session. Voir [Lier la sortie à la session](/fr/claude-code-on-the-web#link-output-back-to-the-session) |

263| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Définissez sur `1` pour reprendre automatiquement si la session précédente s'est terminée en milieu de tour. Utilisé en mode SDK pour que le modèle continue sans que le SDK ait besoin de renvoyer l'invite |267| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Définissez sur `1` pour reprendre automatiquement si la session précédente s'est terminée en milieu de tour. Utilisé en mode SDK pour que le modèle continue sans que le SDK ait besoin de renvoyer l'invite |

264| `CLAUDE_CODE_RESUME_PROMPT` | Remplacer le message de continuation injecté lors de la reprise d'une session qui s'est terminée en milieu de tour. Par défaut `Continue from where you left off.`. Les scripts de génération pour les agents longues peuvent définir ceci sur un message de démarrage plus directif. Une chaîne vide utilise la valeur par défaut |268| `CLAUDE_CODE_RESUME_PROMPT` | Remplacer le message de continuation injecté lors de la reprise d'une session qui s'est terminée en milieu de tour. Par défaut `Continue from where you left off.`. Les scripts de génération pour les agents longues peuvent définir ceci sur un message de démarrage plus directif. Une chaîne vide utilise la valeur par défaut |

265| `CLAUDE_CODE_RETRY_WATCHDOG` | {/* min-version: 2.1.186 */}Définissez sur `1` pour les sessions sans surveillance telles que les harnais d'évaluation, les travaux CI ou les travailleurs distants. Réessaye les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Le chien de garde recule jusqu'à 5 minutes entre les tentatives, ou jusqu'à ce que la limite se réinitialise lorsque la réponse porte un délai de réinitialisation du débit, de sorte qu'une session qui atteint une limite d'utilisation attend la fenêtre restante. Nécessite Claude Code v2.1.186 ou ultérieur |269| `CLAUDE_CODE_RETRY_WATCHDOG` | {/* min-version: 2.1.186 */}Définissez sur `1` pour les sessions sans surveillance telles que les harnais d'évaluation, les travaux CI ou les travailleurs distants. Réessaye les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Le chien de garde recule jusqu'à 5 minutes entre les tentatives, ou jusqu'à ce que la limite se réinitialise lorsque la réponse porte un délai de réinitialisation du débit, de sorte qu'une session qui atteint une limite d'utilisation attend la fenêtre restante. {/* min-version: 2.1.199 */}À partir de v2.1.199, il augmente également le nombre de tentatives par défaut pour les autres erreurs transitoires, telles que les erreurs de serveur, les délais d'expiration et les connexions abandonnées, à 300, environ trois heures de recul, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez cette variable explicitement. Nécessite Claude Code v2.1.186 ou ultérieur |

266| `CLAUDE_CODE_SAFE_MODE` | Définissez sur `1` pour démarrer en mode sûr : CLAUDE.md, skills, plugins, hooks, serveurs MCP, commandes personnalisées et agents, styles de sortie, workflows, thèmes personnalisés, liaisons de touches personnalisées, commandes de ligne d'état et de suggestion de fichiers, serveurs LSP et mémoire automatique ne se chargent pas, pour dépanner une configuration cassée. La politique des paramètres gérés s'applique toujours, y compris les hooks configurés par la politique, la ligne d'état et les commandes de suggestion de fichiers ; les plugins gérés, les skills gérés, le CLAUDE.md géré et les serveurs MCP configurés par la politique ne le font pas. Équivalent à la transmission de [`--safe-mode`](/fr/cli-reference#cli-flags). Les processus enfants directement générés héritent de la variable |270| `CLAUDE_CODE_SAFE_MODE` | Définissez sur `1` pour démarrer en mode sûr : CLAUDE.md, skills, plugins, hooks, serveurs MCP, commandes personnalisées et agents, styles de sortie, workflows, thèmes personnalisés, liaisons de touches personnalisées, commandes de ligne d'état et de suggestion de fichiers, serveurs LSP et mémoire automatique ne se chargent pas, pour dépanner une configuration cassée. La politique des paramètres gérés s'applique toujours, y compris les hooks configurés par la politique, la ligne d'état et les commandes de suggestion de fichiers ; les plugins gérés, les skills gérés, le CLAUDE.md géré et les serveurs MCP configurés par la politique ne le font pas. Équivalent à la transmission de [`--safe-mode`](/fr/cli-reference#cli-flags). Les processus enfants directement générés héritent de la variable |

267| `CLAUDE_CODE_SCRIPT_CAPS` | Objet JSON limitant le nombre de fois que des scripts spécifiques peuvent être appelés par session lorsque `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` est défini. Les clés sont des sous-chaînes mises en correspondance avec le texte de la commande ; les valeurs sont des limites d'appels entiers. Par exemple, `{"deploy.sh": 2}` permet à `deploy.sh` d'être appelé au maximum deux fois. La correspondance est basée sur des sous-chaînes, donc les astuces d'expansion de shell comme `./scripts/deploy.sh $(evil)` comptent toujours contre le plafond. L'expansion en fan-out au runtime via `xargs` ou `find -exec` n'est pas détectée ; il s'agit d'un contrôle de défense en profondeur |271| `CLAUDE_CODE_SCRIPT_CAPS` | Objet JSON limitant le nombre de fois que des scripts spécifiques peuvent être appelés par session lorsque `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` est défini. Les clés sont des sous-chaînes mises en correspondance avec le texte de la commande ; les valeurs sont des limites d'appels entiers. Par exemple, `{"deploy.sh": 2}` permet à `deploy.sh` d'être appelé au maximum deux fois. La correspondance est basée sur des sous-chaînes, donc les astuces d'expansion de shell comme `./scripts/deploy.sh $(evil)` comptent toujours contre le plafond. L'expansion en fan-out au runtime via `xargs` ou `find -exec` n'est pas détectée ; il s'agit d'un contrôle de défense en profondeur |

268| `CLAUDE_CODE_SCROLL_SPEED` | Définissez le multiplicateur de défilement de la molette de la souris dans le [rendu en plein écran](/fr/fullscreen#mouse-wheel-scrolling). Accepte les valeurs de 1 à 20, et les valeurs fractionnaires inférieures à 1 telles que `0.5` pour ralentir le défilement accéléré du trackpad et de la molette dans les terminaux qui amplifient déjà les événements de molette. Définissez sur `3` pour correspondre à `vim` si votre terminal envoie un événement de molette par cran sans amplification. Ignoré dans le terminal IDE JetBrains, où Claude Code utilise sa propre gestion du défilement |272| `CLAUDE_CODE_SCROLL_SPEED` | Définissez le multiplicateur de défilement de la molette de la souris dans le [rendu en plein écran](/fr/fullscreen#mouse-wheel-scrolling). Accepte les valeurs de 1 à 20, et les valeurs fractionnaires inférieures à 1 telles que `0.5` pour ralentir le défilement accéléré du trackpad et de la molette dans les terminaux qui amplifient déjà les événements de molette. Définissez sur `3` pour correspondre à `vim` si votre terminal envoie un événement de molette par cran sans amplification. Ignoré dans le terminal IDE JetBrains, où Claude Code utilise sa propre gestion du défilement |


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

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

366| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Remplacer le budget de caractères pour les métadonnées de skill affichées à l'[outil Skill](/fr/skills#control-who-invokes-a-skill). Le budget s'adapte dynamiquement à 1 % de la fenêtre de contexte, avec un repli de 8 000 caractères. Nom hérité conservé pour la compatibilité rétroactive |370| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Remplacer le budget de caractères pour les métadonnées de skill affichées à l'[outil Skill](/fr/skills#control-who-invokes-a-skill). Le budget s'adapte dynamiquement à 1 % de la fenêtre de contexte, avec un repli de 8 000 caractères. Nom hérité conservé pour la compatibilité rétroactive |

367| `TASK_MAX_OUTPUT_LENGTH` | Nombre maximal de caractères dans la sortie du [subagent](/fr/sub-agents) avant la troncature (par défaut : 32 000, maximum : 160 000). Lorsqu'elle est tronquée, la sortie complète est enregistrée sur le disque et le chemin est inclus dans la réponse tronquée |371| `TASK_MAX_OUTPUT_LENGTH` | Nombre maximal de caractères dans la sortie du [sub agent](/fr/sub-agents) avant la troncature (par défaut : 32 000, maximum : 160 000). Lorsqu'elle est tronquée, la sortie complète est enregistrée sur le disque et le chemin est inclus dans la réponse tronquée |

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

369| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Remplacer la région pour Claude 3.5 Haiku lors de l'utilisation de Vertex AI |373| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Remplacer la région pour Claude 3.5 Haiku lors de l'utilisation de Vertex AI |

370| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Remplacer la région pour Claude 3.5 Sonnet lors de l'utilisation de Vertex AI |374| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Remplacer la région pour Claude 3.5 Sonnet lors de l'utilisation de Vertex AI |

errors.md +164 −20

Details

25| `API Error: 500 Internal server error` | [Erreurs serveur](#api-error-500-internal-server-error) |25| `API Error: 500 Internal server error` | [Erreurs serveur](#api-error-500-internal-server-error) |

26| `API Error: Repeated 529 Overloaded errors` | [Erreurs serveur](#api-error-repeated-529-overloaded-errors) |26| `API Error: Repeated 529 Overloaded errors` | [Erreurs serveur](#api-error-repeated-529-overloaded-errors) |

27| `Request timed out` | [Erreurs serveur](#request-timed-out), ou [Réseau](#unable-to-connect-to-api) si le message mentionne votre connexion Internet |27| `Request timed out` | [Erreurs serveur](#request-timed-out), ou [Réseau](#unable-to-connect-to-api) si le message mentionne votre connexion Internet |

28| `Server error mid-response. The response above may be incomplete.` | [Erreurs serveur](#the-response-above-may-be-incomplete) |

29| `Connection closed mid-response` / `Response stalled mid-stream` | [Erreurs serveur](#the-response-above-may-be-incomplete) |

28| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) |30| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) |

29| `Auto mode could not evaluate this action and is blocking it for safety` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) |31| `Auto mode could not evaluate this action and is blocking it for safety` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) |

30| `Auto mode classifier transcript exceeded context window` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) |32| `Auto mode classifier transcript exceeded context window` | [Erreurs serveur](#auto-mode-cannot-determine-the-safety-of-an-action) |

33| `Agent terminated early due to an API error` | [Erreurs serveur](#agent-terminated-early-due-to-an-api-error) |

31| `You've hit your session limit` / `You've hit your weekly limit` | [Limites d'utilisation](#you%E2%80%99ve-hit-your-session-limit) |34| `You've hit your session limit` / `You've hit your weekly limit` | [Limites d'utilisation](#you%E2%80%99ve-hit-your-session-limit) |

32| `Usage credits required for 1M context` | [Limites d'utilisation](#usage-credits-required-for-1m-context) |35| `Usage credits required for 1M context` | [Limites d'utilisation](#usage-credits-required-for-1m-context) |

33| `Server is temporarily limiting requests` | [Limites d'utilisation](#server-is-temporarily-limiting-requests) |36| `Server is temporarily limiting requests` | [Limites d'utilisation](#server-is-temporarily-limiting-requests) |


43| `Remote Control is only available when using Claude via api.anthropic.com` | [Authentification](#remote-control-requires-the-anthropic-api) |46| `Remote Control is only available when using Claude via api.anthropic.com` | [Authentification](#remote-control-requires-the-anthropic-api) |

44| `OAuth token revoked` / `OAuth token has expired` | [Authentification](#oauth-token-revoked-or-expired) |47| `OAuth token revoked` / `OAuth token has expired` | [Authentification](#oauth-token-revoked-or-expired) |

45| `does not meet scope requirement user:profile` | [Authentification](#oauth-scope-requirement) |48| `does not meet scope requirement user:profile` | [Authentification](#oauth-scope-requirement) |

49| `AWS credentials expired or invalid` | [Authentification](#aws-credentials-expired-or-invalid) |

50| `AWS authentication failed` | [Authentification](#aws-authentication-failed) |

46| `Unable to connect to API` | [Réseau](#unable-to-connect-to-api) |51| `Unable to connect to API` | [Réseau](#unable-to-connect-to-api) |

47| `Waiting for API response · will retry in` | [Tentatives automatiques](#automatic-retries), ou [Réseau](#unable-to-connect-to-api) si le problème persiste |52| `Waiting for API response · will retry in` | [Tentatives automatiques](#automatic-retries), ou [Réseau](#unable-to-connect-to-api) si le problème persiste |

48| `SSL certificate verification failed` | [Réseau](#ssl-certificate-errors) |53| `SSL certificate verification failed` | [Réseau](#ssl-certificate-errors) |

54| `SSL certificate error (...)` during login or startup | [Réseau](#ssl-certificate-errors) |

49| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Réseau](#host-not-allowed-in-a-cloud-session) |55| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Réseau](#host-not-allowed-in-a-cloud-session) |

50| `Prompt is too long` | [Erreurs de requête](#prompt-is-too-long) |56| `Prompt is too long` | [Erreurs de requête](#prompt-is-too-long) |

51| `Error during compaction: Conversation too long` | [Erreurs de requête](#error-during-compaction-conversation-too-long) |57| `Error during compaction: Conversation too long` | [Erreurs de requête](#error-during-compaction-conversation-too-long) |


61| `max_tokens must be greater than thinking.budget_tokens` | [Erreurs de requête](#thinking-budget-exceeds-output-limit) |67| `max_tokens must be greater than thinking.budget_tokens` | [Erreurs de requête](#thinking-budget-exceeds-output-limit) |

62| `API Error: 400 due to tool use concurrency issues` | [Erreurs de requête](#tool-use-or-thinking-block-mismatch) |68| `API Error: 400 due to tool use concurrency issues` | [Erreurs de requête](#tool-use-or-thinking-block-mismatch) |

63| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Erreurs de requête](#usage-policy-refusal) |69| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Erreurs de requête](#usage-policy-refusal) |

70| `--bg and --print conflict` | [Erreurs de ligne de commande](#command-line-errors) |

64| Responses seem lower quality than usual | [Qualité des réponses](#responses-seem-lower-quality-than-usual) |71| Responses seem lower quality than usual | [Qualité des réponses](#responses-seem-lower-quality-than-usual) |

65 72 

66<h2 id="automatic-retries">73<h2 id="automatic-retries">

67 Tentatives automatiques74 Tentatives automatiques

68</h2>75</h2>

69 76 

70Claude Code réessaie les défaillances transitoires avant de vous afficher une erreur. Les erreurs serveur, les réponses surchargées, les délais d'attente des requêtes, les accélérateurs 429 temporaires et les connexions interrompues sont tous réessayés jusqu'à 10 fois avec un backoff exponentiel. Lors des tentatives, le spinner affiche un compte à rebours `Retrying in Ns · attempt x/y`.77Claude Code réessaie les défaillances transitoires avant de vous afficher une erreur. Les erreurs serveur, les réponses surchargées, les délais d'attente des requêtes, les accélérateurs 429 temporaires et les connexions interrompues sont tous réessayés jusqu'à 10 fois avec un backoff exponentiel. {/* min-version: 2.1.198 */}À partir de la v2.1.198, cela couvre les connexions qui se déconnectent au milieu d'une réponse avant que toute sortie visible n'ait été diffusée : Claude Code réédite la requête avec le même backoff et le tour continue au lieu de s'arrêter avec une erreur de connexion. {/* min-version: 2.1.199 */}À partir de la v2.1.199, les accélérateurs 429 temporaires qui ne portent pas les en-têtes de quota de votre plan sont également réessayés lorsque vous êtes connecté avec un abonnement claude.ai ; les versions antérieures les réessayaient uniquement pour les connexions par clé API et Enterprise.

78 

79Deux classes de défaillances ne sont pas réessayées, car une tentative ne peut pas réussir :

80 

81* {/* min-version: 2.1.199 */}À partir de la v2.1.199, une défaillance de validation de certificat TLS, telle qu'un proxy inspectant TLS, un bundle `NODE_EXTRA_CA_CERTS` manquant ou un certificat expiré, échoue à la première tentative pour que le correctif apparaisse immédiatement au lieu d'après le budget de tentative complet. Consultez [Erreurs de certificat SSL](#ssl-certificate-errors). Les conditions TLS transitoires telles qu'un délai d'attente de poignée de main réessaient toujours.

82* {/* min-version: 2.1.199 */}À partir de la v2.1.199, une erreur serveur qui arrive après que Claude a déjà diffusé une sortie visible conserve la réponse partielle et ajoute un [avis de réponse incomplète](#the-response-above-may-be-incomplete) au lieu de réessayer, car réexécuter la requête pourrait exécuter les mêmes appels d'outils deux fois. Les versions antérieures ont rejeté la sortie partielle et ont signalé le tour comme une erreur.

83 

84Lors des tentatives, le spinner affiche un compte à rebours `Retrying in Ns · attempt x/y` après une étiquette d'erreur. L'étiquette nomme la raison spécifique de la première tentative pour les défaillances sur lesquelles vous pouvez agir immédiatement : le réseau est en panne, une poignée de main TLS a échoué, ou vous avez atteint une limite de débit. Pour les autres erreurs, elle lit `API error` au début. {/* min-version: 2.1.198 */}À partir de la v2.1.198, elle bascule vers la raison spécifique de la troisième tentative, ou à la tentative finale lorsque `CLAUDE_CODE_MAX_RETRIES` permet moins de trois ; les versions antérieures ne basculent qu'à la tentative finale.

85 

86{/* min-version: 2.1.198 */}À partir de la v2.1.198, l'indice de spinner habituel est supprimé lors des tentatives. Une fois que la raison de l'erreur est révélée, si la défaillance est un surcharge 529, la ligne sous le compte à rebours nomme également où vérifier l'état du service : `status.claude.com` sur l'API Anthropic, ou l'hôte du fournisseur ou de la passerelle nommé dans le message sur d'autres configurations.

71 87 

72{/* min-version: 2.1.185 */}Si aucune donnée n'arrive sur le flux de réponse pendant 20 secondes alors qu'une requête est toujours en attente, le spinner affiche `Waiting for API response · will retry in … · check your network` avant que toute tentative n'ait commencé. La requête n'a pas encore échoué : le compte à rebours s'exécute jusqu'au point où Claude Code abandonne la connexion bloquée et réessaie, de sorte que la bannière s'efface d'elle-même une fois que les données reprennent ou que la tentative réussit. À partir de la v2.1.185, le seuil est de 20 secondes ; les versions antérieures affichent la bannière après 10 secondes avec un libellé différent. Si elle réapparaît à chaque tentative, traitez-la comme un [problème réseau](#unable-to-connect-to-api).88{/* min-version: 2.1.185 */}Si aucune donnée n'arrive sur le flux de réponse pendant 20 secondes alors qu'une requête est toujours en attente, le spinner affiche `Waiting for API response · will retry in … · check your network` avant que toute tentative n'ait commencé. La requête n'a pas encore échoué : le compte à rebours s'exécute jusqu'au point où Claude Code abandonne la connexion bloquée et réessaie, de sorte que la bannière s'efface d'elle-même une fois que les données reprennent ou que la tentative réussit. À partir de la v2.1.185, le seuil est de 20 secondes ; les versions antérieures affichent la bannière après 10 secondes avec un libellé différent. Si elle réapparaît à chaque tentative, traitez-la comme un [problème réseau](#unable-to-connect-to-api).

73 89 

74Lorsque vous voyez l'une des erreurs de cette page, ces tentatives ont déjà été épuisées. Vous pouvez ajuster le comportement avec ces variables d'environnement :90Lorsque vous voyez l'une des erreurs de cette page, ces tentatives ont déjà été épuisées, sauf si elle appartient à une classe qui n'est pas réessayée, telle qu'une défaillance de validation de certificat. Vous pouvez ajuster le comportement avec ces variables d'environnement :

75 91 

76| Variable | Par défaut | Effet |92| Variable | Par défaut | Effet |

77| :------------------------------------------- | :--------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |93| :------------------------------------------- | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

78| [`CLAUDE_CODE_MAX_RETRIES`](/fr/env-vars) | 10 | Nombre de tentatives de réessai. {/* min-version: 2.1.186 */}Limité à 15 à partir de la v2.1.186. Réduisez-le pour afficher les défaillances plus rapidement dans les scripts. |94| [`CLAUDE_CODE_MAX_RETRIES`](/fr/env-vars) | 10 | Nombre de tentatives de réessai. {/* min-version: 2.1.186 */}Limité à 15 à partir de la v2.1.186 ; {/* min-version: 2.1.199 */}à partir de la v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` augmente la valeur par défaut et supprime le plafond. Réduisez-le pour afficher les défaillances plus rapidement dans les scripts. |

79| [`CLAUDE_CODE_RETRY_WATCHDOG`](/fr/env-vars) | non défini | Définissez sur `1` dans les sessions sans surveillance telles que les tâches CI pour réessayer les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. |95| [`CLAUDE_CODE_RETRY_WATCHDOG`](/fr/env-vars) | non défini | Définissez sur `1` dans les sessions sans surveillance telles que les tâches CI pour réessayer les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. {/* min-version: 2.1.199 */}À partir de la v2.1.199, il augmente également le nombre de tentatives par défaut pour les autres erreurs transitoires, telles que les erreurs serveur, les délais d'attente et les connexions interrompues, à 300, environ trois heures de backoff, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez cette variable explicitement. |

80| [`API_TIMEOUT_MS`](/fr/env-vars) | 600000 | Délai d'attente par requête en millisecondes. Augmentez-le pour les réseaux lents ou les proxies. |96| [`API_TIMEOUT_MS`](/fr/env-vars) | 600000 | Délai d'attente par requête en millisecondes. Augmentez-le pour les réseaux lents ou les proxies. |

81 97 

82<h2 id="server-errors">98<h2 id="server-errors">


115API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.131API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.

116```132```

117 133 

118La phrase finale varie selon le fournisseur de la même manière que l'erreur 500 ci-dessus. Un 529 n'est pas votre limite d'utilisation et ne compte pas contre votre quota.134La phrase finale varie selon le fournisseur de la même manière que l'erreur 500 ci-dessus.

135 

136Un 529 n'est pas votre limite d'utilisation et ne compte pas contre votre quota.

119 137 

120**Que faire :**138**Que faire :**

121 139 


142* Si un réseau lent ou un proxy est la cause, augmentez `API_TIMEOUT_MS` comme décrit dans [Tentatives automatiques](#automatic-retries)160* Si un réseau lent ou un proxy est la cause, augmentez `API_TIMEOUT_MS` comme décrit dans [Tentatives automatiques](#automatic-retries)

143* Si les délais d'attente sont fréquents et que votre réseau est par ailleurs sain, consultez [Erreurs réseau et de connexion](#network-and-connection-errors) ci-dessous161* Si les délais d'attente sont fréquents et que votre réseau est par ailleurs sain, consultez [Erreurs réseau et de connexion](#network-and-connection-errors) ci-dessous

144 162 

163<h3 id="the-response-above-may-be-incomplete">

164 The response above may be incomplete

165</h3>

166 

167Une réponse en streaming a échoué après que Claude ait déjà produit une sortie visible. Réenvoyer la requête pourrait exécuter les mêmes appels d'outils deux fois, donc Claude Code conserve ce qui a déjà été diffusé et ajoute cet avis à la place de rejeter le tour. La variante que vous voyez nomme la cause :

168 

169```text theme={null}

170API Error: Server error mid-response. The response above may be incomplete.

171API Error: Connection closed mid-response. The response above may be incomplete.

172API Error: Response stalled mid-stream. The response above may be incomplete.

173```

174 

175* {/* min-version: 2.1.199 */}}`Server error mid-response` : une erreur serveur surchargée ou 5xx en milieu de flux. Cette variante nécessite Claude Code v2.1.199 ou ultérieur ; avant cela, ce cas rejetait la sortie partielle et signalait le tour entier comme une erreur.

176* `Connection closed mid-response` : la connexion s'est déconnectée.

177* `Response stalled mid-stream` : le flux a arrêté d'envoyer des données.

178 

179**Que faire :**

180 

181* Lisez la réponse qui a été diffusée. Rien n'a été perdu, mais les dernières phrases ou appels d'outils peuvent manquer.

182* Répondez avec `continue` pour que Claude reprenne là où il s'est arrêté

183* Si la même erreur apparaît avant toute sortie visible, Claude Code réessaie la requête au lieu de la finaliser. Consultez [Tentatives automatiques](#automatic-retries).

184 

145<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">185<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">

146 Auto mode cannot determine the safety of an action186 Auto mode cannot determine the safety of an action

147</h3>187</h3>


173* Réessayez l'action ; cela réussit généralement à la tentative suivante213* Réessayez l'action ; cela réussit généralement à la tentative suivante

174* Exécutez `claude --debug` et répétez l'action pour voir la réponse du classificateur sous-jacente dans le journal de débogage214* Exécutez `claude --debug` et répétez l'action pour voir la réponse du classificateur sous-jacente dans le journal de débogage

175 215 

216Lorsqu'une vérification de sécurité API distincte a bloqué la requête du classificateur en raison du contenu de la conversation antérieure :

217 

218```text theme={null}

219Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details

220```

221 

222**Que faire :**

223 

224* Ce n'est pas une décision concernant votre action. Le contenu déjà dans votre conversation a déclenché un filtre de sécurité sur l'API lorsque le mode auto a envoyé la conversation au classificateur

225* Réessayer n'aidera pas ; le même contenu de conversation déclenchera à nouveau le filtre

226* Basculez vers un [mode de permission](/fr/permission-modes) différent pour pouvoir approuver l'action lorsque vous y êtes invité, ou démarrez une nouvelle conversation sans le contenu déclencheur

227 

176Lorsque la conversation a grandi au-delà de la fenêtre de contexte du classificateur :228Lorsque la conversation a grandi au-delà de la fenêtre de contexte du classificateur :

177 229 

178```text theme={null}230```text theme={null}


186* Approuvez ou refusez l'action dans l'invite qui apparaît238* Approuvez ou refusez l'action dans l'invite qui apparaît

187* Exécutez `/compact` pour réduire la taille de la conversation afin que les actions suivantes s'ajustent à nouveau dans la fenêtre du classificateur239* Exécutez `/compact` pour réduire la taille de la conversation afin que les actions suivantes s'ajustent à nouveau dans la fenêtre du classificateur

188 240 

241<h3 id="agent-terminated-early-due-to-an-api-error">

242 Agent terminated early due to an API error

243</h3>

244 

245{/* min-version: 2.1.199 */}La requête API d'un [sous-agent](/fr/sub-agents) a échoué de manière terminale, par exemple parce qu'une limite d'utilisation a été atteinte ou que les tentatives pour une erreur serveur se sont épuisées, donc le sous-agent s'est arrêté avant de terminer sa tâche. Ce message nécessite Claude Code v2.1.199 ou ultérieur ; avant cela, le texte d'erreur API était renvoyé à Claude comme s'il s'agissait du résultat du sous-agent.

246 

247```text theme={null}

248Agent terminated early due to an API error: <error detail>

249```

250 

251**Que faire :**

252 

253* Faites correspondre le détail de l'erreur après les deux points à sa propre section sur cette page, telle que [Limites d'utilisation](#usage-limits) ou [Erreurs serveur](#server-errors), et suivez les étapes de cette section

254* Une fois que l'erreur sous-jacente est résolue, demandez à Claude de réessayer la tâche ou de [reprendre le sous-agent](/fr/sub-agents#resume-subagents)

255 

256Lorsqu'une limite de débit, une surcharge ou une erreur serveur interrompt un sous-agent au premier plan qui a déjà produit une sortie, Claude reçoit cette sortie partielle marquée comme incomplète au lieu de cette erreur. Consultez [Erreurs API dans les sous-agents](/fr/sub-agents#api-errors-in-subagents).

257 

189<h2 id="usage-limits">258<h2 id="usage-limits">

190 Limites d'utilisation259 Limites d'utilisation

191</h2>260</h2>


193Ces erreurs signifient qu'un quota lié à votre compte ou à votre plan a été atteint. Elles sont distinctes des [erreurs serveur](#server-errors), qui affectent tout le monde.262Ces erreurs signifient qu'un quota lié à votre compte ou à votre plan a été atteint. Elles sont distinctes des [erreurs serveur](#server-errors), qui affectent tout le monde.

194 263 

195<h3 id="you’ve-hit-your-session-limit">264<h3 id="you’ve-hit-your-session-limit">

196 Vous avez atteint votre limite de session265 You've hit your session limit

197</h3>266</h3>

198 267 

199Les plans d'abonnement incluent une allocation d'utilisation roulante. Lorsqu'elle s'épuise, vous voyez l'un de ces messages :268Les plans d'abonnement incluent une allocation d'utilisation roulante. Lorsqu'elle s'épuise, vous voyez l'un de ces messages :


210 279 

211* Attendez l'heure de réinitialisation indiquée dans l'erreur280* Attendez l'heure de réinitialisation indiquée dans l'erreur

212* Exécutez `/usage` pour voir les limites de votre plan et quand elles se réinitialisent281* Exécutez `/usage` pour voir les limites de votre plan et quand elles se réinitialisent

213* Exécutez `/usage-credits` pour acheter une utilisation supplémentaire sur Pro et Max, ou pour la demander à votre administrateur sur Team et Enterprise. Consultez [usage credits for paid plans](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) pour savoir comment cela est facturé.282* Exécutez `/usage-credits` pour acheter une utilisation supplémentaire sur Pro et Max, ou pour la demander à votre administrateur sur Team et Enterprise. Consultez [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pour savoir comment cela est facturé.

214* Pour mettre à niveau votre plan pour des limites de base plus élevées, consultez [claude.com/pricing](https://claude.com/pricing)283* Pour mettre à niveau votre plan pour des limites de base plus élevées, consultez [claude.com/pricing](https://claude.com/pricing)

215 284 

216Pour surveiller votre allocation restante avant d'atteindre la limite, ajoutez les champs `rate_limits` à une [ligne d'état personnalisée](/fr/statusline#rate-limit-usage), ou dans l'application Desktop cliquez sur l'[anneau d'utilisation](/fr/desktop#check-usage) à côté du sélecteur de modèle.285Pour surveiller votre allocation restante avant d'atteindre la limite, ajoutez les champs `rate_limits` à une [ligne d'état personnalisée](/fr/statusline#rate-limit-usage), ou dans l'application Desktop cliquez sur l'[anneau d'utilisation](/fr/desktop#check-usage) à côté du sélecteur de modèle.

217 286 

218<h3 id="usage-credits-required-for-1m-context">287<h3 id="usage-credits-required-for-1m-context">

219 Crédits d'utilisation requis pour le contexte 1M288 Usage credits required for 1M context

220</h3>289</h3>

221 290 

222Le modèle sélectionné utilise la fenêtre de contexte étendue 1M-token, et votre plan ne l'inclut que par le biais de crédits d'utilisation.291Le modèle sélectionné utilise la fenêtre de contexte étendue 1M-token, et votre plan ne l'inclut que par le biais de crédits d'utilisation.


237* Pour supprimer entièrement les variantes 1M du sélecteur de modèle, définissez [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/fr/env-vars)306* Pour supprimer entièrement les variantes 1M du sélecteur de modèle, définissez [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/fr/env-vars)

238 307 

239<h3 id="server-is-temporarily-limiting-requests">308<h3 id="server-is-temporarily-limiting-requests">

240 Le serveur limite temporairement les demandes309 Server is temporarily limiting requests

241</h3>310</h3>

242 311 

243L'API a appliqué un accélérateur de courte durée qui n'est pas lié à votre quota de plan.312L'API a appliqué un accélérateur de courte durée qui n'est pas lié à votre quota de plan.


246API Error: Server is temporarily limiting requests (not your usage limit)315API Error: Server is temporarily limiting requests (not your usage limit)

247```316```

248 317 

249Ceci est [réessayé automatiquement](#automatic-retries) avant d'être affiché.318Claude Code distingue ceux-ci de votre limite de plan par l'absence des en-têtes de quota unifiés qu'une réponse de limite réelle porte. {/* min-version: 2.1.199 */}À partir de la v2.1.199, ceci est [réessayé automatiquement](#automatic-retries) avec backoff avant d'être affiché, quelle que soit la façon dont vous vous authentifiez. Sur les versions antérieures, une session connectée avec un abonnement claude.ai a échoué le tour à la première occurrence ; seules les connexions par clé API et Enterprise l'ont réessayé.

250 319 

251**Que faire :**320**Que faire :**

252 321 


254* Vérifiez [status.claude.com](https://status.claude.com) si cela persiste323* Vérifiez [status.claude.com](https://status.claude.com) si cela persiste

255 324 

256<h3 id="request-rejected-429">325<h3 id="request-rejected-429">

257 Demande rejetée (429)326 Request rejected (429)

258</h3>327</h3>

259 328 

260Vous avez atteint la limite de débit configurée pour votre clé API, votre projet Amazon Bedrock ou votre projet Google Vertex AI.329Vous avez atteint la limite de débit configurée pour votre clé API, votre projet Amazon Bedrock ou votre projet Google Vertex AI.


269 338 

270* Exécutez `/status` et confirmez que les identifiants actifs sont ceux que vous attendez. Une `ANTHROPIC_API_KEY` égarée dans votre environnement peut acheminer les requêtes via une clé de niveau inférieur au lieu de votre abonnement.339* Exécutez `/status` et confirmez que les identifiants actifs sont ceux que vous attendez. Une `ANTHROPIC_API_KEY` égarée dans votre environnement peut acheminer les requêtes via une clé de niveau inférieur au lieu de votre abonnement.

271* Vérifiez la console de votre fournisseur pour les limites actives et demandez un niveau supérieur si nécessaire340* Vérifiez la console de votre fournisseur pour les limites actives et demandez un niveau supérieur si nécessaire

272* Pour les clés API Anthropic, consultez la [référence des limites de débit](https://platform.claude.com/docs/fr/api/rate-limits) pour savoir comment fonctionnent les niveaux et comment définir des plafonds par espace de travail341* Pour les clés API Anthropic, consultez la [référence des limites de débit](https://platform.claude.com/docs/en/api/rate-limits) pour savoir comment fonctionnent les niveaux et comment définir des plafonds par espace de travail

273* Réduisez la concurrence : réduisez [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/fr/env-vars), évitez d'exécuter de nombreux sous-agents parallèles, ou basculez vers un modèle plus petit avec `/model` pour les exécutions scriptées à haut volume342* Réduisez la concurrence : réduisez [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/fr/env-vars), évitez d'exécuter de nombreux sous-agents parallèles, ou basculez vers un modèle plus petit avec `/model` pour les exécutions scriptées à haut volume

274 343 

275<h3 id="credit-balance-is-too-low">344<h3 id="credit-balance-is-too-low">

276 Le solde de crédits est trop faible345 Credit balance is too low

277</h3>346</h3>

278 347 

279Votre organisation Console a épuisé ses crédits prépayés.348Votre organisation Console a épuisé ses crédits prépayés.


373 Your organization has disabled API key authentication442 Your organization has disabled API key authentication

374</h3>443</h3>

375 444 

376{/* min-version: 2.1.169 */}L'administrateur de votre organisation Console a désactivé l'authentification par clé API, donc l'API rejette la clé que Claude Code envoie. L'indice de récupération après le `·` varie selon d'où provient la clé :445Ce message nécessite Claude Code v2.1.169 ou ultérieur. L'administrateur de votre organisation Console a désactivé l'authentification par clé API, donc l'API rejette la clé que Claude Code envoie. L'indice de récupération après le `·` varie selon d'où provient la clé :

377 446 

378```text theme={null}447```text theme={null}

379Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account448Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account


402Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access471Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

403```472```

404 473 

405C'est un paramètre d'organisation côté serveur, il ne peut donc pas être remplacé par les paramètres locaux, les variables d'environnement ou les drapeaux CLI. Le SDK Agent et le mode non interactif `-p` affichent cela comme le code d'erreur `oauth_org_not_allowed`.474C'est un paramètre d'organisation côté serveur, il ne peut donc pas être remplacé par les paramètres locaux, les variables d'environnement ou les drapeaux CLI.

475 

476Le SDK Agent et le mode non interactif `-p` affichent cela comme le code d'erreur `oauth_org_not_allowed`.

406 477 

407**Que faire :**478**Que faire :**

408 479 


477 548 

478* Exécutez `/login` pour créer un nouveau jeton avec les portées actuelles. Vous n'avez pas besoin de vous déconnecter d'abord.549* Exécutez `/login` pour créer un nouveau jeton avec les portées actuelles. Vous n'avez pas besoin de vous déconnecter d'abord.

479 550 

551<h3 id="aws-credentials-expired-or-invalid">

552 AWS credentials expired or invalid

553</h3>

554 

555{/* min-version: 2.1.198 */}Ce message nécessite Claude Code v2.1.198 ou ultérieur et n'apparaît que lorsque [`awsAuthRefresh`](/fr/amazon-bedrock#advanced-credential-configuration) est défini dans votre fichier de paramètres. Votre jeton de session AWS a expiré ou a été rejeté, et l'actualisation automatique que Claude Code a déjà exécutée n'a pas produit un identifiant que l'API accepte. Il apparaît sur un 401 de [Claude Platform on AWS](/fr/claude-platform-on-aws) ou du [point de terminaison Mantle](/fr/amazon-bedrock#use-the-mantle-endpoint), c'est ainsi que ces fournisseurs signalent un jeton de sécurité expiré.

556 

557L'indice d'action au milieu nomme la commande `awsAuthRefresh` de vos paramètres, donc il varie. La partie stable est le début `AWS credentials expired or invalid` :

558 

559```text theme={null}

560AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...

561```

562 

563Sans `awsAuthRefresh` configuré, le même 401 affiche le message générique `Please run /login` à la place, qui ne peut pas actualiser les identifiants AWS.

564 

565**Que faire :**

566 

567* Exécutez la commande `awsAuthRefresh` nommée dans le message, telle que `aws sso login --profile myprofile`, dans un autre terminal et complétez la connexion au navigateur, puis réessayez

568* Dans une session interactive, exécutez `/login`, choisissez **3rd-party platform**, puis sélectionnez **Claude Platform on AWS · refresh credentials** sous **Using 3rd-party platforms** pour exécuter la même commande sans redémarrer Claude Code. Consultez [Configure AWS credentials](/fr/claude-platform-on-aws#1-configure-aws-credentials)

569* Si l'erreur se répète après que la commande d'actualisation réussisse, confirmez que l'identité est valide en dehors de Claude Code avec `aws sts get-caller-identity` dans le même shell et profil

570 

571<h3 id="aws-authentication-failed">

572 AWS authentication failed

573</h3>

574 

575{/* min-version: 2.1.198 */}Ce message nécessite Claude Code v2.1.198 ou ultérieur et n'apparaît que lorsque [`awsAuthRefresh`](/fr/amazon-bedrock#advanced-credential-configuration) est défini dans votre fichier de paramètres. Votre fournisseur AWS a renvoyé un 403, ou [Amazon Bedrock](/fr/amazon-bedrock) a renvoyé un 401.

576 

577Claude Code ne peut pas dire quelle cause vous avez atteinte. Amazon Bedrock signale un jeton de sécurité expiré comme un 403, mais un 403 est aussi comment il signale un refus d'autorisation, tel qu'une `AccessDeniedException` d'une permission IAM manquante ou d'un modèle qui n'est pas activé pour votre compte.

578 

579Un 401 d'Amazon Bedrock atterrit également ici plutôt que sous [AWS credentials expired or invalid](#aws-credentials-expired-or-invalid), car Bedrock ne signale pas un jeton expiré comme un 401. Un 401 de ce point de terminaison provient généralement de quelque chose d'autre dans le chemin de la requête, tel qu'un proxy d'entreprise.

580 

581Une actualisation des identifiants corrige un jeton expiré et ne peut pas corriger les autres causes, donc le message offre les deux :

582 

583```text theme={null}

584AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...

585```

586 

587L'indice d'action au milieu nomme la commande `awsAuthRefresh` de vos paramètres, donc il varie. La partie stable est le début `AWS authentication failed`.

588 

589**Que faire :**

590 

591* Exécutez la commande `awsAuthRefresh` nommée dans le message, ou `aws sso login`, au cas où un identifiant expiré serait la cause

592* Si vos identifiants sont actuels, confirmez que les permissions IAM dans [IAM configuration](/fr/amazon-bedrock#iam-configuration) sont attachées à l'identité que vous utilisez et que le modèle sélectionné est activé pour votre compte et votre région

593* Exécutez `aws sts get-caller-identity` pour confirmer quelle identité vos requêtes utilisent ; un `AWS_PROFILE` obsolète ou un profil par défaut est une cause courante d'une incompatibilité de permission

594 

480<h2 id="network-and-connection-errors">595<h2 id="network-and-connection-errors">

481 Erreurs réseau et de connexion596 Erreurs réseau et de connexion

482</h2>597</h2>


484Ces erreurs signifient qu'une demande réseau de Claude Code n'a pas pu atteindre sa destination. Elles proviennent généralement de votre réseau local, proxy ou pare-feu, ou de la politique réseau de l'environnement cloud.599Ces erreurs signifient qu'une demande réseau de Claude Code n'a pas pu atteindre sa destination. Elles proviennent généralement de votre réseau local, proxy ou pare-feu, ou de la politique réseau de l'environnement cloud.

485 600 

486<h3 id="unable-to-connect-to-api">601<h3 id="unable-to-connect-to-api">

487 Impossible de se connecter à l'API602 Unable to connect to API

488</h3>603</h3>

489 604 

490La connexion TCP à l'API a échoué ou ne s'est jamais complétée.605La connexion TCP à l'API a échoué ou ne s'est jamais complétée.


515* Docker Desktop et les runtimes de conteneurs similaires peuvent intercepter le trafic sortant. Quittez-les et réessayez pour exclure cela.630* Docker Desktop et les runtimes de conteneurs similaires peuvent intercepter le trafic sortant. Quittez-les et réessayez pour exclure cela.

516 631 

517<h3 id="ssl-certificate-errors">632<h3 id="ssl-certificate-errors">

518 Erreurs de certificat SSL633 SSL certificate errors

519</h3>634</h3>

520 635 

521Un proxy ou un appareil de sécurité sur votre réseau intercepte le trafic TLS avec son propre certificat, et Claude Code ne lui fait pas confiance.636Un proxy ou un appareil de sécurité sur votre réseau intercepte le trafic TLS avec son propre certificat, et Claude Code ne lui fait pas confiance.


525Unable to connect to API: Self-signed certificate detected640Unable to connect to API: Self-signed certificate detected

526```641```

527 642 

643{/* min-version: 2.1.199 */}À partir de la v2.1.199, une défaillance de validation de certificat n'est pas réessayée, donc cette erreur apparaît à la première tentative au lieu d'après le [budget de tentative](#automatic-retries) complet. Les versions antérieures ont passé quelques minutes à réessayer avant de l'afficher. Les conditions TLS transitoires, telles qu'un délai d'attente de poignée de main, réessaient toujours.

644 

645Lors de `/login` et de la vérification de connectivité au démarrage, la même défaillance est signalée avec le code OpenSSL et le correctif en ligne :

646 

647```text theme={null}

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

649```

650 

528**Que faire :**651**Que faire :**

529 652 

530* Exportez le bundle CA de votre organisation et pointez Claude Code dessus avec `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`653* Exportez le bundle CA de votre organisation et pointez Claude Code dessus avec `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`


532* Ne définissez pas `NODE_TLS_REJECT_UNAUTHORIZED=0`, qui désactive complètement la validation des certificats655* Ne définissez pas `NODE_TLS_REJECT_UNAUTHORIZED=0`, qui désactive complètement la validation des certificats

533 656 

534<h3 id="host-not-allowed-in-a-cloud-session">657<h3 id="host-not-allowed-in-a-cloud-session">

535 Hôte non autorisé dans une session cloud658 Host not allowed in a cloud session

536</h3>659</h3>

537 660 

538Une demande HTTP sortante d'une session cloud ou d'une routine a été bloquée par la politique réseau de l'environnement.661Une demande HTTP sortante d'une session cloud ou d'une routine a été bloquée par la politique réseau de l'environnement.


811* Si vous ne pouvez pas identifier quel tour l'a causé, exécutez `/clear` pour démarrer une nouvelle conversation dans le même projet. Votre conversation précédente est préservée sur disque et reste disponible dans `/resume`.934* Si vous ne pouvez pas identifier quel tour l'a causé, exécutez `/clear` pour démarrer une nouvelle conversation dans le même projet. Votre conversation précédente est préservée sur disque et reste disponible dans `/resume`.

812* En [mode non interactif](/fr/headless) (`-p`), où la rembobinage n'est pas disponible, réessayez avec un prompt reformulé dans une nouvelle session sans `--continue`. Les vérifications de politique varient selon le modèle, donc passer à un modèle différent avec `--model` peut également résoudre le refus dans certains cas.935* En [mode non interactif](/fr/headless) (`-p`), où la rembobinage n'est pas disponible, réessayez avec un prompt reformulé dans une nouvelle session sans `--continue`. Les vérifications de politique varient selon le modèle, donc passer à un modèle différent avec `--model` peut également résoudre le refus dans certains cas.

813 936 

937<h2 id="command-line-errors">

938 Erreurs de ligne de commande

939</h2>

940 

941Ces erreurs proviennent de la propre validation de Claude Code de la ligne de commande `claude`. Claude Code les imprime immédiatement, avant de créer une session ou d'envoyer une requête API.

942 

943<h3 id="conflict-between-bg-and-print">

944 Conflict between --bg and --print

945</h3>

946 

947Ce message nécessite Claude Code v2.1.198 ou ultérieur. Vous avez combiné `--bg` avec `-p` ou `--print` dans la même invocation `claude`. `--bg` démarre une [session en arrière-plan](/fr/agent-view#from-your-shell) que vous attachez plus tard avec `claude agents`, tandis que `--print` s'exécute [non-interactivement](/fr/headless) et ne démarre jamais la session interactive que `claude agents` attache. Avant v2.1.198, cette combinaison créait silencieusement une tâche en arrière-plan qui ne pouvait jamais être attachée.

948 

949```text theme={null}

950--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.

951```

952 

953**Que faire :**

954 

955* Supprimez `-p` ou `--print`. `--bg` prend le prompt comme argument positionnel, donc `claude --bg "<task>"` est la commande complète. Consultez [Dispatch new agents from your shell](/fr/agent-view#from-your-shell).

956* Pour exécuter le prompt non-interactivement et imprimer le résultat au lieu de créer une session en arrière-plan, supprimez `--bg` et exécutez `claude -p "<task>"`

957 

814<h2 id="responses-seem-lower-quality-than-usual">958<h2 id="responses-seem-lower-quality-than-usual">

815 Les réponses semblent de qualité inférieure à la normale959 Les réponses semblent de qualité inférieure à la normale

816</h2>960</h2>


838 Signaler une erreur982 Signaler une erreur

839</h2>983</h2>

840 984 

841Cette page couvre les erreurs de l'API Claude. Pour les erreurs d'autres composants Claude Code, consultez le guide pertinent :985Pour les erreurs de composants que cette page ne couvre pas, consultez le guide pertinent :

842 986 

843* Le serveur MCP n'a pas pu se connecter ou s'authentifier : [MCP](/fr/mcp)987* Le serveur MCP n'a pas pu se connecter ou s'authentifier : [MCP](/fr/mcp)

844* Le script hook a échoué ou a bloqué un outil : [Debug hooks](/fr/hooks#debug-hooks)988* Le script hook a échoué ou a bloqué un outil : [Debug hooks](/fr/hooks#debug-hooks)

fullscreen.md +2 −2

Details

58* **Cliquez sur une suggestion dans la liste de commandes `/` ou de fichiers `@`** pour l'accepter. Le survol met en évidence la ligne sous votre curseur.58* **Cliquez sur une suggestion dans la liste de commandes `/` ou de fichiers `@`** pour l'accepter. Le survol met en évidence la ligne sous votre curseur.

59* **Cliquez sur une option dans un menu de sélection** pour la choisir. Cela couvre les invites de permission, `/model`, `/config` et autres dialogues qui affichent une liste d'options. Le survol affiche un pointeur sur la ligne sous votre curseur. {/* min-version: 2.1.187 */}Nécessite Claude Code v2.1.187 ou ultérieur.59* **Cliquez sur une option dans un menu de sélection** pour la choisir. Cela couvre les invites de permission, `/model`, `/config` et autres dialogues qui affichent une liste d'options. Le survol affiche un pointeur sur la ligne sous votre curseur. {/* min-version: 2.1.187 */}Nécessite Claude Code v2.1.187 ou ultérieur.

60* **Cliquez sur un résultat d'outil réduit** pour le développer et voir la sortie complète. Cliquez à nouveau pour le réduire. L'appel d'outil et son résultat se développent ensemble. Seuls les messages qui ont plus à afficher sont cliquables.60* **Cliquez sur un résultat d'outil réduit** pour le développer et voir la sortie complète. Cliquez à nouveau pour le réduire. L'appel d'outil et son résultat se développent ensemble. Seuls les messages qui ont plus à afficher sont cliquables.

61* **Maintenez `Cmd` sur macOS, ou `Ctrl` sur Linux et Windows, et cliquez sur une URL ou un chemin de fichier** pour l'ouvrir. Les chemins de fichiers dans la sortie de l'outil, comme ceux imprimés après une modification ou une écriture, s'ouvrent dans votre application par défaut. Les URLs `http://` et `https://` simples s'ouvrent dans votre navigateur. {/* min-version: 2.1.181 */}À partir de la v2.1.181, un simple clic sans maintenir `Cmd` ou `Ctrl` n'ouvre plus les liens, ce qui correspond au comportement du terminal natif. Dans le terminal intégré VS Code et les terminaux basés sur xterm.js similaires, Claude Code se défère au gestionnaire de lien du terminal, qui utilise le même geste.61* **Maintenez `Cmd` sur macOS, ou `Ctrl` sur Linux et Windows, et cliquez sur une URL ou un chemin de fichier** pour l'ouvrir. Les chemins de fichiers dans la sortie de l'outil, comme ceux imprimés après une modification ou une écriture, s'ouvrent dans votre application par défaut. Les URLs `http://` et `https://` simples s'ouvrent dans votre navigateur. {/* min-version: 2.1.181 */}À partir de la v2.1.181, un simple clic sans maintenir `Cmd` ou `Ctrl` n'ouvre plus les liens, ce qui correspond au comportement du terminal natif. Certains terminaux macOS transfèrent `Cmd`+clic à l'application en cours d'exécution au lieu d'ouvrir le lien eux-mêmes, et le protocole de souris du terminal n'a aucun moyen d'encoder la clé `Cmd`, donc Claude Code le reçoit comme un simple clic. Dans Ghostty, et {/* min-version: 2.1.198 */}à partir de la v2.1.198 dans Warp sur macOS, Claude Code détecte cela et permet à un simple clic sur un lien de l'ouvrir, et maintenir `Cmd` fonctionne toujours. Dans le terminal intégré VS Code et les terminaux basés sur xterm.js similaires, Claude Code se défère au gestionnaire de lien du terminal, qui utilise le même geste.

62* **Cliquez et glissez** pour sélectionner du texte n'importe où dans la conversation. Double-cliquez pour sélectionner un mot, en correspondant avec les limites de mots d'iTerm2 afin qu'un chemin de fichier se sélectionne comme une unité. Triple-cliquez pour sélectionner la ligne.62* **Cliquez et glissez** pour sélectionner du texte n'importe où dans la conversation. Double-cliquez pour sélectionner un mot, en correspondant avec les limites de mots d'iTerm2 afin qu'un chemin de fichier se sélectionne comme une unité. {/* min-version: 2.1.198 */}À partir de la v2.1.198, double-cliquer sur une URL sélectionne l'URL entière, y compris le schéma. Triple-cliquez pour sélectionner la ligne.

63* **Faites défiler avec la molette de la souris** pour vous déplacer dans la conversation.63* **Faites défiler avec la molette de la souris** pour vous déplacer dans la conversation.

64 64 

65Le texte sélectionné est copié automatiquement dans votre presse-papiers au relâchement de la souris. Pour désactiver cela, basculez Copier à la sélection dans `/config`.65Le texte sélectionné est copié automatiquement dans votre presse-papiers au relâchement de la souris. Pour désactiver cela, basculez Copier à la sélection dans `/config`.

gateways.md +1 −1

Details

44 Passerelle d'applications Claude44 Passerelle d'applications Claude

45</h3>45</h3>

46 46 

47La passerelle d'applications Claude est la passerelle auto-hébergée d'Anthropic, incluse dans le binaire `claude`. Elle achemine vers Amazon Bedrock, Google Cloud, Microsoft Foundry ou l'API Anthropic en amont. Les développeurs se connectent avec votre fournisseur d'identité d'entreprise via `/login`, la passerelle applique l'accès aux modèles et les [paramètres gérés](/fr/permissions#managed-settings) par groupe IdP, et elle émet des métriques d'utilisation du [protocole OpenTelemetry (OTLP)](/fr/monitoring-usage) vers votre propre pile d'observabilité.47La passerelle d'applications Claude est la passerelle auto-hébergée d'Anthropic, incluse dans le binaire `claude`. Elle achemine vers Amazon Bedrock, Claude Platform sur AWS, Google Cloud, Microsoft Foundry ou l'API Anthropic en amont. Les développeurs se connectent avec votre fournisseur d'identité d'entreprise via `/login`, la passerelle applique l'accès aux modèles et les [paramètres gérés](/fr/permissions#managed-settings) par groupe IdP, et elle émet des métriques d'utilisation du [protocole OpenTelemetry (OTLP)](/fr/monitoring-usage) vers votre propre pile d'observabilité.

48 48 

49Parce qu'elle est construite et testée aux côtés de chaque version de Claude Code, elle transfère les en-têtes et les champs de demande que Claude Code envoie. Une passerelle maintenue séparément doit avoir ses [règles de transfert mises à jour](/fr/llm-gateway-protocol#forward-as-open-lists) à mesure que ces en-têtes et champs changent à chaque version ; la passerelle d'applications Claude est publiée avec l'interface CLI, il n'y a donc pas de liste à tenir à jour. Voir [Disponibilité et limitations](/fr/claude-apps-gateway#availability-and-limitations) pour le petit ensemble de fonctionnalités qui se comportent différemment sur une session de passerelle.49Parce qu'elle est construite et testée aux côtés de chaque version de Claude Code, elle transfère les en-têtes et les champs de demande que Claude Code envoie. Une passerelle maintenue séparément doit avoir ses [règles de transfert mises à jour](/fr/llm-gateway-protocol#forward-as-open-lists) à mesure que ces en-têtes et champs changent à chaque version ; la passerelle d'applications Claude est publiée avec l'interface CLI, il n'y a donc pas de liste à tenir à jour. Voir [Disponibilité et limitations](/fr/claude-apps-gateway#availability-and-limitations) pour le petit ensemble de fonctionnalités qui se comportent différemment sur une session de passerelle.

50 50 

hooks.md +81 −43

Details

16 Cycle de vie des hooks16 Cycle de vie des hooks

17</h2>17</h2>

18 18 

19Les hooks se déclenchent à des points spécifiques pendant une session Claude Code. Lorsqu'un événement se déclenche et qu'un matcher correspond, Claude Code transmet le contexte JSON de l'événement à votre gestionnaire de hook. Pour les hooks de commande, l'entrée arrive sur stdin. Pour les hooks HTTP, elle arrive dans le corps de la requête POST. Votre gestionnaire peut alors inspecter l'entrée, prendre une action et éventuellement retourner une décision. Les événements se déclenchent selon trois cadences : une fois par session (`SessionStart`, `SessionEnd`), une fois par tour (`UserPromptSubmit`, `Stop`, `StopFailure`) et à chaque appel d'outil à l'intérieur de la boucle agentique (`PreToolUse`, `PostToolUse`) :19Les hooks se déclenchent à des points spécifiques pendant une session Claude Code. Lorsqu'un événement se déclenche et qu'un matcher correspond, Claude Code transmet le contexte JSON de l'événement à votre gestionnaire de hook. Pour les hooks de commande, l'entrée arrive sur stdin. Pour les hooks HTTP, elle arrive dans le corps de la requête POST. Votre gestionnaire peut alors inspecter l'entrée, prendre une action et éventuellement retourner une décision.

20 

21Les événements se déclenchent selon trois cadences :

22 

23* une fois par session : `SessionStart` et `SessionEnd`

24* une fois par tour : `UserPromptSubmit`, `Stop` et `StopFailure`

25* à chaque appel d'outil à l'intérieur de la boucle agentique : `PreToolUse` et `PostToolUse`

20 26 

21<div style={{maxWidth: "500px", margin: "0 auto"}}>27<div style={{maxWidth: "500px", margin: "0 auto"}}>

22 <Frame>28 <Frame>


214| `SessionStart` | comment la session a démarré | `startup`, `resume`, `clear`, `compact` |220| `SessionStart` | comment la session a démarré | `startup`, `resume`, `clear`, `compact` |

215| `Setup` | quel drapeau CLI a déclenché la configuration | `init`, `maintenance` |221| `Setup` | quel drapeau CLI a déclenché la configuration | `init`, `maintenance` |

216| `SessionEnd` | pourquoi la session s'est terminée | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |222| `SessionEnd` | pourquoi la session s'est terminée | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |

217| `Notification` | type de notification | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |223| `Notification` | type de notification | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed` |

218| `SubagentStart` | type d'agent | `general-purpose`, `Explore`, `Plan`, noms d'agents personnalisés ou noms limités au plugin comme `^my-plugin:reviewer$` |224| `SubagentStart` | type d'agent | `general-purpose`, `Explore`, `Plan`, noms d'agents personnalisés ou noms limités au plugin comme `^my-plugin:reviewer$` |

219| `PreCompact`, `PostCompact` | ce qui a déclenché la compaction | `manual`, `auto` |225| `PreCompact`, `PostCompact` | ce qui a déclenché la compaction | `manual`, `auto` |

220| `SubagentStop` | type d'agent | mêmes valeurs que `SubagentStart` |226| `SubagentStop` | type d'agent | mêmes valeurs que `SubagentStart` |


317 323 

318Tous les hooks correspondants s'exécutent en parallèle, et les gestionnaires identiques sont automatiquement dédupliqués. Les hooks de commande sont dédupliqués par chaîne de commande et `args`, et les hooks HTTP sont dédupliqués par URL.324Tous les hooks correspondants s'exécutent en parallèle, et les gestionnaires identiques sont automatiquement dédupliqués. Les hooks de commande sont dédupliqués par chaîne de commande et `args`, et les hooks HTTP sont dédupliqués par URL.

319 325 

320Les gestionnaires s'exécutent dans le répertoire courant avec l'environnement de Claude Code. La variable d'environnement `$CLAUDE_CODE_REMOTE` est définie à `"true"` dans les environnements web distants et n'est pas définie dans le CLI local.326Les gestionnaires s'exécutent dans le répertoire courant avec l'environnement de Claude Code. La variable d'environnement `$CLAUDE_CODE_REMOTE` est définie à `"true"` dans les environnements web distants et n'est pas définie dans le CLI local. {/* min-version: 2.1.199 */}À partir de v2.1.199, [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/fr/env-vars) est défini à l'ID de session [Contrôle à distance](/fr/remote-control) tandis que la session locale a une connexion Contrôle à distance active.

321 327 

322<h4 id="common-fields">328<h4 id="common-fields">

323 Champs communs329 Champs communs


704Le code de sortie 2 est la façon dont un hook signale « arrêtez, ne faites pas cela ». L'effet dépend de l'événement, car certains événements représentent des actions qui peuvent être bloquées (comme un appel d'outil qui ne s'est pas encore produit) et d'autres représentent des choses qui se sont déjà produites ou ne peuvent pas être empêchées.710Le code de sortie 2 est la façon dont un hook signale « arrêtez, ne faites pas cela ». L'effet dépend de l'événement, car certains événements représentent des actions qui peuvent être bloquées (comme un appel d'outil qui ne s'est pas encore produit) et d'autres représentent des choses qui se sont déjà produites ou ne peuvent pas être empêchées.

705 711 

706| Événement de hook | Peut bloquer ? | Ce qui se passe sur exit 2 |712| Événement de hook | Peut bloquer ? | Ce qui se passe sur exit 2 |

707| :-------------------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |713| :-------------------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- |

708| `PreToolUse` | Oui | Bloque l'appel d'outil |714| `PreToolUse` | Oui | Bloque l'appel d'outil |

709| `PermissionRequest` | Oui | Refuse la permission |715| `PermissionRequest` | Oui | Refuse la permission |

710| `UserPromptSubmit` | Oui | Bloque le traitement du prompt et efface le prompt |716| `UserPromptSubmit` | Oui | Bloque le traitement du prompt et efface le prompt |

711| `UserPromptExpansion` | Oui | Bloque l'expansion |717| `UserPromptExpansion` | Oui | Bloque l'expansion |

712| `Stop` | Oui | Empêche Claude de s'arrêter, continue la conversation |718| `Stop` | Oui | Empêche Claude de s'arrêter, continue la conversation |

713| `SubagentStop` | Oui | Empêche le subagent de s'arrêter |719| `SubagentStop` | Oui | Empêche le subagent de s'arrêter |

714| `TeammateIdle` | Oui | Empêche le coéquipier de devenir inactif (le coéquipier continue de travailler) |720| `TeammateIdle` | Oui | Empêche le coéquipier de devenir inactif, le coéquipier continue de travailler |

715| `TaskCreated` | Oui | Annule la création de la tâche |721| `TaskCreated` | Oui | Annule la création de la tâche |

716| `TaskCompleted` | Oui | Empêche la tâche d'être marquée comme complétée |722| `TaskCompleted` | Oui | Empêche la tâche d'être marquée comme complétée |

717| `ConfigChange` | Oui | Bloque la modification de configuration de prendre effet (sauf `policy_settings`) |723| `ConfigChange` | Oui | Bloque la modification de configuration de prendre effet (sauf `policy_settings`) |

718| `StopFailure` | Non | La sortie et le code de sortie sont ignorés |724| `StopFailure` | Non | La sortie et le code de sortie sont ignorés |

719| `PostToolUse` | Non | Affiche stderr à Claude (l'outil a déjà s'exécuté) |725| `PostToolUse` | Non | Affiche stderr à Claude ; l'outil a déjà s'exécuté |

720| `PostToolUseFailure` | Non | Affiche stderr à Claude (l'outil a déjà échoué) |726| `PostToolUseFailure` | Non | Affiche stderr à Claude ; l'outil a déjà échoué |

721| `PostToolBatch` | Oui | Arrête la boucle agentique avant l'appel du modèle suivant |727| `PostToolBatch` | Oui | Arrête la boucle agentique avant l'appel du modèle suivant |

722| `PermissionDenied` | Non | Le code de sortie et stderr sont ignorés (refus déjà survenu). Utilisez JSON `hookSpecificOutput.retry: true` pour indiquer au modèle qu'il peut réessayer |728| `PermissionDenied` | Non | Le code de sortie et stderr sont ignorés car le refus a déjà eu lieu. Utilisez JSON `hookSpecificOutput.retry: true` pour indiquer au modèle qu'il peut réessayer |

723| `Notification` | Non | Affiche stderr à l'utilisateur uniquement |729| `Notification` | Non | Affiche stderr à l'utilisateur uniquement |

724| `SubagentStart` | Non | Affiche stderr à l'utilisateur uniquement |730| `SubagentStart` | Non | Affiche stderr à l'utilisateur uniquement |

725| `SessionStart` | Non | Affiche stderr à l'utilisateur uniquement |731| `SessionStart` | Non | Affiche stderr à l'utilisateur uniquement |


736| `InstructionsLoaded` | Non | Le code de sortie est ignoré |742| `InstructionsLoaded` | Non | Le code de sortie est ignoré |

737| `MessageDisplay` | Non | Le texte original est affiché |743| `MessageDisplay` | Non | Le texte original est affiché |

738 744 

745Pour `SessionStart`, `Setup` et `SubagentStart`, le stderr du code de sortie 2 s'affiche dans la transcription comme un avis `<hook name> hook error`, de la même manière qu'une [erreur non-bloquante](#exit-code-output). Claude ne le voit pas, et la session ou le subagent procède. Pour `SubagentStart`, l'avis apparaît dans la propre transcription du subagent, pas dans la conversation parent.

746 

747À partir de Claude Code v2.1.199, `SessionStart`, `Setup` et `SubagentStart` affichent le stderr du code de sortie 2 dans la transcription. Les versions antérieures l'écrivaient uniquement dans le journal de débogage.

748 

739<h3 id="http-response-handling">749<h3 id="http-response-handling">

740 Gestion des réponses HTTP750 Gestion des réponses HTTP

741</h3>751</h3>


963 Entrée SessionStart973 Entrée SessionStart

964</h4>974</h4>

965 975 

966En plus des [champs d'entrée communs](#common-input-fields), les hooks SessionStart reçoivent `source` et optionnellement `model`, `agent_type` et `session_title`. Le champ `source` indique comment la session a démarré : `"startup"` pour les nouvelles sessions, `"resume"` pour les sessions reprises, `"clear"` après `/clear` ou `"compact"` après compaction. Le champ `model` contient l'identifiant du modèle actif. Il peut être omis, par exemple après `/clear` ou lorsqu'une session est restaurée via la récupération de conversation, donc vérifiez le champ avant de le lire. Si vous démarrez Claude Code avec `claude --agent <name>`, un champ `agent_type` contient le nom de l'agent. Le champ `session_title` porte le titre de session actuel s'il est déjà défini, par exemple via `--name` ou `/rename`. Un hook qui émet `sessionTitle` peut vérifier `session_title` en premier pour éviter de remplacer un titre que l'utilisateur a défini explicitement.976En plus des [champs d'entrée communs](#common-input-fields), les hooks SessionStart reçoivent `source` et optionnellement `model`, `agent_type` et `session_title` :

977 

978| Champ | Description |

979| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

980| `source` | Comment la session a démarré : `"startup"` pour les nouvelles sessions, `"resume"` pour les sessions reprises, `"clear"` après `/clear` ou `"compact"` après compaction |

981| `model` | L'identifiant du modèle actif. Il peut être omis, par exemple après `/clear` ou lorsqu'une session est restaurée via la récupération de conversation, donc vérifiez le champ avant de le lire |

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

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

967 984 

968```json theme={null}985```json theme={null}

969{986{


983Tout texte que votre script de hook imprime sur stdout est ajouté comme contexte pour Claude. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez retourner ces champs spécifiques à l'événement :1000Tout texte que votre script de hook imprime sur stdout est ajouté comme contexte pour Claude. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez retourner ces champs spécifiques à l'événement :

984 1001 

985| Champ | Description |1002| Champ | Description |

986| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1003| :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

987| `additionalContext` | Chaîne ajoutée au contexte de Claude au début de la conversation, avant le premier prompt. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) pour savoir comment le texte est livré et ce qu'il faut y mettre |1004| `additionalContext` | Chaîne ajoutée au contexte de Claude au début de la conversation, avant le premier prompt. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) pour savoir comment le texte est livré et ce qu'il faut y mettre |

988| `initialUserMessage` | Chaîne utilisée comme premier message utilisateur de la session. S'applique en [mode non-interactif](/fr/headless) (`-p`), où elle devient le premier tour même si aucun prompt n'est fourni. Si un prompt est fourni, il suit comme le tour suivant. Contrairement à `additionalContext`, qui s'attache à un tour existant, ceci crée le tour |1005| `initialUserMessage` | Chaîne utilisée comme premier message utilisateur de la session. S'applique en [mode non-interactif](/fr/headless) avec le drapeau `-p`, où elle devient le premier tour même si aucun prompt n'est fourni. Si un prompt est fourni, il suit comme le tour suivant. Contrairement à `additionalContext`, qui s'attache à un tour existant, ceci crée le tour |

989| `sessionTitle` | Définit le titre de la session, avec le même effet que `/rename`. Utilisez pour nommer les sessions automatiquement à partir du dossier de lancement, de la branche git ou du nom du worktree. S'applique uniquement lorsque `source` est `"startup"` ou `"resume"` ; ignoré sur `"clear"` et `"compact"` |1006| `sessionTitle` | Définit le titre de la session, avec le même effet que `/rename`. Utilisez pour nommer les sessions automatiquement à partir du dossier de lancement, de la branche git ou du nom du worktree. S'applique uniquement lorsque `source` est `"startup"` ou `"resume"` ; ignoré sur `"clear"` et `"compact"` |

990| `watchPaths` | Tableau de chemins absolus à surveiller pour les événements [FileChanged](#filechanged) pendant cette session |1007| `watchPaths` | Tableau de chemins absolus à surveiller pour les événements [FileChanged](#filechanged) pendant cette session |

991| `reloadSkills` | Booléen. Lorsque `true`, Claude Code réanalyse les répertoires [skill](/fr/skills) et de commandes après que les hooks SessionStart se terminent, donc les skills que le hook a installées sont disponibles dans la même session, à partir du premier prompt |1008| `reloadSkills` | Booléen. Lorsque `true`, Claude Code réanalyse les répertoires [skill](/fr/skills) et de commandes après que les hooks SessionStart se terminent, donc les skills que le hook a installées sont disponibles dans la même session, à partir du premier prompt |


1062 Setup1079 Setup

1063</h3>1080</h3>

1064 1081 

1065Se déclenche uniquement lorsque vous lancez Claude Code avec `--init-only`, ou avec `--init` ou `--maintenance` en mode impression (`-p`). Il ne se déclenche pas au démarrage normal. Utilisez-le pour l'installation de dépendances ponctuelles ou le nettoyage programmé que vous déclenchez explicitement à partir de CI ou de scripts, séparé du démarrage normal de session. Pour l'initialisation par session, utilisez [SessionStart](#sessionstart) à la place.1082Se déclenche uniquement lorsque vous lancez Claude Code avec `--init-only`, ou avec `--init` ou `--maintenance` en [mode non-interactif](/fr/headless) avec le drapeau `-p`. Il ne se déclenche pas au démarrage normal. Utilisez-le pour l'installation de dépendances ponctuelles ou le nettoyage programmé que vous déclenchez explicitement à partir de CI ou de scripts, séparé du démarrage normal de session. Pour l'initialisation par session, utilisez [SessionStart](#sessionstart) à la place.

1066 1083 

1067La valeur du matcher correspond au drapeau CLI qui a déclenché le hook :1084La valeur du matcher correspond au drapeau CLI qui a déclenché le hook :

1068 1085 


1071| `init` | `claude --init-only` ou `claude -p --init` |1088| `init` | `claude --init-only` ou `claude -p --init` |

1072| `maintenance` | `claude -p --maintenance` |1089| `maintenance` | `claude -p --maintenance` |

1073 1090 

1074`--init-only` exécute les hooks Setup et les hooks SessionStart avec le matcher `startup`, puis quitte sans démarrer une conversation. `--init` et `--maintenance` déclenchent les hooks Setup uniquement lorsqu'ils sont combinés avec `-p` (mode impression) ; dans une session interactive, ces deux drapeaux ne déclenchent actuellement pas les hooks Setup.1091`--init-only` exécute les hooks Setup et les hooks SessionStart avec le matcher `startup`, puis quitte sans démarrer une conversation. `--init` et `--maintenance` déclenchent les hooks Setup uniquement lorsqu'ils sont combinés avec `-p` ; dans une session interactive, ces deux drapeaux ne déclenchent actuellement pas les hooks Setup.

1075 1092 

1076Parce que Setup ne se déclenche pas à chaque lancement, un plugin qui a besoin d'une dépendance installée ne peut pas compter sur Setup seul. Le modèle pratique est de vérifier la dépendance à la première utilisation et d'installer en cas d'absence, par exemple un hook ou une skill qui teste `${CLAUDE_PLUGIN_DATA}/node_modules` et exécute `npm install` si absent. Consultez le [répertoire de données persistantes](/fr/plugins-reference#persistent-data-directory) pour savoir où stocker les dépendances installées.1093Parce que Setup ne se déclenche pas à chaque lancement, un plugin qui a besoin d'une dépendance installée ne peut pas compter sur Setup seul. Le modèle pratique est de vérifier la dépendance à la première utilisation et d'installer en cas d'absence, par exemple un hook ou une skill qui teste `${CLAUDE_PLUGIN_DATA}/node_modules` et exécute `npm install` si absent. Consultez le [répertoire de données persistantes](/fr/plugins-reference#persistent-data-directory) pour savoir où stocker les dépendances installées.

1077 1094 


1095 Contrôle de décision Setup1112 Contrôle de décision Setup

1096</h4>1113</h4>

1097 1114 

1098Les hooks Setup ne peuvent pas bloquer. Sur le code de sortie 2, stderr est affiché à l'utilisateur ; sur tout autre code de sortie non-zéro, stderr n'apparaît que lorsque vous lancez avec `--verbose`. Dans les deux cas, l'exécution continue. Pour transmettre des informations au contexte de Claude, retournez `additionalContext` dans la sortie JSON ; le stdout brut est écrit uniquement dans le journal de débogage. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez retourner ces champs spécifiques à l'événement :1115Les hooks Setup ne peuvent pas bloquer. Tout code de sortie non-zéro, y compris 2, affiche stderr à l'utilisateur comme un avis `<hook name> hook error`, et l'exécution continue. En [mode non-interactif](/fr/headless), la sortie du hook n'apparaît que lorsque vous lancez avec `--verbose`.

1116 

1117Pour transmettre des informations au contexte de Claude, retournez `additionalContext` dans la sortie JSON ; le stdout brut est écrit uniquement dans le journal de débogage. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez retourner ces champs spécifiques à l'événement :

1099 1118 

1100| Champ | Description |1119| Champ | Description |

1101| :------------------ | :------------------------------------------------------------------------------------ |1120| :------------------ | :------------------------------------------------------------------------------------ |


1191* **Stdout en texte brut** : tout texte non-JSON écrit sur stdout est ajouté comme contexte1210* **Stdout en texte brut** : tout texte non-JSON écrit sur stdout est ajouté comme contexte

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

1193 1212 

1194Le stdout brut est affiché comme sortie de hook dans la transcription. Le champ `additionalContext` est ajouté plus discrètement.1213Le stdout brut est affiché comme sortie de hook dans la transcription. La valeur `additionalContext` est injectée comme un rappel système que Claude lit sans entrée de transcription visible.

1195 1214 

1196Pour bloquer un prompt, retournez un objet JSON avec `decision` défini à `"block"` :1215Pour bloquer un prompt, retournez un objet JSON avec `decision` défini à `"block"` :

1197 1216 


1215}1234}

1216```1235```

1217 1236 

1218<Note>

1219 Le format JSON n'est pas requis pour les cas simples. Pour ajouter du contexte, vous pouvez imprimer du texte brut sur stdout avec exit code 0. Utilisez JSON lorsque vous avez besoin de bloquer des prompts ou que vous voulez un contrôle plus structuré.

1220</Note>

1221 

1222<h3 id="userpromptexpansion">1237<h3 id="userpromptexpansion">

1223 UserPromptExpansion1238 UserPromptExpansion

1224</h3>1239</h3>


1545Dans `PostToolUse`, `tool_response` pour un appel Agent complété porte le texte final du subagent ainsi que la télémétrie d'utilisation. Lisez ces champs pour enregistrer le coût par subagent à partir d'un hook :1560Dans `PostToolUse`, `tool_response` pour un appel Agent complété porte le texte final du subagent ainsi que la télémétrie d'utilisation. Lisez ces champs pour enregistrer le coût par subagent à partir d'un hook :

1546 1561 

1547| Champ | Type | Exemple | Description |1562| Champ | Type | Exemple | Description |

1548| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |1563| :------------------ | :----- | :---------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1549| `status` | string | `"completed"` | `"completed"` pour les appels synchrones, `"async_launched"` pour `run_in_background: true` |1564| `status` | string | `"completed"` | `"completed"` pour les appels synchrones, `"async_launched"` pour les subagents en arrière-plan. {/* min-version: 2.1.198 */}À partir de v2.1.198, les subagents s'exécutent en arrière-plan par défaut, donc un `run_in_background` omis produit également `"async_launched"` |

1550| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identifiant pour l'exécution du subagent |1565| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identifiant pour l'exécution du subagent |

1551| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Les blocs de texte finaux du subagent |1566| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Les blocs de texte finaux du subagent |

1552| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modèle sur lequel le subagent a fonctionné, qui peut différer du modèle demandé. {/* min-version: 2.1.174 */}Nécessite Claude Code v2.1.174 ou ultérieur |1567| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modèle sur lequel le subagent a fonctionné, qui peut différer du modèle demandé. {/* min-version: 2.1.174 */}Nécessite Claude Code v2.1.174 ou ultérieur |


1555| `totalToolUseCount` | number | `7` | Nombre d'appels d'outil que le subagent a effectués |1570| `totalToolUseCount` | number | `7` | Nombre d'appels d'outil que le subagent a effectués |

1556| `usage` | object | `{"input_tokens": 8320, ...}` | Ventilation des tokens par type : `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1571| `usage` | object | `{"input_tokens": 8320, ...}` | Ventilation des tokens par type : `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1557 1572 

1558Pour les appels `run_in_background: true`, l'outil retourne immédiatement après le lancement du subagent, donc `tool_response` ne porte aucun champ d'utilisation. Il a `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` et `resolvedModel` à la place.1573Pour les subagents en arrière-plan, l'outil retourne immédiatement après le lancement du subagent, donc `tool_response` ne porte aucun champ d'utilisation. Il a `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` et `resolvedModel` à la place.

1559 1574 

1560Le champ `resolvedModel` nomme le modèle sur lequel le subagent fonctionne réellement, qui peut différer de la valeur `model` dans `tool_input`. Il nécessite Claude Code v2.1.174 ou ultérieur.1575Le champ `resolvedModel` nomme le modèle sur lequel le subagent fonctionne réellement, qui peut différer de la valeur `model` dans `tool_input`, comme lorsque `availableModels` ou un autre remplacement s'applique. Il nécessite Claude Code v2.1.174 ou ultérieur.

1561 1576 

1562<a id="askuserquestion" />1577<a id="askuserquestion" />

1563 1578 


1619 1634 

1620`AskUserQuestion` et `ExitPlanMode` nécessitent une interaction utilisateur et bloquent normalement en [mode non-interactif](/fr/headless) avec le drapeau `-p`. Retourner `permissionDecision: "allow"` avec `updatedInput` satisfait cette exigence : le hook lit l'entrée de l'outil depuis stdin, collecte la réponse via votre propre interface utilisateur et la retourne dans `updatedInput` afin que l'outil s'exécute sans inviter. Retourner `"allow"` seul n'est pas suffisant pour ces outils. Pour `AskUserQuestion`, renvoyez le tableau `questions` original et ajoutez un objet [`answers`](#askuserquestion) mappant le texte de chaque question à la réponse choisie.1635`AskUserQuestion` et `ExitPlanMode` nécessitent une interaction utilisateur et bloquent normalement en [mode non-interactif](/fr/headless) avec le drapeau `-p`. Retourner `permissionDecision: "allow"` avec `updatedInput` satisfait cette exigence : le hook lit l'entrée de l'outil depuis stdin, collecte la réponse via votre propre interface utilisateur et la retourne dans `updatedInput` afin que l'outil s'exécute sans inviter. Retourner `"allow"` seul n'est pas suffisant pour ces outils. Pour `AskUserQuestion`, renvoyez le tableau `questions` original et ajoutez un objet [`answers`](#askuserquestion) mappant le texte de chaque question à la réponse choisie.

1621 1636 

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

1638 

1622<Note>1639<Note>

1623 PreToolUse utilisait auparavant les champs `decision` et `reason` au niveau supérieur, mais ceux-ci sont dépréciés pour cet événement. Utilisez `hookSpecificOutput.permissionDecision` et `hookSpecificOutput.permissionDecisionReason` à la place. Les valeurs dépréciées `"approve"` et `"block"` correspondent à `"allow"` et `"deny"` respectivement. Les autres événements comme PostToolUse et Stop continuent d'utiliser `decision` et `reason` au niveau supérieur comme format actuel.1640 PreToolUse utilisait auparavant les champs `decision` et `reason` au niveau supérieur, mais ceux-ci sont dépréciés pour cet événement. Utilisez `hookSpecificOutput.permissionDecision` et `hookSpecificOutput.permissionDecisionReason` à la place. Les valeurs dépréciées `"approve"` et `"block"` correspondent à `"allow"` et `"deny"` respectivement. Les autres événements comme PostToolUse et Stop continuent d'utiliser `decision` et `reason` au niveau supérieur comme format actuel.

1624</Note>1641</Note>


2016 Notification2033 Notification

2017</h3>2034</h3>

2018 2035 

2019S'exécute lorsque Claude Code envoie des notifications. Correspond au type de notification : `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`. Omettez le matcher pour exécuter les hooks pour tous les types de notification.2036S'exécute lorsque Claude Code envoie des notifications. Correspond au type de notification. Omettez le matcher pour exécuter les hooks pour tous les types de notification.

2037 

2038| Matcher | Quand il se déclenche |

2039| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |

2040| `permission_prompt` | Claude a besoin de votre approbation pour un appel d'outil |

2041| `idle_prompt` | Claude a terminé et attend votre prochain prompt |

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

2043| `elicitation_dialog` | Un serveur MCP ouvre un formulaire d'élicitation |

2044| `elicitation_complete` | Un formulaire d'élicitation MCP est soumis ou fermé |

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

2046| `agent_needs_input` | Une session en arrière-plan commence à attendre votre entrée. Se déclenche uniquement pendant que la [vue agent](/fr/agent-view) est ouverte dans un terminal |

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

2048 

2049Les types `agent_needs_input` et `agent_completed` nécessitent Claude Code v2.1.198 ou ultérieur.

2020 2050 

2021Utilisez des matchers séparés pour exécuter différents gestionnaires selon le type de notification. Cette configuration déclenche un script d'alerte spécifique à la permission lorsque Claude a besoin d'approbation de permission et une notification différente lorsque Claude a été inactif :2051Utilisez des matchers séparés pour exécuter différents gestionnaires selon le type de notification. Cette configuration déclenche un script d'alerte spécifique à la permission lorsque Claude a besoin d'approbation de permission et une notification différente lorsque Claude a été inactif :

2022 2052 


2079 Entrée SubagentStart2109 Entrée SubagentStart

2080</h4>2110</h4>

2081 2111 

2082En plus des [champs d'entrée communs](#common-input-fields), les hooks SubagentStart reçoivent `agent_id` avec l'identifiant unique du subagent et `agent_type` avec le nom de l'agent (agents intégrés comme `"general-purpose"`, `"Explore"`, `"Plan"` ou noms d'agents personnalisés).2112En plus des [champs d'entrée communs](#common-input-fields), les hooks SubagentStart reçoivent `agent_id` avec l'identifiant unique du subagent et `agent_type` avec le nom de l'agent que le matcher filtre.

2083 2113 

2084```json theme={null}2114```json theme={null}

2085{2115{


2277 Entrée Stop2307 Entrée Stop

2278</h4>2308</h4>

2279 2309 

2280En plus des [champs d'entrée communs](#common-input-fields), les hooks Stop reçoivent `stop_hook_active`, `last_assistant_message`, `background_tasks` et `session_crons`. Le champ `stop_hook_active` est `true` lorsque Claude Code continue déjà en raison d'un hook stop. Vérifiez cette valeur ou traitez la transcription pour empêcher Claude Code de s'exécuter indéfiniment. Le champ `last_assistant_message` contient le contenu textuel de la réponse finale de Claude, donc les hooks peuvent y accéder sans analyser le fichier de transcription.2310En plus des [champs d'entrée communs](#common-input-fields), les hooks Stop reçoivent `stop_hook_active`, `last_assistant_message`, `background_tasks` et `session_crons`. Le champ `stop_hook_active` est `true` lorsque Claude Code continue déjà en raison d'un hook stop. Vérifiez cette valeur ou traitez la transcription pour empêcher de bloquer sur une condition qui ne se résoudra jamais. Claude Code remplace le hook et termine le tour après 8 blocages consécutifs.

2311 

2312Le champ `last_assistant_message` contient le contenu textuel de la réponse finale de Claude, donc les hooks peuvent y accéder sans analyser le fichier de transcription.

2281 2313 

2282Les tableaux `background_tasks` et `session_crons`, disponibles dans Claude Code v2.1.145 ou ultérieur, permettent aux hooks de distinguer « la session est terminée » de « la session est en pause en attente du réveil du travail en arrière-plan ». Les deux tableaux sont présents lorsque le registre des tâches est accessible et sont vides lorsque rien n'est en vol ou programmé.2314Les tableaux `background_tasks` et `session_crons`, disponibles dans Claude Code v2.1.145 ou ultérieur, permettent aux hooks de distinguer « la session est terminée » de « la session est en pause en attente du réveil du travail en arrière-plan ». Les deux tableaux sont présents lorsque le registre des tâches est accessible et sont vides lorsque rien n'est en vol ou programmé.

2283 2315 


2559En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks CwdChanged peuvent retourner `watchPaths` pour définir dynamiquement quels chemins de fichiers [FileChanged](#filechanged) surveille :2591En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks CwdChanged peuvent retourner `watchPaths` pour définir dynamiquement quels chemins de fichiers [FileChanged](#filechanged) surveille :

2560 2592 

2561| Champ | Description |2593| Champ | Description |

2562| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2594| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2563| `watchPaths` | Tableau de chemins absolus. Remplace la liste de surveillance dynamique actuelle (les chemins de votre configuration `matcher` sont toujours surveillés). Retourner un tableau vide efface la liste dynamique, ce qui est typique lors de l'entrée dans un nouveau répertoire |2595| `watchPaths` | Tableau de chemins absolus. Remplace la liste de surveillance dynamique actuelle. Les chemins de votre configuration `matcher` sont toujours surveillés. Retourner un tableau vide efface la liste dynamique, ce qui est typique lors de l'entrée dans un nouveau répertoire |

2564 2596 

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

2566 2598 


2584En plus des [champs d'entrée communs](#common-input-fields), les hooks FileChanged reçoivent `file_path` et `event`.2616En plus des [champs d'entrée communs](#common-input-fields), les hooks FileChanged reçoivent `file_path` et `event`.

2585 2617 

2586| Champ | Description |2618| Champ | Description |

2587| :---------- | :--------------------------------------------------------------------------------------------------------- |2619| :---------- | :--------------------------------------------------------------------------------------------------------------------------- |

2588| `file_path` | Chemin absolu vers le fichier qui a changé |2620| `file_path` | Chemin absolu vers le fichier qui a changé |

2589| `event` | Ce qui s'est passé : `"change"` (fichier modifié), `"add"` (fichier créé) ou `"unlink"` (fichier supprimé) |2621| `event` | Ce qui s'est passé : `"change"` pour un fichier modifié, `"add"` pour un fichier créé ou `"unlink"` pour un fichier supprimé |

2590 2622 

2591```json theme={null}2623```json theme={null}

2592{2624{


2606En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks FileChanged peuvent retourner `watchPaths` pour mettre à jour dynamiquement quels chemins de fichiers sont surveillés :2638En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, les hooks FileChanged peuvent retourner `watchPaths` pour mettre à jour dynamiquement quels chemins de fichiers sont surveillés :

2607 2639 

2608| Champ | Description |2640| Champ | Description |

2609| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2641| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

2610| `watchPaths` | Tableau de chemins absolus. Remplace la liste de surveillance dynamique actuelle (les chemins de votre configuration `matcher` sont toujours surveillés). Utilisez ceci lorsque votre script de hook découvre des fichiers supplémentaires à surveiller en fonction du fichier modifié |2642| `watchPaths` | Tableau de chemins absolus. Remplace la liste de surveillance dynamique actuelle. Les chemins de votre configuration `matcher` sont toujours surveillés. Utilisez ceci lorsque votre script de hook découvre des fichiers supplémentaires à surveiller en fonction du fichier modifié |

2611 2643 

2612Les hooks FileChanged n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer le changement de fichier de se produire.2644Les hooks FileChanged n'ont pas de contrôle de décision. Ils ne peuvent pas bloquer le changement de fichier de se produire.

2613 2645 


2615 WorktreeCreate2647 WorktreeCreate

2616</h3>2648</h3>

2617 2649 

2618Lorsque vous exécutez `claude --worktree` ou qu'un [subagent utilise `isolation: "worktree"`](/fr/sub-agents#choose-the-subagent-scope), Claude Code crée une copie de travail isolée en utilisant `git worktree`. Si vous configurez un hook WorktreeCreate, il remplace le comportement git par défaut, vous permettant d'utiliser un système de contrôle de version différent comme SVN, Perforce ou Mercurial.2650S'exécute lorsqu'un worktree est en cours de création, soit à partir de `claude --worktree` soit à partir d'un [subagent utilisant `isolation: "worktree"`](/fr/sub-agents#choose-the-subagent-scope). Par défaut, Claude Code crée la copie de travail isolée avec `git worktree`. Configurer un hook WorktreeCreate remplace ce comportement git par défaut, vous permettant d'utiliser un système de contrôle de version différent comme SVN, Perforce ou Mercurial.

2619 2651 

2620Parce que le hook remplace le comportement par défaut entièrement, [`.worktreeinclude`](/fr/worktrees#copy-gitignored-files-into-worktrees) n'est pas traité. Si vous avez besoin de copier les fichiers de configuration locaux comme `.env` dans le nouveau worktree, faites-le à l'intérieur de votre script de hook.2652Parce que le hook remplace le comportement par défaut entièrement, [`.worktreeinclude`](/fr/worktrees#copy-gitignored-files-into-worktrees) n'est pas traité. Si vous avez besoin de copier les fichiers de configuration locaux comme `.env` dans le nouveau worktree, faites-le à l'intérieur de votre script de hook.

2621 2653 


2646 Entrée WorktreeCreate2678 Entrée WorktreeCreate

2647</h4>2679</h4>

2648 2680 

2649En plus des [champs d'entrée communs](#common-input-fields), les hooks WorktreeCreate reçoivent le champ `name`. C'est un identifiant slug pour le nouveau worktree, soit spécifié par l'utilisateur, soit généré automatiquement (par exemple, `bold-oak-a3f2`).2681En plus des [champs d'entrée communs](#common-input-fields), les hooks WorktreeCreate reçoivent le champ `name`. C'est un identifiant slug pour le nouveau worktree, soit spécifié par l'utilisateur, soit généré automatiquement, par exemple `bold-oak-a3f2`.

2650 2682 

2651```json theme={null}2683```json theme={null}

2652{2684{


2673 WorktreeRemove2705 WorktreeRemove

2674</h3>2706</h3>

2675 2707 

2676La contrepartie de nettoyage de [WorktreeCreate](#worktreecreate). Ce hook se déclenche lorsqu'un worktree est en cours de suppression, soit lorsque vous quittez une session `--worktree` et choisissez de la supprimer, soit lorsqu'un subagent avec `isolation: "worktree"` se termine. Pour les worktrees basés sur git, Claude gère le nettoyage automatiquement avec `git worktree remove`. Si vous avez configuré un hook WorktreeCreate pour un système de contrôle de version non-git, associez-le à un hook WorktreeRemove pour gérer le nettoyage. Sans lui, le répertoire du worktree est laissé sur le disque.2708S'exécute lorsqu'un worktree est en cours de suppression, soit lorsque vous quittez une session `--worktree` et choisissez de la supprimer, soit lorsqu'un subagent avec `isolation: "worktree"` se termine. C'est la contrepartie de nettoyage de [WorktreeCreate](#worktreecreate).

2709 

2710Pour les worktrees basés sur git, Claude Code gère le nettoyage automatiquement avec `git worktree remove`. Si vous avez configuré un hook WorktreeCreate pour un système de contrôle de version non-git, associez-le à un hook WorktreeRemove pour gérer le nettoyage. Sans lui, le répertoire du worktree est laissé sur le disque.

2677 2711 

2678Claude Code transmet le chemin que WorktreeCreate a retourné comme `worktree_path` dans l'entrée du hook. Cet exemple lit ce chemin et supprime le répertoire :2712Claude Code transmet le chemin que WorktreeCreate a retourné comme `worktree_path` dans l'entrée du hook. Cet exemple lit ce chemin et supprime le répertoire :

2679 2713 


3062 3096 

3063Si vous avez besoin d'un contrôle plus fin sur un événement quelconque, utilisez un [hook de commande](#command-hook-fields) avec les champs par événement décrits dans [Contrôle de décision](#decision-control).3097Si vous avez besoin d'un contrôle plus fin sur un événement quelconque, utilisez un [hook de commande](#command-hook-fields) avec les champs par événement décrits dans [Contrôle de décision](#decision-control).

3064 3098 

3065<h3 id="example-multi-criteria-stop-hook">3099<h3 id="check-multiple-conditions-before-stopping">

3066 Exemple : Hook Stop multi-critères3100 Vérifier plusieurs conditions avant d'arrêter

3067</h3>3101</h3>

3068 3102 

3069Ce hook `Stop` utilise un prompt détaillé pour vérifier trois conditions avant d'autoriser Claude à s'arrêter. Si `"ok"` est `false`, Claude continue de travailler avec la raison fournie comme sa prochaine instruction. Les hooks `SubagentStop` utilisent le même format pour évaluer si un [subagent](/fr/sub-agents) doit s'arrêter :3103Ce hook `Stop` utilise un prompt détaillé pour vérifier trois conditions avant d'autoriser Claude à s'arrêter. Les hooks `SubagentStop` utilisent le même format pour évaluer si un [subagent](/fr/sub-agents) doit s'arrêter. Si `"ok"` est `false`, Claude continue de travailler avec la raison fournie comme sa prochaine instruction :

3070 3104 

3071```json theme={null}3105```json theme={null}

3072{3106{


3190 3224 

3191Les notifications d'achèvement des hooks asynchrones sont supprimées par défaut. Pour les voir, activez le mode verbeux avec `Ctrl+O` ou démarrez Claude Code avec `--verbose`.3225Les notifications d'achèvement des hooks asynchrones sont supprimées par défaut. Pour les voir, activez le mode verbeux avec `Ctrl+O` ou démarrez Claude Code avec `--verbose`.

3192 3226 

3193<h3 id="example-run-tests-after-file-changes">3227<h3 id="run-tests-after-file-changes">

3194 Exemple : exécuter les tests après les modifications de fichiers3228 Exécuter les tests après les modifications de fichiers

3195</h3>3229</h3>

3196 3230 

3197Ce hook démarre une suite de tests en arrière-plan chaque fois que Claude écrit un fichier, puis rapporte les résultats à Claude lorsque les tests se terminent. Enregistrez ce script dans `.claude/hooks/run-tests-async.sh` dans votre projet et rendez-le exécutable avec `chmod +x` :3231Ce hook démarre une suite de tests en arrière-plan chaque fois que Claude écrit un fichier, puis rapporte les résultats à Claude lorsque les tests se terminent. Enregistrez ce script dans `.claude/hooks/run-tests-async.sh` dans votre projet et rendez-le exécutable avec `chmod +x` :


3285 Outil PowerShell sur Windows3319 Outil PowerShell sur Windows

3286</h2>3320</h2>

3287 3321 

3288Sur Windows, vous pouvez exécuter les hooks individuels dans PowerShell en définissant `"shell": "powershell"` sur un hook de commande. Les hooks lancent PowerShell directement, donc cela fonctionne indépendamment de la définition de `CLAUDE_CODE_USE_POWERSHELL_TOOL`. Claude Code détecte automatiquement `pwsh.exe` (PowerShell 7+) avec un repli sur `powershell.exe` (5.1).3322Sur Windows, vous pouvez exécuter les hooks individuels dans PowerShell en définissant `"shell": "powershell"` sur un hook de commande. Les hooks lancent PowerShell directement, donc cela fonctionne indépendamment de la définition de `CLAUDE_CODE_USE_POWERSHELL_TOOL`. Claude Code détecte automatiquement `pwsh.exe`, l'exécutable PowerShell 7 et versions ultérieures, et bascule vers `powershell.exe` pour Windows PowerShell 5.1.

3289 3323 

3290```json theme={null}3324```json theme={null}

3291{3325{


3306}3340}

3307```3341```

3308 3342 

3309Pour référencer la racine du projet à partir d'une commande PowerShell en forme shell, lisez-la comme une variable d'environnement avec `$env:CLAUDE_PROJECT_DIR`. PowerShell traite la forme nue `${CLAUDE_PROJECT_DIR}` comme une variable locale, pas une recherche d'environnement, et Claude Code substitue ce placeholder en forme shell uniquement pour les [hooks de script de référence](#reference-scripts-by-path). Pour un hook défini dans `settings.json`, utilisez soit la forme `$env:` soit basculez vers la [forme exec](#exec-form-and-shell-form), `${CLAUDE_PROJECT_DIR}` est substitué dans chaque élément `args` indépendamment de l'endroitle hook est défini.3343Pour référencer la racine du projet à partir d'une commande PowerShell en forme shell, écrivez `${CLAUDE_PROJECT_DIR}` ou `$env:CLAUDE_PROJECT_DIR`. À partir de la v2.1.198, Claude Code réécrit les placeholders `${CLAUDE_PROJECT_DIR}`, `${CLAUDE_PLUGIN_ROOT}` et `${CLAUDE_PLUGIN_DATA}` dans une commande PowerShell en forme shell vers la forme `${env:NAME}` de PowerShell, que le hook soit défini dans `settings.json`, un plugin ou une skill. PowerShell résout ensuite la valeur à partir de l'environnement exporté après l'analyse, donc le placeholder fonctionne à l'intérieur des chaînes entre guillemets doubles mais pas à l'intérieur des chaînes entre guillemets simples, PowerShell n'étend jamais les variables.

3344 

3345Avant la v2.1.198, cette réécriture s'appliquait uniquement aux hooks de plugin. Sur les versions antérieures, un hook `settings.json` a besoin de la forme `$env:` ou de la [forme exec](#exec-form-and-shell-form), où `${CLAUDE_PROJECT_DIR}` est substitué dans chaque élément `args` indépendamment de l'endroit où le hook est défini.

3346 

3347N'écrivez pas l'orthographe nue `$CLAUDE_PROJECT_DIR` dans un hook PowerShell. PowerShell l'analyse comme une variable locale indéfinie et la résout en `$null`, ce qui laisse le chemin du script sans son préfixe de racine de projet. Claude Code ne réécrit pas cette forme ; il enregistre plutôt un avertissement dans le [journal de débogage](#debug-hooks).

3310 3348 

3311L'exemple ci-dessous montre un hook `settings.json` qui exécute un script de projet avec la forme `$env:` :3349L'exemple ci-dessous montre un hook `settings.json` qui exécute un script de projet avec la forme `$env:`, qui fonctionne sur chaque version :

3312 3350 

3313```json theme={null}3351```json theme={null}

3314{3352{

hooks-guide.md +32 −28

Details

87 87 

88Les hooks vous permettent d'exécuter du code à des points clés du cycle de vie de Claude Code : formater les fichiers après les modifications, bloquer les commandes avant leur exécution, envoyer des notifications lorsque Claude a besoin d'une entrée, injecter du contexte au démarrage de la session, et bien plus. Pour la liste complète des événements de hook, consultez la [référence des Hooks](/fr/hooks#hook-lifecycle).88Les hooks vous permettent d'exécuter du code à des points clés du cycle de vie de Claude Code : formater les fichiers après les modifications, bloquer les commandes avant leur exécution, envoyer des notifications lorsque Claude a besoin d'une entrée, injecter du contexte au démarrage de la session, et bien plus. Pour la liste complète des événements de hook, consultez la [référence des Hooks](/fr/hooks#hook-lifecycle).

89 89 

90Chaque exemple inclut un bloc de configuration prêt à l'emploi que vous ajoutez à un [fichier de paramètres](#configure-hook-location). Les modèles les plus courants :90Chaque exemple inclut un bloc de configuration prêt à l'emploi que vous ajoutez à un [fichier de paramètres](#configure-hook-location).

91 

92* [Être notifié lorsque Claude a besoin d'une entrée](#get-notified-when-claude-needs-input)

93* [Formater automatiquement le code après les modifications](#auto-format-code-after-edits)

94* [Bloquer les modifications des fichiers protégés](#block-edits-to-protected-files)

95* [Réinjecter le contexte après compaction](#re-inject-context-after-compaction)

96* [Auditer les modifications de configuration](#audit-configuration-changes)

97* [Recharger l'environnement lorsque le répertoire ou les fichiers changent](#reload-environment-when-directory-or-files-change)

98* [Approuver automatiquement les invites de permission spécifiques](#auto-approve-specific-permission-prompts)

99 91 

100Pour un exemple de production de hooks qui exécutent un examen de modèle séparé et renvoient les résultats dans la session, consultez [comment le plugin `security-guidance` s'intègre à Claude Code](/fr/security-guidance#how-the-plugin-integrates-with-claude-code).92Pour un exemple de production de hooks qui exécutent un examen de modèle séparé et renvoient les résultats dans la session, consultez [comment le plugin `security-guidance` s'intègre à Claude Code](/fr/security-guidance#how-the-plugin-integrates-with-claude-code).

101 93 


182Le matcher vide se déclenche sur tous les types de notification. Pour se déclencher uniquement sur des événements spécifiques, définissez-le sur l'une de ces valeurs :174Le matcher vide se déclenche sur tous les types de notification. Pour se déclencher uniquement sur des événements spécifiques, définissez-le sur l'une de ces valeurs :

183 175 

184| Matcher | Se déclenche quand |176| Matcher | Se déclenche quand |

185| :--------------------- | :---------------------------------------------------- |177| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |

186| `permission_prompt` | Claude a besoin que vous approuviez un appel d'outil |178| `permission_prompt` | Claude a besoin que vous approuviez un appel d'outil |

187| `idle_prompt` | Claude a terminé et attend votre prochaine invite |179| `idle_prompt` | Claude a terminé et attend votre prochaine invite |

188| `auth_success` | L'authentification se termine |180| `auth_success` | L'authentification se termine |

189| `elicitation_dialog` | Un serveur MCP ouvre un formulaire d'élicitation |181| `elicitation_dialog` | Un serveur MCP ouvre un formulaire d'élicitation |

190| `elicitation_complete` | Un formulaire d'élicitation MCP est soumis ou fermé |182| `elicitation_complete` | Un formulaire d'élicitation MCP est soumis ou fermé |

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

184| `agent_needs_input` | Une session en arrière-plan commence à attendre votre entrée. Se déclenche uniquement lorsque la [vue agent](/fr/agent-view) est ouverte |

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

186 

187Les matchers `agent_needs_input` et `agent_completed` nécessitent Claude Code v2.1.198 ou version ultérieure.

192 188 

193Tapez `/hooks` et sélectionnez `Notification` pour confirmer que le hook est enregistré. Pour le schéma d'événement complet, consultez la [référence Notification](/fr/hooks#notification).189Tapez `/hooks` et sélectionnez `Notification` pour confirmer que le hook est enregistré. Pour le schéma d'événement complet, consultez la [référence Notification](/fr/hooks#notification).

194 190 


198 194 

199Exécutez automatiquement [Prettier](https://prettier.io/) sur chaque fichier que Claude modifie, afin que le formatage reste cohérent sans intervention manuelle.195Exécutez automatiquement [Prettier](https://prettier.io/) sur chaque fichier que Claude modifie, afin que le formatage reste cohérent sans intervention manuelle.

200 196 

201Ce hook utilise l'événement `PostToolUse` avec un matcher `Edit|Write`, il s'exécute donc uniquement après les outils d'édition de fichiers. {/* min-version: 2.1.191 */}Sur Claude Code v2.1.191 ou version ultérieure, vous pouvez également écrire le matcher sous la forme `Edit,Write`, puisque `|` et `,` sont des séparateurs de liste interchangeables pour les matchers de noms d'outils sur ces versions. La commande extrait le chemin du fichier modifié avec [`jq`](https://jqlang.github.io/jq/) et le transmet à Prettier. Ajoutez ceci à `.claude/settings.json` à la racine de votre projet :197Ce hook utilise l'événement `PostToolUse` avec un matcher `Edit|Write`, il s'exécute donc uniquement après les outils d'édition de fichiers. La commande extrait le chemin du fichier modifié avec [`jq`](https://jqlang.github.io/jq/) et le transmet à Prettier. Ajoutez ceci à `.claude/settings.json` à la racine de votre projet :

202 198 

203```json theme={null}199```json theme={null}

204{200{


218}214}

219```215```

220 216 

217Sur Claude Code v2.1.191 ou version ultérieure, vous pouvez également écrire le matcher sous la forme `Edit,Write`, puisque `|` et `,` sont des séparateurs de liste interchangeables pour les matchers de noms d'outils sur ces versions.

218 

221<Note>219<Note>

222 Les exemples Bash sur cette page utilisent `jq` pour l'analyse JSON. Installez-le avec `brew install jq` (macOS), `apt-get install jq` (Debian/Ubuntu), ou consultez les [téléchargements de `jq`](https://jqlang.github.io/jq/download/).220 Les exemples Bash sur cette page utilisent `jq` pour l'analyse JSON. Installez-le avec `brew install jq` sur macOS, `apt-get install jq` sur Debian et Ubuntu, ou consultez les [téléchargements de `jq`](https://jqlang.github.io/jq/download/).

223</Note>221</Note>

224 222 

225<h3 id="block-edits-to-protected-files">223<h3 id="block-edits-to-protected-files">


254 ```252 ```

255 </Step>253 </Step>

256 254 

257 <Step title="Rendre le script exécutable (macOS/Linux)">255 <Step title="Rendre le script exécutable sur macOS et Linux">

258 Les scripts de hook doivent être exécutables pour que Claude Code les exécute :256 Les scripts de hook doivent être exécutables pour que Claude Code les exécute :

259 257 

260 ```bash theme={null}258 ```bash theme={null}


378 376 

379Exécutez `direnv allow` une fois dans chaque répertoire qui a un `.envrc` afin que direnv soit autorisé à le charger. Si vous utilisez devbox ou nix à la place de direnv, le même modèle fonctionne avec `devbox shellenv` ou `devbox global shellenv` à la place de `direnv export bash`.377Exécutez `direnv allow` une fois dans chaque répertoire qui a un `.envrc` afin que direnv soit autorisé à le charger. Si vous utilisez devbox ou nix à la place de direnv, le même modèle fonctionne avec `devbox shellenv` ou `devbox global shellenv` à la place de `direnv export bash`.

380 378 

381Pour réagir à des fichiers spécifiques au lieu de chaque changement de répertoire, utilisez `FileChanged` avec un `matcher` listant les noms de fichiers à surveiller, séparés par `|`. Pour construire la liste de surveillance, cette valeur est divisée en noms de fichiers littéraux plutôt qu'évaluée comme une regex. Consultez [FileChanged](/fr/hooks#filechanged) pour savoir comment la même valeur filtre également les groupes de hooks qui s'exécutent lorsqu'un fichier change. Cet exemple surveille `.envrc` et `.env` dans le répertoire de travail :379Pour réagir à des fichiers spécifiques au lieu de chaque changement de répertoire, utilisez `FileChanged` avec un `matcher` listant les noms de fichiers à surveiller, séparés par `|`. Lors de la construction de la liste de surveillance, Claude Code divise cette valeur en noms de fichiers littéraux plutôt que de l'évaluer comme une regex. Consultez [FileChanged](/fr/hooks#filechanged) pour savoir comment la même valeur filtre également les groupes de hooks qui s'exécutent lorsqu'un fichier change. Cet exemple surveille `.envrc` et `.env` dans le répertoire de travail :

382 380 

383```json theme={null}381```json theme={null}

384{382{


619 617 

620D'autres événements utilisent des modèles de décision différents. Par exemple, les hooks `PostToolUse` et `Stop` utilisent un champ `decision: "block"` au niveau supérieur, tandis que `PermissionRequest` utilise `hookSpecificOutput.decision.behavior`. Consultez le [tableau récapitulatif](/fr/hooks#decision-control) dans la référence pour une ventilation complète par événement.618D'autres événements utilisent des modèles de décision différents. Par exemple, les hooks `PostToolUse` et `Stop` utilisent un champ `decision: "block"` au niveau supérieur, tandis que `PermissionRequest` utilise `hookSpecificOutput.decision.behavior`. Consultez le [tableau récapitulatif](/fr/hooks#decision-control) dans la référence pour une ventilation complète par événement.

621 619 

622Pour les hooks `UserPromptSubmit`, utilisez `additionalContext` à la place pour injecter du texte dans le contexte de Claude. Les hooks basés sur des invites (`type: "prompt"`) gèrent la sortie différemment : consultez [Hooks basés sur des invites](#prompt-based-hooks).620Pour les hooks `UserPromptSubmit`, utilisez `additionalContext` à la place pour injecter du texte dans le contexte de Claude.

621 

622Les hooks avec `type: "prompt"` gèrent la sortie différemment : consultez [Hooks basés sur des invites](#prompt-based-hooks).

623 623 

624<h3 id="filter-hooks-with-matchers">624<h3 id="filter-hooks-with-matchers">

625 Filtrer les hooks avec des matchers625 Filtrer les hooks avec des matchers

626</h3>626</h3>

627 627 

628Sans matcher, un hook se déclenche à chaque occurrence de son événement. Les matchers vous permettent de réduire cela. Par exemple, si vous voulez exécuter un formateur uniquement après les modifications de fichiers (pas après chaque appel d'outil), ajoutez un matcher à votre hook `PostToolUse` :628Sans matcher, un hook se déclenche à chaque occurrence de son événement. Les matchers vous permettent de réduire cela. Par exemple, si vous voulez exécuter un formateur uniquement après les modifications de fichiers, pas après chaque appel d'outil, ajoutez un matcher à votre hook `PostToolUse` :

629 629 

630```json theme={null}630```json theme={null}

631{631{


656| `SessionStart` | comment la session a démarré | `startup`, `resume`, `clear`, `compact` |656| `SessionStart` | comment la session a démarré | `startup`, `resume`, `clear`, `compact` |

657| `Setup` | quel drapeau CLI a déclenché la configuration | `init`, `maintenance` |657| `Setup` | quel drapeau CLI a déclenché la configuration | `init`, `maintenance` |

658| `SessionEnd` | pourquoi la session s'est terminée | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |658| `SessionEnd` | pourquoi la session s'est terminée | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |

659| `Notification` | type de notification | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |659| `Notification` | type de notification | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed` |

660| `SubagentStart` | type d'agent | `general-purpose`, `Explore`, `Plan`, ou noms d'agents personnalisés |660| `SubagentStart` | type d'agent | `general-purpose`, `Explore`, `Plan`, ou noms d'agents personnalisés |

661| `PreCompact`, `PostCompact` | ce qui a déclenché la compaction | `manual`, `auto` |661| `PreCompact`, `PostCompact` | ce qui a déclenché la compaction | `manual`, `auto` |

662| `SubagentStop` | type d'agent | mêmes valeurs que `SubagentStart` |662| `SubagentStop` | type d'agent | mêmes valeurs que `SubagentStart` |


669| `UserPromptExpansion` | nom de la commande | vos noms de skill ou de commande |669| `UserPromptExpansion` | nom de la commande | vos noms de skill ou de commande |

670| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `MessageDisplay` | pas de support de matcher | se déclenche toujours à chaque occurrence |670| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `MessageDisplay` | pas de support de matcher | se déclenche toujours à chaque occurrence |

671 671 

672Quelques autres exemples montrant des matchers sur différents types d'événements :672Les onglets ci-dessous montrent quelques autres matchers sur différents types d'événements.

673 673 

674<Tabs>674<Tabs>

675 <Tab title="Enregistrer chaque commande Bash">675 <Tab title="Enregistrer chaque commande Bash">


805| [Plugin](/fr/plugins) `hooks/hooks.json` | Lorsque le plugin est activé | Oui, fourni avec le plugin |805| [Plugin](/fr/plugins) `hooks/hooks.json` | Lorsque le plugin est activé | Oui, fourni avec le plugin |

806| [Skill](/fr/skills) ou [agent](/fr/sub-agents) frontmatter | Pendant que le skill ou l'agent est actif | Oui, défini dans le fichier du composant |806| [Skill](/fr/skills) ou [agent](/fr/sub-agents) frontmatter | Pendant que le skill ou l'agent est actif | Oui, défini dans le fichier du composant |

807 807 

808Exécutez [`/hooks`](/fr/hooks#the-%2Fhooks-menu) dans Claude Code pour parcourir tous les hooks configurés regroupés par événement. Pour désactiver les hooks, définissez `"disableAllHooks": true` dans votre fichier de paramètres. Les hooks configurés dans les paramètres gérés s'exécutent toujours sauf si `disableAllHooks` est également défini là.808Exécutez [`/hooks`](/fr/hooks#the-%2Fhooks-menu) dans Claude Code pour parcourir tous les hooks configurés regroupés par événement.

809 

810Pour désactiver les hooks, définissez `"disableAllHooks": true` dans votre fichier de paramètres. Les hooks configurés dans les paramètres gérés s'exécutent toujours sauf si `disableAllHooks` est également défini là.

809 811 

810Si vous modifiez les fichiers de paramètres directement pendant que Claude Code s'exécute, l'observateur de fichiers récupère normalement les modifications de hook automatiquement.812Si vous modifiez les fichiers de paramètres directement pendant que Claude Code s'exécute, l'observateur de fichiers récupère normalement les modifications de hook automatiquement.

811 813 


925 Limitations927 Limitations

926</h3>928</h3>

927 929 

930Gardez ces contraintes à l'esprit lors de la conception des hooks :

931 

928* Les hooks de commande communiquent uniquement via stdout, stderr et les codes de sortie. Ils ne peuvent pas déclencher des commandes `/` ou des appels d'outils. Le texte retourné via `additionalContext` est injecté comme un rappel système que Claude lit en tant que texte brut. Les hooks HTTP communiquent via le corps de la réponse à la place.932* Les hooks de commande communiquent uniquement via stdout, stderr et les codes de sortie. Ils ne peuvent pas déclencher des commandes `/` ou des appels d'outils. Le texte retourné via `additionalContext` est injecté comme un rappel système que Claude lit en tant que texte brut. Les hooks HTTP communiquent via le corps de la réponse à la place.

929* Les délais d'expiration du hook varient selon le type. Remplacez par hook avec le champ `timeout` en secondes.933* Les délais d'expiration du hook varient selon le type. Remplacez par hook avec le champ `timeout` en secondes.

930 * `command`, `http`, `mcp_tool` : 10 minutes. `UserPromptSubmit` les réduit à 30 secondes, et `MessageDisplay` les réduit à 10 secondes.934 * `command`, `http`, `mcp_tool` : 10 minutes. `UserPromptSubmit` les réduit à 30 secondes, et `MessageDisplay` les réduit à 10 secondes.

931 * `prompt` : 30 secondes.935 * `prompt` : 30 secondes.

932 * `agent` : 60 secondes.936 * `agent` : 60 secondes.

933* Les hooks `PostToolUse` ne peuvent pas annuler les actions puisque l'outil a déjà été exécuté.937* Les hooks `PostToolUse` ne peuvent pas annuler les actions puisque l'outil a déjà été exécuté.

934* Les hooks `PermissionRequest` ne se déclenchent pas en [mode non-interactif](/fr/headless) (`-p`). Utilisez les hooks `PreToolUse` pour les décisions de permission automatisées.938* Les hooks `PermissionRequest` ne se déclenchent pas en [mode non-interactif](/fr/headless) avec l'indicateur `-p`. Utilisez les hooks `PreToolUse` pour les décisions de permission automatisées.

935* Les hooks `Stop` se déclenchent chaque fois que Claude termine sa réponse, pas seulement à la fin de la tâche. Ils ne se déclenchent pas sur les interruptions de l'utilisateur. Les erreurs API déclenchent [StopFailure](/fr/hooks#stopfailure) à la place.939* Les hooks `Stop` se déclenchent chaque fois que Claude termine sa réponse, pas seulement à la fin de la tâche. Ils ne se déclenchent pas sur les interruptions de l'utilisateur. Les erreurs API déclenchent [StopFailure](/fr/hooks#stopfailure) à la place.

936* Lorsque plusieurs hooks PreToolUse retournent [`updatedInput`](/fr/hooks#pretooluse) pour réécrire les arguments d'un outil, le dernier à terminer gagne. Puisque les hooks s'exécutent en parallèle, l'ordre est non-déterministe. Évitez d'avoir plus d'un hook modifier l'entrée du même outil.940* Lorsque plusieurs hooks `PreToolUse` retournent [`updatedInput`](/fr/hooks#pretooluse) pour réécrire les arguments d'un outil, le dernier à terminer gagne. Puisque les hooks s'exécutent en parallèle, l'ordre est non-déterministe. Évitez d'avoir plus d'un hook modifier l'entrée du même outil.

937 941 

938<h3 id="hooks-and-permission-modes">942<h3 id="hooks-and-permission-modes">

939 Hooks et modes de permission943 Hooks et modes de permission

940</h3>944</h3>

941 945 

942Les hooks PreToolUse se déclenchent avant toute vérification du mode de permission. Un hook qui retourne `permissionDecision: "deny"` bloque l'outil même en mode `bypassPermissions` ou avec `--dangerously-skip-permissions`. Cela vous permet d'appliquer une politique que les utilisateurs ne peuvent pas contourner en changeant leur mode de permission.946Les hooks `PreToolUse` se déclenchent avant toute vérification du mode de permission. Un hook qui retourne `permissionDecision: "deny"` bloque l'outil même en mode `bypassPermissions` ou avec `--dangerously-skip-permissions`. Cela vous permet d'appliquer une politique que les utilisateurs ne peuvent pas contourner en changeant leur mode de permission.

943 947 

944L'inverse n'est pas vrai : un hook retournant `"allow"` ne contourne pas les règles de refus des paramètres. Les hooks peuvent renforcer les restrictions mais pas les assouplir au-delà de ce que les règles de permission permettent.948L'inverse n'est pas vrai : un hook retournant `"allow"` ne contourne pas les règles de refus des paramètres. Les hooks peuvent renforcer les restrictions mais pas les assouplir au-delà de ce que les règles de permission permettent.

945 949 


950Le hook est configuré mais ne s'exécute jamais.954Le hook est configuré mais ne s'exécute jamais.

951 955 

952* Exécutez `/hooks` et confirmez que le hook apparaît sous l'événement correct956* Exécutez `/hooks` et confirmez que le hook apparaît sous l'événement correct

953* Vérifiez que le modèle de matcher correspond exactement au nom de l'outil (les matchers sont sensibles à la casse)957* Vérifiez que le modèle de matcher correspond exactement au nom de l'outil. Les matchers sont sensibles à la casse

954* Vérifiez que vous déclenchez le bon type d'événement (par exemple, `PreToolUse` se déclenche avant l'exécution de l'outil, `PostToolUse` se déclenche après)958* Vérifiez que vous déclenchez le bon type d'événement : `PreToolUse` se déclenche avant l'exécution de l'outil, `PostToolUse` se déclenche après

955* Si vous utilisez des hooks `PermissionRequest` en mode non-interactif (`-p`), passez à `PreToolUse` à la place959* Si vous utilisez des hooks `PermissionRequest` en mode non-interactif avec l'indicateur `-p`, passez à `PreToolUse` à la place

956 960 

957<h3 id="hook-error-in-output">961<h3 id="hook-error-in-output">

958 Erreur du hook dans la sortie962 Erreur du hook dans la sortie


976Vous avez modifié un fichier de paramètres mais les hooks n'apparaissent pas dans le menu.980Vous avez modifié un fichier de paramètres mais les hooks n'apparaissent pas dans le menu.

977 981 

978* Les modifications de fichiers sont normalement récupérées automatiquement. Si elles n'ont pas apparues après quelques secondes, l'observateur de fichiers peut avoir manqué la modification : redémarrez votre session pour forcer un rechargement.982* Les modifications de fichiers sont normalement récupérées automatiquement. Si elles n'ont pas apparues après quelques secondes, l'observateur de fichiers peut avoir manqué la modification : redémarrez votre session pour forcer un rechargement.

979* Vérifiez que votre JSON est valide (les virgules finales et les commentaires ne sont pas autorisés)983* Vérifiez que votre JSON est valide : les virgules finales et les commentaires ne sont pas autorisés

980* Confirmez que le fichier de paramètres est au bon emplacement : `.claude/settings.json` pour les hooks de projet, `~/.claude/settings.json` pour les hooks globaux984* Confirmez que le fichier de paramètres est au bon emplacement : `.claude/settings.json` pour les hooks de projet, `~/.claude/settings.json` pour les hooks globaux

981 985 

982<h3 id="stop-hook-hits-the-block-cap">986<h3 id="stop-hook-hits-the-block-cap">


985 989 

986Claude continue à travailler au lieu de s'arrêter, puis termine le tour avec un avertissement selon lequel le hook Stop a bloqué trop de fois consécutives.990Claude continue à travailler au lieu de s'arrêter, puis termine le tour avec un avertissement selon lequel le hook Stop a bloqué trop de fois consécutives.

987 991 

988Claude Code remplace un hook Stop après qu'il ait bloqué 8 fois de suite sans progrès. Votre script de hook doit vérifier s'il a déjà déclenché une continuation. Analysez le champ `stop_hook_active` de l'entrée JSON et quittez tôt s'il est `true` :992Claude Code remplace un hook Stop après qu'il ait bloqué huit fois de suite sans progrès. Votre script de hook doit vérifier s'il a déjà déclenché une continuation. Analysez le champ `stop_hook_active` de l'entrée JSON et quittez tôt s'il est `true` :

989 993 

990```bash theme={null}994```bash theme={null}

991#!/bin/bash995#!/bin/bash


1004 1008 

1005Claude Code affiche une erreur d'analyse JSON même si votre script de hook produit du JSON valide.1009Claude Code affiche une erreur d'analyse JSON même si votre script de hook produit du JSON valide.

1006 1010 

1007Lorsque Claude Code exécute un hook de commande sous forme de shell (un sans `args`), il génère `sh -c` sur macOS et Linux ou Git Bash sur Windows par défaut. Ce shell est non-interactif, mais Git Bash et certaines configurations (comme `BASH_ENV` pointant vers `~/.bashrc`) sourcent toujours votre profil. Si ce profil contient des instructions `echo` inconditionnelles, la sortie est ajoutée au début de votre JSON du hook :1011Lorsque Claude Code exécute un hook de commande sous forme de shell (un sans `args`), il génère `sh -c` sur macOS et Linux ou Git Bash sur Windows par défaut. Ce shell est non-interactif, mais Git Bash et certaines configurations, comme `BASH_ENV` pointant vers `~/.bashrc`, sourcent toujours votre profil. Si ce profil contient des instructions `echo` inconditionnelles, la sortie est ajoutée au début de votre JSON du hook :

1008 1012 

1009```text theme={null}1013```text theme={null}

1010Shell ready on arm641014Shell ready on arm64

Details

210Les commandes intégrées vous guident également à travers la configuration :210Les commandes intégrées vous guident également à travers la configuration :

211 211 

212* `/init` vous guide à travers la création d'un CLAUDE.md pour votre projet212* `/init` vous guide à travers la création d'un CLAUDE.md pour votre projet

213* `/agents` vous aide à configurer des subagents personnalisés

214* `/doctor` diagnostique les problèmes courants avec votre installation213* `/doctor` diagnostique les problèmes courants avec votre installation

215 214 

216<h3 id="it’s-a-conversation">215<h3 id="it’s-a-conversation">

Details

106 Bloc d'attribution du message système106 Bloc d'attribution du message système

107</h2>107</h2>

108 108 

109Claude Code ajoute un bloc d'attribution court au message système contenant la version du client et une empreinte dérivée de la conversation. Le point de terminaison `api.anthropic.com` supprime le bloc avant le traitement, donc il n'affecte pas la mise en cache des invites de première partie ; tout autre amont le reçoit comme faisant partie de l'invite. Anthropic et les points de terminaison Claude des fournisseurs de cloud le lisent pour l'attribution, donc pour l'omettre, définissez [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/fr/env-vars) plutôt que de le supprimer dans la passerelle.109Claude Code ajoute un bloc d'attribution court au message système contenant la version du client et une empreinte dérivée de la conversation. Le point de terminaison `api.anthropic.com` supprime le bloc avant le traitement lorsqu'il arrive inchangé comme premier bloc système, donc il n'affecte pas la mise en cache des invites de première partie. Tout autre amont le reçoit comme faisant partie de l'invite.

110 

111La suppression est positionnelle, donc elle ne fonctionne que lorsque la passerelle transfère le tableau `system` inchangé. Pour garder le bloc hors de l'invite sans perdre d'autre contenu système :

112 

113* Transférez le tableau `system` exactement tel que reçu, en gardant le bloc en premier : ajouter un autre bloc système, réorganiser le tableau ou le convertir en une seule chaîne annule la suppression, et le bloc atteint alors le modèle et la clé du cache d'invite.

114* Gardez le bloc dans sa propre entrée de tableau : le point de terminaison traite un bloc fusionné qui commence par l'en-tête d'attribution comme une attribution dans son intégralité et supprime tout ce qui y est fusionné, y compris le reste du message système.

115* Si votre passerelle doit remodeler le contenu système, définissez [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/fr/env-vars) pour que Claude Code omette le bloc. Anthropic et les points de terminaison Claude des fournisseurs de cloud lisent le bloc pour l'attribution, donc omettez-le au niveau du client plutôt que de le supprimer ou de le déplacer dans la passerelle.

116 

117Les requêtes qui atteignent le point de terminaison inmodifiées ne sont pas affectées.

110 118 

111{/* min-version: 2.1.181 */}À partir de Claude Code v2.1.181, le bloc est stable pour la durée de vie d'une conversation lorsque les requêtes sont routées via une URL de base personnalisée, donc un cache d'invite côté passerelle basé sur le corps de requête complet fonctionne sans le désactiver. Avant v2.1.181, le bloc incluait un jeton par requête ; sur ces versions, définissez `CLAUDE_CODE_ATTRIBUTION_HEADER=0` si votre passerelle implémente un tel cache.119{/* min-version: 2.1.181 */}À partir de Claude Code v2.1.181, le bloc est stable pour la durée de vie d'une conversation lorsque les requêtes sont routées via une URL de base personnalisée, donc un cache d'invite côté passerelle basé sur le corps de requête complet fonctionne sans le désactiver. Avant v2.1.181, le bloc incluait un jeton par requête ; sur ces versions, définissez `CLAUDE_CODE_ATTRIBUTION_HEADER=0` si votre passerelle implémente un tel cache.

112 120 

mcp.md +43 −0

Details

1037 Si vous rencontrez fréquemment des avertissements de sortie avec des serveurs MCP spécifiques que vous ne contrôlez pas, envisagez d'augmenter la limite `MAX_MCP_OUTPUT_TOKENS`. Vous pouvez également demander à l'auteur du serveur d'ajouter l'annotation `anthropic/maxResultSizeChars` ou de paginer ses réponses. L'annotation n'a aucun effet sur les outils qui retournent du contenu d'image ; pour ceux-ci, augmenter `MAX_MCP_OUTPUT_TOKENS` est la seule option.1037 Si vous rencontrez fréquemment des avertissements de sortie avec des serveurs MCP spécifiques que vous ne contrôlez pas, envisagez d'augmenter la limite `MAX_MCP_OUTPUT_TOKENS`. Vous pouvez également demander à l'auteur du serveur d'ajouter l'annotation `anthropic/maxResultSizeChars` ou de paginer ses réponses. L'annotation n'a aucun effet sur les outils qui retournent du contenu d'image ; pour ceux-ci, augmenter `MAX_MCP_OUTPUT_TOKENS` est la seule option.

1038</Warning>1038</Warning>

1039 1039 

1040<h2 id="tool-input-schemas-with-a-root-level-combinator">

1041 Schémas d'entrée d'outil avec un combinateur au niveau racine

1042</h2>

1043 

1044Certains serveurs MCP déclarent le schéma d'entrée d'un outil comme une union JSON Schema, avec `anyOf`, `oneOf`, ou `allOf` au niveau supérieur du schéma. L'API Claude n'accepte pas ces mots-clés à la racine du schéma. Elle accepte les combinateurs imbriqués dans `properties`, que Claude Code envoie sans modification.

1045 

1046À partir de Claude Code v2.1.195, les outils avec un combinateur au niveau racine restent disponibles. Avant d'envoyer l'outil à l'API, Claude Code aplatit le schéma en un seul objet et ajoute une phrase à la description de l'outil qui indique à Claude quels groupes de paramètres vont ensemble :

1047 

1048* `allOf` : les propriétés de chaque branche sont fusionnées, et la liste `required` de chaque branche s'applique toujours

1049* `anyOf` et `oneOf` : les propriétés de chaque branche sont fusionnées, et la liste `required` de chaque branche est décrite dans la description de l'outil au lieu d'être appliquée par le schéma

1050 

1051Votre serveur reçoit les arguments que Claude a choisis, donc continuez à valider la combinaison côté serveur.

1052 

1053Lorsque Claude Code ne peut pas produire un schéma que l'API accepte, ou sur un déploiement qui ne reçoit pas la configuration distante qui active la réécriture, comme une machine hors ligne, il saute cet outil, enregistre la raison dans le journal du serveur, et laisse les autres outils du serveur disponibles. Les versions antérieures à v2.1.195 sautent chaque outil dont le schéma d'entrée a un `anyOf`, `oneOf`, ou `allOf` au niveau racine.

1054 

1055<h2 id="require-approval-for-a-specific-tool">

1056 Exiger l'approbation pour un outil spécifique

1057</h2>

1058 

1059Si vous créez un serveur MCP, vous pouvez marquer un outil comme nécessitant une approbation explicite à chaque appel en définissant `_meta["anthropic/requiresUserInteraction"]` sur `true` dans l'entrée de l'outil dans la réponse `tools/list`. La valeur doit être le booléen JSON `true` ; toute autre valeur est ignorée.

1060 

1061Claude Code affiche l'invite de permission de cet outil à chaque appel, même en modes `acceptEdits`, `auto`, et `bypassPermissions` [permission modes](/fr/permissions#permission-modes), et n'offre pas d'option « ne pas demander à nouveau » pour celui-ci. Les [règles d'autorisation](/fr/permissions#permission-rule-syntax) qui correspondent à l'outil ne sautent pas non plus l'invite. En mode `dontAsk`, qui ne demande jamais, Claude Code refuse l'appel à la place.

1062 

1063L'invite doit atteindre une personne. En mode non interactif avec [`--permission-prompt-tool`](/fr/cli-reference#cli-flags), un résultat `allow` de l'outil d'invite de permission pour un outil signalé est converti en refus avec le message `MCP tool requires user interaction; not supported via --permission-prompt-tool`. Le callback [`canUseTool`](/fr/agent-sdk/permissions) du SDK Agent reçoit ces appels et peut les approuver, car l'hôte du SDK est censé les montrer à un utilisateur.

1064 

1065Utilisez ceci pour les outils dont l'invite de permission est elle-même le point, comme une étape de consentement ou d'octroi d'accès où l'approbation automatique signifierait qu'aucun humain n'a jamais accepté. Les autres outils du même serveur conservent leur comportement de permission normal.

1066 

1067L'entrée `tools/list` suivante marque un outil comme nécessitant toujours une approbation.

1068 

1069```json theme={null}

1070{

1071 "name": "grant_access",

1072 "description": "Requests access to a protected resource",

1073 "_meta": {

1074 "anthropic/requiresUserInteraction": true

1075 }

1076}

1077```

1078 

1079L'annotation `anthropic/requiresUserInteraction` nécessite Claude Code v2.1.199 ou ultérieur. Les versions antérieures l'ignorent et appliquent le flux de permission standard.

1080 

1081Lorsqu'une session est connectée à [Remote Control](/fr/remote-control) ou à un hôte SDK, Claude Code marque la demande de permission comme nécessitant une interaction utilisateur, de sorte que le client affiche l'invite de permission de l'outil pour que vous répondiez au lieu d'une action d'approbation en un clic.

1082 

1040<h2 id="respond-to-mcp-elicitation-requests">1083<h2 id="respond-to-mcp-elicitation-requests">

1041 Répondre aux demandes d'élicitation MCP1084 Répondre aux demandes d'élicitation MCP

1042</h2>1085</h2>

memory.md +1 −1

Details

235- Incluez les commentaires de documentation OpenAPI235- Incluez les commentaires de documentation OpenAPI

236```236```

237 237 

238Les règles sans champ `paths` sont chargées sans condition et s'appliquent à tous les fichiers. Les règles limitées au chemin se déclenchent quand Claude lit les fichiers correspondant au modèle, pas à chaque utilisation d'outil.238Les règles sans champ `paths` sont chargées sans condition et s'appliquent à tous les fichiers. Les règles limitées au chemin se déclenchent quand Claude lit les fichiers correspondant au modèle, pas à chaque utilisation d'outil. {/* min-version: 2.1.198 */}À partir de la v2.1.198, la correspondance fonctionne également quand Claude atteint un fichier via un chemin symlinké vers le répertoire du projet, par exemple dans un checkout symlinké.

239 239 

240Utilisez les modèles glob dans le champ `paths` pour faire correspondre les fichiers par extension, répertoire ou toute combinaison :240Utilisez les modèles glob dans le champ `paths` pour faire correspondre les fichiers par extension, répertoire ou toute combinaison :

241 241 

model-config.md +60 −7

Details

31 31 

32| Alias de modèle | Comportement |32| Alias de modèle | Comportement |

33| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |33| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

34| **`default`** | Valeur spéciale qui efface tout remplacement de modèle et revient au modèle recommandé pour votre type de compte. N'est pas en soi un alias de modèle |34| **`default`** | Valeur spéciale qui efface tout remplacement de modèle et revient au modèle recommandé pour votre type de compte, ou au [modèle par défaut de l'organisation](#organization-default-model) lorsqu'un administrateur en a défini un. N'est pas en soi un alias de modèle |

35| **`best`** | Utilise Fable 5 où votre organisation y a accès, sinon le dernier modèle Opus |35| **`best`** | Utilise Fable 5 où votre organisation y a accès, sinon le dernier modèle Opus |

36| **`fable`** | Utilise Claude Fable 5 pour vos tâches les plus difficiles et les plus longues |36| **`fable`** | Utilise Claude Fable 5 pour vos tâches les plus difficiles et les plus longues |

37| **`sonnet`** | Utilise le dernier modèle Sonnet pour les tâches de codage quotidiennes |37| **`sonnet`** | Utilise le dernier modèle Sonnet pour les tâches de codage quotidiennes |


84* `Enter` : basculer le modèle et enregistrer comme valeur par défaut84* `Enter` : basculer le modèle et enregistrer comme valeur par défaut

85* `s` : basculer le modèle pour cette session uniquement85* `s` : basculer le modèle pour cette session uniquement

86 86 

87Taper `/model <name>` directement se comporte comme `Enter`. Les paramètres du projet et gérés ont toujours la priorité et se réappliquent au prochain lancement.87Taper `/model <name>` directement se comporte comme `Enter`. Les paramètres du projet et gérés ont toujours la priorité et se réappliquent au prochain lancement. {/* min-version: 2.1.196 */}Un [modèle par défaut de l'organisation](#organization-default-model) que votre administrateur a configuré pour remplacer la sélection de l'utilisateur se réapplique également au prochain lancement.

88 88 

89Dans les versions v2.1.144 à v2.1.152, `/model` s'appliquait uniquement à la session actuelle et `d` dans le sélecteur enregistrait une valeur par défaut.89Dans les versions v2.1.144 à v2.1.152, `/model` s'appliquait uniquement à la session actuelle et `d` dans le sélecteur enregistrait une valeur par défaut.

90 90 


130* **Modèle de session principale** : `/model`, le drapeau `--model`, la variable d'environnement `ANTHROPIC_MODEL`, le paramètre `model`, et le modèle restauré lors de la [reprise d'une session](#setting-your-model)130* **Modèle de session principale** : `/model`, le drapeau `--model`, la variable d'environnement `ANTHROPIC_MODEL`, le paramètre `model`, et le modèle restauré lors de la [reprise d'une session](#setting-your-model)

131* **Résolution d'alias** : {/* min-version: 2.1.176 */}les variables d'environnement `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, et `ANTHROPIC_DEFAULT_FABLE_MODEL` ne peuvent pas rediriger un alias autorisé vers un modèle en dehors de la liste131* **Résolution d'alias** : {/* min-version: 2.1.176 */}les variables d'environnement `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, et `ANTHROPIC_DEFAULT_FABLE_MODEL` ne peuvent pas rediriger un alias autorisé vers un modèle en dehors de la liste

132* **Mode rapide** : {/* min-version: 2.1.176 */}`/fast` refuse de basculer lorsque cela changerait implicitement vers un modèle Opus en dehors de la liste, avec le message « is not in your organization's allowed models »132* **Mode rapide** : {/* min-version: 2.1.176 */}`/fast` refuse de basculer lorsque cela changerait implicitement vers un modèle Opus en dehors de la liste, avec le message « is not in your organization's allowed models »

133* **Modèles de sous-agent** : le champ `model` dans le frontmatter du [sous-agent](/fr/sub-agents#choose-a-model), le paramètre `model` de l'outil Agent, le sélecteur de modèle dans `/agents`, et `CLAUDE_CODE_SUBAGENT_MODEL`133* **Modèles de sous-agent** : le champ `model` dans le frontmatter du [sous-agent](/fr/sub-agents#choose-a-model), le paramètre `model` de l'outil Agent, `CLAUDE_CODE_SUBAGENT_MODEL`, et, sur la v2.1.197 et antérieures, le sélecteur de modèle dans l'assistant `/agents` {/* max-version: 2.1.197 */}

134* **Modèles de compétence et de commande** : le frontmatter `model` dans les [compétences et commandes](/fr/skills)134* **Modèles de compétence et de commande** : le frontmatter `model` dans les [compétences et commandes](/fr/skills)

135* **Modèle de conseiller** : le paramètre [`advisorModel`](/fr/advisor) configuré et le drapeau `--advisor`135* **Modèle de conseiller** : le paramètre [`advisorModel`](/fr/advisor) configuré et le drapeau `--advisor`

136* **Modèle d'agent d'arrière-plan** : le modèle sélectionné dans le [sélecteur de dispatch](/fr/agent-view)136* **Modèle d'agent d'arrière-plan** : le modèle sélectionné dans le [sélecteur de dispatch](/fr/agent-view)

137 137 

138Le basculement vers un modèle bloqué avec `/model` est rejeté avec une erreur, tandis qu'un drapeau `--model` bloqué, une valeur `ANTHROPIC_MODEL`, ou une valeur de paramètre `model` est remplacée au démarrage par un avertissement nommant à la fois les modèles demandés et substitués, et la session démarre sur le modèle par défaut. Un remplacement de sous-agent, de compétence ou de commande bloqué revient au modèle hérité ou par défaut plutôt que d'échouer la demande ; un paramètre `advisorModel` bloqué désactive le conseiller pour la session, tandis qu'une valeur de drapeau `--advisor` bloquée quitte avec une erreur au lancement. Les modèles exclus sont masqués du sélecteur `/model`.138Le basculement vers un modèle bloqué avec `/model` est rejeté avec une erreur, tandis qu'un drapeau `--model` bloqué, une valeur `ANTHROPIC_MODEL`, ou une valeur de paramètre `model` est remplacée au démarrage par un avertissement nommant à la fois les modèles demandés et substitués, et la session démarre sur le modèle par défaut. Un remplacement de sous-agent, de compétence ou de commande bloqué revient au modèle hérité ou par défaut plutôt que d'échouer la demande ; un paramètre `advisorModel` bloqué désactive le conseiller pour la session, tandis qu'une valeur de drapeau `--advisor` bloquée quitte avec une erreur au lancement. Les modèles exclus sont masqués du sélecteur `/model`. {/* min-version: 2.1.199 */}À partir de la v2.1.199, un ID de modèle complet dans la liste qui n'a pas de ligne de sélecteur intégrée, comme une version antérieure que la liste épingle, apparaît dans le sélecteur `/model` comme sa propre ligne étiquetée. Sur les versions antérieures, un tel ID n'est sélectionnable qu'en tapant `/model <id>`.

139 139 

140Les changements de modèle automatiques sont vérifiés de la même manière : les éléments d'une [chaîne de modèle de secours](#fallback-model-chains) en dehors de la liste d'autorisation sont supprimés, une mise à niveau en mode plan telle que [`opusplan`](#opusplan-model-setting) vers un modèle exclu est ignorée afin que la planification continue sur le modèle de la session, et un [repli automatique de modèle](#automatic-model-fallback) dont la cible est exclue ne s'exécute pas, de sorte que la demande signalée se termine par un refus. L'activation du [mode rapide](/fr/fast-mode) est refusée lorsque le modèle sur lequel la session s'exécuterait ensuite est en dehors de la liste d'autorisation.140Les changements de modèle automatiques sont vérifiés de la même manière : les éléments d'une [chaîne de modèle de secours](#fallback-model-chains) en dehors de la liste d'autorisation sont supprimés, une mise à niveau en mode plan telle que [`opusplan`](#opusplan-model-setting) vers un modèle exclu est ignorée afin que la planification continue sur le modèle de la session, et un [repli automatique de modèle](#automatic-model-fallback) dont la cible est exclue ne s'exécute pas, de sorte que la demande signalée se termine par un refus. L'activation du [mode rapide](/fr/fast-mode) est refusée lorsque le modèle sur lequel la session s'exécuterait ensuite est en dehors de la liste d'autorisation.

141 141 


184}184}

185```185```

186 186 

187Lorsque le modèle par défaut pour le type de compte de l'utilisateur n'est pas dans la liste d'autorisation, l'option Par défaut se résout à la première entrée `availableModels` qui nomme un modèle autorisé et disponible, et la ligne Par défaut du sélecteur `/model` affiche ce modèle. Cela s'applique partout où la valeur par défaut est atteinte : démarrage de session, sélection de Par défaut dans `/model`, le mot-clé `"default"` dans les [chaînes de modèle de secours](#fallback-model-chains), et le repli utilisé lorsqu'une sélection exclue est supprimée.187L'option Par défaut se résout à la valeur par défaut du type de compte, ou au [modèle par défaut de l'organisation](#organization-default-model) lorsqu'un administrateur en a défini un. Lorsque ce modèle n'est pas dans la liste d'autorisation, l'option Par défaut se résout à la première entrée `availableModels` qui nomme un modèle autorisé et disponible, et la ligne Par défaut du sélecteur `/model` affiche ce modèle. Cela s'applique partout où la valeur par défaut est atteinte : démarrage de session, sélection de Par défaut dans `/model`, le mot-clé `"default"` dans les [chaînes de modèle de secours](#fallback-model-chains), et le repli utilisé lorsqu'une sélection exclue est supprimée.

188 188 

189`enforceAvailableModels` n'a aucun effet lorsque `availableModels` n'est pas défini ou vide : avec `availableModels: []`, le modèle Par défaut pour le type de compte reste utilisable, de sorte que le paramètre ne peut pas verrouiller les utilisateurs hors de chaque modèle. Lorsque `availableModels` est non vide mais qu'aucune entrée ne se résout à un modèle autorisé et disponible, l'application se dégrade et Par défaut revient à la valeur par défaut du type de compte, avec un avertissement visible uniquement sous `--debug`. Conservez au moins une entrée garantie disponible dans la liste pour éviter cela.189`enforceAvailableModels` n'a aucun effet lorsque `availableModels` n'est pas défini ou vide : avec `availableModels: []`, le modèle Par défaut pour le type de compte reste utilisable, de sorte que le paramètre ne peut pas verrouiller les utilisateurs hors de chaque modèle. Lorsque `availableModels` est non vide mais qu'aucune entrée ne se résout à un modèle autorisé et disponible, l'application se dégrade et Par défaut revient à la valeur par défaut du type de compte, avec un avertissement visible uniquement sous `--debug`. Conservez au moins une entrée garantie disponible dans la liste pour éviter cela.

190 190 


244 244 

245Un modèle restreint est masqué du sélecteur `/model`. Le sélectionner par nom avec `--model`, la variable d'environnement `ANTHROPIC_MODEL`, ou le paramètre `model` affiche l'avis `Model "<name>" is restricted by your organization's settings. Using <model> instead.` et la session démarre sur un modèle autorisé. Taper `/model <name>` pour un modèle restreint est rejeté avec `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` et la session conserve son modèle actuel.245Un modèle restreint est masqué du sélecteur `/model`. Le sélectionner par nom avec `--model`, la variable d'environnement `ANTHROPIC_MODEL`, ou le paramètre `model` affiche l'avis `Model "<name>" is restricted by your organization's settings. Using <model> instead.` et la session démarre sur un modèle autorisé. Taper `/model <name>` pour un modèle restreint est rejeté avec `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` et la session conserve son modèle actuel.

246 246 

247Les restrictions s'appliquent au niveau de l'organisation ou par rôle :

248 

249* La désactivation d'un modèle au niveau de l'organisation le supprime pour chaque membre.

250* L'accès au niveau du rôle accorde différents modèles à différents rôles personnalisés, et un membre qui détient plusieurs rôles peut utiliser n'importe quel modèle qu'un de ses rôles accorde.

251* Les modèles Haiku sont toujours disponibles et ne peuvent pas être désactivés, de sorte que chaque membre conserve au moins un modèle utilisable.

252* Un changement d'accès prend effet sur les nouvelles demandes dans environ une minute ; le sélecteur `/model` le reflète la prochaine fois qu'une session démarre.

253 

247Les deux restrictions s'appliquent ensemble : un modèle est sélectionnable uniquement lorsqu'il est autorisé par `availableModels` et non restreint par l'organisation. Les restrictions d'organisation sont livrées aux sessions sur l'API Anthropic et les déploiements de [passerelle LLM](/fr/llm-gateway). Les sessions sur Bedrock, Vertex AI, Foundry, et Claude Platform sur AWS ne les reçoivent pas, de sorte qu'utilisez `availableModels` sur ces fournisseurs à la place.254Les deux restrictions s'appliquent ensemble : un modèle est sélectionnable uniquement lorsqu'il est autorisé par `availableModels` et non restreint par l'organisation. Les restrictions d'organisation sont livrées aux sessions sur l'API Anthropic et les déploiements de [passerelle LLM](/fr/llm-gateway). Les sessions sur Bedrock, Vertex AI, Foundry, et Claude Platform sur AWS ne les reçoivent pas, de sorte qu'utilisez `availableModels` sur ces fournisseurs à la place.

248 255 

256<h2 id="organization-default-model">

257 Modèle par défaut de l'organisation

258</h2>

259 

260{/* plan-availability: feature=org-default-model plans=enterprise */}

261 

262Les administrateurs d'organisation sur les plans Claude Enterprise peuvent définir un modèle par défaut pour les membres de Claude Code à partir de la console d'administration claude.ai, pour l'ensemble de l'organisation ou par rôle personnalisé. Lorsqu'un est défini, l'option Par défaut se résout à ce modèle au lieu de la [valeur par défaut du type de compte](#default-model-setting). Nécessite Claude Code v2.1.196 ou ultérieur.

263 

264La ligne Par défaut dans le sélecteur `/model` affiche le nom du modèle par défaut de l'organisation avec l'étiquette Org default. L'étiquette lit Org default que l'administrateur ait défini la valeur par défaut pour l'ensemble de l'organisation ou pour votre rôle. Une valeur par défaut de rôle couvre les membres de ce rôle personnalisé et prend la priorité sur la valeur par défaut à l'échelle de l'organisation ; lorsque plusieurs de vos rôles définissent des valeurs par défaut différentes, le modèle le plus capable s'applique.

265 

266Le modèle par défaut de l'organisation est un point de départ, pas une restriction, et toute autre sélection de modèle prend la priorité sur celui-ci :

267 

268* le drapeau `--model` et la variable d'environnement `ANTHROPIC_MODEL`

269* une valeur `model` dans les [paramètres gérés](/fr/settings#settings-files) ou fournie via `--settings`

270* une valeur `model` dans vos paramètres utilisateur, projet ou local, y compris un modèle que vous enregistrez avec `/model`

271 

272Les administrateurs peuvent également configurer le modèle par défaut de l'organisation pour remplacer la sélection de l'utilisateur. Avec le remplacement activé, il prend la priorité sur la valeur `model` dans les paramètres utilisateur, projet et local, de sorte qu'un modèle que vous enregistrez avec `/model` s'applique pour la session actuelle et le modèle par défaut de l'organisation revient au prochain lancement. Lorsque votre sélection diffère, `/model` affiche `Your organization's default (<model>) applies on restart`. Le drapeau `--model`, `ANTHROPIC_MODEL`, les paramètres gérés et `--settings` ont toujours la priorité même avec le remplacement activé. Le remplacement est disponible pour un ensemble limité d'organisations ; demandez à votre équipe de compte Anthropic la disponibilité.

273 

274Pour limiter les modèles que les membres peuvent sélectionner, utilisez plutôt les [restrictions de modèle d'organisation](#organization-model-restrictions) ou [`availableModels`](#restrict-model-selection).

275 

276Claude Code lit le modèle par défaut de l'organisation une fois au démarrage, de sorte qu'une valeur par défaut que l'administrateur change en milieu de session prend effet au prochain lancement.

277 

278Lorsque le modèle par défaut de l'organisation ne remplace pas la sélection de l'utilisateur, le premier lancement interactif après que l'administrateur le change efface la clé `model` de vos paramètres utilisateur une fois, de sorte que la nouvelle valeur par défaut s'applique. Il ne change rien d'autre dans le fichier, et un modèle que vous enregistrez avec `/model` après ce lancement est conservé.

279 

280Le modèle par défaut de l'organisation passe par les mêmes vérifications de restriction que tout autre modèle Par défaut avant d'être adopté :

281 

282* [`availableModels`](#restrict-model-selection) en soi ne contraint jamais l'option Par défaut, de sorte qu'un modèle par défaut de l'organisation en dehors de la liste d'autorisation s'applique toujours. Lorsque [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) est également défini, un modèle par défaut de l'organisation en dehors de la liste d'autorisation est remappé à la première entrée de la liste d'autorisation, comme tout autre Par défaut

283* un modèle par défaut de l'organisation que les [restrictions de modèle d'organisation](#organization-model-restrictions) refusent pour votre compte est remplacé par le modèle le plus récent autorisé dans sa famille, ou une famille moins coûteuse lorsque chaque version de celle-ci est restreinte

284* un modèle par défaut de l'organisation qui n'est pas disponible pour votre compte du tout, comme Fable 5 sous [rétention de données zéro](/fr/zero-data-retention), est ignoré, et l'option Par défaut se résout à la valeur par défaut du type de compte

285 

286À partir de la v2.1.199, lorsque le modèle par défaut de l'organisation est une famille de modèles différente de la valeur par défaut habituelle du type de compte, le sélecteur `/model` conserve une ligne séparée pour cette famille habituelle, de sorte que vous pouvez toujours basculer vers elle pour une session. Dans les versions v2.1.196 à v2.1.198, cette ligne est manquante du sélecteur.

287 

288Le modèle par défaut de l'organisation est livré aux sessions authentifiées avec l'API Anthropic. Les sessions sur les déploiements de [passerelle LLM](/fr/llm-gateway), Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, et Claude Platform sur AWS ne le reçoivent pas. Pour définir une valeur par défaut sur ces déploiements, utilisez plutôt la clé `model` dans les [paramètres gérés](/fr/settings#settings-files).

289 

290<h2 id="organization-effort-limits">

291 Limites d'effort de l'organisation

292</h2>

293 

294{/* plan-availability: feature=org-effort-limits plans=enterprise */}

295 

296Les administrateurs d'organisation sur les plans Claude Enterprise peuvent définir un [niveau d'effort](#adjust-effort-level) maximum par modèle pour chaque rôle personnalisé, aux côtés des [restrictions de modèle d'organisation](#organization-model-restrictions) au niveau du rôle. Les niveaux au-dessus du plafond ne sont pas offerts dans le sélecteur `/effort`, et nommer un niveau supérieur avec `--effort` ou `/effort` s'exécute au plafond à la place. Dans les sessions interactives et les exécutions `--print` en texte brut, un avertissement nomme les niveaux demandés et appliqués ; avec une sortie `json` ou `stream-json` ou dans les agents d'arrière-plan, le serrage s'applique silencieusement. Les plafonds sont par modèle, de sorte que le changement de modèles peut modifier les niveaux disponibles. Lorsque plusieurs de vos rôles accordent le même modèle, le plafond le moins restrictif s'applique. Nécessite Claude Code v2.1.195 ou ultérieur.

297 

298Les limites d'effort sont livrées avec les [restrictions de modèle d'organisation](#organization-model-restrictions) et suivent la même disponibilité du fournisseur : les sessions sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, et Claude Platform sur AWS ne les reçoivent pas.

299 

249<h2 id="special-model-behavior">300<h2 id="special-model-behavior">

250 Comportement spécial du modèle301 Comportement spécial du modèle

251</h2>302</h2>


263 314 

264Enterprise pay-as-you-go signifie une organisation Enterprise facturée à l'utilisation plutôt que par siège d'abonnement.315Enterprise pay-as-you-go signifie une organisation Enterprise facturée à l'utilisation plutôt que par siège d'abonnement.

265 316 

266Lorsque les paramètres gérés [appliquent la liste d'autorisation pour le modèle par défaut](#enforce-the-allowlist-for-the-default-model) et que le modèle par défaut du type de compte n'est pas dans `availableModels`, `default` se résout vers le modèle par défaut appliqué au lieu du modèle par défaut du type de compte ci-dessus.317Lorsqu'un administrateur a défini un [modèle par défaut de l'organisation](#organization-default-model), `default` se résout à ce modèle au lieu de la valeur par défaut du type de compte ci-dessus. Nécessite Claude Code v2.1.196 ou ultérieur.

318 

319Lorsque les paramètres gérés [appliquent la liste d'autorisation pour le modèle par défaut](#enforce-the-allowlist-for-the-default-model) et que le modèle par défaut du type de compte n'est pas dans `availableModels`, `default` se résout vers le modèle par défaut appliqué au lieu de la valeur par défaut du type de compte ci-dessus. Lorsque les deux s'appliquent, le modèle par défaut de l'organisation remplace d'abord la valeur par défaut du type de compte et l'application s'applique ensuite à celui-ci : un modèle par défaut de l'organisation autorisé est conservé, tandis qu'un en dehors de la liste se résout vers le Par défaut appliqué.

267 320 

268Fable 5 n'est le modèle par défaut sur aucun type de compte. Les sessions utilisent Fable 5 uniquement après que vous l'ayez choisi, avec `/model fable`, un paramètre `model`, ou l'alias `best` où Fable 5 est disponible. Le choisir avec `/model` l'enregistre comme modèle sélectionné dans vos paramètres utilisateur, de sorte que les sessions ultérieures commencent sur Fable 5 jusqu'à ce que vous changiez de modèles.321Fable 5 n'est le modèle par défaut sur aucun type de compte. Les sessions utilisent Fable 5 uniquement après que vous l'ayez choisi, avec `/model fable`, un paramètre `model`, ou l'alias `best` où Fable 5 est disponible. Le choisir avec `/model` l'enregistre comme modèle sélectionné dans vos paramètres utilisateur, de sorte que les sessions ultérieures commencent sur Fable 5 jusqu'à ce que vous changiez de modèles.

269 322 


379| Sonnet 5, Opus 4.8 et Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |432| Sonnet 5, Opus 4.8 et Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

380| Opus 4.6 et Sonnet 4.6 | `low`, `medium`, `high`, `max` |433| Opus 4.6 et Sonnet 4.6 | `low`, `medium`, `high`, `max` |

381 434 

382Si vous définissez un niveau que le modèle actif ne prend pas en charge, Claude Code revient au niveau le plus élevé pris en charge au niveau ou en dessous de celui que vous avez défini. Par exemple, `xhigh` s'exécute comme `high` sur Opus 4.6.435Si vous définissez un niveau que le modèle actif ne prend pas en charge, Claude Code revient au niveau le plus élevé pris en charge au niveau ou en dessous de celui que vous avez défini. Par exemple, `xhigh` s'exécute comme `high` sur Opus 4.6. Votre organisation peut également limiter les niveaux disponibles pour un modèle ; voir [Limites d'effort de l'organisation](#organization-effort-limits).

383 436 

384L'effort par défaut est `high` sur Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 et Sonnet 4.6, et `xhigh` sur Opus 4.7.437L'effort par défaut est `high` sur Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 et Sonnet 4.6, et `xhigh` sur Opus 4.7.

385 438 

Details

1186 1186 

1187Claude Code réessaie les demandes d'API échouées en interne et n'émet un seul événement `claude_code.api_error` qu'après avoir abandonné, donc l'événement lui-même est le signal terminal pour cette demande. Les tentatives de nouvelle tentative intermédiaires ne sont pas enregistrées comme des événements séparés.1187Claude Code réessaie les demandes d'API échouées en interne et n'émet un seul événement `claude_code.api_error` qu'après avoir abandonné, donc l'événement lui-même est le signal terminal pour cette demande. Les tentatives de nouvelle tentative intermédiaires ne sont pas enregistrées comme des événements séparés.

1188 1188 

1189L'attribut `attempt` sur l'événement enregistre le nombre total de tentatives effectuées. `CLAUDE_CODE_MAX_RETRIES` est par défaut `10` et plafonné à `15`. Lorsque la demande épuise toutes les tentatives sur une erreur transitoire, `attempt` est égal à un de plus que cette limite effective : 11 par défaut, et jamais plus de 16. Une valeur inférieure indique une erreur non réessayable telle qu'une réponse `400`.1189L'attribut `attempt` sur l'événement enregistre le nombre total de tentatives effectuées. `CLAUDE_CODE_MAX_RETRIES` est par défaut `10` et plafonné à `15` ; {/* min-version: 2.1.199 */}à partir de la v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` augmente la valeur par défaut et supprime le plafond. Lorsque la demande épuise toutes les tentatives sur une erreur transitoire, `attempt` est égal à un de plus que cette limite effective : 11 par défaut, et jamais plus de 16 sauf si le watchdog est défini. Une valeur inférieure indique une erreur non réessayable telle qu'une réponse `400`.

1190 1190 

1191Pour distinguer une session qui s'est rétablie d'une qui s'est bloquée, groupez les événements par `session.id` et vérifiez si un événement `api_request` ultérieur existe après l'erreur.1191Pour distinguer une session qui s'est rétablie d'une qui s'est bloquée, groupez les événements par `session.id` et vérifiez si un événement `api_request` ultérieur existe après l'erreur.

1192 1192 

Details

237* Forçage ou poussée directe vers `main`237* Forçage ou poussée directe vers `main`

238* {/* min-version: 2.1.182 */}`git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, ou `git stash clear`, que le classificateur présume élimineraient les modifications non validées238* {/* min-version: 2.1.182 */}`git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, ou `git stash clear`, que le classificateur présume élimineraient les modifications non validées

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

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

240* `terraform destroy`, `pulumi destroy`, `cdk destroy`, ou `terragrunt destroy`, et l'application d'un plan qui détruit les ressources241* `terraform destroy`, `pulumi destroy`, `cdk destroy`, ou `terragrunt destroy`, et l'application d'un plan qui détruit les ressources

241 242 

242Claude Code v2.1.195 et ultérieur bloquent plus de catégories par défaut. Plusieurs dépendent des entrées d'[environnement](/fr/auto-mode-config#define-trusted-infrastructure), telles que les cibles distantes sensibles et les portées IaC protégées, que vous pouvez affiner à des noms concrets.243Claude Code v2.1.195 et ultérieur bloquent plus de catégories par défaut. Plusieurs dépendent des entrées d'[environnement](/fr/auto-mode-config#define-trusted-infrastructure), telles que les cibles distantes sensibles et les portées IaC protégées, que vous pouvez affiner à des noms concrets.


251* Shells interactifs ou port-forwards vers une cible distante sensible252* Shells interactifs ou port-forwards vers une cible distante sensible

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

253* Impression d'une identifiant ou d'un jeton en direct dans la transcription ou un fichier254* Impression d'une identifiant ou d'un jeton en direct dans la transcription ou un fichier

254* Accès à un emplacement de données PII ou réglementées, ou copie de données hors de celui-ci255* Accès à un emplacement listé comme emplacement de données sensibles dans votre [environnement](/fr/auto-mode-config#define-trusted-infrastructure), ou copie de données hors de celui-ci. {/* min-version: 2.1.198 */}À partir de v2.1.198, cela bloque également l'envoi de données d'un emplacement à un public que l'entrée exclut

255* Routage d'une installation de paquet autour de votre registre de paquets interne vers un registre public256* Routage d'une installation de paquet autour de votre registre de paquets interne vers un registre public. {/* min-version: 2.1.198 */}À partir de v2.1.198, cela s'applique également quand vous avez dit à Claude qu'un registre interne ou un miroir existe dans la conversation, pas seulement quand un est listé dans votre environnement

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

258* Lancement d'une boucle d'agent autonome qui s'exécute sans approbation humaine ou sandbox, comme une lancée avec `--dangerously-skip-permissions` ou `--no-sandbox`. {/* min-version: 2.1.198 */}À partir de v2.1.198, cela couvre également l'exécution d'un agent tiers ou d'un harnais d'évaluation avec isolation et approbation par action désactivées, comme un runner lancé avec `--yes-always`

257* Actions du navigateur [Claude in Chrome](/fr/chrome) qui pourraient envoyer le contenu de la page, les cookies ou les identifiants hors-origine259* Actions du navigateur [Claude in Chrome](/fr/chrome) qui pourraient envoyer le contenu de la page, les cookies ou les identifiants hors-origine

258 260 

261Claude Code v2.1.198 et ultérieur bloquent également ceci par défaut :

262 

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

264* Inclusion de détails sensibles dans le contenu envoyé, téléchargé, publié ou écrit à d'autres personnes ou systèmes partagés, quand votre propre message n'a pas autorisé ces détails pour ce destinataire

265* Envoi de frappes au volet tmux de Claude Code lui-même pour piloter sa propre interface, que le classificateur traite comme Claude changeant ses propres permissions ou surveillance

266 

259**Autorisé par défaut** :267**Autorisé par défaut** :

260 268 

261* Opérations de fichiers locaux dans votre répertoire de travail269* Opérations de fichiers locaux dans votre répertoire de travail


272* Envoi de données aux domaines de confiance, aux compartiments et aux services que vous listez dans [`environment`](/fr/auto-mode-config#define-trusted-infrastructure). Cela couvre le flux de données uniquement, pas les opérations destructrices ou d'identifiants sur la même infrastructure280* Envoi de données aux domaines de confiance, aux compartiments et aux services que vous listez dans [`environment`](/fr/auto-mode-config#define-trusted-infrastructure). Cela couvre le flux de données uniquement, pas les opérations destructrices ou d'identifiants sur la même infrastructure

273* Navigation [Claude in Chrome](/fr/chrome) vers un domaine interne de confiance, localhost, ou une URL que vous avez nommée281* Navigation [Claude in Chrome](/fr/chrome) vers un domaine interne de confiance, localhost, ou une URL que vous avez nommée

274 282 

275Les demandes d'accès réseau sandbox sont acheminées via le classificateur plutôt que d'être autorisées par défaut. Exécutez `claude auto-mode defaults` pour voir les listes de règles complètes. Si les actions courantes sont bloquées, un administrateur peut ajouter des dépôts de confiance, des compartiments et des services via le paramètre `autoMode.environment` : consultez [Configurer le mode auto](/fr/auto-mode-config).283Les demandes d'accès réseau sandbox sont acheminées via le classificateur plutôt que d'être autorisées par défaut. {/* min-version: 2.1.198 */}À partir de v2.1.198, le classificateur réutilise son verdict pour un hôte et un port réseau au lieu de le réexécuter à chaque connexion :

284 

285* Un allow est réutilisé jusqu'à ce que du nouveau contenu entre dans la conversation, auquel point cet hôte est vérifié à nouveau

286* Dans l'interface CLI interactive, un deny est supprimé quand le tour se termine

287* En [mode non-interactif](/fr/headless) et les sessions Agent SDK, il n'y a pas de limite de tour, donc un deny est réutilisé pour le reste de l'exécution

288* Changer votre mode de permission ou vos règles supprime tous les verdicts en cache

289 

290Exécutez `claude auto-mode defaults` pour voir les listes de règles complètes. Si les actions courantes sont bloquées, un administrateur peut ajouter des dépôts de confiance, des compartiments et des services via le paramètre `autoMode.environment` : consultez [Configurer le mode auto](/fr/auto-mode-config).

276 291 

277<h3 id="boundaries-you-state-in-conversation">292<h3 id="boundaries-you-state-in-conversation">

278 Limites que vous énoncez dans la conversation293 Limites que vous énoncez dans la conversation


300 315 

301 1. Les actions correspondant à vos [règles d'autorisation ou de refus](/fr/permissions#manage-permissions) se résolvent immédiatement, sauf les écritures dans les [chemins protégés](#protected-paths), qui sont acheminées vers le classificateur même quand une règle d'autorisation correspond316 1. Les actions correspondant à vos [règles d'autorisation ou de refus](/fr/permissions#manage-permissions) se résolvent immédiatement, sauf les écritures dans les [chemins protégés](#protected-paths), qui sont acheminées vers le classificateur même quand une règle d'autorisation correspond

302 2. Les actions en lecture seule et les modifications de fichiers dans votre répertoire de travail sont auto-approuvées, sauf les écritures dans les [chemins protégés](#protected-paths)317 2. Les actions en lecture seule et les modifications de fichiers dans votre répertoire de travail sont auto-approuvées, sauf les écritures dans les [chemins protégés](#protected-paths)

303 3. Tout le reste va au classificateur318 3. Tout le reste va au classificateur. {/* min-version: 2.1.199 */}À partir de v2.1.199, un outil MCP marqué avec [`_meta["anthropic/requiresUserInteraction"]`](/fr/mcp#require-approval-for-a-specific-tool) ignore le classificateur et vous invite directement, donc une étape de consentement n'est jamais auto-approuvée au nom de l'auteur de l'outil

304 4. Si le classificateur bloque, Claude reçoit la raison et essaie une alternative319 4. Si le classificateur bloque, Claude reçoit la raison et essaie une alternative

305 320 

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


326 </Accordion>341 </Accordion>

327 342 

328 <Accordion title="Coût et latence">343 <Accordion title="Coût et latence">

329 Le classificateur s'exécute sur un modèle configuré par le serveur qui est indépendant de votre sélection `/model`, donc changer de modèle ne change pas la disponibilité du classificateur. Les appels du classificateur comptent dans votre utilisation de jetons. Chaque vérification envoie une partie de la transcription plus l'action en attente, ajoutant un aller-retour avant l'exécution. Les lectures et les modifications de répertoire de travail en dehors des chemins protégés ignorent le classificateur, donc la surcharge provient principalement des commandes shell et des opérations réseau.344 Le classificateur s'exécute sur un modèle configuré par le serveur qui est indépendant de votre sélection `/model`, donc changer de modèle ne change pas la disponibilité du classificateur. Les appels du classificateur comptent dans votre utilisation de jetons. Chaque vérification envoie une partie de la transcription plus l'action en attente, ajoutant un aller-retour avant l'exécution. Les lectures et les modifications de répertoire de travail en dehors des chemins protégés ignorent le classificateur, donc la surcharge provient principalement des commandes shell et des opérations réseau. {/* min-version: 2.1.198 */}À partir de v2.1.198, un verdict de réseau sandbox pour un hôte et un port est réutilisé au lieu d'être reclassifié à chaque connexion, donc les connexions répétées au même hôte n'ajoutent pas chacune une vérification. [Ce que le classificateur bloque par défaut](#what-the-classifier-blocks-by-default) décrit combien de temps un allow et un deny durent.

330 </Accordion>345 </Accordion>

331</AccordionGroup>346</AccordionGroup>

332 347 


334 Autoriser uniquement les outils pré-approuvés avec le mode dontAsk349 Autoriser uniquement les outils pré-approuvés avec le mode dontAsk

335</h2>350</h2>

336 351 

337Le mode `dontAsk` refuse automatiquement chaque appel d'outil qui inviterait autrement. Seules les actions correspondant à vos règles `permissions.allow` et les [commandes Bash en lecture seule](/fr/permissions#read-only-commands) peuvent s'exécuter ; les règles [`ask` explicites](/fr/permissions#manage-permissions) sont refusées plutôt que d'inviter. Cela rend le mode entièrement non-interactif pour les pipelines CI ou les environnements restreints où vous prédéfinissez exactement ce que Claude peut faire. Les sessions cloud sur [Claude Code sur le web](/fr/claude-code-on-the-web) ignorent `defaultMode: "dontAsk"` ; consultez [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) pour plus de détails.352Le mode `dontAsk` refuse automatiquement chaque appel d'outil qui inviterait autrement. La barre d'état affiche `⏵⏵ don't ask on` tandis que ce mode est actif. Seules les actions correspondant à vos règles `permissions.allow` et les [commandes Bash en lecture seule](/fr/permissions#read-only-commands) peuvent s'exécuter ; les règles [`ask` explicites](/fr/permissions#manage-permissions) sont refusées plutôt que d'inviter. {/* min-version: 2.1.199 */}À partir de la v2.1.199, un outil MCP marqué avec [`_meta["anthropic/requiresUserInteraction"]`](/fr/mcp#require-approval-for-a-specific-tool) est également refusé dans ce mode même lorsqu'une règle allow correspond, car sa carte d'approbation nécessite une réponse que ce mode ne collecte jamais. Cela rend le mode entièrement non-interactif pour les pipelines CI ou les environnements restreints où vous prédéfinissez exactement ce que Claude peut faire. Les sessions cloud sur [Claude Code sur le web](/fr/claude-code-on-the-web) ignorent `defaultMode: "dontAsk"` ; consultez [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) pour plus de détails.

338 353 

339Définissez-le au démarrage avec le drapeau :354Définissez-le au démarrage avec le drapeau :

340 355 


346 Ignorer toutes les vérifications avec le mode bypassPermissions361 Ignorer toutes les vérifications avec le mode bypassPermissions

347</h2>362</h2>

348 363 

349Le mode `bypassPermissions` désactive les invites de permission et les vérifications de sécurité pour que les appels d'outils s'exécutent immédiatement. À partir de la v2.1.126, cela inclut les écritures dans les [chemins protégés](#protected-paths), que les versions antérieures invitaient toujours. Les [règles ask](/fr/permissions#manage-permissions) explicites forcent toujours une invite dans ce mode, et les suppressions ciblant la racine du système de fichiers ou le répertoire personnel, telles que `rm -rf /` et `rm -rf ~`, invitent toujours comme disjoncteur contre les erreurs du modèle. Utilisez ce mode uniquement dans les environnements isolés comme les conteneurs, les machines virtuelles ou les devcontainers sans accès à Internet, où Claude Code ne peut pas endommager votre système hôte.364Le mode `bypassPermissions` désactive les invites de permission et les vérifications de sécurité pour que les appels d'outils s'exécutent immédiatement. À partir de la v2.1.126, cela inclut les écritures dans les [chemins protégés](#protected-paths), que les versions antérieures invitaient toujours. Les [règles ask](/fr/permissions#manage-permissions) explicites forcent toujours une invite dans ce mode, et les suppressions ciblant la racine du système de fichiers ou le répertoire personnel, telles que `rm -rf /` et `rm -rf ~`, invitent toujours comme disjoncteur contre les erreurs du modèle. {/* min-version: 2.1.199 */}À partir de la v2.1.199, les outils MCP marqués avec [`_meta["anthropic/requiresUserInteraction"]`](/fr/mcp#require-approval-for-a-specific-tool) invitent également toujours. Utilisez ce mode uniquement dans les environnements isolés comme les conteneurs, les machines virtuelles ou les dev containers sans accès à Internet, où Claude Code ne peut pas endommager votre système hôte.

350 365 

351Vous ne pouvez pas entrer `bypassPermissions` à partir d'une session qui a été démarrée sans l'un des drapeaux d'activation ; redémarrez avec l'un pour l'activer :366Vous ne pouvez pas entrer `bypassPermissions` à partir d'une session qui a été démarrée sans l'un des drapeaux d'activation ; redémarrez avec l'un pour l'activer :

352 367 

permissions.md +14 −3

Details

272Les règles Read et Edit suivent toutes deux la spécification [gitignore](https://git-scm.com/docs/gitignore) avec quatre types de modèles distincts :272Les règles Read et Edit suivent toutes deux la spécification [gitignore](https://git-scm.com/docs/gitignore) avec quatre types de modèles distincts :

273 273 

274| Modèle | Signification | Exemple | Correspond |274| Modèle | Signification | Exemple | Correspond |

275| ------------------ | ---------------------------------------------------------- | -------------------------------- | -------------------------------- |275| ------------------ | ---------------------------------------------------------- | -------------------------------- | -------------------------------------------------------------- |

276| `//path` | Chemin absolu à partir de la racine du système de fichiers | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |276| `//path` | Chemin absolu à partir de la racine du système de fichiers | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

277| `~/path` | Chemin à partir du répertoire home | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |277| `~/path` | Chemin à partir du répertoire home | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

278| `/path` | Chemin relatif à la racine du projet | `Edit(/src/**/*.ts)` | `<racine du projet>/src/**/*.ts` |278| `/path` | Chemin relatif à la source des paramètres | `Edit(/src/**/*.ts)` | `<racine du projet>/src/**/*.ts` dans les paramètres du projet |

279| `path` ou `./path` | Chemin relatif au répertoire courant | `Read(*.env)` | `<cwd>/*.env` |279| `path` ou `./path` | Chemin relatif au répertoire courant | `Read(*.env)` | `<cwd>/*.env` |

280 280 

281<Warning>281<Warning>

282 Un modèle comme `/Users/alice/file` n'est PAS un chemin absolu. Il est relatif à la racine du projet. Utilisez `//Users/alice/file` pour les chemins absolus.282 Un modèle comme `/Users/alice/file` n'est pas un chemin absolu. La barre oblique unique en début ancre à la source des paramètres, pas à la racine du système de fichiers. Utilisez `//Users/alice/file` pour les chemins absolus.

283</Warning>283</Warning>

284 284 

285Un modèle `/path` s'ancre au répertoire associé au fichier de paramètres qui le définit, donc la même règle correspond à des emplacements différents selon l'endroit où vous la placez :

286 

287| Règle définie dans | `/path` se résout à |

288| :--------------------------------------------------------------- | :----------------------------- |

289| Paramètres du projet ou locaux, tels que `.claude/settings.json` | `<racine du projet>/path` |

290| Paramètres utilisateur à `~/.claude/settings.json` | `~/.claude/path` |

291| Un fichier passé avec `--settings <file>` | `<répertoire du fichier>/path` |

292| Drapeaux CLI, `/permissions` ou règles de session | `<cwd original>/path` |

293 

294Une règle de refus comme `Read(/secrets/**)` dans les paramètres utilisateur bloque `~/.claude/secrets/**`, pas un répertoire `secrets` dans votre projet. Pour écrire une règle dans les paramètres utilisateur qui s'applique à l'intérieur de chaque projet, utilisez plutôt un chemin absolu `//` ou un chemin relatif à home `~/`.

295 

285Sur Windows, les chemins sont normalisés en forme POSIX avant la correspondance. `C:\Users\alice` devient `/c/Users/alice`, donc utilisez `//c/**/.env` pour correspondre aux fichiers `.env` n'importe où sur ce lecteur. Pour correspondre sur tous les lecteurs, utilisez `//**/.env`.296Sur Windows, les chemins sont normalisés en forme POSIX avant la correspondance. `C:\Users\alice` devient `/c/Users/alice`, donc utilisez `//c/**/.env` pour correspondre aux fichiers `.env` n'importe où sur ce lecteur. Pour correspondre sur tous les lecteurs, utilisez `//**/.env`.

286 297 

287Exemples :298Exemples :

plugins.md +2 −2

Details

352À mesure que vous apportez des modifications à votre plugin, exécutez `/reload-plugins` pour récupérer les mises à jour sans redémarrer. Cela recharge les plugins, les skills, les agents, les hooks, les serveurs MCP du plugin et les serveurs LSP du plugin. Testez vos composants de plugin :352À mesure que vous apportez des modifications à votre plugin, exécutez `/reload-plugins` pour récupérer les mises à jour sans redémarrer. Cela recharge les plugins, les skills, les agents, les hooks, les serveurs MCP du plugin et les serveurs LSP du plugin. Testez vos composants de plugin :

353 353 

354* Essayez vos skills avec `/plugin-name:skill-name`354* Essayez vos skills avec `/plugin-name:skill-name`

355* Vérifiez que les agents apparaissent dans `/agents`355* Vérifiez que les agents apparaissent dans `/context` sous Agents personnalisés, ou mentionnez-en un avec le symbole @ par son nom délimité

356* Vérifiez que les hooks fonctionnent comme prévu356* Vérifiez que les hooks fonctionnent comme prévu

357 357 

358<Tip>358<Tip>


502 claude --plugin-dir ./my-plugin502 claude --plugin-dir ./my-plugin

503 ```503 ```

504 504 

505 Testez chaque composant : exécutez vos commandes, vérifiez que les agents apparaissent dans `/agents` et vérifiez que les hooks se déclenchent correctement.505 Testez chaque composant : exécutez vos commandes, vérifiez que les agents apparaissent dans `/context`, et vérifiez que les hooks se déclenchent correctement.

506 </Step>506 </Step>

507</Steps>507</Steps>

508 508 

Details

79 79 

80**Points d'intégration** :80**Points d'intégration** :

81 81 

82* Les agents apparaissent dans l'interface `/agents`82* Les agents apparaissent dans la [saisie semi-automatique @-mention](/fr/sub-agents#invoke-subagents-explicitly) sous leur nom délimité, tel que `my-plugin:code-reviewer`, une fois que le plugin est activé

83* Claude peut invoquer les agents automatiquement en fonction du contexte de la tâche83* Claude peut invoquer les agents automatiquement en fonction du contexte de la tâche

84* Les agents peuvent être invoqués manuellement par les utilisateurs84* Les agents peuvent être invoqués manuellement par les utilisateurs

85* Les agents de plugin fonctionnent aux côtés des agents Claude intégrés85* Les agents de plugin fonctionnent aux côtés des agents Claude intégrés

sandboxing.md +43 −5

Details

199 Protéger les identifiants199 Protéger les identifiants

200</h3>200</h3>

201 201 

202Le paramètre `sandbox.credentials` déclare les fichiers d'identifiants et les variables d'environnement auxquels les commandes sandboxées ne doivent pas accéder. Les chemins de fichiers listés sont refusés pour les lectures à l'intérieur du sandbox, le même bloc que celui appliqué par `filesystem.denyRead`, et les variables d'environnement listées sont supprimées avant chaque exécution de commande sandboxée. Le bloc `credentials` dédié maintient les règles d'identifiants groupées avec la suppression de variable d'environnement et séparées des règles générales du système de fichiers. Nécessite Claude Code v2.1.187 ou ultérieur.202Le paramètre `sandbox.credentials` déclare les fichiers d'identifiants et les variables d'environnement à protéger des commandes sandboxées. Chaque entrée nomme un chemin de fichier ou une variable d'environnement et un `mode`. Le bloc `credentials` dédié maintient les règles d'identifiants groupées ensemble et séparées des règles générales du système de fichiers. Nécessite Claude Code v2.1.187 ou ultérieur.

203 

204Pour les entrées avec `"mode": "deny"`, les chemins de fichiers sont refusés pour les lectures à l'intérieur du sandbox, la même restriction que celle appliquée par `filesystem.denyRead`, et les variables d'environnement sont supprimées avant chaque exécution de commande sandboxée.

203 205 

204L'exemple ci-dessous bloque les lectures du fichier d'identifiants AWS et du répertoire SSH et supprime `GITHUB_TOKEN` et `NPM_TOKEN` de l'environnement des commandes sandboxées :206L'exemple ci-dessous bloque les lectures du fichier d'identifiants AWS et du répertoire SSH et supprime `GITHUB_TOKEN` et `NPM_TOKEN` de l'environnement des commandes sandboxées :

205 207 


221}223}

222```224```

223 225 

224Chaque entrée porte `"mode": "deny"`, qui est la seule valeur prise en charge. Le champ `mode` explicite maintient le schéma compatible avec les modes futurs. Les chemins de fichiers suivent les mêmes [règles de préfixe](/fr/settings#sandbox-path-prefixes) que les paramètres `sandbox.filesystem.*`, et les entrées de chaque [portée de paramètres](/fr/settings#settings-precedence) sont fusionnées. Comme le seul mode est `deny`, n'importe quelle portée peut ajouter des restrictions mais aucune ne peut les supprimer.226Les entrées de fichiers ne supportent que `"mode": "deny"`. Les entrées de variables d'environnement acceptent également `"mode": "mask"`, décrit ci-dessous.

227 

228Les chemins de fichiers suivent les mêmes [règles de préfixe](/fr/settings#sandbox-path-prefixes) que les paramètres `sandbox.filesystem.*`, et les entrées `deny` de chaque [portée de paramètres](/fr/settings#settings-precedence) sont fusionnées. Une entrée `deny` ne fait que réduire l'accès, donc n'importe quelle portée peut en ajouter une, mais aucune portée ne peut en supprimer une qu'une autre portée a ajoutée.

225 229 

226Il n'y a pas de liste de refus d'identifiants intégrée, donc seuls les fichiers et les variables que vous listez sont restreints. Le paramètre affecte uniquement les commandes Bash sandboxées. Pour supprimer les identifiants Anthropic et des fournisseurs de cloud de tous les sous-processus indépendamment du sandboxing, définissez [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/fr/env-vars).230Il n'y a pas de liste de refus d'identifiants intégrée, donc seuls les fichiers et les variables que vous listez sont restreints. Le paramètre affecte uniquement les commandes Bash sandboxées. Pour supprimer les identifiants Anthropic et des fournisseurs de cloud de tous les sous-processus indépendamment du sandboxing, définissez [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/fr/env-vars).

227 231 

232<h4 id="mask-environment-variables">

233 Masquer les variables d'environnement

234</h4>

235 

236`"mode": "mask"` protège un identifiant tout en gardant les outils qui s'authentifient avec lui fonctionnels. `deny` supprime complètement la variable, ce qui casse également les outils qui en ont besoin, comme `gh` ou `npm`. Nécessite Claude Code v2.1.199 ou ultérieur.

237 

238Avec `mask`, la commande sandboxée voit une valeur sentinelle par session au lieu de la vraie. Lorsqu'une requête quitte le sandbox pour l'un des `injectHosts` de l'identifiant, le [proxy sandbox](#network-isolation) remplace la sentinelle par la vraie valeur. La commande et tout ce qu'elle enregistre ne détiennent jamais l'identifiant réel, mais ses requêtes s'authentifient toujours.

239 

240Le proxy substitue l'identifiant à l'intérieur du contenu des requêtes, donc il doit les voir. Définissez [`network.tlsTerminate`](/fr/settings#sandbox-settings) pour que le proxy termine HTTPS lui-même. Sans cela, le masquage échoue fermé : la commande voit toujours seulement la sentinelle, mais la sentinelle atteint le serveur inchangée et l'authentification échoue. Claude Code signale cette mauvaise configuration au démarrage et dans `/doctor`.

241 

242L'exemple ci-dessous masque deux tokens. `GH_TOKEN` est substitué uniquement sur les requêtes à `api.github.com`, tandis que `NPM_TOKEN` n'a pas de `injectHosts` et est substitué sur les requêtes à chaque hôte dans `network.allowedDomains`. Chaque entrée `injectHosts` doit elle-même être couverte par `network.allowedDomains`.

243 

244```json theme={null}

245{

246 "sandbox": {

247 "enabled": true,

248 "network": {

249 "tlsTerminate": {},

250 "allowedDomains": ["*.github.com", "registry.npmjs.org"]

251 },

252 "credentials": {

253 "envVars": [

254 { "name": "GH_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] },

255 { "name": "NPM_TOKEN", "mode": "mask" }

256 ]

257 }

258 }

259}

260```

261 

262Contrairement à `deny`, le masquage autorise le proxy à envoyer votre identifiant réel aux hôtes listés, donc il n'est honoré que depuis les paramètres que vous ou votre administrateur contrôlez : les paramètres utilisateur, les paramètres gérés et l'indicateur CLI `--settings`. Les entrées `mask`, `network.tlsTerminate` et [`credentials.allowPlaintextInject`](/fr/settings#sandbox-settings) dans le `.claude/settings.json` ou `.claude/settings.local.json` d'un référentiel sont ignorées.

263 

264Lorsque la même variable est listée avec `deny` dans n'importe quelle portée, `deny` prend la priorité.

265 

228<h2 id="how-sandboxing-works">266<h2 id="how-sandboxing-works">

229 Comment fonctionne le sandboxing267 Comment fonctionne le sandboxing

230</h2>268</h2>


255* **Couverture complète** : les restrictions s'appliquent à tous les scripts, programmes et sous-processus générés par les commandes293* **Couverture complète** : les restrictions s'appliquent à tous les scripts, programmes et sous-processus générés par les commandes

256 294 

257<Note>295<Note>

258 Le proxy intégré applique la liste d'autorisation en fonction du nom d'hôte demandé et ne termine pas ou n'inspecte pas le trafic TLS. Consultez [Limitations de sécurité](#security-limitations) pour les implications de cette conception, et [Configuration de proxy personnalisée](#custom-proxy-configuration) si votre modèle de menace nécessite l'inspection TLS.296 Le proxy intégré applique la liste d'autorisation en fonction du nom d'hôte demandé et, par défaut, ne termine pas ou n'inspecte pas le trafic TLS. {/* min-version: 2.1.199 */}Le paramètre expérimental [`network.tlsTerminate`](/fr/settings#sandbox-settings), disponible dans Claude Code v2.1.199 et versions ultérieures, fait que le proxy intégré termine lui-même TLS, ce que les entrées d'identifiants [`mask`](#protect-credentials) nécessitent. Consultez [Limitations de sécurité](#security-limitations) pour les implications de la conception par défaut, et [Configuration de proxy personnalisée](#custom-proxy-configuration) si votre modèle de menace nécessite l'inspection TLS.

259</Note>297</Note>

260 298 

261<h3 id="os-level-enforcement">299<h3 id="os-level-enforcement">


412 Limitations de sécurité450 Limitations de sécurité

413</h3>451</h3>

414 452 

415* **Filtrage réseau** : le système de filtrage réseau fonctionne en restreignant les domaines auxquels les processus sont autorisés à se connecter. Le proxy intégré ne termine pas ou n'effectue pas l'inspection TLS sur le trafic sortant, le contenu des connexions chiffrées n'est donc pas examiné. Vous êtes responsable de vous assurer que seuls les domaines de confiance sont autorisés dans votre politique.453* **Filtrage réseau** : le sandbox restreint les domaines auxquels les processus peuvent se connecter. Par défaut, le proxy intégré ne termine pas ou n'inspecte pas TLS sur le trafic sortant, le contenu des connexions chiffrées n'est donc pas examiné. Le paramètre expérimental [`network.tlsTerminate`](/fr/settings#sandbox-settings) termine TLS au proxy pour la [substitution de credentials `mask`](#protect-credentials) mais n'ajoute pas de filtrage de contenu. Vous êtes responsable de vous assurer que seuls les domaines de confiance sont autorisés dans votre politique.

416 454 

417<Warning>455<Warning>

418 Autoriser des domaines larges tels que `github.com` peut créer des chemins pour l'exfiltration de données. Parce que le proxy prend sa décision d'autorisation à partir du nom d'hôte fourni par le client sans inspecter TLS, le code s'exécutant à l'intérieur du sandbox peut potentiellement utiliser [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) ou des techniques similaires pour atteindre des hôtes en dehors de la liste d'autorisation. Si votre modèle de menace nécessite des garanties plus fortes, configurez un [proxy personnalisé](#custom-proxy-configuration) qui termine TLS et inspecte le trafic, et installez son certificat CA à l'intérieur du sandbox. L'isolation réseau plus forte consciente de TLS est un domaine actif de développement.456 Autoriser des domaines larges tels que `github.com` peut créer des chemins pour l'exfiltration de données. Parce que le proxy prend sa décision d'autorisation à partir du nom d'hôte fourni par le client sans inspecter TLS, le code s'exécutant à l'intérieur du sandbox peut potentiellement utiliser [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) ou des techniques similaires pour atteindre des hôtes en dehors de la liste d'autorisation. Si votre modèle de menace nécessite des garanties plus fortes, configurez un [proxy personnalisé](#custom-proxy-configuration) qui termine TLS et inspecte le trafic, et installez son certificat CA à l'intérieur du sandbox. L'isolation réseau plus forte consciente de TLS est un domaine actif de développement.


440 478 

441* **Outils de fichiers intégrés** : Read, Edit et Write utilisent le système de permissions directement plutôt que de s'exécuter via le sandbox. Consultez [permissions](/fr/permissions).479* **Outils de fichiers intégrés** : Read, Edit et Write utilisent le système de permissions directement plutôt que de s'exécuter via le sandbox. Consultez [permissions](/fr/permissions).

442* **Utilisation de l'ordinateur** : lorsque Claude ouvre des applications et contrôle votre écran, il s'exécute sur votre bureau réel plutôt que dans un environnement isolé. Les invites de permission par application contrôlent chaque application. Consultez [utilisation de l'ordinateur dans la CLI](/fr/computer-use) ou [utilisation de l'ordinateur dans Desktop](/fr/desktop#let-claude-use-your-computer).480* **Utilisation de l'ordinateur** : lorsque Claude ouvre des applications et contrôle votre écran, il s'exécute sur votre bureau réel plutôt que dans un environnement isolé. Les invites de permission par application contrôlent chaque application. Consultez [utilisation de l'ordinateur dans la CLI](/fr/computer-use) ou [utilisation de l'ordinateur dans Desktop](/fr/desktop#let-claude-use-your-computer).

443* **Variables d'environnement** : les commandes Bash sandboxées héritent de l'environnement du processus parent par défaut, y compris les identifiants définis là-bas. Utilisez [`sandbox.credentials`](#protect-credentials) pour supprimer les variables spécifiques pour les commandes sandboxées, ou définissez [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/fr/env-vars) pour supprimer les identifiants Anthropic et du fournisseur cloud de tous les sous-processus.481* **Variables d'environnement** : les commandes Bash sandboxées héritent de l'environnement du processus parent par défaut, y compris les identifiants définis là-bas. Utilisez [`sandbox.credentials`](#protect-credentials) pour supprimer ou masquer les variables spécifiques pour les commandes sandboxées, ou définissez [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/fr/env-vars) pour supprimer les identifiants Anthropic et du fournisseur cloud de tous les sous-processus.

444* **Sous-agents** : les [sous-agents](/fr/sub-agents) s'exécutent dans le même processus que la session parent et utilisent la même configuration de sandbox. Les commandes Bash à l'intérieur d'un sous-agent sont sandboxées lorsque le sandboxing est activé dans la session parent.482* **Sous-agents** : les [sous-agents](/fr/sub-agents) s'exécutent dans le même processus que la session parent et utilisent la même configuration de sandbox. Les commandes Bash à l'intérieur d'un sous-agent sont sandboxées lorsque le sandboxing est activé dans la session parent.

445 483 

446<Warning>484<Warning>

Details

153 153 

154Les paramètres gérés par le serveur et les [paramètres gérés par le point de terminaison](/fr/settings#settings-files) occupent tous deux le niveau le plus élevé dans la [hiérarchie des paramètres](/fr/settings#settings-precedence) de Claude Code. Aucun autre niveau de paramètres ne peut les remplacer, y compris les arguments de ligne de commande.154Les paramètres gérés par le serveur et les [paramètres gérés par le point de terminaison](/fr/settings#settings-files) occupent tous deux le niveau le plus élevé dans la [hiérarchie des paramètres](/fr/settings#settings-precedence) de Claude Code. Aucun autre niveau de paramètres ne peut les remplacer, y compris les arguments de ligne de commande.

155 155 

156Au sein du niveau géré, un [`policyHelper`](/fr/settings#compute-managed-settings-with-a-policy-helper) configuré préempte toute autre source gérée, y compris les paramètres gérés par le serveur : sa sortie devient la seule configuration gérée pour l'exécution. Sinon, la première source qui livre une configuration non vide gagne. Les paramètres gérés par le serveur sont vérifiés en premier, puis les paramètres gérés par le point de terminaison. Les sources ne fusionnent pas : si les paramètres gérés par le serveur livrent des clés, les paramètres gérés par le point de terminaison sont complètement ignorés. Une exception s'applique : un petit ensemble de [clés de verrouillage entre sources](/fr/settings#settings-precedence), comme les verrous de liste d'autorisation du sandbox, est honoré lorsqu'une source gérée contrôlée par un administrateur les définit ; le niveau de registre HKCU inscriptible par l'utilisateur est exclu. Si les paramètres gérés par le serveur ne livrent rien, les paramètres gérés par le point de terminaison s'appliquent.156Au sein du niveau géré, un [`policyHelper`](/fr/settings#compute-managed-settings-with-a-policy-helper) configuré préempte toute autre source gérée, y compris les paramètres gérés par le serveur : sa sortie devient la seule configuration gérée pour l'exécution.

157 

158Sinon, Claude Code utilise la première source qui livre une configuration non vide. Les paramètres gérés par le serveur sont vérifiés en premier, puis les paramètres gérés par le point de terminaison. Les sources ne fusionnent pas : si les paramètres gérés par le serveur livrent des clés, les paramètres gérés par le point de terminaison sont complètement ignorés. Si les paramètres gérés par le serveur ne livrent rien, les paramètres gérés par le point de terminaison s'appliquent.

159 

160Une exception s'applique : un petit ensemble de [clés de verrouillage entre sources](/fr/settings#settings-precedence), comme les verrous de liste d'autorisation du sandbox, est honoré lorsqu'une source gérée contrôlée par un administrateur les définit ; le niveau de registre HKCU inscriptible par l'utilisateur est exclu.

157 161 

158Si vous effacez votre configuration de paramètres gérés par le serveur dans la console d'administration avec l'intention de revenir à une stratégie plist ou registre gérée par le point de terminaison, sachez que les [paramètres en cache](#fetch-and-caching-behavior) persistent sur les machines clientes jusqu'à la prochaine récupération réussie. Exécutez `/status` pour voir quelle source gérée est active.162Si vous effacez votre configuration de paramètres gérés par le serveur dans la console d'administration avec l'intention de revenir à une stratégie plist ou registre gérée par le point de terminaison, sachez que les [paramètres en cache](#fetch-and-caching-behavior) persistent sur les machines clientes jusqu'à la prochaine récupération réussie. Exécutez `/status` pour voir quelle source gérée est active.

159 163 


171 175 

172**Lancements ultérieurs avec paramètres en cache :**176**Lancements ultérieurs avec paramètres en cache :**

173 177 

174* Les paramètres en cache s'appliquent immédiatement au démarrage178* Les paramètres en cache s'appliquent immédiatement au démarrage, sauf pour les variables d'environnement de transport, de routage et d'authentification décrites ci-dessous

175* Claude Code récupère les paramètres actualisés en arrière-plan179* Claude Code récupère les paramètres actualisés en arrière-plan

176* Les paramètres en cache persistent en cas de défaillance réseau180* Les paramètres en cache persistent en cas de défaillance réseau. Les variables d'environnement retenues restent retenues jusqu'à ce qu'une récupération réussisse

181 

182À partir de la v2.1.198, Claude Code retient trois catégories de variables dans le bloc `env` en cache jusqu'à ce que le serveur confirme la charge utile pour la session. Cela empêche une valeur de proxy, d'autorité de certification, de point de terminaison ou d'identifiant en cache de rediriger, d'intercepter ou de réauthentifier la récupération des paramètres qui confirme la charge utile. Le renforcement s'applique uniquement au cache des paramètres récupérés par le serveur : les [paramètres gérés par le point de terminaison](/fr/settings#settings-files) déployés via MDM ou `managed-settings.json` ne sont pas affectés. Les catégories retenues sont :

183 

184* Configuration du proxy et TLS, telle que `HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS`, et les variables de certificat client mTLS `CLAUDE_CODE_CLIENT_CERT` et `CLAUDE_CODE_CLIENT_KEY`

185* Routage d'API et sélection de fournisseur, y compris `ANTHROPIC_BASE_URL`, les variables de sélection de fournisseur telles que `CLAUDE_CODE_USE_BEDROCK` et `CLAUDE_CODE_USE_VERTEX`, et les URL de point de terminaison du fournisseur telles que `ANTHROPIC_BEDROCK_BASE_URL`

186* Identifiants d'authentification, tels que `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, et `CLAUDE_CODE_OAUTH_TOKEN`

187 

188Toute autre clé du bloc `env` en cache, telle que la configuration de télémétrie et OpenTelemetry, s'applique au démarrage comme avant. Une fois la récupération réussie, les variables retenues s'appliquent pour le reste de la session.

189 

190Si votre organisation a besoin d'un proxy pour atteindre `api.anthropic.com`, définissez-le dans l'environnement shell ou dans les [paramètres utilisateur](/fr/settings#settings-files) plutôt que uniquement dans le bloc `env` géré. Le premier lancement n'a pas de cache, donc ces sources étaient déjà requises pour la récupération initiale.

177 191 

178Claude Code applique les mises à jour des paramètres automatiquement sans redémarrage, sauf pour les paramètres avancés comme la configuration OpenTelemetry, qui nécessitent un redémarrage complet pour prendre effet.192Claude Code applique les mises à jour des paramètres automatiquement sans redémarrage, sauf pour les paramètres avancés comme la configuration OpenTelemetry, qui nécessitent un redémarrage complet pour prendre effet.

179 193 


207}221}

208```222```

209 223 

210Vous pouvez également définir cette clé dans un [profil MDM géré par le point de terminaison](/fr/settings#settings-files) ou un fichier `managed-settings.json` système pour appliquer un comportement fermé par défaut au premier lancement, avant la livraison de toute charge utile du serveur. À partir de la v2.1.191, cet indicateur est une exception à la [règle de précédence](#settings-precedence) ci-dessus : il est honoré lorsqu'il est défini dans n'importe quelle source gérée même si une charge utile en cache gérée par le serveur est également présente, de sorte qu'une valeur livrée par MDM n'est pas ignorée lorsque des paramètres gérés par le serveur existent. La récupération des paramètres envoie également un en-tête `Cache-Control: no-cache` afin que les proxies HTTP intermédiaires ne servent pas une réponse obsolète.224Vous pouvez également définir cette clé dans un [profil MDM géré par le point de terminaison](/fr/settings#settings-files) ou un fichier `managed-settings.json` système pour appliquer un comportement fermé par défaut au premier lancement, avant la livraison de toute charge utile du serveur. À partir de la v2.1.191, cet indicateur est une exception à la [règle de précédence](#settings-precedence) ci-dessus : il est honoré lorsqu'il est défini dans n'importe quelle source gérée même si une charge utile en cache gérée par le serveur est également présente, de sorte qu'une valeur livrée par MDM n'est pas ignorée lorsque des paramètres gérés par le serveur existent.

225 

226La récupération des paramètres envoie également un en-tête `Cache-Control: no-cache` afin que les proxies HTTP intermédiaires ne servent pas une réponse obsolète.

211 227 

212Avant d'activer ce paramètre, assurez-vous que vos stratégies réseau permettent la connectivité à `api.anthropic.com`. Si ce point de terminaison est inaccessible, l'interface de ligne de commande se ferme au démarrage et les utilisateurs ne peuvent pas démarrer Claude Code.228Avant d'activer ce paramètre, assurez-vous que vos stratégies réseau permettent la connectivité à `api.anthropic.com`. Si ce point de terminaison est inaccessible, l'interface de ligne de commande se ferme au démarrage et les utilisateurs ne peuvent pas démarrer Claude Code.

213 229 


217 Boîtes de dialogue d'approbation de sécurité233 Boîtes de dialogue d'approbation de sécurité

218</h3>234</h3>

219 235 

220Certains paramètres qui pourraient présenter des risques de sécurité nécessitent une approbation explicite de l'utilisateur avant d'être appliqués :236Certains paramètres qui pourraient présenter des risques de sécurité nécessitent une approbation explicite de l'utilisateur avant que Claude Code les applique :

221 237 

222* **Paramètres de commande shell** : paramètres qui exécutent des commandes shell238* **Paramètres de commande shell** : paramètres qui exécutent des commandes shell

223* **Variables d'environnement personnalisées** : variables ne figurant pas dans la liste de sécurité connue239* **Variables d'environnement personnalisées** : variables ne figurant pas dans la liste de sécurité connue


234 Disponibilité de la plateforme250 Disponibilité de la plateforme

235</h2>251</h2>

236 252 

237Les paramètres gérés par le serveur nécessitent une connexion directe à `api.anthropic.com`, et la livraison nécessite que la session s'authentifie avec une connexion OAuth d'organisation ou une clé API directement configurée : les clés renvoyées par un script [`apiKeyHelper`](/fr/settings#available-settings) ne déclenchent pas la récupération des paramètres. Les paramètres gérés par le serveur ne sont pas disponibles lors de l'utilisation de fournisseurs de modèles tiers :253Les paramètres gérés par le serveur nécessitent une connexion directe à `api.anthropic.com`, et la livraison nécessite que la session s'authentifie avec une connexion OAuth d'organisation ou une clé API directement configurée. Les clés renvoyées par un script [`apiKeyHelper`](/fr/settings#available-settings) ne déclenchent pas la récupération des paramètres.

254 

255Les paramètres gérés par le serveur ne sont pas disponibles lors de l'utilisation de fournisseurs de modèles tiers :

238 256 

239* Amazon Bedrock257* Amazon Bedrock

240* Google Vertex AI258* Google Vertex AI


259Les paramètres gérés par le serveur fournissent une application de stratégie centralisée, mais ils fonctionnent comme un contrôle côté client, pas comme une limite de sécurité. Sur les appareils non gérés, un utilisateur n'a pas besoin d'un accès administrateur ou sudo pour les contourner.277Les paramètres gérés par le serveur fournissent une application de stratégie centralisée, mais ils fonctionnent comme un contrôle côté client, pas comme une limite de sécurité. Sur les appareils non gérés, un utilisateur n'a pas besoin d'un accès administrateur ou sudo pour les contourner.

260 278 

261| Scénario | Comportement |279| Scénario | Comportement |

262| :------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |280| :------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

263| L'utilisateur modifie le fichier de paramètres en cache | Le fichier falsifié s'applique au démarrage, mais les paramètres corrects se restaurent lors de la prochaine récupération du serveur |281| L'utilisateur modifie le fichier de paramètres en cache | Le fichier falsifié s'applique au démarrage, mais les paramètres corrects se restaurent lors de la prochaine récupération du serveur. À partir de la v2.1.198, les variables d'environnement de transport, d'acheminement d'API et d'authentification dans le bloc `env` sont [retenues jusqu'à ce que le serveur confirme la charge utile](#fetch-and-caching-behavior) |

264| L'utilisateur supprime le fichier de paramètres en cache | Le comportement du premier lancement se produit : les paramètres sont récupérés de manière asynchrone avec une brève fenêtre non appliquée |282| L'utilisateur supprime le fichier de paramètres en cache | Le comportement du premier lancement se produit : les paramètres sont récupérés de manière asynchrone avec une brève fenêtre non appliquée |

265| L'utilisateur exécute un binaire Claude Code modifié | Un utilisateur qui peut exécuter un client modifié peut contourner n'importe quel contrôle côté client |283| L'utilisateur exécute un binaire Claude Code modifié | Un utilisateur qui peut exécuter un client modifié peut contourner n'importe quel contrôle côté client |

266| L'utilisateur exécute une version antérieure de Claude Code | Les versions antérieures aux paramètres gérés par le serveur ne les récupèrent ni ne les appliquent |284| L'utilisateur exécute une version antérieure de Claude Code | Les versions antérieures aux paramètres gérés par le serveur ne les récupèrent ni ne les appliquent |

267| L'API est indisponible | Les paramètres en cache s'appliquent s'ils sont disponibles, sinon les paramètres gérés ne sont pas appliqués jusqu'à la prochaine récupération réussie. Avec `forceRemoteSettingsRefresh: true`, l'interface de ligne de commande se ferme au lieu de continuer, sauf pour les [sous-commandes `claude auth`](#enforce-fail-closed-startup) |285| L'API est indisponible | Les paramètres en cache s'appliquent s'ils sont disponibles, sinon les paramètres gérés ne sont pas appliqués jusqu'à la prochaine récupération réussie. À partir de la v2.1.198, les variables d'environnement de transport, d'acheminement d'API et d'authentification dans le bloc `env` en cache sont [retenues en cas d'échec de la récupération](#fetch-and-caching-behavior) ; le reste du cache s'applique toujours. Avec `forceRemoteSettingsRefresh: true`, l'interface de ligne de commande se ferme au lieu de continuer, sauf pour les [sous-commandes `claude auth`](#enforce-fail-closed-startup) |

268| L'utilisateur s'authentifie avec une organisation différente | Les paramètres ne sont pas livrés pour les comptes en dehors de l'organisation gérée |286| L'utilisateur s'authentifie avec une organisation différente | Les paramètres ne sont pas livrés pour les comptes en dehors de l'organisation gérée |

269| L'utilisateur configure un [fournisseur de modèle tiers](#platform-availability) | Les paramètres gérés par le serveur sont contournés. Cela inclut la définition de `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS`, ou un `ANTHROPIC_BASE_URL` non défini par défaut |287| L'utilisateur configure un [fournisseur de modèle tiers](#platform-availability) | Les paramètres gérés par le serveur sont contournés. Cela inclut la définition de `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS`, ou un `ANTHROPIC_BASE_URL` non défini par défaut |

270| Le trafic réseau est intercepté ou redirigé | La validation TLS désactivée ou le trafic intercepté peut modifier les paramètres que le client reçoit |288| Le trafic réseau est intercepté ou redirigé | La validation TLS désactivée ou le trafic intercepté peut modifier les paramètres que le client reçoit |

sessions.md +2 −0

Details

97/branch try-streaming-approach97/branch try-streaming-approach

98```98```

99 99 

100Si vous omettez le nom, Claude Code nomme la nouvelle branche d'après la première invite de la conversation. À partir de la v2.1.198, cela s'applique également après [compaction](/fr/how-claude-code-works#when-context-fills-up) ; les versions antérieures revenaient au nom littéral `Branched conversation` au lieu de regarder au-delà du résumé de compaction jusqu'à la première invite originale.

101 

100À partir de la ligne de commande, combinez `--continue` ou `--resume` avec `--fork-session` :102À partir de la ligne de commande, combinez `--continue` ou `--resume` avec `--fork-session` :

101 103 

102```bash theme={null}104```bash theme={null}

settings.md +17 −4

Details

400Configurez le comportement avancé du sandboxing. Le sandboxing isole les commandes bash de votre système de fichiers et réseau. Voir [Sandboxing](/fr/sandboxing) pour plus de détails.400Configurez le comportement avancé du sandboxing. Le sandboxing isole les commandes bash de votre système de fichiers et réseau. Voir [Sandboxing](/fr/sandboxing) pour plus de détails.

401 401 

402| Clés | Description | Exemple |402| Clés | Description | Exemple |

403| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |403| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- |

404| `enabled` | Activer le sandboxing bash (macOS, Linux, et WSL2). Par défaut : false | `true` |404| `enabled` | Activer le sandboxing bash (macOS, Linux, et WSL2). Par défaut : false | `true` |

405| `failIfUnavailable` | Quitter avec une erreur au démarrage si `sandbox.enabled` est true mais que le sandbox ne peut pas démarrer (dépendances manquantes ou plateforme non supportée). Quand false (par défaut), un avertissement est affiché et les commandes s'exécutent sans sandbox. Destiné aux déploiements de paramètres gérés qui nécessitent le sandboxing comme une porte dure | `true` |405| `failIfUnavailable` | Quitter avec une erreur au démarrage si `sandbox.enabled` est true mais que le sandbox ne peut pas démarrer (dépendances manquantes ou plateforme non supportée). Quand false (par défaut), un avertissement est affiché et les commandes s'exécutent sans sandbox. Destiné aux déploiements de paramètres gérés qui nécessitent le sandboxing comme une porte dure | `true` |

406| `autoAllowBashIfSandboxed` | Approuver automatiquement les commandes bash quand sandboxées. Par défaut : true | `true` |406| `autoAllowBashIfSandboxed` | Approuver automatiquement les commandes bash quand sandboxées. Par défaut : true | `true` |


411| `filesystem.denyRead` | Chemins où les commandes sandboxées ne peuvent pas lire. Les tableaux sont fusionnés dans toutes les portées de paramètres. Également fusionnés avec les chemins des règles de permission `Read(...)` deny. | `["~/.aws/credentials"]` |411| `filesystem.denyRead` | Chemins où les commandes sandboxées ne peuvent pas lire. Les tableaux sont fusionnés dans toutes les portées de paramètres. Également fusionnés avec les chemins des règles de permission `Read(...)` deny. | `["~/.aws/credentials"]` |

412| `filesystem.allowRead` | Chemins à réautoriser pour la lecture dans les régions `denyRead`. A la priorité sur `denyRead`. Les tableaux sont fusionnés dans toutes les portées de paramètres. Utilisez ceci pour créer des modèles d'accès en lecture spécifiques à l'espace de travail. | `["."]` |412| `filesystem.allowRead` | Chemins à réautoriser pour la lecture dans les régions `denyRead`. A la priorité sur `denyRead`. Les tableaux sont fusionnés dans toutes les portées de paramètres. Utilisez ceci pour créer des modèles d'accès en lecture spécifiques à l'espace de travail. | `["."]` |

413| `filesystem.allowManagedReadPathsOnly` | (Paramètres gérés uniquement) Seuls les chemins `allowRead` à partir des paramètres gérés sont respectés. `denyRead` fusionne toujours à partir de toutes les sources. Par défaut : false | `true` |413| `filesystem.allowManagedReadPathsOnly` | (Paramètres gérés uniquement) Seuls les chemins `allowRead` à partir des paramètres gérés sont respectés. `denyRead` fusionne toujours à partir de toutes les sources. Par défaut : false | `true` |

414| `credentials.files` | Fichiers ou répertoires d'identifiants que les commandes sandboxées ne peuvent pas lire. Applique le même bloc de lecture que `filesystem.denyRead` ; la clé séparée garde les chemins d'identifiants groupés avec `credentials.envVars` et à l'écart des règles générales du système de fichiers. Chaque entrée est `{ "path": "...", "mode": "deny" }`. Les chemins utilisent les mêmes [préfixes](#sandbox-path-prefixes) que les paramètres `filesystem.*`. Les tableaux sont fusionnés dans toutes les portées de paramètres. Seul `deny` est supporté. Nécessite Claude Code v2.1.187 ou ultérieur. | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |414| `credentials.files` | {/* min-version: 2.1.187 */}Fichiers ou répertoires d'identifiants que les commandes sandboxées ne peuvent pas lire. Applique le même bloc de lecture que `filesystem.denyRead` ; la clé séparée garde les chemins d'identifiants groupés avec `credentials.envVars` et à l'écart des règles générales du système de fichiers. Chaque entrée est `{ "path": "...", "mode": "deny" }`, et `deny` est le seul mode supporté pour les fichiers. Les chemins utilisent les mêmes [préfixes](#sandbox-path-prefixes) que les paramètres `filesystem.*`. Les tableaux sont fusionnés dans toutes les portées de paramètres. Nécessite Claude Code v2.1.187 ou ultérieur. | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |

415| `credentials.envVars` | Variables d'environnement à désactiver avant d'exécuter les commandes sandboxées. Chaque entrée est `{ "name": "...", "mode": "deny" }`. Les tableaux sont fusionnés dans toutes les portées de paramètres. Seul `deny` est supporté. Nécessite Claude Code v2.1.187 ou ultérieur. | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |415| `credentials.envVars` | {/* min-version: 2.1.187 */}Variables d'environnement à [protéger des commandes sandboxées](/fr/sandboxing#protect-credentials). Chaque entrée a un `name` et un `mode` ; le nom doit commencer par une lettre ou un tiret bas et contenir uniquement des lettres, des chiffres, et des tirets bas. `deny` supprime la variable de l'environnement des commandes sandboxées. Nécessite Claude Code v2.1.187 ou ultérieur. {/* min-version: 2.1.199 */}`mask` remplace la variable par une valeur sentinelle par session à l'intérieur du sandbox tandis que le proxy du sandbox substitue la valeur réelle sur les demandes sortantes vers l'entrée `injectHosts` de cette entrée ; cela nécessite `network.tlsTerminate` et Claude Code v2.1.199 ou ultérieur. Les entrées `mask` ne sont honorées que à partir des paramètres utilisateur, gérés ou CLI `--settings`, pas à partir de `.claude/settings.json` ou `.claude/settings.local.json`. Les tableaux sont fusionnés dans toutes les portées de paramètres, et `deny` a la priorité quand la même variable apparaît avec les deux modes. | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |

416| `credentials.envVars[].injectHosts` | Hôtes où le proxy du sandbox substitue la valeur réelle d'une entrée `mask`. Chaque hôte doit également être couvert par `network.allowedDomains`, soit exactement soit par un caractère générique. Quand non défini, le proxy substitue la valeur sur les demandes à chaque hôte dans `network.allowedDomains`. Accepté mais ignoré quand `mode` est `deny`. Nécessite Claude Code v2.1.199 ou ultérieur. {/* min-version: 2.1.199 */} | `["api.github.com"]` |

417| `credentials.allowPlaintextInject` | Autoriser la substitution `mask` sur les demandes HTTP simples ainsi que sur HTTPS terminé par TLS. Sur HTTP simple, l'identité en amont n'est pas vérifiée et l'identifiant voyage en clair, donc laissez ceci désactivé en dehors des réseaux de test de confiance. Honoré uniquement à partir des paramètres utilisateur, gérés ou CLI `--settings`, pas à partir de `.claude/settings.json` ou `.claude/settings.local.json`. Par défaut : false. Nécessite Claude Code v2.1.199 ou ultérieur. {/* min-version: 2.1.199 */} | `true` |

416| `network.allowUnixSockets` | (macOS uniquement) Chemins de socket Unix accessibles dans le sandbox. Ignoré sur Linux et WSL2, où le filtre seccomp ne peut pas inspecter les chemins de socket ; utilisez `allowAllUnixSockets` à la place. | `["~/.ssh/agent-socket"]` |418| `network.allowUnixSockets` | (macOS uniquement) Chemins de socket Unix accessibles dans le sandbox. Ignoré sur Linux et WSL2, où le filtre seccomp ne peut pas inspecter les chemins de socket ; utilisez `allowAllUnixSockets` à la place. | `["~/.ssh/agent-socket"]` |

417| `network.allowAllUnixSockets` | Autoriser toutes les connexions de socket Unix dans le sandbox. Sur Linux et WSL2, c'est le seul moyen de permettre les sockets Unix, car il ignore le filtre seccomp qui bloque autrement les appels `socket(AF_UNIX, ...)`. Par défaut : false | `true` |419| `network.allowAllUnixSockets` | Autoriser toutes les connexions de socket Unix dans le sandbox. Sur Linux et WSL2, c'est le seul moyen de permettre les sockets Unix, car il ignore le filtre seccomp qui bloque autrement les appels `socket(AF_UNIX, ...)`. Par défaut : false | `true` |

418| `network.allowLocalBinding` | Autoriser la liaison aux ports localhost (macOS uniquement). Par défaut : false | `true` |420| `network.allowLocalBinding` | Autoriser la liaison aux ports localhost (macOS uniquement). Par défaut : false | `true` |


422| `network.allowManagedDomainsOnly` | (Paramètres gérés uniquement) Seul `allowedDomains` et les règles allow `WebFetch(domain:...)` à partir des paramètres gérés sont respectés. Les domaines à partir des paramètres utilisateur, projet et locaux sont ignorés. Les domaines non autorisés sont bloqués automatiquement sans inviter l'utilisateur. Les domaines refusés sont toujours respectés à partir de toutes les sources. Par défaut : false | `true` |424| `network.allowManagedDomainsOnly` | (Paramètres gérés uniquement) Seul `allowedDomains` et les règles allow `WebFetch(domain:...)` à partir des paramètres gérés sont respectés. Les domaines à partir des paramètres utilisateur, projet et locaux sont ignorés. Les domaines non autorisés sont bloqués automatiquement sans inviter l'utilisateur. Les domaines refusés sont toujours respectés à partir de toutes les sources. Par défaut : false | `true` |

423| `network.httpProxyPort` | Port du proxy HTTP utilisé si vous souhaitez apporter votre propre proxy. S'il n'est pas spécifié, Claude exécutera son propre proxy. | `8080` |425| `network.httpProxyPort` | Port du proxy HTTP utilisé si vous souhaitez apporter votre propre proxy. S'il n'est pas spécifié, Claude exécutera son propre proxy. | `8080` |

424| `network.socksProxyPort` | Port du proxy SOCKS5 utilisé si vous souhaitez apporter votre propre proxy. S'il n'est pas spécifié, Claude exécutera son propre proxy. | `8081` |426| `network.socksProxyPort` | Port du proxy SOCKS5 utilisé si vous souhaitez apporter votre propre proxy. S'il n'est pas spécifié, Claude exécutera son propre proxy. | `8081` |

427| `network.tlsTerminate` | Expérimental. Terminer TLS à l'intérieur du proxy du sandbox pour qu'il puisse lire le contenu des demandes HTTPS. Requis pour la [substitution d'identifiant](/fr/sandboxing#protect-credentials) `mask`. Définir `{}` pour générer une autorité de certification éphémère pour la session, ou définir `caCertPath` et `caKeyPath` pour utiliser la vôtre. Honoré uniquement à partir des paramètres utilisateur, gérés ou CLI `--settings`, pas à partir de `.claude/settings.json` ou `.claude/settings.local.json`. Nécessite Claude Code v2.1.199 ou ultérieur. {/* min-version: 2.1.199 */} | `{}` |

425| `enableWeakerNestedSandbox` | Activer un sandbox plus faible pour les environnements Docker non privilégiés (Linux et WSL2 uniquement). **Réduit la sécurité.** Par défaut : false | `true` |428| `enableWeakerNestedSandbox` | Activer un sandbox plus faible pour les environnements Docker non privilégiés (Linux et WSL2 uniquement). **Réduit la sécurité.** Par défaut : false | `true` |

426| `enableWeakerNetworkIsolation` | (macOS uniquement) Autoriser l'accès au service de confiance TLS du système (`com.apple.trustd.agent`) dans le sandbox. Requis pour que les outils basés sur Go comme `gh`, `gcloud`, et `terraform` vérifient les certificats TLS lors de l'utilisation de `httpProxyPort` avec un proxy MITM et une CA personnalisée. **Réduit la sécurité** en ouvrant un chemin potentiel d'exfiltration de données. Par défaut : false | `true` |429| `enableWeakerNetworkIsolation` | (macOS uniquement) Autoriser l'accès au service de confiance TLS du système (`com.apple.trustd.agent`) dans le sandbox. Requis pour que les outils basés sur Go comme `gh`, `gcloud`, et `terraform` vérifient les certificats TLS lors de l'utilisation de `httpProxyPort` avec un proxy MITM et une CA personnalisée. **Réduit la sécurité** en ouvrant un chemin potentiel d'exfiltration de données. Par défaut : false | `true` |

427| `allowAppleEvents` | (macOS uniquement) Autoriser les commandes sandboxées à envoyer des Apple Events. Requis pour `open`, `osascript`, et les outils qui ouvrent des URL dans un navigateur, qui échouent autrement avec l'erreur `-600`. **Supprime l'isolation de l'exécution du code.** Les commandes sandboxées peuvent lancer d'autres applications sans sandbox sans invite utilisateur ; elles peuvent également envoyer des commandes AppleScript aux applications en cours d'exécution telles que Terminal, soumises à l'invite de consentement d'automatisation par application macOS (TCC). Honoré uniquement à partir des paramètres utilisateur, gérés ou CLI, pas à partir des paramètres de projet. Par défaut : false | `true` |430| `allowAppleEvents` | (macOS uniquement) Autoriser les commandes sandboxées à envoyer des Apple Events. Requis pour `open`, `osascript`, et les outils qui ouvrent des URL dans un navigateur, qui échouent autrement avec l'erreur `-600`. **Supprime l'isolation de l'exécution du code.** Les commandes sandboxées peuvent lancer d'autres applications sans sandbox sans invite utilisateur ; elles peuvent également envoyer des commandes AppleScript aux applications en cours d'exécution telles que Terminal, soumises à l'invite de consentement d'automatisation par application macOS (TCC). Honoré uniquement à partir des paramètres utilisateur, gérés ou CLI, pas à partir des paramètres de projet. Par défaut : false | `true` |


6621. **Paramètres gérés** ([gérés par le serveur](/fr/server-managed-settings), [politiques MDM/au niveau du système d'exploitation](#configuration-scopes), ou [paramètres gérés](/fr/settings#settings-files))6651. **Paramètres gérés** ([gérés par le serveur](/fr/server-managed-settings), [politiques MDM/au niveau du système d'exploitation](#configuration-scopes), ou [paramètres gérés](/fr/settings#settings-files))

663 * Politiques déployées par l'IT via la livraison par serveur, les profils de configuration MDM, les politiques de registre, ou les fichiers de paramètres gérés666 * Politiques déployées par l'IT via la livraison par serveur, les profils de configuration MDM, les politiques de registre, ou les fichiers de paramètres gérés

664 * Ne peuvent pas être contournés par aucun autre niveau, y compris les arguments de ligne de commande667 * Ne peuvent pas être contournés par aucun autre niveau, y compris les arguments de ligne de commande

665 * Au sein du niveau géré, la précédence est : [`policyHelper`](#compute-managed-settings-with-a-policy-helper) output, qui quand configuré est la seule source gérée utilisée > distant (paramètres gérés par le serveur [claude.ai](/fr/server-managed-settings) ou [passerelle d'applications Claude](/fr/claude-apps-gateway)-livrés) > politiques MDM/au niveau du système d'exploitation > fichiers (`managed-settings.d/*.json` + `managed-settings.json`) > registre HKCU (Windows uniquement). Une seule source gérée est utilisée ; les sources ne fusionnent pas entre les niveaux, avec une exception : les clés de verrouillage sandbox `sandbox.network.allowManagedDomainsOnly` et `sandbox.filesystem.allowManagedReadPathsOnly`, avec leurs listes blanches associées, `allowAllClaudeAiMcps`, et les chemins binaires sandbox `sandbox.bwrapPath` et `sandbox.socatPath` sont honorés quand n'importe quelle source gérée contrôlée par l'administrateur les définit ; le niveau HKCU inscriptible par l'utilisateur est exclu. Au sein du niveau basé sur fichier, les fichiers drop-in et le fichier de base sont fusionnés ensemble.668 * Au sein du niveau géré, une seule source est utilisée et les autres sont ignorées plutôt que fusionnées. Précédence, du plus élevé au plus bas :

669 * Sortie [`policyHelper`](#compute-managed-settings-with-a-policy-helper) : quand configuré, c'est la seule source gérée utilisée

670 * Distant (paramètres gérés par le serveur [claude.ai](/fr/server-managed-settings) ou [passerelle d'applications Claude](/fr/claude-apps-gateway)-livrés)

671 * Politiques MDM/au niveau du système d'exploitation

672 * Basé sur fichier (`managed-settings.d/*.json` et `managed-settings.json`, fusionnés ensemble)

673 * Registre HKCU (Windows uniquement)

674 * Quelques clés sont des exceptions, honorées quand n'importe quelle source gérée contrôlée par l'administrateur les définit plutôt que seulement la source gagnante. La source de registre HKCU inscriptible par l'utilisateur est exclue. Les clés d'exception sont :

675 * les clés de verrouillage sandbox `sandbox.network.allowManagedDomainsOnly` et `sandbox.filesystem.allowManagedReadPathsOnly`, avec leurs listes blanches associées

676 * `allowAllClaudeAiMcps`

677 * les chemins binaires sandbox `sandbox.bwrapPath` et `sandbox.socatPath`

678 * [`forceRemoteSettingsRefresh`](/fr/server-managed-settings)

666 * Les hôtes d'intégration tels que Claude Desktop peuvent fournir une politique via l'option SDK `managedSettings`. Par défaut, ceci est ignoré quand une source gérée déployée par l'administrateur est présente : paramètres gérés par le serveur, une politique MDM ou au niveau du système d'exploitation, ou un fichier de paramètres gérés. Le fallback de registre HKCU inscriptible par l'utilisateur ne compte pas comme une source déployée par l'administrateur. Les administrateurs peuvent opter en définissant [`parentSettingsBehavior`](#available-settings) à `"merge"`. Les valeurs de l'intégrateur sont filtrées pour qu'elles puissent resserrer la politique gérée mais pas l'assouplir.679 * Les hôtes d'intégration tels que Claude Desktop peuvent fournir une politique via l'option SDK `managedSettings`. Par défaut, ceci est ignoré quand une source gérée déployée par l'administrateur est présente : paramètres gérés par le serveur, une politique MDM ou au niveau du système d'exploitation, ou un fichier de paramètres gérés. Le fallback de registre HKCU inscriptible par l'utilisateur ne compte pas comme une source déployée par l'administrateur. Les administrateurs peuvent opter en définissant [`parentSettingsBehavior`](#available-settings) à `"merge"`. Les valeurs de l'intégrateur sont filtrées pour qu'elles puissent resserrer la politique gérée mais pas l'assouplir.

667 680 

6682. **Arguments de ligne de commande**6812. **Arguments de ligne de commande**

setup.md +1 −1

Details

453 Installer avec npm453 Installer avec npm

454</h3>454</h3>

455 455 

456Vous pouvez également installer Claude Code en tant que paquet npm global. Le paquet nécessite [Node.js 18 ou ultérieur](https://nodejs.org/en/download).456Vous pouvez également installer Claude Code en tant que paquet npm global. À partir de la v2.1.198, le paquet npm nécessite [Node.js 22 ou ultérieur](https://nodejs.org/en/download). Sur une version antérieure de Node.js, npm affiche un avertissement `EBADENGINE` lors de l'installation plutôt que d'échouer ; l'installation se termine et `claude` s'exécute toujours, car le paquet télécharge un binaire natif qui n'utilise pas votre Node.js à l'exécution.

457 457 

458```bash theme={null}458```bash theme={null}

459npm install -g @anthropic-ai/claude-code459npm install -g @anthropic-ai/claude-code

skills.md +6 −0

Details

443 443 

444Si vous invoquez une skill avec des arguments mais que la skill n'inclut pas `$ARGUMENTS`, Claude Code ajoute `ARGUMENTS: <your input>` à la fin du contenu de la skill pour que Claude voie toujours ce que vous avez tapé.444Si vous invoquez une skill avec des arguments mais que la skill n'inclut pas `$ARGUMENTS`, Claude Code ajoute `ARGUMENTS: <your input>` à la fin du contenu de la skill pour que Claude voie toujours ce que vous avez tapé.

445 445 

446Vous pouvez également empiler plusieurs skills au début d'un message. À partir de v2.1.199, taper `/code-review /fix-issue 123` charge les deux skills et passe le texte final `123` comme `$ARGUMENTS` à chacune d'elles. Dans les versions antérieures, seule la première skill se chargeait et recevait `/fix-issue 123` comme texte d'argument littéral.

447 

448Claude Code développe la première skill plus jusqu'à cinq autres empilées après elle. L'expansion s'arrête au premier token qui n'est pas une skill invocable en ligne par l'utilisateur, donc une skill qui s'exécute comme un [subagent forké](#run-skills-in-a-subagent) ou une dont les arguments peuvent eux-mêmes commencer par une commande slash, comme `/loop`, arrête également l'exécution là ; ce token et tout ce qui suit deviennent le texte d'argument pour chaque skill développée.

449 

446Pour accéder aux arguments individuels par position, utilisez `$ARGUMENTS[N]` ou le raccourci plus court `$N` :450Pour accéder aux arguments individuels par position, utilisez `$ARGUMENTS[N]` ou le raccourci plus court `$N` :

447 451 

448```yaml theme={null}452```yaml theme={null}


624| `"user-invocable-only"` | Masqué | Oui |628| `"user-invocable-only"` | Masqué | Oui |

625| `"off"` | Masqué | Masqué |629| `"off"` | Masqué | Masqué |

626 630 

631À partir de la v2.1.199, `"off"` masque également la skill des listes de commandes annoncées aux clients [Remote Control](/fr/remote-control) et aux appelants [Agent SDK](/fr/agent-sdk/slash-commands), pas seulement le menu terminal `/`. Invoquer une skill masquée par son nom complet retourne toujours l'erreur `skillOverrides` au lieu de l'exécuter.

632 

627Une skill absente de `skillOverrides` est traitée comme `"on"`. L'exemple ci-dessous réduit une skill à son nom et désactive une autre entièrement :633Une skill absente de `skillOverrides` est traitée comme `"on"`. L'exemple ci-dessous réduit une skill à son nom et désactive une autre entièrement :

628 634 

629```json theme={null}635```json theme={null}

sub-agents.md +101 −77

Details

24 24 

25Claude utilise la description de chaque sous-agent pour décider quand déléguer les tâches. Lorsque vous créez un sous-agent, écrivez une description claire pour que Claude sache quand l'utiliser.25Claude utilise la description de chaque sous-agent pour décider quand déléguer les tâches. Lorsque vous créez un sous-agent, écrivez une description claire pour que Claude sache quand l'utiliser.

26 26 

27Claude Code inclut plusieurs sous-agents intégrés comme **Explore**, **Plan** et **general-purpose**. Vous pouvez également créer des sous-agents personnalisés pour gérer des tâches spécifiques.27Claude Code inclut plusieurs sous-agents intégrés comme Explore, Plan et general-purpose. Vous pouvez également créer des sous-agents personnalisés pour gérer des tâches spécifiques.

28 28 

29<h2 id="built-in-subagents">29<h2 id="built-in-subagents">

30 Sous-agents intégrés30 Sous-agents intégrés


38 <Tab title="Explore">38 <Tab title="Explore">

39 Un agent rapide et en lecture seule optimisé pour la recherche et l'analyse de bases de code.39 Un agent rapide et en lecture seule optimisé pour la recherche et l'analyse de bases de code.

40 40 

41 * **Modèle** : Haiku (rapide, faible latence)41 * **Modèle** : hérité de la conversation principale, limité à Opus sur l'API Claude, donc Explore ne s'exécute jamais sur un modèle plus coûteux que celui que vous avez déjà choisi pour la session

42 * **Outils** : Outils en lecture seule (accès refusé aux outils Write et Edit)42 * **Outils** : outils en lecture seule ; Write et Edit sont refusés

43 * **Objectif** : Découverte de fichiers, recherche de code, exploration de base de code43 * **Objectif** : découverte de fichiers, recherche de code, exploration de base de code

44 

45 {/* min-version: 2.1.198 */}À partir de la v2.1.198, Explore hérite du modèle de la conversation principale au lieu de toujours s'exécuter sur Haiku. Sur l'API Claude, le modèle hérité est limité à Opus : une conversation principale sur un niveau supérieur exécute Explore sur Opus, et une conversation principale sur Sonnet ou Haiku exécute Explore sur ce même modèle. Sur tout autre fournisseur, tel que [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou Claude Platform on AWS](/fr/third-party-integrations), Explore hérite directement du modèle de la conversation principale.

46 

47 Un [sous-agent utilisateur ou projet](#choose-the-subagent-scope) nommé `Explore` remplace le sous-agent intégré et conserve son propre champ `model`, donc définissez-en un avec `model: haiku` pour maintenir l'exploration sur un modèle moins coûteux.

44 48 

45 Claude délègue à Explore lorsqu'il doit rechercher ou comprendre une base de code sans apporter de modifications. Cela garde les résultats d'exploration en dehors du contexte de votre conversation principale.49 Claude délègue à Explore lorsqu'il doit rechercher ou comprendre une base de code sans apporter de modifications. Cela garde les résultats d'exploration en dehors du contexte de votre conversation principale.

46 50 


50 <Tab title="Plan">54 <Tab title="Plan">

51 Un agent de recherche utilisé pendant le [mode plan](/fr/permission-modes#analyze-before-you-edit-with-plan-mode) pour rassembler le contexte avant de présenter un plan.55 Un agent de recherche utilisé pendant le [mode plan](/fr/permission-modes#analyze-before-you-edit-with-plan-mode) pour rassembler le contexte avant de présenter un plan.

52 56 

53 * **Modèle** : Hérité de la conversation principale57 * **Modèle** : hérité de la conversation principale

54 * **Outils** : Outils en lecture seule (accès refusé aux outils Write et Edit)58 * **Outils** : outils en lecture seule ; Write et Edit sont refusés

55 * **Objectif** : Recherche de base de code pour la planification59 * **Objectif** : recherche de base de code pour la planification

56 60 

57 Lorsque vous êtes en mode plan et que Claude doit comprendre votre base de code, il délègue la recherche au sous-agent Plan afin que la sortie d'exploration reste dans une fenêtre de contexte séparée tandis que la conversation principale reste en lecture seule.61 Lorsque vous êtes en mode plan et que Claude doit comprendre votre base de code, il délègue la recherche au sous-agent Plan afin que la sortie d'exploration reste dans une fenêtre de contexte séparée tandis que la conversation principale reste en lecture seule.

58 </Tab>62 </Tab>


60 <Tab title="General-purpose">64 <Tab title="General-purpose">

61 Un agent capable pour les tâches complexes et multi-étapes qui nécessitent à la fois l'exploration et l'action.65 Un agent capable pour les tâches complexes et multi-étapes qui nécessitent à la fois l'exploration et l'action.

62 66 

63 * **Modèle** : Hérité de la conversation principale67 * **Modèle** : hérité de la conversation principale

64 * **Outils** : Tous les outils68 * **Outils** : tous les outils

65 * **Objectif** : Recherche complexe, opérations multi-étapes, modifications de code69 * **Objectif** : recherche complexe, opérations multi-étapes, modifications de code

66 70 

67 Claude délègue à general-purpose lorsque la tâche nécessite à la fois l'exploration et la modification, un raisonnement complexe pour interpréter les résultats, ou plusieurs étapes dépendantes.71 Claude délègue à general-purpose lorsque la tâche nécessite à la fois l'exploration et la modification, un raisonnement complexe pour interpréter les résultats, ou plusieurs étapes dépendantes.

68 </Tab>72 </Tab>


77 </Tab>81 </Tab>

78</Tabs>82</Tabs>

79 83 

80Les sous-agents intégrés sont toujours enregistrés dans les sessions interactives. Pour blocker un type intégré spécifique, ajoutez-le à `permissions.deny` comme indiqué dans [Désactiver des sous-agents spécifiques](#disable-specific-subagents). Pour empêcher Claude de déléguer à un sous-agent, refusez l'outil `Agent` lui-même avec [`permissions.deny`](/fr/permissions#tool-specific-permission-rules). En [mode non-interactif](/fr/headless) et le [SDK Agent](/fr/agent-sdk/overview), définissez [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/fr/env-vars) pour supprimer tous les types intégrés et fournir uniquement les vôtres.84Les sous-agents intégrés sont enregistrés par défaut dans les sessions interactives. Pour les restreindre :

85 

86* Pour bloquer un type intégré spécifique, ajoutez-le à `permissions.deny` comme indiqué dans [Désactiver des sous-agents spécifiques](#disable-specific-subagents).

87* Pour empêcher Claude de déléguer à un sous-agent, refusez l'outil `Agent` lui-même avec [`permissions.deny`](/fr/permissions#tool-specific-permission-rules).

88* {/* min-version: 2.1.198 */}Pour supprimer uniquement les sous-agents intégrés `Explore` et `Plan`, définissez [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/fr/env-vars). Claude lit et explore les fichiers directement au lieu de déléguer à ces sous-agents. Nécessite Claude Code v2.1.198 ou version ultérieure.

89* En [mode non-interactif](/fr/headless) et le [SDK Agent](/fr/agent-sdk/overview), définissez [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/fr/env-vars) pour supprimer tous les types intégrés et fournir uniquement les vôtres.

81 90 

82Au-delà de ces sous-agents intégrés, vous pouvez créer les vôtres avec des invites personnalisées, des restrictions d'outils, des modes de permission, des hooks et des skills. Les sections suivantes montrent comment commencer et personnaliser les sous-agents.91Au-delà de ces sous-agents intégrés, vous pouvez créer les vôtres avec des invites personnalisées, des restrictions d'outils, des modes de permission, des hooks et des skills. Les sections suivantes montrent comment commencer et personnaliser les sous-agents.

83 92 


85 Démarrage rapide : créer votre premier sous-agent94 Démarrage rapide : créer votre premier sous-agent

86</h2>95</h2>

87 96 

88Les sous-agents sont définis dans des fichiers Markdown avec du frontmatter YAML. Vous pouvez les [créer manuellement](#write-subagent-files) ou utiliser la commande `/agents`.97Les sous-agents sont des fichiers Markdown avec du frontmatter YAML. Pour en créer un, demandez à Claude de l'écrire pour vous, ou [écrivez le fichier vous-même](#write-subagent-files).

89 98 

90Cette procédure pas à pas vous guide dans la création d'un sous-agent au niveau utilisateur avec la commande `/agents`. Le sous-agent examine le code et suggère des améliorations pour la base de code.99{/* min-version: 2.1.198 */}À partir de la v2.1.198, la commande `/agents` n'ouvre plus l'assistant de création interactif ; l'exécuter affiche un rappel pour demander à Claude ou modifier `.claude/agents/` directement. Les fichiers de sous-agents, les champs de frontmatter, et les emplacements `.claude/agents/` et `~/.claude/agents/` restent inchangés ; seul l'assistant terminal est supprimé.

100 

101Cette procédure pas à pas crée un sous-agent au niveau utilisateur qui examine le code et suggère des améliorations.

91 102 

92<Steps>103<Steps>

93 <Step title="Ouvrir l'interface des sous-agents">104 <Step title="Demander à Claude de créer le sous-agent">

94 Dans Claude Code, exécutez :105 Dans Claude Code, décrivez le sous-agent que vous souhaitez et où l'enregistrer :

95 106 

96 ```text wrap theme={null}107 ```text wrap theme={null}

97 /agents108 Create a personal code-improver subagent in ~/.claude/agents/ that scans

109 files and suggests improvements for readability, performance, and best

110 practices. It should explain each issue, show the current code, and

111 provide an improved version. Make it read-only and have it use Sonnet.

98 ```112 ```

99 </Step>

100 113 

101 <Step title="Choisir un emplacement">114 Claude écrit le fichier avec un `name`, une `description`, une liste `tools`, un `model`, et une invite système.

102 Basculez vers l'onglet **Library**, sélectionnez **Create new agent**, puis choisissez **Personal**. Cela enregistre le sous-agent dans `~/.claude/agents/` pour qu'il soit disponible dans tous vos projets.

103 </Step>115 </Step>

104 116 

105 <Step title="Générer avec Claude">117 <Step title="Examiner le fichier">

106 Sélectionnez **Generate with Claude**. Lorsque vous y êtes invité, décrivez le sous-agent :118 Ouvrez `~/.claude/agents/code-improver.md` et confirmez que le frontmatter correspond à ce que vous avez demandé. Le résultat ressemble à ceci :

107 119 

108 ```text wrap theme={null}120 ```markdown theme={null}

109 A code improvement agent that scans files and suggests improvements121 ---

110 for readability, performance, and best practices. It should explain122 name: code-improver

111 each issue, show the current code, and provide an improved version.123 description: Scans files and suggests improvements for readability, performance, and best practices. Use after writing or modifying code.

124 tools: Read, Grep, Glob

125 model: sonnet

126 ---

127 

128 You are a code improvement specialist. For each issue you find, explain

129 the problem, show the current code, and provide an improved version.

112 ```130 ```

113 131 

114 Claude génère l'identifiant, la description et l'invite système pour vous.132 Parce que le fichier se trouve dans `~/.claude/agents/`, le sous-agent est disponible dans chaque projet sur votre machine. Pour le limiter à un seul projet, déplacez-le vers le répertoire `.claude/agents/` de ce projet. [Choisir la portée du sous-agent](#choose-the-subagent-scope) compare les deux.

115 </Step>

116 

117 <Step title="Sélectionner les outils">

118 Pour un examinateur en lecture seule, désélectionnez tout sauf **Read-only tools**. Si vous gardez tous les outils sélectionnés, le sous-agent hérite de tous les outils disponibles pour la conversation principale.

119 </Step>133 </Step>

120 134 

121 <Step title="Sélectionner le modèle">135 <Step title="L'essayer">

122 Choisissez le modèle que le sous-agent utilise. Pour cet exemple d'agent, sélectionnez **Sonnet**, qui équilibre la capacité et la vitesse pour analyser les modèles de code.136 Demandez à Claude de déléguer au nouveau sous-agent :

123 </Step>

124 

125 <Step title="Choisir une couleur">

126 Choisissez une couleur de fond pour le sous-agent. Cela vous aide à identifier quel sous-agent s'exécute dans l'interface utilisateur.

127 </Step>

128 

129 <Step title="Configurer la mémoire">

130 Sélectionnez **User scope** pour donner au sous-agent un [répertoire de mémoire persistante](#enable-persistent-memory) à `~/.claude/agent-memory/`. Le sous-agent utilise ceci pour accumuler des insights dans les conversations, comme les modèles de base de code et les problèmes récurrents. Sélectionnez **None** si vous ne souhaitez pas que le sous-agent persiste les apprentissages.

131 </Step>

132 

133 <Step title="Enregistrer et essayer">

134 Examinez le résumé de la configuration. Appuyez sur `s` ou `Entrée` pour enregistrer, ou appuyez sur `e` pour enregistrer et modifier le fichier dans votre éditeur. Le sous-agent est disponible immédiatement. Essayez-le :

135 137 

136 ```text wrap theme={null}138 ```text wrap theme={null}

137 Use the code-improver agent to suggest improvements in this project139 Use the code-improver agent to suggest improvements in this project

138 ```140 ```

139 141 

140 Claude délègue à votre nouveau sous-agent, qui analyse la base de code et retourne les suggestions d'amélioration.142 Claude délègue à votre nouveau sous-agent, qui analyse la base de code et retourne les suggestions d'amélioration.

143 

144 Si Claude ne trouve pas le nouveau sous-agent, redémarrez Claude Code et réessayez. Cela se produit uniquement lorsque `~/.claude/agents/` n'existait pas avant le démarrage de la session, car une session en cours ne détecte pas un répertoire `agents` nouvellement créé.

141 </Step>145 </Step>

142</Steps>146</Steps>

143 147 

144Vous avez maintenant un sous-agent que vous pouvez utiliser dans n'importe quel projet sur votre machine pour analyser les bases de code et suggérer des améliorations.148Vous avez maintenant un sous-agent que vous pouvez utiliser dans n'importe quel projet sur votre machine pour analyser les bases de code et suggérer des améliorations.

145 149 

146Vous pouvez également créer des sous-agents manuellement en tant que fichiers Markdown, les définir via des drapeaux CLI ou les distribuer via des plugins. Les sections suivantes couvrent toutes les options de configuration.150Vous pouvez également écrire des fichiers de sous-agents à la main, les définir via des drapeaux CLI, ou les distribuer via des plugins. Les sections suivantes couvrent toutes les options de configuration.

151 

152<Note>

153 Sur Claude Code v2.1.197 et antérieur, `/agents` ouvre un assistant interactif avec un onglet **Running** qui liste les sous-agents actifs et un onglet **Library** pour les créer, les modifier et les supprimer. {/* max-version: 2.1.197 */}

154</Note>

147 155 

148<h2 id="configure-subagents">156<h2 id="configure-subagents">

149 Configurer les sous-agents157 Configurer les sous-agents

150</h2>158</h2>

151 159 

152<h3 id="use-the-/agents-command">160La localisation d'un fichier de sous-agent détermine qui y a accès, et son frontmatter détermine ce qu'il peut faire. Cette section couvre l'emplacement des fichiers de sous-agent et chaque champ qu'ils prennent en charge.

153 Utiliser la commande /agents

154</h3>

155 

156La commande `/agents` ouvre une interface à onglets pour gérer les sous-agents. L'onglet **Running** affiche les sous-agents en direct et récemment terminés et vous permet de les ouvrir ou de les arrêter. L'onglet **Library** vous permet de :

157 

158* Afficher tous les sous-agents disponibles (intégrés, utilisateur, projet et plugin)

159* Créer de nouveaux sous-agents avec une configuration guidée ou une génération Claude

160* Modifier la configuration des sous-agents existants et l'accès aux outils

161* Supprimer les sous-agents personnalisés

162* Voir quels sous-agents sont actifs en cas de doublons

163 

164C'est la méthode recommandée pour créer et gérer les sous-agents. Pour la création manuelle ou l'automatisation, vous pouvez également ajouter des fichiers de sous-agent directement.

165 161 

166<h3 id="choose-the-subagent-scope">162<h3 id="choose-the-subagent-scope">

167 Choisir la portée du sous-agent163 Choisir la portée du sous-agent

168</h3>164</h3>

169 165 

170Les sous-agents sont des fichiers Markdown avec du frontmatter YAML. Stockez-les dans différents emplacements selon la portée. Lorsque plusieurs sous-agents partagent le même nom, Claude Code utilise celui de l'emplacement de priorité plus élevée.166Stockez les fichiers de sous-agent dans différents emplacements selon la portée. Lorsque plusieurs sous-agents partagent le même nom, Claude Code utilise celui de l'emplacement de priorité plus élevée.

171 167 

172| Emplacement | Portée | Priorité | Comment créer |168| Emplacement | Portée | Priorité | Comment créer |

173| :----------------------------- | :---------------------------- | :----------------- | :------------------------------------------- |169| :----------------------------- | :---------------------------- | :----------------- | :-------------------------------------------------- |

174| Paramètres gérés | À l'échelle de l'organisation | 1 (la plus élevée) | Déployé via [paramètres gérés](/fr/settings) |170| Paramètres gérés | À l'échelle de l'organisation | 1 (la plus élevée) | Déployé via [paramètres gérés](/fr/settings) |

175| Drapeau CLI `--agents` | Session actuelle | 2 | Passer JSON lors du lancement de Claude Code |171| Drapeau CLI `--agents` | Session actuelle | 2 | Passer JSON lors du lancement de Claude Code |

176| `.claude/agents/` | Projet actuel | 3 | Interactif ou manuel |172| `.claude/agents/` | Projet actuel | 3 | Demander à Claude, ou créer le fichier manuellement |

177| `~/.claude/agents/` | Tous vos projets | 4 | Interactif ou manuel |173| `~/.claude/agents/` | Tous vos projets | 4 | Demander à Claude, ou créer le fichier manuellement |

178| Répertoire `agents/` du plugin | Où le plugin est activé | 5 (la plus basse) | Installé avec les [plugins](/fr/plugins) |174| Répertoire `agents/` du plugin | Où le plugin est activé | 5 (la plus basse) | Installé avec les [plugins](/fr/plugins) |

179 175 

180**Les sous-agents de projet** (`.claude/agents/`) sont idéaux pour les sous-agents spécifiques à une base de code. Enregistrez-les dans le contrôle de version pour que votre équipe puisse les utiliser et les améliorer de manière collaborative.176**Les sous-agents de projet** (`.claude/agents/`) sont idéaux pour les sous-agents spécifiques à une base de code. Enregistrez-les dans le contrôle de version pour que votre équipe puisse les utiliser et les améliorer de manière collaborative.


185 181 

186**Les sous-agents utilisateur** (`~/.claude/agents/`) sont des sous-agents personnels disponibles dans tous vos projets.182**Les sous-agents utilisateur** (`~/.claude/agents/`) sont des sous-agents personnels disponibles dans tous vos projets.

187 183 

188Claude Code analyse `.claude/agents/` et `~/.claude/agents/` de manière récursive, vous pouvez donc organiser les définitions dans des sous-dossiers tels que `agents/review/` ou `agents/research/`. Le chemin du sous-répertoire n'affecte pas la façon dont un sous-agent est identifié ou invoqué, car l'identité provient uniquement du champ frontmatter `name`. Gardez les valeurs `name` uniques dans tout l'arborescence : si deux fichiers dans une même portée déclarent le même nom, Claude Code en charge un seul. {/* min-version: 2.1.196 */}À partir de la v2.1.196, l'exécution de `/doctor` signale les noms d'agents en doublon dans la même portée et affiche quelle définition est active.184Claude Code analyse `.claude/agents/` et `~/.claude/agents/` de manière récursive, vous pouvez donc organiser les définitions dans des sous-dossiers tels que `agents/review/` ou `agents/research/`. Le chemin du sous-répertoire n'affecte pas la façon dont un sous-agent est identifié ou invoqué, car l'identité provient uniquement du champ frontmatter `name`.

185 

186Gardez les valeurs `name` uniques dans tout l'arborescence : si deux fichiers dans une même portée déclarent le même nom, Claude Code en charge un seul. {/* min-version: 2.1.196 */}À partir de la v2.1.196, l'exécution de `/doctor` signale les noms d'agents en doublon dans la même portée et affiche quelle définition est active.

189 187 

190Les répertoires `agents/` des plugins sont également analysés de manière récursive. Contrairement aux portées de projet et utilisateur, un sous-dossier à l'intérieur du répertoire `agents/` d'un plugin devient partie de l'[identifiant limité](#invoke-subagents-explicitly) : un fichier à `agents/review/security.md` dans le plugin `my-plugin` s'enregistre comme `my-plugin:review:security`.188Les répertoires `agents/` des plugins sont également analysés de manière récursive. Contrairement aux portées de projet et utilisateur, un sous-dossier à l'intérieur du répertoire `agents/` d'un plugin devient partie de l'[identifiant limité](#invoke-subagents-explicitly) : un fichier à `agents/review/security.md` dans le plugin `my-plugin` s'enregistre comme `my-plugin:review:security`.

191 189 


233 231 

234**Les sous-agents gérés** sont déployés par les administrateurs de l'organisation. Placez les fichiers markdown dans `.claude/agents/` à l'intérieur du [répertoire des paramètres gérés](/fr/settings#settings-files), en utilisant le même format de frontmatter que les sous-agents de projet et utilisateur. Les définitions gérées prennent précédence sur les sous-agents de projet et utilisateur portant le même nom.232**Les sous-agents gérés** sont déployés par les administrateurs de l'organisation. Placez les fichiers markdown dans `.claude/agents/` à l'intérieur du [répertoire des paramètres gérés](/fr/settings#settings-files), en utilisant le même format de frontmatter que les sous-agents de projet et utilisateur. Les définitions gérées prennent précédence sur les sous-agents de projet et utilisateur portant le même nom.

235 233 

236**Les sous-agents de plugin** proviennent des [plugins](/fr/plugins) que vous avez installés. Ils apparaissent dans `/agents` aux côtés de vos sous-agents personnalisés. Consultez la [référence des composants de plugin](/fr/plugins-reference#agents) pour plus de détails sur la création de sous-agents de plugin.234**Les sous-agents de plugin** proviennent des [plugins](/fr/plugins) que vous avez installés. Ils se chargent aux côtés de vos sous-agents personnalisés et apparaissent dans la saisie semi-automatique @-mention sous leur nom limité. Consultez la [référence des composants de plugin](/fr/plugins-reference#agents) pour plus de détails sur la création de sous-agents de plugin.

237 235 

238<Note>236<Note>

239 Pour des raisons de sécurité, les sous-agents de plugin ne prennent pas en charge les champs frontmatter `hooks`, `mcpServers` ou `permissionMode`. Ces champs sont ignorés lors du chargement des agents à partir d'un plugin. Si vous en avez besoin, copiez le fichier d'agent dans `.claude/agents/` ou `~/.claude/agents/`. Vous pouvez également ajouter des règles à [`permissions.allow`](/fr/settings#permission-settings) dans `settings.json` ou `settings.local.json`, mais ces règles s'appliquent à l'ensemble de la session, pas seulement au sous-agent du plugin.237 Pour des raisons de sécurité, les sous-agents de plugin ne prennent pas en charge les champs frontmatter `hooks`, `mcpServers` ou `permissionMode`. Ces champs sont ignorés lors du chargement des agents à partir d'un plugin. Si vous en avez besoin, copiez le fichier d'agent dans `.claude/agents/` ou `~/.claude/agents/`. Vous pouvez également ajouter des règles à [`permissions.allow`](/fr/settings#permission-settings) dans `settings.json` ou `settings.local.json`, mais ces règles s'appliquent à l'ensemble de la session, pas seulement au sous-agent du plugin.


248Les fichiers de sous-agent utilisent du frontmatter YAML pour la configuration, suivi de l'invite système en Markdown :246Les fichiers de sous-agent utilisent du frontmatter YAML pour la configuration, suivi de l'invite système en Markdown :

249 247 

250<Note>248<Note>

251 Les sous-agents sont chargés au démarrage de la session. Si vous ajoutez ou modifiez un fichier de sous-agent directement sur le disque, redémarrez votre session pour le charger. Les sous-agents créés via l'interface `/agents` prennent effet immédiatement sans redémarrage.249 Claude Code surveille `~/.claude/agents/` et `.claude/agents/`. Lorsque vous ajoutez ou modifiez un fichier de sous-agent sur le disque, ou demandez à Claude d'en écrire un pour vous, Claude Code détecte le changement en quelques secondes et la prochaine délégation utilise la définition mise à jour, sans redémarrage nécessaire.

250 

251 Deux cas nécessitent toujours un redémarrage :

252 

253 * L'observateur couvre uniquement les répertoires qui existaient au démarrage de la session, donc après la création du premier fichier d'agent d'une portée dans un nouveau répertoire `agents`, redémarrez pour le charger.

254 * Les sessions démarrées avec `--disable-slash-commands` ne surveillent pas du tout ces répertoires.

252</Note>255</Note>

253 256 

254```markdown theme={null}257```markdown theme={null}


263specific, actionable feedback on quality, security, and best practices.266specific, actionable feedback on quality, security, and best practices.

264```267```

265 268 

266Le frontmatter définit les métadonnées et la configuration du sous-agent. Le corps devient l'invite système qui guide le comportement du sous-agent. Les sous-agents reçoivent uniquement cette invite système (plus les détails d'environnement de base comme le répertoire de travail), pas l'invite système complète de Claude Code.269Le frontmatter définit les métadonnées et la configuration du sous-agent. Le corps devient l'invite système qui guide le comportement du sous-agent. Les sous-agents reçoivent uniquement cette invite système plus les détails d'environnement de base comme le répertoire de travail, pas l'invite système complète de Claude Code.

267 270 

268Un sous-agent démarre dans le répertoire de travail actuel de la conversation principale. Au sein d'un sous-agent, les commandes `cd` ne persistent pas entre les appels d'outils Bash ou PowerShell et n'affectent pas le répertoire de travail de la conversation principale. Pour donner au sous-agent une copie isolée du référentiel à la place, définissez [`isolation: worktree`](#supported-frontmatter-fields).271Un sous-agent démarre dans le répertoire de travail actuel de la conversation principale. Au sein d'un sous-agent, les commandes `cd` ne persistent pas entre les appels d'outils Bash ou PowerShell et n'affectent pas le répertoire de travail de la conversation principale. Pour donner au sous-agent une copie isolée du référentiel à la place, définissez [`isolation: worktree`](#supported-frontmatter-fields).

269 272 


286| `mcpServers` | Non | [Serveurs MCP](/fr/mcp) disponibles pour ce sous-agent. Chaque entrée est soit un nom de serveur référençant un serveur déjà configuré (par exemple, `"slack"`) soit une définition en ligne avec le nom du serveur comme clé et une [configuration de serveur MCP](/fr/mcp#installing-mcp-servers) complète comme valeur. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |289| `mcpServers` | Non | [Serveurs MCP](/fr/mcp) disponibles pour ce sous-agent. Chaque entrée est soit un nom de serveur référençant un serveur déjà configuré (par exemple, `"slack"`) soit une définition en ligne avec le nom du serveur comme clé et une [configuration de serveur MCP](/fr/mcp#installing-mcp-servers) complète comme valeur. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |

287| `hooks` | Non | [Hooks de cycle de vie](#define-hooks-for-subagents) limités à ce sous-agent. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |290| `hooks` | Non | [Hooks de cycle de vie](#define-hooks-for-subagents) limités à ce sous-agent. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |

288| `memory` | Non | [Portée de la mémoire persistante](#enable-persistent-memory) : `user`, `project` ou `local`. Active l'apprentissage entre sessions |291| `memory` | Non | [Portée de la mémoire persistante](#enable-persistent-memory) : `user`, `project` ou `local`. Active l'apprentissage entre sessions |

289| `background` | Non | Définir sur `true` pour toujours exécuter ce sous-agent en tant que [tâche d'arrière-plan](#run-subagents-in-foreground-or-background). Par défaut : `false` |292| `background` | Non | Définir sur `true` pour toujours exécuter ce sous-agent en tant que [tâche d'arrière-plan](#run-subagents-in-foreground-or-background), même lorsque Claude a besoin de son résultat immédiatement. Lorsque non défini, Claude choisit, et {/* min-version: 2.1.198 */}à partir de la v2.1.198 il exécute les sous-agents en arrière-plan par défaut |

290| `effort` | Non | Niveau d'effort lorsque ce sous-agent est actif. Remplace le niveau d'effort de la session. Par défaut : hérite de la session. Options : `low`, `medium`, `high`, `xhigh`, `max` ; les niveaux disponibles dépendent du modèle |293| `effort` | Non | Niveau d'effort lorsque ce sous-agent est actif. Remplace le niveau d'effort de la session. Par défaut : hérite de la session. Options : `low`, `medium`, `high`, `xhigh`, `max` ; les niveaux disponibles dépendent du modèle |

291| `isolation` | Non | Définir sur `worktree` pour exécuter le sous-agent dans un [git worktree](/fr/worktrees) temporaire, ce qui lui donne une copie isolée du référentiel branchée par défaut à partir de votre [branche par défaut](/fr/worktrees#choose-the-base-branch) plutôt que du `HEAD` de la session parent. Le worktree est automatiquement nettoyé si le sous-agent n'apporte aucune modification |294| `isolation` | Non | Définir sur `worktree` pour exécuter le sous-agent dans un [git worktree](/fr/worktrees) temporaire, ce qui lui donne une copie isolée du référentiel branchée par défaut à partir de votre [branche par défaut](/fr/worktrees#choose-the-base-branch) plutôt que du `HEAD` de la session parent. Le worktree est automatiquement nettoyé si le sous-agent n'apporte aucune modification |

292| `color` | Non | Couleur d'affichage pour le sous-agent dans la liste des tâches et la transcription. Accepte `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` ou `cyan` |295| `color` | Non | Couleur d'affichage pour le sous-agent dans la liste des tâches et la transcription. Accepte `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` ou `cyan` |


312 315 

313{/* min-version: 2.1.196 */}À partir de la v2.1.196, définir `CLAUDE_CODE_SUBAGENT_MODEL` sur `inherit` est identique à le laisser non défini : la résolution continue avec le paramètre `model` par invocation, puis le frontmatter. Dans les versions antérieures, `inherit` forçait les sous-agents sur le modèle de la conversation principale et ignorait ces deux sources.316{/* min-version: 2.1.196 */}À partir de la v2.1.196, définir `CLAUDE_CODE_SUBAGENT_MODEL` sur `inherit` est identique à le laisser non défini : la résolution continue avec le paramètre `model` par invocation, puis le frontmatter. Dans les versions antérieures, `inherit` forçait les sous-agents sur le modèle de la conversation principale et ignorait ces deux sources.

314 317 

315La variable d'environnement, le paramètre par invocation et les valeurs du frontmatter sont vérifiés par rapport à la liste blanche [`availableModels`](/fr/model-config#restrict-model-selection) de votre organisation. Une valeur qui se résout en un modèle exclu n'est pas utilisée et le sous-agent s'exécute sur le modèle hérité à la place.318Claude Code vérifie la variable d'environnement, le paramètre par invocation et les valeurs du frontmatter par rapport à la liste blanche [`availableModels`](/fr/model-config#restrict-model-selection) de votre organisation. Une valeur qui se résout en un modèle exclu n'est pas utilisée et le sous-agent s'exécute sur le modèle hérité à la place.

319 

320{/* min-version: 2.1.198 */}À partir de la v2.1.198, les sous-agents héritent également de la configuration [extended thinking](/fr/model-config#extended-thinking) de la conversation principale : si la réflexion est activée dans votre session, elle est activée pour le sous-agent, et si elle est désactivée, elle reste désactivée. Il n'y a pas de paramètre de réflexion par sous-agent. Avant la v2.1.198, les sous-agents s'exécutaient avec la réflexion étendue désactivée indépendamment du paramètre de la conversation principale.

316 321 

317<h3 id="control-subagent-capabilities">322<h3 id="control-subagent-capabilities">

318 Contrôler les capacités des sous-agents323 Contrôler les capacités des sous-agents


390 395 

391Si `Agent` est complètement omis de la liste `tools`, l'agent ne peut générer aucun sous-agent.396Si `Agent` est complètement omis de la liste `tools`, l'agent ne peut générer aucun sous-agent.

392 397 

393L'outil `Agent(agent_type)` avec syntaxe de liste blanche s'applique uniquement à un agent s'exécutant en tant que thread principal avec `claude --agent`. Dans une définition de sous-agent, lister `Agent` dans `tools` permet à ce sous-agent de [générer des sous-agents imbriqués](#spawn-nested-subagents), mais toute liste de types à l'intérieur des parenthèses est ignorée.398La syntaxe de liste blanche `Agent(agent_type)` s'applique uniquement à un agent s'exécutant en tant que thread principal avec `claude --agent`. Dans une définition de sous-agent, lister `Agent` dans `tools` permet à ce sous-agent de [générer des sous-agents imbriqués](#spawn-nested-subagents), mais toute liste de types à l'intérieur des parenthèses est ignorée.

394 399 

395<h4 id="scope-mcp-servers-to-a-subagent">400<h4 id="scope-mcp-servers-to-a-subagent">

396 Limiter les serveurs MCP à un sous-agent401 Limiter les serveurs MCP à un sous-agent


426Use the Playwright tools to navigate, screenshot, and interact with pages.431Use the Playwright tools to navigate, screenshot, and interact with pages.

427```432```

428 433 

429Les définitions en ligne utilisent le même schéma que les entrées de serveur `.mcp.json` (`stdio`, `http`, `sse`, `ws`), indexées par le nom du serveur.434Les définitions en ligne utilisent le même schéma que les entrées de serveur `.mcp.json`, indexées par le nom du serveur, et prennent en charge les types `stdio`, `http`, `sse` et `ws`.

430 435 

431Pour garder un serveur MCP en dehors de la conversation principale et éviter que ses descriptions d'outils ne consomment du contexte, définissez-le en ligne ici plutôt que dans `.mcp.json`. Le sous-agent obtient les outils ; la conversation parent ne les obtient pas.436Pour garder un serveur MCP en dehors de la conversation principale et éviter que ses descriptions d'outils ne consomment du contexte, définissez-le en ligne ici plutôt que dans `.mcp.json`. Le sous-agent obtient les outils ; la conversation parent ne les obtient pas.

432 437 


522 Conseils de mémoire persistante527 Conseils de mémoire persistante

523</h5>528</h5>

524 529 

525* `project` est la portée par défaut recommandée. Elle rend les connaissances du sous-agent partageables via le contrôle de version. Utilisez `user` lorsque les connaissances du sous-agent sont largement applicables dans les projets, ou `local` lorsque les connaissances ne doivent pas être enregistrées dans le contrôle de version.530* `project` est la portée par défaut recommandée. Elle rend les connaissances du sous-agent partageables via le contrôle de version.

526* Demandez au sous-agent de consulter sa mémoire avant de commencer le travail : « Examinez cette PR et consultez votre mémoire pour les modèles que vous avez vus auparavant. »531* Demandez au sous-agent de consulter sa mémoire avant de commencer le travail : « Examinez cette PR et consultez votre mémoire pour les modèles que vous avez vus auparavant. »

527* Demandez au sous-agent de mettre à jour sa mémoire après avoir terminé une tâche : « Maintenant que vous avez terminé, enregistrez ce que vous avez appris dans votre mémoire. » Au fil du temps, cela crée une base de connaissances qui rend le sous-agent plus efficace.532* Demandez au sous-agent de mettre à jour sa mémoire après avoir terminé une tâche : « Maintenant que vous avez terminé, enregistrez ce que vous avez appris dans votre mémoire. » Au fil du temps, cela crée une base de connaissances qui rend le sous-agent plus efficace.

528* Incluez les instructions de mémoire directement dans le fichier markdown du sous-agent pour qu'il maintienne proactivement sa propre base de connaissances :533* Incluez les instructions de mémoire directement dans le fichier markdown du sous-agent pour qu'il maintienne proactivement sa propre base de connaissances :


770* **Les sous-agents au premier plan** bloquent la conversation principale jusqu'à la fin. Les invites de permission vous sont transmises au fur et à mesure qu'elles se produisent.775* **Les sous-agents au premier plan** bloquent la conversation principale jusqu'à la fin. Les invites de permission vous sont transmises au fur et à mesure qu'elles se produisent.

771* **Les sous-agents en arrière-plan** s'exécutent simultanément pendant que vous continuez à travailler. {/* min-version: 2.1.186 */}À partir de la v2.1.186, lorsqu'un sous-agent en arrière-plan atteint un appel d'outil qui nécessite une permission, l'invite s'affiche dans votre session principale et nomme le sous-agent qui demande. Approuvez pour laisser le sous-agent continuer, ou appuyez sur Échap pour refuser cet appel d'outil sans arrêter le sous-agent. Avant la v2.1.186, les sous-agents en arrière-plan refusaient automatiquement tout appel d'outil qui aurait demandé une permission.776* **Les sous-agents en arrière-plan** s'exécutent simultanément pendant que vous continuez à travailler. {/* min-version: 2.1.186 */}À partir de la v2.1.186, lorsqu'un sous-agent en arrière-plan atteint un appel d'outil qui nécessite une permission, l'invite s'affiche dans votre session principale et nomme le sous-agent qui demande. Approuvez pour laisser le sous-agent continuer, ou appuyez sur Échap pour refuser cet appel d'outil sans arrêter le sous-agent. Avant la v2.1.186, les sous-agents en arrière-plan refusaient automatiquement tout appel d'outil qui aurait demandé une permission.

772 777 

773Claude décide si les sous-agents s'exécutent au premier plan ou en arrière-plan en fonction de la tâche. Vous pouvez également :778{/* min-version: 2.1.198 */}À partir de la v2.1.198, les sous-agents s'exécutent en arrière-plan par défaut. Claude exécute un sous-agent au premier plan lorsqu'il a besoin du résultat avant de continuer. Le changement par défaut détermine où un sous-agent s'exécute, pas ce qu'il est autorisé à faire : les sous-agents en arrière-plan affichent toujours chaque invite de permission dans votre session principale. Avant la v2.1.198, Claude choisissait entre le premier plan et l'arrière-plan en fonction de la tâche.

774 779 

775* Demander à Claude de « run this in the background »780Vous pouvez également diriger cela vous-même :

781 

782* Demander à Claude d'exécuter une tâche en arrière-plan ou au premier plan

776* Appuyer sur **Ctrl+B** pour mettre une tâche en arrière-plan783* Appuyer sur **Ctrl+B** pour mettre une tâche en arrière-plan

777 784 

778Pour désactiver toute la fonctionnalité de tâche en arrière-plan, définissez la variable d'environnement `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` sur `1`. Consultez [Variables d'environnement](/fr/env-vars).785Pour désactiver toute la fonctionnalité de tâche en arrière-plan, définissez la variable d'environnement `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` sur `1`. Consultez [Variables d'environnement](/fr/env-vars).

779 786 

780Lorsque [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) est défini sur `1`, chaque génération de sous-agent s'exécute en arrière-plan indépendamment du champ `background`. Les invites de permission de ces sous-agents en arrière-plan s'affichent dans votre session principale comme décrit ci-dessus.787Lorsque [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) est défini sur `1`, chaque génération de sous-agent s'exécute en arrière-plan et le champ frontmatter `background` n'a aucun effet, car le mode fork supprime le paramètre `run_in_background` de l'outil `Agent`. `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` a la priorité sur le mode fork et maintient les générations de sous-agent au premier plan.

788 

789<h3 id="api-errors-in-subagents">

790 Erreurs API dans les sous-agents

791</h3>

792 

793{/* min-version: 2.1.199 */}À partir de la v2.1.199, un sous-agent dont l'exécution se termine sur une erreur API, comme une limite d'utilisation ou une erreur serveur répétée, signale cet échec à Claude au lieu de retourner le texte d'erreur comme s'il s'agissait des résultats du sous-agent. Ce que Claude reçoit dépend de l'endroit où le sous-agent s'est exécuté :

794 

795* **Premier plan** : si une limite de débit, une surcharge ou une erreur serveur coupe un sous-agent qui a déjà produit une sortie, l'outil Agent retourne cette sortie partielle avec une note indiquant que le sous-agent a été coupé et n'a pas terminé sa tâche. Sinon, l'appel d'outil échoue avec [`Agent terminated early due to an API error`](/fr/errors#agent-terminated-early-due-to-an-api-error), suivi du détail de l'erreur.

796* **Arrière-plan** : le sous-agent est marqué comme échoué, et le message que Claude reçoit lorsqu'il se termine nomme l'erreur API et inclut la dernière sortie du sous-agent, de sorte que le travail partiel n'est pas perdu.

797 

798Une fois que l'erreur API sous-jacente est résolue, demandez à Claude de réessayer la tâche ou de [reprendre le sous-agent](#resume-subagents).

781 799 

782<h3 id="common-patterns">800<h3 id="common-patterns">

783 Modèles courants801 Modèles courants


850 868 

851Un sous-agent imbriqué est configuré de la même manière qu'un sous-agent de niveau supérieur et se résout à partir des mêmes [portées](#choose-the-subagent-scope).869Un sous-agent imbriqué est configuré de la même manière qu'un sous-agent de niveau supérieur et se résout à partir des mêmes [portées](#choose-the-subagent-scope).

852 870 

853Le panneau de sous-agent sous l'entrée d'invite affiche l'arborescence complète : chaque ligne affiche un nombre `(+N)` de descendants, et {/* min-version: 2.1.193 */}à partir de la v2.1.193, l'ouverture d'une ligne affiche les frères et sœurs de ce sous-agent et les enfants directs avec un chemin de retour à `main`. L'onglet En cours d'exécution dans [`/agents`](#use-the-%2Fagents-command) répertorie les sous-agents en cours d'exécution sous forme de liste plate.871Le panneau de sous-agent sous l'entrée d'invite affiche l'arborescence complète : chaque ligne affiche un nombre `(+N)` de descendants, et {/* min-version: 2.1.193 */}à partir de la v2.1.193, l'ouverture d'une ligne affiche les frères et sœurs de ce sous-agent et les enfants directs avec un chemin de retour à `main`.

854 872 

855La profondeur est comptée comme le nombre de niveaux de sous-agent en dessous de la conversation principale, indépendamment du fait que chaque niveau s'exécute en [premier plan ou en arrière-plan](#run-subagents-in-foreground-or-background). Un sous-agent à la profondeur cinq ne reçoit pas l'outil Agent et ne peut pas générer d'autres. La limite est fixe et non configurable.873La profondeur est comptée comme le nombre de niveaux de sous-agent en dessous de la conversation principale, indépendamment du fait que chaque niveau s'exécute en [premier plan ou en arrière-plan](#run-subagents-in-foreground-or-background). Un sous-agent à la profondeur cinq ne reçoit pas l'outil Agent et ne peut pas générer d'autres. La limite est fixe et non configurable.

856 874 


892 910 

893Lorsqu'un sous-agent se termine, Claude reçoit son ID d'agent. Les agents Explore et Plan intégrés sont ponctuels et ne retournent pas d'ID d'agent, donc ils ne peuvent pas être repris ; utilisez `general-purpose` ou un sous-agent personnalisé lorsque vous avez besoin de continuer le travail.911Lorsqu'un sous-agent se termine, Claude reçoit son ID d'agent. Les agents Explore et Plan intégrés sont ponctuels et ne retournent pas d'ID d'agent, donc ils ne peuvent pas être repris ; utilisez `general-purpose` ou un sous-agent personnalisé lorsque vous avez besoin de continuer le travail.

894 912 

895Claude utilise l'outil `SendMessage` avec l'ID de l'agent comme champ `to` pour le reprendre. L'outil `SendMessage` est toujours disponible pour reprendre les sous-agents par ID d'agent ou par nom. Les messages de protocole d'équipe structurés tels que `shutdown_request` et `plan_approval_response` nécessitent que les [équipes d'agents](/fr/agent-teams) soient activées.913Claude utilise l'outil `SendMessage` avec l'ID de l'agent ou le nom comme champ `to` pour le reprendre. `SendMessage` ne nécessite pas que les [équipes d'agents](/fr/agent-teams) soient activées ; seuls les messages de protocole d'équipe structurés tels que `shutdown_request` et `plan_approval_response` le font.

896 914 

897Pour reprendre un sous-agent, demandez à Claude de continuer le travail précédent :915Pour reprendre un sous-agent, demandez à Claude de continuer le travail précédent :

898 916 


906 924 

907Si un sous-agent arrêté reçoit un `SendMessage`, il se reprend automatiquement en arrière-plan sans nécessiter une nouvelle invocation `Agent`.925Si un sous-agent arrêté reçoit un `SendMessage`, il se reprend automatiquement en arrière-plan sans nécessiter une nouvelle invocation `Agent`.

908 926 

927{/* min-version: 2.1.199 */}À partir de la v2.1.199, `SendMessage` vérifie qu'un nom fait toujours référence au même agent qu'il a atteint plus tôt dans la conversation. Si un agent plus récent a pris le nom, comme un sous-agent en arrière-plan réengendré qui l'a réutilisé, Claude Code refuse l'envoi plutôt que de le livrer au mauvais agent, et l'erreur signale quel agent le nom atteint maintenant pour que Claude puisse le rediriger. Pour atteindre l'agent antérieur pendant qu'il s'exécute toujours, Claude l'adresse par l'ID d'agent de son résultat de génération. La vérification est limitée à la conversation actuelle et se réinitialise sur `/clear`.

928 

929{/* min-version: 2.1.198 */}À partir de la v2.1.198, un sous-agent traite les messages de l'agent qui l'a lancé comme une direction de tâche normale, y compris les corrections de cours en cours de tâche, et agit en fonction de ceux-ci dans ses propres paramètres de permission. Deux limites tiennent toujours indépendamment de qui a envoyé le message : aucun message d'aucun agent ne compte comme votre approbation pour une invite de permission en attente, et aucun message d'agent ne peut modifier les paramètres de permission d'un sous-agent, `CLAUDE.md`, ou la configuration. Seul le système de permission ou vos propres messages peuvent accorder l'approbation.

930 

909Vous pouvez également demander à Claude l'ID d'agent si vous souhaitez le référencer explicitement, ou trouver les ID dans les fichiers de transcription à `~/.claude/projects/{project}/{sessionId}/subagents/`. Chaque transcription est stockée sous la forme `agent-{agentId}.jsonl`.931Vous pouvez également demander à Claude l'ID d'agent si vous souhaitez le référencer explicitement, ou trouver les ID dans les fichiers de transcription à `~/.claude/projects/{project}/{sessionId}/subagents/`. Chaque transcription est stockée sous la forme `agent-{agentId}.jsonl`.

910 932 

911Les transcriptions de sous-agent persistent indépendamment de la conversation principale :933Les transcriptions de sous-agent persistent indépendamment de la conversation principale :


973| `x` | Ignorer un fork terminé ou arrêter un fork en cours d'exécution |995| `x` | Ignorer un fork terminé ou arrêter un fork en cours d'exécution |

974| `Échap` | Retourner le focus à l'entrée d'invite |996| `Échap` | Retourner le focus à l'entrée d'invite |

975 997 

998Avec la transcription d'un fork ou d'un sous-agent ouverte, les messages de suivi et les [skills](/fr/skills) vont à cet agent, mais les commandes intégrées s'exécutent toujours dans votre conversation principale. {/* min-version: 2.1.199 */}À partir de v2.1.199, taper `/model` ou `/fast` dans cette vue affiche un avis indiquant que cela change le modèle ou le mode rapide de la conversation principale, et non celui de l'agent visualisé, au lieu de l'exécuter silencieusement.

999 

976<h3 id="how-forks-differ-from-named-subagents">1000<h3 id="how-forks-differ-from-named-subagents">

977 Comment les forks diffèrent des sous-agents nommés1001 Comment les forks diffèrent des sous-agents nommés

978</h3>1002</h3>


1016 Examinateur de code1040 Examinateur de code

1017</h3>1041</h3>

1018 1042 

1019Un sous-agent en lecture seule qui examine le code sans le modifier. Cet exemple montre comment concevoir un sous-agent ciblé avec un accès limité aux outils (pas d'Edit ou Write) et une invite détaillée qui spécifie exactement ce qu'il faut chercher et comment formater la sortie.1043Un sous-agent en lecture seule qui examine le code sans le modifier. Cet exemple montre comment concevoir un sous-agent ciblé avec un accès limité aux outils qui exclut Edit et Write, et une invite détaillée qui spécifie exactement ce qu'il faut chercher et comment formater la sortie.

1020 1044 

1021```markdown theme={null}1045```markdown theme={null}

1022---1046---

Details

196 196 

197* [Claude for Teams ou Enterprise](/fr/authentication#claude-for-teams-or-enterprise)197* [Claude for Teams ou Enterprise](/fr/authentication#claude-for-teams-or-enterprise)

198* [Anthropic Console](/fr/authentication#claude-console-authentication)198* [Anthropic Console](/fr/authentication#claude-console-authentication)

199* [Passerelle d'applications Claude](/fr/claude-apps-gateway), une passerelle auto-hébergée qui ajoute la connexion IdP devant Amazon Bedrock, Google Vertex AI, Microsoft Foundry ou l'API Anthropic199* [Passerelle d'applications Claude](/fr/claude-apps-gateway), une passerelle auto-hébergée qui ajoute la connexion IdP devant Amazon Bedrock, Claude Platform on AWS, Google Vertex AI, Microsoft Foundry ou l'API Anthropic

200* [Amazon Bedrock](/fr/amazon-bedrock)200* [Amazon Bedrock](/fr/amazon-bedrock)

201* [Claude Platform on AWS](/fr/claude-platform-on-aws)201* [Claude Platform on AWS](/fr/claude-platform-on-aws)

202* [Google Vertex AI](/fr/google-vertex-ai)202* [Google Vertex AI](/fr/google-vertex-ai)

tools-reference.md +21 −11

Details

11Pour ajouter des outils personnalisés, connectez un [serveur MCP](/fr/mcp). Pour étendre Claude avec des flux de travail réutilisables basés sur des invites, écrivez une [skill](/fr/skills), qui s'exécute via l'outil `Skill` existant plutôt que d'ajouter une nouvelle entrée d'outil.11Pour ajouter des outils personnalisés, connectez un [serveur MCP](/fr/mcp). Pour étendre Claude avec des flux de travail réutilisables basés sur des invites, écrivez une [skill](/fr/skills), qui s'exécute via l'outil `Skill` existant plutôt que d'ajouter une nouvelle entrée d'outil.

12 12 

13| Outil | Description | Permission requise |13| Outil | Description | Permission requise |

14| :--------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------- |14| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------- |

15| `Agent` | Crée un [subagent](/fr/sub-agents) avec sa propre fenêtre de contexte pour gérer une tâche. Voir [comportement de l'outil Agent](#agent-tool-behavior) | Non |15| `Agent` | Crée un [subagent](/fr/sub-agents) avec sa propre fenêtre de contexte pour gérer une tâche. Voir [comportement de l'outil Agent](#agent-tool-behavior) | Non |

16| `Artifact` | Publie un fichier HTML ou Markdown en tant qu'[artifact](/fr/artifacts) : une page interactive privée sur claude.ai. Sur les plans Team et Enterprise, vous pouvez le partager au sein de votre organisation. {/* plan-availability: feature=artifacts plans=pro,max,team,enterprise providers=anthropic */}Nécessite un plan Pro, Max, Team ou Enterprise et une authentification `/login` ; voir [Disponibilité](/fr/artifacts#availability) | Oui |16| `Artifact` | Publie un fichier HTML ou Markdown en tant qu'[artifact](/fr/artifacts) : une page interactive privée sur claude.ai. Sur les plans Team et Enterprise, vous pouvez le partager au sein de votre organisation. {/* plan-availability: feature=artifacts plans=pro,max,team,enterprise providers=anthropic */}Nécessite un plan Pro, Max, Team ou Enterprise et une authentification `/login` ; voir [Disponibilité](/fr/artifacts#availability) | Oui |

17| `AskUserQuestion` | Pose des questions à choix multiples pour recueillir les exigences ou clarifier l'ambiguïté | Non |17| `AskUserQuestion` | Pose des questions à choix multiples pour recueillir les exigences ou clarifier l'ambiguïté. {/* min-version: 2.1.198 */}À partir de v2.1.198, si vous ne répondez pas dans les 60 secondes, la boîte de dialogue se ferme d'elle-même : elle soumet toutes les options que vous aviez déjà sélectionnées et indique à Claude que vous êtes peut-être absent de votre clavier, afin que Claude procède selon son propre jugement et puisse poser à nouveau la question plus tard. Un compte à rebours apparaît pour les 20 dernières secondes. N'importe quelle frappe de touche maintient la boîte de dialogue ouverte, tout comme une fenêtre active sur les terminaux qui signalent le focus. Définissez la variable d'environnement [`CLAUDE_AFK_TIMEOUT_MS`](/fr/env-vars#variables) pour modifier la durée d'attente de Claude Code, ou à une valeur importante comme `86400000`, 24 heures, pour garder les questions ouvertes pendant que vous êtes absent. Ce délai d'expiration s'applique uniquement aux questions à choix multiples de `AskUserQuestion` ; les invites de permission, y compris l'approbation du plan, ne se résolvent jamais automatiquement en cas d'inactivité | Non |

18| `Bash` | Exécute des commandes shell dans votre environnement. Voir [comportement de l'outil Bash](#bash-tool-behavior) | Oui |18| `Bash` | Exécute des commandes shell dans votre environnement. Voir [comportement de l'outil Bash](#bash-tool-behavior) | Oui |

19| `CronCreate` | Planifie une invite récurrente ou ponctuelle dans la session actuelle. Les tâches sont limitées à la session et restaurées sur `--resume` ou `--continue` si non expirées. Voir [tâches planifiées](/fr/scheduled-tasks) | Non |19| `CronCreate` | Planifie une invite récurrente ou ponctuelle dans la session actuelle. Les tâches sont limitées à la session et restaurées sur `--resume` ou `--continue` si non expirées. Voir [tâches planifiées](/fr/scheduled-tasks) | Non |

20| `CronDelete` | Annule une tâche planifiée par ID | Non |20| `CronDelete` | Annule une tâche planifiée par ID | Non |


35| `Read` | Lit le contenu des fichiers. Voir [comportement de l'outil Read](#read-tool-behavior) | Non |35| `Read` | Lit le contenu des fichiers. Voir [comportement de l'outil Read](#read-tool-behavior) | Non |

36| `ReadMcpResourceTool` | Lit une ressource MCP spécifique par URI | Non |36| `ReadMcpResourceTool` | Lit une ressource MCP spécifique par URI | Non |

37| `RemoteTrigger` | Crée, met à jour, exécute et liste les [Routines](/fr/routines) sur claude.ai. Soutient la commande `/schedule`. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Les Routines vivent sur claude.ai et nécessitent un plan Pro, Max, Team ou Enterprise, donc cet outil n'est pas accessible depuis Amazon Bedrock, Google Vertex AI, ou Microsoft Foundry | Non |37| `RemoteTrigger` | Crée, met à jour, exécute et liste les [Routines](/fr/routines) sur claude.ai. Soutient la commande `/schedule`. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Les Routines vivent sur claude.ai et nécessitent un plan Pro, Max, Team ou Enterprise, donc cet outil n'est pas accessible depuis Amazon Bedrock, Google Vertex AI, ou Microsoft Foundry | Non |

38| `ReportFindings` | Signale les résultats de l'examen du code sous forme de liste structurée, avec un fichier, un résumé et un scénario d'échec par résultat, afin que Claude Code puisse les afficher au lieu de les imprimer sous forme de texte. Claude l'appelle quand les instructions actives d'examen du code le lui demandent. {/* min-version: 2.1.196 */}Nécessite Claude Code v2.1.196 ou ultérieur | Non |38| `ReportFindings` | Signale les résultats de l'examen du code sous forme de liste structurée, avec un fichier, un résumé et un scénario d'échec par résultat, afin que Claude Code puisse les afficher au lieu de les imprimer sous forme de texte. Claude l'appelle quand les instructions actives d'examen du code le lui demandent. {/* min-version: 2.1.196 */}Nécessite Claude Code v2.1.196 ou ultérieur. {/* min-version: 2.1.199 */}À partir de v2.1.199, un résultat peut également porter une étiquette `category` optionnelle, telle que `correctness` ou `test-coverage`, affichée à côté de l'emplacement du fichier dans la liste rendue | Non |

39| `ScheduleWakeup` | Reprogramme la prochaine itération d'une [`/loop` auto-rythmée](/fr/scheduled-tasks#let-claude-choose-the-interval). Claude l'appelle à la fin de chaque itération pour choisir quand la prochaine s'exécute, entre une minute et une heure ; vous ne l'appelez pas directement. Le réveil en attente apparaît dans `session_crons` dans [entrée du hook Stop](/fr/hooks#stop-input). {/* plan-availability: feature=loop-dynamic providers=anthropic */}Non disponible sur Amazon Bedrock, Google Vertex AI, ou Microsoft Foundry, où une invite `/loop` sans intervalle s'exécute selon un calendrier fixe à la place | Non |39| `ScheduleWakeup` | Reprogramme la prochaine itération d'une [`/loop` auto-rythmée](/fr/scheduled-tasks#let-claude-choose-the-interval). Claude l'appelle à la fin de chaque itération pour choisir quand la prochaine s'exécute, entre une minute et une heure ; vous ne l'appelez pas directement. Le réveil en attente apparaît dans `session_crons` dans [entrée du hook Stop](/fr/hooks#stop-input). {/* plan-availability: feature=loop-dynamic providers=anthropic */}Non disponible sur Amazon Bedrock, Google Vertex AI, ou Microsoft Foundry, où une invite `/loop` sans intervalle s'exécute selon un calendrier fixe à la place | Non |

40| `SendMessage` | Envoie un message à un coéquipier de l'[équipe d'agents](/fr/agent-teams), ou [reprend un subagent](/fr/sub-agents#resume-subagents) par son ID d'agent. Les subagents arrêtés se reprennent automatiquement en arrière-plan. Les messages de protocole d'équipe structurés nécessitent des équipes d'agents | Non |40| `SendMessage` | Envoie un message à un coéquipier de l'[équipe d'agents](/fr/agent-teams), ou [reprend un subagent](/fr/sub-agents#resume-subagents) par son ID d'agent ou son nom. Les subagents arrêtés se reprennent automatiquement en arrière-plan. Les messages de protocole d'équipe structurés nécessitent des équipes d'agents. Un destinataire ne traite jamais un message d'un autre agent comme votre consentement ou approbation. {/* min-version: 2.1.198 */}À partir de v2.1.198, un subagent traite un message de l'agent qui l'a lancé comme une direction de tâche normale plutôt que comme une demande entre pairs. {/* min-version: 2.1.199 */}À partir de v2.1.199, un envoi à un nom qui se résout maintenant à un agent différent de celui auquel il s'est résolu plus tôt dans la conversation est refusé au lieu d'être livré ; voir [Reprendre les subagents](/fr/sub-agents#resume-subagents) | Non |

41| `SendUserFile` | Envoie des fichiers de la session vers vous avec une légende optionnelle, afin qu'un rapport généré, un diagramme, une capture d'écran, ou un artefact construit atteigne votre appareil au lieu de seulement être mentionné dans la transcription. {/* min-version: 2.1.196 */}À partir de v2.1.196, l'entrée optionnelle `display` contrôle la présentation : `render` ouvre le fichier en ligne dans le client, `attach` affiche une carte de téléchargement uniquement, et quand elle n'est pas définie, le client décide selon le type de fichier. Disponible quand un client [Remote Control](/fr/remote-control) est connecté ou la session s'exécute dans un environnement cloud géré tel que [Claude Code sur le web](/fr/claude-code-on-the-web). La livraison s'effectue via l'infrastructure hébergée par Anthropic, donc l'outil n'est pas disponible sur Amazon Bedrock, Google Vertex AI, ou Microsoft Foundry | Non |41| `SendUserFile` | Envoie des fichiers de la session vers vous avec une légende optionnelle, afin qu'un rapport généré, un diagramme, une capture d'écran, ou un artefact construit atteigne votre appareil au lieu de seulement être mentionné dans la transcription. {/* min-version: 2.1.196 */}À partir de v2.1.196, l'entrée optionnelle `display` contrôle la présentation : `render` ouvre le fichier en ligne dans le client, `attach` affiche une carte de téléchargement uniquement, et quand elle n'est pas définie, le client décide selon le type de fichier. Disponible quand un client [Remote Control](/fr/remote-control) est connecté ou la session s'exécute dans un environnement cloud géré tel que [Claude Code sur le web](/fr/claude-code-on-the-web). La livraison s'effectue via l'infrastructure hébergée par Anthropic, donc l'outil n'est pas disponible sur Amazon Bedrock, Google Vertex AI, ou Microsoft Foundry | Non |

42| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}Télécharge `ONBOARDING.md` et retourne un lien de partage que les coéquipiers peuvent ouvrir dans Claude Code. Appelé depuis `/team-onboarding` après que le guide soit écrit. Disponible pour les abonnés claude.ai sur les plans Pro, Max, Team et Enterprise | Oui |42| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}Télécharge `ONBOARDING.md` et retourne un lien de partage que les coéquipiers peuvent ouvrir dans Claude Code. Appelé depuis `/team-onboarding` après que le guide soit écrit. Disponible pour les abonnés claude.ai sur les plans Pro, Max, Team et Enterprise | Oui |

43| `Skill` | Exécute une [skill](/fr/skills#control-who-invokes-a-skill) dans la conversation principale | Oui |43| `Skill` | Exécute une [skill](/fr/skills#control-who-invokes-a-skill) dans la conversation principale | Oui |


45| `TaskGet` | Récupère les détails complets d'une tâche spécifique | Non |45| `TaskGet` | Récupère les détails complets d'une tâche spécifique | Non |

46| `TaskList` | Liste toutes les tâches avec leur statut actuel | Non |46| `TaskList` | Liste toutes les tâches avec leur statut actuel | Non |

47| `TaskOutput` | (Obsolète) Récupère la sortie d'une tâche en arrière-plan. Préférez `Read` sur le chemin du fichier de sortie de la tâche | Non |47| `TaskOutput` | (Obsolète) Récupère la sortie d'une tâche en arrière-plan. Préférez `Read` sur le chemin du fichier de sortie de la tâche | Non |

48| `TaskStop` | Arrête une tâche en arrière-plan en cours d'exécution par ID | Non |48| `TaskStop` | Arrête une tâche en arrière-plan en cours d'exécution par ID. {/* min-version: 2.1.198 */}À partir de v2.1.198, accepte également un [coéquipier de l'équipe d'agents](/fr/agent-teams) ou un agent d'arrière-plan nommé par ID d'agent ou nom | Non |

49| `TaskUpdate` | Met à jour le statut de la tâche, les dépendances, les détails, ou supprime les tâches | Non |49| `TaskUpdate` | Met à jour le statut de la tâche, les dépendances, les détails, ou supprime les tâches | Non |

50| `TodoWrite` | {/* min-version: 2.1.142 */}Gère la liste de contrôle des tâches de la session. Désactivé par défaut à partir de v2.1.142 en faveur de `TaskCreate`, `TaskGet`, `TaskList`, et `TaskUpdate`. Définissez `CLAUDE_CODE_ENABLE_TASKS=0` pour réactiver | Non |50| `TodoWrite` | {/* min-version: 2.1.142 */}Gère la liste de contrôle des tâches de la session. Désactivé par défaut à partir de v2.1.142 en faveur de `TaskCreate`, `TaskGet`, `TaskList`, et `TaskUpdate`. Définissez `CLAUDE_CODE_ENABLE_TASKS=0` pour réactiver | Non |

51| `ToolSearch` | Recherche et charge les outils différés quand la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) est activée | Non |51| `ToolSearch` | Recherche et charge les outils différés quand la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) est activée | Non |

52| `WaitForMcpServers` | {/* min-version: 2.1.142 */}Attend un ou plusieurs [serveurs MCP](/fr/mcp) qui se connectent toujours en arrière-plan, afin qu'une demande puisse utiliser leurs outils sans redémarrer la session. Claude l'appelle quand un serveur nécessaire n'est pas encore connecté. N'apparaît que quand la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) est désactivée, puisque `ToolSearch` gère l'attente quand elle est activée | Non |52| `WaitForMcpServers` | Attend un ou plusieurs [serveurs MCP](/fr/mcp) qui se connectent toujours en arrière-plan, afin qu'une demande puisse utiliser leurs outils sans redémarrer la session. Claude l'appelle quand un serveur nécessaire n'est pas encore connecté. N'apparaît que quand la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) est désactivée, puisque `ToolSearch` gère l'attente quand elle est activée | Non |

53| `WebFetch` | Récupère le contenu d'une URL spécifiée. Voir [comportement de l'outil WebFetch](#webfetch-tool-behavior) | Oui |53| `WebFetch` | Récupère le contenu d'une URL spécifiée. Voir [comportement de l'outil WebFetch](#webfetch-tool-behavior) | Oui |

54| `WebSearch` | Effectue des recherches web. Voir [comportement de l'outil WebSearch](#websearch-tool-behavior) | Oui |54| `WebSearch` | Effectue des recherches web. Voir [comportement de l'outil WebSearch](#websearch-tool-behavior) | Oui |

55| `Workflow` | Exécute un [flux de travail dynamique](/fr/workflows) : un script qui orchestre de nombreux subagents en arrière-plan et retourne un résultat consolidé | Oui |55| `Workflow` | Exécute un [flux de travail dynamique](/fr/workflows) : un script qui orchestre de nombreux subagents en arrière-plan et retourne un résultat consolidé | Oui |


91 Comportement de l'outil Agent91 Comportement de l'outil Agent

92</h2>92</h2>

93 93 

94L'outil Agent crée un subagent dans une fenêtre de contexte séparée. Le subagent travaille sur sa tâche de manière autonome, puis retourne un seul résultat textuel à la conversation parent. Le parent ne voit pas les appels d'outils intermédiaires ou les sorties du subagent, seulement ce résultat final. Pour limiter le nombre de tours qu'un subagent exécute, définissez `maxTurns` dans la [définition du subagent](/fr/sub-agents#supported-frontmatter-fields).94L'outil Agent crée un subagent dans une fenêtre de contexte séparée. Le subagent travaille sur sa tâche de manière autonome, puis retourne un seul résultat textuel à la conversation parent. Le parent ne voit pas les appels d'outils intermédiaires ou les sorties du subagent, seulement ce résultat final.

95 

96Pour limiter le nombre de tours qu'un subagent exécute, définissez `maxTurns` dans la [définition du subagent](/fr/sub-agents#supported-frontmatter-fields).

95 97 

96Le même outil Agent lance également les [subagents forked](/fr/sub-agents#fork-the-current-conversation) quand le mode fork est activé. Un fork hérite de la conversation parent complète au lieu de commencer à zéro, s'exécute toujours en arrière-plan, et affiche toujours les invites de permission dans votre terminal. Le reste de cette section décrit les subagents nommés.98Le même outil Agent lance également les [subagents forked](/fr/sub-agents#fork-the-current-conversation) quand le mode fork est activé. Un fork hérite de la conversation parent complète au lieu de commencer à zéro, s'exécute toujours en arrière-plan, et affiche toujours les invites de permission dans votre terminal. Le reste de cette section décrit les subagents nommés.

97 99 


102* **`disallowedTools` uniquement** : le subagent obtient chaque outil parent sauf ceux listés.104* **`disallowedTools` uniquement** : le subagent obtient chaque outil parent sauf ceux listés.

103* **Les deux définis** : `disallowedTools` a la priorité. Un outil listé dans les deux est supprimé.105* **Les deux définis** : `disallowedTools` a la priorité. Un outil listé dans les deux est supprimé.

104 106 

105Lancer le subagent ne demande pas lui-même la permission. Les appels d'outils du subagent sont vérifiés par rapport à vos règles de permission au fur et à mesure qu'il s'exécute :107Lancer le subagent ne demande pas lui-même la permission. Claude Code vérifie les appels d'outils du subagent par rapport à vos règles de permission au fur et à mesure qu'il s'exécute.

108 

109{/* min-version: 2.1.198 */}À partir de la v2.1.198, les subagents s'exécutent en arrière-plan par défaut ; Claude en exécute un au premier plan quand il a besoin du résultat avant de continuer.

106 110 

107* **Les subagents au premier plan** affichent les mêmes invites de permission que vous verriez dans la conversation principale, au moment où chaque appel d'outil se produit.111* **Les subagents au premier plan** affichent les mêmes invites de permission que vous verriez dans la conversation principale, au moment où chaque appel d'outil se produit.

108* **Les subagents en arrière-plan** {/* min-version: 2.1.186 */}affichent les invites de permission dans votre session principale à partir de la v2.1.186. L'invite indique quel subagent demande, et appuyer sur Échap refuse cet appel d'outil unique sans arrêter le subagent. Avant la v2.1.186, les subagents en arrière-plan refusaient automatiquement tout appel d'outil qui demanderait autrement une permission et continuaient sans cet outil.112* **Les subagents en arrière-plan** {/* min-version: 2.1.186 */}affichent les invites de permission dans votre session principale à partir de la v2.1.186. L'invite indique quel subagent demande, et appuyer sur Échap refuse cet appel d'outil unique sans arrêter le subagent. Avant la v2.1.186, les subagents en arrière-plan refusaient automatiquement tout appel d'outil qui demanderait autrement une permission et continuaient sans cet outil.


266 Outil PowerShell270 Outil PowerShell

267</h2>271</h2>

268 272 

269L'outil PowerShell permet à Claude d'exécuter des commandes PowerShell nativement. Sur Windows, cela signifie que les commandes s'exécutent dans PowerShell au lieu d'être acheminées via Git Bash. Sur Windows sans Git Bash, l'outil est activé automatiquement. Sur Windows avec Git Bash installé, l'outil est en déploiement progressif. Sur Linux, macOS et WSL, l'outil est opt-in.273L'outil PowerShell permet à Claude d'exécuter des commandes PowerShell nativement. Sur Windows, cela signifie que les commandes s'exécutent dans PowerShell au lieu d'être acheminées via Git Bash. La disponibilité de l'outil dépend de votre plateforme :

274 

275* **Windows sans Git Bash** : l'outil est activé automatiquement.

276* **Windows avec Git Bash installé** : l'outil est en déploiement progressif.

277* **Linux, macOS et WSL** : l'outil est opt-in.

270 278 

271<h3 id="enable-the-powershell-tool">279<h3 id="enable-the-powershell-tool">

272 Activer l'outil PowerShell280 Activer l'outil PowerShell


346 354 

347Une règle explicite `WebFetch(domain:...)` en mode `deny`, `ask` ou `allow` prend la priorité sur l'ensemble préapprouvé, donc vous pouvez bloquer un domaine préapprouvé ou exiger une demande pour celui-ci.355Une règle explicite `WebFetch(domain:...)` en mode `deny`, `ask` ou `allow` prend la priorité sur l'ensemble préapprouvé, donc vous pouvez bloquer un domaine préapprouvé ou exiger une demande pour celui-ci.

348 356 

349WebFetch définit un en-tête `User-Agent` commençant par `Claude-User`, et un en-tête `Accept` qui préfère Markdown à HTML afin que les serveurs qui supportent la négociation de contenu puissent retourner Markdown directement. Les [règles de réseau Sandbox](/fr/sandboxing) sont configurées séparément, donc un domaine que vous voulez qu'un processus sandboxé atteigne a toujours besoin d'une règle de permission sandbox explicite.357WebFetch définit un en-tête `User-Agent` commençant par `Claude-User`, et un en-tête `Accept` qui préfère Markdown à HTML afin que les serveurs qui supportent la négociation de contenu puissent retourner Markdown directement.

358 

359Vous configurez les [règles de réseau sandbox](/fr/sandboxing) séparément, donc un domaine que vous voulez qu'un processus sandboxé atteigne a toujours besoin d'une règle de permission sandbox explicite.

350 360 

351<h2 id="websearch-tool-behavior">361<h2 id="websearch-tool-behavior">

352 Comportement de l'outil WebSearch362 Comportement de l'outil WebSearch


361Les règles de permission WebSearch ne prennent pas de spécificateur. Une entrée `WebSearch` nu dans `allow` ou `deny` est la seule forme.371Les règles de permission WebSearch ne prennent pas de spécificateur. Une entrée `WebSearch` nu dans `allow` ou `deny` est la seule forme.

362 372 

363<Note>373<Note>

364 WebSearch est disponible sur l'API Claude et Microsoft Foundry. Sur Google Cloud Vertex AI, il fonctionne avec les modèles Claude 4, y compris Opus, Sonnet et Haiku. Amazon Bedrock n'expose pas l'outil de recherche web côté serveur.374 WebSearch est disponible sur l'API Claude, [Claude Platform on AWS](/fr/claude-platform-on-aws), et Microsoft Foundry. Sur Google Cloud Vertex AI, il fonctionne avec les modèles Claude 4 et versions ultérieures, y compris Opus, Sonnet et Haiku. Amazon Bedrock n'expose pas l'outil de recherche web côté serveur.

365</Note>375</Note>

366 376 

367<h2 id="write-tool-behavior">377<h2 id="write-tool-behavior">

worktrees.md +2 −0

Details

36 36 

37Vous pouvez également demander à Claude de « travailler dans un worktree » pendant une session, et il en créera un avec l'outil [`EnterWorktree`](/fr/tools-reference). Une fois dans un worktree, Claude peut basculer directement vers un autre sous `.claude/worktrees/` en appelant `EnterWorktree` avec le chemin cible. Le worktree précédent reste sur le disque intact.37Vous pouvez également demander à Claude de « travailler dans un worktree » pendant une session, et il en créera un avec l'outil [`EnterWorktree`](/fr/tools-reference). Une fois dans un worktree, Claude peut basculer directement vers un autre sous `.claude/worktrees/` en appelant `EnterWorktree` avec le chemin cible. Le worktree précédent reste sur le disque intact.

38 38 

39{/* min-version: 2.1.198 */}À partir de la v2.1.198, l'entrée ou la sortie d'un worktree déplace également la transcription de session vers le stockage de projet de ce répertoire, de la même manière que [`/cd`](/fr/commands) le fait, donc `/desktop` et `--resume` trouvent la session là-bas par la suite. Les worktrees créés par un hook [`WorktreeCreate`](#non-git-version-control) sont exclus et conservent la transcription au répertoire de lancement.

40 

39Avant d'utiliser `--worktree` de manière interactive dans un répertoire pour la première fois, acceptez la boîte de dialogue de confiance de l'espace de travail en exécutant `claude` une fois dans ce répertoire. Si la confiance n'a pas encore été acceptée, `--worktree` se termine avec une erreur et vous invite à exécuter `claude` dans le répertoire en premier. Les exécutions non interactives avec `-p` ignorent la [vérification de confiance](/fr/security), donc `claude -p --worktree` procède sans elle.41Avant d'utiliser `--worktree` de manière interactive dans un répertoire pour la première fois, acceptez la boîte de dialogue de confiance de l'espace de travail en exécutant `claude` une fois dans ce répertoire. Si la confiance n'a pas encore été acceptée, `--worktree` se termine avec une erreur et vous invite à exécuter `claude` dans le répertoire en premier. Les exécutions non interactives avec `-p` ignorent la [vérification de confiance](/fr/security), donc `claude -p --worktree` procède sans elle.

40 42 

41<Tip>43<Tip>