SpyBara
Go Premium

Documentation 2026-10-25 23:58 UTC to 2026-10-26 22:57 UTC

38 files changed +951 −388. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 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

admin-setup.md +1 −1

Details

93| [Sandboxing](https://code.claude.com/docs/fr/sandboxing.md) | Isolation du système de fichiers et du réseau au niveau du système d'exploitation avec listes blanches de domaines | `sandbox.enabled`, `sandbox.network.allowedDomains` |93| [Sandboxing](https://code.claude.com/docs/fr/sandboxing.md) | Isolation du système de fichiers et du réseau au niveau du système d'exploitation avec listes blanches de domaines | `sandbox.enabled`, `sandbox.network.allowedDomains` |

94| [Politique gérée CLAUDE.md](https://code.claude.com/docs/fr/memory.md#deploy-organization-wide-claude-md) | Instructions comportementales à l'échelle de l'organisation pour Claude plutôt qu'une règle appliquée par le client | Fichier au chemin de la politique gérée |94| [Politique gérée CLAUDE.md](https://code.claude.com/docs/fr/memory.md#deploy-organization-wide-claude-md) | Instructions comportementales à l'échelle de l'organisation pour Claude plutôt qu'une règle appliquée par le client | Fichier au chemin de la politique gérée |

95| [Contrôle du serveur MCP](https://code.claude.com/docs/fr/managed-mcp.md) | Restreindre les serveurs MCP que les utilisateurs peuvent ajouter ou connecter, déployer un ensemble fixe, ou fournir des serveurs distants à chaque utilisateur aux côtés des leurs | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, ou un fichier `managed-mcp.json` déployé |95| [Contrôle du serveur MCP](https://code.claude.com/docs/fr/managed-mcp.md) | Restreindre les serveurs MCP que les utilisateurs peuvent ajouter ou connecter, déployer un ensemble fixe, ou fournir des serveurs distants à chaque utilisateur aux côtés des leurs | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, ou un fichier `managed-mcp.json` déployé |

96| [Contrôle de la place de marché des plugins](https://code.claude.com/docs/fr/plugins/org.md#restrict-what-users-can-install) | Restreindre les sources de place de marché que les utilisateurs peuvent ajouter et installer, rejeter les drapeaux CLI qui chargent les plugins, agents et serveurs MCP pour une seule exécution, bloquer les [sources de plugin `command`](https://code.claude.com/docs/fr/plugins/marketplace-reference#command-plugin-source), et autoriser les plugins des places de marché qui peuvent être suggérés | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |96| [Contrôle de la marketplace de plugins](https://code.claude.com/docs/fr/plugins/org.md#restrict-what-users-can-install) | Restreindre les sources de marketplace que les utilisateurs peuvent ajouter et à partir desquelles ils peuvent installer, et rejeter les flags CLI qui chargent des plugins, agents et serveurs MCP en dehors des sources prévues pour une seule exécution. Bloquer les [sources de plugin `command`](https://code.claude.com/docs/fr/plugins/marketplace-reference#command-plugin-source), et définir une liste d'autorisation des marketplaces dont les plugins peuvent être suggérés dans le terminal | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

97| [Verrouillage de la personnalisation](https://code.claude.com/docs/fr/settings-reference.md#strictpluginonlycustomization) | Bloquer les skills, agents, hooks et serveurs MCP provenant de sources utilisateur et projet, afin qu'ils ne proviennent que de plugins ou de paramètres gérés. Le verrouillage des skills arrête également les [skills que vos développeurs activent sur claude.ai](https://code.claude.com/docs/fr/skills.md#where-synced-skills-load) de se synchroniser | `strictPluginOnlyCustomization` |97| [Verrouillage de la personnalisation](https://code.claude.com/docs/fr/settings-reference.md#strictpluginonlycustomization) | Bloquer les skills, agents, hooks et serveurs MCP provenant de sources utilisateur et projet, afin qu'ils ne proviennent que de plugins ou de paramètres gérés. Le verrouillage des skills arrête également les [skills que vos développeurs activent sur claude.ai](https://code.claude.com/docs/fr/skills.md#where-synced-skills-load) de se synchroniser | `strictPluginOnlyCustomization` |

98| [Désactiver la synchronisation claude.ai](https://code.claude.com/docs/fr/settings-reference.md#syncclaudeaiskills) | Arrêter Claude Code de charger les [skills](https://code.claude.com/docs/fr/skills.md#how-synced-skills-behave) et [plugins](https://code.claude.com/docs/fr/plugins/loading.md#synced-plugins) que vos développeurs activent sur claude.ai. Si vous désactivez les Skills pour votre organisation sur claude.ai, Claude Code arrête la synchronisation des deux, et sur v2.1.273 ou ultérieur, il supprime également ceux qu'il a déjà synchronisés. Pour arrêter l'un ou l'autre sans désactiver les Skills, définissez sa clé sur `false` dans les paramètres gérés | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |98| [Désactiver la synchronisation claude.ai](https://code.claude.com/docs/fr/settings-reference.md#syncclaudeaiskills) | Arrêter Claude Code de charger les [skills](https://code.claude.com/docs/fr/skills.md#how-synced-skills-behave) et [plugins](https://code.claude.com/docs/fr/plugins/loading.md#synced-plugins) que vos développeurs activent sur claude.ai. Si vous désactivez les Skills pour votre organisation sur claude.ai, Claude Code arrête la synchronisation des deux, et sur v2.1.273 ou ultérieur, il supprime également ceux qu'il a déjà synchronisés. Pour arrêter l'un ou l'autre sans désactiver les Skills, définissez sa clé sur `false` dans les paramètres gérés | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

99| [Restrictions des hooks](https://code.claude.com/docs/fr/settings-reference.md#allowmanagedhooksonly) | Restreindre les hooks qui s'exécutent et restreindre les URL des hooks HTTP ; consultez [ce qui s'exécute sous `allowManagedHooksOnly`](https://code.claude.com/docs/fr/settings-reference#what-runs-under-allowmanagedhooksonly) pour la liste complète des effets | `allowManagedHooksOnly`, `allowedHttpHookUrls` |99| [Restrictions des hooks](https://code.claude.com/docs/fr/settings-reference.md#allowmanagedhooksonly) | Restreindre les hooks qui s'exécutent et restreindre les URL des hooks HTTP ; consultez [ce qui s'exécute sous `allowManagedHooksOnly`](https://code.claude.com/docs/fr/settings-reference#what-runs-under-allowmanagedhooksonly) pour la liste complète des effets | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

Details

233| `"default"` | Les appels d'outils qui nécessitent une approbation et ne sont pas couverts par les règles d'autorisation déclenchent votre rappel `canUseTool` ; pas de rappel signifie refuser | Applications interactives avec un rappel d'approbation personnalisé |233| `"default"` | Les appels d'outils qui nécessitent une approbation et ne sont pas couverts par les règles d'autorisation déclenchent votre rappel `canUseTool` ; pas de rappel signifie refuser | Applications interactives avec un rappel d'approbation personnalisé |

234| `"acceptEdits"` | Approuve automatiquement les éditions de fichiers et les commandes communes du système de fichiers (`mkdir`, `touch`, `mv`, `cp`, etc.) ; les autres commandes Bash suivent les règles par défaut | Vous faites confiance aux éditions de Claude et voulez une itération plus rapide, par exemple lors du prototypage ou lorsque vous travaillez dans un répertoire isolé |234| `"acceptEdits"` | Approuve automatiquement les éditions de fichiers et les commandes communes du système de fichiers (`mkdir`, `touch`, `mv`, `cp`, etc.) ; les autres commandes Bash suivent les règles par défaut | Vous faites confiance aux éditions de Claude et voulez une itération plus rapide, par exemple lors du prototypage ou lorsque vous travaillez dans un répertoire isolé |

235| `"plan"` | Claude explore et planifie sans éditer vos fichiers source ; les éditions de fichiers ne sont jamais approuvées automatiquement et demandent via votre rappel `canUseTool` | Vous voulez que Claude propose des modifications sans les exécuter, par exemple lors d'une revue de code ou lorsque vous devez approuver les modifications avant qu'elles ne soient apportées |235| `"plan"` | Claude explore et planifie sans éditer vos fichiers source ; les éditions de fichiers ne sont jamais approuvées automatiquement et demandent via votre rappel `canUseTool` | Vous voulez que Claude propose des modifications sans les exécuter, par exemple lors d'une revue de code ou lorsque vous devez approuver les modifications avant qu'elles ne soient apportées |

236| `"dontAsk"` | Ne demande jamais. Les outils pré-approuvés par les [règles de permission](https://code.claude.com/docs/fr/settings-reference.md#permission-settings) s'exécutent, et il en va de même pour les appels qui ne nécessitent pas d'approbation en mode `default`, comme les lectures de fichiers dans vos répertoires de travail. Tout appel qui demanderait autrement est refusé, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse toujours approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). `AskUserQuestion`, les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), les outils MCP marqués [`requiresUserInteraction`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool) et les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths) sont refusés même si vous les avez autorisés | Vous voulez une surface d'outils fixe et explicite pour un agent sans interface et préférez un refus catégorique plutôt qu'une dépendance silencieuse à l'absence de `canUseTool` |236| `"dontAsk"` | Ne demande jamais. Les outils pré-approuvés par les [règles de permission](https://code.claude.com/docs/fr/settings-reference.md#permission-settings) s'exécutent, et il en va de même pour les appels qui ne nécessitent pas d'approbation en mode `default`, comme les lectures de fichiers dans vos répertoires de travail. Tout appel qui demanderait autrement est refusé, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse toujours approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Quelques appels, comme les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths), sont refusés même si vous les avez autorisés. Pour la liste, voir [Mode Don't ask](https://code.claude.com/docs/fr/agent-sdk/permissions.md#don’t-ask-mode-dontask) | Agents headless sans personne pour approuver les appels |

237| `"auto"` | Utilise un classificateur de modèle pour examiner les actions telles que les commandes shell et les demandes réseau, en autorisant ou en bloquant chacune qu'il examine. Voir [Mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) pour la disponibilité et l'ordre de décision | Agents autonomes qui veulent toujours des garde-fous de sécurité sur l'utilisation des outils |237| `"auto"` | Utilise un classificateur de modèle pour examiner les actions telles que les commandes shell et les demandes réseau, en autorisant ou en bloquant chacune qu'il examine. Voir [Mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) pour la disponibilité et l'ordre de décision | Agents autonomes qui veulent toujours des garde-fous de sécurité sur l'utilisation des outils |

238| `"bypassPermissions"` | Exécute tous les outils autorisés sans demander, sauf les outils correspondant à une [règle `ask`](https://code.claude.com/docs/fr/settings-reference#permission-settings) explicite, les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools) et les outils qui nécessitent une interaction utilisateur. Les [garde-fous de messagerie inter-sessions](https://code.claude.com/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) s'appliquent toujours. Voir [Comment les permissions sont évaluées](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated) pour l'ordre de précédence. Dans le SDK TypeScript, nécessite également `allowDangerouslySkipPermissions: true` dans `options`. Ne peut pas être utilisé lors de l'exécution en tant que root sur Unix. À utiliser uniquement dans des environnements isolés où les actions de l'agent ne peuvent pas affecter les systèmes qui vous intéressent | CI, conteneurs ou autres environnements isolés |238| `"bypassPermissions"` | Exécute les appels d'outils sans demander d'approbation, y compris les appels aux outils que vous n'avez pas listés dans `allowedTools`. Quelques appels sont tout de même transmis à votre rappel `canUseTool` ; ils sont listés sous [Mode Bypass permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#bypass-permissions-mode-bypasspermissions). Dans le SDK TypeScript, nécessite également `allowDangerouslySkipPermissions: true` dans `options`. Ne peut pas être utilisé lors de l'exécution en tant que root sur Unix. À utiliser uniquement dans des environnements isolés où les actions de l'agent ne peuvent pas affecter les systèmes qui vous intéressent | CI, conteneurs ou autres environnements isolés |

239 239 

240Pour les applications interactives, utilisez `"default"` avec un rappel d'approbation d'outil pour afficher les invites d'approbation. Pour les agents autonomes sur une machine de développement, `"acceptEdits"` approuve automatiquement les éditions de fichiers et les commandes communes du système de fichiers (`mkdir`, `touch`, `mv`, `cp`, etc.) tout en gardant les autres commandes `Bash` derrière les règles d'autorisation. Réservez `"bypassPermissions"` pour CI, les conteneurs ou d'autres environnements isolés. Voir [Permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md) pour les détails complets.240Pour les applications interactives, utilisez `"default"` avec un rappel d'approbation d'outil pour afficher les invites d'approbation. Pour les agents autonomes sur une machine de développement, `"acceptEdits"` approuve automatiquement les éditions de fichiers et les commandes communes du système de fichiers (`mkdir`, `touch`, `mv`, `cp`, etc.) tout en gardant les autres commandes `Bash` derrière les règles d'autorisation. Réservez `"bypassPermissions"` pour CI, les conteneurs ou d'autres environnements isolés. Voir [Permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md) pour les détails complets.

241 241 

Details

16| Rendre un paramètre facultatif | Déclarez-le comme facultatif dans le schéma et appliquez la valeur par défaut dans le gestionnaire. Voir [Rendre un paramètre facultatif](#make-a-parameter-optional). |16| Rendre un paramètre facultatif | Déclarez-le comme facultatif dans le schéma et appliquez la valeur par défaut dans le gestionnaire. Voir [Rendre un paramètre facultatif](#make-a-parameter-optional). |

17| Enregistrer un outil auprès de Claude | Enveloppez dans `create_sdk_mcp_server` / `createSdkMcpServer` et transmettez à `mcpServers` dans `query()`. Voir [Appeler un outil personnalisé](#call-a-custom-tool). |17| Enregistrer un outil auprès de Claude | Enveloppez dans `create_sdk_mcp_server` / `createSdkMcpServer` et transmettez à `mcpServers` dans `query()`. Voir [Appeler un outil personnalisé](#call-a-custom-tool). |

18| Pré-approuver un outil | Ajoutez à vos outils autorisés. Voir [Configurer les outils autorisés](#configure-allowed-tools). |18| Pré-approuver un outil | Ajoutez à vos outils autorisés. Voir [Configurer les outils autorisés](#configure-allowed-tools). |

19| Exiger une approbation pour les appels à un outil, ou bloquer l'outil | Dans le SDK TypeScript, ajoutez une `permission_policy` pour l'outil à l'objet de configuration que renvoie `createSdkMcpServer()`. Voir [Exiger une approbation pour des outils spécifiques](#require-approval-for-specific-tools). |

19| Supprimer un outil intégré du contexte de Claude | Transmettez un tableau `tools` listant uniquement les outils intégrés que vous souhaitez. Voir [Configurer les outils autorisés](#configure-allowed-tools). |20| Supprimer un outil intégré du contexte de Claude | Transmettez un tableau `tools` listant uniquement les outils intégrés que vous souhaitez. Voir [Configurer les outils autorisés](#configure-allowed-tools). |

20| Laisser Claude appeler les outils en parallèle | Définissez `readOnlyHint: true` sur les outils sans effets secondaires. Voir [Ajouter des annotations d'outils](#add-tool-annotations). |21| Laisser Claude appeler les outils en parallèle | Définissez `readOnlyHint: true` sur les outils sans effets secondaires. Voir [Ajouter des annotations d'outils](#add-tool-annotations). |

21| Contrôler le message d'erreur que Claude lit | Retournez `isError: true` pour composer le message au lieu de faire remonter l'exception brute. Voir [Gérer les erreurs](#handle-errors). |22| Contrôler le message d'erreur que Claude lit | Retournez `isError: true` pour composer le message au lieu de faire remonter l'exception brute. Voir [Gérer les erreurs](#handle-errors). |


327| Champ | Par défaut | Signification |328| Champ | Par défaut | Signification |

328| :- | :- | :- |329| :- | :- | :- |

329| `readOnlyHint` | `false` | L'outil ne modifie pas son environnement. Contrôle si l'outil peut être appelé en parallèle avec d'autres outils en lecture seule. |330| `readOnlyHint` | `false` | L'outil ne modifie pas son environnement. Contrôle si l'outil peut être appelé en parallèle avec d'autres outils en lecture seule. |

330| `destructiveHint` | `true` | L'outil peut effectuer des mises à jour destructrices. Informatif uniquement. |331| `destructiveHint` | `true` | L'outil peut effectuer des mises à jour destructrices. Définissez-le explicitement à `true` sur tout outil que vous [marquez `always_ask`](#require-approval-for-specific-tools). |

331| `idempotentHint` | `false` | Les appels répétés avec les mêmes arguments n'ont aucun effet supplémentaire. Informatif uniquement. |332| `idempotentHint` | `false` | Les appels répétés avec les mêmes arguments n'ont aucun effet supplémentaire. Informatif uniquement. |

332| `openWorldHint` | `true` | L'outil atteint des systèmes en dehors de votre processus. Informatif uniquement. |333| `openWorldHint` | `true` | L'outil atteint des systèmes en dehors de votre processus. Informatif uniquement. |

333 334 


383 384 

384Pour supprimer complètement un outil intégré, omettez-le de `tools` ou listez son nom simple dans `disallowedTools` (Python : `disallowed_tools`) ; les deux gardent l'outil hors du contexte afin que Claude ne le tente jamais. Une règle `disallowedTools` délimitée bloque les appels correspondants mais laisse l'outil visible, donc Claude peut gaspiller un tour en le tentant. Consultez [Configurer les permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md) pour l'ordre d'évaluation complet.385Pour supprimer complètement un outil intégré, omettez-le de `tools` ou listez son nom simple dans `disallowedTools` (Python : `disallowed_tools`) ; les deux gardent l'outil hors du contexte afin que Claude ne le tente jamais. Une règle `disallowedTools` délimitée bloque les appels correspondants mais laisse l'outil visible, donc Claude peut gaspiller un tour en le tentant. Consultez [Configurer les permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md) pour l'ordre d'évaluation complet.

385 386 

387### Exiger une approbation pour des outils spécifiques

388 

389Définissez la `permission_policy` d'un outil sur `always_ask`, et `allowedTools` cesse d'approuver les appels de cet outil, afin qu'ils puissent atteindre votre callback [`canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input) même si l'outil est listé. Définissez plutôt `always_deny`, et [un appel à l'outil est refusé](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated), mais un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) dans un plugin que vous chargez [peut toujours l'approuver](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Ce champ est propre à TypeScript et nécessite l'Agent SDK v0.3.301 ou une version ultérieure.

390 

391Placez l'entrée de politique dans un tableau `tools` sur l'objet de configuration que renvoie `createSdkMcpServer()`, et non dans l'option `tools` que vous passez à cette fonction. Cet exemple étend `weatherServer` issu de l'[exemple d'outil météo](#weather-tool-example) et ajoute un tableau `tools` qui attribue à `get_temperature` la politique `always_ask` :

392 

393```typescript TypeScript theme={null}

394options: {

395 mcpServers: {

396 weather: {

397 ...weatherServer,

398 tools: [{ name: "get_temperature", permission_policy: "always_ask" as const }]

399 }

400 },

401 allowedTools: ["mcp__weather__get_temperature"],

402 permissionMode: "default",

403 canUseTool: async (toolName, input) => {

404 console.log(`Approval requested for ${toolName}`);

405 return { behavior: "allow", updatedInput: input };

406 }

407}

408```

409 

410Pour tester la politique, remplacez les `options` du script [Appeler un outil personnalisé](#call-a-custom-tool) par les `options` de cet exemple, puis exécutez ce script depuis votre terminal. Le script affiche `Approval requested for mcp__weather__get_temperature`, suivi de la réponse de Claude concernant la température. Pour un script complet, consultez la [référence TypeScript](https://code.claude.com/docs/fr/agent-sdk/typescript.md#mcpsdkserverconfigwithinstance).

411 

412Si vous utilisez le [mode de permission](https://code.claude.com/docs/fr/agent-sdk/permissions.md#permission-modes) `auto` ou `plan`, définissez `destructiveHint: true` dans les [annotations](#add-tool-annotations) de l'outil afin que les appels à l'outil atteignent toujours votre callback. Sinon, le [classifieur du mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) peut approuver certains appels `always_ask`, dans les [conditions listées dans la référence TypeScript](https://code.claude.com/docs/fr/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call), et un appel qu'il approuve n'atteint pas votre callback. Définissez l'indication explicitement, car un `destructiveHint` non défini compte comme `false` pour les appels `always_ask` au lieu de prendre la valeur par défaut `true`.

413 

386## Gérer les erreurs414## Gérer les erreurs

387 415 

388Une erreur de gestionnaire n'arrête pas la boucle de l'agent. Le serveur MCP en processus du SDK capture les exceptions non capturées et les retourne sous forme de résultats d'erreur, donc la façon dont vous signalez une erreur détermine ce que Claude lit, non pas si la requête échoue :416Une erreur de gestionnaire n'arrête pas la boucle de l'agent. Le serveur MCP en processus du SDK capture les exceptions non capturées et les retourne sous forme de résultats d'erreur, donc la façon dont vous signalez une erreur détermine ce que Claude lit, non pas si la requête échoue :

Details

10 10 

11## Comment les permissions sont évaluées11## Comment les permissions sont évaluées

12 12 

13> [!NOTE]

14>

15> Si vous chargez un plugin qui contient un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md), consultez [où se situent les décisions d'un mod parmi les règles et les hooks](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).

16 

13Lorsque Claude demande un outil, le SDK vérifie les permissions dans cet ordre :17Lorsque Claude demande un outil, le SDK vérifie les permissions dans cet ordre :

14 18 

15**1. Hooks**19**1. Hooks**


20 24 

21**2. Règles de refus**25**2. Règles de refus**

22 26 

23Vérifiez les règles `deny` (à partir de `disallowed_tools` et [settings.json](https://code.claude.com/docs/fr/settings-reference.md#permission-settings)). Si une règle de refus correspond, l'outil est bloqué, même en mode `bypassPermissions`. Les règles de refus sans nom comme `Bash` suppriment l'outil du contexte de Claude avant que cette évaluation ne commence, donc seules les règles délimitées comme `Bash(rm *)` sont vérifiées à cette étape.27Si une règle de refus provenant de `disallowed_tools` ou de [settings.json](https://code.claude.com/docs/fr/settings-reference.md#permission-settings) correspond, l'appel est refusé et [`canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input) n'est pas appelé, même en mode [`bypassPermissions`](#bypass-permissions-mode-bypasspermissions) et même lorsqu'un hook a retourné `allow`.

28 

29Dans le SDK TypeScript, si vous définissez la `permission_policy` d'un [outil personnalisé](https://code.claude.com/docs/fr/agent-sdk/custom-tools.md#require-approval-for-specific-tools) sur [`always_deny`](https://code.claude.com/docs/fr/agent-sdk/typescript#mcpservertoolpolicy), un appel à cet outil est refusé à cette étape.

24 30 

25**3. Règles de demande**31**3. Règles de demande**

26 32 

27Vérifiez les règles `ask` à partir de [settings.json](https://code.claude.com/docs/fr/settings-reference.md#permission-settings). Si une règle de demande correspond, l'appel passe à votre callback [`canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input) pour confirmation, même en mode `bypassPermissions`.33Vérifiez les règles `ask` à partir de [settings.json](https://code.claude.com/docs/fr/settings-reference.md#permission-settings). Si une règle de demande correspond, l'appel passe à votre [callback `canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input) pour confirmation, même en mode `bypassPermissions`.

28 34 

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

30 36 

31Les outils du connecteur [claude.ai](https://code.claude.com/docs/fr/mcp.md#organization-controls-on-connector-tools) que votre organisation a définis sur `ask` quittent également le flux à cette étape. Chaque appel passe au callback, même en mode `bypassPermissions` et même lorsqu'une règle allow correspond. Le callback reçoit la raison `Your organization requires approval for this tool`. En mode `dontAsk`, l'appel est refusé à la place, car ce mode ne demande jamais.37Les outils du [connecteur claude.ai](https://code.claude.com/docs/fr/mcp.md#organization-controls-on-connector-tools) que votre organisation a définis sur `ask` quittent également le flux à cette étape. Chaque appel passe au callback, même en mode `bypassPermissions` et même lorsqu'une règle allow correspond. Le callback reçoit la raison `Your organization requires approval for this tool`. En mode `dontAsk`, l'appel est refusé à la place, car ce mode ne demande jamais.

38 

39Dans le SDK TypeScript, si vous définissez la `permission_policy` d'un outil personnalisé sur [`always_ask`](https://code.claude.com/docs/fr/agent-sdk/custom-tools#require-approval-for-specific-tools), aucune règle allow n'approuve ses appels, pas même une entrée `allowedTools`. En mode `dontAsk`, Claude Code refuse ces appels, et en mode `auto`, `plan` ou `bypassPermissions`, il [peut les approuver](https://code.claude.com/docs/fr/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call) avant l'exécution de votre callback.

32 40 

33**4. Mode de permission**41**4. Mode de permission**

34 42 

35Appliquez le [mode de permission](#permission-modes) actif :43Appliquez le [mode de permission](#permission-modes) actif :

36 44 

37* En mode `bypassPermissions`, Claude Code approuve tout ce qui atteint cette étape sauf les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues, qui passent à la place.45* En mode `bypassPermissions`, Claude Code approuve tout ce qui atteint cette étape sauf les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues et les commandes Bash signalées [`Dangerous rm operation not ruled out`](https://code.claude.com/docs/fr/permission-modes#dangerous-rm-operation-not-ruled-out), qui passent à la place.

38* En mode `acceptEdits`, Claude Code approuve les opérations de fichier listées sous [Mode Accept edits](#accept-edits-mode-acceptedits).46* En mode `acceptEdits`, Claude Code approuve les opérations de fichier listées sous [Mode Accept edits](#accept-edits-mode-acceptedits).

39* En mode `plan`, Claude Code envoie les outils de modification de fichier et d'écriture shell à votre callback `canUseTool` indépendamment des règles allow, afin que les opérations d'écriture ne puissent pas être approuvées automatiquement lors de la planification.47* En mode `plan`, Claude Code envoie les outils de modification de fichier à votre callback `canUseTool` indépendamment des règles allow.

40* Dans les autres modes, la demande passe.48* Dans les autres modes, la demande passe.

41 49 

42**5. Règles d'autorisation**50**5. Règles d'autorisation**

43 51 

44Vérifiez les règles `allow` (à partir de `allowed_tools` et settings.json). Si une règle correspond, l'outil est approuvé. Un appel que l'outil approuve de lui-même est résolu à cette étape aussi, sans règle nécessaire : par exemple une lecture de fichier dans vos répertoires de travail ou une [commande Bash en lecture seule](https://code.claude.com/docs/fr/permissions.md#read-only-commands).52Vérifiez les règles `allow` (à partir de `allowed_tools` et settings.json). Si une règle correspond, l'outil est approuvé. Un appel que l'outil approuve de lui-même est résolu à cette étape aussi, sans règle nécessaire : par exemple une lecture de fichier dans vos répertoires de travail ou une [commande Bash en lecture seule](https://code.claude.com/docs/fr/permissions.md#read-only-commands).

45 53 

46Les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues ne sont pas approuvées par une règle allow. Qu'elles atteignent ensuite votre callback dépend du mode de permission : dans une session Agent SDK en mode `auto`, par exemple, Claude Code les refuse par défaut sans l'appeler. Le [tableau des modes pour les chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-path-removals-in-each-permission-mode) liste ce que chaque mode fait avec elles.54Les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues ne sont pas approuvées par une règle allow, et les commandes signalées `Dangerous rm operation not ruled out` ne sont pas approuvées par une règle `Bash` ou `Bash(*)`. Qu'elles atteignent ensuite votre callback dépend du mode de permission : dans une session Agent SDK en mode `auto`, par exemple, Claude Code les refuse par défaut sans l'appeler. Le [tableau des modes pour les chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-path-removals-in-each-permission-mode) liste ce que chaque mode fait avec elles.

47 55 

48Une règle allow n'approuve pas une lecture depuis un [chemin réseau](https://code.claude.com/docs/fr/permissions.md#network-paths).56Une règle allow n'approuve pas une lecture depuis un [chemin réseau](https://code.claude.com/docs/fr/permissions.md#network-paths).

49 57 


57 65 

58Si vous transmettez un callback `canUseTool` dans une configuration où le SDK TypeScript s'attend à ce que l'ordre d'évaluation approuve automatiquement les appels avant que le callback ne soit consulté, le SDK émet un avertissement de processus Node.js une fois lorsque la requête est construite. Le code de l'avertissement est `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Deux configurations le déclenchent :66Si vous transmettez un callback `canUseTool` dans une configuration où le SDK TypeScript s'attend à ce que l'ordre d'évaluation approuve automatiquement les appels avant que le callback ne soit consulté, le SDK émet un avertissement de processus Node.js une fois lorsque la requête est construite. Le code de l'avertissement est `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Deux configurations le déclenchent :

59 67 

60* `permissionMode: 'bypassPermissions'`, qui approuve automatiquement chaque appel qui atteint l'étape du mode de permission à l'exception des [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves)68* `permissionMode: 'bypassPermissions'` : le texte de l'avertissement commence par `canUseTool will not be invoked: permissionMode 'bypassPermissions'`. Les appels d'outils sont approuvés avant que `canUseTool` ne soit consulté, de sorte que votre callback ne s'exécute que pour quelques appels, tels que ceux listés sous [Mode Bypass permissions](#bypass-permissions-mode-bypasspermissions). Pour vérifier également les appels approuvés, placez les vérifications de votre callback dans un [hook `PreToolUse`](https://code.claude.com/docs/fr/agent-sdk/hooks)

61* Chaque entrée `allowedTools` sans nom comme `"Read"`, qui approuve automatiquement cet outil entier avant que le callback ne soit consulté, à l'exception des [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et des [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths)69* Une entrée `allowedTools` qui n'est qu'un nom d'outil, comme `"Read"` : l'avertissement liste chacune de ces entrées après `canUseTool will not be invoked for:`. Les appels à un outil listé sont approuvés avant que `canUseTool` ne soit consulté, à l'exception des [appels qu'une règle allow n'approuve jamais](#calls-an-allow-rule-never-approves). Pour que votre callback s'exécute pour les appels d'un outil listé qui nécessitent une approbation, supprimez l'entrée de cet outil de `allowedTools`

62 70 

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

64 72 

65Écoutez avec `process.on('warning', ...)` et faites correspondre le code pour le journaliser ou le supprimer. Pour contrôler chaque appel d'outil indépendamment du mode et des règles, utilisez plutôt un [hook `PreToolUse`](https://code.claude.com/docs/fr/agent-sdk/hooks).73L'avertissement ne bloque aucun appel et ne modifie aucune option. Si votre callback reçoit déjà chaque appel que vous souhaitez vérifier, laissez votre configuration telle quelle. Pour journaliser l'avertissement, écoutez avec `process.on('warning', ...)` et faites correspondre le code `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`.

66 74 

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

68 76 


90>98>

91> **Les outils approuvés automatiquement n'atteignent jamais `canUseTool`.** Un appel d'outil approuvé à n'importe quelle étape antérieure, par `acceptEdits` ou `bypassPermissions`, ou par une règle d'autorisation, ignore votre rappel `canUseTool`, donc les vérifications de permission que vous y mettez sont silencieusement contournées pour cet outil.99> **Les outils approuvés automatiquement n'atteignent jamais `canUseTool`.** Un appel d'outil approuvé à n'importe quelle étape antérieure, par `acceptEdits` ou `bypassPermissions`, ou par une règle d'autorisation, ignore votre rappel `canUseTool`, donc les vérifications de permission que vous y mettez sont silencieusement contournées pour cet outil.

92>100>

93> Une règle d'autorisation n'approuve jamais automatiquement `AskUserQuestion`, les outils MCP marqués [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool), les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), ou les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) `rm` et `rmdir` reconnues. En mode `dontAsk`, Claude Code refuse ces appels sans invoquer le rappel. Dans les autres modes, les trois premiers atteignent le rappel. Le [tableau des modes pour les chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-path-removals-in-each-permission-mode) indique ce que fait chaque mode d'une suppression de chemin critique. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](https://code.claude.com/docs/fr/permission-modes.md#critical-paths).101> Si des appels à un outil présent dans `allowed_tools` atteignent toujours votre rappel `canUseTool`, ou sont refusés en mode `dontAsk`, vérifiez s'il s'agit de [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths) ou de l'un des appels suivants. Aucune règle d'autorisation n'approuve ces appels. En mode `dontAsk`, qui ne demande jamais, Claude Code les refuse sans appeler `canUseTool`, et dans les autres modes de permission, vous les gérez comme l'indique chaque élément :

102>

103> * `AskUserQuestion`, les outils MCP marqués [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool), et les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools) : répondez-y dans le rappel. [Gérer les questions de clarification](https://code.claude.com/docs/fr/agent-sdk/user-input.md#handle-clarifying-questions) montre comment répondre à `AskUserQuestion`, et un appel de connecteur arrive avec la raison `Your organization requires approval for this tool`

104>

105> * Les outils personnalisés que votre application marque [`always_ask`](https://code.claude.com/docs/fr/agent-sdk/custom-tools#require-approval-for-specific-tools) : décidez de l'appel dans le rappel. Pour que ces appels cessent d'arriver, [modifiez la politique en cours de session](https://code.claude.com/docs/fr/agent-sdk/typescript.md#mcpsdkserverconfigwithinstance). En mode `auto`, `plan` et `bypassPermissions`, l'appel peut à la place être approuvé avant le rappel, dans les cas listés sous [Modes de permission pouvant approuver un appel `always_ask`](https://code.claude.com/docs/fr/agent-sdk/typescript#permission-modes-that-can-approve-an-always_ask-call)

94>106>

95> La couverture dépend de la forme de l'entrée : un nom nu comme `Read` ou `mcp__github__get_issue` approuve automatiquement chaque appel à cet outil en dehors de ces exceptions et des [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths), tandis qu'une règle délimitée comme `Bash(npm test *)` approuve automatiquement uniquement les appels correspondants, et les autres appels `Bash` qui nécessitent une approbation tombent toujours dans le rappel. Pour les vérifications qui doivent s'exécuter sur chaque appel d'outil, utilisez un [hook `PreToolUse`](https://code.claude.com/docs/fr/agent-sdk/hooks) : les hooks s'exécutent avant chaque autre étape, et un refus de hook s'applique même en mode `bypassPermissions`.107> * Les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) `rm` et `rmdir` reconnues : en mode `default`, `acceptEdits` et `bypassPermissions`, autorisez ou refusez la suppression dans le rappel, où [`decisionReason`](https://code.claude.com/docs/fr/agent-sdk/typescript#canusetool) commence par `Dangerous rm`. Pour les modes `auto` et `plan`, voir [Suppressions de chemins critiques dans chaque mode de permission](https://code.claude.com/docs/fr/permission-modes.md#critical-path-removals-in-each-permission-mode). La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](https://code.claude.com/docs/fr/permission-modes.md#critical-paths)

108>

109> * **Nom nu** : une entrée comme `Read` ou `mcp__github__get_issue` approuve automatiquement chaque appel à cet outil, en dehors des [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et des [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths).

110>

111> * **Règle délimitée** : une entrée comme `Bash(npm test *)` approuve automatiquement uniquement les appels correspondants, et les autres appels `Bash` qui nécessitent une approbation tombent toujours dans le rappel.

112>

113> Pour les vérifications qui doivent s'exécuter sur chaque appel d'outil, utilisez un [hook `PreToolUse`](https://code.claude.com/docs/fr/agent-sdk/hooks) : les hooks s'exécutent avant chaque autre étape, et un refus de hook s'applique même en mode `bypassPermissions`.

96 114 

97Pour un agent verrouillé, associez `allowedTools` avec `permissionMode: "dontAsk"` :115Pour un agent verrouillé, associez `allowedTools` avec `permissionMode: "dontAsk"` :

98 116 


103};121};

104```122```

105 123 

106Les outils listés sont approuvés, en dehors des [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et des [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths). Chaque autre appel qui déclencherait une demande est refusé à la place, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse toujours approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).124Les appels `Read`, `Glob` et `Grep` listés sont approuvés, en dehors des [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et des [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths). Chaque autre appel qui déclencherait une demande est refusé à la place, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse toujours approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).

107 125 

108Les appels qui ne nécessitent aucune approbation en mode `default` s'exécutent que vous les listiez ou non. Ils incluent les [commandes Bash en lecture seule](https://code.claude.com/docs/fr/permissions.md#read-only-commands), les outils comme `Agent` qui ne demandent pas avant d'exécuter, et les lectures de fichiers dans vos répertoires de travail. Pour supprimer entièrement un outil de la requête, ajoutez son nom nu à `disallowedTools`.126Les appels qui ne nécessitent aucune approbation en mode `default` s'exécutent que vous les listiez ou non. Ils incluent les [commandes Bash en lecture seule](https://code.claude.com/docs/fr/permissions.md#read-only-commands), les outils comme `Agent` qui ne demandent pas avant d'exécuter, et les lectures de fichiers dans vos répertoires de travail. Pour masquer entièrement un outil intégré à Claude plutôt que de refuser ses appels, ajoutez son nom nu à `disallowedTools`.

109 127 

110> [!WARNING]128> [!WARNING]

111>129>


128| `default` | Comportement de permission standard | Pas d'approbations automatiques basées sur le mode ; les appels qui nécessitent une approbation et ne correspondent à aucune règle d'autorisation déclenchent votre rappel `canUseTool` |146| `default` | Comportement de permission standard | Pas d'approbations automatiques basées sur le mode ; les appels qui nécessitent une approbation et ne correspondent à aucune règle d'autorisation déclenchent votre rappel `canUseTool` |

129| `dontAsk` | Refuser au lieu de demander | Tout appel qui déclencherait autrement une demande est refusé sans appeler `canUseTool`, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse encore approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Les appels approuvés par `allowed_tools` ou par les règles d'autorisation de `settings.json` s'exécutent, tout comme les appels qui ne nécessitent pas d'approbation en mode `default`. Certains appels, tels que les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths), sont refusés même lorsque `allowed_tools` ou une règle d'autorisation leur correspond. Pour la liste, consultez [Mode ne pas demander](#don’t-ask-mode-dontask) |147| `dontAsk` | Refuser au lieu de demander | Tout appel qui déclencherait autrement une demande est refusé sans appeler `canUseTool`, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse encore approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Les appels approuvés par `allowed_tools` ou par les règles d'autorisation de `settings.json` s'exécutent, tout comme les appels qui ne nécessitent pas d'approbation en mode `default`. Certains appels, tels que les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths), sont refusés même lorsque `allowed_tools` ou une règle d'autorisation leur correspond. Pour la liste, consultez [Mode ne pas demander](#don’t-ask-mode-dontask) |

130| `acceptEdits` | Accepter automatiquement les modifications de fichiers | Les modifications de fichiers et les [opérations du système de fichiers](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, etc.) sont automatiquement approuvées |148| `acceptEdits` | Accepter automatiquement les modifications de fichiers | Les modifications de fichiers et les [opérations du système de fichiers](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, etc.) sont automatiquement approuvées |

131| `bypassPermissions` | Contourner les vérifications de permission | Les outils s'exécutent sans invites de permission, sauf pour les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves). À utiliser avec prudence |149| `bypassPermissions` | Contourner les vérifications de permission | Les outils s'exécutent sans demandes de permission, sauf pour les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et, en dehors d'une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), les outils personnalisés que votre application [marque `always_ask`](https://code.claude.com/docs/fr/agent-sdk/custom-tools#require-approval-for-specific-tools). À utiliser avec prudence |

132| `plan` | Mode de planification | Claude explore et planifie sans modifier vos fichiers source ; les modifications de fichiers ne sont jamais approuvées automatiquement et demandent via votre rappel `canUseTool` |150| `plan` | Mode de planification | Claude explore et planifie sans modifier vos fichiers source ; les modifications de fichiers ne sont jamais approuvées automatiquement et demandent via votre rappel `canUseTool` |

133| `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](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) pour la disponibilité et l'ordre de décision |151| `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](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) pour la disponibilité et l'ordre de décision |

134 152 


256* Travaille sur un chemin en dehors de cette portée274* Travaille sur un chemin en dehors de cette portée

257* Écrit dans un chemin protégé275* Écrit dans un chemin protégé

258* Supprime avec `rm` ou `rmdir` un chemin que Claude Code reconnaît comme un [chemin critique](https://code.claude.com/docs/fr/permission-modes.md#critical-paths)276* Supprime avec `rm` ou `rmdir` un chemin que Claude Code reconnaît comme un [chemin critique](https://code.claude.com/docs/fr/permission-modes.md#critical-paths)

277* Exécute [`touch`](https://code.claude.com/docs/fr/permission-modes#auto-approve-file-edits-with-acceptedits-mode) avec, par exemple, une option, un glob, ou un préfixe `timeout 5` ou `LANG=C`

259 278 

260**À utiliser quand :** vous faites confiance aux modifications de Claude et souhaitez une itération plus rapide, par exemple lors du prototypage ou lorsque vous travaillez dans un répertoire isolé.279**À utiliser quand :** vous faites confiance aux modifications de Claude et souhaitez une itération plus rapide, par exemple lors du prototypage ou lorsque vous travaillez dans un répertoire isolé.

261 280 


263 282 

264Convertit toute demande de permission en refus, sans appeler `canUseTool`, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse encore approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Les outils pré-approuvés par `allowed_tools`, les règles d'autorisation `settings.json` ou un hook s'exécutent normalement. Les appels qui ne nécessitent pas d'approbation en mode `default` s'exécutent également, tels que les lectures de fichiers dans vos répertoires de travail et les appels à `Agent`.283Convertit toute demande de permission en refus, sans appeler `canUseTool`, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse encore approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Les outils pré-approuvés par `allowed_tools`, les règles d'autorisation `settings.json` ou un hook s'exécutent normalement. Les appels qui ne nécessitent pas d'approbation en mode `default` s'exécutent également, tels que les lectures de fichiers dans vos répertoires de travail et les appels à `Agent`.

265 284 

266Les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), les outils qui nécessitent une interaction utilisateur, les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths) et les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues sont refusés même lorsqu'une règle d'autorisation correspond. Une autorisation par un hook `PreToolUse` ne lève pas non plus le blocage d'une suppression de chemin critique reconnue ni d'une lecture depuis un chemin réseau. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](https://code.claude.com/docs/fr/permission-modes.md#critical-paths).285Ces appels sont refusés même lorsqu'une règle d'autorisation correspond :

286 

287* Les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools)

288* Les outils qui nécessitent une interaction utilisateur, tels que `AskUserQuestion` et les outils MCP dont le serveur définit [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool)

289* Les outils personnalisés dont votre application définit la `permission_policy` sur [`always_ask`](https://code.claude.com/docs/fr/agent-sdk/custom-tools#require-approval-for-specific-tools)

290* Les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths)

291* Les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues

292 

293Si votre hook `PreToolUse` renvoie `allow` pour une suppression de chemin critique reconnue, une lecture depuis un chemin réseau ou un appel à un outil marqué `always_ask`, l'appel est tout de même refusé. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](https://code.claude.com/docs/fr/permission-modes.md#critical-paths).

267 294 

268**À utiliser quand :** vous souhaitez une surface d'outils fixe et explicite pour un agent sans interface et préférez un refus catégorique à une dépendance silencieuse à l'absence de `canUseTool`.295**À utiliser quand :** vous souhaitez une surface d'outils fixe et explicite pour un agent sans interface et préférez un refus catégorique à une dépendance silencieuse à l'absence de `canUseTool`.

269 296 

270#### Mode contournement des permissions (`bypassPermissions`)297#### Mode contournement des permissions (`bypassPermissions`)

271 298 

272Approuve automatiquement les utilisations d'outils sans demander, sauf les cas énumérés dans l'avertissement ci-dessous. Les hooks s'exécutent toujours et peuvent bloquer les opérations si nécessaire. Sur Linux et macOS, Claude Code refuse de démarrer dans ce mode en tant que root ou sous `sudo` en dehors d'un [bac à sable reconnu](https://code.claude.com/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), et la requête échoue avant le premier tour.299Approuve automatiquement les utilisations d'outils sans demander, sauf les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves). Les hooks s'exécutent toujours et peuvent bloquer les opérations si nécessaire. Sur Linux et macOS, Claude Code refuse de démarrer dans ce mode en tant que root ou sous `sudo` en dehors d'un [sandbox reconnu](https://code.claude.com/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), et la requête échoue avant le premier tour.

273 300 

274> [!WARNING]301> [!WARNING]

275>302>


278> `allowed_tools` ne contraint pas ce mode. Chaque outil est approuvé, pas seulement ceux que vous avez énumérés. Ces contrôles s'appliquent toujours :305> `allowed_tools` ne contraint pas ce mode. Chaque outil est approuvé, pas seulement ceux que vous avez énumérés. Ces contrôles s'appliquent toujours :

279>306>

280> * Les règles de refus, les règles explicites `ask` et les hooks sont évalués avant la vérification du mode et peuvent toujours bloquer un outil.307> * Les règles de refus, les règles explicites `ask` et les hooks sont évalués avant la vérification du mode et peuvent toujours bloquer un outil.

281> * Les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), les outils qui nécessitent une interaction utilisateur et les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues reviennent toujours à votre rappel `canUseTool`. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](https://code.claude.com/docs/fr/permission-modes.md#critical-paths).308> * Les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), les outils qui nécessitent une interaction utilisateur et les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues reviennent toujours à votre rappel `canUseTool`. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](https://code.claude.com/docs/fr/permission-modes.md#critical-paths). En dehors d'une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), les appels aux outils personnalisés que votre application [marque `always_ask`](https://code.claude.com/docs/fr/agent-sdk/custom-tools#require-approval-for-specific-tools) reviennent également au rappel.

282> * Les [protections de messagerie inter-sessions](https://code.claude.com/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) s'appliquent toujours.309> * Les [protections de messagerie inter-sessions](https://code.claude.com/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) s'appliquent toujours.

283 310 

284#### Mode de planification (`plan`)311#### Mode de planification (`plan`)

285 312 

286Claude explore la base de code et produit un plan sans modifier vos fichiers source. Les outils en lecture seule s'exécutent comme ils le font en mode de permission `default`.313Claude explore la base de code et produit un plan sans modifier vos fichiers source. Les modifications de fichiers ne sont jamais approuvées automatiquement en mode plan, même lorsqu'une règle d'autorisation correspond ou qu'un hook `PreToolUse` renvoie `allow`. Elles demandent via votre rappel `canUseTool` à la place.

287 314 

288Les modifications de fichiers ne sont jamais approuvées automatiquement en mode plan, même lorsqu'une règle d'autorisation correspond ou qu'un hook `PreToolUse` renvoie `allow`. Elles demandent via votre rappel `canUseTool` à la place. Sur Claude Code v2.1.212 ou ultérieur, les commandes shell qui modifient les fichiers, telles que `touch` et `rm`, atteignent votre rappel `canUseTool` de la même manière.315Tant que le mode auto est disponible pour la session, les commandes que Claude exécute pendant la planification n'atteignent pas votre rappel par défaut, car le modèle classifieur qu'utilise le [mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) [les examine à la place](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode). Lorsque cet examen est activé, le classifieur peut également approuver des appels en lecture seule qui atteindraient autrement votre rappel, comme un appel `WebFetch` sans règle d'autorisation.

289 316 

290Dans le SDK TypeScript, si vous définissez `allowDangerouslySkipPermissions: true` aux côtés de `permissionMode: 'plan'`, les modifications de fichiers et les commandes shell qui modifient les fichiers atteignent toujours votre rappel `canUseTool`. L'option vous permet de passer à `bypassPermissions` plus tard avec `setPermissionMode()`.317> [!NOTE]

318>

319> Dans le SDK TypeScript, si vous définissez `allowDangerouslySkipPermissions: true` aux côtés de `permissionMode: 'plan'`, les modifications de fichiers atteignent toujours votre rappel `canUseTool`. Pour faire passer plus tard une session qui démarre en mode plan à `bypassPermissions` avec `setPermissionMode()`, vous devez définir `allowDangerouslySkipPermissions` dès le départ.

291 320 

292Claude peut utiliser `AskUserQuestion` pour clarifier les exigences avant de finaliser le plan. Voir [Gérer les approbations et les entrées utilisateur](https://code.claude.com/docs/fr/agent-sdk/user-input.md#handle-clarifying-questions) pour gérer ces invites.321Claude peut utiliser `AskUserQuestion` pour clarifier les exigences avant de finaliser le plan. Voir [Gérer les approbations et les entrées utilisateur](https://code.claude.com/docs/fr/agent-sdk/user-input.md#handle-clarifying-questions) pour gérer ces invites.

293 322 

Details

70>70>

71> Le chemin doit pointer vers le répertoire racine du plugin : le parent de `skills/`, `agents/`, `hooks/`, `commands/`, ou `.claude-plugin/`.71> Le chemin doit pointer vers le répertoire racine du plugin : le parent de `skills/`, `agents/`, `hooks/`, `commands/`, ou `.claude-plugin/`.

72 72 

73### Ajouter des plugins à une session en cours

74 

75Dans le SDK TypeScript, appelez [`reloadPlugins()`](https://code.claude.com/docs/fr/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) sur l'objet `Query` renvoyé par `query()`, et indiquez le répertoire du plugin dans l'option `addPlugins` de cet appel. Chaque entrée de `addPlugins` est un objet `{ type: "local", path }` avec un `path` absolu. Nécessite le SDK Agent TypeScript v0.3.301 ou une version ultérieure.

76 

77Dans cet exemple, `q` est l'objet `Query` renvoyé par `query()`. L'exemple ajoute un répertoire de plugin à la session en cours et, une fois que `reloadPlugins()` a renvoyé son résultat, affiche le chemin de chaque plugin de la session :

78 

79```typescript theme={null}

80const result = await q.reloadPlugins({

81 addPlugins: [{ type: "local", path: "/home/user/plugins/another-plugin" }]

82});

83 

84console.log(result.plugins.map((plugin) => plugin.path));

85```

86 

87Si le plugin a été chargé, la liste affichée inclut `/home/user/plugins/another-plugin`. Si ce chemin est absent de la liste, ou si `reloadPlugins()` est rejetée, consultez [Lorsque `reloadPlugins()` ne charge pas les dossiers `addPlugins`](https://code.claude.com/docs/fr/agent-sdk/typescript#when-reloadplugins-doesnt-load-the-addplugins-folders) pour connaître les causes.

88 

73## Vérification de l'installation du plugin89## Vérification de l'installation du plugin

74 90 

75Lorsque les plugins se chargent avec succès, ils apparaissent dans le message d'initialisation du système. Vous pouvez vérifier que vos plugins sont disponibles :91Lorsque les plugins se chargent avec succès, ils apparaissent dans le message d'initialisation du système. Vous pouvez vérifier que vos plugins sont disponibles :

Details

200| :- | :- | :- | :- |200| :- | :- | :- | :- |

201| `title` | `string` | `undefined` | Titre lisible par l'homme pour l'outil |201| `title` | `string` | `undefined` | Titre lisible par l'homme pour l'outil |

202| `readOnlyHint` | `boolean` | `false` | Si `true`, l'outil ne modifie pas son environnement |202| `readOnlyHint` | `boolean` | `false` | Si `true`, l'outil ne modifie pas son environnement |

203| `destructiveHint` | `boolean` | `true` | Si `true`, l'outil peut effectuer des mises à jour destructrices (uniquement significatif quand `readOnlyHint` est `false`) |203| `destructiveHint` | `boolean` | `true` | Si `true`, l'outil peut effectuer des mises à jour destructrices. Définissez explicitement `destructiveHint: true` sur tout outil que vous marquez [`always_ask`](#mcpservertoolpolicy), sinon le classifieur du mode auto peut approuver les appels de cet outil à la place de votre callback `canUseTool`. Laisser `destructiveHint` non défini ne suffit pas, car Claude Code traite un `destructiveHint` non défini comme `false` lorsqu'il gère les appels `always_ask`, bien que la valeur par défaut de la spécification MCP soit `true` |

204| `idempotentHint` | `boolean` | `false` | Si `true`, les appels répétés avec les mêmes arguments n'ont aucun effet supplémentaire (uniquement significatif quand `readOnlyHint` est `false`) |204| `idempotentHint` | `boolean` | `false` | Si `true`, les appels répétés avec les mêmes arguments n'ont aucun effet supplémentaire (uniquement significatif quand `readOnlyHint` est `false`) |

205| `openWorldHint` | `boolean` | `true` | Si `true`, l'outil interagit avec des entités externes (par exemple, recherche web). Si `false`, le domaine de l'outil est fermé (par exemple, un outil de mémoire) |205| `openWorldHint` | `boolean` | `true` | Si `true`, l'outil interagit avec des entités externes (par exemple, recherche web). Si `false`, le domaine de l'outil est fermé (par exemple, un outil de mémoire) |

206 206 


492 492 

493Objet de configuration pour la fonction `query()`.493Objet de configuration pour la fonction `query()`.

494 494 

495| Propriété | Type | Valeur par défaut | Description |495| Propriété | Type | Par défaut | Description |

496| :- | :- | :- | :- |496| :- | :- | :- | :- |

497| `abortController` | `AbortController` | `new AbortController()` | Contrôleur permettant d'annuler les opérations |497| `abortController` | `AbortController` | `new AbortController()` | Contrôleur permettant d'annuler les opérations |

498| `additionalDirectories` | `string[]` | `[]` | Répertoires supplémentaires auxquels Claude peut accéder. Le SDK transmet chaque entrée à Claude Code sous la forme `--add-dir`, de sorte qu'avec la source de paramètres `project`, Claude Code [charge également les skills, commandes et sous-agents du répertoire](https://code.claude.com/docs/fr/permissions.md#additional-directories-grant-file-access-not-configuration) |498| `additionalDirectories` | `string[]` | `[]` | Répertoires supplémentaires auxquels Claude peut accéder. Le SDK transmet chaque entrée à Claude Code sous la forme `--add-dir`, de sorte qu'avec la source de paramètres `project`, Claude Code [charge également les skills, les commandes et les sous-agents du répertoire](https://code.claude.com/docs/fr/permissions.md#additional-directories-grant-file-access-not-configuration) |

499| `agent` | `string` | `undefined` | Nom de l'agent pour le thread principal. L'agent doit être défini dans l'option `agents` ou dans les paramètres |499| `agent` | `string` | `undefined` | Nom de l'agent pour le thread principal. L'agent doit être défini dans l'option `agents` ou dans les paramètres |

500| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Définir des sous-agents par programmation |500| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | Définir des sous-agents par programmation |

501| `agentProgressSummaries` | `boolean` | `false` | Lorsque `true`, génère des résumés de progression d'une ligne pour les sous-agents et les transmet dans les événements [`task_progress`](#sdktaskprogressmessage) via le champ `summary`. S'applique aux sous-agents au premier plan et en arrière-plan |501| `agentProgressSummaries` | `boolean` | `false` | Lorsque `true`, génère des résumés de progression d'une ligne pour les sous-agents et les transmet dans les événements [`task_progress`](#sdktaskprogressmessage) via le champ `summary`. S'applique aux sous-agents au premier plan et en arrière-plan |

502| `allowDangerouslySkipPermissions` | `boolean` | `false` | Active le contournement des permissions. Requis lors de l'utilisation de `permissionMode: 'bypassPermissions'`, au démarrage ou ultérieurement via `setPermissionMode()`. Consultez [mode plan](https://code.claude.com/docs/fr/agent-sdk/permissions.md#plan-mode-plan) pour savoir comment il interagit avec `permissionMode: 'plan'` |502| `allowDangerouslySkipPermissions` | `boolean` | `false` | Active le contournement des permissions. Requis lors de l'utilisation de `permissionMode: 'bypassPermissions'`, au démarrage ou ultérieurement via `setPermissionMode()`. Consultez [mode plan](https://code.claude.com/docs/fr/agent-sdk/permissions.md#plan-mode-plan) pour savoir comment cette option interagit avec `permissionMode: 'plan'` |

503| `allowedTools` | `string[]` | `[]` | Outils à approuver automatiquement sans demande, à l'exception des lectures depuis des [chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths). Cela ne limite pas Claude à ces seuls outils. Si vous nommez ici l'un des [outils de suivi des tâches](https://code.claude.com/docs/fr/agent-sdk/todo-tracking.md#model-availability), Claude Code active également ces outils pour la session. Les autres outils non listés sont soumis à `permissionMode` et `canUseTool`. Utilisez `disallowedTools` pour bloquer des outils. Consultez [Permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#allow-and-deny-rules) |503| `allowedTools` | `string[]` | `[]` | Outils à approuver automatiquement sans demande, à l'exception des lectures depuis des [chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths). Cela ne limite pas Claude à ces seuls outils. Si vous nommez ici l'un des [outils de suivi des tâches](https://code.claude.com/docs/fr/agent-sdk/todo-tracking.md#model-availability), Claude Code active également cette fonctionnalité pour la session. Les autres outils non listés sont traités par `permissionMode` et `canUseTool`. Utilisez `disallowedTools` pour bloquer des outils. Consultez [Permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#allow-and-deny-rules) |

504| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Activer les fonctionnalités bêta |504| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Activer les fonctionnalités bêta |

505| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Fonction de permission personnalisée, invoquée uniquement lorsque le [flux de permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated) aboutit à une demande. Non invoquée pour les appels approuvés automatiquement par `allowedTools`, les règles d'autorisation ou `permissionMode`. Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves). Consultez [`CanUseTool`](#canusetool) pour plus de détails |505| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Fonction de permission personnalisée, invoquée uniquement lorsque le [flux de permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated) aboutit à une demande. Non invoquée pour les appels approuvés automatiquement par `allowedTools`, les règles d'autorisation ou `permissionMode`. Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves). Consultez [`CanUseTool`](#canusetool) pour plus de détails |

506| `continue` | `boolean` | `false` | Poursuivre la conversation la plus récente |506| `continue` | `boolean` | `false` | Poursuivre la conversation la plus récente |


509| `debugFile` | `string` | `undefined` | Écrire les logs de débogage dans un chemin de fichier spécifique. Active implicitement le mode débogage |509| `debugFile` | `string` | `undefined` | Écrire les logs de débogage dans un chemin de fichier spécifique. Active implicitement le mode débogage |

510| `disallowedTools` | `string[]` | `[]` | Outils à refuser. Un nom seul tel que `"Bash"` retire l'outil du contexte de Claude. Une règle ciblée telle que `"Bash(rm *)"` laisse l'outil disponible et refuse les appels correspondants dans tous les modes de permission, y compris `bypassPermissions`, pour la commande [telle qu'écrite](https://code.claude.com/docs/fr/permissions.md#bash-rule-limits). Consultez [Permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#allow-and-deny-rules) |510| `disallowedTools` | `string[]` | `[]` | Outils à refuser. Un nom seul tel que `"Bash"` retire l'outil du contexte de Claude. Une règle ciblée telle que `"Bash(rm *)"` laisse l'outil disponible et refuse les appels correspondants dans tous les modes de permission, y compris `bypassPermissions`, pour la commande [telle qu'écrite](https://code.claude.com/docs/fr/permissions.md#bash-rule-limits). Consultez [Permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#allow-and-deny-rules) |

511| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Contrôle l'effort que Claude consacre à sa réponse. Fonctionne avec la réflexion adaptative pour guider la profondeur de réflexion. Consultez [ajuster le niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level) |511| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Contrôle l'effort que Claude consacre à sa réponse. Fonctionne avec la réflexion adaptative pour guider la profondeur de réflexion. Consultez [ajuster le niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level) |

512| `enableFileCheckpointing` | `boolean` | `false` | Activer le suivi des modifications de fichiers pour le retour en arrière. Consultez [Checkpointing de fichiers](https://code.claude.com/docs/fr/agent-sdk/file-checkpointing.md) |512| `enableFileCheckpointing` | `boolean` | `false` | Activer le suivi des modifications de fichiers pour permettre le retour en arrière. Consultez [Checkpointing de fichiers](https://code.claude.com/docs/fr/agent-sdk/file-checkpointing.md) |

513| `env` | `Record<string, string \| undefined>` | `process.env` | Variables d'environnement. Lorsqu'elle est définie, cette option remplace l'environnement du sous-processus au lieu de fusionner avec `process.env`, passez donc `{ ...process.env, YOUR_VAR: 'value' }` pour conserver les variables héritées comme `PATH`. Consultez [Gérer les réponses d'API lentes ou bloquées](#handle-slow-or-stalled-api-responses) pour un exemple de ce modèle, et [Variables d'environnement](https://code.claude.com/docs/fr/env-vars.md) pour les variables que lit la CLI sous-jacente. Définissez `CLAUDE_AGENT_SDK_CLIENT_APP` pour identifier votre application dans l'en-tête User-Agent |513| `env` | `Record<string, string \| undefined>` | `process.env` | Variables d'environnement. Lorsqu'elle est définie, cette option remplace l'environnement du sous-processus au lieu de fusionner avec `process.env`, donc transmettez `{ ...process.env, YOUR_VAR: 'value' }` pour conserver les variables héritées comme `PATH`. Consultez [Gérer les réponses lentes ou bloquées de l'API](#handle-slow-or-stalled-api-responses) pour un exemple de ce modèle, et [Variables d'environnement](https://code.claude.com/docs/fr/env-vars.md) pour les variables que lit la CLI sous-jacente. Définissez `CLAUDE_AGENT_SDK_CLIENT_APP` pour identifier votre application dans l'en-tête User-Agent |

514| `executable` | `'bun' \| 'deno' \| 'node'` | Détecté automatiquement | Runtime JavaScript à utiliser |514| `executable` | `'bun' \| 'deno' \| 'node'` | Détection automatique | Runtime JavaScript à utiliser |

515| `executableArgs` | `string[]` | `[]` | Arguments à transmettre à l'exécutable |515| `executableArgs` | `string[]` | `[]` | Arguments à transmettre à l'exécutable |

516| `extraArgs` | `Record<string, string \| null>` | `{}` | Arguments supplémentaires |516| `extraArgs` | `Record<string, string \| null>` | `{}` | Arguments supplémentaires |

517| `fallbackModel` | `string` | `undefined` | Modèle à utiliser si le modèle principal échoue. Accepte une liste séparée par des virgules. Pour l'ordre et la limite, consultez [Chaînes de modèles de secours](https://code.claude.com/docs/fr/model-config.md#fallback-model-chains). Pour des recommandations, consultez [Choisir un modèle](https://code.claude.com/docs/fr/agent-sdk/configuration.md#choose-a-model) |517| `fallbackModel` | `string` | `undefined` | Modèle à utiliser si le modèle principal échoue. Accepte une liste séparée par des virgules. Pour l'ordre et la limite, consultez [Chaînes de modèles de secours](https://code.claude.com/docs/fr/model-config.md#fallback-model-chains). Pour des conseils, consultez [Choisir un modèle](https://code.claude.com/docs/fr/agent-sdk/configuration.md#choose-a-model) |

518| `forkSession` | `boolean` | `false` | Lors d'une reprise avec `resume`, créer un fork vers un nouvel ID de session au lieu de poursuivre la session d'origine |518| `forkSession` | `boolean` | `false` | Lors d'une reprise avec `resume`, créer un fork vers un nouvel ID de session au lieu de poursuivre la session d'origine |

519| `forwardSubagentText` | `boolean` | `false` | Transmettre le texte et les blocs de réflexion des sous-agents sous forme de messages assistant et utilisateur avec `parent_tool_use_id` défini, afin que les consommateurs puissent afficher une transcription imbriquée. Sans cette option, Claude Code omet le texte et les blocs de réflexion d'un sous-agent qui s'exécute au [premier plan](https://code.claude.com/docs/fr/sub-agents.md#run-subagents-in-foreground-or-background). Pour les sous-agents imbriqués, les skills avec `context: fork` et la version de Claude Code requise pour chacun, consultez [Suivre les messages des sous-agents](https://code.claude.com/docs/fr/headless.md#follow-subagent-messages) |519| `forwardSubagentText` | `boolean` | `false` | Transmettre le texte et les blocs de réflexion des sous-agents sous forme de messages assistant et utilisateur avec `parent_tool_use_id` défini, afin que les consommateurs puissent afficher une transcription imbriquée. Sans cette option, Claude Code omet le texte et les blocs de réflexion d'un sous-agent qui s'exécute au [premier plan](https://code.claude.com/docs/fr/sub-agents.md#run-subagents-in-foreground-or-background). Pour les sous-agents imbriqués, les skills avec `context: fork` et la version de Claude Code requise pour chacun, consultez [Suivre les messages des sous-agents](https://code.claude.com/docs/fr/headless.md#follow-subagent-messages) |

520| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callbacks de hooks pour les événements |520| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callbacks de hooks pour les événements |

521| `includeHookEvents` | `boolean` | `false` | Inclure les événements du cycle de vie des hooks dans le flux de messages sous forme de [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) et [`SDKHookResponseMessage`](#sdkhookresponsemessage). Les événements du cycle de vie des hooks `SessionStart` et `Setup` sont toujours inclus et ne nécessitent pas cette option. Certains événements de hook, tels que `Notification`, `SessionEnd`, `PreCompact` et `PostCompact`, ne produisent jamais de `SDKHookStartedMessage`, même avec cette option. Pour ces événements, Claude Code émet tout de même un `SDKHookProgressMessage` lorsqu'un hook de commande qui s'exécute pendant plus d'une seconde produit une sortie, et n'émet un `SDKHookResponseMessage` que lorsqu'un hook [qui s'exécute en arrière-plan](https://code.claude.com/docs/fr/hooks.md#run-hooks-in-the-background) se termine |521| `includeHookEvents` | `boolean` | `false` | Inclure les événements de cycle de vie des hooks dans le flux de messages sous forme de [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) et [`SDKHookResponseMessage`](#sdkhookresponsemessage). Les événements de cycle de vie des hooks `SessionStart` et `Setup` sont toujours inclus et ne nécessitent pas cette option. Certains événements de hook, tels que `Notification`, `SessionEnd`, `PreCompact` et `PostCompact`, ne produisent jamais de `SDKHookStartedMessage`, même avec cette option. Pour ces événements, Claude Code émet tout de même un `SDKHookProgressMessage` tant qu'un hook de commande qui s'exécute pendant plus d'une seconde produit une sortie, et n'émet un `SDKHookResponseMessage` que lorsqu'un hook [qui s'exécute en arrière-plan](https://code.claude.com/docs/fr/hooks.md#run-hooks-in-the-background) se termine |

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

523| `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 |523| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Délai d'expiration en millisecondes pour chaque appel à `sessionStore.load()` et `sessionStore.listSubkeys()` pendant 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 |

524| `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`](https://code.claude.com/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](https://code.claude.com/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`](https://code.claude.com/docs/fr/env-vars), trois clés sont lues directement depuis ce payload à la place : sa [configuration de modèle](https://code.claude.com/docs/fr/model-config.md#restrict-model-selection) sur Claude Code v2.1.222 ou ultérieure, [`modelPricing`](https://code.claude.com/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 |524| `managedSettings` | `Settings` | `undefined` | Paramètres de niveau stratégie que votre processus hôte fournit à la session lancée. Sur les machines dotées de paramètres gérés déployés par un administrateur, Claude Code les ignore à moins que la source gérée de plus haute priorité de l'administrateur ne définisse `parentSettingsBehavior: 'merge'`, et ne les fusionne jamais tant qu'un [`policyHelper`](https://code.claude.com/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](https://code.claude.com/docs/fr/claude-apps-gateway#restrict-parent-settings) décrit ce que le filtre admet ainsi que les verrous `allowManaged*Only`. Un hôte qui définit [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/fr/env-vars) lit plutôt trois clés directement depuis ce payload : sa [configuration de modèle](https://code.claude.com/docs/fr/model-config.md#restrict-model-selection) sur Claude Code v2.1.222 ou ultérieur, [`modelPricing`](https://code.claude.com/docs/fr/settings-reference#modelpricing) lorsqu'aucune source gérée ne le définit sur v2.1.246 ou ultérieur, et son entrée env `ENABLE_TOOL_SEARCH` sur v2.1.247 ou ultérieur |

525| `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](https://code.claude.com/docs/fr/agent-sdk/agent-loop.md#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](https://code.claude.com/docs/fr/agent-sdk/cost-tracking.md) |525| `maxBudgetUsd` | `number` | `undefined` | Arrêter la requête lorsque 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](https://code.claude.com/docs/fr/agent-sdk/agent-loop.md#budget-headroom). 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](https://code.claude.com/docs/fr/agent-sdk/cost-tracking.md) |

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

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

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

529| `model` | `string` | Valeur par défaut de la CLI | Alias de modèle Claude ou nom complet du modèle. Consultez [valeurs acceptées et ID spécifiques aux fournisseurs](https://code.claude.com/docs/fr/model-config.md#available-models) |529| `model` | `string` | Valeur par défaut de la CLI | Alias de modèle Claude ou nom complet du modèle. Consultez [valeurs acceptées et ID spécifiques aux fournisseurs](https://code.claude.com/docs/fr/model-config.md#available-models) |

530| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Callback pour gérer les requêtes d'élicitation MCP. Appelé lorsqu'un serveur MCP demande une saisie utilisateur et qu'aucun hook ne la gère en premier. S'il n'est pas fourni, les requêtes d'élicitation non gérées sont automatiquement refusées |530| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Callback pour gérer les requêtes d'élicitation MCP. Appelé lorsqu'un serveur MCP demande une saisie à l'utilisateur et qu'aucun hook ne la traite en premier. S'il n'est pas fourni, les requêtes d'élicitation non traitées sont automatiquement refusées |

531| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Définir le format de sortie des résultats de l'agent. Consultez [Sorties structurées](https://code.claude.com/docs/fr/agent-sdk/structured-outputs.md) pour plus de détails |531| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Définir le format de sortie des résultats de l'agent. Consultez [Sorties structurées](https://code.claude.com/docs/fr/agent-sdk/structured-outputs.md) pour plus de détails |

532| `outputStyle` | `string` | `undefined` | Ce n'est pas un champ d'`Options`. Définissez plutôt `outputStyle` dans l'objet [`settings`](https://code.claude.com/docs/fr/settings) inline ou dans un fichier de paramètres. Consultez [Activer un style de sortie](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#activate-an-output-style) |532| `outputStyle` | `string` | `undefined` | Ce n'est pas un champ de `Options`. Définissez plutôt `outputStyle` dans l'objet [`settings`](https://code.claude.com/docs/fr/settings) inline ou dans un fichier de paramètres. Consultez [Activer un style de sortie](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#activate-an-output-style) |

533| `pathToClaudeCodeExecutable` | `string` | Résolu automatiquement depuis le binaire natif fourni | Chemin vers l'exécutable Claude Code. Nécessaire uniquement si les dépendances optionnelles ont été ignorées lors de l'installation ou si votre plateforme ne fait pas partie de l'ensemble pris en charge |533| `pathToClaudeCodeExecutable` | `string` | Résolu automatiquement à partir du binaire natif intégré | Chemin vers l'exécutable Claude Code. Nécessaire uniquement si les dépendances optionnelles ont été ignorées lors de l'installation ou si votre plateforme ne fait pas partie de l'ensemble pris en charge |

534| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Mode de permission pour la session. Si vous l'omettez et que rien d'autre ne définit de mode de permission, comme un paramètre [`permissions.defaultMode`](https://code.claude.com/docs/fr/settings-reference#permissions-defaultmode), la session démarre en `default`. Consultez [Modes de permission](https://code.claude.com/docs/fr/agent-sdk/permissions.md#permission-modes) |534| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Mode de permission pour la session. Si vous l'omettez et que rien d'autre ne définit de mode de permission, comme un paramètre [`permissions.defaultMode`](https://code.claude.com/docs/fr/settings-reference#permissions-defaultmode), la session démarre en `default`. Consultez [Modes de permission](https://code.claude.com/docs/fr/agent-sdk/permissions.md#permission-modes) |

535| `permissionPromptToolName` | `string` | `undefined` | Nom de l'outil MCP pour les demandes de permission |535| `permissionPromptToolName` | `string` | `undefined` | Nom de l'outil MCP pour les demandes de permission |

536| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Qui répond aux demandes de permission : `'host'` les achemine vers votre callback [`canUseTool`](#canusetool) ou l'outil `permissionPromptToolName`, et `'none'` [refuse les appels qui auraient déclenché une demande](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated). Nécessite Claude Code v2.1.259 ou ultérieure |536| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Qui répond aux demandes de permission : `'host'` les achemine vers votre callback [`canUseTool`](#canusetool) ou vers l'outil `permissionPromptToolName`, et `'none'` [refuse les appels qui auraient déclenché une demande](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated). Nécessite Claude Code v2.1.259 ou ultérieur |

537| `persistSession` | `boolean` | `true` | Lorsque `false`, désactive la persistance de la session sur disque. Les sessions ne peuvent pas être reprises ultérieurement |537| `persistSession` | `boolean` | `true` | Lorsque `false`, désactive la persistance de la session sur disque. Les sessions ne peuvent alors pas être reprises ultérieurement |

538| `planModeInstructions` | `string` | `undefined` | Instructions de workflow personnalisées pour le mode plan. Lorsque `permissionMode` vaut `'plan'`, cette chaîne remplace le corps par défaut du workflow du mode plan. La CLI l'encadre toujours avec le préambule d'application de la lecture seule et le pied de page du protocole ExitPlanMode |538| `planModeInstructions` | `string` | `undefined` | Instructions de workflow personnalisées pour le mode plan. Lorsque `permissionMode` vaut `'plan'`, cette chaîne remplace le corps du workflow par défaut du mode plan. La CLI l'encadre toujours avec le préambule imposant la lecture seule et le pied de page du protocole ExitPlanMode |

539| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Charger des plugins personnalisés depuis des chemins locaux. Consultez [Plugins](https://code.claude.com/docs/fr/agent-sdk/plugins.md) pour plus de détails |539| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Charger des plugins personnalisés depuis des chemins locaux. Consultez [Plugins](https://code.claude.com/docs/fr/agent-sdk/plugins.md) pour plus de détails |

540| `projectConfigRoot` | `string` | `undefined` | Chemin absolu du checkout de confiance dont `cwd` est un worktree. Claude Code lit les paramètres du projet, `.mcp.json` et les commandes, agents, skills, workflows, routines et styles de sortie du dossier `.claude/` du projet depuis ce répertoire au lieu de `cwd`, et y fait pointer `CLAUDE_PROJECT_DIR`. Les hooks, les scripts auxiliaires tels que `apiKeyHelper` et les serveurs MCP stdio démarrent avec ce répertoire comme répertoire de travail. Les fichiers `CLAUDE.md` et `.claude/rules/` sont toujours chargés depuis `cwd`. Nécessite Claude Code v2.1.275 ou ultérieure |540| `projectConfigRoot` | `string` | `undefined` | Chemin absolu du checkout de confiance dont `cwd` est un worktree. Claude Code lit les paramètres du projet, `.mcp.json`, ainsi que les commandes, agents, skills, workflows, routines et styles de sortie du répertoire `.claude/` du projet depuis ce répertoire au lieu de `cwd`, et définit `CLAUDE_PROJECT_DIR` sur ce répertoire. Les hooks, les scripts auxiliaires tels que `apiKeyHelper` et les serveurs MCP stdio démarrent avec ce répertoire comme répertoire de travail. Les fichiers `CLAUDE.md` et `.claude/rules/` sont toujours chargés depuis `cwd`. Nécessite Claude Code v2.1.275 ou ultérieur |

541| `promptSuggestions` | `boolean` | `false` | Activer les suggestions de prompts. Après un tour, Claude Code émet un message `prompt_suggestion` contenant une prédiction du prochain prompt de l'utilisateur. Claude Code ne génère aucune suggestion pour certains tours, par exemple lorsque votre compte est proche de sa limite d'utilisation ou l'a atteinte. Consultez [Quand Claude Code ignore les suggestions](https://code.claude.com/docs/fr/interactive-mode.md#when-claude-code-skips-suggestions) |541| `promptSuggestions` | `boolean` | `false` | Activer les suggestions de prompts. Après un tour, Claude Code émet un message `prompt_suggestion` contenant une prédiction du prochain prompt de l'utilisateur. Claude Code ne génère aucune suggestion pour certains tours, par exemple lorsque votre compte approche ou a atteint sa limite d'utilisation. Consultez [Quand Claude Code ignore les suggestions](https://code.claude.com/docs/fr/interactive-mode.md#when-claude-code-skips-suggestions) |

542| `resume` | `string` | `undefined` | ID de session à reprendre |542| `resume` | `string` | `undefined` | ID de la session à reprendre |

543| `resumeDropsTurn` | `string` | `undefined` | Avec `resumeSessionAt` : l'UUID du prompt du tour que la reprise tronquante a l'intention d'écarter. Claude Code refuse la reprise lorsque la plage écartée contient quoi que ce soit qui ne soit pas attribuable à ce tour, comme des messages en file d'attente absorbés ou des notifications de tâches, et mentionne le flag `--resume-drops-turn` dans le message de refus. Seules les reprises de l'Agent SDK et du mode print lisent cette paire. Nécessite Claude Code v2.1.223 ou ultérieure |543| `resumeDropsTurn` | `string` | `undefined` | Avec `resumeSessionAt` : l'UUID du prompt du tour que la reprise avec troncature entend supprimer. Claude Code refuse la reprise lorsque la plage supprimée contient quoi que ce soit qui ne peut pas être attribué à ce tour, comme des messages en file d'attente absorbés ou des notifications de tâches, et mentionne le flag `--resume-drops-turn` dans le message de rejet. Seuls l'Agent SDK et les reprises en mode print lisent cette paire. Nécessite Claude Code v2.1.223 ou ultérieur |

544| `resumeSessionAt` | `string` | `undefined` | Reprendre la session à un UUID de message spécifique |544| `resumeSessionAt` | `string` | `undefined` | Reprendre la session à un UUID de message spécifique |

545| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Configurer le comportement du sandbox par programmation. Consultez [Paramètres du sandbox](#sandboxsettings) pour plus de détails |545| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Configurer le comportement du sandbox par programmation. Consultez [Paramètres du sandbox](#sandboxsettings) pour plus de détails |

546| `sessionId` | `string` | Généré automatiquement | Utiliser un UUID spécifique pour la session au lieu d'en générer un automatiquement |546| `sessionId` | `string` | Généré automatiquement | Utiliser un UUID spécifique pour la session au lieu d'en générer un automatiquement |

547| `sessionStore` | [`SessionStore`](https://code.claude.com/docs/fr/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Dupliquer les transcriptions de session vers un backend externe afin qu'un autre hôte puisse les reprendre. Consultez [Persister les sessions dans un stockage externe](https://code.claude.com/docs/fr/agent-sdk/session-storage.md) |547| `sessionStore` | [`SessionStore`](https://code.claude.com/docs/fr/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Répliquer les transcriptions de session vers un backend externe afin qu'un autre hôte puisse les reprendre. Consultez [Conserver les sessions dans un stockage externe](https://code.claude.com/docs/fr/agent-sdk/session-storage.md) |

548| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* Mode de vidage pour `sessionStore`. Ignoré lorsque `sessionStore` n'est pas défini |548| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *Alpha.* Mode de vidage pour `sessionStore`. Ignoré lorsque `sessionStore` n'est pas défini |

549| `settings` | `string \| Settings` | `undefined` | Objet de [paramètres](https://code.claude.com/docs/fr/settings.md) inline, chemin vers un fichier de paramètres ou chaîne JSON inline. Alimente la couche de paramètres de flag dans l'[ordre de priorité](https://code.claude.com/docs/fr/settings.md#settings-precedence). Modifiable à l'exécution avec [`applyFlagSettings()`](#applyflagsettings) |549| `settings` | `string \| Settings` | `undefined` | Objet de [paramètres](https://code.claude.com/docs/fr/settings.md) inline, chemin d'un fichier de paramètres ou chaîne JSON inline. Alimente la couche de paramètres de flag dans l'[ordre de priorité](https://code.claude.com/docs/fr/settings.md#settings-precedence). Modifiable à l'exécution avec [`applyFlagSettings()`](#applyflagsettings) |

550| `settingSources` | [`SettingSource`](#settingsource)`[]` | Valeurs par défaut de la CLI (toutes les sources) | Contrôler quels paramètres du système de fichiers charger. Passez `[]` pour désactiver les paramètres utilisateur, projet et locaux. La [stratégie gérée par endpoint](https://code.claude.com/docs/fr/managed-settings.md#delivery-mechanisms) est chargée dans tous les cas ; les paramètres gérés par le serveur sont récupérés lorsque la session s'authentifie avec des identifiants d'organisation sur une [configuration éligible](https://code.claude.com/docs/fr/server-managed-settings.md#platform-availability). Consultez [Utiliser les fonctionnalités de Claude Code](https://code.claude.com/docs/fr/agent-sdk/claude-code-features.md#what-settingsources-does-not-control) |550| `settingSources` | [`SettingSource`](#settingsource)`[]` | Valeurs par défaut de la CLI (toutes les sources) | Contrôler quels paramètres du système de fichiers charger. Transmettez `[]` pour désactiver les paramètres utilisateur, projet et locaux. La [stratégie gérée sur le poste](https://code.claude.com/docs/fr/managed-settings.md#delivery-mechanisms) est chargée dans tous les cas ; les paramètres gérés par le serveur sont récupérés lorsque la session s'authentifie avec des identifiants d'organisation sur une [configuration éligible](https://code.claude.com/docs/fr/server-managed-settings.md#platform-availability). Consultez [Utiliser les fonctionnalités de Claude Code](https://code.claude.com/docs/fr/agent-sdk/claude-code-features.md#what-settingsources-does-not-control) |

551| `skills` | `string[] \| 'all'` | `undefined` | Skills disponibles pour la session. Passez `'all'` pour activer tous les skills découverts, ou une liste de noms de skills. Ne passez que des noms exacts. Sur Agent SDK v0.3.221 ou ultérieure, le SDK rejette les noms mal formés et les noms sous forme de caractères génériques avec une erreur avant de démarrer le processus Claude Code. Lorsque cette option est définie, le SDK ajoute automatiquement l'outil Skill à `allowedTools`. Si vous passez également `tools`, incluez `'Skill'` dans cette liste. Consultez [Skills](https://code.claude.com/docs/fr/agent-sdk/skills.md) |551| `skills` | `string[] \| 'all'` | `undefined` | Skills disponibles pour la session. Transmettez `'all'` pour activer tous les skills découverts, ou une liste de noms de skills. Transmettez uniquement des noms exacts. Sur Agent SDK v0.3.221 ou ultérieur, le SDK rejette les noms mal formés et les noms contenant des caractères génériques avec une erreur avant de démarrer le processus Claude Code. Lorsque cette option est définie, le SDK ajoute automatiquement l'outil Skill à `allowedTools`. Si vous transmettez aussi `tools`, incluez `'Skill'` dans cette liste. Consultez [Skills](https://code.claude.com/docs/fr/agent-sdk/skills.md) |

552| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Fonction personnalisée pour lancer le processus Claude Code. À utiliser pour exécuter Claude Code dans des VM, des conteneurs ou des environnements distants |552| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Fonction personnalisée pour lancer le processus Claude Code. À utiliser pour exécuter Claude Code dans des VM, des conteneurs ou des environnements distants |

553| `stderr` | `(data: string) => void` | `undefined` | Callback pour la sortie stderr |553| `stderr` | `(data: string) => void` | `undefined` | Callback pour la sortie stderr |

554| `strictMcpConfig` | `boolean` | `false` | Utiliser uniquement les serveurs passés dans `mcpServers` et ignorer le `.mcp.json` du projet, les paramètres utilisateur, les serveurs MCP fournis par des plugins et les [connecteurs claude.ai](https://code.claude.com/docs/fr/mcp.md#use-mcp-servers-from-claude-ai) |554| `strictMcpConfig` | `boolean` | `false` | Utiliser uniquement les serveurs transmis dans `mcpServers` et ignorer le `.mcp.json` du projet, les paramètres utilisateur, les serveurs MCP fournis par des plugins et les [connecteurs claude.ai](https://code.claude.com/docs/fr/mcp.md#use-mcp-servers-from-claude-ai) |

555| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (prompt minimal) | Configuration du prompt système. Passez une chaîne pour un prompt personnalisé, ou `{ type: 'preset', preset: 'claude_code' }` pour utiliser le prompt système de Claude Code. Passez un tableau de chaînes avec la constante exportée `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre la partie statique et la partie propre à chaque requête pour [mettre en cache la partie statique d'un prompt personnalisé](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#cache-the-static-part-of-a-custom-prompt). Avec la forme objet preset, ajoutez `append` pour l'étendre avec des instructions supplémentaires, et définissez `excludeDynamicSections: true` pour déplacer le contexte propre à la session dans le premier message utilisateur afin d'[améliorer la réutilisation du cache de prompts entre machines](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#improve-prompt-caching-across-users-and-machines). Définissez `snapshot: false` pour reconstruire le prompt à chaque requête au lieu de [réutiliser le prompt enregistré par la session lors de sa première requête](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session). Pour définir `snapshot` sur un prompt personnalisé, passez la forme `{ type: 'custom', prompt }`. La forme `{ type: 'custom' }` et le champ `snapshot` nécessitent TypeScript Agent SDK v0.3.257 ou ultérieure |555| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (prompt minimal) | Configuration du prompt système. Transmettez une chaîne pour un prompt personnalisé, ou `{ type: 'preset', preset: 'claude_code' }` pour utiliser le prompt système de Claude Code. Transmettez un tableau de chaînes avec la constante exportée `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre la partie statique et la partie propre à chaque requête pour [mettre en cache la partie statique d'un prompt personnalisé](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#cache-the-static-part-of-a-custom-prompt). Avec la forme objet du preset, ajoutez `append` pour l'étendre avec des instructions supplémentaires, et définissez `excludeDynamicSections: true` pour déplacer le contexte propre à la session dans le premier message utilisateur afin d'[améliorer la réutilisation du cache de prompts entre machines](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#improve-prompt-caching-across-users-and-machines). Définissez `snapshot: false` pour reconstruire le prompt à chaque requête au lieu de [réutiliser le prompt que la session a enregistré lors de sa première requête](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session). Pour définir `snapshot` sur un prompt personnalisé, utilisez la forme `{ type: 'custom', prompt }`. La forme `{ type: 'custom' }` et le champ `snapshot` nécessitent TypeScript Agent SDK v0.3.257 ou ultérieur |

556| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* Budget de tâche côté API en tokens. Lorsqu'il est défini, le modèle est informé de son budget de tokens restant afin de pouvoir doser son utilisation des outils et conclure avant la limite |556| `taskBudget` | `{ total: number }` | `undefined` | *Alpha.* Budget de tâche côté API, en tokens. Lorsqu'il est défini, le modèle est informé de son budget de tokens restant afin de pouvoir doser son utilisation des outils et conclure avant la limite |

557| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` pour les modèles pris en charge | Contrôle le comportement de réflexion/raisonnement de Claude. Consultez [`ThinkingConfig`](#thinkingconfig) pour les options |557| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` pour les modèles pris en charge | Contrôle le comportement de réflexion/raisonnement de Claude. Consultez [`ThinkingConfig`](#thinkingconfig) pour les options |

558| `title` | `string` | `undefined` | Titre d'affichage de la session. Lors d'une reprise via `resume` ou `continue`, le titre persisté de la session reprise a priorité ; utilisez [`renameSession()`](#renamesession) pour renommer une session existante |558| `title` | `string` | `undefined` | Titre d'affichage de la session. Lors d'une reprise via `resume` ou `continue`, le titre persistant de la session reprise a priorité ; utilisez [`renameSession()`](#renamesession) pour renommer une session existante |

559| `toolAliases` | `Record<string, string>` | `undefined` | Associer des noms d'outils intégrés à des noms d'outils MCP afin que Claude appelle votre implémentation MCP à la place de l'outil intégré. Par exemple, `{ Bash: 'mcp__workspace__bash' }` |559| `toolAliases` | `Record<string, string>` | `undefined` | Associer des noms d'outils intégrés à des noms d'outils MCP afin que Claude appelle votre implémentation MCP à la place de l'outil intégré. Par exemple, `{ Bash: 'mcp__workspace__bash' }` |

560| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Configuration du comportement des outils intégrés. Consultez [`ToolConfig`](#toolconfig) pour plus de détails |560| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Configuration du comportement des outils intégrés. Consultez [`ToolConfig`](#toolconfig) pour plus de détails |

561| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Configuration des outils. Passez un tableau de noms d'outils ou utilisez le preset pour obtenir les outils par défaut de Claude Code |561| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Configuration des outils. Transmettez un tableau de noms d'outils ou utilisez le preset pour obtenir les outils par défaut de Claude Code |

562| `verbatimPrompts` | `boolean` | `false` | Transmettre chaque prompt tel qu'il est écrit. Le SDK envoie chaque message utilisateur avec `client_composed: true`. Consultez [`client_composed`](#sdkusermessage) pour savoir ce que Claude Code ignore sur ces messages. Utilisez cette option lorsque le texte de votre prompt inclut du contenu que l'utilisateur final n'a pas saisi. Pour un contrôle par tour, laissez-la désactivée et définissez plutôt `client_composed` sur les messages individuels envoyés en streaming. Nécessite TypeScript Agent SDK v0.3.280 ou ultérieure et Claude Code v2.1.248 ou ultérieure ; la version de Claude Code fournie avec ces versions du SDK satisfait l'exigence relative à Claude Code |562| `verbatimPrompts` | `boolean` | `false` | Transmettre chaque prompt tel qu'écrit. Le SDK envoie chaque message utilisateur avec `client_composed: true`. Consultez [`client_composed`](#sdkusermessage) pour savoir ce que Claude Code ignore sur ces messages. Utilisez cette option lorsque le texte de votre prompt inclut du contenu que l'utilisateur final n'a pas saisi. Pour un contrôle tour par tour, laissez-la désactivée et définissez plutôt `client_composed` sur des messages individuels envoyés en streaming. Nécessite TypeScript Agent SDK v0.3.280 ou ultérieur et Claude Code v2.1.248 ou ultérieur ; la version de Claude Code intégrée à ces versions du SDK satisfait l'exigence relative à Claude Code |

563 563 

564#### Gérer les réponses d'API lentes ou bloquées564#### Gérer les réponses lentes ou bloquées de l'API

565 565 

566Le sous-processus CLI lit plusieurs variables d'environnement qui contrôlent les délais d'expiration de l'API et la détection des blocages. Transmettez-les via l'option `env` :566Le sous-processus de la CLI lit plusieurs variables d'environnement qui contrôlent les délais d'expiration de l'API et la détection des blocages. Transmettez-les via l'option `env` :

567 567 

568```typescript theme={null}568```typescript theme={null}

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


581});581});

582```582```

583 583 

584* [`API_TIMEOUT_MS`](https://code.claude.com/docs/fr/env-vars) : durée pendant laquelle chaque tentative de requête peut attendre les en-têtes de réponse, en millisecondes. Elle ne limite pas la durée d'une réponse en streaming une fois les en-têtes reçus. Valeur par défaut : `600000`. S'applique à la boucle principale et à tous les sous-agents.584* [`API_TIMEOUT_MS`](https://code.claude.com/docs/fr/env-vars) : durée pendant laquelle chaque tentative de requête peut attendre les en-têtes de réponse, en millisecondes. Elle ne limite pas la durée d'une réponse en streaming une fois les en-têtes reçus. Valeur par défaut `600000`. S'applique à la boucle principale et à tous les sous-agents.

585* `CLAUDE_CODE_MAX_RETRIES` : nombre maximal de nouvelles tentatives d'API. Valeur par défaut `10`, plafonnée à `15`. Chaque nouvelle tentative dispose de sa propre fenêtre `API_TIMEOUT_MS`.585* `CLAUDE_CODE_MAX_RETRIES` : nombre maximal de nouvelles tentatives auprès de l'API. Valeur par défaut `10`, plafonnée à `15`. Chaque nouvelle tentative dispose de sa propre fenêtre `API_TIMEOUT_MS`.

586 586 

587 Pour les exécutions sans surveillance qui doivent attendre la fin de pannes plus longues, définissez [`CLAUDE_CODE_RETRY_WATCHDOG=1`](https://code.claude.com/docs/fr/errors#tune-retry-behavior) : cette variable réessaie indéfiniment en cas d'erreurs de capacité transitoires et, sur Claude Code v2.1.199 ou ultérieur, porte la valeur par défaut à `300` pour les autres erreurs transitoires et supprime le plafond de cette variable.587 Pour les exécutions sans surveillance qui doivent patienter pendant des pannes plus longues, définissez [`CLAUDE_CODE_RETRY_WATCHDOG=1`](https://code.claude.com/docs/fr/errors#tune-retry-behavior) : cette option réessaie indéfiniment en cas d'erreurs de capacité transitoires et, sur Claude Code v2.1.199 ou ultérieur, porte la valeur par défaut pour les autres erreurs transitoires à `300` et supprime le plafond de cette variable.

588* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : watchdog de blocage pour les sous-agents. Tant que le watchdog de flux est actif, la valeur par défaut est `CLAUDE_STREAM_IDLE_TIMEOUT_MS` plus 5 minutes, soit `600000` sauf si vous augmentez cette variable. Lorsque le watchdog de flux est désactivé, la valeur par défaut est `600000`. Avant v2.1.257, la valeur par défaut était toujours `600000`.588* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` : watchdog de blocage pour les sous-agents. Lorsque le watchdog de flux est activé, la valeur par défaut est `CLAUDE_STREAM_IDLE_TIMEOUT_MS` plus 5 minutes, soit `600000` à moins que vous n'augmentiez cette variable. Lorsque le watchdog de flux est désactivé, la valeur par défaut est `600000`. Avant la v2.1.257, la valeur par défaut était toujours `600000`.

589 589 

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

591* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : watchdog de flux qui interrompt la requête lorsque les en-têtes sont arrivés mais que le corps de la réponse cesse d'être transmis. Le watchdog est activé par défaut pour tous les fournisseurs ; définissez `CLAUDE_ENABLE_STREAM_WATCHDOG=0` pour le désactiver. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` vaut `300000` par défaut et ne peut pas descendre en dessous de ce minimum. Après l'interruption, [Nouvelles tentatives automatiques](https://code.claude.com/docs/fr/errors.md#automatic-retries) décrit ce que fait Claude Code, selon l'avancement de la réponse.591* `CLAUDE_ENABLE_STREAM_WATCHDOG` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : watchdog de flux qui interrompt la requête lorsque les en-têtes sont arrivés mais que le corps de la réponse cesse d'être diffusé. Le watchdog est activé par défaut pour tous les fournisseurs ; définissez `CLAUDE_ENABLE_STREAM_WATCHDOG=0` pour le désactiver. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` vaut `300000` par défaut et ne peut pas descendre en dessous de ce minimum. Après l'interruption, [Nouvelles tentatives automatiques](https://code.claude.com/docs/fr/errors.md#automatic-retries) décrit ce que fait Claude Code, selon l'état d'avancement de la réponse.

592 592 

593 Pendant que le watchdog attend une réponse qu'une passerelle derrière `ANTHROPIC_BASE_URL` maintient ouverte avec des pings keep-alive, un hôte qui définit `includePartialMessages` continue de recevoir des [événements de flux](#sdkpartialassistantmessage) `ping` ; interprétez donc ces trames comme des signes d'activité plutôt que de faire expirer la session en cas de silence. Avant v2.1.257, les trames s'arrêtaient 5 minutes après le dernier véritable événement de flux.593 Pendant que le watchdog attend une réponse qu'une passerelle située derrière `ANTHROPIC_BASE_URL` maintient ouverte avec des pings keep-alive, un hôte qui définit `includePartialMessages` continue de recevoir des [événements de flux](#sdkpartialassistantmessage) `ping` ; interprétez donc ces trames comme des signes d'activité plutôt que de faire expirer la session en cas de silence. Avant la v2.1.257, ces trames s'arrêtaient 5 minutes après le dernier véritable événement de flux.

594 594 

595### Objet `Query`595### Objet `Query`

596 596 


630 ): Promise<SDKControlReadFileResponse | null>;630 ): Promise<SDKControlReadFileResponse | null>;

631 reloadPlugins(options?: {631 reloadPlugins(options?: {

632 holdOnCacheImpact?: boolean;632 holdOnCacheImpact?: boolean;

633 addPlugins?: SdkPluginConfig[];

633 }): Promise<SDKControlReloadPluginsResponse>;634 }): Promise<SDKControlReloadPluginsResponse>;

634 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;635 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;

635 reloadOutputStyles(): Promise<SDKControlReloadOutputStylesResponse>;636 reloadOutputStyles(): Promise<SDKControlReloadOutputStylesResponse>;


654 655 

655| Méthode | Description |656| Méthode | Description |

656| :- | :- |657| :- | :- |

657| `interrupt()` | Interrompt la requête. Disponible uniquement en mode d'entrée en streaming. Lorsque la CLI annonce la capacité `interrupt_receipt_v1` dans [`SDKSystemMessage.capabilities`](#sdksystemmessage), se résout avec un [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) listant les messages qui étaient en attente lorsque l'interruption est arrivée. Se résout avec `undefined` sur les CLI antérieures à v2.1.205 |658| `interrupt()` | Interrompt la requête. Disponible uniquement en mode d'entrée en streaming. Lorsque la CLI annonce la capacité `interrupt_receipt_v1` dans [`SDKSystemMessage.capabilities`](#sdksystemmessage), se résout avec un [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) listant les messages en attente au moment de l'interruption. Se résout en `undefined` sur les CLI antérieures à la v2.1.205 |

658| `rewindFiles(userMessageId, options?)` | Restaure les fichiers dans leur état au moment du message utilisateur spécifié. Passez `{ dryRun: true }` pour prévisualiser les modifications. Nécessite `enableFileCheckpointing: true`. Consultez [Checkpointing de fichiers](https://code.claude.com/docs/fr/agent-sdk/file-checkpointing.md) |659| `rewindFiles(userMessageId, options?)` | Restaure les fichiers dans leur état au moment du message utilisateur spécifié. Transmettez `{ dryRun: true }` pour prévisualiser les modifications. Nécessite `enableFileCheckpointing: true`. Consultez [Checkpointing de fichiers](https://code.claude.com/docs/fr/agent-sdk/file-checkpointing.md) |

659| `setPermissionMode()` | Modifie le mode de permission (disponible uniquement en mode d'entrée en streaming) |660| `setPermissionMode()` | Modifie le mode de permission (disponible uniquement en mode d'entrée en streaming) |

660| `setModel()` | Modifie le modèle (disponible uniquement en mode d'entrée en streaming). Passer `undefined` ou la chaîne `"default"` réinitialise vers le [modèle par défaut de Claude Code](https://code.claude.com/docs/fr/model-config.md). Une session en mode `auto` [passe en mode `default`](https://code.claude.com/docs/fr/agent-sdk/permissions#auto-mode-auto) si le nouveau modèle ne prend pas en charge le mode auto |661| `setModel()` | Modifie le modèle (disponible uniquement en mode d'entrée en streaming). Transmettre `undefined` ou la chaîne `"default"` rétablit le [modèle par défaut de Claude Code](https://code.claude.com/docs/fr/model-config.md). Une session en mode `auto` [passe en mode `default`](https://code.claude.com/docs/fr/agent-sdk/permissions#auto-mode-auto) si le nouveau modèle ne prend pas en charge le mode auto |

661| `setMaxThinkingTokens()` | *Obsolète :* Utilisez plutôt l'option `thinking`. Modifie le nombre maximal de tokens de réflexion. Passer `null` rétablit la réflexion à la valeur par défaut de la session : un remplacement en cours de session est effacé, et la réflexion reste désactivée pour les sessions où elle est désactivée |662| `setMaxThinkingTokens()` | *Obsolète :* utilisez plutôt l'option `thinking`. Modifie le nombre maximal de tokens de réflexion. Transmettre `null` rétablit la réflexion à la valeur par défaut de la session : un remplacement effectué en cours de session est effacé, et la réflexion reste désactivée pour les sessions où elle l'est |

662| `applyFlagSettings(settings)` | Fusionne des paramètres dans la couche de paramètres de flag de la session à l'exécution (disponible uniquement en mode d'entrée en streaming). Consultez [`applyFlagSettings()`](#applyflagsettings) |663| `applyFlagSettings(settings)` | Fusionne des paramètres dans la couche de paramètres de flag de la session à l'exécution (disponible uniquement en mode d'entrée en streaming). Consultez [`applyFlagSettings()`](#applyflagsettings) |

663| `updateSettings(source, settings)` | Écrit une clé autorisée dans le fichier de paramètres locaux du projet ou dans votre fichier de paramètres utilisateur, afin que la valeur persiste pour les sessions ultérieures. Consultez [`updateSettings()`](#updatesettings). Nécessite TypeScript SDK v0.3.257 ou ultérieure, qui inclut Claude Code v2.1.257 |664| `updateSettings(source, settings)` | Écrit une clé autorisée dans le fichier de paramètres locaux du projet ou dans votre fichier de paramètres utilisateur, afin que la valeur persiste pour les sessions ultérieures. Consultez [`updateSettings()`](#updatesettings). Nécessite le SDK TypeScript v0.3.257 ou ultérieur, qui intègre Claude Code v2.1.257 |

664| `initializationResult()` | Renvoie le résultat complet de l'initialisation, y compris les commandes prises en charge, les modèles, les informations de compte et la configuration du style de sortie |665| `initializationResult()` | Renvoie le résultat complet de l'initialisation, y compris les commandes prises en charge, les modèles, les informations de compte et la configuration du style de sortie |

665| `reinitialize()` | Renvoie la requête de contrôle `initialize` à la CLI en cours d'exécution et renvoie un nouveau résultat au lieu du résultat mis en cache lors de la première connexion. Utilisez-la après une interruption du transport, par exemple lors du rattachement à une session après une déconnexion, afin que les demandes de permission en attente parviennent de nouveau à votre callback `canUseTool`. Rendez le callback idempotent par ID de requête, car une requête dont la réponse a été perdue est de nouveau distribuée. Nécessite Claude Code v2.1.195 ou ultérieure |666| `reinitialize()` | Renvoie la requête de contrôle `initialize` à la CLI en cours d'exécution et renvoie un nouveau résultat au lieu du résultat mis en cache lors de la première connexion. Utilisez-la après une interruption du transport, par exemple lors du rattachement à une session après une déconnexion, afin que les demandes de permission en attente parviennent à nouveau à votre callback `canUseTool`. Rendez le callback idempotent par ID de requête, car une requête dont la réponse a été perdue est à nouveau distribuée. Nécessite Claude Code v2.1.195 ou ultérieur |

666| `supportedCommands()` | Renvoie les commandes disponibles. À partir d'Agent SDK v0.3.216, la liste reflète les modifications de commandes en cours de session ; consultez [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |667| `supportedCommands()` | Renvoie les commandes disponibles. À partir d'Agent SDK v0.3.216, la liste reflète les modifications de commandes survenues en cours de session ; consultez [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |

667| `supportedModels()` | Renvoie les modèles disponibles avec leurs informations d'affichage |668| `supportedModels()` | Renvoie les modèles disponibles avec leurs informations d'affichage |

668| `supportedAgents()` | Renvoie les sous-agents disponibles sous forme de [`AgentInfo`](#agentinfo)`[]` |669| `supportedAgents()` | Renvoie les sous-agents disponibles sous forme de [`AgentInfo`](#agentinfo)`[]` |

669| `mcpServerStatus()` | Renvoie l'état des serveurs MCP connectés sous forme de [`McpServerStatus`](#mcpserverstatus)`[]` |670| `mcpServerStatus()` | Renvoie l'état des serveurs MCP connectés sous forme de [`McpServerStatus`](#mcpserverstatus)`[]` |

670| `getContextUsage(opts?)` | Renvoie un [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) détaillant l'utilisation de la fenêtre de contexte de la session par catégorie, skill et outil. Avec la valeur par défaut de `detail`, il inclut les données que `/context` affiche dans une session interactive, calculées à l'aide de requêtes API de comptage de tokens qui n'apparaissent pas dans le flux de messages ; consultez [comment ces requêtes sont gérées](#sdkcontrolgetcontextusageresponse). L'[option `detail`](#sdkcontrolgetcontextusageresponse) nécessite Agent SDK v0.3.257 ou ultérieur |671| `getContextUsage(opts?)` | Renvoie un [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) détaillant l'utilisation de la fenêtre de contexte de la session par catégorie, skill et outil. Avec la valeur par défaut de `detail`, il inclut les données qu'affiche `/context` dans une session interactive, calculées au moyen de requêtes API de comptage de tokens qui n'apparaissent pas dans le flux de messages ; consultez [comment ces requêtes sont traitées](#sdkcontrolgetcontextusageresponse). L'[option `detail`](#sdkcontrolgetcontextusageresponse) nécessite Agent SDK v0.3.257 ou ultérieur |

671| `readFile(path, options?)` | Lit un fichier depuis le système de fichiers de la session. Claude Code résout le chemin par rapport à `cwd` ; [Ce que `readFile()` peut lire](#what-readfile-can-read) liste les fichiers qu'elle sert. Passez `{ maxBytes }` pour modifier la limite de lecture (1 Mo par défaut, 10 Mo maximum) et `{ encoding: 'base64' }` pour les fichiers binaires tels que les images. Se résout avec un [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), ou `null` en cas de refus de permission, de fichier manquant ou d'erreur de transport. Nécessite TypeScript SDK v0.2.121 ou ultérieure |672| `readFile(path, options?)` | Lit un fichier depuis le système de fichiers de la session. Claude Code résout le chemin par rapport à `cwd` ; [Ce que `readFile()` peut lire](#what-readfile-can-read) liste les fichiers qu'il fournit. Transmettez `{ maxBytes }` pour modifier la limite de lecture (1 Mo par défaut, plafond de 10 Mo) et `{ encoding: 'base64' }` pour les fichiers binaires tels que les images. Se résout avec un [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), ou `null` en cas de refus de permission, de fichier manquant ou d'erreur de transport. Nécessite le SDK TypeScript v0.2.121 ou ultérieur |

672| `reloadPlugins(options?)` | Recharge les plugins depuis le disque, afin que les plugins que vous installez ou modifiez en cours de session parviennent à la session en cours. Se résout avec un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) listant les commandes, les sous-agents, les plugins et l'état des serveurs MCP de la session. Nécessite Agent SDK v0.2.85 ou ultérieure. L'[option `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) nécessite Agent SDK v0.3.268 ou ultérieure |673| `reloadPlugins(options?)` | Recharge les plugins depuis le disque, afin que les plugins que vous installez ou modifiez en cours de session parviennent à la session en cours d'exécution. Se résout avec un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) listant les commandes, les sous-agents, les plugins et l'état des serveurs MCP de la session. Nécessite Agent SDK v0.2.85 ou ultérieur. L'[option `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) nécessite Agent SDK v0.3.268 ou ultérieur. L'[option `addPlugins`](#load-more-plugin-folders-with-addplugins) nécessite Agent SDK v0.3.301 ou ultérieur |

673| `reloadSkills()` | Recharge les skills depuis le disque, afin que les skills que vous ajoutez ou modifiez en cours de session deviennent disponibles pour la session en cours. Se résout avec un [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) listant les skills disponibles après le rechargement. Nécessite Agent SDK v0.3.163 ou ultérieure |674| `reloadSkills()` | Recharge les skills depuis le disque, afin que les skills que vous ajoutez ou modifiez en cours de session deviennent disponibles pour la session en cours d'exécution. Se résout avec un [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) listant les skills disponibles après le rechargement. Nécessite Agent SDK v0.3.163 ou ultérieur |

674| `reloadOutputStyles()` | Relit les [styles de sortie](https://code.claude.com/docs/fr/output-styles.md) depuis le disque, afin qu'un fichier de style que vous ajoutez ou modifiez en cours de session devienne disponible pour la session en cours. Se résout avec un [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) listant les noms de styles disponibles après le rechargement. Nécessite Agent SDK v0.3.261 ou ultérieure |675| `reloadOutputStyles()` | Relit les [styles de sortie](https://code.claude.com/docs/fr/output-styles.md) depuis le disque, afin qu'un fichier de style que vous ajoutez ou modifiez en cours de session devienne disponible pour la session en cours d'exécution. Se résout avec un [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) listant les noms de styles disponibles après le rechargement. Nécessite Agent SDK v0.3.261 ou ultérieur |

675| `seedReadState(path, mtime)` | Marque un fichier comme déjà lu afin qu'une modification ultérieure via Edit n'échoue pas avec `File has not been read yet`. Consultez [`seedReadState()`](#seedreadstate). Nécessite TypeScript SDK v0.2.83 ou ultérieur |676| `seedReadState(path, mtime)` | Marque un fichier comme déjà lu afin qu'un Edit ultérieur n'échoue pas avec `File has not been read yet`. Consultez [`seedReadState()`](#seedreadstate). Nécessite le SDK TypeScript v0.2.83 ou ultérieur |

676| `accountInfo()` | Renvoie les informations du compte |677| `accountInfo()` | Renvoie les informations du compte |

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

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

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

680| `setMcpPermissionModeOverride(serverName, mode)` | Remplace le mode de permission des outils d'un serveur MCP par un mode plus strict que celui de la session, ou efface ce remplacement avec `null`. Disponible uniquement en mode d'entrée en streaming. Consultez [`setMcpPermissionModeOverride()`](#setmcppermissionmodeoverride). Nécessite TypeScript SDK v0.3.187 ou ultérieur |681| `setMcpPermissionModeOverride(serverName, mode)` | Remplace le mode de permission des outils d'un serveur MCP par un mode plus strict que celui de la session, ou efface ce remplacement avec `null`. Disponible uniquement en mode d'entrée en streaming. Consultez [`setMcpPermissionModeOverride()`](#setmcppermissionmodeoverride). Nécessite le SDK TypeScript v0.3.187 ou ultérieur |

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

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

683| `stopTask(taskId)` | Arrête une tâche en arrière-plan en cours d'exécution par son ID |684| `stopTask(taskId)` | Arrêter une tâche en arrière-plan en cours d'exécution par son ID |

684| `backgroundTasks(toolUseId?)` | Place en arrière-plan les commandes Bash et les sous-agents en cours d'exécution que le tour attend, comme lorsque vous appuyez sur Ctrl+B dans le terminal interactif. Consultez [`backgroundTasks()`](#backgroundtasks). Nécessite TypeScript SDK v0.2.139 ou ultérieur |685| `backgroundTasks(toolUseId?)` | Place en arrière-plan les commandes Bash et les sous-agents en cours d'exécution que le tour attend, comme lorsque vous appuyez sur Ctrl+B dans le terminal interactif. Consultez [`backgroundTasks()`](#backgroundtasks). Nécessite le SDK TypeScript v0.2.139 ou ultérieur |

685| `close()` | Ferme la requête et termine le processus sous-jacent. Met fin de force à la requête et libère toutes les ressources |686| `close()` | Fermer la requête et terminer le processus sous-jacent. Met fin de force à la requête et libère toutes les ressources |

686 687 

687#### `setMcpPermissionModeOverride()`688#### `setMcpPermissionModeOverride()`

688 689 

689Remplace le mode de permission des outils d'un serveur MCP par un mode plus strict que celui de la session, ou efface ce remplacement avec `null`. Utilisez-la lorsqu'une session s'exécute dans un mode qui ignore les demandes par action, mais que les outils d'un serveur doivent tout de même être examinés. Nécessite TypeScript SDK v0.3.187 ou ultérieur.690Remplace le mode de permission des outils d'un serveur MCP par un mode plus strict que celui de la session, ou efface ce remplacement avec `null`. Utilisez-la lorsqu'une session s'exécute dans un mode qui ignore les demandes par action, mais que les outils d'un serveur doivent tout de même être vérifiés. Nécessite le SDK TypeScript v0.3.187 ou ultérieur.

690 691 

691Passez l'une de ces trois valeurs comme `mode` :692Transmettez l'une de ces trois valeurs comme `mode` :

692 693 

693* `'default'` : Claude Code évalue les appels d'outils de ce serveur comme le fait le [mode manuel](https://code.claude.com/docs/fr/permission-modes.md#available-modes).694* `'default'` : Claude Code évalue les appels d'outils de ce serveur comme le fait le [mode manuel](https://code.claude.com/docs/fr/permission-modes.md#available-modes).

694* `'auto'` : Claude Code fait passer les appels d'outils de ce serveur par le classifieur du [mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode). Claude Code rejette cette valeur lorsque le classifieur n'est pas disponible pour la session.695* `'auto'` : Claude Code fait passer les appels d'outils de ce serveur par le classifieur du [mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode). Claude Code rejette cette valeur lorsque le classifieur n'est pas disponible pour la session.

695* `null` : efface le remplacement.696* `null` : efface le remplacement.

696 697 

697Le remplacement ne prend effet que lorsque la session se trouve dans un mode qui ignore les demandes par action : `bypassPermissions` ou `auto`. Dans tout autre mode de session, Claude Code ignore le remplacement, de sorte qu'il ne peut jamais élargir ce que la session autorise.698Le remplacement ne prend effet que lorsque la session se trouve dans un mode qui ignore les demandes par action : `bypassPermissions` ou `auto`. Dans tout autre mode de session, Claude Code ignore le remplacement, qui ne peut donc jamais élargir ce que la session autorise.

698 699 

699La promesse se résout avec `{ warning }` lorsqu'aucun serveur portant ce nom n'est encore connu. Claude Code enregistre tout de même le remplacement et l'applique dès qu'un serveur portant exactement ce nom se connecte ; l'avertissement sert donc à détecter une faute de frappe, et non à signaler un échec.700La promesse se résout avec `{ warning }` lorsqu'aucun serveur portant ce nom n'est encore connu. Claude Code enregistre tout de même le remplacement et l'applique dès qu'un serveur portant exactement ce nom se connecte ; l'avertissement sert donc à détecter les fautes de frappe, il ne signale pas un échec.

700 701 

701Disponible uniquement en mode d'entrée en streaming, avec la même contrainte que `setModel()` et `setPermissionMode()`.702Disponible uniquement en mode d'entrée en streaming, avec la même contrainte que `setModel()` et `setPermissionMode()`.

702 703 

703#### `seedReadState()`704#### `seedReadState()`

704 705 

705Marque un fichier comme déjà lu afin qu'une modification ultérieure via Edit n'échoue pas avec `File has not been read yet`. Utilisez-la lorsque votre application a retiré du contexte de la conversation un résultat `Read` antérieur et que Claude va ensuite modifier ce fichier. Nécessite TypeScript SDK v0.2.83 ou ultérieur.706Marque un fichier comme déjà lu afin qu'un Edit ultérieur n'échoue pas avec `File has not been read yet`. Utilisez-la lorsque votre application a retiré un résultat `Read` antérieur du contexte de la conversation et que Claude va ensuite modifier ce fichier. Nécessite le SDK TypeScript v0.2.83 ou ultérieur.

706 707 

707Passez `mtime` comme l'heure de modification du fichier au moment de cette lecture antérieure, en millisecondes entières depuis l'epoch, par exemple `Math.floor(stat.mtimeMs)`. Si le fichier sur le disque a été modifié après cette date, Claude Code n'applique pas le marquage.708Transmettez `mtime` comme date de modification du fichier au moment de cette lecture antérieure, en millisecondes entières depuis l'epoch, par exemple `Math.floor(stat.mtimeMs)`. Si le fichier sur le disque a été modifié après cette date, Claude Code ne le marque pas.

708 709 

709La promesse se résout que le fichier ait été marqué ou non ; une promesse résolue ne vous indique donc pas ce qui s'est passé.710La promesse se résout que le fichier ait été marqué ou non ; une promesse résolue ne vous indique donc pas ce qui s'est produit.

710 711 

711#### `backgroundTasks()`712#### `backgroundTasks()`

712 713 

713Place en arrière-plan les commandes Bash et les sous-agents en cours d'exécution que le tour attend, comme lorsque vous appuyez sur Ctrl+B dans le terminal interactif. Passez le `toolUseId` d'un appel d'outil pour ne placer en arrière-plan que la commande Bash ou le sous-agent lancé par cet appel, ou omettez-le pour placer en arrière-plan toutes les tâches au premier plan. Nécessite TypeScript SDK v0.2.139 ou ultérieur.714Place en arrière-plan les commandes Bash et les sous-agents en cours d'exécution que le tour attend, comme lorsque vous appuyez sur Ctrl+B dans le terminal interactif. Transmettez le `toolUseId` d'un appel d'outil pour ne placer en arrière-plan que la commande Bash ou le sous-agent lancé par cet appel, ou omettez-le pour placer en arrière-plan toutes les tâches au premier plan. Nécessite le SDK TypeScript v0.2.139 ou ultérieur.

714 715 

715Chaque appel d'outil placé en arrière-plan revient immédiatement à Claude avec un résultat indiquant qu'il s'exécute en arrière-plan, le tour se poursuit, et Claude Code émet un [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) lorsque la tâche se termine.716Chaque appel d'outil placé en arrière-plan revient immédiatement à Claude avec un résultat indiquant qu'il s'exécute en arrière-plan, le tour se poursuit, et Claude Code émet un [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) lorsque la tâche se termine.

716 717 

717Dans une session où les tâches en arrière-plan sont activées, la promesse se résout en un booléen :718Dans une session où les tâches en arrière-plan sont activées, la promesse se résout en un booléen :

718 719 

719* **`true`** : une tâche a été placée en arrière-plan, ou vous avez omis `toolUseId`.720* **`true`** : une tâche a été placée en arrière-plan, ou vous avez omis `toolUseId`.

720* **`false`** : le `toolUseId` que vous avez passé ne correspond à aucune tâche au premier plan.721* **`false`** : le `toolUseId` que vous avez transmis ne correspond à aucune tâche au premier plan.

721 722 

722Si les tâches en arrière-plan sont désactivées pour la session, par exemple avec [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars), la promesse est rejetée et rien n'est placé en arrière-plan.723Si les tâches en arrière-plan sont désactivées pour la session, par exemple avec [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars), la promesse est rejetée et rien n'est placé en arrière-plan.

723 724 

724#### `applyFlagSettings()`725#### `applyFlagSettings()`

725 726 

726Modifie les [paramètres](https://code.claude.com/docs/fr/settings.md) d'une session en cours sans redémarrer la requête. Utilisez-la lorsqu'un paramètre dépourvu de setter dédié doit changer en cours de session, par exemple pour resserrer `permissions` après que l'agent a lu une entrée non fiable. `setModel()` et `setPermissionMode()` sont des setters dédiés pour ces deux clés ; `applyFlagSettings()` est la forme générale qui accepte n'importe quel sous-ensemble des clés de paramètres, et passer `model` ici se comporte de la même manière que `setModel()`.727Modifie les [paramètres](https://code.claude.com/docs/fr/settings.md) d'une session en cours d'exécution sans redémarrer la requête. Utilisez-la lorsqu'un paramètre dépourvu de setter dédié doit changer en cours de session, par exemple pour restreindre `permissions` après que l'agent a lu une entrée non fiable. `setModel()` et `setPermissionMode()` sont des setters dédiés à ces deux clés ; `applyFlagSettings()` est la forme générale qui accepte n'importe quel sous-ensemble des clés de paramètres, et transmettre `model` ici se comporte comme `setModel()`.

727 728 

728Seules certaines clés prennent effet en cours de session :729Seules certaines clés prennent effet en cours de session :

729 730 

730* **Appliquées au tour suivant** : `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Changer d'`agent` applique également le remplacement de modèle et les hooks de cet agent au tour suivant. Son prompt système s'applique au tour suivant ou, dans une session qui [réutilise un prompt système enregistré](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session), une fois la session compactée.731* **Appliquées au tour suivant** : `effortLevel`, `ultracode`, `permissions`, `hooks`, `skillOverrides`, `fastMode`, `agent`. Changer `agent` applique également le remplacement de modèle et les hooks de cet agent au tour suivant. Son prompt système s'applique au tour suivant ou, dans une session qui [réutilise un prompt système enregistré](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session), une fois la session compactée.

731* **Appliquée pendant le tour en cours** : `model`. Si vous changez de `model` pendant que Claude travaille sur un tour, la réponse que Claude est déjà en train de générer se termine avec l'ancien modèle, et le reste du tour, à partir du prochain appel que Claude Code adresse au modèle, utilise le nouveau. Les sous-agents conservent leur propre modèle. Avant v2.1.212, un changement en cours de tour attendait le tour suivant.732* **Appliquées pendant le tour en cours** : `model`. Si vous changez `model` pendant que Claude travaille sur un tour, la réponse que Claude est déjà en train de générer se termine avec l'ancien modèle, et le reste du tour, à commencer par le prochain appel de Claude Code au modèle, utilise le nouveau. Les sous-agents conservent leur propre modèle. Avant la v2.1.212, un changement en cours de tour attendait le tour suivant.

732* **Sans effet en cours de session** : les options du prompt système. Elles sont résolues une seule fois au démarrage, de sorte que la session en cours conserve la valeur d'origine même si l'appel réussit. Pour les modifier, démarrez une nouvelle session.733* **Sans effet en cours de session** : les options du prompt système. Elles sont résolues une seule fois au démarrage, de sorte que la session en cours conserve la valeur d'origine même si l'appel réussit. Pour les modifier, démarrez une nouvelle session.

733 734 

734`effortLevel` accepte un nom de [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level). Il accepte également `"ultracode"`, qui demande un effort `xhigh` avec [ultracode](https://code.claude.com/docs/fr/workflows.md#let-claude-decide-with-ultracode) activé. `applyFlagSettings()` déclare `effortLevel` sans cette valeur ; en TypeScript, passez donc `{ ultracode: true, effortLevel: "xhigh" }` pour obtenir le même résultat, ou la clé [`ultracode`](https://code.claude.com/docs/fr/settings-reference#ultracode) seule pour activer ultracode au niveau d'effort actuel de la session. La valeur `ultracode` nécessite Claude Code v2.1.203 ou ultérieure et n'est acceptée que par `applyFlagSettings()`, et non par la clé `effortLevel` d'un fichier de paramètres. Avant v2.1.284, la clé `ultracode` seule définissait également le niveau sur `xhigh`.735`effortLevel` accepte un nom de [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level). Il accepte également `"ultracode"`, qui demande un effort `xhigh` avec [ultracode](https://code.claude.com/docs/fr/workflows.md#let-claude-decide-with-ultracode) activé. `applyFlagSettings()` déclare `effortLevel` sans cette valeur ; en TypeScript, transmettez donc `{ ultracode: true, effortLevel: "xhigh" }` pour obtenir le même résultat, ou la clé [`ultracode`](https://code.claude.com/docs/fr/settings-reference#ultracode) seule pour activer ultracode au niveau d'effort actuel de la session. La valeur `ultracode` nécessite Claude Code v2.1.203 ou ultérieur et n'est acceptée que par `applyFlagSettings()`, et non par la clé `effortLevel` d'un fichier de paramètres. Avant la v2.1.284, la clé `ultracode` seule définissait également le niveau sur `xhigh`.

735 736 

736Les valeurs sont écrites dans la couche de paramètres de flag, fusionnées par-dessus ce que l'option inline `settings` de `query()` a défini au démarrage. Il s'agit du même niveau que celui que la [section sur la priorité de cette page](#settings-precedence) appelle options programmatiques.737Les valeurs sont écrites dans la couche de paramètres de flag, fusionnées par-dessus ce que l'option inline `settings` de `query()` a défini au démarrage. Il s'agit du même niveau que celui que la [section sur la priorité de cette page](#settings-precedence) appelle options programmatiques.

737 738 

738Les appels successifs fusionnent superficiellement les clés de premier niveau. Un second appel avec `{ permissions: {...} }` remplace l'intégralité de l'objet `permissions` de l'appel précédent au lieu de le fusionner en profondeur.739Les appels successifs fusionnent superficiellement les clés de premier niveau. Un second appel avec `{ permissions: {...} }` remplace l'intégralité de l'objet `permissions` de l'appel précédent au lieu d'y être fusionné en profondeur.

739 740 

740Pour effacer une clé définie avec `applyFlagSettings()`, passez `null` pour cette clé. La plupart des clés se rabattent alors d'abord sur une valeur définie au démarrage par l'option `settings` de `query()`, puis sur des sources de priorité inférieure. Un `model` effacé revient au [modèle par défaut de Claude Code](https://code.claude.com/docs/fr/model-config.md), même lorsqu'un fichier de paramètres définit `model`. Passer `undefined` n'a aucun effet, car la sérialisation JSON le supprime.741Pour effacer une clé que vous avez définie avec `applyFlagSettings()`, transmettez `null` pour cette clé. La plupart des clés se rabattent alors d'abord sur une valeur que l'option `settings` de `query()` a définie au démarrage, puis sur des sources de priorité inférieure. Un `model` effacé revient au [modèle par défaut de Claude Code](https://code.claude.com/docs/fr/model-config.md), même lorsqu'un fichier de paramètres définit `model`. Transmettre `undefined` n'a aucun effet, car la sérialisation JSON le supprime.

741 742 

742Trois clés en plus de `model` réinitialisent l'état de la session au lieu de se rabattre sur une autre valeur :743Trois clés autres que `model` réinitialisent l'état de la session au lieu de se rabattre sur une autre valeur :

743 744 

744* `effortLevel: null` ramène la session au niveau d'effort par défaut du modèle, et non à l'option `effort` de `query()` ni à un `effortLevel` provenant d'un fichier de paramètres.745* `effortLevel: null` rétablit le niveau d'effort par défaut du modèle pour la session, et non l'option `effort` de `query()` ni un `effortLevel` provenant d'un fichier de paramètres.

745* `agent: null` exécute le thread principal sans agent à partir du tour suivant, au lieu de restaurer l'option `agent` de `query()` ou un `agent` provenant d'un fichier de paramètres. Si l'agent effacé avait appliqué son propre modèle, la session revient au modèle résolu au démarrage.746* `agent: null` exécute le thread principal sans agent à partir du tour suivant, au lieu de restaurer l'option `agent` de `query()` ou un `agent` provenant d'un fichier de paramètres. Si l'agent effacé avait appliqué son propre modèle, la session revient au modèle qu'elle avait résolu au démarrage.

746* `ultracode: null` désactive ultracode, comme `false`, au lieu de restaurer une valeur `ultracode` provenant d'un fichier de paramètres. La session conserve son niveau d'effort actuel ; passez donc `effortLevel` dans le même appel pour le modifier.747* `ultracode: null` désactive ultracode, comme le fait `false`, au lieu de restaurer une valeur `ultracode` provenant d'un fichier de paramètres. La session conserve son niveau d'effort actuel ; transmettez donc `effortLevel` dans le même appel pour le modifier.

747 748 

748Disponible uniquement en mode d'entrée en streaming, la même contrainte que pour `setModel()` et `setPermissionMode()`.749Disponible uniquement en mode d'entrée en streaming, avec la même contrainte que `setModel()` et `setPermissionMode()`.

749 750 

750L'exemple ci-dessous change le modèle actif en cours de session, puis efface le remplacement afin que le modèle revienne au [modèle par défaut de Claude Code](https://code.claude.com/docs/fr/model-config.md).751L'exemple ci-dessous change le modèle actif en cours de session, puis efface le remplacement afin que le modèle revienne au [modèle par défaut de Claude Code](https://code.claude.com/docs/fr/model-config.md).

751 752 


763 764 

764> [!NOTE]765> [!NOTE]

765>766>

766> `applyFlagSettings()` est disponible uniquement en TypeScript. Le SDK Python n'expose pas de méthode équivalente.767> `applyFlagSettings()` est propre à TypeScript. Le SDK Python n'expose pas de méthode équivalente.

767 768 

768#### `updateSettings()`769#### `updateSettings()`

769 770 

770Écrit une clé autorisée dans un fichier de paramètres sur disque, afin que la valeur persiste pour les sessions ultérieures qui chargent cette source. Chaque source accepte une clé, avec une valeur de type chaîne :771Écrit une clé autorisée dans un fichier de paramètres sur le disque, afin que la valeur persiste pour les sessions ultérieures qui chargent cette source. Chaque source accepte une seule clé, avec une valeur de type chaîne :

771 772 

772* **`"localSettings"`** : accepte `outputStyle` et le fusionne dans le fichier de paramètres locaux du projet, `.claude/settings.local.json`. Le nouveau style prend effet à la prochaine requête de la session.773* **`"localSettings"`** : accepte `outputStyle` et le fusionne dans le fichier de paramètres locaux du projet, `.claude/settings.local.json`. Le nouveau style prend effet à la prochaine requête de la session.

773* **`"userSettings"`** : accepte `effortLevel` et l'enregistre comme [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level) par défaut pour le modèle actuel de la session, sous [`modelSettings`](https://code.claude.com/docs/fr/settings-reference#modelsettings) dans votre fichier de paramètres utilisateur. Passer `max` n'écrit rien, car `max` est limité à la session. La session en cours conserve son niveau d'effort actuel dans tous les cas ; appelez donc [`applyFlagSettings()`](#applyflagsettings) si vous souhaitez également le modifier. Cette source nécessite TypeScript SDK v0.3.277 ou ultérieure, qui inclut Claude Code v2.1.277.774* **`"userSettings"`** : accepte `effortLevel` et l'enregistre comme [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level) par défaut pour le modèle actuel de la session, sous [`modelSettings`](https://code.claude.com/docs/fr/settings-reference#modelsettings) dans votre fichier de paramètres utilisateur. Transmettre `max` n'écrit rien, car `max` est limité à la session. Dans tous les cas, la session en cours conserve son niveau d'effort actuel ; appelez donc [`applyFlagSettings()`](#applyflagsettings) si vous souhaitez également le modifier. Cette source nécessite le SDK TypeScript v0.3.277 ou ultérieur, qui intègre Claude Code v2.1.277.

774 775 

775L'appel est rejeté lorsque la requête contient toute autre clé, lorsque la session s'exécute via un transport distant, et lorsque les [`settingSources`](#options) de la session excluent la source que vous indiquez. La suppression d'une clé n'est pas prise en charge.776L'appel est rejeté lorsque la requête contient une autre clé, lorsque la session s'exécute via un transport distant et lorsque les [`settingSources`](#options) de la session excluent la source que vous indiquez. La suppression d'une clé n'est pas prise en charge.

776 777 

777#### `toggleMcpServer()`778#### `toggleMcpServer()`

778 779 

779Désactiver un serveur le déconnecte et retire ses outils de la session. Pour les serveurs que vous avez ajoutés en cours de session et pour les serveurs in-process, cela dépend de votre version de Claude Code :780La désactivation d'un serveur le déconnecte et retire ses outils de la session. Pour les serveurs que vous avez ajoutés en cours de session et pour les serveurs in-process, cela dépend de votre version de Claude Code :

780 781 

781* Un serveur stdio, SSE ou HTTP que vous avez ajouté en cours de session avec `setMcpServers()` : le retrait de ses outils nécessite Claude Code v2.1.285 ou ultérieure.782* Un serveur stdio, SSE ou HTTP que vous avez ajouté en cours de session avec `setMcpServers()` : le retrait de ses outils nécessite Claude Code v2.1.285 ou ultérieur.

782* Un serveur in-process que vous avez créé avec [`createSdkMcpServer()`](#createsdkmcpserver), que vous l'ayez passé dans `mcpServers` ou avec `setMcpServers()` : sa déconnexion et le retrait de ses outils nécessitent Claude Code v2.1.286 ou ultérieure. La désactivation d'un tel serveur fait également échouer ses appels d'outils encore en cours, de sorte que Claude reçoit immédiatement un résultat d'erreur pour chacun d'eux, sans attendre le retour de votre handler.783* Un serveur in-process que vous avez créé avec [`createSdkMcpServer()`](#createsdkmcpserver), que vous l'ayez transmis dans `mcpServers` ou avec `setMcpServers()` : sa déconnexion et le retrait de ses outils nécessitent Claude Code v2.1.286 ou ultérieur. La désactivation d'un tel serveur fait également échouer ses appels d'outils encore en cours d'exécution, de sorte que Claude reçoit immédiatement un résultat d'erreur pour chacun d'eux, sans attendre le retour de votre gestionnaire.

783 784 

784### `WarmQuery`785### `WarmQuery`

785 786 

786Handle renvoyé par [`startup()`](#startup). Le sous-processus est déjà lancé et initialisé, de sorte qu'appeler `query()` sur ce handle écrit le prompt directement dans un processus prêt, sans latence de démarrage.787Handle renvoyé par [`startup()`](#startup). Le sous-processus est déjà lancé et initialisé ; appeler `query()` sur ce handle écrit donc le prompt directement dans un processus prêt, sans latence de démarrage.

787 788 

788```typescript theme={null}789```typescript theme={null}

789interface WarmQuery extends AsyncDisposable {790interface WarmQuery extends AsyncDisposable {


796 797 

797| Méthode | Description |798| Méthode | Description |

798| :- | :- |799| :- | :- |

799| `query(prompt)` | Envoie un prompt au sous-processus préchauffé et renvoie un [`Query`](#query-object). Ne peut être appelée qu'une seule fois par `WarmQuery` |800| `query(prompt)` | Envoyer un prompt au sous-processus préchauffé et renvoyer un [`Query`](#query-object). Ne peut être appelée qu'une seule fois par `WarmQuery` |

800| `close()` | Ferme le sous-processus sans envoyer de prompt. Utilisez-la pour abandonner une requête préchauffée dont vous n'avez plus besoin |801| `close()` | Fermer le sous-processus sans envoyer de prompt. Utilisez-la pour abandonner une requête préchauffée qui n'est plus nécessaire |

801 802 

802`WarmQuery` implémente `AsyncDisposable`, il peut donc être utilisé avec `await using` pour un nettoyage automatique.803`WarmQuery` implémente `AsyncDisposable` ; il peut donc être utilisé avec `await using` pour un nettoyage automatique.

803 804 

804### `SpareProcess`805### `SpareProcess`

805 806 

806*Alpha.* Handle renvoyé par [`prewarm()`](#prewarm) : un processus Claude Code démarré qui n'est pas encore lié à une session et qui peut être réclamé une seule fois. Nécessite TypeScript Agent SDK v0.3.282 ou ultérieure.807*Alpha.* Handle renvoyé par [`prewarm()`](#prewarm) : un processus Claude Code démarré qui n'est pas encore lié à une session et peut être réclamé une seule fois. Nécessite TypeScript Agent SDK v0.3.282 ou ultérieur.

807 808 

808```typescript theme={null}809```typescript theme={null}

809interface SpareProcess extends AsyncDisposable {810interface SpareProcess extends AsyncDisposable {


821 822 

822| Membre | Description |823| Membre | Description |

823| :- | :- |824| :- | :- |

824| `claim({ prompt, options })` | Lie le processus de réserve à une session dans `options.cwd` et envoie son premier message. Renvoie un [`Query`](#query-object) de manière synchrone, comme le fait `query()`. Ne peut être appelée qu'une seule fois |825| `claim({ prompt, options })` | Lier le processus de réserve à une session dans `options.cwd` et envoyer son premier message. Renvoie un [`Query`](#query-object) de manière synchrone, comme le fait `query()`. Ne peut être appelée qu'une seule fois |

825| `claimed` | Se résout avec le répertoire de travail et l'ID de la session une fois que Claude Code accepte la réclamation. Est rejetée lorsque Claude Code refuse la réclamation, lorsque le processus s'est terminé ou a été fermé auparavant, et, avec un message commençant par `option_not_applied`, lorsque la session s'exécute sans le `model` ou le `maxThinkingTokens` que vous avez demandé |826| `claimed` | Se résout avec le répertoire de travail et l'ID de la session une fois que Claude Code accepte la réclamation. Est rejetée lorsque Claude Code refuse la réclamation, lorsque le processus s'est terminé ou a été fermé auparavant et, avec un message commençant par `option_not_applied`, lorsque la session s'exécute sans le `model` ou le `maxThinkingTokens` que vous avez demandé |

826| `exited` | Se règle lorsque le processus se termine, qu'il ait été réclamé ou non. Remplacez un processus de réserve qui se termine avant que vous ne le réclamiez |827| `exited` | Se résout lorsque le processus se termine, qu'il ait été réclamé ou non. Remplacez un processus de réserve qui se termine avant que vous ne le réclamiez |

827| `close()` | Termine le processus. Avant une réclamation, cela abandonne le processus de réserve et rejette `claimed` |828| `close()` | Terminer le processus. Avant une réclamation, cela abandonne le processus de réserve et rejette `claimed` |

828 829 

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

830 831 

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

832 833 

833### `SDKControlInitializeResponse`834### `SDKControlInitializeResponse`

834 835 


857};858};

858```859```

859 860 

860`hooks_applied` indique si Claude Code a enregistré les `hooks` que contenait la requête `initialize`. Le SDK envoie cette requête une fois au démarrage de la session, puis à chaque appel à [`reinitialize()`](#query-object). Le champ nécessite Agent SDK v0.3.238 ou ultérieure.861`hooks_applied` indique si Claude Code a enregistré les `hooks` contenus dans la requête `initialize`. Le SDK envoie cette requête une première fois au démarrage de la session, puis à chaque appel à [`reinitialize()`](#query-object). Ce champ nécessite Agent SDK v0.3.238 ou ultérieur.

861 862 

862Claude Code omet le champ lorsque la requête ne contenait aucun hook. Lorsque la requête contenait des hooks, la valeur dépend du fait que la requête soit ou non le premier initialize de la session et, pour un initialize répété, de la manière dont elle a atteint la session :863Claude Code omet ce champ lorsque la requête ne contenait aucun hook. Lorsque la requête contenait des hooks, la valeur dépend du fait qu'il s'agisse ou non de la première initialisation de la session et, pour une initialisation répétée, de la manière dont elle a atteint la session :

863 864 

864* `true` : Claude Code a enregistré les hooks. Le premier initialize d'une session renvoie cette valeur. Un initialize répété envoyé via le stdin de la CLI renvoie également `true`. Dans ce cas, les hooks de la nouvelle requête remplacent ceux enregistrés précédemment.865* `true` : Claude Code a enregistré les hooks. La première initialisation d'une session renvoie cette valeur. Une initialisation répétée envoyée via l'entrée standard de la CLI renvoie également `true`. Dans ce cas, les hooks de la nouvelle requête remplacent ceux enregistrés précédemment.

865* `false` : Claude Code a ignoré les hooks. Un initialize répété envoyé à une session distante renvoie cette valeur, de sorte qu'un second client qui rejoint une session ne peut pas remplacer les hooks enregistrés par le premier client.866* `false` : Claude Code a ignoré les hooks. Une initialisation répétée envoyée à une session distante renvoie cette valeur, de sorte qu'un second client qui rejoint une session ne peut pas remplacer les hooks enregistrés par le premier client.

866 867 

867Avant Agent SDK v0.3.238, la réponse ne contenait jamais ce champ, et Claude Code ignorait `hooks` à chaque initialize répété.868Avant Agent SDK v0.3.238, la réponse ne contenait jamais ce champ, et Claude Code ignorait `hooks` à chaque initialisation répétée.

868 869 

869Le champ `sdkMcpServerManifests` de la requête et le champ `sdk_mcp_manifests_parked` de la réponse concernent les [serveurs MCP SDK](https://code.claude.com/docs/fr/agent-sdk/custom-tools.md) in-process que vous avez créés avec [`createSdkMcpServer()`](#createsdkmcpserver). Votre application ne définit ni ne lit aucun de ces champs.870Le champ `sdkMcpServerManifests` de la requête et le champ `sdk_mcp_manifests_parked` de la réponse concernent les [serveurs MCP SDK](https://code.claude.com/docs/fr/agent-sdk/custom-tools.md) in-process que vous avez créés avec [`createSdkMcpServer()`](#createsdkmcpserver). Votre application ne définit ni ne lit aucun de ces deux champs.

870 871 

871`claude_code_version` est la version de Claude Code du processus qui exécute les tours de la session. Il s'agit de la même valeur que celle du message init [`SDKSystemMessage`](#sdksystemmessage), ce qui vous permet de lire la version de la CLI avant le premier tour.872`claude_code_version` est la version de Claude Code du processus qui exécute les tours de la session. Il s'agit de la même valeur que celle contenue dans le message d'initialisation [`SDKSystemMessage`](#sdksystemmessage) ; vous pouvez donc lire la version de la CLI avant le premier tour.

872 873 

873* Ce champ nécessite Agent SDK v0.3.296 ou ultérieur, qui inclut Claude Code v2.1.296.874* Ce champ nécessite Agent SDK v0.3.296 ou ultérieur, qui intègre Claude Code v2.1.296.

874* Si le champ vaut `undefined` et que vous définissez `pathToClaudeCodeExecutable`, faites-le pointer vers Claude Code v2.1.296 ou ultérieur.875* Si le champ vaut `undefined` et que vous définissez `pathToClaudeCodeExecutable`, faites-le pointer vers Claude Code v2.1.296 ou ultérieur.

875 876 

876La réponse indique toujours `fast_mode_state`, et lorsqu'un élément bloque le [mode rapide](https://code.claude.com/docs/fr/fast-mode.md), `fast_mode_disabled_reason` fournit le code de raison en complément, afin que vous puissiez expliquer l'état bloqué au lieu de redéduire la disponibilité. Ces deux comportements nécessitent Claude Code v2.1.219 ou ultérieure. Avant v2.1.219, la réponse omettait `fast_mode_state` lorsque le mode rapide n'était pas disponible et ne fournissait jamais de raison. Pour les codes de raison et leur signification, consultez [`fast_mode_disabled_reason`](#sdkresultmessage) dans le message de résultat.877La réponse indique toujours `fast_mode_state`, et lorsque quelque chose bloque le [mode rapide](https://code.claude.com/docs/fr/fast-mode.md), `fast_mode_disabled_reason` contient le code de raison à côté, ce qui vous permet d'expliquer l'état bloqué au lieu de redéterminer la disponibilité. Ces deux comportements nécessitent Claude Code v2.1.219 ou ultérieur. Avant la v2.1.219, la réponse omettait `fast_mode_state` lorsque le mode rapide n'était pas disponible et ne contenait jamais de raison. Pour les codes de raison et leur signification, consultez [`fast_mode_disabled_reason`](#sdkresultmessage) dans le message de résultat.

877 878 

878Le wrapper de réponse de contrôle d'un `initialize` réussi contient également un tableau `pending_permission_requests`. Le champ se trouve sur le wrapper de réponse lui-même, et non dans le payload `SDKControlInitializeResponse` ci-dessus. Chaque entrée est un message `control_request` complet, avec la même forme `{ type: "control_request", request_id, request }` que celle des demandes de permission que la session diffuse en flux pendant son exécution.879L'enveloppe de réponse de contrôle d'un `initialize` réussi contient également un tableau `pending_permission_requests`. Ce champ se trouve dans l'enveloppe de réponse elle-même, et non dans le payload `SDKControlInitializeResponse` ci-dessus. Chaque entrée est un message `control_request` complet, de même forme `{ type: "control_request", request_id, request }` que ceux que la session diffuse pour les demandes de permission pendant son exécution.

879 880 

880Le tableau liste les demandes de permission que ce processus Claude Code a émises et qui ne sont pas encore résolues. Le SDK lit le tableau pour vous et distribue chaque entrée à votre callback [`canUseTool`](#canusetool), la même redistribution que celle déclenchée par [`reinitialize()`](#query-object) après une interruption du transport. Traitez les ID de requête répétés de manière idempotente, car une entrée peut répéter une requête que le callback a déjà reçue avant la perte de connexion.881Le tableau liste les demandes de permission que ce processus Claude Code a émises et qui ne sont pas encore résolues. Le SDK lit le tableau pour vous et distribue chaque entrée à votre callback [`canUseTool`](#canusetool), la même redistribution que celle déclenchée par [`reinitialize()`](#query-object) après une interruption du transport. Traitez les ID de requête répétés de manière idempotente, car une entrée peut répéter une demande que le callback a déjà reçue avant la coupure de la connexion.

881 882 

882Le tableau est toujours présent dans une réponse `initialize` réussie et il est vide lorsque ce processus n'a aucune demande de permission non résolue. Nécessite Claude Code v2.1.268 ou ultérieure. Les versions antérieures pouvaient omettre le champ ; si vous analysez vous-même le protocole filaire, considérez donc un champ manquant comme le signe d'une CLI plus ancienne plutôt que comme la preuve que rien n'est en attente.883Le tableau est toujours présent dans une réponse `initialize` réussie et il est vide lorsque ce processus n'a aucune demande de permission non résolue. Nécessite Claude Code v2.1.268 ou ultérieur. Les versions antérieures pouvaient omettre ce champ ; si vous analysez vous-même le protocole filaire, considérez donc l'absence du champ comme le signe d'une CLI plus ancienne plutôt que comme la preuve que rien n'est en attente.

883 884 

884### `SDKControlInterruptResponse`885### `SDKControlInterruptResponse`

885 886 

886Le reçu d'interruption : la valeur avec laquelle [`interrupt()`](#query-object) se résout sur une CLI qui annonce la capacité `interrupt_receipt_v1` dans [`SDKSystemMessage.capabilities`](#sdksystemmessage). Nécessite Claude Code v2.1.205 ou ultérieure. Les CLI antérieures répondent à l'interruption avec un payload de succès vide, de sorte que `interrupt()` se résout en `undefined`.887L'accusé d'interruption : la valeur avec laquelle [`interrupt()`](#query-object) se résout sur une CLI qui annonce la capacité `interrupt_receipt_v1` dans [`SDKSystemMessage.capabilities`](#sdksystemmessage). Nécessite Claude Code v2.1.205 ou ultérieur. Les CLI antérieures répondent à l'interruption avec un payload de succès vide ; `interrupt()` se résout donc en `undefined`.

887 888 

888```typescript theme={null}889```typescript theme={null}

889type SDKControlInterruptResponse = {890type SDKControlInterruptResponse = {


892};893};

893```894```

894 895 

895`still_queued` liste les UUID des messages utilisateur qui étaient en attente lorsque l'interruption est arrivée : les messages encore dans la file d'attente, ainsi que les messages que Claude Code avait déjà retirés de la file pour le tour suivant. Une fois le premier tour de la session commencé, Claude Code traite les messages listés après l'interruption, sauf si vous les annulez d'abord, et peut en fusionner plusieurs en un seul tour. Si vous interrompez avant le début du premier tour, Claude Code interrompt ce tour dès qu'il commence, et les messages listés dans ce tour ne reçoivent aucune réponse.896`still_queued` liste les UUID des messages utilisateur qui étaient en attente au moment de l'interruption : les messages encore dans la file d'attente, ainsi que ceux que Claude Code avait déjà retirés de la file pour le tour suivant. Une fois le premier tour de la session commencé, Claude Code traite les messages listés après l'interruption, sauf si vous les annulez auparavant, et peut en fusionner plusieurs en un seul tour. Si vous interrompez avant le début du premier tour, Claude Code interrompt ce tour dès qu'il commence, et les messages listés dans ce tour ne reçoivent aucune réponse.

896 897 

897Utilisez le reçu pour décider s'il faut renvoyer quelque chose. Un message listé que vous n'annulez pas entre dans la conversation, qu'il reçoive une réponse ou non ; le renvoyer le transmet donc deux fois à Claude.898Utilisez l'accusé pour décider s'il faut renvoyer quelque chose. Un message listé que vous n'annulez pas entre dans la conversation, qu'il reçoive une réponse ou non ; le renvoyer le transmet donc deux fois à Claude.

898 899 

899Interprétez la liste en tenant compte des réserves suivantes :900Interprétez la liste en tenant compte des réserves suivantes :

900 901 

901* Seuls les messages mis en file d'attente avec un UUID apparaissent. Un tableau vide ne signifie pas que rien d'autre ne s'exécutera.902* Seuls les messages mis en file d'attente avec un UUID y figurent. Un tableau vide ne signifie pas que rien d'autre ne s'exécutera.

902* Seuls les messages du thread principal sont listés. Les messages adressés à un sous-agent sont hors du périmètre.903* Seuls les messages du thread principal sont listés. Les messages adressés à un sous-agent ne sont pas concernés.

903* La liste peut inclure des UUID que votre client n'a jamais envoyés, comme les déclencheurs de [tâches planifiées limitées à la session](https://code.claude.com/docs/fr/scheduled-tasks.md). Ignorez les UUID que vous ne reconnaissez pas au lieu de les traiter comme une erreur.904* La liste peut inclure des UUID que votre client n'a jamais envoyés, comme les déclencheurs de [tâches planifiées limitées à la session](https://code.claude.com/docs/fr/scheduled-tasks.md). Ignorez les UUID que vous ne reconnaissez pas au lieu de les traiter comme une erreur.

904 905 

905Un client qui pilote directement le protocole de contrôle de la CLI, plutôt que via `interrupt()`, peut définir `cancel_queued: true` sur la requête de contrôle `interrupt`. Claude Code v2.1.219 et versions ultérieures annoncent la prise en charge avec la capacité `interrupt_cancel_queued_v1` dans [`SDKSystemMessage.capabilities`](#sdksystemmessage) ; les CLI plus anciennes ignorent le champ et laissent les messages en file d'attente s'exécuter normalement. Une telle interruption annule également tous les messages qui seraient sinon listés sous `still_queued` : le reçu les liste sous `cancelled` à la place, `still_queued` est vide, et aucun d'eux ne s'exécute.906Un client qui pilote directement le protocole de contrôle de la CLI, plutôt que via `interrupt()`, peut définir `cancel_queued: true` sur la requête de contrôle `interrupt`. Claude Code v2.1.219 et ultérieur annonce cette prise en charge avec la capacité `interrupt_cancel_queued_v1` dans [`SDKSystemMessage.capabilities`](#sdksystemmessage) ; les CLI plus anciennes ignorent ce champ et laissent les messages en file d'attente s'exécuter normalement. Une telle interruption annule également tous les messages qui seraient autrement listés sous `still_queued` : l'accusé les liste plutôt sous `cancelled`, `still_queued` est vide, et aucun d'eux ne s'exécute.

906 907 

907La liste `cancelled` comporte les mêmes réserves que `still_queued`. La méthode `interrupt()` n'envoie jamais `cancel_queued`, de sorte que les reçus avec lesquels elle se résout ne contiennent pas `cancelled`.908La liste `cancelled` est soumise aux mêmes réserves que `still_queued`. La méthode `interrupt()` n'envoie jamais `cancel_queued` ; les accusés avec lesquels elle se résout ne contiennent donc pas `cancelled`.

908 909 

909Le reçu est un instantané pris au moment où l'interruption est traitée et, lors d'une interruption propre, il arrive avant le [`SDKResultMessage`](#sdkresultmessage) du tour interrompu. Lisez le reçu plutôt que d'inspecter la file d'attente après ce résultat : la boucle démarre immédiatement le tour suivant en file d'attente, de sorte que la file que vous inspectez après le résultat a déjà changé.910L'accusé est un instantané pris au moment où l'interruption est traitée et, lors d'une interruption propre, il arrive avant le [`SDKResultMessage`](#sdkresultmessage) du tour interrompu. Lisez l'accusé plutôt que d'inspecter la file d'attente après ce résultat : la boucle démarre immédiatement le tour suivant en file d'attente, si bien que la file que vous inspectez après le résultat a déjà changé.

910 911 

911### `SDKControlGetContextUsageResponse`912### `SDKControlGetContextUsageResponse`

912 913 

913Type de retour de [`getContextUsage()`](#query-object). Avec la valeur par défaut de `detail`, la réponse inclut le payload que Claude Code affiche pour la commande `/context` dans une session interactive. En plus du nombre de tokens, ce payload contient des champs d'affichage tels que `color` et `gridRows`, que Claude Code utilise pour dessiner la grille d'utilisation de `/context`.914Type de retour de [`getContextUsage()`](#query-object). Avec la valeur par défaut de `detail`, la réponse inclut le payload que Claude Code affiche pour la commande `/context` dans une session interactive. En plus du nombre de tokens, ce payload contient des champs d'affichage tels que `color` et `gridRows` que Claude Code utilise pour dessiner la grille d'utilisation de `/context`.

914 915 

915L'argument optionnel `detail` de la méthode détermine la manière dont Claude Code compte chaque catégorie. L'argument `detail` nécessite Agent SDK v0.3.257 ou ultérieure.916L'argument facultatif `detail` de la méthode détermine la manière dont Claude Code compte chaque catégorie. L'argument `detail` nécessite Agent SDK v0.3.257 ou ultérieur.

916 917 

917* **`'full'`** : la valeur par défaut. Claude Code compte chaque catégorie avec des requêtes API de [comptage de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Ces requêtes n'apparaissent pas dans le flux de messages, de sorte que le suivi des coûts qui lit le flux ne les verra pas. Sur l'API Anthropic, le comptage de tokens n'est pas facturé.918* **`'full'`** : la valeur par défaut. Claude Code compte chaque catégorie au moyen de requêtes API de [comptage de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting). Ces requêtes n'apparaissent pas dans le flux de messages ; un suivi des coûts qui lit le flux ne les verra donc pas. Sur l'API Anthropic, le comptage de tokens n'est pas facturé.

918* **`'summary'`** : passez `{ detail: 'summary' }` pour obtenir plutôt une réponse basée sur l'utilisation de la dernière réponse et sur des estimations locales. Aucune requête de comptage de tokens n'est envoyée, et les nombres par catégorie sont approximatifs.919* **`'summary'`** : transmettez `{ detail: 'summary' }` pour obtenir plutôt une réponse fondée sur l'utilisation de la dernière réponse et sur des estimations locales. Aucune requête de comptage de tokens n'est envoyée, et les chiffres par catégorie sont approximatifs.

919 920 

920Lorsque vous envoyez `/context` comme prompt au lieu d'appeler la méthode, Claude Code joint un payload [`SDKContextUsage`](#sdkcontextusage) au champ `context_usage` du message assistant qui délivre le résultat. Ce champ nécessite Agent SDK v0.3.232 ou ultérieure.921Lorsque vous envoyez `/context` sous forme de prompt au lieu d'appeler la méthode, Claude Code joint un payload [`SDKContextUsage`](#sdkcontextusage) au champ `context_usage` du message assistant qui transmet le résultat. Ce champ nécessite Agent SDK v0.3.232 ou ultérieur.

921 922 

922Dans `SDKControlGetContextUsageResponse`, `categories[].id`, `mcpInstructions`, ainsi que les champs `pluginId` et `path` des entrées `agents` et `skills.skillFrontmatter` nécessitent Agent SDK v0.3.304 ou ultérieur.923Dans `SDKControlGetContextUsageResponse`, `categories[].id`, `mcpInstructions` ainsi que les champs `pluginId` et `path` des entrées `agents` et `skills.skillFrontmatter` nécessitent Agent SDK v0.3.304 ou ultérieur.

923 924 

924```typescript theme={null}925```typescript theme={null}

925type SDKControlGetContextUsageResponse = {926type SDKControlGetContextUsageResponse = {


1041 1042 

1042Lisez l'attribution des tokens à partir des champs de collection :1043Lisez l'attribution des tokens à partir des champs de collection :

1043 1044 

1044* `categories` contient les totaux par catégorie. Le `kind` de chaque entrée classe la ligne avec les mêmes valeurs que [`SDKContextUsageCategory`](#sdkcontextusagecategory). Classez les lignes selon ce champ plutôt que selon le `name` d'affichage. Le champ nécessite Agent SDK v0.3.268 ou ultérieure.1045* `categories` contient les totaux par catégorie. Le champ `kind` de chaque entrée classe la ligne avec les mêmes valeurs que [`SDKContextUsageCategory`](#sdkcontextusagecategory). Classez les lignes selon ce champ plutôt que selon le `name` d'affichage. Ce champ nécessite Agent SDK v0.3.268 ou ultérieur.

1045* `mcpTools` et `agents` attribuent les tokens à des outils MCP et à des sous-agents individuels.1046* `mcpTools` et `agents` attribuent les tokens aux outils MCP et aux sous-agents individuels.

1046* `memoryFiles` liste chaque fichier de mémoire chargé avec son coût.1047* `memoryFiles` liste chaque fichier de mémoire chargé avec son coût.

1047* `skills.skillFrontmatter` attribue les tokens de la liste des skills à chaque skill inclus. Les nombres par skill mesurent l'entrée de chaque skill dans la liste telle que Claude Code l'envoie réellement, qui peut être plus courte que le frontmatter complet du skill. Comparez `skills.totalSkills` à `skills.includedSkills` pour vérifier si chaque skill découvert figure dans la liste.1048* `skills.skillFrontmatter` attribue les tokens de la liste des skills à chaque skill inclus. Les comptes par skill mesurent l'entrée de chaque skill dans la liste telle que Claude Code l'envoie réellement, qui peut être plus courte que le frontmatter complet du skill. Comparez `skills.totalSkills` à `skills.includedSkills` pour vérifier si chaque skill découvert figure dans la liste.

1048 1049 

1049`totalTokens` représente l'utilisation actuelle du contexte de la session, et `maxTokens` la fenêtre par rapport à laquelle cette utilisation est mesurée. Cette fenêtre est la fenêtre de contexte du modèle, ou la fenêtre de compaction automatique inférieure lorsqu'elle s'applique. `rawMaxTokens` contient la même valeur que `maxTokens`, et `percentage` correspond à `totalTokens` exprimé en pourcentage arrondi de cette fenêtre. `apiUsage` contient l'utilisation issue de la dernière réponse de l'API, et non un total cumulé pour la session.1050`totalTokens` correspond à l'utilisation actuelle du contexte de la session, et `maxTokens` à la fenêtre par rapport à laquelle cette utilisation est mesurée. Cette fenêtre est la fenêtre de contexte du modèle, ou la fenêtre de compaction automatique plus petite lorsqu'elle s'applique. `rawMaxTokens` contient la même valeur que `maxTokens`, et `percentage` exprime `totalTokens` sous forme de pourcentage arrondi de cette fenêtre. `apiUsage` contient l'utilisation issue de la dernière réponse de l'API, et non un total cumulé pour la session.

1050 1051 

1051Claude Code laisse non définis les diagnostics optionnels `deferredBuiltinTools`, `systemTools` et `systemPromptSections` ; attendez-vous donc à ce qu'ils soient absents, même si le type les déclare.1052Claude Code ne renseigne pas les diagnostics facultatifs `deferredBuiltinTools`, `systemTools` et `systemPromptSections` ; attendez-vous donc à ce qu'ils soient absents, même si le type les déclare.

1052 1053 

1053#### Trouver une ligne par ID, les tokens d'instructions d'un serveur ou le plugin et le fichier d'une entrée1054#### Trouver une ligne par ID, les tokens d'instructions d'un serveur, ou le plugin et le fichier d'une entrée

1054 1055 

1055Les instructions de serveur MCP sont les notes d'utilisation que les serveurs connectés fournissent et que Claude Code ajoute au contexte, et la ligne `mcp_instructions` de `categories` compte leurs tokens. Utilisez ces champs de [`getContextUsage()`](#query-object) pour isoler une ligne de `categories` par `id`, répartir les tokens de `mcp_instructions` par serveur, ou trouver le plugin et le fichier à l'origine d'une entrée d'agent ou de skill :1056Les instructions des serveurs MCP sont les notes d'utilisation que fournissent les serveurs connectés et que Claude Code ajoute au contexte ; la ligne `mcp_instructions` de `categories` compte leurs tokens. Utilisez ces champs de [`getContextUsage()`](#query-object) pour sélectionner une ligne de `categories` par `id`, répartir les tokens de `mcp_instructions` par serveur, ou trouver le plugin et le fichier à l'origine d'une entrée d'agent ou de skill :

1056 1057 

1057| Champ | Emplacement | Contenu |1058| Champ | Emplacement | Contenu |

1058| :- | :- | :- |1059| :- | :- | :- |

1059| `id` | Chaque ligne de `categories` | L'identifiant de la ligne, l'une des valeurs listées par le [type de réponse](#sdkcontrolgetcontextusageresponse), comme `mcp_instructions`. Filtrez sur `id` pour isoler une ligne, ou sur `kind` pour regrouper des lignes. Une version ultérieure de Claude Code peut envoyer une valeur que vos types installés ne listent pas ; traitez donc un `id` que vous ne reconnaissez pas comme absent |1060| `id` | Chaque ligne de `categories` | L'identifiant de la ligne, l'une des valeurs listées par le [type de réponse](#sdkcontrolgetcontextusageresponse), comme `mcp_instructions`. Filtrez sur `id` pour sélectionner une ligne, ou sur `kind` pour regrouper des lignes. Une version ultérieure de Claude Code peut envoyer une valeur que vos types installés ne listent pas ; considérez donc un `id` que vous ne reconnaissez pas comme absent |

1060| `mcpInstructions` | La réponse | Une entrée `{ serverName, tokens }` par serveur MCP connecté qui fournit des instructions, ou un tableau vide lorsqu'aucun n'en fournit. Les valeurs `tokens` sont des estimations dont la somme correspond aux `tokens` de la ligne `mcp_instructions`. `serverName` est le `name` que [`mcpServerStatus()`](#query-object) indique pour ce serveur |1061| `mcpInstructions` | La réponse | Une entrée `{ serverName, tokens }` par serveur MCP connecté qui fournit des instructions, ou un tableau vide lorsqu'aucun n'en fournit. Les valeurs `tokens` sont des estimations dont la somme correspond aux `tokens` de la ligne `mcp_instructions`. `serverName` est le `name` que [`mcpServerStatus()`](#query-object) indique pour ce serveur |

1061| `pluginId` | Entrées `agents` et `skills.skillFrontmatter` | Nomme le plugin dont provient l'entrée, sous forme d'ID au format `name@marketplace`, et est absent pour une entrée qui ne provient pas d'un plugin. Lorsque le plugin ne provient pas d'une marketplace, la partie après `@` nomme plutôt [son origine](https://code.claude.com/docs/fr/plugins/loading.md#find-where-a-plugin-came-from), comme `inline` pour un plugin que vous avez chargé via l'option [`plugins`](#options) |1062| `pluginId` | Entrées `agents` et `skills.skillFrontmatter` | Nomme le plugin dont provient l'entrée, sous forme d'ID au format `name@marketplace`, et est absent pour une entrée qui ne provient pas d'un plugin. Lorsque le plugin ne provient pas d'une marketplace, la partie après `@` indique plutôt [son origine](https://code.claude.com/docs/fr/plugins/loading.md#find-where-a-plugin-came-from), par exemple `inline` pour un plugin que vous avez chargé via l'option [`plugins`](#options) |

1062| `path` | Entrées `agents` et `skills.skillFrontmatter` | Chemin absolu du fichier qui définit l'agent ou le skill, sur la machine où s'exécute Claude Code. Le champ est absent lorsqu'aucun fichier ne définit l'entrée, par exemple pour un agent provenant de l'option [`agents`](#options) ou pour un skill intégré à Claude Code |1063| `path` | Entrées `agents` et `skills.skillFrontmatter` | Chemin absolu du fichier qui définit l'agent ou le skill, sur la machine où s'exécute Claude Code. Ce champ est absent lorsqu'aucun fichier ne définit l'entrée, par exemple pour un agent provenant de l'option [`agents`](#options) ou un skill intégré à Claude Code |

1063 1064 

1064À titre d'exemple de filtrage sur `id`, cet extrait trouve la ligne `mcp_instructions` :1065À titre d'exemple de filtrage sur `id`, cet extrait trouve la ligne `mcp_instructions` :

1065 1066 


1083};1084};

1084```1085```

1085 1086 

1086`contents` contient le texte du fichier, ou des données base64 lorsque vous avez demandé `encoding: 'base64'` ; le champ `encoding` de la réponse est alors défini sur `'base64'`. `absPath` est le chemin absolu résolu. `truncated` est défini lorsque le fichier dépassait la limite `maxBytes` et que le contenu a été tronqué à cette limite.1087`contents` contient le texte du fichier, ou des données base64 lorsque vous avez demandé `encoding: 'base64'` ; le champ `encoding` de la réponse est alors défini sur `'base64'`. `absPath` est le chemin absolu résolu. `truncated` est défini lorsque le fichier dépassait la limite `maxBytes` et que le contenu a été coupé à cette limite.

1087 1088 

1088#### Ce que `readFile()` peut lire1089#### Ce que `readFile()` peut lire

1089 1090 

1090`readFile()` sert un ensemble de fichiers plus restreint que l'outil Read :1091`readFile()` donne accès à un ensemble de fichiers plus restreint que l'outil Read :

1091 1092 

1092* Un fichier ordinaire situé dans l'un des répertoires de travail de la session, tels que `cwd` et `additionalDirectories`1093* Un fichier ordinaire situé dans l'un des répertoires de travail de la session, comme `cwd` et `additionalDirectories`

1093* Quelques fichiers propres à Claude Code pour la session, tels que les résultats d'outils1094* Quelques fichiers propres à Claude Code pour la session, comme les résultats d'outils

1094 1095 

1095Les règles de refus et de demande `Read` bloquent toujours un chemin correspondant, et une règle d'autorisation `Read` large n'ouvre pas le reste du système de fichiers à `readFile()`. Pour tout autre fichier, l'appel se résout avec `null`.1096Les règles deny et ask de `Read` bloquent toujours un chemin correspondant, et une règle allow large de `Read` n'ouvre pas le reste du système de fichiers à `readFile()`. Dans tous les autres cas, l'appel se résout avec `null`.

1096 1097 

1097### `SDKControlReloadPluginsResponse`1098### `SDKControlReloadPluginsResponse`

1098 1099 


1121 1122 

1122Les champs de collection décrivent la session après l'appel :1123Les champs de collection décrivent la session après l'appel :

1123 1124 

1124* `commands`, `agents` et `mcpServers` : les commandes, les sous-agents et l'état des serveurs MCP de la session, sous les mêmes formes que celles renvoyées par `supportedCommands()`, `supportedAgents()` et `mcpServerStatus()`. `supportedAgents()` continue de renvoyer la liste capturée lors de l'initialisation ; lisez donc `agents` ici pour obtenir l'ensemble après un rechargement1125* `commands`, `agents` et `mcpServers` : les commandes, les sous-agents et l'état des serveurs MCP de la session, sous les mêmes formes que celles renvoyées par `supportedCommands()`, `supportedAgents()` et `mcpServerStatus()`. `supportedAgents()` continue de renvoyer la liste capturée à l'initialisation ; lisez donc `agents` ici pour obtenir l'ensemble après un rechargement

1125* `plugins` : chaque plugin chargé avec son `name` et son `path` d'installation. `version` reprend ce que déclare le manifeste du plugin et est contrôlé par l'auteur du plugin ; validez-le donc avant de vous y fier. Il est omis lorsque le manifeste n'en déclare aucune1126* `plugins` : chaque plugin chargé avec son `name` et son `path` d'installation. `version` reprend ce que déclare le manifeste du plugin et est contrôlé par l'auteur du plugin ; validez-le donc avant de vous y fier. Il est omis lorsque le manifeste n'en déclare aucune

1126* `error_count` : le nombre d'erreurs survenues lors du chargement des plugins1127* `error_count` : le nombre d'erreurs survenues lors du chargement des plugins

1127 1128 

1128Passez `{ holdOnCacheImpact: true }` à `reloadPlugins()` pour suspendre un rechargement qui invaliderait le cache de prompts de la conversation au lieu de l'appliquer. Claude Code effectue la vérification que réalise la commande interactive `/reload-plugins` avant d'[avertir du coût pour le cache](https://code.claude.com/docs/fr/prompt-caching.md#enabling-or-disabling-a-plugin). L'option nécessite Agent SDK v0.3.268 ou ultérieure. Un exécutable Claude Code antérieur à v2.1.268, comme celui vers lequel vous faites pointer `pathToClaudeCodeExecutable`, ignore l'option et applique le rechargement.1129Passez `{ holdOnCacheImpact: true }` à `reloadPlugins()` pour suspendre un rechargement qui invaliderait le cache de prompts de la conversation au lieu de l'appliquer. Claude Code exécute la vérification que la commande interactive `/reload-plugins` effectue avant d'[avertir du coût pour le cache](https://code.claude.com/docs/fr/prompt-caching.md#enabling-or-disabling-a-plugin). L'option nécessite l'Agent SDK v0.3.268 ou une version ultérieure. Un exécutable Claude Code antérieur à la v2.1.268, comme celui que vous désignez avec `pathToClaudeCodeExecutable`, ignore l'option et applique le rechargement.

1129 1130 

1130Lorsque vous passez l'option, lisez `held` pour savoir ce qui s'est passé :1131Lorsque vous passez l'option, lisez `held` pour savoir ce qui s'est passé :

1131 1132 

1132* `true` : le rechargement n'a pas été appliqué, et les champs de collection décrivent la session telle qu'elle est toujours. `cache_impact` indique ce que l'application changerait. Pour appliquer malgré tout, appelez de nouveau `reloadPlugins()` sans l'option.1133* `true` : le rechargement n'a pas été appliqué, et les champs de collection décrivent la session dans son état actuel. `cache_impact` indique ce que l'application modifierait. Pour l'appliquer malgré tout, appelez de nouveau `reloadPlugins()` sans l'option.

1133* `false` : la vérification n'a trouvé aucun impact sur le cache, et le rechargement a été appliqué.1134* `false` : la vérification n'a trouvé aucun impact sur le cache, et le rechargement a été appliqué.

1134* Absent : vous n'avez pas passé l'option, ou l'exécutable Claude Code est antérieur à v2.1.268 et a appliqué le rechargement.1135* Absent : vous n'avez pas passé l'option, ou l'exécutable Claude Code est antérieur à la v2.1.268 et a appliqué le rechargement.

1136 

1137`cache_impact` n'est présent qu'avec `held: true`. `mcp_servers_added` et `mcp_servers_removed` nomment les serveurs MCP de plugins que le rechargement enregistrerait ou supprimerait, sous forme de noms à portée `plugin:<plugin>:<server>`. Ces noms sont rédigés par les auteurs des plugins ; validez-les donc avant de les afficher. `lsp_tool_change` indique si l'application ajouterait ou supprimerait l'outil LSP, ou vaut `null` si elle ne ferait ni l'un ni l'autre. Les formes `may-` signifient que la vérification n'a pas pu voir entièrement l'ensemble de plugins en attente.

1138 

1139#### Charger d'autres dossiers de plugins avec `addPlugins`

1140 

1141Pour charger des dossiers de plugins qui ne figuraient pas dans l'option [`plugins`](#options) au démarrage, passez-les à `reloadPlugins()` sous la forme `addPlugins`, une liste d'entrées [`SdkPluginConfig`](#sdkpluginconfig) dont le `path` est absolu. Claude Code charge les nouveaux dossiers et recharge les plugins existants de la session en une seule passe. Les serveurs MCP de chaque plugin ajouté se connectent également, sauf si vous définissez [`skipMcpDiscovery`](#sdkpluginconfig) sur l'entrée de ce dossier. Nécessite l'Agent SDK v0.3.301 ou une version ultérieure et Claude Code v2.1.301 ou une version ultérieure.

1142 

1143Cet exemple ajoute un dossier à une requête `q` en cours d'exécution et affiche le chemin d'installation de chaque plugin chargé par la session au retour de l'appel :

1144 

1145```typescript theme={null}

1146const result = await q.reloadPlugins({

1147 addPlugins: [{ type: "local", path: "/opt/my-app/plugins/reports" }]

1148});

1149 

1150console.log(result.plugins.map((plugin) => plugin.path));

1151```

1135 1152 

1136`cache_impact` n'est présent qu'avec `held: true`. `mcp_servers_added` et `mcp_servers_removed` nomment les serveurs MCP de plugins que le rechargement enregistrerait ou supprimerait, sous forme de noms à portée `plugin:<plugin>:<server>`. Les noms sont définis par les auteurs des plugins ; validez-les donc avant de les afficher. `lsp_tool_change` indique si l'application ajouterait ou retirerait l'outil LSP, ou vaut `null` si elle ne ferait ni l'un ni l'autre. Les formes `may-` signifient que la vérification n'a pas pu voir entièrement l'ensemble des plugins en attente.1153Si le dossier a été chargé, la liste affichée inclut `/opt/my-app/plugins/reports`, et les commandes et sous-agents du plugin apparaissent dans `result.commands` et `result.agents`.

1154 

1155Un dossier ajouté reste rattaché à la session. Lorsque vous appelez de nouveau `reloadPlugins()`, Claude Code le recharge avec les autres plugins, et vous n'avez pas à le repasser dans `addPlugins`.

1156 

1157##### Lorsque `reloadPlugins()` ne charge pas les dossiers `addPlugins`

1158 

1159Si `reloadPlugins()` est rejeté, aucun des dossiers `addPlugins` n'est ajouté ; repassez-les donc dans `addPlugins` lorsque vous réessayez. Lorsque le rejet a l'une des causes suivantes, la session conserve les plugins dont elle disposait déjà :

1160 

1161* **Un `path` relatif ou une entrée mal formée** : le message d'erreur indique `add_plugins must be a list of { type: "local", path } entries with absolute paths`. Claude Code refuse la liste entière à cause d'une seule entrée incorrecte ; passez donc chaque entrée sous la forme `{ type: "local", path }` avec un `path` absolu

1162* **Un administrateur a activé [`disableSideloadFlags`](https://code.claude.com/docs/fr/settings-reference#disablesideloadflags) dans vos paramètres gérés** : le message indique `reload_plugins add_plugins is disabled by managed settings (disableSideloadFlags)`. Pour charger le dossier, demandez à cet administrateur de supprimer le paramètre

1163* **Le [sandbox](https://code.claude.com/docs/fr/sandboxing.md) n'a pas pu être reconstruit** : lorsque le [sandboxing](#sandboxsettings) est activé, Claude Code reconstruit la configuration du sandbox afin que les commandes shell exécutées en sandbox ne puissent pas écrire dans les dossiers que vous ajoutez. Le message indique `the sandbox could not be rebuilt to keep shell commands out of this folder`. Vérifiez que vos [paramètres de sandbox](#sandboxsettings) forment toujours une configuration valide

1164 

1165Si vous passez `holdOnCacheImpact` et que l'appel se résout avec [`held: true`](#sdkcontrolreloadpluginsresponse), les dossiers `addPlugins` ne sont pas ajoutés. Pour les ajouter malgré tout, appelez de nouveau `reloadPlugins()` avec la même liste `addPlugins` et sans `holdOnCacheImpact`.

1166 

1167Lorsque l'appel se résout sans `held: true` et qu'un dossier est toujours absent de `result.plugins`, commencez par vérifier les causes suivantes :

1168 

1169* **Le dossier n'existe pas ou son plugin n'a pas pu être chargé** : `result.error_count` vaut `1` ou plus. Le dossier reste tout de même rattaché à la session. Après avoir corrigé le dossier, appelez de nouveau `reloadPlugins()` pour le charger, cette fois sans l'indiquer dans `addPlugins`

1170* **L'exécutable Claude Code est antérieur à la v2.1.301** : un exécutable antérieur à la v2.1.301 ignore `addPlugins` et ne recharge que les plugins dont la session disposait déjà. Vérifiez `claude_code_version` dans le [message init](#sdksystemmessage), et exécutez un exécutable en v2.1.301 ou ultérieure

1137 1171 

1138### `SDKControlReloadSkillsResponse`1172### `SDKControlReloadSkillsResponse`

1139 1173 


1161 1195 

1162### `SDKControlMcpReadResourceResponse`1196### `SDKControlMcpReadResourceResponse`

1163 1197 

1164Type de retour de [`readMcpResource()`](#query-object), contenant le résultat `resources/read` du serveur MCP. Nécessite TypeScript Agent SDK v0.3.280 ou ultérieure.1198Type de retour de [`readMcpResource()`](#query-object), qui transporte le résultat `resources/read` du serveur MCP. Nécessite le TypeScript Agent SDK v0.3.280 ou une version ultérieure.

1165 1199 

1166```typescript theme={null}1200```typescript theme={null}

1167type SDKControlMcpReadResourceResponse = {1201type SDKControlMcpReadResourceResponse = {


1175};1209};

1176```1210```

1177 1211 

1178Passez à `readMcpResource()` le nom du serveur tel que le signale `mcpServerStatus()` et un URI `ui://`, comme le `ui.resourceUri` qu'un outil déclare dans son [`_meta`](#mcpserverstatus). L'appel est rejeté pour tout autre schéma d'URI, pour un [serveur MCP SDK](#createsdkmcpserver) que votre application héberge elle-même, et pour un serveur qui n'est pas connecté. Il est disponible lorsque les [`capabilities`](#sdksystemmessage) du message d'initialisation incluent `mcp_read_resource_v1`.1212Passez à `readMcpResource()` le nom du serveur tel que `mcpServerStatus()` le rapporte et une URI `ui://`, comme le `ui.resourceUri` qu'un outil déclare dans son [`_meta`](#mcpserverstatus). L'appel est rejeté pour tout autre schéma d'URI, pour un [serveur MCP SDK](#createsdkmcpserver) que votre application héberge elle-même, et pour un serveur qui n'est pas connecté. Il est disponible lorsque les [`capabilities`](#sdksystemmessage) du message init incluent `mcp_read_resource_v1`.

1179 1213 

1180Chaque entrée de `contents` est un élément de contenu tel que le serveur l'a envoyé, sans les clés `_meta` sous le préfixe `com.anthropic/`, qui est réservé à Claude Code. `blob` contient des données base64 pour un élément binaire, et `_meta` est le `_meta` propre à l'élément, où un serveur MCP Apps place les `ui.csp` et `ui.permissions` de la ressource.1214Chaque entrée `contents` est un élément de contenu tel que le serveur l'a envoyé, moins toute clé `_meta` sous le préfixe `com.anthropic/`, réservé à Claude Code. `blob` contient les données base64 d'un élément binaire, et `_meta` est le propre `_meta` de l'élément, où un serveur MCP Apps place les `ui.csp` et `ui.permissions` de la ressource.

1181 1215 

1182Le contenu est du HTML tiers non fiable ; affichez-le donc dans un sandbox.1216Le contenu est du HTML tiers non fiable ; affichez-le donc dans un sandbox.

1183 1217 


1206};1240};

1207```1241```

1208 1242 

1209| Champ | Requis | Description |1243| Champ | Obligatoire | Description |

1210| :- | :- | :- |1244| :- | :- | :- |

1211| `description` | Oui | Description en langage naturel indiquant quand utiliser cet agent |1245| `description` | Oui | Description en langage naturel indiquant quand utiliser cet agent |

1212| `tools` | Non | Tableau des noms d'outils autorisés. S'il est omis, hérite de tous les [outils disponibles pour les sous-agents](https://code.claude.com/docs/fr/sub-agents.md#available-tools). Pour précharger des skills dans le contexte de l'agent, utilisez le champ `skills` plutôt que de lister `'Skill'` ici |1246| `tools` | Non | Tableau des noms d'outils autorisés. S'il est omis, hérite de chaque [outil disponible pour les sous-agents](https://code.claude.com/docs/fr/sub-agents.md#available-tools). Pour précharger des skills dans le contexte de l'agent, utilisez le champ `skills` plutôt que d'indiquer `'Skill'` ici |

1213| `disallowedTools` | Non | Tableau des noms d'outils à interdire explicitement pour cet agent. Les motifs au niveau du serveur MCP sont également acceptés : `mcp__server` ou `mcp__server__*` retire tous les outils de ce serveur, et `mcp__*` retire tous les outils MCP de n'importe quel serveur |1247| `disallowedTools` | Non | Tableau des noms d'outils à interdire explicitement pour cet agent. Les motifs au niveau du serveur MCP sont également acceptés : `mcp__server` ou `mcp__server__*` supprime tous les outils de ce serveur, et `mcp__*` supprime tous les outils MCP de n'importe quel serveur |

1214| `prompt` | Oui | Le prompt système de l'agent |1248| `prompt` | Oui | Le prompt système de l'agent |

1215| `model` | Non | Remplacement du modèle pour cet agent. Accepte un alias tel que `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, ou un ID de modèle complet. `'inherit'` utilise le modèle principal. Si vous l'omettez, Claude Code choisit le modèle selon l'[ordre des modèles des sous-agents](https://code.claude.com/docs/fr/sub-agents.md#choose-a-model) |1249| `model` | Non | Remplacement du modèle pour cet agent. Accepte un alias tel que `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, ou un ID de modèle complet. `'inherit'` utilise le modèle principal. Si vous l'omettez, Claude Code choisit le modèle selon l'[ordre des modèles des sous-agents](https://code.claude.com/docs/fr/sub-agents.md#choose-a-model) |

1216| `mcpServers` | Non | Spécifications des serveurs MCP pour cet agent |1250| `mcpServers` | Non | Spécifications des serveurs MCP pour cet agent |

1217| `skills` | Non | Tableau des noms de skills à précharger dans le contexte de l'agent |1251| `skills` | Non | Tableau des noms de skills à précharger dans le contexte de l'agent |

1218| `initialPrompt` | Non | Soumis automatiquement comme premier tour utilisateur lorsque cet agent s'exécute en tant qu'agent du thread principal |1252| `initialPrompt` | Non | Soumis automatiquement comme premier tour utilisateur lorsque cet agent s'exécute en tant qu'agent du thread principal |

1219| `maxTurns` | Non | Nombre maximal de tours agentiques (allers-retours API) avant l'arrêt |1253| `maxTurns` | Non | Nombre maximal de tours agentiques (allers-retours avec l'API) avant l'arrêt |

1220| `autoCompactWindow` | Non | Réduit la [fenêtre de compaction automatique](https://code.claude.com/docs/fr/sub-agents.md#subagent-auto-compact-window) de cet agent lorsqu'il s'exécute en tant que sous-agent, à un nombre de tokens compris entre `100000` et `1000000`. Nécessite TypeScript Agent SDK v0.3.296 ou ultérieur |1254| `autoCompactWindow` | Non | Abaisse la [fenêtre de compaction automatique](https://code.claude.com/docs/fr/sub-agents.md#subagent-auto-compact-window) de cet agent lorsqu'il s'exécute en tant que sous-agent, à un nombre de tokens compris entre `100000` et `1000000`. Nécessite le TypeScript Agent SDK v0.3.296 ou une version ultérieure |

1221| `background` | Non | Exécuter cet agent comme tâche en arrière-plan non bloquante lorsqu'il est invoqué |1255| `background` | Non | Exécute cet agent en tant que tâche en arrière-plan non bloquante lorsqu'il est invoqué |

1222| `omitClaudeMd` | Non | Exclut les fichiers CLAUDE.md utilisateur, projet et locaux du contexte initial de cet agent ; les fichiers de politique gérée sont toujours chargés. Utilisez-le pour les agents qui tirent tout ce dont ils ont besoin du prompt de l'outil Agent. Ignoré lorsque cet agent s'exécute en tant qu'agent du thread principal. Nécessite TypeScript Agent SDK v0.3.271 ou ultérieur |1256| `omitClaudeMd` | Non | Exclut les fichiers CLAUDE.md utilisateur, projet et locaux du contexte initial de cet agent ; les fichiers de politique gérée sont toujours chargés. Utilisez-le pour les agents qui tirent tout ce dont ils ont besoin du prompt de l'outil Agent. Ignoré lorsque cet agent s'exécute en tant qu'agent du thread principal. Nécessite le TypeScript Agent SDK v0.3.271 ou une version ultérieure |

1223| `memory` | Non | Source de mémoire pour cet agent : `'user'`, `'project'` ou `'local'` |1257| `memory` | Non | Source de mémoire pour cet agent : `'user'`, `'project'` ou `'local'` |

1224| `effort` | Non | Niveau d'effort de raisonnement pour cet agent. Accepte un niveau nommé ou un entier |1258| `effort` | Non | Niveau d'effort de raisonnement pour cet agent. Accepte un niveau nommé ou un entier |

1225| `permissionMode` | Non | Mode de permission pour l'exécution des outils au sein de cet agent. Les [règles d'héritage des sous-agents](https://code.claude.com/docs/fr/agent-sdk/permissions.md#available-modes) déterminent quand il s'applique. Consultez [`PermissionMode`](#permissionmode) |1259| `permissionMode` | Non | Mode de permission pour l'exécution des outils au sein de cet agent. Les [règles d'héritage des sous-agents](https://code.claude.com/docs/fr/agent-sdk/permissions.md#available-modes) déterminent quand il s'applique. Voir [`PermissionMode`](#permissionmode) |

1226| `criticalSystemReminder_EXPERIMENTAL` | Non | Expérimental : rappel critique ajouté au prompt système |1260| `criticalSystemReminder_EXPERIMENTAL` | Non | Expérimental : rappel critique ajouté au prompt système |

1227 1261 

1228### `AgentMcpServerSpec`1262### `AgentMcpServerSpec`

1229 1263 

1230Spécifie les serveurs MCP disponibles pour un sous-agent. Peut être un nom de serveur (chaîne référençant un serveur de la configuration `mcpServers` du parent) ou un enregistrement de configuration de serveur en ligne associant des noms de serveurs à des configurations.1264Spécifie les serveurs MCP disponibles pour un sous-agent. Peut être un nom de serveur (chaîne faisant référence à un serveur de la configuration `mcpServers` du parent) ou un enregistrement de configuration de serveur en ligne associant des noms de serveurs à des configurations.

1231 1265 

1232```typescript theme={null}1266```typescript theme={null}

1233type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;1267type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;


1247| :- | :- | :- |1281| :- | :- | :- |

1248| `'user'` | Paramètres utilisateur globaux | `~/.claude/settings.json` |1282| `'user'` | Paramètres utilisateur globaux | `~/.claude/settings.json` |

1249| `'project'` | Paramètres de projet partagés (sous contrôle de version) | `.claude/settings.json` |1283| `'project'` | Paramètres de projet partagés (sous contrôle de version) | `.claude/settings.json` |

1250| `'local'` | Paramètres de projet locaux, ajoutés au gitignore lorsque Claude Code y enregistre un paramètre | `.claude/settings.local.json` |1284| `'local'` | Paramètres de projet locaux, ignorés par Git lorsque Claude Code y enregistre un paramètre | `.claude/settings.local.json` |

1251 1285 

1252#### Comportement par défaut1286#### Comportement par défaut

1253 1287 

1254Lorsque `settingSources` est omis ou `undefined`, `query()` charge les mêmes paramètres du système de fichiers que la CLI Claude Code : utilisateur, projet et local. Consultez [Ce que settingSources ne contrôle pas](https://code.claude.com/docs/fr/agent-sdk/claude-code-features.md#what-settingsources-does-not-control) pour connaître les entrées lues indépendamment de cette option, et comment les désactiver.1288Lorsque `settingSources` est omis ou `undefined`, `query()` charge les mêmes paramètres du système de fichiers que la CLI Claude Code : utilisateur, projet et local. Consultez [Ce que settingSources ne contrôle pas](https://code.claude.com/docs/fr/agent-sdk/claude-code-features.md#what-settingsources-does-not-control) pour connaître les entrées lues indépendamment de cette option et savoir comment les désactiver.

1255 1289 

1256#### Pourquoi utiliser settingSources1290#### Pourquoi utiliser settingSources

1257 1291 


1267});1301});

1268```1302```

1269 1303 

1270**Charger uniquement des sources de paramètres spécifiques :**1304**Charger uniquement certaines sources de paramètres :**

1271 1305 

1272```typescript theme={null}1306```typescript theme={null}

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


1281});1315});

1282```1316```

1283 1317 

1284Pour charger les instructions de projet CLAUDE.md, incluez `"project"` dans `settingSources`. Consultez [Modifier les prompts système](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#claude-md-files-for-project-level-instructions) pour savoir comment le chargement de CLAUDE.md interagit avec les options du prompt système.1318Pour charger les instructions de projet CLAUDE.md, incluez `"project"` dans `settingSources`. Consultez [Modifier les prompts système](https://code.claude.com/docs/fr/agent-sdk/modifying-system-prompts.md#claude-md-files-for-project-level-instructions) pour savoir comment le chargement de CLAUDE.md interagit avec les options de prompt système.

1285 1319 

1286#### Priorité des paramètres1320#### Priorité des paramètres

1287 1321 

1288Lorsque plusieurs sources sont chargées, les paramètres sont fusionnés selon cet ordre de priorité (de la plus haute à la plus basse) :1322Lorsque plusieurs sources sont chargées, les paramètres sont fusionnés selon cet ordre de priorité (de la plus élevée à la plus basse) :

1289 1323 

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

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

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

1293 1327 

1294Les options programmatiques telles que `agents`, `allowedTools` et `settings` remplacent les paramètres utilisateur, projet et locaux du système de fichiers. Les paramètres de politique gérés ont priorité sur les options programmatiques.1328Les options programmatiques telles que `agents`, `allowedTools` et `settings` remplacent les paramètres utilisateur, projet et locaux du système de fichiers. Les paramètres de politique gérée ont priorité sur les options programmatiques.

1295 1329 

1296### `PermissionMode`1330### `PermissionMode`

1297 1331 


1309 1343 

1310Type de fonction de permission personnalisée pour contrôler l'utilisation des outils.1344Type de fonction de permission personnalisée pour contrôler l'utilisation des outils.

1311 1345 

1312La fonction est le remplacement, dans le SDK, de la demande de permission interactive : elle n'est invoquée que lorsque le [flux d'évaluation des permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated) aboutit à une demande. Les appels d'outils déjà approuvés par une entrée `allowedTools`, une règle d'autorisation des paramètres ou le mode de permission, comme `acceptEdits` ou `bypassPermissions`, ne l'invoquent jamais. Pour contrôler chaque appel d'outil, utilisez plutôt un [hook `PreToolUse`](https://code.claude.com/docs/fr/agent-sdk/hooks).1346Cette fonction est le remplaçant, dans le SDK, de la demande de permission interactive : elle n'est invoquée que lorsque le [flux d'évaluation des permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated) aboutit à une demande. Les appels d'outils déjà approuvés par une entrée `allowedTools`, une règle allow des paramètres ou le mode de permission, comme `acceptEdits` ou `bypassPermissions`, ne l'invoquent jamais. Pour contrôler chaque appel d'outil, utilisez plutôt un [hook `PreToolUse`](https://code.claude.com/docs/fr/agent-sdk/hooks).

1313 1347 

1314Une règle d'autorisation ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) ; consultez [Comment les permissions sont évaluées](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated) pour savoir lesquelles atteignent le callback et ce qui se passe en mode `dontAsk` et `auto`.1348Une règle allow ne pré-approuve pas les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) ; consultez [Comment les permissions sont évaluées](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated) pour savoir lesquelles atteignent le callback et ce qui se passe en mode `dontAsk` et `auto`.

1315 1349 

1316```typescript theme={null}1350```typescript theme={null}

1317type CanUseTool = (1351type CanUseTool = (


1334 1368 

1335| Option | Type | Description |1369| Option | Type | Description |

1336| :- | :- | :- |1370| :- | :- | :- |

1337| `signal` | `AbortSignal` | Signalé si l'opération doit être abandonnée |1371| `signal` | `AbortSignal` | Signalé si l'opération doit être annulée |

1338| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Mises à jour de permissions suggérées afin que l'utilisateur ne soit plus sollicité pour cet outil. Les demandes Bash incluent une suggestion avec la [destination](#permissionupdatedestination) `localSettings`, de sorte que la renvoyer dans `updatedPermissions` écrit la règle dans `.claude/settings.local.json` et la conserve d'une session à l'autre. |1372| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | Mises à jour de permissions suggérées pour que l'utilisateur ne soit plus sollicité pour cet outil. Les demandes Bash incluent une suggestion avec la [destination](#permissionupdatedestination) `localSettings` ; la renvoyer dans `updatedPermissions` écrit donc la règle dans `.claude/settings.local.json` et la conserve d'une session à l'autre. |

1339| `blockedPath` | `string` | Le chemin de fichier qui a déclenché la demande de permission, le cas échéant |1373| `blockedPath` | `string` | Le chemin de fichier qui a déclenché la demande de permission, le cas échéant |

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

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

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

1343| `suppressAlwaysAllowRule` | `boolean` | Lorsque `true`, ne proposez pas de choix d'autorisation permanente pour cette demande. Nécessite Agent SDK v0.3.268 ou ultérieur |1377| `suppressAlwaysAllowRule` | `boolean` | Lorsque `true`, ne proposez pas de choix « toujours autoriser » persistant pour cette demande. Nécessite l'Agent SDK v0.3.268 ou une version ultérieure |

1344| `toolUseID` | `string` | Identifiant unique de cet appel d'outil spécifique au sein du message de l'assistant |1378| `toolUseID` | `string` | Identifiant unique de cet appel d'outil spécifique au sein du message de l'assistant |

1345| `agentID` | `string` | En cas d'exécution au sein d'un sous-agent, l'ID du sous-agent |1379| `agentID` | `string` | En cas d'exécution au sein d'un sous-agent, l'ID du sous-agent |

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

1347 1381 

1348Le callback résout normalement la requête en renvoyant un [`PermissionResult`](#permissionresult), que le SDK réécrit sur son transport en tant que `control_response`. Renvoyez `null` uniquement lorsque votre application a déjà envoyé la `control_response` pour cette requête via son propre canal, en reprenant `requestId` ; le SDK ignore alors l'écriture de la réponse sur son transport. Renvoyer `null` dans tout autre cas bloque indéfiniment l'appel d'outil, car aucune `control_response` n'est jamais envoyée et les demandes de permission n'expirent pas.1382Le callback résout normalement la requête en renvoyant un [`PermissionResult`](#permissionresult), que le SDK réécrit sur son transport en tant que `control_response`. Ne renvoyez `null` que lorsque votre application a déjà envoyé la `control_response` de cette requête par son propre canal, en renvoyant `requestId` ; le SDK n'écrit alors pas la réponse sur son transport. Renvoyer `null` dans tout autre cas laisse l'appel d'outil bloqué indéfiniment, car aucune `control_response` n'est jamais envoyée et les demandes de permission n'expirent pas.

1349 1383 

1350L'option `requestId` et la valeur de retour `null` nécessitent Claude Code v2.1.199 ou ultérieur.1384L'option `requestId` et la valeur de retour `null` nécessitent Claude Code v2.1.199 ou une version ultérieure.

1351 1385 

1352### `PermissionResult`1386### `PermissionResult`

1353 1387 


1383 1417 

1384| Champ | Type | Description |1418| Champ | Type | Description |

1385| :- | :- | :- |1419| :- | :- | :- |

1386| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Active le champ `preview` sur les options [`AskUserQuestion`](https://code.claude.com/docs/fr/agent-sdk/user-input#question-format) et définit le format de son contenu. Lorsqu'il n'est pas défini, Claude n'émet pas d'aperçus |1420| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | Active le champ `preview` sur les options d'[`AskUserQuestion`](https://code.claude.com/docs/fr/agent-sdk/user-input#question-format) et définit le format de son contenu. Lorsqu'il n'est pas défini, Claude n'émet pas d'aperçus |

1387 1421 

1388### `McpServerConfig`1422### `McpServerConfig`

1389 1423 


1430 1464 

1431#### `McpSdkServerConfigWithInstance`1465#### `McpSdkServerConfigWithInstance`

1432 1466 

1467La configuration d'un serveur MCP en processus, c'est-à-dire un serveur que [`createSdkMcpServer()`](#createsdkmcpserver) crée et qui s'exécute dans le processus de votre application. Il s'agit de l'objet renvoyé par `createSdkMcpServer()`, auquel s'ajoute une liste facultative `tools` d'entrées [`McpServerToolPolicy`](#mcpservertoolpolicy) que vous ajoutez vous-même. Pour exiger une approbation pour les appels à l'un des outils du serveur, ou pour les refuser, ajoutez une entrée qui nomme l'outil.

1468 

1433```typescript theme={null}1469```typescript theme={null}

1434type McpSdkServerConfigWithInstance = {1470type McpSdkServerConfigWithInstance = {

1435 type: "sdk";1471 type: "sdk";

1436 name: string;1472 name: string;

1437 timeout?: number;1473 timeout?: number;

1474 tools?: McpServerToolPolicy[];

1438 instance: McpServer;1475 instance: McpServer;

1439};1476};

1440```1477```

1441 1478 

1479Pour définir une politique, décomposez l'objet renvoyé par `createSdkMcpServer()` dans un nouvel objet de `mcpServers` et ajoutez la liste `tools` à ce nouvel objet. L'option `tools` de `createSdkMcpServer()` elle-même est une liste différente, qui contient les définitions d'outils et n'accepte pas d'entrées de politique. La liste de politiques nécessite l'Agent SDK v0.3.301 ou une version ultérieure, et [`McpServerToolPolicy`](#mcpservertoolpolicy) décrit l'effet de chaque valeur de `permission_policy`.

1480 

1481Cet exemple pré-approuve tous les outils du serveur `records` avec un caractère générique `allowedTools`, puis marque `delete_record` comme `always_ask` afin que ses appels soient malgré tout transmis à `canUseTool`. Avec l'annotation `destructiveHint: true`, l'appel atteint toujours le callback si la session s'exécute en mode `auto`, où le [classifieur](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) du mode auto pourrait sinon l'approuver.

1482 

1483```typescript theme={null}

1484import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";

1485import { z } from "zod";

1486 

1487const deleteRecord = tool(

1488 "delete_record",

1489 "Delete a customer record by ID",

1490 { id: z.string() },

1491 async ({ id }) => ({ content: [{ type: "text", text: `Deleted record ${id}` }] }),

1492 { annotations: { destructiveHint: true } }

1493);

1494 

1495const records = createSdkMcpServer({ name: "records", tools: [deleteRecord] });

1496 

1497for await (const message of query({

1498 prompt: "Delete customer record 42",

1499 options: {

1500 mcpServers: {

1501 // Spread the returned config and add the policy list beside it

1502 records: {

1503 ...records,

1504 tools: [{ name: "delete_record", permission_policy: "always_ask" as const }]

1505 }

1506 },

1507 allowedTools: ["mcp__records__*"],

1508 canUseTool: async (toolName, input) => {

1509 console.log(`Approval requested for ${toolName}`);

1510 return { behavior: "allow", updatedInput: input };

1511 }

1512 }

1513})) {

1514 if (message.type === "result" && message.subtype === "success") {

1515 console.log(message.result);

1516 }

1517}

1518```

1519 

1520Lorsque Claude appelle l'outil, le script affiche `Approval requested for mcp__records__delete_record` avant l'exécution de l'outil `delete_record`, bien que l'entrée `allowedTools` aurait sinon approuvé l'appel.

1521 

1522Pour modifier ou lever la politique d'un outil pendant l'exécution de la session, passez la configuration du serveur avec une nouvelle valeur `tools` à [`setMcpServers()`](#mcpsetserversresult). La valeur `tools` que vous passez prend effet à partir du prochain appel de Claude aux outils de ce serveur :

1523 

1524* **Une liste avec des entrées** : les entrées remplacent les politiques actuelles

1525* **Une liste vide** : toutes les politiques du serveur sont supprimées

1526* **Aucune clé `tools`** : les politiques actuelles sont conservées

1527 

1528Incluez dans cet appel vos autres serveurs en processus et tout serveur ajouté par un appel `setMcpServers()` antérieur, faute de quoi l'appel les déconnecte.

1529 

1530#### `McpServerToolPolicy`

1531 

1532Une entrée de la liste `tools` d'un [`McpSdkServerConfigWithInstance`](#mcpsdkserverconfigwithinstance), qui nomme l'un des outils du serveur et définit la politique de permission pour les appels à cet outil. La liste nécessite l'Agent SDK v0.3.301 ou une version ultérieure et Claude Code v2.1.301 ou une version ultérieure. Un exécutable Claude Code plus ancien, comme un exécutable que vous désignez avec `pathToClaudeCodeExecutable`, ignore la liste. `always_ask` et `always_deny` ne sont alors pas appliqués, et chaque appel passe par le [flux de permissions](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated).

1533 

1534```typescript theme={null}

1535type McpServerToolPolicy = {

1536 name: string;

1537 permission_policy?: "always_allow" | "always_ask" | "always_deny";

1538 org_max_permission?: "allow" | "ask" | "blocked";

1539};

1540```

1541 

1542| Champ | Type | Description |

1543| :- | :- | :- |

1544| `name` | `string` | Le nom brut de l'outil tel que passé à [`tool()`](#tool), sans le préfixe `mcp__<server>__` |

1545| `permission_policy` | `'always_allow' \| 'always_ask' \| 'always_deny'` | La politique d'approbation pour les appels de l'outil, [`always_ask` ou `always_deny`](#permission-policy-values). `always_allow` est ignoré sur un serveur en processus : pour pré-approuver un outil, indiquez-le plutôt dans [`allowedTools`](#options) |

1546| `org_max_permission` | `'allow' \| 'ask' \| 'blocked'` | Un plafond par outil défini par un administrateur de l'organisation. Ignoré sur un serveur en processus ; laissez-le donc non défini |

1547 

1548##### Valeurs de `permission_policy`

1549 

1550Choisissez `always_ask` pour approuver vous-même chaque appel, ou `always_deny` pour bloquer complètement l'outil :

1551 

1552* **`always_ask`** : chaque appel à l'outil [nécessite une approbation](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated), même si une entrée `allowedTools` ou une règle allow le couvre. L'appel est transmis à votre callback `canUseTool` ou à votre outil [`permissionPromptToolName`](#options), sauf s'il est réglé auparavant. Un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) dans un plugin que vous chargez [peut l'approuver en premier](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Sinon, en mode `dontAsk` il est refusé, et en [mode `auto`, `plan` et `bypassPermissions`](#permission-modes-that-can-approve-an-always_ask-call) il peut être approuvé avant d'atteindre votre callback

1553* **`always_deny`** : un appel à l'outil [est refusé](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated) dans tous les modes de permission, y compris `bypassPermissions`, mais un mod dans un plugin que vous chargez [peut tout de même l'approuver](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods)

1554 

1555Si vous ne passez ni `canUseTool` ni `permissionPromptToolName`, ou si vous définissez [`permissionPrompts`](#options) sur `'none'`, un appel `always_ask` qui n'est pas réglé auparavant est refusé, sauf si un [hook `PermissionRequest`](https://code.claude.com/docs/fr/hooks#permissionrequest) l'autorise.

1556 

1557##### Modes de permission pouvant approuver un appel `always_ask`

1558 

1559En mode `auto`, `plan` et `bypassPermissions`, un appel à un outil marqué [`always_ask`](#permission-policy-values) peut être approuvé avant d'atteindre votre callback `canUseTool`. Repérez le mode de votre session dans cette liste pour savoir quand cette approbation a lieu et ce qu'il faut définir pour que l'appel atteigne malgré tout votre callback :

1560 

1561* **`auto`** : le [classifieur](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) du mode auto examine l'appel et peut l'autoriser. Pour que chaque appel atteigne votre callback en mode `auto`, définissez `destructiveHint: true` dans les [annotations](#toolannotations) de l'outil

1562* **`plan`** : tant que le [mode auto est disponible](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) pour la session, les appels à un outil `always_ask` annoté `readOnlyHint: true` sont transmis au classifieur du mode auto, qui peut les autoriser. Les appels aux autres outils `always_ask` atteignent votre callback. Pour que les appels d'un outil en lecture seule atteignent également votre callback, ajoutez `destructiveHint: true` aux annotations de cet outil en plus de `readOnlyHint: true`. Vous pouvez aussi définir [`useAutoModeDuringPlan`](https://code.claude.com/docs/fr/settings-reference#useautomodeduringplan) sur `false`, ce qui désactive le classifieur pendant la planification

1563* **`bypassPermissions`** : lorsque la variable d'environnement [`CLAUDE_CODE_REMOTE`](https://code.claude.com/docs/fr/env-vars#variables) vaut `true`, comme c'est le cas dans une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), l'appel est approuvé sans votre callback, quelles que soient les annotations de l'outil. Partout ailleurs, l'appel atteint votre callback. Pour qu'il atteigne aussi votre callback dans une session cloud, exécutez plutôt la session en mode `default` ou `acceptEdits`

1564 

1565Définissez explicitement `destructiveHint` sur `true` en mode `auto` et `plan`. Pour les appels `always_ask`, Claude Code interprète un `destructiveHint` non défini comme `false`, bien que la valeur par défaut indiquée dans [`ToolAnnotations`](#toolannotations) soit `true`.

1566 

1442#### `McpClaudeAIProxyServerConfig`1567#### `McpClaudeAIProxyServerConfig`

1443 1568 

1444```typescript theme={null}1569```typescript theme={null}


1464| Champ | Type | Description |1589| Champ | Type | Description |

1465| :- | :- | :- |1590| :- | :- | :- |

1466| `type` | `'local'` | Doit être `'local'` (seuls les plugins locaux sont actuellement pris en charge) |1591| `type` | `'local'` | Doit être `'local'` (seuls les plugins locaux sont actuellement pris en charge) |

1467| `path` | `string` | Chemin absolu ou relatif vers le répertoire du plugin |1592| `path` | `string` | Chemin vers le répertoire du plugin. Un chemin relatif est résolu par rapport à l'option [`cwd`](#options) au démarrage de la session. Le chemin doit être absolu lorsque vous chargez le plugin en cours de session avec [`addPlugins`](#load-more-plugin-folders-with-addplugins) |

1468| `skipMcpDiscovery` | `boolean` | Lorsque `true`, le SDK charge les skills, hooks, agents et commandes de ce plugin, mais ne lit pas son `.mcp.json` ni les `mcpServers` de son manifeste. Définissez cette option lorsque votre application gère les connexions MCP du plugin. |1593| `skipMcpDiscovery` | `boolean` | Lorsque `true`, le SDK charge les skills, hooks, agents et commandes de ce plugin, mais ne lit pas son `.mcp.json` ni les `mcpServers` de son manifeste. Définissez-le lorsque votre application gère les connexions MCP du plugin. |

1469 1594 

1470**Exemple :**1595**Exemple :**

1471 1596 


5076};5201};

5077```5202```

5078 5203 

5079`source` indique la provenance de la définition du serveur, avec les mêmes valeurs et la même règle de confiance que le `source` de [`McpServerProvenance`](#mcpserverprovenance). Le champ nécessite l'Agent SDK v0.3.274 ou version ultérieure et est absent dans les versions antérieures.5204Utilisez `source` pour décider du degré de confiance à accorder à un serveur, et le `_meta` de chaque entrée `tools` pour trouver une ressource d'interface utilisateur que le serveur a associée à cet outil :

5205 

5206* **`source`** : la provenance de la définition du serveur, avec les mêmes valeurs que le `source` de [`McpServerProvenance`](#mcpserverprovenance). Fondez vos décisions de confiance sur `source` plutôt que sur `name`, car seul votre propre serveur in-process indique `sdk`, quel que soit le nom sous lequel un autre serveur est enregistré. Si vous ne reconnaissez pas une valeur de `source`, traitez ce serveur comme vous traitez tout serveur dont le `source` n'est pas `sdk`. Nécessite l'Agent SDK v0.3.274 ou version ultérieure

5207* **`_meta`** : l'objet `ui` et la chaîne `ui/resourceUri` issus du `_meta` que le serveur a déclaré pour l'outil. Claude Code retient toutes les autres clés de `_meta`. `ui/resourceUri` est une ancienne graphie de premier niveau de `ui.resourceUri`. Lorsque le serveur associe une [ressource d'interface MCP Apps](https://code.claude.com/docs/fr/mcp.md#reference-mcp-resources) à l'outil, `ui.resourceUri` ou `ui/resourceUri` contient l'URI `ui://` de la ressource. Récupérez cette URI avec [`readMcpResource()`](#query-object) et affichez la ressource dans votre application. Nécessite l'Agent SDK v0.3.280 ou version ultérieure

5208 

5209Claude Code n'envoie `_meta` que lorsque le tableau [`capabilities`](#sdksystemmessage) du message `system` de sous-type `init` inclut `mcp_tool_ui_meta_v1`. Vous n'activez pas `mcp_tool_ui_meta_v1` vous-même.

5210 

5211#### Lorsque le `_meta.ui` d'un outil ne contient que `visibility`

5212 

5213Si votre serveur déclare `ui.resourceUri` pour un outil mais que le `_meta.ui` reçu par votre application ne contient que `visibility`, l'objet `ui` envoyé par le serveur a échoué à l'une des vérifications de Claude Code. Claude Code vérifie `ui` et `ui/resourceUri` séparément ; une clé peut donc atteindre votre application alors que l'autre échoue. Comparez le `_meta` de la réponse `tools/list` de votre serveur aux vérifications de chaque clé :

5214 

5215* **`ui`** : atteint votre application sans modification, y compris tout membre autre que `resourceUri` et `visibility`, si les trois vérifications réussissent :

5216 

5217 * `resourceUri` est absent, ou est une chaîne qui commence par `ui://`

5218 * `visibility` est absent, ou ne répertorie que `"model"` et `"app"`

5219 * L'objet entier fait au plus 4 096 caractères une fois sérialisé en JSON

5220 

5221 Si l'une des vérifications échoue, votre application reçoit au plus un `ui` dont le seul membre est un tableau `visibility` contenant les entrées `"model"` et `"app"` que le serveur a répertoriées.

5222* **`ui/resourceUri`** : atteint votre application s'il s'agit d'une chaîne qui commence par `ui://` et fait au plus 4 096 caractères. Sinon, Claude Code la supprime

5080 5223 

5081`_meta` sur une entrée `tools` contient les membres MCP Apps du `_meta` de cet outil, afin que votre application puisse trouver la ressource `ui://` à afficher avec [`readMcpResource()`](#query-object). Claude Code transmet l'objet `ui` et la chaîne plate dépréciée `ui/resourceUri`, et retient toutes les autres clés. Dans `ui`, `resourceUri` est une chaîne `ui://` et `visibility` un tableau de `"model"` et `"app"` lorsque le serveur les définit, et tout autre membre est transmis sans modification. Claude Code supprime l'une ou l'autre clé lorsque la valeur est mal formée, et omet `_meta` pour un outil qui ne déclare ni l'une ni l'autre. Le champ n'est présent que lorsque les [`capabilities`](#sdksystemmessage) du message d'initialisation incluent `mcp_tool_ui_meta_v1`, et nécessite l'Agent SDK TypeScript v0.3.280 ou version ultérieure.5224Lorsqu'il ne reste à Claude Code aucun membre `ui` ni aucune chaîne `ui/resourceUri` à envoyer, l'entrée `tools` n'a aucun `_meta`.

5082 5225 

5083### `McpServerStatusConfig`5226### `McpServerStatusConfig`

5084 5227 


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

5314 5457 

5315* **Serveurs que l'appel ne nomme pas** : en dehors d'une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), Claude Code déconnecte les serveurs ajoutés par un appel `setMcpServers()` antérieur ainsi que les serveurs SDK in-process, et les répertorie dans `removed`. Les autres serveurs continuent de fonctionner et ne sont pas répertoriés dans `removed`, parmi lesquels les serveurs stdio, HTTP et SSE de l'option [`mcpServers`](#options), les serveurs issus des fichiers de paramètres et les serveurs fournis par des plugins.5458* **Serveurs que l'appel ne nomme pas** : en dehors d'une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), Claude Code déconnecte les serveurs ajoutés par un appel `setMcpServers()` antérieur ainsi que les serveurs SDK in-process, et les répertorie dans `removed`. Les autres serveurs continuent de fonctionner et ne sont pas répertoriés dans `removed`, parmi lesquels les serveurs stdio, HTTP et SSE de l'option [`mcpServers`](#options), les serveurs issus des fichiers de paramètres et les serveurs fournis par des plugins.

5316* **Serveurs que l'appel nomme** : Claude Code remplace un serveur stdio, HTTP ou SSE ajouté par un appel `setMcpServers()` antérieur uniquement lorsque sa configuration diffère de celle que vous avez transmise. Un serveur SDK in-process déjà enregistré sous ce nom reste tel quel ; pour en remplacer un, omettez-le d'un appel et ajoutez-le dans le suivant.5459* **Serveurs stdio, HTTP et SSE ajoutés par un appel `setMcpServers()` antérieur** : en dehors d'une session cloud, un serveur que vous nommez à nouveau avec une configuration identique conserve sa connexion et ses outils. Il n'apparaît ni dans `added` ni dans `removed`. Si vous transmettez une configuration modifiée, Claude Code reconnecte le serveur avec cette configuration et le répertorie dans `added`, pas dans `removed`.

5460* **Serveurs stdio, HTTP et SSE que l'appel nomme et qu'aucun appel antérieur n'a ajoutés** : en dehors d'une session cloud, Claude Code ajoute le serveur et le répertorie dans `added`, ou dans `errors` s'il refuse le serveur.

5461* **Serveurs SDK in-process que l'appel nomme** : un serveur déjà enregistré via `mcpServers` ou un appel antérieur conserve son instance en cours d'exécution et son délai d'expiration. Si vous transmettez une [liste de politiques `tools`](#mcpsdkserverconfigwithinstance) pour celui-ci, même vide, vous remplacez ses politiques ; sinon, elles restent inchangées. Pour exécuter une nouvelle instance en dehors d'une session cloud, omettez le serveur d'un appel et nommez-le dans le suivant.

5317* **Serveurs intégrés démarrés par la CLI au lancement** : si l'appel en nomme un, Claude Code supprime cette entrée et l'indique dans `errors`.5462* **Serveurs intégrés démarrés par la CLI au lancement** : si l'appel en nomme un, Claude Code supprime cette entrée et l'indique dans `errors`.

5318* **Serveurs stdio, HTTP ou SSE qui portent le même nom qu'un serveur d'une portée d'installation MCP telle que `.mcp.json`** : sous ce nom, la session utilise les outils de votre serveur plutôt que ceux du [serveur de la portée d'installation](https://code.claude.com/docs/fr/mcp.md#mcp-installation-scopes). Avant Claude Code v2.1.305, Claude Code pouvait déconnecter votre serveur et connecter le serveur de la portée d'installation lorsque votre application [rechargeait les plugins](#query-object).5463* **Serveurs stdio, HTTP ou SSE qui portent le même nom qu'un serveur d'une portée d'installation MCP telle que `.mcp.json`** : sous ce nom, la session utilise les outils de votre serveur plutôt que ceux du [serveur de la portée d'installation](https://code.claude.com/docs/fr/mcp.md#mcp-installation-scopes). Avant Claude Code v2.1.305, Claude Code pouvait déconnecter votre serveur et connecter le serveur de la portée d'installation lorsque votre application [rechargeait les plugins](#query-object).

5319 5464 


5800 5945 

5801Les typages publiés du SDK déclarent `SDKConversationResetMessage` dans Claude Code v2.1.203 et versions ultérieures. Avant la v2.1.203, `SDKMessage` référençait le type sans le déclarer ; le rétrécissement de type sur `type === "conversation_reset"` échouait donc à la vérification des types lorsque `skipLibCheck` était désactivé.5946Les typages publiés du SDK déclarent `SDKConversationResetMessage` dans Claude Code v2.1.203 et versions ultérieures. Avant la v2.1.203, `SDKMessage` référençait le type sans le déclarer ; le rétrécissement de type sur `type === "conversation_reset"` échouait donc à la vérification des types lorsque `skipLibCheck` était désactivé.

5802 5947 

5948### `BUILTIN_TOOL_NAMES` et `LEGACY_TOOL_NAME_ALIASES`

5949 

5950Utilisez ces deux constantes pour vérifier les noms d'outils saisis par les utilisateurs de votre application. Toutes deux orthographient chaque nom de la manière dont vous l'écrivez dans les règles de permission, les matchers de hooks et les options `tools` et `disallowedTools`. Importez-les depuis `@anthropic-ai/claude-agent-sdk` ou depuis `@anthropic-ai/claude-agent-sdk/core`. Elles nécessitent l'Agent SDK v0.3.301 ou version ultérieure et sont en version alpha.

5951 

5952Les déclarations de types du SDK attribuent à `BUILTIN_TOOL_NAMES` un type tuple en lecture seule et à `LEGACY_TOOL_NAME_ALIASES` un type record de chaîne à chaîne :

5953 

5954```typescript theme={null}

5955const BUILTIN_TOOL_NAMES: readonly ["Agent", /* ...more names... */ "Write"];

5956const LEGACY_TOOL_NAME_ALIASES: Readonly<Record<string, string>>;

5957```

5958 

5959* **`BUILTIN_TOOL_NAMES`** : les noms des outils intégrés de Claude Code par ordre alphabétique, comme `Agent`, `Bash` et `Read`. Les noms d'outils MCP ne sont pas inclus. Comme le type est un tuple de littéraux de chaîne, `(typeof BUILTIN_TOOL_NAMES)[number]` vous donne un type union des noms

5960* **`LEGACY_TOOL_NAME_ALIASES`** : les anciens noms d'outils que les règles de permission, les matchers de hooks et les options `tools` et `disallowedTools` acceptent toujours. Chaque clé est un ancien nom et sa valeur est le nom actuel : par exemple, `Task` correspond à `Agent`, et `KillShell` et `KillBash` correspondent à `TaskStop`

5961 

5962Vous pouvez confirmer un nom avec l'un ou l'autre de deux tests : `BUILTIN_TOOL_NAMES` l'inclut, ou `Object.hasOwn(LEGACY_TOOL_NAME_ALIASES, name)` renvoie `true`. Un nom qui échoue aux deux peut tout de même être valide, car `BUILTIN_TOOL_NAMES` omet les outils MCP et certains outils intégrés. Si vous construisez une liste de refus à partir de `BUILTIN_TOOL_NAMES`, Claude peut toujours utiliser les outils que la constante omet. Pour refuser tous les outils, définissez plutôt [`disallowedTools: ["*"]`](https://code.claude.com/docs/fr/agent-sdk/permissions#allow-and-deny-rules).

5963 

5964Trouver un nom dans `BUILTIN_TOOL_NAMES` ne vous indique pas que la session dispose de cet outil : `TodoWrite` est répertorié bien qu'il soit [désactivé par défaut](https://code.claude.com/docs/fr/tools-reference.md). Pour savoir de quels outils dispose une session, lisez le tableau `tools` de son [`SDKSystemMessage`](#sdksystemmessage). Ce tableau inclut les outils MCP et répertorie l'outil Agent sous le nom `Task` ; faites donc correspondre chaque nom via `LEGACY_TOOL_NAME_ALIASES` avant de le comparer à `BUILTIN_TOOL_NAMES`.

5965 

5803### `AbortError`5966### `AbortError`

5804 5967 

5805Classe d'erreur personnalisée pour les opérations d'abandon.5968Classe d'erreur personnalisée pour les opérations d'abandon.

agent-teams.md +1 −1

Details

188 188 

189### Assigner et revendiquer des tâches189### Assigner et revendiquer des tâches

190 190 

191La liste de tâches partagée coordonne le travail dans l'équipe. Le chef crée des tâches et les coéquipiers les accomplissent. Les tâches ont trois états : en attente, en cours et terminées. Les tâches peuvent également dépendre d'autres tâches : une tâche en attente avec des dépendances non résolues ne peut pas être revendiquée jusqu'à ce que ces dépendances soient complétées.191La liste de tâches partagée coordonne le travail dans l'équipe. Le chef crée des tâches et les coéquipiers les accomplissent. Les tâches ont trois états : en attente, en cours et terminées. Une tâche peut également dépendre d'autres tâches ; elle apparaît alors comme bloquée dans la liste des tâches jusqu'à ce que celles-ci soient terminées. Les coéquipiers ne revendiquent pas d'eux-mêmes une tâche bloquée, mais vous ou le chef pouvez toujours l'assigner.

192 192 

193Les agents [sans les outils Task](https://code.claude.com/docs/fr/tools-reference.md#task-tool-availability) se coordonnent par des messages à la place de la liste de tâches partagée.193Les agents [sans les outils Task](https://code.claude.com/docs/fr/tools-reference.md#task-tool-availability) se coordonnent par des messages à la place de la liste de tâches partagée.

194 194 

agent-view.md +18 −9

Details

206* Une session terminée : son résultat206* Une session terminée : son résultat

207* Une session en cours de travail : sa phrase d'état complète207* Une session en cours de travail : sa phrase d'état complète

208 208 

209Toutes les pull requests liées à la session sont répertoriées ensuite. Pour une session qui vous attend, une ligne comme `waiting 3m` en dessous indique depuis combien de temps elle attend, et c'est la seule durée affichée dans le panneau. L'ancienneté au bord droit de la ligne est un nombre différent : elle compte à partir du moment où la session a démarré.209Toutes les pull requests liées à la session sont répertoriées ensuite. Une ligne supplémentaire apparaît en dessous pour une session qui vous attend ou qui s'exécute en mode sans échec :

210 

211* Une ligne comme `waiting 3m` : depuis combien de temps la session vous attend. L'ancienneté au bord droit de la ligne est un nombre différent : elle compte à partir du moment où la session a démarré

212* `safe mode · customizations are off` : cette session s'exécute avec [vos personnalisations désactivées](https://code.claude.com/docs/fr/debug-your-config.md#test-against-a-clean-configuration) car vous l'avez démarrée depuis votre shell avec `claude --bg --safe-mode`. Vous pouvez la laisser telle quelle. Pour poursuivre la conversation avec vos personnalisations réactivées, exécutez [`claude stop <id>`](#manage-sessions-from-the-shell) puis [`claude --resume`](https://code.claude.com/docs/fr/sessions#resume-a-session), tous deux dans votre shell

210 213 

211La plupart du temps, le panneau d'aperçu suffit et vous n'avez pas besoin d'ouvrir la transcription complète.214La plupart du temps, le panneau d'aperçu suffit et vous n'avez pas besoin d'ouvrir la transcription complète.

212 215 


468 471 

469#### Ce qui est transféré quand vous mettez en arrière-plan472#### Ce qui est transféré quand vous mettez en arrière-plan

470 473 

471La mise en arrière-plan démarre un nouveau processus qui reprend à partir de la conversation enregistrée, et le travail en arrière-plan en cours y est transféré. Les commandes shell en arrière-plan en cours d'exécution, les sous-agents mis en arrière-plan, les workflows dynamiques, les tâches planifiées que vous avez créées avec [`/loop`](https://code.claude.com/docs/fr/scheduled-tasks), et les [réponses automatiques de Claude aux commentaires d'artefacts](https://code.claude.com/docs/fr/artifacts.md#let-claude-reply-to-comments-on-its-own) sont tous transférés et continuent de s'y exécuter. Un sous-agent se déplace avec tout ce qu'il a démarré, donc il n'est transféré que lorsque tout ce travail peut aussi être déplacé.474Quand vous mettez la session en arrière-plan, chaque type de travail en arrière-plan en cours est soit transféré à la session en arrière-plan, soit poursuivi uniquement lorsque Claude le relance à cet endroit, soit arrêté :

472 

473Quand un [workflow dynamique](https://code.claude.com/docs/fr/workflows.md) a encore des sous-agents en cours d'exécution, Claude Code demande confirmation avant la mise en arrière-plan avec la boîte de dialogue `Background this session?`, qui indique combien de sous-agents redémarreraient. Choisissez `Stay` pour les laisser terminer d'abord. Si vous confirmez, Claude Code rejoue l'exécution dans la session en arrière-plan : les sous-agents qui s'exécutaient encore recommencent depuis le début, donc les tokens qu'ils ont utilisés jusqu'à présent sont dépensés à nouveau. Voir [Reprendre après une pause](https://code.claude.com/docs/fr/workflows.md#resume-after-a-pause) pour savoir quels sous-agents terminés renvoient leurs résultats enregistrés et lesquels s'exécutent à nouveau.

474 475 

475Claude Code arrête le travail en arrière-plan qui ne peut pas être transféré, comme un [monitor](https://code.claude.com/docs/fr/tools-reference.md#monitor-tool) en cours d'exécution, et arrête avec lui un sous-agent mis en arrière-plan qui possède un monitor. Quand un tel travail est en cours, Claude Code affiche la boîte de dialogue `Background this session?` pour que vous puissiez confirmer avant qu'il n'arrête le travail.476* **Transféré** : les commandes shell en arrière-plan en cours d'exécution, les sous-agents mis en arrière-plan, les tâches planifiées que vous avez créées avec [`/loop`](https://code.claude.com/docs/fr/scheduled-tasks), et les [réponses automatiques de Claude aux commentaires d'artefacts](https://code.claude.com/docs/fr/artifacts.md#let-claude-reply-to-comments-on-its-own) continuent de s'exécuter dans la session en arrière-plan. Un sous-agent se déplace avec tout ce qu'il a démarré, donc il n'est transféré que lorsque tout ce travail peut aussi être déplacé.

477* **Poursuivi uniquement si Claude le relance** : un [workflow dynamique](https://code.claude.com/docs/fr/workflows.md) en cours d'exécution. Si le workflow n'a pas continué quand vous consultez la session en arrière-plan, [demandez à Claude de le relancer](#dynamic-workflows-when-you-background).

478* **Arrêté** : le travail qui ne peut pas être déplacé vers la session en arrière-plan, comme un [monitor](https://code.claude.com/docs/fr/tools-reference.md#monitor-tool) en cours d'exécution. Quand un tel travail est en cours, Claude Code affiche la boîte de dialogue `Background this session?` pour que vous puissiez confirmer avant qu'il n'arrête le travail. Un sous-agent mis en arrière-plan qui possède un monitor s'arrête avec le monitor.

476 479 

477Une fois en arrière-plan, la session peut démarrer de nouveaux sous-agents, monitors et commandes en arrière-plan, et ceux-ci continuent de s'exécuter lors des détachements et rattachements ultérieurs.480Une fois en arrière-plan, la session peut démarrer de nouveaux sous-agents, monitors et commandes en arrière-plan, et ceux-ci continuent de s'exécuter lors des détachements et rattachements ultérieurs.

478 481 


488 491 

489Les répertoires que vous avez ajoutés pendant la session avec [`/add-dir`](https://code.claude.com/docs/fr/permissions#additional-directories-grant-file-access-not-configuration) sont également reportés. Reporter `--allow-dangerously-skip-permissions` maintient `bypassPermissions` accessible dans la session mise en arrière-plan, mais n'accorde rien de nouveau : le mode nécessite toujours que votre [acceptation de l'avertissement de contournement](https://code.claude.com/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) soit enregistrée.492Les répertoires que vous avez ajoutés pendant la session avec [`/add-dir`](https://code.claude.com/docs/fr/permissions#additional-directories-grant-file-access-not-configuration) sont également reportés. Reporter `--allow-dangerously-skip-permissions` maintient `bypassPermissions` accessible dans la session mise en arrière-plan, mais n'accorde rien de nouveau : le mode nécessite toujours que votre [acceptation de l'avertissement de contournement](https://code.claude.com/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) soit enregistrée.

490 493 

494##### Workflows dynamiques lors de la mise en arrière-plan

495 

496Si un [workflow dynamique](https://code.claude.com/docs/fr/workflows.md) n'a pas continué après la mise en arrière-plan de sa session, demandez à Claude de [relancer le workflow](https://code.claude.com/docs/fr/workflows.md#resume-after-you-leave-the-session). L'exécution ne se poursuit que lorsque Claude la relance dans la session en arrière-plan, et Claude Code peut d'abord vous demander d'approuver cette relance. La conversation de la session affiche un avis indiquant que le workflow `could not be resumed`.

497 

498Quand Claude relance le workflow, tous ses sous-agents qui s'exécutaient encore lorsque vous avez mis la session en arrière-plan recommencent depuis le début et dépensent à nouveau leurs tokens. Si vous appuyez sur `←` ou exécutez `/background` alors que certains s'exécutent encore, la boîte de dialogue `Background this session?` indique combien. Pour les laisser terminer d'abord, choisissez `Stay`.

499 

491### Lancer un agent à partir de votre shell500### Lancer un agent à partir de votre shell

492 501 

493Passez `--bg` ou sa forme longue `--background` pour démarrer une session qui passe directement en arrière-plan :502Passez `--bg` ou sa forme longue `--background` pour démarrer une session qui passe directement en arrière-plan :


844* **Après une mise à jour automatique** : le superviseur redémarre lui-même sur la nouvelle version et déplace les sessions inactives en arrière-plan. Les sessions qui fonctionnent, qui attendent votre entrée, ou qui sont attachées ne sont pas interrompues.853* **Après une mise à jour automatique** : le superviseur redémarre lui-même sur la nouvelle version et déplace les sessions inactives en arrière-plan. Les sessions qui fonctionnent, qui attendent votre entrée, ou qui sont attachées ne sont pas interrompues.

845* **Le superviseur lui-même s'arrête**, par exemple parce que son processus a été terminé depuis l'extérieur de Claude Code : sur macOS et Linux, vos sessions s'arrêtent à moins qu'un nouveau superviseur ne se connecte dans un délai d'environ une minute. Pour en démarrer un, exécutez `claude agents` dans votre shell. Une fois cette minute écoulée, voir [Garder les sessions en cours d'exécution après l'arrêt du superviseur](#keep-sessions-running-after-the-supervisor-stops).854* **Le superviseur lui-même s'arrête**, par exemple parce que son processus a été terminé depuis l'extérieur de Claude Code : sur macOS et Linux, vos sessions s'arrêtent à moins qu'un nouveau superviseur ne se connecte dans un délai d'environ une minute. Pour en démarrer un, exécutez `claude agents` dans votre shell. Une fois cette minute écoulée, voir [Garder les sessions en cours d'exécution après l'arrêt du superviseur](#keep-sessions-running-after-the-supervisor-stops).

846 855 

847Quand le processus d'une session s'arrête ou redémarre, les commandes shell en arrière-plan, les workflows dynamiques et les sous-agents en arrière-plan que Claude a démarrés dedans se reportent à son processus suivant ; les monitors en cours d'exécution et les commandes shell qu'un sous-agent a démarrées s'arrêtent avec le processus. Supprimer la session arrête tout ce qu'elle a reporté. Pour arrêter tout cela avec le processus à la place, définissez [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](https://code.claude.com/docs/fr/env-vars#variables) à `1`.856Quand le processus d'une session s'arrête ou redémarre, les commandes shell en arrière-plan et les sous-agents en arrière-plan que Claude a démarrés dedans se reportent à son processus suivant. Un workflow dynamique [ne continue que lorsque Claude le relance](#dynamic-workflows-when-you-background). Les monitors en cours d'exécution et les commandes shell qu'un sous-agent a démarrées s'arrêtent avec le processus. Si vous supprimez la session, tout ce qu'elle a reporté s'arrête. Pour arrêter tout cela avec le processus à la place, définissez [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](https://code.claude.com/docs/fr/env-vars#variables) à `1`.

848 857 

849Le superviseur et ses sessions s'authentifient avec les mêmes identifiants stockés que vos sessions interactives. Pour savoir quels paramètres et variables shell atteignent une session, y compris `PATH`, voir [Paramètres et fournisseur](#settings-and-provider). Pour les endpoints de passerelle, voir [Passerelle LLM](#llm-gateway).858Le superviseur et ses sessions s'authentifient avec les mêmes identifiants stockés que vos sessions interactives. Pour savoir quels paramètres et variables shell atteignent une session, y compris `PATH`, voir [Paramètres et fournisseur](#settings-and-provider). Pour les endpoints de passerelle, voir [Passerelle LLM](#llm-gateway).

850 859 


897 906 

898### Le backgrounding affiche une boîte de dialogue `Background this session?`907### Le backgrounding affiche une boîte de dialogue `Background this session?`

899 908 

900Si vous appuyez sur `←` pour mettre en arrière-plan la session actuelle et que Claude Code affiche une boîte de dialogue `Background this session?`, la session a du travail en arrière-plan en cours que la mise en arrière-plan arrêterait, redémarrerait ou laisserait s'exécuter sans surveillance, et Claude Code demande avant de faire l'une de ces actions :909Quand vous appuyez sur `←` pour mettre une session en arrière-plan, une boîte de dialogue `Background this session?` signifie que la session a du travail en arrière-plan en cours qui s'arrêterait, serait interrompu ou continuerait de s'exécuter sans surveillance :

901 910 

902* **Travail qui ne peut pas être déplacé** : la session a du travail qui ne peut pas être déplacé vers la session en arrière-plan, comme un [monitor](https://code.claude.com/docs/fr/tools-reference.md#monitor-tool) en cours d'exécution. La boîte de dialogue nomme le travail en arrière-plan que Claude Code arrêterait et, séparément, compte les tâches qui sont transférées.911* **Travail qui ne peut pas être déplacé** : la session a du travail qui ne peut pas être déplacé vers la session en arrière-plan, comme un [monitor](https://code.claude.com/docs/fr/tools-reference.md#monitor-tool) en cours d'exécution. La boîte de dialogue nomme le travail en arrière-plan que Claude Code arrêterait et, séparément, compte les tâches qui sont transférées.

903* **Un workflow avec des sous-agents en cours d'exécution** : un [workflow dynamique](https://code.claude.com/docs/fr/workflows.md) a toujours des sous-agents en cours d'exécution. Le workflow lui-même est transféré, mais ses sous-agents en cours d'exécution redémarrent depuis le début, et la boîte de dialogue indique combien.912* **Un workflow avec des sous-agents en cours d'exécution** : un [workflow dynamique](https://code.claude.com/docs/fr/workflows.md) a toujours des sous-agents en cours d'exécution. Ces sous-agents s'arrêtent si vous mettez tout de même la session en arrière-plan, et la boîte de dialogue indique combien. Ils recommencent depuis le début quand Claude [relance le workflow dans la session en arrière-plan](#dynamic-workflows-when-you-background).

904* **Réponses automatiques aux artefacts** : Claude [répond aux commentaires sur un artefact de sa propre initiative](https://code.claude.com/docs/fr/artifacts.md#let-claude-reply-to-comments-on-its-own). Ces réponses continuent dans la session en arrière-plan, et la boîte de dialogue le dit.913* **Réponses automatiques aux artefacts** : Claude [répond aux commentaires sur un artefact de sa propre initiative](https://code.claude.com/docs/fr/artifacts.md#let-claude-reply-to-comments-on-its-own). Ces réponses continuent dans la session en arrière-plan, et la boîte de dialogue le dit.

905 914 

906Exécutez `/tasks` pour voir tout ce qui s'exécute, puis confirmez pour mettre en arrière-plan de toute façon ou choisissez `Stay` pour laisser le travail se terminer d'abord. Consultez [Ce qui est transféré lors de la mise en arrière-plan](#what-carries-over-when-you-background) pour savoir quels types de travail sont transférés et lesquels Claude Code arrête.915Exécutez `/tasks` pour voir tout ce qui s'exécute, puis confirmez pour mettre en arrière-plan de toute façon ou choisissez `Stay` pour laisser le travail se terminer d'abord. Consultez [Ce qui est transféré lors de la mise en arrière-plan](#what-carries-over-when-you-background) pour savoir quels types de travail sont transférés et lesquels Claude Code arrête.


1118| v2.1.200 | Une version plus ancienne de Claude Code qui réécrit la liste de sessions dans `roster.json` préserve les champs écrits par une version plus récente, conformément à la garantie `state.json` existante, de sorte que les sessions démarrées par la version plus récente continuent d'accepter l'entrée après le redémarrage du superviseur. Quand vous ouvrez une session qui a cessé de répondre, le superviseur redémarre son processus et la session continue la réponse interrompue là où elle s'était arrêtée. La vue agent applique un flag `--plugin-dir` placé après `agents` à sa propre autocomplétion de sous-agents et de skills dans l'entrée de dispatch ainsi qu'aux sessions dispatchées. |1127| v2.1.200 | Une version plus ancienne de Claude Code qui réécrit la liste de sessions dans `roster.json` préserve les champs écrits par une version plus récente, conformément à la garantie `state.json` existante, de sorte que les sessions démarrées par la version plus récente continuent d'accepter l'entrée après le redémarrage du superviseur. Quand vous ouvrez une session qui a cessé de répondre, le superviseur redémarre son processus et la session continue la réponse interrompue là où elle s'était arrêtée. La vue agent applique un flag `--plugin-dir` placé après `agents` à sa propre autocomplétion de sous-agents et de skills dans l'entrée de dispatch ainsi qu'aux sessions dispatchées. |

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

1120| v2.1.198 | La vue agent envoie une notification via `preferredNotifChannel` quand une session en arrière-plan a besoin d'une entrée, se termine ou échoue, et déclenche le hook `Notification` avec le type `agent_needs_input` ou `agent_completed`. `←` et `/exit` à l'intérieur de `claude attach <id>` reviennent à la vue agent au lieu de quitter vers le shell ; `Ctrl+Z` revient au shell. Une session en arrière-plan qui a isolé son travail dans un worktree crée un commit, pousse sa propre branche isolée, jamais `main` ou `master`, et ouvre une pull request en brouillon quand elle se termine au lieu de demander d'abord. `/login` s'exécute dans la vue agent et ouvre la boîte de dialogue de connexion. La boîte de dialogue de sortie `Background work is running` propose `Move to background and exit`. Le transfert à la sortie couvre également les sous-agents en arrière-plan, qui reprennent à partir de leur transcription au prochain réveil au lieu d'être signalés comme échoués. `claude --bg` combiné avec `-p` ou `--print` est rejeté avec une erreur. L'hôte de session en arrière-plan demande la permission de réseau local macOS au premier accès au LAN au lieu d'échouer avec `connect: no route to host`. |1129| v2.1.198 | La vue agent envoie une notification via `preferredNotifChannel` quand une session en arrière-plan a besoin d'une entrée, se termine ou échoue, et déclenche le hook `Notification` avec le type `agent_needs_input` ou `agent_completed`. `←` et `/exit` à l'intérieur de `claude attach <id>` reviennent à la vue agent au lieu de quitter vers le shell ; `Ctrl+Z` revient au shell. Une session en arrière-plan qui a isolé son travail dans un worktree crée un commit, pousse sa propre branche isolée, jamais `main` ou `master`, et ouvre une pull request en brouillon quand elle se termine au lieu de demander d'abord. `/login` s'exécute dans la vue agent et ouvre la boîte de dialogue de connexion. La boîte de dialogue de sortie `Background work is running` propose `Move to background and exit`. Le transfert à la sortie couvre également les sous-agents en arrière-plan, qui reprennent à partir de leur transcription au prochain réveil au lieu d'être signalés comme échoués. `claude --bg` combiné avec `-p` ou `--print` est rejeté avec une erreur. L'hôte de session en arrière-plan demande la permission de réseau local macOS au premier accès au LAN au lieu d'échouer avec `connect: no route to host`. |

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

1122| v2.1.195 | Le travail en arrière-plan en cours est aussi transféré quand vous mettez en arrière-plan une session sur Windows. Le groupe `Completed` remplit l'espace vertical restant et l'en-tête se compacte sur les terminaux de faible hauteur. Une version plus ancienne de Claude Code ne supprime plus les champs `state.json` des sessions plus récentes et ne cache plus ces sessions de `claude agents`. S'attacher à une session arrêtée bascule immédiatement au lieu d'afficher un écran vide pendant jusqu'à cinq secondes. Un superviseur qui ne peut pas accepter les connexions quitte et libère son verrou de lui-même. |1131| v2.1.195 | Le travail en arrière-plan en cours est aussi transféré quand vous mettez en arrière-plan une session sur Windows. Le groupe `Completed` remplit l'espace vertical restant et l'en-tête se compacte sur les terminaux de faible hauteur. Une version plus ancienne de Claude Code ne supprime plus les champs `state.json` des sessions plus récentes et ne cache plus ces sessions de `claude agents`. S'attacher à une session arrêtée bascule immédiatement au lieu d'afficher un écran vide pendant jusqu'à cinq secondes. Un superviseur qui ne peut pas accepter les connexions quitte et libère son verrou de lui-même. |

1123| v2.1.191 | `claude --bg` avec un nom `--agent` qui ne correspond à aucun de vos sous-agents fait échouer le lancement : la session quitte immédiatement avec une erreur `--agent '<name>' not found` au lieu de s'exécuter avec l'agent par défaut. |1132| v2.1.191 | `claude --bg` avec un nom `--agent` qui ne correspond à aucun de vos sous-agents fait échouer le lancement : la session quitte immédiatement avec une erreur `--agent '<name>' not found` au lieu de s'exécuter avec l'agent par défaut. |

1124| v2.1.174 | Les sessions en arrière-plan n'héritent plus des variables d'endpoint de passerelle comme `ANTHROPIC_BASE_URL` du shell de lancement du superviseur ; le superviseur fournit un nouvel instantané d'identifiants aux workers préchauffés, corrigeant les erreurs `Could not resolve authentication method` intempestives. |1133| v2.1.174 | Les sessions en arrière-plan n'héritent plus des variables d'endpoint de passerelle comme `ANTHROPIC_BASE_URL` du shell de lancement du superviseur ; le superviseur fournit un nouvel instantané d'identifiants aux workers préchauffés, corrigeant les erreurs `Could not resolve authentication method` intempestives. |

Details

927 927 

928Lorsque vous basculez, supprimez toute ligne `serve_to_desktop` dans la même modification que celle qui renomme les blocs. Lorsqu'une instruction mentionne le bloc `cli`, utilisez votre bloc `code`.928Lorsque vous basculez, supprimez toute ligne `serve_to_desktop` dans la même modification que celle qui renomme les blocs. Lorsqu'une instruction mentionne le bloc `cli`, utilisez votre bloc `code`.

929 929 

930`serve_to_desktop: true` est une méthode historique pour proposer les paramètres `cli` d'une politique à l'onglet Code. Elle n'a aucun effet lorsque Claude Desktop se connecte via [`bootstrapUrl`](#claude-desktop-overlay). Tant que vos politiques utilisent `cli`, un avertissement au démarrage qui nomme cette clé signifie que ces paramètres n'atteignent pas l'onglet Code :

931 

932* **Pour couvrir l'onglet Code** : passez à `code`, une fois que les machines des utilisateurs remplissent les conditions décrites dans [Appliquer les paramètres `code` dans l'onglet Code](#apply-code-settings-in-the-code-tab)

933* **Pour rester sur `cli`** : définissez `serve_to_desktop: false` à côté de `cli` dans une politique pour faire taire l'avertissement

934 

930#### Ce qui va dans `cli`935#### Ce qui va dans `cli`

931 936 

932Chaque valeur `code` ou `cli` est un document `managed-settings.json` complet de Claude Code, suivant le même schéma que celui que vous déploieriez via MDM ou `/etc/claude-code/managed-settings.json`, exprimé ici en YAML. La CLI applique le document reçu au niveau géré, au-dessus des paramètres utilisateur et projet, à la place des paramètres gérés par le serveur. Elle ignore donc les paramètres [réservés aux sources de politique au niveau de l'OS](https://code.claude.com/docs/fr/server-managed-settings.md#current-limitations), tels que `policyHelper` et `wslInheritsWindowsSettings`.937Chaque valeur `code` ou `cli` est un document `managed-settings.json` complet de Claude Code, suivant le même schéma que celui que vous déploieriez via MDM ou `/etc/claude-code/managed-settings.json`, exprimé ici en YAML. La CLI applique le document reçu au niveau géré, au-dessus des paramètres utilisateur et projet, à la place des paramètres gérés par le serveur. Elle ignore donc les paramètres [réservés aux sources de politique au niveau de l'OS](https://code.claude.com/docs/fr/server-managed-settings.md#current-limitations), tels que `policyHelper` et `wslInheritsWindowsSettings`.


974| - | - | - |979| - | - | - |

975| `availableModels` | Passerelle + CLI | Liste d'autorisation des modèles. Également vérifiée à `/v1/messages`, afin qu'un client modifié ne puisse pas la contourner. |980| `availableModels` | Passerelle + CLI | Liste d'autorisation des modèles. Également vérifiée à `/v1/messages`, afin qu'un client modifié ne puisse pas la contourner. |

976| [`deniedModels`](https://code.claude.com/docs/fr/settings-reference#deniedmodels), [`availableModelsMatch`](https://code.claude.com/docs/fr/settings-reference#availablemodelsmatch) | Passerelle + CLI | [Bloquer des modèles ou des versions spécifiques](https://code.claude.com/docs/fr/model-config.md#block-specific-models-or-versions) que `availableModels` autoriserait sinon. Un modèle bloqué est rejeté avec un `400` sur `/v1/messages` et est exclu de `/v1/models`. La vérification propre à la passerelle nécessite Claude Code v2.1.299 ou ultérieure sur le serveur de passerelle. La vérification du CLI nécessite la v2.1.283 ou ultérieure sur les clients, et les clients antérieurs ignorent les deux clés. |981| [`deniedModels`](https://code.claude.com/docs/fr/settings-reference#deniedmodels), [`availableModelsMatch`](https://code.claude.com/docs/fr/settings-reference#availablemodelsmatch) | Passerelle + CLI | [Bloquer des modèles ou des versions spécifiques](https://code.claude.com/docs/fr/model-config.md#block-specific-models-or-versions) que `availableModels` autoriserait sinon. Un modèle bloqué est rejeté avec un `400` sur `/v1/messages` et est exclu de `/v1/models`. La vérification propre à la passerelle nécessite Claude Code v2.1.299 ou ultérieure sur le serveur de passerelle. La vérification du CLI nécessite la v2.1.283 ou ultérieure sur les clients, et les clients antérieurs ignorent les deux clés. |

977| `permissions.allow` / `.deny` | CLI | Règles d'outils et de commandes. Consultez [Permissions](https://code.claude.com/docs/fr/permissions.md). |982| `permissions.allow` / `.deny` | CLI | Règles relatives aux outils et aux commandes. Consultez [Permissions](https://code.claude.com/docs/fr/permissions.md) et [ce qu'une règle Bash ne couvre pas](https://code.claude.com/docs/fr/permissions.md#bash-rule-limits). |

978| `permissions.disableBypassPermissionsMode` | CLI | Définissez à `disable` pour bloquer [`bypassPermissions`](https://code.claude.com/docs/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode), le mode qui ignore les demandes de permission, et le flag `--dangerously-skip-permissions` |983| `permissions.disableBypassPermissionsMode` | CLI | Définissez à `disable` pour bloquer [`bypassPermissions`](https://code.claude.com/docs/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode), le mode qui ignore les demandes de permission, et le flag `--dangerously-skip-permissions` |

979| `allowManagedPermissionRulesOnly` | CLI | Lorsque `true`, les paramètres gérés deviennent la seule source de paramètres des règles de permission. L'entrée [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/fr/settings-reference#allowmanagedpermissionrulesonly) liste chaque source que Claude Code ignore alors. |984| `allowManagedPermissionRulesOnly` | CLI | Lorsque `true`, les paramètres gérés deviennent la seule source de paramètres des règles de permission. L'entrée [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/fr/settings-reference#allowmanagedpermissionrulesonly) liste chaque source que Claude Code ignore alors. |

980| `env` | CLI | Variables d'environnement fusionnées dans le processus CLI. Utilisez-les pour la télémétrie, la mise à jour automatique et les remplacements de noms de modèles. |985| `env` | CLI | Variables d'environnement fusionnées dans le processus CLI. Utilisez-les pour la télémétrie, la mise à jour automatique et les remplacements de noms de modèles. |


1003 1008 

1004La clé `cli` s'appelait `settings` dans les versions antérieures, et la passerelle accepte toujours cette graphie comme alias. Pour les nouveaux déploiements, utilisez [`code`](#choose-cli-or-code).1009La clé `cli` s'appelait `settings` dans les versions antérieures, et la passerelle accepte toujours cette graphie comme alias. Pour les nouveaux déploiements, utilisez [`code`](#choose-cli-or-code).

1005 1010 

1011#### Tester une politique avant le déploiement

1012 

1013Pour tester une modification de politique, démarrez la passerelle sur une base de données Postgres jetable. La passerelle se connecte à Postgres et applique ses migrations de schéma avant de vérifier le contenu des blocs `cli`, `code` et `desktop`. Lorsqu'elle ne peut pas joindre la base de données, le démarrage s'arrête sur `could not connect to Postgres` et ne signale rien concernant leur contenu.

1014 

1006#### Fenêtre de contexte dans les sessions de terminal1015#### Fenêtre de contexte dans les sessions de terminal

1007 1016 

1008Les sessions de terminal connectées via `/login` utilisent la fenêtre de contexte de 1M pour Opus 4.7 et ultérieur, Sonnet 5 et ultérieur, ainsi que les modèles Fable. L'ID de modèle n'a besoin d'aucun suffixe `[1m]`, et les sessions se compactent à environ 967K tokens. Avant Claude Code v2.1.287 sur la machine du développeur, Claude Code considérait que les modèles Opus et Fable avaient une fenêtre de 200K, sauf si l'ID de modèle se terminait par `[1m]`.1017Les sessions de terminal connectées via `/login` utilisent la fenêtre de contexte de 1M pour Opus 4.7 et ultérieur, Sonnet 5 et ultérieur, ainsi que les modèles Fable. L'ID de modèle n'a besoin d'aucun suffixe `[1m]`, et les sessions se compactent à environ 967K tokens. Avant Claude Code v2.1.287 sur la machine du développeur, Claude Code considérait que les modèles Opus et Fable avaient une fenêtre de 200K, sauf si l'ID de modèle se terminait par `[1m]`.


1590 # La politique des entrepreneurs hérite de cette clé.1599 # La politique des entrepreneurs hérite de cette clé.

1591 enforceAvailableModels: true1600 enforceAvailableModels: true

1592 permissions:1601 permissions:

1593 allow: [Read, Grep, Bash, Edit]1602 allow: [Read, Grep, Edit]

1594 deny: ["WebFetch"]1603 deny: ["WebFetch"]

1595 env: { HTTP_PROXY: http://proxy.example.com:8080 }1604 env: { HTTP_PROXY: http://proxy.example.com:8080 }

1596 1605 

Details

393| L'écran `/login` d'un développeur affiche le sélecteur de compte standard au lieu de l'écran **Passerelle Cloud** | `forceLoginMethod` ou `forceLoginGatewayUrl` n'est pas défini dans les paramètres gérés sur cette machine | Déployez le [fichier de paramètres gérés](https://code.claude.com/docs/fr/claude-apps-gateway#set-the-gateway-url) sur l'appareil ; `/login` lit l'URL de la passerelle à partir de là |393| L'écran `/login` d'un développeur affiche le sélecteur de compte standard au lieu de l'écran **Passerelle Cloud** | `forceLoginMethod` ou `forceLoginGatewayUrl` n'est pas défini dans les paramètres gérés sur cette machine | Déployez le [fichier de paramètres gérés](https://code.claude.com/docs/fr/claude-apps-gateway#set-the-gateway-url) sur l'appareil ; `/login` lit l'URL de la passerelle à partir de là |

394| Les demandes d'un développeur échouent avec `Not signed in to the Cloud gateway — run /login.` | Les paramètres gérés de la machine définissent `forceLoginMethod: "gateway"` ou `forceLoginGatewayUrl`, et la session n'a pas de connexion à la passerelle. Une connexion claude.ai restante ne satisfait pas à l'exigence. | Demandez au développeur d'exécuter `/login` et de terminer la connexion à la passerelle. Voir aussi [La politique de l'administrateur nécessite une connexion à la passerelle Cloud](https://code.claude.com/docs/fr/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in). |394| Les demandes d'un développeur échouent avec `Not signed in to the Cloud gateway — run /login.` | Les paramètres gérés de la machine définissent `forceLoginMethod: "gateway"` ou `forceLoginGatewayUrl`, et la session n'a pas de connexion à la passerelle. Une connexion claude.ai restante ne satisfait pas à l'exigence. | Demandez au développeur d'exécuter `/login` et de terminer la connexion à la passerelle. Voir aussi [La politique de l'administrateur nécessite une connexion à la passerelle Cloud](https://code.claude.com/docs/fr/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in). |

395| Claude Desktop signale que sa configuration d'amorçage n'a pas pu être récupérée | `/user/bootstrap` a renvoyé 404 : la politique correspondant à l'utilisateur ne porte pas de clé `desktop`, ou aucune politique n'a correspondu. Le journal d'audit de la passerelle enregistre chaque rejet sous la forme `desktop_bootstrap.denied` avec la raison. | Ajoutez un bloc `desktop` à la politique qui correspond à l'utilisateur, ou à la couche de base `match: {}` ; un `desktop: {}` vide suffit. Voir [Superposition Claude Desktop](https://code.claude.com/docs/fr/claude-apps-gateway-config.md#claude-desktop-overlay). |395| Claude Desktop signale que sa configuration d'amorçage n'a pas pu être récupérée | `/user/bootstrap` a renvoyé 404 : la politique correspondant à l'utilisateur ne porte pas de clé `desktop`, ou aucune politique n'a correspondu. Le journal d'audit de la passerelle enregistre chaque rejet sous la forme `desktop_bootstrap.denied` avec la raison. | Ajoutez un bloc `desktop` à la politique qui correspond à l'utilisateur, ou à la couche de base `match: {}` ; un `desktop: {}` vide suffit. Voir [Superposition Claude Desktop](https://code.claude.com/docs/fr/claude-apps-gateway-config.md#claude-desktop-overlay). |

396| Le journal d'audit affiche `auth.denied` avec `reason: invalid_token` sur `/v1/logs` ou `/v1/metrics` | Vous avez défini [`otelHeadersHelper`](https://code.claude.com/docs/fr/settings-reference#otelheadershelper) dans les paramètres gérés d'une machine. Dans une session Claude Desktop sur cette machine, Claude Code envoie l'en-tête `Authorization` provenant du helper au relais de télémétrie de la passerelle à la place du jeton de session. Lorsque Claude Desktop intègre une version de Claude Code antérieure à v2.1.307, vous obtenez le même refus si vous définissez un en-tête `Authorization` dans `OTEL_EXPORTER_OTLP_HEADERS` ou dans une variante par signal dans ces paramètres. | Supprimez le helper de ces paramètres. Lorsque Claude Desktop intègre une version de Claude Code antérieure à v2.1.307, supprimez la variable. |

396| Le démarrage affiche `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | La version de Claude Code installée est antérieure au support de la passerelle | Demandez au développeur de mettre à jour Claude Code vers une version qui inclut le support de la passerelle Cloud |397| Le démarrage affiche `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | La version de Claude Code installée est antérieure au support de la passerelle | Demandez au développeur de mettre à jour Claude Code vers une version qui inclut le support de la passerelle Cloud |

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

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

Details

288 288 

289Les [équipes d'agents](https://code.claude.com/docs/fr/agent-teams.md) sont désactivées par défaut mais peuvent être activées en ajoutant `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` à vos [variables d'environnement](https://code.claude.com/docs/fr/cloud-environments.md#set-environment-variables).289Les [équipes d'agents](https://code.claude.com/docs/fr/agent-teams.md) sont désactivées par défaut mais peuvent être activées en ajoutant `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` à vos [variables d'environnement](https://code.claude.com/docs/fr/cloud-environments.md#set-environment-variables).

290 290 

291### Suggestions de plugins dans la conversation

292 

293Une carte dans la conversation qui répertorie un ou plusieurs [plugins](https://code.claude.com/docs/fr/plugins/overview.md), avec un bouton **Ajouter**, signifie que Claude vous suggère des plugins pour votre tâche. Claude peut faire ces suggestions sans que vous le demandiez. Vous n'êtes pas obligé de répondre, et Claude poursuit la tâche dans tous les cas.

294 

295#### Ajouter ou supprimer un plugin suggéré

296 

297Sélectionnez **Ajouter** sur un plugin pour l'activer sur votre compte claude.ai, où il reste activé après la fin de la session. Pour annuler, ouvrez le plugin ajouté depuis la carte, sélectionnez **Gérer** pour accéder à la page du plugin sur claude.ai, puis supprimez le plugin depuis cette page.

298 

299#### Désactiver les suggestions de plugins

300 

301Pour empêcher Claude de suggérer des plugins, refusez les outils `SearchPlugins` et `SuggestPluginInstall` avec des [règles de permission](https://code.claude.com/docs/fr/permissions.md#manage-permissions). Dans une session avec un seul dépôt en dehors d'un [projet](https://code.claude.com/docs/fr/claude-projects.md), créez un commit des règles dans le fichier `.claude/settings.json` de ce dépôt, en listant les deux noms d'outils sous `permissions.deny` :

302 

303```json theme={null}

304{

305 "permissions": {

306 "deny": ["SearchPlugins", "SuggestPluginInstall"]

307 }

308}

309```

310 

311Claude Code ignore les règles de permission du fichier `.claude/settings.json` du dépôt, y compris ces règles de refus, lorsque les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md) qui s'appliquent à la session définissent [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/fr/settings-reference#allowmanagedpermissionrulesonly). Dans ce cas, placez plutôt les règles dans ces paramètres gérés. Pour les autres configurations, comme une session avec plusieurs dépôts ou un fil cloud dans un projet, consultez quels [paramètres atteignent une session cloud](https://code.claude.com/docs/fr/settings.md#settings-in-cloud-sessions).

312 

291### Annuler un message en attente313### Annuler un message en attente

292 314 

293Si vous envoyez un message alors que Claude travaille, le message est mis en attente jusqu'à ce que Claude le lise. Pour annuler un message en attente, cliquez sur le ✕ qui s'y trouve. Le texte revient à la boîte de message pour que vous puissiez le modifier ou envoyer quelque chose d'autre.315Si vous envoyez un message alors que Claude travaille, le message est mis en attente jusqu'à ce que Claude le lise. Pour annuler un message en attente, cliquez sur le ✕ qui s'y trouve. Le texte revient à la boîte de message pour que vous puissiez le modifier ou envoyer quelque chose d'autre.

Details

103 103 

104Au-delà de la configuration que vous créez, `~/.claude` contient les données que Claude Code écrit pendant les sessions. Ces fichiers sont en texte brut. Tout ce qui passe par un outil se retrouve dans une transcription sur disque : contenu des fichiers, sortie de commande, texte collé.104Au-delà de la configuration que vous créez, `~/.claude` contient les données que Claude Code écrit pendant les sessions. Ces fichiers sont en texte brut. Tout ce qui passe par un outil se retrouve dans une transcription sur disque : contenu des fichiers, sortie de commande, texte collé.

105 105 

106La transcription peut également contenir ce que Claude Code envoie au modèle avec vos messages :

107 

108* Le prompt système

109* Les définitions d'outils

110* Les paramètres de requête

111* Les fichiers d'instructions qu'il a chargés, comme CLAUDE.md

112 

106### Nettoyés automatiquement113### Nettoyés automatiquement

107 114 

108Claude Code supprime les fichiers dans les chemins ci-dessous une fois qu'ils sont plus anciens que [`cleanupPeriodDays`](https://code.claude.com/docs/fr/settings-reference#cleanupperioddays), tant qu'il peut déterminer en toute sécurité la période de rétention. La valeur par défaut est 30 jours et le minimum est 1 ; définir `0` échoue avec une erreur de validation. Le même seuil d'âge s'applique à la suppression automatique des [worktrees orphelins](https://code.claude.com/docs/fr/worktrees.md#clean-up-subagent-and-background-session-worktrees).115Claude Code supprime les fichiers dans les chemins ci-dessous une fois qu'ils sont plus anciens que [`cleanupPeriodDays`](https://code.claude.com/docs/fr/settings-reference#cleanupperioddays), tant qu'il peut déterminer en toute sécurité la période de rétention. La valeur par défaut est 30 jours et le minimum est 1 ; définir `0` échoue avec une erreur de validation. Le même seuil d'âge s'applique à la suppression automatique des [worktrees orphelins](https://code.claude.com/docs/fr/worktrees.md#clean-up-subagent-and-background-session-worktrees).

109 116 

110| Chemin sous `~/.claude/` | Contenu |117| Chemin sous `~/.claude/` | Contenu |

111| - | - |118| - | - |

112| `projects/<project>/<session>.jsonl` | Transcription complète de la conversation : chaque message, appel d'outil et résultat d'outil |119| `projects/<project>/<session>.jsonl` | Transcription de la conversation : messages, appels d'outils et résultats d'outils, ainsi que le prompt système, les définitions d'outils et les paramètres des requêtes que Claude Code a envoyées au modèle |

113| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Une transcription précédente de la session que Claude Code a mise de côté au lieu de la remplacer ou de la supprimer. Elle n'apparaît pas dans le sélecteur de session |120| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Une transcription précédente de la session que Claude Code a mise de côté au lieu de la remplacer ou de la supprimer. Elle n'apparaît pas dans le sélecteur de session |

114| `projects/<project>/<session>/subagents/` | Transcriptions de conversation [Subagent](https://code.claude.com/docs/fr/sub-agents.md), supprimées avec la transcription de session parent lorsqu'elle vieillit |121| `projects/<project>/<session>/subagents/` | Transcriptions de [sous-agents](https://code.claude.com/docs/fr/sub-agents.md) au même format que la transcription de session, supprimées avec la transcription de session parent lorsqu'elle atteint la limite d'âge |

115| `projects/<project>/<session>/tool-results/` | Grandes sorties d'outil déversées dans des fichiers séparés, et copies en taille réelle des [images que les outils MCP retournent](https://code.claude.com/docs/fr/mcp.md#images-in-tool-results) |122| `projects/<project>/<session>/tool-results/` | Grandes sorties d'outil déversées dans des fichiers séparés, et copies en taille réelle des [images que les outils MCP retournent](https://code.claude.com/docs/fr/mcp.md#images-in-tool-results) |

116| `projects/<project>/<session>/mcp-tasks/` | Ce dont une session reprise a besoin pour suivre à nouveau ses [tâches MCP](https://code.claude.com/docs/fr/mcp.md#mcp-tasks-that-run-on-the-server) en cours, et les résultats des tâches terminées que Claude n'a pas encore lus |123| `projects/<project>/<session>/mcp-tasks/` | Ce dont une session reprise a besoin pour suivre à nouveau ses [tâches MCP](https://code.claude.com/docs/fr/mcp.md#mcp-tasks-that-run-on-the-server) en cours, et les résultats des tâches terminées que Claude n'a pas encore lus |

117| `file-history/<session>/` | Snapshots pré-édition des fichiers que Claude a modifiés, utilisés pour [restauration de checkpoint](https://code.claude.com/docs/fr/checkpointing.md). Contient des snapshots pour les 100 checkpoints les plus récents ; les fichiers snapshot auxquels aucun checkpoint conservé ne fait référence sont supprimés, sauf le premier snapshot de chaque fichier |124| `file-history/<session>/` | Snapshots pré-édition des fichiers que Claude a modifiés, utilisés pour [restauration de checkpoint](https://code.claude.com/docs/fr/checkpointing.md). Contient des snapshots pour les 100 checkpoints les plus récents ; les fichiers snapshot auxquels aucun checkpoint conservé ne fait référence sont supprimés, sauf le premier snapshot de chaque fichier |

Details

6 6 

7> Installez le plugin Claude Security pour analyser votre base de code afin de détecter les vulnérabilités dans une session Claude Code et transformez les résultats en correctifs que vous examinez et appliquez.7> Installez le plugin Claude Security pour analyser votre base de code afin de détecter les vulnérabilités dans une session Claude Code et transformez les résultats en correctifs que vous examinez et appliquez.

8 8 

9Le plugin Claude Security exécute une analyse multi-agents des vulnérabilités de votre base de code dans une session Claude Code. Une équipe d'agents Claude cartographie votre architecture, construit un modèle de menace, recherche les vulnérabilités et examine indépendamment chaque résultat avant de rédiger le rapport. Utilisez le plugin pour analyser un référentiel entier ou [uniquement un ensemble de modifications](#scan-only-your-changes), comme le diff d'une branche, le diff d'une demande de tirage ou un seul commit, puis transformez les résultats que vous choisissez en correctifs que vous examinez et appliquez vous-même.9Le plugin Claude Security exécute une analyse multi-agents des vulnérabilités de votre base de code dans une session Claude Code. [Par défaut](#choose-a-scan-effort), lorsque vous analysez un dépôt entier, des agents Claude cartographient votre architecture, construisent un modèle de menace, recherchent les vulnérabilités et examinent indépendamment chaque résultat avant de rédiger le rapport.

10 

11Utilisez le plugin pour analyser un dépôt entier ou [uniquement un ensemble de modifications](#scan-only-your-changes), comme le diff d'une branche, le diff d'une pull request ou un seul commit, puis transformez les résultats que vous choisissez en correctifs que vous examinez et appliquez vous-même.

10 12 

11Le plugin s'exécute localement dans votre session, utilise [les modèles auxquels vous avez accès dans Claude Code](#models-and-providers), et chaque analyse compte dans votre [utilisation](https://code.claude.com/docs/fr/costs.md). Si vous souhaitez un service géré qui surveille vos dépôts, ou si vous souhaitez exécuter des analyses sur [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consultez le produit [Claude Security](https://claude.com/product/claude-security), disponible sur le plan Enterprise.13Le plugin s'exécute localement dans votre session, utilise [les modèles auxquels vous avez accès dans Claude Code](#models-and-providers), et chaque analyse compte dans votre [utilisation](https://code.claude.com/docs/fr/costs.md). Si vous souhaitez un service géré qui surveille vos dépôts, ou si vous souhaitez exécuter des analyses sur [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consultez le produit [Claude Security](https://claude.com/product/claude-security), disponible sur le plan Enterprise.

12 14 


51 53 

52Une fois le plugin actif, vous êtes prêt à [analyser et corriger votre base de code](#scan-and-fix-your-codebase).54Une fois le plugin actif, vous êtes prêt à [analyser et corriger votre base de code](#scan-and-fix-your-codebase).

53 55 

56### Mettez à jour le plugin

57 

58Pour mettre à jour le plugin vous-même, consultez [Mettre à jour les plugins maintenant](https://code.claude.com/docs/fr/plugins/install.md#update-plugins-now). Claude Code [met également à jour le plugin automatiquement](https://code.claude.com/docs/fr/plugins/install.md#keep-plugins-updated), sauf si la mise à jour automatique est désactivée.

59 

54### Désinstallez le plugin60### Désinstallez le plugin

55 61 

56Pour supprimer le plugin, désinstallez-le à partir du menu `/plugin`, ou exécutez `claude plugin uninstall claude-security` dans votre terminal.62Pour supprimer le plugin, désinstallez-le à partir du menu `/plugin`, ou exécutez `claude plugin uninstall claude-security` dans votre terminal.


95 101 

96Sur un grand référentiel, analysez une zone à la fois au lieu de l'arborescence entière. Choisissez l'une des portées ciblées que le plugin propose, comme votre couche API ou votre code d'authentification, et l'exécution se dimensionne en fonction de ce que vous choisissez. La section de couverture du rapport indique ce qui a été et n'a pas été examiné. Exécutez une autre analyse sur une zone différente à tout moment.102Sur un grand référentiel, analysez une zone à la fois au lieu de l'arborescence entière. Choisissez l'une des portées ciblées que le plugin propose, comme votre couche API ou votre code d'authentification, et l'exécution se dimensionne en fonction de ce que vous choisissez. La section de couverture du rapport indique ce qui a été et n'a pas été examiné. Exécutez une autre analyse sur une zone différente à tout moment.

97 103 

104### Choisissez un effort d'analyse

105 

106L'effort d'analyse définit la profondeur d'une analyse. Vos résultats passent par la même vérification indépendante en `low`, `medium` et `high`.

107 

108* **`low`** : un premier aperçu rapide. Il ignore la cartographie de l'architecture et le modèle de menaces lorsque vous analysez votre base de code.

109* **`medium`** : la valeur par défaut.

110* **`high`** : ce que fait `medium`, plus une recherche supplémentaire de vulnérabilités dans le même code.

111 

112Indiquez l'effort d'analyse dans votre demande au prompt de Claude Code, comme `/claude-security scan my public API code at high` ou `/claude-security scan my branch at high`.

113 

114Si l'analyse d'un grand dépôt trouve moins que prévu, choisissez l'effort d'analyse `high`, effectuez une seconde analyse, ou faites les deux. Chacune de ces options peut signaler des résultats qu'une seule analyse `medium` ne trouve pas.

115 

98### Lisez les résultats de l'analyse116### Lisez les résultats de l'analyse

99 117 

100Chaque analyse écrit ses résultats dans un répertoire horodaté `CLAUDE-SECURITY-<timestamp>/` dans votre référentiel :118Chaque analyse écrit ses résultats dans un répertoire horodaté `CLAUDE-SECURITY-<timestamp>/` dans votre référentiel :


102* **`CLAUDE-SECURITY-RESULTS.md`** : le rapport, avec l'ID de chaque résultat, comme `F1`, plus son impact, son scénario d'exploitation, sa gravité, sa confiance et sa recommandation120* **`CLAUDE-SECURITY-RESULTS.md`** : le rapport, avec l'ID de chaque résultat, comme `F1`, plus son impact, son scénario d'exploitation, sa gravité, sa confiance et sa recommandation

103* **`CLAUDE-SECURITY-RESULTS.jsonl`** : les mêmes résultats sous forme lisible par machine, un objet JSON par ligne121* **`CLAUDE-SECURITY-RESULTS.jsonl`** : les mêmes résultats sous forme lisible par machine, un objet JSON par ligne

104* **`CLAUDE-SECURITY-RESULTS.sarif`** : les mêmes résultats sous forme de journal [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) pour l'analyse du code GitHub et tout autre outil qui lit la norme. L'analyse classe les résultats selon leurs catégories de faiblesse [CWE](https://cwe.mitre.org/)122* **`CLAUDE-SECURITY-RESULTS.sarif`** : les mêmes résultats sous forme de journal [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) pour l'analyse du code GitHub et tout autre outil qui lit la norme. L'analyse classe les résultats selon leurs catégories de faiblesse [CWE](https://cwe.mitre.org/)

105* **`CLAUDE-SECURITY-REVISION-<commit>.json`** : le tampon de révision, enregistrant quel commit a été analysé, avec quel effort, si les modifications non validées faisaient partie de l'arborescence analysée, et à quel point l'exécution a été vérifiée, de sorte qu'un rapport soit toujours lié au code qu'il décrit. Une analyse en dehors du contrôle de version tamponne `UNVERSIONED` à la place du commit123* **`CLAUDE-SECURITY-REVISION-<commit>.json`** : le tampon de révision, enregistrant quel commit a été analysé, avec quel [effort d'analyse](#choose-a-scan-effort), si les modifications non commitées faisaient partie de l'arborescence analysée, et à quel point l'exécution a été vérifiée, de sorte qu'un rapport soit toujours lié au code qu'il décrit. Une analyse en dehors du contrôle de version tamponne `UNVERSIONED` à la place du commit

106 124 

107Ce répertoire est la seule modification qu'une analyse apporte à votre extraction, et il porte son propre `.gitignore`, de sorte qu'un `git add` égaré ne balaye jamais un rapport dans un commit. Pour conserver un rapport dans l'historique pour une piste d'audit, supprimez ce seul fichier `.gitignore` et validez le répertoire comme n'importe quel autre.125Ce répertoire est la seule modification qu'une analyse apporte à votre extraction, et il porte son propre `.gitignore`, de sorte qu'un `git add` égaré ne balaye jamais un rapport dans un commit. Pour conserver un rapport dans l'historique pour une piste d'audit, supprimez ce seul fichier `.gitignore` et validez le répertoire comme n'importe quel autre.

108 126 

desktop.md +64 −0

Details

994* **Shell** : le shell défini pour votre compte sur la machine distante doit exécuter les commandes envoyées via SSH, comme le font Bash, Zsh et `sh`994* **Shell** : le shell défini pour votre compte sur la machine distante doit exécuter les commandes envoyées via SSH, comme le font Bash, Zsh et `sh`

995* **Réseau** : Claude Code s'exécute sur la machine distante et effectue ses requêtes réseau depuis celle-ci ; la machine a donc besoin de l'[accès réseau requis par Claude Code](https://code.claude.com/docs/fr/network-config.md#network-access-requirements). Si la machine ne peut pas télécharger Claude Code, Desktop le télécharge sur votre ordinateur et le transfère. Les autres requêtes de Claude Code partent toujours de la machine distante. Sur une machine distante Linux, si ces requêtes nécessitent un proxy, [définissez-le pour les sessions SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).995* **Réseau** : Claude Code s'exécute sur la machine distante et effectue ses requêtes réseau depuis celle-ci ; la machine a donc besoin de l'[accès réseau requis par Claude Code](https://code.claude.com/docs/fr/network-config.md#network-access-requirements). Si la machine ne peut pas télécharger Claude Code, Desktop le télécharge sur votre ordinateur et le transfère. Les autres requêtes de Claude Code partent toujours de la machine distante. Sur une machine distante Linux, si ces requêtes nécessitent un proxy, [définissez-le pour les sessions SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).

996 996 

997#### Vérifier la clé d'hôte d'une machine distante

998 

999Une clé d'hôte est la clé qu'une machine distante présente pour prouver son identité, et une empreinte est une forme abrégée de cette clé. Lorsque vous faites confiance à une clé, votre ordinateur l'enregistre et se connecte à tout ce qui la présente, sans vous redemander. Vérifiez une clé avant de lui faire confiance, car quelque chose pourrait intercepter la connexion.

1000 

1001Déterminez d'abord à quelle machine appartient la clé, selon l'endroit où vous voyez l'empreinte :

1002 

1003* **Desktop demande `Connect to <host> for the first time?`, ou vous avez sélectionné Review new key** : la machine que Desktop nomme, `<host>`

1004* **Desktop demande `Connect through <jump host> for the first time?`** : le jump host, c'est-à-dire la machine par laquelle passe votre connexion, et non la machine que vous souhaitez atteindre

1005* **`ssh` pose la question ou affiche un avertissement dans un terminal** : la machine que son message nomme, qui n'est pas forcément celle que vous avez saisie

1006 

1007Obtenez l'empreinte propre de cette machine depuis la machine elle-même, et non via la connexion que vous vérifiez :

1008 

1009* **Quelqu'un d'autre gère la machine** : demandez-lui l'empreinte de sa clé d'hôte

1010* **Vous la gérez, et elle exécute Linux ou macOS** : exécutez `ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub` sur celle-ci, depuis sa console ou via une connexion à laquelle vous faites déjà confiance. Pour `<type>`, utilisez le type de clé que Desktop ou `ssh` affiche à côté de l'empreinte, en minuscules : `ed25519` pour `ED25519` ou `ssh-ed25519`.

1011 

1012Comparez ensuite l'empreinte propre de la machine avec celle qui vous a été présentée :

1013 

1014* **Elles correspondent** : faites confiance à la clé. Sélectionnez **Trust and connect** ou **Trust new key** dans Desktop, ou répondez `yes` dans le terminal.

1015* **Elles diffèrent, ou vous ne pouvez pas vérifier** : ne vous connectez pas. Sélectionnez **Cancel** dans Desktop, ou répondez `no` dans le terminal. Si quelqu'un d'autre gère la machine, indiquez-lui l'empreinte qui vous a été présentée.

1016 

1017Si une étape de dépannage vous a redirigé ici, revenez à cette étape quel que soit le résultat.

1018 

997#### Définir un proxy ou un certificat CA pour les sessions SSH1019#### Définir un proxy ou un certificat CA pour les sessions SSH

998 1020 

999Si une machine distante Linux accède à internet via un proxy ou a besoin d'un certificat CA, ajoutez les [variables de proxy et de CA](https://code.claude.com/docs/fr/network-config.md) sous `env` dans `~/.claude/settings.json` sur cette machine. Ajoutez-les même si vous les exportez déjà dans `~/.profile`, `~/.bash_profile`, `~/.zprofile` ou `~/.zshrc` sur cette machine.1021Si une machine distante Linux accède à internet via un proxy ou a besoin d'un certificat CA, ajoutez les [variables de proxy et de CA](https://code.claude.com/docs/fr/network-config.md) sous `env` dans `~/.claude/settings.json` sur cette machine. Ajoutez-les même si vous les exportez déjà dans `~/.profile`, `~/.bash_profile`, `~/.zprofile` ou `~/.zshrc` sur cette machine.


2135 2157 

2136Si les bascules du serveur MCP ne répondent pas ou que les serveurs ne se connectent pas sur Windows, vérifiez que le serveur est correctement configuré dans vos paramètres, redémarrez l'application, vérifiez que le processus du serveur s'exécute dans le Gestionnaire des tâches et examinez les journaux du serveur pour les erreurs de connexion.2158Si les bascules du serveur MCP ne répondent pas ou que les serveurs ne se connectent pas sur Windows, vérifiez que le serveur est correctement configuré dans vos paramètres, redémarrez l'application, vérifiez que le processus du serveur s'exécute dans le Gestionnaire des tâches et examinez les journaux du serveur pour les erreurs de connexion.

2137 2159 

2160### SSH host key verification failed

2161 

2162Chacun de ces messages signifie que Desktop a refusé une [clé d'hôte](#check-a-remote-machines-host-key) :

2163 

2164* `SSH host key verification failed` ou `Host denied (verification failed)` sous **View details** sur une carte `Couldn't connect to <host>`

2165* `Connection failed: Host key changed or not trusted` près de la zone de prompt ou après **Test connection**

2166* `<host>'s host key is not trusted` ou `<host>'s host key has changed` sur une session déconnectée

2167 

2168Desktop refuse généralement une clé parce qu'elle diffère de celle enregistrée sur votre ordinateur, ou parce qu'aucune clé n'est enregistrée pour cette machine. Une machine reconstruite ou réinstallée présente généralement une nouvelle clé, tout comme un élément qui intercepte la connexion. Vérifiez la clé avant de vous reconnecter, en partant de ce que Desktop affiche avec le message :

2169 

2170* **Vous êtes sur Windows, et Desktop indique `Connection failed: Host key changed or not trusted`** : écartez d'abord l'hypothèse d'un [client OpenSSH manquant](#ssh-host-key-refused-on-windows-without-an-openssh-client)

2171* **Desktop vous demande de définir `UserKnownHostsFile`** : dans `~/.ssh/config`, définissez-le sur `~/.ssh/known_hosts`, puis [vérifiez la clé depuis un terminal](#check-the-host-key-from-a-terminal)

2172* **Vous voyez un bouton Review new key** : sélectionnez-le, puis [comparez](#check-a-remote-machines-host-key) l'empreinte affichée par Desktop avec celle de la machine elle-même. Si elles correspondent, sélectionnez **Trust new key** pour remplacer la clé enregistrée. Sinon, sélectionnez **Cancel**.

2173* **Vous ne voyez aucun bouton Review new key, Desktop affiche `Couldn't show the new key`, ou Desktop refuse à nouveau la clé après Trust new key** : [vérifiez la clé depuis un terminal](#check-the-host-key-from-a-terminal)

2174 

2175#### Vérifier la clé d'hôte depuis un terminal

2176 

2177Exécutez `ssh <SSH host>` sur votre ordinateur, avec la valeur **SSH host** de votre [connexion SSH](#ssh-sessions) dans Desktop. Ajoutez `-p <SSH port>` si la connexion possède une valeur **SSH port**. Sur Windows, utilisez PowerShell, car Desktop ne se connecte pas avec le `ssh` de Git Bash ou de WSL. Si PowerShell ne trouve pas `ssh`, [installez le client OpenSSH de Microsoft](#ssh-host-key-refused-on-windows-without-an-openssh-client).

2178 

2179Notez quelle machine `ssh` nomme dans son message, qui peut être un hôte de rebond et non `<SSH host>`, puis suivez le cas qui correspond :

2180 

2181* **`ssh` demande s'il faut continuer la connexion** : [comparez](#check-a-remote-machines-host-key) l'empreinte qu'il affiche avec celle de cette machine. Répondez `yes` uniquement si elles correspondent.

2182* **`ssh` avertit que la clé d'hôte a changé** : [comparez](#check-a-remote-machines-host-key) l'empreinte de l'avertissement avec celle de cette machine. Uniquement si elles correspondent, supprimez la ligne indiquée par `Offending <type> key in <file>:<line>` et relancez `ssh`. Si `ssh` émet un nouvel avertissement concernant une autre ligne, comparez, supprimez et relancez comme précédemment.

2183* **`ssh` refuse une clé qu'il ne connaît pas, sans demander** : obtenez la ligne `known_hosts` de cette machine auprès de la personne qui la gère, et non via la connexion que vous vérifiez. Ajoutez la ligne à votre fichier `known_hosts`, avec le nom figurant dans le message de `ssh` comme nom d'hôte, et relancez `ssh`.

2184* **`ssh` poursuit la connexion sans vous interroger sur la clé d'hôte** : ne saisissez pas encore de mot de passe. [Vérifiez les clés auxquelles `ssh` fait déjà confiance](#check-the-keys-that-ssh-already-trusts).

2185 

2186Une fois que `ssh` accepte une clé que vous avez vérifiée ou ajoutée, réessayez dans Desktop. Si Desktop refuse à nouveau la clé, consultez [Obtenir les journaux de Desktop pour un problème SSH](#get-desktops-logs-for-an-ssh-problem).

2187 

2188##### Vérifier les clés auxquelles `ssh` fait déjà confiance

2189 

2190Relancez la même commande `ssh` en ajoutant `-v -S none`. Dans sa sortie, une ligne `Server host key:` affiche une empreinte, et la ligne `Host '<name>' is known` suivante nomme la machine à laquelle elle appartient. [Comparez](#check-a-remote-machines-host-key) chaque empreinte trouvée avec celle de la machine correspondante.

2191 

2192* **Un hôte de rebond n'a pas de ligne `Server host key:`** : exécutez également `ssh -v -S none <jump host>`, et comparez cette empreinte de la même manière.

2193* **Une empreinte ne correspond pas, ou vous ne pouvez pas la vérifier** : ne vous reconnectez pas. Supprimez la clé enregistrée : sous `Host '<name>' is known`, la ligne `Found key in <file>:<line>` nomme le fichier qui la contient. Exécutez `ssh-keygen -R "<name>" -f <file>`. Si vous conservez des clés d'hôte dans plusieurs fichiers, supprimez la clé de chacun d'eux. Si vous ne pouvez pas modifier un fichier, prévenez la personne qui gère votre ordinateur.

2194* **Toutes les empreintes correspondent** : réessayez dans Desktop. Si Desktop refuse à nouveau la clé, consultez [Obtenir les journaux de Desktop pour un problème SSH](#get-desktops-logs-for-an-ssh-problem).

2195 

2196### Clé d'hôte SSH refusée sur Windows sans client OpenSSH

2197 

2198Sur Windows sans client OpenSSH, Desktop refuse même une clé d'hôte correcte, avec `Connection failed: Host key changed or not trusted`. Il a besoin du client pour rechercher les clés enregistrées. Pour savoir si vous en avez un, exécutez `ssh` dans PowerShell. Si PowerShell ne reconnaît pas `ssh`, installez le [client OpenSSH de Microsoft](https://learn.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse) et redémarrez Desktop.

2199 

2200Reconnectez-vous ensuite. Si Desktop vous demande si vous souhaitez vous connecter pour la première fois, [vérifiez la clé d'hôte de la machine](#check-a-remote-machines-host-key) avant de lui faire confiance. Si Desktop refuse toujours la clé, suivez les autres cas sous [SSH host key verification failed](#ssh-host-key-verification-failed).

2201 

2138### La connexion SSH échoue après que vous vous êtes connecté2202### La connexion SSH échoue après que vous vous êtes connecté

2139 2203 

2140Repérez dans ce tableau le titre de la carte, ou le code qui termine le message d'erreur, puis suivez les indications de la dernière colonne. Pour voir le message, sélectionnez **View details** sur la carte d'échec.2204Repérez dans ce tableau le titre de la carte, ou le code qui termine le message d'erreur, puis suivez les indications de la dernière colonne. Pour voir le message, sélectionnez **View details** sur la carte d'échec.

env-vars.md +2 −2

Details

236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Définissez à `1` pour retirer le paramètre `run_in_background` des outils Bash, PowerShell et de sous-agent, et pour désactiver le raccourci Ctrl+B et les exécutions en arrière-plan des [skills forkés](https://code.claude.com/docs/fr/skills.md#run-skills-in-a-subagent). Claude Code cesse alors également de déplacer automatiquement en arrière-plan les sous-agents, les appels d'outils MCP longs et les commandes shell ayant expiré. Les [tâches MCP](https://code.claude.com/docs/fr/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task) et l'[outil Monitor](https://code.claude.com/docs/fr/tools-reference.md#monitor-tool) s'exécutent toujours en arrière-plan |236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Définissez à `1` pour retirer le paramètre `run_in_background` des outils Bash, PowerShell et de sous-agent, et pour désactiver le raccourci Ctrl+B et les exécutions en arrière-plan des [skills forkés](https://code.claude.com/docs/fr/skills.md#run-skills-in-a-subagent). Claude Code cesse alors également de déplacer automatiquement en arrière-plan les sous-agents, les appels d'outils MCP longs et les commandes shell ayant expiré. Les [tâches MCP](https://code.claude.com/docs/fr/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task) et l'[outil Monitor](https://code.claude.com/docs/fr/tools-reference.md#monitor-tool) s'exécutent toujours en arrière-plan |

237| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Définissez sur `1` pour empêcher Claude Code de traiter une réponse en streaming [Amazon Bedrock](https://code.claude.com/docs/fr/amazon-bedrock.md) dont l'en-tête `Content-Type` est absent ou vide comme le flux d'événements binaire d'Amazon Bedrock. Par défaut, Claude Code suppose qu'une passerelle a supprimé l'en-tête d'une réponse par ailleurs non modifiée ; il décode donc le corps et le streaming continue de fonctionner. Ne définissez cette variable que pour une passerelle qui réémet également le flux sous forme de server-sent events ; Claude Code lit alors le corps sans en-tête comme des server-sent events. Nécessite Claude Code v2.1.239 ou ultérieur |237| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Définissez sur `1` pour empêcher Claude Code de traiter une réponse en streaming [Amazon Bedrock](https://code.claude.com/docs/fr/amazon-bedrock.md) dont l'en-tête `Content-Type` est absent ou vide comme le flux d'événements binaire d'Amazon Bedrock. Par défaut, Claude Code suppose qu'une passerelle a supprimé l'en-tête d'une réponse par ailleurs non modifiée ; il décode donc le corps et le streaming continue de fonctionner. Ne définissez cette variable que pour une passerelle qui réémet également le flux sous forme de server-sent events ; Claude Code lit alors le corps sans en-tête comme des server-sent events. Nécessite Claude Code v2.1.239 ou ultérieur |

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

239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Définissez `1` pour arrêter le travail en cours d'une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) lorsque le [superviseur](https://code.claude.com/docs/fr/agent-view.md#the-supervisor-process) arrête, redémarre ou met à jour le processus de cette session, au lieu de le transmettre au processus suivant de la session. Ce travail comprend les commandes shell en arrière-plan en cours et les workflows dynamiques de la session, ainsi que les sous-agents en arrière-plan depuis la v2.1.198. N'affecte que cette transmission : mettre une session en arrière-plan avec `←` ou [`/background`](https://code.claude.com/docs/fr/agent-view#from-inside-a-session) transfère toujours le travail en arrière-plan en cours. Nécessite Claude Code v2.1.196 ou ultérieur |239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Définissez sur `1` pour arrêter le travail en cours d'une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) lorsque le [superviseur](https://code.claude.com/docs/fr/agent-view.md#the-supervisor-process) arrête, redémarre ou met à jour le processus de cette session, au lieu de le transmettre au processus suivant de la session. Ce travail comprend les commandes shell en arrière-plan en cours d'exécution de la session, ainsi que les sous-agents en arrière-plan depuis la v2.1.198. N'affecte que cette transmission : mettre une session en arrière-plan avec `←` ou [`/background`](https://code.claude.com/docs/fr/agent-view#from-inside-a-session) transfère toujours le travail en arrière-plan en cours. Nécessite Claude Code v2.1.196 ou version ultérieure |

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

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

242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Définissez sur `1` pour garder disponibles les outils de navigateur [Claude in Chrome](https://code.claude.com/docs/fr/chrome.md) tout en omettant la section Chrome du prompt système et le [skill fourni](https://code.claude.com/docs/fr/skills.md#bundled-skills) `/claude-in-chrome`. Destinée aux hôtes qui intègrent Claude Code et fournissent leurs propres instructions pour le navigateur. Nécessite Claude Code v2.1.257 ou ultérieur |242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Définissez sur `1` pour garder disponibles les outils de navigateur [Claude in Chrome](https://code.claude.com/docs/fr/chrome.md) tout en omettant la section Chrome du prompt système et le [skill fourni](https://code.claude.com/docs/fr/skills.md#bundled-skills) `/claude-in-chrome`. Destinée aux hôtes qui intègrent Claude Code et fournissent leurs propres instructions pour le navigateur. Nécessite Claude Code v2.1.257 ou ultérieur |

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

244| `CLAUDE_CODE_DISABLE_CRON` | Définissez `1` pour désactiver les [tâches planifiées limitées à la session](https://code.claude.com/docs/fr/scheduled-tasks.md). Le skill `/loop` et les outils cron deviennent indisponibles, et toutes les tâches déjà planifiées cessent de se déclencher, y compris celles déjà en cours d'exécution en milieu de session |244| `CLAUDE_CODE_DISABLE_CRON` | Définissez `1` pour désactiver les [tâches planifiées limitées à la session](https://code.claude.com/docs/fr/scheduled-tasks.md). Le skill `/loop` et les outils cron deviennent indisponibles, et toutes les tâches déjà planifiées cessent de se déclencher, y compris celles déjà en cours d'exécution en milieu de session |

245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Définissez sur `1` pour désactiver la limite de temps des demandes de permission de [suppression de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths). En mode `auto`, Claude Code envoie alors ces suppressions au classifieur, et en mode `bypassPermissions`, la demande attend votre réponse. Définissez-la dans l'environnement qui lance Claude Code, car Claude Code ignore une copie fournie via un bloc `env` de paramètres. Nécessite Claude Code v2.1.281 ou ultérieur |245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Définissez sur `1` pour désactiver la [limite de temps et les refus](https://code.claude.com/docs/fr/permission-modes.md#time-limits-and-denials-in-auto-and-bypasspermissions-modes) des modes `auto` et `bypassPermissions` sur les suppressions de chemins critiques. Ces suppressions sont alors soumises au classifieur en mode `auto`, et font l'objet d'une demande sans limite de temps en mode `bypassPermissions` partout où Claude Code peut en afficher une. Définissez-la dans l'environnement qui lance Claude Code, car Claude Code ignore une copie fournie via un bloc `env` des paramètres. Nécessite Claude Code v2.1.281 ou ultérieur |

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

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

248| `CLAUDE_CODE_DISABLE_FAST_MODE` | Définissez sur `1` pour désactiver le [mode rapide](https://code.claude.com/docs/fr/fast-mode.md) |248| `CLAUDE_CODE_DISABLE_FAST_MODE` | Définissez sur `1` pour désactiver le [mode rapide](https://code.claude.com/docs/fr/fast-mode.md) |

errors.md +35 −3

Details

244| `MCP server "<name>" was not saved to` / `was not removed from` | [Erreurs de ligne de commande](#mcp-server-was-not-saved-or-removed) |244| `MCP server "<name>" was not saved to` / `was not removed from` | [Erreurs de ligne de commande](#mcp-server-was-not-saved-or-removed) |

245| `MCP server "<name>" may not have been saved` / `may not have been removed` | [Erreurs de ligne de commande](#mcp-server-may-not-have-been-saved-or-removed) |245| `MCP server "<name>" may not have been saved` / `may not have been removed` | [Erreurs de ligne de commande](#mcp-server-may-not-have-been-saved-or-removed) |

246| `Server rejected the Authorization header minted by the configured headersHelper` | [Erreurs de ligne de commande](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |246| `Server rejected the Authorization header minted by the configured headersHelper` | [Erreurs de ligne de commande](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |

247| `This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability` | [Erreurs de ligne de commande](#mcp-server-rejected-the-elicitation-capability) |

247| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Erreurs de ligne de commande](#mcp-permission-prompt-tool-not-found) |248| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Erreurs de ligne de commande](#mcp-permission-prompt-tool-not-found) |

248| `OAuth callback port <port> is already in use — another process may be holding it` | [Erreurs de ligne de commande](#oauth-callback-port-is-already-in-use) |249| `OAuth callback port <port> is already in use — another process may be holding it` | [Erreurs de ligne de commande](#oauth-callback-port-is-already-in-use) |

249| `No available ports for OAuth redirect` | [Erreurs de ligne de commande](#no-available-ports-for-oauth-redirect) |250| `No available ports for OAuth redirect` | [Erreurs de ligne de commande](#no-available-ports-for-oauth-redirect) |

250| `Shell command failed for pattern "..."`, provenant de `/security-review` ou de tout skill qui injecte du contexte dynamique | [Erreurs de ligne de commande](#security-review-fails-without-origin-head) |251| `Shell command failed for pattern "..."`, depuis `/security-review` ou tout skill qui injecte du contexte dynamique | [Erreurs de ligne de commande](#security-review-fails-without-origin-head) |

251| `Shell command permission check failed for pattern "..."`, provenant d'un skill qui injecte du contexte dynamique | [Erreurs de ligne de commande](#security-review-fails-without-origin-head) |252| `Shell command permission check failed for pattern "..."`, provenant d'un skill qui injecte du contexte dynamique | [Erreurs de ligne de commande](#security-review-fails-without-origin-head) |

252| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Erreurs de ligne de commande](#security-review-fails-without-origin-head) |253| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Erreurs de ligne de commande](#security-review-fails-without-origin-head) |

253| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Erreurs de ligne de commande](#no-shell-command-was-run) |254| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Erreurs de ligne de commande](#no-shell-command-was-run) |


3473 3474 

3474Avant la v2.1.248, Claude Code lançait la découverte OAuth pour un serveur dont le helper fournissait l'en-tête `Authorization`. Cette découverte pouvait échouer avec `Incompatible auth server: does not support dynamic client registration` au lieu de signaler les identifiants rejetés.3475Avant la v2.1.248, Claude Code lançait la découverte OAuth pour un serveur dont le helper fournissait l'en-tête `Authorization`. Cette découverte pouvait échouer avec `Incompatible auth server: does not support dynamic client registration` au lieu de signaler les identifiants rejetés.

3475 3476 

3477### MCP server rejected the elicitation capability

3478 

3479Un serveur MCP construit sur Java MCP SDK 0.11.0 à 0.17.0 a refusé la connexion. Ces versions du SDK ne peuvent pas analyser les [modes d'élicitation](https://code.claude.com/docs/fr/mcp.md#elicitation-modes-claude-code-declares) `form` et `url` que Claude Code déclare lors de son handshake. `claude mcp list` affiche le serveur en échec avec ce message à la place de l'erreur propre au serveur :

3480 

3481```text theme={null}

3482This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).

3483```

3484 

3485**Que faire :**

3486 

3487* Mettez à niveau le serveur vers Java MCP SDK 0.17.1 ou une version ultérieure, ou vers l'une des versions de Spring AI que nomme le message

3488* Ou ajoutez `"bareElicitationCapability": true` à l'entrée de ce serveur dans votre configuration MCP, puis redémarrez Claude Code. Le champ est accepté sur les entrées stdio, `sse`, `http` et `ws` et nécessite Claude Code v2.1.281 ou une version ultérieure

3489 

3490Cette entrée `.mcp.json` définit le champ pour un serveur HTTP :

3491 

3492```json theme={null}

3493{

3494 "mcpServers": {

3495 "inventory": {

3496 "type": "http",

3497 "url": "https://mcp.example.com/mcp",

3498 "bareElicitationCapability": true

3499 }

3500 }

3501}

3502```

3503 

3504Après le redémarrage, `/mcp` affiche le serveur comme connecté. Claude Code déclare le mode form uniquement à ce serveur, donc supprimez le champ une fois le serveur mis à niveau.

3505 

3506Un serveur peut aussi échouer avec son propre texte d'erreur, par exemple un texte contenant `Unrecognized field "form"`. Les mêmes solutions s'appliquent.

3507 

3476### Outil de demande de permission MCP introuvable3508### Outil de demande de permission MCP introuvable

3477 3509 

3478L'outil que vous avez passé à [`--permission-prompt-tool`](https://code.claude.com/docs/fr/cli-reference#cli-flags) ne figurait pas parmi les outils MCP connectés lorsque l'exécution a eu besoin pour la première fois d'une décision de permission, soit parce que son serveur ne s'est jamais connecté, soit parce qu'aucun serveur connecté n'expose d'outil portant ce nom. Claude Code envoie tout de même votre prompt : l'exécution en [mode non interactif](https://code.claude.com/docs/fr/headless.md) se termine avec cette erreur, et le code de sortie 1, au premier appel d'outil, et ne produit donc aucune réponse bien que la requête ait été envoyée. Avant le premier prompt, Claude Code attend que ce serveur se connecte, jusqu'au délai d'expiration de connexion par serveur de 30 secondes défini par [`MCP_TIMEOUT`](https://code.claude.com/docs/fr/env-vars). Avant la v2.1.206, le démarrage n'attendait pas la fin de la connexion du serveur, donc un serveur sain mais lent à démarrer produisait également cette erreur.3510L'outil que vous avez passé à [`--permission-prompt-tool`](https://code.claude.com/docs/fr/cli-reference#cli-flags) ne figurait pas parmi les outils MCP connectés lorsque l'exécution a eu besoin pour la première fois d'une décision de permission, soit parce que son serveur ne s'est jamais connecté, soit parce qu'aucun serveur connecté n'expose d'outil portant ce nom. Claude Code envoie tout de même votre prompt : l'exécution en [mode non interactif](https://code.claude.com/docs/fr/headless.md) se termine avec cette erreur, et le code de sortie 1, au premier appel d'outil, et ne produit donc aucune réponse bien que la requête ait été envoyée. Avant le premier prompt, Claude Code attend que ce serveur se connecte, jusqu'au délai d'expiration de connexion par serveur de 30 secondes défini par [`MCP_TIMEOUT`](https://code.claude.com/docs/fr/env-vars). Avant la v2.1.206, le démarrage n'attendait pas la fin de la connexion du serveur, donc un serveur sain mais lent à démarrer produisait également cette erreur.


3541 3573 

3542Des messages voisins se déclenchent avant même l'exécution de la commande :3574Des messages voisins se déclenchent avant même l'exécution de la commande :

3543 3575 

3544* `Shell command permission check failed for pattern "..."` : la vérification de permission de la commande ne l'a pas autorisée. [Vérifications de permission des commandes injectées](https://code.claude.com/docs/fr/skills.md#permission-checks-on-injected-commands) explique quels résultats interrompent l'invocation dans chaque mode de permission et comment pré-approuver une commande avec `allowed-tools`3576* `Shell command permission check failed for pattern "..."` : la vérification de permission de la commande ne l'a pas autorisée. [Vérifications de permission sur les commandes injectées](https://code.claude.com/docs/fr/skills.md#permission-checks-on-injected-commands) décrit quels résultats interrompent l'exécution dans chaque mode de permission et comment pré-approuver une commande avec `allowed-tools`

3545* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` : le frontmatter du skill exige bash sur une machine qui ne l'a pas. Installez Git for Windows ou modifiez le frontmatter en `shell: powershell`. Consultez [Comment s'exécutent les commandes injectées](https://code.claude.com/docs/fr/skills.md#how-injected-commands-run)3577* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` : le frontmatter du skill exige bash sur une machine qui n'en dispose pas. Installez Git for Windows ou remplacez le frontmatter par `shell: powershell`. Consultez [Comment s'exécutent les commandes injectées](https://code.claude.com/docs/fr/skills.md#how-injected-commands-run)

3546* `No shell command in <name> was run` : l'une des commandes `!` du fichier contient un caractère de contrôle brut autre qu'une tabulation ou un saut de ligne, donc aucune d'elles ne s'exécute. Consultez [comment trouver et supprimer le caractère](#no-shell-command-was-run)3578* `No shell command in <name> was run` : l'une des commandes `!` du fichier contient un caractère de contrôle brut autre qu'une tabulation ou un saut de ligne, donc aucune d'elles ne s'exécute. Consultez [comment trouver et supprimer le caractère](#no-shell-command-was-run)

3547 3579 

3548**Que faire :**3580**Que faire :**

hooks.md +1 −1

Details

1957 1957 

1958| Champ | Description |1958| Champ | Description |

1959| :- | :- |1959| :- | :- |

1960| `permissionDecision` | `"allow"` ignore la demande de permission, sauf pour les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths). `AskUserQuestion` et `ExitPlanMode` nécessitent [`updatedInput` associé à `"allow"`](#allow-with-updatedinput). Pour le mode plan, consultez [Approbations par hook en mode plan](https://code.claude.com/docs/fr/permissions.md#hook-approvals-in-plan-mode). `"deny"` empêche l'appel d'outil. `"ask"` demande à l'utilisateur de confirmer. `"defer"` termine le tour afin que l'outil puisse être repris plus tard, et nécessite le [mode non interactif](#defer-a-tool-call-for-later) avec le flag `-p`. Les [règles de refus et de demande](https://code.claude.com/docs/fr/permissions.md#manage-permissions) sont toujours évaluées, quel que soit ce que renvoie le hook |1960| `permissionDecision` | `"allow"` ignore la demande de permission, sauf pour les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths). Il n'ignore pas non plus l'approbation des appels aux [outils qu'une application Agent SDK marque `always_ask`](https://code.claude.com/docs/fr/agent-sdk/custom-tools#require-approval-for-specific-tools), sauf si le [mode de permission approuve l'appel](https://code.claude.com/docs/fr/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call). `AskUserQuestion` et `ExitPlanMode` nécessitent [`updatedInput` associé à `"allow"`](#allow-with-updatedinput). Pour le mode plan, consultez [Approbations par hook en mode plan](https://code.claude.com/docs/fr/permissions.md#hook-approvals-in-plan-mode). `"deny"` empêche l'appel d'outil. `"ask"` demande à l'utilisateur de confirmer. `"defer"` termine le tour afin que l'outil puisse être repris plus tard, et nécessite le [mode non interactif](#defer-a-tool-call-for-later) avec le flag `-p`. Les [règles de refus et de demande](https://code.claude.com/docs/fr/permissions.md#manage-permissions) sont toujours évaluées, quelle que soit la valeur renvoyée par le hook |

1961| `permissionDecisionReason` | Pour `"ask"`, affiché à l'utilisateur dans la demande de permission. Lorsque Claude Code [refuse l'appel](https://code.claude.com/docs/fr/headless.md#turn-off-permission-prompts-in-unattended-runs) lors d'une exécution `-p` où personne ne peut répondre à cette demande, Claude lit plutôt la raison dans le résultat de l'outil. Pour `"deny"`, affiché à Claude. Pour `"allow"` et `"defer"`, écrit uniquement dans le [log de débogage](#debug-hooks) |1961| `permissionDecisionReason` | Pour `"ask"`, affiché à l'utilisateur dans la demande de permission. Lorsque Claude Code [refuse l'appel](https://code.claude.com/docs/fr/headless.md#turn-off-permission-prompts-in-unattended-runs) lors d'une exécution `-p` où personne ne peut répondre à cette demande, Claude lit plutôt la raison dans le résultat de l'outil. Pour `"deny"`, affiché à Claude. Pour `"allow"` et `"defer"`, écrit uniquement dans le [log de débogage](#debug-hooks) |

1962| `updatedInput` | Modifie les paramètres d'entrée de l'outil avant l'exécution. Remplace l'intégralité de l'objet d'entrée : incluez donc les champs inchangés en plus des champs modifiés. Claude Code évalue les règles de permission et l'[éligibilité au passage automatique en arrière-plan](https://code.claude.com/docs/fr/tools-reference.md#foreground-commands-that-move-to-the-background) d'une commande Bash par rapport à l'entrée renvoyée par votre hook, et non à celle envoyée par Claude. Combinez-le avec `"allow"` pour approuver automatiquement, ou avec `"ask"` pour montrer l'entrée modifiée à l'utilisateur. Ignoré pour `"defer"` |1962| `updatedInput` | Modifie les paramètres d'entrée de l'outil avant l'exécution. Remplace l'intégralité de l'objet d'entrée : incluez donc les champs inchangés en plus des champs modifiés. Claude Code évalue les règles de permission et l'[éligibilité au passage automatique en arrière-plan](https://code.claude.com/docs/fr/tools-reference.md#foreground-commands-that-move-to-the-background) d'une commande Bash par rapport à l'entrée renvoyée par votre hook, et non à celle envoyée par Claude. Combinez-le avec `"allow"` pour approuver automatiquement, ou avec `"ask"` pour montrer l'entrée modifiée à l'utilisateur. Ignoré pour `"defer"` |

1963| `additionalContext` | Chaîne ajoutée au contexte de Claude en plus du résultat de l'outil. Ignorée lorsque `permissionDecision` vaut `"defer"`. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) |1963| `additionalContext` | Chaîne ajoutée au contexte de Claude en plus du résultat de l'outil. Ignorée lorsque `permissionDecision` vaut `"defer"`. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) |

hooks-guide.md +2 −0

Details

629 629 

630* Les lectures depuis des [chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths)630* Les lectures depuis des [chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths)

631* Les outils MCP marqués [`requiresUserInteraction`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool)631* Les outils MCP marqués [`requiresUserInteraction`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool)

632* Les appels aux [outils qu'une application Agent SDK marque `always_ask`](https://code.claude.com/docs/fr/agent-sdk/custom-tools#require-approval-for-specific-tools), sauf si le [mode de permission approuve l'appel](https://code.claude.com/docs/fr/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call)

632* Les outils de connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools) dans les sessions où ce paramètre atteint Claude Code633* Les outils de connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools) dans les sessions où ce paramètre atteint Claude Code

633 634 

634 Pour ce que fait `"allow"` en mode plan, consultez [Approbations des hooks en mode plan](https://code.claude.com/docs/fr/permissions.md#hook-approvals-in-plan-mode).635 Pour ce que fait `"allow"` en mode plan, consultez [Approbations des hooks en mode plan](https://code.claude.com/docs/fr/permissions.md#hook-approvals-in-plan-mode).


963* **Ce qui prévaut toujours sur `"allow"`** : un hook retournant `"allow"` ne contourne pas les règles de refus des paramètres, et il ne peut pas supprimer la demande de permission pour :964* **Ce qui prévaut toujours sur `"allow"`** : un hook retournant `"allow"` ne contourne pas les règles de refus des paramètres, et il ne peut pas supprimer la demande de permission pour :

964 * Les lectures depuis des [chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths)965 * Les lectures depuis des [chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths)

965 * Les outils MCP marqués [`requiresUserInteraction`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool)966 * Les outils MCP marqués [`requiresUserInteraction`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool)

967 * Les appels aux [outils qu'une application Agent SDK marque `always_ask`](https://code.claude.com/docs/fr/agent-sdk/custom-tools#require-approval-for-specific-tools), sauf si le [mode de permission approuve l'appel](https://code.claude.com/docs/fr/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call)

966 * Les outils de connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools) dans les sessions où ce paramètre atteint Claude Code968 * Les outils de connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools) dans les sessions où ce paramètre atteint Claude Code

967 969 

968En [mode plan](https://code.claude.com/docs/fr/permissions.md#hook-approvals-in-plan-mode), si votre hook `PreToolUse` retourne `"allow"` pour une modification de fichier, vous obtenez la même demande de permission, le même blocage ou la même approbation que la modification obtiendrait sans hook. Pour lever cette limite sur les approbations des hooks, [approuvez le plan](https://code.claude.com/docs/fr/permission-modes.md#review-and-approve-a-plan) ou passez à un autre mode de permission.970En [mode plan](https://code.claude.com/docs/fr/permissions.md#hook-approvals-in-plan-mode), si votre hook `PreToolUse` retourne `"allow"` pour une modification de fichier, vous obtenez la même demande de permission, le même blocage ou la même approbation que la modification obtiendrait sans hook. Pour lever cette limite sur les approbations des hooks, [approuvez le plan](https://code.claude.com/docs/fr/permission-modes.md#review-and-approve-a-plan) ou passez à un autre mode de permission.

Details

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

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

409| [`parentSettingsBehavior`](https://code.claude.com/docs/fr/settings-reference#parentsettingsbehavior) | Si les paramètres parents fournis par l'hôte fusionnent selon la politique gérée |409| [`parentSettingsBehavior`](https://code.claude.com/docs/fr/settings-reference#parentsettingsbehavior) | Si les paramètres parents fournis par l'hôte fusionnent selon la politique gérée |

410| [`pluginSuggestionMarketplaces`](https://code.claude.com/docs/fr/settings-reference#pluginsuggestionmarketplaces) | Marketplaces dont les plugins Claude Code peut suggérer aux utilisateurs |410| [`pluginSuggestionMarketplaces`](https://code.claude.com/docs/fr/settings-reference#pluginsuggestionmarketplaces) | Marketplaces dont Claude Code peut suggérer les plugins aux utilisateurs dans le terminal |

411| [`pluginTrustMessage`](https://code.claude.com/docs/fr/settings-reference#plugintrustmessage) | Message personnalisé ajouté à l'avertissement de confiance du plugin affiché avant l'installation |411| [`pluginTrustMessage`](https://code.claude.com/docs/fr/settings-reference#plugintrustmessage) | Message personnalisé ajouté à l'avertissement de confiance du plugin affiché avant l'installation |

412| [`policyHelper`](https://code.claude.com/docs/fr/settings-reference#policyhelper) | Exécutable qui calcule les paramètres gérés au démarrage ; voir [Calculer les paramètres gérés avec un assistant de politique](https://code.claude.com/docs/fr/settings-reference.md#policyhelper) |412| [`policyHelper`](https://code.claude.com/docs/fr/settings-reference#policyhelper) | Exécutable qui calcule les paramètres gérés au démarrage ; voir [Calculer les paramètres gérés avec un assistant de politique](https://code.claude.com/docs/fr/settings-reference.md#policyhelper) |

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

mcp.md +10 −1

Details

1624 1624 

1625Si vous créez un serveur MCP qui utilise l'élicitation, consultez la [spécification d'élicitation MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) pour les détails du protocole et les exemples de schéma.1625Si vous créez un serveur MCP qui utilise l'élicitation, consultez la [spécification d'élicitation MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) pour les détails du protocole et les exemples de schéma.

1626 1626 

1627Sur les connexions qui utilisent la [révision de protocole 2026-07-28](#mcp-client-runtimes), Claude Code déclare `elicitation: {form: {}, url: {}}` dans ses capacités client, de sorte qu'un serveur là-bas peut demander l'un ou l'autre mode via la demande d'élicitation standard du protocole.1627### Modes d'élicitation déclarés par Claude Code

1628 

1629Si vous créez un serveur MCP, les capacités client que Claude Code envoie lors de la connexion indiquent à votre serveur quels modes d'élicitation il peut demander. Claude Code déclare `elicitation: {form: {}, url: {}}` sur les connexions suivantes, de sorte qu'un serveur sur l'une d'entre elles peut demander les deux modes :

1630 

1631* Les connexions qui utilisent la [révision de protocole 2026-07-28](#mcp-client-runtimes)

1632* Les connexions utilisant les révisions de protocole antérieures, 2025-11-25 et plus anciennes, vers les serveurs stdio, `sse`, `http` et `ws` présents dans la configuration MCP de Claude Code d'un utilisateur. Nécessite Claude Code v2.1.287 ou une version ultérieure

1633 

1634Sur ses autres connexions utilisant les révisions antérieures, comme celles vers les [connecteurs claude.ai](#use-mcp-servers-from-claude-ai), Claude Code déclare simplement `elicitation: {}`, ce qui autorise les demandes d'élicitation en mode formulaire uniquement.

1635 

1636Un serveur développé avec le SDK Java MCP 0.17.0 ou une version antérieure peut refuser une déclaration contenant `form` et `url`. Consultez [MCP server rejected the elicitation capability](https://code.claude.com/docs/fr/errors.md#mcp-server-rejected-the-elicitation-capability).

1628 1637 

1629## Utiliser les ressources MCP1638## Utiliser les ressources MCP

1630 1639 

Details

36* Les outils correspondant à une [règle de demande](https://code.claude.com/docs/fr/permissions.md#manage-permissions) explicite36* Les outils correspondant à une [règle de demande](https://code.claude.com/docs/fr/permissions.md#manage-permissions) explicite

37* Les outils de connecteur que votre organisation a [définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), dans les sessions où ce paramètre s'applique à Claude Code37* Les outils de connecteur que votre organisation a [définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), dans les sessions où ce paramètre s'applique à Claude Code

38* Les outils qui nécessitent une interaction de l'utilisateur : l'outil intégré `AskUserQuestion` et les outils MCP marqués [`requiresUserInteraction`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool)38* Les outils qui nécessitent une interaction de l'utilisateur : l'outil intégré `AskUserQuestion` et les outils MCP marqués [`requiresUserInteraction`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool)

39* Les suppressions `rm` et `rmdir` reconnues ciblant un [chemin critique](#critical-paths), qu'aucune règle d'autorisation ni aucun `"allow"` d'un hook `PreToolUse` n'approuve39* Les suppressions `rm` et `rmdir` reconnues ciblant un [chemin critique](#critical-paths), qu'aucune règle d'autorisation ni aucun `"allow"` d'un hook `PreToolUse` n'approuve, ainsi que les commandes Bash signalées par [`Dangerous rm operation not ruled out`](#dangerous-rm-operation-not-ruled-out)

40* Les [protections de messagerie inter-sessions](#skip-all-checks-with-bypasspermissions-mode)40* Les [protections de messagerie inter-sessions](#skip-all-checks-with-bypasspermissions-mode)

41* Les lectures en dehors des répertoires de travail lorsque [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/fr/settings-reference#permissions-blockreadsoutsideworkingdirectories) est activé : les commandes Bash reconnues de lecture de fichiers déclenchent une demande de permission même en mode auto et en mode `bypassPermissions`, tout comme toute [nouvelle tentative hors sandbox](https://code.claude.com/docs/fr/sandboxing.md#the-unsandboxed-retry-escape-hatch) qui nécessite une approbation pour s'exécuter en dehors du sandbox. Nécessite Claude Code v2.1.257 ou une version ultérieure.41* Les lectures en dehors des répertoires de travail lorsque [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/fr/settings-reference#permissions-blockreadsoutsideworkingdirectories) est activé : les commandes Bash reconnues de lecture de fichiers déclenchent une demande de permission même en mode auto et en mode `bypassPermissions`, tout comme toute [nouvelle tentative hors sandbox](https://code.claude.com/docs/fr/sandboxing.md#the-unsandboxed-retry-escape-hatch) qui nécessite une approbation pour s'exécuter en dehors du sandbox. Nécessite Claude Code v2.1.257 ou une version ultérieure.

42 42 


265 265 

266Le mode `acceptEdits` permet à Claude de créer et modifier des fichiers dans votre répertoire de travail sans inviter. La barre d'état affiche `⏵⏵ accept edits on` tandis que ce mode est actif.266Le mode `acceptEdits` permet à Claude de créer et modifier des fichiers dans votre répertoire de travail sans inviter. La barre d'état affiche `⏵⏵ accept edits on` tandis que ce mode est actif.

267 267 

268En plus des modifications de fichiers, le mode `acceptEdits` auto-approuve les commandes Bash courantes du système de fichiers : `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp`, et `sed`. Ces commandes sont également auto-approuvées quand elles sont préfixées par des variables d'environnement sûres telles que `LANG=C` ou `NO_COLOR=1`, ou des wrappers de processus tels que `timeout`, `nice`, ou `nohup`. Comme pour les modifications de fichiers, l'auto-approbation s'applique uniquement aux chemins à l'intérieur de votre répertoire de travail ou `additionalDirectories`.268En plus des modifications de fichiers, le mode `acceptEdits` auto-approuve les commandes Bash courantes du système de fichiers : `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp`, et `sed`. À l'exception de `touch`, ces commandes sont également auto-approuvées quand elles sont préfixées par des variables d'environnement sûres telles que `LANG=C` ou `NO_COLOR=1`, ou des wrappers de processus tels que `timeout`, `nice`, ou `nohup`. Comme pour les modifications de fichiers, l'auto-approbation s'applique uniquement aux chemins à l'intérieur de votre répertoire de travail ou `additionalDirectories`.

269 269 

270Les éléments suivants invitent toujours :270Les éléments suivants invitent toujours :

271 271 

272* Les chemins en dehors de cette portée272* Les chemins en dehors de cette portée

273* Les écritures vers les [chemins protégés](#protected-paths)273* Les écritures vers les [chemins protégés](#protected-paths)

274* Les [suppressions de chemins critiques](#critical-paths) reconnues par `rm` et `rmdir`274* Les [suppressions de chemins critiques](#critical-paths) reconnues par `rm` et `rmdir`

275* `touch` avec autre chose que de simples chemins de fichiers, par exemple une option, un glob ou un préfixe tel que `timeout 5` ou `LANG=C`

275* Toutes les autres commandes Bash sauf l'[ensemble intégré en lecture seule](https://code.claude.com/docs/fr/permissions.md#read-only-commands)276* Toutes les autres commandes Bash sauf l'[ensemble intégré en lecture seule](https://code.claude.com/docs/fr/permissions.md#read-only-commands)

276 277 

277Chaque chemin passe également par la [vérification des liens symboliques](https://code.claude.com/docs/fr/permissions.md#symlinks), donc une écriture qui se résout en dehors de cette portée n'est pas auto-approuvée non plus.278Chaque chemin passe également par la [vérification des liens symboliques](https://code.claude.com/docs/fr/permissions.md#symlinks), donc une écriture qui se résout en dehors de cette portée n'est pas auto-approuvée non plus.


369* **Une connexion directe à l'API Anthropic** : dans les sessions de terminal interactif et dans les sessions `-p`, Agent SDK, [extension VS Code](https://code.claude.com/docs/fr/vs-code.md) et [application de bureau](https://code.claude.com/docs/fr/desktop.md), quel que soit votre plan ou type de compte, au fur et à mesure qu'Anthropic le déploie. Dans les sessions de terminal interactif, cela nécessite Claude Code v2.1.271 ou ultérieur sur les plans Pro, Max et Team, et v2.1.278 ou ultérieur sur les plans Enterprise et les comptes Claude API. Dans les sessions `-p`, Agent SDK, extension VS Code et application de bureau, cela nécessite Claude Code v2.1.281 ou ultérieur. À partir de v2.1.282, une session qui [ne récupère pas les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching), par exemple parce que vous avez désactivé la télémétrie, demande au serveur par défaut dans n'importe quel type de session.370* **Une connexion directe à l'API Anthropic** : dans les sessions de terminal interactif et dans les sessions `-p`, Agent SDK, [extension VS Code](https://code.claude.com/docs/fr/vs-code.md) et [application de bureau](https://code.claude.com/docs/fr/desktop.md), quel que soit votre plan ou type de compte, au fur et à mesure qu'Anthropic le déploie. Dans les sessions de terminal interactif, cela nécessite Claude Code v2.1.271 ou ultérieur sur les plans Pro, Max et Team, et v2.1.278 ou ultérieur sur les plans Enterprise et les comptes Claude API. Dans les sessions `-p`, Agent SDK, extension VS Code et application de bureau, cela nécessite Claude Code v2.1.281 ou ultérieur. À partir de v2.1.282, une session qui [ne récupère pas les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching), par exemple parce que vous avez désactivé la télémétrie, demande au serveur par défaut dans n'importe quel type de session.

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

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

373* **Une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md) dans un environnement hébergé par Anthropic** : quel que soit votre plan, lorsque vous la démarrez depuis le web, l'application mobile ou l'application de bureau avec **Cloud** sélectionné. Les sessions démarrées par une [tâche planifiée cloud](https://code.claude.com/docs/fr/routines.md) interrogent le serveur au fur et à mesure qu'Anthropic le déploie.

372 374 

373Là où le serveur examine les actions, ses verdicts en décident. Deux autres résultats sont possibles :375Là où le serveur examine les actions, ses verdicts en décident. Deux autres résultats sont possibles :

374 376 


647 649 

648Le mode `bypassPermissions` désactive les invites de permission et les contrôles de sécurité afin que les appels d'outils s'exécutent immédiatement, y compris les écritures vers les [chemins protégés](#protected-paths).650Le mode `bypassPermissions` désactive les invites de permission et les contrôles de sécurité afin que les appels d'outils s'exécutent immédiatement, y compris les écritures vers les [chemins protégés](#protected-paths).

649 651 

650Les [actions qu'aucun mode n'auto-approuve](#actions-no-mode-auto-approves) demandent toujours une confirmation dans ce mode. La lecture de l'[artefact public d'une autre organisation](https://code.claude.com/docs/fr/artifacts.md#read-an-artifact-shared-with-you) nécessite votre approbation, et ce mode ne la demande pas, donc Claude ne peut pas en lire. Les refus [Remove-Item dans PowerShell](#remove-item-in-powershell) s'appliquent également dans ce mode.652Même en mode `bypassPermissions`, chacune des [actions qu'aucun mode n'auto-approuve](#actions-no-mode-auto-approves) fait l'objet d'une demande ou d'un refus au lieu de s'exécuter d'elle-même. La lecture de l'[artefact public d'une autre organisation](https://code.claude.com/docs/fr/artifacts.md#read-an-artifact-shared-with-you) nécessite votre approbation, et ce mode ne la demande pas, donc Claude ne peut pas en lire. Les refus [Remove-Item dans PowerShell](#remove-item-in-powershell) s'appliquent également dans ce mode.

651 653 

652Deux [protections de messagerie inter-sessions](https://code.claude.com/docs/fr/cross-session-messaging.md) s'appliquent toujours dans ce mode, et dans les sessions en mode plan interactif où les permissions de contournement sont disponibles :654Deux [protections de messagerie inter-sessions](https://code.claude.com/docs/fr/cross-session-messaging.md) s'appliquent toujours dans ce mode, et dans les sessions en mode plan interactif où les permissions de contournement sont disponibles :

653 655 


769* `.devcontainer.json`771* `.devcontainer.json`

770* `.ripgreprc`, `pyrightconfig.json`772* `.ripgreprc`, `pyrightconfig.json`

771* `.mcp.json`, `.claude.json`773* `.mcp.json`, `.claude.json`

774* Un fichier que vous avez passé à [`--settings`](https://code.claude.com/docs/fr/cli-reference#cli-flags), `--mcp-config` ou `--agents` au démarrage de la session

772* Le fichier vers lequel pointe votre [fichier de paramètres](https://code.claude.com/docs/fr/settings.md#settings-files-and-who-they-affect) utilisateur, de projet ou local lorsque ce fichier de paramètres est lui-même un lien symbolique, par exemple vers un dépôt de dotfiles. Dans les modes qui acheminent les écritures de chemins protégés vers le classificateur, une écriture vers ce fichier vous demande une confirmation à la place, même lorsqu'une règle d'autorisation correspond. Si le chemin propre du fichier est également celui d'un fichier de paramètres, tel que `.claude/settings.json` dans un autre dossier, l'écriture est acheminée vers le classificateur comme les autres écritures de chemins protégés775* Le fichier vers lequel pointe votre [fichier de paramètres](https://code.claude.com/docs/fr/settings.md#settings-files-and-who-they-affect) utilisateur, de projet ou local lorsque ce fichier de paramètres est lui-même un lien symbolique, par exemple vers un dépôt de dotfiles. Dans les modes qui acheminent les écritures de chemins protégés vers le classificateur, une écriture vers ce fichier vous demande une confirmation à la place, même lorsqu'une règle d'autorisation correspond. Si le chemin propre du fichier est également celui d'un fichier de paramètres, tel que `.claude/settings.json` dans un autre dossier, l'écriture est acheminée vers le classificateur comme les autres écritures de chemins protégés

773 776 

774## Chemins critiques777## Chemins critiques


844 847 

845Pour un glob ou une barre oblique finale sous une variable, l'invite nomme la commande `rm` signalée et indique comment la réécrire pour que la vérification passe.848Pour un glob ou une barre oblique finale sous une variable, l'invite nomme la commande `rm` signalée et indique comment la réécrire pour que la vérification passe.

846 849 

850### L'invite `Dangerous rm operation not ruled out`

851 

852La raison complète indique :

853 

854```text theme={null}

855Dangerous rm operation not ruled out — the shell may read this command differently than it was parsed

856```

857 

858Cette raison signifie que le shell peut lire la commande différemment de Claude Code : une suppression pourrait donc se trouver dans une partie non vérifiée, même en l'absence de `rm`. En mode `auto` ou `bypassPermissions`, un refus contenant cette phrase provient de la même vérification :

859 

860```text theme={null}

861This command could not be checked for dangerous rm operations: the shell may read it differently than it was parsed.

862```

863 

864Vous recevez l'invite ou le refus qu'une suppression de chemin critique reçoit [dans votre mode de permission](#critical-path-removals-in-each-permission-mode), `bypassPermissions` compris. Vous ne pouvez pas approuver la commande avec une règle allow `Bash` ou `Bash(*)`, le [mode auto-allow](https://code.claude.com/docs/fr/sandboxing.md#auto-allow-mode) du sandbox ou un hook `PreToolUse` qui retourne `"allow"`. Lisez la commande, puis approuvez l'invite ou, après un refus, exécutez-la dans votre shell.

865 

847### L'invite de lecteur monté866### L'invite de lecteur monté

848 867 

849L'invite de lecteur monté apparaît sous macOS, Linux et WSL quand un `rm` récursif cible un [chemin de lecteur monté](#paths-that-get-the-mounted-drive-prompt) répertorié, comme `/mnt/c` ou `/Volumes/USB/build`. Sa raison indique `Dangerous rm operation on mounted drive path: <path>`. Une cible `/*` reçoit l'invite sans le flag récursif, car Claude Code lit `rm /Volumes/USB/build/*` comme une suppression de `/Volumes/USB/build`.868L'invite de lecteur monté apparaît sous macOS, Linux et WSL quand un `rm` récursif cible un [chemin de lecteur monté](#paths-that-get-the-mounted-drive-prompt) répertorié, comme `/mnt/c` ou `/Volumes/USB/build`. Sa raison indique `Dangerous rm operation on mounted drive path: <path>`. Une cible `/*` reçoit l'invite sans le flag récursif, car Claude Code lit `rm /Volumes/USB/build/*` comme une suppression de `/Volumes/USB/build`.


900| `plan` | Vous demande de l'approuver. Quand [le classificateur examine les commandes pendant la planification](#analyze-before-you-edit-with-plan-mode) et qu'aucune permission de contournement n'est disponible, la traite comme en mode `auto` |919| `plan` | Vous demande de l'approuver. Quand [le classificateur examine les commandes pendant la planification](#analyze-before-you-edit-with-plan-mode) et qu'aucune permission de contournement n'est disponible, la traite comme en mode `auto` |

901| `auto` | Vous demande de l'approuver dans le terminal, avec une [limite de temps](#time-limits-and-denials-in-auto-and-bypasspermissions-modes). Ailleurs, la refuse |920| `auto` | Vous demande de l'approuver dans le terminal, avec une [limite de temps](#time-limits-and-denials-in-auto-and-bypasspermissions-modes). Ailleurs, la refuse |

902| `dontAsk` | La refuse |921| `dontAsk` | La refuse |

903| `bypassPermissions` | Vous demande de l'approuver, avec une limite de temps dans le terminal |922| `bypassPermissions` | Dans le terminal, vous demande de l'approuver avant l'expiration d'une limite de temps. Ailleurs, consultez [ce qui se passe à chaque endroit](#time-limits-and-denials-in-auto-and-bypasspermissions-modes) |

904 923 

905Si une [règle ask](https://code.claude.com/docs/fr/permissions.md#manage-permissions) explicite correspond à la commande, Claude Code vous demande à la place, même en mode `auto` et sans limite de temps. Dans les modes qui demandent, un [hook `PermissionRequest`](https://code.claude.com/docs/fr/hooks#permissionrequest) peut répondre à l'invite.924Si une [règle ask](https://code.claude.com/docs/fr/permissions.md#manage-permissions) explicite correspond à la commande, Claude Code vous demande à la place, même en mode `auto` et sans limite de temps. Dans les modes qui demandent, un [hook `PermissionRequest`](https://code.claude.com/docs/fr/hooks#permissionrequest) peut répondre à l'invite.

906 925 


912* Appuyez sur n'importe quelle touche pendant que l'invite est ouverte pour arrêter le compte à rebours et garder l'invite en attente de votre réponse.931* Appuyez sur n'importe quelle touche pendant que l'invite est ouverte pour arrêter le compte à rebours et garder l'invite en attente de votre réponse.

913* Après trois de ces invites qui s'épuisent sans réponse dans une session, Claude Code arrête de les afficher et refuse immédiatement les suppressions de chemins critiques supplémentaires. L'envoi d'un nouveau message recommence le compte.932* Après trois de ces invites qui s'épuisent sans réponse dans une session, Claude Code arrête de les afficher et refuse immédiatement les suppressions de chemins critiques supplémentaires. L'envoi d'un nouveau message recommence le compte.

914 933 

915En mode `auto`, partout où Claude Code ne peut pas vous afficher une invite de terminal, il refuse la commande immédiatement, par exemple dans les [exécutions non interactives](https://code.claude.com/docs/fr/headless.md) avec `-p`, dans les sessions [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/permissions.md), et dans le panneau de chat de l'extension VS Code et l'application Desktop. Le refus dit à Claude de signaler ce qu'il voulait supprimer et de laisser la suppression à vous.934La limite de temps s'applique dans Claude Code v2.1.281 et ultérieur, tout comme le refus en mode `auto` hors du terminal.

935 

936Hors du terminal, vous ne recevez pas cette invite :

916 937 

917La gestion `auto` et `bypassPermissions` nécessite Claude Code v2.1.281 ou ultérieur. Pour la désactiver, définissez [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1`](https://code.claude.com/docs/fr/env-vars#variables) dans l'environnement qui lance Claude Code. En mode `auto`, les suppressions de chemins critiques vont alors au classificateur à la place, et en mode `bypassPermissions` l'invite n'a pas de limite de temps.938| Où | `auto` | `bypassPermissions` |

939| :- | :- | :- |

940| Panneau de chat de l'[extension VS Code](https://code.claude.com/docs/fr/vs-code.md) | La refuse | La refuse, sauf si un [hook `PermissionRequest`](https://code.claude.com/docs/fr/hooks#permissionrequest) l'autorise |

941| [Application Desktop](https://code.claude.com/docs/fr/desktop.md) | La refuse | La refuse, sauf si un hook `PermissionRequest` l'autorise |

942| [Exécution `-p`](https://code.claude.com/docs/fr/headless) ou [session Agent SDK](https://code.claude.com/docs/fr/agent-sdk/permissions.md) | La refuse | Votre [`--permission-prompt-tool`](https://code.claude.com/docs/fr/cli-reference#cli-flags) ou votre [callback `canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input#handle-tool-approval-requests) décide. Sans l'un ni l'autre, ou avec [`--permission-prompts none`](https://code.claude.com/docs/fr/headless#turn-off-permission-prompts-in-unattended-runs), la refuse, sauf si un hook `PermissionRequest` l'autorise |

943 

944Partout où la suppression est refusée, vous pouvez lire la commande entière et l'exécuter dans votre shell.

945 

946Pour changer ce que vous obtenez dans chaque mode, définissez [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`](https://code.claude.com/docs/fr/env-vars#variables) sur `1` :

947 

948* **`bypassPermissions`** : l'invite du terminal n'a pas de limite de temps, et le panneau de chat VS Code vous demande

949* **`auto`** : le [classificateur](#eliminate-prompts-with-auto-mode) décide, dans le terminal, le panneau de chat VS Code, les exécutions `-p` et les sessions Agent SDK

950 

951Définissez-la dans l'environnement qui démarre Claude Code, comme votre shell ou l'option `env` du SDK, et non dans un fichier de paramètres Claude Code. Pour le panneau de chat, ajoutez-la à [`claudeCode.environmentVariables`](https://code.claude.com/docs/fr/vs-code#extension-settings) dans le fichier utilisateur `settings.json` de VS Code lui-même, puis démarrez une nouvelle conversation :

952 

953```json theme={null}

954{

955 "claudeCode.environmentVariables": [

956 { "name": "CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT", "value": "1" }

957 ]

958}

959```

918 960 

919### Remove-Item dans PowerShell961### Remove-Item dans PowerShell

920 962 

Details

41 41 

42Si un tutoriel ou d'anciennes instructions vous demandent d'exécuter `/plugin marketplace add anthropics/claude-code`, cette commande ajoute la marketplace de démonstration, nommée `claude-code-plugins`. Il ne s'agit pas de la marketplace officielle.42Si un tutoriel ou d'anciennes instructions vous demandent d'exécuter `/plugin marketplace add anthropics/claude-code`, cette commande ajoute la marketplace de démonstration, nommée `claude-code-plugins`. Il ne s'agit pas de la marketplace officielle.

43 43 

44La plupart des plugins de la marketplace de démonstration figurent également dans la marketplace officielle sous les mêmes noms. Par exemple, `code-review`, `feature-dev`, `commit-commands` et `security-guidance` sont présents dans les deux. Installez-les depuis `claude-plugins-official` afin de ne pas avoir deux copies installées.44La plupart des plugins de la marketplace de démonstration figurent également dans la marketplace officielle sous les mêmes noms. Par exemple, `code-review`, `feature-dev` et `commit-commands` sont présents dans les deux. Installez-les depuis `claude-plugins-official` afin de ne pas avoir deux copies installées.

45 45 

46## Trouver des plugins dans la marketplace officielle46## Trouver des plugins dans la marketplace officielle

47 47 

Details

403 403 

404Pour les plages de version, la convention de balise git `<plugin>--v<version>` qu'elles se résolvent par rapport à, et la confiance entre marketplaces, voir [Dépendances de plugin](https://code.claude.com/docs/fr/plugins/dependencies.md).404Pour les plages de version, la convention de balise git `<plugin>--v<version>` qu'elles se résolvent par rapport à, et la confiance entre marketplaces, voir [Dépendances de plugin](https://code.claude.com/docs/fr/plugins/dependencies.md).

405 405 

406Pour que Claude Code suggère un plugin quand un projet le correspond, ajoutez un bloc `relevance` à l'entrée avec les signaux qui identifient le projet. Les utilisateurs voient les suggestions de votre marketplace uniquement quand un administrateur l'énumère dans `pluginSuggestionMarketplaces`. Pour les signaux et l'étape d'activation, voir [Pertinence du plugin](https://code.claude.com/docs/fr/plugins/relevance.md).406Pour que Claude Code suggère un plugin quand un projet le correspond, ajoutez un bloc `relevance` à l'entrée avec les signaux qui identifient le projet. Les utilisateurs voient ces suggestions uniquement quand un administrateur énumère votre marketplace dans `pluginSuggestionMarketplaces`. Pour les signaux et l'étape d'activation, voir [Pertinence du plugin](https://code.claude.com/docs/fr/plugins/relevance.md).

407 407 

408## Contourner ce qu'une marketplace ne peut pas faire408## Contourner ce qu'une marketplace ne peut pas faire

409 409 

Details

95 95 

96Aucun de ces contrôles n'isole un mod. Un mod que vous autorisez s'exécute en tant qu'utilisateur, avec l'accès de l'utilisateur aux fichiers, processus, et réseau.96Aucun de ces contrôles n'isole un mod. Un mod que vous autorisez s'exécute en tant qu'utilisateur, avec l'accès de l'utilisateur aux fichiers, processus, et réseau.

97 97 

98### Savoir quels hooks du mod d'un utilisateur ne s'exécutent pas

99 

100Là où le [garde-fou intégré](#know-what-happens-by-default) se charge, un hook que le mod d'un utilisateur enregistre sur l'un de ces événements ne s'exécute jamais, et `/plugin` en informe cet utilisateur par une note. Dans les lignes [`session.append`](https://code.claude.com/docs/fr/plugins/mods/reference#session), `door` est le type de ligne stockée sur lequel le hook est filtré.

101 

102| Hook sur | Ce qu'est l'événement |

103| :- | :- |

104| [`classic.<Event>`](https://code.claude.com/docs/fr/plugins/mods/events#hook-the-settings-hook-events), comme `classic.Stop` | Un [événement de hook de paramètres](https://code.claude.com/docs/fr/hooks.md#hook-events) |

105| [`prompt.compose`](https://code.claude.com/docs/fr/plugins/mods/reference#prompts-and-what-claude-reads) | La liste des sections du prompt système |

106| `prompt.section` | Une section du prompt système |

107| `prompt.context` | Le contexte envoyé avec le premier message d'une conversation |

108| `prompt.attachment` | Un message que Claude Code ajoute pour Claude, comme un rappel |

109| `skill.prompt` | Le texte d'un skill tel qu'il est développé pour Claude |

110| `attribution.text` | Le texte d'attribution d'un commit ou d'une pull request |

111| [`session.compact`](https://code.claude.com/docs/fr/plugins/mods/reference#session) | Une compaction de la conversation |

112| `settings.read` | Une lecture des paramètres, comme un appel `$.settings.read` d'un mod |

113| `session.append{door=attachment}` | La ligne stockée pour un message que Claude Code ajoute pour Claude |

114| `session.append{door=hook-context}` | La ligne stockée pour le contexte provenant d'un hook de paramètres |

115| `session.append{door=compaction}` | Les lignes stockées pour le résumé et la limite d'une compaction |

116 

117Le garde-fou ignore aussi les hooks d'un utilisateur dans certains autres cas, comme les descriptions des outils de votre organisation, sur [`tool.describe`](https://code.claude.com/docs/fr/plugins/mods/reference#tools), et la ligne stockée pour le texte d'un skill. `/plugin` n'affiche aucune note pour ceux-ci. Si un hook sur un autre événement ne fait rien, voir [Découvrir pourquoi un mod ne fait rien](https://code.claude.com/docs/fr/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing).

118 

119La note apparaît dans les détails du plugin et dans l'onglet **Errors** de `/plugin`. Elle nécessite Claude Code v2.1.299 ou ultérieure. Elle nomme chaque hook du tableau tel que le mod l'a enregistré, comme dans cet exemple :

120 

121```text theme={null}

122Its hooks on classic.Stop, prompt.section do not run here: where an organization manages Claude Code, these events pass over the plugins you install

123Only a plugin that counts as your organization's own runs hooks on these events. An administrator sets that up in managed settings

124```

125 

126Pour permettre à ces hooks de s'exécuter, modifiez les paramètres gérés de l'une de ces deux manières :

127 

128* **Exécuter le mod comme celui de votre organisation** : [installez le mod de sorte qu'il compte comme le vôtre](#install-your-organizations-mods). Ses hooks sur ces événements s'exécutent alors, et le garde-fou reste chargé pour tous les autres mods. Le mod s'active pour tous ceux qui reçoivent ces paramètres, et il doit se trouver dans un répertoire que vous placez sur chaque machine. Si vous le listez dans `prependPlugins`, conservez `sec-default@builtin` dans la liste.

129* **Retirer le garde-fou** : omettez `sec-default@builtin` de `prependPlugins`. Une liste vide, `"prependPlugins": []`, suffit. Vous perdez l'ensemble du garde-fou, pas seulement ces événements. Le mod d'un utilisateur peut alors faire ce que [le garde-fou l'empêche sinon de faire](#know-what-happens-by-default), et [les options du garde-fou](#set-options-on-the-built-in-guard) ne s'appliquent pas.

130 

131Si vous fournissez une liste sans le garde-fou via des [paramètres gérés par le serveur](https://code.claude.com/docs/fr/server-managed-settings.md#fetch-and-caching-behavior), le garde-fou reste chargé jusqu'à ce que le serveur confirme les paramètres pour la session. Pour confirmer l'un ou l'autre changement sur une machine qui exécute la v2.1.299 ou ultérieure, ouvrez `/plugin` dans une session sur cette machine et vérifiez que la note a disparu.

132 

133Un hook `session.append` sans filtre `door` s'exécute toujours et ne reçoit aucune note, mais les lignes stockées du tableau ne lui parviennent pas.

134 

98## Décider de laisser les mods activés135## Décider de laisser les mods activés

99 136 

100Un mod peut faire plus que les autres parties d'un plugin car il s'exécute à l'intérieur de Claude Code. Il voit chaque invite et appel d'outil, peut les changer, et peut autoriser ou refuser un appel d'outil avant qu'une invite de permission n'apparaisse.137Un mod peut faire plus que les autres parties d'un plugin car il s'exécute à l'intérieur de Claude Code. Il voit chaque invite et appel d'outil, peut les changer, et peut autoriser ou refuser un appel d'outil avant qu'une invite de permission n'apparaisse.


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

143| `$.session.send` | Envoie un message que lit le Claude d'une autre session, d'un sous-agent ou d'un [coéquipier](https://code.claude.com/docs/fr/agent-teams.md) |180| `$.session.send` | Envoie un message que lit le Claude d'une autre session, d'un sous-agent ou d'un [coéquipier](https://code.claude.com/docs/fr/agent-teams.md) |

144 181 

145Dans la ligne `hooks:`, [`tool.call`](https://code.claude.com/docs/fr/plugins/mods/reference#tools) et [`prompt.submit`](https://code.claude.com/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`](https://code.claude.com/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}`](https://code.claude.com/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.182Dans la ligne `hooks:`, [`tool.call`](https://code.claude.com/docs/fr/plugins/mods/reference#tools) et [`prompt.submit`](https://code.claude.com/docs/fr/plugins/mods/reference#prompts-and-what-claude-reads) signifient que le mod voit chaque appel d'outil et chaque prompt, et peut les changer. [`session.append`](https://code.claude.com/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, à l'exception des [lignes que la protection ignore](#hooks-the-guard-passes-over). [`ui.render{component=AskUserQuestion}`](https://code.claude.com/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 demande 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.

146 183 

147## Choisir le niveau d'autorisation184## Choisir le niveau d'autorisation

148 185 

Details

377 377 

378### Gérer les événements des hooks des paramètres378### Gérer les événements des hooks des paramètres

379 379 

380Les hooks des paramètres sont les hooks de type commande, HTTP, prompt et agent que vous configurez dans les fichiers de paramètres. Chaque [événement de hook des paramètres](https://code.claude.com/docs/fr/hooks.md#hook-events), comme `Stop`, `SessionEnd` ou `PostToolUse`, est aussi un événement nommé `classic.` suivi du nom de l'événement, comme `classic.Stop`. `e` est le JSON qu'un hook des paramètres reçoit sur stdin, y compris `transcript_path`.380Les hooks de paramètres sont les hooks de type commande, HTTP, prompt et agent que vous configurez dans les fichiers de paramètres. Chaque [événement de hook de paramètres](https://code.claude.com/docs/fr/hooks.md#hook-events), comme `Stop`, `SessionEnd` ou `PostToolUse`, est aussi un événement nommé `classic.` suivi du nom de l'événement de hook de paramètres, comme `classic.Stop`. `e` est le JSON qu'un hook de paramètres reçoit sur stdin, y compris `transcript_path`. Là où le [garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#know-what-happens-by-default) se charge, [un hook sur ces événements dans un mod que vous installez ne s'exécute pas](https://code.claude.com/docs/fr/plugins/mods/admin.md#hooks-the-guard-passes-over).

381 381 

382Ce hook utilise `Stop`, qui se déclenche lorsque Claude a fini de répondre, pour consigner l'emplacement où la transcription de la session est enregistrée :382Ce hook utilise `Stop`, qui se déclenche lorsque Claude a fini de répondre, pour consigner l'emplacement où la transcription de la session est enregistrée :

383 383 


425* **Il a échoué avant d'appeler `next`** : Claude Code le saute, et le gestionnaire suivant s'exécute à sa place425* **Il a échoué avant d'appeler `next`** : Claude Code le saute, et le gestionnaire suivant s'exécute à sa place

426* **Il a échoué après que `next` se soit résolu** : ce résultat tient, et rien ne s'exécute une deuxième fois426* **Il a échoué après que `next` se soit résolu** : ce résultat tient, et rien ne s'exécute une deuxième fois

427 427 

428Une ligne nomme le mod, l'événement, et la raison, comme `my-mod: tool.call hook skipped: threw Error: boom`. Où vous la lisez dépend de la session, comme [Découvrir pourquoi un mod ne fait rien](https://code.claude.com/docs/fr/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) l'énumère. Un hook `ui.render` dont le dessin ne valide pas est rapporté différemment, comme [Construire un arbre à partir d'éléments](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements) le décrit.428Une ligne nomme le mod, l'événement, et la raison, comme `my-mod: tool.call hook skipped: threw Error: boom`. Où vous la lisez dépend de la session, comme [Découvrir pourquoi un mod ne fait rien](https://code.claude.com/docs/fr/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing) l'énumère. Un hook `ui.render` dont l'[arbre ne se valide pas](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements) compte comme un hook qui a retourné un résultat de la mauvaise forme.

429 429 

430Pour qu'un hook qui bloque les appels échoue en mode fermé, ajoutez un gestionnaire d'erreur `.catch` qui répond à sa place. Ici, `guard` est votre fonction hook, et le gestionnaire teste [`next.called`](https://code.claude.com/docs/fr/plugins/mods/reference#the-hook-function) pour savoir si `guard` avait déjà appelé `next` lorsqu'il a échoué :430Pour qu'un hook qui bloque les appels échoue en mode fermé, ajoutez un gestionnaire d'erreur `.catch` qui répond à sa place. Ici, `guard` est votre fonction hook, et le gestionnaire teste [`next.called`](https://code.claude.com/docs/fr/plugins/mods/reference#the-hook-function) pour savoir si `guard` avait déjà appelé `next` lorsqu'il a échoué :

431 431 

Details

421Note: Type a note and press Enter421Note: Type a note and press Enter

422```422```

423 423 

424Ajoutez `rows` pour que le champ puisse contenir plusieurs lignes. Entrée soumet toujours le texte, et une barre oblique inverse avant Entrée commence une nouvelle ligne, tout comme Maj+Entrée là où [le terminal le prend en charge](https://code.claude.com/docs/fr/terminal-config.md#enter-multiline-prompts). La galerie montre [un champ avec `rows`](https://code.claude.com/docs/fr/plugins/mods/gallery#input).

425 

424La [galerie d'interfaces](https://code.claude.com/docs/fr/plugins/mods/gallery.md) contient des exemples et des captures d'écran de la plupart des éléments. Ce tableau liste chaque élément :426La [galerie d'interfaces](https://code.claude.com/docs/fr/plugins/mods/gallery.md) contient des exemples et des captures d'écran de la plupart des éléments. Ce tableau liste chaque élément :

425 427 

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


436 438 

437Si votre module est un fichier `.tsx` ou `.jsx`, vous pouvez écrire l'arbre en JSX. Déstructurez les éléments de `$.ui.resolve(e)` d'abord.439Si votre module est un fichier `.tsx` ou `.jsx`, vous pouvez écrire l'arbre en JSX. Déstructurez les éléments de `$.ui.resolve(e)` d'abord.

438 440 

439Si un arbre utilise un élément que l'application n'a pas, une prop qu'un élément ne prend pas, ou un enfant où aucun ne va, Claude Code dessine sa propre version du site.441Si votre dessin ne s'affiche pas, vérifiez si son arbre contient une prop qu'un élément ne prend pas ou un enfant là où aucun ne va. Un hook qui retourne un tel arbre [échoue](https://code.claude.com/docs/fr/plugins/mods/events.md#handle-a-hook-that-fails), et une [ligne `hook skipped`](https://code.claude.com/docs/fr/plugins/mods/troubleshoot#a-pane-or-band-is-empty) nomme votre mod et la règle que l'arbre a enfreinte. Pour un `Text` dans un volet avec une prop nommée `bogusProp`, cette ligne indique :

440 442 

441Dans une session démarrée avec `--plugin-dir`, une ligne de transcription le dit, comme `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. Le [journal de débogage](https://code.claude.com/docs/fr/plugins/mods/troubleshoot.md#read-the-debug-log) l'enregistre comme `ui.render (Pane): a hook returned a tree that does not validate` avec la même raison. Rien d'autre n'apparaît dans la session, donc quand un dessin ne s'affiche pas, vérifiez cette ligne ou le journal.443```text theme={null}

444my-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Text prop "bogusProp" is not allowed)

445```

442 446 

443### `Link` dans l'application Desktop et VS Code447### `Link` dans l'application Desktop et VS Code

444 448 


542| Touche | Ce qu'elle fait |546| Touche | Ce qu'elle fait |

543| :- | :- |547| :- | :- |

544| Tab | Se déplace vers le contrôle suivant |548| Tab | Se déplace vers le contrôle suivant |

545| Haut et Bas | Se déplacent entre les contrôles pendant que votre dessin s'adapte. Quand le volet ou la bande a plus de lignes qu'il ne peut en afficher, ils le font défiler. |549| Haut et Bas | Se déplacent entre les contrôles pendant que votre dessin s'adapte. Quand le volet ou la bande a plus de lignes qu'il ne peut en afficher, ils le font défiler. Dans un `Input`, ils [se déplacent d'abord entre les lignes du champ](https://code.claude.com/docs/fr/plugins/mods/gallery.md#input). |

546| Entrée | Appuie sur le `Button` ciblé, soumet le `Input` ciblé, ou choisit dans un `Select` |550| Entrée | Appuie sur le `Button` ciblé, soumet le `Input` ciblé, ou choisit dans un `Select` |

547| La touche de raccourci d'un bouton | Appuie sur ce bouton. Pendant qu'un `Input` a le focus, chaque touche imprimable va au champ. |551| La touche de raccourci d'un bouton | Appuie sur ce bouton. Pendant qu'un `Input` a le focus, chaque touche imprimable va au champ. |

548| Page Up, Page Down, Home et End | Font défiler votre volet ou votre bande quand il a plus de lignes qu'il ne peut en afficher |552| Page Up, Page Down, Home et End | Font défiler votre volet ou votre bande quand il a plus de lignes qu'il ne peut en afficher |

Details

275| [`Link`](https://code.claude.com/docs/fr/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consultez [Limites](#limits). | ✓ | ✓ | ✓ |275| [`Link`](https://code.claude.com/docs/fr/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consultez [Limites](#limits). | ✓ | ✓ | ✓ |

276| [`Code`](https://code.claude.com/docs/fr/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |276| [`Code`](https://code.claude.com/docs/fr/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |

277| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |277| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |

278| [`Input`](https://code.claude.com/docs/fr/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ | ✓ |278| [`Input`](https://code.claude.com/docs/fr/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, [`rows`](https://code.claude.com/docs/fr/plugins/mods/gallery#input), `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ | ✓ |

279| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ | ✓ |279| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ | ✓ |

280| `Svg` | Une `source` de balisage SVG jusqu'à 131 072 caractères, un texte `alt`, `width`, `height` et `isInteractive` | | ✓ | ✓ |280| `Svg` | Une `source` de balisage SVG jusqu'à 131 072 caractères, un texte `alt`, `width`, `height` et `isInteractive` | | ✓ | ✓ |

281| [`Client`](https://code.claude.com/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key`, `props`, `width`, `height`, `flexGrow` | ✓ | ✓ | |281| [`Client`](https://code.claude.com/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key`, `props`, `width`, `height`, `flexGrow` | ✓ | ✓ | |


333 333 

334Si vous définissez `gap`, `padding` ou `margin` sur un pas, celui-ci s'applique à la fois en largeur et en hauteur. Par exemple, dans le terminal et l'extension VS Code, `padding: 'md'` correspond à deux cellules de chaque côté et à une ligne au-dessus et en dessous.334Si vous définissez `gap`, `padding` ou `margin` sur un pas, celui-ci s'applique à la fois en largeur et en hauteur. Par exemple, dans le terminal et l'extension VS Code, `padding: 'md'` correspond à deux cellules de chaque côté et à une ligne au-dessus et en dessous.

335 335 

336Les noms de pas nécessitent Claude Code v2.1.299 ou une version ultérieure. Sur une version antérieure, Claude Code [dessine sa propre version du site](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements) à la place d'un arbre qui utilise un nom de pas.336Les noms de pas nécessitent Claude Code v2.1.299 ou une version ultérieure. Sur une version antérieure, un arbre qui utilise un nom de pas n'est pas dessiné.

337 337 

338### Props typographiques de `Text`338### Props typographiques de `Text`

339 339 


346| `mono` | `true` pour demander la police à chasse fixe de l'application | Ignorée : le terminal est toujours à chasse fixe | Ignorée, le texte conserve donc la police propre à l'extension |346| `mono` | `true` pour demander la police à chasse fixe de l'application | Ignorée : le terminal est toujours à chasse fixe | Ignorée, le texte conserve donc la police propre à l'extension |

347| `tabular` | `true` pour demander des chiffres de largeur égale, afin qu'un nombre mis à jour sur place ou une colonne de nombres reste aligné | Ignorée : les chiffres du terminal occupent déjà une cellule chacun | Ignorée |347| `tabular` | `true` pour demander des chiffres de largeur égale, afin qu'un nombre mis à jour sur place ou une colonne de nombres reste aligné | Ignorée : les chiffres du terminal occupent déjà une cellule chacun | Ignorée |

348 348 

349Ces quatre props nécessitent Claude Code v2.1.299 ou une version ultérieure. Sur une version antérieure, Claude Code [dessine sa propre version du site](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements) à la place d'un arbre qui définit `size`, `weight`, `mono` ou `tabular`.349Ces quatre props nécessitent Claude Code v2.1.299 ou une version ultérieure. Sur une version antérieure, un arbre qui définit `size`, `weight`, `mono` ou `tabular` n'est pas dessiné.

350 350 

351#### Remplacer `bold` par `weight`351#### Remplacer `bold` par `weight`

352 352 

353`bold` sur un `Text` est déprécié au profit de `weight` et fonctionne toujours. Pour le remplacer sur un `Text` sans `weight`, changez `bold: true` en `weight: 'semibold'` pour obtenir le même résultat sur Claude Code v2.1.299 ou une version ultérieure.353`bold` sur un `Text` est déprécié au profit de `weight` et fonctionne toujours. Pour le remplacer sur un `Text` sans `weight`, changez `bold: true` en `weight: 'semibold'` pour obtenir le même résultat sur Claude Code v2.1.299 ou une version ultérieure.

354 354 

355Sur une version antérieure à v2.1.299, un arbre qui définit `weight` n'est pas dessiné, et Claude Code [dessine sa propre version du site](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements) à la place. Si vous définissez à la fois `bold` et `weight` sur un `Text`, `bold` n'a aucun effet.355Sur une version antérieure à v2.1.299, un arbre qui définit `weight` n'est pas dessiné. Si vous définissez à la fois `bold` et `weight` sur un `Text`, `bold` n'a aucun effet.

356 356 

357## Limites357## Limites

358 358 

359Les hooks et les appels à l'API des mods s'exécutent sous des limites de temps et de taille. Claude Code ignore un hook qui dépasse une limite de temps.359Les hooks et les appels à l'API des mods s'exécutent sous des limites de temps et de taille. Claude Code ignore un hook qui dépasse une limite de temps. Un arbre qui dépasse la limite d'imbrication, d'éléments, de cellules `Raster` ou d'octets `Image` [n'est pas dessiné](https://code.claude.com/docs/fr/plugins/mods/troubleshoot.md#a-pane-or-band-is-empty).

360 360 

361| Limite | Valeur |361| Limite | Valeur |

362| :- | :- |362| :- | :- |


372| Redirections suivies par un appel `$.http.fetch` | 5 |372| Redirections suivies par un appel `$.http.fetch` | 5 |

373| 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](https://code.claude.com/docs/fr/plugins/mods/events.md#handle-a-hook-that-fails) à la place. |373| 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](https://code.claude.com/docs/fr/plugins/mods/events.md#handle-a-hook-that-fails) à la place. |

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

375| 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](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements). |375| 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, le hook `ui.render` qui l'a renvoyé [échoue](https://code.claude.com/docs/fr/plugins/mods/events.md#handle-a-hook-that-fails). |

376| Le `href` d'un `Link` | 2 048 caractères. Un `href` plus long empêche le dessin de l'arbre entier. |376| Le `href` d'un `Link` | 2 048 caractères. S'il est plus long, le hook `ui.render` qui l'a renvoyé [échoue](https://code.claude.com/docs/fr/plugins/mods/events.md#handle-a-hook-that-fails). |

377| Profondeur d'imbrication d'un arbre | 32 niveaux sous l'élément racine |

378| Éléments et enfants texte dans un arbre | 20 000 |

379| Cellules `Raster` dans un arbre, soit les `columns` de chaque `Raster` multipliées par ses `rows` | 262 144 |

380| Octets PNG ou RGBA de l'ensemble des `Image` d'un arbre | 2 Mio |

377| `$.store` | 4 Mio de JSON au total |381| `$.store` | 4 Mio de JSON au total |

378| `$.session.messages()` | Les 4 096 entrées les plus récentes |382| `$.session.messages()` | Les 4 096 entrées les plus récentes |

379| Redessins `$.ui.invalidate('ui.render')` | Limités à 10 par seconde, ou 30 dans le terminal pour le volet visible, le bandeau déployé et la ligne d'indication sous le prompt. Les appels plus rapprochés sont regroupés. |383| Redessins `$.ui.invalidate('ui.render')` | Limités à 10 par seconde, ou 30 dans le terminal pour le volet visible, le bandeau déployé et la ligne d'indication sous le prompt. Les appels plus rapprochés sont regroupés. |

Details

312| Méthode | Ce qu'elle fait |312| Méthode | Ce qu'elle fait |

313| :- | :- |313| :- | :- |

314| `press({ key: 'more' })` | Appuie sur le `Button` avec cette clé |314| `press({ key: 'more' })` | Appuie sur le `Button` avec cette clé |

315| `input({ key: 'new-note', text: 'buy milk' })` | Tape le texte dans l'`Input` avec cette clé et appuie sur Entrée. Ajoutez `kind: 'change'` pour taper sans soumettre. |315| `input({ key: 'new-note', text: 'buy milk' })` | Tape le texte dans l'`Input` avec cette clé et appuie sur Entrée. Ajoutez `kind: 'change'` pour taper sans soumettre. Pour un champ avec `rows`, le texte peut contenir `\n`. |

316| `select({ key: 'size', value: 'large' })` | Choisit l'option avec cette valeur dans le `Select` avec cette clé |316| `select({ key: 'size', value: 'large' })` | Choisit l'option avec cette valeur dans le `Select` avec cette clé |

317| `find({ key: 'more' })` ou `find({ type: 'Text', text: 'Count: 2' })` | Retourne le premier élément correspondant comme `{ type, props, children }`, ou `undefined`. `text` peut être une chaîne ou une expression régulière. |317| `find({ key: 'more' })` ou `find({ type: 'Text', text: 'Count: 2' })` | Retourne le premier élément correspondant comme `{ type, props, children }`, ou `undefined`. `text` peut être une chaîne ou une expression régulière. |

318| `unmount()` | Supprime le dessin |318| `unmount()` | Supprime le dessin |

319 319 

320Chaque méthode se résout après que votre gestionnaire ait terminé, afin que vous puissiez vérifier le résultat sur la ligne suivante. Définissez `props` à ce que Claude Code passerait pour ce site. Le [tableau des sites de rendu](https://code.claude.com/docs/fr/plugins/mods/reference.md#render-sites) liste les props de chaque site, et [les types pour votre build](https://code.claude.com/docs/fr/plugins/mods/create.md#get-the-types-for-your-build) ont leurs types.320Chaque méthode se résout après que votre gestionnaire ait terminé, afin que vous puissiez vérifier le résultat sur la ligne suivante. Définissez `props` à ce que Claude Code passerait pour ce site. Le [tableau des sites de rendu](https://code.claude.com/docs/fr/plugins/mods/reference.md#render-sites) liste les props de chaque site, et [les types pour votre build](https://code.claude.com/docs/fr/plugins/mods/create.md#get-the-types-for-your-build) ont leurs types.

321 321 

322Un test de dessin vérifie l'arborescence que votre hook retourne et si elle est valide pour cette application. Il ne vérifie pas comment l'application la peint, donc regardez une nouvelle mise en page dans une vraie session aussi.322Pour détecter une [arborescence d'éléments](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements) qui n'est pas valide pour l'application que vous avez indiquée dans `surface`, vérifiez avec `find` la présence d'un élément que votre hook ajoute. Le test ne vérifie pas comment l'application peint une arborescence, donc regardez aussi une nouvelle mise en page dans une vraie session.

323 323 

324### Tester un dessin après `/clear`324### Tester un dessin après `/clear`

325 325 

Details

226 226 

227Pour trouver ce mod, [écrivez un journal de débogage](#read-the-debug-log) et recherchez-y `answered ui.render without next()`. Une ligne telle que `other-mod (user) answered ui.render without next()` nomme un mod qui a retourné son arbre sans appeler `next(e)`. Elle ne nomme pas le [point de rendu](https://code.claude.com/docs/fr/plugins/mods/reference.md#render-sites), si bien qu'un mod qui n'utilise qu'un volet peut aussi apparaître. Un mod qui appelle `next(e)` puis abandonne le résultat ne produit aucune ligne ; vérifiez donc aussi les hooks qui précèdent le vôtre.227Pour trouver ce mod, [écrivez un journal de débogage](#read-the-debug-log) et recherchez-y `answered ui.render without next()`. Une ligne telle que `other-mod (user) answered ui.render without next()` nomme un mod qui a retourné son arbre sans appeler `next(e)`. Elle ne nomme pas le [point de rendu](https://code.claude.com/docs/fr/plugins/mods/reference.md#render-sites), si bien qu'un mod qui n'utilise qu'un volet peut aussi apparaître. Un mod qui appelle `next(e)` puis abandonne le résultat ne produit aucune ligne ; vérifiez donc aussi les hooks qui précèdent le vôtre.

228 228 

229Après la modification, vous ne voyez rien dans la bande si l'un des mods retourne un arbre qui ne valide pas. Pour lire la raison, cherchez une ligne `ui.render (AbovePrompt) refused:` dans la transcription d'une session `--plugin-dir`, ou recherchez `does not validate` dans le journal de débogage. Avec plusieurs mods dans la bande, aucune de ces lignes ne nomme de mod ; vérifiez donc l'arbre de chaque mod.229La bande d'un mod est également absente lorsque l'arbre retourné par son propre hook ne valide pas, et les bandes des autres mods restent affichées. Pour savoir quel mod est en cause et pourquoi, [écrivez un journal de débogage](#read-the-debug-log) et recherchez-y [`ui.render hook skipped`](#a-pane-or-band-is-empty).

230 230 

231### Un volet ou une bande est vide ou affiche le contenu habituel de Claude Code231### Un volet ou une bande est vide ou affiche le contenu habituel de Claude Code

232 232 

233L'[arbre](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements) que votre hook a retourné n'a pas validé. Avec `--plugin-dir`, la transcription dit `ui.render (Pane) refused:` avec la raison, comme dans `first-mod: ui.render (Pane) refused: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse; the engine drew its own`. Le journal de débogage a `a hook returned a tree that does not validate` avec la même raison.233L'[arbre](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements) que votre hook a retourné n'a pas validé. Une ligne [`hook skipped`](#hook-skipped) [dans la transcription ou le journal de débogage](#find-out-why-a-mod-does-nothing) nomme votre mod et la raison, comme celle-ci pour une `Box` dans un volet :

234 234 

235Lisez la raison sur cette ligne. Les causes courantes sont une prop que l'élément ne prend pas et un élément que l'application n'a pas.235```text theme={null}

236first-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse)

237```

238 

239Corrigez ce que la raison indique. Si la raison est tronquée, [écrivez un journal de débogage](#read-the-debug-log) et recherchez-y `a hook returned a tree that does not validate` pour lire la suite.

240 

241Si la ligne indique plutôt `refused:` juste après le nom du point de rendu, comme dans `ui.render (Pane) refused:`, consultez [Une ligne `ui.render` indique `refused`](#ui-render-refused).

242 

243### Une ligne `ui.render` indique `refused`

244 

245`ui.render (<site>) refused:`, ou `ui.render (<site>): the chain settled on a tree that does not validate` dans le [journal de débogage](#read-the-debug-log), signifie que l'[arbre](https://code.claude.com/docs/fr/plugins/mods/interface.md#build-a-tree-from-elements) à ce point de rendu dépasse une [limite de taille](https://code.claude.com/docs/fr/plugins/mods/reference.md#limits). L'une ou l'autre ligne nomme le [point de rendu](https://code.claude.com/docs/fr/plugins/mods/reference.md#render-sites), puis la raison, et la raison nomme la limite.

246 

247Modifiez les mods qui dessinent à ce point de rendu pour que leurs hooks [`ui.render`](https://code.claude.com/docs/fr/plugins/mods/reference#interface) retournent des arbres plus petits, ou demandez à leurs auteurs de le faire. Si la ligne de la transcription commence par `hooks`, plusieurs mods chargés ont un hook `ui.render` pour ce point de rendu ; vérifiez donc l'arbre de chacun de ces mods. Pour plusieurs mods dont les bandes au-dessus du prompt s'imbriquent en un arbre de plus de 32 niveaux de profondeur, la ligne indique :

248 

249```text theme={null}

250hooks: ui.render (AbovePrompt) refused: deeper than 32; nothing was drawn

251```

252 

253Avant la v2.1.307, une ligne `refused:` pour n'importe quel point de rendu signalait tout arbre qui ne validait pas, et pour `Pane` et `AbovePrompt` elle se terminait par `; the engine drew its own`. Sur ces versions, corrigez ce que la raison indique.

236 254 

237### `needs a key`, `is drawn twice` ou `key each once`255### `needs a key`, `is drawn twice` ou `key each once`

238 256 


383hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render401hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render

384```402```

385 403 

386Un dessin qui n'a pas validé compte comme un résultat refusé et obtient aussi une ligne. Pour écrire vos propres lignes dans le journal, appelez [`$.ui.log`](https://code.claude.com/docs/fr/plugins/mods/api#show-something-without-starting-a-turn) avec un deuxième argument, comme dans `$.ui.log('message', { to: 'debug' })`. Sans le deuxième argument, `$.ui.log` ajoute une ligne atténuée à la transcription.404Pour écrire vos propres lignes dans le journal, appelez [`$.ui.log`](https://code.claude.com/docs/fr/plugins/mods/api#show-something-without-starting-a-turn) avec un deuxième argument, comme dans `$.ui.log('message', { to: 'debug' })`. Sans le deuxième argument, `$.ui.log` ajoute une ligne atténuée à la transcription.

387 405 

388Pendant que vous modifiez un mod chargé avec `--plugin-dir`, la transcription affiche une ligne pour chaque rechargement qui nomme le mod et énumère ses hooks. Si une sauvegarde casse le module, la ligne dit `reload failed, the previous version stays loaded:` avec la raison, et la dernière version fonctionnelle continue de s'exécuter jusqu'au prochain rechargement des plugins par Claude Code, par exemple lorsque vous exécutez `/reload-plugins`.406Pendant que vous modifiez un mod chargé avec `--plugin-dir`, la transcription affiche une ligne pour chaque rechargement qui nomme le mod et énumère ses hooks. Si une sauvegarde casse le module, la ligne dit `reload failed, the previous version stays loaded:` avec la raison, et la dernière version fonctionnelle continue de s'exécuter jusqu'au prochain rechargement des plugins par Claude Code, par exemple lorsque vous exécutez `/reload-plugins`.

389 407 

plugins/org.md +6 −2

Details

182| `blockedMarketplaces` | Liste noire des sources de marketplace, vérifiée avant la liste blanche | Ne bloque pas un marketplace déjà enregistré à partir d'une source qu'il ne correspond pas |182| `blockedMarketplaces` | Liste noire des sources de marketplace, vérifiée avant la liste blanche | Ne bloque pas un marketplace déjà enregistré à partir d'une source qu'il ne correspond pas |

183| `syncClaudeAiPlugins` | Définissez `false` pour arrêter Claude Code de télécharger et charger les plugins [synchronisés à partir de claude.ai](https://code.claude.com/docs/fr/plugins/loading.md#synced-plugins) pour le compte de chaque utilisateur. Nécessite Claude Code v2.1.273 ou ultérieur | N'éteint pas un plugin synchronisé. Pour cela, définissez `"<name>@synced": false` dans [`enabledPlugins`](https://code.claude.com/docs/fr/settings-reference#enabledplugins) |183| `syncClaudeAiPlugins` | Définissez `false` pour arrêter Claude Code de télécharger et charger les plugins [synchronisés à partir de claude.ai](https://code.claude.com/docs/fr/plugins/loading.md#synced-plugins) pour le compte de chaque utilisateur. Nécessite Claude Code v2.1.273 ou ultérieur | N'éteint pas un plugin synchronisé. Pour cela, définissez `"<name>@synced": false` dans [`enabledPlugins`](https://code.claude.com/docs/fr/settings-reference#enabledplugins) |

184| `enabledPlugins` | `true` force-active, `false` bloque à chaque portée et masque le plugin | N'installe pas un plugin dont le marketplace n'est pas enregistré ou autorisé |184| `enabledPlugins` | `true` force-active, `false` bloque à chaque portée et masque le plugin | N'installe pas un plugin dont le marketplace n'est pas enregistré ou autorisé |

185| `disableSideloadFlags` | Rejette `--plugin-dir`, `--plugin-url`, `--agents`, l'option `plugins` du SDK Agent, et `--mcp-config` non-SDK au démarrage, et rejette les dossiers nommés dans la variable [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/fr/env-vars#variables) de la même manière | Ne restreint pas `.mcp.json`, `claude mcp add`, ou les serveurs fournis par SDK. Associez-le à [`allowedMcpServers`](https://code.claude.com/docs/fr/managed-mcp) |185| `disableSideloadFlags` | Rejette `--plugin-dir`, `--plugin-url`, `--agents`, l'option `plugins` de l'Agent SDK et les dossiers nommés dans la variable [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/fr/env-vars#variables) au démarrage, ainsi que `--mcp-config`, sauf si chaque serveur qu'il contient est une entrée in-process `type: "sdk"`. Refuse les dossiers de plugins qu'une application Agent SDK ajoute en cours de session avec [`addPlugins`](https://code.claude.com/docs/fr/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) | Ne restreint pas `.mcp.json`, `claude mcp add` ou les serveurs fournis par le SDK. Associez-le à [`allowedMcpServers`](https://code.claude.com/docs/fr/managed-mcp) |

186| `disableCommandPluginSources` | Bloque les plugins avec une source `command` de l'installation, de la mise à jour ou du chargement. Une source `command` est celle dont le répertoire de plugins est produit en exécutant une commande sur la machine. Quand non défini, il prend la valeur de `allowManagedHooksOnly` | N'affecte pas les autres types de sources |186| `disableCommandPluginSources` | Bloque les plugins avec une source `command` de l'installation, de la mise à jour ou du chargement. Une source `command` est celle dont le répertoire de plugins est produit en exécutant une commande sur la machine. Quand non défini, il prend la valeur de `allowManagedHooksOnly` | N'affecte pas les autres types de sources |

187| `allowManagedHooksOnly` | Restreint les hooks qui s'exécutent. Voir [`allowManagedHooksOnly`](https://code.claude.com/docs/fr/settings-reference#allowmanagedhooksonly) | Ne fait confiance pas aux hooks des plugins que les utilisateurs activent eux-mêmes |187| `allowManagedHooksOnly` | Restreint les hooks qui s'exécutent. Voir [`allowManagedHooksOnly`](https://code.claude.com/docs/fr/settings-reference#allowmanagedhooksonly) | Ne fait confiance pas aux hooks des plugins que les utilisateurs activent eux-mêmes |

188| `strictPluginOnlyCustomization` | Bloque les skills, les agents, les hooks et les serveurs MCP qui ne proviennent pas d'un plugin, des paramètres gérés ou des éléments intégrés de Claude Code. Empêche également le chargement des [plugins du répertoire de skills](#keep-skills-directory-plugins-loading). Définissez `true` pour couvrir les quatre types, ou un tableau de valeurs `skills`, `agents`, `hooks` et `mcp` telles que `["skills", "hooks"]` pour en couvrir certains | Ne restreint pas les plugins que les utilisateurs installent. Associez-le à `strictKnownMarketplaces` |188| `strictPluginOnlyCustomization` | Bloque les skills, les agents, les hooks et les serveurs MCP qui ne proviennent pas d'un plugin, des paramètres gérés ou des éléments intégrés de Claude Code. Empêche également le chargement des [plugins du répertoire de skills](#keep-skills-directory-plugins-loading). Définissez `true` pour couvrir les quatre types, ou un tableau de valeurs `skills`, `agents`, `hooks` et `mcp` telles que `["skills", "hooks"]` pour en couvrir certains | Ne restreint pas les plugins que les utilisateurs installent. Associez-le à `strictKnownMarketplaces` |

189| `pluginSuggestionMarketplaces` | Marketplaces dont les plugins peuvent apparaître comme suggestions d'installation. Voir [Recommander des plugins](#recommend-plugins) | N'affecte pas les conseils intégrés |189| `pluginSuggestionMarketplaces` | Marketplaces dont les plugins peuvent apparaître comme suggestions d'installation dans le terminal. Voir [Recommander des plugins](#recommend-plugins) | N'affecte pas les conseils intégrés |

190| `pluginTrustMessage` | Ajoute votre texte à l'avertissement de confiance que `/plugin` affiche avant l'installation d'un plugin | Ne change pas le texte de l'avertissement lui-même |190| `pluginTrustMessage` | Ajoute votre texte à l'avertissement de confiance que `/plugin` affiche avant l'installation d'un plugin | Ne change pas le texte de l'avertissement lui-même |

191| `allowedChannelPlugins` | Remplace la liste par défaut des plugins autorisés à envoyer des messages de canal. Nécessite `channelsEnabled: true` | Voir [Restreindre les plugins de canal qui peuvent s'exécuter](https://code.claude.com/docs/fr/channels.md#restrict-which-channel-plugins-can-run) |191| `allowedChannelPlugins` | Remplace la liste par défaut des plugins autorisés à envoyer des messages de canal. Nécessite `channelsEnabled: true` | Voir [Restreindre les plugins de canal qui peuvent s'exécuter](https://code.claude.com/docs/fr/channels.md#restrict-which-channel-plugins-can-run) |

192| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](https://code.claude.com/docs/fr/env-vars) | Arrête les sessions de terminal interactives de l'auto-enregistrement du marketplace officiel | Ne supprime pas un marketplace déjà enregistré. La liste blanche et la liste noire contrôlent le même auto-enregistrement sans celui-ci. Une machine qui a démarré une fois avec celui-ci défini ne reprend pas l'auto-enregistrement une fois que vous l'avez supprimé |192| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](https://code.claude.com/docs/fr/env-vars) | Arrête les sessions de terminal interactives de l'auto-enregistrement du marketplace officiel | Ne supprime pas un marketplace déjà enregistré. La liste blanche et la liste noire contrôlent le même auto-enregistrement sans celui-ci. Une machine qui a démarré une fois avec celui-ci défini ne reprend pas l'auto-enregistrement une fois que vous l'avez supprimé |


361 361 

362Les suggestions d'un marketplace n'apparaissent que quand il est enregistré sur la machine de l'utilisateur, vous listez son nom dans `pluginSuggestionMarketplaces` dans les paramètres gérés, et vous déclarez sa source dans la même politique. Déclarez la source soit comme l'entrée `extraKnownMarketplaces` du marketplace, soit comme une entrée de liste blanche. Le marketplace officiel a besoin uniquement du nom. Voir [Activer les suggestions dans les paramètres gérés](https://code.claude.com/docs/fr/plugins/relevance.md#enable-suggestions-in-managed-settings).362Les suggestions d'un marketplace n'apparaissent que quand il est enregistré sur la machine de l'utilisateur, vous listez son nom dans `pluginSuggestionMarketplaces` dans les paramètres gérés, et vous déclarez sa source dans la même politique. Déclarez la source soit comme l'entrée `extraKnownMarketplaces` du marketplace, soit comme une entrée de liste blanche. Le marketplace officiel a besoin uniquement du nom. Voir [Activer les suggestions dans les paramètres gérés](https://code.claude.com/docs/fr/plugins/relevance.md#enable-suggestions-in-managed-settings).

363 363 

364> [!NOTE]

365>

366> Dans la conversation d'une session cloud, Claude peut suggérer des plugins que vous définissiez ou non `pluginSuggestionMarketplaces`. Pour désactiver ces suggestions, consultez [Désactiver les suggestions de plugins](https://code.claude.com/docs/fr/claude-code-on-the-web.md#turn-off-plugin-suggestions).

367 

364## Auditer et examiner368## Auditer et examiner

365 369 

366Les événements OpenTelemetry et l'API Analytics vous disent ce que votre flotte installe et exécute.370Les événements OpenTelemetry et l'API Analytics vous disent ce que votre flotte installe et exécute.

Details

8 8 

9Claude Code peut suggérer l'installation d'un plugin depuis la marketplace de votre organisation lorsque la session d'un utilisateur correspond aux signaux que vous définissez pour ce plugin. Les signaux incluent le répertoire de travail, les fichiers que Claude a lus et les commandes que Claude a exécutées. Vous les définissez en ajoutant un bloc `relevance` à l'entrée du plugin dans `marketplace.json`.9Claude Code peut suggérer l'installation d'un plugin depuis la marketplace de votre organisation lorsque la session d'un utilisateur correspond aux signaux que vous définissez pour ce plugin. Les signaux incluent le répertoire de travail, les fichiers que Claude a lus et les commandes que Claude a exécutées. Vous les définissez en ajoutant un bloc `relevance` à l'entrée du plugin dans `marketplace.json`.

10 10 

11Un opérateur de marketplace écrit les entrées `relevance`. Un administrateur autorise ensuite la marketplace dans les paramètres gérés. Les utilisateurs ne voient aucune suggestion d'une marketplace tant qu'elle n'est pas autorisée.11Un opérateur de marketplace écrit les entrées `relevance`. Un administrateur autorise ensuite la marketplace dans les paramètres gérés. Dans le terminal, les utilisateurs ne voient aucune suggestion d'une marketplace tant qu'elle n'est pas autorisée.

12 12 

13> [!NOTE]13> [!NOTE]

14>14>

15> Ces cas sont couverts sur d'autres pages :15> Ces cas sont couverts sur d'autres pages :

16>16>

17> * **Vous souhaitez installer des plugins** : consultez [Installer et gérer les plugins](https://code.claude.com/docs/fr/plugins/install.md)17> * **Vous souhaitez installer des plugins** : consultez [Installer et gérer les plugins](https://code.claude.com/docs/fr/plugins/install.md)

18> * **Vous souhaitez désactiver les suggestions** : consultez [Comprendre le fonctionnement de la pertinence des plugins](#understand-how-plugin-relevance-works)18> * **Vous souhaitez désactiver les suggestions** : consultez [Comprendre le fonctionnement de la pertinence des plugins](#understand-how-plugin-relevance-works), ou, pour les suggestions que Claude fait dans la conversation d'une session cloud, [Désactiver les suggestions de plugins](https://code.claude.com/docs/fr/claude-code-on-the-web.md#turn-off-plugin-suggestions)

19 19 

20Commencez par les sections correspondant à votre rôle :20Commencez par les sections correspondant à votre rôle :

21 21 


158 158 

159## Activer les suggestions dans les paramètres gérés159## Activer les suggestions dans les paramètres gérés

160 160 

161Les utilisateurs ne voient aucune suggestion d'une marketplace tant qu'un administrateur ne l'autorise pas dans les [paramètres gérés](https://code.claude.com/docs/fr/plugins/org.md), même lorsque son `marketplace.json` déclare `relevance`.161Dans le terminal, les utilisateurs ne voient aucune suggestion d'une marketplace tant qu'un administrateur ne l'autorise pas dans les [paramètres gérés](https://code.claude.com/docs/fr/plugins/org.md), même lorsque son `marketplace.json` déclare `relevance`.

162 162 

163Pour autoriser une marketplace, modifiez vos paramètres gérés comme suit :163Pour autoriser une marketplace, modifiez vos paramètres gérés comme suit :

164 164 

sandboxing.md +1 −1

Details

891 891 

892### Un dossier nommé `objects` ou `refs` disparaît après une commande892### Un dossier nommé `objects` ou `refs` disparaît après une commande

893 893 

894Un dossier `objects` ou `refs` de premier niveau apparu pendant la session peut être [supprimé à la fin d'une commande sandboxée](#when-the-sandbox-deletes-head-objects-or-refs). Peu importe qu'il ait été créé par une commande, par Claude ou par vous. Pour conserver un dossier, laissez-y quelque chose. Si un fichier ou un lien symbolique `HEAD` s'est trouvé au premier niveau pendant la session, déplacez-le ailleurs, puis redémarrez chaque session Claude Code ouverte à cet emplacement.894Un dossier `objects` ou `refs` de premier niveau apparu pendant la session peut être [supprimé à la fin d'une commande sandboxée](#when-the-sandbox-deletes-head-objects-or-refs). Peu importe qu'il ait été créé par une commande, par Claude ou par vous. Pour conserver un dossier, laissez-y quelque chose. Si un fichier ou un lien symbolique `HEAD` s'est trouvé au premier niveau pendant la session, déplacez-le ailleurs, puis redémarrez chaque session Claude Code ouverte dans votre répertoire de travail.

895 895 

896Avant v2.1.307, le dossier était supprimé même s'il contenait quelque chose et en l'absence de `HEAD`. Si vous utilisez une version antérieure, [mettez à jour Claude Code](https://code.claude.com/docs/fr/setup.md#update-claude-code).896Avant v2.1.307, le dossier était supprimé même s'il contenait quelque chose et en l'absence de `HEAD`. Si vous utilisez une version antérieure, [mettez à jour Claude Code](https://code.claude.com/docs/fr/setup.md#update-claude-code).

897 897 

Details

170 170 

171**Lancements ultérieurs avec paramètres en cache :**171**Lancements ultérieurs avec paramètres en cache :**

172 172 

173* Les paramètres en cache s'appliquent immédiatement au démarrage, sauf pour les valeurs en cache `modelPricing` et `managedMcpServers` et les variables d'environnement que Claude Code retient jusqu'à ce que le serveur confirme la charge utile173* Les paramètres en cache s'appliquent immédiatement au démarrage, sauf pour les valeurs en cache `modelPricing` et `managedMcpServers` ; les variables d'environnement que Claude Code retient jusqu'à ce que le serveur confirme la charge utile ; la suppression, le repositionnement ou la désactivation du [garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#know-what-happens-by-default) par une liste de plugins en cache ; et, sur une machine où une source gérée par l'endpoint liste ou active ses propres plugins, le [statut d'organisation](https://code.claude.com/docs/fr/plugins/mods/admin.md#install-your-organizations-mods) d'un plugin que seule une liste en cache active

174* Un [`modelPricing`](https://code.claude.com/docs/fr/settings-reference#modelpricing) en cache ne s'applique pas jusqu'à ce que la récupération de la session confirme la charge utile. Jusqu'à ce moment, les chiffres de coût que les développeurs voient dans `/usage` et la ligne d'état sont au prix catalogue174* Un [`modelPricing`](https://code.claude.com/docs/fr/settings-reference#modelpricing) en cache ne s'applique pas jusqu'à ce que la récupération de la session confirme la charge utile. Jusqu'à ce moment, les chiffres de coût que les développeurs voient dans `/usage` et la ligne d'état sont au prix catalogue

175* Un bloc [`managedMcpServers`](https://code.claude.com/docs/fr/settings-reference#managedmcpservers) en cache ne s'applique pas jusqu'à ce que la récupération de la session confirme la charge utile. Claude Code attend jusqu'à 30 secondes cette récupération avant de connecter les serveurs MCP. Si la récupération échoue ou expire, la session démarre sans les serveurs de l'organisation, `/status` l'indique, et ils se connectent une fois qu'une récupération ultérieure les confirme. Voir [Quand les serveurs fournis se connectent](https://code.claude.com/docs/fr/managed-mcp.md#when-provided-servers-connect) pour le comportement complet, y compris le premier lancement. Nécessite Claude Code v2.1.259 ou version ultérieure175* Un bloc [`managedMcpServers`](https://code.claude.com/docs/fr/settings-reference#managedmcpservers) en cache ne s'applique pas jusqu'à ce que la récupération de la session confirme la charge utile. Claude Code attend jusqu'à 30 secondes cette récupération avant de connecter les serveurs MCP. Si la récupération échoue ou expire, la session démarre sans les serveurs de l'organisation, `/status` l'indique, et ils se connectent une fois qu'une récupération ultérieure les confirme. Voir [Quand les serveurs fournis se connectent](https://code.claude.com/docs/fr/managed-mcp.md#when-provided-servers-connect) pour le comportement complet, y compris le premier lancement. Nécessite Claude Code v2.1.259 ou version ultérieure

176* Une valeur [`prependPlugins`](https://code.claude.com/docs/fr/settings-reference#prependplugins), [`appendPlugins`](https://code.claude.com/docs/fr/settings-reference#appendplugins) ou [`enabledPlugins`](https://code.claude.com/docs/fr/settings-reference#enabledplugins) en cache ne peut pas supprimer le garde-fou intégré, modifier sa position ni le désactiver tant que la récupération de la session n'a pas confirmé la charge utile

177* Sur une machine où une [source gérée par l'endpoint](https://code.claude.com/docs/fr/managed-settings.md#choose-a-delivery-mechanism) liste ou active ses propres plugins, un plugin que seule une liste en cache active est considéré comme [celui de l'utilisateur](https://code.claude.com/docs/fr/plugins/mods/admin.md#install-your-organizations-mods), et non comme celui de votre organisation, jusqu'à ce que la récupération confirme la charge utile

176* Claude Code récupère les paramètres actualisés en arrière-plan178* Claude Code récupère les paramètres actualisés en arrière-plan

177* Les paramètres en cache persistent en cas de défaillance réseau. Si la récupération au démarrage échoue, Claude Code avertit dans les sessions interactives que la stratégie en cache est en vigueur179* Les paramètres en cache persistent en cas de défaillance réseau. Si la récupération au démarrage échoue, Claude Code avertit dans les sessions interactives que la stratégie en cache est en vigueur

178* Jusqu'à ce qu'une récupération réussisse, les valeurs retenues au démarrage restent retenues180* Jusqu'à ce qu'une récupération réussisse, les valeurs retenues au démarrage restent retenues

sessions.md +1 −1

Details

249 249 

250Par défaut, Claude Code stocke les transcriptions en JSONL à `~/.claude/projects/<project>/<session-id>.jsonl`, où `<project>` est votre chemin de répertoire de travail avec les caractères non alphanumériques remplacés par `-`. Pour un répertoire de travail dont le nom converti dépasse 200 caractères, Claude Code tronque le nom à 200 caractères et ajoute un hash du chemin complet, de sorte que le nom du répertoire reste dans les limites du système de fichiers.250Par défaut, Claude Code stocke les transcriptions en JSONL à `~/.claude/projects/<project>/<session-id>.jsonl`, où `<project>` est votre chemin de répertoire de travail avec les caractères non alphanumériques remplacés par `-`. Pour un répertoire de travail dont le nom converti dépasse 200 caractères, Claude Code tronque le nom à 200 caractères et ajoute un hash du chemin complet, de sorte que le nom du répertoire reste dans les limites du système de fichiers.

251 251 

252Chaque ligne est un objet JSON pour un message, une utilisation d'outil ou une entrée de métadonnées. Le format d'entrée est interne à Claude Code et change entre les versions, donc les scripts qui analysent directement ces fichiers peuvent se casser à chaque version. Pour construire sur les données de session, utilisez `/export` ou les [interfaces de script](#access-conversations-from-scripts) à la place.252Chaque ligne est un objet JSON : un message, une utilisation d'outil ou son résultat, un enregistrement d'une requête que Claude Code a envoyée au modèle, ou une entrée de métadonnées. Le format d'entrée est interne à Claude Code et change entre les versions, donc les scripts qui analysent directement ces fichiers peuvent se casser à chaque version. Pour vous appuyer sur les données de session, utilisez plutôt `/export` ou les [interfaces de script](#access-conversations-from-scripts).

253 253 

254L'emplacement, la rétention et le comportement d'écriture sont configurables :254L'emplacement, la rétention et le comportement d'écriture sont configurables :

255 255 

settings-reference.md +103 −100

Details

2037* **Type** : tableau de chaînes, chacun un nom de service ; un seul `*` final correspond à un préfixe, et `"*"` seul correspond à chaque service2037* **Type** : tableau de chaînes, chacun un nom de service ; un seul `*` final correspond à un préfixe, et `"*"` seul correspond à chaque service

2038* **Default** : non défini2038* **Default** : non défini

2039 2039 

2040Ceci permet chaque service sous le préfixe `com.apple.coresimulator.` :2040Cet exemple autorise tous les services sous le préfixe `com.apple.CoreSimulator.` :

2041 2041 

2042```json settings.json theme={null}2042```json settings.json theme={null}

2043{2043{

2044 "sandbox": {2044 "sandbox": {

2045 "network": {2045 "network": {

2046 "allowMachLookup": ["com.apple.coresimulator.*"]2046 "allowMachLookup": ["com.apple.CoreSimulator.*"]

2047 }2047 }

2048 }2048 }

2049}2049}


4729* **Type** : array of strings, chemins de répertoires relatifs à la racine du dépôt4729* **Type** : array of strings, chemins de répertoires relatifs à la racine du dépôt

4730* **Default** : unset, de sorte que chaque worktree extrait l'arbre entier4730* **Default** : unset, de sorte que chaque worktree extrait l'arbre entier

4731 4731 

4732Cet exemple extrait uniquement `packages/my-app` et `shared/utils`, plus les fichiers au niveau racine, dans chaque worktree :4732Incluez `.claude` dans la liste afin que chaque worktree dispose également des fichiers `.claude/settings.json` et `.claude/rules/` du dépôt. Cet exemple extrait uniquement `.claude`, `packages/my-app` et `shared/utils`, plus les fichiers au niveau racine, dans chaque worktree :

4733 4733 

4734```json settings.json theme={null}4734```json settings.json theme={null}

4735{4735{

4736 "worktree": {4736 "worktree": {

4737 "sparsePaths": ["packages/my-app", "shared/utils"]4737 "sparsePaths": [".claude", "packages/my-app", "shared/utils"]

4738 }4738 }

4739}4739}

4740```4740```


5503 5503 

5504Avec la vérification ignorée, WebFetch tente n'importe quelle URL sans consulter la liste de blocage, donc associez-la aux [règles de permission `WebFetch`](https://code.claude.com/docs/fr/permissions#webfetch) si vous devez restreindre les domaines que Claude peut atteindre.5504Avec la vérification ignorée, WebFetch tente n'importe quelle URL sans consulter la liste de blocage, donc associez-la aux [règles de permission `WebFetch`](https://code.claude.com/docs/fr/permissions#webfetch) si vous devez restreindre les domaines que Claude peut atteindre.

5505 5505 

5506## Paramètres d'entreprise et gérés5506## Paramètres d'entreprise et paramètres gérés

5507 5507 

5508Clés qu'une organisation utilise pour calculer, actualiser et combiner les paramètres gérés. Voir [Configurer les paramètres gérés](https://code.claude.com/docs/fr/admin-setup.md).5508Clés qu'une organisation utilise pour calculer, actualiser et combiner les paramètres gérés. Consultez [Configurer les paramètres gérés](https://code.claude.com/docs/fr/admin-setup.md).

5509 5509 

5510### `disableSideloadFlags`5510### `disableSideloadFlags`

5511 5511 

5512Rejeter les drapeaux CLI `--plugin-dir`, `--plugin-url`, `--agents` et `--mcp-config` au démarrage, que les utilisateurs pourraient autrement transmettre pour contourner [`strictKnownMarketplaces`](#strictknownmarketplaces) pour une seule exécution. Claude Code se ferme avec une erreur nommant les drapeaux rejetés. Dans les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), Claude Code démarre plutôt la session et supprime chaque entrée `--mcp-config` livrée par le serveur sauf les entrées `type: "sdk"` en processus et les outils Slack d'une session [Claude Tag](https://code.claude.com/docs/fr/claude-tag.md). Nécessite Claude Code v2.1.193 ou ultérieur.5512Rejeter au démarrage les flags CLI `--plugin-dir`, `--plugin-url`, `--agents` et `--mcp-config`, que les utilisateurs pourraient sinon passer pour contourner [`strictKnownMarketplaces`](#strictknownmarketplaces) le temps d'une exécution. Claude Code se termine avec une erreur qui nomme les flags rejetés. Dans les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), Claude Code démarre plutôt la session et ignore chaque entrée `--mcp-config` fournie par le serveur, à l'exception des entrées in-process `type: "sdk"` et des outils Slack d'une session [Claude Tag](https://code.claude.com/docs/fr/claude-tag.md). Nécessite Claude Code v2.1.193 ou une version ultérieure.

5513 5513 

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

5515* **Type** : Booléen5515* **Type** : Boolean

5516 * `true` : Claude Code rejette `--plugin-dir`, `--plugin-url`, `--agents` et `--mcp-config` au démarrage et se ferme avec une erreur les nommant. Dans les sessions cloud, il démarre plutôt la session et supprime chaque entrée `--mcp-config` livrée par le serveur sauf les entrées `type: "sdk"` en processus et les outils Slack d'une session Claude Tag5516 * `true` : Claude Code rejette `--plugin-dir`, `--plugin-url`, `--agents` et `--mcp-config` au démarrage et se termine avec une erreur qui les nomme. Dans les sessions cloud, il démarre plutôt la session et ignore chaque entrée `--mcp-config` fournie par le serveur, à l'exception des entrées in-process `type: "sdk"` et des outils Slack d'une session Claude Tag

5517 * `false` : Claude Code accepte ces drapeaux5517 * `false` : Claude Code accepte ces flags

5518* **Défaut** : `false`5518* **Par défaut** : `false`

5519 5519 

5520```json managed-settings.json theme={null}5520```json managed-settings.json theme={null}

5521{5521{


5523}5523}

5524```5524```

5525 5525 

5526Claude Code accepte toujours un `--mcp-config` dont les serveurs sont tous des entrées `type: "sdk"` en processus, de sorte que le SDK Agent et l'extension VS Code continuent de fonctionner. Les utilisateurs peuvent toujours ajouter des serveurs avec `claude mcp add` ou un fichier `.mcp.json` ; pour un contrôle par serveur, définissez également [`allowedMcpServers`](https://code.claude.com/docs/fr/managed-mcp). Nécessite Claude Code v2.1.193 ou ultérieur.5526Claude Code accepte toujours un `--mcp-config` dont tous les serveurs sont des entrées in-process `type: "sdk"`, afin que l'Agent SDK et l'extension VS Code continuent de fonctionner. Les utilisateurs peuvent toujours ajouter des serveurs avec `claude mcp add` ou un fichier `.mcp.json` ; pour un contrôle par serveur, définissez également [`allowedMcpServers`](https://code.claude.com/docs/fr/managed-mcp). Nécessite Claude Code v2.1.193 ou une version ultérieure.

5527 5527 

5528La même vérification couvre les dossiers de plugins nommés dans la variable d'environnement [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/fr/env-vars#variables), ce qui nécessite Claude Code v2.1.280 ou ultérieur. Lorsque la variable nomme un dossier, Claude Code se ferme avec la même erreur, et l'erreur dit de supprimer la variable.5528`disableSideloadFlags` rejette également les dossiers de plugins provenant de ces sources :

5529 5529 

5530Dans les sessions cloud, Claude Code ignore également les mises à jour MCP livrées en milieu de session, le chemin derrière la configuration de session cloud et les appels SDK `setMcpServers()` qui atteignent ces sessions. Les entrées `type: "sdk"` en processus et les outils Slack d'une session Claude Tag restent exemptes là aussi. Avant v2.1.268, cette suppression au démarrage et la suppression au démarrage supprimaient également les outils Slack d'une session Claude Tag. Avant v2.1.239, un `--mcp-config` livré par le serveur bloquait le démarrage d'une session cloud.5530* **La variable d'environnement [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/fr/env-vars#variables)** : lorsque la variable désigne un dossier de plugin, Claude Code se termine au démarrage avec une erreur qui nomme la variable et indique de la supprimer. Nécessite Claude Code v2.1.280 ou une version ultérieure

5531* **L'option [`addPlugins`](https://code.claude.com/docs/fr/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) de l'Agent SDK** : lorsqu'une application passe des dossiers de plugins à `reloadPlugins()` dans `addPlugins`, cet appel échoue avec une erreur. La session continue de s'exécuter avec les plugins dont elle disposait déjà. Nécessite Claude Code v2.1.301 ou une version ultérieure

5531 5532 

5532L'application de bureau gère certains plugins elle-même, y compris les plugins synchronisés à partir de claude.ai et les plugins que votre organisation déploie via l'application. Si vous déployez cette clé sur un appareil via MDM, une politique au niveau du système d'exploitation ou un fichier de paramètres gérés, l'application de bureau ne transmet pas ces plugins aux sessions suivantes sur cet appareil :5533Dans les sessions cloud, Claude Code ignore également les mises à jour MCP en cours de session fournies par le serveur, le mécanisme utilisé par la configuration des sessions cloud et par les appels SDK `setMcpServers()` qui atteignent ces sessions. Les entrées in-process `type: "sdk"` et les outils Slack d'une session Claude Tag y restent également exemptés. Avant la v2.1.268, ce rejet des mises à jour en cours de session comme le rejet au démarrage supprimaient aussi les outils Slack d'une session Claude Tag. Avant la v2.1.239, un `--mcp-config` fourni par le serveur empêchait le démarrage d'une session cloud.

5533 5534 

5534* **[Sessions de code sur la machine de l'utilisateur](https://code.claude.com/docs/fr/desktop.md#environment-configuration)** : elles démarrent également sans les compétences activées pour le compte claude.ai de l'utilisateur. Les plugins que Claude Code installe à partir des places de marché dans vos paramètres gérés se chargent toujours. Dans [Claude Desktop sur 3P](https://claude.com/docs/third-party/claude-desktop/overview), les serveurs MCP des plugins que vous déployez dans le répertoire `org-plugins` de l'appareil restent disponibles aussi, car l'application de bureau s'y connecte elle-même. Avant Claude Desktop v1.37937.0, ces sessions échouaient au démarrage à la place.5535L'application de bureau gère elle-même certains plugins, notamment les plugins synchronisés depuis claude.ai et les plugins que votre organisation déploie via l'application. Si vous déployez cette clé sur un appareil via MDM, une stratégie au niveau du système d'exploitation ou un fichier de paramètres gérés, l'application de bureau ne transmet pas ces plugins aux sessions suivantes sur cet appareil :

5535* **[Sessions Cowork sur la machine de l'utilisateur](https://code.claude.com/docs/fr/managed-settings.md#where-and-when-a-policy-applies)** : les compétences à l'intérieur de ces plugins et les compétences activées pour le compte claude.ai de l'utilisateur restent disponibles. Dans [Claude Desktop sur 3P](https://claude.com/docs/third-party/claude-desktop/overview), les serveurs MCP des plugins que vous déployez dans le répertoire `org-plugins` de l'appareil restent disponibles aussi, car l'application de bureau s'y connecte elle-même. Avant Claude Desktop v1.44121.0, ces sessions échouaient au démarrage à la place.5536 

5537* **[Sessions Code sur la machine de l'utilisateur](https://code.claude.com/docs/fr/desktop.md#environment-configuration)** : elles démarrent également sans les skills activés pour le compte claude.ai de l'utilisateur. Les plugins que Claude Code installe depuis les marketplaces de vos paramètres gérés se chargent toujours. Dans [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview), les serveurs MCP des plugins que vous déployez dans le répertoire `org-plugins` de l'appareil restent également disponibles, car l'application de bureau s'y connecte elle-même. Avant Claude Desktop v1.37937.0, ces sessions échouaient plutôt au démarrage.

5538* **[Sessions Cowork sur la machine de l'utilisateur](https://code.claude.com/docs/fr/managed-settings.md#where-and-when-a-policy-applies)** : les skills contenus dans ces plugins et les skills activés pour le compte claude.ai de l'utilisateur restent disponibles. Dans [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview), les serveurs MCP des plugins que vous déployez dans le répertoire `org-plugins` de l'appareil restent également disponibles, car l'application de bureau s'y connecte elle-même. Avant Claude Desktop v1.44121.0, ces sessions échouaient plutôt au démarrage.

5536 5539 

5537### `forceRemoteSettingsRefresh`5540### `forceRemoteSettingsRefresh`

5538 5541 

5539Bloquer le démarrage du CLI jusqu'à ce que Claude Code ait récemment récupéré les [paramètres gérés par le serveur](https://code.claude.com/docs/fr/server-managed-settings.md). Si la récupération échoue, Claude Code se ferme au lieu de continuer avec les paramètres en cache ou aucun paramètre. Définissez-le lorsque votre environnement ne peut pas accepter même une brève fenêtre dans laquelle une session s'exécute sans sa politique gérée.5542Bloquer le démarrage de la CLI jusqu'à ce que Claude Code ait récupéré à nouveau les [paramètres gérés par le serveur](https://code.claude.com/docs/fr/server-managed-settings.md). Si la récupération échoue, Claude Code se termine au lieu de continuer avec des paramètres en cache ou sans paramètres. Définissez cette clé lorsque votre environnement ne peut accepter aucune fenêtre, même brève, pendant laquelle une session s'exécute sans sa stratégie gérée.

5540 5543 

5541Lorsque la clé n'est pas définie, Claude Code ne bloque pas le démarrage sur la récupération, bien que lorsque le développeur se connecte au démarrage, il attend jusqu'à cinq secondes pour la récupération. Une session de passerelle Cloud attend toujours et se ferme si la passerelle ne peut pas être atteinte.5544Lorsque la clé n'est pas définie, Claude Code ne bloque pas le démarrage pendant la récupération, mais lorsque le développeur se connecte au démarrage, il attend jusqu'à cinq secondes la récupération. Une session Cloud gateway attend toujours, et se termine si la passerelle est injoignable.

5542 5545 

5543* **Portée** : [`Managed`](#scopes). Claude Code honore un `true` de n'importe quelle source gérée contrôlée par l'administrateur, même une qui n'est pas la source de plus haute priorité.5546* **Portée** : [`Managed`](#scopes). Claude Code respecte une valeur `true` provenant de toute source gérée contrôlée par un administrateur, même si ce n'est pas la source de plus haute priorité.

5544* **Type** : Booléen5547* **Type** : Boolean

5545 * `true` : Claude Code bloque le démarrage jusqu'à ce qu'il ait récemment récupéré les paramètres gérés par le serveur, et se ferme si la récupération échoue5548 * `true` : Claude Code bloque le démarrage jusqu'à avoir récupéré à nouveau les paramètres gérés par le serveur, et se termine si la récupération échoue

5546 * `false` : Claude Code ne bloque pas le démarrage sur la récupération, bien qu'au démarrage d'une connexion il attende jusqu'à cinq secondes pour la récupération5549 * `false` : Claude Code ne bloque pas le démarrage pendant la récupération, mais lors d'un démarrage avec connexion, il attend jusqu'à cinq secondes la récupération

5547* **Défaut** : `false`5550* **Par défaut** : `false`

5548 5551 

5549```json managed-settings.json theme={null}5552```json managed-settings.json theme={null}

5550{5553{


5552}5555}

5553```5556```

5554 5557 

5555Définissez-le dans un profil MDM ou le fichier de paramètres gérés pour appliquer un démarrage fermé en cas d'échec avant l'arrivée du premier payload du serveur. Claude Code applique la vérification uniquement dans les sessions qui récupèrent les paramètres gérés par le serveur, de sorte qu'une session qui [ne les récupère pas](https://code.claude.com/docs/fr/server-managed-settings.md#platform-availability) démarre sans attendre. Les sous-commandes `claude auth` sont exemptes, de sorte que les utilisateurs peuvent se réauthentifier lorsque les identifiants expirés sont la raison de l'échec de la récupération. Voir [Appliquer un démarrage fermé en cas d'échec](https://code.claude.com/docs/fr/server-managed-settings.md#enforce-fail-closed-startup).5558Définissez-la dans un profil MDM ou dans le fichier de paramètres gérés pour imposer un démarrage en mode fail-closed avant l'arrivée du premier payload du serveur. Claude Code n'applique la vérification que dans les sessions qui récupèrent des paramètres gérés par le serveur ; une session qui [ne les récupère pas](https://code.claude.com/docs/fr/server-managed-settings.md#platform-availability) démarre donc sans attendre. Les sous-commandes `claude auth` sont exemptées, afin que les utilisateurs puissent se réauthentifier lorsque des identifiants expirés sont la cause de l'échec de la récupération. Consultez [Imposer un démarrage fail-closed](https://code.claude.com/docs/fr/server-managed-settings.md#enforce-fail-closed-startup).

5556 5559 

5557### `managedSourcesBehavior`5560### `managedSourcesBehavior`

5558 5561 

5559Choisissez si Claude Code applique uniquement la [source gérée](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) de plus haute priorité que votre organisation livre, ou combine chaque source d'administrateur qu'elle livre. Par défaut, Claude Code prend la source de plus haute priorité qui porte une [clé de politique](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) et ignore le reste. Une clé de politique est n'importe quelle clé de paramètres autre que celle-ci et `wslInheritsWindowsSettings`. Sous ce défaut, une fois que les paramètres gérés par le serveur ou une politique MDM livrent une clé de politique, un fichier `managed-settings.json` ne contribue que les [clés que Claude Code lit de chaque source d'administrateur](https://code.claude.com/docs/fr/managed-settings.md#keys-read-from-every-admin-source). Avec `"merge"`, chaque source d'administrateur que vous livrez contribue ses clés à une politique combinée. Nécessite Claude Code v2.1.242 ou ultérieur.5562Choisir si Claude Code applique uniquement la [source gérée](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) de plus haute priorité que votre organisation fournit, ou s'il combine toutes les sources d'administration qu'elle fournit. Par défaut, Claude Code prend la source de plus haute priorité qui contient une [clé de stratégie](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) et ignore les autres. Une clé de stratégie est toute clé de paramètre autre que celle-ci et `wslInheritsWindowsSettings`. Avec ce comportement par défaut, dès que les paramètres gérés par le serveur ou une stratégie MDM fournissent une clé de stratégie, un fichier `managed-settings.json` ne fournit que les [clés que Claude Code lit depuis chaque source d'administration](https://code.claude.com/docs/fr/managed-settings.md#keys-read-from-every-admin-source). Avec `"merge"`, chaque source d'administration que vous fournissez apporte ses clés à une stratégie combinée unique. Nécessite Claude Code v2.1.242 ou une version ultérieure.

5560 5563 

5561Définissez `"merge"` uniquement lorsque chaque source [classée](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) en dessous de votre plus haute est sous le contrôle d'un administrateur, car Claude Code ajoute alors des entrées d'une source inférieure, telle que les règles `permissions.allow`, à la politique.5564Ne définissez `"merge"` que là où chaque source [classée](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) sous votre source la plus haute est sous le contrôle d'un administrateur, car Claude Code ajoute alors à la stratégie des entrées provenant d'une source inférieure, comme des règles `permissions.allow`.

5562 5565 

5563* **Portée** : [`Managed`](#scopes). Claude Code lit cette clé de la source de plus haute priorité qui porte soit cette clé soit une clé de politique, et ignore cette clé dans chaque source classée plus bas, de sorte qu'une source inférieure ne peut pas se choisir pour combiner avec la source au-dessus. Ni le registre HKCU Windows ni les [paramètres parents d'un hôte d'intégration](https://code.claude.com/docs/fr/managed-settings.md#let-an-embedding-host-add-policy) ne participent à la fusion.5566* **Portée** : [`Managed`](#scopes). Claude Code lit cette clé depuis la source de plus haute priorité qui contient cette clé ou une clé de stratégie, et ignore cette clé dans toutes les sources classées plus bas, de sorte qu'une source inférieure ne peut pas choisir d'elle-même d'être combinée avec la source au-dessus d'elle. Ni le registre Windows HKCU ni les [paramètres parents d'un hôte d'intégration](https://code.claude.com/docs/fr/managed-settings.md#let-an-embedding-host-add-policy) ne participent à la fusion.

5564* **Type** : chaîne, l'une de :5567* **Type** : string, l'une des valeurs suivantes :

5565 * `"first-wins"` : la source de plus haute priorité qui porte une clé de politique fournit la politique, et les sources inférieures ne contribuent que les [clés que Claude Code lit de chaque source d'administrateur](https://code.claude.com/docs/fr/managed-settings.md#keys-read-from-every-admin-source)5568 * `"first-wins"` : la source de plus haute priorité qui contient une clé de stratégie fournit la stratégie, et les sources inférieures ne fournissent que les [clés que Claude Code lit depuis chaque source d'administration](https://code.claude.com/docs/fr/managed-settings.md#keys-read-from-every-admin-source)

5566 * `"merge"` : chaque source d'administrateur que vous livrez contribue ses clés, combinées par les règles ci-dessous5569 * `"merge"` : chaque source d'administration que vous fournissez apporte ses clés, combinées selon les règles ci-dessous

5567* **Défaut** : `"first-wins"`5570* **Par défaut** : `"first-wins"`

5568 5571 

5569Livrez la clé dans la source de plus haute priorité que vous déployez. Une machine qui ne reçoit jamais les paramètres gérés par le serveur a besoin de la clé dans son profil MDM aussi, car Claude Code lit la clé de la source de plus haute priorité qui la porte ou une clé de politique. Un fichier `managed-settings.json` est la source d'administrateur la plus basse classée, de sorte que `"merge"` défini là n'a pas de source en dessous pour combiner. Dans les paramètres gérés par le serveur, la clé ressemble à ceci :5572Fournissez la clé dans la source de plus haute priorité que vous déployez. Une machine qui ne reçoit jamais de paramètres gérés par le serveur a également besoin de la clé dans son profil MDM, car Claude Code lit la clé depuis la source de plus haute priorité qui la contient ou qui contient une clé de stratégie. Un fichier `managed-settings.json` est la source d'administration la moins bien classée ; une valeur `"merge"` définie à cet endroit n'a donc aucune source inférieure avec laquelle se combiner. Dans les paramètres gérés par le serveur, la clé se présente ainsi :

5570 5573 

5571```json theme={null}5574```json theme={null}

5572{5575{


5574}5577}

5575```5578```

5576 5579 

5577Sous `"merge"`, Claude Code combine chaque clé par son type. Ce tableau donne la règle pour chaque type. Les lignes de liste de restriction, valeurs prises en entier et plus haute source uniquement nomment chaque clé qu'elles couvrent, et les autres lignes donnent des exemples :5580Avec `"merge"`, Claude Code combine chaque clé selon son type. Ce tableau donne la règle pour chaque type. Les lignes des listes d'autorisation de restriction, des valeurs prises en entier et des clés lues uniquement depuis la source la plus haute nomment toutes les clés qu'elles couvrent, et les autres lignes donnent des exemples :

5578 5581 

5579| Type de clé | Comment Claude Code la combine | Clés |5582| Type de clé | Comment Claude Code la combine | Clés |

5580| :- | :- | :- |5583| :- | :- | :- |

5581| Listes | Combine les entrées de chaque source | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) et autres clés de liste |5584| Listes | Combine les entrées de toutes les sources | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) et les autres clés de type liste |

5582| Verrous | Applique la valeur la plus stricte que n'importe quelle source définit. Lorsqu'aucune source ne définit une valeur stricte, applique une valeur plus souple uniquement de la source la plus haute | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly), [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) et autres verrous booléens ou énumérés |5585| Verrous | Applique la valeur la plus stricte définie par une source. Lorsqu'aucune source ne définit de valeur stricte, applique une valeur plus souple uniquement depuis la source la plus haute | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly), [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) et les autres verrous booléens ou enum |

5583| Listes de restriction | Prend la liste en entier de la source la plus haute qui la définit, sans ajouter d'entrées de sources inférieures. Lorsque la source la plus haute n'en définit pas une, la prend en entier de la source suivante en bas | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`allowedProviders`](#allowedproviders), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) et la chaîne [`fallbackModel`](#fallbackmodel) |5586| Listes d'autorisation de restriction | Prend la liste en entier depuis la source la plus haute qui la définit, sans ajouter d'entrées des sources inférieures. Lorsque la source la plus haute n'en définit pas, la prend en entier depuis la source immédiatement inférieure | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`allowedProviders`](#allowedproviders), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) et la chaîne [`fallbackModel`](#fallbackmodel) |

5584| Valeurs prises en entier | Prend la valeur en entier de la source la plus haute qui la définit, sans combiner les entrées ou champs de sources inférieures. Lorsque la source la plus haute ne la définit pas, la prend en entier de la source suivante en bas | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |5587| Valeurs prises en entier | Prend la valeur en entier depuis la source la plus haute qui la définit, sans combiner d'entrées ni de champs des sources inférieures. Lorsque la source la plus haute ne la définit pas, la prend en entier depuis la source immédiatement inférieure | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |

5585| Serveurs MCP fournis | Combine les noms de serveur de chaque source. Lorsque deux sources définissent le même nom, applique l'entrée entière de la source supérieure | [`managedMcpServers`](#managedmcpservers) |5588| Serveurs MCP fournis | Combine les noms de serveurs de toutes les sources. Lorsque deux sources définissent le même nom, applique l'entrée complète de la source la plus haute | [`managedMcpServers`](#managedmcpservers) |

5586| Lire uniquement de la source de plus haute priorité | Lit la clé uniquement de la source de plus haute priorité qui porte une clé de politique, de sorte que la valeur d'une source inférieure est ignorée même lorsque la source la plus haute n'en définit aucune | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), les valeurs `"claudeai"` et `"console"` de [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |5589| Lues uniquement depuis la source de plus haute priorité | Lit la clé uniquement depuis la source de plus haute priorité qui contient une clé de stratégie ; la valeur d'une source inférieure est donc ignorée même lorsque la source la plus haute n'en définit aucune | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), les valeurs `"claudeai"` et `"console"` de [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |

5587| `env` | [Fusionne par variable sur les sources d'administrateur](https://code.claude.com/docs/fr/managed-settings.md#keys-read-from-every-admin-source), sous `"first-wins"` et `"merge"` | [`env`](#env) |5590| `env` | [Fusionne variable par variable entre les sources d'administration](https://code.claude.com/docs/fr/managed-settings.md#keys-read-from-every-admin-source), avec `"first-wins"` comme avec `"merge"` | [`env`](#env) |

5588| Chaque autre clé | Prend la valeur de la source la plus haute qui la définit | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) |5591| Toutes les autres clés | Prend la valeur depuis la source la plus haute qui la définit | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) |

5589 5592 

5590Prendre `sandbox.credentials.awsPairs` et `sandbox.ripgrep` en entier nécessite Claude Code v2.1.257 ou ultérieur.5593La prise en entier de `sandbox.credentials.awsPairs` et `sandbox.ripgrep` nécessite Claude Code v2.1.257 ou une version ultérieure.

5591 5594 

5592Quelques clés ajoutent une condition que le tableau ne montre pas :5595Quelques clés ajoutent une condition que le tableau n'indique pas :

5593 5596 

5594* **[`policyHelper`](#policyhelper)** : Claude Code l'honore uniquement lorsque la source la plus haute qui porte une clé de politique est une politique MDM ou un fichier de paramètres gérés, de sorte que sous les paramètres gérés par le serveur elle ne s'applique pas.5597* **[`policyHelper`](#policyhelper)** : Claude Code ne la respecte que lorsque la source la plus haute contenant une clé de stratégie est une stratégie MDM ou un fichier de paramètres gérés ; avec des paramètres gérés par le serveur, elle ne s'applique donc pas.

5595* **[`modelOverrides`](#modeloverrides)** : s'apparie avec `availableModels`. Claude Code prend `modelOverrides` de la source la plus haute qui la définit, sauf si une source supérieure définit `availableModels` sans `modelOverrides`. Dans ce cas, il ignore `modelOverrides` de chaque source.5598* **[`modelOverrides`](#modeloverrides)** : fonctionne de pair avec `availableModels`. Claude Code prend `modelOverrides` depuis la source la plus haute qui la définit, sauf si une source supérieure définit `availableModels` sans `modelOverrides`. Dans ce cas, il ignore `modelOverrides` dans toutes les sources.

5596* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) et la valeur `"gateway"` de [`forceLoginMethod`](#forceloginmethod)** : Claude Code ne les lit jamais de paramètres gérés par le serveur, de sorte qu'une valeur là ne s'applique ni ne cache une définie dans une politique MDM ou un fichier de paramètres gérés. Parmi les sources d'administrateur sur la machine, seule la plus haute classée qui porte une clé de politique les fournit, que les paramètres gérés par le serveur soient présents ou non.5599* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) et la valeur `"gateway"` de [`forceLoginMethod`](#forceloginmethod)** : Claude Code ne lit jamais aucune d'entre elles depuis les paramètres gérés par le serveur ; une valeur définie à cet endroit ne s'applique donc pas et ne masque pas non plus une valeur définie dans une stratégie MDM ou un fichier de paramètres gérés. Parmi les sources d'administration de la machine, seule la mieux classée qui contient une clé de stratégie les fournit, que des paramètres gérés par le serveur soient également présents ou non.

5597* **[`allowedProviders`](#allowedproviders)** : après la règle du tableau, la liste de la machine elle-même limite toujours le résultat, comme le note l'entrée de sa Portée.5600* **[`allowedProviders`](#allowedproviders)** : après l'application de la règle du tableau, la propre liste de la machine limite toujours le résultat, comme l'indique la note Portée de son entrée.

5598 5601 

5599Pour confirmer quelles sources se sont combinées sur une machine, exécutez `/status` et [lisez la ligne `Setting sources`](https://code.claude.com/docs/fr/managed-settings#read-the-source-in-/status).5602Pour confirmer quelles sources ont été combinées sur une machine, exécutez `/status` et [lisez la ligne `Setting sources`](https://code.claude.com/docs/fr/managed-settings#read-the-source-in-/status).

5600 5603 

5601### `parentSettingsBehavior`5604### `parentSettingsBehavior`

5602 5605 

5603Choisissez si Claude Code applique les paramètres gérés fournis par un processus hôte d'intégration, tel que le SDK Agent ou une extension IDE, lorsqu'une couche gérée déployée par l'administrateur est également présente. Avec `"first-wins"`, Claude Code supprime les paramètres fournis par l'hôte ; avec `"merge"`, il les applique sous la couche d'administrateur via un filtre restrictif uniquement. Définissez `"merge"` lorsqu'un hôte doit transmettre ses propres restrictions aux sessions qu'il lance, par exemple Claude Desktop livrant la liste d'autorisation de sortie d'une passerelle.5606Choisir si Claude Code applique les paramètres gérés fournis par un processus hôte d'intégration, comme l'Agent SDK ou une extension d'IDE, lorsqu'un niveau géré déployé par un administrateur est également présent. Avec `"first-wins"`, Claude Code ignore les paramètres fournis par l'hôte ; avec `"merge"`, il les applique sous le niveau d'administration via un filtre qui ne retient que les valeurs restrictives. Définissez `"merge"` lorsqu'un hôte doit transmettre ses propres restrictions aux sessions qu'il lance, par exemple Claude Desktop qui fournit la liste d'autorisation de trafic sortant d'une passerelle.

5604 5607 

5605* **Portée** : [`Managed`](#scopes). Claude Code le lit de la source gérée contrôlée par l'administrateur de plus haute priorité.5608* **Portée** : [`Managed`](#scopes). Claude Code la lit depuis la source gérée de plus haute priorité contrôlée par un administrateur.

5606* **Type** : chaîne, l'une de :5609* **Type** : string, l'une des valeurs suivantes :

5607 * `"first-wins"` : Claude Code supprime les paramètres fournis par l'hôte lorsqu'une couche gérée déployée par l'administrateur est présente5610 * `"first-wins"` : Claude Code ignore les paramètres fournis par l'hôte lorsqu'un niveau géré déployé par un administrateur est présent

5608 * `"merge"` : Claude Code applique les paramètres fournis par l'hôte sous la couche d'administrateur via un filtre restrictif uniquement5611 * `"merge"` : Claude Code applique les paramètres fournis par l'hôte sous le niveau d'administration via un filtre qui ne retient que les valeurs restrictives

5609* **Défaut** : `"first-wins"`5612* **Par défaut** : `"first-wins"`

5610 5613 

5611```json managed-settings.json theme={null}5614```json managed-settings.json theme={null}

5612{5615{


5614}5617}

5615```5618```

5616 5619 

5617Cette clé n'a aucun effet lorsqu'aucune couche gérée déployée par l'administrateur n'existe : les paramètres de l'hôte s'appliquent alors comme la seule couche gérée, toujours filtrés aux valeurs restrictives. Pour les limites du filtre et comment les sources gérées interagissent, voir [Paramètres parents des hôtes d'intégration](https://code.claude.com/docs/fr/managed-settings.md#parent-settings-from-embedding-hosts) et [Restreindre les paramètres parents](https://code.claude.com/docs/fr/claude-apps-gateway#restrict-parent-settings).5620Cette clé n'a aucun effet lorsqu'aucun niveau géré déployé par un administrateur n'existe : les paramètres de l'hôte s'appliquent alors comme unique niveau géré, toujours filtrés pour ne retenir que les valeurs restrictives. Pour connaître les limites du filtre et la manière dont les sources gérées interagissent, consultez [Paramètres parents des hôtes d'intégration](https://code.claude.com/docs/fr/managed-settings.md#parent-settings-from-embedding-hosts) et [Restreindre les paramètres parents](https://code.claude.com/docs/fr/claude-apps-gateway#restrict-parent-settings).

5618 5621 

5619### `policyHelper`5622### `policyHelper`

5620 5623 

5621Exécutez un exécutable que vous déployez qui calcule les paramètres gérés au démarrage, de sorte que vous pouvez dériver la politique de la posture de l'appareil, de l'identité ou d'un service distant au lieu d'un fichier statique. Claude Code exécute l'assistant avant d'accepter la première invite et traite les paramètres qu'il émet comme les paramètres gérés pour la session.5624Exécuter un exécutable que vous déployez et qui calcule les paramètres gérés au démarrage, afin de dériver la stratégie de l'état de l'appareil, de l'identité ou d'un service distant plutôt que d'un fichier statique. Claude Code exécute le helper avant d'accepter le premier prompt et traite les paramètres qu'il émet comme les paramètres gérés de la session.

5622 5625 

5623* **Portée** : [`Managed`](#scopes). Lire à partir de la plist macOS, du registre Windows HKLM ou du fichier de paramètres gérés. Claude Code lit la clé de la source gérée de plus haute priorité qui porte une [clé de politique](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) et exécute l'assistant uniquement lorsque cette source est l'une de ces trois ; il ignore la clé dans les paramètres gérés par le serveur, le registre HKCU et les paramètres parents fournis par l'hôte.5626* **Portée** : [`Managed`](#scopes). Lue depuis le plist macOS, le registre Windows HKLM ou le fichier de paramètres gérés. Claude Code lit la clé depuis la source gérée de plus haute priorité qui contient une [clé de stratégie](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) et n'exécute le helper que lorsque cette source est l'une de ces trois ; il ignore la clé dans les paramètres gérés par le serveur, le registre HKCU et les paramètres parents fournis par l'hôte.

5624* **Type** : objet avec `path`, `timeoutMs` et `refreshIntervalMs`5627* **Type** : objet avec `path`, `timeoutMs` et `refreshIntervalMs`

5625* **Défaut** : non défini, donc aucun assistant ne s'exécute5628* **Par défaut** : non définie, donc aucun helper ne s'exécute

5626 5629 

5627Lorsque les paramètres gérés par le serveur livrent la politique au lancement, ils prennent la priorité sur la source de l'assistant et l'assistant ne s'exécute pas.5630Lorsque des paramètres gérés par le serveur fournissent la stratégie au lancement, ils ont priorité sur la source du helper et le helper ne s'exécute pas.

5628 5631 

5629Si une récupération de paramètres ultérieure signale que les paramètres gérés par le serveur ont été supprimés, Claude Code exécute l'assistant à ce moment plutôt que d'attendre le prochain lancement. Sa sortie gouverne le reste de la session, et une exécution qui échoue termine la session avec le même message qu'une [exécution de démarrage échouée](#helper-failures).5632Si une récupération ultérieure des paramètres signale que les paramètres gérés par le serveur ont été supprimés, Claude Code exécute le helper à ce moment-là plutôt que d'attendre le prochain lancement. Sa sortie régit le reste de la session, et une exécution qui échoue met fin à la session avec le même message qu'une [exécution au démarrage ayant échoué](#helper-failures).

5630 5633 

5631Cet exemple exécute l'assistant avec un délai d'expiration de 5 secondes et le réexécute toutes les cinq minutes :5634Cet exemple exécute le helper avec un délai d'expiration de 5 secondes et le réexécute toutes les cinq minutes :

5632 5635 

5633```json managed-settings.json theme={null}5636```json managed-settings.json theme={null}

5634{5637{


5640}5643}

5641```5644```

5642 5645 

5643#### Écrire la sortie de l'assistant5646#### Écrire la sortie du helper

5644 5647 

5645Claude Code exécute l'assistant sans arguments, définit `CLAUDE_CODE_VERSION` dans son environnement et lit une enveloppe JSON à partir de stdout, plafonnée à 1 MiB.5648Claude Code exécute le helper sans arguments, définit `CLAUDE_CODE_VERSION` dans son environnement et lit une enveloppe JSON depuis stdout, limitée à 1 Mio.

5646 5649 

5647Mettez les paramètres sous une clé `managedSettings`. Un objet de paramètres nu sans clé `managedSettings` analyse avec `managedSettings` indéfini et n'applique rien, et Claude Code ne signale aucune erreur :5650Placez les paramètres sous une clé `managedSettings`. Un objet de paramètres brut sans clé `managedSettings` est analysé avec `managedSettings` indéfini et n'applique rien, sans que Claude Code signale d'erreur :

5648 5651 

5649```json theme={null}5652```json theme={null}

5650{5653{


5654}5657}

5655```5658```

5656 5659 

5657Lorsque l'assistant émet `managedSettings`, cet objet devient la seule source de paramètres gérés pour l'exécution : Claude Code ignore les sources MDM, fichier et HKCU, lit les [clés inter-sources](https://code.claude.com/docs/fr/managed-settings.md#keys-read-from-every-admin-source) uniquement à partir de la sortie de l'assistant, et ne fusionne jamais les [paramètres parents](https://code.claude.com/docs/fr/managed-settings.md#parent-settings-from-embedding-hosts).5660Lorsque le helper émet `managedSettings`, cet objet devient la seule source de paramètres gérés pour l'exécution : Claude Code ignore les sources MDM, fichier et HKCU, lit les [clés inter-sources](https://code.claude.com/docs/fr/managed-settings.md#keys-read-from-every-admin-source) uniquement depuis la sortie du helper, et ne fusionne jamais les [paramètres parents](https://code.claude.com/docs/fr/managed-settings.md#parent-settings-from-embedding-hosts).

5658 5661 

5659La vérification `forceRemoteSettingsRefresh` au démarrage s'exécute avant l'assistant et lit n'importe quelle source d'administrateur. Un assistant qui quitte `0` avec une enveloppe qui omet `managedSettings` ne contribue aucun paramètre gérés, et les autres sources s'appliquent comme d'habitude.5662La vérification `forceRemoteSettingsRefresh` au démarrage s'exécute avant le helper et lit n'importe quelle source d'administration. Un helper qui se termine avec `0` et une enveloppe qui omet `managedSettings` ne fournit aucun paramètre géré, et les autres sources s'appliquent comme d'habitude.

5660 5663 

5661#### Défaillances de l'assistant5664#### Échecs du helper

5662 5665 

5663Une exécution de l'assistant échoue lorsque :5666Une exécution du helper échoue lorsque :

5664 5667 

5665* `path` viole les règles dans [`policyHelper.path`](#policyhelper-path).5668* `path` enfreint les règles de [`policyHelper.path`](#policyhelper-path).

5666* Aucun fichier régulier n'existe à `path`. Claude Code vérifie le fichier avant de démarrer l'assistant, dans le même budget `timeoutMs`, de sorte qu'un montage réseau qui ne répond pas peut causer l'échec de l'exécution.5669* Aucun fichier ordinaire ne se trouve à `path`. Claude Code vérifie la présence du fichier avant de démarrer le helper, dans le même budget `timeoutMs` ; un montage réseau qui ne répond pas peut donc faire échouer l'exécution.

5667* L'assistant quitte non-zéro, s'exécute toujours lorsque `timeoutMs` s'écoule, ou ne démarre pas du tout, par exemple parce qu'il n'est pas exécutable.5670* Le helper se termine avec un code non nul, est toujours en cours d'exécution lorsque `timeoutMs` s'écoule, ou ne démarre pas du tout, par exemple parce qu'il n'est pas exécutable.

5668* L'assistant écrit plus de 1 MiB à stdout ou à stderr.5671* Le helper écrit plus de 1 Mio sur stdout ou sur stderr.

5669* stdout n'est pas un seul objet JSON, ou son `managedSettings` a une [violation de schéma que Claude Code ne peut pas réparer](https://code.claude.com/docs/fr/managed-settings.md#find-entries-claude-code-dropped).5672* stdout n'est pas un objet JSON unique, ou son `managedSettings` présente une [violation de schéma que Claude Code ne peut pas corriger](https://code.claude.com/docs/fr/managed-settings.md#find-entries-claude-code-dropped).

5670 5673 

5671Lorsque l'exécution au démarrage échoue, Claude Code imprime la raison et refuse de démarrer. Après une sortie non-zéro, la raison inclut stderr de l'assistant, ou sa stdout lorsque stderr est vide. Après un délai d'expiration, la raison nomme la limite `timeoutMs` et n'inclut aucune sortie de l'assistant. Le refus couvre les sessions interactives, `claude -p`, les sessions du SDK Agent, les [sessions en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) et la plupart des sous-commandes.5674Lorsque l'exécution au démarrage échoue, Claude Code affiche la raison et refuse de démarrer. Après une sortie avec un code non nul, la raison inclut le stderr du helper, ou son stdout lorsque stderr est vide. Après un délai d'expiration, la raison nomme la limite `timeoutMs` et n'inclut aucune sortie du helper. Le refus concerne les sessions interactives, `claude -p`, les sessions de l'Agent SDK, les [sessions en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) et la plupart des sous-commandes.

5672 5675 

5673Le refus est délibéré, de sorte qu'un assistant qui a besoin de résilience en cas de panne doit servir à partir de son propre cache et quitter `0`.5676Ce refus est délibéré ; un helper qui doit résister aux pannes doit donc servir depuis son propre cache et se terminer avec `0`.

5674 5677 

5675Lorsqu'une actualisation en arrière-plan échoue, Claude Code maintient la dernière politique réussie en vigueur, et `/status` affiche l'actualisation échouée avec sa raison jusqu'à ce qu'une actualisation réussisse. Chaque actualisation s'exécute sous les mêmes `timeoutMs` et règles d'échec que l'exécution au démarrage.5678Lorsqu'une actualisation en arrière-plan échoue, Claude Code maintient en vigueur la dernière stratégie obtenue avec succès, et `/status` affiche l'actualisation en échec avec sa raison jusqu'à ce qu'une actualisation réussisse. Chaque actualisation s'exécute avec le même `timeoutMs` et les mêmes règles d'échec que l'exécution au démarrage.

5676 5679 

5677Avec `--debug`, Claude Code écrit stderr de l'assistant de chaque exécution dans le [journal de débogage](https://code.claude.com/docs/fr/debug-your-config.md).5680Avec `--debug`, Claude Code écrit le stderr du helper de chaque exécution dans le [log de débogage](https://code.claude.com/docs/fr/debug-your-config.md).

5678 5681 

5679Claude Code signale une valeur `policyHelper` invalide comme une [entrée supprimée](https://code.claude.com/docs/fr/managed-settings.md#find-entries-claude-code-dropped) et démarre la session sur les paramètres gérés restants sans exécuter d'assistant. Les valeurs invalides incluent une chaîne de chemin nu et un `timeoutMs` en dessous de [son minimum](#policyhelper-timeoutms).5682Claude Code signale une valeur `policyHelper` invalide comme une [entrée ignorée](https://code.claude.com/docs/fr/managed-settings.md#find-entries-claude-code-dropped) et démarre la session avec les paramètres gérés restants sans exécuter de helper. Les valeurs invalides incluent une simple chaîne de chemin et un `timeoutMs` inférieur à [son minimum](#policyhelper-timeoutms).

5680 5683 

5681Pour désactiver un assistant, supprimez la clé de la source qui la définit.5684Pour désactiver un helper, supprimez la clé de la source qui la définit.

5682 5685 

5683### `policyHelper.path`5686### `policyHelper.path`

5684 5687 

5685Nommez l'exécutable de l'assistant que Claude Code exécute. Pour ce qui se passe lorsque le chemin viole les règles ci-dessous, voir [Défaillances de l'assistant](#helper-failures).5688Nommer l'exécutable du helper que Claude Code exécute. Pour savoir ce qui se passe lorsque le chemin enfreint les règles ci-dessous, consultez [Échecs du helper](#helper-failures).

5686 5689 

5687* **Portée** : [`Managed`](#scopes). Lire à partir de la plist macOS, du registre Windows HKLM ou du fichier de paramètres gérés, partout où [`policyHelper`](#policyhelper) est lu.5690* **Portée** : [`Managed`](#scopes). Lue depuis le plist macOS, le registre Windows HKLM ou le fichier de paramètres gérés, là où [`policyHelper`](#policyhelper) est lue.

5688* **Type** : chaîne, un chemin absolu sous forme normalisée, sans segments `.` ou `..` ; sur Windows, un chemin de lettre de lecteur ou UNC qui se termine par `.exe`5691* **Type** : string, un chemin absolu sous forme normalisée, sans segments `.` ni `..` ; sous Windows, un chemin avec lettre de lecteur ou un chemin UNC se terminant par `.exe`

5689* **Défaut** : aucun ; requis lorsque `policyHelper` est défini5692* **Par défaut** : aucune ; obligatoire lorsque `policyHelper` est définie

5690 5693 

5691```json managed-settings.json theme={null}5694```json managed-settings.json theme={null}

5692{5695{


5698 5701 

5699### `policyHelper.timeoutMs`5702### `policyHelper.timeoutMs`

5700 5703 

5701Définissez combien de temps Claude Code attend l'assistant avant de traiter l'exécution comme échouée. Une exécution expirée échoue de la même manière qu'une sortie non-zéro, de sorte qu'au démarrage Claude Code refuse de démarrer.5704Définir combien de temps Claude Code attend le helper avant de considérer l'exécution comme ayant échoué. Une exécution qui expire échoue de la même manière qu'une sortie avec un code non nul ; au démarrage, Claude Code refuse donc de démarrer.

5702 5705 

5703* **Portée** : [`Managed`](#scopes). Lire à partir de la plist macOS, du registre Windows HKLM ou du fichier de paramètres gérés, partout où [`policyHelper`](#policyhelper) est lu.5706* **Portée** : [`Managed`](#scopes). Lue depuis le plist macOS, le registre Windows HKLM ou le fichier de paramètres gérés, là où [`policyHelper`](#policyhelper) est lue.

5704* **Type** : entier, millisecondes, minimum `1000`5707* **Type** : integer, en millisecondes, minimum `1000`

5705* **Défaut** : `10000`5708* **Par défaut** : `10000`

5706 5709 

5707```json managed-settings.json theme={null}5710```json managed-settings.json theme={null}

5708{5711{


5715 5718 

5716### `policyHelper.refreshIntervalMs`5719### `policyHelper.refreshIntervalMs`

5717 5720 

5718Faites en sorte que Claude Code réexécute l'assistant en arrière-plan à un intervalle de sorte que les modifications de politique atteignent une session en cours d'exécution. Lorsqu'une actualisation réussit, sa sortie remplace les paramètres gérés précédents sans redémarrage ; lorsqu'une actualisation échoue, Claude Code maintient la politique qu'il a déjà.5721Faire réexécuter le helper par Claude Code en arrière-plan à intervalle régulier, afin que les changements de stratégie atteignent une session en cours. Lorsqu'une actualisation réussit, sa sortie remplace les paramètres gérés précédents sans redémarrage ; lorsqu'une actualisation échoue, Claude Code conserve la stratégie dont il dispose déjà.

5719 5722 

5720* **Portée** : [`Managed`](#scopes). Lire à partir de la plist macOS, du registre Windows HKLM ou du fichier de paramètres gérés, partout où [`policyHelper`](#policyhelper) est lu.5723* **Portée** : [`Managed`](#scopes). Lue depuis le plist macOS, le registre Windows HKLM ou le fichier de paramètres gérés, là où [`policyHelper`](#policyhelper) est lue.

5721* **Type** : entier, millisecondes : `0` pour désactiver l'actualisation, sinon au moins `60000`5724* **Type** : integer, en millisecondes : `0` pour désactiver l'actualisation, sinon au moins `60000`

5722* **Défaut** : non défini, de sorte que Claude Code exécute l'assistant une fois au démarrage5725* **Par défaut** : non définie, donc Claude Code exécute le helper une seule fois au démarrage

5723 5726 

5724Cet exemple réexécute l'assistant toutes les cinq minutes :5727Cet exemple réexécute le helper toutes les cinq minutes :

5725 5728 

5726```json managed-settings.json theme={null}5729```json managed-settings.json theme={null}

5727{5730{


5734 5737 

5735### `wslInheritsWindowsSettings`5738### `wslInheritsWindowsSettings`

5736 5739 

5737Faites en sorte que Claude Code sur WSL lise les paramètres gérés de la chaîne de politique Windows, avec HKLM et le fichier de paramètres gérés Windows prenant la priorité sur `/etc/claude-code` et HKCU en dessous. Pendant que la chaîne est activée, Claude Code lit `/etc/claude-code` uniquement lorsqu'[aucun document d'administrateur Windows n'est présent](https://code.claude.com/docs/fr/managed-settings.md#present-admin-documents) dans la valeur du registre HKLM ou le dossier `C:\Program Files\ClaudeCode\`. Définissez-le pour étendre la politique que vous déployez déjà sur Windows aux sessions WSL sur la même machine, de sorte qu'elles suivent les mêmes règles que les sessions hôte. Claude Code l'honore uniquement lorsqu'il est défini dans la clé du registre HKLM ou dans un fichier de paramètres gérés ou un drop-in sous `C:\Program Files\ClaudeCode\`, qui nécessitent tous deux l'administrateur Windows pour écrire.5740Faire lire par Claude Code sous WSL les paramètres gérés depuis la chaîne de stratégies Windows, HKLM et le fichier de paramètres gérés Windows ayant priorité sur `/etc/claude-code`, avec HKCU en dessous. Tant que la chaîne est activée, Claude Code ne lit `/etc/claude-code` que lorsqu'[aucun document d'administration Windows n'est présent](https://code.claude.com/docs/fr/managed-settings.md#present-admin-documents) dans la valeur de registre HKLM ou dans le dossier `C:\Program Files\ClaudeCode\`. Définissez-la pour étendre la stratégie que vous déployez déjà sous Windows aux sessions WSL de la même machine, afin qu'elles suivent les mêmes règles que les sessions de l'hôte. Claude Code ne la respecte que lorsqu'elle est définie dans la clé de registre HKLM ou dans un fichier de paramètres gérés ou un fichier drop-in sous `C:\Program Files\ClaudeCode\`, dont l'écriture nécessite dans les deux cas des droits d'administrateur Windows.

5738 5741 

5739* **Portée** : [`Managed`](#scopes). Dans une source Windows contrôlée par l'administrateur.5742* **Portée** : [`Managed`](#scopes). Dans une source Windows contrôlée par un administrateur.

5740* **Type** : Booléen5743* **Type** : Boolean

5741 * `true` : Claude Code sur WSL lit les paramètres gérés de la chaîne de politique Windows, et lit `/etc/claude-code` uniquement lorsqu'aucun document d'administrateur Windows n'est présent5744 * `true` : Claude Code sous WSL lit les paramètres gérés depuis la chaîne de stratégies Windows, et ne lit `/etc/claude-code` que lorsqu'aucun document d'administration Windows n'est présent

5742 * `false` : WSL lit uniquement `/etc/claude-code`5745 * `false` : WSL lit uniquement `/etc/claude-code`

5743* **Défaut** : `false`, de sorte que WSL lit uniquement `/etc/claude-code`5746* **Par défaut** : `false`, donc WSL lit uniquement `/etc/claude-code`

5744 5747 

5745```json managed-settings.json theme={null}5748```json managed-settings.json theme={null}

5746{5749{


5748}5751}

5749```5752```

5750 5753 

5751Une fois qu'une source d'administrateur active la chaîne, la politique HKCU la rejoint sur WSL uniquement lorsque HKCU définit également la clé à `true`. Cette copie n'active pas la chaîne par elle-même. Une source Windows qui contient uniquement cette clé, définie à `true` ou `false`, ne compte pas comme une source de politique, de sorte qu'une source de priorité inférieure fournit toujours la politique. Cette clé n'a aucun effet sur Windows natif.5754Une fois qu'une source d'administration a activé la chaîne, la stratégie HKCU ne la rejoint sous WSL que si HKCU définit également la clé sur `true`. Cette copie n'active pas la chaîne à elle seule. Une source Windows qui ne contient que cette clé, définie sur `true` ou `false`, ne compte pas comme une source de stratégie ; une source de priorité inférieure fournit donc toujours la stratégie. Cette clé n'a aucun effet sous Windows natif.

5752 5755 

5753Claude Code lit `true` et `false` avec ou sans guillemets et lit `null` comme supprimant la clé. Une source Windows contrôlée par l'administrateur qui contient n'importe quelle autre valeur compte comme un [document d'administrateur présent](https://code.claude.com/docs/fr/managed-settings.md#present-admin-documents) avec la chaîne activée : ni `/etc/claude-code` ni HKCU ne s'appliquent, et un avertissement de démarrage nomme la clé. Une valeur HKLM ou un fichier de dossier Windows qui existe mais ne peut pas être lu empêche également `/etc/claude-code` de s'appliquer que la chaîne soit activée ou non. Nécessite Claude Code v2.1.282 ou ultérieur.5756Claude Code lit `true` et `false` avec ou sans guillemets et interprète `null` comme une suppression de la clé. Une source Windows contrôlée par un administrateur qui contient toute autre valeur compte comme un [document d'administration présent](https://code.claude.com/docs/fr/managed-settings.md#present-admin-documents) avec la chaîne activée : ni `/etc/claude-code` ni HKCU ne s'appliquent, et un avertissement au démarrage nomme la clé. Une valeur HKLM ou un fichier du dossier Windows qui existe mais ne peut pas être lu empêche également `/etc/claude-code` de s'appliquer, que la chaîne soit activée ou non. Nécessite Claude Code v2.1.282 ou une version ultérieure.

5754 5757 

5755## Paramètres de configuration globale5758## Paramètres de configuration globale

5756 5759 

vs-code.md +36 −17

Details

203What's in @src/components/ (include a trailing slash for folders)203What's in @src/components/ (include a trailing slash for folders)

204```204```

205 205 

206Pour les PDF volumineux, vous pouvez demander à Claude de lire des pages spécifiques plutôt que le fichier entier. Demandez une seule page, une plage comme les pages 1 à 10, ou une plage ouverte comme à partir de la page 3. La lecture de pages spécifiques nécessite [poppler-utils](https://code.claude.com/docs/fr/tools-reference.md#read-tool-behavior) sur la machine où Claude Code s'exécute.206### Lire des pages spécifiques d'un PDF

207 

208Lorsque vous sélectionnez du texte dans l'éditeur, Claude peut voir automatiquement le code mis en surbrillance. Le pied de la zone de prompt indique le nombre de lignes sélectionnées. Appuyez sur `Option+K` (Mac) / `Alt+K` (Windows/Linux) pour insérer une @-mention avec le chemin du fichier et les numéros de ligne, par exemple `@app.ts#5-10`. Cliquez sur le **X** de l'indicateur de sélection pour la retirer afin que Claude ne reçoive pas la sélection. L'indicateur réapparaît lorsque vous sélectionnez un autre texte.

209 207 

210L'extension retient le texte sélectionné de certains fichiers :208Pour les PDF volumineux, vous pouvez demander à Claude de lire des pages spécifiques plutôt que le fichier entier. Demandez une seule page, une plage comme les pages 1 à 10, ou une plage ouverte comme à partir de la page 3. La lecture de pages spécifiques nécessite [poppler-utils](https://code.claude.com/docs/fr/tools-reference.md#read-tool-behavior) sur la machine où Claude Code s'exécute.

211 

212* Lorsque le fichier se trouve dans votre espace de travail et correspond à vos paramètres `files.exclude` ou `search.exclude`, Claude reçoit au plus le chemin du fichier, et non le texte que vous avez sélectionné.

213* Il en va de même pour un fichier ignoré par git, à condition que le paramètre `search.useIgnoreFiles` de VS Code et le [paramètre `respectGitIgnore`](#extension-settings) de l'extension soient tous deux activés, ce qui est le cas par défaut.

214 209 

215Ce filtre ne concerne que le panneau de chat. Lorsque Claude Code s'exécute dans le terminal intégré, la CLI envoie votre texte sélectionné quel que soit le fichier. Pour y empêcher Claude d'accéder au contenu d'un fichier, ajoutez une [règle deny `Read`](#the-built-in-ide-mcp-server).210### Inclure la sortie du terminal dans les prompts

216 211 

217Claude voit également quel fichier vous avez ouvert dans l'éditeur, même lorsque rien n'est sélectionné, et la zone de prompt affiche son nom. Pour n'ajouter que votre texte sélectionné, désactivez le [paramètre Attach Open File](vscode://settings/claudeCode.attachOpenFile). Ce paramètre nécessite Claude Code v2.1.271 ou version ultérieure.212Référencez la sortie du terminal dans vos prompts avec `@terminal:name`, où `name` est le titre du terminal. Cela permet à Claude de voir la sortie des commandes, les messages d'erreur ou les logs sans copier-coller.

218 213 

219Vous pouvez aussi joindre des images et des fichiers à votre message :214### Joindre des images et des fichiers

220 215 

221* Pour joindre une image, collez-la depuis votre presse-papiers dans la zone de prompt.216* Pour joindre une image, collez-la depuis votre presse-papiers dans la zone de prompt.

222* Pour joindre des fichiers, maintenez `Shift` enfoncé tout en les faisant glisser dans la zone de prompt.217* Pour joindre des fichiers, maintenez `Shift` enfoncé tout en les faisant glisser dans la zone de prompt.

223* Pour retirer une pièce jointe du contexte, cliquez sur le X qui l'accompagne.218* Pour retirer une pièce jointe du contexte, cliquez sur le X qui l'accompagne.

224 219 

225### Inclure la sortie du terminal dans les prompts

226 

227Référencez la sortie du terminal dans vos prompts avec `@terminal:name`, où `name` est le titre du terminal. Cela permet à Claude de voir la sortie des commandes, les messages d'erreur ou les logs sans copier-coller.

228 

229### Coller du texte220### Coller du texte

230 221 

231Le texte que vous collez reste visible dans la zone de prompt, au lieu d'être réduit à un espace réservé comme c'est le cas [dans le terminal](https://code.claude.com/docs/fr/terminal-config.md#paste-large-content). Dans les sessions où Claude Code [marque le texte collé](https://code.claude.com/docs/fr/terminal-config.md#how-claude-treats-pasted-text), Claude voit toujours un long collage comme du texte que vous avez collé plutôt que saisi.222Le texte que vous collez reste visible dans la zone de prompt, au lieu d'être réduit à un espace réservé comme c'est le cas [dans le terminal](https://code.claude.com/docs/fr/terminal-config.md#paste-large-content). Dans les sessions où Claude Code [marque le texte collé](https://code.claude.com/docs/fr/terminal-config.md#how-claude-treats-pasted-text), Claude voit toujours un long collage comme du texte que vous avez collé plutôt que saisi.


235* Si un avis comme `Removed 3 invisible characters from the pasted text` apparaît lorsque vous collez, le texte a été inséré sans ces caractères.226* Si un avis comme `Removed 3 invisible characters from the pasted text` apparaît lorsque vous collez, le texte a été inséré sans ces caractères.

236* Si un avis concernant des caractères supprimés apparaît lorsque vous envoyez, rien n'a été envoyé. Le texte nettoyé est de retour dans la zone de prompt. Envoyez à nouveau pour envoyer le texte tel qu'il est affiché.227* Si un avis concernant des caractères supprimés apparaît lorsque vous envoyez, rien n'a été envoyé. Le texte nettoyé est de retour dans la zone de prompt. Envoyez à nouveau pour envoyer le texte tel qu'il est affiché.

237 228 

229### Contexte automatique à partir de votre sélection et du fichier ouvert

230 

231Lorsque vous sélectionnez du texte dans l'éditeur, Claude peut voir automatiquement le code mis en surbrillance. Le pied de la zone de prompt indique le nombre de lignes sélectionnées. Claude voit également quel fichier vous avez ouvert dans l'éditeur, même lorsque rien n'est sélectionné, et la zone de prompt affiche son nom.

232 

233Appuyez sur `Option+K` (Mac) / `Alt+K` (Windows/Linux) pour insérer une @-mention avec le chemin du fichier et les numéros de ligne, par exemple `@app.ts#5-10`.

234 

235#### Exclure votre sélection et le fichier ouvert de vos messages

236 

237Pour empêcher le texte sélectionné ou votre fichier ouvert d'être inclus dans vos messages, désactivez le paramètre correspondant dans les paramètres de VS Code :

238 

239* **Texte sélectionné** : désactivez le [paramètre Attach Selection](vscode://settings/claudeCode.attachSelection). Nécessite Claude Code v2.1.300 ou version ultérieure. Pour retirer une seule sélection, cliquez sur le **X** à côté du nombre de lignes. Le nombre réapparaît lorsque vous sélectionnez un autre texte.

240* **Fichier ouvert** : désactivez le [paramètre Attach Open File](vscode://settings/claudeCode.attachOpenFile). Nécessite Claude Code v2.1.271 ou version ultérieure. Le fichier reste exclu, sauf si votre message inclut du texte que vous y avez sélectionné.

241 

242Pour ajouter du texte sous forme de @-mention lorsque Attach Selection est désactivé, sélectionnez-le et appuyez sur `Option+K` sur Mac ou `Alt+K` sous Windows et Linux.

243 

244Les deux paramètres s'appliquent également lorsque vous exécutez `claude` dans le terminal intégré de VS Code.

245 

246#### Texte sélectionné dans des fichiers exclus ou ignorés

247 

248Dans le panneau de chat, l'extension retient le texte sélectionné de certains fichiers :

249 

250* Lorsque le fichier se trouve dans votre espace de travail et correspond à vos paramètres `files.exclude` ou `search.exclude`, Claude reçoit au plus le chemin du fichier, et non le texte que vous avez sélectionné.

251* Il en va de même pour un fichier ignoré par git, à condition que le paramètre `search.useIgnoreFiles` de VS Code et le [paramètre `respectGitIgnore`](#extension-settings) de l'extension soient tous deux activés, ce qui est le cas par défaut.

252 

253Ce filtre ne concerne que le panneau de chat. Lorsque Claude Code s'exécute dans le terminal intégré, Claude peut recevoir le texte que vous sélectionnez dans ces fichiers. Pour y empêcher Claude d'accéder au contenu d'un fichier, ajoutez une [règle deny `Read`](https://code.claude.com/docs/fr/permissions#read-and-edit).

254 

238### Mathématiques LaTeX dans les réponses255### Mathématiques LaTeX dans les réponses

239 256 

240Le panneau de chat affiche les mathématiques LaTeX des réponses de Claude sous forme de formules composées. Le rendu mathématique nécessite Claude Code v2.1.301 ou version ultérieure. En [mode terminal](#switch-to-terminal-mode), les mathématiques ne sont pas composées. Le panneau compose à la fois les mathématiques en mode display et en ligne :257Le panneau de chat affiche les mathématiques LaTeX des réponses de Claude sous forme de formules composées. Le rendu mathématique nécessite Claude Code v2.1.301 ou version ultérieure. En [mode terminal](#switch-to-terminal-mode), les mathématiques ne sont pas composées. Le panneau compose à la fois les mathématiques en mode display et en ligne :


694| `preferredLocation` | `panel` | Emplacement d'ouverture de Claude : `sidebar` (à droite) ou `panel` (nouvel onglet) |711| `preferredLocation` | `panel` | Emplacement d'ouverture de Claude : `sidebar` (à droite) ou `panel` (nouvel onglet) |

695| `lockEditorGroups` | `true` | [Verrouiller les groupes d'éditeurs que Claude crée pour ses onglets](#choose-where-claude-lives), afin que les fichiers que vous ouvrez lorsqu'un onglet Claude a le focus s'ouvrent dans un autre groupe. Lorsque ce paramètre est désactivé, l'extension ne verrouille jamais de groupe d'éditeurs. Nécessite Claude Code v2.1.274 ou ultérieure |712| `lockEditorGroups` | `true` | [Verrouiller les groupes d'éditeurs que Claude crée pour ses onglets](#choose-where-claude-lives), afin que les fichiers que vous ouvrez lorsqu'un onglet Claude a le focus s'ouvrent dans un autre groupe. Lorsque ce paramètre est désactivé, l'extension ne verrouille jamais de groupe d'éditeurs. Nécessite Claude Code v2.1.274 ou ultérieure |

696| `autosave` | `true` | Enregistrer automatiquement les fichiers avant que Claude ne les lise ou ne les écrive |713| `autosave` | `true` | Enregistrer automatiquement les fichiers avant que Claude ne les lise ou ne les écrive |

697| `attachOpenFile` | `true` | Ajouter le fichier ouvert dans l'éditeur à vos messages et l'afficher dans la zone de prompt. Lorsque ce paramètre est désactivé, seul le texte sélectionné est ajouté. Nécessite Claude Code v2.1.271 ou ultérieure |714| `attachOpenFile` | `true` | Ajouter le fichier ouvert dans l'éditeur à vos messages et l'afficher dans la zone de prompt. Lorsque ce paramètre est désactivé, le fichier n'est ajouté qu'avec le texte que vous sélectionnez. Nécessite Claude Code v2.1.271 ou ultérieure |

715| `attachSelection` | `true` | Ajouter le texte que vous sélectionnez dans l'éditeur à vos messages et l'afficher dans la zone de prompt. Lorsque ce paramètre est désactivé, vous pouvez toujours [ajouter une sélection sous forme de mention @](#automatic-context-from-your-selection-and-open-file). Nécessite Claude Code v2.1.300 ou ultérieure |

698| `useCtrlEnterToSend` | `false` | Utiliser Ctrl/Cmd+Entrée au lieu d'Entrée pour envoyer les prompts |716| `useCtrlEnterToSend` | `false` | Utiliser Ctrl/Cmd+Entrée au lieu d'Entrée pour envoyer les prompts |

699| `scrollToBottomOnSend` | `true` | Faire défiler la conversation jusqu'en bas lorsque vous envoyez un message. Lorsque ce paramètre est désactivé, la conversation reste là où vous l'avez laissée. Nécessite Claude Code v2.1.275 ou ultérieure |717| `scrollToBottomOnSend` | `true` | Faire défiler la conversation jusqu'en bas lorsque vous envoyez un message. Lorsque ce paramètre est désactivé, la conversation reste là où vous l'avez laissée. Nécessite Claude Code v2.1.275 ou ultérieure |

700| `showMessageTimestamps` | `true` | Afficher l'heure d'envoi de chaque message. Une ligne de date marque le changement de jour. Nécessite Claude Code v2.1.284 ou ultérieure. Avant la v2.1.290, la valeur par défaut était `false` |718| `showMessageTimestamps` | `true` | Afficher l'heure d'envoi de chaque message. Une ligne de date marque le changement de jour. Nécessite Claude Code v2.1.284 ou ultérieure. Avant la v2.1.290, la valeur par défaut était `false` |


705| `continueAfterReload` | `true` | Après un rechargement de la fenêtre, Claude [poursuit l'étape qui a été interrompue](#continue-conversations-after-a-reload) dans la session restaurée. Nécessite Claude Code v2.1.274 ou ultérieure |723| `continueAfterReload` | `true` | Après un rechargement de la fenêtre, Claude [poursuit l'étape qui a été interrompue](#continue-conversations-after-a-reload) dans la session restaurée. Nécessite Claude Code v2.1.274 ou ultérieure |

706| `hideOnboarding` | `false` | Masquer la checklist de prise en main (icône de toque de diplômé) |724| `hideOnboarding` | `false` | Masquer la checklist de prise en main (icône de toque de diplômé) |

707| `focusView` | `false` | Masquer les appels d'outils, les résultats d'outils et la réflexion derrière des lignes dépliables, en laissant visibles vos prompts et les réponses de Claude. La dernière liste de tâches de Claude reste visible ; cela nécessite Claude Code v2.1.225 ou ultérieure. Vous pouvez également activer ou désactiver la vue Focus depuis le menu des commandes. Nécessite Claude Code v2.1.221 ou ultérieure |725| `focusView` | `false` | Masquer les appels d'outils, les résultats d'outils et la réflexion derrière des lignes dépliables, en laissant visibles vos prompts et les réponses de Claude. La dernière liste de tâches de Claude reste visible ; cela nécessite Claude Code v2.1.225 ou ultérieure. Vous pouvez également activer ou désactiver la vue Focus depuis le menu des commandes. Nécessite Claude Code v2.1.221 ou ultérieure |

708| `respectGitIgnore` | `true` | Exclure les motifs .gitignore des recherches de fichiers et du [contexte de sélection](#reference-files-and-folders) |726| `respectGitIgnore` | `true` | Exclure les motifs .gitignore des recherches de fichiers et du [contexte de sélection](#selected-text-from-excluded-or-ignored-files) |

709| `usePythonEnvironment` | `true` | Activer l'environnement Python de l'espace de travail lors de l'exécution de Claude. Nécessite l'extension Python. |727| `usePythonEnvironment` | `true` | Activer l'environnement Python de l'espace de travail lors de l'exécution de Claude. Nécessite l'extension Python. |

710| `environmentVariables` | `[]` | Définir les variables d'environnement pour le processus Claude. Utilisez plutôt les paramètres de Claude Code pour une configuration partagée. Une entrée [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars) ne s'applique que si sa valeur est un chemin absolu ; l'extension ne développe pas `~` et ignore une valeur relative. |728| `environmentVariables` | `[]` | Définir les variables d'environnement pour le processus Claude. Utilisez plutôt les paramètres de Claude Code pour une configuration partagée. Une entrée [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars) ne s'applique que si sa valeur est un chemin absolu ; l'extension ne développe pas `~` et ignore une valeur relative. |

711| `disableLoginPrompt` | `false` | Ignorer les demandes d'authentification (pour les configurations avec des fournisseurs tiers) |729| `disableLoginPrompt` | `false` | Ignorer les demandes d'authentification (pour les configurations avec des fournisseurs tiers) |


835 853 

836**Contexte de la sélection et du fichier ouvert.** Lorsqu'elle est connectée, la CLI inclut votre sélection actuelle dans l'éditeur et le chemin du fichier actif comme contexte à chaque prompt que vous envoyez. La transcription affiche alors une ligne `⧉ Selected N lines from <file>`. Les cas suivants modifient ce contexte :854**Contexte de la sélection et du fichier ouvert.** Lorsqu'elle est connectée, la CLI inclut votre sélection actuelle dans l'éditeur et le chemin du fichier actif comme contexte à chaque prompt que vous envoyez. La transcription affiche alors une ligne `⧉ Selected N lines from <file>`. Les cas suivants modifient ce contexte :

837 855 

856* **[Paramètre Attach Selection](#keep-your-selection-and-open-file-out-of-your-messages) désactivé** : la CLI n'inclut pas votre sélection comme contexte.

857* **Paramètre Attach Open File désactivé** : la CLI n'inclut le chemin du fichier actif que lorsqu'elle inclut également une sélection.

838* **Messages en file d'attente** : si vous [mettez un message en file d'attente pendant que Claude travaille](https://code.claude.com/docs/fr/interactive-mode.md#queue-messages-while-claude-works), il conserve la sélection que vous aviez au moment où vous avez appuyé sur `Enter`, quelle que soit votre sélection ultérieure.858* **Messages en file d'attente** : si vous [mettez un message en file d'attente pendant que Claude travaille](https://code.claude.com/docs/fr/interactive-mode.md#queue-messages-while-claude-works), il conserve la sélection que vous aviez au moment où vous avez appuyé sur `Enter`, quelle que soit votre sélection ultérieure.

839* **Fichiers sensibles** : pour exclure un fichier sensible tel que `.env`, ajoutez une [règle de refus `Read`](https://code.claude.com/docs/fr/permissions#read-and-edit) pour son chemin. Une règle de refus correspondante empêche à la fois le texte sélectionné et la notification de fichier ouvert pour ce fichier de parvenir à Claude.859* **Fichiers sensibles** : pour exclure un fichier sensible tel que `.env`, ajoutez une [règle de refus `Read`](https://code.claude.com/docs/fr/permissions#read-and-edit) pour son chemin. Une règle de refus correspondante empêche à la fois le texte sélectionné et la notification de fichier ouvert pour ce fichier de parvenir à Claude.

840* **Attach Open File désactivé** : si vous désactivez le [paramètre Attach Open File](#extension-settings), la CLI ne reçoit le chemin du fichier actif que lorsque du texte y est sélectionné.

841 860 

842**Transport et authentification.** Le serveur écoute sur `127.0.0.1` sur un port aléatoire compris entre 10000 et 65535, et ce port n'est pas configurable. Le transport et le jeton d'authentification fonctionnent comme suit :861**Transport et authentification.** Le serveur écoute sur `127.0.0.1` sur un port aléatoire compris entre 10000 et 65535, et ce port n'est pas configurable. Le transport et le jeton d'authentification fonctionnent comme suit :

843 862 

workflows.md +5 −4

Details

333 333 

334Le runtime du workflow exécute le script dans un environnement isolé, séparé de votre conversation. Les résultats intermédiaires restent dans les variables du script au lieu d'atterrir dans le contexte de Claude.334Le runtime du workflow exécute le script dans un environnement isolé, séparé de votre conversation. Les résultats intermédiaires restent dans les variables du script au lieu d'atterrir dans le contexte de Claude.

335 335 

336Chaque exécution écrit son script dans un fichier sous le répertoire de votre session dans `~/.claude/projects/`. Claude reçoit le chemin au démarrage de l'exécution, vous pouvez donc le demander. Vous pouvez ouvrir ce fichier pour lire l'orchestration que Claude a écrite, la comparer avec le script d'une exécution précédente, ou l'éditer et demander à Claude de relancer à partir de la version éditée.336Sauf si Claude démarre une exécution à partir du chemin d'un fichier de script, Claude Code écrit le script de l'exécution dans un fichier sous le répertoire de votre session dans `~/.claude/projects/`. Claude reçoit le chemin du script au démarrage de l'exécution, vous pouvez donc le demander. Vous pouvez ouvrir ce fichier pour lire l'orchestration que Claude a écrite, en faire un diff avec le script d'une exécution précédente, ou l'éditer et demander à Claude de relancer à partir de la version éditée.

337 337 

338Claude ne peut démarrer un workflow que à partir d'un fichier de script que la session est déjà autorisée à lire. Pour exécuter un script conservé en dehors de votre répertoire de travail, ajoutez d'abord son répertoire avec [`/add-dir`](https://code.claude.com/docs/fr/permissions#working-directories) ou une [règle d'autorisation Read](https://code.claude.com/docs/fr/permissions.md#read-and-edit).338Claude ne peut démarrer un workflow que à partir d'un fichier de script que la session est déjà autorisée à lire. Pour exécuter un script conservé en dehors de votre répertoire de travail, ajoutez d'abord son répertoire avec [`/add-dir`](https://code.claude.com/docs/fr/permissions#working-directories) ou une [règle d'autorisation Read](https://code.claude.com/docs/fr/permissions.md#read-and-edit).

339 339 


387 387 

388#### Reprendre après avoir quitté la session388#### Reprendre après avoir quitté la session

389 389 

390Vous pouvez reprendre une exécution dans la même session Claude Code. Ce qui arrive à un workflow en cours d'exécution quand vous quittez la session dépend de la façon dont vous quittez :390Si vous mettez votre session en arrière-plan ou quittez Claude Code pendant qu'une exécution de workflow est en cours, l'exécution ne continue pas d'elle-même. L'exécution ne continue que lorsque Claude la relance avec un appel `Workflow`, qui [rejoue l'exécution à partir de ses résultats sauvegardés](#which-agents-run-again).

391 391 

392* Si vous [mettez la session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md#what-carries-over-when-you-background), Claude Code rejoue l'exécution de la même manière dans la session en arrière-plan et la continue.392* **Vous avez mis la session en arrière-plan ou choisi [`Move to background and exit`](https://code.claude.com/docs/fr/agent-view#from-inside-a-session)** : si l'exécution n'a pas continué lorsque vous consultez la [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md#what-carries-over-when-you-background), demandez à Claude, dans cette session, de relancer le workflow. Selon votre [mode de permission](#approve-the-plan-before-it-runs), Claude Code vous demande d'abord d'approuver le relancement. Si la session apparaît sous `Needs input` dans la vue agent, [attachez-vous à elle](https://code.claude.com/docs/fr/agent-view.md#attach-to-a-session) pour répondre à la demande d'approbation.

393* Si vous quittez Claude Code pendant qu'un workflow s'exécute et que la [vue agent est activée](https://code.claude.com/docs/fr/agent-view.md#from-inside-a-session), la boîte de dialogue de sortie propose `Move to background and exit`, qui transfère l'exécution de la même manière. Si vous choisissez `Exit and stop tasks` à la place, ou si l'option n'est pas proposée, l'exécution s'arrête avec la session. Claude Code conserve les résultats sauvegardés de l'exécution dans le répertoire de cette session dans `~/.claude/projects/`, donc une session que vous reprenez avec `claude --resume` peut les rejouer quand vous demandez à Claude de relancer le workflow. Dans une session que vous démarrez à nouveau, Claude n'a aucune exécution antérieure à rejouer et démarre le workflow à nouveau en tant que nouvelle exécution.393* **Le relancement dans la session en arrière-plan a échoué avec `nothing to resume`** : demandez à Claude de démarrer le workflow à nouveau en tant que nouvelle exécution. Si Claude a démarré l'exécution à partir du chemin d'un fichier de script situé en dehors de `~/.claude/projects/`, par exemple un fichier dans votre répertoire de travail, Claude ne peut pas le relancer dans la session en arrière-plan.

394* **Vous avez choisi `Exit and stop tasks`, ou `Move to background and exit` ne vous a pas été proposé** : l'exécution s'est arrêtée avec la session, et Claude Code conserve les résultats sauvegardés de l'exécution dans le répertoire de cette session dans `~/.claude/projects/`. Reprenez la session avec `claude --resume` dans votre shell, puis demandez à Claude de relancer le workflow. Dans une nouvelle session, Claude n'a aucune exécution antérieure à relancer et démarre le workflow à nouveau.

394 395 

395Dans une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), Claude Code sauvegarde également les résultats de l'exécution avec l'historique de conversation de la session, qui persiste quand la VM de la session est récupérée. Quand vous [rouvrez une telle session](https://code.claude.com/docs/fr/claude-code-on-the-web.md#environment-expired) et demandez à Claude de relancer le workflow, les agents terminés retournent toujours leurs résultats sauvegardés.396Dans une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), Claude Code sauvegarde également les résultats de l'exécution avec l'historique de conversation de la session, qui persiste quand la VM de la session est récupérée. Quand vous [rouvrez une telle session](https://code.claude.com/docs/fr/claude-code-on-the-web.md#environment-expired) et demandez à Claude de relancer le workflow, les agents terminés retournent toujours leurs résultats sauvegardés.

396 397