SpyBara
Go Premium

Documentation 2026-10-08 22:58 UTC to 2026-10-09 03:01 UTC

36 files changed +246 −64. View all changes and history on the product overview
2026
Fri 9 03:59 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

216| Option | Ce qu'elle contrôle | Valeur par défaut |216| Option | Ce qu'elle contrôle | Valeur par défaut |

217| :- | :- | :- |217| :- | :- | :- |

218| Tours max (`max_turns` / `maxTurns`) | Aller-retours maximum d'utilisation d'outils | Pas de limite |218| Tours max (`max_turns` / `maxTurns`) | Aller-retours maximum d'utilisation d'outils | Pas de limite |

219| Budget max (`max_budget_usd` / `maxBudgetUsd`) | Coût maximum avant arrêt | Pas de limite |219| Budget max (`max_budget_usd` / `maxBudgetUsd`) | Dépense estimée à partir de laquelle la boucle s'arrête | Pas de limite |

220 220 

221Lorsque l'une de ces limites est atteinte, le SDK retourne un `ResultMessage` avec un sous-type d'erreur correspondant (`error_max_turns` ou `error_max_budget_usd`). Voir [Gérer le résultat](#handle-the-result) pour savoir comment vérifier ces sous-types et [`ClaudeAgentOptions`](/docs/fr/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/fr/agent-sdk/typescript#options) pour la syntaxe.221Lorsque l'une de ces limites est atteinte, le SDK retourne un `ResultMessage` avec un sous-type d'erreur correspondant (`error_max_turns` ou `error_max_budget_usd`). Voir [Gérer le résultat](#handle-the-result) pour savoir comment vérifier ces sous-types et [`ClaudeAgentOptions`](/docs/fr/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/fr/agent-sdk/typescript#options) pour la syntaxe.

222 222 


224 224 

225Avec [l'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), un message qui est toujours en attente lorsqu'un tour se termine à la limite de tours max reste en attente. Claude Code ne l'ajoute pas à l'appel du modèle final de ce tour. Il démarre un nouveau tour pour le message, et le compte de tours max recommence pour ce tour. Le total budgétaire continue de s'accumuler entre les messages, et une fois que les dépenses atteignent `maxBudgetUsd`, les messages ultérieurs dans la même conversation se terminent avec le résultat `error_max_budget_usd`. Un [`/clear`](/docs/fr/agent-sdk/cost-tracking) recommence le budget.225Avec [l'entrée en streaming](/docs/fr/agent-sdk/streaming-vs-single-mode), un message qui est toujours en attente lorsqu'un tour se termine à la limite de tours max reste en attente. Claude Code ne l'ajoute pas à l'appel du modèle final de ce tour. Il démarre un nouveau tour pour le message, et le compte de tours max recommence pour ce tour. Le total budgétaire continue de s'accumuler entre les messages, et une fois que les dépenses atteignent `maxBudgetUsd`, les messages ultérieurs dans la même conversation se terminent avec le résultat `error_max_budget_usd`. Un [`/clear`](/docs/fr/agent-sdk/cost-tracking) recommence le budget.

226 226 

227<h4 id="budget-headroom">

228 Marge budgétaire

229</h4>

230 

231Claude Code compare les dépenses au plafond `max_budget_usd` / `maxBudgetUsd` après l'arrivée des réponses du modèle, car le coût de chaque réponse provient de l'utilisation de tokens que l'API renvoie avec elle. La réponse qui atteint le plafond se termine quand même et compte dans [`total_cost_usd`](/docs/fr/agent-sdk/cost-tracking#get-the-total-cost-of-a-query). Les dépenses peuvent donc dépasser le plafond jusqu'à concurrence du coût de cette réponse, plus tout ce que les sous-agents encore en cours d'exécution à ce moment-là dépensent avant de s'arrêter. Prévoyez une marge en conséquence lorsque vous définissez le plafond.

232 

227<h3 id="effort-level">233<h3 id="effort-level">

228 Niveau d'effort234 Niveau d'effort

229</h3>235</h3>

Details

146| `auto` | Approbations classées par le modèle | Un classificateur de modèle examine les actions telles que les commandes shell et les demandes réseau, en approuvant ou en bloquant chacune qu'il examine. Voir [Mode Auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) pour la disponibilité et l'ordre de décision |146| `auto` | Approbations classées par le modèle | Un classificateur de modèle examine les actions telles que les commandes shell et les demandes réseau, en approuvant ou en bloquant chacune qu'il examine. Voir [Mode Auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) pour la disponibilité et l'ordre de décision |

147 147 

148<Warning>148<Warning>

149 **Héritage des sous-agents :** Un sous-agent s'exécute dans le mode de permission de la session parent sauf si vous définissez `permissionMode` sur son [`AgentDefinition`](/docs/fr/agent-sdk/typescript#agentdefinition) et que la session parent est en mode `default`, `dontAsk` ou `plan`. Même dans ce cas, Claude Code n'applique jamais une valeur `"bypassPermissions"`. Un sous-agent s'exécute en mode `bypassPermissions` uniquement lorsque la session parent elle-même le fait. L'exception `bypassPermissions` nécessite Claude Code v2.1.267 ou ultérieur.149 **Héritage des sous-agents :** Un sous-agent s'exécute dans le mode de permission de la session parent sauf si vous définissez `permissionMode` sur son [`AgentDefinition`](/docs/fr/agent-sdk/typescript#agentdefinition) et que la session parent est en mode `default`, `dontAsk` ou `plan`. Même dans ce cas, Claude Code n'applique jamais une valeur `"bypassPermissions"`, et n'applique une valeur `"auto"` que lorsque le [mode auto est disponible](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) pour ce sous-agent. Un sous-agent s'exécute en mode `bypassPermissions` uniquement lorsque la session parent elle-même le fait. L'exception `bypassPermissions` nécessite Claude Code v2.1.267 ou ultérieur.

150 150 

151 Les sous-agents peuvent avoir des invites système différentes et un comportement moins contraint que votre agent principal, donc hériter de `bypassPermissions` leur accorde un accès système complet et autonome. Les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves) s'appliquent toujours.151 Les sous-agents peuvent avoir des invites système différentes et un comportement moins contraint que votre agent principal, donc hériter de `bypassPermissions` leur accorde un accès système complet et autonome. Les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes#actions-no-mode-auto-approves) s'appliquent toujours.

152</Warning>152</Warning>

Details

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

929| `session_id` | `str \| None` | `None` | Utilisez un ID de session spécifique au lieu d'un généré automatiquement. Doit être un UUID valide. Ne peut pas être combiné avec `continue_conversation` ou `resume` sauf si `fork_session` est également défini |929| `session_id` | `str \| None` | `None` | Utilisez un ID de session spécifique au lieu d'un généré automatiquement. Doit être un UUID valide. Ne peut pas être combiné avec `continue_conversation` ou `resume` sauf si `fork_session` est également défini |

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

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

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

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

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


3327{3327{

3328 "url": str, # The URL to fetch content from3328 "url": str, # The URL to fetch content from

3329 "prompt": str, # The prompt to run on the fetched content3329 "prompt": str, # The prompt to run on the fetched content

3330 "offset": int | None, # Number of characters to skip from the start of the page. Requires Python Agent SDK 0.2.164 or later

3330}3331}

3331```3332```

3332 3333 

Details

323 Détecter l'invocation d'un sous-agent323 Détecter l'invocation d'un sous-agent

324</h2>324</h2>

325 325 

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

327 

328Les messages provenant du contexte d'un sous-agent incluent un champ `parent_tool_use_id`. En TypeScript, chaque message assistant et utilisateur produit par un sous-agent comporte également [`agent_id`](/docs/fr/agent-sdk/typescript#sdkassistantmessage) : le `task_id` des [événements de tâche](/docs/fr/agent-sdk/typescript#sdktaskstartedmessage) de ce sous-agent. `agent_id` nécessite le SDK Agent TypeScript v0.3.292 ou une version ultérieure.

327 329 

328<Note>330<Note>

329 L'outil apparaît comme `"Agent"` dans les blocs `tool_use` mais comme `"Task"` dans la liste des outils `system:init`. Avant Claude Code v2.1.63, les blocs `tool_use` le nommaient également `"Task"`. Pour que la détection fonctionne sur les versions du SDK, faites correspondre les deux valeurs dans `block.name`.331 L'outil apparaît comme `"Agent"` dans les blocs `tool_use` mais comme `"Task"` dans la liste des outils `system:init`. Avant Claude Code v2.1.63, les blocs `tool_use` le nommaient également `"Task"`. Pour que la détection fonctionne sur les versions du SDK, faites correspondre les deux valeurs dans `block.name`.


331 333 

332La structure du message diffère entre les SDK. En Python, vous accédez directement aux blocs de contenu via `message.content`. En TypeScript, `SDKAssistantMessage` enveloppe le message de l'API Claude, vous accédez donc au contenu via `message.message.content`.334La structure du message diffère entre les SDK. En Python, vous accédez directement aux blocs de contenu via `message.content`. En TypeScript, `SDKAssistantMessage` enveloppe le message de l'API Claude, vous accédez donc au contenu via `message.message.content`.

333 335 

334Cet exemple itère à travers les messages en flux, enregistrant quand un sous-agent est invoqué et quand les messages suivants proviennent du contexte d'exécution de ce sous-agent.336Cet exemple itère à travers les messages en flux, journalisant quand un sous-agent est invoqué et quand les messages suivants proviennent du contexte d'exécution de ce sous-agent. La version TypeScript journalise également l'`agent_id` de chaque message de sous-agent qui en comporte un.

335 337 

336<CodeGroup>338<CodeGroup>

337 ```python Python theme={null}339 ```python Python theme={null}


403 // Check if this message is from within a subagent's context405 // Check if this message is from within a subagent's context

404 if (msg.parent_tool_use_id) {406 if (msg.parent_tool_use_id) {

405 console.log(" (running inside subagent)");407 console.log(" (running inside subagent)");

408 // On assistant and user messages, agent_id matches the task_id

409 // on that subagent's task_started and other task events

410 if (msg.agent_id) {

411 console.log(` agent_id: ${msg.agent_id}`);

412 }

406 }413 }

407 414 

408 if ("result" in message) {415 if ("result" in message) {

Details

569| `includePartialMessages` | `boolean` | `false` | Inclure les événements de messages partiels |569| `includePartialMessages` | `boolean` | `false` | Inclure les événements de messages partiels |

570| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Délai d'expiration en millisecondes pour chaque appel à `sessionStore.load()` et `sessionStore.listSubkeys()` lors de la matérialisation de la reprise. Si l'adaptateur ne se résout pas dans ce délai, la requête échoue au lieu de rester bloquée. Ignoré lorsque `sessionStore` n'est pas défini |570| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Délai d'expiration en millisecondes pour chaque appel à `sessionStore.load()` et `sessionStore.listSubkeys()` lors de la matérialisation de la reprise. Si l'adaptateur ne se résout pas dans ce délai, la requête échoue au lieu de rester bloquée. Ignoré lorsque `sessionStore` n'est pas défini |

571| `managedSettings` | `Settings` | `undefined` | Paramètres de niveau stratégie que votre processus hôte fournit à la session lancée. Sur les machines disposant de paramètres gérés déployés par un administrateur, Claude Code les ignore sauf si la source gérée de priorité la plus élevée de l'administrateur définit `parentSettingsBehavior: 'merge'`, et ne les fusionne jamais lorsqu'un [`policyHelper`](/docs/fr/settings-reference#policyhelper) fournit des paramètres gérés. Les valeurs fusionnées passent par un filtre uniquement restrictif ; [Restreindre les paramètres parents](/docs/fr/claude-apps-gateway#restrict-parent-settings) décrit ce que le filtre admet et les verrous `allowManaged*Only`. Pour un hôte qui définit [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/fr/env-vars), trois clés sont lues directement depuis ce payload à la place : sa [configuration de modèle](/docs/fr/model-config#restrict-model-selection) sur Claude Code v2.1.222 ou ultérieure, [`modelPricing`](/docs/fr/settings-reference#modelpricing) lorsqu'aucune source gérée ne le définit sur v2.1.246 ou ultérieure, et son entrée env `ENABLE_TOOL_SEARCH` sur v2.1.247 ou ultérieure |571| `managedSettings` | `Settings` | `undefined` | Paramètres de niveau stratégie que votre processus hôte fournit à la session lancée. Sur les machines disposant de paramètres gérés déployés par un administrateur, Claude Code les ignore sauf si la source gérée de priorité la plus élevée de l'administrateur définit `parentSettingsBehavior: 'merge'`, et ne les fusionne jamais lorsqu'un [`policyHelper`](/docs/fr/settings-reference#policyhelper) fournit des paramètres gérés. Les valeurs fusionnées passent par un filtre uniquement restrictif ; [Restreindre les paramètres parents](/docs/fr/claude-apps-gateway#restrict-parent-settings) décrit ce que le filtre admet et les verrous `allowManaged*Only`. Pour un hôte qui définit [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/fr/env-vars), trois clés sont lues directement depuis ce payload à la place : sa [configuration de modèle](/docs/fr/model-config#restrict-model-selection) sur Claude Code v2.1.222 ou ultérieure, [`modelPricing`](/docs/fr/settings-reference#modelpricing) lorsqu'aucune source gérée ne le définit sur v2.1.246 ou ultérieure, et son entrée env `ENABLE_TOOL_SEARCH` sur v2.1.247 ou ultérieure |

572| `maxBudgetUsd` | `number` | `undefined` | Arrêter la requête lorsque l'estimation des coûts côté client atteint cette valeur en USD. Ne compte que les dépenses propres à l'appel ; les totaux restaurés depuis une session reprise ne sont pas comptés. Pour les réserves sur la précision et le comportement de réinitialisation, consultez [Suivre les coûts et l'utilisation](/docs/fr/agent-sdk/cost-tracking) |572| `maxBudgetUsd` | `number` | `undefined` | Arrêter la requête lorsque l'estimation des coûts côté client atteint cette valeur en USD. L'estimation peut dépasser cette valeur, donc [prévoyez une marge](/docs/fr/agent-sdk/agent-loop#budget-headroom). Ne compte que les dépenses propres à l'appel ; les totaux restaurés depuis une session reprise ne comptent pas. Pour les réserves sur la précision et le comportement de réinitialisation, consultez [Suivre les coûts et l'utilisation](/docs/fr/agent-sdk/cost-tracking) |

573| `maxThinkingTokens` | `number` | `undefined` | *Obsolète :* Utilisez `thinking` à la place. Nombre maximal de tokens pour le processus de réflexion |573| `maxThinkingTokens` | `number` | `undefined` | *Obsolète :* Utilisez `thinking` à la place. Nombre maximal de tokens pour le processus de réflexion |

574| `maxTurns` | `number` | `undefined` | Nombre maximal de tours agentiques (allers-retours d'utilisation d'outils) |574| `maxTurns` | `number` | `undefined` | Nombre maximal de tours agentiques (allers-retours d'utilisation d'outils) |

575| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurations des serveurs MCP |575| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurations des serveurs MCP |


1561 parent_tool_use_id: string | null;1561 parent_tool_use_id: string | null;

1562 error?: SDKAssistantMessageError;1562 error?: SDKAssistantMessageError;

1563 aborted?: true;1563 aborted?: true;

1564 agent_id?: string;

1564 timestamp?: string;1565 timestamp?: string;

1565 context_usage?: SDKContextUsage;1566 context_usage?: SDKContextUsage;

1566 user_message_uuid?: string;1567 user_message_uuid?: string;


1580 1581 

1581`aborted` est `true` quand une interruption ou un abandon a tronqué le message de l'assistant avant la fin du flux : le message n'a pas de `stop_reason` et le contenu peut se terminer au milieu d'un mot. Le champ est absent sur les messages normalement complétés. Il nécessite Agent SDK v0.3.214 ou ultérieur.1582`aborted` est `true` quand une interruption ou un abandon a tronqué le message de l'assistant avant la fin du flux : le message n'a pas de `stop_reason` et le contenu peut se terminer au milieu d'un mot. Le champ est absent sur les messages normalement complétés. Il nécessite Agent SDK v0.3.214 ou ultérieur.

1582 1583 

1584`agent_id` identifie le sous-agent qui a produit le message et est absent des messages du fil principal. Sa valeur est égale au `task_id` présent dans l'événement [`task_started`](#sdktaskstartedmessage) et les autres événements de tâche de ce sous-agent, et reste inchangée lorsque le sous-agent est [repris](/docs/fr/agent-sdk/subagents#resume-subagents). Le champ nécessite l'Agent SDK v0.3.292 ou ultérieur.

1585 

1586Associez les messages d'un sous-agent à ses événements de tâche via `agent_id` plutôt qu'en appariant le `parent_tool_use_id` d'un message au `tool_use_id` d'un événement de tâche. Lorsqu'un appel d'outil reprend le sous-agent, les événements de tâche portent le `tool_use_id` de cet appel, tandis que les messages conservent le `parent_tool_use_id` de l'appel d'outil qui a démarré le sous-agent à l'origine, de sorte que les deux ne correspondent plus.

1587 

1583Claude Code définit `user_message_uuid` et `user_message_uuids` sur le premier message de l'assistant du tour, selon les conditions dans [`user_message_uuid`](#user_message_uuid). Quand Claude Code réexécute un tour qu'un redémarrage a interrompu, les messages d'assistant de la réexécution qui portent ces champs portent aussi [`resume_reason`](#resume_reason).1588Claude Code définit `user_message_uuid` et `user_message_uuids` sur le premier message de l'assistant du tour, selon les conditions dans [`user_message_uuid`](#user_message_uuid). Quand Claude Code réexécute un tour qu'un redémarrage a interrompu, les messages d'assistant de la réexécution qui portent ces champs portent aussi [`resume_reason`](#resume_reason).

1584 1589 

1585`timestamp` est l'heure ISO 8601 à laquelle le contenu du message a fini de générer sur le processus qui l'a produit. La valeur provient de l'horloge de cette machine, donc utilisez-la uniquement pour l'affichage et ne triez pas les messages par elle. Un tour API peut produire plusieurs messages d'assistant qui partagent un `message.id`, chacun avec son propre `timestamp`. Quand le champ est absent, revenez à l'heure à laquelle vous avez reçu le message.1590`timestamp` est l'heure ISO 8601 à laquelle le contenu du message a fini de générer sur le processus qui l'a produit. La valeur provient de l'horloge de cette machine, donc utilisez-la uniquement pour l'affichage et ne triez pas les messages par elle. Un tour API peut produire plusieurs messages d'assistant qui partagent un `message.id`, chacun avec son propre `timestamp`. Quand le champ est absent, revenez à l'heure à laquelle vous avez reçu le message.


1597 type: "user";1602 type: "user";

1598 uuid?: UUID;1603 uuid?: UUID;

1599 session_id?: string;1604 session_id?: string;

1605 agent_id?: string;

1600 message: MessageParam; // From Anthropic SDK1606 message: MessageParam; // From Anthropic SDK

1601 pasted_content?: MessageParam["content"][];1607 pasted_content?: MessageParam["content"][];

1602 parent_tool_use_id: string | null;1608 parent_tool_use_id: string | null;


1636};1642};

1637```1643```

1638 1644 

1645Un message utilisateur produit par un sous-agent, comme le `tool_result` de l'un de ses propres appels d'outils, porte `agent_id`. Consultez [`SDKAssistantMessage`](#sdkassistantmessage), qui définit ce champ et la version requise.

1646 

1639Sur un message qui porte un bloc `tool_result`, `tool_use_result` est l'objet de sortie structurée de l'outil plutôt que le texte envoyé au modèle. Sa forme dépend de l'outil nommé par le bloc `tool_use` correspondant : le champ est donc typé `unknown` ; les formes intégrées sont répertoriées sous [Types de sortie des outils](#tool-output-types). Ces résultats nécessitent un traitement qui va au-delà de leur forme répertoriée :1647Sur un message qui porte un bloc `tool_result`, `tool_use_result` est l'objet de sortie structurée de l'outil plutôt que le texte envoyé au modèle. Sa forme dépend de l'outil nommé par le bloc `tool_use` correspondant : le champ est donc typé `unknown` ; les formes intégrées sont répertoriées sous [Types de sortie des outils](#tool-output-types). Ces résultats nécessitent un traitement qui va au-delà de leur forme répertoriée :

1640 1648 

1641* L'outil `Agent` : `tool_use_result` est [`AgentOutput`](#agent-2). Effectuez le rendu à partir de celui-ci plutôt que d'analyser le texte du `tool_result`. Le `content` d'un résultat `completed` contient le rapport du sous-agent ou, pour un sous-agent dont le rapport passe par un appel d'outil `SubagentHandback`, une courte note sur cette remise à la place du rapport. En [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) sur Claude Code v2.1.271 ou version ultérieure, tout sous-agent qui produit un résultat `completed` fait son rapport de cette façon, sauf s'il s'agit d'un [fork](/docs/fr/sub-agents#fork-the-current-conversation), et Claude reçoit le rapport sous la forme d'un message distinct provenant du sous-agent.1649* L'outil `Agent` : `tool_use_result` est [`AgentOutput`](#agent-2). Effectuez le rendu à partir de celui-ci plutôt que d'analyser le texte du `tool_result`. Le `content` d'un résultat `completed` contient le rapport du sous-agent ou, pour un sous-agent dont le rapport passe par un appel d'outil `SubagentHandback`, une courte note sur cette remise à la place du rapport. En [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) sur Claude Code v2.1.271 ou version ultérieure, tout sous-agent qui produit un résultat `completed` fait son rapport de cette façon, sauf s'il s'agit d'un [fork](/docs/fr/sub-agents#fork-the-current-conversation), et Claude reçoit le rapport sous la forme d'un message distinct provenant du sous-agent.


1992 `SDKPartialAssistantMessage`2000 `SDKPartialAssistantMessage`

1993</h3>2001</h3>

1994 2002 

1995Message partiel en streaming (uniquement quand `includePartialMessages` est true). Le champ `parent_tool_use_id` est toujours `null` : les événements de flux sont émis pour la session principale uniquement. Pour l'attribution de sous-agent, utilisez les messages complets, qui portent `parent_tool_use_id`, ou activez [`forwardSubagentText`](#options) pour recevoir le texte et la réflexion du sous-agent comme des messages complets.2003Message partiel en streaming (uniquement lorsque `includePartialMessages` vaut true).

2004 

2005Le champ `parent_tool_use_id` est toujours `null` : les événements de flux ne sont émis que pour la session principale. Pour l'attribution aux sous-agents, utilisez les messages complets, qui portent [`agent_id`](#sdkassistantmessage) et `parent_tool_use_id`, ou activez [`forwardSubagentText`](#options) pour recevoir le texte et la réflexion des sous-agents sous forme de messages complets.

1996 2006 

1997```typescript theme={null}2007```typescript theme={null}

1998type SDKPartialAssistantMessage = {2008type SDKPartialAssistantMessage = {


3418type WebFetchInput = {3428type WebFetchInput = {

3419 url: string;3429 url: string;

3420 prompt: string;3430 prompt: string;

3431 offset?: number;

3421};3432};

3422```3433```

3423 3434 

3424Récupère le contenu d'une URL et le traite avec un modèle IA.3435Récupère le contenu d'une URL et le traite avec un modèle IA.

3425 3436 

3437`offset` est le nombre de caractères à ignorer depuis le début de la page. Claude le définit pour poursuivre la lecture d'une page longue. Le champ nécessite Agent SDK v0.3.290 ou version ultérieure.

3438 

3426<h3 id="websearch">3439<h3 id="websearch">

3427 WebSearch3440 WebSearch

3428</h3>3441</h3>


5777 task_type?: string;5790 task_type?: string;

5778 is_backgrounded?: boolean;5791 is_backgrounded?: boolean;

5779 spawn_depth?: number;5792 spawn_depth?: number;

5793 parent_task_id?: string;

5780 ambient?: boolean;5794 ambient?: boolean;

5781 uuid: UUID;5795 uuid: UUID;

5782 session_id: string;5796 session_id: string;


5794 5808 

5795Un [sous-agent repris](/docs/fr/agent-sdk/subagents#resume-subagents) signale toujours `is_backgrounded: true`, car Claude Code exécute chaque sous-agent repris en arrière-plan. Lorsqu'une tâche au premier plan se déplace en arrière-plan plus tard, Claude Code signale la nouvelle valeur `is_backgrounded` dans un message [`task_updated`](#sdktaskupdatedmessage) plutôt que d'envoyer un second `task_started`.5809Un [sous-agent repris](/docs/fr/agent-sdk/subagents#resume-subagents) signale toujours `is_backgrounded: true`, car Claude Code exécute chaque sous-agent repris en arrière-plan. Lorsqu'une tâche au premier plan se déplace en arrière-plan plus tard, Claude Code signale la nouvelle valeur `is_backgrounded` dans un message [`task_updated`](#sdktaskupdatedmessage) plutôt que d'envoyer un second `task_started`.

5796 5810 

5811`parent_task_id` contient le `task_id` du sous-agent qui a lancé cette tâche. Utilisez-le pour regrouper chaque tâche sous le sous-agent qui l'a démarrée. Claude Code le définit sur les tâches de sous-agent, Bash et [Monitor](#monitor). Le champ nécessite Agent SDK v0.3.292 ou version ultérieure. Il est absent lorsque :

5812 

5813* Le thread principal a lancé la tâche

5814* Claude Code ne suit plus la tâche parente

5815* Un [coéquipier](/docs/fr/agent-teams) ou un agent à l'intérieur d'un workflow a lancé la tâche

5816 

5817Le parent peut être une tâche au premier plan ou une tâche déjà terminée ; traitez donc un ID que vous ne reconnaissez pas comme l'absence de parent.

5818 

5797<h3 id="sdktaskprogressmessage">5819<h3 id="sdktaskprogressmessage">

5798 `SDKTaskProgressMessage`5820 `SDKTaskProgressMessage`

5799</h3>5821</h3>


5850 `SDKBackgroundTasksChangedMessage`5872 `SDKBackgroundTasksChangedMessage`

5851</h3>5873</h3>

5852 5874 

5853Émis chaque fois que l'ensemble des tâches en arrière-plan en direct change : une tâche démarre, se termine, est tuée, un agent au premier plan est mis en arrière-plan, ou le champ `description` ou `ambient` d'une tâche change.5875Émis chaque fois que l'ensemble des tâches en arrière-plan en direct change : une tâche démarre, se termine ou est tuée ; un agent au premier plan est mis en arrière-plan ; ou le champ `description`, `ambient` ou `parent_task_id` d'une tâche change. Pour le champ `parent_task_id` de chaque entrée, consultez [`SDKTaskStartedMessage`](#sdktaskstartedmessage), qui le définit et son exigence de version.

5854 5876 

5855Le tableau `tasks` est l'ensemble en direct complet. Remplacez tout ensemble mis en cache par chaque payload au lieu d'appairer les événements `task_started` et `task_notification`, afin que le prochain changement d'appartenance corrige tout événement que vous avez manqué.5877Le tableau `tasks` est l'ensemble en direct complet. Remplacez tout ensemble mis en cache par chaque payload au lieu d'appairer les événements `task_started` et `task_notification`, afin que le prochain changement d'appartenance corrige tout événement que vous avez manqué.

5856 5878 

5857L'ordre relatif à ces événements par tâche n'est pas spécifié, donc ne corrélez pas les deux flux.5879Lorsqu'une tâche se termine, ses messages [`task_updated`](#sdktaskupdatedmessage) et [`task_notification`](#sdktasknotificationmessage) arrivent avant le `background_tasks_changed` qui la retire de la liste. L'ordre relatif aux événements par tâche n'est sinon pas spécifié.

5858 5880 

5859Rien n'est émis au démarrage. Réinitialisez à un ensemble vide chaque fois que le processus CLI de la session démarre ou redémarre et laissez le prochain changement d'appartenance le repeupler.5881Rien n'est émis au démarrage. Réinitialisez à un ensemble vide chaque fois que le processus CLI de la session démarre ou redémarre et laissez le prochain changement d'appartenance le repeupler.

5860 5882 


5871 task_type: string;5893 task_type: string;

5872 subagent_type?: string;5894 subagent_type?: string;

5873 description: string;5895 description: string;

5896 parent_task_id?: string;

5874 ambient?: boolean;5897 ambient?: boolean;

5875 }[];5898 }[];

5876 uuid: UUID;5899 uuid: UUID;

agent-view.md +1 −1

Details

603 603 

604En dehors d'un dépôt git, les sessions écrivent directement dans le répertoire de travail et ne sont pas isolées les unes des autres, donc évitez de lancer des sessions parallèles qui modifient les mêmes fichiers. Si vous utilisez un autre système de contrôle de version, configurez un [hook `WorktreeCreate`](/docs/fr/worktrees#non-git-version-control) et Claude isole les modifications de la même manière que pour git.604En dehors d'un dépôt git, les sessions écrivent directement dans le répertoire de travail et ne sont pas isolées les unes des autres, donc évitez de lancer des sessions parallèles qui modifient les mêmes fichiers. Si vous utilisez un autre système de contrôle de version, configurez un [hook `WorktreeCreate`](/docs/fr/worktrees#non-git-version-control) et Claude isole les modifications de la même manière que pour git.

605 605 

606Quand le hook échoue dans un répertoire qui n'est pas un dépôt git, Claude renonce à l'isolation pour ce répertoire et modifie le répertoire de travail sur place. À l'intérieur d'un dépôt git, une session que Claude déplace dans un worktree avant de modifier des fichiers ne peut pas modifier de fichiers dans le checkout partagé tant que ce déplacement n'a pas eu lieu.606Quand le hook échoue dans un répertoire qui n'est pas un dépôt git, Claude renonce à l'isolation pour ce répertoire et modifie le répertoire de travail sur place. À l'intérieur d'un dépôt git, une session que Claude déplace dans un worktree avant de modifier des fichiers ne peut pas utiliser les outils `Edit`, `Write` ou `NotebookEdit` sur le checkout partagé tant que ce déplacement n'a pas eu lieu.

607 607 

608Pour trouver le chemin du worktree d'une session, attachez-vous-y et vérifiez son répertoire de travail.608Pour trouver le chemin du worktree d'une session, attachez-vous-y et vérifiez son répertoire de travail.

609 609 

artifacts.md +38 −10

Details

51Build a dashboard artifact of last week's deploy failures by service and keep it updated as you investigate.51Build a dashboard artifact of last week's deploy failures by service and keep it updated as you investigate.

52```52```

53 53 

54Sauf si vous nommez un emplacement, Claude écrit la page dans un fichier HTML ou Markdown dans un répertoire temporaire en dehors de votre projet, puis la publie. En dehors du [mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode), un nouvel artifact que Claude publie en réponse à une invite que vous tapez passe sans invite de permission ou examen du classificateur, sauf si cette publication déclare des capacités d'exécution pour la page, comme les [appels de connecteur](#pull-live-data-with-mcp-connectors) ou les [téléchargements de fichiers](#offer-a-file-download). En mode plan, Claude Code vous demande avant la première publication de chaque artifact.54Sauf si vous indiquez un emplacement, Claude écrit la page dans un fichier HTML ou Markdown situé dans un répertoire temporaire en dehors de votre projet, puis la publie. L'artefact reste privé jusqu'à ce que vous le [partagiez](#share-an-artifact).

55 55 

56L'artifact reste privé pour vous jusqu'à ce que vous le [partagiez](#share-an-artifact). Après l'avoir partagé publiquement, Claude Code demande votre approbation une fois par conversation avant de le modifier, ou en [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) fait examiner la modification par le classificateur.56Après la première publication, Claude affiche l'URL, et votre navigateur s'ouvre sur la nouvelle page.

57 57 

58Si vous avez désactivé la [récupération de drapeaux de fonctionnalité](/docs/fr/env-vars#features-that-need-feature-flag-fetching), Claude Code demande avant la première publication de chaque artifact, ou en mode auto fait examiner par le classificateur.58* **Rouvrir la page** : appuyez sur `Ctrl+]` à tout moment pour rouvrir l'artefact le plus récent de la session

59* **Voir les artefacts de cette session** : une pastille `⧉` sous le prompt affiche le nom de l'artefact, ou un nombre lorsque la session en contient plusieurs. En [rendu plein écran](/docs/fr/fullscreen), cliquez dessus pour ouvrir la liste [`/artifacts`](#find-an-artifact-again)

60* **Empêcher l'ouverture du navigateur** : définissez `CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0` dans votre environnement

61* **Remote Control** : si vous avez envoyé le prompt via [Remote Control](/docs/fr/remote-control) depuis claude.ai, Claude Desktop ou l'application mobile Claude, aucun onglet ne s'ouvre sur la machine qui exécute la session. Le navigateur s'y ouvre la prochaine fois que Claude publie l'artefact à partir d'un prompt que vous tapez dans le terminal

59 62 

60Après la première publication, Claude imprime l'URL, et votre navigateur s'ouvre sur la nouvelle page. Si vous avez envoyé l'invite via [Contrôle à distance](/docs/fr/remote-control) depuis claude.ai, Claude Desktop ou l'application mobile Claude, aucun onglet ne s'ouvre sur la machine exécutant la session. Le navigateur s'ouvre là la prochaine fois que Claude publie l'artifact à partir d'une invite que vous tapez au terminal. Appuyez sur `Ctrl+]` à tout moment pour rouvrir l'artifact le plus récent de la session.63Claude choisit le titre de l'artefact et une icône d'onglet de navigateur qui correspond à la nature de la page, comme un graphique ou un calendrier. Le titre apparaît dans votre [galerie d'artefacts](#share-an-artifact) sur claude.ai et dans les liens partagés. Demandez à Claude un titre ou une icône d'onglet spécifique si vous le souhaitez.

61 64 

62Claude choisit le titre de l'artifact et un emoji, et les deux apparaissent dans votre [galerie d'artifacts](#share-an-artifact) sur claude.ai et dans les liens partagés. Claude peut également choisir une icône d'onglet de navigateur qui correspond à ce que la page est, comme un graphique ou un calendrier. Demandez à Claude un titre, un emoji ou une icône d'onglet spécifique si vous en voulez un.65Si Claude répond qu'il ne peut pas publier, ou écrit un fichier HTML local sans lien, les artefacts ne sont pas activés pour votre session. Vérifiez les exigences de [Disponibilité](#availability). Si le terminal affiche `Artifacts need a claude.ai login`, consultez [l'entrée de cette erreur](/docs/fr/errors#artifacts-need-a-claude-ai-login) pour savoir comment vous connecter.

63 66 

64Pour empêcher le navigateur de s'ouvrir automatiquement lors de la publication d'un nouvel artifact, définissez `CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0` dans votre environnement.67<h3 id="when-claude-code-asks-before-publishing">

68 Quand Claude Code demande avant de publier

69</h3>

70 

71Un nouvel artefact que Claude publie en réponse à un prompt que vous tapez est publié sans demande de permission ni examen par le classifieur. Dans les cas suivants, Claude Code vous demande d'abord, ou en [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) fait examiner la publication par le classifieur :

65 72 

66Si Claude répond qu'il ne peut pas publier, ou écrit un fichier HTML local sans lien, l'outil n'est pas activé pour votre session. Vérifiez les exigences de [Disponibilité](#availability).73| Quand | Ce que fait Claude Code |

74| :- | :- |

75| La session est en [mode plan](/docs/fr/permission-modes#analyze-before-you-edit-with-plan-mode) | Demande avant la première publication de chaque artefact |

76| La publication déclare des capacités d'exécution pour la page, comme des [appels de connecteur](#pull-live-data-with-mcp-connectors) ou des [téléchargements de fichiers](#offer-a-file-download) | Demande avant cette publication |

77| Vous avez partagé l'artefact publiquement | Demande une fois par conversation avant de le modifier |

78| Vous avez désactivé la [récupération des feature flags](/docs/fr/env-vars#features-that-need-feature-flag-fetching) | Demande avant la première publication de chaque artefact |

79| Claude publie lors d'un tour déclenché par une [tâche planifiée](/docs/fr/scheduled-tasks) s'exécutant dans votre session, plutôt que par un prompt que vous avez tapé | Demande avant la première publication de chaque artefact |

80| Claude ne peut pas lire le fichier sans votre approbation | Demande avant de le publier. Une règle d'autorisation pour l'outil `Artifact` ne permet pas d'ignorer cette demande |

81 

82Claude lit sans demander les fichiers situés dans les [répertoires de travail](/docs/fr/permissions#working-directories) de votre session, ainsi que dans le répertoire temporaire où il écrit les pages. Pour permettre à Claude de publier depuis un autre dossier sans demande, ajoutez ce dossier comme répertoire de travail avec [`--add-dir`](/docs/fr/cli-reference#cli-flags) au lancement ou `/add-dir` pendant la session.

67 83 

68<h2 id="update-an-artifact">84<h2 id="update-an-artifact">

69 Mettre à jour un artifact85 Mettre à jour un artifact


87 Retrouver un artifact103 Retrouver un artifact

88</h2>104</h2>

89 105 

90Exécutez `/artifacts` dans Claude Code pour lister chaque artifact que vous possédez et chaque artifact partagé avec vous. Sélectionnez-en un et appuyez sur `o` pour l'ouvrir dans votre navigateur ou `c` pour copier son lien. Appuyez sur `Entrée` pour l'attacher à la session actuelle ; avant la v2.1.216, `Entrée` l'ouvrait dans votre navigateur. Claude Code lit la liste à partir de votre compte claude.ai, donc cela fonctionne dans une nouvelle session et après `/clear`, quand le lien a disparu du terminal. Nécessite Claude Code v2.1.208 ou version ultérieure.106Exécutez `/artifacts` dans Claude Code pour lister les artefacts que vous possédez et ceux partagés avec vous. Les artefacts de la session actuelle apparaissent en premier, sous **This session**. Nécessite Claude Code v2.1.208 ou version ultérieure.

107 

108Sélectionnez un artefact, puis appuyez sur l'une de ces touches :

109 

110* **`Enter`** : l'ouvre dans votre navigateur lorsqu'il est déjà attaché à la session actuelle, et l'attache dans le cas contraire. Avant la v2.1.216, `Enter` l'ouvrait dans votre navigateur

111* **`o`** : l'ouvre dans votre navigateur

112* **`c`** : copie son lien

113 

114Claude Code lit la liste à partir de votre compte claude.ai, donc cela fonctionne dans une nouvelle session et après `/clear`, quand le lien a disparu du terminal.

91 115 

92<h2 id="share-an-artifact">116<h2 id="share-an-artifact">

93 Partager un artifact117 Partager un artifact


110 134 

111Un éditeur publie de nouvelles versions de la même manière que vous [mettez à jour l'artifact à partir d'une autre session](#update-an-artifact) : il donne à Claude l'URL de l'artifact, ou l'attache à partir de [`/artifacts`](#find-an-artifact-again), et Claude récupère le contenu actuel et le republish avec ses modifications. Tous les utilisateurs ayant la page ouverte voient chaque mise à jour en direct.135Un éditeur publie de nouvelles versions de la même manière que vous [mettez à jour l'artifact à partir d'une autre session](#update-an-artifact) : il donne à Claude l'URL de l'artifact, ou l'attache à partir de [`/artifacts`](#find-an-artifact-again), et Claude récupère le contenu actuel et le republish avec ses modifications. Tous les utilisateurs ayant la page ouverte voient chaque mise à jour en direct.

112 136 

137Si un éditeur publie alors que Claude détient une copie plus ancienne de la page, Claude Code refuse toute publication fondée sur cette copie. Claude fusionne alors ses modifications avec la version plus récente et publie à nouveau.

138 

113<h2 id="read-an-artifact-shared-with-you">139<h2 id="read-an-artifact-shared-with-you">

114 Lire un artifact partagé avec vous140 Lire un artifact partagé avec vous

115</h2>141</h2>


168 194 

169Claude cesse également de répondre de lui-même sur un artefact après avoir traité 60 commentaires envoyés ou activations de fils de discussion sur cet artefact en l'espace d'une heure. Vous voyez `Comments are waiting on Artifact: <name>` une seule fois, et Claude reprend à mesure que les commentaires de cette heure sortent de la fenêtre.195Claude cesse également de répondre de lui-même sur un artefact après avoir traité 60 commentaires envoyés ou activations de fils de discussion sur cet artefact en l'espace d'une heure. Vous voyez `Comments are waiting on Artifact: <name>` une seule fois, et Claude reprend à mesure que les commentaires de cette heure sortent de la fenêtre.

170 196 

171Exécutez `/tasks` pour voir chaque artefact que votre session surveille, listé comme une tâche de mises à jour en direct. Vous pouvez empêcher Claude de répondre de lui-même de l'une des manières suivantes :197Exécutez `/tasks` pour voir les artefacts que votre session surveille. `/tasks` regroupe les surveillances que Claude Code a démarrées de lui-même sous la ligne **System tasks**. Appuyez sur `Enter` sur cette ligne pour les lister. Une surveillance que vous avez demandé à Claude de démarrer apparaît sous **Monitors**.

198 

199Vous pouvez empêcher Claude de répondre de lui-même de l'une des manières suivantes :

172 200 

173* **Appuyez une fois sur Ctrl+C à un prompt inactif** : Claude met en pause ses réponses sur tous les artefacts que votre session surveille. Les réponses reprennent après l'envoi de votre prochain message.201* **Appuyez une fois sur Ctrl+C à un prompt inactif** : Claude met en pause ses réponses sur tous les artefacts que votre session surveille. Les réponses reprennent après l'envoi de votre prochain message.

174* **Arrêtez la tâche dans `/tasks`** : Claude cesse de répondre sur cet artefact jusqu'à ce que vous lui demandiez de reprendre les réponses à cet endroit. Republier l'artefact ne relance pas les réponses, et l'arrêt s'applique toujours lorsque vous reprenez la session ultérieurement.202* **Arrêtez la tâche dans `/tasks`** : Claude cesse de répondre sur cet artefact jusqu'à ce que vous lui demandiez de reprendre les réponses à cet endroit. Republier l'artefact ne relance pas les réponses, et l'arrêt s'applique toujours lorsque vous reprenez la session ultérieurement.


391| Authentification | La session est sauvegardée par un compte claude.ai : connectez-vous avec `/login` dans la CLI ou l'application de bureau. Les sessions Claude Tag sont connectées via l'identité de l'agent, donc aucune étape n'est nécessaire. Les sessions utilisant une clé API, un [jeton de passerelle](/docs/fr/llm-gateway) ou une identifiant de fournisseur cloud ne peuvent pas publier. |419| Authentification | La session est sauvegardée par un compte claude.ai : connectez-vous avec `/login` dans la CLI ou l'application de bureau. Les sessions Claude Tag sont connectées via l'identité de l'agent, donc aucune étape n'est nécessaire. Les sessions utilisant une clé API, un [jeton de passerelle](/docs/fr/llm-gateway) ou une identifiant de fournisseur cloud ne peuvent pas publier. |

392| Fournisseur de modèle | API Anthropic. Non disponible sur [Amazon Bedrock](/docs/fr/amazon-bedrock), [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) ou [Microsoft Foundry](/docs/fr/microsoft-foundry). |420| Fournisseur de modèle | API Anthropic. Non disponible sur [Amazon Bedrock](/docs/fr/amazon-bedrock), [Google Cloud's Agent Platform](/docs/fr/google-vertex-ai) ou [Microsoft Foundry](/docs/fr/microsoft-foundry). |

393| Politique organisationnelle | Les clés de chiffrement gérées par le client (CMEK), HIPAA et [Zéro rétention de données](/docs/fr/zero-data-retention) ne sont pas activées pour l'organisation. |421| Politique organisationnelle | Les clés de chiffrement gérées par le client (CMEK), HIPAA et [Zéro rétention de données](/docs/fr/zero-data-retention) ne sont pas activées pour l'organisation. |

394| Surface | Claude Code CLI, ou l'application de bureau Claude version 1.13576.0 ou ultérieure. Les sessions [Claude Tag](https://claude.com/docs/claude-tag/overview) peuvent également publier des artefacts lorsque Claude Tag et les artefacts sont activés pour l'organisation. Désactivé par défaut dans les contextes [Agent SDK](/docs/fr/agent-sdk/overview), GitHub Action et MCP-server, lorsque vous exécutez Claude Code avec [`-p`](/docs/fr/headless) depuis votre propre terminal ou vos scripts, et lorsque [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/fr/env-vars) est défini. |422| Surface | Claude Code CLI, ou l'application de bureau Claude version 1.13576.0 ou ultérieure. Les sessions [Claude Tag](https://claude.com/docs/claude-tag/overview) peuvent également publier des artefacts lorsque Claude Tag et les artefacts sont activés pour l'organisation. Les sessions servies par [`claude remote-control`](/docs/fr/remote-control) peuvent publier des artefacts lorsque vous avez démarré la session vous-même. Nécessite Claude Code v2.1.281 ou ultérieur. Désactivé par défaut dans les contextes [Agent SDK](/docs/fr/agent-sdk/overview), GitHub Action et MCP-server, lorsque vous exécutez Claude Code avec [`-p`](/docs/fr/headless) depuis votre propre terminal ou vos scripts, et lorsque [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/fr/env-vars) est défini. |

395 423 

396La disponibilité des artefacts pour votre organisation provient de la politique de votre organisation, que Claude Code charge depuis `api.anthropic.com`. Lorsque Claude Code ne peut pas charger la politique, les artefacts ne sont pas disponibles. Lorsque vous en demandez un, Claude explique pourquoi.424La disponibilité des artefacts pour votre organisation provient de la politique de votre organisation, que Claude Code charge depuis `api.anthropic.com`. Lorsque Claude Code ne peut pas charger la politique, les artefacts ne sont pas disponibles. Lorsque vous en demandez un, Claude explique pourquoi.

397 425 

Details

1237 1237 

1238Le CLI envoie des métriques, des logs et, lorsqu'elles sont activées, des traces à la passerelle, qui les relaie textuellement à chaque destination configurée. Les exportations utilisent OpenTelemetry Protocol (OTLP) sur HTTP. Pour ignorer le relais et faire exporter les sessions directement vers votre collecteur, [nommez le collecteur dans une politique](#export-directly-to-your-collector). Consultez [Surveillance de l'utilisation](/docs/fr/monitoring-usage) pour les métriques et événements que le CLI émet.1238Le CLI envoie des métriques, des logs et, lorsqu'elles sont activées, des traces à la passerelle, qui les relaie textuellement à chaque destination configurée. Les exportations utilisent OpenTelemetry Protocol (OTLP) sur HTTP. Pour ignorer le relais et faire exporter les sessions directement vers votre collecteur, [nommez le collecteur dans une politique](#export-directly-to-your-collector). Consultez [Surveillance de l'utilisation](/docs/fr/monitoring-usage) pour les métriques et événements que le CLI émet.

1239 1239 

1240Dans les sessions connectées via `/login`, le CLI marque chaque exportation avec l'identité de l'utilisateur authentifié, lue à partir du JWT émis par la passerelle : les attributs `user.id`, `user.email` et `user.groups`. L'attribution des coûts et de l'utilisation par développeur fonctionne donc sans configuration côté développeur.1240Dans les sessions connectées via `/login`, le CLI marque chaque exportation avec l'identité de l'utilisateur authentifié, lue à partir du JWT émis par la passerelle : les attributs `user.id`, `user.email` et `user.groups`. L'attribution des coûts et de l'utilisation par développeur fonctionne donc sans configuration côté développeur. Les événements que Claude Code journalise avant que le développeur ne se connecte [ne portent pas cette identité](/docs/fr/monitoring-usage#standard-attributes).

1241 1241 

1242[Claude Desktop](#claude-desktop-overlay) et les sessions Cowork connectées via la passerelle marquent leur télémétrie avec `user.email` et `user.groups` aux côtés de `enduser.id`, afin que vous puissiez couvrir l'utilisation du terminal, de Desktop et de Cowork avec une seule requête sur `user.email` ou `user.groups`. `user.groups` est la liste des groupes IdP séparés par des virgules.1242[Claude Desktop](#claude-desktop-overlay) et les sessions Cowork connectées via la passerelle marquent leur télémétrie avec `user.email` et `user.groups` aux côtés de `enduser.id`, afin que vous puissiez couvrir l'utilisation du terminal, de Desktop et de Cowork avec une seule requête sur `user.email` ou `user.groups`. `user.groups` est la liste des groupes IdP séparés par des virgules.

1243 1243 

Details

516 Télémétrie516 Télémétrie

517</h2>517</h2>

518 518 

519La passerelle vous donne des métriques d'utilisation par développeur sans aucune configuration OTEL par machine. Claude Code émet des métriques, des journaux et des traces OpenTelemetry (OTLP) optionnelles ; [Monitoring usage](/docs/fr/monitoring-usage) couvre tout ce que le CLI rapporte. Dans les sessions connectées via `/login`, le CLI marque chaque export avec les attributs d'identité IdP authentifiés `user.id`, `user.email` et `user.groups`, de sorte que l'utilisation s'accumule par développeur.519La passerelle vous donne des métriques d'utilisation par développeur sans aucune configuration OTEL par machine. Claude Code émet des métriques, des journaux et des traces OpenTelemetry (OTLP) optionnelles ; [Monitoring usage](/docs/fr/monitoring-usage) couvre tout ce que le CLI rapporte. Dans les sessions connectées via `/login`, le CLI [marque chaque export](/docs/fr/monitoring-usage#standard-attributes) avec les attributs d'identité IdP authentifiés `user.id`, `user.email` et `user.groups`, de sorte que l'utilisation s'accumule par développeur.

520 520 

521La passerelle elle-même est un relais OTLP authentifié. Définissez [`telemetry.forward_to`](/docs/fr/claude-apps-gateway-config#telemetry) avec `listen.public_url`, et elle pousse les paramètres de l'exportateur OTEL à chaque client connecté et transfère leur trafic OTLP verbatim à chaque destination que vous listez. Chaque destination opte pour les métriques, les journaux et les traces indépendamment, et la valeur par défaut est les métriques uniquement ; consultez la [référence `telemetry`](/docs/fr/claude-apps-gateway-config#telemetry) pour les champs par signal et leurs compromis de sensibilité. La passerelle ne met pas en buffer, n'agrège pas et ne stocke pas la télémétrie, donc l'endroit où les données arrivent dépend entièrement de la configuration de l'exportateur du collecteur.521La passerelle elle-même est un relais OTLP authentifié. Définissez [`telemetry.forward_to`](/docs/fr/claude-apps-gateway-config#telemetry) avec `listen.public_url`, et elle pousse les paramètres de l'exportateur OTEL à chaque client connecté et transfère leur trafic OTLP verbatim à chaque destination que vous listez. Chaque destination opte pour les métriques, les journaux et les traces indépendamment, et la valeur par défaut est les métriques uniquement ; consultez la [référence `telemetry`](/docs/fr/claude-apps-gateway-config#telemetry) pour les champs par signal et leurs compromis de sensibilité. La passerelle ne met pas en buffer, n'agrège pas et ne stocke pas la télémétrie, donc l'endroit où les données arrivent dépend entièrement de la configuration de l'exportateur du collecteur.

522 522 

Details

489* **Routines** : quand vous demandez du travail programmé dans un projet, Claude crée une [routine](/docs/fr/routines) qui s'exécute en tant que threads dans ce projet et apparaît sur son onglet **Routines**. Les routines que vous créez en dehors d'un projet continuent à fonctionner seules.489* **Routines** : quand vous demandez du travail programmé dans un projet, Claude crée une [routine](/docs/fr/routines) qui s'exécute en tant que threads dans ce projet et apparaît sur son onglet **Routines**. Les routines que vous créez en dehors d'un projet continuent à fonctionner seules.

490* **Remote Control** : [Remote Control](/docs/fr/remote-control) connecte claude.ai à une session Claude Code s'exécutant sur votre machine. Quand vous demandez à Claude dans un projet d'exécuter un thread sur votre ordinateur, le projet [utilise Remote Control pour le faire](#run-a-thread-on-your-own-computer).490* **Remote Control** : [Remote Control](/docs/fr/remote-control) connecte claude.ai à une session Claude Code s'exécutant sur votre machine. Quand vous demandez à Claude dans un projet d'exécuter un thread sur votre ordinateur, le projet [utilise Remote Control pour le faire](#run-a-thread-on-your-own-computer).

491* **Sessions locales et agent view** : une session que vous démarrez vous-même dans votre terminal, IDE ou l'environnement local de l'application de bureau ne peut pas être ajoutée à un projet. [Agent view](/docs/fr/agent-view) est un écran pour suivre plusieurs sessions locales côte à côte, et vous démarrez toujours chacune et lui donnez sa tâche vous-même.491* **Sessions locales et agent view** : une session que vous démarrez vous-même dans votre terminal, IDE ou l'environnement local de l'application de bureau ne peut pas être ajoutée à un projet. [Agent view](/docs/fr/agent-view) est un écran pour suivre plusieurs sessions locales côte à côte, et vous démarrez toujours chacune et lui donnez sa tâche vous-même.

492* **Worktrees** : un [worktree](/docs/fr/worktrees) donne à chaque session locale sa propre copie de travail d'un référentiel pour que les sessions parallèles sur votre machine ne s'écrasent pas mutuellement. Les threads cloud n'en ont pas besoin : chacun clone ses référentiels dans son propre sandbox cloud et travaille sur sa propre branche.492* **Worktrees** : un [worktree](/docs/fr/worktrees) donne à chaque session locale sa propre copie de travail d'un dépôt. Les threads cloud n'en ont pas besoin : chacun clone ses dépôts dans son propre sandbox cloud et travaille sur sa propre branche.

493* **Équipes d'agents** : une [équipe d'agents](/docs/fr/agent-teams) est une session qui démarre des sessions de coéquipiers pour une seule tâche, sur votre machine ou à l'intérieur d'une session cloud, et se termine avec cette tâche.493* **Équipes d'agents** : une [équipe d'agents](/docs/fr/agent-teams) est une session qui démarre des sessions de coéquipiers pour une seule tâche, sur votre machine ou à l'intérieur d'une session cloud, et se termine avec cette tâche.

494* **Subagents** : un [subagent](/docs/fr/sub-agents) s'exécute à l'intérieur d'une session, effectue une tâche secondaire dans sa propre fenêtre de contexte, et retourne un résumé à cette session. Les threads d'un projet sont des sessions complètes que Claude démarre et qui rendent compte à la conversation du projet, et un thread peut toujours utiliser des subagents pour ses propres tâches secondaires.494* **Subagents** : un [subagent](/docs/fr/sub-agents) s'exécute à l'intérieur d'une session, effectue une tâche secondaire dans sa propre fenêtre de contexte, et retourne un résumé à cette session. Les threads d'un projet sont des sessions complètes que Claude démarre et qui rendent compte à la conversation du projet, et un thread peut toujours utiliser des subagents pour ses propres tâches secondaires.

495* **Projects dans le chat claude.ai et Cowork** : l'[expérience Projects antérieure](https://support.claude.com/en/articles/9517075-what-are-projects), qui groupe les conversations et les fichiers de référence sans threads ni coordinateur. Ces projets continuent à fonctionner comme ils le font aujourd'hui jusqu'à ce que l'expérience repensée les atteigne.495* **Projects dans le chat claude.ai et Cowork** : l'[expérience Projects antérieure](https://support.claude.com/en/articles/9517075-what-are-projects), qui groupe les conversations et les fichiers de référence sans threads ni coordinateur. Ces projets continuent à fonctionner comme ils le font aujourd'hui jusqu'à ce que l'expérience repensée les atteigne.

Details

106| `--input-format` | Spécifier le format d'entrée pour le mode impression (options : `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |106| `--input-format` | Spécifier le format d'entrée pour le mode impression (options : `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |

107| `--json-schema` | Obtenir une sortie JSON validée correspondant à un JSON Schema après que l'agent ait terminé son flux de travail (mode impression uniquement). Voir [structured outputs](/docs/fr/agent-sdk/structured-outputs). Claude Code quitte avec une erreur sur un schéma invalide et accepte le mot-clé `format` comme annotation sans validation côté client | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |107| `--json-schema` | Obtenir une sortie JSON validée correspondant à un JSON Schema après que l'agent ait terminé son flux de travail (mode impression uniquement). Voir [structured outputs](/docs/fr/agent-sdk/structured-outputs). Claude Code quitte avec une erreur sur un schéma invalide et accepte le mot-clé `format` comme annotation sans validation côté client | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

108| `--maintenance` | Exécuter les hooks d'[initialisation](/docs/fr/hooks#setup) avec le matcher `maintenance` avant la session (mode impression uniquement) | `claude -p --maintenance "query"` |108| `--maintenance` | Exécuter les hooks d'[initialisation](/docs/fr/hooks#setup) avec le matcher `maintenance` avant la session (mode impression uniquement) | `claude -p --maintenance "query"` |

109| `--max-budget-usd` | Montant maximum en dollars à dépenser en appels API avant l'arrêt (mode impression uniquement). Claude Code compare le plafond à son [estimation des coûts côté client](/docs/fr/agent-sdk/cost-tracking#estimates-not-billing), qui peut différer de votre facture. Les dépenses des [sous-agents](/docs/fr/sub-agents) comptent dans le plafond. Lorsque vous revenez à une conversation avec `--continue` ou `--resume`, les totaux [restaurés à partir des exécutions antérieures](/docs/fr/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) n'y comptent pas. Une fois que les dépenses atteignent le plafond, le lancement d'un autre sous-agent échoue avec `Budget limit reached`, et Claude Code arrête les sous-agents en arrière-plan qui s'exécutent encore ; les comportements d'application du plafond nécessitent Claude Code v2.1.217 ou ultérieur | `claude -p --max-budget-usd 5.00 "query"` |109| `--max-budget-usd` | Arrêter l'exécution une fois que les dépenses estimées en appels API atteignent ce montant (mode impression uniquement). Claude Code compare le plafond à son [estimation des coûts côté client](/docs/fr/agent-sdk/cost-tracking#estimates-not-billing), qui peut différer de votre facture. Les dépenses des [sous-agents](/docs/fr/sub-agents) comptent dans le plafond. Les dépenses peuvent dépasser le plafond, donc [prévoyez une marge](/docs/fr/agent-sdk/agent-loop#budget-headroom). Lorsque vous revenez à une conversation avec `--continue` ou `--resume`, les totaux [restaurés à partir des exécutions antérieures](/docs/fr/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) n'y comptent pas. Une fois que les dépenses atteignent le plafond, le lancement d'un autre sous-agent échoue avec `Budget limit reached`, et Claude Code arrête les sous-agents en arrière-plan qui s'exécutent encore ; les comportements d'application du plafond nécessitent Claude Code v2.1.217 ou ultérieur | `claude -p --max-budget-usd 5.00 "query"` |

110| `--max-turns` | Limiter le nombre de tours d'agent (mode impression uniquement). Quitte avec une erreur lorsque la limite est atteinte. Pas de limite par défaut. Avec `--input-format stream-json`, un message toujours en file d'attente lorsque la limite termine un tour reste en file d'attente et démarre un nouveau tour avec sa propre limite | `claude -p --max-turns 3 "query"` |110| `--max-turns` | Limiter le nombre de tours d'agent (mode impression uniquement). Quitte avec une erreur lorsque la limite est atteinte. Pas de limite par défaut. Avec `--input-format stream-json`, un message toujours en file d'attente lorsque la limite termine un tour reste en file d'attente et démarre un nouveau tour avec sa propre limite | `claude -p --max-turns 3 "query"` |

111| `--mcp-config` | Charger les serveurs MCP à partir de fichiers ou de chaînes JSON (séparés par des espaces). Lorsque vous transmettez ce drapeau avec `-p`, Claude Code attend que les serveurs toujours en attente se connectent avant d'exécuter le premier tour, jusqu'au délai d'expiration de démarrage [`MCP_TIMEOUT`](/docs/fr/env-vars), 30 secondes par défaut ; un serveur avec une [liste d'outils mise en cache](/docs/fr/mcp#managing-your-servers) ignore l'attente et se connecte à la première utilisation. L'attente nécessite Claude Code v2.1.221 ou ultérieur | `claude --mcp-config ./mcp.json` |111| `--mcp-config` | Charger les serveurs MCP à partir de fichiers ou de chaînes JSON (séparés par des espaces). Lorsque vous transmettez ce drapeau avec `-p`, Claude Code attend que les serveurs toujours en attente se connectent avant d'exécuter le premier tour, jusqu'au délai d'expiration de démarrage [`MCP_TIMEOUT`](/docs/fr/env-vars), 30 secondes par défaut ; un serveur avec une [liste d'outils mise en cache](/docs/fr/mcp#managing-your-servers) ignore l'attente et se connecte à la première utilisation. L'attente nécessite Claude Code v2.1.221 ou ultérieur | `claude --mcp-config ./mcp.json` |

112| `--model` | Définit le modèle pour la session actuelle avec un [alias de modèle](/docs/fr/model-config#model-aliases) tel que `sonnet`, `opus`, `haiku`, ou `fable`, ou le nom complet d'un modèle. Remplace le paramètre [`model`](/docs/fr/settings-reference#model) et [`ANTHROPIC_MODEL`](/docs/fr/model-config#environment-variables) | `claude --model claude-sonnet-5` |112| `--model` | Définit le modèle pour la session actuelle avec un [alias de modèle](/docs/fr/model-config#model-aliases) tel que `sonnet`, `opus`, `haiku`, ou `fable`, ou le nom complet d'un modèle. Remplace le paramètre [`model`](/docs/fr/settings-reference#model) et [`ANTHROPIC_MODEL`](/docs/fr/model-config#environment-variables) | `claude --model claude-sonnet-5` |

Details

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

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

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

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

311| Vos serveurs MCP `.mcp.json` du dépôt | Oui, dans une session avec un seul dépôt | Partie du clone, trouvé à partir du répertoire de travail de la session |311| Vos serveurs MCP `.mcp.json` du dépôt | Oui, dans une session avec un seul dépôt | Partie du clone, trouvé à partir du répertoire de travail de la session. Pour un environnement auto-hébergé, consultez [quels paramètres de dépôt s'appliquent](/docs/fr/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories) |

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

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

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


575 575 

576Les crochets SessionStart se comportent de la même manière dans le cloud qu'en local, avec ces mises en garde :576Les crochets SessionStart se comportent de la même manière dans le cloud qu'en local, avec ces mises en garde :

577 577 

578* **Un dépôt par session** : une session avec plusieurs dépôts ne charge pas les crochets du `.claude/settings.json` d'aucun dépôt, donc un crochet SessionStart que vous définissez là ne s'exécute pas. Installez les dépendances pour ces sessions avec un [script de configuration](#setup-scripts) à la place.578* **Un dépôt par session** : dans un environnement hébergé par Anthropic, une session avec plusieurs dépôts ne charge pas les hooks du `.claude/settings.json` d'aucun dépôt, donc un hook SessionStart que vous définissez là ne s'exécute pas. Installez les dépendances pour ces sessions avec un [script de configuration](#setup-scripts) à la place. Pour un environnement auto-hébergé, consultez [les paramètres de quel dépôt s'appliquent](/docs/fr/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

579* **Pas de limitation au cloud uniquement** : les crochets s'exécutent dans les sessions locales et cloud. Pour ignorer l'exécution locale, quittez tôt sauf si la variable d'environnement `CLAUDE_CODE_REMOTE` est `true`, de la même manière que le [script d'installation de dépendances](#install-dependencies-with-a-sessionstart-hook) le fait.579* **Pas de limitation au cloud uniquement** : les crochets s'exécutent dans les sessions locales et cloud. Pour ignorer l'exécution locale, quittez tôt sauf si la variable d'environnement `CLAUDE_CODE_REMOTE` est `true`, de la même manière que le [script d'installation de dépendances](#install-dependencies-with-a-sessionstart-hook) le fait.

580* **Nécessite un accès réseau** : les commandes d'installation doivent atteindre les registres de paquets. Si votre environnement utilise un accès réseau **None**, ces crochets échouent. La [liste d'autorisation par défaut](#default-allowed-domains) sous **Trusted** couvre npm, PyPI, RubyGems et crates.io.580* **Nécessite un accès réseau** : les commandes d'installation doivent atteindre les registres de paquets. Si votre environnement utilise un accès réseau **None**, ces crochets échouent. La [liste d'autorisation par défaut](#default-allowed-domains) sous **Trusted** couvre npm, PyPI, RubyGems et crates.io.

581* **Compatibilité proxy** : dans les environnements hébergés par Anthropic, tout le trafic sortant passe par un [proxy de sécurité](#security-proxy), et certains gestionnaires de paquets ne fonctionnent pas correctement avec lui ; Bun est un exemple connu. Dans un [environnement auto-hébergé](/docs/fr/self-hosted-environments-deploy#default-deny-egress), le trafic sortant va via votre propre limite réseau à la place.581* **Compatibilité proxy** : dans les environnements hébergés par Anthropic, tout le trafic sortant passe par un [proxy de sécurité](#security-proxy), et certains gestionnaires de paquets ne fonctionnent pas correctement avec lui ; Bun est un exemple connu. Dans un [environnement auto-hébergé](/docs/fr/self-hosted-environments-deploy#default-deny-egress), le trafic sortant va via votre propre limite réseau à la place.

desktop.md +1 −1

Details

396 Travailler en parallèle avec les sessions396 Travailler en parallèle avec les sessions

397</h3>397</h3>

398 398 

399Cliquez sur **+ Nouvelle session** dans la barre latérale, ou appuyez sur **Cmd+N** sur macOS ou **Ctrl+N** sur Windows, pour travailler sur plusieurs tâches en parallèle. Appuyez sur **Ctrl+Tab** et **Ctrl+Shift+Tab** pour parcourir les sessions dans la barre latérale. Pour les dépôts Git, sélectionnez l'option **worktree** à côté du nom de la branche pour donner à la session sa propre copie isolée de votre projet en utilisant [Git worktrees](/docs/fr/worktrees), donc les modifications dans une session n'affectent pas les autres sessions jusqu'à ce que vous les commitiez.399Cliquez sur **+ Nouvelle session** dans la barre latérale, ou appuyez sur **Cmd+N** sur macOS ou **Ctrl+N** sur Windows, pour travailler sur plusieurs tâches en parallèle. Appuyez sur **Ctrl+Tab** et **Ctrl+Shift+Tab** pour parcourir les sessions dans la barre latérale. Pour les dépôts Git, sélectionnez l'option **worktree** à côté du nom de la branche pour donner à la session sa propre copie isolée de votre projet en utilisant [Git worktrees](/docs/fr/worktrees).

400 400 

401Pour afficher deux sessions à la fois, maintenez **Cmd** sur macOS ou **Ctrl** sur Windows et cliquez sur une session dans la barre latérale. La session s'ouvre dans un deuxième volet à côté de celui que vous avez déjà ouvert. Pendant que la division est active, cliquer sur une autre session de la barre latérale remplace le volet qui a le focus. Appuyez sur **Cmd+\\** sur macOS ou **Ctrl+\\** sur Windows pour fermer le volet actif et revenir à une seule session.401Pour afficher deux sessions à la fois, maintenez **Cmd** sur macOS ou **Ctrl** sur Windows et cliquez sur une session dans la barre latérale. La session s'ouvre dans un deuxième volet à côté de celui que vous avez déjà ouvert. Pendant que la division est active, cliquer sur une autre session de la barre latérale remplace le volet qui a le focus. Appuyez sur **Cmd+\\** sur macOS ou **Ctrl+\\** sur Windows pour fermer le volet actif et revenir à une seule session.

402 402 

env-vars.md +2 −1

Details

204| `CLAUDE_AFK_TIMEOUT_MS` | Nombre de millisecondes d'inactivité avant qu'une boîte de dialogue [`AskUserQuestion`](/docs/fr/tools-reference) sans réponse ne se poursuive automatiquement sans vous. La poursuite automatique est désactivée par défaut ; activez-la avec le paramètre [`askUserQuestionTimeout`](/docs/fr/settings-reference#askuserquestiontimeout). Cette variable sert de remplacement pour les démos et les tests automatisés : lorsqu'elle est définie, elle a priorité sur ce paramètre et active la poursuite automatique même lorsque le paramètre n'est pas défini ou vaut `never`. Définir `0` ne désactive pas le délai ; cela ferme immédiatement la boîte de dialogue. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Avant la v2.1.200, la poursuite automatique était activée par défaut avec un délai de `60000` (60 secondes). Nécessite Claude Code v2.1.198 ou version ultérieure |204| `CLAUDE_AFK_TIMEOUT_MS` | Nombre de millisecondes d'inactivité avant qu'une boîte de dialogue [`AskUserQuestion`](/docs/fr/tools-reference) sans réponse ne se poursuive automatiquement sans vous. La poursuite automatique est désactivée par défaut ; activez-la avec le paramètre [`askUserQuestionTimeout`](/docs/fr/settings-reference#askuserquestiontimeout). Cette variable sert de remplacement pour les démos et les tests automatisés : lorsqu'elle est définie, elle a priorité sur ce paramètre et active la poursuite automatique même lorsque le paramètre n'est pas défini ou vaut `never`. Définir `0` ne désactive pas le délai ; cela ferme immédiatement la boîte de dialogue. Ignorée dans les [paramètres de projet et locaux](/docs/fr/settings-reference#variables-claude-code-ignores-in-env). Avant la v2.1.200, la poursuite automatique était activée par défaut avec un délai de `60000` (60 secondes). Nécessite Claude Code v2.1.198 ou version ultérieure |

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

206| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Définissez `1` pour ne pas ajouter le préfixe `mcp__<server>__` aux noms des outils des serveurs MCP créés par le SDK. Les outils utilisent leurs noms d'origine. Utilisation avec le SDK uniquement |206| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Définissez `1` pour ne pas ajouter le préfixe `mcp__<server>__` aux noms des outils des serveurs MCP créés par le SDK. Les outils utilisent leurs noms d'origine. Utilisation avec le SDK uniquement |

207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Délai de blocage en millisecondes pour les sous-agents. Par défaut `600000` (10 minutes) ; si vous augmentez `CLAUDE_STREAM_IDLE_TIMEOUT_MS` alors que le watchdog de streaming est actif, la valeur par défaut augmente en conséquence, comme le décrit [Gérer les réponses API lentes ou bloquées](/docs/fr/agent-sdk/typescript#handle-slow-or-stalled-api-responses). Le minuteur est réinitialisé à chaque événement de progression du streaming ; si aucune progression n'arrive dans l'intervalle, Claude Code interrompt le sous-agent et signale le blocage au parent |207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Délai d'expiration de blocage en millisecondes pour les sous-agents. Couvre également les [agents de workflow](/docs/fr/workflows#when-an-agent-stalls-and-restarts) sur Claude Code v2.1.286 ou ultérieur. Par défaut `600000` (10 minutes) ; si vous augmentez `CLAUDE_STREAM_IDLE_TIMEOUT_MS` alors que le watchdog de flux est actif, la valeur par défaut augmente avec lui, comme le décrit [Gérer les réponses API lentes ou bloquées](/docs/fr/agent-sdk/typescript#handle-slow-or-stalled-api-responses) |

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

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

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


378| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Âge maximal en millisecondes du dernier message de la transcription pour qu'une session terminée en plein tour se poursuive automatiquement à la reprise. Lorsque le dernier message est plus ancien que cette limite, Claude Code ignore la reprise automatique de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` et son message de continuation `CLAUDE_CODE_RESUME_PROMPT`, et la session démarre inactive pour que vous la poursuiviez explicitement. Non définie ou `0` signifie aucune limite, sauf qu'un tour dont la dernière requête a échoué avec une erreur d'API ne reprend que tant que cette erreur date de moins de six heures. Une valeur positive limite tous les tours, y compris ceux-là ; une valeur négative ou non numérique applique une limite d'une heure. Les scripts de lancement d'agents de longue durée peuvent la définir pour qu'un redémarrage sur une ancienne transcription ne réexécute pas un prompt obsolète. Claude Code définit lui-même une limite d'une heure lorsqu'il redémarre une session de la [vue des agents](/docs/fr/agent-view) ayant planté qui a hérité sa conversation d'une session interactive. Nécessite Claude Code v2.1.211 ou ultérieur |378| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Âge maximal en millisecondes du dernier message de la transcription pour qu'une session terminée en plein tour se poursuive automatiquement à la reprise. Lorsque le dernier message est plus ancien que cette limite, Claude Code ignore la reprise automatique de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` et son message de continuation `CLAUDE_CODE_RESUME_PROMPT`, et la session démarre inactive pour que vous la poursuiviez explicitement. Non définie ou `0` signifie aucune limite, sauf qu'un tour dont la dernière requête a échoué avec une erreur d'API ne reprend que tant que cette erreur date de moins de six heures. Une valeur positive limite tous les tours, y compris ceux-là ; une valeur négative ou non numérique applique une limite d'une heure. Les scripts de lancement d'agents de longue durée peuvent la définir pour qu'un redémarrage sur une ancienne transcription ne réexécute pas un prompt obsolète. Claude Code définit lui-même une limite d'une heure lorsqu'il redémarre une session de la [vue des agents](/docs/fr/agent-view) ayant planté qui a hérité sa conversation d'une session interactive. Nécessite Claude Code v2.1.211 ou ultérieur |

379| `CLAUDE_CODE_RESUME_PROMPT` | Remplace le message de continuation que Claude Code envoie à Claude lorsque `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` poursuit un tour interrompu au lieu de renvoyer son prompt, ou lorsque vous reprenez un [appel d'outil différé](/docs/fr/hooks#defer-a-tool-call-for-later) avec `-p`. Par défaut : `Continue from where you left off.`. Une chaîne vide utilise la valeur par défaut |379| `CLAUDE_CODE_RESUME_PROMPT` | Remplace le message de continuation que Claude Code envoie à Claude lorsque `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` poursuit un tour interrompu au lieu de renvoyer son prompt, ou lorsque vous reprenez un [appel d'outil différé](/docs/fr/hooks#defer-a-tool-call-for-later) avec `-p`. Par défaut : `Continue from where you left off.`. Une chaîne vide utilise la valeur par défaut |

380| `CLAUDE_CODE_RETRY_WATCHDOG` | Définir sur `1` pour les sessions sans surveillance comme les harnais d'évaluation, les jobs CI ou les workers distants. Réessaie indéfiniment en cas d'erreurs de capacité `429` et `529` au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Claude Code échoue immédiatement lorsqu'une requête à vitesse standard reçoit un `429` signalant une limite de dépenses ou des crédits d'utilisation épuisés, même s'il provient d'un [plafond de dépenses de passerelle](/docs/fr/errors#spend-limit-reached) réinitialisé selon un calendrier. Avant la v2.1.239, le watchdog réessayait indéfiniment dans ces cas. Pour les requêtes en mode rapide, voir [Gérer les limites de débit](/docs/fr/fast-mode#handle-rate-limits). Le watchdog espace les tentatives jusqu'à 5 minutes, ou jusqu'à la réinitialisation de la limite lorsque la réponse indique une heure de réinitialisation de la limite de débit, de sorte qu'une session qui atteint une limite d'utilisation patiente jusqu'à la fin de la fenêtre restante. À partir de la v2.1.199, il porte également à 300 le nombre de nouvelles tentatives par défaut pour les autres erreurs transitoires, comme les erreurs serveur, les délais d'expiration et les connexions interrompues, soit environ trois heures de backoff, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez explicitement cette variable. Nécessite Claude Code v2.1.186 ou ultérieur |380| `CLAUDE_CODE_RETRY_WATCHDOG` | Définir sur `1` pour les sessions sans surveillance comme les harnais d'évaluation, les jobs CI ou les workers distants. Réessaie indéfiniment en cas d'erreurs de capacité `429` et `529` au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Claude Code échoue immédiatement lorsqu'une requête à vitesse standard reçoit un `429` signalant une limite de dépenses ou des crédits d'utilisation épuisés, même s'il provient d'un [plafond de dépenses de passerelle](/docs/fr/errors#spend-limit-reached) réinitialisé selon un calendrier. Avant la v2.1.239, le watchdog réessayait indéfiniment dans ces cas. Pour les requêtes en mode rapide, voir [Gérer les limites de débit](/docs/fr/fast-mode#handle-rate-limits). Le watchdog espace les tentatives jusqu'à 5 minutes, ou jusqu'à la réinitialisation de la limite lorsque la réponse indique une heure de réinitialisation de la limite de débit, de sorte qu'une session qui atteint une limite d'utilisation patiente jusqu'à la fin de la fenêtre restante. À partir de la v2.1.199, il porte également à 300 le nombre de nouvelles tentatives par défaut pour les autres erreurs transitoires, comme les erreurs serveur, les délais d'expiration et les connexions interrompues, soit environ trois heures de backoff, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez explicitement cette variable. Nécessite Claude Code v2.1.186 ou ultérieur |

381| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Durée maximale en millisecondes que chaque requête API passe à attendre la fin des erreurs `429` et `529` lorsque `CLAUDE_CODE_RETRY_WATCHDOG` est défini. Une fois cette durée écoulée, la prochaine erreur de ce type met fin à la requête. Indiquez un nombre entier positif en chiffres simples, par exemple `1800000` pour 30 minutes. Lorsqu'elle n'est pas définie, l'attente n'a pas de limite. Nécessite Claude Code v2.1.295 ou ultérieure |

381| `CLAUDE_CODE_SAFE_MODE` | Définir sur `1` pour démarrer en mode sans échec : CLAUDE.md, les skills, les plugins, les hooks, les serveurs MCP, les commandes et agents personnalisés, les styles de sortie, les workflows, les thèmes personnalisés, les raccourcis clavier personnalisés, les commandes de barre de statut et de suggestion de fichiers, les serveurs LSP et la mémoire automatique ne sont pas chargés, afin de dépanner une configuration défaillante. La politique des paramètres gérés s'applique toujours, y compris les hooks, la barre de statut et les commandes de suggestion de fichiers configurés par la politique ; ce n'est pas le cas des plugins gérés, des skills gérés, du CLAUDE.md géré et des serveurs MCP configurés par la politique. Équivaut à passer [`--safe-mode`](/docs/fr/cli-reference#cli-flags). Les processus enfants lancés directement héritent de la variable |382| `CLAUDE_CODE_SAFE_MODE` | Définir sur `1` pour démarrer en mode sans échec : CLAUDE.md, les skills, les plugins, les hooks, les serveurs MCP, les commandes et agents personnalisés, les styles de sortie, les workflows, les thèmes personnalisés, les raccourcis clavier personnalisés, les commandes de barre de statut et de suggestion de fichiers, les serveurs LSP et la mémoire automatique ne sont pas chargés, afin de dépanner une configuration défaillante. La politique des paramètres gérés s'applique toujours, y compris les hooks, la barre de statut et les commandes de suggestion de fichiers configurés par la politique ; ce n'est pas le cas des plugins gérés, des skills gérés, du CLAUDE.md géré et des serveurs MCP configurés par la politique. Équivaut à passer [`--safe-mode`](/docs/fr/cli-reference#cli-flags). Les processus enfants lancés directement héritent de la variable |

382| `CLAUDE_CODE_SCRIPT_CAPS` | Objet JSON limitant le nombre de fois où des scripts spécifiques peuvent être invoqués par session lorsque `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` est défini. Les clés sont des sous-chaînes comparées au texte de la commande ; les valeurs sont des limites d'appels entières. Par exemple, `{"deploy.sh": 2}` permet d'appeler `deploy.sh` au maximum deux fois. La correspondance repose sur les sous-chaînes, de sorte que les astuces d'expansion du shell comme `./scripts/deploy.sh $(evil)` sont tout de même comptabilisées. La démultiplication à l'exécution via `xargs` ou `find -exec` n'est pas détectée ; il s'agit d'un contrôle de défense en profondeur |383| `CLAUDE_CODE_SCRIPT_CAPS` | Objet JSON limitant le nombre de fois où des scripts spécifiques peuvent être invoqués par session lorsque `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` est défini. Les clés sont des sous-chaînes comparées au texte de la commande ; les valeurs sont des limites d'appels entières. Par exemple, `{"deploy.sh": 2}` permet d'appeler `deploy.sh` au maximum deux fois. La correspondance repose sur les sous-chaînes, de sorte que les astuces d'expansion du shell comme `./scripts/deploy.sh $(evil)` sont tout de même comptabilisées. La démultiplication à l'exécution via `xargs` ou `find -exec` n'est pas détectée ; il s'agit d'un contrôle de défense en profondeur |

383| `CLAUDE_CODE_SCROLL_SPEED` | Définit le multiplicateur de défilement de la molette de la souris en [rendu plein écran](/docs/fr/fullscreen#mouse-wheel-scrolling). Accepte toute valeur positive jusqu'à 20, y compris des valeurs fractionnaires inférieures à 1 comme `0.5` pour ralentir le défilement accéléré du trackpad et de la molette dans les terminaux qui amplifient déjà les événements de molette. Définir sur `3` pour reproduire le comportement de `vim` si votre terminal envoie un événement de molette par cran sans amplification. Ignorée dans le terminal des IDE JetBrains, où Claude Code utilise sa propre gestion du défilement |384| `CLAUDE_CODE_SCROLL_SPEED` | Définit le multiplicateur de défilement de la molette de la souris en [rendu plein écran](/docs/fr/fullscreen#mouse-wheel-scrolling). Accepte toute valeur positive jusqu'à 20, y compris des valeurs fractionnaires inférieures à 1 comme `0.5` pour ralentir le défilement accéléré du trackpad et de la molette dans les terminaux qui amplifient déjà les événements de molette. Définir sur `3` pour reproduire le comportement de `vim` si votre terminal envoie un événement de molette par cran sans amplification. Ignorée dans le terminal des IDE JetBrains, où Claude Code utilise sa propre gestion du défilement |

errors.md +1 −1

Details

4064 Marketplace is already added from a different source4064 Marketplace is already added from a different source

4065</h3>4065</h3>

4066 4066 

4067Vous avez confirmé l'ajout d'une marketplace via [`/plugin install <plugin> --marketplace <source>`](/docs/fr/plugins/install#add-a-marketplace-and-install-in-one-command), et le catalogue que Claude Code a récupéré à partir de cette source se nomme lui-même de la même façon qu'une marketplace que vous avez déjà ajoutée à partir d'une source différente. Claude Code conserve la marketplace existante au lieu de la remplacer, et le plugin n'est pas installé.4067Vous avez indiqué une nouvelle source de marketplace avec [`--marketplace <source>` sur la commande d'installation](/docs/fr/plugins/install#add-a-marketplace-and-install-in-one-command), dans une session ou depuis votre shell. Le catalogue que Claude Code a récupéré à partir de cette source porte le même nom qu'une marketplace que vous avez déjà ajoutée à partir d'une source différente. Claude Code conserve la marketplace existante au lieu de la remplacer, et le plugin n'est pas installé.

4068 4068 

4069```text theme={null}4069```text theme={null}

4070Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.4070Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

glossary.md +1 −1

Details

511 Worktree isolation511 Worktree isolation

512</h3>512</h3>

513 513 

514Un mode d'isolation qui exécute Claude dans un worktree git séparé sous `.claude/worktrees/`, activé avec le drapeau `-w` ou `isolation: worktree` dans la configuration du subagent. Les modifications restent sur une branche séparée dans un répertoire séparé, afin que les agents parallèles ne se remplacent pas les fichiers les uns des autres.514Un mode d'isolation qui exécute Claude dans un worktree git séparé sous `.claude/worktrees/`, activé avec le flag `-w` ou `isolation: worktree` dans la configuration du sous-agent. Les modifications restent sur une branche séparée dans un répertoire séparé, de sorte que chaque agent parallèle modifie sa propre copie des fichiers.

515 515 

516En savoir plus : [Run parallel sessions with git worktrees](/docs/fr/worktrees)516En savoir plus : [Run parallel sessions with git worktrees](/docs/fr/worktrees)

517 517 

hooks.md +19 −8

Details

1237 Contrôle de décision de SessionStart1237 Contrôle de décision de SessionStart

1238</h4>1238</h4>

1239 1239 

1240Claude Code ajoute au contexte de Claude la sortie stdout qu'il [traite comme du texte brut](#exit-code-0). En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, vous pouvez renvoyer ces champs propres à l'événement :1240Un hook SessionStart peut ajouter du contexte pour Claude, fournir le premier message utilisateur, définir le titre de la session, surveiller des fichiers et recharger les skills. Renvoyez le champ correspondant à chacune de ces actions, en plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks :

1241 1241 

1242| Champ | Description |1242| Champ | Description |

1243| :- | :- |1243| :- | :- |

1244| `additionalContext` | Chaîne ajoutée au contexte de Claude au début de la conversation, avant le premier prompt. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) pour savoir comment le texte est transmis et ce qu'il faut y mettre |1244| `additionalContext` | Chaîne ajoutée au contexte de Claude au début de la conversation, avant le premier prompt. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) pour savoir comment le texte est transmis et ce qu'il faut y mettre |

1245| `initialUserMessage` | Chaîne utilisée comme premier message utilisateur de la session. S'applique en [mode non interactif](/docs/fr/headless) avec le flag `-p`, où elle devient le premier tour même si aucun prompt n'est fourni. Si un prompt est fourni, il suit comme tour suivant. Contrairement à `additionalContext`, qui se rattache à un tour existant, ce champ crée le tour |1245| `initialUserMessage` | Chaîne utilisée comme premier message utilisateur de la session, en [mode non interactif](/docs/fr/headless) avec le flag `-p`. Elle devient le premier tour même si vous ne passez aucun prompt. Un prompt que vous passez suit comme tour suivant |

1246| `sessionTitle` | Définit le titre de la session, avec le même effet que `/rename`. À utiliser pour nommer automatiquement les sessions à partir du dossier de lancement, de la branche git ou du nom du worktree. S'applique lorsque `source` vaut `"startup"`, `"resume"` ou `"fork"` ; ignoré pour `"clear"` et `"compact"` |1246| `sessionTitle` | Définit le titre de la session, avec le même effet que `/rename`. S'applique lorsque `source` vaut `"startup"`, `"resume"` ou `"fork"` |

1247| `watchPaths` | Tableau de chemins absolus à surveiller pour les événements [FileChanged](#filechanged) pendant cette session |1247| `watchPaths` | Tableau de chemins absolus à surveiller pour les événements [FileChanged](#filechanged) pendant cette session |

1248| `reloadSkills` | Booléen. Lorsqu'il vaut `true`, Claude Code analyse à nouveau les répertoires de [skills](/docs/fr/skills) et de commandes une fois les hooks SessionStart terminés, afin que les skills installés par le hook soient disponibles dans la même session, dès le premier prompt |1248| `reloadSkills` | Booléen. Lorsqu'il vaut `true`, Claude Code analyse de nouveau les répertoires de [skills](/docs/fr/skills) et de commandes une fois les hooks SessionStart terminés. Consultez [Recharger les skills installés par un hook](#reload-skills-that-a-hook-installs) |

1249 

1250Cette sortie ajoute du contexte et nomme la session :

1249 1251 

1250```json theme={null}1252```json theme={null}

1251{1253{


1257}1259}

1258```1260```

1259 1261 

1260Comme la sortie stdout brute parvient déjà à Claude pour cet événement, un hook qui se contente de charger du contexte peut écrire directement sur stdout sans construire de JSON. Utilisez la forme JSON lorsque vous devez combiner le contexte avec d'autres champs comme `sessionTitle`.1262Un hook qui se contente d'ajouter du contexte peut l'afficher sans construire de JSON, car Claude Code ajoute la [sortie stdout en texte brut](#exit-code-0) d'un hook SessionStart au contexte de Claude.

1263 

1264Si le hook SessionStart de votre plugin fournit `initialUserMessage` ou `sessionTitle`, installez le plugin avant le démarrage de la session. Claude Code ignore ces deux champs provenant d'un plugin dont l'installation se termine après l'exécution des hooks SessionStart.

1265 

1266<h4 id="reload-skills-that-a-hook-installs">

1267 Recharger les skills installés par un hook

1268</h4>

1269 

1270Pour rendre les skills installés par un hook SessionStart disponibles dans la même session, renvoyez `reloadSkills`. La découverte des skills s'exécute normalement avant la fin des hooks SessionStart ; sans ce champ, les fichiers qu'un hook écrit dans `~/.claude/skills/` ou `.claude/skills/` peuvent être absents lors de l'exécution du premier prompt.

1261 1271 

1262Utilisez `reloadSkills` lorsqu'un hook SessionStart installe ou met à jour des skills. La découverte des skills s'exécute normalement avant la fin des hooks SessionStart ; les fichiers que le hook écrit dans `~/.claude/skills/` ou `.claude/skills/` n'apparaîtraient donc sinon que dans la session suivante. Cet exemple synchronise un dépôt de skills partagé et demande la nouvelle analyse :1272Cet exemple synchronise un dépôt de skills partagé et demande une nouvelle analyse :

1263 1273 

1264```bash theme={null}1274```bash theme={null}

1265#!/bin/bash1275#!/bin/bash


1270echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1280echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1271```1281```

1272 1282 

1273L'URL du dépôt est un exemple fictif ; remplacez-la par votre propre dépôt de skills. Avec cette URL fictive, le clonage échoue et affiche un message `fatal:` sur stderr. La sortie stderr d'un hook SessionStart qui se termine avec le code 0 est purement informative, donc la demande `reloadSkills` s'applique tout de même.1283L'URL du dépôt est un exemple fictif. Remplacez-la par votre propre dépôt de skills.

1274 1284 

1275<h4 id="persist-environment-variables">1285<h4 id="persist-environment-variables">

1276 Conserver les variables d'environnement1286 Conserver les variables d'environnement


1860| :- | :- | :- | :- |1870| :- | :- | :- | :- |

1861| `url` | string | `"https://example.com/api"` | URL à partir de laquelle récupérer le contenu |1871| `url` | string | `"https://example.com/api"` | URL à partir de laquelle récupérer le contenu |

1862| `prompt` | string | `"Extract the API endpoints"` | Prompt à exécuter sur le contenu récupéré |1872| `prompt` | string | `"Extract the API endpoints"` | Prompt à exécuter sur le contenu récupéré |

1873| `offset` | number | `100000` | Nombre facultatif de caractères à ignorer depuis le début de la page. Claude le définit pour poursuivre la lecture d'une page longue. Nécessite Claude Code v2.1.290 ou ultérieure |

1863 1874 

1864<h5 id="websearch">1875<h5 id="websearch">

1865 WebSearch1876 WebSearch


4279Les hooks asynchrones ont des contraintes supplémentaires par rapport aux hooks synchrones :4290Les hooks asynchrones ont des contraintes supplémentaires par rapport aux hooks synchrones :

4280 4291 

4281* La sortie du hook est livrée au tour de conversation suivant. Si la session est inactive, la réponse attend jusqu'à la prochaine interaction utilisateur. Exception : un hook `asyncRewake` qui quitte avec le code 2 réveille Claude immédiatement même lorsque la session est inactive.4292* La sortie du hook est livrée au tour de conversation suivant. Si la session est inactive, la réponse attend jusqu'à la prochaine interaction utilisateur. Exception : un hook `asyncRewake` qui quitte avec le code 2 réveille Claude immédiatement même lorsque la session est inactive.

4282* Chaque exécution crée un processus en arrière-plan séparé. Il n'y a pas de déduplication sur plusieurs déclenchements du même hook asynchrone.4293* Chaque exécution crée un processus en arrière-plan séparé.

4283 4294 

4284<h2 id="security-considerations">4295<h2 id="security-considerations">

4285 Considérations de sécurité4296 Considérations de sécurité

Details

599 599 

600Dans les sessions connectées à une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) via `/login`, la CLI marque les exports avec l'identité authentifiée : `user.id` correspond au sujet de l'IdP, `user.email` à l'adresse e-mail connectée, et `user.groups` contient l'appartenance aux groupes de l'IdP sous forme de chaîne séparée par des virgules. Chaque export contient également `identity.source: gateway-oidc`. L'identité de la passerelle est appliquée en dernier, de sorte que les clés `user.*` et `identity.*` définies via `OTEL_RESOURCE_ATTRIBUTES` sont ignorées dans ces sessions.600Dans les sessions connectées à une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway) via `/login`, la CLI marque les exports avec l'identité authentifiée : `user.id` correspond au sujet de l'IdP, `user.email` à l'adresse e-mail connectée, et `user.groups` contient l'appartenance aux groupes de l'IdP sous forme de chaîne séparée par des virgules. Chaque export contient également `identity.source: gateway-oidc`. L'identité de la passerelle est appliquée en dernier, de sorte que les clés `user.*` et `identity.*` définies via `OTEL_RESOURCE_ATTRIBUTES` sont ignorées dans ces sessions.

601 601 

602<Note>

603 Les événements que Claude Code journalise avant qu'un développeur ne se connecte ne portent pas l'identité de la passerelle. Lorsque Claude Code ouvre une session déconnectée de la passerelle, par exemple après que [la passerelle a mis fin à la connexion](/docs/fr/errors#cloud-gateway-session-expired), les événements de démarrage journalisés avant la connexion portent le `user.id` anonyme et aucun `identity.source`. Il s'agit notamment de [`managed_settings_resolved`](#managed-settings-resolved-event), [`plugin_loaded`](#plugin-loaded-event) et [`mcp_server_connection`](#mcp-server-connection-event).

604</Note>

605 

602Pour les attributs d'identité des sessions Claude Desktop et Cowork qui se connectent via une passerelle, consultez la [référence `telemetry` de la passerelle](/docs/fr/claude-apps-gateway-config#telemetry).606Pour les attributs d'identité des sessions Claude Desktop et Cowork qui se connectent via une passerelle, consultez la [référence `telemetry` de la passerelle](/docs/fr/claude-apps-gateway-config#telemetry).

603 607 

604Les événements incluent en plus les attributs suivants. Ceux-ci ne sont jamais attachés aux métriques, car ils entraîneraient une cardinalité non bornée :608Les événements incluent en plus les attributs suivants. Ceux-ci ne sont jamais attachés aux métriques, car ils entraîneraient une cardinalité non bornée :

Details

91| `-y, --yes` | Acceptez la commande d'installation affichée sans l'invite `Run this command now?`. Ignoré quand la commande s'exécute dans une session Claude Code, comme depuis l'outil Bash ou un hook. Nécessite Claude Code v2.1.229 ou ultérieur |91| `-y, --yes` | Acceptez la commande d'installation affichée sans l'invite `Run this command now?`. Ignoré quand la commande s'exécute dans une session Claude Code, comme depuis l'outil Bash ou un hook. Nécessite Claude Code v2.1.229 ou ultérieur |

92| `--accept-command <sha256>` | Acceptez la commande d'installation affichée dont le `sha256` une exécution [`--json` précédente](#plugin-json-result) a rapporté dans `shownCommand`, à la place de `-y`. Ne peut pas être combiné avec `-y`. Voir [Accepter une commande d'installation affichée](#accept-a-displayed-install-command). Nécessite Claude Code v2.1.271 ou ultérieur |92| `--accept-command <sha256>` | Acceptez la commande d'installation affichée dont le `sha256` une exécution [`--json` précédente](#plugin-json-result) a rapporté dans `shownCommand`, à la place de `-y`. Ne peut pas être combiné avec `-y`. Voir [Accepter une commande d'installation affichée](#accept-a-displayed-install-command). Nécessite Claude Code v2.1.271 ou ultérieur |

93| `--json` | Affiche le résultat en tant qu'un objet JSON sur la dernière ligne de stdout au lieu du message lisible par l'homme, pour utilisation dans les scripts. Voir [Format de résultat JSON](#plugin-json-result). Nécessite Claude Code v2.1.268 ou ultérieur |93| `--json` | Affiche le résultat en tant qu'un objet JSON sur la dernière ligne de stdout au lieu du message lisible par l'homme, pour utilisation dans les scripts. Voir [Format de résultat JSON](#plugin-json-result). Nécessite Claude Code v2.1.268 ou ultérieur |

94| `--marketplace <source>` | Installez `<plugin>`, donné par son nom nu, depuis la marketplace à `<source>`, en ajoutant d'abord la marketplace si vous ne l'avez pas encore ajoutée. Voir [Ajouter une marketplace et installer en une seule commande](/docs/fr/plugins/install#add-a-marketplace-and-install-in-one-command). Nécessite Claude Code v2.1.292 ou ultérieur |

94 95 

95Exécutez `claude plugin install --help` dans votre shell pour voir chaque option que votre version supporte.96Exécutez `claude plugin install --help` dans votre shell pour voir chaque option que votre version supporte.

96 97 

Details

189 189 

190* **Portée** : portée utilisateur par défaut. Passez `--scope project` ou `--scope local` pour le modifier.190* **Portée** : portée utilisateur par défaut. Passez `--scope project` ou `--scope local` pour le modifier.

191* **Quand les plugins se chargent** : les plugins qu'il installe se chargent la prochaine fois que vous démarrez Claude Code, ou lorsque vous exécutez `/reload-plugins` dans une session déjà ouverte.191* **Quand les plugins se chargent** : les plugins qu'il installe se chargent la prochaine fois que vous démarrez Claude Code, ou lorsque vous exécutez `/reload-plugins` dans une session déjà ouverte.

192* **La marketplace doit d'abord être ajoutée** : sur une machine où personne n'a ouvert une session Claude Code interactive, la marketplace officielle n'est pas enregistrée, donc un script qui installe à partir de celle-ci exécute `claude plugin marketplace add anthropics/claude-plugins-official` avant l'installation.192* **La marketplace sur une nouvelle machine** : sur une machine où personne n'a encore ouvert de session Claude Code interactive, la marketplace officielle n'est pas enregistrée, donc un script qui installe à partir de celle-ci exécute `claude plugin marketplace add anthropics/claude-plugins-official` avant l'installation. Consultez [Ajouter et installer à partir de votre shell](#add-and-install-from-your-shell).

193 193 

194```bash theme={null}194```bash theme={null}

195claude plugin install formatter@your-org --scope project195claude plugin install formatter@your-org --scope project


232 Ajouter une marketplace et installer en une seule commande232 Ajouter une marketplace et installer en une seule commande

233</h3>233</h3>

234 234 

235Pour installer un plugin à partir d'une marketplace que vous n'avez pas encore ajoutée, exécutez `/plugin install` dans une session Claude Code et nommez la source de la marketplace avec `--marketplace`. Nécessite Claude Code v2.1.275 ou ultérieur.235Pour installer un plugin à partir d'une marketplace que vous n'avez pas encore ajoutée, nommez la source de la marketplace avec `--marketplace` dans la commande d'installation, dans une session ou à partir de votre shell. La source prend [les mêmes formes que `/plugin marketplace add`](#add-a-marketplace), telles que GitHub `owner/repo`, une URL git ou un chemin local. Donnez le nom du plugin seul, sans suffixe `@marketplace`.

236 

237<h4 id="add-and-install-in-a-session">

238 Ajouter et installer dans une session

239</h4>

240 

241Exécutez `/plugin install` dans une session Claude Code avec le plugin et la source. Nécessite Claude Code v2.1.275 ou ultérieur. Dans une session, la source ne peut pas contenir d'espaces.

236 242 

237```text theme={null}243```text theme={null}

238/plugin install deploy-helper --marketplace your-org/plugins244/plugin install deploy-helper --marketplace your-org/plugins

239```245```

240 246 

241La source prend [les mêmes formes que `/plugin marketplace add`](#add-a-marketplace), telles que GitHub `owner/repo`, une URL git ou un chemin local, sauf qu'elle ne peut pas contenir d'espaces. Donnez le nom du plugin seul, sans suffixe `@marketplace`.

242 

243Si vous n'avez pas encore ajouté cette marketplace, Claude Code affiche la source qu'il a résolue et vous demande de confirmer avant de l'ajouter. Une fois la marketplace ajoutée, les détails du plugin s'ouvrent et vous choisissez une [portée d'installation](#install-a-plugin). Si la source correspond à une marketplace que vous avez déjà ajoutée, Claude Code ignore la confirmation et ouvre les détails du plugin dans cette marketplace.247Si vous n'avez pas encore ajouté cette marketplace, Claude Code affiche la source qu'il a résolue et vous demande de confirmer avant de l'ajouter. Une fois la marketplace ajoutée, les détails du plugin s'ouvrent et vous choisissez une [portée d'installation](#install-a-plugin). Si la source correspond à une marketplace que vous avez déjà ajoutée, Claude Code ignore la confirmation et ouvre les détails du plugin dans cette marketplace.

244 248 

249<h4 id="add-and-install-from-your-shell">

250 Ajouter et installer à partir de votre shell

251</h4>

252 

253Dans votre shell, sans démarrer de session, exécutez `claude plugin install` avec le plugin et la source. Nécessite Claude Code v2.1.292 ou ultérieur.

254 

255```bash theme={null}

256claude plugin install deploy-helper --marketplace your-org/plugins

257```

258 

259La commande shell ajoute la marketplace sans étape de confirmation. Une marketplace que vous avez déjà ajoutée à partir de cette source est réutilisée. Une nouvelle marketplace est ajoutée avec les mêmes [vérifications de politique d'organisation](/docs/fr/plugins/org#restrict-what-users-can-install) que `claude plugin marketplace add`, et elle est déclarée dans vos paramètres utilisateur même lorsque vous passez `--scope project`.

260 

245<h3 id="add-a-private-marketplace">261<h3 id="add-a-private-marketplace">

246 Ajouter une marketplace privée262 Ajouter une marketplace privée

247</h3>263</h3>

Details

138| `$.mcp.call` | Appelle un outil sur un serveur MCP connecté, selon les règles de permission de la session |138| `$.mcp.call` | Appelle un outil sur un serveur MCP connecté, selon les règles de permission de la session |

139| `$.model.complete` | Utilise le plan ou la clé API de l'utilisateur pour les appels de modèle |139| `$.model.complete` | Utilise le plan ou la clé API de l'utilisateur pour les appels de modèle |

140| `$.prompt.submit` | Soumet une invite, et peut l'envoyer comme les propres paroles de l'utilisateur |140| `$.prompt.submit` | Soumet une invite, et peut l'envoyer comme les propres paroles de l'utilisateur |

141| `$.session.send` | Envoie un message qu'une autre session ou sous-agent de Claude lit |141| `$.session.send` | Envoie un message que lit le Claude d'une autre session, d'un sous-agent ou d'un [coéquipier](/docs/fr/agent-teams) |

142 142 

143Dans la ligne `hooks:`, [`tool.call`](/docs/fr/plugins/mods/reference#tools) et [`prompt.submit`](/docs/fr/plugins/mods/reference#prompts-and-what-claude-reads) signifient que le mod voit chaque appel d'outil et chaque invite, et peut les changer. [`session.append`](/docs/fr/plugins/mods/reference#session) signifie que le mod peut réécrire chaque ligne de la conversation avant qu'elle ne soit stockée. [`ui.render{component=AskUserQuestion}`](/docs/fr/plugins/mods/interface#change-what-claude-code-already-draws) signifie que le mod peut redessiner la boîte de dialogue que Claude utilise pour poser une question à l'utilisateur. `tool.check` signifie que le mod peut approuver ou refuser un appel d'outil avant qu'une invite de permission n'apparaisse. [Savoir ce qui se passe par défaut](#know-what-happens-by-default) liste lesquels de vos règles et hooks ont la priorité sur sa réponse.143Dans la ligne `hooks:`, [`tool.call`](/docs/fr/plugins/mods/reference#tools) et [`prompt.submit`](/docs/fr/plugins/mods/reference#prompts-and-what-claude-reads) signifient que le mod voit chaque appel d'outil et chaque invite, et peut les changer. [`session.append`](/docs/fr/plugins/mods/reference#session) signifie que le mod peut réécrire chaque ligne de la conversation avant qu'elle ne soit stockée. [`ui.render{component=AskUserQuestion}`](/docs/fr/plugins/mods/interface#change-what-claude-code-already-draws) signifie que le mod peut redessiner la boîte de dialogue que Claude utilise pour poser une question à l'utilisateur. `tool.check` signifie que le mod peut approuver ou refuser un appel d'outil avant qu'une invite de permission n'apparaisse. [Savoir ce qui se passe par défaut](#know-what-happens-by-default) liste lesquels de vos règles et hooks ont la priorité sur sa réponse.

144 144 

Details

140| Appel | Ce que l'utilisateur voit |140| Appel | Ce que l'utilisateur voit |

141| :- | :- |141| :- | :- |

142| `$.ui.status(text)` | Une ligne sous l'invite qui reste jusqu'à ce que vous la changiez. Elle commence par `⚠` et le nom du mod, comme dans `⚠ my-mod: checks: 3 passing`. |142| `$.ui.status(text)` | Une ligne sous l'invite qui reste jusqu'à ce que vous la changiez. Elle commence par `⚠` et le nom du mod, comme dans `⚠ my-mod: checks: 3 passing`. |

143| `$.ui.toast(text)` | Une notification toast en haut à droite, avec le nom du mod au-dessus du texte, qui disparaît après quelques secondes |143| `$.ui.toast(text)` | Une notification toast avec le nom du mod qui disparaît après quelques secondes. Il s'agit d'une boîte en haut à droite en [rendu plein écran](/docs/fr/fullscreen), et d'une ligne à droite sous l'invite dans le moteur de rendu classique. |

144| `$.ui.log(text)` | Une ligne atténuée dans la transcription que Claude ne lit pas. Elle commence par `●` et le nom du mod, comme dans `● my-mod: build finished`. |144| `$.ui.log(text)` | Une ligne atténuée dans la transcription que Claude ne lit pas. Elle commence par `●` et le nom du mod, comme dans `● my-mod: build finished`. |

145 145 

146<h3 id="start-a-turn-from-a-background-job">146<h3 id="start-a-turn-from-a-background-job">


159 Envoyer et recevoir des messages entre les sessions159 Envoyer et recevoir des messages entre les sessions

160</h2>160</h2>

161 161 

162Un mod peut envoyer un message en texte brut à une autre de vos sessions ou à l'un des sous-agents de cette session, et observer les messages qui arrivent et partent. `$.session.send({ to, text })` en envoie un, la même livraison que l'outil SendMessage fait. `to` est `{ sessionId }` pour une session, `{ agentId }` pour un sous-agent de `$.agent.list()`, ou l'adresse de chaîne d'où provient un message reçu. L'appel se résout une fois que le message est mis en file d'attente, avec `{ isDelivered: true }`. Quand rien n'a été livré, il se résout avec `{ isDelivered: false, reason }`, et `reason` dit pourquoi.162Un mod peut envoyer un message en texte brut à une autre de vos sessions, à l'un des sous-agents de cette session ou à un coéquipier de son [équipe d'agents](/docs/fr/agent-teams). Il peut aussi observer les messages qui arrivent et partent.

163 

164Pour en envoyer un, appelez `$.session.send({ to, text })`, qui effectue la même livraison que l'outil SendMessage. Définissez `to` selon le destinataire du message :

165 

166* **Une autre de vos sessions** : `{ sessionId }`

167* **Un sous-agent ou un coéquipier** : `{ agentId }`, avec un id provenant de `$.agent.list()`

168* **L'expéditeur d'un message que vous avez reçu** : l'adresse de chaîne d'où provient ce message

169 

170L'appel se résout une fois que le message est mis en file d'attente, avec `{ isDelivered: true }`. Quand rien n'a été livré, il se résout avec `{ isDelivered: false, reason }`, et `reason` dit pourquoi.

163 171 

164Ce hook répond à une commande `/ping`, [enregistrée comme une commande](#add-a-command), en demandant à la session dont vous tapez l'id après un statut :172Ce hook répond à une commande `/ping`, [enregistrée comme une commande](#add-a-command), en demandant à la session dont vous tapez l'id après un statut :

165 173 

Details

281 281 

282`result.usage` contient le nombre de tokens que l'API Claude indique pour une requête, ainsi que le `model` qui a répondu : `input_tokens`, `output_tokens`, `cache_read_input_tokens` et `cache_creation_input_tokens`. Le hook s'exécute aussi pour les requêtes des sous-agents ; vérifiez donc `e.agentId` si vous ne souhaitez traiter que la conversation principale.282`result.usage` contient le nombre de tokens que l'API Claude indique pour une requête, ainsi que le `model` qui a répondu : `input_tokens`, `output_tokens`, `cache_read_input_tokens` et `cache_creation_input_tokens`. Le hook s'exécute aussi pour les requêtes des sous-agents ; vérifiez donc `e.agentId` si vous ne souhaitez traiter que la conversation principale.

283 283 

284Pour voir les appels d'outils que l'API a exécutés elle-même pendant la requête, comme les appels à l'[outil advisor](/docs/fr/advisor), lisez `result.serverToolUses`. Claude Code n'exécute pas ces appels ; aucun hook `tool.call` ou `tool.check` ne se déclenche donc pour eux. Le champ est absent lorsque la réponse ne contient aucun appel de ce type, et il nécessite Claude Code v2.1.290 ou une version ultérieure.

285 

284<h3 id="hook-the-settings-hook-events">286<h3 id="hook-the-settings-hook-events">

285 Gérer les événements des hooks des paramètres287 Gérer les événements des hooks des paramètres

286</h3>288</h3>

Details

10 10 

11Cette carte montre où un mod peut dessiner dans une session de terminal :11Cette carte montre où un mod peut dessiner dans une session de terminal :

12 12 

13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Carte d'une session de terminal Claude Code. Un mod peut ajouter un volet comme barre latérale à droite, un toast en haut à droite de la transcription, une ligne de journal dans la transcription, une bande au-dessus de l'invite, et une barre de statut sous l'invite. Un mod peut redessiner les messages, les lignes d'appels d'outils, et le spinner. L'invite est celle de Claude Code." width="600" height="336" data-path="images/mods-screen-map.svg" />13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Carte d'une session de terminal Claude Code en rendu plein écran. Un mod peut ajouter un volet comme barre latérale à droite, un toast en haut à droite de la transcription, une ligne de journal dans la transcription, une bande au-dessus de l'invite, et une barre de statut sous l'invite. Un mod peut redessiner les messages, les lignes d'appels d'outils, et le spinner. L'invite est celle de Claude Code." width="600" height="336" data-path="images/mods-screen-map.svg" />

14 14 

15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Carte d'une session de terminal Claude Code. Un mod peut ajouter un volet comme barre latérale à droite, un toast en haut à droite de la transcription, une ligne de journal dans la transcription, une bande au-dessus de l'invite, et une barre de statut sous l'invite. Un mod peut redessiner les messages, les lignes d'appels d'outils, et le spinner. L'invite est celle de Claude Code." width="600" height="336" data-path="images/mods-screen-map-dark.svg" />15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Carte d'une session de terminal Claude Code en rendu plein écran. Un mod peut ajouter un volet comme barre latérale à droite, un toast en haut à droite de la transcription, une ligne de journal dans la transcription, une bande au-dessus de l'invite, et une barre de statut sous l'invite. Un mod peut redessiner les messages, les lignes d'appels d'outils, et le spinner. L'invite est celle de Claude Code." width="600" height="336" data-path="images/mods-screen-map-dark.svg" />

16 16 

17Dans un terminal plus étroit, le volet se trouve au-dessus de l'invite au lieu d'être à côté de la transcription.17Dans un terminal plus étroit, le volet se trouve au-dessus de l'invite au lieu d'être à côté de la transcription.

18 18 


324| `title` | L'étiquette d'onglet du volet quand plus d'un volet est ouvert |324| `title` | L'étiquette d'onglet du volet quand plus d'un volet est ouvert |

325| `focus` | Demande le [focus clavier](#know-which-keys-your-mod-can-receive) |325| `focus` | Demande le [focus clavier](#know-which-keys-your-mod-can-receive) |

326| `closeOnEscape` | Fait que Esc ferme le volet |326| `closeOnEscape` | Fait que Esc ferme le volet |

327| `holdToasts` | Retient les toasts, les petits avis de [`$.ui.toast`](/docs/fr/plugins/mods/api#show-something-without-starting-a-turn), jusqu'à ce que le volet se ferme |327| `holdToasts` | Dans le terminal, retient les toasts tant que ce volet est celui qui s'affiche. Voir [Retenir les toasts derrière un dialogue](#hold-toasts-behind-a-dialog). |

328| `rows` | La hauteur à demander quand le volet se trouve au-dessus de l'invite. La valeur par défaut est un tiers de l'espace. |328| `rows` | La hauteur à demander quand le volet se trouve au-dessus de l'invite. La valeur par défaut est un tiers de l'espace. |

329| `columns` | La largeur à demander quand le volet se trouve à côté de la transcription |329| `columns` | La largeur à demander quand le volet se trouve à côté de la transcription |

330 330 


337 337 

338Pour laisser une commande ouvrir le volet pendant que Claude travaille, ajoutez `immediate: true` quand vous [enregistrez la commande](/docs/fr/plugins/mods/api#add-a-command). Sans cela, une commande tapée pendant un tour attend la fin du tour.338Pour laisser une commande ouvrir le volet pendant que Claude travaille, ajoutez `immediate: true` quand vous [enregistrez la commande](/docs/fr/plugins/mods/api#add-a-command). Sans cela, une commande tapée pendant un tour attend la fin du tour.

339 339 

340<h4 id="hold-toasts-behind-a-dialog">

341 Retenir les toasts derrière un dialogue

342</h4>

343 

344Passez `holdToasts: true` à `$.ui.open` quand le volet est un dialogue auquel l'utilisateur répond avant de le quitter, afin que les toasts n'apparaissent pas pendant qu'il décide. Dans le terminal, la retenue dure tant que ce volet est celui qui s'affiche, et un toast déclenché pendant ce temps attend la fin de la retenue.

345 

346Claude Code retient les toasts des autres mods et ses propres notifications éphémères, ainsi que ceux que votre mod déclenche avec [`$.ui.toast`](/docs/fr/plugins/mods/api#show-something-without-starting-a-turn). Omettez ce champ pour un volet qui reste ouvert, afin que l'utilisateur continue de les voir.

347 

340<h4 id="when-a-pane-waits-for-a-wider-terminal">348<h4 id="when-a-pane-waits-for-a-wider-terminal">

341 Quand un volet attend un terminal plus large349 Quand un volet attend un terminal plus large

342</h4>350</h4>

Details

209| [`$.ui`](/docs/fr/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |209| [`$.ui`](/docs/fr/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |

210| [`$.command`](/docs/fr/plugins/mods/api#add-a-command) | `register`, `run`, `list` |210| [`$.command`](/docs/fr/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

211| [`$.tool`](/docs/fr/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |211| [`$.tool`](/docs/fr/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |

212| `$.agent` | `register`, `spawn`, `list` |212| `$.agent` | `register`, `spawn`, `list`. `list()` renvoie les sous-agents et coéquipiers de cette session, chacun avec un `status` parmi `pending`, `running`, `waiting`, `idle`, `completed`, `failed` ou `killed`, où `idle` et `waiting` nécessitent Claude Code v2.1.289 ou une version ultérieure. |

213| [`$.model`](/docs/fr/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |213| [`$.model`](/docs/fr/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |

214| [`$.prompt`](/docs/fr/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`, `read`, `fill`, `suggest`, `compose`. Claude lit le texte de `submit({ text })` après une phrase qui désigne votre mod comme expéditeur. `submit({ text, asUser: true })` envoie le texte comme s'il s'agissait des propres mots de l'utilisateur, sans cette phrase. |214| [`$.prompt`](/docs/fr/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`, `read`, `fill`, `suggest`, `compose`. Claude lit le texte de `submit({ text })` après une phrase qui désigne votre mod comme expéditeur. `submit({ text, asUser: true })` envoie le texte comme s'il s'agissait des propres mots de l'utilisateur, sans cette phrase. |

215| `$.turn` | `abort` |215| `$.turn` | `abort` |


317| Délai d'expiration de `$.process.run` | 30 secondes par défaut, 10 minutes au maximum |317| Délai d'expiration de `$.process.run` | 30 secondes par défaut, 10 minutes au maximum |

318| `maxTokens` de `$.model.complete` | 1024 par défaut, jusqu'à 64 000 ou la limite de sortie du modèle |318| `maxTokens` de `$.model.complete` | 1024 par défaut, jusqu'à 64 000 ou la limite de sortie du modèle |

319| `$.fs.read` et `$.fs.write` | 4 Mio pour un fichier |319| `$.fs.read` et `$.fs.write` | 4 Mio pour un fichier |

320| La raison `drop` d'un hook ou la raison `deny` de `config.set` | 4 096 caractères. La fin d'une raison plus longue est tronquée, et le drop ou le deny s'applique quand même. La troncature nécessite Claude Code v2.1.292 ou une version ultérieure ; sur les versions antérieures, le hook [échoue](/docs/fr/plugins/mods/events#handle-a-hook-that-fails) à la place. |

320| Texte dans un arbre | Les 100 000 premiers caractères sont dessinés |321| Texte dans un arbre | Les 100 000 premiers caractères sont dessinés |

321| Le `language` ou le `path` d'un `Code`, la `value` d'une option `Select`, ou le `module` d'un `Client` | 10 000 caractères. Si l'un d'eux est plus long, Claude Code [dessine sa propre version du site](/docs/fr/plugins/mods/interface#build-a-tree-from-elements). |322| Le `language` ou le `path` d'un `Code`, la `value` d'une option `Select`, ou le `module` d'un `Client` | 10 000 caractères. Si l'un d'eux est plus long, Claude Code [dessine sa propre version du site](/docs/fr/plugins/mods/interface#build-a-tree-from-elements). |

322| Le `href` d'un `Link` | 2 048 caractères. Un `href` plus long empêche le dessin de l'arbre entier. |323| Le `href` d'un `Link` | 2 048 caractères. Un `href` plus long empêche le dessin de l'arbre entier. |

Details

110* `returned neither { value } nor { deny }` : un stub pour un appel d'API des mods a retourné une valeur nue, ce qui fait échouer le test110* `returned neither { value } nor { deny }` : un stub pour un appel d'API des mods a retourné une valeur nue, ce qui fait échouer le test

111* `no implementation for` suivi d'un nom : votre mod a fait cet appel et aucun stub ne le répond111* `no implementation for` suivi d'un nom : votre mod a fait cet appel et aucun stub ne le répond

112 112 

113Le kit exporte également des mocks en mémoire qui répondent à un espace de noms entier pour vous. `mock.clock(on)` répond à [`$.clock`](/docs/fr/plugins/mods/api#run-work-in-the-background), `mock.store(on, { count: 7 })` répond à `$.store` à partir d'un magasin qui commence par ces entrées, et `mock.env(on, { CI: 'true' })` répond à `$.env.get` à partir de ces variables. `mock.clock` retourne une horloge simulée que votre test avance, afin qu'un test d'une minuterie n'attende pas. `mock.store` ne retourne rien, donc pour vérifier ce que votre mod a enregistré, écrivez vous-même les deux stubs `store` comme le fait le [test de dessin](#test-a-drawing).113Le kit exporte également des mocks prêts à l'emploi pour l'horloge, le magasin, les variables d'environnement et les lignes ajoutées à la conversation :

114 

115* **`mock.clock(on)`** : répond à [`$.clock`](/docs/fr/plugins/mods/api#run-work-in-the-background) et retourne une horloge simulée que votre test avance, afin qu'un test d'une minuterie n'attende pas.

116* **`mock.store(on, { count: 7 })`** : répond à `$.store` à partir d'un magasin qui commence par ces entrées. Il ne retourne rien, donc pour vérifier ce que votre mod a enregistré, écrivez vous-même les deux stubs `store` comme le fait le [test de dessin](#test-a-drawing).

117* **`mock.env(on, { CI: 'true' })`** : répond à `$.env.get` à partir de ces variables.

118* **`mock.session(on)`** : retourne une session simulée dont la méthode `appended()` liste les lignes que votre mod a ajoutées avec [`$.session.append`](/docs/fr/plugins/mods/reference#session), de la plus ancienne à la plus récente ; nécessite Claude Code v2.1.293 ou ultérieur.

114 119 

115<h3 id="follow-the-test-kit’s-rules">120<h3 id="follow-the-test-kit’s-rules">

116 Suivre les règles du kit de test121 Suivre les règles du kit de test


168 Rechercher ce qu'un stub retourne173 Rechercher ce qu'un stub retourne

169</h3>174</h3>

170 175 

171Chaque appel d'API des mods que votre mod fait dans un test a besoin d'un stub qui répond à la place de Claude Code, sauf les quelques-uns que le kit répond lui-même : les appels [`$.ui.invalidate`](/docs/fr/plugins/mods/interface#redraw-when-something-changes) et [`$.state`](/docs/fr/plugins/mods/interface#keep-state). Pour les appels `$.clock`, utilisez `mock.clock(on)`, sinon votre mod `$.clock.now()` échoue avec `no implementation for clock.now`.176Chaque appel d'API des mods que votre mod fait dans un test a besoin d'un stub qui répond à la place de Claude Code, sauf les quelques-uns que le kit répond lui-même : les appels [`$.ui.invalidate`](/docs/fr/plugins/mods/interface#redraw-when-something-changes), [`$.state`](/docs/fr/plugins/mods/interface#keep-state) et `$.session.append`. Pour les appels `$.clock`, utilisez `mock.clock(on)`, sinon votre mod `$.clock.now()` échoue avec `no implementation for clock.now`.

172 177 

173Ce tableau liste ceux que les mods utilisent le plus. La première colonne est l'appel que votre mod fait ou l'événement qu'il transmet avec `next(e)`. La deuxième est la fonction à passer à `on` sous ce nom, afin que la ligne `$.store.get` devienne `on('store.get', ($, e) => ({ value: saved.get(e.key) }))`. Un `'...'` dans un stub marque le texte pour vous à remplir :178Ce tableau liste ceux que les mods utilisent le plus. La première colonne est l'appel que votre mod fait ou l'événement qu'il transmet avec `next(e)`. La deuxième est la fonction à passer à `on` sous ce nom, afin que la ligne `$.store.get` devienne `on('store.get', ($, e) => ({ value: saved.get(e.key) }))`. Un `'...'` dans un stub marque le texte pour vous à remplir :

174 179 

Details

209 Un dessin n'apparaît pas ou ne répond pas209 Un dessin n'apparaît pas ou ne répond pas

210</h2>210</h2>

211 211 

212Le mod s'est chargé, et son volet, sa bande ou ses contrôles ne se comportent pas comme prévu.212Le mod s'est chargé, et son volet, sa bande, son toast ou ses contrôles ne se comportent pas comme prévu.

213 213 

214<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">214<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">

215 Un volet ou une bande est vide ou affiche le contenu habituel de Claude Code215 Un volet ou une bande est vide ou affiche le contenu habituel de Claude Code


247 247 

248Ouvrez le volet à partir d'une commande ou d'un bouton, ou vérifiez le résultat `isPlaced` de l'appel. Voir [Ouvrir un volet au bon moment](/docs/fr/plugins/mods/interface#open-a-pane-at-the-right-time).248Ouvrez le volet à partir d'une commande ou d'un bouton, ou vérifiez le résultat `isPlaced` de l'appel. Voir [Ouvrir un volet au bon moment](/docs/fr/plugins/mods/interface#open-a-pane-at-the-right-time).

249 249 

250<h3 id="a-toast-doesn’t-appear">

251 Un toast n'apparaît pas

252</h3>

253 

254Votre mod appelle [`$.ui.toast`](/docs/fr/plugins/mods/api#show-something-without-starting-a-turn) dans une session de terminal interactive et vous ne voyez pas le toast. Pour confirmer que l'appel s'est exécuté, cherchez dans le [journal de débogage](#read-the-debug-log) une ligne contenant le nom de votre mod et le texte du toast, comme dans `$.ui.toast (first-mod): build finished`. Vérifiez ensuite des causes comme celles-ci :

255 

256* **La ligne de l'appel est absente** : cherchez-en une qui indique pourquoi Claude Code a refusé l'appel, comme dans `first-mod: $.ui.toast dropped: timeoutMs is a whole number of ms, 1 to 60000`.

257* **Un volet retient les toasts** : votre mod ou un autre a passé [`holdToasts`](/docs/fr/plugins/mods/interface#hold-toasts-behind-a-dialog) à l'ouverture du volet affiché. Fermez le volet pour mettre fin à la retenue. Si le volet est le vôtre et doit rester ouvert, supprimez `holdToasts` de son appel `$.ui.open` et rouvrez le volet.

258* **Le toast est sous le prompt** : dans le [moteur de rendu classique](/docs/fr/fullscreen#enable-fullscreen-rendering), regardez à droite sous le prompt. Un toast à cet endroit est une ligne qui commence par le nom du mod, plutôt qu'une boîte en haut à droite.

259* **Votre mod a émis un toast plus récent** : dans le moteur de rendu classique, un toast plus récent de votre mod peut remplacer un toast affiché ou en attente d'affichage. Le journal de débogage contient une autre ligne pour l'ancien toast, qui se termine par `gave way, cut short` s'il était affiché, ou par `gave way, unseen` s'il n'est jamais apparu. Pour afficher les deux messages, placez-les dans un seul toast.

260* **Le toast a expiré sans être dessiné** : en rendu plein écran, Claude Code dessine au plus trois toasts à la fois, si bien qu'un toast peut expirer avant d'être dessiné. Le journal de débogage contient une autre ligne pour ce toast, qui se termine par `left the stack, never drawn`. Lorsque votre mod en émet plusieurs à la fois, placez les messages dans un seul toast.

261 

262Avant la v2.1.290, Claude Code abandonnait un toast émis moins de deux secondes après le dernier qu'il avait affiché pour votre mod, et la ligne du journal de débogage pour le toast abandonné indiquait `within 2000ms of the last; dropped`.

263 

250<h3 id="hotkeys-do-nothing">264<h3 id="hotkeys-do-nothing">

251 Les raccourcis clavier ne font rien265 Les raccourcis clavier ne font rien

252</h3>266</h3>

Details

129* Ajouter la marketplace une fois : `claude plugin marketplace add your-org/your-marketplace`, où l'argument est un raccourci GitHub `owner/repo`, une URL ou un chemin129* Ajouter la marketplace une fois : `claude plugin marketplace add your-org/your-marketplace`, où l'argument est un raccourci GitHub `owner/repo`, une URL ou un chemin

130* Installer le plugin : `claude plugin install deploy-helper@your-marketplace`130* Installer le plugin : `claude plugin install deploy-helper@your-marketplace`

131* Ou faire les deux à partir d'une session : `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Nécessite Claude Code v2.1.275 ou ultérieur. Voir [Ajouter une marketplace et installer en une commande](/docs/fr/plugins/install#add-a-marketplace-and-install-in-one-command)131* Ou faire les deux à partir d'une session : `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Nécessite Claude Code v2.1.275 ou ultérieur. Voir [Ajouter une marketplace et installer en une commande](/docs/fr/plugins/install#add-a-marketplace-and-install-in-one-command)

132* Ou faire les deux à partir du shell en une seule commande : `claude plugin install deploy-helper --marketplace your-org/your-marketplace`. Nécessite Claude Code v2.1.292 ou ultérieur

132 133 

133<h3 id="ship-updates-to-users">134<h3 id="ship-updates-to-users">

134 Livrer les mises à jour aux utilisateurs135 Livrer les mises à jour aux utilisateurs

Details

163 `Invalid marketplace source format`163 `Invalid marketplace source format`

164</h3>164</h3>

165 165 

166Vous avez exécuté `/plugin marketplace add <source>` ou `claude plugin marketplace add <source>`, et Claude Code a répondu `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.166Vous avez exécuté `/plugin marketplace add <source>`, `claude plugin marketplace add <source>` ou `claude plugin install <plugin> --marketplace <source>`, et Claude Code a répondu `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.

167 167 

168Claude Code accepte une source dans l'une de ces formes :168Claude Code accepte une source dans l'une de ces formes :

169 169 


568 `Marketplace "<name>" is already added from a different source`568 `Marketplace "<name>" is already added from a different source`

569</h3>569</h3>

570 570 

571Vous avez confirmé l'ajout d'une marketplace via [`/plugin install <plugin> --marketplace <source>`](/docs/fr/plugins/install#add-a-marketplace-and-install-in-one-command), et le catalogue que Claude Code a récupéré à partir de cette source a le même nom qu'une marketplace que vous avez déjà ajoutée à partir d'une source différente. Claude Code conserve la marketplace existante au lieu de la remplacer, et le plugin n'est pas installé.571Vous avez indiqué une nouvelle source de marketplace avec [`--marketplace <source>` dans la commande d'installation](/docs/fr/plugins/install#add-a-marketplace-and-install-in-one-command), dans une session ou depuis votre shell. Le catalogue que Claude Code a récupéré à partir de cette source a le même nom qu'une marketplace que vous avez déjà ajoutée à partir d'une source différente. Claude Code conserve la marketplace existante au lieu de la remplacer, et le plugin n'est pas installé.

572 572 

573Le message complet ressemble à ceci :573Le message complet ressemble à ceci :

574 574 

Details

403 403 

404* Le [fichier MCP géré](/docs/fr/managed-mcp) de portée entreprise, à son chemin système standard : `/etc/claude-code/managed-mcp.json` sur les hôtes de runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` sur les hôtes macOS. Utilisez-le pour les parcs verrouillés où seuls les serveurs listés par un administrateur peuvent être chargés. Consultez [le contrôle exclusif avec managed-mcp.json](/docs/fr/managed-mcp#exclusive-control-with-managed-mcp-json) pour les règles de priorité. Lorsque ce fichier est présent sur l'hôte du runner, Claude Code ignore les serveurs MCP que le plan de contrôle d'Anthropic fournit à une session, y compris les connecteurs claude.ai, et les nomme dans un avertissement sur la sortie stderr du processus enfant de la session, que le runner enregistre au niveau de log `debug`. Avant la v2.1.229, ces sessions se terminaient au démarrage avec `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.404* Le [fichier MCP géré](/docs/fr/managed-mcp) de portée entreprise, à son chemin système standard : `/etc/claude-code/managed-mcp.json` sur les hôtes de runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` sur les hôtes macOS. Utilisez-le pour les parcs verrouillés où seuls les serveurs listés par un administrateur peuvent être chargés. Consultez [le contrôle exclusif avec managed-mcp.json](/docs/fr/managed-mcp#exclusive-control-with-managed-mcp-json) pour les règles de priorité. Lorsque ce fichier est présent sur l'hôte du runner, Claude Code ignore les serveurs MCP que le plan de contrôle d'Anthropic fournit à une session, y compris les connecteurs claude.ai, et les nomme dans un avertissement sur la sortie stderr du processus enfant de la session, que le runner enregistre au niveau de log `debug`. Avant la v2.1.229, ces sessions se terminaient au démarrage avec `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

405* La clé [`managedMcpServers`](/docs/fr/settings-reference#managedmcpservers) dans les [paramètres gérés](/docs/fr/managed-settings) sur l'hôte du runner : elle fournit des serveurs HTTP et SSE sans prendre le contrôle exclusif, de sorte que les serveurs des autres sources sont toujours chargés. Nécessite Claude Code v2.1.259 ou une version ultérieure.405* La clé [`managedMcpServers`](/docs/fr/settings-reference#managedmcpservers) dans les [paramètres gérés](/docs/fr/managed-settings) sur l'hôte du runner : elle fournit des serveurs HTTP et SSE sans prendre le contrôle exclusif, de sorte que les serveurs des autres sources sont toujours chargés. Nécessite Claude Code v2.1.259 ou une version ultérieure.

406* `<repo>/.mcp.json` : portée projet. Faites un commit du fichier dans le dépôt ; ses serveurs sont approuvés automatiquement dans les sessions cloud.406* `<repo>/.mcp.json` : portée projet. Faites un commit du fichier dans le dépôt ; ses serveurs sont approuvés automatiquement dans les sessions cloud. Dans une session comportant plusieurs dépôts, [le fichier d'un seul dépôt au plus est chargé](#repository-settings-in-sessions-with-several-repositories).

407 407 

408Lorsque la fourniture des connecteurs est activée pour votre organisation, le plan de contrôle d'Anthropic fournit les connecteurs que vous avez configurés sur claude.ai aux sessions créées de manière interactive, via une configuration MCP fournie par le serveur et acheminée par `api.anthropic.com`. Les sessions créées par programmation, comme les [dispatches via la CLI](/docs/fr/self-hosted-environments-testing#run-the-test-loop), ne bénéficient pas de la fourniture des connecteurs ; fournissez-leur plutôt des serveurs MCP via l'une des autres sources listées dans cette section. Le jeton OAuth du processus enfant ne comporte pas de scope permettant de récupérer directement les connecteurs ; le processus enfant ne tente donc pas lui-même cette récupération : la fourniture est pilotée par le serveur.408Lorsque la fourniture des connecteurs est activée pour votre organisation, le plan de contrôle d'Anthropic fournit les connecteurs que vous avez configurés sur claude.ai aux sessions créées de manière interactive, via une configuration MCP fournie par le serveur et acheminée par `api.anthropic.com`. Les sessions créées par programmation, comme les [dispatches via la CLI](/docs/fr/self-hosted-environments-testing#run-the-test-loop), ne bénéficient pas de la fourniture des connecteurs ; fournissez-leur plutôt des serveurs MCP via l'une des autres sources listées dans cette section. Le jeton OAuth du processus enfant ne comporte pas de scope permettant de récupérer directement les connecteurs ; le processus enfant ne tente donc pas lui-même cette récupération : la fourniture est pilotée par le serveur.

409 409 


549exit 0549exit 0

550```550```

551 551 

552Le hook pousse Claude à valider et envoyer avant la fin de la session, et reste silencieux quand le répertoire n'est pas un référentiel git ou n'a pas de distant.552Le hook demande à Claude de faire un commit et d'envoyer son travail avant la fin de la session, et reste silencieux quand le répertoire n'est pas un dépôt git ou n'a pas de distant. Pour une session avec plusieurs dépôts, consultez [ce que désigne `$CLAUDE_PROJECT_DIR`](#repository-settings-in-sessions-with-several-repositories).

553 553 

554<h2 id="permissions-and-tool-approval">554<h2 id="permissions-and-tool-approval">

555 Permissions et approbation d'outils555 Permissions et approbation d'outils


578 578 

579Définissez `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` pour semer à partir d'un chemin différent, ou pointez-le vers un répertoire vide pour désactiver le semis.579Définissez `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` pour semer à partir d'un chemin différent, ou pointez-le vers un répertoire vide pour désactiver le semis.

580 580 

581Le `.claude/settings.json` validé dans le référentiel se superpose comme paramètres du projet. Les sessions lisent également [`managed-settings.json`](/docs/fr/settings#where-settings-live) à partir du chemin système standard dans votre image runner. Que ses clés s'appliquent aux côtés des [paramètres gérés par le serveur](/docs/fr/server-managed-settings) suit [comment Claude Code combine les sources gérées](/docs/fr/managed-settings#how-claude-code-combines-managed-sources) : par défaut, quand votre organisation livre des clés gérées par le serveur, les sessions ignorent le fichier de l'image runner à part les [clés que Claude Code lit à partir de chaque source d'administration](/docs/fr/managed-settings#keys-read-from-every-admin-source), comme le bloc `env`, les verrous de sandbox, les chemins binaires de sandbox et `forceRemoteSettingsRefresh`. Voir [précédence des paramètres](/docs/fr/settings#settings-precedence).581Le `.claude/settings.json` commité dans le dépôt se superpose comme paramètres du projet. Dans une session avec plusieurs dépôts, [le fichier d'au plus un dépôt prend effet](#repository-settings-in-sessions-with-several-repositories). Les sessions lisent également [`managed-settings.json`](/docs/fr/settings#where-settings-live) à partir du chemin système standard dans votre image runner. Que ses clés s'appliquent aux côtés des [paramètres gérés par le serveur](/docs/fr/server-managed-settings) suit [comment Claude Code combine les sources gérées](/docs/fr/managed-settings#how-claude-code-combines-managed-sources) : par défaut, quand votre organisation livre des clés gérées par le serveur, les sessions ignorent le fichier de l'image runner à part les [clés que Claude Code lit à partir de chaque source d'administration](/docs/fr/managed-settings#keys-read-from-every-admin-source), comme le bloc `env`, les verrous de sandbox, les chemins binaires de sandbox et `forceRemoteSettingsRefresh`. Voir [priorité des paramètres](/docs/fr/settings#settings-precedence).

582 582 

583Quand le plan de contrôle d'Anthropic fournit une session avec des [hooks Claude Code](/docs/fr/hooks), le runner les installe aux côtés, pas par-dessus, votre propre configuration. Nécessite Claude Code v2.1.229 ou ultérieur.583Quand le plan de contrôle d'Anthropic fournit une session avec des [hooks Claude Code](/docs/fr/hooks), le runner les installe aux côtés, pas par-dessus, votre propre configuration. Nécessite Claude Code v2.1.229 ou ultérieur.

584 584 


590 590 

591L'instantané du `~/.claude/` de l'hôte pris par le runner exclut le répertoire `projects/`. L'emplacement de stockage par défaut de la mémoire automatique se trouve sous ce répertoire. Si vous y placez des fichiers de mémoire, le runner ne les sème pas dans les sessions, et ils n'activent pas la mémoire automatique.591L'instantané du `~/.claude/` de l'hôte pris par le runner exclut le répertoire `projects/`. L'emplacement de stockage par défaut de la mémoire automatique se trouve sous ce répertoire. Si vous y placez des fichiers de mémoire, le runner ne les sème pas dans les sessions, et ils n'activent pas la mémoire automatique.

592 592 

593<h3 id="repository-settings-in-sessions-with-several-repositories">

594 Paramètres de dépôt dans les sessions avec plusieurs dépôts

595</h3>

596 

597Dans une session avec plusieurs dépôts, Claude Code lit les paramètres du projet à partir du répertoire dans lequel la session démarre, donc le `.claude/settings.json` d'au plus un dépôt prend effet comme paramètres du projet. Un hook défini dans le fichier d'un autre dépôt ne s'exécute pas, une règle de refus qui s'y trouve ne s'applique pas, et son `env` n'est pas défini.

598 

599* **`--capacity 1`, la valeur par défaut, avec le checkout intégré** : la session démarre dans le premier dépôt de sa liste de dépôts. Le `.claude/settings.json` de ce dépôt prend effet comme paramètres du projet et son `.mcp.json` se charge, contrairement à ceux des autres dépôts.

600* **Un `--capacity` supérieur à un, ou un [hook `checkout`](#checkout)** : la session démarre dans un répertoire propre à la session qui contient les checkouts. Aucun `.claude/settings.json` de dépôt ne prend effet comme paramètres du projet, aucun `.mcp.json` de dépôt ne se charge, et [`$CLAUDE_PROJECT_DIR`](/docs/fr/hooks#reference-scripts-by-path) dans une commande de hook correspond à ce répertoire, et non à un checkout.

601 

602Le `CLAUDE.md` et les skills de chaque dépôt se chargent quel que soit l'endroit où la session démarre. Le runner transmet chaque dépôt à Claude Code comme [répertoire supplémentaire](/docs/fr/permissions#additional-directories-grant-file-access-not-configuration), donc Claude Code lit aussi les clés `enabledPlugins` et `extraKnownMarketplaces` du `.claude/settings.json` de chaque dépôt.

603 

604Pour exécuter un hook ou appliquer une règle de permission dans chaque session, placez-le dans `~/.claude/settings.json` sur l'hôte du runner. Le runner [sème le fichier de l'hôte dans chaque session](#how-each-session’s-config-is-assembled), quel que soit l'endroit où la session démarre. Écrivez un chemin dans une règle `Read` ou `Edit` sous forme de [pattern](/docs/fr/permissions#read-and-edit) absolu `//` ou relatif au répertoire personnel `~/`, car les autres patterns sont ancrés à la source des paramètres ou au répertoire courant.

605 

593<h3 id="repository-committed-permission-rules">606<h3 id="repository-committed-permission-rules">

594 Règles de permission validées dans le référentiel607 Règles de permission validées dans le référentiel

595</h3>608</h3>

Details

92 92 

93 <Step title="Enregistrer et déployer">93 <Step title="Enregistrer et déployer">

94 Enregistrez vos modifications. Les clients Claude Code reçoivent les paramètres mis à jour au prochain démarrage ou lors du cycle d'interrogation horaire.94 Enregistrez vos modifications. Les clients Claude Code reçoivent les paramètres mis à jour au prochain démarrage ou lors du cycle d'interrogation horaire.

95 

96 L'éditeur vérifie votre JSON par rapport au schéma JSON publié pour les paramètres de Claude Code. S'il détecte un problème dans un JSON qui s'analyse correctement, il affiche un avertissement et renomme le bouton d'enregistrement. Le libellé est **Update with errors** lorsque des paramètres sont déjà enregistrés, et **Add with errors** lorsqu'aucun paramètre n'est encore enregistré. Ce bouton enregistre quand même, car un avertissement de schéma ne bloque pas l'enregistrement.

97 

98 Le schéma [peut être en retard sur les versions les plus récentes](/docs/fr/settings#edit-a-settings-file), de sorte que l'éditeur peut signaler une clé ou une valeur documentée dans la [référence des paramètres](/docs/fr/settings-reference#all-settings). Claude Code reçoit les clés et les valeurs que vous avez enregistrées et exécute [sa propre validation](#invalid-entries-in-delivered-settings) lorsqu'il les charge.

95 </Step>99 </Step>

96</Steps>100</Steps>

97 101 

settings.md +2 −2

Details

521 521 

522Dans une session [Cowork](https://claude.com/docs/cowork/overview) qui s'exécute sur votre machine dans l'application Claude Desktop, Claude Code ne récupère pas les paramètres gérés par le serveur à partir de la console d'administration claude.ai, et il lit la politique déployée sur votre appareil sauf si la configuration Claude Desktop de votre organisation définit `requireCoworkFullVmSandbox`. [Où et quand une politique s'applique](/docs/fr/managed-settings#where-and-when-a-policy-applies) couvre Cowork et les sessions cloud.522Dans une session [Cowork](https://claude.com/docs/cowork/overview) qui s'exécute sur votre machine dans l'application Claude Desktop, Claude Code ne récupère pas les paramètres gérés par le serveur à partir de la console d'administration claude.ai, et il lit la politique déployée sur votre appareil sauf si la configuration Claude Desktop de votre organisation définit `requireCoworkFullVmSandbox`. [Où et quand une politique s'applique](/docs/fr/managed-settings#where-and-when-a-policy-applies) couvre Cowork et les sessions cloud.

523 523 

524Si vous êtes l'administrateur, [Configurez Claude Code pour votre organisation](/docs/fr/admin-setup) vous guide dans le choix de ce qu'il faut appliquer, et [Déployez les paramètres gérés](/docs/fr/managed-settings) couvre la livraison et comment confirmer qu'une politique est en vigueur.524Si vous êtes l'administrateur, [Configurez Claude Code pour votre organisation](/docs/fr/admin-setup) vous guide dans le choix de ce qu'il faut appliquer, et [Déployez les paramètres gérés](/docs/fr/managed-settings) couvre la livraison et comment confirmer qu'une politique est en vigueur. Pour l'avertissement que l'éditeur de paramètres gérés de la console d'administration claude.ai peut afficher, voir [Configurer les paramètres gérés par le serveur](/docs/fr/server-managed-settings#configure-server-managed-settings).

525 525 

526<h2 id="change-a-setting">526<h2 id="change-a-setting">

527 Modifiez un paramètre527 Modifiez un paramètre


809 809 

810Une [session cloud](/docs/fr/claude-code-on-the-web) s'exécute dans un [environnement cloud](/docs/fr/cloud-environments) sur un clone frais de votre référentiel, pas sur votre machine. Cela change quels paramètres l'atteignent :810Une [session cloud](/docs/fr/claude-code-on-the-web) s'exécute dans un [environnement cloud](/docs/fr/cloud-environments) sur un clone frais de votre référentiel, pas sur votre machine. Cela change quels paramètres l'atteignent :

811 811 

812* **Paramètres de projet partagés** (`.claude/settings.json`) : lus dans une session avec un référentiel, car le fichier fait partie du clone et la session démarre à l'intérieur. Validez un paramètre là pour l'appliquer dans ces sessions. Une session avec plusieurs référentiels démarre au-dessus des clones et lit uniquement les clés `enabledPlugins` et `extraKnownMarketplaces` du `.claude/settings.json` de chaque référentiel, pas les règles de permission, les hooks, `env`, ou d'autres clés. Les marketplaces et les plugins que ces deux clés déclarent ne [se chargent toujours pas dans une session cloud](/docs/fr/cloud-environments#what-carries-over-from-your-setup).812* **Paramètres de projet partagés** (`.claude/settings.json`) : lus dans une session avec un dépôt, car le fichier fait partie du clone et la session démarre à l'intérieur. Commitez un paramètre à cet endroit pour l'appliquer dans ces sessions. Dans un environnement hébergé par Anthropic, une session avec plusieurs dépôts démarre au-dessus des clones et lit uniquement les clés `enabledPlugins` et `extraKnownMarketplaces` du `.claude/settings.json` de chaque dépôt, pas les règles de permission, les hooks, `env`, ou d'autres clés. Les marketplaces et les plugins que ces deux clés déclarent ne [se chargent toujours pas dans une session cloud](/docs/fr/cloud-environments#what-carries-over-from-your-setup). Pour un environnement auto-hébergé, consultez [les paramètres de quel dépôt s'appliquent](/docs/fr/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

813* **Paramètres utilisateur et projet local** (`~/.claude/settings.json` et `.claude/settings.local.json`) : non lus. Les deux restent sur votre machine, et le fichier local n'est pas dans le clone.813* **Paramètres utilisateur et projet local** (`~/.claude/settings.json` et `.claude/settings.local.json`) : non lus. Les deux restent sur votre machine, et le fichier local n'est pas dans le clone.

814* **Paramètres gérés** : un fichier `managed-settings.json` ou un profil MDM sur votre appareil ne parvient pas à une session cloud. Les [paramètres gérés par le serveur](/docs/fr/server-managed-settings) de votre organisation le font ; la [couverture de surface](/docs/fr/model-config#surface-coverage) énumère quelles sessions cloud les reçoivent. Un [environnement auto-hébergé](/docs/fr/self-hosted-environments) lit aussi le fichier de paramètres gérés dans son image de runner. [Comment Claude Code combine les sources gérées](/docs/fr/managed-settings#how-claude-code-combines-managed-sources) indique quand ce fichier s'applique.814* **Paramètres gérés** : un fichier `managed-settings.json` ou un profil MDM sur votre appareil ne parvient pas à une session cloud. Les [paramètres gérés par le serveur](/docs/fr/server-managed-settings) de votre organisation le font ; la [couverture de surface](/docs/fr/model-config#surface-coverage) énumère quelles sessions cloud les reçoivent. Un [environnement auto-hébergé](/docs/fr/self-hosted-environments) lit aussi le fichier de paramètres gérés dans son image de runner. [Comment Claude Code combine les sources gérées](/docs/fr/managed-settings#how-claude-code-combines-managed-sources) indique quand ce fichier s'applique.

815* **`/config`** : dans votre navigateur sur claude.ai/code, ouvre la section Claude Code de vos paramètres claude.ai à la place de modifier une valeur. Pour modifier un paramètre pour une session cloud, définissez une [variable d'environnement](/docs/fr/cloud-environments#set-environment-variables) sur l'environnement, ou dans une session avec un référentiel, validez la clé dans le `.claude/settings.json` de ce référentiel.815* **`/config`** : dans votre navigateur sur claude.ai/code, ouvre la section Claude Code de vos paramètres claude.ai à la place de modifier une valeur. Pour modifier un paramètre pour une session cloud, définissez une [variable d'environnement](/docs/fr/cloud-environments#set-environment-variables) sur l'environnement, ou dans une session avec un référentiel, validez la clé dans le `.claude/settings.json` de ce référentiel.

sub-agents.md +3 −1

Details

609Le mode de permission de la conversation principale décide si Claude Code utilise la valeur que vous définissez :609Le mode de permission de la conversation principale décide si Claude Code utilise la valeur que vous définissez :

610 610 

611* Lorsque la conversation principale est en `bypassPermissions`, `acceptEdits` ou [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode), le sous-agent s'exécute dans ce même mode et Claude Code ignore le `permissionMode` que vous définissez. En mode auto, le classifieur évalue les appels d'outils du sous-agent avec les règles de blocage et d'autorisation de la conversation principale. Lorsque le sous-agent se termine, le classifieur examine également son travail et son rapport final avant que le rapport soit livré, comme [Comment le mode auto gère les sous-agents](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) le décrit.611* Lorsque la conversation principale est en `bypassPermissions`, `acceptEdits` ou [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode), le sous-agent s'exécute dans ce même mode et Claude Code ignore le `permissionMode` que vous définissez. En mode auto, le classifieur évalue les appels d'outils du sous-agent avec les règles de blocage et d'autorisation de la conversation principale. Lorsque le sous-agent se termine, le classifieur examine également son travail et son rapport final avant que le rapport soit livré, comme [Comment le mode auto gère les sous-agents](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) le décrit.

612* Lorsque la conversation principale est en mode `default`, `dontAsk` ou `plan`, le sous-agent s'exécute dans le mode de permission que vous définissez, sauf `bypassPermissions`. Un sous-agent qui déclare `bypassPermissions` conserve le mode de la conversation principale à la place. L'exception `bypassPermissions` nécessite Claude Code v2.1.267 ou ultérieur.612* Lorsque la conversation principale est en mode `default`, `dontAsk` ou `plan`, le sous-agent s'exécute dans le mode de permission que vous définissez. Il conserve plutôt le mode de permission de la conversation principale dans les cas suivants :

613 * Vous définissez `bypassPermissions`. L'exception `bypassPermissions` nécessite Claude Code v2.1.267 ou ultérieur.

614 * Vous définissez `auto` et le [mode auto n'est pas disponible](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) pour le sous-agent, par exemple lorsqu'un fichier de paramètres définit [`disableAutoMode`](/docs/fr/settings-reference#disableautomode) ou que le modèle du sous-agent ne prend pas en charge le mode auto.

613 615 

614`permissionMode` accepte ces valeurs, et `manual` comme alias pour `default` :616`permissionMode` accepte ces valeurs, et `manual` comme alias pour `default` :

615 617 

vs-code.md +1 −1

Details

596| `attachOpenFile` | `true` | Ajoutez le fichier ouvert dans l'éditeur à vos messages et affichez-le dans la zone de saisie. Lorsqu'il est désactivé, seul votre texte sélectionné est ajouté. Nécessite Claude Code v2.1.271 ou ultérieur |596| `attachOpenFile` | `true` | Ajoutez le fichier ouvert dans l'éditeur à vos messages et affichez-le dans la zone de saisie. Lorsqu'il est désactivé, seul votre texte sélectionné est ajouté. Nécessite Claude Code v2.1.271 ou ultérieur |

597| `useCtrlEnterToSend` | `false` | Utilisez Ctrl/Cmd+Entrée au lieu d'Entrée pour envoyer les invites |597| `useCtrlEnterToSend` | `false` | Utilisez Ctrl/Cmd+Entrée au lieu d'Entrée pour envoyer les invites |

598| `scrollToBottomOnSend` | `true` | Faites défiler la conversation vers le bas lorsque vous envoyez un message. Lorsqu'il est désactivé, la conversation reste où vous l'avez laissée. Nécessite Claude Code v2.1.275 ou ultérieur |598| `scrollToBottomOnSend` | `true` | Faites défiler la conversation vers le bas lorsque vous envoyez un message. Lorsqu'il est désactivé, la conversation reste où vous l'avez laissée. Nécessite Claude Code v2.1.275 ou ultérieur |

599| `showMessageTimestamps` | `false` | Affichez le moment où chaque message a été envoyé. Une ligne de date marque le changement de jour. Nécessite Claude Code v2.1.284 ou ultérieur |599| `showMessageTimestamps` | `true` | Affichez le moment où chaque message a été envoyé. Une ligne de date marque le changement de jour. Nécessite Claude Code v2.1.284 ou ultérieur. Avant la v2.1.290, la valeur par défaut était `false` |

600| `enableNewConversationShortcut` | `false` | Activez Cmd/Ctrl+N pour démarrer une nouvelle conversation |600| `enableNewConversationShortcut` | `false` | Activez Cmd/Ctrl+N pour démarrer une nouvelle conversation |

601| `enableReopenClosedSessionShortcut` | `true` | Utilisez Cmd/Ctrl+Maj+T pour rouvrir l'onglet de session Claude le plus récemment fermé. Lorsque le dernier onglet fermé n'était pas une session Claude, le raccourci exécute la commande de réouverture d'éditeur fermé normale de VS Code à la place. |601| `enableReopenClosedSessionShortcut` | `true` | Utilisez Cmd/Ctrl+Maj+T pour rouvrir l'onglet de session Claude le plus récemment fermé. Lorsque le dernier onglet fermé n'était pas une session Claude, le raccourci exécute la commande de réouverture d'éditeur fermé normale de VS Code à la place. |

602| `archiveInactiveSessions` | `14` | [Archivez une session automatiquement](#resume-past-conversations) après ce nombre de jours sans activité : `1`, `2`, `7` ou `14`. Définissez `0` pour le désactiver. Nécessite Claude Code v2.1.265 ou ultérieur |602| `archiveInactiveSessions` | `14` | [Archivez une session automatiquement](#resume-past-conversations) après ce nombre de jours sans activité : `1`, `2`, `7` ou `14`. Définissez `0` pour le désactiver. Nécessite Claude Code v2.1.265 ou ultérieur |

workflows.md +27 −1

Details

354 354 

355Le corps est du JavaScript simple avec `await` au niveau supérieur. `agent()` génère un sous-agent, `pipeline()` en exécute un par élément dans une liste, et `parallel()` exécute un ensemble de tâches d'agent en même temps et attend que toutes se terminent.355Le corps est du JavaScript simple avec `await` au niveau supérieur. `agent()` génère un sous-agent, `pipeline()` en exécute un par élément dans une liste, et `parallel()` exécute un ensemble de tâches d'agent en même temps et attend que toutes se terminent.

356 356 

357Un appel `agent()` se résout en `null` si vous l'arrêtez en cours d'exécution ou s'il rencontre une erreur API irrécupérable. `pipeline()` conserve chaque `null` dans le tableau des résultats, c'est pourquoi l'exemple se termine par `.filter(Boolean)` pour supprimer ces entrées.357Un appel `agent()` se résout en `null` si vous l'arrêtez en cours d'exécution ou s'il rencontre une erreur API irrécupérable. `pipeline()` conserve chaque `null` dans le tableau des résultats, c'est pourquoi l'exemple se termine par `.filter(Boolean)` pour supprimer ces entrées, y compris l'emplacement d'[un agent qui s'est bloqué à chaque tentative](#when-an-agent-stalls-and-restarts).

358 358 

359En [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode), le prompt que votre script transmet à `agent()` ne compte pas comme une demande de votre part quand le classificateur examine les actions de ce sous-agent, car Claude Code le marque comme du texte que le script a calculé.359En [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode), le prompt que votre script transmet à `agent()` ne compte pas comme une demande de votre part quand le classificateur examine les actions de ce sous-agent, car Claude Code le marque comme du texte que le script a calculé.

360 360 


463* La limite se réinitialise dans les 24 heures. Une limite hebdomadaire peut se réinitialiser plus loin.463* La limite se réinitialise dans les 24 heures. Une limite hebdomadaire peut se réinitialiser plus loin.

464* L'exécution n'a pas déjà attendu deux fois. Quand elle atteint la limite une troisième fois, l'agent échoue.464* L'exécution n'a pas déjà attendu deux fois. Quand elle atteint la limite une troisième fois, l'agent échoue.

465 465 

466<h3 id="when-an-agent-stalls-and-restarts">

467 Quand un agent se bloque et redémarre

468</h3>

469 

470Un agent dont la sortie cesse d'arriver suffisamment longtemps recommence à partir du même prompt. Dans [`/workflows`](#watch-the-run), son nom reçoit un suffixe `(retry 1)` et son détail affiche `attempt 2 (stalled)`. Le redémarrage est automatique, vous n'avez donc rien à faire.

471 

472La nouvelle tentative démarre sans la transcription de la tentative bloquée. Les fichiers que la tentative bloquée a déjà modifiés restent modifiés, et les tokens qu'elle a consommés restent dans le total de l'exécution. La fenêtre de blocage est la durée pendant laquelle Claude Code attend une sortie d'un agent avant de mettre fin à la tentative. Le temps que l'agent passe à attendre ses propres appels d'outils ou une [réinitialisation de la limite d'utilisation](#when-a-run-hits-your-usage-limit) n'est pas compté dans la fenêtre de blocage.

473 

474Un agent redémarre au maximum cinq fois, en comptant tout redémarrage que vous demandez avec `r`. Si la sixième tentative se bloque également, l'appel `agent()` échoue, et le début de l'erreur en indique la raison :

475 

476* `agent stalled on all 6 attempts` : chaque tentative a passé toute la fenêtre sans sortie. Si le travail de l'agent le maintient silencieux aussi longtemps, allongez la fenêtre

477* `agent lost its reply on all 6 attempts` : le flux de réponse de chaque tentative est devenu silencieux et Claude Code a cessé de l'attendre. Allonger la fenêtre de blocage n'aide pas, car un [watchdog d'inactivité du streaming](/docs/fr/network-config#streaming-idle-watchdogs) a mis fin à la réponse en premier et `CLAUDE_STREAM_IDLE_TIMEOUT_MS` définit le délai d'expiration de ce watchdog

478* `agent abandoned after 6 attempts` : les tentatives se sont terminées de différentes manières, que l'erreur liste dans l'ordre

479 

480Pour donner à un agent plus de temps pour produire une sortie avant la fin de la fenêtre :

481 

482* **Un seul agent** : passez `stallMs` en millisecondes dans son appel `agent()`, par exemple `agent(prompt, { stallMs: 1800000 })` pour 30 minutes

483* **Tous les agents** : définissez [`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`](/docs/fr/env-vars#variables), qui s'applique également aux sous-agents en dehors des workflows

484 

485La poursuite de l'exécution après l'échec dépend de la façon dont votre script a appelé l'agent :

486 

487* **À l'intérieur de [`parallel()` ou `pipeline()`](#what-the-saved-script-looks-like)** : l'exécution continue avec `null` à la place du résultat de l'agent

488* **Attendu directement** : l'exécution se termine avec l'erreur

489 

490Pour réessayer, demandez à Claude de relancer le workflow. [Reprendre après une pause](#resume-after-a-pause) explique ce qui s'exécute à nouveau.

491 

466<h3 id="cost">492<h3 id="cost">

467 Coût493 Coût

468</h3>494</h3>

worktrees.md +1 −1

Details

104* **Redirections Git** : Claude Code bloque une commande Bash ou Monitor qui redirige git vers l'extraction principale. La redirection peut provenir de `git -C`, `--git-dir`, une variable `GIT_DIR` ou `GIT_WORK_TREE`, ou un `cd` dans l'extraction principale avant d'exécuter git.104* **Redirections Git** : Claude Code bloque une commande Bash ou Monitor qui redirige git vers l'extraction principale. La redirection peut provenir de `git -C`, `--git-dir`, une variable `GIT_DIR` ou `GIT_WORK_TREE`, ou un `cd` dans l'extraction principale avant d'exécuter git.

105* **Forme de la commande** : Claude Code bloque une commande Bash ou Monitor quand il ne peut pas vérifier à partir du texte de la commande que tout git que la commande exécute reste à l'intérieur du worktree. Cela se produit, par exemple, quand le nom de la commande est calculé à l'exécution, quand la syntaxe ne peut pas être analysée, ou quand une expansion telle que `${!name}` ou `${ command; }` pourrait exécuter une commande que le texte ne précise pas. Claude Code indique à Claude comment réécrire la commande refusée, par exemple en la divisant en commandes simples et séparées. Vous ne pouvez pas désactiver cette vérification.105* **Forme de la commande** : Claude Code bloque une commande Bash ou Monitor quand il ne peut pas vérifier à partir du texte de la commande que tout git que la commande exécute reste à l'intérieur du worktree. Cela se produit, par exemple, quand le nom de la commande est calculé à l'exécution, quand la syntaxe ne peut pas être analysée, ou quand une expansion telle que `${!name}` ou `${ command; }` pourrait exécuter une commande que le texte ne précise pas. Claude Code indique à Claude comment réécrire la commande refusée, par exemple en la divisant en commandes simples et séparées. Vous ne pouvez pas désactiver cette vérification.

106 106 

107Ces vérifications lisent le chemin ciblé par une modification, le répertoire dans lequel une commande s'exécute et le texte de la commande. Aucune d'elles ne suit les fichiers qu'une commande shell écrit, de sorte qu'une commande qui écrit dans l'extraction principale sans y exécuter git, comme `cp` ou une redirection shell, n'est pas refusée par celles-ci. Claude Code traite cette commande comme n'importe quelle autre commande shell : le fait qu'elle s'exécute ou qu'elle vous demande une permission dépend donc de votre [mode de permission](/docs/fr/permission-modes) et de vos règles.107Ces vérifications lisent le chemin ciblé par une modification, le répertoire dans lequel une commande s'exécute et le texte de la commande. Aucune d'elles ne suit les fichiers qu'une commande shell écrit, de sorte qu'une commande qui écrit dans l'extraction principale sans y exécuter git, comme `cp` ou une redirection shell, n'est pas refusée par celles-ci. Claude Code traite cette commande comme n'importe quelle autre commande shell, selon vos paramètres de [permissions](/docs/fr/permissions) et de [sandboxing](/docs/fr/sandboxing).

108 108 

109Les vérifications s'appliquent au dépôt à partir duquel vous avez lancé Claude Code. Elles couvrent également l'extraction principale à laquelle un worktree lié est lié. Pour les commandes PowerShell, Claude Code applique uniquement la vérification du répertoire de travail.109Les vérifications s'appliquent au dépôt à partir duquel vous avez lancé Claude Code. Elles couvrent également l'extraction principale à laquelle un worktree lié est lié. Pour les commandes PowerShell, Claude Code applique uniquement la vérification du répertoire de travail.

110 110