SpyBara
Go Premium

Documentation 2026-11-13 23:02 UTC to 2026-11-14 03:01 UTC

37 files changed +338 −191. View all changes and history on the product overview
2026
Sat 14 03:01 Fri 13 23:02 Thu 12 23:02 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57
Details

14 14 

15## Comment fonctionne le point de contrôle15## Comment fonctionne le point de contrôle

16 16 

17Lorsque vous activez le point de contrôle de fichier, le SDK crée des sauvegardes de fichiers avant de les modifier via les outils Write, Edit ou NotebookEdit. Les messages utilisateur dans le flux de réponse incluent un UUID de point de contrôle que vous pouvez utiliser comme point de restauration.17Lorsque vous activez le checkpointing de fichier, le SDK crée des sauvegardes de fichiers avant de les modifier via les outils Write, Edit ou NotebookEdit. Chaque prompt qui démarre un tour est un checkpoint, et l'UUID de son message utilisateur constitue le point de restauration.

18 18 

19> [!NOTE]19> [!NOTE]

20>20>


147 147 

148**2. Capturer l'UUID du point de contrôle et l'ID de session**148**2. Capturer l'UUID du point de contrôle et l'ID de session**

149 149 

150Avec l'option `replay-user-messages` définie, chaque message utilisateur dans le flux de réponse a un UUID qui sert de point de contrôle.150Avec l'option `replay-user-messages` définie, le message utilisateur de chaque prompt qui démarre un tour possède un UUID qui sert de checkpoint. Les messages utilisateur qui contiennent des résultats d'outils possèdent également un UUID, mais celui-ci n'est pas un checkpoint.

151 151 

152Pour la plupart des cas d'utilisation, capturez l'UUID du premier message utilisateur (`message.uuid`) ; le rembobinage vers celui-ci restaure les fichiers suivis à leur état d'origine. Pour stocker plusieurs points de contrôle et rembobiner vers des états intermédiaires, consultez [Points de restauration multiples](#multiple-restore-points).152Pour la plupart des cas d'utilisation, capturez l'UUID du premier message utilisateur (`message.uuid`) ; le rembobinage vers celui-ci restaure les fichiers suivis à leur état d'origine. Pour stocker plusieurs points de contrôle et rembobiner vers des états intermédiaires, consultez [Points de restauration multiples](#multiple-restore-points).

153 153 


171 171 

172### Point de contrôle avant les opérations risquées172### Point de contrôle avant les opérations risquées

173 173 

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

175 175 

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

177 177 


193 await client.query("Refactor the authentication module")193 await client.query("Refactor the authentication module")

194 194 

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

196 # Update checkpoint before each agent turn starts196 # Update checkpoint at each prompt you send; a tool result isn't one

197 # This overwrites the previous checkpoint. Only keep the latest197 # This overwrites the previous checkpoint. Only keep the latest

198 if isinstance(message, UserMessage) and message.uuid:198 if (

199 isinstance(message, UserMessage)

200 and message.uuid

201 and message.tool_use_result is None

202 and message.parent_tool_use_id is None

203 ):

199 safe_checkpoint = message.uuid204 safe_checkpoint = message.uuid

200 205 

201 # Decide when to revert based on your own logic206 # Decide when to revert based on your own logic


225 let safeCheckpoint: string | undefined;230 let safeCheckpoint: string | undefined;

226 231 

227 for await (const message of response) {232 for await (const message of response) {

228 // Update checkpoint before each agent turn starts233 // Update checkpoint at each prompt you send; a tool result isn't one

229 // This overwrites the previous checkpoint. Only keep the latest234 // This overwrites the previous checkpoint. Only keep the latest

230 if (message.type === "user" && message.uuid) {235 if (message.type === "user" && "isReplay" in message && message.isReplay && message.uuid) {

231 safeCheckpoint = message.uuid;236 safeCheckpoint = message.uuid;

232 }237 }

233 238 


246 251 

247### Points de restauration multiples252### Points de restauration multiples

248 253 

249Si Claude effectue des modifications sur plusieurs tours, vous pouvez souhaiter rembobiner à un point spécifique plutôt que tout le chemin en arrière. Par exemple, si Claude refactorise un fichier au tour un et ajoute des tests au tour deux, vous pouvez souhaiter conserver la refactorisation mais annuler les tests.254Si Claude effectue des modifications sur plusieurs prompts, vous pouvez souhaiter rembobiner jusqu'à un point spécifique plutôt que de revenir tout au début. Par exemple, si votre premier prompt refactorise un fichier et que votre second ajoute des tests, rembobinez jusqu'au checkpoint de votre second prompt pour conserver la refactorisation et annuler les tests.

250 255 

251Ce modèle stocke tous les UUID de point de contrôle dans un tableau avec des métadonnées. Après la fin de la session, vous pouvez rembobiner à n'importe quel point de contrôle antérieur :256Ce modèle stocke chaque UUID de checkpoint dans un tableau avec des métadonnées. Après la fin de la session, vous pouvez rembobiner jusqu'à n'importe quel checkpoint antérieur :

252 257 

253```python Python theme={null}258```python Python theme={null}

254import asyncio259import asyncio


284 await client.query("Refactor the authentication module")289 await client.query("Refactor the authentication module")

285 290 

286 async for message in client.receive_response():291 async for message in client.receive_response():

287 if isinstance(message, UserMessage) and message.uuid:292 if (

293 isinstance(message, UserMessage)

294 and message.uuid

295 and message.tool_use_result is None

296 and message.parent_tool_use_id is None

297 ):

288 checkpoints.append(298 checkpoints.append(

289 Checkpoint(299 Checkpoint(

290 id=message.uuid,300 id=message.uuid,


338 348 

339 try {349 try {

340 for await (const message of response) {350 for await (const message of response) {

341 if (message.type === "user" && message.uuid) {351 if (message.type === "user" && "isReplay" in message && message.isReplay && message.uuid) {

342 checkpoints.push({352 checkpoints.push({

343 id: message.uuid,353 id: message.uuid,

344 description: `After turn ${checkpoints.length + 1}`,354 description: `After turn ${checkpoints.length + 1}`,


638 648 

639* Le point de contrôle de fichier n'a pas été activé sur la session d'origine (`enable_file_checkpointing` ou `enableFileCheckpointing` n'a pas été défini sur `true`)649* Le point de contrôle de fichier n'a pas été activé sur la session d'origine (`enable_file_checkpointing` ou `enableFileCheckpointing` n'a pas été défini sur `true`)

640* La session n'a pas été correctement complétée avant de tenter de reprendre et de rembobiner650* La session n'a pas été correctement complétée avant de tenter de reprendre et de rembobiner

651* L'UUID provient d'un message utilisateur qui contient un résultat d'outil, lequel n'est pas un checkpoint

641 652 

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

643 654 

Details

496| **Persistance** | Fichier par projet | Enregistré sous forme de fichiers | Session uniquement | Session uniquement |496| **Persistance** | Fichier par projet | Enregistré sous forme de fichiers | Session uniquement | Session uniquement |

497| **Réutilisabilité** | Par projet | Entre les projets | Duplication de code | Duplication de code |497| **Réutilisabilité** | Par projet | Entre les projets | Duplication de code | Duplication de code |

498| **Gestion** | Sur le système de fichiers | CLI + fichiers | Dans le code | Dans le code |498| **Gestion** | Sur le système de fichiers | CLI + fichiers | Dans le code | Dans le code |

499| **Outils par défaut** | Préservés | Préservés | Préservés | Perdus (sauf s'ils sont inclus) |499| **Instructions sur les outils** | Préservées | Préservées | Préservées | Perdues (sauf si elles sont incluses) |

500| **Sécurité intégrée** | Maintenue | Maintenue | Maintenue | Doit être ajoutée |500| **Sécurité intégrée** | Maintenue | Maintenue | Maintenue | Doit être ajoutée |

501| **Niveau de personnalisation** | Ajouts uniquement | Ajouts ; peut omettre les instructions de codage | Ajouts uniquement | Contrôle complet |501| **Niveau de personnalisation** | Ajouts uniquement | Ajouts ; peut omettre les instructions de codage | Ajouts uniquement | Contrôle complet |

502| **Contrôle de version** | Avec le projet | Oui | Avec le code | Avec le code |502| **Contrôle de version** | Avec le projet | Oui | Avec le code | Avec le code |

Details

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

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

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

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

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

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

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

Details

340| `Read`, `Edit`, `Glob` | Analyser et modifier le code |340| `Read`, `Edit`, `Glob` | Analyser et modifier le code |

341| `Read`, `Edit`, `Bash`, `Glob`, `Grep` | Automatisation complète |341| `Read`, `Edit`, `Bash`, `Glob`, `Grep` | Automatisation complète |

342 342 

343Pour limiter les outils intégrés de l'agent à l'un de ces ensembles, transmettez-le via `tools`. Si vous indiquez plutôt un ensemble dans `allowedTools`, vous [pré-approuvez ces outils](https://code.claude.com/docs/fr/agent-sdk/custom-tools.md#configure-allowed-tools), et l'agent peut toujours appeler les autres, sous réserve de votre mode de permission.

344 

343**Les modes de permission** contrôlent le niveau de surveillance humaine que vous souhaitez. Le SDK évalue le mode actif avec vos règles d'autorisation et de refus dans un ordre fixe, décrit dans [Comment les permissions sont évaluées](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated). Pour la liste complète des modes, leur comportement et quand utiliser chacun, consultez [Mode de permission dans Comment fonctionne la boucle de l'agent](https://code.claude.com/docs/fr/agent-sdk/agent-loop.md#permission-mode).345**Les modes de permission** contrôlent le niveau de surveillance humaine que vous souhaitez. Le SDK évalue le mode actif avec vos règles d'autorisation et de refus dans un ordre fixe, décrit dans [Comment les permissions sont évaluées](https://code.claude.com/docs/fr/agent-sdk/permissions.md#how-permissions-are-evaluated). Pour la liste complète des modes, leur comportement et quand utiliser chacun, consultez [Mode de permission dans Comment fonctionne la boucle de l'agent](https://code.claude.com/docs/fr/agent-sdk/agent-loop.md#permission-mode).

344 346 

345## Étapes suivantes347## Étapes suivantes

Details

146| `prompt` | `string` | Oui | L'invite système de l'agent définissant son rôle et son comportement |146| `prompt` | `string` | Oui | L'invite système de l'agent définissant son rôle et son comportement |

147| `tools` | `string[]` | 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) |147| `tools` | `string[]` | 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) |

148| `disallowedTools` | `string[]` | Non | Tableau des noms d'outils à supprimer de l'ensemble d'outils de l'agent. Les modèles 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 |148| `disallowedTools` | `string[]` | Non | Tableau des noms d'outils à supprimer de l'ensemble d'outils de l'agent. Les modèles 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 |

149| `model` | `string` | 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. Lorsque vous l'omettez, Claude Code choisit le modèle dans l'[ordre des modèles de sous-agent](https://code.claude.com/docs/fr/sub-agents.md#choose-a-model) |149| `model` | `string` | 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 de l'agent qui a généré celui-ci. Lorsque vous omettez `model`, Claude Code choisit le modèle dans l'[ordre des modèles de sous-agent](https://code.claude.com/docs/fr/sub-agents.md#choose-a-model) |

150| `skills` | `string[]` | Non | Liste des noms de skills à précharger dans le contexte de l'agent au démarrage. Au plus les [32 premiers noms distincts](https://code.claude.com/docs/fr/sub-agents.md#preload-skills-into-subagents) de la liste sont préchargés. Les skills non listés restent invocables via l'outil Skill |150| `skills` | `string[]` | Non | Liste des noms de skills à précharger dans le contexte de l'agent au démarrage. Au plus les [32 premiers noms distincts](https://code.claude.com/docs/fr/sub-agents.md#preload-skills-into-subagents) de la liste sont préchargés. Les skills non listés restent invocables via l'outil Skill |

151| `memory` | `'user' \| 'project' \| 'local'` | Non | Source de mémoire pour cet agent |151| `memory` | `'user' \| 'project' \| 'local'` | Non | Source de mémoire pour cet agent |

152| `mcpServers` | `(string \| object)[]` | Non | Serveurs MCP disponibles pour cet agent, par nom ou configuration en ligne |152| `mcpServers` | `(string \| object)[]` | Non | Serveurs MCP disponibles pour cet agent, par nom ou configuration en ligne |

Details

589| `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) |589| `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) |

590| `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 |590| `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 |

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

592| `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) |592| `strictMcpConfig` | `boolean` | `false` | Utiliser 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) |

593| `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 |593| `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 |

594| `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 |594| `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 |

595| `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 |595| `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 |


1285| `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 |1285| `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 |

1286| `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 |1286| `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 |

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

1288| `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) |1288| `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 de l'agent qui a lancé celui-ci. Lorsque vous omettez `model`, Claude Code choisit le modèle selon l'[ordre de sélection du modèle des sous-agents](https://code.claude.com/docs/fr/sub-agents.md#choose-a-model) |

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

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

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

agent-teams.md +26 −9

Details

102>102>

103> `tmux` présente des limitations connues sur certains systèmes d'exploitation et fonctionne traditionnellement mieux sur macOS. L'utilisation de `tmux -CC` dans iTerm2 est le point d'entrée recommandé pour `tmux`.103> `tmux` présente des limitations connues sur certains systèmes d'exploitation et fonctionne traditionnellement mieux sur macOS. L'utilisation de `tmux -CC` dans iTerm2 est le point d'entrée recommandé pour `tmux`.

104 104 

105La valeur par défaut est `"in-process"`. Définissez `"auto"` pour activer les volets divisés lorsque vous exécutez déjà une session tmux, ou lorsque votre terminal est iTerm2 avec la CLI `it2` installée, avec une solution de repli sur le mode in-process dans les autres cas. Le paramètre `"tmux"` active le mode volets divisés et détecte automatiquement s'il faut utiliser tmux ou iTerm2 en fonction de votre terminal.105Une fois les équipes d'agents [activées](#enable-agent-teams), suivez ces étapes pour donner à chaque coéquipier son propre volet :

106 106 

107Définissez `"iterm2"` pour utiliser explicitement les volets divisés natifs d'iTerm2. Ce mode nécessite la [CLI `it2`](https://github.com/mkusaka/it2) et affiche une erreur avec la commande d'installation si `it2` est absent. L'invite de configuration qui propose d'installer `it2` ou de basculer sur tmux apparaît avec `"auto"` ou `"tmux"` lorsque votre terminal est iTerm2 et que tmux est disponible comme solution de repli.107**1. Installer tmux ou configurer iTerm2**

108 108 

109Pour remplacer la valeur par défaut, définissez [`teammateMode`](https://code.claude.com/docs/fr/settings-reference#teammatemode) dans `~/.claude/settings.json` :109Le mode volets divisés nécessite soit [tmux](https://github.com/tmux/tmux/wiki), soit iTerm2 avec la [CLI `it2`](https://github.com/mkusaka/it2). Configurez celui dans lequel vous exécuterez Claude Code :

110 

111* **tmux** : installez-le via le gestionnaire de paquets de votre système. Consultez le [wiki tmux](https://github.com/tmux/tmux/wiki/Installing) pour les instructions propres à chaque plateforme.

112* **iTerm2** : installez la [CLI `it2`](https://github.com/mkusaka/it2), puis activez l'API Python dans **iTerm2 > Settings > General > Magic > Enable Python API**.

113 

114**2. Activer les volets divisés**

115 

116Les coéquipiers s'exécutent en mode in-process jusqu'à ce que vous modifiiez le paramètre [`teammateMode`](https://code.claude.com/docs/fr/settings-reference#teammatemode).

117 

118Définissez-le sur `"auto"` dans `~/.claude/settings.json` :

110 119 

111```json theme={null}120```json theme={null}

112{121{


114}123}

115```124```

116 125 

126Avec `"auto"`, les coéquipiers s'ouvrent dans des volets divisés lorsque vous exécutez Claude Code dans tmux ou iTerm2, et s'exécutent en mode in-process dans les autres terminaux.

127 

128**3. Démarrer Claude Code et lancer des coéquipiers**

129 

130Exécutez `claude` dans tmux ou dans iTerm2, puis demandez à Claude de lancer des coéquipiers.

131 

132Si une invite de configuration pour `it2` apparaît dans iTerm2, sélectionnez **Install it2 now** pour ouvrir les volets dans votre fenêtre iTerm2.

133 

134Si vous exécutez Claude Code en dehors de tmux et d'iTerm2, ou si les volets ne s'ouvrent pas dans votre fenêtre iTerm2, modifiez à nouveau `teammateMode` :

135 

136* **En dehors de tmux et d'iTerm2** : avec tmux installé, définissez `teammateMode` sur `"tmux"`. Les volets s'ouvrent dans une session tmux distincte. Pour les suivre, copiez la commande de la ligne `View teammates` dans l'invite de Claude Code et exécutez cette commande dans un second terminal.

137* **Les volets ne s'ouvrent pas dans votre fenêtre iTerm2** : définissez `teammateMode` sur `"iterm2"` pour utiliser les volets natifs d'iTerm2. Les coéquipiers ne démarrent alors que lorsque vous exécutez Claude Code dans iTerm2 avec `it2` configuré.

138 

117Pour définir le mode pour une seule session, passez-le sous forme de flag :139Pour définir le mode pour une seule session, passez-le sous forme de flag :

118 140 

119```bash theme={null}141```bash theme={null}


122 144 

123Le flag `--teammate-mode` est expérimental et n'apparaît pas dans `claude --help`.145Le flag `--teammate-mode` est expérimental et n'apparaît pas dans `claude --help`.

124 146 

125Le mode volets divisés nécessite soit [tmux](https://github.com/tmux/tmux/wiki), soit iTerm2 avec la [CLI `it2`](https://github.com/mkusaka/it2). Pour une installation manuelle :

126 

127* **tmux** : installez-le via le gestionnaire de paquets de votre système. Consultez le [wiki tmux](https://github.com/tmux/tmux/wiki/Installing) pour les instructions propres à chaque plateforme.

128* **iTerm2** : installez la [CLI `it2`](https://github.com/mkusaka/it2), puis activez l'API Python dans **iTerm2 → Settings → General → Magic → Enable Python API**.

129 

130### Spécifier les coéquipiers et les modèles147### Spécifier les coéquipiers et les modèles

131 148 

132Claude décide du nombre de coéquipiers à lancer en fonction de votre tâche, ou vous pouvez préciser exactement ce que vous voulez :149Claude décide du nombre de coéquipiers à lancer en fonction de votre tâche, ou vous pouvez préciser exactement ce que vous voulez :


497* **Pas de sous-agents d'arrière-plan à partir de coéquipiers in-process** : les propres sous-agents d'un coéquipier in-process s'exécutent au premier plan, car le travail d'arrière-plan d'un coéquipier ne peut pas survivre au processus du chef. Claude Code retourne une erreur quand un coéquipier génère un sous-agent dont la définition définit `background: true`. Une demande `run_in_background: true` d'un coéquipier échoue également, soit avec une erreur, soit en s'exécutant silencieusement au premier plan. Les sous-agents lancés à partir de la conversation principale suivent la [valeur par défaut d'arrière-plan](https://code.claude.com/docs/fr/sub-agents.md#run-subagents-in-foreground-or-background).514* **Pas de sous-agents d'arrière-plan à partir de coéquipiers in-process** : les propres sous-agents d'un coéquipier in-process s'exécutent au premier plan, car le travail d'arrière-plan d'un coéquipier ne peut pas survivre au processus du chef. Claude Code retourne une erreur quand un coéquipier génère un sous-agent dont la définition définit `background: true`. Une demande `run_in_background: true` d'un coéquipier échoue également, soit avec une erreur, soit en s'exécutant silencieusement au premier plan. Les sous-agents lancés à partir de la conversation principale suivent la [valeur par défaut d'arrière-plan](https://code.claude.com/docs/fr/sub-agents.md#run-subagents-in-foreground-or-background).

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

499* **Pas de modes de permission par coéquipier au moment de la génération** : les coéquipiers commencent avec le mode de permission décrit sous [Permissions](#permissions).516* **Pas de modes de permission par coéquipier au moment de la génération** : les coéquipiers commencent avec le mode de permission décrit sous [Permissions](#permissions).

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

501 518 

502## Prochaines étapes519## Prochaines étapes

503 520 

agent-view.md +30 −39

Details

144| Forme | Ce que cela signifie |144| Forme | Ce que cela signifie |

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

146| `✻` ou `✽` animée | Le processus de session est en cours d'exécution, ou la session a besoin de votre entrée |146| `✻` ou `✽` animée | Le processus de session est en cours d'exécution, ou la session a besoin de votre entrée |

147| `∙` | Le processus a quitté. Vous pouvez toujours jeter un coup d'œil à la ligne, et lorsque vous répondez ou vous attachez, Claude redémarre la session à partir de sa conversation enregistrée |147| `∙` | Le processus a quitté. Vous pouvez toujours jeter un coup d'œil à la ligne, et lorsque vous répondez ou appuyez sur `Enter`, Claude la redémarre à partir de sa conversation enregistrée |

148| `✢` | Une session [`/loop`](https://code.claude.com/docs/fr/scheduled-tasks) en sommeil entre les itérations. La ligne affiche son nombre d'exécutions et un compte à rebours |148| `✢` | Une session [`/loop`](https://code.claude.com/docs/fr/scheduled-tasks) en sommeil entre les itérations. La ligne affiche son nombre d'exécutions et un compte à rebours |

149 149 

150L'étiquette `#N` ou `!N` qui peut apparaître au bord droit d'une ligne est un lien vers la [pull request ou merge request](#pull-request-status) de la session, et non une partie de l'icône d'état.150L'étiquette `#N` ou `!N` qui peut apparaître au bord droit d'une ligne est un lien vers la [pull request ou merge request](#pull-request-status) de la session, et non une partie de l'icône d'état.


316* Appuyez sur `Enter` sur un en-tête de groupe pour le réduire, sauf lorsqu'un [filtre](#filter-sessions) est actif, auquel cas chaque groupe reste développé316* Appuyez sur `Enter` sur un en-tête de groupe pour le réduire, sauf lorsqu'un [filtre](#filter-sessions) est actif, auquel cas chaque groupe reste développé

317* Appuyez sur `Ctrl+X` pour arrêter une session et à nouveau sur `Ctrl+X` dans les deux secondes pour la supprimer de la liste, ou sur `Esc` pour ignorer la confirmation sans supprimer. Le deuxième appui supprime la session même lorsque la tentative d'arrêt échoue, par exemple parce que le [service en arrière-plan ne répond pas](#agent-view-says-the-background-service-did-not-respond). Dans ce cas, la confirmation reste active pendant deux secondes supplémentaires, et la suppression termine elle-même le processus de la session317* Appuyez sur `Ctrl+X` pour arrêter une session et à nouveau sur `Ctrl+X` dans les deux secondes pour la supprimer de la liste, ou sur `Esc` pour ignorer la confirmation sans supprimer. Le deuxième appui supprime la session même lorsque la tentative d'arrêt échoue, par exemple parce que le [service en arrière-plan ne répond pas](#agent-view-says-the-background-service-did-not-respond). Dans ce cas, la confirmation reste active pendant deux secondes supplémentaires, et la suppression termine elle-même le processus de la session

318 318 

319Appuyer sur `Ctrl+X` sur un en-tête de groupe supprime chaque session de ce groupe après confirmation. Sauf dans les cas de conservation décrits dans [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes), la suppression retire la session de la liste. Un worktree que Claude a créé pour elle est supprimé, conservé ou laissé en place selon la façon dont vous supprimez et ce que contient le worktree. La transcription de la conversation reste sur votre machine locale, disponible via `claude --resume`.319Appuyez sur `Ctrl+X` sur un en-tête de groupe pour supprimer chaque session de ce groupe après confirmation, à l'exception de celles que Claude Code [refuse de supprimer](#delete-a-session-after-claude-code-refuses). Consultez [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes) pour savoir ce qu'il advient du worktree de chaque session. La transcription de la conversation reste sur votre machine locale, disponible via `claude --resume`.

320 320 

321Les sessions terminées qui ne tiennent pas à l'écran se replient dans une ligne `… N more`. Le groupe `Completed` remplit l'espace vertical restant après les groupes actifs. Sur un terminal de faible hauteur, l'en-tête se compacte en une seule ligne de résumé afin que les sessions qui travaillent ou ont besoin d'entrée restent visibles.321Les sessions terminées qui ne tiennent pas à l'écran se replient dans une ligne `… N more`. Le groupe `Completed` remplit l'espace vertical restant après les groupes actifs. Sur un terminal de faible hauteur, l'en-tête se compacte en une seule ligne de résumé afin que les sessions qui travaillent ou ont besoin d'entrée restent visibles.

322 322 


622 622 

623#### Ce que la suppression d'une session supprime623#### Ce que la suppression d'une session supprime

624 624 

625Supprimez une session avec `Ctrl+X` deux fois dans la [vue des agents](#organize-the-list) ou avec [`claude rm`](#manage-sessions-from-the-shell). Sauf dans les cas de conservation ci-dessous, la session quitte la liste. Sa transcription reste sur votre machine via `claude --resume`, et la suppression persiste après les redémarrages du superviseur.625Supprimez une session avec `Ctrl+X` deux fois dans la [vue des agents](#organize-the-list) ou avec [`claude rm`](#manage-sessions-from-the-shell). La session disparaît de la liste, sauf si Claude Code [refuse de la supprimer](#delete-a-session-after-claude-code-refuses). Sa transcription reste sur votre machine, accessible via `claude --resume`.

626 626 

627Ce qui arrive à un worktree que Claude a créé pour la session :627Ce qui arrive à un worktree que Claude a créé pour la session :

628 628 

629* La vue des agents le supprime, y compris les modifications non commitées ; créez donc d'abord un commit de ce que vous voulez conserver.629* La vue des agents le supprime, y compris les modifications non commitées ; créez donc d'abord un commit de ce que vous voulez conserver.

630* `claude rm` le conserve, ainsi que la ligne de la session, lorsqu'il contient des modifications non commitées.630* `claude rm` le conserve, ainsi que la ligne de la session, lorsqu'il contient des modifications non commitées.

631* Ni la vue des agents ni `claude rm` ne suppriment un worktree qu'une autre session en cours utilise ou a verrouillé, et supprimer à nouveau n'y change rien. Claude Code conserve le worktree et la session, et nomme le répertoire conservé ainsi que la raison ; dans la vue des agents, la ligne de la session affiche `not removed`. Fermez l'autre session, puis supprimez à nouveau.

632* Lorsque vous supprimez une session dont le worktree contient des commits dont Claude Code ne peut pas confirmer qu'ils sont sauvegardés ailleurs, Claude Code conserve le worktree et la session, et le message nomme la branche du worktree et le nombre de commits non poussés. Le message propose également les deux façons de procéder : pousser les commits, ou supprimer à nouveau pour les abandonner.

633 631 

634 Les commits présents sur un remote ne bloquent pas la suppression. Les commits présents sur la copie locale de la branche par défaut de votre remote `origin` non plus, tant que cette branche est extraite dans votre copie de travail principale, c'est-à-dire le répertoire du dépôt lui-même plutôt qu'un worktree.632L'une des raisons pour lesquelles Claude Code refuse de supprimer une session est la présence de [commits non poussés dans son worktree](https://code.claude.com/docs/fr/errors.md#worktree-has-commits-that-are-not-pushed-anywhere). Pour conserver ces commits, poussez-les avant de supprimer la session.

635 633 

636 Après ce refus, vous choisissez :634Certains worktrees restent sur le disque, que vous utilisiez la vue des agents ou `claude rm` :

637 635 

638 * Pour conserver les commits, poussez-les ou fusionnez-les dans cette branche par défaut, puis supprimez à nouveau la session.636* Si vous avez créé vous-même un worktree et démarré la session depuis celui-ci, le worktree reste sur le disque pour que vous le conserviez ou le supprimiez.

639 * Pour les abandonner, supprimez à nouveau la session sans pousser : appuyez deux fois sur `Ctrl+X` sur sa ligne dans la vue des agents, ou exécutez la commande `claude rm <id> --discard-unpushed` affichée par le refus. Cela supprime la session et le worktree ainsi que sa branche, en abandonnant les commits non poussés et toutes les modifications non commitées.637* Si un répertoire de worktree que Claude a créé dans votre dépôt n'a plus son fichier `.git`, le répertoire reste sur le disque pour que vous le supprimiez. La branche du worktree reste dans le dépôt, vous conservez donc les commits de cette branche.

640 638 

641 Lorsque vous supprimez à nouveau, Claude Code n'abandonne que ce que le refus a montré : si le worktree a reçu un commit depuis, Claude Code le conserve à nouveau et affiche l'état mis à jour.639##### Supprimer une session après un refus de Claude Code

642 640 

643 Lorsque les enregistrements d'une autre session terminée nomment également le worktree, celui-ci est conservé lorsque vous supprimez à nouveau ; poussez les commits, puis supprimez à nouveau.641Lorsque Claude Code refuse de supprimer une session à cause de son worktree, suivez le message qu'il affiche. Si le message mentionne des commits non poussés, consultez [Worktree has commits that are not pushed anywhere](https://code.claude.com/docs/fr/errors.md#worktree-has-commits-that-are-not-pushed-anywhere).

644* Un worktree que git ne reconnaît plus, par exemple après `git worktree prune`, ne bloque pas la suppression. Claude Code supprime la session et laisse le répertoire sur le disque.

645* Lorsque git ou votre [hook `WorktreeRemove`](https://code.claude.com/docs/fr/hooks#worktreeremove) ne parvient pas à supprimer le worktree, Claude Code conserve le worktree et la session, et le message en nomme la cause. Pour un hook, le message indique comment il s'est terminé, par exemple `exited 1`, et cite le début de sa sortie stderr. Le message vous indique également laquelle de ces actions effectuer ensuite :

646 642 

647 * Supprimez à nouveau la session pour supprimer le répertoire malgré tout, en appuyant deux fois sur `Ctrl+X` sur sa ligne dans la vue des agents ou en exécutant la commande `claude rm <id> --force-remove-worktree <worktree-id>` affichée par le refus de `claude rm`. La branche du worktree reste dans le dépôt.643##### Résoudre un message `Worktree not removed`

648 644 

649 Claude Code ne propose cette option que lorsqu'il peut confirmer tous les points suivants :645Un message `Worktree not removed` signifie que Claude Code ou votre [hook `WorktreeRemove`](https://code.claude.com/docs/fr/hooks#worktreeremove) n'a pas terminé la suppression du worktree de la session. Poussez vos commits et copiez ailleurs les fichiers que vous souhaitez conserver, puis suivez le message.

650 646 

651 * Le répertoire est l'un des worktrees liés du dépôt sous `.claude/worktrees/`647##### Résoudre un message `files that weren't checked against a repository`

652 * Ni le worktree ni un sous-module extrait ne contiennent de modifications non commitées sur des fichiers suivis

653 * Aucun enregistrement d'une autre session ne le nomme

654 648 

655 Lorsque Claude Code ne peut pas vérifier l'état de l'extraction d'un sous-module, par exemple un sous-module remplacé par un dépôt git distinct, il ne propose pas non plus cette option.649Ce message de `claude rm` signifie que des fichiers restent dans un répertoire de worktree qui ne se trouve dans aucun dépôt git ou qu'un [hook `WorktreeCreate`](https://code.claude.com/docs/fr/hooks#worktreecreate) gère. Copiez ailleurs les fichiers que vous souhaitez conserver, puis suivez l'étape correspondant à votre cas :

656 * Corrigez ce qui fait obstacle, par exemple en créant un commit ou en mettant de côté (stash) les modifications non commitées, en déplaçant un dépôt git distinct hors du worktree, en fermant ce qui utilise le répertoire ou en corrigeant le hook, puis supprimez à nouveau la session.

657 * Supprimez vous-même le répertoire, puis supprimez à nouveau la session.

658 650 

659Un worktree que vous avez créé vous-même et dans lequel vous avez démarré la session est laissé en place dans tous les cas.651| Votre cas | Que faire |

660 652| :- | :- |

661Une session dont le répertoire de worktree n'appartient à aucun dépôt git, parce que le dépôt a été supprimé ou qu'un [hook `WorktreeCreate`](https://code.claude.com/docs/fr/hooks#worktreecreate) a créé le répertoire ailleurs, peut tout de même être supprimée. Tant que des fichiers restent dans le répertoire :653| Aucun hook `WorktreeCreate` ne gère le répertoire | Pour abandonner les fichiers, appuyez deux fois sur `Ctrl+X` sur la ligne de la session dans la vue des agents. Ou supprimez vous-même le répertoire, puis exécutez à nouveau `claude rm <id>` |

662 654| Un hook `WorktreeCreate` gère le répertoire, et vous avez un [hook `WorktreeRemove`](https://code.claude.com/docs/fr/hooks#worktreeremove) | Pour essayer de supprimer le répertoire avec votre hook, appuyez deux fois sur `Ctrl+X` sur la ligne de la session dans la vue des agents. Ou supprimez vous-même le répertoire, puis exécutez à nouveau `claude rm <id>` |

663* La vue des agents demande le même double appui sur `Ctrl+X` avant de les abandonner. Pour un répertoire créé par un hook, elle exécute plutôt votre [hook `WorktreeRemove`](https://code.claude.com/docs/fr/hooks#worktreeremove) et, en l'absence de celui-ci, refuse la suppression et conserve la session.655| Un hook `WorktreeCreate` gère le répertoire, et vous n'avez pas de hook `WorktreeRemove` | Supprimez vous-même le répertoire, puis exécutez à nouveau `claude rm <id>` |

664* `claude rm` conserve la session et le worktree, et nomme la raison.

665 

666Dans les deux cas, un répertoire nommé par les enregistrements d'une autre session terminée est conservé.

667 656 

668### Définir le modèle, l'effort et le mode rapide657### Définir le modèle, l'effort et le mode rapide

669 658 


774| [`--add-dir <path>`](https://code.claude.com/docs/fr/permissions#additional-directories-grant-file-access-not-configuration) | Accorder l'accès aux fichiers d'un répertoire supplémentaire |763| [`--add-dir <path>`](https://code.claude.com/docs/fr/permissions#additional-directories-grant-file-access-not-configuration) | Accorder l'accès aux fichiers d'un répertoire supplémentaire |

775| [`--plugin-dir <path>`](https://code.claude.com/docs/fr/plugins/create#load-a-directory-or-archive-for-one-session) | Charger un plugin depuis un répertoire local |764| [`--plugin-dir <path>`](https://code.claude.com/docs/fr/plugins/create#load-a-directory-or-archive-for-one-session) | Charger un plugin depuis un répertoire local |

776| [`--mcp-config <file-or-json>`](https://code.claude.com/docs/fr/mcp) | Charger des serveurs MCP depuis un fichier de configuration ou une chaîne JSON |765| [`--mcp-config <file-or-json>`](https://code.claude.com/docs/fr/mcp) | Charger des serveurs MCP depuis un fichier de configuration ou une chaîne JSON |

777| `--strict-mcp-config` | Utiliser uniquement les serveurs MCP de `--mcp-config`, en ignorant toute autre configuration MCP. Consultez [Contrôle exclusif avec managed-mcp.json](https://code.claude.com/docs/fr/managed-mcp.md#exclusive-control-with-managed-mcp-json) pour savoir ce que fait le flag en présence d'un fichier MCP géré |766| `--strict-mcp-config` | Ignorer les serveurs MCP configurés dans des emplacements comme `.mcp.json`, et charger ceux que vous passez avec `--mcp-config`. Consultez [Contrôle exclusif avec managed-mcp.json](https://code.claude.com/docs/fr/managed-mcp.md#exclusive-control-with-managed-mcp-json) pour savoir ce que fait le flag en présence d'un fichier MCP géré |

778 767 

779Répétez `--add-dir`, `--plugin-dir` ou `--mcp-config` une fois par valeur. `claude agents` ne prend pas en charge la forme séparée par des espaces, comme `--add-dir a b c`.768Répétez `--add-dir`, `--plugin-dir` ou `--mcp-config` une fois par valeur. `claude agents` ne prend pas en charge la forme séparée par des espaces, comme `--add-dir a b c`.

780 769 


802| `claude stop <id>` | Arrêter une session. Accepte aussi `claude kill` |791| `claude stop <id>` | Arrêter une session. Accepte aussi `claude kill` |

803| `claude respawn <id>` | Redémarrer une session, en cours d'exécution ou arrêtée, par exemple pour utiliser un binaire Claude Code mis à jour. Une session qui a une conversation enregistrée la reprend |792| `claude respawn <id>` | Redémarrer une session, en cours d'exécution ou arrêtée, par exemple pour utiliser un binaire Claude Code mis à jour. Une session qui a une conversation enregistrée la reprend |

804| `claude respawn --all` | Redémarrer chaque session en cours d'exécution, par exemple pour déplacer toutes les sessions vers un binaire Claude Code mis à jour en une seule fois |793| `claude respawn --all` | Redémarrer chaque session en cours d'exécution, par exemple pour déplacer toutes les sessions vers un binaire Claude Code mis à jour en une seule fois |

805| `claude rm <id>` | Supprimer une session de la liste, ainsi qu'une worktree que Claude a créée pour elle quand il est sûr de la supprimer ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). La transcription de la conversation reste sur votre machine locale et reste disponible via `claude --resume` |794| `claude rm <id>` | Supprimer une session de la liste, ainsi qu'un worktree que Claude a créé pour elle quand il est sûr de le supprimer. Si Claude Code refuse de supprimer la session en raison de son worktree, voir [Supprimer une session après un refus de Claude Code](#delete-a-session-after-claude-code-refuses). La transcription de la conversation reste sur votre machine locale et reste disponible via `claude --resume` |

806| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Supprimer une session dont la suppression a été refusée en raison de commits non poussés, en supprimant la worktree ainsi que sa branche et ses commits. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.260 ou ultérieur |795| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Réessayer de supprimer une session et abandonner son worktree, après que Claude Code a refusé en raison de commits non poussés. Copiez la commande depuis le message `claude rm` qui la propose ; voir [Worktree has commits that are not pushed anywhere](https://code.claude.com/docs/fr/errors.md#worktree-has-commits-that-are-not-pushed-anywhere). Nécessite v2.1.260 ou ultérieur |

807| `claude rm <id> --force-remove-worktree <worktree-id>` | Supprimer une session dont la suppression a été refusée parce que git ou le hook `WorktreeRemove` n'a pas pu supprimer sa worktree, en supprimant le répertoire worktree de toute façon et en laissant sa branche dans le dépôt. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.268 ou ultérieur |796| `claude rm <id> --force-remove-worktree <worktree-id>` | Réessayer de supprimer une session et supprimer quand même le répertoire de son worktree, après que Claude Code a refusé parce qu'il n'a pas pu supprimer le worktree. Copiez la commande depuis le message `claude rm` qui la propose ; voir [Résoudre un message `Worktree not removed`](#resolve-a-worktree-not-removed-message). Nécessite v2.1.268 ou ultérieur |

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

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

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


939 928 

940 Appuyez sur `Enter` sur la ligne et le pied de page affiche `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to remove it.` Appuyez sur `Enter` sur la même ligne à nouveau pour reprendre sa conversation enregistrée. Une réponse ou `claude attach <id>` la reprend sans ce message de pied de page.929 Appuyez sur `Enter` sur la ligne et le pied de page affiche `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to remove it.` Appuyez sur `Enter` sur la même ligne à nouveau pour reprendre sa conversation enregistrée. Une réponse ou `claude attach <id>` la reprend sans ce message de pied de page.

941 930 

942Quand le [nettoyage des transcriptions](https://code.claude.com/docs/fr/settings-reference.md#cleanupperioddays) a supprimé la conversation enregistrée d'une session arrêtée, Claude Code refuse d'ouvrir la ligne : le message dit qu'il n'y a rien à reprendre. `claude rm <id>` supprime la ligne, sauf dans les [cas conservés](#what-deleting-a-session-removes) décrits ci-dessus, et `claude respawn <id>` exécute à nouveau son prompt d'origine. Consultez [This session's saved conversation is no longer on disk](https://code.claude.com/docs/fr/errors.md#this-sessions-saved-conversation-is-no-longer-on-disk).931Quand le [nettoyage des transcriptions](https://code.claude.com/docs/fr/settings-reference.md#cleanupperioddays) a supprimé la conversation enregistrée d'une session arrêtée, Claude Code refuse d'ouvrir la ligne : le message dit qu'il n'y a rien à reprendre. `claude rm <id>` supprime la ligne, sauf si [Claude Code refuse](#what-deleting-a-session-removes), et `claude respawn <id>` exécute à nouveau son prompt d'origine. Consultez [This session's saved conversation is no longer on disk](https://code.claude.com/docs/fr/errors.md#this-sessions-saved-conversation-is-no-longer-on-disk).

943 932 

944La mise en veille seule n'arrête pas les sessions. Les sessions sont préservées pendant la mise en veille et le superviseur se reconnecte à elles au réveil.933La mise en veille seule n'arrête pas les sessions. Les sessions sont préservées pendant la mise en veille et le superviseur se reconnecte à elles au réveil.

945 934 


973 962 

974Quand le processus d'une session en arrière-plan se termine avant de finir de démarrer et que l'hôte manque de mémoire, le statut de la ligne nomme la sortie et ajoute `possibly low memory — free some up and retry`.963Quand le processus d'une session en arrière-plan se termine avant de finir de démarrer et que l'hôte manque de mémoire, le statut de la ligne nomme la sortie et ajoute `possibly low memory — free some up and retry`.

975 964 

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

966>

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

977 968 

978Libérez de la mémoire sur la machine, puis attachez-vous ou répondez à la ligne et le superviseur démarre un nouveau processus pour la session. Quand la mémoire reste faible, le superviseur [arrête également les sessions inactives](#the-supervisor-process) pour libérer des ressources de sa propre initiative, et arrête également les sessions épinglées inactives si l'arrêt des autres n'a rien libéré.969Libérez de la mémoire sur l'hôte, puis appuyez sur `Enter` sur la ligne, et appuyez à nouveau si [le pied de page le demande](#opening-a-session-says-it-has-no-saved-transcript). Le [superviseur](#the-supervisor-process) démarre un nouveau processus pour la session. Quand la mémoire reste faible, le superviseur [arrête également les sessions inactives](#the-supervisor-process) pour libérer des ressources de sa propre initiative, et arrête également les sessions épinglées inactives si l'arrêt des autres n'a rien libéré.

979 970 

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

981 972 


1036 1027 

1037### `.claude/worktrees/` se remplit1028### `.claude/worktrees/` se remplit

1038 1029 

1039Supprimer une session dans la vue agent supprime le worktree que Claude a créé pour elle, mais [certaines suppressions conservent le worktree ou laissent son répertoire sur le disque](#what-deleting-a-session-removes), donc les répertoires restants peuvent s'accumuler. Les répertoires que git ne reconnaît plus n'apparaissent pas dans `git worktree list`, donc supprimez-les à la main.1030Supprimer une session dans la vue agent supprime le worktree que Claude a créé pour elle, mais [certains répertoires de worktree restent sur le disque](#what-deleting-a-session-removes). Les répertoires que git ne reconnaît plus n'apparaissent pas dans `git worktree list`, donc supprimez-les vous-même.

1040 1031 

1041Listez les entrées restantes avec `git worktree list` dans le répertoire du projet et supprimez chacune avec `git worktree remove <path>`. Consultez [Nettoyer les worktrees](https://code.claude.com/docs/fr/worktrees.md#clean-up-worktrees).1032Listez les entrées restantes avec `git worktree list` dans le répertoire du projet et supprimez chacune avec `git worktree remove <path>`. Si git refuse, consultez [Nettoyer les worktrees des sous-agents et des sessions en arrière-plan](https://code.claude.com/docs/fr/worktrees.md#clean-up-subagent-and-background-session-worktrees).

1042 1033 

1043## Limitations1034## Limitations

1044 1035 


1046 1037 

1047* **Les limites de débit s'appliquent** : les sessions en arrière-plan consomment votre utilisation d'abonnement de la même manière que les sessions interactives, donc exécuter dix agents en parallèle utilise le quota environ dix fois plus vite qu'en exécuter un seul.1038* **Les limites de débit s'appliquent** : les sessions en arrière-plan consomment votre utilisation d'abonnement de la même manière que les sessions interactives, donc exécuter dix agents en parallèle utilise le quota environ dix fois plus vite qu'en exécuter un seul.

1048* **Les sessions sont locales** : les sessions en arrière-plan s'exécutent sur votre machine. Elles sont préservées lors de la mise en veille mais s'arrêtent si la machine s'éteint.1039* **Les sessions sont locales** : les sessions en arrière-plan s'exécutent sur votre machine. Elles sont préservées lors de la mise en veille mais s'arrêtent si la machine s'éteint.

1049* **Les worktrees créées par Claude sont supprimées avec la session en vue agent** : validez les modifications avant de supprimer une session qui a modifié des fichiers dans sa propre worktree. [Certaines suppressions conservent la worktree à la place](#what-deleting-a-session-removes).1040* **Les worktrees créés par Claude sont supprimés avec la session en vue agent** : créez un commit de vos modifications avant de supprimer une session qui a modifié des fichiers dans son propre worktree. [Certains worktrees restent sur le disque](#what-deleting-a-session-removes).

1050 1041 

1051## Ressources connexes1042## Ressources connexes

1052 1043 

artifacts.md +2 −2

Details

432 432 

433Pour définir la durée pendant laquelle les artefacts sont conservés avant suppression automatique, allez à [**Paramètres de l'organisation > Données et confidentialité**](https://claude.ai/admin-settings/data-privacy-controls). Vous pouvez définir des périodes de rétention distinctes pour les artefacts qui sont encore privés pour leur auteur et les artefacts qui ont été partagés.433Pour définir la durée pendant laquelle les artefacts sont conservés avant suppression automatique, allez à [**Paramètres de l'organisation > Données et confidentialité**](https://claude.ai/admin-settings/data-privacy-controls). Vous pouvez définir des périodes de rétention distinctes pour les artefacts qui sont encore privés pour leur auteur et les artefacts qui ont été partagés.

434 434 

435### Examiner le journal d'audit435### Auditer l'activité des artefacts avec l'API de conformité

436 436 

437La publication, le partage et la suppression d'un artefact apparaissent chacun dans le journal d'audit de votre organisation sous les types d'événements `claude_artifact_*`, la même famille utilisée pour les artefacts créés dans les conversations de claude.ai.437Sur les plans Enterprise, interrogez le [flux d'activité](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed) de l'API de conformité pour voir qui a publié, partagé ou supprimé un artefact. Pour trouver les types d'activité à utiliser comme filtre, développez `activity_types` dans la [référence du flux d'activité](https://platform.claude.com/docs/en/api/compliance/activities/list) et recherchez les noms qui contiennent `artifact`.

438 438 

439### Ajouter le domaine du visualiseur à la liste blanche439### Ajouter le domaine du visualiseur à la liste blanche

440 440 

Details

163Claude décide où va chaque message que vous envoyez dans la conversation :163Claude décide où va chaque message que vous envoyez dans la conversation :

164 164 

165* Une question rapide obtient généralement une réponse dans la conversation.165* Une question rapide obtient généralement une réponse dans la conversation.

166* Un nouveau travail va dans un nouveau thread ou dans un thread travaillant déjà dans ce domaine, et Claude vous indique lequel. Chaque nouveau thread apparaît sous votre message sous forme de carte : un encadré avec le titre et le statut du thread, sur lequel vous cliquez pour ouvrir le thread.166* Un nouveau travail va dans un nouveau thread ou dans un thread travaillant déjà dans ce domaine, et Claude vous indique lequel. Chaque nouveau thread apparaît dans la conversation, et vous cliquez dessus pour ouvrir le thread.

167* Plusieurs tâches sans rapport dans un même message deviennent des threads distincts.167* Plusieurs tâches sans rapport dans un même message deviennent des threads distincts.

168 168 

169Si Claude oriente quelque chose différemment de ce que vous vouliez, dites-le. [Ajuster la façon dont Claude gère un projet](#tune-how-claude-runs-a-project) liste ce que vous pouvez lui dire, comme réutiliser un thread existant pour les suites ou répondre sur place au lieu de démarrer un thread.169Si Claude oriente quelque chose différemment de ce que vous vouliez, dites-le. [Ajuster la façon dont Claude gère un projet](#tune-how-claude-runs-a-project) liste ce que vous pouvez lui dire, comme réutiliser un thread existant pour les suites ou répondre sur place au lieu de démarrer un thread.

170 170 

171Les résultats complets d'un thread restent dans le thread, et vous ouvrez sa carte dans la conversation pour les lire. Les fichiers produits par un thread se trouvent également dans la [**Library**](#see-what-needs-you-in-overview) du projet.171Les résultats complets d'un thread restent dans le thread ; ouvrez donc le thread pour les lire. Les fichiers produits par un thread se trouvent également dans la [**Library**](#see-what-needs-you-in-overview) du projet.

172 172 

173Parfois, Claude propose des threads au lieu de les démarrer, dans une liste **Suggested threads**. Cliquez sur la flèche d'une suggestion pour démarrer ce thread. Lorsque plusieurs sont listées, un bouton sous la liste les démarre toutes.173Parfois, Claude propose des threads au lieu de les démarrer, dans une liste **Suggested threads**. Cliquez sur la flèche d'une suggestion pour démarrer ce thread. Lorsque plusieurs sont listées, un bouton sous la liste les démarre toutes.

174 174 


180* **Pull request** : en ouvre une lorsque vous le demandez, et peut en ouvrir une de lui-même pour une correction de bug ou une autre modification concrète.180* **Pull request** : en ouvre une lorsque vous le demandez, et peut en ouvrir une de lui-même pour une correction de bug ou une autre modification concrète.

181* **Après son ouverture** : surveille la pull request avec [l'auto-fix](https://code.claude.com/docs/fr/claude-code-on-the-web.md#auto-fix-pull-requests) activé, que l'auto-fix soit activé ou non pour vos autres sessions cloud. Il pousse des correctifs lorsque la CI échoue, traite les commentaires de revue et répond dans le thread lorsque les vérifications réussissent et que la pull request est prête pour vous.181* **Après son ouverture** : surveille la pull request avec [l'auto-fix](https://code.claude.com/docs/fr/claude-code-on-the-web.md#auto-fix-pull-requests) activé, que l'auto-fix soit activé ou non pour vos autres sessions cloud. Il pousse des correctifs lorsque la CI échoue, traite les commentaires de revue et répond dans le thread lorsque les vérifications réussissent et que la pull request est prête pour vous.

182 182 

183Lorsqu'un thread a poussé une branche ou ouvert une pull request, sa carte dans la conversation peut afficher un bouton pour l'étape suivante :

184 

185* **Resolve conflicts**, **Fix CI**, **Address comments** et **Merge it** envoient cette instruction au thread sous forme de message de votre part, afin que vous puissiez relancer le thread vous-même au lieu d'attendre qu'il réagisse à la pull request.

186* **Review PR** ouvre la pull request sur GitHub.

187* **Create PR** apparaît lorsqu'un thread inactif a poussé une branche mais n'a pas ouvert de pull request. Cliquer dessus crée directement la pull request à partir de cette branche, plutôt que d'envoyer au thread l'instruction d'en ouvrir une.

188 

189Pour modifier le moment où les threads ouvrent des pull requests, par exemple uniquement à votre demande, ou la branche à partir de laquelle ils démarrent, indiquez-le dans la tâche ou dans les [instructions du projet](#write-project-instructions).183Pour modifier le moment où les threads ouvrent des pull requests, par exemple uniquement à votre demande, ou la branche à partir de laquelle ils démarrent, indiquez-le dans la tâche ou dans les [instructions du projet](#write-project-instructions).

190 184 

191### Voir ce qui requiert votre attention dans Overview185### Voir ce qui requiert votre attention dans Overview


212 206 

213### Ouvrir un thread lorsque vous avez besoin de contrôle207### Ouvrir un thread lorsque vous avez besoin de contrôle

214 208 

215Cliquez sur la carte d'un thread dans la conversation ou sur sa ligne dans Overview pour ouvrir sa transcription dans le volet Overview. De là, vous pouvez :209Cliquez sur un thread dans la conversation ou sur sa ligne dans Overview pour ouvrir le thread dans le volet Overview. De là, vous pouvez :

216 210 

217* Lire ce que Claude a fait, étape par étape.211* Lire ce que Claude a fait, étape par étape.

218* Orienter la tâche en écrivant dans la zone de message propre au thread. Un message écrit là va directement à ce thread, tandis qu'une suite dans la conversation du projet ne l'atteint que lorsque Claude associe cette suite à ce thread.212* Orienter la tâche en écrivant dans la zone de message propre au thread. Un message écrit là va directement à ce thread, tandis qu'une suite dans la conversation du projet ne l'atteint que lorsque Claude associe cette suite à ce thread.

Details

128| `--session-id` | Utiliser un ID de session spécifique pour la conversation (doit être un UUID valide) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |128| `--session-id` | Utiliser un ID de session spécifique pour la conversation (doit être un UUID valide) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

129| `--setting-sources` | Liste séparée par des virgules des sources de paramètres à charger (`user`, `project`, `local`). Voir la [vue agent](https://code.claude.com/docs/fr/agent-view.md#what-carries-over-when-you-background) et les [équipes d'agents](https://code.claude.com/docs/fr/agent-teams.md#context-and-communication) pour les sessions que vous démarrez à partir de celle-ci qui héritent de la liste | `claude --setting-sources user,project` |129| `--setting-sources` | Liste séparée par des virgules des sources de paramètres à charger (`user`, `project`, `local`). Voir la [vue agent](https://code.claude.com/docs/fr/agent-view.md#what-carries-over-when-you-background) et les [équipes d'agents](https://code.claude.com/docs/fr/agent-teams.md#context-and-communication) pour les sessions que vous démarrez à partir de celle-ci qui héritent de la liste | `claude --setting-sources user,project` |

130| `--settings` | Chemin vers un fichier JSON de paramètres ou une chaîne JSON en ligne. Les valeurs que vous définissez ici remplacent les mêmes clés dans vos fichiers `settings.json` pour cette session. Les clés que vous omettez conservent leurs valeurs basées sur les fichiers. Le fichier doit être un fichier régulier d'une taille maximale de 2 Mio. Voir [précédence des paramètres](https://code.claude.com/docs/fr/settings.md#settings-precedence) | `claude --settings ./settings.json` |130| `--settings` | Chemin vers un fichier JSON de paramètres ou une chaîne JSON en ligne. Les valeurs que vous définissez ici remplacent les mêmes clés dans vos fichiers `settings.json` pour cette session. Les clés que vous omettez conservent leurs valeurs basées sur les fichiers. Le fichier doit être un fichier régulier d'une taille maximale de 2 Mio. Voir [précédence des paramètres](https://code.claude.com/docs/fr/settings.md#settings-precedence) | `claude --settings ./settings.json` |

131| `--strict-mcp-config` | Utiliser uniquement les serveurs MCP de `--mcp-config`, en ignorant toutes les autres configurations MCP. Voir [Contrôle exclusif avec managed-mcp.json](https://code.claude.com/docs/fr/managed-mcp.md#exclusive-control-with-managed-mcp-json) pour ce que le drapeau fait sous un fichier MCP géré | `claude --strict-mcp-config --mcp-config ./mcp.json` |131| `--strict-mcp-config` | Ignorer les serveurs MCP configurés dans des emplacements tels que `.mcp.json`, `~/.claude.json` ou un plugin, et charger ceux que vous transmettez avec `--mcp-config`. Voir [Contrôle exclusif avec managed-mcp.json](https://code.claude.com/docs/fr/managed-mcp.md#exclusive-control-with-managed-mcp-json) pour ce que fait le flag en présence d'un fichier MCP géré | `claude --strict-mcp-config --mcp-config ./mcp.json` |

132| `--system-prompt` | Remplacer l'invite système entière par du texte personnalisé | `claude --system-prompt "You are a Python expert"` |132| `--system-prompt` | Remplacer l'invite système entière par du texte personnalisé | `claude --system-prompt "You are a Python expert"` |

133| `--system-prompt-file` | Charger l'invite système à partir d'un fichier, en remplaçant l'invite par défaut | `claude --system-prompt-file ./custom-prompt.txt` |133| `--system-prompt-file` | Charger l'invite système à partir d'un fichier, en remplaçant l'invite par défaut | `claude --system-prompt-file ./custom-prompt.txt` |

134| `--system-prompt-snapshot` | Passer `off` pour reconstruire l'invite système à chaque requête au lieu de réutiliser l'invite [enregistrée à la première requête de la conversation](#system-prompt-flags-in-resumed-conversations), par exemple pendant que vous itérez sur le texte `--append-system-prompt` entre les exécutions `--continue`. Nécessite Claude Code v2.1.257 ou ultérieur | `claude --system-prompt-snapshot off` |134| `--system-prompt-snapshot` | Passer `off` pour reconstruire l'invite système à chaque requête au lieu de réutiliser l'invite [enregistrée à la première requête de la conversation](#system-prompt-flags-in-resumed-conversations), par exemple pendant que vous itérez sur le texte `--append-system-prompt` entre les exécutions `--continue`. Nécessite Claude Code v2.1.257 ou ultérieur | `claude --system-prompt-snapshot off` |

desktop.md +2 −1

Details

2127 2127 

2128Pour l'en empêcher, déployez également `forceLoginOrgUUID` dans la politique Claude Desktop (dans `HKLM` sur Windows), avec l'ID de votre organisation claude.ai. Sauf si la politique elle-même [sélectionne l'API Claude](https://claude.com/docs/third-party/claude-desktop/claude-api#choose-an-authentication-approach), Claude Desktop cesse d'utiliser la propre clé API ou le propre compte Console d'une personne au prochain lancement de l'application.2128Pour l'en empêcher, déployez également `forceLoginOrgUUID` dans la politique Claude Desktop (dans `HKLM` sur Windows), avec l'ID de votre organisation claude.ai. Sauf si la politique elle-même [sélectionne l'API Claude](https://claude.com/docs/third-party/claude-desktop/claude-api#choose-an-authentication-approach), Claude Desktop cesse d'utiliser la propre clé API ou le propre compte Console d'une personne au prochain lancement de l'application.

2129 2129 

2130Vérifiez deux cas avant de le déployer :2130Vérifiez trois cas avant de le déployer :

2131 2131 

2132* **Organisations Claude Console** : ne déployez pas `forceLoginOrgUUID` seul avec l'ID d'une organisation Claude Console, sinon vous bloqueriez l'accès de vos collaborateurs à Claude Desktop. Consultez plutôt [Quels appareils proposent la connexion par compte Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api#which-devices-offer-the-claude-api-account-sign-in).2132* **Organisations Claude Console** : ne déployez pas `forceLoginOrgUUID` seul avec l'ID d'une organisation Claude Console, sinon vous bloqueriez l'accès de vos collaborateurs à Claude Desktop. Consultez plutôt [Quels appareils proposent la connexion par compte Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api#which-devices-offer-the-claude-api-account-sign-in).

2133* **Enterprise Admin Console** : si elle fournit la configuration Claude Desktop de vos ordinateurs, mettez-les d'abord à jour vers Claude Desktop v2.37337.0 ou version ultérieure, car les versions antérieures l'ignorent une fois cette clé définie. Voir [Conserver un appareil sur son profil géré](https://claude.com/docs/third-party/claude-desktop/admin-console#keep-a-device-on-its-managed-profile).2133* **Enterprise Admin Console** : si elle fournit la configuration Claude Desktop de vos ordinateurs, mettez-les d'abord à jour vers Claude Desktop v2.37337.0 ou version ultérieure, car les versions antérieures l'ignorent une fois cette clé définie. Voir [Conserver un appareil sur son profil géré](https://claude.com/docs/third-party/claude-desktop/admin-console#keep-a-device-on-its-managed-profile).

2134* **Fournisseurs tiers** : si des personnes ont défini leur propre [configuration d'inférence tierce](https://claude.com/docs/third-party/claude-desktop/in-app-configuration) dans l'application, Claude Desktop ignore cette configuration à partir du prochain lancement suivant le déploiement de cette clé. Pour que vos collaborateurs restent sur Amazon Bedrock, l'Agent Platform de Google Cloud, Microsoft Foundry ou une passerelle LLM, [déployez une configuration](https://claude.com/docs/third-party/claude-desktop/configuration) sur leurs ordinateurs dans la même politique Claude Desktop.

2134 2135 

2135### Exigences d'accès réseau2136### Exigences d'accès réseau

2136 2137 

Details

182* **Review allowed permissions** : voir et révoquer les approbations d'outils enregistrées pour cette tâche à partir du panneau **Always allowed**182* **Review allowed permissions** : voir et révoquer les approbations d'outils enregistrées pour cette tâche à partir du panneau **Always allowed**

183* **Delete** : supprimer la tâche. Les sessions créées par la tâche sont [archivées](https://code.claude.com/docs/fr/desktop.md#organize-and-find-sessions), et non supprimées. Le dossier contenant le fichier `SKILL.md` de la tâche reste sur le disque dans `~/.claude/scheduled-tasks/<task-name>/`, ou dans `scheduled-tasks/<task-name>/` sous [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars) si vous avez défini cette variable. Pour supprimer ce dossier, supprimez-le vous-même.183* **Delete** : supprimer la tâche. Les sessions créées par la tâche sont [archivées](https://code.claude.com/docs/fr/desktop.md#organize-and-find-sessions), et non supprimées. Le dossier contenant le fichier `SKILL.md` de la tâche reste sur le disque dans `~/.claude/scheduled-tasks/<task-name>/`, ou dans `scheduled-tasks/<task-name>/` sous [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars) si vous avez défini cette variable. Pour supprimer ce dossier, supprimez-le vous-même.

184 184 

185Vous pouvez également lister, créer, modifier et mettre en pause des tâches en demandant à Claude dans n'importe quelle session Desktop. Par exemple, « pause my dependency-audit task » ou « show me my scheduled tasks ». Pour supprimer une tâche, utilisez le bouton **Delete** sur sa page de détail.185Vous pouvez également gérer les tâches en demandant à Claude, en laissant une tâche se mettre à jour elle-même ou en modifiant le prompt d'une tâche sur le disque :

186 186 

187Pour permettre à une tâche de modifier sa propre planification ou son prompt avec l'outil MCP `update_scheduled_task`, cliquez sur **Run now** et approuvez l'appel à chaque fois.187* **Demander à Claude** : lister, créer, modifier et mettre en pause des tâches en demandant à Claude dans n'importe quelle session Desktop. Par exemple, « pause my dependency-audit task » ou « show me my scheduled tasks ». Pour supprimer une tâche, utilisez le bouton **Delete** sur sa page de détail.

188 188* **Laisser une tâche se mettre à jour elle-même** : pour permettre à une tâche de modifier sa propre planification ou son prompt avec l'outil MCP `update_scheduled_task`, cliquez sur **Run now** et approuvez l'appel à chaque fois

189Pour modifier le prompt d'une tâche sur le disque, ouvrez `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (ou sous [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars) si défini). Le fichier utilise le frontmatter YAML pour `name` et `description`, avec le prompt comme corps. Les modifications prennent effet à la prochaine exécution. La planification, le dossier et l'état activé ne sont pas dans ce fichier : modifiez-les via le formulaire Edit ou demandez à Claude.189* **Modifier le prompt sur le disque** : ouvrez `~/.claude/scheduled-tasks/<task-name>/SKILL.md`, ou `scheduled-tasks/<task-name>/SKILL.md` sous [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars) si vous avez défini cette variable. Le fichier utilise le frontmatter YAML pour `name` et `description`, avec le prompt comme corps. Les modifications prennent effet à la prochaine exécution. La planification, le dossier et l'état activé ne sont pas dans ce fichier : modifiez-les via le formulaire Edit ou demandez à Claude.

190 190 

191## Ressources connexes191## Ressources connexes

192 192 

env-vars.md +1 −1

Details

356| `CLAUDE_CODE_PERFORCE_MODE` | Définissez sur `1` pour activer la protection en écriture compatible avec Perforce. Lorsqu'elle est définie, Edit, Write et NotebookEdit échouent avec une indication `p4 edit <file>` si le fichier cible n'a pas le bit d'écriture du propriétaire, que Perforce retire des fichiers synchronisés jusqu'à ce que `p4 edit` les ouvre. Cela empêche Claude Code de contourner le suivi des modifications de Perforce |356| `CLAUDE_CODE_PERFORCE_MODE` | Définissez sur `1` pour activer la protection en écriture compatible avec Perforce. Lorsqu'elle est définie, Edit, Write et NotebookEdit échouent avec une indication `p4 edit <file>` si le fichier cible n'a pas le bit d'écriture du propriétaire, que Perforce retire des fichiers synchronisés jusqu'à ce que `p4 edit` les ouvre. Cela empêche Claude Code de contourner le suivi des modifications de Perforce |

357| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Remplace le répertoire racine des plugins. Malgré son nom, cette variable définit le répertoire parent, et non le cache lui-même : les marketplaces et le cache des plugins se trouvent dans des sous-répertoires de ce chemin. Par défaut `~/.claude/plugins` |357| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Remplace le répertoire racine des plugins. Malgré son nom, cette variable définit le répertoire parent, et non le cache lui-même : les marketplaces et le cache des plugins se trouvent dans des sous-répertoires de ce chemin. Par défaut `~/.claude/plugins` |

358| `CLAUDE_CODE_PLUGIN_DIRS` | Répertoires de plugins à charger pour la session, chacun chargé comme le ferait un flag [`--plugin-dir`](https://code.claude.com/docs/fr/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Séparez plusieurs chemins par `:` sous Unix ou `;` sous Windows. Indiquez chaque chemin sous forme de chemin absolu ou commencez-le par `~`, car Claude Code ignore les chemins relatifs. Nécessite Claude Code v2.1.280 ou ultérieur. Consultez [Charger un plugin pour une session](https://code.claude.com/docs/fr/plugins/create.md#load-a-directory-or-archive-for-one-session) |358| `CLAUDE_CODE_PLUGIN_DIRS` | Répertoires de plugins à charger pour la session, chacun chargé comme le ferait un flag [`--plugin-dir`](https://code.claude.com/docs/fr/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Séparez plusieurs chemins par `:` sous Unix ou `;` sous Windows. Indiquez chaque chemin sous forme de chemin absolu ou commencez-le par `~`, car Claude Code ignore les chemins relatifs. Nécessite Claude Code v2.1.280 ou ultérieur. Consultez [Charger un plugin pour une session](https://code.claude.com/docs/fr/plugins/create.md#load-a-directory-or-archive-for-one-session) |

359| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Contrôle si Claude Code recharge un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) lorsque les fichiers du mod changent. Le rechargement s'applique à un mod que vous chargez depuis un répertoire avec `--plugin-dir`, et il est activé par défaut dans les sessions interactives. Définissez sur `1` pour l'activer également dans les sessions non interactives, ou sur `0` pour le désactiver dans toutes les sessions. Nécessite Claude Code v2.1.287 ou ultérieur. Consultez [paramètres et variables d'environnement des mods](https://code.claude.com/docs/fr/plugins/mods/reference.md#settings-and-environment-variables) |359| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Contrôle si un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) se recharge lorsque ses fichiers changent. Par défaut, les mods situés dans des [répertoires de skills](https://code.claude.com/docs/fr/plugins/org.md#keep-skills-directory-plugins-loading) se rechargent dans toute session comportant plus d'un prompt, sessions [non interactives](https://code.claude.com/docs/fr/headless.md) comprises. Les mods situés dans des répertoires `--plugin-dir` ne se rechargent que dans les sessions de terminal interactives. Définir sur `1` pour les recharger comme le font les mods des répertoires de skills, ou sur `0` pour désactiver le rechargement partout. Nécessite Claude Code v2.1.287 ou ultérieur |

360| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pour le clonage ou l'actualisation d'une marketplace de plugins (par défaut : 120000). Augmentez cette valeur pour les dépôts volumineux ou les connexions réseau lentes. Consultez [Git clone timed out](https://code.claude.com/docs/fr/plugins/troubleshooting.md#git-clone-timed-out-after-120s) |360| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pour le clonage ou l'actualisation d'une marketplace de plugins (par défaut : 120000). Augmentez cette valeur pour les dépôts volumineux ou les connexions réseau lentes. Consultez [Git clone timed out](https://code.claude.com/docs/fr/plugins/troubleshooting.md#git-clone-timed-out-after-120s) |

361| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Définissez sur `1` pour ignorer la tentative de nouveau clonage et continuer à utiliser le checkout existant de la marketplace lorsqu'une actualisation de marketplace ne parvient pas à joindre le dépôt distant ou à s'y authentifier. Utile dans les environnements hors ligne ou isolés, où un nouveau clonage échouerait de la même manière. Consultez [Les mises à jour de marketplace échouent dans les environnements hors ligne](https://code.claude.com/docs/fr/plugins/troubleshooting.md#marketplace-updates-keep-failing-offline) |361| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Définissez sur `1` pour ignorer la tentative de nouveau clonage et continuer à utiliser le checkout existant de la marketplace lorsqu'une actualisation de marketplace ne parvient pas à joindre le dépôt distant ou à s'y authentifier. Utile dans les environnements hors ligne ou isolés, où un nouveau clonage échouerait de la même manière. Consultez [Les mises à jour de marketplace échouent dans les environnements hors ligne](https://code.claude.com/docs/fr/plugins/troubleshooting.md#marketplace-updates-keep-failing-offline) |

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

errors.md +4 −8

Details

5556 5556 

5557### Worktree has commits that are not pushed anywhere5557### Worktree has commits that are not pushed anywhere

5558 5558 

5559Vous avez tenté de supprimer une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md#what-deleting-a-session-removes) dont le worktree contient des commits dont Claude Code ne peut pas confirmer qu'ils sont enregistrés ailleurs. Claude Code conserve le worktree et la ligne de la session plutôt que de détruire les commits à votre insu. `claude rm` nomme la branche et les commits non poussés, et indique comment procéder :5559Vous avez tenté de supprimer une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md#what-deleting-a-session-removes) dont le worktree contient des commits dont Claude Code ne peut pas confirmer qu'ils sont enregistrés ailleurs. `claude rm` indique comment procéder :

5560 5560 

5561```text theme={null}5561```text theme={null}

5562kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”5562kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”


5566 5566 

5567Lorsque Claude Code ne peut pas résumer les commits, la ligne de détail indique plutôt `The worktree has unpushed commits`. Dans l'[agent view](https://code.claude.com/docs/fr/agent-view.md), la ligne de la session affiche `not removed` avec la même raison.5567Lorsque Claude Code ne peut pas résumer les commits, la ligne de détail indique plutôt `The worktree has unpushed commits`. Dans l'[agent view](https://code.claude.com/docs/fr/agent-view.md), la ligne de la session affiche `not removed` avec la même raison.

5568 5568 

5569Les commits présents sur un dépôt distant ne bloquent pas la suppression. Les commits présents sur la copie locale de la branche par défaut de votre dépôt distant `origin` non plus, à condition que cette branche soit extraite dans votre checkout principal, c'est-à-dire le répertoire du dépôt lui-même et non un worktree.

5570 

5571**Que faire :**5569**Que faire :**

5572 5570 

5573* Pour conserver les commits, poussez la branche du worktree, ou fusionnez-la dans la branche par défaut extraite dans votre checkout principal, puis supprimez à nouveau la session5571* Pour conserver les commits, poussez-les. Une fois que le push les a placés sur une branche de suivi distante, comme `origin/claude/fix-login`, réessayez de supprimer la session.

5574* Pour abandonner les commits, exécutez la commande `claude rm <id> --discard-unpushed` affichée par le message, ou appuyez de nouveau deux fois sur `Ctrl+X` sur la ligne de la session dans l'agent view. Cela supprime la session et le worktree, ainsi que sa branche, les commits non poussés et toute modification non commitée. Si la suppression est de nouveau refusée, suivez le nouveau message.5572* Si le message propose d'abandonner les commits, assurez-vous d'abord que vous n'avez besoin ni du worktree, ni des commits, ni d'aucune modification non commitée. Effectuez ensuite l'étape indiquée par le message : appuyez deux fois sur `Ctrl+X` sur la ligne de la session dans l'agent view, ou exécutez la commande `claude rm <id> --discard-unpushed <commit>@<worktree-id>` affichée par `claude rm`. Si Claude Code refuse de nouveau, suivez le nouveau message.

5575* Lorsque le message indique que le worktree est également enregistré par une autre session terminée, une nouvelle suppression ne l'abandonne pas : poussez les commits, puis supprimez à nouveau la session5573* Lorsque le message indique que le worktree est également enregistré par une autre session terminée, une nouvelle suppression ne l'abandonne pas : poussez les commits, puis réessayez de supprimer la session

5576 5574 

5577Avant la v2.1.268, `claude rm` plaçait le résumé des commits sur la ligne `kept` elle-même. Lorsque `claude rm` ne pouvait pas résumer les commits, la ligne `kept` indiquait `worktree has commits that are not pushed anywhere` à la place du résumé.5575Avant la v2.1.268, `claude rm` plaçait le résumé des commits sur la ligne `kept` elle-même. Lorsque `claude rm` ne pouvait pas résumer les commits, la ligne `kept` indiquait `worktree has commits that are not pushed anywhere` à la place du résumé.

5578 5576 

5579Avant la v2.1.260, le message ne nommait ni la branche ni les commits, et il n'existait aucun moyen de les abandonner. Vous pouvez tout de même supprimer la session, en perdant les modifications non commitées mais en conservant la branche et les commits. Exécutez `git worktree remove --force --force <path>` avec le chemin affiché par le refus, puis `claude rm <id>`. Git exige `--force` deux fois pour un worktree verrouillé.5577Avant la v2.1.260, le message ne nommait ni la branche ni les commits, et il n'existait aucun moyen de les abandonner. Vous pouvez tout de même supprimer la session, en perdant les modifications non commitées mais en conservant la branche et les commits. Exécutez `git worktree remove --force --force <path>` avec le chemin affiché par le refus, puis `claude rm <id>`. Git exige `--force` deux fois pour un worktree verrouillé.

5580 5578 

5581Avant la v2.1.248, la branche par défaut extraite dans votre checkout principal n'était pas prise en compte : une branche que vous y aviez déjà fusionnée déclenchait encore ce refus jusqu'à ce que ses commits atteignent un dépôt distant.

5582 

5583### Terminal host process died5579### Terminal host process died

5584 5580 

5585Le terminal de chaque [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) s'exécute dans un processus hôte rattaché au service d'arrière-plan, et ce processus s'est arrêté alors que le service détenait encore sa connexion : la session est donc devenue injoignable.5581Le terminal de chaque [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) s'exécute dans un processus hôte rattaché au service d'arrière-plan, et ce processus s'est arrêté alors que le service détenait encore sa connexion : la session est donc devenue injoignable.

Details

35Celles-ci ont des différences spécifiques au fournisseur :35Celles-ci ont des différences spécifiques au fournisseur :

36 36 

37* **Serveurs MCP** : les [connecteurs de claude.ai](https://code.claude.com/docs/fr/mcp.md#use-mcp-servers-from-claude-ai) se chargent uniquement lorsque votre abonnement claude.ai est la méthode d'authentification active. La [recherche d'outils](https://code.claude.com/docs/fr/mcp.md#configure-tool-search) n'est pas supportée sur les [déploiements Microsoft Foundry hébergés sur Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options). Sur Google Cloud's Agent Platform, la recherche d'outils n'est pas supportée sur les modèles antérieurs à Claude Opus 4.5, Claude Sonnet 4.5 et Claude Haiku 4.537* **Serveurs MCP** : les [connecteurs de claude.ai](https://code.claude.com/docs/fr/mcp.md#use-mcp-servers-from-claude-ai) se chargent uniquement lorsque votre abonnement claude.ai est la méthode d'authentification active. La [recherche d'outils](https://code.claude.com/docs/fr/mcp.md#configure-tool-search) n'est pas supportée sur les [déploiements Microsoft Foundry hébergés sur Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options). Sur Google Cloud's Agent Platform, la recherche d'outils n'est pas supportée sur les modèles antérieurs à Claude Opus 4.5, Claude Sonnet 4.5 et Claude Haiku 4.5

38* **Subagents** : lorsque la conversation principale exécute Fable, le [sous-agent Explore intégré](https://code.claude.com/docs/fr/sub-agents.md#built-in-subagents) s'exécute sur Opus avec un abonnement Claude, un compte Console Anthropic ou une [passerelle LLM](https://code.claude.com/docs/fr/llm-gateway) atteinte via `ANTHROPIC_BASE_URL`. Chez les autres fournisseurs, y compris Claude Platform sur AWS, il s'exécute sur Fable38* **Sous-agents** : lorsque la conversation parente exécute Fable, le [sous-agent Explore](https://code.claude.com/docs/fr/sub-agents.md#built-in-subagents) intégré s'exécute sur Opus avec un abonnement Claude, un compte Anthropic Console ou une [passerelle LLM](https://code.claude.com/docs/fr/llm-gateway) atteinte via `ANTHROPIC_BASE_URL`. Chez les autres fournisseurs, y compris Claude Platform on AWS, il s'exécute sur Fable

39* **[Commands](https://code.claude.com/docs/fr/commands.md#all-commands)** :39* **[Commands](https://code.claude.com/docs/fr/commands.md#all-commands)** :

40 * `/design-sync` et `/import` avec sa forme de sous-commande `claude import` ne sont pas disponibles sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry et Claude Platform sur AWS, et via une [passerelle d'applications Claude](https://code.claude.com/docs/fr/claude-apps-gateway#availability-and-limitations)40 * `/design-sync` et `/import` avec sa forme de sous-commande `claude import` ne sont pas disponibles sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry et Claude Platform sur AWS, et via une [passerelle d'applications Claude](https://code.claude.com/docs/fr/claude-apps-gateway#availability-and-limitations)

41 * `/voice` nécessite un compte claude.ai41 * `/voice` nécessite un compte claude.ai

Details

188>188>

189> **Mettez les garde-fous dans les hooks.** Une instruction comme « ne jamais modifier `.env` » dans CLAUDE.md ou une skill est une demande, pas une garantie. Un hook `PreToolUse` qui bloque la modification est une application. Si une règle doit tenir à chaque fois, faites-en un hook plutôt qu'une instruction d'invite.189> **Mettez les garde-fous dans les hooks.** Une instruction comme « ne jamais modifier `.env` » dans CLAUDE.md ou une skill est une demande, pas une garantie. Un hook `PreToolUse` qui bloque la modification est une application. Si une règle doit tenir à chaque fois, faites-en un hook plutôt qu'une instruction d'invite.

190>190>

191> **La sortie du hook atterrit dans le contexte.** Un hook `PostToolUse` qui exécute votre linter alimente les résultats en tant que texte que Claude lit ; une skill `/fix-lint` dit à Claude comment les résoudre.191> **Associez un hook à un skill.** Utilisez un hook `PostToolUse` pour exécuter votre linter et [envoyer les erreurs à Claude](https://code.claude.com/docs/fr/hooks.md#exit-code-2-behavior-per-event). Pour donner à Claude vos propres règles de correction des erreurs, écrivez un skill tel que `/fix-lint`.

192 192 

193### Comprendre comment les fonctionnalités se superposent193### Comprendre comment les fonctionnalités se superposent

194 194 

glossary.md +1 −1

Details

283 283 

284### Sandboxing284### Sandboxing

285 285 

286Isolation du système de fichiers et du réseau au niveau du système d'exploitation pour l'outil Bash. Les commandes s'exécutent à l'intérieur d'une limite que vous définissez à l'avance, afin que Claude puisse travailler librement sans demandes d'approbation par commande. Le sandboxing est une couche séparée des [règles de permission](#permission-rule).286Isolation du système de fichiers et du réseau au niveau du système d'exploitation pour l'outil Bash. Les commandes s'exécutent à l'intérieur d'une limite que vous définissez à l'avance. Le sandboxing est une couche séparée des [règles de permission](#permission-rule).

287 287 

288En savoir plus : [Sandboxing](https://code.claude.com/docs/fr/sandboxing.md)288En savoir plus : [Sandboxing](https://code.claude.com/docs/fr/sandboxing.md)

289 289 

hooks-guide.md +5 −1

Details

242 242 

243### Bloquer les modifications des fichiers protégés243### Bloquer les modifications des fichiers protégés

244 244 

245Empêchez Claude de modifier des fichiers sensibles comme `.env`, `package-lock.json` ou tout ce qui se trouve dans `.git/`. Claude reçoit un retour expliquant pourquoi la modification a été bloquée, afin de pouvoir ajuster son approche.245Empêchez les outils `Edit` et `Write` de Claude de modifier des fichiers sensibles comme `.env`, `package-lock.json` ou tout ce qui se trouve dans `.git/`. Claude reçoit un retour expliquant pourquoi la modification a été bloquée, afin de pouvoir ajuster son approche.

246 246 

247Cet exemple utilise un fichier de script distinct que le hook appelle. Le script compare le chemin du fichier cible à une liste de motifs protégés et se termine avec le code 2 pour bloquer la modification.247Cet exemple utilise un fichier de script distinct que le hook appelle. Le script compare le chemin du fichier cible à une liste de motifs protégés et se termine avec le code 2 pour bloquer la modification.

248 248 


306 306 

307Demandez à Claude d'ajouter un commentaire à votre fichier `.env`. Claude Code bloque la modification avant son exécution et transmet le message `Blocked:` du script à Claude en guise de retour.307Demandez à Claude d'ajouter un commentaire à votre fichier `.env`. Claude Code bloque la modification avant son exécution et transmet le message `Blocked:` du script à Claude en guise de retour.

308 308 

309Claude peut toujours modifier les fichiers protégés au moyen de commandes shell. Pour bloquer certaines de ces commandes, ajoutez une [règle de refus `Edit`](https://code.claude.com/docs/fr/permissions#what-read-and-edit-rules-cover) par chemin sous `permissions.deny` dans `.claude/settings.json`, comme `Edit(/.env)` pour le fichier `.env` à la racine du projet.

310 

311Même avec ces règles, Claude peut modifier `.env` par d'autres moyens. Pour limiter les fichiers dans lesquels les commandes peuvent écrire, consultez [Configurer le sandboxing](https://code.claude.com/docs/fr/sandboxing.md#configure-sandboxing).

312 

309### Réinjecter le contexte après la compaction313### Réinjecter le contexte après la compaction

310 314 

311Lorsque la fenêtre de contexte de Claude se remplit, la compaction résume la conversation pour libérer de l'espace. Des détails importants peuvent alors être perdus. Utilisez un hook `SessionStart` avec un matcher `compact` pour réinjecter le contexte essentiel après chaque compaction.315Lorsque la fenêtre de contexte de Claude se remplit, la compaction résume la conversation pour libérer de l'espace. Des détails importants peuvent alors être perdus. Utilisez un hook `SessionStart` avec un matcher `compact` pour réinjecter le contexte essentiel après chaque compaction.

Details

296* Le champ `output_config.effort` de premier niveau. [Nouvelle tentative automatique et transmission d'erreur](#automatic-retry-and-error-forwarding) couvre le cas d'un amont qui le rejette296* Le champ `output_config.effort` de premier niveau. [Nouvelle tentative automatique et transmission d'erreur](#automatic-retry-and-error-forwarding) couvre le cas d'un amont qui le rejette

297* Le champ `thinking` du raisonnement adaptatif, qui n'a pas d'en-tête bêta297* Le champ `thinking` du raisonnement adaptatif, qui n'a pas d'en-tête bêta

298* Les entrées `role: "system"` qui portent les [messages système en milieu de conversation](#feature-pass-through)298* Les entrées `role: "system"` qui portent les [messages système en milieu de conversation](#feature-pass-through)

299* La valeur `anthropic-beta` et le champ `safeguards` de l'[examen par le classifieur côté serveur](https://code.claude.com/docs/fr/permission-modes.md#server-side-classifier-review) du mode auto, dans les sessions où cet examen reste activé, par exemple lorsque `/status` affiche **Auto mode server** comme `Enabled`. Pour désactiver l'examen, définissez `CLAUDE_CODE_AUTO_MODE_SERVER=0` avant de démarrer la session. Dans le terminal, `/status` affiche alors **Auto mode server** comme `Disabled`.

299* La valeur `anthropic-beta` OAuth que l'authentification par abonnement exige300* La valeur `anthropic-beta` OAuth que l'authentification par abonnement exige

300* Les valeurs d'en-tête et champs de corps que les développeurs ajoutent eux-mêmes via [`ANTHROPIC_BETAS`](https://code.claude.com/docs/fr/env-vars) ou [`CLAUDE_CODE_EXTRA_BODY`](https://code.claude.com/docs/fr/env-vars)301* Les valeurs d'en-tête et champs de corps que les développeurs ajoutent eux-mêmes via [`ANTHROPIC_BETAS`](https://code.claude.com/docs/fr/env-vars) ou [`CLAUDE_CODE_EXTRA_BODY`](https://code.claude.com/docs/fr/env-vars)

301 302 

managed-mcp.md +3 −2

Details

30| Modèle | Ce qu'il fait | Configurer |30| Modèle | Ce qu'il fait | Configurer |

31| :- | :- | :- |31| :- | :- | :- |

32| **Désactiver MCP** | Aucun serveur ne se charge sauf les quelques serveurs qui [se chargent sous contrôle exclusif](#exclusive-control-with-managed-mcp-json) | `managed-mcp.json` avec une carte de serveurs vide |32| **Désactiver MCP** | Aucun serveur ne se charge sauf les quelques serveurs qui [se chargent sous contrôle exclusif](#exclusive-control-with-managed-mcp-json) | `managed-mcp.json` avec une carte de serveurs vide |

33| **Déploiement fixe** | Chaque utilisateur obtient les mêmes serveurs et ne peut pas en ajouter d'autres | `managed-mcp.json` avec les serveurs que vous souhaitez |33| **Déploiement fixe** | Chaque utilisateur obtient les serveurs que vous listez, et les serveurs qu'il configure ne se chargent pas | `managed-mcp.json` avec les serveurs que vous souhaitez |

34| **Serveurs fournis** | Chaque utilisateur obtient les serveurs distants que vous listez et conserve les siens | `managedMcpServers` dans les paramètres gérés |34| **Serveurs fournis** | Chaque utilisateur obtient les serveurs distants que vous listez et conserve les siens | `managedMcpServers` dans les paramètres gérés |

35| **Catalogue approuvé** | Publiez une liste de serveurs approuvés ; les utilisateurs ajoutent ceux qu'ils souhaitent, tout le reste est bloqué | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |35| **Catalogue approuvé** | Publiez une liste de serveurs approuvés ; les utilisateurs ajoutent ceux qu'ils souhaitent, tout le reste est bloqué | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |

36| **Serveurs de plugin uniquement** | Les utilisateurs ne peuvent pas ajouter de serveurs via `~/.claude.json` ou `.mcp.json` ; les [plugins du répertoire de skills](https://code.claude.com/docs/fr/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings) ne se chargent plus en tant que plugins, et les serveurs des autres plugins se chargent toujours | [`strictPluginOnlyCustomization`](https://code.claude.com/docs/fr/settings-reference#strictpluginonlycustomization) avec `mcp` dans la liste |36| **Serveurs de plugin uniquement** | Les utilisateurs ne peuvent pas ajouter de serveurs via `~/.claude.json` ou `.mcp.json` ; les [plugins du répertoire de skills](https://code.claude.com/docs/fr/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings) ne se chargent plus en tant que plugins, et les serveurs des autres plugins se chargent toujours | [`strictPluginOnlyCustomization`](https://code.claude.com/docs/fr/settings-reference#strictpluginonlycustomization) avec `mcp` dans la liste |


49* Les serveurs que le fichier définit49* Les serveurs que le fichier définit

50* Les serveurs que vous [fournissez via `managedMcpServers`](#provide-servers-through-managed-settings)50* Les serveurs que vous [fournissez via `managedMcpServers`](#provide-servers-through-managed-settings)

51* Les serveurs en processus que l'application qui a démarré la session enregistre, comme le serveur propre de l'extension VS Code ou les [connecteurs que l'application de bureau fournit](https://code.claude.com/docs/fr/mcp.md#how-connectors-reach-claude-code)51* Les serveurs en processus que l'application qui a démarré la session enregistre, comme le serveur propre de l'extension VS Code ou les [connecteurs que l'application de bureau fournit](https://code.claude.com/docs/fr/mcp.md#how-connectors-reach-claude-code)

52* Le serveur que Claude Code crée lorsqu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) [ajoute des outils](https://code.claude.com/docs/fr/plugins/mods/api.md#add-a-tool). Pour bloquer les outils que les mods de vos utilisateurs ajoutent, [empêchez le chargement des mods installés par les utilisateurs](https://code.claude.com/docs/fr/plugins/mods/admin.md#stop-user-installed-mods-from-loading).

52* Le serveur intégré [Claude in Chrome](https://code.claude.com/docs/fr/chrome.md), si vous [l'autorisez aux côtés de l'ensemble géré](#allow-claude-in-chrome-alongside-the-managed-set)53* Le serveur intégré [Claude in Chrome](https://code.claude.com/docs/fr/chrome.md), si vous [l'autorisez aux côtés de l'ensemble géré](#allow-claude-in-chrome-alongside-the-managed-set)

53 54 

54Les utilisateurs ne peuvent pas ajouter, modifier ou utiliser d'autres serveurs MCP, y compris les serveurs fournis par les plugins et les serveurs transmis avec le [drapeau CLI `--mcp-config`](https://code.claude.com/docs/fr/cli-reference#cli-flags). Le fichier supprime également les connecteurs claude.ai que Claude Code récupère lui-même, sauf si vous [les autorisez aux côtés de l'ensemble géré](#allow-claude-ai-connectors-alongside-the-managed-set).55Les utilisateurs ne peuvent pas ajouter, modifier ou utiliser d'autres serveurs MCP, y compris les serveurs fournis par les plugins et les serveurs transmis avec le [drapeau CLI `--mcp-config`](https://code.claude.com/docs/fr/cli-reference#cli-flags). Le fichier supprime également les connecteurs claude.ai que Claude Code récupère lui-même, sauf si vous [les autorisez aux côtés de l'ensemble géré](#allow-claude-ai-connectors-alongside-the-managed-set).


137}138}

138```139```

139 140 

140`claude mcp add` échoue avec l'erreur de politique d'entreprise ci-dessus. Les serveurs que les utilisateurs avaient précédemment configurés cessent de se charger la prochaine fois qu'ils démarrent une session, sans avertissement que la politique en est la raison. Les serveurs que vous fournissez via `managedMcpServers`, et tout ce que vous autorisez aux côtés de l'ensemble géré, se chargent toujours sous une carte vide, donc laissez ces clés non définies pour désactiver MCP complètement.141`claude mcp add` échoue avec l'erreur de politique d'entreprise ci-dessus. Les serveurs que les utilisateurs avaient précédemment configurés cessent de se charger la prochaine fois qu'ils démarrent une session, sans avertissement que la politique en est la raison. Les serveurs que vous fournissez via `managedMcpServers`, et tout ce que vous autorisez aux côtés de l'ensemble géré, [se chargent toujours](#exclusive-control-with-managed-mcp-json) sous une carte vide, donc laissez ces clés non définies.

141 142 

142### Autoriser les connecteurs claude.ai aux côtés de l'ensemble géré143### Autoriser les connecteurs claude.ai aux côtés de l'ensemble géré

143 144 

mcp.md +1 −1

Details

806 806 

807* Ajoutez-le à [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers), qui le bloque dans tous les modes de permission.807* Ajoutez-le à [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers), qui le bloque dans tous les modes de permission.

808* Excluez entièrement les paramètres du projet avec [`--setting-sources`](https://code.claude.com/docs/fr/cli-reference#cli-flags) ou l'option `settingSources` du SDK.808* Excluez entièrement les paramètres du projet avec [`--setting-sources`](https://code.claude.com/docs/fr/cli-reference#cli-flags) ou l'option `settingSources` du SDK.

809* Démarrez la session avec [`--strict-mcp-config`](https://code.claude.com/docs/fr/cli-reference#cli-flags). Claude Code utilise alors uniquement les serveurs MCP que vous transmettez avec `--mcp-config`. Ignorer l'invite d'approbation pour les serveurs à portée de projet que Claude Code ne charge pas nécessite Claude Code v2.1.246 ou ultérieur ; avant v2.1.246, une session stricte attendait toujours l'approbation pour eux, ce qui laissait les sessions en arrière-plan en attente au démarrage. Consultez [Contrôle exclusif avec managed-mcp.json](https://code.claude.com/docs/fr/managed-mcp.md#exclusive-control-with-managed-mcp-json) pour voir ce que le drapeau fait sous un fichier MCP géré.809* Démarrez la session avec [`--strict-mcp-config`](https://code.claude.com/docs/fr/cli-reference#cli-flags). Claude Code charge alors les serveurs que vous transmettez avec `--mcp-config` et ignore ceux configurés dans des emplacements tels que `.mcp.json`. Ignorer la demande d'approbation pour les serveurs à portée de projet que Claude Code ne charge pas nécessite Claude Code v2.1.246 ou ultérieur. Consultez [Contrôle exclusif avec managed-mcp.json](https://code.claude.com/docs/fr/managed-mcp.md#exclusive-control-with-managed-mcp-json) pour voir ce que fait le flag avec un fichier MCP géré.

810 810 

811[Approbations des serveurs de projet et confiance de l'espace de travail](#project-server-approvals-and-workspace-trust) couvre la façon dont les approbations validées dans le référentiel interagissent avec la confiance de l'espace de travail.811[Approbations des serveurs de projet et confiance de l'espace de travail](#project-server-approvals-and-workspace-trust) couvre la façon dont les approbations validées dans le référentiel interagissent avec la confiance de l'espace de travail.

812 812 

model-config.md +2 −2

Details

273* **`/model`** : Claude Code rejette le changement avec une erreur273* **`/model`** : Claude Code rejette le changement avec une erreur

274* **Indicateur `--model`, `ANTHROPIC_MODEL`, ou paramètre `model`** : Claude Code remplace la valeur au démarrage par un avis nommant à la fois les modèles demandés et substitués, et la session démarre sur le modèle par défaut274* **Indicateur `--model`, `ANTHROPIC_MODEL`, ou paramètre `model`** : Claude Code remplace la valeur au démarrage par un avis nommant à la fois les modèles demandés et substitués, et la session démarre sur le modèle par défaut

275* **[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)** : Claude Code ignore la variable275* **[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)** : Claude Code ignore la variable

276* **Remplacement de sous-agent ou de coéquipier** : Claude Code exécute le sous-agent ou le coéquipier sur un modèle de secours plutôt que d'échouer la demande. Voir [Choisir un modèle](https://code.claude.com/docs/fr/sub-agents.md#choose-a-model) pour le secours du sous-agent et [Spécifier les coéquipiers et les modèles](https://code.claude.com/docs/fr/agent-teams.md#specify-teammates-and-models) pour le secours du coéquipier.276* **Remplacement de sous-agent ou de coéquipier** : Claude Code exécute le sous-agent ou le coéquipier sur un modèle de secours plutôt que de faire échouer la requête. Voir [Lorsqu'une liste d'autorisation bloque un modèle de sous-agent](https://code.claude.com/docs/fr/sub-agents.md#when-an-allowlist-blocks-a-subagent-model) pour la solution de repli du sous-agent et [Spécifier les coéquipiers et les modèles](https://code.claude.com/docs/fr/agent-teams.md#specify-teammates-and-models) pour la solution de repli du coéquipier.

277 277 

278 Dans les sessions interactives, Claude Code vous avertit lorsqu'il substitue le modèle d'un sous-agent, par ce secours ou par la substitution de version la plus récente autorisée ci-dessus, nommant les modèles demandés et substitués ; il ne signale pas le secours d'un coéquipier.278 Dans les sessions interactives, Claude Code vous avertit lorsqu'il substitue le modèle d'un sous-agent de premier niveau. Il ne signale pas la solution de repli d'un coéquipier.

279 279 

280 Lorsque la substitution de version la plus récente autorisée ci-dessus fonctionne, un alias de famille bloqué la suit à la place. Avant v2.1.222, un alias revenait comme toute autre valeur bloquée sur chaque fournisseur280 Lorsque la substitution de version la plus récente autorisée ci-dessus fonctionne, un alias de famille bloqué la suit à la place. Avant v2.1.222, un alias revenait comme toute autre valeur bloquée sur chaque fournisseur

281* **Remplacement de compétence ou de commande** : Claude Code ignore le remplacement, y compris un alias de famille bloqué, et la compétence ou la commande s'exécute sur le modèle de session. Une compétence ou une commande qui [s'exécute dans un sous-agent](https://code.claude.com/docs/fr/skills.md#run-skills-in-a-subagent) suit le comportement du sous-agent ci-dessus à la place281* **Remplacement de compétence ou de commande** : Claude Code ignore le remplacement, y compris un alias de famille bloqué, et la compétence ou la commande s'exécute sur le modèle de session. Une compétence ou une commande qui [s'exécute dans un sous-agent](https://code.claude.com/docs/fr/skills.md#run-skills-in-a-subagent) suit le comportement du sous-agent ci-dessus à la place

Details

50| Vous voulez | Commencez par | Isolation nécessaire | Notes |50| Vous voulez | Commencez par | Isolation nécessaire | Notes |

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

52| Examiner chaque action vous-même | Mode manuel : `claude --permission-mode default` | Aucune | Travail sensible, code non familier |52| Examiner chaque action vous-même | Mode manuel : `claude --permission-mode default` | Aucune | Travail sensible, code non familier |

53| Itérer localement avec moins d'invites, sans classificateur | Mode manuel plus le sandbox Bash en [mode auto-allow](https://code.claude.com/docs/fr/sandboxing.md#sandbox-modes) : `claude --permission-mode default`, puis exécutez `/sandbox` et sélectionnez auto-allow | Le sandbox Bash intégré, sur macOS, Linux et WSL2 | Les règles de refus s'appliquent toujours, et les règles d'ask qui nomment une commande, comme `Bash(git push *)`, invitent toujours. Le [mode auto-allow](https://code.claude.com/docs/fr/sandboxing.md#auto-allow-mode) couvre d'autres commandes qui peuvent déclencher une demande de permission. Pour activer le sandbox à partir d'un fichier de paramètres à la place, définissez [`sandbox.enabled`](https://code.claude.com/docs/fr/settings-reference#sandbox-enabled) sur `true` |53| Itérer localement avec moins d'invites, sans classificateur | Mode manuel plus le sandbox Bash en [mode auto-allow](https://code.claude.com/docs/fr/sandboxing.md#sandbox-modes) : `claude --permission-mode default`, puis exécutez `/sandbox` et sélectionnez auto-allow | Le sandbox Bash intégré, sur macOS, Linux et WSL2 | Les règles de refus s'appliquent toujours, et les règles d'ask qui nomment une commande, comme `Bash(git push *)`, invitent toujours. Le [mode auto-allow](https://code.claude.com/docs/fr/sandboxing.md#auto-allow-mode) couvre d'autres commandes qui peuvent déclencher une demande de permission. Pour activer le sandbox à partir d'un fichier de paramètres à la place, définissez [`sandbox.enabled`](https://code.claude.com/docs/fr/settings-reference#sandbox-enabled) et [`sandbox.autoAllowBashIfSandboxed`](https://code.claude.com/docs/fr/settings-reference#sandbox-autoallowbashifsandboxed) sur `true` |

54| Explorer avant de modifier quoi que ce soit | `claude --permission-mode plan` | Aucune | Claude Code bloque les modifications jusqu'à ce que vous [approuviez un plan](#review-and-approve-a-plan) |54| Explorer avant de modifier quoi que ce soit | `claude --permission-mode plan` | Aucune | Claude Code bloque les modifications jusqu'à ce que vous [approuviez un plan](#review-and-approve-a-plan) |

55| Travailler en mode automatique sans intervention | `claude --permission-mode auto`, le [mode de permission de démarrage intégré](#which-mode-a-session-starts-in) avec v2.1.283 ou ultérieur | Aucune ; un sandbox ou un conteneur ajoute une défense en profondeur | Nécessite un [modèle pris en charge](#eliminate-prompts-with-auto-mode), et votre organisation peut [désactiver le mode auto](#eliminate-prompts-with-auto-mode) |55| Travailler en mode automatique sans intervention | `claude --permission-mode auto`, le [mode de permission de démarrage intégré](#which-mode-a-session-starts-in) avec v2.1.283 ou ultérieur | Aucune ; un sandbox ou un conteneur ajoute une défense en profondeur | Nécessite un [modèle pris en charge](#eliminate-prompts-with-auto-mode), et votre organisation peut [désactiver le mode auto](#eliminate-prompts-with-auto-mode) |

56| Exécuter en CI avec une liste d'autorisation exacte | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Aucune au-delà de ce que votre exécuteur CI fournit | Les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md) ignorent `dontAsk` des fichiers de paramètres |56| Exécuter en CI avec une liste d'autorisation exacte | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Aucune au-delà de ce que votre exécuteur CI fournit | Les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md) ignorent `dontAsk` des fichiers de paramètres |

permissions.md +1 −1

Details

743 743 

744Utilisez les deux pour une défense en profondeur, car les restrictions de sandbox s'appliquent toujours même si une injection de prompt contourne la prise de décision de Claude. Les chemins et domaines des paramètres de sandbox et des règles d'autorisation sont [fusionnés dans la configuration finale du sandbox](https://code.claude.com/docs/fr/sandboxing.md#permission-rules).744Utilisez les deux pour une défense en profondeur, car les restrictions de sandbox s'appliquent toujours même si une injection de prompt contourne la prise de décision de Claude. Les chemins et domaines des paramètres de sandbox et des règles d'autorisation sont [fusionnés dans la configuration finale du sandbox](https://code.claude.com/docs/fr/sandboxing.md#permission-rules).

745 745 

746Lorsque vous activez le sandboxing et laissez `autoAllowBashIfSandboxed` à sa valeur par défaut de `true`, les commandes Bash en sandbox s'exécutent sans invite même si vos autorisations incluent une règle ask `Bash` simple, ou la [forme équivalente `Bash(*)`](#match-all-uses-of-a-tool) : la limite du sandbox remplace cette invite pour l'outil entier.746Lorsque vous activez le sandboxing et définissez [`sandbox.autoAllowBashIfSandboxed`](https://code.claude.com/docs/fr/settings-reference#sandbox-autoallowbashifsandboxed) sur `true`, les commandes Bash en sandbox s'exécutent sans demande de permission. Cela reste vrai même avec une règle ask `Bash` simple ou la [forme équivalente `Bash(*)`](#match-all-uses-of-a-tool) : la limite du sandbox remplace cette demande de permission pour l'outil entier.

747 747 

748En [mode plan](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode), Claude Code ignore cette substitution. Sans règle ask, les [commandes en lecture seule intégrées](#read-only-commands) s'exécutent toujours sans demande de permission, et toute autre commande shell passe par le flux de permission habituel pendant que vous planifiez encore ; consultez [mode plan](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode) pour savoir comment Claude Code contrôle les commandes dans ce mode. Avec une règle ask `Bash` simple, chaque commande Bash déclenche une demande de permission, y compris les commandes en lecture seule en sandbox, de la même manière qu'en dehors du sandboxing.748En [mode plan](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode), Claude Code ignore cette substitution. Sans règle ask, les [commandes en lecture seule intégrées](#read-only-commands) s'exécutent toujours sans demande de permission, et toute autre commande shell passe par le flux de permission habituel pendant que vous planifiez encore ; consultez [mode plan](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode) pour savoir comment Claude Code contrôle les commandes dans ce mode. Avec une règle ask `Bash` simple, chaque commande Bash déclenche une demande de permission, y compris les commandes en lecture seule en sandbox, de la même manière qu'en dehors du sandboxing.

749 749 

Details

438 438 

439* **Les champs de `backdrop`** : `scene` est un [nom](https://code.claude.com/docs/fr/plugins/mods/reference.md#limits) que vous choisissez pour un arrière-plan que votre hook dessine. Pour les autres champs et `overrideColorScheme`, consultez [les types de votre build](https://code.claude.com/docs/fr/plugins/mods/create.md#get-the-types-for-your-build).439* **Les champs de `backdrop`** : `scene` est un [nom](https://code.claude.com/docs/fr/plugins/mods/reference.md#limits) que vous choisissez pour un arrière-plan que votre hook dessine. Pour les autres champs et `overrideColorScheme`, consultez [les types de votre build](https://code.claude.com/docs/fr/plugins/mods/create.md#get-the-types-for-your-build).

440* **Si l'arrière-plan est dessiné** : `$.theme.set` se résout avec `isDrawn: true` lorsqu'une application Desktop ou mobile connectée à la session indique qu'elle dessine les arrière-plans. Sinon, `isDrawn` vaut `false` et `reason` en indique la raison.440* **Si l'arrière-plan est dessiné** : `$.theme.set` se résout avec `isDrawn: true` lorsqu'une application Desktop ou mobile connectée à la session indique qu'elle dessine les arrière-plans. Sinon, `isDrawn` vaut `false` et `reason` en indique la raison.

441* **Un seul arrière-plan par session** : un appel à `$.theme.set` remplace l'arrière-plan de la session et `$.theme.clear()` supprime cet arrière-plan, quel que soit le mod qui l'a défini. N'appelez `$.theme.clear()` que lorsque l'utilisateur le demande.441* **Un seul thème par session** : un mod qui appelle `$.theme.set` remplace l'arrière-plan et les [couleurs](#change-the-colors-of-the-desktop-app) de la session, et un mod qui appelle `$.theme.clear()` les supprime, quel que soit le mod qui les a définis. N'appelez `$.theme.clear()` que lorsque l'utilisateur le demande.

442 

443### Modifier les couleurs de l'application Desktop

444 

445Pour modifier les couleurs de l'onglet Code de l'application Desktop avec un mod, [demandez-en un à Claude](#ask-claude-for-a-colors-mod) ou [écrivez-le vous-même](#write-a-colors-mod-yourself). Les deux méthodes nécessitent Claude Code v2.1.324 ou ultérieur dans l'onglet Code ; [vérifiez donc la version à cet endroit](https://code.claude.com/docs/fr/desktop.md#claude-code-version-in-the-code-tab) au préalable. Claude Code dans le terminal conserve ses propres couleurs.

446 

447#### Demander un mod de couleurs à Claude

448 

449**1. Décrire les couleurs**

450 

451Démarrez une session locale dans l'onglet Code et indiquez à Claude les couleurs que vous souhaitez. Par exemple, saisissez `make a mod that makes the app cream in light mode and dark brown in dark mode`. Claude écrit les fichiers du mod.

452 

453**2. Approuver le mod**

454 

455Répondez aux questions que Claude Code pose sur les fichiers du mod et le rechargement à chaud. Pour connaître l'effet de chaque réponse, consultez [Demander un mod à Claude](https://code.claude.com/docs/fr/plugins/mods/create.md#ask-claude-for-a-mod).

456 

457**3. Vérifier les couleurs**

458 

459L'onglet Code change de couleur lorsque le mod se charge. Pour ajuster une couleur, indiquez à Claude ce qu'il faut modifier. Si rien ne change, consultez [Corriger les couleurs de mod manquantes](#fix-missing-mod-colors-in-the-desktop-app).

460 

461#### Écrire un mod de couleurs vous-même

462 

463`makeColors` est une fonction qui construit un thème à partir de quelques couleurs hexadécimales. Ces étapes créent un mod nommé `paper` qui l'utilise.

464 

465**1. Faire copier makeColors par Claude**

466 

467Démarrez une session locale dans l'onglet Code, et saisissez `copy make-colors.js and make-colors.d.ts from your plugin-authoring skill into ~/.claude/skills/paper/hooks/`. Vérifiez que les deux fichiers se trouvent dans ce répertoire.

468 

469**2. Enregistrer le manifeste et hooks.json**

470 

471À partir de [Écrire un mod vous-même](https://code.claude.com/docs/fr/plugins/mods/create.md#write-a-mod-yourself), enregistrez `.claude-plugin/plugin.json` et `hooks/hooks.json` dans `~/.claude/skills/paper/`, et remplacez `first-mod` par `paper` dans les deux fichiers. Un mod [placé sous `~/.claude/skills/`](https://code.claude.com/docs/fr/plugins/create#scaffold-a-plugin-that-loads-every-session) se charge lorsque vous démarrez une session.

472 

473**3. Écrire le code**

474 

475Enregistrez ce fichier sous `~/.claude/skills/paper/hooks/register.js`. Au démarrage d'une session, le code appelle `$.theme.set` avec les couleurs pour le mode clair et le mode sombre :

476 

477```javascript theme={null}

478import { makeColors } from './make-colors.js'

479 

480const { theme } = makeColors({

481 label: 'Paper',

482 // surface-0 is the background, text-primary is the main text, and text-muted is the faint text

483 light: {

484 gray: { anchors: { 'surface-0': '#efe6d3', 'text-primary': '#2a241d', 'text-muted': '#6a5f50' } },

485 },

486 dark: {

487 gray: { anchors: { 'surface-0': '#1f1a15', 'text-primary': '#f0e7d7', 'text-muted': '#aca08d' } },

488 },

489})

490 

491export function register(on) {

492 on('session.start', async ($, e, next) => {

493 await $.theme.set({ colors: theme })

494 return next(e)

495 })

496}

497```

498 

499Pour utiliser vos propres couleurs, remplacez les valeurs hexadécimales par d'autres couleurs hexadécimales à six chiffres.

500 

501**4. Vérifier les couleurs**

502 

503Démarrez une nouvelle session locale dans l'onglet Code. Avec les valeurs de l'exemple, l'arrière-plan est crème en mode clair et brun foncé en mode sombre. Si rien ne change, consultez [Corriger les couleurs de mod manquantes](#fix-missing-mod-colors-in-the-desktop-app).

504 

505### Corriger les couleurs de mod manquantes dans l'application Desktop

506 

507Si vous utilisez un [fournisseur tiers](https://code.claude.com/docs/fr/third-party-integrations.md) au lieu d'un compte Claude dans [Claude Desktop v5.11492.5 ou antérieur](https://code.claude.com/docs/fr/desktop.md#check-your-version), l'onglet Code conserve ses propres couleurs ; ignorez donc ces vérifications. Sinon, si les couleurs d'un mod n'apparaissent pas dans l'onglet Code, ou si elles disparaissent, recherchez ces causes :

508 

509* **Version obsolète** : [mettez à jour l'application Desktop](https://code.claude.com/docs/fr/desktop.md#claude-code-version-in-the-code-tab), redémarrez-la, et démarrez une nouvelle session locale dans l'onglet Code. Si Claude a écrit le mod, redemandez-le-lui dans cette session.

510* **Mod non chargé** : si Claude a écrit le mod, consultez à quel moment il se charge dans [Demander un mod à Claude](https://code.claude.com/docs/fr/plugins/mods/create.md#ask-claude-for-a-mod). Si vous l'avez écrit, comparez vos fichiers et leurs chemins avec [Écrire un mod de couleurs vous-même](#write-a-colors-mod-yourself).

511* **Thème refusé** : demandez à Claude d'exécuter l'appel [`makeColors`](#write-a-colors-mod-yourself) du mod. Si l'appel lève une erreur, ou si sa liste `problems` contient une entrée commençant par `Desktop won't paint this theme`, faites corriger le thème par Claude. Si vous avez installé le mod, envoyez ce que Claude trouve à son auteur.

512* **Un autre appel `$.theme`** : lorsqu'un mod de la session appelle `$.theme.set` ou `$.theme.clear()`, les couleurs et l'[arrière-plan](#put-a-backdrop-behind-the-conversation) d'un appel antérieur disparaissent. Dans votre propre mod, passez `colors` et `backdrop` dans le même appel à `$.theme.set`. N'utilisez qu'un seul mod à la fois qui définit un thème.

513 

514### Supprimer les couleurs de mod de l'application Desktop

515 

516Pour retirer les couleurs d'un mod de l'onglet Code, désactivez d'abord le mod. Un mod encore activé peut redéfinir ses couleurs.

517 

518**1. Désactiver le mod**

519 

520* **Claude a écrit le mod** : déplacez son répertoire hors du [dossier des mods](https://code.claude.com/docs/fr/plugins/mods/create.md#ask-claude-for-a-mod) de la session dans laquelle Claude l'a écrit.

521* **Vous avez placé le mod sous `~/.claude/skills/`** : déplacez son répertoire, par exemple `~/.claude/skills/paper/`, vers un emplacement situé hors de `~/.claude/skills/`.

522* **Vous avez installé le mod** : dans l'application Desktop, [désactivez ou désinstallez son plugin](https://code.claude.com/docs/fr/desktop.md#install-plugins) depuis **Manage plugins**. Si vous ne voyez pas **Manage plugins** et que vous disposez de [la CLI](https://code.claude.com/docs/fr/quickstart.md), vous pouvez [désactiver ou désinstaller un plugin de marketplace depuis votre shell](https://code.claude.com/docs/fr/plugins/install.md#manage-plugins-from-your-shell).

523 

524**2. Démarrer une nouvelle session**

525 

526Démarrez une nouvelle session locale dans l'onglet Code.

527 

528**3. Supprimer les couleurs qui persistent**

529 

530Si les couleurs sont toujours présentes, ouvrez **Settings** depuis l'onglet Code, et recherchez-y `code appearance`. Ouvrez le résultat, et sélectionnez **Remove colors**.

442 531 

443## Créer un arbre à partir d'éléments532## Créer un arbre à partir d'éléments

444 533 


677 766 

678Les mêmes touches, ou en rendu plein écran un clic sur la ligne, développent à nouveau le bandeau. D'ici là, rien n'appuie sur un bouton qu'il contient : ni raccourci, ni chiffre saisi dans un prompt vide, ni raccourci clavier associé à l'[`action`](https://code.claude.com/docs/fr/plugins/mods/reference#elements) d'un bouton. Si le bandeau a le focus clavier lorsque l'utilisateur le réduit, le focus revient au prompt, et Ctrl+X puis Tab ignore le bandeau tant qu'il est réduit.767Les mêmes touches, ou en rendu plein écran un clic sur la ligne, développent à nouveau le bandeau. D'ici là, rien n'appuie sur un bouton qu'il contient : ni raccourci, ni chiffre saisi dans un prompt vide, ni raccourci clavier associé à l'[`action`](https://code.claude.com/docs/fr/plugins/mods/reference#elements) d'un bouton. Si le bandeau a le focus clavier lorsque l'utilisateur le réduit, le focus revient au prompt, et Ctrl+X puis Tab ignore le bandeau tant qu'il est réduit.

679 768 

680Le bandeau reste réduit jusqu'à ce que l'utilisateur le développe, même après `/clear`, et il est de nouveau développé au prochain démarrage de Claude Code. Votre mod ne peut ni le développer ni savoir qu'il est réduit : le hook `ui.render` continue de s'exécuter, et rien dans `e.props` ne l'indique. Ne faites pas du bandeau le seul endroit où votre mod affiche quelque chose auquel l'utilisateur doit répondre.769Le bandeau reste réduit jusqu'à ce que l'utilisateur le développe, même après `/clear`, et il est de nouveau développé au prochain démarrage de Claude Code. Votre mod ne peut pas le développer. Ne faites pas du bandeau le seul endroit où votre mod affiche quelque chose auquel l'utilisateur doit répondre. Pour afficher cela ailleurs uniquement lorsque le bandeau est réduit, lisez `e.props.isCollapsed` dans votre hook `ui.render`, qui continue de s'exécuter. `isCollapsed` nécessite Claude Code v2.1.321 ou une version ultérieure.

681 770 

682### Recevoir une saisie et dessiner une ligne par élément771### Recevoir une saisie et dessiner une ligne par élément

683 772 

Details

212 212 

213Certains de ces événements se déclenchent également pour les propres actions de Claude Code : vérifiez donc si `next.origin.plugin` vaut `engine` avant d'en refuser un.213Certains de ces événements se déclenchent également pour les propres actions de Claude Code : vérifiez donc si `next.origin.plugin` vaut `engine` avant d'en refuser un.

214 214 

215#### Champs des propres requêtes `http.fetch` de Claude Code

216 

217Dans un hook `http.fetch`, un [`next.origin`](#the-hook-function) valant `{ plugin: 'engine', tier: 'core' }` signale l'une des propres requêtes de Claude Code, comme une requête au modèle, et non un appel `$.http.fetch` d'un mod. Là où le [garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#know-what-happens-by-default) est chargé, votre hook ne reçoit pas ces événements, sauf si votre mod [compte comme un mod de votre organisation](https://code.claude.com/docs/fr/plugins/mods/admin.md#install-your-organizations-mods).

218 

219Sur ces événements, `e.init` et la `value` avec laquelle `next(e)` se résout peuvent contenir ces champs, entre autres :

220 

221| Champ | Signification |

222| :- | :- |

223| `e.init.compress` | Défini lorsque Claude Code compresse le corps après votre hook. `e.init.body` contient le corps non compressé. Pour envoyer le corps sans compression, appelez `next({ ...e, init: { ...e.init, compress: undefined } })`. |

224| `value.isStreaming` | Défini sur `true` car Claude Code lit lui-même le corps de la réponse, de sorte que `value.text` est vide. Lisez plutôt `value.status` et `value.headers`. Pour répondre avec votre propre `text`, renvoyez une `value` sans `isStreaming`. |

225 

226Ces événements et ces champs nécessitent Claude Code v2.1.321 ou une version ultérieure.

227 

215## Méthodes de l'API des mods228## Méthodes de l'API des mods

216 229 

217L'API des mods est l'argument `$` que reçoit chaque hook. Ses méthodes sont regroupées en namespaces, comme `$.ui`. Ce tableau liste les méthodes de chaque namespace par nom : ainsi, `open` dans la ligne `$.ui` correspond à l'appel `$.ui.open(...)`. Les guides montrent les plus courantes en action, et [les types pour votre build](https://code.claude.com/docs/fr/plugins/mods/create.md#get-the-types-for-your-build) documentent chaque méthode avec un exemple.230L'API des mods est l'argument `$` que reçoit chaque hook. Ses méthodes sont regroupées en namespaces, comme `$.ui`. Ce tableau liste les méthodes de chaque namespace par nom : ainsi, `open` dans la ligne `$.ui` correspond à l'appel `$.ui.open(...)`. Les guides montrent les plus courantes en action, et [les types pour votre build](https://code.claude.com/docs/fr/plugins/mods/create.md#get-the-types-for-your-build) documentent chaque méthode avec un exemple.


222| [`$.ui`](https://code.claude.com/docs/fr/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, [`place`](https://code.claude.com/docs/fr/plugins/mods/interface#place-a-row-in-the-transcript), `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit`, `view`. `view` nécessite Claude Code v2.1.300 ou une version ultérieure et `place` v2.1.314 ou une version ultérieure. |235| [`$.ui`](https://code.claude.com/docs/fr/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, [`place`](https://code.claude.com/docs/fr/plugins/mods/interface#place-a-row-in-the-transcript), `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit`, `view`. `view` nécessite Claude Code v2.1.300 ou une version ultérieure et `place` v2.1.314 ou une version ultérieure. |

223| [`$.theme`](https://code.claude.com/docs/fr/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `set`, `clear` : définir un arrière-plan que l'application Desktop ou mobile dessine, et retirer cet arrière-plan. Nécessite Claude Code v2.1.319 ou une version ultérieure. |236| [`$.theme`](https://code.claude.com/docs/fr/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `set`, `clear` : définir un arrière-plan que l'application Desktop ou mobile dessine, et retirer cet arrière-plan. Nécessite Claude Code v2.1.319 ou une version ultérieure. |

224| [`$.command`](https://code.claude.com/docs/fr/plugins/mods/api#add-a-command) | `register`, `run`, `list` |237| [`$.command`](https://code.claude.com/docs/fr/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

225| [`$.tool`](https://code.claude.com/docs/fr/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |238| [`$.tool`](https://code.claude.com/docs/fr/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list`. Lorsqu'un `call` nécessite l'approbation d'une personne, par exemple un appel auquel un hook ou votre organisation répond par `ask`, il se résout avec `{ deny: "<tool> wasn't run: this call needs a person's approval, and a mod's own call can't ask for it." }`, où `<tool>` est le nom de l'outil. |

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

227| [`$.model`](https://code.claude.com/docs/fr/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |240| [`$.model`](https://code.claude.com/docs/fr/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |

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


250| Point de rendu | `e.props` | `e.requestId` | Affiché dans |263| Point de rendu | `e.props` | `e.requestId` | Affiché dans |

251| :- | :- | :- | :- |264| :- | :- | :- | :- |

252| [`Pane`](https://code.claude.com/docs/fr/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | L'`id` du volet | Terminal, Desktop, VS Code |265| [`Pane`](https://code.claude.com/docs/fr/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | L'`id` du volet | Terminal, Desktop, VS Code |

253| [`AbovePrompt`](https://code.claude.com/docs/fr/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Une seule instance | Terminal, Desktop |266| [`AbovePrompt`](https://code.claude.com/docs/fr/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, [`isCollapsed`](https://code.claude.com/docs/fr/plugins/mods/interface#when-the-user-collapses-the-band), `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Une seule instance | Terminal, Desktop |

254| `AbovePromptList`, la pile des lignes `AbovePrompt` | `rows`, une liste contenant un `{ plugin, tree }` pour la ligne de chaque mod, ainsi que les props de `AbovePrompt` | Une seule instance | Terminal, Desktop. Nécessite Claude Code v2.1.323 ou ultérieure. |267| `AbovePromptList`, la pile des lignes `AbovePrompt` | `rows`, une liste contenant un `{ plugin, tree }` pour la ligne de chaque mod, ainsi que les props de `AbovePrompt` | Une seule instance | Terminal, Desktop. Nécessite Claude Code v2.1.323 ou ultérieure. |

255| [`Placed`](https://code.claude.com/docs/fr/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | Le `requestId` renvoyé par `$.ui.place` | Terminal |268| [`Placed`](https://code.claude.com/docs/fr/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | Le `requestId` renvoyé par `$.ui.place` | Terminal |

256| [`Backdrop`](https://code.claude.com/docs/fr/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `scene`, `plugin`, `glass`, `overrideColorScheme`. Avant la v2.1.323, `scene` s'appelait `id` et `overrideColorScheme` s'appelait `colorScheme`. | `backdrop` | Surfaces `desktop` et `mobile`. Votre hook s'exécute lorsque l'application Desktop ou mobile demande à dessiner un arrière-plan. |269| [`Backdrop`](https://code.claude.com/docs/fr/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `scene`, `plugin`, `glass`, `overrideColorScheme`. Avant la v2.1.323, `scene` s'appelait `id` et `overrideColorScheme` s'appelait `colorScheme`. | `backdrop` | Surfaces `desktop` et `mobile`. Votre hook s'exécute lorsque l'application Desktop ou mobile demande à dessiner un arrière-plan. |


426| Nom | Emplacement | Effet |439| Nom | Emplacement | Effet |

427| :- | :- | :- |440| :- | :- | :- |

428| `CLAUDE_CODE_PLUGIN_DIRS` | Environnement, ou `env` dans `~/.claude/settings.json` | Répertoires de plugins à charger comme le fait `--plugin-dir`, pour les applications auxquelles vous ne pouvez pas passer de flag. Chemins absolus séparés par `:`, ou `;` sous Windows. |441| `CLAUDE_CODE_PLUGIN_DIRS` | Environnement, ou `env` dans `~/.claude/settings.json` | Répertoires de plugins à charger comme le fait `--plugin-dir`, pour les applications auxquelles vous ne pouvez pas passer de flag. Chemins absolus séparés par `:`, ou `;` sous Windows. |

429| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Environnement | `1` fait recharger les mods `--plugin-dir` à l'enregistrement dans une session non interactive de longue durée |442| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Environnement | Détermine si les mods se rechargent à l'enregistrement. Consultez la [référence des variables d'environnement](https://code.claude.com/docs/fr/env-vars.md) pour les valeurs par défaut et les valeurs possibles |

430| `prependPlugins`, `appendPlugins` | Paramètres gérés. Paramètres utilisateur uniquement sur une machine sans paramètres gérés ni fichier [`managed-mcp.json`](https://code.claude.com/docs/fr/managed-mcp#deploy-managed-mcp-json), dans une session dont les identifiants ne proviennent pas d'un `/login` Team ou Enterprise. | Listes d'identifiants de plugins, comme `acme-guard@acme-tools`. Les mods de `prependPlugins` s'exécutent avant tout mod installé par un utilisateur, et ceux de `appendPlugins` après, dans l'ordre indiqué. Consultez [L'ordre d'exécution des mods](https://code.claude.com/docs/fr/plugins/mods/events.md#the-order-mods-run-in). |443| `prependPlugins`, `appendPlugins` | Paramètres gérés. Paramètres utilisateur uniquement sur une machine sans paramètres gérés ni fichier [`managed-mcp.json`](https://code.claude.com/docs/fr/managed-mcp#deploy-managed-mcp-json), dans une session dont les identifiants ne proviennent pas d'un `/login` Team ou Enterprise. | Listes d'identifiants de plugins, comme `acme-guard@acme-tools`. Les mods de `prependPlugins` s'exécutent avant tout mod installé par un utilisateur, et ceux de `appendPlugins` après, dans l'ordre indiqué. Consultez [L'ordre d'exécution des mods](https://code.claude.com/docs/fr/plugins/mods/events.md#the-order-mods-run-in). |

431| `allowManagedModsOnly` | Paramètres gérés, en tant qu'[option du garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Seuls les mods qui [relèvent de votre organisation](https://code.claude.com/docs/fr/plugins/mods/admin.md#install-your-organizations-mods) et les mods intégrés à Claude Code exécutent leurs hooks. Les hooks de paramètres des utilisateurs continuent de s'exécuter. |444| `allowManagedModsOnly` | Paramètres gérés, en tant qu'[option du garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Seuls les mods qui [relèvent de votre organisation](https://code.claude.com/docs/fr/plugins/mods/admin.md#install-your-organizations-mods) et les mods intégrés à Claude Code exécutent leurs hooks. Les hooks de paramètres des utilisateurs continuent de s'exécuter. |

432| `allowModsToOverrideDenyRules` | Paramètres gérés, en tant qu'[option du garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Permet à un mod installé par un utilisateur d'approuver un appel d'outil en passant outre la plupart des [résultats qui restent en place par défaut](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods), y compris une règle `deny` |445| `allowModsToOverrideDenyRules` | Paramètres gérés, en tant qu'[option du garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Permet à un mod installé par un utilisateur d'approuver un appel d'outil en passant outre la plupart des [résultats qui restent en place par défaut](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods), y compris une règle `deny` |

Details

115 115 

116### Suivre les règles du kit de test116### Suivre les règles du kit de test

117 117 

118Le kit de test a quelques règles qui lui sont propres, et en enfreindre une produit les erreurs que les nouveaux auteurs de tests rencontrent en premier :

119 

120* **Enregistrez chaque stub avant le premier appel du test sur `$`.** Appeler `on` après cela lève une erreur comme `on("ui.render") after the test first called $`.118* **Enregistrez chaque stub avant le premier appel du test sur `$`.** Appeler `on` après cela lève une erreur comme `on("ui.render") after the test first called $`.

121 119 

122* **[`session.start`](https://code.claude.com/docs/fr/plugins/mods/reference#session) ne s'exécute pas par lui-même.** Chaque test commence avec votre module fraîchement chargé et aucun de ses hooks appelés, donc les variables au niveau du module conservent leurs valeurs initiales. Si un hook dépend de ce que `session.start` configure, déclenchez-le d'abord :120* **[`session.start`](https://code.claude.com/docs/fr/plugins/mods/reference#session) ne s'exécute pas par lui-même.** Chaque test commence avec votre module fraîchement chargé et aucun de ses hooks appelés, donc les variables au niveau du module conservent leurs valeurs initiales. Si un hook dépend de ce que `session.start` configure, déclenchez-le d'abord :


132 130 

133 Le deuxième stub répond à l'appel `$.command.register` qu'un hook `session.start` comme celui du [tutoriel](https://code.claude.com/docs/fr/plugins/mods/create.md#write-a-mod-yourself) fait. Sans lui, cet appel rejette avec `no implementation for command.register` et le kit saute votre hook, donc rien après l'appel dans le hook ne s'exécute. Le test n'échoue pas à ce stade. Le hook ignoré est listé sous `the engine reported:` uniquement si une vérification ultérieure échoue.131 Le deuxième stub répond à l'appel `$.command.register` qu'un hook `session.start` comme celui du [tutoriel](https://code.claude.com/docs/fr/plugins/mods/create.md#write-a-mod-yourself) fait. Sans lui, cet appel rejette avec `no implementation for command.register` et le kit saute votre hook, donc rien après l'appel dans le hook ne s'exécute. Le test n'échoue pas à ce stade. Le hook ignoré est listé sous `the engine reported:` uniquement si une vérification ultérieure échoue.

134 132 

135* **Un hook qui retourne `next(e)` a besoin d'un stub pour répondre.** Quand votre hook [`ui.render`](https://code.claude.com/docs/fr/plugins/mods/reference#interface) retourne `next(e)`, par exemple pour ne rien dessiner pendant que Claude est inactif, [le monter](#test-a-drawing) échoue avec `no implementation for ui.render`. Enregistrez un stub qui retourne un élément en tant que données simples :133* **Enregistrez un stub `ui.render` pour choisir ce que retourne `next(e)`.** Quand votre hook [`ui.render`](https://code.claude.com/docs/fr/plugins/mods/reference#interface) retourne `next(e)`, par exemple pour ne rien dessiner pendant que Claude est inactif, [le montage](#test-a-drawing) réussit sans stub. Pour que `next(e)` retourne un élément de votre choix, enregistrez un stub qui le retourne en tant que données simples :

136 134 

137 ```typescript theme={null}135 ```typescript theme={null}

138 // Stands for what Claude Code would draw at the site136 // Stands for what Claude Code would draw at the site

139 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))137 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))

140 ```138 ```

141 139 

142 Avec le stub enregistré, le montage réussit, et `ui.find({ type: 'Text' })` retourne cet élément chaque fois que votre hook a retourné `next(e)`. Avec v2.1.323 ou ultérieur, pour le bandeau, passez le nom de votre mod comme deuxième argument à `on`, comme dans `{ plugin: 'my-mod' }`. Sans lui, le stub ne répond pas à votre `next(e)`.140 Là où le site [peut dessiner cet élément](https://code.claude.com/docs/fr/plugins/mods/interface.md#change-what-claude-code-already-draws), `ui.find({ type: 'Text' })` le retourne quand votre hook a retourné `next(e)`. Avec v2.1.323 ou ultérieur, pour le bandeau, passez le nom de votre mod comme deuxième argument à `on`, comme dans `{ plugin: 'my-mod' }`. Sans lui, le stub ne répond pas à votre `next(e)`. Avant v2.1.321, le montage échoue avec `no implementation for ui.render`, sauf si vous enregistrez le stub.

143 141 

144* **Un stub pour `turn.step` est un générateur asynchrone**, et le test lit le flux jusqu'à la fin pour obtenir le résultat :142* **Un stub pour `turn.step` est un générateur asynchrone**, et le test lit le flux jusqu'à la fin pour obtenir le résultat :

145 143 


316| `press({ key: 'more' })` | Appuie sur le `Button` portant cette clé |314| `press({ key: 'more' })` | Appuie sur le `Button` portant cette clé |

317| `input({ key: 'new-note', text: 'buy milk' })` | Saisit le texte dans l'`Input` portant cette clé et appuie sur Enter. Ajoutez `kind: 'change'` pour saisir sans valider. Pour un champ doté de `rows`, le texte peut contenir `\n`. |315| `input({ key: 'new-note', text: 'buy milk' })` | Saisit le texte dans l'`Input` portant cette clé et appuie sur Enter. Ajoutez `kind: 'change'` pour saisir sans valider. Pour un champ doté de `rows`, le texte peut contenir `\n`. |

318| `select({ key: 'size', value: 'large' })` | Choisit l'option ayant cette valeur dans le `Select` portant cette clé |316| `select({ key: 'size', value: 'large' })` | Choisit l'option ayant cette valeur dans le `Select` portant cette clé |

317| `keepsBeneath()` | Dans un test sans stub `ui.render`, se résout à `true` lorsque le rendu inclut ce que `next(e)` a renvoyé, et à `false` lorsque votre hook l'a omis. Dans un test qui en enregistre un, utilisez `find` pour rechercher ce que le stub a dessiné. Nécessite Claude Code v2.1.321 ou une version ultérieure. |

319| `find({ key: 'more' })` ou `find({ type: 'Text', text: 'Count: 2' })` | Renvoie le premier élément correspondant sous la forme `{ type, props, children }`, ou `undefined`. `text` peut être une chaîne ou une expression régulière. |318| `find({ key: 'more' })` ou `find({ type: 'Text', text: 'Count: 2' })` | Renvoie le premier élément correspondant sous la forme `{ type, props, children }`, ou `undefined`. `text` peut être une chaîne ou une expression régulière. |

320| `unmount()` | Supprime le rendu |319| `unmount()` | Supprime le rendu |

321 320 

Details

41 41 

42| Vous voulez | Commencez par |42| Vous voulez | Commencez par |

43| :- | :- |43| :- | :- |

44| Réduire les invites de permission pendant le travail quotidien sur votre propre machine | L'[outil Bash sandboxé](https://code.claude.com/docs/fr/sandboxing.md), configuré avec `/sandbox` |44| Réduire les demandes de permission pendant le travail quotidien sur votre propre machine | L'[outil Bash sandboxé](https://code.claude.com/docs/fr/sandboxing.md) en mode d'autorisation automatique, configuré avec `/sandbox` |

45| Laisser Claude travailler sans surveillance avec `--dangerously-skip-permissions` ou en mode auto | Le [dev container](https://code.claude.com/docs/fr/devcontainer.md) préconfiguré, n'importe quel conteneur ou VM, ou le [runtime sandbox](#sandbox-runtime) |45| Laisser Claude travailler sans surveillance avec `--dangerously-skip-permissions` ou en mode auto | Le [dev container](https://code.claude.com/docs/fr/devcontainer.md) préconfiguré, n'importe quel conteneur ou VM, ou le [runtime sandbox](#sandbox-runtime) |

46| Isoler les serveurs MCP et les hooks ainsi que Bash, sans Docker | Le runtime sandbox |46| Isoler les serveurs MCP et les hooks ainsi que Bash, sans Docker | Le runtime sandbox |

47| Standardiser un environnement sandboxé dans une équipe | Le [dev container](https://code.claude.com/docs/fr/devcontainer.md) préconfiguré, copié dans votre référentiel |47| Standardiser un environnement sandboxé dans une équipe | Le [dev container](https://code.claude.com/docs/fr/devcontainer.md) préconfiguré, copié dans votre référentiel |

sandboxing.md +4 −7

Details

6 6 

7> Restreignez les fichiers et les hôtes réseau auxquels les commandes shell de Claude Code peuvent accéder grâce au sandbox intégré. Activez-le, définissez ses limites et corrigez ce qu'il empêche de fonctionner.7> Restreignez les fichiers et les hôtes réseau auxquels les commandes shell de Claude Code peuvent accéder grâce au sandbox intégré. Activez-le, définissez ses limites et corrigez ce qu'il empêche de fonctionner.

8 8 

9Le sandbox Bash est une frontière que le système d'exploitation impose autour des commandes shell que Claude exécute sur votre machine. Vous définissez les fichiers et les domaines réseau auxquels ces commandes peuvent accéder, et les restrictions s'appliquent aux commandes Bash, PowerShell et Monitor ainsi qu'aux processus qu'elles lancent. Comme le système d'exploitation applique ces restrictions pendant l'exécution d'une commande, Claude Code peut [exécuter des commandes en sandbox sans vous demander](#sandbox-modes) d'approuver chacune d'elles.9Le sandbox Bash est une frontière que le système d'exploitation impose autour des commandes shell que Claude exécute sur votre machine. Vous définissez les fichiers et les domaines réseau auxquels ces commandes peuvent accéder, et les restrictions s'appliquent aux commandes Bash, PowerShell et Monitor ainsi qu'aux processus qu'elles lancent. Les commandes en sandbox passent toujours par le flux de permission habituel, sauf si vous choisissez le [mode d'autorisation automatique](#sandbox-modes), qui peut les exécuter sans vous demander.

10 10 

11Le sandbox couvre uniquement les commandes shell. Les outils de fichiers de Claude, les serveurs MCP et les hooks [s'exécutent en dehors de celui-ci](#what-runs-outside-the-sandbox).11Le sandbox couvre uniquement les commandes shell. Les outils de fichiers de Claude, les serveurs MCP et les hooks [s'exécutent en dehors de celui-ci](#what-runs-outside-the-sandbox).

12 12 


394| Entrées `deny` et `mask` de `credentials.envVars` | Appliquées. Le nettoyage des variables d'environnement est indépendant de la couche système de fichiers |394| Entrées `deny` et `mask` de `credentials.envVars` | Appliquées. Le nettoyage des variables d'environnement est indépendant de la couche système de fichiers |

395| [Entrées `mask` de `credentials.files`](#mask-credential-files) appliquées comme masques | Appliquées : le masquage est indépendant de la couche système de fichiers. Une entrée [rabattue sur `deny`](#mask-credential-files) n'est pas appliquée, comme toute entrée `deny` |395| [Entrées `mask` de `credentials.files`](#mask-credential-files) appliquées comme masques | Appliquées : le masquage est indépendant de la couche système de fichiers. Une entrée [rabattue sur `deny`](#mask-credential-files) n'est pas appliquée, comme toute entrée `deny` |

396 396 

397Deux autres éléments changent :397Les commandes en sandbox héritent également du `$TMPDIR` de votre shell au lieu du répertoire temporaire propre à l'utilisateur, car tous les répertoires temporaires sont accessibles en écriture et Claude Code ne redirige plus les commandes vers celui propre à l'utilisateur.

398 398 

399* Les commandes en sandbox héritent du `$TMPDIR` de votre shell au lieu du répertoire temporaire propre à l'utilisateur, car tous les répertoires temporaires sont accessibles en écriture et Claude Code ne redirige plus les commandes vers celui propre à l'utilisateur.399Sous Linux, cette variable n'est souvent pas définie dans le shell parent. Les consignes de l'outil Bash indiquent à Claude de créer des répertoires de travail temporaires avec `mktemp -d` plutôt que de s'appuyer sur `$TMPDIR`.

400 

401 Sous Linux, cette variable n'est souvent pas définie dans le shell parent. Les consignes de l'outil Bash indiquent à Claude de créer des répertoires de travail temporaires avec `mktemp -d` plutôt que de s'appuyer sur `$TMPDIR`.

402* [`autoAllowBashIfSandboxed`](https://code.claude.com/docs/fr/settings-reference#sandbox-autoallowbashifsandboxed) a toujours `true` comme valeur par défaut, de sorte que les commandes en sandbox continuent de s'exécuter sans demande de permission. Définissez-le sur `false` pour obtenir une demande de permission pour les commandes en sandbox.

403 400 

404### Protéger les identifiants401### Protéger les identifiants

405 402 


1095}1092}

1096```1093```

1097 1094 

1098Cela active le [mode d'autorisation automatique](#sandbox-modes). Pour le mode de permissions standard, définissez également [`sandbox.autoAllowBashIfSandboxed`](https://code.claude.com/docs/fr/settings-reference#sandbox-autoallowbashifsandboxed) sur `false`. La modification prend effet dans votre session en cours dès la prochaine commande shell exécutée par Claude, et l'onglet **Mode** de `/sandbox` indique alors le mode en vigueur.1095Cela active le [mode de permissions standard](#sandbox-modes). Pour le mode d'autorisation automatique, définissez également [`sandbox.autoAllowBashIfSandboxed`](https://code.claude.com/docs/fr/settings-reference#sandbox-autoallowbashifsandboxed) sur `true`. La modification prend effet dans votre session en cours dès la prochaine commande shell exécutée par Claude, et l'onglet **Mode** de `/sandbox` indique alors le mode en vigueur.

1099 1096 

1100## Limitations1097## Limitations

1101 1098 

security.md +2 −2

Details

25 25 

26Pour atténuer les risques dans les systèmes agentiques :26Pour atténuer les risques dans les systèmes agentiques :

27 27 

28* **Outil bash en sandbox** : [Sandbox](https://code.claude.com/docs/fr/sandboxing.md) les commandes bash avec isolation du système de fichiers et du réseau, réduisant les invites de permission tout en maintenant la sécurité. Configurez avec `/sandbox` pour définir les limites où Claude Code peut travailler de manière autonome28* **Outil Bash en sandbox** : Exécutez les commandes Bash dans un [sandbox](https://code.claude.com/docs/fr/sandboxing.md) avec isolation du système de fichiers et du réseau. Configurez avec `/sandbox`

29* **Limite du répertoire de travail** : En mode Manuel, Claude Code vous demande avant que ses outils de fichiers ne lisent ou n'écrivent en dehors du dossier où il a été démarré et de ses sous-dossiers. Cette limite est une demande de permission : une commande Bash que vous approuvez peut donc toujours écrire partout où votre compte utilisateur le peut29* **Limite du répertoire de travail** : En mode Manuel, Claude Code vous demande avant que ses outils de fichiers ne lisent ou n'écrivent en dehors du dossier où il a été démarré et de ses sous-dossiers. Cette limite est une demande de permission : une commande Bash que vous approuvez peut donc toujours écrire partout où votre compte utilisateur le peut

30 * Pour lire un dossier sans la demande, ajoutez-le comme [répertoire supplémentaire](https://code.claude.com/docs/fr/permissions.md#working-directories)30 * Pour lire un dossier sans la demande, ajoutez-le comme [répertoire supplémentaire](https://code.claude.com/docs/fr/permissions.md#working-directories)

31 * Pour restreindre les commandes Bash au niveau du système d'exploitation, activez le [sandboxing](https://code.claude.com/docs/fr/sandboxing.md#filesystem-isolation)31 * Pour restreindre les commandes Bash au niveau du système d'exploitation, activez le [sandboxing](https://code.claude.com/docs/fr/sandboxing.md#filesystem-isolation)


62* **Vérification de confiance** : Dans une session interactive, Claude Code affiche la boîte de dialogue de confiance de l'espace de travail lorsque vous le démarrez dans un dossier auquel vous n'avez pas encore fait confiance. Les serveurs définis dans le fichier `.mcp.json` d'un projet ont leur propre demande d'approbation, et [Portée projet](https://code.claude.com/docs/fr/mcp.md#project-scope) liste les sessions qui l'ignorent62* **Vérification de confiance** : Dans une session interactive, Claude Code affiche la boîte de dialogue de confiance de l'espace de travail lorsque vous le démarrez dans un dossier auquel vous n'avez pas encore fait confiance. Les serveurs définis dans le fichier `.mcp.json` d'un projet ont leur propre demande d'approbation, et [Portée projet](https://code.claude.com/docs/fr/mcp.md#project-scope) liste les sessions qui l'ignorent

63 * Remarque : Une session `-p` n'affiche aucune de ces deux demandes. [Ce qui s'exécute avant que vous fassiez confiance à un dossier](https://code.claude.com/docs/fr/permissions.md#what-runs-before-you-trust-a-folder) liste ce que les fichiers d'un dépôt peuvent y exécuter63 * Remarque : Une session `-p` n'affiche aucune de ces deux demandes. [Ce qui s'exécute avant que vous fassiez confiance à un dossier](https://code.claude.com/docs/fr/permissions.md#what-runs-before-you-trust-a-folder) liste ce que les fichiers d'un dépôt peuvent y exécuter

64 * Remarque : Lorsque vous démarrez Claude Code directement dans votre répertoire personnel, l'acceptation de la confiance est conservée pour la session actuelle uniquement et n'est pas écrite sur le disque, donc l'invite réapparaît à chaque lancement. Il n'y a aucun paramètre pour la conserver. Démarrez Claude Code à partir d'un sous-répertoire de projet à la place, où l'acceptation de la confiance est enregistrée par répertoire64 * Remarque : Lorsque vous démarrez Claude Code directement dans votre répertoire personnel, l'acceptation de la confiance est conservée pour la session actuelle uniquement et n'est pas écrite sur le disque, donc l'invite réapparaît à chaque lancement. Il n'y a aucun paramètre pour la conserver. Démarrez Claude Code à partir d'un sous-répertoire de projet à la place, où l'acceptation de la confiance est enregistrée par répertoire

65* **Détection d'injection de commande** : En mode Manuel, Claude Code demande avant d'exécuter une commande Bash qu'il ne peut pas analyser entièrement. Une règle d'autorisation pour une partie d'une commande, telle que `Bash(git *)`, ne permet pas d'ignorer cette demande. Les [commandes exécutées en sandbox](https://code.claude.com/docs/fr/permissions.md#how-permissions-interact-with-sandboxing) peuvent s'exécuter sans elle65* **Détection d'injection de commande** : En mode Manuel, Claude Code demande avant d'exécuter une commande Bash qu'il ne peut pas analyser entièrement. Une règle d'autorisation pour une partie d'une commande, telle que `Bash(git *)`, ne permet pas d'ignorer cette demande. Les [commandes exécutées en sandbox](https://code.claude.com/docs/fr/permissions.md#how-permissions-interact-with-sandboxing) en [mode d'autorisation automatique](https://code.claude.com/docs/fr/sandboxing.md#auto-allow-mode) peuvent s'exécuter sans elle

66* **Correspondance en cas d'échec fermé** : En mode Manuel, les commandes non appariées nécessitent une approbation par défaut66* **Correspondance en cas d'échec fermé** : En mode Manuel, les commandes non appariées nécessitent une approbation par défaut

67* **Stockage sécurisé des identifiants** : Les clés API et les tokens sont stockés dans le Keychain macOS lorsqu'il est disponible. Sur Linux, ils sont stockés dans un fichier avec le mode `0600`, et sur Windows dans un fichier qui hérite des contrôles d'accès du répertoire de votre profil utilisateur. Consultez [Gestion des identifiants](https://code.claude.com/docs/fr/authentication.md#credential-management)67* **Stockage sécurisé des identifiants** : Les clés API et les tokens sont stockés dans le Keychain macOS lorsqu'il est disponible. Sur Linux, ils sont stockés dans un fichier avec le mode `0600`, et sur Windows dans un fichier qui hérite des contrôles d'accès du répertoire de votre profil utilisateur. Consultez [Gestion des identifiants](https://code.claude.com/docs/fr/authentication.md#credential-management)

68 68 

Details

1355 1355 

1356### `sandbox.autoAllowBashIfSandboxed`1356### `sandbox.autoAllowBashIfSandboxed`

1357 1357 

1358Permet à Claude Code d'exécuter les commandes Bash en sandbox sans demande de permission. Les commandes qui ne peuvent pas s'exécuter dans le sandbox passent toujours par le flux de permissions habituel, et les règles `deny` ainsi que les règles `ask` ciblant un contenu, comme `Bash(git push *)`, continuent de s'appliquer ; une règle ask `Bash` seule est ignorée pour les commandes en sandbox. Définissez-la sur `false` pour faire aussi passer les commandes en sandbox par le flux de permissions habituel, ce que l'onglet **Mode** de `/sandbox` appelle le mode de permissions habituel.1358Permet à Claude Code d'exécuter les commandes Bash en sandbox sans demande de permission. Les commandes qui ne peuvent pas s'exécuter dans le sandbox passent toujours par le flux de permissions habituel. Les règles `deny` et les règles `ask` limitées à un contenu, telles que `Bash(git push *)`, s'appliquent toujours, mais une règle ask `Bash` seule est ignorée pour les commandes en sandbox. Pour la définir sur `true` dans les paramètres gérés, ajoutez-la au bloc `sandbox` de votre [source gérée de plus haut rang](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources).

1359 1359 

1360* **Scope** : [`Any file`](#scopes)1360* **Scope** : [`Any file`](#scopes)

1361* **Type** : Booléen1361* **Type** : Booléen

1362 * `true` : Claude Code exécute les commandes Bash en sandbox sans demande de permission, sauf dans les cas que décrit [Auto-allow mode](https://code.claude.com/docs/fr/sandboxing.md#auto-allow-mode) ; `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` désactive l'auto-allow1362 * `true` : Claude Code exécute les commandes Bash en sandbox sans demande de permission, sauf dans les cas que décrit [Auto-allow mode](https://code.claude.com/docs/fr/sandboxing.md#auto-allow-mode) ; `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` désactive l'auto-allow

1363 * `false` : les commandes en sandbox passent par le flux de permission régulier, donc vos règles d'autorisation et le mode de permission décident. L'onglet **Mode** de `/sandbox` appelle ceci mode de permissions régulier1363 * `false` : les commandes en sandbox passent par le flux de permission régulier, donc vos règles d'autorisation et le mode de permission décident. L'onglet **Mode** de `/sandbox` appelle ceci mode de permissions régulier

1364* **Default** : `true`1364* **Par défaut** : `false`. Avant la v2.1.324, la valeur par défaut était `true`

1365 1365 

1366Ceci garde le sandbox activé et envoie les commandes en sandbox par le flux de permission régulier :1366Pour garder le sandbox activé et exécuter les commandes en sandbox sans demande de permission, définissez les deux clés dans votre bloc `sandbox` :

1367 1367 

1368```json settings.json theme={null}1368```json settings.json theme={null}

1369{1369{

1370 "sandbox": {1370 "sandbox": {

1371 "enabled": true,1371 "enabled": true,

1372 "autoAllowBashIfSandboxed": false1372 "autoAllowBashIfSandboxed": true

1373 }1373 }

1374}1374}

1375```1375```


1653}1653}

1654```1654```

1655 1655 

1656Lorsque cette couche est désactivée, Claude Code n'applique pas les entrées `denyRead` ni les entrées `deny` de `credentials.files`, tandis que les entrées `credentials.envVars` et les entrées `mask` appliquées continuent de fonctionner. [`autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) vaut toujours `true` par défaut, donc définissez-le sur `false` pour conserver les demandes de permission. Consultez [Désactiver l'isolation du système de fichiers](https://code.claude.com/docs/fr/sandboxing.md#disable-filesystem-isolation) pour la liste complète des sources qui peuvent le définir et ce qui change lorsque l'isolation est désactivée.1656Lorsque cette couche est désactivée, Claude Code n'applique pas les entrées `denyRead` ni les entrées `deny` de `credentials.files`, tandis que les entrées `credentials.envVars` et les entrées `mask` appliquées continuent de fonctionner. Consultez [Désactiver l'isolation du système de fichiers](https://code.claude.com/docs/fr/sandboxing.md#disable-filesystem-isolation) pour la liste complète des sources qui peuvent le définir et ce qui change lorsque l'isolation est désactivée.

1657 1657 

1658### `sandbox.ignoreViolations`1658### `sandbox.ignoreViolations`

1659 1659 


4870 4870 

4871### `agentPushNotifEnabled`4871### `agentPushNotifEnabled`

4872 4872 

4873Permettre à Claude d'envoyer une notification push à votre téléphone quand il décide qu'elle en vaut la peine, par exemple quand une tâche longue se termine. Dans une session locale, Claude peut en envoyer une pendant que [Remote Control](https://code.claude.com/docs/fr/remote-control.md) est connecté. Apparaît dans `/config` sous **Push when Claude decides**. Lorsque vous le modifiez à cet endroit, Claude Code enregistre également la valeur dans votre compte.4873Permettre à Claude d'envoyer une notification push à votre téléphone quand il décide qu'elle en vaut la peine, par exemple quand une tâche longue se termine. Dans une session locale, Claude peut en envoyer une pendant que [Remote Control](https://code.claude.com/docs/fr/remote-control.md) est connecté. Apparaît dans `/config` sous **Push when Claude decides**.

4874 4874 

4875* **Portée** : [`Tout fichier`](#scopes). Claude Code lit également une valeur laissée dans `~/.claude.json` par les versions antérieures.4875* **Portée** : [`Tout fichier`](#scopes). Claude Code lit également une valeur laissée dans `~/.claude.json` par les versions antérieures.

4876* **Type** : Booléen4876* **Type** : Booléen


4884}4884}

4885```4885```

4886 4886 

4887Si vous exécutez des sessions sous un serveur [`claude remote-control`](https://code.claude.com/docs/fr/remote-control#start-a-remote-control-session), elles suivent la valeur enregistrée dans votre compte plutôt que cette clé. Pour modifier cette valeur, exécutez `/config` dans une session Claude Code dans votre terminal et activez ou désactivez **Push when Claude decides**. Si le bouton affiche déjà la valeur souhaitée, modifiez-le puis rétablissez-le afin que Claude Code enregistre cette valeur dans votre compte.4887Cette clé seule ne suffit pas pour recevoir des notifications. Pour les configurer, suivez les étapes de [Notifications push mobiles](https://code.claude.com/docs/fr/remote-control.md#mobile-push-notifications).

4888 4888 

4889Voir [Notifications push mobiles](https://code.claude.com/docs/fr/remote-control.md#mobile-push-notifications).4889Si vous exécutez des sessions sous un serveur [`claude remote-control`](https://code.claude.com/docs/fr/remote-control#start-a-remote-control-session), elles suivent la valeur enregistrée dans votre compte plutôt que cette clé. Pour modifier cette valeur, exécutez `/config` dans une session Claude Code dans votre terminal et activez ou désactivez **Push when Claude decides**. Si le bouton affiche déjà la valeur souhaitée, modifiez-le puis rétablissez-le afin que Claude Code enregistre cette valeur dans votre compte.

4890 4890 

4891### `awaySummaryEnabled`4891### `awaySummaryEnabled`

4892 4892 


5043}5043}

5044```5044```

5045 5045 

5046Voir [Notifications push mobiles](https://code.claude.com/docs/fr/remote-control.md#mobile-push-notifications).5046Cette clé seule ne suffit pas pour recevoir des notifications. Pour les configurer, suivez les étapes de [Notifications push mobiles](https://code.claude.com/docs/fr/remote-control.md#mobile-push-notifications).

5047 5047 

5048### `preferredNotifChannel`5048### `preferredNotifChannel`

5049 5049 


5421 5421 

5422### `minimumVersion`5422### `minimumVersion`

5423 5423 

5424Empêchez les mises à jour automatiques en arrière-plan et `claude update` d'installer une version inférieure à celle-ci, de sorte que le passage au canal `"stable"` ne vous rétrograde pas à partir d'une version `"latest"` plus récente. Claude Code écrit cette clé pour vous lorsque vous choisissez de rester sur votre version actuelle lors du changement de canal dans `/config`, et la supprime lorsque vous revenez à `"latest"`.5424Empêchez les mises à jour automatiques en arrière-plan et `claude update` d'installer une version inférieure à celle que vous définissez. Claude Code écrit cette clé pour vous lorsque vous choisissez de rester sur votre version actuelle lors du changement de canal dans `/config`. Claude Code supprime la clé lorsque vous revenez à `"latest"` dans `/config`.

5425 5425 

5426* **Portée** : [`Any file`](#scopes). Définissez-le dans les paramètres gérés pour épingler un minimum à l'échelle de l'organisation que les paramètres utilisateur et projet ne peuvent pas réduire.5426* **Portée** : [`Any file`](#scopes). Définissez cette clé dans les paramètres gérés pour épingler un minimum à l'échelle de l'organisation que les paramètres utilisateur et projet ne peuvent pas outrepasser.

5427* **Type** : string, un numéro de version tel que `"2.1.100"` ; une valeur qui n'est pas une version valide est ignorée5427* **Type** : string, un numéro de version tel que `"2.1.323"` ; une valeur qui n'est pas une version valide est ignorée

5428* **Défaut** : non défini, donc les mises à jour peuvent installer n'importe quelle version que le canal propose5428* **Défaut** : non défini, donc les mises à jour peuvent installer n'importe quelle version que le canal propose

5429 5429 

5430Cet exemple suit le canal stable et refuse d'installer une version inférieure à 2.1.100 :5430Cet exemple suit le canal stable et refuse d'installer une version inférieure à 2.1.323 :

5431 5431 

5432```json settings.json theme={null}5432```json settings.json theme={null}

5433{5433{

5434 "autoUpdatesChannel": "stable",5434 "autoUpdatesChannel": "stable",

5435 "minimumVersion": "2.1.100"5435 "minimumVersion": "2.1.323"

5436}5436}

5437```5437```

5438 5438 

setup.md +19 −10

Details

40>40>

41> **macOS, Linux, WSL :**41> **macOS, Linux, WSL :**

42>42>

43> ```bash theme={null}43> ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

44> curl -fsSL https://claude.ai/install.sh | bash44> curl -fsSL https://claude.ai/install.sh | bash

45> ```45> ```

46>46>


48>48>

49> **Windows PowerShell :**49> **Windows PowerShell :**

50>50>

51> ```powershell theme={null}51> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

52> irm https://claude.ai/install.ps1 | iex52> irm https://claude.ai/install.ps1 | iex

53> ```53> ```

54>54>

55> **Windows CMD :**55> **Windows CMD :**

56>56>

57> ```batch theme={null}57> ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

59> ```59> ```

60>60>


72 72 

73> [tab] Homebrew73> [tab] Homebrew

74>74>

75> ```bash theme={null}75> ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

76> brew install --cask claude-code76> brew install --cask claude-code

77> ```77> ```

78>78>


84 84 

85> [tab] WinGet85> [tab] WinGet

86>86>

87> ```powershell theme={null}87> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

88> winget install Anthropic.ClaudeCode88> winget install Anthropic.ClaudeCode

89> ```89> ```

90>90>


220}220}

221```221```

222 222 

223Avec ce paramètre, une installation native se met à jour vers la version stable même lorsque cette version est plus ancienne que la vôtre. Pour éviter la rétrogradation, [épinglez également une version minimale](#pin-a-minimum-version).

224 

223Un modèle nouvellement lancé peut nécessiter une version de Claude Code plus récente que celle fournie par le canal stable. Pour utiliser le modèle dès maintenant, passez au canal latest.225Un modèle nouvellement lancé peut nécessiter une version de Claude Code plus récente que celle fournie par le canal stable. Pour utiliser le modèle dès maintenant, passez au canal latest.

224 226 

225Pour les déploiements d'entreprise, vous pouvez appliquer un canal de version cohérent dans votre organisation à l'aide des [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md).227Pour les déploiements d'entreprise, vous pouvez appliquer un canal de version cohérent dans votre organisation à l'aide des [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md).


230 232 

231### Épingler une version minimale233### Épingler une version minimale

232 234 

233Le paramètre `minimumVersion` établit un plancher. Les mises à jour automatiques en arrière-plan et `claude update` refusent d'installer toute version inférieure à cette valeur, donc passer au canal `"stable"` ne vous rétrograde pas si vous êtes déjà sur une version `"latest"` plus récente.235Pour faire passer une installation native au [canal de version](#configure-release-channel) `"stable"` sans rétrogradation, définissez [`minimumVersion`](https://code.claude.com/docs/fr/settings-reference#minimumversion) sur la version que vous exécutez. Les mises à jour automatiques en arrière-plan et `claude update` refusent d'installer toute version inférieure au minimum.

236 

237Définissez le minimum dans `/config` pour que Claude Code renseigne votre version actuelle, ou dans votre fichier de paramètres pour saisir le numéro vous-même :

234 238 

235Passer de `"latest"` à `"stable"` via `/config` vous invite à rester sur la version actuelle ou à autoriser la rétrogradation. Choisir de rester définit `minimumVersion` à cette version. Revenir à `"latest"` l'efface.239* **Dans `/config`** : passez **Canal de mise à jour automatique** à stable, puis sélectionnez **Rester sur la version actuelle**. Si vous revenez à latest dans `/config`, Claude Code efface le minimum.

240* **Dans votre [fichier de paramètres](https://code.claude.com/docs/fr/settings.md)** : exécutez `claude --version` dans votre shell, et définissez `minimumVersion` sur le numéro situé au début de la sortie. Dans la même modification, définissez `autoUpdatesChannel` sur `"stable"`.

236 241 

237Ajoutez-le à votre [fichier settings.json](https://code.claude.com/docs/fr/settings.md) pour épingler un plancher explicitement :242Ce fichier `~/.claude/settings.json` fait passer une installation en version 2.1.323 au canal stable :

238 243 

239```json theme={null}244```json theme={null}

240{245{

241 "autoUpdatesChannel": "stable",246 "autoUpdatesChannel": "stable",

242 "minimumVersion": "2.1.100"247 "minimumVersion": "2.1.323"

243}248}

244```249```

245 250 

246Dans les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md), cela applique un minimum à l'échelle de l'organisation que les paramètres utilisateur et projet ne peuvent pas remplacer.251L'installation reste sur la version 2.1.323 jusqu'à ce que le canal stable fournisse une version plus récente.

252 

253#### Définir des limites de version pour votre organisation

254 

255Dans les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md), `minimumVersion` applique un minimum à l'échelle de l'organisation que les paramètres utilisateur et projet ne peuvent pas remplacer.

247 256 

248Le pin `minimumVersion` ne contraint que les mises à jour. Pour faire refuser à Claude Code de démarrer en dehors d'une plage de versions, utilisez plutôt les paramètres gérés `requiredMinimumVersion` et `requiredMaximumVersion`. Les mises à jour respectent également le plafond `requiredMaximumVersion`. Consultez [`requiredMinimumVersion`](https://code.claude.com/docs/fr/settings-reference#requiredminimumversion) et [`requiredMaximumVersion`](https://code.claude.com/docs/fr/settings-reference#requiredmaximumversion).257Le pin `minimumVersion` ne contraint que les mises à jour. Pour faire refuser à Claude Code de démarrer en dehors d'une plage de versions, utilisez plutôt les paramètres gérés `requiredMinimumVersion` et `requiredMaximumVersion`. Les mises à jour respectent également le plafond `requiredMaximumVersion`. Consultez [`requiredMinimumVersion`](https://code.claude.com/docs/fr/settings-reference#requiredminimumversion) et [`requiredMaximumVersion`](https://code.claude.com/docs/fr/settings-reference#requiredmaximumversion).

249 258 

skills.md +4 −2

Details

22 22 

23Claude Code inclut un ensemble de compétences groupées, telles que `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop` et `/claude-api`. Les compétences groupées sont basées sur des invites : elles donnent à Claude des instructions détaillées et lui permettent d'orchestrer le travail en utilisant ses outils. La plupart des commandes intégrées exécutent plutôt une logique fixe directement.23Claude Code inclut un ensemble de compétences groupées, telles que `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop` et `/claude-api`. Les compétences groupées sont basées sur des invites : elles donnent à Claude des instructions détaillées et lui permettent d'orchestrer le travail en utilisant ses outils. La plupart des commandes intégrées exécutent plutôt une logique fixe directement.

24 24 

25Vous invoquez un skill fourni en tapant `/` suivi du nom du skill. Claude invoque automatiquement certains skills fournis lorsqu'ils sont pertinents ; d'autres, notamment [`/verify`](#run-and-verify-your-app), ne s'exécutent que lorsque vous les invoquez.25Vous invoquez un skill fourni en tapant `/` suivi du nom du skill. Claude invoque automatiquement certains skills fournis lorsqu'ils sont pertinents.

26 26 

27La plupart des compétences groupées sont disponibles dans chaque session. Quelques-unes dépendent d'une fonctionnalité spécifique : `/workflow-authoring`, par exemple, n'est disponible que lorsque les [flux de travail dynamiques](https://code.claude.com/docs/fr/workflows.md) sont activés.27La plupart des compétences groupées sont disponibles dans chaque session. Quelques-unes dépendent d'une fonctionnalité spécifique : `/workflow-authoring`, par exemple, n'est disponible que lorsque les [flux de travail dynamiques](https://code.claude.com/docs/fr/workflows.md) sont activés.

28 28 


320 320 

321Si vous créez un répertoire de skills de premier niveau qui n'existait pas au démarrage de la session, exécutez [`/reload-skills`](https://code.claude.com/docs/fr/commands#all-commands) pour prendre en compte les skills que vous y placez. Claude Code ne surveille pas encore ce répertoire : exécutez donc à nouveau `/reload-skills` après chaque modification ultérieure à cet endroit.321Si vous créez un répertoire de skills de premier niveau qui n'existait pas au démarrage de la session, exécutez [`/reload-skills`](https://code.claude.com/docs/fr/commands#all-commands) pour prendre en compte les skills que vous y placez. Claude Code ne surveille pas encore ce répertoire : exécutez donc à nouveau `/reload-skills` après chaque modification ultérieure à cet endroit.

322 322 

323La détection des modifications en direct ne couvre que le texte de `SKILL.md`. Pour un dossier de skill qui est également un [plugin](https://code.claude.com/docs/fr/plugins/loading.md#plugins-shared-through-a-repository), les modifications de `hooks/`, `.mcp.json`, `agents/` et `output-styles/` nécessitent `/reload-plugins` pour prendre effet.323> [!NOTE]

324>

325> La détection des modifications en direct couvre le texte de `SKILL.md`. Pour un dossier de skill qui est également un [plugin](https://code.claude.com/docs/fr/plugins/loading.md#plugins-shared-through-a-repository), les modifications de `.mcp.json`, `agents/` et `output-styles/` nécessitent `/reload-plugins` pour prendre effet. Les modifications de `hooks/` le nécessitent aussi, sauf le fichier de module d'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) lorsqu'il [se recharge de lui-même](https://code.claude.com/docs/fr/env-vars.md).

324 326 

325### Supprimer un skill327### Supprimer un skill

326 328 

sub-agents.md +59 −42

Details

36>36>

37> Un agent rapide, en lecture seule, optimisé pour rechercher et analyser des bases de code.37> Un agent rapide, en lecture seule, optimisé pour rechercher et analyser des bases de code.

38>38>

39> * **Modèle** : le modèle de la conversation principale. Lorsque la conversation principale s'exécute sur Fable, le modèle d'Explore dépend de votre mode de connexion :39> * **Modèle** : le modèle de la [conversation parente](#which-model-a-nested-subagent-runs-on). Lorsque la conversation parente s'exécute sur Fable, Explore s'exécute sur Opus ou reste sur Fable, selon votre mode de connexion.

40> * Avec un abonnement Claude, un compte Anthropic Console ou une [passerelle LLM](https://code.claude.com/docs/fr/llm-gateway) atteinte via `ANTHROPIC_BASE_URL`, Explore s'exécute sur le modèle Opus vers lequel l'[alias `opus`](https://code.claude.com/docs/fr/model-config#model-aliases) est résolu.40> * Avec un abonnement Claude, un compte Anthropic Console ou une [passerelle LLM](https://code.claude.com/docs/fr/llm-gateway) atteinte via `ANTHROPIC_BASE_URL`, Explore s'exécute sur le modèle Opus vers lequel l'[alias `opus`](https://code.claude.com/docs/fr/model-config#model-aliases) est résolu.

41> * Sur Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry, [Claude Platform on AWS](https://code.claude.com/docs/fr/claude-platform-on-aws.md) ou une [passerelle Claude apps](https://code.claude.com/docs/fr/claude-apps-gateway), Explore reste sur le modèle de la conversation principale.41> * Sur Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry, [Claude Platform on AWS](https://code.claude.com/docs/fr/claude-platform-on-aws.md) ou une [passerelle Claude apps](https://code.claude.com/docs/fr/claude-apps-gateway), Explore reste sur Fable.

42> * **Outils** : outils en lecture seule ; Write et Edit sont refusés42> * **Outils** : outils en lecture seule ; Write et Edit sont refusés

43> * **Objectif** : découverte de fichiers, recherche de code, exploration de la base de code43> * **Objectif** : découverte de fichiers, recherche de code, exploration de la base de code

44>44>


52>52>

53> Un agent de recherche utilisé pendant le [mode plan](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode) pour rassembler du contexte avant de présenter un plan.53> Un agent de recherche utilisé pendant le [mode plan](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode) pour rassembler du contexte avant de présenter un plan.

54>54>

55> * **Modèle** : hérite de la conversation principale, sauf si vous définissez `CLAUDE_CODE_SUBAGENT_MODEL` et [l'imposez à tous les sous-agents](#run-every-subagent-on-one-model)55> * **Modèle** : hérite de la [conversation parente](#which-model-a-nested-subagent-runs-on), sauf si vous définissez `CLAUDE_CODE_SUBAGENT_MODEL` et [l'imposez à tous les sous-agents](#run-every-subagent-on-one-model)

56> * **Outils** : outils en lecture seule ; Write et Edit sont refusés56> * **Outils** : outils en lecture seule ; Write et Edit sont refusés

57> * **Objectif** : recherche dans la base de code pour la planification57> * **Objectif** : recherche dans la base de code pour la planification

58>58>


62>62>

63> Un agent performant pour les tâches complexes en plusieurs étapes qui nécessitent à la fois exploration et action.63> Un agent performant pour les tâches complexes en plusieurs étapes qui nécessitent à la fois exploration et action.

64>64>

65> * **Modèle** : le modèle [`CLAUDE_CODE_SUBAGENT_MODEL`](#choose-a-model) si vous en définissez un et qu'aucun autre mécanisme n'attribue de modèle, sinon le modèle de la conversation principale ; [Choisir un modèle](#choose-a-model) indique l'ordre complet, et [Exécuter tous les sous-agents sur un seul modèle](#run-every-subagent-on-one-model) montre comment faire en sorte que la variable remplace ces sources65> * **Modèle** : le modèle de la conversation parente par défaut, selon l'[ordre des modèles](#choose-a-model)

66> * **Outils** : tous les outils [disponibles pour les sous-agents](#available-tools)66> * **Outils** : tous les outils [disponibles pour les sous-agents](#available-tools)

67> * **Objectif** : recherche complexe, opérations en plusieurs étapes, modifications de code67> * **Objectif** : recherche complexe, opérations en plusieurs étapes, modifications de code

68>68>


346 346 

347### Choisir un modèle347### Choisir un modèle

348 348 

349Le champ `model` contrôle quel modèle le sous-agent utilise :349Par défaut, un sous-agent que vous définissez s'exécute sur le même modèle que la conversation qui le démarre. Pour choisir vous-même son modèle, définissez le champ [`model`](#supported-frontmatter-fields) dans sa définition sur l'une de ces valeurs :

350 350 

351* **Alias de modèle** : utilisez l'un des alias disponibles : `sonnet`, `opus`, `haiku` ou `fable`351* **Alias de modèle** : `sonnet`, `opus`, `haiku` ou `fable`

352* **ID de modèle complet** : utilisez un ID de modèle complet tel que `claude-opus-5-5` ou `claude-sonnet-5`. Accepte les mêmes valeurs que le flag `--model`352* **ID de modèle complet** : une valeur acceptée par le flag [`--model`](https://code.claude.com/docs/fr/cli-reference#cli-flags), telle que `claude-opus-5-5` ou `claude-sonnet-5`

353* **inherit** : utilisez le même modèle que la conversation principale353* **`inherit`** : le modèle de la conversation principale, ou le modèle du sous-agent qui le génère pour un [sous-agent imbriqué](#which-model-a-nested-subagent-runs-on)

354 354 

355Lorsque Claude invoque un sous-agent, il peut également passer un paramètre `model` pour cette invocation spécifique. Lors d'un appel à l'outil Agent, ce paramètre accepte un alias de modèle : `sonnet`, `opus`, `haiku` ou `fable`. Claude ne peut pas passer un ID de modèle complet ni `inherit` lors de cet appel. Claude Code résout le modèle du sous-agent dans cet ordre :355Lorsque plusieurs sources définissent un modèle, Claude Code utilise la première dans cet ordre :

356 356 

3571. Le paramètre `model` par invocation3571. Le paramètre `model` par invocation, que Claude peut passer lorsqu'il démarre le sous-agent. Lors d'un appel à l'outil Agent, le paramètre accepte un alias de modèle, et non un ID de modèle complet ni `inherit`.

3582. Le frontmatter `model` de la définition du sous-agent, où `inherit` sélectionne le modèle de la conversation principale3582. Le champ `model` dans la définition du sous-agent, y compris `inherit`

3593. La variable d'environnement [`CLAUDE_CODE_SUBAGENT_MODEL`](https://code.claude.com/docs/fr/model-config#environment-variables), lorsque vous la définissez sur un alias de modèle ou un ID de modèle3593. La variable d'environnement [`CLAUDE_CODE_SUBAGENT_MODEL`](https://code.claude.com/docs/fr/model-config#environment-variables)

3604. Le modèle de la conversation principale3604. Le modèle de la conversation principale, ou le modèle du sous-agent qui le génère pour un sous-agent imbriqué

361 361 

362Si un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) installé définit un modèle dans son hook [`agent.spawn`](https://code.claude.com/docs/fr/plugins/mods/reference#subagents), Claude Code utilise ce modèle à la place du paramètre par invocation.362Si Claude a passé un alias, le sous-agent conserve cet alias lorsqu'il est [repris ou reçoit un message de suivi](#resume-subagents). Si un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) installé définit un modèle dans son hook [`agent.spawn`](https://code.claude.com/docs/fr/plugins/mods/reference#subagents), Claude Code utilise ce modèle à la place du paramètre par invocation.

363 

364Dans deux cas, un alias de famille tel que `opus` dans le paramètre par invocation ou le frontmatter se résout au modèle de la conversation principale au lieu de la [version vers laquelle l'alias pointe](https://code.claude.com/docs/fr/model-config.md#model-aliases) :

365 

366* **Le modèle de la conversation principale appartient à cette famille** : le sous-agent s'exécute sur le modèle exact de la conversation principale, y compris tout suffixe `[1m]`, donc il obtient la même fenêtre de [contexte étendu](https://code.claude.com/docs/fr/model-config.md#extended-context) que la conversation principale.

367* **Claude Code ne peut pas déterminer la famille du modèle de la conversation principale, sur [un fournisseur autre que l'API Anthropic](https://code.claude.com/docs/fr/third-party-integrations.md)** : cela peut se produire avec un [ARN de profil d'inférence d'application](https://code.claude.com/docs/fr/amazon-bedrock.md#iam-configuration) sur Amazon Bedrock que Claude Code n'a pas résolu à un modèle de support. Ce cas couvre uniquement l'alias `opus`, et ne s'applique pas lorsque vous définissez [`ANTHROPIC_DEFAULT_OPUS_MODEL`](https://code.claude.com/docs/fr/model-config#environment-variables), puisque `opus` se résout alors au modèle que vous définissez.

368 

369Un alias dans `CLAUDE_CODE_SUBAGENT_MODEL` se résout toujours à la version vers laquelle l'alias pointe, même lorsqu'il nomme la famille de la conversation principale. Définir la variable sur `inherit` est identique à la laisser non définie.

370 363 

371Définir `CLAUDE_CODE_SUBAGENT_MODEL` seul ne change pas le modèle sur lequel les sous-agents Explore et Plan intégrés s'exécutent. Pour le changer, consultez [Exécuter chaque sous-agent sur un modèle](#run-every-subagent-on-one-model).364Définir `CLAUDE_CODE_SUBAGENT_MODEL` seul ne change pas le modèle sur lequel les sous-agents Explore et Plan intégrés s'exécutent. Pour le changer, consultez [Exécuter chaque sous-agent sur un modèle](#run-every-subagent-on-one-model).

372 365 

373Avant la v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` venait en premier dans cet ordre et remplaçait à la fois le paramètre par invocation et le frontmatter, y compris `model: inherit`.366#### Sur quel modèle s'exécute un sous-agent imbriqué

374 367 

375Claude Code vérifie le paramètre par invocation, le frontmatter et les valeurs de la variable d'environnement par rapport à la liste d'autorisation [`availableModels`](https://code.claude.com/docs/fr/model-config#restrict-model-selection) de votre organisation. Pour une valeur bloquée, il substitue un autre modèle :368Par défaut, un [sous-agent imbriqué](#let-subagents-spawn-their-own-subagents) que vous définissez s'exécute sur le modèle de son parent, le sous-agent qui l'a généré. Pour exécuter le sous-agent imbriqué sur un autre modèle, définissez son champ `model` sur ce modèle.

376 369 

377* Lorsque la valeur bloquée est un alias de famille tel que `opus`, Claude Code exécute le sous-agent sur la version la plus récente de cette famille que la liste d'autorisation permet, en suivant les mêmes [règles de substitution et portée du fournisseur](https://code.claude.com/docs/fr/model-config.md#restrict-model-selection) que `/model`. Avant la v2.1.222, Claude Code exécutait le sous-agent sur le modèle hérité pour un alias de famille bloqué également.370Par exemple, supposons que votre conversation principale s'exécute sur Opus et démarre un sous-agent de revue sur Haiku. Par défaut, les sous-agents suivants s'exécutent sur Haiku, et non sur Opus, lorsque le sous-agent de revue les génère :

378* Pour toute autre valeur bloquée, sur les fournisseurs où cette substitution ne fonctionne pas, ou lorsque la liste d'autorisation ne permet aucune version de la famille, Claude Code exécute le sous-agent sur le modèle hérité à la place. Si vous définissez `CLAUDE_CODE_SUBAGENT_MODEL`, Claude Code essaie d'abord ce modèle, selon les mêmes règles.

379 371 

380Dans les sessions interactives, Claude Code affiche un avertissement nommant le modèle demandé et le modèle sur lequel le sous-agent s'exécute, pour l'une ou l'autre substitution.372* Un sous-agent avec `model: inherit` ou sans champ `model`

373* Les sous-agents intégrés Explore, Plan et general-purpose

374* Un [fork](#fork-the-current-conversation)

381 375 

382Pour vérifier sur quel modèle un sous-agent s'exécute, exécutez [`/tasks`](https://code.claude.com/docs/fr/commands). Claude Code nomme le modèle sur la ligne du sous-agent, et ajoute le [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level) défini pour ce sous-agent, le cas échéant. Nécessite Claude Code v2.1.242 ou ultérieur.376En mode plan, ces sous-agents s'exécutent sur Opus si vous définissez le modèle de votre session sur [`opusplan`](https://code.claude.com/docs/fr/model-config#opusplan-model-setting), ou sur Sonnet si vous le définissez sur `haiku`.

383 377 

384Un paramètre `model` par invocation s'applique également lorsque le sous-agent est [repris ou reçoit un message de suivi](#resume-subagents), donc le sous-agent reste sur ce modèle.378#### Vérifier le modèle d'un sous-agent

385 379 

386À partir de la v2.1.198, les sous-agents héritent également de la configuration de [réflexion étendue](https://code.claude.com/docs/fr/model-config.md#extended-thinking) de la conversation principale : si la réflexion est activée dans votre session, elle est activée pour le sous-agent, et si elle est désactivée, elle reste désactivée. Il n'y a pas de paramètre de réflexion par sous-agent. Avant la v2.1.198, les sous-agents s'exécutaient avec la réflexion étendue désactivée indépendamment du paramètre de la conversation principale.380Pour vérifier sur quel modèle un sous-agent s'exécute, exécutez [`/tasks`](https://code.claude.com/docs/fr/commands). Claude Code nomme le modèle sur la ligne du sous-agent, et ajoute le [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level) défini pour ce sous-agent, le cas échéant. Nécessite Claude Code v2.1.242 ou ultérieur.

387 381 

388#### Exécuter chaque sous-agent sur un modèle382#### Exécuter chaque sous-agent sur un modèle

389 383 

390`CLAUDE_CODE_SUBAGENT_MODEL` est une valeur par défaut, donc la définition d'un sous-agent ou un modèle que Claude passe a toujours priorité sur elle. Pour appliquer un modèle à chaque sous-agent, [coéquipier](https://code.claude.com/docs/fr/agent-teams.md#specify-teammates-and-models) et [agent de workflow](https://code.claude.com/docs/fr/workflows.md), définissez également `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` sur `1`. Nécessite Claude Code v2.1.257 ou ultérieur.384Pour appliquer un modèle à chaque sous-agent, [coéquipier](https://code.claude.com/docs/fr/agent-teams.md#specify-teammates-and-models) et [agent de workflow](https://code.claude.com/docs/fr/workflows.md), définissez `CLAUDE_CODE_SUBAGENT_MODEL` sur ce modèle et `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` sur `1`. Nécessite Claude Code v2.1.257 ou ultérieur.

391 

392* Si vous définissez les deux variables, les sous-agents s'exécutent sur le modèle dans `CLAUDE_CODE_SUBAGENT_MODEL`.

393* Si vous définissez uniquement `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, les sous-agents s'exécutent sur le modèle de la conversation principale, à ceci près que le sous-agent Explore intégré s'exécute sur le [modèle indiqué pour lui sous Sous-agents intégrés](#built-in-subagents).

394 385 

395Par exemple, pour exécuter chaque sous-agent sur Haiku, définissez les deux variables dans le bloc `env` d'un [fichier de paramètres](https://code.claude.com/docs/fr/settings.md) :386Par exemple, pour exécuter chaque sous-agent sur Haiku, définissez les deux variables dans le bloc `env` d'un [fichier de paramètres](https://code.claude.com/docs/fr/settings.md) :

396 387 


405 396 

406Pour vérifier que le paramètre a pris effet, exécutez [`/tasks`](https://code.claude.com/docs/fr/commands) pendant qu'un sous-agent s'exécute. La ligne du sous-agent affiche le modèle sur lequel il s'exécute.397Pour vérifier que le paramètre a pris effet, exécutez [`/tasks`](https://code.claude.com/docs/fr/commands) pendant qu'un sous-agent s'exécute. La ligne du sous-agent affiche le modèle sur lequel il s'exécute.

407 398 

408Tandis que `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` est [activé](https://code.claude.com/docs/fr/env-vars.md), Claude Code ignore le champ `model` dans les définitions de sous-agent, et Claude ne peut pas passer un modèle lorsqu'il démarre un sous-agent. Ces sous-agents s'exécutent toujours sur le modèle de la conversation principale :399Tandis que `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` est [activé](https://code.claude.com/docs/fr/env-vars.md), Claude Code ignore le champ `model` dans les définitions de sous-agent, et Claude ne peut pas passer un modèle lorsqu'il démarre un sous-agent. Les sous-agents suivants s'exécutent toujours sur le modèle de leur conversation parent :

409 400 

410* Un [fork](#fork-the-current-conversation)401* Un [fork](#fork-the-current-conversation)

411* Un [skill qui s'exécute dans un sous-agent](https://code.claude.com/docs/fr/skills.md#run-skills-in-a-subagent) avec `model: inherit`402* Un [skill qui s'exécute dans un sous-agent](https://code.claude.com/docs/fr/skills.md#run-skills-in-a-subagent) avec `model: inherit`

412 403 

404Si vous définissez uniquement `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, les sous-agents s'exécutent sur le modèle de la conversation principale, à ceci près que le sous-agent Explore intégré s'exécute sur le [modèle indiqué pour lui sous Sous-agents intégrés](#built-in-subagents).

405 

406#### Quelle version un alias de modèle sélectionne

407 

408Par défaut, un sous-agent avec un alias de modèle s'exécute sur la [version vers laquelle l'alias pointe](https://code.claude.com/docs/fr/model-config.md#model-aliases). Avec un alias de famille tel que `opus` dans le champ `model` ou le paramètre par invocation, le sous-agent s'exécute sur le modèle de sa conversation parent dans deux cas :

409 

410* **Même famille** : par exemple, si votre conversation principale s'exécute sur `claude-opus-4-7`, un sous-agent avec `model: opus` s'exécute lui aussi sur cette version. Pour exécuter une autre version, définissez un ID de modèle complet dans le champ `model`.

411* **Famille inconnue** : Claude Code ne peut pas déterminer la famille du modèle parent, par exemple avec un ARN Amazon Bedrock qu'il [ne peut pas rechercher](https://code.claude.com/docs/fr/amazon-bedrock.md#iam-configuration). Ce cas s'applique uniquement à l'alias `opus` sur [un fournisseur autre que l'API Anthropic](https://code.claude.com/docs/fr/third-party-integrations.md). Pour choisir la version d'Opus, définissez [`ANTHROPIC_DEFAULT_OPUS_MODEL`](https://code.claude.com/docs/fr/model-config#environment-variables).

412 

413#### Lorsqu'une liste d'autorisation bloque un modèle de sous-agent

414 

415Si la liste d'autorisation [`availableModels`](https://code.claude.com/docs/fr/model-config#restrict-model-selection) de votre organisation bloque le modèle défini pour un sous-agent, le sous-agent s'exécute sur le premier des modèles suivants qui s'applique :

416 

4171. Pour un alias de famille bloqué, la version autorisée la plus récente de cette famille, sur les [fournisseurs qui prennent en charge cette substitution](https://code.claude.com/docs/fr/model-config.md#restrict-model-selection)

4182. Le modèle dans `CLAUDE_CODE_SUBAGENT_MODEL`, si vous l'avez défini, selon ces mêmes règles

4193. Le modèle de la conversation principale, ou le modèle du sous-agent qui le génère pour un sous-agent imbriqué

420 

421Pour un sous-agent de premier niveau dans une session interactive, un avertissement nomme le modèle demandé et son remplaçant. Pour exécuter un modèle particulier, remplacez la valeur bloquée par une valeur que la liste d'autorisation permet.

422 

423### Réflexion étendue dans les sous-agents

424 

425Les sous-agents héritent de la configuration de [réflexion étendue](https://code.claude.com/docs/fr/model-config.md#extended-thinking) de votre conversation principale. Il n'y a pas de paramètre de réflexion par sous-agent.

426 

413### Choisir un niveau d'effort427### Choisir un niveau d'effort

414 428 

415Pour exécuter un sous-agent à son propre [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level), définissez le champ [`effort`](#supported-frontmatter-fields) dans sa définition.429Pour exécuter un sous-agent à son propre [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level), définissez le champ [`effort`](#supported-frontmatter-fields) dans sa définition.


426 440 

427#### Outils disponibles441#### Outils disponibles

428 442 

429Les sous-agents héritent des [outils intégrés](https://code.claude.com/docs/fr/tools-reference.md) et des outils MCP disponibles dans la conversation principale, réduits par deux filtres : le premier supprime une courte liste d'outils de chaque sous-agent, et le second réduit l'ensemble des outils intégrés pour les sous-agents qui s'exécutent en [arrière-plan](#run-subagents-in-foreground-or-background), ce qui est la valeur par défaut. Sur macOS, Linux et WSL, un sous-agent peut également recevoir les outils Glob et Grep lorsque la conversation principale ne les a pas, comme décrit sous [Comportement de l'outil Glob](https://code.claude.com/docs/fr/tools-reference.md#glob-tool-behavior). Les [forks](#fork-the-current-conversation) ignorent les deux filtres et reçoivent le pool d'outils exact de la conversation principale. Le premier filtre supprime ces outils, même lorsqu'ils sont listés dans le champ `tools` :443Les sous-agents héritent des [outils intégrés](https://code.claude.com/docs/fr/tools-reference.md) et des outils MCP disponibles dans la conversation principale, réduits par deux filtres. Le premier supprime une courte liste d'outils de chaque sous-agent. Le second réduit l'ensemble des outils intégrés pour les sous-agents qui s'exécutent en [arrière-plan](#run-subagents-in-foreground-or-background), ce qui est la valeur par défaut.

444 

445Sur macOS, Linux et WSL, un sous-agent peut également recevoir les outils Glob et Grep lorsque la conversation principale ne les a pas, comme décrit sous [Comportement de l'outil Glob](https://code.claude.com/docs/fr/tools-reference.md#glob-tool-behavior). Les [forks](#fork-the-current-conversation) ignorent les deux filtres et reçoivent le pool d'outils exact de leur conversation parent. Le premier filtre supprime ces outils, même lorsqu'ils sont listés dans le champ `tools` :

430 446 

431* `Agent`, lorsque le sous-agent est à la [limite de profondeur](#let-subagents-spawn-their-own-subagents) ; dans un [fork](#fork-the-current-conversation) l'outil reste listé mais retourne une erreur au lieu de générer447* `Agent`, lorsque le sous-agent est à la [limite de profondeur](#let-subagents-spawn-their-own-subagents) ; dans un [fork](#fork-the-current-conversation) l'outil reste listé mais retourne une erreur au lieu de générer

432* `AskUserQuestion`448* `AskUserQuestion`


1077 1093 

1078Avec cette valeur, vos sous-agents peuvent déléguer à un deuxième niveau qui leur est propre, et ce deuxième niveau ne peut pas déléguer davantage. Définissez `1` pour désactiver l'imbrication.1094Avec cette valeur, vos sous-agents peuvent déléguer à un deuxième niveau qui leur est propre, et ce deuxième niveau ne peut pas déléguer davantage. Définissez `1` pour désactiver l'imbrication.

1079 1095 

1080Un sous-agent imbriqué se configure de la même manière qu'un sous-agent de premier niveau et est résolu à partir des mêmes [portées](#choose-the-subagent-scope). Pour empêcher un sous-agent d'en lancer d'autres alors que l'imbrication est activée, comme un relecteur qui doit rester en lecture seule, omettez `Agent` de sa liste [`tools`](#available-tools) ou ajoutez-le à `disallowedTools`.1096Définissez un sous-agent imbriqué dans les mêmes [portées](#choose-the-subagent-scope) qu'un sous-agent de premier niveau. Par défaut, un sous-agent imbriqué que vous définissez s'exécute sur le [modèle du sous-agent lanceur](#which-model-a-nested-subagent-runs-on). Pour empêcher un sous-agent d'en lancer d'autres alors que l'imbrication est activée, comme un relecteur qui doit rester en lecture seule, omettez `Agent` de sa liste [`tools`](#available-tools) ou ajoutez-le à `disallowedTools`.

1081 1097 

1082Dans le terminal, Claude Code affiche les sous-agents imbriqués sous forme d'arbre dans le panneau des sous-agents situé sous la zone de saisie du prompt et marque chaque ligne qui a encore des descendants dans le panneau avec leur nombre sous la forme `(+N)`. Ouvrez une ligne pour voir les frères et les enfants directs de ce sous-agent, avec un chemin de retour vers `main`.1098Dans le terminal, Claude Code affiche les sous-agents imbriqués sous forme d'arbre dans le panneau des sous-agents situé sous la zone de saisie du prompt et marque chaque ligne qui a encore des descendants dans le panneau avec leur nombre sous la forme `(+N)`. Ouvrez une ligne pour voir les frères et les enfants directs de ce sous-agent, avec un chemin de retour vers `main`.

1083 1099 


1221>1237>

1222> Lorsque [la vue des agents est désactivée](https://code.claude.com/docs/fr/agent-view.md#turn-off-agent-view), `/subtask` n'est pas disponible et `/fork` démarre à la place le sous-agent forké ; sinon, `/fork` copie l'intégralité de la session dans une nouvelle [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md#from-inside-a-session).1238> Lorsque [la vue des agents est désactivée](https://code.claude.com/docs/fr/agent-view.md#turn-off-agent-view), `/subtask` n'est pas disponible et `/fork` démarre à la place le sous-agent forké ; sinon, `/fork` copie l'intégralité de la session dans une nouvelle [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md#from-inside-a-session).

1223 1239 

1224Un fork est un sous-agent qui hérite de l'ensemble de la conversation jusqu'à présent au lieu de repartir de zéro. Cela supprime l'isolation des entrées que les sous-agents offrent habituellement : un fork voit le même prompt système, les mêmes outils, le même modèle et le même historique de messages que la session principale, ce qui vous permet de lui confier une tâche annexe sans réexpliquer la situation. Les appels d'outils du fork restent tout de même en dehors de votre conversation et seul son résultat final vous est renvoyé, de sorte que la fenêtre de contexte principale reste propre. Utilisez un fork lorsque tout autre sous-agent aurait besoin de trop de contexte pour être utile, ou lorsque vous souhaitez essayer plusieurs approches en parallèle à partir du même point de départ.1240Un fork est un sous-agent qui hérite de l'ensemble de la conversation jusqu'à présent au lieu de repartir de zéro. Utilisez un fork lorsque tout autre sous-agent aurait besoin de trop de contexte pour être utile, ou lorsque vous souhaitez essayer plusieurs approches en parallèle à partir du même point de départ.

1241 

1242* **Entrée** : un fork voit le même prompt système, les mêmes outils, le même [modèle](#which-model-a-nested-subagent-runs-on) et le même historique de messages que sa conversation parente

1243* **Sortie** : les propres appels d'outils du fork restent en dehors de sa conversation parente et seul son résultat final est renvoyé

1225 1244 

1226Claude peut démarrer un fork de lui-même tant que le mode fork est activé, ce qui est le cas par défaut. Pour empêcher les forks, consultez [Désactiver le mode fork](#turn-fork-mode-on-or-off).1245Claude peut démarrer un fork de lui-même tant que le mode fork est activé, ce qui est le cas par défaut. Pour empêcher les forks, consultez [Désactiver le mode fork](#turn-fork-mode-on-or-off).

1227 1246 


1257 1276 

1258### Différences entre les forks et les autres sous-agents1277### Différences entre les forks et les autres sous-agents

1259 1278 

1260Un fork hérite de tout ce dont dispose la session principale au moment où il est créé. Tout autre sous-agent repart de zéro à partir de sa définition.

1261 

1262| | Fork | Sous-agent non-fork |1279| | Fork | Sous-agent non-fork |

1263| :- | :- | :- |1280| :- | :- | :- |

1264| Contexte | Historique complet de la conversation | Nouveau contexte avec le prompt que vous transmettez |1281| Contexte | Historique complet de la conversation | Nouveau contexte avec le prompt que vous transmettez |

1265| Prompt système et outils | Identiques à ceux de la session principale | Issus du [fichier de définition](#write-subagent-files) du sous-agent, [filtrés pour les exécutions en arrière-plan](#available-tools) |1282| Prompt système et outils | Identiques à ceux de la conversation parente | Issus du [fichier de définition](#write-subagent-files) du sous-agent, [filtrés pour les exécutions en arrière-plan](#available-tools) |

1266| Modèle | Identique à celui de la session principale | Issu du champ `model` du sous-agent |1283| Modèle | Identique à celui de la [conversation parente](#which-model-a-nested-subagent-runs-on) | Suit l'[ordre de sélection du modèle des sous-agents](#choose-a-model) |

1267| Cache de prompt | Partagé avec la session principale | Cache distinct |1284| Cache de prompt | Partagé avec la conversation parente | Cache distinct |

1268 1285 

1269Comme le prompt système et les définitions d'outils d'un fork sont identiques à ceux du parent, sa première requête réutilise le [cache de prompt](https://code.claude.com/docs/fr/prompt-caching.md#subagents-and-the-cache) du parent. Grâce à cette réutilisation, un fork coûte moins cher qu'un nouveau sous-agent pour les tâches qui nécessitent le même contexte.1286Comme le prompt système et les définitions d'outils d'un fork sont identiques à ceux du parent, sa première requête réutilise le [cache de prompt](https://code.claude.com/docs/fr/prompt-caching.md#subagents-and-the-cache) du parent. Grâce à cette réutilisation, un fork coûte moins cher qu'un nouveau sous-agent pour les tâches qui nécessitent le même contexte.

1270 1287 

workflows.md +1 −1

Details

454* Vérifiez `/model` avant une exécution importante si vous basculez généralement vers un modèle plus petit pour le travail de routine454* Vérifiez `/model` avant une exécution importante si vous basculez généralement vers un modèle plus petit pour le travail de routine

455* Demandez à Claude d'utiliser un modèle plus petit pour les étapes qui n'ont pas besoin du plus fort quand vous décrivez la tâche455* Demandez à Claude d'utiliser un modèle plus petit pour les étapes qui n'ont pas besoin du plus fort quand vous décrivez la tâche

456 456 

457Quand la [liste d'autorisation `availableModels`](https://code.claude.com/docs/fr/model-config#restrict-model-selection) de votre organisation bloque un modèle que le script demande pour un agent, cet agent s'exécute sur un modèle substitué à la place, en suivant les mêmes [règles de substitution que les sous-agents](https://code.claude.com/docs/fr/sub-agents.md#choose-a-model).457Quand la [liste d'autorisation `availableModels`](https://code.claude.com/docs/fr/model-config#restrict-model-selection) de votre organisation bloque un modèle que le script demande pour un agent, cet agent s'exécute sur un modèle substitué à la place, en suivant les mêmes [règles de substitution que les sous-agents](https://code.claude.com/docs/fr/sub-agents.md#when-an-allowlist-blocks-a-subagent-model).

458 458 

459### Définir une directive de taille459### Définir une directive de taille

460 460 

worktrees.md +5 −2

Details

232 232 

233Avec la [base](#choose-the-base-branch) `"fresh"` par défaut, un worktree rouvert se réinitialise à la branche par défaut du dépôt au lieu de continuer à son ancienne pointe quand tous les éléments suivants sont vrais :233Avec la [base](#choose-the-base-branch) `"fresh"` par défaut, un worktree rouvert se réinitialise à la branche par défaut du dépôt au lieu de continuer à son ancienne pointe quand tous les éléments suivants sont vrais :

234 234 

235* Il n'a pas de modifications non validées ou de fichiers non suivis.235* Le [sandbox](https://code.claude.com/docs/fr/sandboxing.md#filesystem-isolation) ne restreint pas les écritures de fichiers dans votre session, et ni les fichiers de paramètres `.claude` du worktree ni ceux de l'extraction principale n'activent le sandbox.

236* Le worktree n'a pas de modifications non commitées ni de fichiers non suivis.

236* Il est toujours sur la branche que Claude Code a créée pour lui.237* Il est toujours sur la branche que Claude Code a créée pour lui.

237* Il n'a pas de commits propres, ou sa demande de tirage ou de fusion a été fusionnée et sa branche distante supprimée.238* Il n'a pas de commits propres, ou sa demande de tirage ou de fusion a été fusionnée et sa branche distante supprimée.

238 239 


240 241 

241Dans tous les autres cas, Claude Code rouvre le worktree à son ancienne pointe :242Dans tous les autres cas, Claude Code rouvre le worktree à son ancienne pointe :

242 243 

243* Le worktree échoue l'une des conditions.244* Le worktree ou la session ne remplit pas l'une des conditions.

244* Claude Code ne peut pas vérifier l'état du worktree.245* Claude Code ne peut pas vérifier l'état du worktree.

245* `worktree.baseRef` est `"head"`.246* `worktree.baseRef` est `"head"`.

246* Le nom est une référence de demande de tirage ou de fusion.247* Le nom est une référence de demande de tirage ou de fusion.

247 248 

249Si vous utilisez le sandbox avec la base `"fresh"`, exécutez `git fetch origin`, puis passez un nouveau nom à `--worktree` pour partir de la dernière version de la branche par défaut.

250 

248### Remplacer la création de worktree par un hook251### Remplacer la création de worktree par un hook

249 252 

250Configurez un hook [`WorktreeCreate`](https://code.claude.com/docs/fr/hooks#worktreecreate) pour remplacer entièrement la logique `git worktree` par défaut, y compris placer les worktrees ailleurs que `.claude/worktrees/`. Pour un exemple complet, voir [Contrôle de version non-git](#non-git-version-control).253Configurez un hook [`WorktreeCreate`](https://code.claude.com/docs/fr/hooks#worktreecreate) pour remplacer entièrement la logique `git worktree` par défaut, y compris placer les worktrees ailleurs que `.claude/worktrees/`. Pour un exemple complet, voir [Contrôle de version non-git](#non-git-version-control).