SpyBara
Go Premium

Documentation 2026-11-09 23:02 UTC to 2026-11-10 21:57 UTC

85 files changed +942 −643. View all changes and history on the product overview
2026
Thu 12 21:00 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

advisor.md +1 −1

Details

160* **Facturation API** : vous payez les tarifs d'entrée et de sortie du modèle advisor pour les tokens advisor160* **Facturation API** : vous payez les tarifs d'entrée et de sortie du modèle advisor pour les tokens advisor

161* **Plans d'abonnement** : l'utilisation de l'advisor compte vers les limites d'utilisation de votre plan, sauf qu'un advisor Fable est facturé aux [crédits d'utilisation](https://code.claude.com/docs/fr/model-config.md#fable-and-usage-credits) sur les plans où l'utilisation de Fable l'est161* **Plans d'abonnement** : l'utilisation de l'advisor compte vers les limites d'utilisation de votre plan, sauf qu'un advisor Fable est facturé aux [crédits d'utilisation](https://code.claude.com/docs/fr/model-config.md#fable-and-usage-credits) sur les plans où l'utilisation de Fable l'est

162 162 

163Si votre compte nécessite le consentement des crédits d'utilisation, un advisor Fable ne facture rien avant que vous le donniez, car Claude Code [n'applique pas la sélection](#fable-advisor-and-usage-credits) jusqu'à ce moment.163Pour savoir comment un advisor Fable fonctionne avec les crédits d'utilisation, consultez [Advisor Fable et crédits d'utilisation](#fable-advisor-and-usage-credits).

164 164 

165Claude appelle l'advisor aux points de décision plutôt que sur chaque tour, donc associer un modèle principal plus rapide avec un advisor plus puissant coûte généralement moins cher que d'exécuter le modèle plus puissant partout. L'utilisation de l'advisor compte vers les totaux de session affichés par [`/usage`](https://code.claude.com/docs/fr/costs#track-your-costs).165Claude appelle l'advisor aux points de décision plutôt que sur chaque tour, donc associer un modèle principal plus rapide avec un advisor plus puissant coûte généralement moins cher que d'exécuter le modèle plus puissant partout. L'utilisation de l'advisor compte vers les totaux de session affichés par [`/usage`](https://code.claude.com/docs/fr/costs#track-your-costs).

166 166 

Details

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

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

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

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

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

252 252 

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

Details

1858 1858 

1859### `TaskStartedMessage`1859### `TaskStartedMessage`

1860 1860 

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

1862 1862 

1863```python theme={null}1863```python theme={null}

1864@dataclass1864@dataclass


1878| `uuid` | `str` | Identifiant de message unique |1878| `uuid` | `str` | Identifiant de message unique |

1879| `session_id` | `str` | Identifiant de session |1879| `session_id` | `str` | Identifiant de session |

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

1881| `task_type` | `str \| None` | Quel type de tâche en arrière-plan : `"local_bash"` pour Bash en arrière-plan et les surveillances Monitor, `"local_agent"`, ou `"remote_agent"` |1881| `task_type` | `str \| None` | Quel type de tâche en arrière-plan, comme `"local_bash"` pour Bash en arrière-plan et les surveillances Monitor, `"local_agent"` pour les sous-agents, `"mcp_task"` pour les [appels d'outils MCP en arrière-plan](https://code.claude.com/docs/fr/mcp.md#automatic-backgrounding-of-long-tool-calls), ou `"remote_agent"` |

1882 1882 

1883### `TaskUsage`1883### `TaskUsage`

1884 1884 

Details

10 10 

11Pour une sécurité de type complète, utilisez [Zod](#type-safe-schemas-with-zod-and-pydantic) (TypeScript) ou [Pydantic](#type-safe-schemas-with-zod-and-pydantic) (Python) pour définir votre schéma et obtenir des objets fortement typés en retour.11Pour une sécurité de type complète, utilisez [Zod](#type-safe-schemas-with-zod-and-pydantic) (TypeScript) ou [Pydantic](#type-safe-schemas-with-zod-and-pydantic) (Python) pour définir votre schéma et obtenir des objets fortement typés en retour.

12 12 

13## Pourquoi les sorties structurées ?13## Pourquoi des sorties structurées ?

14 14 

15Les agents retournent du texte libre par défaut, ce qui fonctionne pour le chat mais pas quand vous avez besoin d'utiliser la sortie par programmation. Les sorties structurées vous donnent des données typées que vous pouvez passer directement à votre logique d'application, base de données ou composants UI.15Par défaut, les agents renvoient du texte libre, ce qui convient au chat, mais pas lorsque vous devez exploiter la sortie de manière programmatique. Les sorties structurées vous fournissent des données typées que vous pouvez transmettre directement à la logique de votre application, à votre base de données ou à vos composants d'interface utilisateur.

16 16 

17Considérez une application de recettes où un agent recherche sur le web et ramène des recettes. Sans sorties structurées, vous obtenez du texte libre que vous devriez analyser vous-même. Avec les sorties structurées, vous définissez la forme que vous souhaitez et obtenez des données typées que vous pouvez utiliser directement dans votre application.17Prenons l'exemple d'une application de recettes dans laquelle un agent effectue des recherches sur le web et renvoie des recettes. Sans sorties structurées, vous obtenez du texte libre que vous devez analyser vous-même. Avec les sorties structurées, vous définissez la forme souhaitée et obtenez des données typées que vous pouvez utiliser directement dans votre application.

18 18 

19> [accordion] Sans sorties structurées19> [accordion] Sans sorties structurées

20>20>

21> ```text theme={null}21> ```text theme={null}

22> Voici une recette classique de biscuits aux pépites de chocolat !22> Here's a classic chocolate chip cookie recipe!

23>23>

24> **Biscuits aux pépites de chocolat**24> **Chocolate Chip Cookies**

25> Temps de préparation : 15 minutes | Temps de cuisson : 10 minutes25> Prep time: 15 minutes | Cook time: 10 minutes

26>26>

27> Ingrédients :27> Ingredients:

28> - 2 1/4 tasses de farine tout usage28> - 2 1/4 cups all-purpose flour

29> - 1 tasse de beurre, ramolli29> - 1 cup butter, softened

30> ...30> ...

31> ```31> ```

32>32>

33> Pour utiliser ceci dans votre application, vous devriez analyser le titre, convertir ' 15 minutes ' en nombre, séparer les ingrédients des instructions et gérer le formatage incohérent entre les réponses.33> Pour utiliser ce résultat dans votre application, vous devriez extraire le titre, convertir « 15 minutes » en nombre, séparer les ingrédients des instructions et gérer les incohérences de mise en forme d'une réponse à l'autre.

34 34 

35> [accordion] Avec sorties structurées35> [accordion] Avec sorties structurées

36>36>

37> ```jsonc theme={null}37> ```jsonc theme={null}

38> {38> {

39> "name": "Biscuits aux pépites de chocolat",39> "name": "Chocolate Chip Cookies",

40> "prep_time_minutes": 15,40> "prep_time_minutes": 15,

41> "cook_time_minutes": 10,41> "cook_time_minutes": 10,

42> "ingredients": [42> "ingredients": [

43> { "item": "farine tout usage", "amount": 2.25, "unit": "tasses" },43> { "item": "all-purpose flour", "amount": 2.25, "unit": "cups" },

44> { "item": "beurre, ramolli", "amount": 1, "unit": "tasse" }44> { "item": "butter, softened", "amount": 1, "unit": "cup" }

45> // ...45> // ...

46> ],46> ],

47> "steps": ["Préchauffer le four à 375°F", "Mélanger le beurre et le sucre" /* ... */]47> "steps": ["Preheat oven to 375°F", "Cream butter and sugar" /* ... */]

48> }48> }

49> ```49> ```

50>50>

51> Des données typées que vous pouvez utiliser directement dans votre UI.51> Des données typées que vous pouvez utiliser directement dans votre interface utilisateur.

52 52 

53## Démarrage rapide53## Démarrage rapide

54 54 


81 }81 }

82 })) {82 })) {

83 // Le message de résultat contient structured_output avec des données validées83 // Le message de résultat contient structured_output avec des données validées

84 if (message.type === "result" && message.subtype === "success" && message.structured_output) {84 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

85 console.log(message.structured_output);85 console.log(message.structured_output);

86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }86 // { company_name: "Anthropic", founded_year: 2021, headquarters: "San Francisco, CA" }

87 }87 }


118 ),118 ),

119 ):119 ):

120 # Le message de résultat contient structured_output avec des données validées120 # Le message de résultat contient structured_output avec des données validées

121 if isinstance(message, ResultMessage) and message.structured_output:121 if (

122 isinstance(message, ResultMessage)

123 and not message.is_error

124 and message.structured_output

125 ):

122 print(message.structured_output)126 print(message.structured_output)

123 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}127 # {'company_name': 'Anthropic', 'founded_year': 2021, 'headquarters': 'San Francisco, CA'}

124 except Exception as error:128 except Exception as error:


173 }177 }

174 }178 }

175 })) {179 })) {

176 if (message.type === "result" && message.subtype === "success" && message.structured_output) {180 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

177 // Valider et obtenir un résultat entièrement typé181 // Valider et obtenir un résultat entièrement typé

178 const parsed = FeaturePlan.safeParse(message.structured_output);182 const parsed = FeaturePlan.safeParse(message.structured_output);

179 if (parsed.success) {183 if (parsed.success) {


223 }227 }

224 ),228 ),

225 ):229 ):

226 if isinstance(message, ResultMessage) and message.structured_output:230 if (

231 isinstance(message, ResultMessage)

232 and not message.is_error

233 and message.structured_output

234 ):

227 # Valider et obtenir un résultat entièrement typé235 # Valider et obtenir un résultat entièrement typé

228 plan = FeaturePlan.model_validate(message.structured_output)236 plan = FeaturePlan.model_validate(message.structured_output)

229 print(f"Feature: {plan.feature_name}")237 print(f"Feature: {plan.feature_name}")


297 }305 }

298 }306 }

299 })) {307 })) {

300 if (message.type === "result" && message.subtype === "success" && message.structured_output) {308 if (message.type === "result" && message.subtype === "success" && !message.is_error && message.structured_output) {

301 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };309 const data = message.structured_output as { total_count: number; todos: Array<{ file: string; line: number; text: string; author?: string; date?: string }> };

302 console.log(`Found ${data.total_count} TODOs`);310 console.log(`Found ${data.total_count} TODOs`);

303 data.todos.forEach((todo) => {311 data.todos.forEach((todo) => {


352 output_format={"type": "json_schema", "schema": todo_schema}360 output_format={"type": "json_schema", "schema": todo_schema}

353 ),361 ),

354 ):362 ):

355 if isinstance(message, ResultMessage) and message.structured_output:363 if (

364 isinstance(message, ResultMessage)

365 and not message.is_error

366 and message.structured_output

367 ):

356 data = message.structured_output368 data = message.structured_output

357 print(f"Found {data['total_count']} TODOs")369 print(f"Found {data['total_count']} TODOs")

358 for todo in data["todos"]:370 for todo in data["todos"]:


383 395 

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

385 397 

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

387 399 

388| Subtype | Signification |400| Subtype | Signification |

389| - | - |401| - | - |

390| `success` | La sortie a été générée et validée avec succès |402| `success` | L'exécution s'est terminée sans subtype d'erreur |

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

392 404 

393Un résultat peut aussi se terminer avec le subtype `success` mais sans valeur `structured_output`, par exemple quand l'exécution se termine sans que l'agent produise une sortie structurée. Traitez ce cas comme un échec aussi. L'entrée de dépannage [structured\_output is None but the result says success](https://code.claude.com/docs/fr/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success) couvre ce cas. L'exemple ci-dessous traite un résultat comme réussi uniquement quand le `subtype` est `success` et `structured_output` est présent, et gère tous les autres résultats comme un échec :405Un subtype `success` ne signifie pas à lui seul que l'exécution a produit une réponse. Traitez un résultat comme un échec quand le champ `is_error` du résultat vaut `true` ou que `structured_output` est absent :

406 

407* **`is_error` vaut `true` sur le résultat** : par exemple, la dernière requête au modèle s'est terminée par une erreur d'API ou un refus. N'utilisez pas la valeur `structured_output` d'un tel résultat.

408* **`structured_output` est absent** : pour en trouver la cause, consultez [structured\_output is None but the result says success](https://code.claude.com/docs/fr/agent-sdk/troubleshooting.md#structured_output-is-none-but-the-result-says-success)

409 

410L'exemple ci-dessous applique ces vérifications :

394 411 

395```typescript TypeScript theme={null}412```typescript TypeScript theme={null}

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


415 }432 }

416 })) {433 })) {

417 if (msg.type === "result") {434 if (msg.type === "result") {

418 if (msg.subtype === "success" && msg.structured_output) {435 if (msg.subtype === "success" && !msg.is_error && msg.structured_output) {

419 // Utiliser la sortie validée436 // Utiliser la sortie validée

420 console.log(msg.structured_output);437 console.log(msg.structured_output);

421 } else if (msg.subtype === "error_max_structured_output_retries") {438 } else if (msg.subtype === "error_max_structured_output_retries") {

422 console.error("Could not produce valid output");439 console.error("Could not produce valid output");

423 } else {440 } else {

424 console.error("Run ended without a structured output");441 console.error("Run ended with an error or without a structured output");

425 }442 }

426 }443 }

427 }444 }


456 ),473 ),

457 ):474 ):

458 if isinstance(message, ResultMessage):475 if isinstance(message, ResultMessage):

459 if message.subtype == "success" and message.structured_output:476 if (

477 message.subtype == "success"

478 and not message.is_error

479 and message.structured_output

480 ):

460 # Utiliser la sortie validée481 # Utiliser la sortie validée

461 print(message.structured_output)482 print(message.structured_output)

462 elif message.subtype == "error_max_structured_output_retries":483 elif message.subtype == "error_max_structured_output_retries":

463 print("Could not produce valid output")484 print("Could not produce valid output")

464 else:485 else:

465 print("Run ended without a structured output")486 print("Run ended with an error or without a structured output")

466 except Exception as error:487 except Exception as error:

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

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

Details

142 142 

143Un message de résultat peut se terminer par `subtype: "success"` tandis que `structured_output` est `None` en Python ou `undefined` en TypeScript. L'exécution se termine, mais aucune sortie validée n'existe.143Un message de résultat peut se terminer par `subtype: "success"` tandis que `structured_output` est `None` en Python ou `undefined` en TypeScript. L'exécution se termine, mais aucune sortie validée n'existe.

144 144 

145Traitez ce résultat comme un échec dans le code d'application. Vérifiez à la fois que `subtype` est `success` et que `structured_output` est présent avant de l'utiliser. La section [Gestion des erreurs](https://code.claude.com/docs/fr/agent-sdk/structured-outputs.md#error-handling) montre ce modèle pour les deux SDK. Vérifiez ensuite les causes suivantes :145Traitez ce résultat comme un échec dans le code d'application. La section [Gestion des erreurs](https://code.claude.com/docs/fr/agent-sdk/structured-outputs.md#error-handling) montre ce modèle pour les deux SDK. Vérifiez ensuite les causes suivantes :

146 146 

147* **Une requête que Claude a refusée** : pour détecter ce cas dans votre code, vérifiez si le `stop_reason` du message de résultat vaut `"refusal"`. Pour savoir quoi essayer ensuite, consultez [Refus au titre de la politique d'utilisation](https://code.claude.com/docs/fr/errors.md#usage-policy-refusal).147* **Une requête que Claude a refusée** : pour détecter ce cas dans votre code, vérifiez si le `stop_reason` du message de résultat vaut `"refusal"`. Pour savoir quoi essayer ensuite, consultez [Refus au titre de la politique d'utilisation](https://code.claude.com/docs/fr/errors.md#usage-policy-refusal).

148* **Un schéma qu'aucune sortie ne peut satisfaire** : par exemple, une chaîne dont la `minLength` est supérieure à sa `maxLength`. Si `structured_output` est absent à plusieurs reprises avec un schéma que vous croyez correct, recherchez des contraintes qui se contredisent. Si vous n'en trouvez aucune, simplifiez le schéma jusqu'à ce que les sorties se valident, puis réintroduisez vos contraintes une à la fois.148* **Un schéma qu'aucune sortie ne peut satisfaire** : par exemple, une chaîne dont la `minLength` est supérieure à sa `maxLength`. Si `structured_output` est absent à plusieurs reprises avec un schéma que vous croyez correct, recherchez des contraintes qui se contredisent. Si vous n'en trouvez aucune, simplifiez le schéma jusqu'à ce que les sorties se valident, puis réintroduisez vos contraintes une à la fois.

Details

1923| `extra_usage_disabled` | Les crédits d'utilisation sont désactivés pour le compte |1923| `extra_usage_disabled` | Les crédits d'utilisation sont désactivés pour le compte |

1924| `network_error` | La [vérification de disponibilité](https://code.claude.com/docs/fr/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) n'a pas pu atteindre `api.anthropic.com` |1924| `network_error` | La [vérification de disponibilité](https://code.claude.com/docs/fr/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) n'a pas pu atteindre `api.anthropic.com` |

1925| `unknown` | Claude Code n'a pas pu déterminer la disponibilité |1925| `unknown` | Claude Code n'a pas pu déterminer la disponibilité |

1926| `not_first_party` | La session utilise un fournisseur autre que l'API Anthropic |1926| `not_first_party` | La session utilise un fournisseur qui ne propose pas le mode rapide |

1927| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/fr/env-vars) est défini |1927| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/fr/env-vars) est défini, ou la région du modèle sur [l'Agent Platform de Google Cloud](https://code.claude.com/docs/fr/fast-mode.md#use-fast-mode-on-agent-platform) ne propose pas le mode rapide |

1928| `model_not_allowed` | Le modèle Opus du mode rapide ne figure pas dans la liste d'autorisation [`availableModels`](https://code.claude.com/docs/fr/model-config#restrict-model-selection) de l'organisation |1928| `model_not_allowed` | Le modèle du mode rapide ne figure pas dans la liste d'autorisation [`availableModels`](https://code.claude.com/docs/fr/model-config#restrict-model-selection) de l'organisation, ou le fournisseur a refusé le mode rapide pour le modèle de la session |

1929| `sdk_opt_in_required` | La session n'a pas opté pour le mode rapide : passez `fastMode: true` dans l'option [`settings`](#options) ou via [`applyFlagSettings()`](#applyflagsettings) |1929| `sdk_opt_in_required` | La session n'a pas opté pour le mode rapide : passez `fastMode: true` dans l'option [`settings`](#options) ou via [`applyFlagSettings()`](#applyflagsettings) |

1930| `pending` | La vérification de disponibilité n'a pas encore été complétée |1930| `pending` | La vérification de disponibilité n'a pas encore été complétée |

1931 1931 


2007 2007 

2008#### `startup_failure_reason`2008#### `startup_failure_reason`

2009 2009 

2010Pourquoi Claude Code a refusé de démarrer, pour que votre application puisse proposer la correction au lieu d'une nouvelle tentative. Claude Code le définit sur le résultat `error_during_execution` qu'il écrit avant de quitter sur une défaillance de démarrage connue. Ce résultat porte des totaux mis à zéro, et son tableau `errors` porte le même texte que stderr. Le champ est absent sur tous les autres résultats. Nécessite Agent SDK v0.3.274 ou ultérieur.2010La raison pour laquelle Claude Code a refusé de démarrer, afin que votre application puisse proposer le correctif plutôt qu'une nouvelle tentative. Claude Code le définit sur le résultat `error_during_execution` qu'il écrit avant de quitter en cas d'échec de démarrage connu. Ce résultat porte des totaux remis à zéro, et son tableau `errors` contient le message d'échec. Le champ est absent de tous les autres résultats. Nécessite Agent SDK v0.3.274 ou ultérieur.

2011 2011 

2012Définissez `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` à `1` dans [`env`](#options) pour recevoir ce résultat pour chaque valeur `SDKStartupFailureReason`. Sans cette variable, Claude Code écrit le résultat uniquement pour ces défaillances, et les autres se terminent par une sortie stderr, un code de sortie non nul et aucun message de résultat :2012Définissez `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` à `1` dans [`env`](#options) pour recevoir ce résultat pour chaque valeur `SDKStartupFailureReason`. Sans cette variable, Claude Code écrit le résultat uniquement pour ces défaillances, et les autres se terminent par une sortie stderr, un code de sortie non nul et aucun message de résultat :

2013 2013 


5711 5711 

5712### `SDKTaskStartedMessage`5712### `SDKTaskStartedMessage`

5713 5713 

5714Émis lorsqu'une tâche commence. Le champ `task_type` vaut `"local_bash"` pour les commandes Bash et les surveillances [Monitor](#monitor), `"local_agent"` pour les sous-agents, ou `"remote_agent"`.5714Émis lorsqu'une tâche commence. `task_type` nomme le type de tâche, par exemple `"local_bash"` pour les commandes Bash et les surveillances [Monitor](#monitor), `"local_agent"` pour les sous-agents, `"mcp_task"` pour les [appels d'outils MCP en arrière-plan](https://code.claude.com/docs/fr/mcp.md#automatic-backgrounding-of-long-tool-calls), ou `"remote_agent"`.

5715 5715 

5716```typescript theme={null}5716```typescript theme={null}

5717type SDKTaskStartedMessage = {5717type SDKTaskStartedMessage = {


5920 errorCode?: "credits_required";5920 errorCode?: "credits_required";

5921 canUserPurchaseCredits?: boolean;5921 canUserPurchaseCredits?: boolean;

5922 hasChargeableSavedPaymentMethod?: boolean;5922 hasChargeableSavedPaymentMethod?: boolean;

5923 overageEnabled?: boolean;

5923 };5924 };

5924 uuid: UUID;5925 uuid: UUID;

5925 session_id: string;5926 session_id: string;


5928 5929 

5929Lorsque `errorCode` vaut `"credits_required"`, le refus provient d'un abonnement claude.ai dont l'utilisation incluse est épuisée, et la session ne peut pas continuer tant que l'utilisateur n'a pas acheté de crédits d'utilisation. `canUserPurchaseCredits` indique si l'utilisateur authentifié peut acheter des crédits pour le compte, et `hasChargeableSavedPaymentMethod` indique si un moyen de paiement est enregistré. Les trois champs sont absents des événements de limite de débit qui ne sont pas des refus pour crédits requis. Nécessite Claude Code v2.1.181 ou ultérieur.5930Lorsque `errorCode` vaut `"credits_required"`, le refus provient d'un abonnement claude.ai dont l'utilisation incluse est épuisée, et la session ne peut pas continuer tant que l'utilisateur n'a pas acheté de crédits d'utilisation. `canUserPurchaseCredits` indique si l'utilisateur authentifié peut acheter des crédits pour le compte, et `hasChargeableSavedPaymentMethod` indique si un moyen de paiement est enregistré. Les trois champs sont absents des événements de limite de débit qui ne sont pas des refus pour crédits requis. Nécessite Claude Code v2.1.181 ou ultérieur.

5930 5931 

5932Lors d'un avertissement concernant une limite d'utilisation du forfait, où `status` vaut `"allowed_warning"`, `overageEnabled` indique si les [crédits d'utilisation](https://code.claude.com/docs/fr/costs.md#add-usage-credits-to-your-subscription) sont activés pour le compte. Nécessite Claude Code v2.1.295 ou ultérieur.

5933 

5931### `SDKLocalCommandOutputMessage`5934### `SDKLocalCommandOutputMessage`

5932 5935 

5933Claude Code n'émet pas ce type de message. Lorsque vous envoyez une commande comme `/context` ou `/usage` en tant que prompt, sa sortie arrive sous forme de [`SDKAssistantMessage`](#sdkassistantmessage).5936Claude Code n'émet pas ce type de message. Lorsque vous envoyez une commande comme `/context` ou `/usage` en tant que prompt, sa sortie arrive sous forme de [`SDKAssistantMessage`](#sdkassistantmessage).

Details

647 647 

648 648 

649def parse_response(response: str, options: list) -> str:649def parse_response(response: str, options: list) -> str:

650 """Analyser l'entrée utilisateur comme numéro(s) d'option ou texte libre."""650 """Parse user input as option number(s) or free text."""

651 try:651 try:

652 indices = [int(s.strip()) - 1 for s in response.split(",")]652 indices = [int(s.strip()) - 1 for s in response.split(",")]

653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]653 labels = [options[i]["label"] for i in indices if 0 <= i < len(options)]


657 657 

658 658 

659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:659async def handle_ask_user_question(input_data: dict) -> PermissionResultAllow:

660 """Afficher les questions de Claude et collecter les réponses de l'utilisateur."""660 """Display Claude's questions and collect user answers."""

661 answers = {}661 answers = {}

662 662 

663 for q in input_data.get("questions", []):663 for q in input_data.get("questions", []):

agent-teams.md +11 −11

Details

8 8 

9> [!WARNING]9> [!WARNING]

10>10>

11> Les équipes d'agents sont expérimentales et désactivées par défaut. Activez-les en définissant `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` dans votre [settings.json](https://code.claude.com/docs/fr/settings.md) ou environnement. Sans cette variable, aucune équipe n'est configurée au démarrage de la session, aucun répertoire d'équipe n'est écrit, et Claude ne crée pas ou ne propose pas de coéquipiers. Les équipes d'agents ont des [limitations connues](#limitations) concernant la reprise de session, la coordination des tâches et le comportement d'arrêt.11> Les équipes d'agents sont expérimentales et désactivées par défaut. Activez-les en définissant `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` dans votre [settings.json](https://code.claude.com/docs/fr/settings.md) ou environnement. Les équipes d'agents ont des [limitations connues](#limitations) concernant la reprise de session, la coordination des tâches et le comportement d'arrêt.

12 12 

13Les équipes d'agents vous permettent de coordonner plusieurs instances Claude Code travaillant ensemble. Une session agit comme chef d'équipe, coordonnant le travail, assignant des tâches et synthétisant les résultats. Les coéquipiers travaillent indépendamment, chacun dans sa propre fenêtre de contexte, et communiquent directement les uns avec les autres. Vous pouvez également parler directement à n'importe quel coéquipier sans passer par le chef.13Les équipes d'agents vous permettent de coordonner plusieurs instances Claude Code travaillant ensemble. Une session agit comme chef d'équipe, coordonnant le travail, assignant des tâches et synthétisant les résultats. Les coéquipiers travaillent indépendamment, chacun dans sa propre fenêtre de contexte, et communiquent directement les uns avec les autres. Vous pouvez également parler directement à n'importe quel coéquipier sans passer par le chef.

14 14 


227 227 

228Pour démarrer une équipe, demandez à Claude des coéquipiers. Claude lance un coéquipier lorsqu'il appelle l'[outil Agent](https://code.claude.com/docs/fr/tools-reference.md) avec un [`name`](https://code.claude.com/docs/fr/sub-agents#subagent-names) tandis que les équipes d'agents sont activées, sauf si l'appel est un [fork](https://code.claude.com/docs/fr/sub-agents.md#fork-the-current-conversation) ou passe `isolation` sur l'appel lui-même. Claude Code ne vous demande pas de confirmer le lancement.228Pour démarrer une équipe, demandez à Claude des coéquipiers. Claude lance un coéquipier lorsqu'il appelle l'[outil Agent](https://code.claude.com/docs/fr/tools-reference.md) avec un [`name`](https://code.claude.com/docs/fr/sub-agents#subagent-names) tandis que les équipes d'agents sont activées, sauf si l'appel est un [fork](https://code.claude.com/docs/fr/sub-agents.md#fork-the-current-conversation) ou passe `isolation` sur l'appel lui-même. Claude Code ne vous demande pas de confirmer le lancement.

229 229 

230Claude nomme également les subagents ordinaires de lui-même afin de pouvoir les contacter ultérieurement. Ces appels suivent la même règle, de sorte que les équipes peuvent se former même si vous n'en aviez pas demandé une. Si vous préférez les subagents, [désactivez les équipes d'agents](#claude-spawns-teammates-instead-of-subagents).230Claude nomme également les sous-agents ordinaires de lui-même afin de pouvoir les contacter ultérieurement. Ces appels suivent la même règle, de sorte que les équipes peuvent se former même si vous n'en aviez pas demandé une. Si vous préférez les sous-agents, [désactivez les équipes d'agents](#claude-spawns-teammates-instead-of-subagents).

231 231 

232### Architecture232### Architecture

233 233 


255 255 

256La configuration d'équipe contient l'état d'exécution tel que les ID de session et les ID de volet tmux, donc ne l'éditez pas à la main ou ne la pré-créez pas : vos modifications sont écrasées lors de la prochaine mise à jour d'état.256La configuration d'équipe contient l'état d'exécution tel que les ID de session et les ID de volet tmux, donc ne l'éditez pas à la main ou ne la pré-créez pas : vos modifications sont écrasées lors de la prochaine mise à jour d'état.

257 257 

258Pour définir des rôles de coéquipiers réutilisables, utilisez plutôt les [définitions de subagents](#use-subagent-definitions-for-teammates).258Pour définir des rôles de coéquipiers réutilisables, utilisez plutôt les [définitions de sous-agents](#use-subagent-definitions-for-teammates).

259 259 

260La configuration d'équipe contient un tableau `members` avec le nom et l'ID d'agent de chaque coéquipier. L'entrée du chef porte toujours le type d'agent `team-lead`. L'entrée d'un coéquipier porte le type d'agent que le chef a nommé lors de son lancement, qu'il s'agisse d'un [type intégré](https://code.claude.com/docs/fr/sub-agents.md#built-in-subagents) ou d'une [définition de subagent](#use-subagent-definitions-for-teammates), et omet le champ lorsque le chef n'en a nommé aucun. Les coéquipiers peuvent lire ce fichier pour découvrir les autres membres de l'équipe.260La configuration d'équipe contient un tableau `members` avec le nom et l'ID d'agent de chaque membre. L'entrée du chef porte toujours le type d'agent `team-lead`. L'entrée d'un coéquipier porte le type d'agent que le chef a nommé lors de son lancement, qu'il s'agisse d'un [type intégré](https://code.claude.com/docs/fr/sub-agents.md#built-in-subagents) ou d'une [définition de sous-agent](#use-subagent-definitions-for-teammates), et omet le champ lorsque le chef n'en a nommé aucun. Les coéquipiers peuvent lire ce fichier pour découvrir les autres membres de l'équipe.

261 261 

262Il n'y a pas d'équivalent au niveau du projet de la configuration d'équipe. Un fichier comme `.claude/teams/teams.json` dans votre répertoire de projet n'est pas reconnu comme configuration ; Claude le traite comme un fichier ordinaire.262Il n'y a pas d'équivalent au niveau du projet de la configuration d'équipe. Un fichier comme `.claude/teams/teams.json` dans votre répertoire de projet n'est pas reconnu comme configuration ; Claude le traite comme un fichier ordinaire.

263 263 

264### Utiliser les définitions de subagents pour les coéquipiers264### Utiliser les définitions de sous-agents pour les coéquipiers

265 265 

266Lors de la génération d'un coéquipier dans l'un ou l'autre mode d'affichage, vous pouvez référencer un type de [sous-agent](https://code.claude.com/docs/fr/sub-agents.md) de la [portée de sous-agent](https://code.claude.com/docs/fr/sub-agents.md#choose-the-subagent-scope) projet, utilisateur, gérée ou plugin. Cela vous permet de définir un rôle une fois, comme un examinateur de sécurité ou un exécuteur de tests, et de le réutiliser à la fois comme sous-agent délégué et comme coéquipier d'équipe d'agents.266Lors de la génération d'un coéquipier dans l'un ou l'autre mode d'affichage, vous pouvez référencer un type de [sous-agent](https://code.claude.com/docs/fr/sub-agents.md) de la [portée de sous-agent](https://code.claude.com/docs/fr/sub-agents.md#choose-the-subagent-scope) projet, utilisateur, gérée ou plugin. Cela vous permet de définir un rôle une fois, comme un examinateur de sécurité ou un exécuteur de tests, et de le réutiliser à la fois comme sous-agent délégué et comme coéquipier d'équipe d'agents.

267 267 

268Pour utiliser une définition de subagent, nommez-la lorsque vous demandez à Claude de lancer le coéquipier :268Pour utiliser une définition de sous-agent, nommez-la lorsque vous demandez à Claude de lancer le coéquipier :

269 269 

270```text wrap theme={null}270```text wrap theme={null}

271Spawn a teammate using the security-reviewer agent type to audit the auth module.271Spawn a teammate using the security-reviewer agent type to audit the auth module.

272```272```

273 273 

274Claude Code lit la définition de subagent que vous avez nommée et applique ces parties à ce coéquipier. Lorsqu'une partie dépend du [mode d'affichage](#choose-a-display-mode) du coéquipier, l'entrée le précise :274Claude Code lit la définition de sous-agent que vous avez nommée et applique ces parties à ce coéquipier. Lorsqu'une partie dépend du [mode d'affichage](#choose-a-display-mode) du coéquipier, l'entrée le précise :

275 275 

276* **`tools`** : Claude Code limite le coéquipier aux outils de la liste `tools` de la définition. Pour un coéquipier en processus, Claude Code ajoute `SendMessage` à cette liste, et dans une [session qui dispose des outils Task](https://code.claude.com/docs/fr/tools-reference.md#task-tool-availability) il ajoute également `TaskCreate`, `TaskGet`, `TaskList` et `TaskUpdate`.276* **`tools`** : Claude Code limite le coéquipier aux outils de la liste `tools` de la définition. Pour un coéquipier en processus, Claude Code ajoute `SendMessage` à cette liste, et dans une [session qui dispose des outils Task](https://code.claude.com/docs/fr/tools-reference.md#task-tool-availability) il ajoute également `TaskCreate`, `TaskGet`, `TaskList` et `TaskUpdate`.

277* **`model`** : Claude Code utilise le `model` de la définition dans l'un ou l'autre mode d'affichage lorsque votre prompt de lancement n'en nomme pas un. Consultez [comment Claude Code choisit le modèle d'un coéquipier](#specify-teammates-and-models).277* **`model`** : Claude Code utilise le `model` de la définition dans l'un ou l'autre mode d'affichage lorsque votre prompt de lancement n'en nomme pas un. Consultez [comment Claude Code choisit le modèle d'un coéquipier](#specify-teammates-and-models).


307 307 

308#### Messages entre agents308#### Messages entre agents

309 309 

310Lorsqu'un agent envoie un message à un autre via `SendMessage`, Claude Code indique à l'agent destinataire que le message provient d'une autre session Claude, et non de vous. Un coéquipier ne peut pas approuver une invite de permission ou fournir un consentement en votre nom, et un coéquipier auquel une action a été refusée ne peut pas la relayer à un autre coéquipier pour contourner la vérification. Les mêmes règles s'appliquent à un message qui arrive de [l'une de vos autres sessions Claude Code](https://code.claude.com/docs/fr/cross-session-messaging.md#how-a-session-treats-an-incoming-message), en dehors de l'équipe entièrement.310Lorsqu'un agent envoie un message à un autre via `SendMessage`, Claude Code indique à l'agent destinataire que le message provient d'une autre session Claude, et non de vous. Un coéquipier ne peut pas approuver une demande de permission ou fournir un consentement en votre nom, et un coéquipier auquel une action a été refusée ne peut pas la relayer à un autre coéquipier pour contourner la vérification. Les mêmes règles s'appliquent à un message qui arrive de [l'une de vos autres sessions Claude Code](https://code.claude.com/docs/fr/cross-session-messaging.md#how-a-session-treats-an-incoming-message), en dehors de l'équipe entièrement.

311 311 

312En [mode automatique](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode), le classificateur applique deux vérifications aux messages entre agents :312En [mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode), le classifieur applique deux vérifications aux messages entre agents :

313 313 

314* Il traite une approbation relayée par un autre agent comme une entrée non fiable plutôt que comme une confirmation de votre part.314* Il traite une approbation relayée par un autre agent comme une entrée non fiable plutôt que comme une confirmation de votre part.

315* Il examine chaque message avant que Claude Code ne le livre, qu'il s'agisse d'un message brut ou d'un message de protocole structuré tel qu'une demande d'arrêt ou une réponse d'approbation de plan. Un message qu'il bloque n'atteint jamais le destinataire.315* Il examine chaque message avant que Claude Code ne le livre, qu'il s'agisse d'un message brut ou d'un message de protocole structuré tel qu'une demande d'arrêt ou une réponse d'approbation de plan. Un message qu'il bloque n'atteint jamais le destinataire.


331 331 

332### Utilisation des tokens332### Utilisation des tokens

333 333 

334Les équipes d'agents utilisent considérablement plus de tokens qu'une seule session. Chaque coéquipier a sa propre fenêtre de contexte, et l'utilisation des tokens augmente avec le nombre de coéquipiers actifs. Pour la recherche, l'examen et le travail sur les nouvelles fonctionnalités, les tokens supplémentaires en valent généralement la peine. Pour les tâches de routine, une seule session est plus rentable. Consultez les [coûts des tokens des équipes d'agents](https://code.claude.com/docs/fr/costs.md#agent-team-token-costs) pour les conseils d'utilisation.334Les équipes d'agents utilisent considérablement plus de tokens qu'une seule session. Chaque coéquipier a sa propre fenêtre de contexte, et l'utilisation des tokens augmente avec le nombre de coéquipiers actifs. Pour la recherche, l'examen et le travail sur les nouvelles fonctionnalités, les tokens supplémentaires en valent généralement la peine. Pour les tâches courantes, une seule session est plus rentable. Consultez les [coûts des tokens des équipes d'agents](https://code.claude.com/docs/fr/costs.md#agent-team-token-costs) pour les conseils d'utilisation.

335 335 

336Un coéquipier en processus dont les demandes sortent du [bucket TTL du cache](https://code.claude.com/docs/fr/prompt-caching.md#which-ttl-each-request-gets) de la conversation principale, donc son cache dure cinq minutes par défaut, y compris sur un abonnement Claude. Pour le conserver pendant une heure, définissez [`subagentPromptCacheTtl`](https://code.claude.com/docs/fr/settings-reference#subagentpromptcachettl) sur `1h`. L'API facture les écritures de cache d'une heure à un taux plus élevé.336Les requêtes d'un coéquipier en processus sortent du [bucket TTL du cache](https://code.claude.com/docs/fr/prompt-caching.md#which-ttl-each-request-gets) de la conversation principale, donc son cache dure cinq minutes par défaut, y compris sur un abonnement Claude. Pour le conserver pendant une heure, définissez [`subagentPromptCacheTtl`](https://code.claude.com/docs/fr/settings-reference#subagentpromptcachettl) sur `1h`. L'API facture les écritures de cache d'une heure à un taux plus élevé.

337 337 

338## Exemples de cas d'usage338## Exemples de cas d'usage

339 339 

agent-view.md +0 −2

Details

892 892 

893La commande avertit également quand le superviseur en cours d'exécution est sur une version différente de celle du `claude` que vous avez invoqué, ce qui se produit après une mise à jour que le superviseur n'a pas encore redémarrée. L'avertissement affiche les deux versions et vous dit d'exécuter `claude daemon stop --any` pour récupérer la nouvelle version.893La commande avertit également quand le superviseur en cours d'exécution est sur une version différente de celle du `claude` que vous avez invoqué, ce qui se produit après une mise à jour que le superviseur n'a pas encore redémarrée. L'avertissement affiche les deux versions et vous dit d'exécuter `claude daemon stop --any` pour récupérer la nouvelle version.

894 894 

895Les sessions survivent intactes à ce décalage de version : une version plus ancienne de Claude Code qui met à jour le `state.json` d'une session préserve les champs qu'elle ne reconnaît pas et garde la session listée. La liste des sessions dans `roster.json` suit la même règle, donc les sessions démarrées par la version plus récente restent accessibles et continuent d'accepter l'entrée après le redémarrage du superviseur.

896 

897### Désactiver la vue agent895### Désactiver la vue agent

898 896 

899Pour désactiver complètement les agents en arrière-plan et la vue agent, définissez le [paramètre](https://code.claude.com/docs/fr/settings.md) `disableAgentView` à `true` ou définissez la variable d'environnement `CLAUDE_CODE_DISABLE_AGENT_VIEW`. Les administrateurs peuvent appliquer cela via les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md).897Pour désactiver complètement les agents en arrière-plan et la vue agent, définissez le [paramètre](https://code.claude.com/docs/fr/settings.md) `disableAgentView` à `true` ou définissez la variable d'environnement `CLAUDE_CODE_DISABLE_AGENT_VIEW`. Les administrateurs peuvent appliquer cela via les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md).

Details

367| `ap-*` | `apac.` |367| `ap-*` | `apac.` |

368| Toutes les autres régions | `global.` |368| Toutes les autres régions | `global.` |

369 369 

370Définissez `ANTHROPIC_BEDROCK_REGION_PREFIX` pour choisir le préfixe que Claude Code essaie en premier ; lorsque Claude Code peut vérifier la disponibilité du profil et ne trouve aucun profil correspondant pour un modèle, il bascule comme décrit dans l'ordre de résolution ci-dessous. Les valeurs valides sont `us`, `eu`, `apac`, `jp`, `au` et `global`. Par exemple, définissez-le sur `global` lorsque votre compte a des profils `global.` activés mais que Claude Code en dériverait un spécifique à une géographie à partir de votre région AWS. Nécessite Claude Code v2.1.224 ou ultérieur.370Définissez `ANTHROPIC_BEDROCK_REGION_PREFIX` pour choisir le préfixe que Claude Code essaie en premier. Les valeurs valides sont `us`, `eu`, `apac`, `jp`, `au` et `global`. Par exemple, définissez-le sur `global` lorsque votre compte a des profils `global.` activés mais que Claude Code en dériverait un spécifique à une géographie à partir de votre région AWS.

371 371 

372Cet exemple achemine les modèles par défaut via des profils `global.` :372Cet exemple achemine les modèles par défaut via des profils `global.` :

373 373 

artifacts.md +20 −3

Details

64| :- | :- |64| :- | :- |

65| La session est en [mode plan](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode) | Demande avant la première publication de chaque artefact |65| La session est en [mode plan](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode) | Demande avant la première publication de chaque artefact |

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

67| Vous avez partagé l'artefact publiquement | Demande une fois par conversation avant de le modifier |67| Vous avez partagé l'artefact publiquement | Demande une fois par conversation avant de le modifier, et avant chaque réponse à un commentaire sur celui-ci |

68| Claude publie lors d'un tour déclenché par une [tâche planifiée limitée à la session](https://code.claude.com/docs/fr/scheduled-tasks.md) se déclenchant dans votre session, plutôt que par un prompt que vous avez tapé | Demande avant la première publication de chaque artefact |68| Claude publie lors d'un tour déclenché par une [tâche planifiée limitée à la session](https://code.claude.com/docs/fr/scheduled-tasks.md) se déclenchant dans votre session, plutôt que par un prompt que vous avez tapé | Demande avant la première publication de chaque artefact |

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

70| En mode [Manual](https://code.claude.com/docs/fr/permission-modes.md) ou `acceptEdits`, Claude apporte une petite modification au fichier d'un artefact qu'il ne peut pas modifier sans votre approbation, comme un fichier du projet en mode Manual | Demande avant de publier la modification. La demande vous est présentée même si une règle d'autorisation couvre l'outil `Artifact`, car la modification du fichier nécessite votre approbation |70| En mode [Manual](https://code.claude.com/docs/fr/permission-modes.md) ou `acceptEdits`, Claude apporte une petite modification au fichier d'un artefact qu'il ne peut pas modifier sans votre approbation, comme un fichier du projet en mode Manual | Demande avant de publier la modification. La demande vous est présentée même si une règle d'autorisation couvre l'outil `Artifact`, car la modification du fichier nécessite votre approbation |


78Demandez à Claude de réviser la page, ou laissez une tâche longue durée republier au fur et à mesure de sa progression. Claude modifie le fichier sous-jacent et republish à la même URL.78Demandez à Claude de réviser la page, ou laissez une tâche longue durée republier au fur et à mesure de sa progression. Claude modifie le fichier sous-jacent et republish à la même URL.

79 79 

80```text wrap theme={null}80```text wrap theme={null}

81Ajouter une ventilation par région sous le graphique de synthèse et republish.81Ajouter une ventilation par région sous le graphique de synthèse et republier.

82```82```

83 83 

84Toute personne ayant la page ouverte voit la mise à jour en place. Chaque publication devient une version, et à partir du contrôle **Share** dans l'en-tête de la page, vous pouvez choisir quelle version les lecteurs voient.84Toute personne ayant la page ouverte voit la mise à jour en place. Chaque publication devient une version, et à partir du contrôle **Share** dans l'en-tête de la page, vous pouvez choisir quelle version les lecteurs voient.


89Update https://claude.ai/code/artifact/5fbea6f3-... with today's numbers.89Update https://claude.ai/code/artifact/5fbea6f3-... with today's numbers.

90```90```

91 91 

92### Désactiver les mises à jour d'artefact en une étape

93 

94Une mise à jour en une étape est une petite modification que Claude apporte au fichier d'un artefact dans le cadre d'une publication, plutôt que par un appel `Edit` ou `Write`.

95 

96Pour désactiver les mises à jour en une étape, définissez [`CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS`](https://code.claude.com/docs/fr/env-vars) sur `0`. Cet exemple ajoute la variable au bloc `env` dans `~/.claude/settings.json` :

97 

98```json theme={null}

99{

100 "env": {

101 "CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS": "0"

102 }

103}

104```

105 

106Quittez ensuite Claude Code et relancez-le, car une session en cours ne relit pas la variable.

107 

92## Retrouver un artifact108## Retrouver un artifact

93 109 

94Exécutez `/artifacts` dans Claude Code pour lister les artefacts que vous possédez et ceux partagés avec vous. Les artefacts de la session actuelle apparaissent en premier, sous **This session**.110Exécutez `/artifacts` dans Claude Code pour lister les artefacts que vous possédez et ceux partagés avec vous. Les artefacts de la session actuelle apparaissent en premier, sous **This session**.


111Les personnes avec lesquelles vous pouvez partager dépendent de votre plan :127Les personnes avec lesquelles vous pouvez partager dépendent de votre plan :

112 128 

113* **Au sein de votre organisation** : sur les plans Team et Enterprise, accordez l'accès à des personnes spécifiques de votre organisation, ou à tous les membres. Les spectateurs se connectent à claude.ai en tant que membres de votre organisation pour voir la page.129* **Au sein de votre organisation** : sur les plans Team et Enterprise, accordez l'accès à des personnes spécifiques de votre organisation, ou à tous les membres. Les spectateurs se connectent à claude.ai en tant que membres de votre organisation pour voir la page.

130* **Personnes ayant accès à un dossier partagé** : sur les plans Team et Enterprise, déplacez l'artefact vers un dossier dont vous êtes propriétaire ou éditeur. Déplacez-le depuis la [page Artefacts](https://claude.ai/artifacts), disponible si vous pouvez utiliser le chat claude.ai. Toutes les personnes ayant accès au dossier peuvent alors l'ouvrir, et le propriétaire et les éditeurs du dossier peuvent le modifier.

114* **Publiquement** : partagez un lien que n'importe qui sur Internet peut ouvrir, sans connexion à claude.ai requise. Sur les plans Team et Enterprise, le partage public est désactivé jusqu'à ce qu'un propriétaire [l'active pour l'organisation](#control-public-sharing).131* **Publiquement** : partagez un lien que n'importe qui sur Internet peut ouvrir, sans connexion à claude.ai requise. Sur les plans Team et Enterprise, le partage public est désactivé jusqu'à ce qu'un propriétaire [l'active pour l'organisation](#control-public-sharing).

115 132 

116### Créer un lien vers une vue spécifique133### Créer un lien vers une vue spécifique


178Votre [mode de permission](https://code.claude.com/docs/fr/permission-modes.md) détermine ce que fait Claude lorsqu'un commentaire envoyé arrive :195Votre [mode de permission](https://code.claude.com/docs/fr/permission-modes.md) détermine ce que fait Claude lorsqu'un commentaire envoyé arrive :

179 196 

180* **Claude répond de lui-même** : si vous êtes dans un mode de permission qui permet à Claude de publier la réponse sans vous le demander, Claude lit le fil de discussion et répond. Vous voyez `Auto-replied to comment thread on Artifact: <name>`.197* **Claude répond de lui-même** : si vous êtes dans un mode de permission qui permet à Claude de publier la réponse sans vous le demander, Claude lit le fil de discussion et répond. Vous voyez `Auto-replied to comment thread on Artifact: <name>`.

181* **Claude vous attend** : en dehors du mode plan, lorsque la publication de la réponse nécessiterait votre approbation, vous voyez `Comments are waiting on Artifact: <name>`. Claude vous demande alors d'approuver la lecture du fil de discussion, puis à nouveau la publication de la réponse.198* **Claude vous attend** : en dehors du mode plan, lorsque la publication de la réponse [nécessiterait votre approbation](#when-claude-code-asks-before-publishing), vous voyez `Comments are waiting on Artifact: <name>`. Claude vous demande alors d'approuver la lecture du fil de discussion, puis à nouveau la publication de la réponse.

182* **Claude se met en pause en mode plan** : vous voyez `Comments are waiting on Artifact: <name>`, et Claude ne répond pas tant que vous n'avez pas quitté le mode plan et ne lui avez pas demandé de lire et de répondre.199* **Claude se met en pause en mode plan** : vous voyez `Comments are waiting on Artifact: <name>`, et Claude ne répond pas tant que vous n'avez pas quitté le mode plan et ne lui avez pas demandé de lire et de répondre.

183 200 

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

Details

34* **Requêtes** : pour laisser passer les vérifications, la passerelle transfère à la fois l'en-tête `anthropic-beta` et le champ du corps `safeguards` sans modification, car [les deux vont de pair](https://code.claude.com/docs/fr/llm-gateway-protocol.md#beta-header-and-body-field-pairs). Avec le [format InvokeModel d'Amazon Bedrock](https://code.claude.com/docs/fr/llm-gateway-protocol.md#api-formats), elle transfère le champ du corps `anthropic_beta` à la place de l'en-tête.34* **Requêtes** : pour laisser passer les vérifications, la passerelle transfère à la fois l'en-tête `anthropic-beta` et le champ du corps `safeguards` sans modification, car [les deux vont de pair](https://code.claude.com/docs/fr/llm-gateway-protocol.md#beta-header-and-body-field-pairs). Avec le [format InvokeModel d'Amazon Bedrock](https://code.claude.com/docs/fr/llm-gateway-protocol.md#api-formats), elle transfère le champ du corps `anthropic_beta` à la place de l'en-tête.

35* **Réponses** : la passerelle retourne les réponses et les événements de streaming sans supprimer de champs ni réécrire les ID d'utilisation d'outils. Pour laisser passer les résultats des vérifications, elle conserve le champ `safeguard_results`.35* **Réponses** : la passerelle retourne les réponses et les événements de streaming sans supprimer de champs ni réécrire les ID d'utilisation d'outils. Pour laisser passer les résultats des vérifications, elle conserve le champ `safeguard_results`.

36 36 

37Une passerelle qui transmet le trafic de cette manière continue de fonctionner avec cette fonctionnalité et avec les futures. Les nouvelles sessions utilisent alors à nouveau les vérifications du serveur.37Une fois que votre passerelle procède ainsi, les nouvelles sessions utilisent à nouveau les vérifications du serveur.

38 38 

39Si vous savez déjà que votre passerelle ne peut pas fournir les vérifications du serveur, dites à Claude Code de ne pas les demander là en définissant `CLAUDE_CODE_AUTO_MODE_SERVER` sur `0` avant de démarrer la session, dans votre shell ou dans la [clé de paramètres `env`](https://code.claude.com/docs/fr/settings-reference#env) :39Si vous savez déjà que votre passerelle ne peut pas fournir les vérifications du serveur, dites à Claude Code de ne pas les demander là en définissant `CLAUDE_CODE_AUTO_MODE_SERVER` sur `0` avant de démarrer la session, dans votre shell ou dans la [clé de paramètres `env`](https://code.claude.com/docs/fr/settings-reference#env) :

40 40 

Details

180 180 

181Claude Code effectue l'analyse en arrière-plan, puis vous montre le brouillon. Vous l'acceptez ou le rejetez dans son ensemble ; modifiez donc `~/.claude/settings.json` par la suite pour ajuster des entrées individuelles. Lorsque vous acceptez, Claude Code écrit le brouillon et le concilie avec vos paramètres existants :181Claude Code effectue l'analyse en arrière-plan, puis vous montre le brouillon. Vous l'acceptez ou le rejetez dans son ensemble ; modifiez donc `~/.claude/settings.json` par la suite pour ajuster des entrées individuelles. Lorsque vous acceptez, Claude Code écrit le brouillon et le concilie avec vos paramètres existants :

182 182 

183* Claude Code écrit la liste `environment` sans `"$defaults"`, car le brouillon détaille explicitement les entrées intégrées qu'il a laissées inchangées183* Si vous avez choisi de compléter la liste `environment` de `~/.claude/settings.json`, vous conservez toute entrée `"$defaults"` qu'elle contient. Si vous avez choisi de remplacer cette liste, vous perdez cette entrée ; rajoutez donc `"$defaults"` si vous souhaitez conserver les entrées par défaut

184* Claude Code inclut `"$defaults"` dans chacune des listes `allow`, `soft_deny` et `hard_deny` auxquelles le brouillon ajoute des entrées, sauf si vous avez déjà écrit une liste `allow` sans lui, afin que les [règles intégrées](#override-the-block-and-allow-rules) que vous n'avez pas remplacées restent en vigueur184* Claude Code inclut `"$defaults"` dans chacune des listes `allow`, `soft_deny` et `hard_deny` auxquelles le brouillon ajoute des entrées, sauf si vous avez déjà écrit une liste `allow` sans lui, afin que les [règles intégrées](#override-the-block-and-allow-rules) que vous n'avez pas remplacées restent en vigueur

185* Après l'enregistrement, Claude Code propose de supprimer les règles `permissions.allow` de `~/.claude/settings.json` que le mode auto ignore, comme `Bash(*)`, ou qui approuvent automatiquement des commandes destructrices185* Après l'enregistrement, Claude Code propose de supprimer les règles `permissions.allow` de `~/.claude/settings.json` que le mode auto ignore, comme `Bash(*)`, ou qui approuvent automatiquement des commandes destructrices

186 186 


216 216 

217Trois champs supplémentaires vous permettent de remplacer les listes de règles intégrées du classificateur :217Trois champs supplémentaires vous permettent de remplacer les listes de règles intégrées du classificateur :

218 218 

219* `autoMode.hard_deny` : limites de sécurité inconditionnelles219* `autoMode.hard_deny` : actions à bloquer même lorsque l'utilisateur les demande

220* `autoMode.soft_deny` : actions destructrices que l'intention de l'utilisateur peut lever220* `autoMode.soft_deny` : actions destructrices que l'intention de l'utilisateur peut lever

221* `autoMode.allow` : exceptions aux règles de blocage logiciel221* `autoMode.allow` : exceptions aux règles de blocage logiciel

222 222 


231 231 

232Les demandes générales ne comptent pas comme une intention explicite. Demander à Claude de « nettoyer le dépôt » n'autorise pas la poussée forcée, mais demander à Claude de « forcer la poussée de cette branche » le fait.232Les demandes générales ne comptent pas comme une intention explicite. Demander à Claude de « nettoyer le dépôt » n'autorise pas la poussée forcée, mais demander à Claude de « forcer la poussée de cette branche » le fait.

233 233 

234Pour assouplir, ajoutez à `allow` quand le classificateur signale à plusieurs reprises un motif courant que les exceptions par défaut ne couvrent pas. Pour renforcer, ajoutez à `soft_deny` pour les risques destructeurs spécifiques à votre environnement que les valeurs par défaut manquent, ou à `hard_deny` pour les limites de sécurité qui ne doivent jamais être franchies.234Pour assouplir, ajoutez à `allow` quand le classificateur signale à plusieurs reprises un motif courant que les exceptions par défaut ne couvrent pas. Pour renforcer, ajoutez à `soft_deny` pour les risques destructeurs spécifiques à votre environnement que les valeurs par défaut manquent, ou à `hard_deny` pour les actions à bloquer même lorsque l'utilisateur les demande.

235 235 

236Pour conserver les règles intégrées tout en ajoutant les vôtres, incluez la chaîne littérale `"$defaults"` dans le tableau. Les règles par défaut sont insérées à cette position, donc vos règles personnalisées peuvent aller avant ou après elles, et vous continuez à hériter des mises à jour à mesure que la liste intégrée change entre les versions.236Pour conserver les règles intégrées tout en ajoutant les vôtres, incluez la chaîne littérale `"$defaults"` dans le tableau. Les règles par défaut sont insérées à cette position, donc vos règles personnalisées peuvent aller avant ou après elles, et vous continuez à hériter des mises à jour à mesure que la liste intégrée change entre les versions.

237 237 


252 "soft_deny": [252 "soft_deny": [

253 "$defaults",253 "$defaults",

254 "Never run database migrations outside the migrations CLI, even against dev databases",254 "Never run database migrations outside the migrations CLI, even against dev databases",

255 "Never modify files under infra/terraform/prod/: production infrastructure changes go through the review workflow"255 "Running terraform apply in infra/terraform/prod/ needs an explicit request: production infrastructure changes go through the review workflow"

256 ],256 ],

257 "hard_deny": [257 "hard_deny": [

258 "$defaults",258 "$defaults",

Details

213 tools: {}, // omettez pour les canaux unidirectionnels213 tools: {}, // omettez pour les canaux unidirectionnels

214 },214 },

215 // Claude Code la transmet à Claude en tant que contexte quand le serveur se connecte, afin qu'il sache comment gérer vos événements215 // Claude Code la transmet à Claude en tant que contexte quand le serveur se connecte, afin qu'il sache comment gérer vos événements

216 instructions: 'Les messages arrivent sous la forme <channel source="your-channel" ...>. Répondez avec l\'outil de réponse.',216 instructions: 'Messages arrive as <channel source="your-channel" ...>. Reply with the reply tool.',

217 },217 },

218)218)

219```219```


286mcp.setRequestHandler(ListToolsRequestSchema, async () => ({286mcp.setRequestHandler(ListToolsRequestSchema, async () => ({

287 tools: [{287 tools: [{

288 name: 'reply',288 name: 'reply',

289 description: 'Envoyer un message en retour sur ce canal',289 description: 'Send a message back over this channel',

290 // inputSchema indique à Claude quels arguments passer290 // inputSchema indique à Claude quels arguments passer

291 inputSchema: {291 inputSchema: {

292 type: 'object',292 type: 'object',

293 properties: {293 properties: {

294 chat_id: { type: 'string', description: 'La conversation dans laquelle répondre' },294 chat_id: { type: 'string', description: 'The conversation to reply in' },

295 text: { type: 'string', description: 'Le message à envoyer' },295 text: { type: 'string', description: 'The message to send' },

296 },296 },

297 required: ['chat_id', 'text'],297 required: ['chat_id', 'text'],

298 },298 },


317Mettez à jour la chaîne `instructions` dans votre constructeur `Server` afin que Claude sache router les réponses via l'outil. Cet exemple indique à Claude de passer `chat_id` à partir de la balise entrante :317Mettez à jour la chaîne `instructions` dans votre constructeur `Server` afin que Claude sache router les réponses via l'outil. Cet exemple indique à Claude de passer `chat_id` à partir de la balise entrante :

318 318 

319```ts theme={null}319```ts theme={null}

320instructions: 'Les messages arrivent sous la forme <channel source="webhook" chat_id="...">. Répondez avec l'outil de réponse, en passant le chat_id de la balise.'320instructions: 'Messages arrive as <channel source="webhook" chat_id="...">. Reply with the reply tool, passing the chat_id from the tag.'

321```321```

322 322 

323Voici le `webhook.ts` complet avec support bidirectionnel. Les réponses sortantes se diffusent via `GET /events` en utilisant [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE), donc `curl -N localhost:8788/events` peut les regarder en direct ; le chat entrant arrive sur `POST /` :323Voici le `webhook.ts` complet avec support bidirectionnel. Les réponses sortantes se diffusent via `GET /events` en utilisant [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) (SSE), donc `curl -N localhost:8788/events` peut les regarder en direct ; le chat entrant arrive sur `POST /` :

324 324 

325```ts title="webhook.ts complet avec outil de réponse' expandable theme={null}325```ts title="webhook.ts complet avec outil de réponse" expandable theme={null}

326#!/usr/bin/env bun326#!/usr/bin/env bun

327import { Server } from '@modelcontextprotocol/sdk/server/index.js'327import { Server } from '@modelcontextprotocol/sdk/server/index.js'

328import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'328import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'


343 experimental: { 'claude/channel': {} },343 experimental: { 'claude/channel': {} },

344 tools: {},344 tools: {},

345 },345 },

346 instructions: 'Les messages arrivent sous la forme <channel source="webhook" chat_id="...">. Répondez avec l'outil de réponse, en passant le chat_id de la balise.',346 instructions: 'Messages arrive as <channel source="webhook" chat_id="...">. Reply with the reply tool, passing the chat_id from the tag.',

347 },347 },

348)348)

349 349 

350mcp.setRequestHandler(ListToolsRequestSchema, async () => ({350mcp.setRequestHandler(ListToolsRequestSchema, async () => ({

351 tools: [{351 tools: [{

352 name: 'reply',352 name: 'reply',

353 description: 'Envoyer un message en retour sur ce canal',353 description: 'Send a message back over this channel',

354 inputSchema: {354 inputSchema: {

355 type: 'object',355 type: 'object',

356 properties: {356 properties: {

357 chat_id: { type: 'string', description: 'La conversation dans laquelle répondre' },357 chat_id: { type: 'string', description: 'The conversation to reply in' },

358 text: { type: 'string', description: 'Le message à envoyer' },358 text: { type: 'string', description: 'The message to send' },

359 },359 },

360 required: ['chat_id', 'text'],360 required: ['chat_id', 'text'],

361 },361 },

Details

741. Une ligne [`pricing.overrides`](https://code.claude.com/docs/fr/claude-apps-gateway-config#pricing) correspondante pour l'amont qui a servi la requête. Nécessite v2.1.227 ou ultérieur.741. Une ligne [`pricing.overrides`](https://code.claude.com/docs/fr/claude-apps-gateway-config#pricing) correspondante pour l'amont qui a servi la requête. Nécessite v2.1.227 ou ultérieur.

752. Tarif de liste pour l'ID de modèle amont, la chaîne que la passerelle envoie au fournisseur, quand la table de coûts Claude Code la reconnaît. La table accepte les formes Anthropic, Amazon Bedrock, Google Cloud's Agent Platform, et Microsoft Foundry ID.752. Tarif de liste pour l'ID de modèle amont, la chaîne que la passerelle envoie au fournisseur, quand la table de coûts Claude Code la reconnaît. La table accepte les formes Anthropic, Amazon Bedrock, Google Cloud's Agent Platform, et Microsoft Foundry ID.

763. Tarif de liste pour le [`models[].id`](https://code.claude.com/docs/fr/claude-apps-gateway-config#models) que vous avez mappé à cet ID amont, pour les chaînes amont qui ne portent pas de nom de modèle, comme un ARN de profil d'inférence d'application Amazon Bedrock ou un nom de déploiement Microsoft Foundry. Nécessite v2.1.218 ou ultérieur.763. Tarif de liste pour le [`models[].id`](https://code.claude.com/docs/fr/claude-apps-gateway-config#models) que vous avez mappé à cet ID amont, pour les chaînes amont qui ne portent pas de nom de modèle, comme un ARN de profil d'inférence d'application Amazon Bedrock ou un nom de déploiement Microsoft Foundry. Nécessite v2.1.218 ou ultérieur.

774. Le tier de modèle inconnu de 5 $/25 $ par million de tokens d'entrée/sortie, de sorte qu'un ID que le compteur ne peut pas placer n'est jamais gratuit. La passerelle avertit au démarrage et une fois par ID à l'exécution quand elle utilise ce tier.774. Le tier de modèle inconnu de 5 \$/25 \$ par million de tokens d'entrée/sortie, de sorte qu'un ID que le compteur ne peut pas placer n'est jamais gratuit. La passerelle avertit au démarrage et une fois par ID à l'exécution quand elle utilise ce tier.

78 78 

79Quel que soit le tarif applicable, le compteur multiplie ensuite le montant par [`pricing.multiplier`](https://code.claude.com/docs/fr/claude-apps-gateway-config#pricing), par défaut `1`.79Quel que soit le tarif applicable, le compteur multiplie ensuite le montant par [`pricing.multiplier`](https://code.claude.com/docs/fr/claude-apps-gateway-config#pricing), par défaut `1`. Nécessite un serveur de passerelle exécutant Claude Code v2.1.227 ou ultérieur.

80 80 

81Les abandons de clients sont également facturés. Quand un flux se termine sans la trame d'utilisation finale de l'amont, le compteur facture une estimation de plancher d'environ quatre caractères par token de sortie pour le texte déjà envoyé au client, de sorte que l'abandon de requêtes tôt ne contourne pas une limite.81Les abandons de clients sont également facturés. Quand un flux se termine sans la trame d'utilisation finale de l'amont, le compteur facture une estimation de plancher d'environ quatre caractères par token de sortie pour le texte déjà envoyé au client, de sorte que l'abandon de requêtes tôt ne contourne pas une limite.

82 82 

Details

205* **Utilisation de `/teleport`** : à l'intérieur d'une session CLI existante, exécutez `/teleport` ou `/tp` pour ouvrir le même sélecteur de session sans redémarrer Claude Code.205* **Utilisation de `/teleport`** : à l'intérieur d'une session CLI existante, exécutez `/teleport` ou `/tp` pour ouvrir le même sélecteur de session sans redémarrer Claude Code.

206* **Depuis `/tasks`** : exécutez `/tasks` pour voir vos sessions en arrière-plan, puis appuyez sur `t` pour vous téléporter dans l'une d'elles.206* **Depuis `/tasks`** : exécutez `/tasks` pour voir vos sessions en arrière-plan, puis appuyez sur `t` pour vous téléporter dans l'une d'elles.

207* **Depuis claude.ai/code** : sélectionnez **Ouvrir dans > Terminal** dans le menu de session pour copier une commande que vous pouvez coller dans votre terminal.207* **Depuis claude.ai/code** : sélectionnez **Ouvrir dans > Terminal** dans le menu de session pour copier une commande que vous pouvez coller dans votre terminal.

208* **Depuis l'intérieur de la session cloud** : tapez `/teleport` et Claude Code répond avec la commande exacte `claude --teleport <session-id>` pour cette session, prête à s'exécuter à partir d'un checkout du référentiel. Nécessite Claude Code v2.1.223 ou ultérieur dans l'environnement de la session.208* **Depuis l'intérieur de la session cloud** : tapez `/teleport` et Claude Code répond avec la commande exacte `claude --teleport <session-id>` pour cette session, prête à s'exécuter à partir d'un checkout du dépôt.

209 209 

210Quand vous téléportez une session, Claude vérifie que vous êtes dans le bon dépôt, récupère la branche de la session cloud et bascule dessus, puis charge la conversation dans votre terminal.210Quand vous téléportez une session, Claude vérifie que vous êtes dans le bon dépôt, récupère la branche de la session cloud et bascule dessus, puis charge la conversation dans votre terminal.

211 211 


499* **Authentification du référentiel** : vous ne pouvez déplacer une session cloud vers votre terminal que lorsque vous êtes authentifié au même compte499* **Authentification du référentiel** : vous ne pouvez déplacer une session cloud vers votre terminal que lorsque vous êtes authentifié au même compte

500* **Restrictions de plateforme** : le clonage de dépôt dans les environnements hébergés par Anthropic et la création de pull requests nécessitent GitHub. Les instances [GitHub Enterprise Server](https://code.claude.com/docs/fr/github-enterprise-server.md) auto-hébergées sont prises en charge pour les plans Team et Enterprise. Vous pouvez envoyer un dépôt GitLab, Bitbucket ou autre dépôt non-GitHub à une session cloud en tant que [paquet local](#send-local-repositories-without-github) en définissant `CCR_FORCE_BUNDLE=1`, mais la session ne peut pas pousser les résultats vers ce serveur distant500* **Restrictions de plateforme** : le clonage de dépôt dans les environnements hébergés par Anthropic et la création de pull requests nécessitent GitHub. Les instances [GitHub Enterprise Server](https://code.claude.com/docs/fr/github-enterprise-server.md) auto-hébergées sont prises en charge pour les plans Team et Enterprise. Vous pouvez envoyer un dépôt GitLab, Bitbucket ou autre dépôt non-GitHub à une session cloud en tant que [paquet local](#send-local-repositories-without-github) en définissant `CCR_FORCE_BUNDLE=1`, mais la session ne peut pas pousser les résultats vers ce serveur distant

501 * **Environnements auto-hébergés** : pour un dépôt sur un autre hébergeur git, consultez les [exigences pour démarrer une session avec `--environment`](https://code.claude.com/docs/fr/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github).501 * **Environnements auto-hébergés** : pour un dépôt sur un autre hébergeur git, consultez les [exigences pour démarrer une session avec `--environment`](https://code.claude.com/docs/fr/self-hosted-environments-deploy#start-a-session-on-a-repository-outside-github).

502* **Liste d'autorisation IP de l'organisation** : les sessions cloud appellent l'API Anthropic à partir de l'infrastructure gérée par Anthropic, pas de votre réseau, tandis que les sessions dans un [environnement auto-hébergé](https://code.claude.com/docs/fr/self-hosted-environments) l'appellent à partir de votre propre réseau. Si votre organisation a [la liste d'autorisation IP](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) activée, chaque session cloud hébergée par Anthropic échoue avec une erreur d'authentification.

503 * **Code Review et tâches planifiées** : il en va de même pour [Code Review](https://code.claude.com/docs/fr/code-review.md) et pour les [tâches planifiées cloud](https://code.claude.com/docs/fr/routines.md) qui s'exécutent sur les environnements hébergés par Anthropic. Une tâche planifiée acheminée vers un environnement auto-hébergé appelle l'API à partir de votre propre réseau.

504 * **Obtenir une exemption** : contactez [le support Anthropic](https://support.claude.com/) pour exempter les services hébergés par Anthropic de la liste d'autorisation IP de votre organisation.

505 502 

506## Ressources connexes503## Ressources connexes

507 504 

Details

142Les fichiers de session dans `sessions/`, la mémoire automatique, et les transcriptions Claude Desktop et Cowork suivent chacun leur propre règle de rétention :142Les fichiers de session dans `sessions/`, la mémoire automatique, et les transcriptions Claude Desktop et Cowork suivent chacun leur propre règle de rétention :

143 143 

144* **`sessions/`** : contient un petit fichier par session en cours d'exécution, utilisé pour détecter les sessions concurrentes et les crashes. Il ne fait pas partie du balayage basé sur l'âge : Claude Code supprime chaque fichier lorsque sa session se termine et efface les restes de crash au prochain lancement.144* **`sessions/`** : contient un petit fichier par session en cours d'exécution, utilisé pour détecter les sessions concurrentes et les crashes. Il ne fait pas partie du balayage basé sur l'âge : Claude Code supprime chaque fichier lorsque sa session se termine et efface les restes de crash au prochain lancement.

145* **`seed-admin/`** : répertoires git temporaires que Claude Code crée lorsqu'il empaquette votre dépôt pour un [ultrareview](https://code.claude.com/docs/fr/ultrareview.md) ou un [envoi vers une session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md#send-local-repositories-without-github). Lorsqu'un envoi se termine, ou lors d'une session ultérieure s'il a été interrompu, Claude Code supprime le répertoire de cet envoi et laisse `seed-admin/` en place.

145* **Mémoire automatique** : le balayage ne supprime pas les fichiers de mémoire dans le répertoire de [mémoire automatique](https://code.claude.com/docs/fr/memory.md#auto-memory) d'un projet, `projects/<project>/memory/`. Claude Code supprime ce répertoire uniquement s'il a été vide pendant toute la période de rétention. Avant v2.1.228, le balayage traitait les dossiers à l'intérieur du répertoire de mémoire comme des données de session et pouvait supprimer les anciens fichiers en dessous.146* **Mémoire automatique** : le balayage ne supprime pas les fichiers de mémoire dans le répertoire de [mémoire automatique](https://code.claude.com/docs/fr/memory.md#auto-memory) d'un projet, `projects/<project>/memory/`. Claude Code supprime ce répertoire uniquement s'il a été vide pendant toute la période de rétention. Avant v2.1.228, le balayage traitait les dossiers à l'intérieur du répertoire de mémoire comme des données de session et pouvait supprimer les anciens fichiers en dessous.

146* **Transcriptions Claude Desktop et Cowork** : Claude Code conserve la transcription d'une session que vous avez démarrée ou continuée le plus récemment dans Claude Desktop ou Cowork à tout âge. Pour donner à ces transcriptions une limite d'âge, définissez [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/fr/settings-reference#desktopsessioncleanupperioddays). Nécessite Claude Code v2.1.248 ou ultérieur ; les versions antérieures les suppriment après `cleanupPeriodDays`.147* **Transcriptions Claude Desktop et Cowork** : Claude Code conserve la transcription d'une session que vous avez démarrée ou continuée le plus récemment dans Claude Desktop ou Cowork à tout âge. Pour donner à ces transcriptions une limite d'âge, définissez [`desktopSessionCleanupPeriodDays`](https://code.claude.com/docs/fr/settings-reference#desktopsessioncleanupperioddays). Nécessite Claude Code v2.1.248 ou ultérieur ; les versions antérieures les suppriment après `cleanupPeriodDays`.

147 148 


153Claude Code ignore le balayage basé sur l'âge dans ces cas :154Claude Code ignore le balayage basé sur l'âge dans ces cas :

154 155 

155* **Mode bare** : lorsque vous exécutez `claude -p` avec [`--bare`](https://code.claude.com/docs/fr/headless#start-faster-with-bare-mode), Claude Code n'exécute pas le balayage dans cette session.156* **Mode bare** : lorsque vous exécutez `claude -p` avec [`--bare`](https://code.claude.com/docs/fr/headless#start-faster-with-bare-mode), Claude Code n'exécute pas le balayage dans cette session.

156* **Balayage en pause** : si Claude Code ne peut pas déterminer en toute sécurité la période de rétention, il met en pause le balayage de nettoyage de rétention ; l'[événement `retention_sweep`](https://code.claude.com/docs/fr/monitoring-usage#retention-sweep-event) énumère chaque configuration qui le met en pause. Lorsque la cause est un fichier de paramètres qui ne peut pas être lu ou analysé, ou des erreurs de paramètres avec `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` explicitement définis, Claude Code affiche également un avertissement dans `/status` jusqu'à ce que vous corrigiez les erreurs de paramètres. Lorsque les [paramètres gérés](https://code.claude.com/docs/fr/server-managed-settings.md) fournissent `cleanupPeriodDays`, Claude Code exécute le balayage à la valeur gérée dans les deux cas.157* **Balayage en pause** : si Claude Code ne peut pas déterminer en toute sécurité la période de rétention, il met le balayage en pause ; l'[événement `retention_sweep`](https://code.claude.com/docs/fr/monitoring-usage#retention-sweep-event) énumère chaque configuration qui le met en pause. Lorsque la cause est un fichier de paramètres qui ne peut pas être lu ou analysé, ou des erreurs de paramètres avec `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` définis, `/status` affiche un avertissement jusqu'à ce que vous corrigiez la cause.

158 

159Lorsque les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md) fournissent `cleanupPeriodDays`, Claude Code exécute le balayage à la valeur gérée même lorsqu'un fichier de paramètres de priorité inférieure contient des erreurs.

157 160 

158Pour vérifier que les machines de votre organisation exécutent le balayage avec la période de rétention que vous avez définie, consultez [Vérifier le balayage de rétention](https://code.claude.com/docs/fr/monitoring-usage.md#check-the-retention-sweep).161Pour vérifier que les machines de votre organisation exécutent le balayage avec la période de rétention que vous avez définie, consultez [Vérifier le balayage de rétention](https://code.claude.com/docs/fr/monitoring-usage.md#check-the-retention-sweep).

159 162 

claude-projects.md +24 −26

Details

20 20 

21* **Envoyer le travail à un seul endroit** : collez un rapport de bug, une trace de pile ou une liste de tâches dans la conversation chaque fois qu'une apparaît. Claude démarre un thread pour chaque élément de travail ou le transmet au thread déjà en train de travailler dans ce domaine, et répond aux questions rapides sur place.21* **Envoyer le travail à un seul endroit** : collez un rapport de bug, une trace de pile ou une liste de tâches dans la conversation chaque fois qu'une apparaît. Claude démarre un thread pour chaque élément de travail ou le transmet au thread déjà en train de travailler dans ce domaine, et répond aux questions rapides sur place.

22* **Définir le contexte une seule fois** : chaque nouveau thread commence avec les instructions du projet, donc une règle que vous énoncez une seule fois, comme la branche à cibler, atteint tous les threads.22* **Définir le contexte une seule fois** : chaque nouveau thread commence avec les instructions du projet, donc une règle que vous énoncez une seule fois, comme la branche à cibler, atteint tous les threads.

23* **Partez et revenez au travail terminé** : quand vous revenez une heure plus tard ou le lendemain matin, le volet **Overview** montre quels threads ont terminé, quelles pull requests sont prêtes pour examen, et quel thread attend votre réponse.23* **Partir et revenir à un travail terminé** : le volet Overview montre quels threads ont terminé, quelles pull requests sont prêtes pour examen, et quel thread attend votre réponse.

24 24 

25Si vous connaissez déjà le travail que vous voulez qu'un projet exécute, allez directement à [Créer un projet](#create-a-project).25Si vous connaissez déjà le travail que vous voulez qu'un projet exécute, allez directement à [Créer un projet](#create-a-project).

26 26 


28 28 

29Un projet vaut la peine d'être créé quand le travail a un objectif qui dépasse une session et continue à produire des tâches. Ces types de travaux conviennent bien à un projet :29Un projet vaut la peine d'être créé quand le travail a un objectif qui dépasse une session et continue à produire des tâches. Ces types de travaux conviennent bien à un projet :

30 30 

31* **Un objectif sur plusieurs référentiels** : « Mettre à jour chaque service avec la nouvelle configuration lint. » Claude peut exécuter un thread par référentiel, chacun avec sa propre pull request, et le volet [**Overview**](#see-what-needs-you-in-overview) montre lesquels sont prêts pour examen.31* **Un objectif sur plusieurs dépôts** : « Mettre à jour chaque service avec la nouvelle configuration lint. » Claude peut exécuter un thread par dépôt, chacun avec sa propre pull request, et le [volet Overview](#see-what-needs-you-in-overview) montre lesquels sont prêts pour examen.

32* **Un domaine que vous continuez à alimenter** : les bugs, les traces de pile et les demandes d'examen pour un service, collés dans la conversation au fur et à mesure qu'ils vous parviennent. Une mise en garde que vous dites à Claude de mémoriser après une correction est dans la [mémoire du projet](#give-a-project-standing-context) pour la prochaine.32* **Un domaine que vous continuez à alimenter** : les bugs, les traces de pile et les demandes d'examen pour un service, collés dans la conversation au fur et à mesure qu'ils vous parviennent. Une mise en garde que vous dites à Claude de mémoriser après une correction est dans la [mémoire du projet](#give-a-project-standing-context) pour la prochaine.

33* **Une construction ou une migration plus grande qu'une session** : « Construire ce que `docs/spec.md` décrit » ou « Migrer l'application hors de l'ORM obsolète. » Le travail se divise en threads qui prennent chacun une partie, les décisions que vous demandez à Claude de mémoriser au début atteignent les threads ultérieurs, et la spécification change et les bugs que vous trouvez pendant la construction vont dans la même conversation.33* **Une construction ou une migration plus grande qu'une session** : « Construire ce que `docs/spec.md` décrit » ou « Migrer l'application hors de l'ORM obsolète. » Le travail se divise en threads qui prennent chacun une partie, les décisions que vous demandez à Claude de mémoriser au début atteignent les threads ultérieurs, et la spécification change et les bugs que vous trouvez pendant la construction vont dans la même conversation.

34* **Un travail qui n'est pas du code** : un dossier de contrats ou une exportation de tickets d'assistance sur laquelle vous revenez continuellement avec de nouvelles questions, comme « trouver les dix erreurs d'intégration les plus courantes dans ces tickets. » Téléchargez les documents au lieu d'ajouter un référentiel, et les threads livrent chaque rapport en tant que fichier sur l'onglet [**Library**](#see-what-needs-you-in-overview) du projet.34* **Un travail qui n'est pas du code** : un dossier de contrats ou une exportation de tickets d'assistance sur laquelle vous revenez continuellement avec de nouvelles questions, comme « trouver les dix erreurs d'intégration les plus courantes dans ces tickets. » Téléchargez les documents au lieu d'ajouter un dépôt, et les threads livrent chaque rapport en tant que fichier dans la [**Library**](#see-what-needs-you-in-overview) du projet.

35 35 

36Dans n'importe lequel d'entre eux, vous pouvez envoyer un lot de tâches, dire à Claude de commencer sans vous demander de confirmer, et vous éloigner. À votre retour, vous trouverez les threads qui vous attendent sous [**Waiting on you**](#see-what-needs-you-in-overview). Vous pouvez également demander à Claude de planifier une partie du travail en tant que [tâche planifiée cloud](https://code.claude.com/docs/fr/routines.md). Si l'un de ces cas correspond à votre situation, [créez un projet](#create-a-project).36Dans n'importe lequel d'entre eux, vous pouvez envoyer un lot de tâches, dire à Claude de commencer sans vous demander de confirmer, et vous éloigner. À votre retour, vous trouverez les threads qui vous attendent sous [**Waiting on you**](#see-what-needs-you-in-overview). Vous pouvez également demander à Claude de planifier une partie du travail en tant que [tâche planifiée cloud](https://code.claude.com/docs/fr/routines.md). Si l'un de ces cas correspond à votre situation, [créez un projet](#create-a-project).

37 37 


57 * Le `CLAUDE.md` dans [chacun des dépôts du projet](#what-threads-pick-up-from-your-repositories), mais pas les skills, le `.claude/settings.json` ni le `.mcp.json` des dépôts57 * Le `CLAUDE.md` dans [chacun des dépôts du projet](#what-threads-pick-up-from-your-repositories), mais pas les skills, le `.claude/settings.json` ni le `.mcp.json` des dépôts

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

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

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

61 61 

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

63 63 

64Voici comment ces parties se connectent, de vous à travers la conversation aux threads qui font le travail, avec **Overview** qui suit leur état :64Voici comment ces parties se connectent, de vous à travers la conversation aux threads qui font le travail, avec Overview qui suit leur état :

65 65 

66![Diagramme d'un projet. Vous écrivez dans la conversation du projet, où Claude répond ou démarre un thread. Chaque thread cloud travaille sur sa propre branche et pull request. Le volet Overview énumère les threads par état, comme prêt pour examen, en attente de vous et en cours.](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)66![Diagramme d'un projet. Vous écrivez dans la conversation du projet, où Claude répond ou démarre un thread. Chaque thread cloud travaille sur sa propre branche et pull request. Le volet Overview énumère les threads par état, comme prêt pour examen, en attente de vous et en cours.](https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max\&auto=format\&n=e8CLbxM17eD7cAiv\&q=85\&s=dbf446f69f0bbdb9961d21af207cb93b)

67 67 


96 96 

97* **Name** : comment le projet apparaît dans la liste **Projects**.97* **Name** : comment le projet apparaît dans la liste **Projects**.

98* **What do you want to work on?** (optionnel) : une ligne qui devient l'objectif du projet, comme « Maintenir la latence p95 de l'API sous 200 ms ». Claude dans la conversation travaille vers cet objectif. Sans objectif, Claude travaille à partir des tâches que vous envoyez, et vous pouvez ajouter un objectif plus tard dans **Project settings > General**.98* **What do you want to work on?** (optionnel) : une ligne qui devient l'objectif du projet, comme « Maintenir la latence p95 de l'API sous 200 ms ». Claude dans la conversation travaille vers cet objectif. Sans objectif, Claude travaille à partir des tâches que vous envoyez, et vous pouvez ajouter un objectif plus tard dans **Project settings > General**.

99* **Context** (optionnel) : les dépôts GitHub sur lesquels ce projet travaille, plus tous les fichiers, dossiers ou dossiers Google Drive que les threads doivent lire. Cliquez sur **Add** pour chacun. Ajoutez les dépôts dont la plupart des tâches ont besoin plutôt que tous ceux que le travail pourrait toucher ; [Décider quels dépôts ajouter](#decide-which-repositories-to-add) couvre le choix, et vous pouvez en ajouter d'autres plus tard dans **Project settings > Environment**.99* **Context** (optionnel) : les dépôts GitHub sur lesquels ce projet travaille, plus tous les fichiers, dossiers ou dossiers Google Drive que les threads doivent lire. Cliquez sur **+** pour chacun. Ajoutez les dépôts dont la plupart des tâches ont besoin plutôt que tous ceux que le travail pourrait toucher ; [Décider quels dépôts ajouter](#decide-which-repositories-to-add) couvre le choix, et vous pouvez en ajouter d'autres plus tard dans **Project settings > Environment**.

100 100 

101Les règles permanentes sur la façon dont les threads doivent fonctionner vont dans [les instructions du projet](#give-a-project-standing-context), que vous définissez après que le projet existe.101Les règles permanentes sur la façon dont les threads doivent fonctionner vont dans [les instructions du projet](#give-a-project-standing-context), que vous définissez après que le projet existe.

102 102 


109* Démarrer un thread qui explore le dépôt sans rien changer et propose les prochaines étapes, si le projet a un dépôt qu'il peut lire.109* Démarrer un thread qui explore le dépôt sans rien changer et propose les prochaines étapes, si le projet a un dépôt qu'il peut lire.

110* Publier **Setup recommendations** tirées de vos sessions cloud récentes : dépôts à ajouter, tâches planifiées à créer et threads qu'il pourrait démarrer. Chaque dépôt et tâche planifiée recommandés commencent activés. Désactivez ceux que vous ne voulez pas, puis cliquez sur **Update setup** pour ajouter le reste, ou ignorez les recommandations et décrivez le travail vous-même.110* Publier **Setup recommendations** tirées de vos sessions cloud récentes : dépôts à ajouter, tâches planifiées à créer et threads qu'il pourrait démarrer. Chaque dépôt et tâche planifiée recommandés commencent activés. Désactivez ceux que vous ne voulez pas, puis cliquez sur **Update setup** pour ajouter le reste, ou ignorez les recommandations et décrivez le travail vous-même.

111 111 

112Le projet est maintenant listé sous **Projects** dans la barre latérale, et sa conversation est ouverte. [Votre premier lot](#your-first-batch) couvre ce qu'il faut configurer avant de lui envoyer du travail.112Le projet est maintenant dans la barre latérale, et sa conversation est ouverte. [Votre premier lot](#your-first-batch) couvre ce qu'il faut configurer avant de lui envoyer du travail.

113 113 

114### Démarrer à partir d'une session existante114### Démarrer à partir d'une session existante

115 115 


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 l'onglet **Library** de **Overview**.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.

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 


190 190 

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

192 192 

193Le volet **Overview** à côté de la conversation suit les threads du projet. Il est déjà ouvert la première fois que vous ouvrez un nouveau projet. Le bouton **Overview** dans l'en-tête du projet le ferme et le rouvre, et affiche un point lorsqu'un thread vous attend.193Le volet Overview à côté de la conversation suit les threads du projet. Il est déjà ouvert la première fois que vous ouvrez un nouveau projet. Pour le rouvrir après l'avoir fermé, cliquez sur le bouton **Threads** dans l'en-tête du projet. Le bouton affiche un point lorsqu'un thread vous attend.

194 194 

195Dans l'application de bureau, vous recevez également une notification de bureau lorsque Claude publie dans la conversation, qu'un thread rencontre une erreur ou qu'un thread a besoin de votre intervention, ce qui vous évite de garder le projet ouvert pour le savoir. Pour en recevoir aussi une chaque fois qu'un thread termine un tour, ou pour les désactiver pour un projet, choisissez **Notifications** dans le menu de la barre latérale du projet. Ces notifications sont réservées à l'application de bureau : dans un navigateur, vérifiez le point sur le bouton **Overview**.195Dans l'application de bureau, une notification apparaît par défaut lorsque Claude publie dans la conversation, qu'un thread rencontre une erreur ou qu'un thread a besoin de votre intervention. Aucune n'apparaît pendant que vous consultez le projet. Pour en recevoir aussi une chaque fois qu'un thread termine un tour, ou pour les désactiver pour un projet, choisissez **Notifications** dans le menu de la barre latérale du projet. Dans un navigateur, vérifiez le point sur le bouton **Threads**.

196 196 

197L'onglet **Threads** du volet regroupe les threads par état :197La vue **Threads** du volet regroupe les threads par état :

198 198 

199| Groupe | Contenu |199| Groupe | Contenu |

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


205| **Idle** | Threads terminés qui n'attendent rien |205| **Idle** | Threads terminés qui n'attendent rien |

206| **Resolved** | Threads marqués comme terminés : par vous depuis le menu du thread, par Claude une fois que vous avez effectué la dernière étape, comme fusionner sa pull request, ou automatiquement après une semaine sans activité. Vous pouvez en rouvrir un depuis le même menu |206| **Resolved** | Threads marqués comme terminés : par vous depuis le menu du thread, par Claude une fois que vous avez effectué la dernière étape, comme fusionner sa pull request, ou automatiquement après une semaine sans activité. Vous pouvez en rouvrir un depuis le même menu |

207 207 

208Les autres onglets du volet sont :208Ouvrez les fichiers et les tâches planifiées du projet dans le volet depuis l'en-tête du projet :

209 209 

210* **Library** : les fichiers et dossiers que vous avez ajoutés et les fichiers produits par les threads210* **Library** : les fichiers et dossiers que vous avez ajoutés et les fichiers produits par les threads. Cliquez sur le bouton **Library** à côté de **Threads**.

211* **Pull requests** : affiché dès que des threads en ont ouvert211* **Scheduled tasks** : les [tâches planifiées cloud](https://code.claude.com/docs/fr/routines.md) que Claude a configurées depuis ce projet. Sélectionnez-le dans le menu **⋯** de l'en-tête.

212* **Scheduled tasks** : les [tâches planifiées cloud](https://code.claude.com/docs/fr/routines.md) que Claude a configurées depuis ce projet

213 212 

214### Ouvrir un thread lorsque vous avez besoin de contrôle213### Ouvrir un thread lorsque vous avez besoin de contrôle

215 214 

216Cliquez 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 :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 :

217 216 

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

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


290| :- | :- | :- |289| :- | :- | :- |

291| Mémoire du projet | Notes que Claude garde sur le projet, comme les exigences, les décisions et les pièges, stockées sous forme de fichiers. Chaque thread cloud lit le fichier d'index `MEMORY.md` au démarrage et ouvre les autres fichiers quand il en a besoin | Demandez à Claude dans la conversation du projet ou n'importe quel thread cloud de mémoriser une exigence, une décision ou un piège, ou d'en oublier un. Lisez, modifiez et supprimez les fichiers dans **Project settings > Memory** |290| Mémoire du projet | Notes que Claude garde sur le projet, comme les exigences, les décisions et les pièges, stockées sous forme de fichiers. Chaque thread cloud lit le fichier d'index `MEMORY.md` au démarrage et ouvre les autres fichiers quand il en a besoin | Demandez à Claude dans la conversation du projet ou n'importe quel thread cloud de mémoriser une exigence, une décision ou un piège, ou d'en oublier un. Lisez, modifiez et supprimez les fichiers dans **Project settings > Memory** |

292| Instructions du projet | Texte envoyé à chaque nouveau thread et à Claude dans la conversation du projet, jusqu'à 16 000 caractères. [Écrire les instructions du projet](#write-project-instructions) couvre ce qu'il faut y mettre | **Project settings > Memory > Project instructions**, ou demandez à Claude de changer les instructions |291| Instructions du projet | Texte envoyé à chaque nouveau thread et à Claude dans la conversation du projet, jusqu'à 16 000 caractères. [Écrire les instructions du projet](#write-project-instructions) couvre ce qu'il faut y mettre | **Project settings > Memory > Project instructions**, ou demandez à Claude de changer les instructions |

293| Dépôts, fichiers et environnement | Les dépôts que chaque thread cloud clone, les dossiers et fichiers qu'il peut lire sous `/mnt/project-files`, et l'environnement cloud dans lequel il s'exécute | Dépôts et environnement dans **Project settings > Environment**, ou demandez à Claude dans la conversation d'ajouter un dépôt au projet. [Fichiers et dossiers](#add-files-and-folders) depuis **Add** sur l'onglet **Library** dans **Overview** |292| Dépôts, fichiers et environnement | Les dépôts que chaque thread cloud clone, les dossiers et fichiers qu'il peut lire sous `/mnt/project-files`, et l'environnement cloud dans lequel il s'exécute | Dépôts et environnement dans **Project settings > Environment**, ou demandez à Claude dans la conversation d'ajouter un dépôt au projet. [Fichiers et dossiers](#add-files-and-folders) depuis **Add** dans la [**Library**](#see-what-needs-you-in-overview) du projet |

294 293 

295**Project settings > Memory** énumère ces fichiers sous **Auto memory**, car Claude les écrit lui-même en travaillant dans le projet. Ils sont distincts de la [mémoire automatique](https://code.claude.com/docs/fr/memory.md) que Claude Code garde sur votre machine, même si les deux utilisent un index `MEMORY.md`. La mémoire du projet est également distincte des fichiers `CLAUDE.md` dans les dépôts du projet. Chaque thread cloud lit toujours ces fichiers `CLAUDE.md` à partir de son clone au démarrage, donc mettez les instructions sur un dépôt dans son `CLAUDE.md` et les notes sur le projet dans la mémoire du projet.294**Project settings > Memory** énumère ces fichiers sous **Auto memory**, car Claude les écrit lui-même en travaillant dans le projet. Ils sont distincts de la [mémoire automatique](https://code.claude.com/docs/fr/memory.md) que Claude Code garde sur votre machine, même si les deux utilisent un index `MEMORY.md`. La mémoire du projet est également distincte des fichiers `CLAUDE.md` dans les dépôts du projet. Chaque thread cloud lit toujours ces fichiers `CLAUDE.md` à partir de son clone au démarrage, donc mettez les instructions sur un dépôt dans son `CLAUDE.md` et les notes sur le projet dans la mémoire du projet.

296 295 

297### Écrire les instructions du projet296### Écrire les instructions du projet

298 297 

299Les instructions du projet sont le brief que chaque nouveau thread commence. Cliquez sur l'icône d'engrenage dans l'en-tête du projet pour ouvrir **Project settings**, puis allez à **Memory > Project instructions**. Un brief utile couvre :298Les instructions du projet sont le brief que chaque nouveau thread commence. Sélectionnez **Settings** dans le menu **⋯** de l'en-tête du projet pour ouvrir **Project settings**, puis allez à **Memory > Project instructions**. Un brief utile couvre :

300 299 

301* À quoi sert le projet300* À quoi sert le projet

302* Où le travail se fait : quels dépôts, à partir de quelle branche commencer, comment nommer les pull requests301* Où le travail se fait : quels dépôts, à partir de quelle branche commencer, comment nommer les pull requests


324* **L'ajouter au projet**, dans la boîte de dialogue **New project**, dans **Project settings > Environment**, ou en demandant à Claude dans la conversation de l'ajouter au projet. Chaque thread cloud à partir de là le clone et commence avec son `CLAUDE.md` chargé, que la tâche le touche ou non.323* **L'ajouter au projet**, dans la boîte de dialogue **New project**, dans **Project settings > Environment**, ou en demandant à Claude dans la conversation de l'ajouter au projet. Chaque thread cloud à partir de là le clone et commence avec son `CLAUDE.md` chargé, que la tâche le touche ou non.

325* **Le laisser de côté et laisser les threads l'ajouter quand nécessaire.** Un thread cloud dont la tâche a besoin d'un dépôt que le projet n'a pas peut l'ajouter à lui-même, et une note dans le thread dit qu'il a été ajouté à ce thread seulement. Le clone se produit à mi-chemin de la tâche, donc le `CLAUDE.md` de ce dépôt n'était pas là quand le thread a commencé. Le thread suivant commence sans lui. Un dépôt ajouté de cette façon a besoin des mêmes [prérequis](#check-the-prerequisites) qu'un dépôt de projet : l'application Claude GitHub installée dessus et l'accès en push de votre compte GitHub.324* **Le laisser de côté et laisser les threads l'ajouter quand nécessaire.** Un thread cloud dont la tâche a besoin d'un dépôt que le projet n'a pas peut l'ajouter à lui-même, et une note dans le thread dit qu'il a été ajouté à ce thread seulement. Le clone se produit à mi-chemin de la tâche, donc le `CLAUDE.md` de ce dépôt n'était pas là quand le thread a commencé. Le thread suivant commence sans lui. Un dépôt ajouté de cette façon a besoin des mêmes [prérequis](#check-the-prerequisites) qu'un dépôt de projet : l'application Claude GitHub installée dessus et l'accès en push de votre compte GitHub.

326 325 

327Un projet n'a pas besoin d'un dépôt du tout. Ses threads cloud peuvent toujours faire de la recherche, écrire des documents et écrire et exécuter du code dans leur propre sandbox, et ils livrent des fichiers à l'onglet **Library**. N'importe quel thread cloud peut aussi ajouter un dépôt à lui-même quand une tâche l'exige.326Un projet n'a pas besoin d'un dépôt du tout. Ses threads cloud peuvent toujours faire de la recherche, écrire des documents et écrire et exécuter du code dans leur propre sandbox. Ils livrent des fichiers à la **Library** du projet. N'importe lequel de ses threads cloud peut toujours ajouter un dépôt à lui-même quand une tâche l'exige.

328 327 

329Une fois que le projet a des dépôts, Claude ne peut ajouter que des dépôts d'un propriétaire GitHub que le projet utilise déjà, qu'il en ajoute un au projet ou qu'un thread en ajoute un à lui-même. Pour apporter un dépôt d'un propriétaire différent, ajoutez-le au projet vous-même dans **Project settings > Environment**.328Une fois que le projet a des dépôts, Claude ne peut ajouter que des dépôts d'un propriétaire GitHub que le projet utilise déjà, qu'il en ajoute un au projet ou qu'un thread en ajoute un à lui-même. Pour apporter un dépôt d'un propriétaire différent, ajoutez-le au projet vous-même dans **Project settings > Environment**.

330 329 


332 331 

333### Ajouter des fichiers et des dossiers332### Ajouter des fichiers et des dossiers

334 333 

335Ajoutez les fichiers et dossiers que vous voulez que les threads lisent dans le champ **Context** de la boîte de dialogue **New project**, ou après avec **Add** sur l'onglet **Library** dans **Overview**. Ces limites s'appliquent à ce que vous ajoutez :334Ajoutez les fichiers et dossiers que vous voulez que les threads lisent dans le champ **Context** de la boîte de dialogue **New project**, ou après avec **Add** dans la [**Library**](#see-what-needs-you-in-overview) du projet. Ces limites s'appliquent à ce que vous ajoutez :

336 335 

337* **Library tab** : jusqu'à 100 fichiers et 2 GB en un seul choix, avec un seul fichier jusqu'à 480 MB.336* **Fichiers que vous importez sur claude.ai/code ou dans l'application de bureau** : jusqu'à 1 000 fichiers et 2 GB à la fois, avec un seul fichier jusqu'à 480 MB.

338* **New project dialog** : les fichiers de plus de 30 MB sont ignorés, donc ajoutez les fichiers plus volumineux à partir de l'onglet **Library** après avoir créé le projet.337* **Dossiers que vous importez** : les fichiers cachés et `node_modules` ne sont pas ajoutés. Un projet contient jusqu'à 10 dossiers et dossiers Google Drive combinés, et les fichiers uniques ne comptent pas vers cette limite.

339* **Folders** : quand vous ajoutez un dossier à partir de l'un ou l'autre endroit, le projet reçoit une copie de ses 100 premiers fichiers jusqu'à 200 MB, sans aucun fichier de plus de 30 MB, fichiers cachés ou `node_modules`. Un projet contient jusqu'à 10 dossiers et dossiers Google Drive combinés, et les fichiers uniques ne comptent pas vers cette limite.

340* **Changes after upload** : les uploads sont des copies, donc une modification que vous apportez sur votre ordinateur après ne parvient au projet que si vous téléchargez le fichier à nouveau et choisissez **Replace** quand on vous demande le nom existant.338* **Changes after upload** : les uploads sont des copies, donc une modification que vous apportez sur votre ordinateur après ne parvient au projet que si vous téléchargez le fichier à nouveau et choisissez **Replace** quand on vous demande le nom existant.

341 339 

342### Ce que les threads reprennent de vos dépôts340### Ce que les threads reprennent de vos dépôts


373 371 

374## Référence des paramètres du projet372## Référence des paramètres du projet

375 373 

376Vous changez les paramètres du projet à claude.ai/code ou dans l'application de bureau, pas dans `settings.json`. Ouvrez **Project settings** depuis **Settings** dans le menu de la barre latérale du projet ou depuis l'icône d'engrenage dans l'en-tête du projet.374Vous changez les paramètres du projet à claude.ai/code ou dans l'application de bureau, pas dans `settings.json`. Ouvrez **Project settings** depuis **Settings** dans le menu de la barre latérale du projet ou depuis le menu **⋯** de l'en-tête du projet.

377 375 

378Les paramètres s'enregistrent au fur et à mesure que vous les modifiez ; un champ de texte que vous modifiez, comme l'objectif ou les instructions, affiche **Save changes** et **Discard** jusqu'à ce que vous le quittiez. Les modifications apportées aux instructions, référentiels, plugins et environnement dans **Project settings** atteignent les nouveaux threads, pas les threads déjà en cours d'exécution.376Les paramètres s'enregistrent au fur et à mesure que vous les modifiez ; un champ de texte que vous modifiez, comme l'objectif ou les instructions, affiche **Save changes** et **Discard** jusqu'à ce que vous le quittiez. Les modifications apportées aux instructions, référentiels, plugins et environnement dans **Project settings** atteignent les nouveaux threads, pas les threads déjà en cours d'exécution.

379 377 


434 432 

435 Les projets sont disponibles sur Pro, Max et Ultra. Un projet est le vôtre seul : vous êtes le seul à lui envoyer du travail ou à voir ses threads, et il utilise votre propre accès GitHub et vos connecteurs. [Comment Claude Tag diffère de Cowork et Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) présente la comparaison côte à côte.433 Les projets sont disponibles sur Pro, Max et Ultra. Un projet est le vôtre seul : vous êtes le seul à lui envoyer du travail ou à voir ses threads, et il utilise votre propre accès GitHub et vos connecteurs. [Comment Claude Tag diffère de Cowork et Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) présente la comparaison côte à côte.

436* **Sessions cloud** : chaque thread est une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md) sauf si vous demandez à Claude de l'exécuter sur votre machine. De toute façon, Claude la démarre et la suit au lieu de vous. Vous pouvez également intégrer à un projet le travail d'une session cloud que vous avez démarrée vous-même : choisissez [**Continue in project**](#start-from-an-existing-cloud-session) dans le menu de la barre latérale de cette session.434* **Sessions cloud** : chaque thread est une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md) sauf si vous demandez à Claude de l'exécuter sur votre machine. De toute façon, Claude la démarre et la suit au lieu de vous. Vous pouvez également intégrer à un projet le travail d'une session cloud que vous avez démarrée vous-même : choisissez [**Continue in project**](#start-from-an-existing-cloud-session) dans le menu de la barre latérale de cette session.

437* **Tâches planifiées** : quand vous demandez du travail planifié dans un projet, Claude crée une [tâche planifiée cloud](https://code.claude.com/docs/fr/routines.md) qui s'exécute en tant que threads dans ce projet et apparaît sur son onglet **Scheduled tasks**. Les tâches planifiées que vous créez en dehors d'un projet continuent à fonctionner seules.435* **Tâches planifiées** : quand vous demandez du travail planifié dans un projet, Claude crée une [tâche planifiée cloud](https://code.claude.com/docs/fr/routines.md) qui s'exécute en tant que threads dans ce projet et apparaît dans sa vue **Scheduled tasks**. Les tâches planifiées que vous créez en dehors d'un projet continuent à fonctionner seules.

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

439* **Sessions locales et agent view** : une session que vous démarrez vous-même dans votre terminal, IDE ou l'environnement local de l'application de bureau reste en dehors de vos projets, mais vous pouvez [intégrer son travail à l'un d'eux](#start-from-an-existing-cloud-session). [Agent view](https://code.claude.com/docs/fr/agent-view.md) est un écran pour suivre plusieurs sessions locales côte à côte, et vous démarrez toujours chacune et lui donnez sa tâche vous-même.437* **Sessions locales et agent view** : une session que vous démarrez vous-même dans votre terminal, IDE ou l'environnement local de l'application de bureau reste en dehors de vos projets, mais vous pouvez [intégrer son travail à l'un d'eux](#start-from-an-existing-cloud-session). [Agent view](https://code.claude.com/docs/fr/agent-view.md) est un écran pour suivre plusieurs sessions locales côte à côte, et vous démarrez toujours chacune et lui donnez sa tâche vous-même.

440* **Worktrees** : un [worktree](https://code.claude.com/docs/fr/worktrees.md) donne à chaque session locale sa propre copie de travail d'un dépôt. Les threads cloud n'en ont pas besoin : chacun clone ses dépôts dans son propre sandbox cloud et travaille sur sa propre branche.438* **Worktrees** : un [worktree](https://code.claude.com/docs/fr/worktrees.md) donne à chaque session locale sa propre copie de travail d'un dépôt. Les threads cloud n'en ont pas besoin : chacun clone ses dépôts dans son propre sandbox cloud et travaille sur sa propre branche.


466Quand plusieurs threads reviennent ayant supposé quelque chose de mal, contourné l'accès manquant ou arrêté avec « bloqué », la cause est généralement le même écart dans la configuration du projet plutôt qu'un problème avec chaque tâche. Triez les threads qui sont solides avant de corriger quoi que ce soit :464Quand plusieurs threads reviennent ayant supposé quelque chose de mal, contourné l'accès manquant ou arrêté avec « bloqué », la cause est généralement le même écart dans la configuration du projet plutôt qu'un problème avec chaque tâche. Triez les threads qui sont solides avant de corriger quoi que ce soit :

467 465 

4681. Demandez à Claude dans la conversation : « Pour chaque thread ouvert, énumérez ce que vous lui avez demandé de faire, ce qu'il a supposé ou ne pouvait pas atteindre, et sur quoi il attend. » Claude lit chaque thread et répond dans la conversation.4661. Demandez à Claude dans la conversation : « Pour chaque thread ouvert, énumérez ce que vous lui avez demandé de faire, ce qu'il a supposé ou ne pouvait pas atteindre, et sur quoi il attend. » Claude lit chaque thread et répond dans la conversation.

4692. Pour les threads qui ont commencé à partir d'une mauvaise hypothèse, ouvrez le thread depuis **Overview** et marquez-le résolu depuis son menu, ou dites-lui quoi faire à la place dans sa boîte de message. Sa branche et toute pull request restent sur GitHub jusqu'à ce que vous les supprimiez.4672. Pour les threads qui ont commencé à partir d'une mauvaise hypothèse, ouvrez le thread depuis Overview et marquez-le résolu depuis son menu, ou dites-lui quoi faire à la place. Sa branche et toute pull request restent sur GitHub jusqu'à ce que vous les supprimiez.

4703. Corrigez l'écart une seule fois, dans [les instructions du projet](#give-a-project-standing-context) ou l'[environnement](#choose-an-environment-for-threads), puis envoyez un thread avant d'envoyer le reste du travail à nouveau en tant que nouveaux threads.4683. Corrigez l'écart une seule fois, dans [les instructions du projet](#give-a-project-standing-context) ou l'[environnement](#choose-an-environment-for-threads), puis envoyez un thread avant d'envoyer le reste du travail à nouveau en tant que nouveaux threads.

471 469 

472### Claude n'a pas répondu470### Claude n'a pas répondu

Details

71 71 

72**2. Choisissez ce que vous souhaitez analyser**72**2. Choisissez ce que vous souhaitez analyser**

73 73 

74Le plugin lit d'abord votre référentiel, puis propose le référentiel entier ou une zone ciblée, avec le nombre de fichiers et le coût relatif de chaque option indiqués. Choisissez le référentiel entier, ou répondez « I don't know » et le plugin choisit une valeur par défaut sensée pour la taille de votre référentiel.74Le plugin lit d'abord votre dépôt, puis propose le dépôt entier ou une zone ciblée. Choisissez le dépôt entier, ou répondez « I don't know » et le plugin choisit une valeur par défaut sensée pour la taille de votre dépôt.

75 75 

76**3. Confirmez l'exécution**76**3. Confirmez l'exécution**

77 77 

78Une analyse peut prendre un certain temps, peut utiliser un nombre important de jetons et nécessite que Claude Code reste ouvert jusqu'à son achèvement. Rien ne s'exécute jusqu'à ce que vous confirmiez.78Une analyse peut prendre un certain temps, peut utiliser un nombre important de tokens et nécessite que Claude Code reste ouvert jusqu'à son achèvement. Rien ne s'exécute jusqu'à ce que vous confirmiez.

79 79 

80**4. Lisez le rapport**80**4. Lisez le rapport**

81 81 

82Pendant que l'analyse s'exécute, elle signale chaque étape au fur et à mesure qu'elle commence, avec les détails disponibles sous [`/workflows`](https://code.claude.com/docs/fr/workflows). Les résultats se trouvent dans un répertoire horodaté dans votre référentiel, décrit dans [Lisez les résultats de l'analyse](#read-the-scan-results).82Pendant que l'analyse s'exécute, elle signale chaque étape au fur et à mesure qu'elle commence, avec les détails disponibles sous [`/workflows`](https://code.claude.com/docs/fr/workflows). Les résultats se trouvent dans un répertoire horodaté dans votre dépôt, décrit dans [Lisez les résultats de l'analyse](#read-the-scan-results).

83 83 

84**5. Transformez les résultats en correctifs**84**5. Transformez les résultats en correctifs**

85 85 


87 87 

88**6. Appliquez les correctifs que vous acceptez**88**6. Appliquez les correctifs que vous acceptez**

89 89 

90Appliquez chaque correctif à partir de votre shell avec `git apply`, dans sa propre demande de fusion. Les correctifs ne sont jamais appliqués automatiquement.90Appliquez chaque correctif à partir de votre shell avec `git apply`, dans sa propre pull request. Les correctifs ne sont jamais appliqués automatiquement.

91 91 

92Vous n'avez pas besoin de commencer par le menu : demandez une tâche directement, comme arguments de la commande, tels que `/claude-security scan my branch`, ou en langage naturel, comme « scan commit abc1234 ». Le plugin fonctionne mieux en [mode auto](https://code.claude.com/docs/fr/permission-modes.md), qui permet aux agents de l'analyse de procéder sans invite de permission à chaque étape.92Vous n'avez pas besoin de commencer par le menu : demandez une tâche directement, comme arguments de la commande, tels que `/claude-security scan my branch`, ou en langage naturel, comme « scan commit abc1234 ». Le plugin fonctionne mieux en [mode auto](https://code.claude.com/docs/fr/permission-modes.md), qui permet aux agents de l'analyse de procéder sans invite de permission à chaque étape.

93 93 


95 95 

96Lorsque votre branche a des commits que sa base n'a pas, le menu `/claude-security` propose d'analyser uniquement ce diff, afin que vous puissiez vérifier une branche avant de la fusionner. Vous pouvez également analyser l'une de vos demandes de fusion ouvertes, ou un seul commit en le demandant, comme « scan commit abc1234 ». Seules les modifications validées sont analysées : validez ou remisez d'abord les modifications en cours, ou exécutez une analyse complète, qui lit l'arborescence de travail.96Lorsque votre branche a des commits que sa base n'a pas, le menu `/claude-security` propose d'analyser uniquement ce diff, afin que vous puissiez vérifier une branche avant de la fusionner. Vous pouvez également analyser l'une de vos demandes de fusion ouvertes, ou un seul commit en le demandant, comme « scan commit abc1234 ». Seules les modifications validées sont analysées : validez ou remisez d'abord les modifications en cours, ou exécutez une analyse complète, qui lit l'arborescence de travail.

97 97 

98Les analyses de modifications nécessitent un référentiel git ; les analyses complètes d'un répertoire sans version fonctionnent toujours. Trouver vos demandes de fusion ouvertes est la seule étape qui atteint le réseau, et elle n'est proposée que lorsque votre session a déjà la permission d'exécuter le CLI GitHub et que `gh` est connecté.98Les analyses de modifications nécessitent un dépôt git ; les analyses complètes d'un répertoire sans version fonctionnent toujours. La recherche de vos pull requests ouvertes n'est proposée que lorsque votre session a déjà la permission d'exécuter le CLI GitHub et que `gh` est connecté.

99 99 

100### Délimitez les grands référentiels100### Délimitez les grands référentiels

101 101 


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

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

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

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

124 124 

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

126 126 

127Les résultats n'apparaissent dans le rapport qu'après que les agents vérificateurs indépendants les analysent, ce qui garde les rapports courts et dignes de lecture. Les analyses sont non déterministes : deux analyses du même code peuvent révéler des résultats différents. Exécutez les analyses régulièrement et utilisez les tampons de révision pour attribuer chaque rapport au code exact et aux paramètres qu'il couvrait.127Les résultats n'apparaissent dans le rapport qu'après que les agents vérificateurs indépendants les analysent, ce qui garde les rapports courts et dignes de lecture. Les analyses sont non déterministes : deux analyses du même code peuvent révéler des résultats différents. Exécutez les analyses régulièrement.

128 128 

129## Corrigez les résultats129## Corrigez les résultats

130 130 

Details

102* **Rôle** : sur tous les plans, vous pouvez ajouter et supprimer des secrets sur vos propres environnements, quel que soit votre rôle. Sur Team et Enterprise, les propriétaires détiennent un rôle d'administrateur d'organisation dans votre organisation claude.ai et les administrateurs non, ce qui modifie ce que vous voyez dans ces cas :102* **Rôle** : sur tous les plans, vous pouvez ajouter et supprimer des secrets sur vos propres environnements, quel que soit votre rôle. Sur Team et Enterprise, les propriétaires détiennent un rôle d'administrateur d'organisation dans votre organisation claude.ai et les administrateurs non, ce qui modifie ce que vous voyez dans ces cas :

103 * **Votre propre environnement** : sans rôle d'administrateur d'organisation, **Add secret** ouvre un [formulaire plus court](#add-a-secret-without-the-role)103 * **Votre propre environnement** : sans rôle d'administrateur d'organisation, **Add secret** ouvre un [formulaire plus court](#add-a-secret-without-the-role)

104 * **Un environnement partagé** : les propriétaires [ajoutent et suppriment ses secrets](#add-a-credential) à partir des paramètres d'administration. Sans rôle d'administrateur d'organisation, demandez à un propriétaire d'ajouter le secret, car la boîte de dialogue de l'environnement n'a pas de section **Network secrets**104 * **Un environnement partagé** : les propriétaires [ajoutent et suppriment ses secrets](#add-a-credential) à partir des paramètres d'administration. Sans rôle d'administrateur d'organisation, demandez à un propriétaire d'ajouter le secret, car la boîte de dialogue de l'environnement n'a pas de section **Network secrets**

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

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

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

108 108 

Details

14>14>

15> Pour que chaque pull request d'un dépôt soit automatiquement revue sur GitHub, consultez [Code Review](https://code.claude.com/docs/fr/code-review.md), un service géré qu'un Owner active pour votre organisation.15> Pour que chaque pull request d'un dépôt soit automatiquement revue sur GitHub, consultez [Code Review](https://code.claude.com/docs/fr/code-review.md), un service géré qu'un Owner active pour votre organisation.

16 16 

17`/review` est un alias de `/code-review`. Avant la v2.1.223, `/review` était une commande distincte qui effectuait une revue en une seule passe, en lecture seule, d'une pull request GitHub.17`/review` est un alias de `/code-review`.

18 18 

19**1. Exécuter /code-review**19**1. Exécuter /code-review**

20 20 


91* **`ultra`** : la revue n'utilise ni ne met à jour le niveau mémorisé91* **`ultra`** : la revue n'utilise ni ne met à jour le niveau mémorisé

92* **Aucun niveau jamais tapé** : la revue utilise l'effort actuel de la session92* **Aucun niveau jamais tapé** : la revue utilise l'effort actuel de la session

93 93 

94Avant la v2.1.223, un `/code-review` sans niveau utilisait toujours l'effort actuel de la session.

95 

96### Publier les résultats sur une merge request GitLab94### Publier les résultats sur une merge request GitLab

97 95 

98Lorsque vous passez `--comment` pour une merge request GitLab, Claude Code publie les résultats via le CLI `glab` de GitLab. Nécessite Claude Code v2.1.257 ou ultérieur. Lorsque `glab` n'est pas installé, Claude affiche plutôt les résultats dans le terminal.96Lorsque vous passez `--comment` pour une merge request GitLab, Claude Code publie les résultats via le CLI `glab` de GitLab. Nécessite Claude Code v2.1.257 ou ultérieur. Lorsque `glab` n'est pas installé, Claude affiche plutôt les résultats dans le terminal.

commands.md +2 −2

Details

104| `/install-github-app` | Installer l'application Claude GitHub App pour un dépôt, avec une étape facultative pour configurer les workflows et secrets [GitHub Actions](https://code.claude.com/docs/fr/github-actions.md). Vous guide dans la sélection d'un dépôt et la configuration de l'intégration. Fonctionne uniquement avec les dépôts github.com. Lorsque le remote git de votre dépôt se trouve sur gitlab.com ou bitbucket.org, la commande affiche un avis et se termine au lieu de lancer la configuration. Pour exécuter Claude Code depuis des pipelines GitLab, consultez [GitLab CI/CD](https://code.claude.com/docs/fr/gitlab-ci-cd.md) |104| `/install-github-app` | Installer l'application Claude GitHub App pour un dépôt, avec une étape facultative pour configurer les workflows et secrets [GitHub Actions](https://code.claude.com/docs/fr/github-actions.md). Vous guide dans la sélection d'un dépôt et la configuration de l'intégration. Fonctionne uniquement avec les dépôts github.com. Lorsque le remote git de votre dépôt se trouve sur gitlab.com ou bitbucket.org, la commande affiche un avis et se termine au lieu de lancer la configuration. Pour exécuter Claude Code depuis des pipelines GitLab, consultez [GitLab CI/CD](https://code.claude.com/docs/fr/gitlab-ci-cd.md) |

105| `/install-slack-app` | Installer l'application Claude Slack. Ouvre un navigateur pour terminer le flux OAuth |105| `/install-slack-app` | Installer l'application Claude Slack. Ouvre un navigateur pour terminer le flux OAuth |

106| `/keybindings` | Ouvrir votre fichier de [raccourcis clavier](https://code.claude.com/docs/fr/keybindings.md) |106| `/keybindings` | Ouvrir votre fichier de [raccourcis clavier](https://code.claude.com/docs/fr/keybindings.md) |

107| `/list-agents` | Lister les sous-agents, les coéquipiers d'une [équipe d'agents](https://code.claude.com/docs/fr/agent-teams.md) et les autres sessions Claude Code auxquels Claude peut envoyer des messages, avec le nom à utiliser pour chacun. Consultez [messagerie entre sessions](https://code.claude.com/docs/fr/cross-session-messaging.md). Également disponible sous la forme `/peers`. Nécessite Claude Code v2.1.224 ou ultérieure ; les versions antérieures signalent `Unknown command: /list-agents`. Les lignes des coéquipiers et la première ligne indiquant le nom de cette session nécessitent la v2.1.239 ou ultérieure. Disponible uniquement dans les sessions où la [messagerie entre sessions est activée](https://code.claude.com/docs/fr/cross-session-messaging.md#availability) |107| `/list-agents` | Lister les sous-agents, les coéquipiers d'une [équipe d'agents](https://code.claude.com/docs/fr/agent-teams.md) et les autres sessions Claude Code auxquels Claude peut envoyer des messages, avec le nom à utiliser pour chacun. Consultez [messagerie entre sessions](https://code.claude.com/docs/fr/cross-session-messaging.md). Également disponible sous la forme `/peers`. Les lignes des coéquipiers et la première ligne indiquant le nom de cette session nécessitent la v2.1.239 ou ultérieure. Disponible uniquement dans les sessions où la [messagerie entre sessions est activée](https://code.claude.com/docs/fr/cross-session-messaging.md#availability) |

108| `/login` | Se connecter à votre compte Anthropic |108| `/login` | Se connecter à votre compte Anthropic |

109| `/logout` | Se déconnecter de votre compte Anthropic |109| `/logout` | Se déconnecter de votre compte Anthropic |

110| `/loop [interval] [prompt]` | **[Skill](https://code.claude.com/docs/fr/skills.md#bundled-skills).** Exécuter un prompt de façon répétée tant que la session reste ouverte. Omettez l'intervalle et Claude [règle lui-même le rythme entre les itérations](https://code.claude.com/docs/fr/scheduled-tasks.md#let-claude-choose-the-interval). Omettez le prompt et Claude exécute le [prompt de maintenance intégré](https://code.claude.com/docs/fr/scheduled-tasks.md#run-the-built-in-maintenance-prompt) ou votre [`loop.md`](https://code.claude.com/docs/fr/scheduled-tasks#customize-the-default-prompt-with-loop-md). Exemple : `/loop 5m check if the deploy finished`. Consultez [Exécuter des prompts selon une planification](https://code.claude.com/docs/fr/scheduled-tasks.md). Alias : `/proactive` |110| `/loop [interval] [prompt]` | **[Skill](https://code.claude.com/docs/fr/skills.md#bundled-skills).** Exécuter un prompt de façon répétée tant que la session reste ouverte. Omettez l'intervalle et Claude [règle lui-même le rythme entre les itérations](https://code.claude.com/docs/fr/scheduled-tasks.md#let-claude-choose-the-interval). Omettez le prompt et Claude exécute le [prompt de maintenance intégré](https://code.claude.com/docs/fr/scheduled-tasks.md#run-the-built-in-maintenance-prompt) ou votre [`loop.md`](https://code.claude.com/docs/fr/scheduled-tasks#customize-the-default-prompt-with-loop-md). Exemple : `/loop 5m check if the deploy finished`. Consultez [Exécuter des prompts selon une planification](https://code.claude.com/docs/fr/scheduled-tasks.md). Alias : `/proactive` |


132| `/rename [name]` | Renommer la session en cours et afficher le nom dans la barre de prompt. Sans nom, en génère automatiquement un à partir de l'historique de la conversation. Également disponible en mode non interactif (`-p`). Depuis toutes les surfaces de renommage, y compris claude.ai et l'application de bureau, Claude Code remplace les caractères de contrôle et invisibles du nouveau nom par des espaces et limite le nom à 200 caractères. Si le nom est vide une fois les caractères invisibles supprimés, Claude Code le rejette et affiche `That name is empty once invisible characters are removed. Usage: /rename <name>`. Le remplacement des caractères et la limite de longueur nécessitent Claude Code v2.1.221 ou ultérieure |132| `/rename [name]` | Renommer la session en cours et afficher le nom dans la barre de prompt. Sans nom, en génère automatiquement un à partir de l'historique de la conversation. Également disponible en mode non interactif (`-p`). Depuis toutes les surfaces de renommage, y compris claude.ai et l'application de bureau, Claude Code remplace les caractères de contrôle et invisibles du nouveau nom par des espaces et limite le nom à 200 caractères. Si le nom est vide une fois les caractères invisibles supprimés, Claude Code le rejette et affiche `That name is empty once invisible characters are removed. Usage: /rename <name>`. Le remplacement des caractères et la limite de longueur nécessitent Claude Code v2.1.221 ou ultérieure |

133| `/restart` | Redémarrer Claude Code et reprendre cette session, ce qui applique une mise à jour installée. Exécutez-la lorsque le pied de page la propose après l'installation d'une mise à jour. Nécessite un forfait Pro, Max ou Ultra et une installation native sur macOS ou Linux, hors WSL. Nécessite Claude Code v2.1.288 ou ultérieure. Alias : `/update` |133| `/restart` | Redémarrer Claude Code et reprendre cette session, ce qui applique une mise à jour installée. Exécutez-la lorsque le pied de page la propose après l'installation d'une mise à jour. Nécessite un forfait Pro, Max ou Ultra et une installation native sur macOS ou Linux, hors WSL. Nécessite Claude Code v2.1.288 ou ultérieure. Alias : `/update` |

134| `/resume [session]` | Reprendre une conversation par identifiant ou par nom, ou ouvrir le sélecteur de sessions. Les [sessions en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) apparaissent dans le sélecteur marquées `bg`. Reprendre une session encore en cours d'exécution, depuis le sélecteur ou par identifiant ou nom, [ouvre cette session](https://code.claude.com/docs/fr/sessions.md#resume-a-running-background-session) : votre conversation actuelle passe en arrière-plan et ce terminal s'attache à celle en cours d'exécution. Appuyez sur `←` sur un prompt vide pour revenir à la vue des agents, qui liste aussi la conversation que vous avez quittée. Avant la v2.1.285, Claude Code refusait et vous demandait d'ouvrir la session avec `claude attach` ou de l'arrêter d'abord. Alias : `/continue` |134| `/resume [session]` | Reprendre une conversation par identifiant ou par nom, ou ouvrir le sélecteur de sessions. Les [sessions en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) apparaissent dans le sélecteur marquées `bg`. Reprendre une session encore en cours d'exécution, depuis le sélecteur ou par identifiant ou nom, [ouvre cette session](https://code.claude.com/docs/fr/sessions.md#resume-a-running-background-session) : votre conversation actuelle passe en arrière-plan et ce terminal s'attache à celle en cours d'exécution. Appuyez sur `←` sur un prompt vide pour revenir à la vue des agents, qui liste aussi la conversation que vous avez quittée. Avant la v2.1.285, Claude Code refusait et vous demandait d'ouvrir la session avec `claude attach` ou de l'arrêter d'abord. Alias : `/continue` |

135| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias de [`/code-review`](https://code.claude.com/docs/fr/code-review-local) : examine le diff actuel, ou un numéro de PR, une branche ou un chemin que vous passez, comme `/review 1234`, et accepte les mêmes niveaux d'effort et flags. Si aucun niveau n'est indiqué, la revue réutilise le dernier niveau de `low` à `max` que vous avez saisi ; consultez [Effectuer une revue locale avec `/code-review`](https://code.claude.com/docs/fr/code-review-local) pour les règles exactes. Pour une revue cloud approfondie, utilisez [`/code-review ultra`](https://code.claude.com/docs/fr/ultrareview). Avant la v2.1.223, `/review` était une commande distincte qui effectuait une revue en une seule passe et en lecture seule d'une pull request GitHub par numéro, en listant les PR ouvertes parmi lesquelles choisir lorsqu'elle était exécutée sans argument ; de la v2.1.186 à la v2.1.201, elle utilisait le même moteur multi-agents que `/code-review medium` |135| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias de [`/code-review`](https://code.claude.com/docs/fr/code-review-local) : examine le diff actuel, ou un numéro de PR, une branche ou un chemin que vous passez, comme `/review 1234`, et accepte les mêmes niveaux d'effort et flags. Si aucun niveau n'est indiqué, la revue réutilise le dernier niveau de `low` à `max` que vous avez saisi ; consultez [Effectuer une revue locale avec `/code-review`](https://code.claude.com/docs/fr/code-review-local) pour les règles exactes. Pour une revue cloud approfondie, utilisez [`/code-review ultra`](https://code.claude.com/docs/fr/ultrareview) |

136| `/rewind` | Rembobiner la conversation et/ou le code jusqu'à un point antérieur, ou résumer à partir d'un message sélectionné. Consultez [checkpointing](https://code.claude.com/docs/fr/checkpointing.md). Alias : `/checkpoint`, `/undo` |136| `/rewind` | Rembobiner la conversation et/ou le code jusqu'à un point antérieur, ou résumer à partir d'un message sélectionné. Consultez [checkpointing](https://code.claude.com/docs/fr/checkpointing.md). Alias : `/checkpoint`, `/undo` |

137| `/run` | **[Skill](https://code.claude.com/docs/fr/skills.md#bundled-skills).** Lancer et piloter l'application de votre projet pour voir une modification fonctionner, et pas seulement passer les tests. Consultez [Exécuter et vérifier votre application](https://code.claude.com/docs/fr/skills.md#run-and-verify-your-app) |137| `/run` | **[Skill](https://code.claude.com/docs/fr/skills.md#bundled-skills).** Lancer et piloter l'application de votre projet pour voir une modification fonctionner, et pas seulement passer les tests. Consultez [Exécuter et vérifier votre application](https://code.claude.com/docs/fr/skills.md#run-and-verify-your-app) |

138| `/run-skill-generator` | **[Skill](https://code.claude.com/docs/fr/skills.md#bundled-skills).** Apprendre à `/run` et `/verify` comment compiler, lancer et piloter l'application de votre projet à partir d'un environnement vierge, en écrivant un [skill](https://code.claude.com/docs/fr/skills.md#run-and-verify-your-app) propre au projet |138| `/run-skill-generator` | **[Skill](https://code.claude.com/docs/fr/skills.md#bundled-skills).** Apprendre à `/run` et `/verify` comment compiler, lancer et piloter l'application de votre projet à partir d'un environnement vierge, en écrivant un [skill](https://code.claude.com/docs/fr/skills.md#run-and-verify-your-app) propre au projet |

costs.md +7 −7

Details

8 8 

9Claude Code facture selon la consommation de tokens API. Pour les tarifs des plans d'abonnement (Pro, Max, Ultra, Team, Enterprise), consultez [claude.com/pricing](https://claude.com/pricing). Les coûts par développeur varient considérablement en fonction de la sélection du modèle, de la taille de la base de code et des modèles d'utilisation tels que l'exécution de plusieurs instances ou l'automatisation.9Claude Code facture selon la consommation de tokens API. Pour les tarifs des plans d'abonnement (Pro, Max, Ultra, Team, Enterprise), consultez [claude.com/pricing](https://claude.com/pricing). Les coûts par développeur varient considérablement en fonction de la sélection du modèle, de la taille de la base de code et des modèles d'utilisation tels que l'exécution de plusieurs instances ou l'automatisation.

10 10 

11Dans les déploiements d'entreprise, le coût moyen est d'environ 13 $par développeur par jour actif et de 150 à 250$ par développeur par mois, les coûts restant en dessous de 30 \$ par jour actif pour 90 % des utilisateurs. Pour estimer les dépenses de votre équipe, commencez par un petit groupe pilote et utilisez les outils de suivi ci-dessous pour établir une base de référence avant un déploiement plus large.11Dans les déploiements d'entreprise, le coût moyen est d'environ 13 \$ par développeur par jour actif et de 150 à 250 \$ par développeur par mois, les coûts restant en dessous de 30 \$ par jour actif pour 90 % des utilisateurs. Pour estimer les dépenses de votre équipe, commencez par un petit groupe pilote et utilisez les outils de suivi ci-dessous pour établir une base de référence avant un déploiement plus large.

12 12 

13Cette page concerne uniquement l'utilisation de Claude Code : comment [suivre vos coûts](#track-your-costs), [gérer les coûts pour votre organisation](#manage-costs-for-your-organization) et [réduire l'utilisation des tokens](#reduce-token-usage). Pour les limites d'utilisation des autres produits Claude, consultez le [Centre d'aide Claude](https://support.claude.com).13Cette page concerne uniquement l'utilisation de Claude Code : comment [suivre vos coûts](#track-your-costs), [gérer les coûts pour votre organisation](#manage-costs-for-your-organization) et [réduire l'utilisation des tokens](#reduce-token-usage). Pour les limites d'utilisation des autres produits Claude, consultez le [Centre d'aide Claude](https://support.claude.com).

14 14 


292 292 

293Des [hooks](https://code.claude.com/docs/fr/hooks.md) personnalisés peuvent prétraiter les données avant que Claude ne les voie. Au lieu que Claude lise un fichier de log de 10 000 lignes pour trouver des erreurs, un hook peut rechercher `ERROR` avec grep et ne renvoyer que les lignes correspondantes, réduisant le contexte de dizaines de milliers de tokens à quelques centaines.293Des [hooks](https://code.claude.com/docs/fr/hooks.md) personnalisés peuvent prétraiter les données avant que Claude ne les voie. Au lieu que Claude lise un fichier de log de 10 000 lignes pour trouver des erreurs, un hook peut rechercher `ERROR` avec grep et ne renvoyer que les lignes correspondantes, réduisant le contexte de dizaines de milliers de tokens à quelques centaines.

294 294 

295Un [skill](https://code.claude.com/docs/fr/skills.md) peut fournir à Claude des connaissances du domaine afin qu'il n'ait pas à explorer. Par exemple, un skill « codebase-overview » pourrait décrire l'architecture de votre projet, ses répertoires clés et ses conventions de nommage. Lorsque Claude invoque le skill, il obtient immédiatement ce contexte au lieu de dépenser des tokens à lire plusieurs fichiers pour comprendre la structure.295Ce hook PreToolUse réduit la sortie des tests à ses 100 dernières lignes :

296 

297Par exemple, ce hook PreToolUse filtre la sortie des tests pour n'afficher que les échecs :

298 296 

299> [tab] settings.json297> [tab] settings.json

300>298>


320 318 

321> [tab] filter-test-output.sh319> [tab] filter-test-output.sh

322>320>

323> Le hook appelle ce script. Créez le dossier avec `mkdir -p ~/.claude/hooks`, enregistrez le script ci-dessous sous `~/.claude/hooks/filter-test-output.sh` et rendez-le exécutable avec `chmod +x ~/.claude/hooks/filter-test-output.sh`. Il vérifie si la commande est un lanceur de tests et la modifie pour n'afficher que les échecs :321> Le hook appelle ce script. Créez le dossier avec `mkdir -p ~/.claude/hooks`, enregistrez le script ci-dessous sous `~/.claude/hooks/filter-test-output.sh` et rendez-le exécutable avec `chmod +x ~/.claude/hooks/filter-test-output.sh`. Il vérifie si la commande est un lanceur de tests et, si c'est le cas, ne conserve que les 100 dernières lignes de sa sortie :

324>322>

325> ```bash theme={null}323> ```bash theme={null}

326> #!/bin/bash324> #!/bin/bash

327> input=$(cat)325> input=$(cat)

328> cmd=$(echo "$input" | jq -r '.tool_input.command')326> cmd=$(echo "$input" | jq -r '.tool_input.command')

329>327>

330> # If running tests, filter to show only failures328> # If running tests, keep only the last 100 lines

331> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'329> pattern='^(npm test|pytest|go test)( [^;&|<>`$#\\[:cntrl:]]*)?$'

332> if [[ "$cmd" =~ $pattern ]]; then330> if [[ "$cmd" =~ $pattern ]]; then

333> filtered_cmd="$cmd 2>&1 | grep -A 5 -E '(FAIL|ERROR|error:)' | head -100"331> filtered_cmd="$cmd 2>&1 | tail -n 100"

334> echo "$input" | jq --arg filtered "$filtered_cmd" \332> echo "$input" | jq --arg filtered "$filtered_cmd" \

335> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'333> '{hookSpecificOutput: {hookEventName: "PreToolUse", updatedInput: (.tool_input + {command: $filtered})}}'

336> else334> else


340 338 

341Pour vérifier la configuration, exécutez `/hooks` et vérifiez que le hook apparaît sous PreToolUse. Vous pouvez également démarrer Claude Code avec `claude --debug-file ./claude-debug.txt` et demander à Claude d'exécuter `npm test`. Lorsque le hook réécrit la commande, ce fichier de log contient une ligne `modified tool input keys` listant `command` et les autres champs d'entrée de Bash.339Pour vérifier la configuration, exécutez `/hooks` et vérifiez que le hook apparaît sous PreToolUse. Vous pouvez également démarrer Claude Code avec `claude --debug-file ./claude-debug.txt` et demander à Claude d'exécuter `npm test`. Lorsque le hook réécrit la commande, ce fichier de log contient une ligne `modified tool input keys` listant `command` et les autres champs d'entrée de Bash.

342 340 

341Un [skill](https://code.claude.com/docs/fr/skills.md) peut fournir à Claude des connaissances du domaine afin qu'il n'ait pas à explorer. Par exemple, un skill « codebase-overview » pourrait décrire l'architecture de votre projet, ses répertoires clés et ses conventions de nommage. Lorsque Claude invoque le skill, il obtient immédiatement ce contexte au lieu de dépenser des tokens à lire plusieurs fichiers pour comprendre la structure.

342 

343### Déplacer les instructions de CLAUDE.md vers des skills343### Déplacer les instructions de CLAUDE.md vers des skills

344 344 

345Votre fichier [CLAUDE.md](https://code.claude.com/docs/fr/memory.md) est chargé dans le contexte au démarrage de la session. S'il contient des instructions détaillées pour des workflows spécifiques (comme les revues de PR ou les migrations de base de données), ces tokens sont présents même lorsque vous effectuez un travail sans rapport. Les [skills](https://code.claude.com/docs/fr/skills.md) ne se chargent à la demande que lorsqu'ils sont invoqués ; déplacer les instructions spécialisées dans des skills permet donc de réduire votre contexte de base. Visez à garder CLAUDE.md sous les 200 lignes en n'y incluant que l'essentiel.345Votre fichier [CLAUDE.md](https://code.claude.com/docs/fr/memory.md) est chargé dans le contexte au démarrage de la session. S'il contient des instructions détaillées pour des workflows spécifiques (comme les revues de PR ou les migrations de base de données), ces tokens sont présents même lorsque vous effectuez un travail sans rapport. Les [skills](https://code.claude.com/docs/fr/skills.md) ne se chargent à la demande que lorsqu'ils sont invoqués ; déplacer les instructions spécialisées dans des skills permet donc de réduire votre contexte de base. Visez à garder CLAUDE.md sous les 200 lignes en n'y incluant que l'essentiel.

Details

56 56 

57### Livraison des messages57### Livraison des messages

58 58 

59Le Claude récepteur lit le message entre les appels d'outils lors d'un tour actif, donc un outil en cours d'exécution n'est jamais interrompu. Quand la session réceptrice est inactive, Claude Code démarre un nouveau tour avec le message.59Le Claude récepteur lit le message entre les appels d'outils lors d'un tour actif. Quand la session réceptrice est inactive, Claude Code démarre un nouveau tour avec le message.

60 60 

61Un message d'une autre session arrive sous forme de texte brut. S'il mentionne un fichier ou une [ressource MCP](https://code.claude.com/docs/fr/mcp.md#use-mcp-resources) avec `@`, Claude voit la mention telle qu'elle est écrite et Claude Code n'attache rien, que le message démarre un nouveau tour ou arrive pendant un tour. Claude peut toujours ouvrir un chemin mentionné sur la machine réceptrice avec ses propres outils, sous réserve des permissions de cette session.61Un message d'une autre session arrive sous forme de texte brut. S'il mentionne un fichier ou une [ressource MCP](https://code.claude.com/docs/fr/mcp.md#use-mcp-resources) avec `@`, Claude voit la mention telle qu'elle est écrite et Claude Code n'attache rien, que le message démarre un nouveau tour ou arrive pendant un tour. Claude peut toujours ouvrir un chemin mentionné sur la machine réceptrice avec ses propres outils, sous réserve des permissions de cette session.

62 62 

desktop.md +3 −3

Details

256 256 

257### Réduire un volet257### Réduire un volet

258 258 

259Pour garder le Terminal, le Navigateur ou le [Simulateur iOS](https://code.claude.com/docs/fr/desktop-ios-simulator.md) visible en petite taille, cliquez sur **Réduire** dans l'en-tête du volet. Ce bouton nécessite Claude Desktop v4.0.0 ou une version ultérieure et un compte Claude plutôt qu'un [fournisseur tiers](https://code.claude.com/docs/fr/third-party-integrations.md). Le volet Navigateur ne le propose que dans les sessions locales.259Pour garder le Terminal, le Navigateur, le [Simulateur iOS](https://code.claude.com/docs/fr/desktop-ios-simulator.md) ou un [chat latéral](#ask-a-side-question-without-derailing-the-session) visible en petite taille, cliquez sur **Réduire** dans l'en-tête du volet. Ce bouton nécessite Claude Desktop v4.0.0 ou une version ultérieure et un compte Claude plutôt qu'un [fournisseur tiers](https://code.claude.com/docs/fr/third-party-integrations.md). Le volet Navigateur ne le propose que dans les sessions locales.

260 260 

261Le volet réduit se place dans le [panneau des détails de la session](#see-session-details) tant que ce panneau est à l'écran, et flotte dans un coin du chat sinon :261Le volet réduit se place dans le [panneau des détails de la session](#see-session-details) tant que ce panneau est à l'écran, et flotte dans un coin du chat sinon :

262 262 


1382 1382 

1383> [accordion] Quand les modifications dans un worktree continuent de fonctionner1383> [accordion] Quand les modifications dans un worktree continuent de fonctionner

1384>1384>

1385> Sur une machine distante Linux ou macOS, la vérification ne passe pas par Desktop : les modifications à l'intérieur du worktree continuent donc de fonctionner pendant que Desktop est déconnecté. Avant Claude Desktop v2.37337.0, cela ne s'applique qu'aux machines distantes Linux.1385> Sur une machine distante Linux ou macOS, les modifications à l'intérieur du worktree peuvent continuer de fonctionner pendant que Desktop est déconnecté, car la vérification de chaque modification peut s'exécuter sans Desktop. Avant [Claude Desktop v2.37337.0](#check-your-version), cela ne fonctionne que sur une machine distante Linux.

1386>1386>

1387> Les modifications échouent toujours dans certains cas, notamment les suivants :1387> Les modifications échouent toujours dans certains cas, notamment les suivants :

1388>1388>


2050 2050 

2051* **Sessions locales sur cette machine** : un fichier de paramètres gérés déployé sur le disque s'applique. Les paramètres gérés poussés à distance via la console d'administration atteignent également ces sessions sur l'API d'Anthropic lorsque la session s'authentifie avec une [connexion éligible](https://code.claude.com/docs/fr/server-managed-settings.md#platform-availability), en suivant la même [priorité des paramètres](https://code.claude.com/docs/fr/settings.md#settings-precedence) que le CLI du terminal.2051* **Sessions locales sur cette machine** : un fichier de paramètres gérés déployé sur le disque s'applique. Les paramètres gérés poussés à distance via la console d'administration atteignent également ces sessions sur l'API d'Anthropic lorsque la session s'authentifie avec une [connexion éligible](https://code.claude.com/docs/fr/server-managed-settings.md#platform-availability), en suivant la même [priorité des paramètres](https://code.claude.com/docs/fr/settings.md#settings-precedence) que le CLI du terminal.

2052* **[Sessions cloud](#cloud-sessions)** : reçoivent les [paramètres gérés par le serveur](https://code.claude.com/docs/fr/server-managed-settings.md) ; les fichiers déployés sur l'appareil ne les atteignent pas, car ils s'exécutent sur des machines virtuelles gérées par Anthropic. Les sessions acheminées vers un [environnement auto-hébergé](https://code.claude.com/docs/fr/self-hosted-environments) lisent également le fichier de paramètres gérés dans l'image du runner. [Comment Claude Code combine les sources gérées](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) indique quand ce fichier s'applique.2052* **[Sessions cloud](#cloud-sessions)** : reçoivent les [paramètres gérés par le serveur](https://code.claude.com/docs/fr/server-managed-settings.md) ; les fichiers déployés sur l'appareil ne les atteignent pas, car ils s'exécutent sur des machines virtuelles gérées par Anthropic. Les sessions acheminées vers un [environnement auto-hébergé](https://code.claude.com/docs/fr/self-hosted-environments) lisent également le fichier de paramètres gérés dans l'image du runner. [Comment Claude Code combine les sources gérées](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) indique quand ce fichier s'applique.

2053* **[Sessions SSH](#ssh-sessions)** : la session lit le fichier de paramètres gérés à partir de l'hôte distant. Desktop lui-même lit `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` et `disableDesktopLocalSessions` sur la machine locale. Si vous fournissez plus d'une source gérée, il les lit à partir d'[une seule par défaut](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources).2053* **[Sessions SSH](#ssh-sessions)** : la session lit le fichier de paramètres gérés à partir de l'hôte distant. Desktop lui-même lit `sshConfigs`, `sshHostAllowlist`, `disableSshSavedPasswords` et `disableDesktopLocalSessions` sur la machine locale. Si vous fournissez plus d'une source gérée, il les lit à partir d'[une seule par défaut](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources). Si vous définissez `permissions.disableBypassPermissionsMode` ou `disableAutoMode` dans les paramètres gérés en vigueur sur la machine locale, le sélecteur de mode d'une session SSH ne propose pas ce mode, quels que soient les paramètres définis par l'hôte distant.

2054* **Sessions [Cowork](https://claude.com/docs/cowork/overview)** : dans une session Cowork sur cette machine, Claude Code ne récupère jamais les paramètres de la console d'administration, même lorsque l'utilisateur se connecte avec un compte Team ou Enterprise, et lit la politique déployée sur la machine sauf si votre configuration Claude Desktop définit `requireCoworkFullVmSandbox`. Les sessions Cowork distantes ne reçoivent ni l'une ni l'autre. Voir [où et quand une politique s'applique](https://code.claude.com/docs/fr/managed-settings.md#where-and-when-a-policy-applies) pour savoir quels fichiers d'appareil atteignent Cowork, et [règles de permission MCP](https://code.claude.com/docs/fr/permissions.md#mcp) pour savoir comment les règles `Bash` et `WebFetch` s'appliquent aux outils de Cowork.2054* **Sessions [Cowork](https://claude.com/docs/cowork/overview)** : dans une session Cowork sur cette machine, Claude Code ne récupère jamais les paramètres de la console d'administration, même lorsque l'utilisateur se connecte avec un compte Team ou Enterprise, et lit la politique déployée sur la machine sauf si votre configuration Claude Desktop définit `requireCoworkFullVmSandbox`. Les sessions Cowork distantes ne reçoivent ni l'une ni l'autre. Voir [où et quand une politique s'applique](https://code.claude.com/docs/fr/managed-settings.md#where-and-when-a-policy-applies) pour savoir quels fichiers d'appareil atteignent Cowork, et [règles de permission MCP](https://code.claude.com/docs/fr/permissions.md#mcp) pour savoir comment les règles `Bash` et `WebFetch` s'appliquent aux outils de Cowork.

2055 2055 

2056Dans les sessions locales et SSH, l'application de bureau fournit les connecteurs claude.ai connectés de chaque utilisateur à Claude Code directement. Aucun paramètre MCP ou `managed-mcp.json` n'atteint ces connecteurs, quelle que soit la source de paramètres ou l'emplacement du fichier que vous utilisez. Pour bloquer les outils d'un connecteur dans ces sessions, utilisez les [contrôles des outils de connecteur](https://code.claude.com/docs/fr/mcp.md#organization-controls-on-connector-tools) de votre organisation. [Comment les connecteurs atteignent Claude Code](https://code.claude.com/docs/fr/mcp.md#how-connectors-reach-claude-code) montre quels paramètres gouvernent les connecteurs dans chaque type de session.2056Dans les sessions locales et SSH, l'application de bureau fournit les connecteurs claude.ai connectés de chaque utilisateur à Claude Code directement. Aucun paramètre MCP ou `managed-mcp.json` n'atteint ces connecteurs, quelle que soit la source de paramètres ou l'emplacement du fichier que vous utilisez. Pour bloquer les outils d'un connecteur dans ces sessions, utilisez les [contrôles des outils de connecteur](https://code.claude.com/docs/fr/mcp.md#organization-controls-on-connector-tools) de votre organisation. [Comment les connecteurs atteignent Claude Code](https://code.claude.com/docs/fr/mcp.md#how-connectors-reach-claude-code) montre quels paramètres gouvernent les connecteurs dans chaque type de session.

Details

8 8 

9> [!NOTE]9> [!NOTE]

10>10>

11> Le volet Simulateur iOS est en bêta publique dans Claude Code Desktop sur macOS. Il est disponible sur les plans Pro, Max, Ultra, Team et Enterprise, sauf dans les organisations Enterprise qui ont une configuration HIPAA activée.11> Le volet Simulateur iOS est en bêta publique dans Claude Code Desktop sur macOS. Il est disponible sur les plans Pro, Max, Ultra, Team et Enterprise, sauf dans les organisations Enterprise qui ont une configuration HIPAA activée. Il n'est pas disponible si vous utilisez un [fournisseur tiers](https://code.claude.com/docs/fr/third-party-integrations.md).

12 12 

13Le volet Simulateur iOS affiche votre application en cours d'exécution dans le Simulateur iOS d'Apple à côté de votre conversation dans Claude Code Desktop. Lorsque Claude crée, installe, lance ou vérifie votre application dans un simulateur, le volet s'ouvre automatiquement et diffuse l'écran de l'appareil en direct. Utilisez-le pour regarder Claude exécuter et tester votre application, ou pour parcourir l'application vous-même en appuyant sur les éléments tandis que Claude continue à travailler.13Le volet Simulateur iOS affiche votre application en cours d'exécution dans le Simulateur iOS d'Apple à côté de votre conversation dans Claude Code Desktop. Lorsque Claude crée, installe, lance ou vérifie votre application dans un simulateur, le volet s'ouvre automatiquement et diffuse l'écran de l'appareil en direct. Utilisez-le pour regarder Claude exécuter et tester votre application, ou pour parcourir l'application vous-même en appuyant sur les éléments tandis que Claude continue à travailler.

14 14 


147* Énoncez l'objectif explicitement, par exemple « exécutez l'application dans le Simulateur iOS et parcourez le flux d'inscription ».147* Énoncez l'objectif explicitement, par exemple « exécutez l'application dans le Simulateur iOS et parcourez le flux d'inscription ».

148* Confirmez que Xcode et les simulateurs iOS sont installés et que votre version de Xcode répond aux [conditions requises](#requirements).148* Confirmez que Xcode et les simulateurs iOS sont installés et que votre version de Xcode répond aux [conditions requises](#requirements).

149* Si votre organisation gère Claude Code, les [outils de simulateur peuvent être désactivés par la politique](#turn-off-simulator-access).149* Si votre organisation gère Claude Code, les [outils de simulateur peuvent être désactivés par la politique](#turn-off-simulator-access).

150* Si vous êtes dans une organisation Enterprise qui a une configuration HIPAA activée, le volet du simulateur n'est pas disponible pour vous.150* Si vous êtes dans une organisation Enterprise qui a une configuration HIPAA activée, ou si vous utilisez un [fournisseur tiers](https://code.claude.com/docs/fr/third-party-integrations.md), le volet du simulateur n'est pas disponible pour vous.

151* Le volet du simulateur nécessite Claude Desktop v1.24012.0 ou version ultérieure. Ouvrez **Claude > Check for Updates…**, puis redémarrez l'application.151* Le volet du simulateur nécessite Claude Desktop v1.24012.0 ou version ultérieure. Ouvrez **Claude > Check for Updates…**, puis redémarrez l'application.

152 152 

153### Le volet du simulateur indique qu'aucun simulateur n'a été trouvé153### Le volet du simulateur indique qu'aucun simulateur n'a été trouvé

env-vars.md +5 −5

Details

204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Définissez sur `0` pour empêcher Claude Code d'ouvrir automatiquement le navigateur lorsqu'un nouvel [artefact](https://code.claude.com/docs/fr/artifacts.md#create-an-artifact) est publié |204| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Définissez sur `0` pour empêcher Claude Code d'ouvrir automatiquement le navigateur lorsqu'un nouvel [artefact](https://code.claude.com/docs/fr/artifacts.md#create-an-artifact) est publié |

205| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Définissez sur `0` pour empêcher Claude de lire les [commentaires sur un artefact](https://code.claude.com/docs/fr/artifacts.md#collect-comments-on-an-artifact) et d'y répondre. Sans effet lorsque `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` a [désactivé les artefacts](https://code.claude.com/docs/fr/artifacts.md#availability). Nécessite Claude Code v2.1.221 ou ultérieur |205| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Définissez sur `0` pour empêcher Claude de lire les [commentaires sur un artefact](https://code.claude.com/docs/fr/artifacts.md#collect-comments-on-an-artifact) et d'y répondre. Sans effet lorsque `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` a [désactivé les artefacts](https://code.claude.com/docs/fr/artifacts.md#availability). Nécessite Claude Code v2.1.221 ou ultérieur |

206| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Définissez sur `0` pour empêcher Claude de [répondre de lui-même aux commentaires qui lui sont envoyés](https://code.claude.com/docs/fr/artifacts.md#let-claude-reply-to-comments-on-its-own). Nécessite Claude Code v2.1.228 ou ultérieur |206| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Définissez sur `0` pour empêcher Claude de [répondre de lui-même aux commentaires qui lui sont envoyés](https://code.claude.com/docs/fr/artifacts.md#let-claude-reply-to-comments-on-its-own). Nécessite Claude Code v2.1.228 ou ultérieur |

207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Définissez sur `0` pour empêcher Claude d'appliquer de petites modifications au fichier d'un [artefact](https://code.claude.com/docs/fr/artifacts.md#update-an-artifact) dans le cadre de sa publication. Claude modifie alors le fichier avec ses outils d'édition de fichiers et le publie lors d'une étape distincte. Nécessite Claude Code v2.1.300 ou ultérieur |207| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Définissez `0` pour que Claude cesse d'[appliquer de petites modifications](https://code.claude.com/docs/fr/artifacts.md#turn-off-one-step-artifact-updates) au fichier d'un artefact lors de sa publication. Claude modifie alors le fichier avec ses outils d'édition de fichiers et le publie dans une étape distincte. Nécessite Claude Code v2.1.300 ou ultérieur |

208| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Définissez sur `0` pour omettre le [bloc d'attribution](https://code.claude.com/docs/fr/llm-gateway-protocol.md#system-prompt-attribution-block), qui contient la version du client et une empreinte du prompt, au début du prompt système. La mise en cache sur une connexion directe à l'API Anthropic n'est affectée dans aucun cas. Dans certaines configurations à connexion directe, Claude Code conserve le bloc dans les requêtes du classifieur du [mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) même lorsque vous définissez `0`. Dans [Bloc d'attribution du prompt système](https://code.claude.com/docs/fr/llm-gateway-protocol.md#system-prompt-attribution-block), vérifiez quelles connexions et quels identifiants cela concerne. Avant la v2.1.181, le bloc incluait un jeton propre à chaque requête sur les URL de base personnalisées et les connexions Microsoft Foundry ; sur ces versions, définissez-la donc sur `0` lorsque votre passerelle LLM met en cache en fonction du corps de la requête ou transfère les requêtes à un fournisseur tiers, ou lorsque vous vous connectez directement à Microsoft Foundry |208| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Définissez sur `0` pour omettre le [bloc d'attribution](https://code.claude.com/docs/fr/llm-gateway-protocol.md#system-prompt-attribution-block), qui contient la version du client et une empreinte du prompt, au début du prompt système. La mise en cache sur une connexion directe à l'API Anthropic n'est affectée dans aucun cas. Dans certaines configurations à connexion directe, Claude Code conserve le bloc dans les requêtes du classifieur du [mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) même lorsque vous définissez `0`. Dans [Bloc d'attribution du prompt système](https://code.claude.com/docs/fr/llm-gateway-protocol.md#system-prompt-attribution-block), vérifiez quelles connexions et quels identifiants cela concerne. Avant la v2.1.181, le bloc incluait un jeton propre à chaque requête sur les URL de base personnalisées et les connexions Microsoft Foundry ; sur ces versions, définissez-la donc sur `0` lorsque votre passerelle LLM met en cache en fonction du corps de la requête ou transfère les requêtes à un fournisseur tiers, ou lorsque vous vous connectez directement à Microsoft Foundry |

209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Supprimée dans la v2.1.283. Utilisez plutôt `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |209| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Supprimée dans la v2.1.283. Utilisez plutôt `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` |

210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Définit la fenêtre de compaction automatique, c'est-à-dire le niveau de remplissage du contexte avant la compaction, de `100000` à `1000000` tokens. Les valeurs avec suffixe comme `200k` nécessitent la v2.1.304 ou ultérieure. Pour la priorité par rapport aux autres façons de définir la fenêtre et l'effet sur le `used_percentage` de la barre de statut, consultez [Définir la fenêtre de compaction automatique](https://code.claude.com/docs/fr/model-config.md#set-the-auto-compact-window) |210| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Définit la fenêtre de compaction automatique, c'est-à-dire le niveau de remplissage du contexte avant la compaction, de `100000` à `1000000` tokens. Les valeurs avec suffixe comme `200k` nécessitent la v2.1.304 ou ultérieure. Pour la priorité par rapport aux autres façons de définir la fenêtre et l'effet sur le `used_percentage` de la barre de statut, consultez [Définir la fenêtre de compaction automatique](https://code.claude.com/docs/fr/model-config.md#set-the-auto-compact-window) |


502| `OTEL_LOG_TOOL_CONTENT` | Définissez sur `1` pour inclure le contenu des outils dans l'événement de span OpenTelemetry `tool.output`. Les attributs de span transportent le contenu des outils selon [leurs propres conditions](https://code.claude.com/docs/fr/monitoring-usage.md#new-context-gates). Nécessite le [tracing](https://code.claude.com/docs/fr/monitoring-usage.md#traces-beta). Désactivée par défaut pour protéger les données sensibles. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](https://code.claude.com/docs/fr/settings-reference.md#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md#tool-output-span-event) |502| `OTEL_LOG_TOOL_CONTENT` | Définissez sur `1` pour inclure le contenu des outils dans l'événement de span OpenTelemetry `tool.output`. Les attributs de span transportent le contenu des outils selon [leurs propres conditions](https://code.claude.com/docs/fr/monitoring-usage.md#new-context-gates). Nécessite le [tracing](https://code.claude.com/docs/fr/monitoring-usage.md#traces-beta). Désactivée par défaut pour protéger les données sensibles. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](https://code.claude.com/docs/fr/settings-reference.md#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md#tool-output-span-event) |

503| `OTEL_LOG_TOOL_DETAILS` | Définissez sur `1` pour inclure les arguments d'entrée des outils ; les noms des serveurs MCP ; les noms des workflows rédigés par l'utilisateur ; les chaînes d'erreur brutes en cas d'échec d'un outil ; la `category` de refus dans les événements `api_refusal` ; les vrais noms d'agents, de skills, de plugins et de serveurs MCP dans les [métriques de coût et de tokens](https://code.claude.com/docs/fr/monitoring-usage.md#cost-counter) ; et d'autres détails sur les outils dans les métriques, traces et logs OpenTelemetry. Désactivée par défaut pour protéger les données personnelles. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](https://code.claude.com/docs/fr/settings-reference.md#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |503| `OTEL_LOG_TOOL_DETAILS` | Définissez sur `1` pour inclure les arguments d'entrée des outils ; les noms des serveurs MCP ; les noms des workflows rédigés par l'utilisateur ; les chaînes d'erreur brutes en cas d'échec d'un outil ; la `category` de refus dans les événements `api_refusal` ; les vrais noms d'agents, de skills, de plugins et de serveurs MCP dans les [métriques de coût et de tokens](https://code.claude.com/docs/fr/monitoring-usage.md#cost-counter) ; et d'autres détails sur les outils dans les métriques, traces et logs OpenTelemetry. Désactivée par défaut pour protéger les données personnelles. Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](https://code.claude.com/docs/fr/settings-reference.md#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |

504| `OTEL_LOG_USER_PROMPTS` | Définissez sur `1` pour inclure le texte des prompts utilisateur dans les traces et logs OpenTelemetry. Désactivée par défaut (les prompts sont masqués). Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](https://code.claude.com/docs/fr/settings-reference.md#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |504| `OTEL_LOG_USER_PROMPTS` | Définissez sur `1` pour inclure le texte des prompts utilisateur dans les traces et logs OpenTelemetry. Désactivée par défaut (les prompts sont masqués). Définissez-la dans votre shell, vos paramètres utilisateur ou vos paramètres gérés. Ignorée dans les [paramètres de projet et locaux](https://code.claude.com/docs/fr/settings-reference.md#variables-claude-code-ignores-in-env), à l'exception des valeurs de désactivation décrites dans cette section. Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |

505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Définissez sur `false` pour exclure l'UUID du compte des attributs des métriques (par défaut : inclus). Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |505| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Définissez sur `false` pour exclure l'UUID du compte des attributs de métriques et d'événements (par défaut : inclus). Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |

506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Définissez sur `true` pour inclure le point d'entrée de la session dans les attributs des métriques (par défaut : exclu). Ajoutée en v2.1.152. Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |506| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Définissez sur `true` pour inclure le point d'entrée de la session dans les attributs de métriques et d'événements (par défaut : exclu). Ajoutée dans la v2.1.152. Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |

507| `OTEL_METRICS_INCLUDE_REPOSITORY` | Définissez sur `true` pour étiqueter les métriques et événements OpenTelemetry avec des attributs `vcs.*` identifiant le dépôt de la session (par défaut : exclus). Nécessite Claude Code v2.1.269 ou ultérieur. Consultez [Attributs du dépôt](https://code.claude.com/docs/fr/monitoring-usage.md#repository-attributes) |507| `OTEL_METRICS_INCLUDE_REPOSITORY` | Définissez sur `true` pour étiqueter les métriques et événements OpenTelemetry avec des attributs `vcs.*` identifiant le dépôt de la session (par défaut : exclus). Nécessite Claude Code v2.1.269 ou ultérieur. Consultez [Attributs du dépôt](https://code.claude.com/docs/fr/monitoring-usage.md#repository-attributes) |

508| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Depuis la v2.1.161, Claude Code associe les clés de `OTEL_RESOURCE_ATTRIBUTES` aux libellés des points de données des métriques. Définissez sur `false` pour les exclure (par défaut : incluses). Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md#multi-team-organization-support) |508| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Depuis la v2.1.161, Claude Code associe les clés de `OTEL_RESOURCE_ATTRIBUTES` aux libellés des points de données des métriques. Définissez sur `false` pour les exclure (par défaut : incluses). Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md#multi-team-organization-support) |

509| `OTEL_METRICS_INCLUDE_SESSION_ID` | Définissez sur `false` pour exclure l'identifiant de session des attributs des métriques (par défaut : inclus). Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |509| `OTEL_METRICS_INCLUDE_SESSION_ID` | Définissez sur `false` pour exclure l'ID de session des attributs de métriques et d'événements (par défaut : inclus). Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |

510| `OTEL_METRICS_INCLUDE_VERSION` | Définissez sur `true` pour inclure la version de Claude Code dans les attributs des métriques (par défaut : exclue). Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |510| `OTEL_METRICS_INCLUDE_VERSION` | Définissez sur `true` pour inclure la version de Claude Code dans les attributs de métriques et d'événements (par défaut : exclue). Consultez [Surveillance](https://code.claude.com/docs/fr/monitoring-usage.md) |

511| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Remplace le budget de caractères pour les métadonnées des skills présentées à l'[outil Skill](https://code.claude.com/docs/fr/skills.md#control-who-invokes-a-skill). Le budget s'ajuste dynamiquement à 1 % de la fenêtre de contexte, avec une valeur de secours de 8 000 caractères. Ancien nom conservé pour la rétrocompatibilité |511| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Remplace le budget de caractères pour les métadonnées des skills présentées à l'[outil Skill](https://code.claude.com/docs/fr/skills.md#control-who-invokes-a-skill). Le budget s'ajuste dynamiquement à 1 % de la fenêtre de contexte, avec une valeur de secours de 8 000 caractères. Ancien nom conservé pour la rétrocompatibilité |

512| `TASK_MAX_OUTPUT_LENGTH` | Supprimée en v2.1.277 et désormais sans effet, tout comme l'outil `TaskOutput` qu'elle dimensionnait. Définissait auparavant le nombre maximal de caractères de la sortie d'une [tâche en arrière-plan](https://code.claude.com/docs/fr/tools-reference.md#background-commands) conservés par l'outil `TaskOutput`. Claude lit désormais le fichier de sortie d'une tâche en arrière-plan avec `Read` |512| `TASK_MAX_OUTPUT_LENGTH` | Supprimée en v2.1.277 et désormais sans effet, tout comme l'outil `TaskOutput` qu'elle dimensionnait. Définissait auparavant le nombre maximal de caractères de la sortie d'une [tâche en arrière-plan](https://code.claude.com/docs/fr/tools-reference.md#background-commands) conservés par l'outil `TaskOutput`. Claude lit désormais le fichier de sortie d'une tâche en arrière-plan avec `Read` |

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

errors.md +137 −15

Details

104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentification](#login-expired) |104| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentification](#login-expired) |

105| `Could not refresh your login because another Claude Code process is refreshing it` | [Authentification](#could-not-refresh-your-login) |105| `Could not refresh your login because another Claude Code process is refreshing it` | [Authentification](#could-not-refresh-your-login) |

106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Authentification](#could-not-refresh-your-login) |106| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Authentification](#could-not-refresh-your-login) |

107| `Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [Authentification](#could-not-refresh-your-login-disk-full) |

108| `Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full` | [Authentification](#could-not-refresh-your-login-disk-full) |

107| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentification](#your-account-is-on-hold) |109| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentification](#your-account-is-on-hold) |

108| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentification](#your-account-is-on-hold) |110| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentification](#your-account-is-on-hold) |

109| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentification](#anthropic-profile-login-expired) |111| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentification](#anthropic-profile-login-expired) |


242| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Erreurs de ligne de commande](#the-current-directory-no-longer-exists) |244| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Erreurs de ligne de commande](#the-current-directory-no-longer-exists) |

243| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [Erreurs de ligne de commande](#temp-directory-refused-or-cannot-be-created) |245| `Temp directory <dir> ... Refusing to use it` / `Claude Code's temporary directory <dir> could not be created` | [Erreurs de ligne de commande](#temp-directory-refused-or-cannot-be-created) |

244| `ENOSPC: no space left on device, mkdir '<dir>'` | [Erreurs de ligne de commande](#temp-directory-refused-or-cannot-be-created) |246| `ENOSPC: no space left on device, mkdir '<dir>'` | [Erreurs de ligne de commande](#temp-directory-refused-or-cannot-be-created) |

247| `Error: Claude Code could not save ... because the disk is full (ENOSPC)` / `because your disk quota is used up (EDQUOT)` | [Erreurs de ligne de commande](#could-not-save-because-the-disk-is-full) |

245| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Erreurs de ligne de commande](#directory-couldnt-be-resolved-to-a-real-location) |248| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Erreurs de ligne de commande](#directory-couldnt-be-resolved-to-a-real-location) |

246| `Error: Workspace not trusted` au démarrage de Remote Control | [Erreurs de ligne de commande](#workspace-not-trusted-when-starting-remote-control) |249| `Error: Workspace not trusted` au démarrage de Remote Control | [Erreurs de ligne de commande](#workspace-not-trusted-when-starting-remote-control) |

247| `Error: Workspace not trusted` lors de l'exécution de `claude ultrareview` | [Erreurs de ligne de commande](#workspace-not-trusted-when-running-claude-ultrareview) |250| `Error: Workspace not trusted` lors de l'exécution de `claude ultrareview` | [Erreurs de ligne de commande](#workspace-not-trusted-when-running-claude-ultrareview) |

248| `Ultrareview did not start` | [Erreurs de ligne de commande](#ultrareview-did-not-start) |251| `Ultrareview did not start` | [Erreurs de ligne de commande](#ultrareview-did-not-start) |

252| `Remote Control did not start: "<question>" got no answer` | [Erreurs de ligne de commande](#remote-control-did-not-start-got-no-answer) |

249| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Erreurs de ligne de commande](#not-carried-over-to-the-sessions-remote-control-starts) |253| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Erreurs de ligne de commande](#not-carried-over-to-the-sessions-remote-control-starts) |

250| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Erreurs de ligne de commande](#sandbox-is-not-supported-by-claude-remote-control) |254| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Erreurs de ligne de commande](#sandbox-is-not-supported-by-claude-remote-control) |

251| `` `claude import` is not yet available in this build `` | [Erreurs de ligne de commande](#claude-import-is-not-yet-available-in-this-build) |255| `` `claude import` is not yet available in this build `` | [Erreurs de ligne de commande](#claude-import-is-not-yet-available-in-this-build) |


320| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Dépannage des plugins](https://code.claude.com/docs/fr/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |324| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Dépannage des plugins](https://code.claude.com/docs/fr/plugins/troubleshooting.md#the-packages-it-lists-are-not-installed) |

321| `does not load (...), so Claude Code ignores the whole file` | [Dépannage des plugins](https://code.claude.com/docs/fr/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |325| `does not load (...), so Claude Code ignores the whole file` | [Dépannage des plugins](https://code.claude.com/docs/fr/plugins/troubleshooting.md#does-not-load-so-claude-code-ignores-the-whole-file) |

322| `path escapes plugin directory` | [Erreurs de plugin](#path-escapes-plugin-directory) |326| `path escapes plugin directory` | [Erreurs de plugin](#path-escapes-plugin-directory) |

327| `path not read: <path> is absolute or has a ".." part` | [Erreurs de plugin](#server-file-path-not-read) |

323| `Plugin not loaded: its manifest <path> was not read` | [Erreurs de plugin](#plugin-not-loaded-its-manifest-was-not-read) |328| `Plugin not loaded: its manifest <path> was not read` | [Erreurs de plugin](#plugin-not-loaded-its-manifest-was-not-read) |

324| `path could not be checked` | [Erreurs de plugin](#path-could-not-be-checked) |329| `path could not be checked` | [Erreurs de plugin](#path-could-not-be-checked) |

325| `its marketplace entry path does not stay inside the marketplace directory` | [Erreurs de plugin](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |330| `its marketplace entry path does not stay inside the marketplace directory` | [Erreurs de plugin](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


368| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Erreurs d'outil](#refusing-after-a-symlink-changed) |373| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Erreurs d'outil](#refusing-after-a-symlink-changed) |

369| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Erreurs d'outil](#refusing-after-a-symlink-changed) |374| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Erreurs d'outil](#refusing-after-a-symlink-changed) |

370| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Erreurs d'outil](#refusing-after-a-symlink-changed) |375| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Erreurs d'outil](#refusing-after-a-symlink-changed) |

376| `The search failed, so this is not a "no matches" result: matches may exist` | [Erreurs d'outil](#the-search-failed) |

371| `task output swap refused (tasks dir moved or linked)` | [Erreurs d'outil](#task-output-swap-refused) |377| `task output swap refused (tasks dir moved or linked)` | [Erreurs d'outil](#task-output-swap-refused) |

372| `Command killed: its output file was replaced or could no longer be verified` | [Erreurs d'outil](#task-output-swap-refused) |378| `Command killed: its output file was replaced or could no longer be verified` | [Erreurs d'outil](#task-output-swap-refused) |

373| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [Erreurs d'outil](#disk-quota-or-temp-filesystem-is-full) |379| `Disk full: this computer's volume holding <dir> (Claude Code's temporary directory) has <n> MB free` / `Nearly out of inodes: this computer's volume holding <dir>` | [Erreurs d'outil](#disk-quota-or-temp-filesystem-is-full) |


377| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Erreurs d'outil](#disk-quota-or-temp-filesystem-is-full) |383| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Erreurs d'outil](#disk-quota-or-temp-filesystem-is-full) |

378| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Erreurs d'outil](#file-is-not-valid-utf-8) |384| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Erreurs d'outil](#file-is-not-valid-utf-8) |

379| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [Erreurs d'outil](#git-is-not-installed-on-this-mac) |385| `git is not installed on this Mac. To install it, run xcode-select --install, then try again.` | [Erreurs d'outil](#git-is-not-installed-on-this-mac) |

386| `Refusing to apply edits to <path>: a hook is configured for file edits in this session` | [Erreurs d'outil](#a-hook-is-configured-for-file-edits) |

380| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Erreurs d'outil](#the-source-file-is-not-valid-utf-8-text) |387| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Erreurs d'outil](#the-source-file-is-not-valid-utf-8-text) |

381| `the source file has the replacement character U+FFFD` | [Erreurs d'outil](#the-source-file-is-not-valid-utf-8-text) |388| `the source file has the replacement character U+FFFD` | [Erreurs d'outil](#the-source-file-is-not-valid-utf-8-text) |

382| `Not published: that file is on a network share` | [Erreurs d'outil](#not-published-that-file-is-on-a-network-share) |389| `Not published: that file is on a network share` | [Erreurs d'outil](#not-published-that-file-is-on-a-network-share) |


387| `The safety check for domain ... is rate-limited` | [Erreurs d'outil](#webfetch-domain-safety-check-failed) |394| `The safety check for domain ... is rate-limited` | [Erreurs d'outil](#webfetch-domain-safety-check-failed) |

388| `The safety check for domain ... is temporarily rate-limited` | [Erreurs d'outil](#webfetch-domain-safety-check-failed) |395| `The safety check for domain ... is temporarily rate-limited` | [Erreurs d'outil](#webfetch-domain-safety-check-failed) |

389| `Unable to verify if domain ... is safe to fetch` | [Erreurs d'outil](#webfetch-domain-safety-check-failed) |396| `Unable to verify if domain ... is safe to fetch` | [Erreurs d'outil](#webfetch-domain-safety-check-failed) |

397| `MCP tool "<tool>" on server "<server>" gave no answer that could be read` / `answered without its text` | [Comment le résultat d'un hook d'outil MCP est lu](https://code.claude.com/docs/fr/hooks.md#how-the-tools-result-is-read) |

390| `Can't open MCP settings while no terminal is attached to this background session` | [Erreurs de session en arrière-plan](#commands-refused-in-a-background-session) |398| `Can't open MCP settings while no terminal is attached to this background session` | [Erreurs de session en arrière-plan](#commands-refused-in-a-background-session) |

391| `Can't open MCP settings in a background session` | [Erreurs de session en arrière-plan](#commands-refused-in-a-background-session) |399| `Can't open MCP settings in a background session` | [Erreurs de session en arrière-plan](#commands-refused-in-a-background-session) |

392| `blocked because the path is spelled in a form that cannot be safely resolved` | [Erreurs de session en arrière-plan](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |400| `blocked because the path is spelled in a form that cannot be safely resolved` | [Erreurs de session en arrière-plan](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |


397| `Can't open — this session is running in another terminal` | [Erreurs de session en arrière-plan](#this-session-is-running-in-another-terminal) |405| `Can't open — this session is running in another terminal` | [Erreurs de session en arrière-plan](#this-session-is-running-in-another-terminal) |

398| `This conversation is already open in another running Claude session` | [Erreurs de session en arrière-plan](#this-session-is-running-in-another-terminal) |406| `This conversation is already open in another running Claude session` | [Erreurs de session en arrière-plan](#this-session-is-running-in-another-terminal) |

399| `This session's saved conversation is no longer on disk` | [Erreurs de session en arrière-plan](#this-sessions-saved-conversation-is-no-longer-on-disk) |407| `This session's saved conversation is no longer on disk` | [Erreurs de session en arrière-plan](#this-sessions-saved-conversation-is-no-longer-on-disk) |

408| `This forked session could not be started. Fork the conversation again to retry.` | [Erreurs de session en arrière-plan](#this-forked-session-could-not-be-started) |

400| `Bypass permissions was requested at launch and ignored` | [Mode bypass permissions ignoré dans une session en arrière-plan](https://code.claude.com/docs/fr/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |409| `Bypass permissions was requested at launch and ignored` | [Mode bypass permissions ignoré dans une session en arrière-plan](https://code.claude.com/docs/fr/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |

401| `kept <id> — its worktree is still at <path>` | [Erreurs de session en arrière-plan](#worktree-has-commits-that-are-not-pushed-anywhere) si la ligne suivante du message mentionne des commits non poussés, sinon [Ce qui est supprimé lors de la suppression d'une session](https://code.claude.com/docs/fr/agent-view.md#what-deleting-a-session-removes) |410| `kept <id> — its worktree is still at <path>` | [Erreurs de session en arrière-plan](#worktree-has-commits-that-are-not-pushed-anywhere) si la ligne suivante du message mentionne des commits non poussés, sinon [Ce qui est supprimé lors de la suppression d'une session](https://code.claude.com/docs/fr/agent-view.md#what-deleting-a-session-removes) |

402| `kept <id> — <n> unpushed commits on <branch>` | [Erreurs de session en arrière-plan](#worktree-has-commits-that-are-not-pushed-anywhere) |411| `kept <id> — <n> unpushed commits on <branch>` | [Erreurs de session en arrière-plan](#worktree-has-commits-that-are-not-pushed-anywhere) |


548| [`CLAUDE_CODE_MAX_RETRIES`](https://code.claude.com/docs/fr/env-vars) | 10 | Nombre de nouvelles tentatives. Plafonné à 15 à partir de v2.1.186 ; à partir de v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` augmente la valeur par défaut et supprime le plafond. Réduisez-le pour afficher les défaillances plus rapidement dans les scripts. |557| [`CLAUDE_CODE_MAX_RETRIES`](https://code.claude.com/docs/fr/env-vars) | 10 | Nombre de nouvelles tentatives. Plafonné à 15 à partir de v2.1.186 ; à partir de v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` augmente la valeur par défaut et supprime le plafond. Réduisez-le pour afficher les défaillances plus rapidement dans les scripts. |

549| [`CLAUDE_CODE_RETRY_WATCHDOG`](https://code.claude.com/docs/fr/env-vars) | non défini | Définissez sur `1` dans les sessions sans surveillance telles que les travaux CI pour réessayer les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Claude Code échoue immédiatement lorsqu'une requête à vitesse standard obtient un `429` qui signale une limite de dépenses ou des crédits d'utilisation épuisés, même un provenant d'un [plafond de dépenses de passerelle](#spend-limit-reached) qui se réinitialise selon un calendrier. Avant v2.1.239, le watchdog réessayait ceux-ci indéfiniment. Pour les requêtes en mode rapide, voir [Handle rate limits](https://code.claude.com/docs/fr/fast-mode.md#handle-rate-limits). Sur v2.1.199 ou ultérieur, il augmente également le nombre de tentatives par défaut pour les autres erreurs transitoires, telles que les erreurs serveur, les délais d'attente et les connexions interrompues, à 300, environ trois heures de backoff, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez explicitement cette variable. |558| [`CLAUDE_CODE_RETRY_WATCHDOG`](https://code.claude.com/docs/fr/env-vars) | non défini | Définissez sur `1` dans les sessions sans surveillance telles que les travaux CI pour réessayer les erreurs de capacité `429` et `529` indéfiniment au lieu d'échouer après `CLAUDE_CODE_MAX_RETRIES` tentatives. Claude Code échoue immédiatement lorsqu'une requête à vitesse standard obtient un `429` qui signale une limite de dépenses ou des crédits d'utilisation épuisés, même un provenant d'un [plafond de dépenses de passerelle](#spend-limit-reached) qui se réinitialise selon un calendrier. Avant v2.1.239, le watchdog réessayait ceux-ci indéfiniment. Pour les requêtes en mode rapide, voir [Handle rate limits](https://code.claude.com/docs/fr/fast-mode.md#handle-rate-limits). Sur v2.1.199 ou ultérieur, il augmente également le nombre de tentatives par défaut pour les autres erreurs transitoires, telles que les erreurs serveur, les délais d'attente et les connexions interrompues, à 300, environ trois heures de backoff, et supprime le plafond de 15 sur `CLAUDE_CODE_MAX_RETRIES` si vous définissez explicitement cette variable. |

550| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](https://code.claude.com/docs/fr/env-vars) | non défini | Durée maximale en millisecondes pendant laquelle chaque requête API attend la fin des erreurs `429` et `529` lorsque `CLAUDE_CODE_RETRY_WATCHDOG` est défini. Lorsqu'elle n'est pas définie, l'attente n'a pas de limite. Nécessite Claude Code v2.1.295 ou ultérieur. |559| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](https://code.claude.com/docs/fr/env-vars) | non défini | Durée maximale en millisecondes pendant laquelle chaque requête API attend la fin des erreurs `429` et `529` lorsque `CLAUDE_CODE_RETRY_WATCHDOG` est défini. Lorsqu'elle n'est pas définie, l'attente n'a pas de limite. Nécessite Claude Code v2.1.295 ou ultérieur. |

560| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_USAGE_LIMIT_WAIT_MS` | aucun plafond | Avec `CLAUDE_CODE_RETRY_WATCHDOG` défini, durée maximale en millisecondes pendant laquelle une requête attend la réinitialisation de la [limite d'utilisation](#youve-hit-your-session-limit) de votre plan, telle que la limite de session ou hebdomadaire. Lorsque la réinitialisation est plus éloignée que ce plafond, la requête échoue immédiatement, sauf si les crédits d'utilisation disposent encore d'une marge ou si l'API n'a pas pu les vérifier. Dans ces cas, elle est réessayée, et échoue si le plafond est dépassé avant qu'elle ne réussisse. Nécessite Claude Code v2.1.301 ou ultérieur. |

551| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/fr/env-vars) | non défini | Intervalle minimal en millisecondes entre les vérifications visant à savoir si une [limite d'utilisation](#youve-hit-your-session-limit) a déjà été levée, pendant qu'une requête attend la réinitialisation de cette limite avec `CLAUDE_CODE_RETRY_WATCHDOG` défini. Lorsqu'une vérification constate que la limite a été levée, la requête part immédiatement. Indiquez uniquement des chiffres, de `60000` à `10800000`. Lorsqu'elle n'est pas définie ou se trouve hors de cette plage, aucune vérification n'est effectuée. Pour savoir quand Claude Code ignore ces vérifications, voir la [référence des variables d'environnement](https://code.claude.com/docs/fr/env-vars.md). Nécessite Claude Code v2.1.305 ou ultérieur. |561| [`CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS`](https://code.claude.com/docs/fr/env-vars) | non défini | Intervalle minimal en millisecondes entre les vérifications visant à savoir si une [limite d'utilisation](#youve-hit-your-session-limit) a déjà été levée, pendant qu'une requête attend la réinitialisation de cette limite avec `CLAUDE_CODE_RETRY_WATCHDOG` défini. Lorsqu'une vérification constate que la limite a été levée, la requête part immédiatement. Indiquez uniquement des chiffres, de `60000` à `10800000`. Lorsqu'elle n'est pas définie ou se trouve hors de cette plage, aucune vérification n'est effectuée. Pour savoir quand Claude Code ignore ces vérifications, voir la [référence des variables d'environnement](https://code.claude.com/docs/fr/env-vars.md). Nécessite Claude Code v2.1.305 ou ultérieur. |

552| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](https://code.claude.com/docs/fr/env-vars) | 500 | Délai initial en millisecondes du backoff entre les nouvelles tentatives d'une requête que l'API rejette avec une erreur de surcharge `529`. Augmentez-le, jusqu'à 32000, pour répartir les nouvelles tentatives sur une période plus longue lorsque l'API est à pleine capacité. Sans effet lorsque `CLAUDE_CODE_RETRY_WATCHDOG` est défini sur `1`, ou lorsque la requête rejetée a été envoyée en [mode rapide](https://code.claude.com/docs/fr/fast-mode.md#handle-rate-limits). Nécessite Claude Code v2.1.292 ou ultérieur. |562| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](https://code.claude.com/docs/fr/env-vars) | 500 | Délai initial en millisecondes du backoff entre les nouvelles tentatives d'une requête que l'API rejette avec une erreur de surcharge `529`. Augmentez-le, jusqu'à 32000, pour répartir les nouvelles tentatives sur une période plus longue lorsque l'API est à pleine capacité. Sans effet lorsque `CLAUDE_CODE_RETRY_WATCHDOG` est défini sur `1`, ou lorsque la requête rejetée a été envoyée en [mode rapide](https://code.claude.com/docs/fr/fast-mode.md#handle-rate-limits). Nécessite Claude Code v2.1.292 ou ultérieur. |

553| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](https://code.claude.com/docs/fr/env-vars) | 32000 | Plafond en millisecondes du backoff entre les nouvelles tentatives d'une requête que l'API rejette avec une erreur de surcharge `529`. Augmentez-le, jusqu'à 64000, pour que les nouvelles tentatives ultérieures continuent de s'espacer lorsque l'API est à pleine capacité. Sans effet lorsque `CLAUDE_CODE_RETRY_WATCHDOG` est défini sur `1`, ou lorsque la requête rejetée a été envoyée en [mode rapide](https://code.claude.com/docs/fr/fast-mode.md#handle-rate-limits). Nécessite Claude Code v2.1.296 ou ultérieur. |563| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](https://code.claude.com/docs/fr/env-vars) | 32000 | Plafond en millisecondes du backoff entre les nouvelles tentatives d'une requête que l'API rejette avec une erreur de surcharge `529`. Augmentez-le, jusqu'à 64000, pour que les nouvelles tentatives ultérieures continuent de s'espacer lorsque l'API est à pleine capacité. Sans effet lorsque `CLAUDE_CODE_RETRY_WATCHDOG` est défini sur `1`, ou lorsque la requête rejetée a été envoyée en [mode rapide](https://code.claude.com/docs/fr/fast-mode.md#handle-rate-limits). Nécessite Claude Code v2.1.296 ou ultérieur. |


1436 1446 

1437Cet état est différent de [Jeton OAuth révoqué ou expiré](#oauth-token-revoked-or-expired). Ces messages signalent un rejet renvoyé par l'API. Claude Code produit lui-même `Login expired` pour une connexion qu'il n'a déjà pas réussi à renouveler ; il n'envoie donc aucune requête. Lorsque le renouvellement échoue parce que le compte lui-même est suspendu plutôt que parce que la connexion est obsolète, Claude Code affiche plutôt [Votre compte est suspendu](#your-account-is-on-hold).1447Cet état est différent de [Jeton OAuth révoqué ou expiré](#oauth-token-revoked-or-expired). Ces messages signalent un rejet renvoyé par l'API. Claude Code produit lui-même `Login expired` pour une connexion qu'il n'a déjà pas réussi à renouveler ; il n'envoie donc aucune requête. Lorsque le renouvellement échoue parce que le compte lui-même est suspendu plutôt que parce que la connexion est obsolète, Claude Code affiche plutôt [Votre compte est suspendu](#your-account-is-on-hold).

1438 1448 

1439Les sessions authentifiées avec une clé API, [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/fr/env-vars) ou un fournisseur tiers n'utilisent pas la connexion enregistrée et ne voient jamais ce message.

1440 

1441Vous pouvez détecter cet état avant l'échec d'une requête : [`/status`](https://code.claude.com/docs/fr/commands) affiche une ligne `Login` indiquant `Expired — log in again`, ainsi que l'organisation et l'adresse e-mail enregistrées pour la connexion expirée. La ligne n'apparaît que lorsque la connexion enregistrée constitue vos identifiants actifs et ne peut plus être actualisée. Les sessions authentifiées d'une autre manière n'affichent pas cette ligne, même si une connexion expirée reste enregistrée. Avant la v2.1.210, `/status` n'indiquait pas dans cet état qu'une connexion avait jamais existé, car les identifiants effacés ne lui laissaient rien à signaler.1449Vous pouvez détecter cet état avant l'échec d'une requête : [`/status`](https://code.claude.com/docs/fr/commands) affiche une ligne `Login` indiquant `Expired — log in again`, ainsi que l'organisation et l'adresse e-mail enregistrées pour la connexion expirée. La ligne n'apparaît que lorsque la connexion enregistrée constitue vos identifiants actifs et ne peut plus être actualisée. Les sessions authentifiées d'une autre manière n'affichent pas cette ligne, même si une connexion expirée reste enregistrée. Avant la v2.1.210, `/status` n'indiquait pas dans cet état qu'une connexion avait jamais existé, car les identifiants effacés ne lui laissaient rien à signaler.

1442 1450 

1443**Que faire :**1451**Que faire :**


1461Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again1469Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1462```1470```

1463 1471 

1464Les sessions authentifiées avec une clé API, [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/fr/env-vars) ou un fournisseur tiers n'utilisent pas la connexion enregistrée et ne voient jamais ce message.

1465 

1466**Que faire :**1472**Que faire :**

1467 1473 

1468* Réessayez dans une minute. Si un autre processus termine l'actualisation en premier, cette session utilise la connexion renouvelée.1474* Réessayez dans une minute. Si un autre processus termine l'actualisation en premier, cette session utilise la connexion renouvelée.

1469* Si le message continue de revenir, fermez les autres fenêtres et processus Claude Code, puis réessayez.1475* Si le message continue de revenir, fermez les autres fenêtres et processus Claude Code, puis réessayez.

1470* S'il revient alors qu'aucun autre processus Claude Code n'est en cours d'exécution, exécutez `/login`. Se reconnecter n'attend pas le verrou d'actualisation.1476* S'il revient alors qu'aucun autre processus Claude Code n'est en cours d'exécution, exécutez `/login`. Se reconnecter n'attend pas le verrou d'actualisation.

1471 1477 

1478### Could not refresh your login: the disk that holds the Claude Code config directory is full

1479 

1480Libérez de l'espace sur le disque qui contient le répertoire de configuration de Claude Code, puis envoyez de nouveau votre message. Se reconnecter n'aiderait pas tant que le disque est plein, car une nouvelle connexion ne pourrait pas être enregistrée. Le répertoire de configuration est `~/.claude` dans votre répertoire personnel, sauf si vous définissez [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars).

1481 

1482```text wrap theme={null}

1483Could not refresh your login: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full · Delete files you no longer need on that disk, then try again · Signing in again won't help

1484```

1485 

1486En [mode non interactif](https://code.claude.com/docs/fr/headless.md) (`-p`) et dans l'[Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md), le message indique :

1487 

1488```text wrap theme={null}

1489Failed to refresh OAuth token: the disk that holds the Claude Code config directory (~/.claude by default), or your disk quota on it, is full. Delete files you no longer need on that disk and retry; signing in again won't help

1490```

1491 

1492**Que faire :**

1493 

1494* Pour un script, relancez sa commande `claude -p`

1495* Si le disque affiche déjà de l'espace libre, un quota de disque ou d'inodes épuisé produit le même message. Supprimez vos propres fichiers sur ce disque. Si le message revient, supprimez de nombreux petits fichiers plutôt que quelques gros, car chaque fichier occupe un inode quelle que soit sa taille.

1496 

1472### Impossible d'enregistrer votre connexion1497### Impossible d'enregistrer votre connexion

1473 1498 

1474Vous vous êtes connecté avec claude.ai, mais Claude Code n'a pas pu enregistrer la connexion dans son magasin d'identifiants ; la connexion n'a donc pas abouti. Sur macOS, cela peut se produire lorsque le trousseau de session se verrouille, par exemple lors de la mise en veille ou d'une inactivité, après que Claude Code y a déjà lu ou enregistré des identifiants au cours de la même session.1499Vous vous êtes connecté avec claude.ai, mais Claude Code n'a pas pu enregistrer la connexion dans son magasin d'identifiants ; la connexion n'a donc pas abouti. Sur macOS, cela peut se produire lorsque le trousseau de session se verrouille, par exemple lors de la mise en veille ou d'une inactivité, après que Claude Code y a déjà lu ou enregistré des identifiants au cours de la même session.


2442 2467 

2443### Context exceeds the token limit2468### Context exceeds the token limit

2444 2469 

2445`/context` affiche cet avertissement en haut de sa sortie lorsque la conversation a dépassé la fenêtre de contexte du modèle. Les requêtes échouent avec [`Prompt is too long`](#prompt-is-too-long) tant que vous ne libérez pas d'espace. Une session interactive affiche cette erreur sous la forme de la ligne `Context limit reached`.2470`/context` affiche cet avertissement en haut de sa sortie lorsque la conversation a dépassé la fenêtre de contexte du modèle :

2446 2471 

2447```text theme={null}2472```text theme={null}

2448Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2473Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.

2449```2474```

2450 2475 

2476Après un avertissement `Context exceeds`, vous n'avez besoin d'exécuter aucune des deux commandes tant que la [compaction automatique](https://code.claude.com/docs/fr/settings-reference.md#autocompactenabled) est activée, ce qui est le cas par défaut :

2477 

2478* **Compaction automatique activée** : envoyez votre message suivant. S'il échoue toujours avec [`Prompt is too long`](#prompt-is-too-long), consultez cette entrée.

2479* **Compaction automatique désactivée** : dans la session, exécutez `/compact` si l'avertissement la mentionne, ou `/clear` pour recommencer. Tant que vous n'en avez pas exécuté une, les messages échouent avec `Context limit reached`, ou `Prompt is too long` dans la sortie `-p`.

2480 

2451Lorsque la limite dépassée est une fenêtre de compaction, comme la limite de 200K sur les modèles à contexte de 1M, l'avertissement est formulé différemment. Une fenêtre de compaction peut se situer en dessous de la fenêtre de contexte du modèle : les requêtes qui la dépassent peuvent donc encore aboutir.2481Lorsque la limite dépassée est une fenêtre de compaction, comme la limite de 200K sur les modèles à contexte de 1M, l'avertissement est formulé différemment. Une fenêtre de compaction peut se situer en dessous de la fenêtre de contexte du modèle : les requêtes qui la dépassent peuvent donc encore aboutir.

2452 2482 

2453```text theme={null}2483```text theme={null}


2458 2488 

2459**Que faire :**2489**Que faire :**

2460 2490 

2461* Dans une conversation à plusieurs tours, exécutez `/compact` pour résumer les tours précédents et libérer de l'espace. Pour repartir de zéro, exécutez plutôt `/clear`2491* **Après un avertissement de fenêtre de compaction** : dans une conversation à plusieurs tours, exécutez `/compact` pour résumer les tours précédents et libérer de l'espace. Pour repartir de zéro, exécutez plutôt `/clear`.

2462* Pour d'autres moyens de réduire l'utilisation, consultez [Prompt is too long](#prompt-is-too-long)2492* Pour d'autres moyens de réduire l'utilisation, consultez [Prompt is too long](#prompt-is-too-long)

2463 2493 

2464Avant la v2.1.216, `/context` affichait une utilisation supérieure à 100 % sans ligne d'avertissement expliquant ce que cela signifiait ni comment y remédier.2494Avant la v2.1.216, `/context` affichait une utilisation supérieure à 100 % sans ligne d'avertissement expliquant ce que cela signifiait ni comment y remédier.


2843 2873 

2844### Couldn't save it as your default2874### Couldn't save it as your default

2845 2875 

2846Vous avez choisi un modèle à enregistrer comme valeur par défaut, par exemple avec `/model <name>` ou Enter dans le sélecteur `/model`, et Claude Code n'a pas pu écrire ce choix dans votre fichier de paramètres utilisateur, `~/.claude/settings.json`. Le changement lui-même a été appliqué : la session en cours tourne donc sur le modèle que vous avez choisi, mais votre valeur par défaut est inchangée et la session suivante démarre sur l'ancienne valeur.2876Vous avez choisi un modèle à enregistrer comme modèle par défaut, par exemple avec `/model <name>` ou `Enter` dans le sélecteur `/model`, et Claude Code n'a pas pu écrire ce choix dans votre fichier de paramètres utilisateur, `~/.claude/settings.json`. Le changement lui-même s'est appliqué : la session actuelle s'exécute donc sur le modèle choisi, mais votre modèle par défaut reste inchangé et la session suivante démarre sur l'ancienne valeur.

2847 2877 

2848```text theme={null}2878```text theme={null}

2849Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)2879Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)


3302 3332 

3303### Configuration error in \~/.claude.json3333### Configuration error in \~/.claude.json

3304 3334 

3305Claude Code n'a pas pu analyser `~/.claude.json`, le fichier qui contient les détails de votre compte, vos serveurs MCP et l'état propre à chaque projet. Votre fichier est inchangé. Un démarrage [non interactif](https://code.claude.com/docs/fr/headless.md) tel que `claude -p` se termine avec le code 1 à chaque fois jusqu'à ce que vous répariez le fichier.3335Claude Code n'a pas pu analyser `~/.claude.json`, le fichier qui contient les détails de votre compte, vos serveurs MCP et l'état propre à chaque projet. Un démarrage [non interactif](https://code.claude.com/docs/fr/headless.md) tel que `claude -p` se termine avec le code 1.

3306 3336 

3307Lorsque Claude Code trouve une [sauvegarde](https://code.claude.com/docs/fr/claude-directory.md#cleaned-up-automatically), la sortie la nomme et affiche une ligne `cp` qui la restaure :3337Lorsque Claude Code trouve une [sauvegarde](https://code.claude.com/docs/fr/claude-directory.md#cleaned-up-automatically), la sortie la nomme et affiche une ligne `cp` qui la restaure :

3308 3338 


3317 3347 

3318**Que faire :**3348**Que faire :**

3319 3349 

3320* **La sortie contient une ligne `cp`** : exécutez cette ligne dans votre terminal. Sous Windows, exécutez-la dans PowerShell. Elle remplace le fichier endommagé par la sauvegarde, une version antérieure de `~/.claude.json`.3350* **La sortie contient une ligne `cp`** : exécutez cette ligne dans votre terminal. Sous Windows, exécutez-la dans PowerShell.

3321* **La sortie ne contient pas de ligne `cp`, ou l'erreur revient après l'avoir exécutée** : corrigez le JSON dans `~/.claude.json`, copiez par-dessus un autre fichier `.claude.json.backup.<timestamp>` depuis [`~/.claude/backups/`](https://code.claude.com/docs/fr/claude-directory#cleaned-up-automatically) s'il en existe un, ou renommez-le. Sans fichier à `~/.claude.json`, Claude Code démarre avec les paramètres par défaut et sans rien de ce que contenait le fichier.3351* **La sortie ne contient pas de ligne `cp`, ou l'erreur revient après l'avoir exécutée** : si `~/.claude.json` contient encore votre configuration, corrigez son JSON. Si vous n'y parvenez pas, copiez par-dessus un autre fichier `.claude.json.backup.<timestamp>` depuis [`~/.claude/backups/`](https://code.claude.com/docs/fr/claude-directory#cleaned-up-automatically) s'il en existe un, ou renommez-le. Sans fichier à `~/.claude.json`, Claude Code démarre avec les paramètres par défaut et sans rien de ce que contenait le fichier.

3322 3352* **`~/.claude.json` ne contient plus votre configuration** : trouvez un fichier `.claude.json.corrupted.<timestamp>` qui la contient encore, dans [`~/.claude/backups/`](https://code.claude.com/docs/fr/claude-directory#cleaned-up-automatically) ou dans votre répertoire personnel. Corrigez son JSON, puis copiez-le par-dessus `~/.claude.json`. Si vous ne parvenez pas à en trouver ou à en corriger un, essayez les mêmes étapes avec un fichier `.claude.json.backup.<timestamp>` qui contient votre configuration. Si aucun ne la contient, renommez `~/.claude.json` et ajoutez à nouveau vos serveurs MCP avec [`claude mcp add`](https://code.claude.com/docs/fr/mcp#installing-mcp-servers).

3323Avant la v2.1.318, vous vous retrouviez avec les valeurs par défaut dans `~/.claude.json` après qu'un démarrage non interactif avait affiché cette erreur, donc le démarrage suivant s'exécutait sans votre configuration.

3324 3353 

3325### Claude configuration file was empty and no backup holds anything3354### Claude configuration file was empty and no backup holds anything

3326 3355 


3381 3410 

3382Avant la v2.1.309, Claude Code n'affichait que le texte d'erreur du système d'exploitation lorsque le volume était plein ou que votre quota était épuisé. Par exemple `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`, et les mêmes étapes s'appliquent.3411Avant la v2.1.309, Claude Code n'affichait que le texte d'erreur du système d'exploitation lorsque le volume était plein ou que votre quota était épuisé. Par exemple `ENOSPC: no space left on device, mkdir '/tmp/claude-501'`, et les mêmes étapes s'appliquent.

3383 3412 

3413### Claude Code n'a pas pu enregistrer car le disque est plein

3414 

3415Cette ligne sur stderr après une exécution de [`claude -p`](https://code.claude.com/docs/fr/headless) signifie que le disque est plein ou que votre quota de disque est épuisé, de sorte que Claude Code n'a pas pu enregistrer tout ce qui concerne l'exécution :

3416 

3417```text wrap theme={null}

3418Error: Claude Code could not save all of this session's transcript under /Users/you/.claude because the disk is full (ENOSPC). If you resume this session, part of the conversation may be missing. Free up space on that disk before the next run.

3419```

3420 

3421Avec une sortie texte ou `json`, l'exécution se termine avec le code 1, et la réponse a déjà été affichée. Avec une sortie `stream-json`, l'exécution conserve son code de sortie habituel, et la réponse arrive quand même.

3422 

3423**Que faire :**

3424 

3425* **`the disk is full (ENOSPC)`** : avant votre prochaine exécution, libérez de l'espace sur le disque qui contient le chemin indiqué dans le message

3426* **`your disk quota is used up (EDQUOT)`** : avant votre prochaine exécution, libérez de l'espace ou demandez un quota plus important

3427 

3384### Directory couldn't be resolved to a real location3428### Directory couldn't be resolved to a real location

3385 3429 

3386Vous avez exécuté `/add-dir` pour un sous-répertoire de votre répertoire de travail, et Claude Code n'a pas pu résoudre l'emplacement réel du répertoire.3430Vous avez exécuté `/add-dir` pour un sous-répertoire de votre répertoire de travail, et Claude Code n'a pas pu résoudre l'emplacement réel du répertoire.


3448* **`Error: Workspace not trusted. <folder> is your home directory`** : comme la confiance pour votre répertoire personnel n'est jamais enregistrée, exécuter d'abord `claude` à cet endroit ne peut pas aider. Exécutez plutôt `claude ultrareview` depuis un répertoire de projet, après y avoir exécuté `claude` une fois pour accepter la boîte de dialogue de confiance, ou ajoutez `--trust-workspace`.3492* **`Error: Workspace not trusted. <folder> is your home directory`** : comme la confiance pour votre répertoire personnel n'est jamais enregistrée, exécuter d'abord `claude` à cet endroit ne peut pas aider. Exécutez plutôt `claude ultrareview` depuis un répertoire de projet, après y avoir exécuté `claude` une fois pour accepter la boîte de dialogue de confiance, ou ajoutez `--trust-workspace`.

3449* **`No answer in time.` suivi de `Error: Workspace not trusted`** : la question `Trust <folder>? [y/N]` est restée sans réponse pendant 5 minutes. Exécutez de nouveau `claude ultrareview` et répondez-y.3493* **`No answer in time.` suivi de `Error: Workspace not trusted`** : la question `Trust <folder>? [y/N]` est restée sans réponse pendant 5 minutes. Exécutez de nouveau `claude ultrareview` et répondez-y.

3450* **`Ultrareview did not start: <folder> is not trusted`** : vous avez refusé à la question `Trust <folder>? [y/N]`, par exemple en répondant `n` ou en appuyant sur Enter. Pour démarrer la revue, exécutez de nouveau `claude ultrareview` et répondez `y`.3494* **`Ultrareview did not start: <folder> is not trusted`** : vous avez refusé à la question `Trust <folder>? [y/N]`, par exemple en répondant `n` ou en appuyant sur Enter. Pour démarrer la revue, exécutez de nouveau `claude ultrareview` et répondez `y`.

3451* **``Ultrareview did not start: `--trust-workspace` takes no value``** : quelque chose d'autre qu'un flag suit `--trust-workspace`, comme un numéro de PR ou `false`. Si vous ne faites pas confiance au dossier, omettez le flag. Pour l'approuver pour cette exécution, placez le numéro de PR ou la branche de base avant le flag : `claude ultrareview 1234 --trust-workspace`.3495* **``Ultrareview did not start: `--trust-workspace` takes no value``** : quelque chose d'autre qu'un flag suit `--trust-workspace`, comme un numéro de PR ou `false`. Si vous ne faites pas confiance au dossier, omettez le flag. Pour lui faire confiance pour cette exécution, placez le numéro de PR ou la branche de base avant le flag : `claude ultrareview 1234 --trust-workspace`.

3452 3496 

3453Avant la v2.1.309, `claude ultrareview` n'acceptait pas `--trust-workspace`.3497Avant la v2.1.309, `claude ultrareview` n'acceptait pas `--trust-workspace`.

3454 3498 

3499### Remote Control n'a pas démarré parce qu'une question est restée sans réponse

3500 

3501Ce message signifie que [`claude remote-control`](https://code.claude.com/docs/fr/remote-control) a posé la question de premier lancement citée dans le message et n'a obtenu aucune réponse :

3502 

3503```text theme={null}

3504Remote Control did not start: "Enable Remote Control?" got no answer. Run `claude remote-control` at a terminal and answer y once; it won't ask again.

3505Remote Control did not start: "Choose [1/2] (default: 1):" got no answer. You can run `claude remote-control` and choose, or pass --spawn=same-dir or --spawn=worktree.

3506```

3507 

3508**Que faire :**

3509 

3510* **`Enable Remote Control?`** : dans un script ou un service, l'entrée standard se termine avant que quiconque puisse répondre. Exécutez `claude remote-control` une fois dans un terminal, en tant qu'utilisateur sous lequel s'exécute votre script ou service, et répondez `y`.

3511* **`Choose [1/2] (default: 1):`** : exécutez à nouveau `claude remote-control` et [choisissez un mode de lancement](https://code.claude.com/docs/fr/remote-control.md#set-the-default-spawn-mode-for-a-project), ou passez [`--spawn=same-dir` ou `--spawn=worktree`](https://code.claude.com/docs/fr/remote-control#start-a-remote-control-session) pour ignorer la question

3512 

3455### Not carried over to the sessions Remote Control starts3513### Not carried over to the sessions Remote Control starts

3456 3514 

3457Vous avez démarré [Remote Control](https://code.claude.com/docs/fr/remote-control.md) avec un flag `claude` global placé avant le verbe `remote-control`, un flag qui restreindrait ou configurerait les sessions que Remote Control démarre, comme `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` ou `--mcp-config`. Un flag placé avant le verbe n'atteint jamais ces sessions. Claude Code refuse plutôt de démarrer, en mentionnant le flag :3515Vous avez démarré [Remote Control](https://code.claude.com/docs/fr/remote-control.md) avec un flag `claude` global placé avant le verbe `remote-control`, un flag qui restreindrait ou configurerait les sessions que Remote Control démarre, comme `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` ou `--mcp-config`. Un flag placé avant le verbe n'atteint jamais ces sessions. Claude Code refuse plutôt de démarrer, en mentionnant le flag :


3741 3799 

3742Des messages apparentés surviennent avant même l'exécution de la commande :3800Des messages apparentés surviennent avant même l'exécution de la commande :

3743 3801 

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

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

3746 3804 

3747**Marche à suivre :**3805**Marche à suivre :**

3748 3806 


4457* Si le message se termine par `EACCES`, restaurez votre permission d'exécution sur chaque répertoire menant au fichier ou au dossier que le chemin nomme. Vérifiez les répertoires au-dessus du chemin, puis suivez chaque lien symbolique que vous rencontrez et vérifiez les répertoires menant à l'endroit où il pointe. Pour tout autre code d'erreur, recherchez-le dans les [causes et étapes pour un chemin qui n'a pas pu être vérifié](#path-could-not-be-checked).4515* Si le message se termine par `EACCES`, restaurez votre permission d'exécution sur chaque répertoire menant au fichier ou au dossier que le chemin nomme. Vérifiez les répertoires au-dessus du chemin, puis suivez chaque lien symbolique que vous rencontrez et vérifiez les répertoires menant à l'endroit où il pointe. Pour tout autre code d'erreur, recherchez-le dans les [causes et étapes pour un chemin qui n'a pas pu être vérifié](#path-could-not-be-checked).

4458* Pour partager des fichiers avec d'autres plugins dans la même marketplace, liez-les avec un lien symbolique à l'intérieur du répertoire du plugin, en suivant les [règles de lien symbolique](https://code.claude.com/docs/fr/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)4516* Pour partager des fichiers avec d'autres plugins dans la même marketplace, liez-les avec un lien symbolique à l'intérieur du répertoire du plugin, en suivant les [règles de lien symbolique](https://code.claude.com/docs/fr/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4459 4517 

4518### Server file path not read

4519 

4520Le message `path not read` signifie que Claude Code n'a pas lu un fichier de serveur MCP ou LSP qu'un plugin désigne, en raison du chemin du fichier. Le reste du plugin se charge, sans les serveurs que le fichier définit.

4521 

4522Une partie `..` compte même quand le chemin reste à l'intérieur du plugin, comme dans cet exemple :

4523 

4524```text theme={null}

4525mcp-servers path not read: ./sub/../x.json is absolute or has a ".." part

4526```

4527 

4528**Que faire :**

4529 

4530* Si vous avez installé le plugin et ne le maintenez pas, signalez le message à son auteur

4531* Si vous maintenez le plugin, gardez le fichier de serveur à l'intérieur du répertoire du plugin. Désignez-le dans le manifeste ou l'entrée de marketplace avec un chemin qui commence par `./` et ne contient aucun `..`, par exemple `./servers/x.json`

4532* Pour partager un même fichier de serveur entre des plugins de la même marketplace, liez le fichier dans chaque plugin avec un lien symbolique, en suivant les [règles de lien symbolique](https://code.claude.com/docs/fr/plugins/host-marketplace.md#share-files-within-a-marketplace-with-symlinks)

4533 

4460### Plugin not loaded: its manifest was not read4534### Plugin not loaded: its manifest was not read

4461 4535 

4462Claude Code n'a pas pu confirmer que le [manifeste](https://code.claude.com/docs/fr/plugins/manifest-reference.md) d'un plugin de marketplace à `.claude-plugin/plugin.json` se trouve à l'intérieur du plugin, donc il ne charge rien de ce plugin. Pour un plugin dans une [marketplace locale](https://code.claude.com/docs/fr/plugins/loading.md#in-place-and-copied-plugins), Claude Code n'a pas non plus pu confirmer que le manifeste se trouve à l'intérieur de cette marketplace. Le message apparaît dans l'onglet **Errors** de `/plugin`, et la raison à sa fin indique ce que Claude Code a trouvé.4536Claude Code n'a pas pu confirmer que le [manifeste](https://code.claude.com/docs/fr/plugins/manifest-reference.md) d'un plugin de marketplace à `.claude-plugin/plugin.json` se trouve à l'intérieur du plugin, donc il ne charge rien de ce plugin. Pour un plugin dans une [marketplace locale](https://code.claude.com/docs/fr/plugins/loading.md#in-place-and-copied-plugins), Claude Code n'a pas non plus pu confirmer que le manifeste se trouve à l'intérieur de cette marketplace. Le message apparaît dans l'onglet **Errors** de `/plugin`, et la raison à sa fin indique ce que Claude Code a trouvé.


5065 5139 

5066Avant la v2.1.280, le refus `where it leads on disk could not be determined` n'apparaissait pas.5140Avant la v2.1.280, le refus `where it leads on disk could not be determined` n'apparaissait pas.

5067 5141 

5142### The search failed, so this is not a "no matches" result

5143 

5144Une recherche [Grep](https://code.claude.com/docs/fr/tools-reference.md#grep-tool-behavior) ou [Glob](https://code.claude.com/docs/fr/tools-reference.md#glob-tool-behavior) lancée par Claude a échoué avant de renvoyer le moindre résultat, donc on ne sait pas s'il existe des correspondances. Le message que Claude reçoit à la place des résultats commence ainsi :

5145 

5146```text wrap theme={null}

5147The search failed, so this is not a "no matches" result: matches may exist. What happened to the search program (ripgrep) is not known, and no results were read. Run the search once more. If it fails again, tell the user that searches are failing.

5148```

5149 

5150**Que faire :**

5151 

5152* **La première fois qu'il apparaît** : rien. Le message demande d'abord à Claude de relancer la recherche.

5153* **Si Claude indique que les recherches échouent** : capturez l'erreur de ripgrep pour un rapport de bug :

5154 1. Depuis votre shell, démarrez une session avec les mêmes flags que la session où les recherches ont échoué, plus [`--debug-file claude-debug.log`](https://code.claude.com/docs/fr/cli-reference#cli-flags)

5155 2. Envoyez à Claude la demande qui a conduit à la recherche en échec

5156 3. Si la recherche échoue à nouveau, trouvez la ligne contenant `rg error (signal=` dans `claude-debug.log`

5157 4. Incluez cette ligne lorsque vous [signalez le problème](#report-an-error)

5158 

5068### Task output swap refused5159### Task output swap refused

5069 5160 

5070Claude Code enregistre la sortie de chaque commande Bash dans un fichier sous son répertoire temporaire. Chaque fois qu'il ouvre l'un de ces fichiers, il vérifie que le chemin mène toujours au fichier qu'il a créé, sans lien symbolique, lien physique supplémentaire, ou répertoire déplacé le redirigeant. Ce message signifie que cette vérification a échoué, donc Claude Code a refusé l'opération plutôt que d'écrire ou de lire la sortie à travers ce chemin. Le message apparaît dans le résultat de l'outil Bash :5161Claude Code enregistre la sortie de chaque commande Bash dans un fichier sous son répertoire temporaire. Chaque fois qu'il ouvre l'un de ces fichiers, il vérifie que le chemin mène toujours au fichier qu'il a créé, sans lien symbolique, lien physique supplémentaire, ou répertoire déplacé le redirigeant. Ce message signifie que cette vérification a échoué, donc Claude Code a refusé l'opération plutôt que d'écrire ou de lire la sortie à travers ce chemin. Le message apparaît dans le résultat de l'outil Bash :


5153 5244 

5154Avant la v2.1.296, Edit et NotebookEdit appliquaient une telle modification et enregistraient chaque octet qu'ils ne pouvaient pas décoder sous la forme `U+FFFD`. Sur ces versions, mettez à jour Claude Code.5245Avant la v2.1.296, Edit et NotebookEdit appliquaient une telle modification et enregistraient chaque octet qu'ils ne pouvaient pas décoder sous la forme `U+FFFD`. Sur ces versions, mettez à jour Claude Code.

5155 5246 

5247### Refusing to apply edits: a hook is configured for file edits in this session

5248 

5249Claude a essayé de publier un [artefact](https://code.claude.com/docs/fr/artifacts.md) avec une [mise à jour en une étape](https://code.claude.com/docs/fr/artifacts.md#turn-off-one-step-artifact-updates), c'est-à-dire une petite modification du fichier de l'artefact incluse dans la publication, et Claude Code a refusé. Rien n'a été publié et le fichier est inchangé. Le message apparaît dans le résultat de l'outil Artifact :

5250 

5251```text wrap theme={null}

5252Refusing to apply edits to <path>: a hook is configured for file edits in this session, so a publish can't apply edits here. Edit the file, then publish it without edits. Nothing was published.

5253```

5254 

5255Claude Code n'autorise pas les mises à jour en une étape tant que votre session comporte un [hook `PreToolUse`](https://code.claude.com/docs/fr/hooks#pretooluse) ou un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) sur `Edit` ou `Write`.

5256 

5257**Que faire :**

5258 

5259* Rien, si Claude a ensuite modifié le fichier et l'a publié

5260* Si Claude s'est arrêté au message, demandez à Claude de modifier le fichier et de le publier

5261* Si le message revient sans cesse, quittez et relancez Claude Code

5262* Si le message revient même après une relance, [désactivez les mises à jour en une étape](https://code.claude.com/docs/fr/artifacts.md#turn-off-one-step-artifact-updates)

5263 

5156### The source file is not valid UTF-8 text5264### The source file is not valid UTF-8 text

5157 5265 

5158Claude a essayé de publier un [artefact](https://code.claude.com/docs/fr/artifacts.md) à partir d'un fichier dont les octets ne se décodent pas en texte, ou dont le texte contient déjà le caractère de remplacement `U+FFFD`, donc Claude Code a refusé la publication avant de télécharger quoi que ce soit. Le message apparaît dans le résultat de l'outil Artifact et nomme la première position à corriger :5266Claude a essayé de publier un [artefact](https://code.claude.com/docs/fr/artifacts.md) à partir d'un fichier dont les octets ne se décodent pas en texte, ou dont le texte contient déjà le caractère de remplacement `U+FFFD`, donc Claude Code a refusé la publication avant de télécharger quoi que ce soit. Le message apparaît dans le résultat de l'outil Artifact et nomme la première position à corriger :


5623 5731 

5624* Recréez le répertoire nommé par le message, ou lancez la session depuis un répertoire existant, puis réessayez5732* Recréez le répertoire nommé par le message, ou lancez la session depuis un répertoire existant, puis réessayez

5625 5733 

5734### This forked session could not be started

5735 

5736Vous avez [dupliqué une session Remote Control](https://code.claude.com/docs/fr/remote-control.md#fork-a-session-from-your-browser) depuis claude.ai, et Claude Code n'a pas pu terminer le démarrage de la [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) qui exécute le fork sur votre machine. Cette notification apparaît dans la transcription de la session dupliquée :

5737 

5738```text theme={null}

5739This forked session could not be started. Fork the conversation again to retry.

5740```

5741 

5742La session que vous avez dupliquée continue de s'exécuter.

5743 

5744**Que faire :**

5745 

5746* Revenez à la session que vous avez dupliquée et dupliquez-la à nouveau une fois la session inactive

5747 

5626### Espace de travail non approuvé lors du lancement d'une session en arrière-plan5748### Espace de travail non approuvé lors du lancement d'une session en arrière-plan

5627 5749 

5628Vous avez démarré ou redémarré une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) dans un répertoire que vous n'avez pas [approuvé](https://code.claude.com/docs/fr/permissions.md#project-allow-rules-and-workspace-trust), et la boîte de dialogue d'approbation de l'espace de travail n'a pas pu s'afficher pour vous le demander. Claude Code ne démarre pas la session :5750Vous avez démarré ou redémarré une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) dans un répertoire que vous n'avez pas [approuvé](https://code.claude.com/docs/fr/permissions.md#project-allow-rules-and-workspace-trust), et la boîte de dialogue d'approbation de l'espace de travail n'a pas pu s'afficher pour vous le demander. Claude Code ne démarre pas la session :

fast-mode.md +40 −18

Details

12 12 

13Le mode rapide est une configuration haute vitesse pour les modèles pris en charge, rendant le modèle jusqu'à 2,5 fois plus rapide à un coût par token plus élevé. Activez-le avec `/fast` quand vous avez besoin de vitesse pour un travail interactif comme l'itération rapide ou le débogage en direct, et désactivez-le quand le coût importe plus que la latence.13Le mode rapide est une configuration haute vitesse pour les modèles pris en charge, rendant le modèle jusqu'à 2,5 fois plus rapide à un coût par token plus élevé. Activez-le avec `/fast` quand vous avez besoin de vitesse pour un travail interactif comme l'itération rapide ou le débogage en direct, et désactivez-le quand le coût importe plus que la latence.

14 14 

15Le mode rapide utilise le même modèle avec une configuration API différente qui priorise la vitesse plutôt que l'efficacité des coûts, de sorte que la qualité et les capacités restent identiques. Le mode rapide est pris en charge sur Fable 5.2, Opus 5.5, Opus 5 et Opus 4.8. Il n'est pas disponible sur Sonnet, Haiku ou d'autres modèles.15Le mode rapide utilise le même modèle avec une configuration API différente qui priorise la vitesse plutôt que l'efficacité des coûts, de sorte que la qualité et les capacités restent identiques. Sur l'API Anthropic, le mode rapide est pris en charge sur Fable 5.2, Opus 5.5, Opus 5 et Opus 4.8, mais pas sur Sonnet, Haiku ou d'autres modèles. Pour les modèles sur Agent Platform de Google Cloud, consultez [Utiliser le mode rapide sur Agent Platform](#use-fast-mode-on-agent-platform).

16 16 

17> [!WARNING]17> [!WARNING]

18>18>


25 25 

26Ce qu'il faut savoir :26Ce qu'il faut savoir :

27 27 

28* Utilisez `/fast` pour activer/désactiver le mode rapide dans Claude Code CLI. L'extension [VS Code](https://code.claude.com/docs/fr/vs-code.md) offre une commande **Toggle fast mode** quand le modèle sélectionné supporte le mode rapide. Claude Code enregistre ce paramètre dans votre paramètre [`fastMode`](#toggle-fast-mode).28* Utilisez `/fast` pour activer/désactiver le mode rapide dans Claude Code CLI. L'[extension VS Code](https://code.claude.com/docs/fr/vs-code.md) offre une commande **Toggle fast mode** quand le modèle sélectionné supporte le mode rapide. Sur l'API Anthropic, Claude Code enregistre ce choix dans votre [paramètre `fastMode`](#toggle-fast-mode).

29* La tarification du mode rapide par MTok entrée/sortie est de 16 $/80 $ sur Fable 5.2, de 8 $/40 $ sur Opus 5.5 et de 10 $/50 $ sur Opus 5 et Opus 4.8.29* La tarification du mode rapide d'Anthropic par MTok entrée/sortie est de \$16/\$80 sur Fable 5.2, de \$8/\$40 sur Opus 5.5 et de \$10/\$50 sur Opus 5 et Opus 4.8.

30* Disponible pour les utilisateurs de Claude Code sur les plans d'abonnement (Pro/Max/Ultra/Team/Enterprise) et sur Claude Console. Les organisations Team et Enterprise ont besoin qu'un propriétaire l'active d'abord, et les organisations Console ont besoin d'un accès provisionné d'abord pour l'utiliser avec Opus 5 ou Opus 4.8. La section [Exigences](#requirements) décrit ces deux cas.30* Disponible pour les utilisateurs de Claude Code sur les plans d'abonnement (Pro/Max/Ultra/Team/Enterprise), sur Claude Console et sur Agent Platform de Google Cloud [sous conditions](#use-fast-mode-on-agent-platform). Les organisations Team et Enterprise ont besoin qu'un propriétaire l'active d'abord, et les organisations Console ont besoin d'un accès provisionné d'abord pour l'utiliser avec Opus 5 ou Opus 4.8. La section [Exigences](#requirements) décrit ces deux cas.

31* Pour les utilisateurs de Claude Code sur les plans d'abonnement (Pro/Max/Ultra/Team/Enterprise), le mode rapide est disponible via les crédits d'utilisation uniquement et n'est pas inclus dans les limites de débit de l'abonnement.31* Pour les utilisateurs de Claude Code sur les plans d'abonnement (Pro/Max/Ultra/Team/Enterprise), le mode rapide est disponible via les crédits d'utilisation uniquement et n'est pas inclus dans les limites de débit de l'abonnement.

32 32 

33## Activer ou désactiver le mode rapide33## Activer ou désactiver le mode rapide

34 34 

35Sur Agent Platform, `/fast` et le paramètre `fastMode` fonctionnent différemment ; suivez plutôt [Utiliser le mode rapide sur Agent Platform](#use-fast-mode-on-agent-platform).

36 

35Dans la CLI, activez ou désactivez le mode rapide de l'une des manières suivantes :37Dans la CLI, activez ou désactivez le mode rapide de l'une des manières suivantes :

36 38 

37* Exécutez `/fast`, appuyez sur Space pour activer ou désactiver, puis appuyez sur Enter pour confirmer39* Exécutez `/fast`, appuyez sur Space pour activer ou désactiver, puis appuyez sur Enter pour confirmer

38* Sur un modèle qui prend en charge le mode rapide, définissez `"fastMode": true` dans votre [fichier de paramètres utilisateur](https://code.claude.com/docs/fr/settings.md). Si vous le définissez sur un autre modèle, vous restez sur ce modèle avec le mode rapide désactivé. Sur Fable 5.2, ce paramètre seul n'a aucun effet tant que vous n'exécutez pas `/fast` en utilisant Fable 5.2.40* Sur un modèle qui prend en charge le mode rapide, définissez `"fastMode": true` dans votre [fichier de paramètres utilisateur](https://code.claude.com/docs/fr/settings.md). Si vous le définissez sur un autre modèle, vous restez sur ce modèle avec le mode rapide désactivé. Sur Fable 5.2, ce paramètre seul n'a aucun effet tant que vous n'exécutez pas `/fast` en utilisant Fable 5.2.

39 41 

40Par défaut, le mode rapide que vous activez dans une session interactive persiste d'une session à l'autre sur un modèle compatible. Sur Fable 5.2, il ne persiste que si vous l'avez [activé en utilisant Fable 5.2](#switch-models-while-fast-mode-is-on). Vous pouvez configurer le mode rapide pour qu'il se réinitialise à chaque session. Consultez [exiger une activation par session](#require-per-session-opt-in) pour plus de détails.42Par défaut, sur l'API Anthropic, le mode rapide que vous activez dans une session interactive persiste d'une session à l'autre sur un modèle compatible. Sur Fable 5.2, il ne persiste que si vous l'avez [activé en utilisant Fable 5.2](#switch-models-while-fast-mode-is-on). Vous pouvez configurer le mode rapide pour qu'il se réinitialise à chaque session. Consultez [exiger une activation par session](#require-per-session-opt-in) pour plus de détails.

41 43 

42En dehors d'une [session cloud](#use-fast-mode-in-cloud-sessions), en [mode non interactif](https://code.claude.com/docs/fr/headless.md) avec le flag `-p`, `/fast` ne fonctionne que dans une session lancée avec le mode rapide dans sa valeur [`--settings`](https://code.claude.com/docs/fr/cli-reference#cli-flags), par exemple `claude -p --settings '{"fastMode": true}'` ; le basculement s'applique alors uniquement à cette session et n'est pas enregistré comme valeur par défaut. La forme `-p` nécessite Claude Code v2.1.205 ou une version ultérieure. Ailleurs en mode non interactif, la commande indique que le mode rapide n'est pas disponible.44En dehors d'une [session cloud](#use-fast-mode-in-cloud-sessions), en [mode non interactif](https://code.claude.com/docs/fr/headless.md) avec le flag `-p`, `/fast` ne fonctionne que dans une session lancée avec le mode rapide dans sa valeur [`--settings`](https://code.claude.com/docs/fr/cli-reference#cli-flags), par exemple `claude -p --settings '{"fastMode": true}'` ; le basculement s'applique alors uniquement à cette session et n'est pas enregistré comme valeur par défaut. La forme `-p` nécessite Claude Code v2.1.205 ou une version ultérieure. Ailleurs en mode non interactif, la commande indique que le mode rapide n'est pas disponible.

43 45 


47 49 

48Lorsque vous activez le mode rapide avec `/fast` :50Lorsque vous activez le mode rapide avec `/fast` :

49 51 

50* Si votre modèle actuel ne prend pas en charge le mode rapide, Claude Code passe à Opus52* Sur l'API Anthropic, si votre modèle actuel ne prend pas en charge le mode rapide, Claude Code passe à Opus

51* Le mode rapide sur Fable 5.2 nécessite Claude Code v2.1.321 ou une version ultérieure53* Le mode rapide sur Fable 5.2 nécessite Claude Code v2.1.321 ou une version ultérieure

52* Vous verrez un message de confirmation : « Fast mode ON »54* Vous verrez un message de confirmation : « Fast mode ON »

53* Une petite icône `↯` apparaît à côté du prompt tant que le mode rapide est actif55* Une petite icône `↯` apparaît à côté du prompt tant que le mode rapide est actif

54* Exécutez `/fast` à nouveau à tout moment pour vérifier si le mode rapide est activé ou désactivé56* Exécutez `/fast` à nouveau à tout moment pour vérifier si le mode rapide est activé ou désactivé

55 57 

56Opus 5.5 est le modèle par défaut du mode rapide dans Claude Code v2.1.280 et versions ultérieures. Avant la v2.1.280, le mode rapide utilisait Opus 5 par défaut à partir de la v2.1.219.58Sur l'API Anthropic, Opus 5.5 est le modèle par défaut du mode rapide dans Claude Code v2.1.280 et versions ultérieures. Avant la v2.1.280, le mode rapide utilisait Opus 5 par défaut à partir de la v2.1.219.

57 59 

58Lorsque vous désactivez le mode rapide avec `/fast` à nouveau, vous restez sur votre modèle actuel. Pour passer à un autre modèle, utilisez `/model`.60Lorsque vous désactivez le mode rapide avec `/fast` à nouveau, vous restez sur votre modèle actuel. Pour passer à un autre modèle, utilisez `/model`.

59 61 


63 65 

64* **Quitter** : lorsque vous passez à un modèle qui ne prend pas en charge le mode rapide, Claude Code désactive le mode rapide. Cela inclut Opus 4.7 ; avant la v2.1.221, le mode rapide restait activé après un passage à Opus 4.7 et l'API rejetait les requêtes.66* **Quitter** : lorsque vous passez à un modèle qui ne prend pas en charge le mode rapide, Claude Code désactive le mode rapide. Cela inclut Opus 4.7 ; avant la v2.1.221, le mode rapide restait activé après un passage à Opus 4.7 et l'API rejetait les requêtes.

65* **Revenir** : le mode rapide se réactive sur un modèle Opus compatible lorsque votre préférence enregistrée est activée. Avec l'[activation par session](#require-per-session-opt-in), exécutez plutôt `/fast`.67* **Revenir** : le mode rapide se réactive sur un modèle Opus compatible lorsque votre préférence enregistrée est activée. Avec l'[activation par session](#require-per-session-opt-in), exécutez plutôt `/fast`.

66* **Passer à Fable 5.2** : le mode rapide se désactive, sauf si vous l'avez activé en utilisant Fable 5.2. Pour l'activer, exécutez `/fast` sur Fable 5.2. Sauf si vous avez configuré l'[activation par session](#require-per-session-opt-in), ce réglage persiste d'une session à l'autre jusqu'à ce que vous le désactiviez ou que vous l'activiez avec un autre modèle.68* **Passer à Fable 5.2** : le mode rapide se désactive, sauf si vous l'avez activé en utilisant Fable 5.2. Pour l'activer, exécutez `/fast` sur Fable 5.2. Sauf si vous avez configuré l'[activation par session](#require-per-session-opt-in), ce réglage persiste d'une session à l'autre sur l'API Anthropic jusqu'à ce que vous désactiviez le mode rapide ou que vous l'activiez avec un autre modèle.

67 69 

68Chaque fois qu'un changement de modèle active ou désactive le mode rapide, Claude Code affiche une confirmation `Fast mode ON` ou `Fast mode OFF`, et l'icône `↯` apparaît tant que le mode rapide est activé. Cela s'applique que vous changiez de modèle avec `/model`, avec [`/config model=<model>`](https://code.claude.com/docs/fr/settings), ou depuis un appareil connecté via [Remote Control](https://code.claude.com/docs/fr/remote-control.md).70Chaque fois qu'un changement de modèle active ou désactive le mode rapide, Claude Code affiche une confirmation `Fast mode ON` ou `Fast mode OFF`, et l'icône `↯` apparaît tant que le mode rapide est activé. Cela s'applique que vous changiez de modèle avec `/model`, avec [`/config model=<model>`](https://code.claude.com/docs/fr/settings), ou depuis un appareil connecté via [Remote Control](https://code.claude.com/docs/fr/remote-control.md).

69 71 

70Claude Code renvoie l'état du mode rapide de la session aux appareils connectés via Remote Control après un changement de modèle, une reconnexion ou l'échec d'une [vérification de disponibilité](#use-fast-mode-behind-proxies-and-llm-gateways).

71 

72### Utiliser le mode rapide dans les sessions cloud72### Utiliser le mode rapide dans les sessions cloud

73 73 

74Le mode rapide fonctionne dans les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md) lorsqu'il est disponible sur votre compte, que la session s'exécute sur une infrastructure gérée par Anthropic ou sur un [runner auto-hébergé](https://code.claude.com/docs/fr/self-hosted-environments). Nécessite Claude Code v2.1.271 ou une version ultérieure dans l'environnement de la session.74Le mode rapide fonctionne dans les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md) lorsqu'il est disponible sur votre compte, que la session s'exécute sur une infrastructure gérée par Anthropic ou sur un [runner auto-hébergé](https://code.claude.com/docs/fr/self-hosted-environments) sur l'API Anthropic. Nécessite Claude Code v2.1.271 ou une version ultérieure dans l'environnement de la session.

75 75 

76Tapez `/fast on` dans la session pour activer le mode rapide. Il reste activé uniquement pour cette session et n'est pas enregistré comme valeur par défaut. Les [prérequis](#requirements) s'appliquent également dans les sessions cloud.76Tapez `/fast on` dans la session pour activer le mode rapide. Il reste activé uniquement pour cette session et n'est pas enregistré comme valeur par défaut. Les [prérequis](#requirements) s'appliquent également dans les sessions cloud.

77 77 


79 79 

80## Comprendre le compromis de coût80## Comprendre le compromis de coût

81 81 

82Le mode rapide a une tarification par token plus élevée que la vitesse standard :82Le mode rapide a une tarification par token plus élevée que la vitesse standard. Voici les tarifs d'Anthropic :

83 83 

84| Modèle | Entrée (MTok) | Sortie (MTok) |84| Modèle | Entrée (MTok) | Sortie (MTok) |

85| - | - | - |85| - | - | - |


129 129 

130Le mode rapide nécessite tous les éléments suivants :130Le mode rapide nécessite tous les éléments suivants :

131 131 

132* **API Anthropic ou abonnement uniquement** : le mode rapide est disponible via l'API Anthropic Console et pour les plans d'abonnement Claude utilisant les crédits d'utilisation. Il n'est pas disponible sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ou Claude Platform sur AWS. Les organisations Console doivent également avoir [l'accès au mode rapide provisionné](#enable-fast-mode-for-your-organization) pour l'utiliser avec Opus 5 ou Opus 4.8.132* **Fournisseur pris en charge** : le mode rapide est disponible via l'API Anthropic Console, pour les plans d'abonnement Claude utilisant les crédits d'utilisation, et sur Google Cloud's Agent Platform [sous conditions](#use-fast-mode-on-agent-platform). Il n'est pas disponible sur Amazon Bedrock, Microsoft Foundry ou Claude Platform sur AWS, où `/fast` affiche « Le mode rapide n'est pas disponible sur ce fournisseur ». Les organisations Console doivent également avoir [l'accès au mode rapide provisionné](#enable-fast-mode-for-your-organization) pour l'utiliser avec Opus 5 ou Opus 4.8.

133* **Crédits d'utilisation activés pour les plans d'abonnement** : sur un plan Pro, Max, Ultra, Team ou Enterprise, votre compte doit avoir les [crédits d'utilisation](https://code.claude.com/docs/fr/costs.md#add-usage-credits-to-your-subscription) activés, ce qui permet la facturation au-delà de l'utilisation incluse dans votre plan. Jusqu'à ce qu'ils soient activés, `/fast` affiche « Le mode rapide nécessite des crédits d'utilisation ». Pour les activer, suivez l'étape correspondant à votre plan :133* **Crédits d'utilisation activés pour les plans d'abonnement** : sur un plan Pro, Max, Ultra, Team ou Enterprise, votre compte doit avoir les [crédits d'utilisation](https://code.claude.com/docs/fr/costs.md#add-usage-credits-to-your-subscription) activés, ce qui permet la facturation au-delà de l'utilisation incluse dans votre plan. Jusqu'à ce qu'ils soient activés, `/fast` affiche « Le mode rapide nécessite des crédits d'utilisation ». Pour les activer, suivez l'étape correspondant à votre plan :

134 * Sur Pro, Max et Ultra, activez-les dans la section **Crédits d'utilisation** de [**Paramètres > Utilisation**](https://claude.ai/settings/usage) sur claude.ai, ou exécutez `/usage-credits` pour ouvrir cette page.134 * Sur Pro, Max et Ultra, activez-les dans la section **Crédits d'utilisation** de [**Paramètres > Utilisation**](https://claude.ai/settings/usage) sur claude.ai, ou exécutez `/usage-credits` pour ouvrir cette page.

135 * Sur Team et Enterprise, un membre ayant accès à la facturation les active pour l'organisation dans [**Paramètres d'administration > Utilisation**](https://claude.ai/admin-settings/usage), et un membre sans accès exécute `/usage-credits` pour envoyer une demande aux administrateurs de l'organisation.135 * Sur Team et Enterprise, un membre ayant accès à la facturation les active pour l'organisation dans [**Paramètres d'administration > Utilisation**](https://claude.ai/admin-settings/usage), et un membre sans accès exécute `/usage-credits` pour envoyer une demande aux administrateurs de l'organisation.


150> * **Mode rapide non activé** : si le mode rapide n'a pas été activé pour votre organisation, l'activation du mode rapide avec `/fast` affiche « Le mode rapide a été désactivé par votre organisation. »150> * **Mode rapide non activé** : si le mode rapide n'a pas été activé pour votre organisation, l'activation du mode rapide avec `/fast` affiche « Le mode rapide a été désactivé par votre organisation. »

151> * **Mode rapide désactivé par les paramètres gérés** : si votre organisation déploie les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md) qui définissent [`fastMode: false`](https://code.claude.com/docs/fr/settings-reference#fastmode), l'activation du mode rapide avec `/fast` affiche le même message « Le mode rapide a été désactivé par votre organisation ».151> * **Mode rapide désactivé par les paramètres gérés** : si votre organisation déploie les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md) qui définissent [`fastMode: false`](https://code.claude.com/docs/fr/settings-reference#fastmode), l'activation du mode rapide avec `/fast` affiche le même message « Le mode rapide a été désactivé par votre organisation ».

152> * **Opt-in par session requis** : les paramètres gérés qui définissent [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) refusent `/fast on` avec le même message partout sauf dans une session de terminal interactive.152> * **Opt-in par session requis** : les paramètres gérés qui définissent [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) refusent `/fast on` avec le même message partout sauf dans une session de terminal interactive.

153> * **Modèle de mode rapide non autorisé** : si la liste d'autorisation [`availableModels`](https://code.claude.com/docs/fr/model-config#restrict-model-selection) de votre organisation exclut le modèle Opus du mode rapide, l'activation est refusée avec « n'est pas dans les modèles autorisés de votre organisation ». Dans une session déjà en cours d'exécution sur un modèle autorisé qui prend en charge le mode rapide, `/fast` active le mode rapide sur votre modèle actuel au lieu de changer de modèle.153> * **Modèle de mode rapide non autorisé** : si la liste d'autorisation [`availableModels`](https://code.claude.com/docs/fr/model-config#restrict-model-selection) de votre organisation exclut le modèle vers lequel `/fast` bascule, l'activation est refusée avec « n'est pas dans les modèles autorisés de votre organisation ». Dans une session déjà en cours d'exécution sur un modèle autorisé qui prend en charge le mode rapide, `/fast` active le mode rapide sur votre modèle actuel au lieu de changer de modèle.

154 154 

155### Activer le mode rapide pour votre organisation155### Activer le mode rapide pour votre organisation

156 156 


163 163 

164Une autre option pour désactiver complètement le mode rapide est de définir `CLAUDE_CODE_DISABLE_FAST_MODE=1`. Consultez [Variables d'environnement](https://code.claude.com/docs/fr/env-vars.md).164Une autre option pour désactiver complètement le mode rapide est de définir `CLAUDE_CODE_DISABLE_FAST_MODE=1`. Consultez [Variables d'environnement](https://code.claude.com/docs/fr/env-vars.md).

165 165 

166### Utiliser le mode rapide sur Agent Platform

167 

168Sur [Google Cloud's Agent Platform](https://code.claude.com/docs/fr/google-vertex-ai.md), vous pouvez activer le mode rapide pour Fable 5.2, avec `/fast` dans une session interactive ou avec des flags de lancement en [mode non interactif](https://code.claude.com/docs/fr/headless.md). Nécessite Claude Code v2.1.322 ou version ultérieure.

169 

170Le mode rapide nécessite que la [région](https://code.claude.com/docs/fr/google-vertex-ai.md#region-configuration) de Fable 5.2 soit `global`, `us` ou `eu`. Dans une autre région, `/fast` affiche `Fast mode needs Vertex region global, us or eu`, et `claude -p` s'exécute à vitesse standard. Définissez la région dans votre shell avant de démarrer Claude Code, par exemple sur `global` :

171 

172```bash theme={null}

173export VERTEX_REGION_CLAUDE_FABLE_5_2=global

174```

175 

176Activez ensuite le mode rapide :

177 

178* **Dans une session interactive** : exécutez `/fast`. Cela vous fait basculer vers Fable 5.2 depuis un modèle Opus ou un autre modèle sans mode rapide sur Agent Platform. Le mode rapide n'est pas enregistré comme paramètre par défaut.

179* **En mode non interactif** : passez Fable 5.2 avec [`--model`](https://code.claude.com/docs/fr/cli-reference#cli-flags) et le mode rapide dans [`--settings`](https://code.claude.com/docs/fr/cli-reference#cli-flags), par exemple `claude -p "Summarize this project" --model claude-fable-5-2 --settings '{"fastMode": true}'`

180 

181Sur Agent Platform, `"fastMode": true` dans vos paramètres utilisateur, de projet, locaux ou gérés n'a aucun effet.

182 

183Si Agent Platform refuse le mode rapide, Claude Code revient à la vitesse standard. Une session interactive affiche alors l'un de ces messages dans le terminal :

184 

185* `Using standard speed on Fable 5.2 · fast mode wasn't available` : exécutez `/fast on` pour réessayer le mode rapide

186* `Fast mode was refused for this project · trying again in 30m` : Agent Platform a répondu à une requête en mode rapide par une erreur 403 ou 404. Pour réessayer plus tôt, exécutez `/fast on`.

187 

166### Utiliser le mode rapide derrière les proxies et les passerelles LLM188### Utiliser le mode rapide derrière les proxies et les passerelles LLM

167 189 

168Avant d'offrir le mode rapide, Claude Code vérifie la disponibilité du mode rapide de votre organisation avec une demande directe à `api.anthropic.com`. La vérification ne suit pas [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/fr/llm-gateway-connect#set-the-base-url-and-credential), donc sur un réseau qui achemine le trafic Claude via une [passerelle LLM](https://code.claude.com/docs/fr/llm-gateway) et bloque la sortie directe vers `api.anthropic.com`, la vérification échoue même si les demandes d'inférence fonctionnent. La vérification utilise un [proxy HTTP](https://code.claude.com/docs/fr/network-config.md#proxy-configuration) configuré, donc un blocage réseau échoue la vérification uniquement où `api.anthropic.com` est inaccessible même via le proxy.190Avant d'offrir le mode rapide sur l'API Anthropic, Claude Code vérifie la disponibilité du mode rapide de votre organisation avec une requête directe à `api.anthropic.com`. La vérification ne suit pas [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/fr/llm-gateway-connect#set-the-base-url-and-credential), donc sur un réseau qui achemine le trafic Claude via une [passerelle LLM](https://code.claude.com/docs/fr/llm-gateway) et bloque la sortie directe vers `api.anthropic.com`, la vérification échoue même si les requêtes d'inférence fonctionnent.

169 191 

170Si votre organisation a activé le mode rapide et que `/fast` indique le contraire, trouvez le message qu'il affiche parmi les cas suivants.192La vérification utilise en revanche un [proxy HTTP](https://code.claude.com/docs/fr/network-config.md#proxy-configuration) configuré, donc un blocage réseau fait échouer la vérification uniquement là où `api.anthropic.com` est inaccessible même via le proxy. Si votre organisation a activé le mode rapide et que `/fast` indique le contraire, trouvez le message qu'il affiche parmi les cas suivants.

171 193 

172#### Fast mode unavailable due to network connectivity issues194#### Fast mode unavailable due to network connectivity issues

173 195 


199 221 

200### Opt-in par session222### Opt-in par session

201 223 

202Par défaut, le mode rapide qu'un utilisateur active dans une session interactive persiste entre les sessions sur un modèle pris en charge. Sur Fable 5.2, il persiste uniquement si l'utilisateur [l'a activé en utilisant Fable 5.2](#switch-models-while-fast-mode-is-on).224Par défaut sur l'API Anthropic, le mode rapide qu'un utilisateur active dans une session interactive persiste entre les sessions sur un modèle pris en charge. Sur Fable 5.2, le mode rapide persiste uniquement si l'utilisateur [l'a activé en utilisant Fable 5.2](#switch-models-while-fast-mode-is-on).

203 225 

204Pour que chaque session commence avec le mode rapide désactivé, définissez `fastModePerSessionOptIn` à `true` dans n'importe quel [fichier de paramètres](https://code.claude.com/docs/fr/settings.md#where-settings-live). Les utilisateurs l'activent alors avec `/fast` dans chaque session. Les propriétaires sur les plans [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) ou [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) peuvent le déployer à l'échelle de l'organisation via les [paramètres gérés par le serveur](https://code.claude.com/docs/fr/server-managed-settings.md).226Pour que chaque session commence avec le mode rapide désactivé, définissez `fastModePerSessionOptIn` à `true` dans n'importe quel [fichier de paramètres](https://code.claude.com/docs/fr/settings.md#where-settings-live). Les utilisateurs l'activent alors avec `/fast` dans chaque session. Les propriétaires sur les plans [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) ou [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) peuvent le déployer à l'échelle de l'organisation via les [paramètres gérés par le serveur](https://code.claude.com/docs/fr/server-managed-settings.md).

205 227 


227Si vous manquez de crédits d'utilisation en cours de session, Claude Code réessaie chaque demande en mode rapide rejetée à la vitesse et à la tarification standard, afin que vous continuiez à travailler, et il n'y a pas de refroidissement. La façon dont vous voyez le rejet dépend du type de session :249Si vous manquez de crédits d'utilisation en cours de session, Claude Code réessaie chaque demande en mode rapide rejetée à la vitesse et à la tarification standard, afin que vous continuiez à travailler, et il n'y a pas de refroidissement. La façon dont vous voyez le rejet dépend du type de session :

228 250 

229* Dans une session interactive, Claude Code affiche une notification « Mode rapide désactivé · crédits d'utilisation épuisés » et désactive le mode rapide. Votre préférence de mode rapide enregistrée ne change pas ; exécutez `/fast` pour réactiver le mode rapide.251* Dans une session interactive, Claude Code affiche une notification « Mode rapide désactivé · crédits d'utilisation épuisés » et désactive le mode rapide. Votre préférence de mode rapide enregistrée ne change pas ; exécutez `/fast` pour réactiver le mode rapide.

230* En [mode non-interactif](https://code.claude.com/docs/fr/headless.md) avec `--output-format stream-json`, et via le SDK Agent, Claude Code émet le même texte sur le flux de messages en tant que message `system` avec le sous-type `notification`, une fois par tour tant que vous n'avez pas de crédits d'utilisation. Le mode rapide reste activé. Nécessite Claude Code v2.1.221 ou version ultérieure.252* En [mode non interactif](https://code.claude.com/docs/fr/headless.md) avec `--output-format stream-json`, et via le SDK Agent, Claude Code émet le même texte sur le flux de messages en tant que message `system` avec le sous-type `notification`. Le message arrive une fois par tour tant que vous n'avez plus de crédits d'utilisation. Le mode rapide reste activé.

231 253 

232## Aperçu de recherche254## Aperçu de recherche

233 255 

Details

93 <td>✓ (Opus 5 et 4.8 nécessitent un provisionnement)</td>93 <td>✓ (Opus 5 et 4.8 nécessitent un provisionnement)</td>

94 <td>✗</td>94 <td>✗</td>

95 <td>✗</td>95 <td>✗</td>

96 <td>✗</td>96 <td>✓ ([Fable 5.2, sous conditions](https://code.claude.com/docs/fr/fast-mode.md#use-fast-mode-on-agent-platform))</td>

97 <td>✗</td>97 <td>✗</td>

98 </tr>98 </tr>

99 99 


256 256 

257> [tab] Google Cloud's Agent Platform257> [tab] Google Cloud's Agent Platform

258>258>

259> **Non disponible :** toutes les [fonctionnalités qui nécessitent un abonnement Claude](#features-that-require-a-claude-subscription), plus [fast mode](https://code.claude.com/docs/fr/fast-mode.md), [Advisor](https://code.claude.com/docs/fr/advisor.md), [Channels](https://code.claude.com/docs/fr/channels.md), le [tableau de bord analytique](https://code.claude.com/docs/fr/analytics.md), les [paramètres gérés par le serveur](https://code.claude.com/docs/fr/server-managed-settings.md) et les [commandes `/design-sync` et `/import`](https://code.claude.com/docs/fr/commands#all-commands).259> **Non disponible :** toutes les [fonctionnalités qui nécessitent un abonnement Claude](#features-that-require-a-claude-subscription), plus [Advisor](https://code.claude.com/docs/fr/advisor.md), [Channels](https://code.claude.com/docs/fr/channels.md), le [tableau de bord analytique](https://code.claude.com/docs/fr/analytics.md), les [paramètres gérés par le serveur](https://code.claude.com/docs/fr/server-managed-settings.md) et les [commandes `/design-sync` et `/import`](https://code.claude.com/docs/fr/commands#all-commands).

260>260>

261> **Support partiel :**261> **Support partiel :**

262>262>

263> * [Desktop](https://code.claude.com/docs/fr/desktop.md) : via les [paramètres gérés](https://claude.com/docs/third-party/claude-desktop/configuration) ou [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)263> * [Desktop](https://code.claude.com/docs/fr/desktop.md) : via les [paramètres gérés](https://claude.com/docs/third-party/claude-desktop/configuration) ou [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

264> * [Web search](https://code.claude.com/docs/fr/tools-reference.md#websearch-tool-behavior) : Opus 4, Sonnet 4, Haiku 4.5 et modèles ultérieurs264> * [Web search](https://code.claude.com/docs/fr/tools-reference.md#websearch-tool-behavior) : Opus 4, Sonnet 4, Haiku 4.5 et modèles ultérieurs

265> * [Fast mode](https://code.claude.com/docs/fr/fast-mode.md#use-fast-mode-on-agent-platform) : Fable 5.2 dans les régions `global`, `us` et `eu`, ou vitesse standard si Agent Platform refuse le fast mode

265> * [Auto mode](https://code.claude.com/docs/fr/auto-mode-config.md) : Sonnet 5 ou version ultérieure, Opus 4.7 ou version ultérieure, Haiku 5.5 et modèles Fable uniquement266> * [Auto mode](https://code.claude.com/docs/fr/auto-mode-config.md) : Sonnet 5 ou version ultérieure, Opus 4.7 ou version ultérieure, Haiku 5.5 et modèles Fable uniquement

266> * [Messagerie inter-sessions](https://code.claude.com/docs/fr/cross-session-messaging.md) : entre vos sessions sur cette machine uniquement <sup>[5](#fn5)</sup>267> * [Messagerie inter-sessions](https://code.claude.com/docs/fr/cross-session-messaging.md) : entre vos sessions sur cette machine uniquement <sup>[5](#fn5)</sup>

267> * [Rétention zéro donnée](https://code.claude.com/docs/fr/zero-data-retention.md) : soumis à votre accord Google Cloud268> * [Rétention zéro donnée](https://code.claude.com/docs/fr/zero-data-retention.md) : soumis à votre accord Google Cloud

gateways.md +1 −1

Details

50 50 

51## Abonnements et passerelles51## Abonnements et passerelles

52 52 

53Lorsque les développeurs se connectent via une passerelle avec un identifiant de passerelle, l'utilisation est facturée au compte fournisseur de votre organisation aux tarifs de l'API, et leurs abonnements claude.ai ne sont pas utilisés ni facturés. La définition de [`ANTHROPIC_AUTH_TOKEN`](https://code.claude.com/docs/fr/env-vars) pour une passerelle que vous exécutez, ou la connexion à une passerelle d'applications Claude avec `/login`, désactive la connexion par abonnement pour cette session. Chaque demande transférée sous cet identifiant est facturée au compte derrière l'identifiant du fournisseur de la passerelle.53Lorsque les développeurs se connectent via une passerelle avec un identifiant de passerelle, l'utilisation est facturée au compte fournisseur de votre organisation aux tarifs de l'API, et leurs abonnements claude.ai ne sont pas utilisés ni facturés. Chaque requête transférée sous cet identifiant est facturée au compte derrière l'identifiant du fournisseur de la passerelle.

54 54 

55L'exception est de définir uniquement `ANTHROPIC_BASE_URL`, sans identifiant de passerelle. Les demandes s'acheminent toujours via la passerelle, mais une connexion claude.ai enregistrée reste l'identifiant actif, de sorte que les limites d'utilisation et la facturation de l'abonnement s'appliquent. [Autres passerelles LLM](https://code.claude.com/docs/fr/llm-gateway#subscriptions-and-gateways) couvre cette configuration et ce que la passerelle doit transférer pour que cela fonctionne.55L'exception est de définir uniquement `ANTHROPIC_BASE_URL`, sans identifiant de passerelle. Les demandes s'acheminent toujours via la passerelle, mais une connexion claude.ai enregistrée reste l'identifiant actif, de sorte que les limites d'utilisation et la facturation de l'abonnement s'appliquent. [Autres passerelles LLM](https://code.claude.com/docs/fr/llm-gateway#subscriptions-and-gateways) couvre cette configuration et ce que la passerelle doit transférer pour que cela fonctionne.

56 56 

Details

135| Merge queues | Lecture |135| Merge queues | Lecture |

136| Metadata | Lecture |136| Metadata | Lecture |

137| Pull requests | Lecture et écriture |137| Pull requests | Lecture et écriture |

138| Repository creation | Lecture et écriture |

138| Repository hooks | Lecture et écriture |139| Repository hooks | Lecture et écriture |

139| Statuses | Lecture |140| Statuses | Lecture |

140| Workflows | Lecture et écriture |141| Workflows | Lecture et écriture |

Details

190Quelques fonctionnalités se comportent différemment sur GHES que sur github.com. Le [tableau des fonctionnalités](#what-works-with-github-enterprise-server) résume le support ; cette section couvre les solutions de contournement.190Quelques fonctionnalités se comportent différemment sur GHES que sur github.com. Le [tableau des fonctionnalités](#what-works-with-github-enterprise-server) résume le support ; cette section couvre les solutions de contournement.

191 191 

192* **Commande `/install-github-app`** : suivez le flux de [configuration administrateur](#admin-setup) sur claude.ai à la place. Si vous souhaitez également des workflows GitHub Actions sur GHES, adaptez manuellement l'[exemple de workflow](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml).192* **Commande `/install-github-app`** : suivez le flux de [configuration administrateur](#admin-setup) sur claude.ai à la place. Si vous souhaitez également des workflows GitHub Actions sur GHES, adaptez manuellement l'[exemple de workflow](https://github.com/anthropics/claude-code-action/blob/main/examples/claude.yml).

193* **Serveur GitHub MCP** : utilisez plutôt la CLI `gh` configurée pour votre hôte GHES. Exécutez `gh auth login --hostname github.example.com` pour vous authentifier, puis Claude peut utiliser les commandes `gh` dans les sessions.193* **Serveur GitHub MCP** : dans une session sur votre propre machine, utilisez plutôt la CLI `gh` configurée pour votre hôte GHES. Exécutez `gh auth login --hostname github.example.com` pour vous authentifier, puis Claude peut y utiliser les commandes `gh`.

194 194 

195## Dépannage195## Dépannage

196 196 

goal.md +3 −2

Details

131 131 

132#### Les erreurs que vous devez corriger effacent l'objectif132#### Les erreurs que vous devez corriger effacent l'objectif

133 133 

134Si un tour échoue sur une erreur qui ne s'effacera que lorsque vous la corrigerez, Claude Code efface l'objectif et imprime un avertissement nommant la cause. L'avertissement commence par `Goal cleared after an unrecoverable error` et se termine par `Run /goal again to continue`. Corrigez la cause, puis [définissez l'objectif à nouveau](#set-a-goal) avec `/goal <condition>`. Quatre types d'échec effacent l'objectif :134Si un tour échoue sur une erreur qui ne s'effacera que lorsque vous la corrigerez, Claude Code efface l'objectif et imprime un avertissement nommant la cause. L'avertissement commence par `Goal cleared after an unrecoverable error` et se termine par `Run /goal again to continue`. Corrigez la cause, puis [définissez l'objectif à nouveau](#set-a-goal) avec `/goal <condition>`. Les échecs qui effacent l'objectif incluent :

135 135 

136* Une défaillance d'authentification, lorsque Claude Code gère ses propres identifiants. Lorsqu'un hôte les gère pour vous, comme l'application de bureau ou une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), Claude Code laisse l'objectif actif car l'hôte restaure l'accès de lui-même.136* Une défaillance d'authentification, lorsque Claude Code gère ses propres identifiants. Lorsqu'un hôte les gère pour vous, comme l'application de bureau ou une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), Claude Code laisse l'objectif actif car l'hôte restaure l'accès de lui-même.

137* Un disque trop plein pour que Claude Code puisse renouveler votre connexion claude.ai, lorsque Claude Code gère ses propres identifiants. L'avertissement affiche `(disk full)`. [Libérez de l'espace sur le disque contenant le répertoire de configuration de Claude Code](https://code.claude.com/docs/fr/errors.md#could-not-refresh-your-login-disk-full).

137* Un solde de crédit épuisé138* Un solde de crédit épuisé

138* Un débordement de contexte que [l'auto-compaction](https://code.claude.com/docs/fr/model-config.md#set-the-auto-compact-window) n'a pas pu effacer139* Un débordement de contexte que [l'auto-compaction](https://code.claude.com/docs/fr/model-config.md#set-the-auto-compact-window) n'a pas pu effacer

139* Un modèle qui n'est pas disponible140* Un modèle qui n'est pas disponible


178 179 

179## Exigences180## Exigences

180 181 

181Claude Code met `/goal` à disposition selon la même [règle de confiance d'espace de travail que les hooks dans les fichiers de paramètres](https://code.claude.com/docs/fr/permissions.md#what-runs-before-you-trust-a-folder), car l'évaluateur fait partie du système de hooks. `/goal` est également indisponible quand [`disableAllHooks`](https://code.claude.com/docs/fr/hooks#disable-or-remove-hooks) est `true` après l'application de la précédence des paramètres, ou quand [`allowManagedHooksOnly`](https://code.claude.com/docs/fr/settings-reference#allowmanagedhooksonly) est défini dans les paramètres gérés. Dans chaque cas, la commande vous indique pourquoi au lieu de ne rien faire silencieusement.182Claude Code met `/goal` à disposition selon la même [règle de confiance d'espace de travail que les hooks dans les fichiers de paramètres](https://code.claude.com/docs/fr/permissions.md#what-runs-before-you-trust-a-folder), car l'évaluateur fait partie du système de hooks. `/goal` est également indisponible quand [`disableAllHooks`](https://code.claude.com/docs/fr/hooks#disable-or-remove-hooks) est `true` après l'application de la priorité des paramètres, ou quand [`allowManagedHooksOnly`](https://code.claude.com/docs/fr/settings-reference#allowmanagedhooksonly) est défini dans les paramètres gérés.

182 183 

183## Voir aussi184## Voir aussi

184 185 

Details

139* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 et versions ultérieures** : Claude Code active la recherche d'outils par défaut.139* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 et versions ultérieures** : Claude Code active la recherche d'outils par défaut.

140* **Modèles antérieurs** : Claude Code charge les définitions d'outils MCP à l'avance, car leurs piles de service Agent Platform rejettent l'en-tête bêta requis. Définir `ENABLE_TOOL_SEARCH=true` ne remplace pas cela.140* **Modèles antérieurs** : Claude Code charge les définitions d'outils MCP à l'avance, car leurs piles de service Agent Platform rejettent l'en-tête bêta requis. Définir `ENABLE_TOOL_SEARCH=true` ne remplace pas cela.

141 141 

142Définissez `ENABLE_TOOL_SEARCH=false` pour désactiver la recherche d'outils sur tous les modèles. Avant v2.1.221, Claude Code désactivait la recherche d'outils pour tous les modèles sur Google Cloud's Agent Platform sauf si vous définissiez `ENABLE_TOOL_SEARCH=true`.142Définissez `ENABLE_TOOL_SEARCH=false` pour désactiver la recherche d'outils sur tous les modèles.

143 143 

144### Épingler les versions de modèle144### Épingler les versions de modèle

145 145 

hooks.md +28 −4

Details

572 572 

573Claude Code lit le contenu textuel de l'outil de la même manière qu'il lit stdout d'un hook de commande, en suivant la [règle d'analyse sous le code de sortie 0](#exit-code-0). Si l'outil retourne `isError: true`, le hook produit une erreur non-bloquante et l'exécution continue.573Claude Code lit le contenu textuel de l'outil de la même manière qu'il lit stdout d'un hook de commande, en suivant la [règle d'analyse sous le code de sortie 0](#exit-code-0). Si l'outil retourne `isError: true`, le hook produit une erreur non-bloquante et l'exécution continue.

574 574 

575Si une erreur de hook contient l'un de ces messages, Claude Code n'a pas pu lire la réponse de l'outil, donc le hook n'a rendu aucun verdict :

576 

577```text theme={null}

578MCP tool "security_scan" on server "my_server" gave no answer that could be read, because a message from the server was too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

579MCP tool "security_scan" on server "my_server" answered without its text, which happens when a result is too large, so this hook gave no verdict. If this keeps happening, the tool must send a smaller answer.

580```

581 

582Sur `PreToolUse`, Claude Code refuse l'appel d'outil que le hook vérifiait. Sur les autres événements tels que `UserPromptSubmit`, `PostToolUse` et `Stop`, l'erreur est non-bloquante.

583 

584Si l'erreur continue d'apparaître, renvoyez moins de données depuis l'outil, ou modifiez le [`tool` ou l'`input`](#mcp-tool-hook-fields) du hook afin que la réponse soit plus petite.

585 

575##### Quand le serveur est encore en cours de connexion586##### Quand le serveur est encore en cours de connexion

576 587 

577Sur les événements où un hook peut bloquer ou changer le résultat, tels que `PreToolUse` ou `Stop`, Claude Code attend qu'un serveur se connecte avant d'appeler l'outil, pendant au maximum [`MCP_TIMEOUT`](https://code.claude.com/docs/fr/env-vars) et dans le [`timeout`](#common-fields) du hook lui-même. Sur les événements observationnels, tels que `Notification` ou `SessionEnd`, il n'attend pas.588Sur les événements où un hook peut bloquer ou changer le résultat, tels que `PreToolUse` ou `Stop`, Claude Code attend qu'un serveur se connecte avant d'appeler l'outil, pendant au maximum [`MCP_TIMEOUT`](https://code.claude.com/docs/fr/env-vars) et dans le [`timeout`](#common-fields) du hook lui-même. Sur les événements observationnels, tels que `Notification` ou `SessionEnd`, il n'attend pas.


892 903 

893#### Hooks qui démarrent un processus en arrière-plan904#### Hooks qui démarrent un processus en arrière-plan

894 905 

906Un hook peut démarrer un programme de longue durée, comme un serveur de développement, et le laisser s'exécuter pendant que la session se poursuit. Dans le script du hook ou la commande sous [forme shell](#exec-form-and-shell-form) :

907 

908* Exécutez le programme en arrière-plan

909* Redirigez son stdout et son stderr. Par exemple, la commande Bash `npm run dev > dev-server.log 2>&1 &` envoie les deux vers un fichier. Si vous ne les redirigez pas, un hook qui n'est pas [async](#run-hooks-in-the-background) met jusqu'à 10 secondes à se terminer après la fin de son propre processus.

910 

895Si votre hook de commande prend sa décision dans un processus en arrière-plan puis se termine, un refus que ce processus imprime après que Claude Code a cessé de lire ne bloque pas l'appel d'outil. Pour un hook qui n'est pas [async](#run-hooks-in-the-background), Claude Code termine la lecture de la sortie du hook peu après la fin du propre processus du hook.911Si votre hook de commande prend sa décision dans un processus en arrière-plan puis se termine, un refus que ce processus imprime après que Claude Code a cessé de lire ne bloque pas l'appel d'outil. Pour un hook qui n'est pas [async](#run-hooks-in-the-background), Claude Code termine la lecture de la sortie du hook peu après la fin du propre processus du hook.

896 912 

897Imprimez la décision avant de démarrer un processus en arrière-plan, et redirigez le stdout et le stderr de ce processus. Si votre script imprime une autorisation, puis démarre un processus en arrière-plan sans rediriger le stdout et le stderr de ce processus, Claude Code bloque l'appel d'outil. L'erreur du hook inclut `refusing to honor the suspect capture`.913Imprimez la décision avant de démarrer un processus en arrière-plan, et redirigez le stdout et le stderr de ce processus. Si votre script imprime une autorisation, puis démarre un processus en arrière-plan sans rediriger le stdout et le stderr de ce processus, Claude Code bloque l'appel d'outil. L'erreur du hook inclut `stdio went quiet` et `refusing to honor the suspect capture`.

898 914 

899Ce script de hook `PreToolUse` imprime la décision avec `policy-check.sh`, puis envoie des métriques en arrière-plan :915Ce script de hook `PreToolUse` imprime la décision avec `policy-check.sh`, puis envoie des métriques en arrière-plan :

900 916 


1193 1209 

1194* `PreToolUse` : `updatedInput` directement sous `hookSpecificOutput` remplace les arguments d'un outil avant son exécution. Consultez [Contrôle de décision PreToolUse](#pretooluse-decision-control)1210* `PreToolUse` : `updatedInput` directement sous `hookSpecificOutput` remplace les arguments d'un outil avant son exécution. Consultez [Contrôle de décision PreToolUse](#pretooluse-decision-control)

1195* `PermissionRequest` : `updatedInput` à l'intérieur de l'objet `decision`. Consultez [Contrôle de décision PermissionRequest](#permissionrequest-decision-control)1211* `PermissionRequest` : `updatedInput` à l'intérieur de l'objet `decision`. Consultez [Contrôle de décision PermissionRequest](#permissionrequest-decision-control)

1196* `PostToolUse` : `updatedToolOutput` remplace le résultat de l'outil. Consultez [Contrôle de décision PostToolUse](#posttooluse-decision-control)1212* `PostToolUse` : `updatedToolOutput` remplace le résultat de l'outil. Dans une session cloud [Cowork](https://claude.com/docs/cowork/overview), Claude Code ignore `updatedToolOutput` lorsque l'outil est `AskUserQuestion` ou `ExitPlanMode`, et Claude lit la réponse ou le plan d'origine. Consultez [Contrôle de décision PostToolUse](#posttooluse-decision-control)

1197* `UserPromptSubmit` : ne peut pas remplacer le prompt ; injecte uniquement `additionalContext` à côté de celui-ci1213* `UserPromptSubmit` : ne peut pas remplacer le prompt ; injecte uniquement `additionalContext` à côté de celui-ci

1198 1214 

1199Pour les cas d'usage de rédaction ou de transformation, interceptez à `PreToolUse` pour les entrées d'outil sortantes et `PostToolUse` pour les résultats d'outil entrants.1215Pour les cas d'usage de rédaction ou de transformation, interceptez à `PreToolUse` pour les entrées d'outil sortantes et `PostToolUse` pour les résultats d'outil entrants.


2210| `addDirectories` | `directories`, `destination` | Ajoute des répertoires de travail. `directories` est un tableau de chaînes de chemins |2226| `addDirectories` | `directories`, `destination` | Ajoute des répertoires de travail. `directories` est un tableau de chaînes de chemins |

2211| `removeDirectories` | `directories`, `destination` | Supprime des répertoires de travail |2227| `removeDirectories` | `directories`, `destination` | Supprime des répertoires de travail |

2212 2228 

2229Dans `rules`, pour une [règle de permission](https://code.claude.com/docs/fr/permissions.md#permission-rule-syntax) écrite `Tool(specifier)`, `toolName` est le nom de l'outil et `ruleContent` est le spécificateur :

2230 

2231* `Bash(npm test)` : `{ "toolName": "Bash", "ruleContent": "npm test" }`

2232* `Bash` ou `Bash(*)` : `{ "toolName": "Bash" }`, car les deux ciblent l'outil entier

2233* `mcp__github__get_issue` : `{ "toolName": "mcp__github__get_issue" }`

2234 

2235N'incluez pas `ruleContent` dans une règle d'autorisation pour un [outil MCP](https://code.claude.com/docs/fr/permissions.md#mcp). Si vous l'ajoutez, la règle ne correspond à aucun appel.

2236 

2213> [!NOTE]2237> [!NOTE]

2214>2238>

2215> `setMode` avec `bypassPermissions` ne prend effet que si vous avez lancé la session avec le mode bypass déjà disponible : `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, ou `permissions.defaultMode: "bypassPermissions"` dans les [paramètres utilisateur, `--settings` ou les paramètres gérés](https://code.claude.com/docs/fr/settings-reference#permissions-defaultmode). Sinon, la mise à jour n'a aucun effet. La mise à jour n'a également aucun effet lorsque [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/fr/permissions#managed-settings) désactive le mode, ou lorsque la session démarre en [mode restreint](https://code.claude.com/docs/fr/cli-reference.md#cli-flags).2239> `setMode` avec `bypassPermissions` ne prend effet que si vous avez lancé la session avec le mode bypass déjà disponible : `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, ou `permissions.defaultMode: "bypassPermissions"` dans les [paramètres utilisateur, `--settings` ou les paramètres gérés](https://code.claude.com/docs/fr/settings-reference#permissions-defaultmode). Sinon, la mise à jour n'a aucun effet. La mise à jour n'a également aucun effet lorsque [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/fr/permissions#managed-settings) désactive le mode, ou lorsque la session démarre en [mode restreint](https://code.claude.com/docs/fr/cli-reference.md#cli-flags).


2289| `reason` | Explication montrée à Claude lorsque `decision` vaut `"block"` |2313| `reason` | Explication montrée à Claude lorsque `decision` vaut `"block"` |

2290| `additionalContext` | Chaîne ajoutée au contexte de Claude avec le résultat de l'outil. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) |2314| `additionalContext` | Chaîne ajoutée au contexte de Claude avec le résultat de l'outil. Consultez [Ajouter du contexte pour Claude](#add-context-for-claude) |

2291| `classifierContext` | Courte note sur le résultat de cet appel destinée au classifieur du [mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) plutôt qu'à Claude. Consultez [Annoter un résultat pour le classifieur du mode auto](#annotate-a-result-for-the-auto-mode-classifier). Nécessite Claude Code v2.1.236 ou une version ultérieure |2315| `classifierContext` | Courte note sur le résultat de cet appel destinée au classifieur du [mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) plutôt qu'à Claude. Consultez [Annoter un résultat pour le classifieur du mode auto](#annotate-a-result-for-the-auto-mode-classifier). Nécessite Claude Code v2.1.236 ou une version ultérieure |

2292| `updatedToolOutput` | Remplace la sortie de l'outil par la valeur fournie avant qu'elle ne soit envoyée à Claude. La valeur doit correspondre à la forme de sortie de l'outil |2316| `updatedToolOutput` | Remplace la sortie de l'outil par la valeur fournie avant son envoi à Claude. La valeur doit correspondre à la forme de sortie de l'outil. Dans une session cloud [Cowork](https://claude.com/docs/cowork/overview), Claude Code ignore ce champ lorsque l'outil est `AskUserQuestion` ou `ExitPlanMode`, et Claude lit la réponse ou le plan d'origine |

2293| `updatedMCPToolOutput` | Remplace la sortie pour les [outils MCP](#match-mcp-tools) uniquement. Préférez `updatedToolOutput`, qui fonctionne pour tous les outils |2317| `updatedMCPToolOutput` | Remplace la sortie pour les [outils MCP](#match-mcp-tools) uniquement. Préférez `updatedToolOutput`, qui fonctionne aussi pour les outils intégrés |

2294 2318 

2295L'exemple ci-dessous remplace la sortie d'un appel `Bash`. La valeur de remplacement correspond à la forme de sortie de l'outil `Bash` :2319L'exemple ci-dessous remplace la sortie d'un appel `Bash`. La valeur de remplacement correspond à la forme de sortie de l'outil `Bash` :

2296 2320 

hooks-guide.md +1 −1

Details

964 964 

965> [!NOTE]965> [!NOTE]

966>966>

967> Si votre machine ne dispose d'aucun [paramètre géré](https://code.claude.com/docs/fr/settings.md#check-what-your-organization-enforces) et que votre session n'utilise pas d'[identifiants `/login`](https://code.claude.com/docs/fr/authentication#authentication-precedence) pour un forfait Team ou Enterprise, un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) peut approuver un appel que votre hook `PreToolUse` a bloqué. Une session qui s'exécute plutôt avec une clé API ou un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/fr/authentication#generate-a-long-lived-token) de longue durée n'utilise pas cette connexion, même lorsque cette connexion est stockée.967> Il se peut que votre machine ne dispose ni de [paramètres gérés](https://code.claude.com/docs/fr/settings.md#check-what-your-organization-enforces) ni d'un [fichier `managed-mcp.json`](https://code.claude.com/docs/fr/managed-mcp#deploy-managed-mcp-json), et que votre session n'utilise pas d'[identifiants `/login`](https://code.claude.com/docs/fr/authentication#authentication-precedence) pour un forfait Team ou Enterprise. Dans cette configuration, un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) peut approuver un appel que votre hook `PreToolUse` a bloqué. Une session qui s'exécute plutôt avec une clé API ou un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/fr/authentication#generate-a-long-lived-token) de longue durée n'utilise pas cette connexion, même lorsque cette connexion est stockée.

968>968>

969> En mode plan, un mod ne peut approuver un tel appel bloqué que s'il est en lecture seule, donc pas une modification de fichier. Pour les cas où l'approbation d'un mod ne passe pas outre vos règles et vos hooks, consultez [Étendre les permissions avec les hooks](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).969> En mode plan, un mod ne peut approuver un tel appel bloqué que s'il est en lecture seule, donc pas une modification de fichier. Pour les cas où l'approbation d'un mod ne passe pas outre vos règles et vos hooks, consultez [Étendre les permissions avec les hooks](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).

970 970 

Details

251| `d`/`x` | Supprimer la sélection |251| `d`/`x` | Supprimer la sélection |

252| `y` | Copier la sélection |252| `y` | Copier la sélection |

253| `c`/`s` | Changer la sélection |253| `c`/`s` | Changer la sélection |

254| `p` | Remplacer la sélection par le contenu du registre |254| `p`/`P` | Remplacer la sélection par le contenu du registre |

255| `r{char}` | Remplacer chaque caractère sélectionné par `{char}` |255| `r{char}` | Remplacer chaque caractère sélectionné par `{char}` |

256| `~`/`u`/`U` | Basculer, minuscules ou majuscules la sélection |256| `~`/`u`/`U` | Basculer, minuscules ou majuscules la sélection |

257| `>`/`<` | Indenter ou dédenter les lignes sélectionnées |257| `>`/`<` | Indenter ou dédenter les lignes sélectionnées |


304 304 

305Accepter une correspondance ou annuler la recherche prend effet immédiatement, même pendant que Claude Code charge encore l'historique.305Accepter une correspondance ou annuler la recherche prend effet immédiatement, même pendant que Claude Code charge encore l'historique.

306 306 

307Pour retrouver un prompt antérieur lorsque vous ne vous souvenez que d'un long contenu que vous y avez collé, comme un log d'erreur, appuyez sur `Ctrl+R` et tapez un mot de ce contenu collé. Nécessite Claude Code v2.1.314 ou version ultérieure.

308 

307## Commandes Bash en arrière-plan309## Commandes Bash en arrière-plan

308 310 

309Claude Code prend en charge l'exécution de commandes Bash en arrière-plan, ce qui vous permet de continuer à travailler pendant que les processus de longue durée s'exécutent.311Claude Code prend en charge l'exécution de commandes Bash en arrière-plan, ce qui vous permet de continuer à travailler pendant que les processus de longue durée s'exécutent.

keybindings.md +8 −8

Details

10 10 

11## Fichier de configuration11## Fichier de configuration

12 12 

13Le fichier de configuration des liaisons de touches est un objet avec un tableau `bindings`. Chaque bloc spécifie un contexte et une carte des séquences de touches aux actions.13Le fichier de configuration des raccourcis clavier est un objet contenant un tableau `bindings`. Chaque bloc spécifie un contexte et une correspondance entre des combinaisons de touches et des actions.

14 14 

15> [!NOTE]15> [!NOTE]

16>16>

17> Les modifications du fichier keybindings sont automatiquement détectées et appliquées sans redémarrer Claude Code.17> Les modifications apportées au fichier des raccourcis clavier sont automatiquement détectées et appliquées sans redémarrer Claude Code.

18 18 

19| Champ | Description |19| Champ | Description |

20| :- | :- |20| :- | :- |

21| `$schema` | URL du schéma JSON optionnel pour l'autocomplétion de l'éditeur |21| `$schema` | URL facultative du schéma JSON pour l'autocomplétion dans l'éditeur |

22| `$docs` | URL de documentation optionnelle |22| `$docs` | URL facultative de la documentation |

23| `bindings` | Tableau de blocs de liaison par contexte |23| `bindings` | Tableau de blocs de raccourcis par contexte |

24 24 

25Cet exemple lie `Ctrl+E` pour ouvrir un éditeur externe dans le contexte de chat, et délié `Ctrl+S` :25Cet exemple associe `Ctrl+E` à l'ouverture d'un éditeur externe dans le contexte du chat, et supprime l'association de `Ctrl+S` :

26 26 

27```json theme={null}27```json theme={null}

28{28{

29 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",29 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",

30 "$docs": "https://code.claude.com/docs/fr/keybindings",30 "$docs": "https://code.claude.com/docs/en/keybindings",

31 "bindings": [31 "bindings": [

32 {32 {

33 "context": "Chat",33 "context": "Chat",


305 305 

306### Actions du diff306### Actions du diff

307 307 

308Ces actions ne concernent que l'ancienne visionneuse de diff de Claude Code, que `/diff` ouvre en dehors du [rendu plein écran](https://code.claude.com/docs/fr/fullscreen.md) après que vous avez désactivé le [mod `cc-plugin-diff`](https://code.claude.com/docs/fr/plugins/mods/overview#mods-built-into-claude-code) dans `/plugin`. Tant que ce mod est activé, `/diff` ouvre à la place la [boîte de dialogue de diff](https://code.claude.com/docs/fr/interactive-mode.md#diff-dialog). Un `keybindings.json` qui mentionne ces actions se charge sans erreur dans les deux cas.308Ces actions ne concernent que l'ancienne visionneuse de diff de Claude Code, que `/diff` ouvre en dehors du [rendu plein écran](https://code.claude.com/docs/fr/fullscreen.md) après que vous avez désactivé le [mod `cc-plugin-diff`](https://code.claude.com/docs/fr/plugins/mods/overview#mods-built-into-claude-code) dans `/plugin`. Tant que ce mod est activé, `/diff` ouvre à la place la [boîte de dialogue de diff](https://code.claude.com/docs/fr/interactive-mode.md#diff-dialog).

309 309 

310Actions disponibles dans le contexte `DiffDialog` :310Actions disponibles dans le contexte `DiffDialog` :

311 311 

Details

197* `Marketplace "claude-plugins-official" not found` : ajoutez la marketplace avec `/plugin marketplace add anthropics/claude-plugins-official`, puis réessayez l'installation.197* `Marketplace "claude-plugins-official" not found` : ajoutez la marketplace avec `/plugin marketplace add anthropics/claude-plugins-official`, puis réessayez l'installation.

198* `Plugin "<name>" not found in marketplace "claude-plugins-official"` : votre copie locale du catalogue de la marketplace est peut-être obsolète. Actualisez-la avec `/plugin marketplace update claude-plugins-official`, puis réessayez l'installation. Si la nouvelle tentative affiche le même message, voir [Plugin not found in marketplace](https://code.claude.com/docs/fr/plugins/troubleshooting.md#plugin-not-found-in-marketplace).198* `Plugin "<name>" not found in marketplace "claude-plugins-official"` : votre copie locale du catalogue de la marketplace est peut-être obsolète. Actualisez-la avec `/plugin marketplace update claude-plugins-official`, puis réessayez l'installation. Si la nouvelle tentative affiche le même message, voir [Plugin not found in marketplace](https://code.claude.com/docs/fr/plugins/troubleshooting.md#plugin-not-found-in-marketplace).

199 199 

200Pour activer un plugin pour tous ceux du référentiel plutôt que de l'installer vous-même, ajoutez-le au paramètre de projet [`enabledPlugins`](https://code.claude.com/docs/fr/settings-reference#plugin-settings).200Pour activer un plugin pour tous ceux qui travaillent dans le dépôt, ajoutez-le au [paramètre de projet `enabledPlugins`](https://code.claude.com/docs/fr/settings-reference#plugin-settings). Chaque personne doit tout de même [l'installer](https://code.claude.com/docs/fr/plugins/loading.md#enabled-in-project-settings-but-not-installed).

201 201 

202Les plugins d'intelligence du code nécessitent le binaire du serveur de langage de la langue sur la machine de chaque développeur. Voir [quel binaire chaque langue nécessite](https://code.claude.com/docs/fr/plugins/code-intelligence.md). L'installation à partir de la marketplace officielle nécessite un accès réseau à GitHub, où la marketplace est hébergée. Sur un réseau restreint, [ajoutez la marketplace à partir d'un hôte Git interne ou d'un chemin local](https://code.claude.com/docs/fr/plugins/install.md#add-a-marketplace) à la place.202Les plugins d'intelligence du code nécessitent le binaire du serveur de langage de la langue sur la machine de chaque développeur. Voir [quel binaire chaque langue nécessite](https://code.claude.com/docs/fr/plugins/code-intelligence.md). L'installation à partir de la marketplace officielle nécessite un accès réseau à GitHub, où la marketplace est hébergée. Sur un réseau restreint, [ajoutez la marketplace à partir d'un hôte Git interne ou d'un chemin local](https://code.claude.com/docs/fr/plugins/install.md#add-a-marketplace) à la place.

203 203 


235 235 

236Listez les répertoires dans `sparsePaths`, pas les fichiers individuels. Les fichiers au niveau racine comme `package.json`, `tsconfig.base.json` et les fichiers de verrouillage sont toujours vérifiés aux côtés des répertoires que vous listez. Les répertoires au niveau racine ne le sont pas, donc incluez `.claude` dans la liste si vous voulez que le `.claude/settings.json` de la racine du référentiel ou les fichiers `.claude/rules/` soient disponibles à l'intérieur du worktree. Pour les skills de projet, les agents et les commandes, voir [Ce que les worktrees partagent avec le checkout principal](https://code.claude.com/docs/fr/worktrees.md#what-worktrees-share-with-the-main-checkout).236Listez les répertoires dans `sparsePaths`, pas les fichiers individuels. Les fichiers au niveau racine comme `package.json`, `tsconfig.base.json` et les fichiers de verrouillage sont toujours vérifiés aux côtés des répertoires que vous listez. Les répertoires au niveau racine ne le sont pas, donc incluez `.claude` dans la liste si vous voulez que le `.claude/settings.json` de la racine du référentiel ou les fichiers `.claude/rules/` soient disponibles à l'intérieur du worktree. Pour les skills de projet, les agents et les commandes, voir [Ce que les worktrees partagent avec le checkout principal](https://code.claude.com/docs/fr/worktrees.md#what-worktrees-share-with-the-main-checkout).

237 237 

238Le sparse checkout nécessite que git active `extensions.worktreeConfig` dans le `.git/config` partagé du dépôt tant qu'un worktree sparse existe. Claude Code supprime cette entrée après la suppression du dernier worktree, mais uniquement si Claude Code l'a ajoutée. Il ne supprime jamais une valeur que vous avez définie vous-même.238> [!NOTE]

239>

240> Le sparse checkout nécessite que git active `extensions.worktreeConfig` dans le `.git/config` partagé du dépôt tant qu'un worktree sparse existe. Claude Code supprime cette entrée après la suppression du dernier worktree, mais uniquement si Claude Code l'a ajoutée.

239 241 

240Pour éviter de dupliquer les grands répertoires comme `node_modules` entre les worktrees, associez `sparsePaths` avec `symlinkDirectories` dans le même `.claude/settings.json` :242Pour éviter de dupliquer les grands répertoires comme `node_modules` entre les worktrees, associez `sparsePaths` avec `symlinkDirectories` dans le même `.claude/settings.json` :

241 243 

Details

156 156 

157### Conflits avec une connexion existante157### Conflits avec une connexion existante

158 158 

159Une variable d'identifiant de passerelle prend précédence sur une connexion claude.ai sauvegardée ou une clé Console. Votre connexion claude.ai reste sauvegardée et inutilisée tandis que la variable est définie ; supprimez la variable et Claude Code revient à elle. Avec `ANTHROPIC_AUTH_TOKEN`, la variable prend précédence immédiatement. Avec `ANTHROPIC_API_KEY`, vous êtes invité une fois en mode interactif à approuver la clé avant qu'elle ne prenne le contrôle.159Une variable d'identifiant de passerelle a priorité sur une connexion claude.ai sauvegardée ou une clé Console. Avec `ANTHROPIC_AUTH_TOKEN`, la variable a priorité immédiatement. Avec `ANTHROPIC_API_KEY`, vous êtes invité une fois en mode interactif à approuver la clé avant qu'elle ne prenne le contrôle.

160 160 

161Exécutez `/status` pour confirmer quelle source d'identifiant est active. Si le démarrage affiche un avertissement de conflit d'authentification nommant deux sources, voir la première ligne du [tableau de dépannage](#troubleshoot-gateway-errors) pour savoir laquelle supprimer. Pour effacer une connexion sauvegardée afin que seul l'identifiant de passerelle reste, exécutez `/logout`.161Exécutez `/status` pour confirmer quelle source d'identifiant est active. Si le démarrage affiche un avertissement de conflit d'authentification nommant deux sources, voir la première ligne du [tableau de dépannage](#troubleshoot-gateway-errors) pour savoir laquelle supprimer. Pour effacer une connexion sauvegardée afin que seul l'identifiant de passerelle reste, exécutez `/logout`.

162 162 


378Définir la variable a ces effets et limites :378Définir la variable a ces effets et limites :

379 379 

380* Elle désactive les mises à jour automatiques, donc prévoyez un autre chemin de mise à jour, tel que votre gestionnaire de paquets ou distribution gérée.380* Elle désactive les mises à jour automatiques, donc prévoyez un autre chemin de mise à jour, tel que votre gestionnaire de paquets ou distribution gérée.

381* Elle supprime la vérification de disponibilité du [mode rapide](https://code.claude.com/docs/fr/fast-mode.md). À moins qu'une vérification précédente n'ait déjà activé le mode rapide sur la machine, `/fast` signale que le mode rapide est indisponible.381* Elle supprime la vérification de disponibilité du [mode rapide](https://code.claude.com/docs/fr/fast-mode.md). Sur l'API Anthropic, si `/fast` signale alors que le mode rapide est indisponible, consultez [utiliser le mode rapide derrière des proxys et des passerelles LLM](https://code.claude.com/docs/fr/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) pour rétablir le mode rapide.

382* Elle n'affecte pas la [découverte de modèle de passerelle](#add-gateway-models-to-the-model-picker), qui interroge uniquement votre passerelle. Avant v2.1.257, la variable arrêtait aussi la découverte de s'actualiser, de sorte que le sélecteur conservait la liste précédemment mise en cache.382* Elle n'affecte pas la [découverte de modèle de passerelle](#add-gateway-models-to-the-model-picker), qui interroge uniquement votre passerelle. Avant v2.1.257, la variable arrêtait aussi la découverte de s'actualiser, de sorte que le sélecteur conservait la liste précédemment mise en cache.

383* La vérification de sécurité du domaine de l'outil WebFetch n'est pas affectée et appelle toujours `api.anthropic.com`. Désactivez-la séparément avec `skipWebFetchPreflight: true` dans les [paramètres](https://code.claude.com/docs/fr/settings.md) si votre réseau bloque cet hôte. Voir la [vérification de sécurité du domaine WebFetch](https://code.claude.com/docs/fr/data-usage.md#webfetch-domain-safety-check).383* La vérification de sécurité du domaine de l'outil WebFetch n'est pas affectée et appelle toujours `api.anthropic.com`. Désactivez-la séparément avec `skipWebFetchPreflight: true` dans les [paramètres](https://code.claude.com/docs/fr/settings.md) si votre réseau bloque cet hôte. Voir la [vérification de sécurité du domaine WebFetch](https://code.claude.com/docs/fr/data-usage.md#webfetch-domain-safety-check).

384* Pour chaque flux de télémétrie et la variable qui le contrôle, voir [services de télémétrie](https://code.claude.com/docs/fr/data-usage.md#telemetry-services).384* Pour chaque flux de télémétrie et la variable qui le contrôle, voir [services de télémétrie](https://code.claude.com/docs/fr/data-usage.md#telemetry-services).

Details

251 251 

252* Une invite de connexion signifie une lacune de credential. Exécutez `/status` et ouvrez l'onglet **Status** : quand la ligne `Setting sources` n'inclut pas les paramètres gérés, la distribution n'a pas atteint la machine ; quand elle le fait, la credential développeur n'a pas été livrée, donc définissez `ANTHROPIC_AUTH_TOKEN` ou le `apiKeyHelper`252* Une invite de connexion signifie une lacune de credential. Exécutez `/status` et ouvrez l'onglet **Status** : quand la ligne `Setting sources` n'inclut pas les paramètres gérés, la distribution n'a pas atteint la machine ; quand elle le fait, la credential développeur n'a pas été livrée, donc définissez `ANTHROPIC_AUTH_TOKEN` ou le `apiKeyHelper`

253* Les erreurs `Failed to authenticate` signifient que la passerelle rejette les demandes ; son journal dit quelle credential a échoué. Un rejet que la passerelle enregistre elle-même nomme la clé développeur, tandis qu'un `401` de `api.anthropic.com` ou du point de terminaison de votre fournisseur signifie que la credential du fournisseur que la passerelle détient a été rejetée253* Les erreurs `Failed to authenticate` signifient que la passerelle rejette les demandes ; son journal dit quelle credential a échoué. Un rejet que la passerelle enregistre elle-même nomme la clé développeur, tandis qu'un `401` de `api.anthropic.com` ou du point de terminaison de votre fournisseur signifie que la credential du fournisseur que la passerelle détient a été rejetée

254* Une invite d'approbation unique pour la clé est attendue à la première utilisation quand la passerelle s'attend à des clés dans l'en-tête `x-api-key`, défini comme `ANTHROPIC_API_KEY`. Avec `ANTHROPIC_AUTH_TOKEN`, aucune invite n'apparaît et la variable prend le relais silencieusement ; une connexion claude.ai précédemment enregistrée est inactive pour cette session254* Une demande d'approbation ponctuelle de la clé est normale lors de la première utilisation lorsque la passerelle attend les clés dans l'en-tête `x-api-key`, définies via `ANTHROPIC_API_KEY`

255 255 

256Si votre organisation utilise le [mode rapide](https://code.claude.com/docs/fr/fast-mode.md), exécutez `/fast` ici aussi : la vérification de disponibilité appelle `api.anthropic.com` directement plutôt que de suivre l'URL de base de la passerelle, donc une session acheminée par la passerelle peut signaler le mode rapide comme indisponible ou désactivé même si l'inférence fonctionne. [Utiliser le mode rapide derrière les proxies et les passerelles LLM](https://code.claude.com/docs/fr/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) mappe chaque message à la variable qui le restaure, distribuée avec [le reste de la configuration](#distribute-the-configuration).256Si votre organisation utilise le [mode rapide](https://code.claude.com/docs/fr/fast-mode.md), exécutez `/fast` ici aussi : la vérification de disponibilité appelle `api.anthropic.com` directement plutôt que de suivre l'URL de base de la passerelle, donc une session acheminée par la passerelle peut signaler le mode rapide comme indisponible ou désactivé même si l'inférence fonctionne. [Utiliser le mode rapide derrière les proxies et les passerelles LLM](https://code.claude.com/docs/fr/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) mappe chaque message à la variable qui le restaure, distribuée avec [le reste de la configuration](#distribute-the-configuration).

257 257 

managed-mcp.md +1 −1

Details

187 187 

188* `type` est `http` ou `sse`. Comme dans `.mcp.json`, `streamable-http` est accepté comme alias pour `http`.188* `type` est `http` ou `sse`. Comme dans `.mcp.json`, `streamable-http` est accepté comme alias pour `http`.

189* `url` est une URL `https://`. Claude Code refuse une URL `http://` simple, y compris une qui pointe sur `localhost`.189* `url` est une URL `https://`. Claude Code refuse une URL `http://` simple, y compris une qui pointe sur `localhost`.

190* L'entrée n'a pas de membre `command`, `args`, `env`, ou `headersHelper`, donc un document de paramètres gérés ne nomme jamais un programme à exécuter sur la machine d'un utilisateur.190* L'entrée n'a pas de membre `command`, `args`, `env`, ou `headersHelper`.

191* Aucune valeur ne contient de référence `${VAR}`. Claude Code n'étend pas les variables d'environnement dans ces entrées, donc écrivez des valeurs littérales.191* Aucune valeur ne contient de référence `${VAR}`. Claude Code n'étend pas les variables d'environnement dans ces entrées, donc écrivez des valeurs littérales.

192* Le nom du serveur contient uniquement des lettres, des chiffres, des tirets et des traits de soulignement, et aucune clé ou valeur ne contient de caractères de contrôle ou de formatage invisible.192* Le nom du serveur contient uniquement des lettres, des chiffres, des tirets et des traits de soulignement, et aucune clé ou valeur ne contient de caractères de contrôle ou de formatage invisible.

193 193 

mcp.md +232 −234

Details

58 58 

59Claude vous pose des questions sur votre cas d'usage et crée un serveur HTTP distant ou un serveur stdio local.59Claude vous pose des questions sur votre cas d'usage et crée un serveur HTTP distant ou un serveur stdio local.

60 60 

61## Installation des serveurs MCP61## Installer des serveurs MCP

62 62 

63Les serveurs MCP peuvent être configurés de plusieurs façons selon vos besoins :63Les serveurs MCP peuvent être configurés de plusieurs façons selon vos besoins :

64 64 

65### Option 1 : Ajouter un serveur HTTP distant65### Option 1 : ajouter un serveur HTTP distant

66 66 

67Les serveurs HTTP sont l'option recommandée pour se connecter à des serveurs MCP distants. C'est le transport le plus largement supporté pour les services basés sur le cloud.67Les serveurs HTTP sont l'option recommandée pour se connecter à des serveurs MCP distants. C'est le transport le plus largement pris en charge pour les services basés sur le cloud.

68 68 

69```bash theme={null}69```bash theme={null}

70# Syntaxe de base70# Basic syntax

71claude mcp add --transport http <name> <url>71claude mcp add --transport http <name> <url>

72 72 

73# Exemple réel : Se connecter à Notion73# Real example: Connect to Notion

74claude mcp add --transport http notion https://mcp.notion.com/mcp74claude mcp add --transport http notion https://mcp.notion.com/mcp

75 75 

76# Exemple avec jeton Bearer76# Example with Bearer token

77claude mcp add --transport http secure-api https://api.example.com/mcp \77claude mcp add --transport http secure-api https://api.example.com/mcp \

78 --header "Authorization: Bearer your-token"78 --header "Authorization: Bearer your-token"

79```79```

80 80 

81Lors de la configuration des serveurs MCP via JSON dans `.mcp.json`, `~/.claude.json`, ou `claude mcp add-json`, le champ `type` accepte `streamable-http` comme alias pour `http`. La spécification MCP utilise le nom `streamable-http` pour ce transport, donc les configurations copiées à partir de la documentation du serveur fonctionnent sans modification.81Lorsque vous configurez des serveurs MCP via JSON dans `.mcp.json`, `~/.claude.json` ou `claude mcp add-json`, le champ `type` accepte `streamable-http` comme alias de `http`. La spécification MCP utilise le nom `streamable-http` pour ce transport, de sorte que les configurations copiées depuis la documentation d'un serveur fonctionnent sans modification.

82 82 

83Une entrée JSON qui a une `url` mais pas de `type` est une erreur de configuration, car Claude Code lit une entrée sans `type` comme un serveur stdio. Claude Code ignore ce serveur et signale `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.83Une entrée JSON qui possède un `url` mais pas de `type` constitue une erreur de configuration, car Claude Code lit une entrée sans `type` comme un serveur stdio. Claude Code ignore ce serveur et signale `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`.

84 84 

85Seule une application hôte du SDK, telle qu'une application [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/mcp.md) ou l'[application de bureau](https://code.claude.com/docs/fr/desktop.md), peut enregistrer un serveur `"type": "sdk"` en processus. Claude Code ignore une entrée `"type": "sdk"` dans `.mcp.json`, `~/.claude.json`, ou les paramètres et signale `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.85Seule une application hôte SDK, comme une application [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/mcp.md) ou l'[application de bureau](https://code.claude.com/docs/fr/desktop.md), peut enregistrer un serveur in-process `"type": "sdk"`. Claude Code ignore une entrée `"type": "sdk"` dans `.mcp.json`, `~/.claude.json` ou les paramètres et signale `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

86 86 

87> [!NOTE]87> [!NOTE]

88>88>

89> Dans les exécutions `--output-format stream-json`, Claude Code signale également une entrée `--mcp-config` ignorée dans le [champ `mcp_server_errors`](https://code.claude.com/docs/fr/headless#stream-responses) de l'événement `system/init`, afin que les scripts puissent détecter que le serveur n'a jamais été chargé.89> Lors des exécutions `--output-format stream-json`, Claude Code signale également une entrée `--mcp-config` ignorée dans le [champ `mcp_server_errors`](https://code.claude.com/docs/fr/headless#stream-responses) de l'événement `system/init`, afin que les scripts puissent détecter que le serveur ne s'est jamais chargé.

90 90 

91### Option 2 : Ajouter un serveur SSE distant91### Option 2 : ajouter un serveur SSE distant

92 92 

93> [!WARNING]93> [!WARNING]

94>94>

95> Le transport SSE (Server-Sent Events) est déprécié. Utilisez plutôt des serveurs HTTP, si disponibles.95> Le transport SSE (Server-Sent Events) est déprécié. Utilisez plutôt des serveurs HTTP lorsqu'ils sont disponibles.

96 96 

97Certains services exposent toujours uniquement un endpoint SSE. Ajoutez-les avec la même commande `claude mcp add --transport http <name> <url>` que [un serveur HTTP](#option-1-add-a-remote-http-server). Claude Code essaie d'abord le transport HTTP et bascule vers SSE lorsque le serveur ne l'accepte pas. Le basculement automatique nécessite Claude Code v2.1.265 ou ultérieur.97Certains services n'exposent encore qu'un endpoint SSE. Ajoutez-les avec la même commande `claude mcp add --transport http <name> <url>` que [pour un serveur HTTP](#option-1-add-a-remote-http-server). Claude Code essaie d'abord le transport HTTP et bascule sur SSE lorsque le serveur ne l'accepte pas. Ce basculement automatique nécessite Claude Code v2.1.265 ou une version ultérieure.

98 98 

99Sur une version antérieure, ou pour vous connecter directement via SSE, passez plutôt `--transport sse` :99Sur une version antérieure, ou pour vous connecter directement via SSE, passez plutôt `--transport sse` :

100 100 

101```bash theme={null}101```bash theme={null}

102# Syntaxe de base102# Basic syntax

103claude mcp add --transport sse <name> <url>103claude mcp add --transport sse <name> <url>

104 104 

105# Exemple réel : Se connecter à Asana105# Real example: Connect to Asana

106claude mcp add --transport sse asana https://mcp.asana.com/sse106claude mcp add --transport sse asana https://mcp.asana.com/sse

107 107 

108# Exemple avec en-tête d'authentification108# Example with authentication header

109claude mcp add --transport sse private-api https://api.company.com/sse \109claude mcp add --transport sse private-api https://api.company.com/sse \

110 --header "X-API-Key: your-key-here"110 --header "X-API-Key: your-key-here"

111```111```

112 112 

113### Option 3 : Ajouter un serveur stdio local113### Option 3 : ajouter un serveur stdio local

114 114 

115Les serveurs stdio s'exécutent en tant que processus locaux sur votre machine. Ils sont idéaux pour les outils qui ont besoin d'un accès direct au système ou de scripts personnalisés.115Les serveurs stdio s'exécutent comme des processus locaux sur votre machine. Ils sont idéaux pour les outils qui nécessitent un accès direct au système ou pour des scripts personnalisés.

116 116 

117Claude Code définit `CLAUDE_PROJECT_DIR` dans l'environnement du serveur généré pour la racine du projet, afin que votre serveur puisse résoudre les chemins relatifs au projet sans dépendre du répertoire de travail. C'est le même répertoire que les hooks reçoivent dans leur variable `CLAUDE_PROJECT_DIR`. Lisez-le depuis l'intérieur de votre processus serveur, par exemple `process.env.CLAUDE_PROJECT_DIR` en Node ou `os.environ["CLAUDE_PROJECT_DIR"]` en Python.117Claude Code définit `CLAUDE_PROJECT_DIR` dans l'environnement du serveur lancé sur la racine du projet, afin que votre serveur puisse résoudre les chemins relatifs au projet sans dépendre du répertoire de travail. Il s'agit du même répertoire que celui que les hooks reçoivent dans leur variable `CLAUDE_PROJECT_DIR`. Lisez-la depuis votre processus serveur, par exemple `process.env.CLAUDE_PROJECT_DIR` en Node ou `os.environ["CLAUDE_PROJECT_DIR"]` en Python.

118 118 

119`CLAUDE_PROJECT_DIR` est la racine de projet stable et ne change pas lorsque vous ajoutez ou supprimez des répertoires de travail en cours de session. Un serveur qui limite son propre accès au système de fichiers à un ensemble de répertoires autorisés devrait implémenter la requête MCP `roots/list` à la place. Claude Code répond à `roots/list` avec le répertoire de lancement de la session plus chaque [répertoire de travail supplémentaire](https://code.claude.com/docs/fr/permissions.md#working-directories) que vous avez accordé avec `--add-dir`, `/add-dir`, ou le paramètre `additionalDirectories`. Claude Code envoie `notifications/roots/list_changed` lorsque cet ensemble change.119`CLAUDE_PROJECT_DIR` est la racine stable du projet et ne change pas lorsque vous ajoutez ou supprimez des répertoires de travail en cours de session. Un serveur qui limite son propre accès au système de fichiers à un ensemble de répertoires autorisés doit plutôt implémenter la requête MCP `roots/list`. Claude Code répond à `roots/list` avec le répertoire de lancement de la session ainsi que chaque [répertoire de travail supplémentaire](https://code.claude.com/docs/fr/permissions.md#working-directories) que vous avez accordé avec `--add-dir`, `/add-dir` ou le paramètre `additionalDirectories`. Claude Code envoie `notifications/roots/list_changed` lorsque cet ensemble change.

120 120 

121Cette variable est définie dans l'environnement du serveur, pas dans l'environnement de Claude Code lui-même, donc la référencer via l'expansion `${VAR}` dans la `command` ou `args` d'une entrée `.mcp.json` de portée projet ou d'une entrée de serveur de portée locale ou utilisateur dans `~/.claude.json` nécessite une valeur par défaut telle que `${CLAUDE_PROJECT_DIR:-.}`. Les configurations MCP fournies par les plugins substituent `${CLAUDE_PROJECT_DIR}` directement et n'ont pas besoin de la valeur par défaut.121Cette variable est définie dans l'environnement du serveur, et non dans celui de Claude Code lui-même. Y faire référence via l'expansion `${VAR}` dans le `command` ou les `args` d'une entrée `.mcp.json` de portée projet, ou d'une entrée de serveur de portée locale ou utilisateur dans `~/.claude.json`, nécessite donc une valeur par défaut telle que `${CLAUDE_PROJECT_DIR:-.}`. Les configurations MCP fournies par des plugins substituent `${CLAUDE_PROJECT_DIR}` directement et n'ont pas besoin de valeur par défaut.

122 122 

123```bash theme={null}123```bash theme={null}

124# Syntaxe de base124# Basic syntax

125claude mcp add [options] <name> -- <command> [args...]125claude mcp add [options] <name> -- <command> [args...]

126 126 

127# Exemple réel : Ajouter un serveur Airtable127# Real example: Add Airtable server

128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \128claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \

129 -- npx -y airtable-mcp-server129 -- npx -y airtable-mcp-server

130```130```

131 131 

132> [!NOTE]132> [!NOTE]

133>133>

134> Pour les serveurs stdio, le `--` (double tiret) sépare les options propres à Claude, telles que `--transport`, `--env`, et `--scope`, de la commande et des arguments qui exécutent le serveur. Tout ce qui suit `--` est transmis au serveur sans modification.134> Pour les serveurs stdio, le `--` (double tiret) sépare les options propres à Claude, comme `--transport`, `--env` et `--scope`, de la commande et des arguments qui exécutent le serveur. Tout ce qui suit `--` est transmis au serveur sans modification.

135>135>

136> Par exemple :136> Par exemple :

137>137>


140>140>

141> Sans `--`, Claude Code essaierait d'analyser les flags du serveur, comme `--port` ci-dessus, comme ses propres options.141> Sans `--`, Claude Code essaierait d'analyser les flags du serveur, comme `--port` ci-dessus, comme ses propres options.

142>142>

143> `--env` accepte plusieurs paires `KEY=value`. Si le nom du serveur vient directement après `--env`, la CLI lit le nom comme une autre paire et le rejette, donc placez au moins une autre option, telle que `--transport stdio`, entre `--env` et le nom du serveur.143> `--env` accepte plusieurs paires `KEY=value`. Si le nom du serveur suit directement `--env`, la CLI lit le nom comme une autre paire et le rejette. Placez donc au moins une autre option, comme `--transport stdio`, entre `--env` et le nom du serveur.

144 144 

145#### Comment Claude Code arrête un serveur stdio145#### Comment Claude Code arrête un serveur stdio

146 146 

147Lorsque Claude Code déconnecte un serveur stdio, par exemple à la fin de votre session, il envoie un signal au processus du serveur et attend brièvement qu'il se termine avant de le forcer à s'arrêter. Si votre serveur enregistre un état ou supprime des fichiers de verrouillage à l'arrêt, gérez le signal propre à votre plateforme et terminez dans ce délai :147Lorsque Claude Code déconnecte un serveur stdio, par exemple à la fin de votre session, il envoie un signal au processus du serveur et attend brièvement qu'il se termine avant de forcer son arrêt. Si votre serveur enregistre un état ou supprime des fichiers de verrou à l'arrêt, gérez le signal propre à votre plateforme et terminez dans ce délai :

148 148 

149* **Sur macOS et Linux** : Claude Code envoie `SIGINT`, puis `SIGTERM` si le processus s'exécute toujours 100 millisecondes plus tard, puis `SIGKILL` après 400 millisecondes supplémentaires.149* **Sur macOS et Linux** : Claude Code envoie `SIGINT`, puis `SIGTERM` si le processus tourne encore 100 millisecondes plus tard, puis `SIGKILL` après 400 millisecondes supplémentaires.

150* **Sur Windows** : Claude Code ferme le stdin du serveur, puis met fin à l'arborescence de processus du serveur si le processus s'exécute toujours 300 millisecondes plus tard.150* **Sur Windows** : Claude Code ferme le stdin du serveur, puis met fin à l'arborescence de processus du serveur si le processus tourne encore 300 millisecondes plus tard.

151 151 

152Avant la v2.1.296, Claude Code sous Windows mettait fin immédiatement à l'arborescence de processus du serveur, sans fermer d'abord stdin ni attendre.152Avant la v2.1.296, Claude Code sur Windows mettait fin immédiatement à l'arborescence de processus du serveur, sans fermer d'abord stdin ni attendre.

153 153 

154### Option 4 : Ajouter un serveur WebSocket distant154### Option 4 : ajouter un serveur WebSocket distant

155 155 

156Les serveurs WebSocket maintiennent une connexion bidirectionnelle persistante, ce qui convient aux serveurs MCP distants qui poussent des événements vers Claude sans être sollicités. Utilisez plutôt HTTP lorsque votre serveur répond uniquement aux requêtes, car HTTP supporte OAuth et le flag `claude mcp add --transport`, tandis que WebSocket ne supporte ni l'un ni l'autre.156Les serveurs WebSocket maintiennent une connexion bidirectionnelle persistante, ce qui convient aux serveurs MCP distants qui envoient des événements à Claude sans sollicitation. Utilisez plutôt HTTP lorsque votre serveur ne fait que répondre à des requêtes, car HTTP prend en charge OAuth et le flag `claude mcp add --transport`, alors que WebSocket ne prend en charge ni l'un ni l'autre.

157 157 

158Configurez les serveurs WebSocket dans `.mcp.json` ou avec `claude mcp add-json` :158Configurez les serveurs WebSocket dans `.mcp.json` ou avec `claude mcp add-json` :

159 159 


162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'162 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'

163```163```

164 164 

165L'entrée `type: "ws"` accepte les mêmes champs `url`, `headers`, `headersHelper`, `timeout`, et `alwaysLoad` que `http`. L'authentification est basée sur les en-têtes uniquement, donc passez un jeton statique dans `headers` ou générez-en un au moment de la connexion avec [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Le flag `claude mcp add --transport` n'accepte pas `ws`.165L'entrée `type: "ws"` accepte les mêmes champs `url`, `headers`, `headersHelper`, `timeout` et `alwaysLoad` que `http`. L'authentification se fait uniquement par en-têtes : passez donc un jeton statique dans `headers` ou générez-en un au moment de la connexion avec [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Le flag `claude mcp add --transport` n'accepte pas `ws`.

166 166 

167### Ajouter un serveur à partir d'instructions de configuration écrites pour un autre client167### Ajouter un serveur à partir d'instructions d'installation écrites pour un autre client

168 168 

169Les serveurs MCP ne sont pas spécifiques à Claude Code, donc les instructions de configuration d'un serveur peuvent être écrites pour Claude Desktop, Cursor, ou un autre client MCP et ne pas donner de commande `claude mcp add`. Pour ajouter le serveur quand même, cherchez dans ces instructions une URL, une commande de lancement, ou un bloc JSON :169Les serveurs MCP ne sont pas propres à Claude Code : les instructions d'installation d'un serveur peuvent donc être écrites pour Claude Desktop, Cursor ou un autre client MCP, sans fournir de commande `claude mcp add`. Pour ajouter tout de même le serveur, cherchez dans ces instructions une URL, une commande de lancement ou un bloc JSON :

170 170 

171* **Une URL** telle que `https://mcp.example.com/mcp` : le serveur est distant.171* **Une URL** telle que `https://mcp.example.com/mcp` : le serveur est distant.

172* **Une commande de lancement** telle que `npx -y @example/mcp-server` : le serveur s'exécute sur votre machine.172* **Une commande de lancement** telle que `npx -y @example/mcp-server` : le serveur s'exécute sur votre machine.

173* **Un bloc JSON `mcpServers`** : configuration écrite pour le fichier de paramètres d'un autre client.173* **Un bloc JSON `mcpServers`** : une configuration écrite pour le fichier de paramètres d'un autre client.

174 174 

175Chacun est l'une des entrées que les quatre options dans [Installation des serveurs MCP](#installing-mcp-servers) prennent. Trouvez la forme que vous avez ci-dessous pour la transformer en commande que Claude Code accepte. Chaque commande écrit dans la [portée locale](#local-scope) sauf si vous ajoutez `--scope project` ou `--scope user`.175Chacun correspond à l'une des entrées attendues par les quatre options de la section [Installer des serveurs MCP](#installing-mcp-servers). Trouvez ci-dessous la forme dont vous disposez pour la convertir en commande acceptée par Claude Code. Chaque commande écrit dans la [portée locale](#local-scope), sauf si vous ajoutez `--scope project` ou `--scope user`.

176 176 

177#### Ajouter un serveur à partir d'une URL177#### Ajouter un serveur à partir d'une URL

178 178 

179Une URL signifie que le serveur est distant. Pour un endpoint `https://`, ajoutez-le avec `--transport http`, ou suivez [Option 2](#option-2-add-a-remote-sse-server) lorsque les instructions indiquent que l'endpoint utilise SSE. Pour un endpoint `wss://`, utilisez plutôt [Option 4](#option-4-add-a-remote-websocket-server), car `--transport` n'accepte pas `ws` :179Une URL signifie que le serveur est distant. Pour un endpoint `https://`, ajoutez-le avec `--transport http`, ou suivez l'[Option 2](#option-2-add-a-remote-sse-server) lorsque les instructions indiquent que l'endpoint utilise SSE. Pour un endpoint `wss://`, utilisez plutôt l'[Option 4](#option-4-add-a-remote-websocket-server), car `--transport` n'accepte pas `ws` :

180 180 

181```bash theme={null}181```bash theme={null}

182claude mcp add --transport http example https://mcp.example.com/mcp182claude mcp add --transport http example https://mcp.example.com/mcp

183```183```

184 184 

185Si les instructions donnent également une clé API ou un en-tête de jeton, passez-le avec `--header` comme montré dans [Option 1](#option-1-add-a-remote-http-server).185Si les instructions fournissent également une clé API ou un en-tête de jeton, passez-le avec `--header` comme indiqué dans l'[Option 1](#option-1-add-a-remote-http-server).

186 186 

187#### Ajouter un serveur à partir d'une commande `npx`, `uvx`, ou binaire187#### Ajouter un serveur à partir d'une commande `npx`, `uvx` ou d'un binaire

188 188 

189Une commande de lancement signifie que le serveur s'exécute en tant que processus stdio local. Mettez la commande entière après `--`, afin que Claude Code transmette les flags tels que `-y` à la commande qui démarre le serveur au lieu de les lire comme ses propres options. Passez toutes les variables d'environnement que les instructions demandent avec `--env`, après le nom du serveur et avant `--` :189Une commande de lancement signifie que le serveur s'exécute comme un processus stdio local. Placez la commande entière après `--`, afin que Claude Code transmette les flags tels que `-y` à la commande qui démarre le serveur au lieu de les lire comme ses propres options. Passez les variables d'environnement demandées par les instructions avec `--env`, après le nom du serveur et avant `--` :

190 190 

191```bash theme={null}191```bash theme={null}

192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server192claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server

193```193```

194 194 

195[Option 3](#option-3-add-a-local-stdio-server) couvre le séparateur `--` en détail.195L'[Option 3](#option-3-add-a-local-stdio-server) décrit en détail le séparateur `--`.

196 196 

197#### Ajouter un serveur à partir d'un bloc JSON `mcpServers`197#### Ajouter un serveur à partir d'un bloc JSON `mcpServers`

198 198 

199Un bloc `mcpServers` écrit pour un autre client MCP, tel que Claude Desktop, utilise la clé wrapper et la forme d'entrée que Claude Code lit. Passez à `claude mcp add-json` l'objet à l'intérieur de `mcpServers`, pas le wrapper. Deux entrées ont besoin d'une réparation d'abord :199Un bloc `mcpServers` écrit pour un autre client MCP, comme Claude Desktop, utilise la clé englobante et la forme d'entrée que lit Claude Code. Passez à `claude mcp add-json` l'objet situé à l'intérieur de `mcpServers`, et non l'enveloppe. Deux types d'entrées doivent d'abord être corrigés :

200 200 

201* **Une `url` sans `type`** : ajoutez `"type": "http"`, `"type": "sse"`, ou `"type": "ws"` pour correspondre à l'endpoint. Claude Code lit une entrée sans `type` comme un serveur stdio, donc une entrée `url` sans `type` échoue.201* **Un `url` sans `type`** : ajoutez `"type": "http"`, `"type": "sse"` ou `"type": "ws"` selon l'endpoint. Claude Code lit une entrée sans `type` comme un serveur stdio, si bien qu'une entrée `url` sans `type` échoue.

202* **Une clé avec des caractères autres que des lettres, des chiffres, des tirets, et des traits de soulignement** : choisissez un nom de serveur qui utilise uniquement ces caractères. Sinon, la clé est le nom du serveur.202* **Une clé contenant des caractères autres que des lettres, des chiffres, des tirets et des tirets bas** : choisissez un nom de serveur qui n'utilise que ces caractères. Sinon, la clé est le nom du serveur.

203 203 

204Par exemple, ce bloc :204Par exemple, ce bloc :

205 205 


220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'220claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

221```221```

222 222 

223[Ajouter des serveurs MCP à partir de la configuration JSON](#add-mcp-servers-from-json-configuration) couvre l'échappement du shell et le flag `--scope` pour `add-json`. Pour partager le serveur avec votre équipe à la place, ajoutez `--scope project`, ou ajoutez l'entrée sous `mcpServers` dans `.mcp.json` à la racine de votre projet et faites-en un commit. [Portée du projet](#project-scope) couvre comment Claude Code charge et approuve ce fichier.223La section [Ajouter des serveurs MCP à partir d'une configuration JSON](#add-mcp-servers-from-json-configuration) traite de l'échappement shell et du flag `--scope` pour `add-json`. Pour partager plutôt le serveur avec votre équipe, ajoutez `--scope project`, ou ajoutez l'entrée sous `mcpServers` dans `.mcp.json` à la racine de votre projet et faites-en un commit. La section [Portée projet](#project-scope) explique comment Claude Code charge et approuve ce fichier.

224 224 

225Chaque commande `claude mcp add` et `claude mcp add-json` imprime une ligne `Added ...` en cas de succès. Pour vérifier que Claude Code s'est connecté, exécutez `claude mcp get <name>` ; [État du serveur](#server-status) couvre les statuts qu'il affiche et l'étape d'approbation pour les serveurs `.mcp.json`.225Chaque commande `claude mcp add` et `claude mcp add-json` affiche une ligne `Added ...` en cas de succès. Pour vérifier que Claude Code s'est connecté, exécutez `claude mcp get <name>` ; la section [Statut du serveur](#server-status) décrit les statuts affichés et l'étape d'approbation pour les serveurs `.mcp.json`.

226 226 

227### Gestion de vos serveurs227### Gérer vos serveurs

228 228 

229Une fois configurés, vous pouvez gérer vos serveurs MCP avec ces commandes :229Une fois configurés, vous pouvez gérer vos serveurs MCP avec ces commandes :

230 230 

231```bash theme={null}231```bash theme={null}

232# Lister tous les serveurs configurés232# List all configured servers

233claude mcp list233claude mcp list

234 234 

235# Obtenir les détails d'un serveur spécifique235# Get details for a specific server

236claude mcp get notion236claude mcp get notion

237 237 

238# Supprimer un serveur238# Remove a server

239claude mcp remove notion239claude mcp remove notion

240 240 

241# (dans Claude Code) Vérifier l'état du serveur241# (within Claude Code) Check server status

242/mcp242/mcp

243```243```

244 244 

245Lorsque vous supprimez un serveur distant, Claude Code supprime également les jetons OAuth et l'enregistrement client qu'il avait stockés pour ce serveur. Claude Code ne révoque pas les jetons auprès du serveur d'autorisation qui les a émis. Pour révoquer les jetons lorsque le serveur d'autorisation prend en charge la révocation, exécutez [`claude mcp logout <name>`](#authenticate-from-the-command-line) dans votre shell avant `claude mcp remove <name>`.245Lorsque vous supprimez un serveur distant, Claude Code supprime également les jetons OAuth et l'enregistrement client qu'il avait stockés pour ce serveur. Claude Code ne révoque pas les jetons auprès du serveur d'autorisation qui les a émis. Pour révoquer les jetons lorsque le serveur d'autorisation prend en charge la révocation, exécutez [`claude mcp logout <name>`](#authenticate-from-the-command-line) dans votre shell avant `claude mcp remove <name>`.

246 246 

247#### État du serveur247#### Statut du serveur

248 248 

249`claude mcp add` confirme un ajout réussi en imprimant une ligne `Added ...`, ce qui signifie que la configuration a été écrite. Si la commande imprime plutôt un message `was not saved`, voir [MCP server was not saved or removed](https://code.claude.com/docs/fr/errors.md#mcp-server-was-not-saved-or-removed) ; pour un message `may not have been saved`, voir [MCP server may not have been saved or removed](https://code.claude.com/docs/fr/errors.md#mcp-server-may-not-have-been-saved-or-removed).249`claude mcp add` confirme un ajout réussi en affichant une ligne `Added ...`, ce qui signifie que la configuration a été écrite. Si la commande affiche plutôt un message `was not saved`, consultez [Le serveur MCP n'a pas été enregistré ou supprimé](https://code.claude.com/docs/fr/errors.md#mcp-server-was-not-saved-or-removed) ; pour un message `may not have been saved`, consultez [Le serveur MCP n'a peut-être pas été enregistré ou supprimé](https://code.claude.com/docs/fr/errors.md#mcp-server-may-not-have-been-saved-or-removed).

250 250 

251`claude mcp list` affiche un statut de santé à côté de chaque serveur qu'il liste, tel que `✔ Connected`, `! Needs authentication`, ou `✘ Failed to connect`. Un statut d'échec signifie que Claude Code n'a pas pu se connecter à ce serveur, pas que la commande list a échoué.251`claude mcp list` affiche un statut de santé à côté de chaque serveur listé, comme `✔ Connected`, `! Needs authentication` ou `✘ Failed to connect`. Un statut d'échec signifie que Claude Code n'a pas pu se connecter à ce serveur, et non que la commande de listage a échoué.

252 252 

253Les statuts dans cette liste signalent une décision de configuration plutôt qu'une tentative de connexion, donc Claude Code les imprime sans se connecter au serveur :253Les statuts de cette liste rendent compte d'une décision de configuration plutôt que d'une tentative de connexion : Claude Code les affiche donc sans se connecter au serveur :

254 254 

255* ``⏸ Pending approval (run `claude` to approve)`` : un serveur de portée projet provenant de `.mcp.json` que vous n'avez pas encore approuvé. Claude Code l'affiche dans `claude mcp list` et dans `claude mcp get <name>`. Exécutez `claude` en mode interactif pour l'examiner et l'approuver.255* ``⏸ Pending approval (run `claude` to approve)`` : un serveur de portée projet issu de `.mcp.json` que vous n'avez pas encore approuvé. Claude Code l'affiche à la fois dans `claude mcp list` et dans `claude mcp get <name>`. Exécutez `claude` en mode interactif pour l'examiner et l'approuver.

256* `✘ Rejected (see disabledMcpjsonServers in settings)` : un serveur `.mcp.json` qu'une entrée [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers) rejette. Claude Code l'affiche uniquement dans `claude mcp get <name>`.256* `✘ Rejected (see disabledMcpjsonServers in settings)` : un serveur `.mcp.json` qu'une entrée [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers) rejette. Claude Code ne l'affiche que dans `claude mcp get <name>`.

257* `⊘ Disabled for this project (re-enable via /mcp)` : un serveur que la liste [`disabledMcpServers`](#disable-a-server-without-removing-it) du projet nomme. Claude Code l'affiche à la fois dans `claude mcp list` et `claude mcp get <name>`. Réactivez le serveur à partir du panneau `/mcp`.257* `⊘ Disabled for this project (re-enable via /mcp)` : un serveur nommé dans la liste [`disabledMcpServers`](#disable-a-server-without-removing-it) du projet. Claude Code l'affiche à la fois dans `claude mcp list` et dans `claude mcp get <name>`. Réactivez le serveur depuis le panneau `/mcp`.

258* `✘ Blocked by enterprise managed policy` : un serveur refusé par l'une des politiques de votre organisation. Claude Code l'affiche à la fois dans `claude mcp list` et `claude mcp get <name>`. Un serveur bloqué par une liste d'autorisation, une liste de refus ou une autre restriction de la [configuration MCP gérée](https://code.claude.com/docs/fr/managed-mcp.md#how-restrictions-appear-to-users) est masqué dans les deux commandes plutôt qu'affiché avec ce statut. Demandez à votre administrateur quelle politique bloque le serveur.258* `✘ Blocked by enterprise managed policy` : un serveur refusé par l'une des politiques de votre organisation. Claude Code l'affiche à la fois dans `claude mcp list` et dans `claude mcp get <name>`. Un serveur bloqué par une liste d'autorisation, une liste de refus ou une autre restriction de la [configuration MCP gérée](https://code.claude.com/docs/fr/managed-mcp.md#how-restrictions-appear-to-users) est masqué dans les deux commandes plutôt qu'affiché avec ce statut. Demandez à votre administrateur quelle politique bloque le serveur.

259 259 

260#### Approbations des serveurs de projet et confiance de l'espace de travail260#### Approbations des serveurs de projet et confiance de l'espace de travail

261 261 

262`claude mcp list` et `claude mcp get` lisent les approbations `.mcp.json` uniquement à partir des fichiers de paramètres qui ne sont pas commités dans le dépôt jusqu'à ce que vous fassiez confiance à l'espace de travail en y exécutant `claude` et en acceptant la boîte de dialogue de confiance de l'espace de travail. Un dépôt cloné ne peut pas approuver ses propres serveurs : [`enableAllProjectMcpServers`](https://code.claude.com/docs/fr/settings-reference#enableallprojectmcpservers) ou [`enabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#enabledmcpjsonservers) commité dans le `.claude/settings.json` du projet est ignoré dans un dossier non approuvé, et le serveur reste à `⏸ Pending approval` au lieu d'être connecté et vérifié.262`claude mcp list` et `claude mcp get` ne lisent les approbations `.mcp.json` que depuis des fichiers de paramètres qui ne sont pas versionnés dans le dépôt, jusqu'à ce que vous fassiez confiance à l'espace de travail en y exécutant `claude` et en acceptant la boîte de dialogue de confiance de l'espace de travail. Un dépôt cloné ne peut pas approuver ses propres serveurs : [`enableAllProjectMcpServers`](https://code.claude.com/docs/fr/settings-reference#enableallprojectmcpservers) ou [`enabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#enabledmcpjsonservers) commités dans le `.claude/settings.json` du projet sont ignorés dans un dossier non approuvé, et le serveur reste à `⏸ Pending approval` au lieu d'être connecté et vérifié.

263 263 

264Les approbations de ces sources s'appliquent toujours dans un dossier non approuvé :264Les approbations provenant de ces sources s'appliquent néanmoins dans un dossier non approuvé :

265 265 

266* votre `~/.claude/settings.json` utilisateur266* votre `~/.claude/settings.json` utilisateur

267* paramètres gérés267* les paramètres gérés

268* paramètres passés avec `--settings`268* les paramètres passés avec `--settings`

269 269 

270Claude Code applique également les approbations à partir d'un `.claude/settings.local.json` non suivi, mais il exécute git pour vérifier si le fichier est suivi, et il n'exécute cette vérification que dans un [dossier approuvé](https://code.claude.com/docs/fr/permissions.md#project-allow-rules-and-workspace-trust). Dans un dossier que vous n'avez jamais approuvé, Claude Code attend la boîte de dialogue de confiance avant d'appliquer les approbations du fichier, sauf si le dossier est votre répertoire de configuration personnel : votre répertoire personnel, ou un répertoire dont vous avez défini le `.claude` comme [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars). Avant la v2.1.207, Claude Code appliquait les approbations à partir d'un `.claude/settings.local.json` non suivi même dans un dossier que vous n'aviez jamais approuvé.270Claude Code applique également les approbations d'un `.claude/settings.local.json` non suivi, mais il exécute git pour vérifier si le fichier est suivi, et n'effectue cette vérification que dans un [dossier approuvé](https://code.claude.com/docs/fr/permissions.md#project-allow-rules-and-workspace-trust). Dans un dossier auquel vous n'avez jamais fait confiance, Claude Code attend la boîte de dialogue de confiance avant d'appliquer les approbations du fichier, sauf si le dossier est votre propre répertoire de configuration : votre répertoire personnel, ou un répertoire dont vous avez défini le `.claude` comme [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/fr/env-vars). Avant la v2.1.207, Claude Code appliquait les approbations d'un `.claude/settings.local.json` non suivi même dans un dossier auquel vous n'aviez jamais fait confiance.

271 271 

272Une entrée `disabledMcpjsonServers` dans n'importe quel fichier de paramètres rejette toujours le serveur.272Une entrée `disabledMcpjsonServers` dans n'importe quel fichier de paramètres rejette toujours le serveur.

273 273 

274#### Détail de l'état du serveur274#### Détail du statut du serveur

275 275 

276Dans `/mcp`, y compris le menu d'un serveur là-bas, et dans le gestionnaire [`/plugin`](https://code.claude.com/docs/fr/plugins/install), un serveur HTTP ou SSE distant que vous avez utilisé auparavant peut afficher un statut `cached` tel que `cached 2h ago · connects on first use · 5 tools`. Claude Code a chargé la liste d'outils du serveur à partir de son cache de découverte, enregistré dans une session précédente, au lieu de se connecter au démarrage, et Claude Code connecte le serveur la première fois que Claude appelle l'un des outils du serveur. Les outils sont disponibles à partir de votre premier message, donc vous n'avez rien à faire. Le cache de découverte et son statut `cached` nécessitent Claude Code v2.1.221 ou ultérieur.276Dans `/mcp`, y compris dans le menu d'un serveur, ainsi que dans le gestionnaire [`/plugin`](https://code.claude.com/docs/fr/plugins/install), un serveur HTTP ou SSE distant que vous avez déjà utilisé peut afficher un statut `cached` tel que `cached 2h ago · connects on first use · 5 tools`. Claude Code a chargé la liste d'outils du serveur depuis son cache de découverte, enregistré lors d'une session précédente, au lieu de se connecter au démarrage, et Claude Code connecte le serveur la première fois que Claude appelle l'un de ses outils. Les outils sont disponibles dès votre premier message : vous n'avez donc rien à faire. Le cache de découverte et son statut `cached` nécessitent Claude Code v2.1.221 ou une version ultérieure.

277 277 

278Le cache de découverte est désactivé par défaut sauf si un déploiement progressif l'a activé pour votre compte. Définissez [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/fr/env-vars) pour l'activer, ou `0` pour le garder désactivé même lorsque le déploiement l'a activé. Avant la v2.1.238, le cache était activé par défaut.278Le cache de découverte est désactivé par défaut, sauf si un déploiement progressif l'a activé pour votre compte. Définissez [`MCP_DISCOVERY_CACHE=1`](https://code.claude.com/docs/fr/env-vars) pour l'activer, ou `0` pour le garder désactivé même lorsque le déploiement progressif l'a activé. Avant la v2.1.238, le cache était activé par défaut.

279 279 

280Lorsque vous sélectionnez **Disable** ou **Clear authentication** dans le menu d'un serveur dans `/mcp`, Claude Code supprime également l'entrée du cache de ce serveur. **Reconnect** la supprime également sur un serveur connecté ou défaillant ; sur un serveur `cached`, **Reconnect** connecte le serveur maintenant et conserve l'entrée. La prochaine fois que Claude Code se connecte au serveur après suppression de l'entrée, il récupère la liste d'outils du serveur au lieu du cache.280Lorsque vous sélectionnez **Disable** ou **Clear authentication** dans le menu d'un serveur dans `/mcp`, Claude Code supprime également l'entrée de cache de ce serveur. **Reconnect** la supprime aussi sur un serveur connecté ou en échec ; sur un serveur `cached`, **Reconnect** connecte le serveur immédiatement et conserve l'entrée. La prochaine fois que Claude Code se connecte au serveur après avoir supprimé l'entrée, il récupère la liste d'outils depuis le serveur plutôt que depuis le cache.

281 281 

282##### Échecs de connexion et serveurs non configurés282##### Échecs de connexion et serveurs non configurés

283 283 

284Lorsque le statut d'un serveur est `✘ Failed to connect`, `claude mcp list` ajoute le détail de l'échec à cette ligne de statut, et `claude mcp get <name>` l'affiche sur une ligne `Issue:`. Le détail correspond au statut HTTP ou au code d'erreur, ainsi qu'à tout texte d'erreur renvoyé par le serveur. La vue détaillée du serveur dans `/mcp` inclut le même texte signalé par le serveur dans sa ligne `Issue:`.284Lorsque le statut d'un serveur est `✘ Failed to connect`, `claude mcp list` ajoute le détail de l'échec à cette ligne de statut, et `claude mcp get <name>` l'affiche sur une ligne `Issue:`. Le détail est le statut HTTP ou le code d'erreur, ainsi que tout texte d'erreur renvoyé par le serveur. La vue détaillée du serveur dans `/mcp` inclut le même texte rapporté par le serveur dans sa ligne `Issue:`.

285 285 

286Claude Code masque dans ce détail tout texte ressemblant à des identifiants et n'inclut jamais l'URL développée du serveur, qui peut contenir des secrets. Claude Code n'ajoute aucun détail à un statut `✘ Connection error`, car le texte d'exception qu'il y afficherait peut intégrer cette URL.286Claude Code masque dans ce détail tout texte ressemblant à des identifiants et n'inclut jamais l'URL développée du serveur, qui peut contenir des secrets. Claude Code n'ajoute aucun détail à un statut `✘ Connection error`, car le texte d'exception qu'il y afficherait peut contenir cette URL.

287 287 

288Lorsque vous terminez l'authentification à partir de `/mcp` et que la connexion échoue toujours avec un code de statut HTTP ou un code d'erreur de transport, Claude Code ajoute ce code et l'origine de l'URL du serveur au message qu'il imprime après la tentative. L'origine est le schéma et l'hôte, plus le port lorsque l'URL en nomme un, tel que `https://mcp.example.com`.288Lorsque vous terminez l'authentification depuis `/mcp` et que la connexion échoue toujours avec un statut HTTP ou un code d'erreur de transport, Claude Code ajoute ce code et l'origine de l'URL du serveur au message qu'il affiche après la tentative. L'origine est le schéma et l'hôte, plus le port lorsque l'URL en spécifie un, comme `https://mcp.example.com`.

289 289 

290* Le chemin et la chaîne de requête n'apparaissent jamais dans ce message.290* Le chemin et la chaîne de requête n'apparaissent jamais dans ce message.

291* Pour un serveur dans la [portée](#mcp-installation-scopes) locale, projet ou utilisateur, ou dans la configuration MCP gérée, l'origine affiche l'hôte tel qu'écrit dans cette configuration, donc une référence `${VAR}` dans l'hôte n'est pas développée dans le message.291* Pour un serveur de [portée](#mcp-installation-scopes) locale, projet ou utilisateur, ou issu de la configuration MCP gérée, l'origine affiche l'hôte tel qu'il est écrit dans cette configuration : une référence `${VAR}` dans l'hôte n'est donc pas développée dans le message.

292* Pour un échec sans code de statut ou d'erreur, Claude Code affiche le texte d'erreur sans l'origine.292* Pour un échec sans statut ni code d'erreur, Claude Code affiche le texte d'erreur sans l'origine.

293 293 

294Un serveur distant dont la configuration a une `url` vide s'affiche comme `not configured` dans `/mcp`, dans `claude mcp list`, et dans le gestionnaire [`/plugin`](https://code.claude.com/docs/fr/plugins/install), et Claude Code ne tente pas de s'y connecter. Un plugin peut inclure une entrée d'espace réservé comme celle-ci pour un connecteur que vous configurez plus tard, afin que Claude Code ne le signale pas comme une erreur ou un problème de configuration. La vue détaillée du serveur dans `/mcp` indique `No URL configured for this server` ; définissez la `url` de l'entrée pour la connecter.294Un serveur distant dont la configuration a un `url` vide s'affiche comme `not configured` dans `/mcp`, dans `claude mcp list` et dans le gestionnaire [`/plugin`](https://code.claude.com/docs/fr/plugins/install), et Claude Code ne tente pas de s'y connecter. Un plugin peut inclure une entrée d'attente de ce type pour un connecteur que vous configurerez plus tard : Claude Code ne le signale donc ni comme une erreur ni comme un problème de configuration. La vue détaillée du serveur dans `/mcp` indique `No URL configured for this server` ; définissez le `url` de l'entrée pour le connecter.

295 295 

296#### Avertissements de configuration296#### Avertissements de configuration

297 297 

298Claude Code avertit des problèmes de configuration ci-dessous. Chaque entrée indique ce que Claude Code vérifie et comment effacer l'avertissement :298Claude Code émet des avertissements pour les problèmes de configuration ci-dessous. Chaque entrée indique ce que Claude Code vérifie et comment faire disparaître l'avertissement :

299 299 

300* **Espaces blancs cachés** : Claude Code avertit lorsqu'une valeur de configuration MCP porte des espaces blancs cachés en début ou en fin, ce qui provient souvent du collage d'un jeton avec une nouvelle ligne de fin. Claude Code vérifie `command`, `url`, chaque entrée `args`, et les valeurs et noms de clés sous `env` et `headers`. Claude Code affiche l'avertissement dans la sortie de `claude mcp list` et dans `/mcp`, en nommant les champs affectés sans répéter leurs valeurs, par exemple `Leading or trailing whitespace in: headers.Authorization`. Claude Code ne supprime pas les espaces blancs et utilise les valeurs exactement telles qu'écrites, donc modifiez la configuration pour les supprimer.300* **Espaces invisibles** : Claude Code émet un avertissement lorsqu'une valeur de configuration MCP contient des espaces invisibles en début ou en fin, ce qui provient souvent du collage d'un jeton suivi d'un saut de ligne. Claude Code vérifie `command`, `url`, chaque entrée `args`, ainsi que les valeurs et noms de clés sous `env` et `headers`. Claude Code affiche l'avertissement dans la sortie de `claude mcp list` et dans `/mcp`, en nommant les champs concernés sans reproduire leurs valeurs, par exemple `Leading or trailing whitespace in: headers.Authorization`. Claude Code ne supprime pas ces espaces et utilise les valeurs exactement telles qu'elles sont écrites : modifiez donc la configuration pour les supprimer.

301* **Même nom dans plus d'une portée** : si vous définissez le même nom de serveur dans plus d'une [portée](#mcp-installation-scopes) avec des endpoints différents, Claude Code avertit du conflit dans la sortie de `claude mcp list` et dans `/mcp`. Claude Code stocke les connexions OAuth par endpoint, donc lorsque vous authentifiez la définition qui se charge dans un projet, vous devez toujours vous connecter séparément dans un projet où une définition différente se charge. Conservez l'endpoint que vous voulez et supprimez les autres avec `claude mcp remove <name> --scope <scope>`. Dans l'avertissement, Claude Code cite l'endpoint de chaque portée tel qu'écrit dans votre configuration, avec les [références `${VAR}`](#environment-variable-expansion-in-mcp-json) non développées, donc il n'affiche jamais une valeur résolue telle qu'une clé API.301* **Même nom dans plusieurs portées** : si vous définissez le même nom de serveur dans plusieurs [portées](#mcp-installation-scopes) avec des endpoints différents, Claude Code signale le conflit dans la sortie de `claude mcp list` et dans `/mcp`. Claude Code stocke les connexions OAuth par endpoint : lorsque vous authentifiez la définition chargée dans un projet, vous devez donc encore vous connecter séparément dans un projet où une autre définition est chargée. Conservez l'endpoint souhaité et supprimez les autres avec `claude mcp remove <name> --scope <scope>`. Dans l'avertissement, Claude Code cite l'endpoint de chaque portée tel qu'il est écrit dans votre configuration, avec les [références `${VAR}`](#environment-variable-expansion-in-mcp-json) non développées, de sorte qu'il n'affiche jamais une valeur résolue comme une clé API.

302* **Noms réservés** : Claude Code réserve les noms de ses serveurs intégrés, y compris `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, et `Claude Browser`. Si votre configuration définit un serveur avec un nom réservé, Claude Code l'ignore au moment du chargement et affiche un avertissement vous demandant de le renommer. `claude mcp add` rejette un nom réservé avec une erreur. `Claude Preview` et `Claude Browser` nomment tous deux le serveur intégré que le [volet d'aperçu de l'application de bureau Claude Code](https://code.claude.com/docs/fr/desktop.md#preview-your-app) utilise.302* **Noms réservés** : Claude Code réserve les noms de ses serveurs intégrés, notamment `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview` et `Claude Browser`. Si votre configuration définit un serveur avec un nom réservé, Claude Code l'ignore au chargement et affiche un avertissement vous demandant de le renommer. `claude mcp add` rejette un nom réservé avec une erreur. `Claude Preview` et `Claude Browser` désignent tous deux le serveur intégré utilisé par le [volet d'aperçu de l'application de bureau Claude Code](https://code.claude.com/docs/fr/desktop.md#preview-your-app).

303* **Variable d'environnement manquante** : si une [référence `${VAR}`](#environment-variable-expansion-in-mcp-json) dans la configuration d'un serveur nomme une variable qui n'est pas définie et n'a pas de `:-default`, Claude Code avertit dans la sortie de `claude mcp list` et dans `/mcp`, en nommant la variable, et charge toujours le serveur avec le texte `${VAR}` non développé. Définissez la variable ou ajoutez une valeur de secours `${VAR:-default}`. Dans l'`url` et les `headers` d'un serveur distant, certaines variables d'identifiants [sont lues comme vides](#credential-variables-that-read-as-empty) à la place, sans avertissement.303* **Variable d'environnement manquante** : si une [référence `${VAR}`](#environment-variable-expansion-in-mcp-json) dans la configuration d'un serveur nomme une variable qui n'est pas définie et n'a pas de `:-default`, Claude Code émet un avertissement dans la sortie de `claude mcp list` et dans `/mcp`, en nommant la variable, et charge quand même le serveur avec le texte `${VAR}` non développé. Définissez la variable ou ajoutez une valeur de secours `${VAR:-default}`. Dans le `url` et les `headers` d'un serveur distant, certaines variables d'identifiants [sont lues comme vides](#credential-variables-that-read-as-empty) à la place, sans avertissement.

304 304 

305#### Disponibilité des outils305#### Disponibilité des outils

306 306 

307Le panneau `/mcp` affiche le nombre d'outils à côté de chaque serveur connecté et signale les serveurs qui annoncent la capacité des outils mais n'exposent aucun outil.307Le panneau `/mcp` affiche le nombre d'outils à côté de chaque serveur connecté et signale les serveurs qui annoncent la capacité tools mais n'exposent aucun outil.

308 308 

309##### Nombre d'outils dans une session cloud309##### Nombre d'outils dans une session cloud

310 310 

311Dans une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), un nombre tel que `3 of 13 tools available` signifie que Claude ne peut pas utiliser les 10 autres. Vérifiez notamment les causes suivantes :311Dans une [session cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), un décompte tel que `3 of 13 tools available` signifie que Claude ne peut pas utiliser les 10 autres. Vérifiez notamment ces causes :

312 312 

313* **Une règle de refus dans le `.claude/settings.json` de votre dépôt nomme l'outil ou l'ensemble de son serveur** : supprimez la [règle](https://code.claude.com/docs/fr/permissions.md#mcp), si [votre session lit ce fichier](https://code.claude.com/docs/fr/settings.md#settings-in-cloud-sessions)313* **Une règle de refus dans le `.claude/settings.json` de votre dépôt nomme l'outil ou son serveur entier** : supprimez la [règle](https://code.claude.com/docs/fr/permissions.md#mcp), si [votre session lit ce fichier](https://code.claude.com/docs/fr/settings.md#settings-in-cloud-sessions)

314* **Le nom complet de l'outil dépasse 128 caractères** : suivez [les étapes pour un nom trop long](https://code.claude.com/docs/fr/errors.md#mcp-tool-name-over-128-characters)314* **Le nom complet de l'outil dépasse 128 caractères** : suivez [les étapes pour un nom trop long](https://code.claude.com/docs/fr/errors.md#mcp-tool-name-over-128-characters)

315* **Le serveur liste l'outil pour sa propre interface et non pour Claude** : si vous maintenez le serveur, ajoutez `model` à `_meta.ui.visibility` de l'outil pour le mettre à la disposition de Claude. Sinon, il n'y a rien à corriger.315* **Le serveur liste l'outil pour sa propre interface et non pour Claude** : si vous maintenez le serveur, ajoutez `model` au `_meta.ui.visibility` de l'outil pour donner l'outil à Claude. Sinon, il n'y a rien à corriger.

316 316 

317##### Outils d'un serveur encore en cours de connexion317##### Outils d'un serveur encore en cours de connexion

318 318 

319Si votre demande a besoin d'outils d'un serveur qui se connecte toujours en arrière-plan, Claude attend ce serveur avant de continuer. La façon dont l'attente se produit dépend de votre configuration :319Si votre demande nécessite des outils d'un serveur encore en cours de connexion en arrière-plan, Claude attend ce serveur avant de continuer. La manière dont l'attente se déroule dépend de votre configuration :

320 320 

321* **Avec la [recherche d'outils](#scale-with-mcp-tool-search), la valeur par défaut** : l'attente se produit à l'intérieur de l'appel `ToolSearch`.321* **Avec la [recherche d'outils](#scale-with-mcp-tool-search), par défaut** : l'attente a lieu à l'intérieur de l'appel `ToolSearch`.

322* **Sans recherche d'outils** : Claude utilise plutôt l'outil `WaitForMcpServers`. Les configurations sans recherche d'outils incluent `ENABLE_TOOL_SEARCH=false` et un modèle antérieur à Claude Opus 4.5, Claude Sonnet 4.5 et Claude Haiku 4.5 sur la plateforme Agent de Google Cloud. Pour une passerelle `ANTHROPIC_BASE_URL`, voir [Recherche d'outils via une passerelle LLM](#tool-search-through-a-gateway).322* **Sans recherche d'outils** : Claude utilise plutôt l'outil `WaitForMcpServers`. Les configurations sans recherche d'outils incluent `ENABLE_TOOL_SEARCH=false` et un modèle antérieur à Claude Opus 4.5, Claude Sonnet 4.5 et Claude Haiku 4.5 sur Agent Platform de Google Cloud. Pour une passerelle `ANTHROPIC_BASE_URL`, consultez [Recherche d'outils via une passerelle LLM](#tool-search-through-a-gateway).

323* **Sur un [déploiement Microsoft Foundry hébergé sur Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)** : Claude commence sur le chemin de recherche d'outils plutôt qu'avec `WaitForMcpServers`, car Claude Code découvre le rejet côté serveur du déploiement uniquement à partir de l'API. Après que Claude Code a basculé ce déploiement vers le [chargement en amont](#scale-with-mcp-tool-search), les outils d'un serveur qui termine de se connecter deviennent disponibles à la requête suivante de Claude.323* **Sur un [déploiement Microsoft Foundry hébergé sur Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)** : Claude démarre sur le chemin de recherche d'outils plutôt qu'avec `WaitForMcpServers`, car Claude Code ne découvre le rejet côté serveur du déploiement que par l'API. Une fois que Claude Code a basculé ce déploiement vers le [chargement anticipé](#scale-with-mcp-tool-search), les outils d'un serveur qui termine sa connexion deviennent disponibles à la requête suivante de Claude.

324 324 

325Avec la recherche d'outils activée, lorsqu'un serveur termine de se connecter pendant que Claude travaille, Claude Code liste les noms d'outils du serveur à Claude lors de sa requête suivante dans le même tour. Claude peut alors rechercher et appeler ces outils sans attendre votre message suivant.325Lorsque la recherche d'outils est activée et qu'un serveur termine sa connexion pendant que Claude travaille, Claude Code liste les noms des outils du serveur à Claude lors de sa requête suivante dans le même tour. Claude peut alors rechercher et appeler ces outils sans attendre votre prochain message.

326 326 

327Après la reprise d'une session, Claude peut appeler un outil issu de la conversation enregistrée alors que le serveur MCP de cet outil est toujours en cours de connexion. Pendant la première tentative de connexion du serveur, Claude Code retient l'appel jusqu'à 10 secondes et l'exécute dès que l'outil est disponible. Si le serveur ne se connecte pas à temps, ou s'il est déjà [en train de réessayer après une tentative échouée](#automatic-reconnection), l'appel échoue avec l'[erreur d'outil](https://code.claude.com/docs/fr/errors.md#no-such-tool-available) `No such tool available`.327Après la reprise d'une session, Claude peut appeler un outil de la conversation enregistrée alors que le serveur MCP de l'outil est encore en cours de connexion. Pendant la première tentative de connexion du serveur, Claude Code retient l'appel jusqu'à 10 secondes et l'exécute dès que l'outil est disponible. Si le serveur ne se connecte pas à temps, ou s'il est déjà [en train de réessayer après une tentative échouée](#automatic-reconnection), l'appel échoue avec l'[erreur d'outil](https://code.claude.com/docs/fr/errors.md#no-such-tool-available) `No such tool available`.

328 328 

329### Désactiver un serveur sans le supprimer329### Désactiver un serveur sans le supprimer

330 330 

331Désactivez un serveur dans le panneau `/mcp` pour empêcher Claude Code de s'y connecter sans perdre sa configuration. Claude Code liste toujours le serveur dans `/mcp`, marqué comme désactivé.331Désactivez un serveur dans le panneau `/mcp` pour empêcher Claude Code de s'y connecter sans perdre sa configuration. Claude Code continue de lister le serveur dans `/mcp`, marqué comme désactivé.

332 332 

333Lorsque vous basculez un serveur, Claude Code enregistre votre choix par projet dans `~/.claude.json`, dans l'une de deux listes qui couvrent des ensembles disjoints de serveurs :333Lorsque vous activez ou désactivez un serveur, Claude Code enregistre votre choix par projet dans `~/.claude.json`, dans l'une de deux listes qui couvrent des ensembles de serveurs disjoints :

334 334 

335* `disabledMcpServers` : une liste d'exclusion pour les serveurs configurés par l'utilisateur, les serveurs de plugins, les serveurs que votre organisation [fournit via les paramètres gérés](https://code.claude.com/docs/fr/managed-mcp.md#provide-servers-through-managed-settings), les connecteurs claude.ai que Claude Code [récupère lui-même](#how-connectors-reach-claude-code), et les serveurs intégrés qui sont activés par défaut. Claude Code ne se connecte pas à un serveur que vous listez ici. Lorsque vous désactivez un connecteur claude.ai avec le basculement `/mcp` par projet décrit dans [Désactiver les connecteurs claude.ai](#disable-claude-ai-connectors), Claude Code l'écrit dans cette liste sous son nom d'affichage, par exemple `claude.ai Slack`.335* `disabledMcpServers` : une liste de désactivation pour les serveurs configurés par l'utilisateur, les serveurs de plugins, les serveurs que votre organisation [fournit via les paramètres gérés](https://code.claude.com/docs/fr/managed-mcp.md#provide-servers-through-managed-settings), les connecteurs claude.ai que Claude Code [récupère lui-même](#how-connectors-reach-claude-code) et les serveurs intégrés activés par défaut. Claude Code ne se connecte pas à un serveur que vous listez ici. Lorsque vous désactivez un connecteur claude.ai avec le bouton `/mcp` par projet décrit dans [Désactiver les connecteurs claude.ai](#disable-claude-ai-connectors), Claude Code l'écrit dans cette liste sous son nom d'affichage, par exemple `claude.ai Slack`.

336* `enabledMcpServers` : une liste d'inclusion pour les serveurs intégrés qui sont désactivés par défaut, tels que `computer-use`. Claude Code se connecte à un serveur désactivé par défaut uniquement lorsque vous le listez ici.336* `enabledMcpServers` : une liste d'activation pour les serveurs intégrés désactivés par défaut, comme `computer-use`. Claude Code ne se connecte à un serveur désactivé par défaut que si vous le listez ici.

337 337 

338Claude Code consulte exactement l'une des deux listes pour chaque serveur, donc aucune des deux listes ne remplace l'autre. Si vous ajoutez un serveur ordinaire à `enabledMcpServers`, ou un serveur intégré désactivé par défaut à `disabledMcpServers`, Claude Code ignore l'entrée.338Claude Code consulte exactement l'une des deux listes pour chaque serveur : aucune liste ne remplace donc l'autre. Si vous ajoutez un serveur ordinaire à `enabledMcpServers`, ou un serveur intégré désactivé par défaut à `disabledMcpServers`, Claude Code ignore l'entrée.

339 339 

340`disabledMcpServers` et `enabledMcpServers` ne sont pas liés à [`enabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#enabledmcpjsonservers) et [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers), qui contrôlent l'approbation des serveurs définis dans le fichier `.mcp.json` d'un projet.340`disabledMcpServers` et `enabledMcpServers` n'ont aucun rapport avec [`enabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#enabledmcpjsonservers) et [`disabledMcpjsonServers`](https://code.claude.com/docs/fr/settings-reference#disabledmcpjsonservers), qui contrôlent l'approbation des serveurs définis dans le fichier `.mcp.json` d'un projet.

341 341 

342### Runtimes clients MCP342### Runtimes client MCP

343 343 

344Claude Code se connecte aux serveurs MCP via l'un de deux runtimes clients. Le runtime v1 s'appuie sur MCP TypeScript SDK 1.x. Le runtime v2 est le même code sur [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), qui ajoute la révision de protocole MCP 2026-07-28. Le reste de cette page s'applique aux deux runtimes, sauf si une section nomme le runtime v2.344Claude Code se connecte aux serveurs MCP via l'un de deux runtimes client. Le runtime v1 repose sur le SDK TypeScript MCP 1.x. Le runtime v2 est le même code sur le [SDK TypeScript MCP 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), qui ajoute la révision 2026-07-28 du protocole MCP. Le reste de cette page s'applique aux deux runtimes, sauf lorsqu'une section mentionne le runtime v2.

345 345 

346Claude Code choisit un runtime chaque fois que vous le démarrez et le conserve jusqu'à ce que vous quittiez. Dans les sessions où il [récupère les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching), il utilise le runtime v2 sur Claude Code v2.1.232 ou ultérieur.346Claude Code choisit un runtime à chaque démarrage et le conserve jusqu'à ce que vous quittiez. Dans les sessions où il [récupère les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching), il utilise le runtime v2 sur Claude Code v2.1.232 ou une version ultérieure.

347 347 

348Dans les sessions où il ne récupère pas les feature flags, Claude Code utilise le runtime v2 par défaut sur Claude Code v2.1.274 ou ultérieur :348Dans les sessions où il ne récupère pas les feature flags, Claude Code utilise le runtime v2 par défaut sur Claude Code v2.1.274 ou une version ultérieure :

349 349 

350* Sessions sur Amazon Bedrock, Claude Platform sur AWS, la plateforme Agent de Google Cloud, ou Microsoft Foundry, sauf si une plateforme hôte qui intègre Claude Code définit [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/fr/env-vars)350* Les sessions sur Amazon Bedrock, Claude Platform on AWS, Agent Platform de Google Cloud ou Microsoft Foundry, sauf si une plateforme hôte qui intègre Claude Code définit [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/fr/env-vars)

351* Sessions connectées via une [passerelle d'applications Claude](https://code.claude.com/docs/fr/claude-apps-gateway)351* Les sessions connectées via une [passerelle Claude apps](https://code.claude.com/docs/fr/claude-apps-gateway)

352* Sessions où vous désactivez la télémétrie ou la récupération des feature flags, par exemple avec `DISABLE_TELEMETRY`352* Les sessions dans lesquelles vous désactivez la télémétrie ou la récupération des feature flags, par exemple avec `DISABLE_TELEMETRY`

353 353 

354Sur v2, Claude Code également :354Sur v2, Claude Code également :

355 355 

356* Demande aux serveurs HTTP, stdio et de connecteurs claude.ai s'ils supportent la révision plus récente, et l'utilise avec ceux qui la supportent. Cela inclut les connecteurs des sessions cloud et [Remote Control](https://code.claude.com/docs/fr/remote-control.md). Claude Code se connecte à tous les autres serveurs comme le fait v1.356* Demande aux serveurs HTTP, stdio et aux connecteurs claude.ai s'ils prennent en charge la nouvelle révision et l'utilise avec ceux qui la prennent en charge. Cela inclut les connecteurs des sessions cloud et [Remote Control](https://code.claude.com/docs/fr/remote-control.md). Claude Code se connecte à tous les autres serveurs comme le fait v1.

357* Reçoit les notifications `list_changed` des serveurs sur la révision plus récente via un [flux qu'il maintient ouvert](#notification-streams-on-the-v2-runtime).357* Reçoit les notifications `list_changed` des serveurs utilisant la nouvelle révision via un [flux qu'il maintient ouvert](#notification-streams-on-the-v2-runtime).

358* N'enregistre pas un serveur de [canal](#push-messages-with-channels) qui se connecte sur la révision plus récente, car cette révision ne peut pas transporter les messages de canal.358* N'enregistre pas un serveur de [canal](#push-messages-with-channels) qui se connecte avec la nouvelle révision, car cette révision ne peut pas transporter de messages de canal.

359* Fait échouer une [connexion OAuth MCP](#authenticate-with-remote-mcp-servers) dont la réponse d'autorisation nomme un émetteur inattendu.359* Fait échouer une [connexion MCP OAuth](#authenticate-with-remote-mcp-servers) dont la réponse d'autorisation nomme un émetteur inattendu.

360* Envoie les [identifiants OAuth MCP](#authenticate-with-remote-mcp-servers) uniquement à un endpoint de jeton servi via HTTPS ou à `localhost`, `127.0.0.1`, ou `::1`. La connexion échoue pour un serveur dont l'endpoint de jeton est en `http://` simple n'importe où ailleurs, tel qu'un appareil sur votre réseau local. Voir [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/fr/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).360* N'envoie les identifiants [MCP OAuth](#authenticate-with-remote-mcp-servers) qu'à un endpoint de jeton servi en HTTPS ou sur `localhost`, `127.0.0.1` ou `::1`. La connexion échoue pour un serveur dont l'endpoint de jeton est en `http://` simple ailleurs, comme un appareil de votre réseau local. Consultez [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/fr/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).

361 361 

362Anthropic peut maintenir un serveur donné sur le protocole antérieur, ou hors de ce flux, via un feature flag que Claude Code récupère. Pour choisir vous-même le runtime, définissez [`MCP_SDK_GENERATION`](https://code.claude.com/docs/fr/env-vars) sur `v1` ou `v2`.362Anthropic peut maintenir un serveur spécifique sur l'ancien protocole, ou hors de ce flux, avec un feature flag que Claude Code récupère. Pour choisir vous-même le runtime, définissez [`MCP_SDK_GENERATION`](https://code.claude.com/docs/fr/env-vars) sur `v1` ou `v2`.

363 363 

364Pour décider si Claude Code interroge les serveurs sur la nouvelle révision, définissez [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/fr/env-vars) sur `auto` ou `legacy`. Lorsque cette variable n'est pas définie, Claude Code peut cesser d'interroger un serveur stdio pendant 7 jours, par exemple après que le serveur s'est arrêté lorsqu'on l'a interrogé. Pour qu'un serveur mis à niveau soit interrogé plus tôt, définissez `auto`.364Pour décider si Claude Code interroge les serveurs au sujet de la nouvelle révision, définissez [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/fr/env-vars) sur `auto` ou `legacy`. Lorsque cette variable n'est pas définie, Claude Code peut cesser d'interroger un serveur stdio pendant 7 jours, par exemple après que le serveur s'est arrêté lorsqu'on l'a interrogé. Pour qu'un serveur mis à niveau soit interrogé plus tôt, définissez `auto`.

365 365 

366### Mises à jour dynamiques des outils366### Mises à jour dynamiques des outils

367 367 

368Un serveur MCP peut modifier les outils, prompts ou ressources qu'il propose pendant qu'il est connecté et envoyer une notification `list_changed`. Lorsqu'une telle notification arrive :368Un serveur MCP peut modifier les outils, prompts ou ressources qu'il propose pendant qu'il est connecté et envoyer une notification `list_changed`. Lorsqu'une telle notification arrive :

369 369 

370* **Dans une session de terminal interactive**, Claude Code récupère la liste mise à jour auprès de ce serveur, vous n'avez donc pas besoin de le reconnecter.370* **Dans une session de terminal interactive**, Claude Code récupère la liste mise à jour depuis ce serveur : vous n'avez donc pas besoin de le reconnecter.

371* **En [mode non interactif](https://code.claude.com/docs/fr/headless.md) avec le flag `-p` et dans l'[Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md)**, Claude Code actualise uniquement la liste des outils lors de ces notifications.371* **En [mode non interactif](https://code.claude.com/docs/fr/headless.md) avec le flag `-p` et dans l'[Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md)**, Claude Code ne rafraîchit que la liste d'outils à la réception de ces notifications.

372 372 

373Si une requête d'actualisation échoue, Claude Code conserve les outils, prompts et ressources précédemment découverts du serveur jusqu'à ce qu'une actualisation ultérieure réussisse.373Si une requête de rafraîchissement échoue, Claude Code conserve les outils, prompts et ressources précédemment découverts du serveur jusqu'à ce qu'un rafraîchissement ultérieur réussisse.

374 374 

375#### Flux de notification sur le runtime v2375#### Flux de notifications sur le runtime v2

376 376 

377Sur le [runtime v2](#mcp-client-runtimes), Claude Code reçoit les notifications `list_changed` d'un serveur sur la révision de protocole plus récente via un flux qu'il maintient ouvert. Lorsque le flux se ferme, Claude Code le rouvre, avec deux limites :377Sur le [runtime v2](#mcp-client-runtimes), Claude Code reçoit les notifications `list_changed` d'un serveur utilisant la nouvelle révision du protocole via un flux qu'il maintient ouvert. Lorsque le flux se ferme, Claude Code le rouvre, avec deux limites :

378 378 

379* **Le flux se ferme à nouveau dans les 10 secondes** : Claude Code le rouvre jusqu'à trois fois, puis s'arrête pour cette connexion.379* **Le flux se referme dans les 10 secondes** : Claude Code le rouvre jusqu'à trois fois, puis s'arrête pour cette connexion.

380* **Le flux reste ouvert plus de 10 secondes, puis se ferme**, comme le font couramment les flux vers des hôtes serverless : après cinq réouvertures en une heure, Claude Code attend environ six heures avant la suivante.380* **Le flux reste ouvert plus de 10 secondes, puis se ferme**, comme c'est courant pour les flux vers des hôtes serverless : après cinq réouvertures en une heure, Claude Code attend environ six heures avant la suivante.

381 381 

382Jusqu'à ce que le flux se rouvre, vous conservez les derniers outils, prompts et ressources récupérés du serveur. Pour récupérer ses modifications plus tôt, reconnectez le serveur à partir de `/mcp`.382Jusqu'à la réouverture du flux, vous conservez les derniers outils, prompts et ressources récupérés du serveur. Pour prendre en compte ses changements plus tôt, reconnectez le serveur depuis `/mcp`.

383 383 

384### Reconnexion automatique384### Reconnexion automatique

385 385 

386Claude Code reconnecte un serveur distant qui se déconnecte en cours de session et réessaie la première connexion d'un serveur HTTP ou SSE après une erreur transitoire. Pour un serveur stdio, voir [Serveurs stdio qui se terminent ou ne démarrent pas](#stdio-servers-that-exit-or-fail-to-start).386Claude Code reconnecte un serveur distant qui se déconnecte en cours de session et réessaie la première connexion d'un serveur HTTP ou SSE après une erreur transitoire. Pour un serveur stdio, consultez [Serveurs stdio qui s'arrêtent ou ne démarrent pas](#stdio-servers-that-exit-or-fail-to-start).

387 387 

388#### Déconnexions en cours de session d'un serveur distant388#### Déconnexions d'un serveur distant en cours de session

389 389 

390Claude Code tente d'abord de reconnecter un serveur distant déconnecté jusqu'à cinq fois avec un backoff exponentiel, en commençant par un délai d'une seconde et en le doublant à chaque fois :390Claude Code essaie d'abord de reconnecter un serveur distant déconnecté jusqu'à cinq fois avec un backoff exponentiel, en commençant par un délai d'une seconde qu'il double à chaque fois :

391 391 

392* **Dans une session interactive** : `/mcp` affiche le serveur comme en attente pendant que Claude Code se reconnecte. Après cinq tentatives échouées, Claude Code marque le serveur comme défaillant, ou comme nécessitant une authentification lorsque le serveur doit être autorisé à nouveau. Lorsqu'il marque le serveur comme défaillant, vous voyez une notification `MCP server "<name>" disconnected · open /mcp to reconnect`. Vous pouvez réessayer manuellement à partir de `/mcp`.392* **Dans une session interactive** : `/mcp` affiche le serveur comme en attente pendant que Claude Code se reconnecte. Après cinq tentatives infructueuses, Claude Code marque le serveur comme en échec, ou comme nécessitant une authentification lorsque le serveur doit être à nouveau autorisé. Lorsqu'il marque le serveur comme en échec, vous voyez une notification `MCP server "<name>" disconnected · open /mcp to reconnect`. Vous pouvez réessayer manuellement depuis `/mcp`.

393* **Dans les exécutions [`claude -p`](https://code.claude.com/docs/fr/headless) et les sessions [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md)** : Claude Code effectue les mêmes cinq tentatives, sans panneau `/mcp` pour les afficher. Si les cinq échouent, l'exécution se poursuit sans les outils du serveur :393* **Lors des exécutions [`claude -p`](https://code.claude.com/docs/fr/headless) et des sessions [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md)** : Claude Code effectue les mêmes cinq tentatives, sans panneau `/mcp` pour les afficher. Si les cinq échouent, l'exécution continue sans les outils du serveur :

394 * **Après une erreur transitoire, telle qu'une réponse 5xx ou un délai d'expiration** : Claude Code continue de réessayer de connecter un serveur HTTP ou SSE en arrière-plan. Les nouvelles tentatives durent jusqu'à environ une demi-heure, et les outils du serveur redeviennent disponibles lorsque l'une d'elles parvient à se connecter. D'ici là, une session Agent SDK signale le [statut](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) `failed`, et votre code peut [reconnecter le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling). Pour le reconnecter dans `claude -p`, relancez l'exécution.394 * **Après une erreur transitoire, comme une réponse 5xx ou un délai d'expiration** : Claude Code continue de réessayer un serveur HTTP ou SSE en arrière-plan. Les nouvelles tentatives durent jusqu'à environ une demi-heure, et les outils du serveur redeviennent disponibles lorsque l'une d'elles aboutit. D'ici là, une session Agent SDK signale le [statut](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) `failed`, et votre code peut [reconnecter le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling). Pour le reconnecter dans `claude -p`, relancez l'exécution.

395 * **Lorsque le serveur [nécessite que vous vous reconnectiez](#authenticate-with-remote-mcp-servers)** : Claude Code cesse de réessayer, et une session Agent SDK signale le statut du serveur comme `needs-auth`. Connectez-vous avec [`claude mcp login <name>`](#authenticate-from-the-command-line) dans votre shell. Ensuite, relancez l'exécution ou, dans une session Agent SDK, [reconnectez le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) à la place.395 * **Lorsque le serveur [nécessite que vous vous reconnectiez](#authenticate-with-remote-mcp-servers)** : Claude Code cesse de réessayer, et une session Agent SDK signale le statut du serveur comme `needs-auth`. Connectez-vous avec [`claude mcp login <name>`](#authenticate-from-the-command-line) dans votre shell. Puis relancez l'exécution ou, dans une session Agent SDK, [reconnectez plutôt le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling).

396 396 

397#### Échecs de première connexion397#### Premières connexions échouées

398 398 

399Lorsque la première connexion d'un serveur HTTP ou SSE échoue avec une erreur transitoire, telle qu'une réponse 5xx, une connexion refusée, ou un délai d'expiration, Claude Code réessaie jusqu'à trois fois. Si la connexion échoue toujours, Claude Code marque le serveur comme défaillant.399Lorsque la première connexion d'un serveur HTTP ou SSE échoue avec une erreur transitoire, comme une réponse 5xx, une connexion refusée ou un délai d'expiration, Claude Code réessaie jusqu'à trois fois. Si la connexion échoue toujours, Claude Code marque le serveur comme en échec.

400 400 

401Ces nouvelles tentatives ne s'appliquent pas dans ces cas :401Ces nouvelles tentatives ne s'appliquent pas dans les cas suivants :

402 402 

403* La première connexion d'un serveur stdio. Pour la réessayer, voir [Serveurs stdio qui se terminent ou ne démarrent pas](#stdio-servers-that-exit-or-fail-to-start)403* La première connexion d'un serveur stdio. Pour la réessayer, consultez [Serveurs stdio qui s'arrêtent ou ne démarrent pas](#stdio-servers-that-exit-or-fail-to-start)

404* La première connexion d'un serveur WebSocket. Pour la retenter dans une session de terminal interactive, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp`404* La première connexion d'un serveur WebSocket. Pour la réessayer dans une session de terminal interactive, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp`

405* Une erreur d'authentification ou de ressource introuvable, car elle nécessite une modification de configuration pour être résolue. Lorsqu'un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) est la seule source de l'en-tête `Authorization` du serveur, Claude Code réessaie quand même après une erreur d'authentification, car il réexécute le helper à chaque tentative et peut récupérer des identifiants frais405* Une erreur d'authentification ou de ressource introuvable, car sa résolution nécessite une modification de configuration. Lorsqu'un [`headersHelper`](#use-dynamic-headers-for-custom-authentication) est la seule source de l'en-tête `Authorization` du serveur, Claude Code réessaie malgré tout une erreur d'authentification, car il réexécute le helper à chaque tentative et peut obtenir des identifiants à jour

406 406 

407#### Serveurs stdio qui se terminent ou ne démarrent pas407#### Serveurs stdio qui s'arrêtent ou ne démarrent pas

408 408 

409Pour redémarrer un serveur stdio, lisez la colonne qui correspond à ce qui lui est arrivé. Trouvez votre ligne selon la façon dont vous exécutez Claude Code : une session interactive, une exécution `claude -p`, ou une session Agent SDK.409Pour redémarrer un serveur stdio, lisez la colonne correspondant à ce qui lui est arrivé. Trouvez votre ligne selon la manière dont vous exécutez Claude Code : une session interactive, une exécution `claude -p` ou une session Agent SDK.

410 410 

411| Comment vous exécutez Claude Code | Le processus du serveur se termine en cours de session | La première connexion du serveur échoue |411| Comment vous exécutez Claude Code | Le processus du serveur s'arrête en cours de session | La première connexion du serveur échoue |

412| - | - | - |412| - | - | - |

413| Session interactive | Claude Code marque le serveur comme défaillant. Pour le redémarrer, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp` | Claude Code marque le serveur comme défaillant. Pour le redémarrer, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp` |413| Session interactive | Claude Code marque le serveur comme en échec. Pour le redémarrer, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp` | Claude Code marque le serveur comme en échec. Pour le redémarrer, sélectionnez **Reconnect** dans le menu du serveur dans `/mcp` |

414| Exécution `claude -p` | Claude Code redémarre le serveur la prochaine fois que Claude appelle l'un des outils du serveur, et l'appel s'exécute dès que le serveur se connecte | L'exécution se poursuit sans les outils du serveur. Pour que Claude Code réessaie la connexion, relancez l'exécution. Lorsqu'un plugin fournit le serveur, les nouvelles exécutions ignorent la connexion pendant 15 minutes après un échec ; attendez donc ce délai d'abord ou [réessayez plus tôt](https://code.claude.com/docs/fr/errors.md#skipping-connection-recent-failure-cached) |414| Exécution `claude -p` | Claude Code redémarre le serveur la prochaine fois que Claude appelle l'un de ses outils, et l'appel s'exécute une fois le serveur connecté | L'exécution continue sans les outils du serveur. Pour que Claude Code réessaie la connexion, relancez l'exécution. Lorsqu'un plugin fournit le serveur, les nouvelles exécutions ignorent la connexion pendant 15 minutes après un échec : attendez donc ce délai ou [réessayez plus tôt](https://code.claude.com/docs/fr/errors.md#skipping-connection-recent-failure-cached) |

415| Session Agent SDK | Claude Code redémarre le serveur la prochaine fois que Claude appelle l'un des outils du serveur, et l'appel s'exécute dès que le serveur se connecte | La session se poursuit sans les outils du serveur. Votre code peut [reconnecter le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) |415| Session Agent SDK | Claude Code redémarre le serveur la prochaine fois que Claude appelle l'un de ses outils, et l'appel s'exécute une fois le serveur connecté | La session continue sans les outils du serveur. Votre code peut [reconnecter le serveur](https://code.claude.com/docs/fr/agent-sdk/mcp.md#error-handling) |

416 416 

417#### Requêtes de découverte échouées417#### Requêtes de découverte échouées

418 418 

419Après qu'un serveur s'est connecté, Claude Code lui envoie des requêtes de découverte de capacités telles que `tools/list`, `prompts/list`, et `resources/list`. Claude Code réessaie ces requêtes jusqu'à trois fois avec un backoff court après une erreur réseau ou serveur transitoire. Il ne réessaie pas après les erreurs d'authentification, les réponses 4xx, ou les expirations de requête.419Une fois qu'un serveur est connecté, Claude Code lui envoie des requêtes de découverte des capacités telles que `tools/list`, `prompts/list` et `resources/list`. Claude Code réessaie ces requêtes jusqu'à trois fois avec un court backoff après une erreur réseau ou serveur transitoire. Il ne réessaie pas les erreurs d'authentification, les réponses 4xx ni les expirations de requête.

420 420 

421#### Réessayer vous-même les serveurs en échec421#### Réessayer vous-même les serveurs en échec

422 422 

423Pour réessayer tous les serveurs en échec ou nécessitant une authentification, exécutez `/mcp reconnect all` à l'invite de Claude Code dans une session de terminal interactive. Cela nécessite Claude Code v2.1.284 ou une version ultérieure. Les versions antérieures affichent `MCP server "all" not found`.423Pour réessayer tous les serveurs en échec ou nécessitant une authentification, exécutez `/mcp reconnect all` dans l'invite de Claude Code au sein d'une session de terminal interactive. Cela nécessite Claude Code v2.1.284 ou une version ultérieure. Les versions antérieures affichent `MCP server "all" not found`.

424 424 

425#### Comment Claude apprend qu'un serveur a échoué425#### Comment Claude apprend qu'un serveur a échoué

426 426 

427Le fait que Claude Code indique à Claude qu'un serveur configuré n'a pas pu se connecter dépend de la [recherche d'outils](#scale-with-mcp-tool-search), qui est activée par défaut :427Le fait que Claude Code informe Claude d'un serveur configuré qui n'a pas pu se connecter dépend de la [recherche d'outils](#scale-with-mcp-tool-search), activée par défaut :

428 428 

429* Avec la recherche d'outils, Claude Code indique à Claude quel serveur a échoué et son erreur de connexion, donc Claude signale l'échec de la connexion dans sa réponse. Claude Code inclut les mêmes informations dans les résultats `ToolSearch` qui ne trouvent aucun outil correspondant.429* Avec la recherche d'outils, Claude Code indique à Claude quel serveur a échoué et son erreur de connexion, de sorte que Claude signale l'échec de connexion dans sa réponse. Claude Code inclut les mêmes informations dans les résultats `ToolSearch` qui ne trouvent aucun outil correspondant.

430* Dans toute [configuration sans recherche d'outils](#configure-tool-search), Claude Code ne signale pas les échecs de connexion des serveurs à Claude.430* Dans toute [configuration sans recherche d'outils](#configure-tool-search), Claude Code ne signale pas les connexions de serveur échouées à Claude.

431 431 

432### Pousser des messages avec des canaux432### Envoyer des messages avec les canaux

433 433 

434Un serveur MCP peut également pousser des messages directement dans votre session afin que Claude puisse réagir à des événements externes comme les résultats CI, les alertes de surveillance, ou les messages de chat. Pour activer cela, votre serveur déclare la capacité `claude/channel` et vous l'activez avec le flag `--channels` au démarrage. Voir [Canaux](https://code.claude.com/docs/fr/channels.md) pour utiliser un canal officiellement supporté, ou [Référence des canaux](https://code.claude.com/docs/fr/channels-reference.md) pour créer le vôtre.434Un serveur MCP peut également envoyer des messages directement dans votre session afin que Claude puisse réagir à des événements externes comme des résultats de CI, des alertes de monitoring ou des messages de chat. Pour l'activer, votre serveur déclare la capacité `claude/channel` et vous l'activez avec le flag `--channels` au démarrage. Consultez [Canaux](https://code.claude.com/docs/fr/channels.md) pour utiliser un canal officiellement pris en charge, ou la [référence des canaux](https://code.claude.com/docs/fr/channels-reference.md) pour créer le vôtre.

435 435 

436Sur le [runtime v2](#mcp-client-runtimes), un serveur de canal qui négocie la révision de protocole MCP 2026-07-28 ne peut pas livrer les messages de canal, donc Claude Code ne l'enregistre pas comme un canal. Un serveur de canal qui ne supporte pas cette révision se connecte avec la poignée de main antérieure et s'enregistre comme auparavant.436Sur le [runtime v2](#mcp-client-runtimes), un serveur de canal qui négocie la révision 2026-07-28 du protocole MCP ne peut pas transmettre de messages de canal : Claude Code ne l'enregistre donc pas comme canal. Un serveur de canal qui ne prend pas en charge cette révision se connecte avec l'ancienne négociation et s'enregistre comme auparavant.

437 437 

438Claude Code demande cette révision aux serveurs stdio par défaut. Pour maintenir un serveur de canal stdio sur la poignée de main antérieure, définissez [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/fr/env-vars) à `legacy`, ce qui y maintient tous les serveurs.438Claude Code interroge par défaut les serveurs stdio au sujet de cette révision. Pour maintenir un serveur de canal stdio sur l'ancienne négociation, définissez [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/fr/env-vars) sur `legacy`, ce qui y maintient tous les serveurs.

439 439 

440> [!TIP]440> [!TIP]

441>441>


443>443>

444> * Utilisez le flag `-s` ou `--scope` pour spécifier où la configuration est stockée :444> * Utilisez le flag `-s` ou `--scope` pour spécifier où la configuration est stockée :

445> * `local` (par défaut) : disponible uniquement pour vous dans le projet actuel445> * `local` (par défaut) : disponible uniquement pour vous dans le projet actuel

446> * `project` : partagé avec tout le monde dans le projet via le fichier `.mcp.json`446> * `project` : partagé avec tous les membres du projet via le fichier `.mcp.json`

447> * `user` : disponible pour vous dans tous les projets447> * `user` : disponible pour vous dans tous les projets

448> * Définissez les variables d'environnement avec les flags `-e` ou `--env` (par exemple, `-e KEY=value`)448> * Définissez des variables d'environnement avec les flags `-e` ou `--env` (par exemple, `-e KEY=value`)

449> * Les flags `--transport` et `--header` acceptent également les formes courtes `-t` et `-H`449> * Les flags `--transport` et `--header` acceptent également les formes courtes `-t` et `-H`

450> * Configurez le délai d'expiration de démarrage du serveur MCP en utilisant la variable d'environnement `MCP_TIMEOUT` (par exemple, `MCP_TIMEOUT=10000 claude` définit un délai d'expiration de 10 secondes)450> * Configurez le délai d'expiration de démarrage des serveurs MCP avec la variable d'environnement `MCP_TIMEOUT` (par exemple, `MCP_TIMEOUT=10000 claude` définit un délai d'expiration de 10 secondes)

451> * Définissez un délai d'expiration d'exécution d'outil par serveur en ajoutant un champ `timeout` en millisecondes à l'entrée `.mcp.json` de ce serveur, par exemple `"timeout": 600000` pour dix minutes. Cela remplace la variable d'environnement `MCP_TOOL_TIMEOUT` pour ce serveur uniquement451> * Définissez un délai d'expiration d'exécution des outils par serveur en ajoutant un champ `timeout` en millisecondes à l'entrée `.mcp.json` de ce serveur, par exemple `"timeout": 600000` pour dix minutes. Cela remplace la variable d'environnement `MCP_TOOL_TIMEOUT` pour ce serveur uniquement

452> * Claude Code affiche un avertissement lorsque la sortie de l'outil MCP dépasse 10 000 tokens et limite la sortie à 25 000 tokens par défaut. Pour modifier la limite de tokens, définissez la variable d'environnement `MAX_MCP_OUTPUT_TOKENS`, par exemple `MAX_MCP_OUTPUT_TOKENS=50000`. Le seuil d'avertissement est fixe. Sauf si le serveur augmente la limite propre d'un outil, les résultats textuels réussis de plus de 50 000 caractères sont enregistrés dans un fichier, quelle que soit la valeur de cette variable. Voir [Limites et avertissements de sortie MCP](#mcp-output-limits-and-warnings)452> * Claude Code affiche un avertissement lorsque la sortie d'un outil MCP dépasse 10 000 tokens et limite la sortie à 25 000 tokens par défaut. Pour modifier la limite de tokens, définissez la variable d'environnement `MAX_MCP_OUTPUT_TOKENS`, par exemple `MAX_MCP_OUTPUT_TOKENS=50000`. Le seuil d'avertissement est fixe. Sauf si le serveur relève la limite propre à un outil, les résultats textuels réussis de plus de 50 000 caractères sont enregistrés dans un fichier, quelle que soit cette variable. Consultez [Limites et avertissements de sortie MCP](#mcp-output-limits-and-warnings)

453> * Utilisez `/mcp` pour vous authentifier auprès des serveurs distants qui nécessitent une authentification OAuth 2.0453> * Utilisez `/mcp` pour vous authentifier auprès des serveurs distants qui nécessitent une authentification OAuth 2.0

454 454 

455### Limites de temps des appels d'outils MCP455### Limites de temps des appels d'outils MCP


457Pour limiter la durée d'exécution d'un appel d'outil MCP :457Pour limiter la durée d'exécution d'un appel d'outil MCP :

458 458 

459* **Par serveur** : ajoutez un champ `timeout` en millisecondes à l'entrée de configuration de ce serveur459* **Par serveur** : ajoutez un champ `timeout` en millisecondes à l'entrée de configuration de ce serveur

460* **Pour l'ensemble des serveurs** : définissez [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/fr/env-vars)460* **Pour tous les serveurs** : définissez [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/fr/env-vars)

461 461 

462Le `timeout` par serveur est une limite stricte en temps réel par appel d'outil, et les notifications de progression du serveur ne la prolongent pas. Les valeurs inférieures à 1000 sont ignorées et se rabattent sur `MCP_TOOL_TIMEOUT`, ou sur sa valeur par défaut d'environ 28 heures lorsque cette variable n'est pas définie. Pour un serveur HTTP, SSE, ou de [connecteur claude.ai](https://code.claude.com/docs/fr/mcp.md#use-mcp-servers-from-claude-ai), il existe également un second minuteur, par requête, qui couvre chaque requête jusqu'au premier octet de réponse du serveur. Claude Code définit ce minuteur à la plus grande de trois valeurs : 60 secondes, le délai d'expiration d'outil qui s'applique au serveur, et `MCP_TIMEOUT`. La valeur par défaut de 28 heures d'un `MCP_TOOL_TIMEOUT` non défini n'entre pas dans cette comparaison, et une valeur inférieure à 60 secondes ne raccourcit pas le minuteur. Les serveurs stdio et WebSocket n'ont pas de minuteur par requête.462Le `timeout` par serveur est une limite stricte en temps réel par appel d'outil, et les notifications de progression du serveur ne la prolongent pas. Les valeurs inférieures à 1000 sont ignorées et se rabattent sur `MCP_TOOL_TIMEOUT`, ou sur sa valeur par défaut d'environ 28 heures lorsque cette variable n'est pas définie. Pour un serveur HTTP, SSE ou un [connecteur claude.ai](https://code.claude.com/docs/fr/mcp.md#use-mcp-servers-from-claude-ai), il existe aussi un second minuteur, par requête, qui couvre chaque requête jusqu'au premier octet de réponse du serveur. Claude Code règle ce minuteur sur la plus grande de trois valeurs : 60 secondes, le délai d'expiration d'outil qui s'applique au serveur, et `MCP_TIMEOUT`. La valeur par défaut de 28 heures d'un `MCP_TOOL_TIMEOUT` non défini n'entre pas dans cette comparaison, et une valeur inférieure à 60 secondes ne raccourcit pas le minuteur. Les serveurs stdio et WebSocket n'ont pas de minuteur par requête.

463 463 

464Un `timeout` par serveur d'au moins 1000 agit également comme un plancher pour le délai d'inactivité décrit ci-dessous : Claude Code n'abandonne jamais les appels d'outils de ce serveur pour inactivité plus tôt que le `timeout` par serveur.464Un `timeout` par serveur d'au moins 1000 sert également de plancher au délai d'inactivité décrit ci-dessous : Claude Code n'interrompt jamais les appels d'outils de ce serveur pour inactivité avant le `timeout` par serveur.

465 465 

466Un appel d'outil à un serveur MCP qui n'envoie aucune réponse et aucune notification de progression pendant la fenêtre d'inactivité est abandonné avec une erreur au lieu d'attendre la limite en temps réel. Le délai d'inactivité s'applique à tous les types de serveurs sauf les serveurs IDE et les serveurs en processus du SDK. La fenêtre d'inactivité par défaut est de cinq minutes pour les serveurs HTTP, SSE, WebSocket, et de [connecteur claude.ai](#use-mcp-servers-from-claude-ai), et de 30 minutes pour les serveurs stdio.466Un appel d'outil vers un serveur MCP qui n'envoie ni réponse ni notification de progression pendant la fenêtre d'inactivité est interrompu avec une erreur au lieu d'attendre la limite en temps réel. Le délai d'inactivité s'applique à tous les types de serveurs, à l'exception des serveurs IDE et des serveurs SDK in-process. La fenêtre d'inactivité est par défaut de cinq minutes pour les serveurs HTTP, SSE, WebSocket et les [connecteurs claude.ai](#use-mcp-servers-from-claude-ai), et de 30 minutes pour les serveurs stdio.

467 467 

468Définissez la variable d'environnement [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/fr/env-vars) en millisecondes pour changer la fenêtre d'inactivité, ou définissez-la à `0` pour désactiver la vérification.468Définissez la variable d'environnement [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/fr/env-vars) en millisecondes pour modifier la fenêtre d'inactivité, ou définissez-la sur `0` pour désactiver la vérification.

469 469 

470Ces délais d'expiration limitent la durée pendant laquelle un appel peut s'exécuter, pas toujours la durée pendant laquelle il bloque la session : un appel de la conversation principale qui s'exécute au-delà de deux minutes passe d'abord dans une tâche en arrière-plan. Voir [Mise en arrière-plan automatique des appels d'outils longs](#automatic-backgrounding-of-long-tool-calls).470Ces délais d'expiration limitent la durée d'exécution d'un appel, et pas toujours la durée pendant laquelle il bloque la session : un appel de la conversation principale qui dure plus de deux minutes passe d'abord en tâche en arrière-plan. Consultez [Passage automatique en arrière-plan des appels d'outils longs](#automatic-backgrounding-of-long-tool-calls).

471 471 

472### Mise en arrière-plan automatique des appels d'outils longs472### Passage automatique en arrière-plan des appels d'outils longs

473 473 

474Si la vue détaillée d'un appel en arrière-plan dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands) affiche `runs on the server; survives exiting this session`, consultez [Tâches MCP exécutées sur le serveur](#mcp-tasks-that-run-on-the-server).474Si la vue détaillée d'un appel en arrière-plan dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands) affiche `runs on the server; survives exiting this session`, consultez [Tâches MCP exécutées sur le serveur](#mcp-tasks-that-run-on-the-server).

475 475 

476Un appel d'outil MCP dans la conversation principale qui s'exécute toujours après deux minutes passe dans une tâche en arrière-plan au lieu de bloquer la session. Claude reçoit immédiatement l'ID de la tâche et continue de travailler, et le résultat arrive sous forme de notification de tâche lorsque l'appel se termine.476Un appel d'outil MCP de la conversation principale qui est toujours en cours après deux minutes passe en tâche en arrière-plan au lieu de bloquer la session. Claude reçoit immédiatement l'ID de la tâche et continue à travailler, et le résultat arrive sous forme de notification de tâche lorsque l'appel se termine.

477 477 

478La tâche apparaît dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands), où vous pouvez également l'arrêter, et elle ne survit pas à la sortie de la session. L'entrée de la tâche affiche la dernière progression que le serveur a signalée. Si vous arrêtez la tâche, Claude Code annule l'appel et indique à Claude qu'aucun résultat n'arrivera. L'arrêt ne garantit pas que le serveur s'arrête : il a peut-être déjà effectué une partie du travail, ou peut encore le terminer.478La tâche apparaît dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands), où vous pouvez également l'arrêter, et elle ne survit pas à la fermeture de la session. L'entrée de la tâche affiche la dernière progression signalée par le serveur. Si vous arrêtez la tâche, Claude Code annule l'appel et indique à Claude qu'aucun résultat n'arrivera. L'arrêt ne garantit pas que le serveur s'arrête : il peut déjà avoir effectué une partie du travail, ou même le terminer.

479 479 

480Les limites par appel s'appliquent toujours pendant que l'appel s'exécute en arrière-plan : la limite en temps réel définie par le `timeout` par serveur ou [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/fr/env-vars), et le délai d'inactivité défini par [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/fr/env-vars).480Les limites par appel s'appliquent toujours pendant que l'appel s'exécute en arrière-plan : la limite en temps réel définie par le `timeout` par serveur ou par [`MCP_TOOL_TIMEOUT`](https://code.claude.com/docs/fr/env-vars), et le délai d'inactivité défini par [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](https://code.claude.com/docs/fr/env-vars).

481 481 

482Pour modifier ou désactiver la mise en arrière-plan automatique :482Pour modifier ou désactiver le passage automatique en arrière-plan :

483 483 

484* Définissez la variable d'environnement [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/fr/env-vars) en millisecondes pour modifier le seuil, ou définissez-la sur `0` pour désactiver la mise en arrière-plan automatique. Avec `0`, Claude [attend également les tâches MCP](#make-claude-wait-for-the-result-of-an-mcp-task) dans une session interactive484* Définissez la variable d'environnement [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/fr/env-vars) en millisecondes pour modifier le seuil, ou définissez-la sur `0` pour désactiver le passage automatique en arrière-plan. Avec `0`, Claude [attend également les tâches MCP](#make-claude-wait-for-the-result-of-an-mcp-task) dans une session interactive

485* Définissez [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars) sur `1` pour désactiver la mise en arrière-plan automatique et les [commandes en arrière-plan](https://code.claude.com/docs/fr/tools-reference.md#background-commands)485* Définissez [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars) sur `1` pour désactiver le passage automatique en arrière-plan et les [commandes en arrière-plan](https://code.claude.com/docs/fr/tools-reference.md#background-commands)

486 486 

487Certains appels ne passent jamais en arrière-plan :487Certains appels ne passent jamais en arrière-plan :

488 488 

489* Les appels provenant de [sous-agents](https://code.claude.com/docs/fr/sub-agents.md) ; Claude Code met en arrière-plan uniquement les appels de la conversation principale489* Les appels provenant de [sous-agents](https://code.claude.com/docs/fr/sub-agents.md) ; Claude Code ne fait passer en arrière-plan que les appels de la conversation principale

490* Les appels aux serveurs IDE490* Les appels vers des serveurs IDE

491* Les appels en [mode non interactif](https://code.claude.com/docs/fr/headless.md), sauf si `CLAUDE_AUTO_BACKGROUND_TASKS` est défini à `1`, car une exécution ponctuelle peut se terminer avant l'arrivée du résultat491* Les appels en [mode non interactif](https://code.claude.com/docs/fr/headless.md), sauf si `CLAUDE_AUTO_BACKGROUND_TASKS` est défini sur `1`, car une exécution ponctuelle peut se terminer avant l'arrivée du résultat

492 492 

493Un appel en attente d'une [boîte de dialogue d'élicitation](#respond-to-mcp-elicitation-requests) ouverte n'est pas mis en arrière-plan tant que la boîte de dialogue est ouverte ; le serveur est bloqué en attente de votre saisie, il n'est pas lent, donc Claude Code diffère le passage en arrière-plan jusqu'à la fermeture de la boîte de dialogue.493Un appel en attente d'une [boîte de dialogue d'élicitation](#respond-to-mcp-elicitation-requests) ouverte ne passe pas en arrière-plan tant que la boîte de dialogue est ouverte ; le serveur est bloqué en attente de votre saisie, il n'est pas lent : Claude Code reporte donc le passage jusqu'à la fermeture de la boîte de dialogue.

494 494 

495### Tâches MCP exécutées sur le serveur495### Tâches MCP exécutées sur le serveur

496 496 

497Une tâche MCP est un travail de longue durée, tel qu'un export de rapport ou un build, qu'un serveur MCP exécute lui-même à l'aide de l'[extension MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview). L'appel d'outil de Claude se termine dès que le serveur accepte le travail, de sorte que Claude continue de travailler, sauf si vous [faites attendre Claude](#make-claude-wait-for-the-result-of-an-mcp-task). Lorsque le travail se termine, la transcription l'indique et Claude reçoit le résultat. Demandez-le à Claude.497Une tâche MCP est un travail long, comme un export de rapport ou un build, qu'un serveur MCP exécute lui-même à l'aide de l'[extension MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview). L'appel d'outil de Claude se termine dès que le serveur accepte le travail : Claude continue donc à travailler, sauf si vous [faites attendre Claude](#make-claude-wait-for-the-result-of-an-mcp-task). Lorsque le travail se termine, la transcription l'indique et Claude obtient le résultat. Demandez-le à Claude.

498 498 

499Entre-temps, le pied de page affiche un décompte tel que `1 MCP task`, et Claude Code suit la tâche en vérifiant son statut auprès du serveur. Une tâche sur un serveur distant continue de s'exécuter après que vous avez quitté. Pour la suivre à nouveau, [reprenez la même session](#exit-clear-or-resume-while-an-mcp-task-runs).499Entre-temps, le pied de page affiche un décompte tel que `1 MCP task`, et Claude Code suit la tâche en vérifiant son statut auprès du serveur. Une tâche sur un serveur distant continue de s'exécuter après que vous avez quitté. Pour la suivre à nouveau, [reprenez la même session](#exit-clear-or-resume-while-an-mcp-task-runs).

500 500 

501> [!NOTE]501> [!NOTE]

502>502>

503> Les tâches MCP sont en bêta publique dans la CLI Claude Code et nécessitent Claude Code v2.1.304 ou une version ultérieure. [Ce dont un appel a besoin pour devenir une tâche MCP](#requirements-for-mcp-tasks) liste les sessions et les serveurs qui en bénéficient.503> Les tâches MCP sont en bêta publique dans la CLI Claude Code et nécessitent Claude Code v2.1.304 ou une version ultérieure. La section [Ce qu'il faut pour qu'un appel devienne une tâche MCP](#requirements-for-mcp-tasks) liste les sessions et les serveurs qui en bénéficient.

504 504 

505#### Arrêter une tâche MCP ou obtenir son résultat505#### Arrêter une tâche MCP ou obtenir son résultat

506 506 

507Pour arrêter une tâche en cours, sélectionnez-la dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands) et appuyez sur `x`, ou demandez-le à Claude. Claude Code cesse de suivre la tâche et demande au serveur de l'annuler, bien que le serveur puisse encore la terminer. Reconnectez d'abord un serveur déconnecté depuis `/mcp`, sinon aucune requête d'annulation n'est envoyée et Claude Code oublie la tâche et ne peut plus la suivre. Appuyer sur `Esc` n'arrête pas une tâche en arrière-plan.507Pour arrêter une tâche en cours, sélectionnez-la dans [`/tasks`](https://code.claude.com/docs/fr/commands#all-commands) et appuyez sur `x`, ou demandez-le à Claude. Claude Code cesse de suivre la tâche et demande au serveur de l'annuler, bien que le serveur puisse tout de même la terminer. Reconnectez d'abord un serveur déconnecté depuis `/mcp`, sinon aucune demande d'annulation n'est envoyée, et Claude Code oublie la tâche et ne peut plus la suivre. Appuyer sur `Esc` n'arrête pas une tâche en arrière-plan.

508 508 

509Lorsque la tâche se termine, une ligne comme celle-ci apparaît dans la transcription :509Lorsque la tâche se termine, une ligne comme celle-ci apparaît dans la transcription :

510 510 


512MCP task <server task id> (<server>/<tool>) completed.512MCP task <server task id> (<server>/<tool>) completed.

513```513```

514 514 

515Le résultat est transmis à Claude, et non à la transcription ; demandez-le donc à Claude. Si Claude est inactif lorsque le résultat arrive, Claude s'en occupe sans sollicitation.515Le résultat est transmis à Claude, et non à la transcription : demandez-le donc à Claude. Si Claude est inactif lorsque le résultat arrive, Claude s'en occupe sans sollicitation.

516 516 

517#### Répondre à une question d'une tâche MCP517#### Répondre à une question d'une tâche MCP

518 518 

519Une tâche en cours peut ouvrir une [boîte de dialogue d'élicitation](#respond-to-mcp-elicitation-requests) pour vous demander une saisie. Tant que `/tasks` est ouvert, la boîte de dialogue reste masquée ; fermez donc `/tasks` pour répondre. Refuser ou appuyer sur `Esc` constitue une réponse au serveur, qui décide alors si la tâche se poursuit.519Une tâche en cours peut ouvrir une [boîte de dialogue d'élicitation](#respond-to-mcp-elicitation-requests) pour vous demander une saisie. Tant que `/tasks` est ouvert, la boîte de dialogue reste masquée : fermez donc `/tasks` pour répondre. Refuser ou appuyer sur `Esc` constitue une réponse au serveur, qui décide alors si la tâche continue.

520 520 

521Dans une session [non interactive](https://code.claude.com/docs/fr/headless.md), Claude Code demande au serveur d'annuler une tâche qui demande une saisie, sans exécuter vos [hooks `Elicitation`](https://code.claude.com/docs/fr/hooks#elicitation) ni appeler le callback `onElicitation` de l'Agent SDK.521Dans une session [non interactive](https://code.claude.com/docs/fr/headless.md), Claude Code demande au serveur d'annuler une tâche qui requiert une saisie, sans exécuter vos [hooks `Elicitation`](https://code.claude.com/docs/fr/hooks#elicitation) ni appeler le callback `onElicitation` de l'Agent SDK.

522 522 

523#### Quitter, effacer ou reprendre pendant l'exécution d'une tâche MCP523#### Quitter, effacer ou reprendre pendant l'exécution d'une tâche MCP

524 524 

525Une tâche sur un serveur distant continue de s'exécuter après que vous avez quitté. Le processus d'un serveur stdio s'arrête lorsque Claude Code se ferme, bien que ses tâches affichent `runs on the server; survives exiting this session` dans `/tasks`. Sauf si la documentation de ce serveur indique que le travail survit au processus, laissez d'abord ces tâches se terminer ou arrêtez-les dans `/tasks`.525Une tâche sur un serveur distant continue de s'exécuter après que vous avez quitté. Le processus d'un serveur stdio s'arrête lorsque Claude Code se ferme, même si ses tâches affichent `runs on the server; survives exiting this session` dans `/tasks`. Sauf si la documentation de ce serveur indique que le travail survit au processus, laissez ces tâches se terminer ou arrêtez-les d'abord dans `/tasks`.

526 526 

527| Situation | Ce qu'il advient de la tâche | Ce que vous pouvez faire |527| Situation | Ce qui arrive à la tâche | Ce que vous pouvez faire |

528| - | - | - |528| - | - | - |

529| Vous exécutez `/clear` ou `/branch`, ou `/resume` une autre session | Tant que Claude Code reste ouvert, le résultat arrive dans votre conversation actuelle | Après avoir quitté, exécutez `claude --resume` sur la session dans laquelle la tâche a démarré |529| Vous exécutez `/clear` ou `/branch`, ou `/resume` vers une autre session | Tant que Claude Code reste ouvert, le résultat arrive dans votre conversation actuelle | Après avoir quitté, faites `claude --resume` sur la session dans laquelle la tâche a démarré |

530| Vous quittez Claude Code | Aucune option de sortie n'annule la tâche d'un serveur distant, même lorsque la boîte de dialogue de sortie la liste sous `The following will stop when you exit:` | Arrêtez-la d'abord dans `/tasks`, ou reprenez la même session plus tard |530| Vous quittez Claude Code | Aucune option de sortie n'annule la tâche d'un serveur distant, même lorsque la boîte de dialogue de sortie la liste sous `The following will stop when you exit:` | Arrêtez-la d'abord dans `/tasks`, ou reprenez la même session plus tard |

531| Vous revenez à la session de la tâche en mode interactif : `claude --resume`, `claude --continue` ou `/resume` | Une fois le serveur connecté, Claude Code suit à nouveau la tâche, et Claude reçoit le résultat si elle s'est terminée entre-temps et que le serveur la connaît encore | Conservez le nom du serveur et ses paramètres de connexion inchangés |531| Vous revenez à la session de la tâche en mode interactif : `claude --resume`, `claude --continue` ou `/resume` | Une fois le serveur connecté, Claude Code suit à nouveau la tâche, et Claude obtient le résultat si elle s'est terminée entre-temps et que le serveur la connaît encore | Conservez le nom et les paramètres de connexion du serveur inchangés |

532| Vous reprenez la session de la tâche avec `--resume` ou `--continue` dans une exécution ponctuelle `claude -p "<prompt>"` | Cette exécution ne suit pas la tâche | Reprenez en mode interactif, ou avec `--input-format stream-json` |532| Vous reprenez la session de la tâche avec `--resume` ou `--continue` dans une exécution ponctuelle `claude -p "<prompt>"` | Cette exécution ne suit pas la tâche | Reprenez en mode interactif, ou avec `--input-format stream-json` |

533| Vous démarrez une nouvelle session ou utilisez `--fork-session` | La nouvelle session ne suit pas la tâche | Reprenez la session qui l'a démarrée |533| Vous démarrez une nouvelle session ou utilisez `--fork-session` | La nouvelle session ne suit pas la tâche | Reprenez la session qui l'a démarrée |

534 534 

535#### Ce dont un appel a besoin pour devenir une tâche MCP535#### Ce qu'il faut pour qu'un appel devienne une tâche MCP

536 536 

537Un appel d'outil ne devient une tâche MCP que lorsque toutes ces conditions sont réunies :537Un appel d'outil ne devient une tâche MCP que lorsque toutes ces conditions sont réunies :

538 538 

539* Le serveur prend en charge les tâches539* Le serveur prend en charge les tâches

540* Le serveur est un serveur HTTP, stdio ou connecteur claude.ai connecté avec la [révision de protocole 2026-07-28](#mcp-client-runtimes). Définir [`MCP_SDK_GENERATION=v1` ou `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/fr/env-vars) l'exclut540* Le serveur est un serveur HTTP, stdio ou un connecteur claude.ai connecté avec la [révision 2026-07-28 du protocole](#mcp-client-runtimes). Définir [`MCP_SDK_GENERATION=v1` ou `MCP_PROTOCOL_NEGOTIATION=legacy`](https://code.claude.com/docs/fr/env-vars) l'exclut

541* La session [récupère les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching), donc pas sur un fournisseur tiers tel qu'Amazon Bedrock, ni avec la télémétrie ou la récupération des flags désactivée541* La session [récupère les feature flags](https://code.claude.com/docs/fr/env-vars.md#features-that-need-feature-flag-fetching) : donc pas sur un fournisseur tiers comme Amazon Bedrock, ni avec la télémétrie ou la récupération des flags désactivée

542* Anthropic a activé les tâches MCP pour votre type de session. Sur v2.1.304 ou une version ultérieure, cela couvre les sessions CLI dans le terminal, les sessions [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md) et les exécutions [GitHub Actions](https://code.claude.com/docs/fr/github-actions.md). Les autres surfaces, telles que l'[extension VS Code](https://code.claude.com/docs/fr/vs-code.md) et l'[application de bureau](https://code.claude.com/docs/fr/desktop.md), ne disposent pas des tâches MCP542* Anthropic a activé les tâches MCP pour votre type de session. Sur v2.1.304 ou une version ultérieure, cela couvre les sessions CLI dans le terminal, les sessions [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md) et les exécutions [GitHub Actions](https://code.claude.com/docs/fr/github-actions.md). Les autres surfaces, comme l'[extension VS Code](https://code.claude.com/docs/fr/vs-code.md) et l'[application de bureau](https://code.claude.com/docs/fr/desktop.md), n'ont pas de tâches MCP

543* L'appel provient de la conversation principale, et non d'un [sous-agent](https://code.claude.com/docs/fr/sub-agents.md)543* L'appel provient de la conversation principale, et non d'un [sous-agent](https://code.claude.com/docs/fr/sub-agents.md)

544* Soit la session est interactive, soit une session [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md) ou une exécution `claude -p` lisant `--input-format stream-json` a :544* Soit la session est interactive, soit une session [Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md) ou une exécution `claude -p` lisant `--input-format stream-json` a :

545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars) à `1`545 * [`CLAUDE_AUTO_BACKGROUND_TASKS`](https://code.claude.com/docs/fr/env-vars) à `1`

546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` différent de `1`546 * `CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND` différent de `1`

547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` différent de `0`547 * `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` différent de `0`

548 548 

549Tout autre appel est un appel d'outil ordinaire, et [Mise en arrière-plan automatique des appels d'outils longs](#automatic-backgrounding-of-long-tool-calls) indique lesquels passent en arrière-plan.549Tout autre appel est un appel d'outil ordinaire, et la section [Passage automatique en arrière-plan des appels d'outils longs](#automatic-backgrounding-of-long-tool-calls) indique lesquels passent en arrière-plan.

550 550 

551Gardez l'entrée d'une session Agent SDK ou stream-json ouverte, car l'exécution [n'attend pas les tâches MCP](https://code.claude.com/docs/fr/headless.md#mcp-work-when-a-non-interactive-run-ends) une fois l'entrée fermée. Une exécution ponctuelle `claude -p "<prompt>"` ne bénéficie pas des tâches MCP.551Gardez ouverte l'entrée d'une session Agent SDK ou stream-json, car l'exécution [n'attend pas les tâches MCP](https://code.claude.com/docs/fr/headless.md#mcp-work-when-a-non-interactive-run-ends) une fois l'entrée fermée. Une exécution ponctuelle `claude -p "<prompt>"` ne bénéficie pas des tâches MCP.

552 552 

553#### Messages de statut d'une tâche MCP553#### Messages de statut d'une tâche MCP

554 554 

555Ces messages, dans l'entrée `/tasks` d'une tâche ou dans sa ligne de transcription finale, signifient que Claude Code ne peut pas joindre le serveur ou la tâche. Tant que l'un d'eux s'affiche dans `/tasks`, le travail est peut-être toujours en cours : Claude Code le laisse tranquille et continue de vérifier. Les messages `300s` et de configuration restent sur l'entrée même après le rétablissement du contact.555Ces messages, dans l'entrée `/tasks` d'une tâche ou dans sa ligne de clôture dans la transcription, signifient que Claude Code ne peut pas joindre le serveur ou la tâche. Tant que l'un d'eux s'affiche dans `/tasks`, le travail est peut-être toujours en cours : Claude Code le laisse tranquille et continue de vérifier. Les messages `300s` et de configuration restent sur l'entrée même après le rétablissement du contact.

556 556 

557| Message | Ce qui se passe | Ce que vous pouvez faire |557| Message | Ce qui se passe | Ce que vous pouvez faire |

558| - | - | - |558| - | - | - |

559| `reconnecting…` | Le serveur n'a pas répondu depuis une reprise, ou les vérifications de statut restent sans réponse | S'il persiste, reconnectez depuis `/mcp` |559| `reconnecting…` | Le serveur n'a pas répondu depuis une reprise, ou les vérifications de statut ne reçoivent aucune réponse | Si le message persiste, reconnectez depuis `/mcp` |

560| `needs a sign-in to <server>` | Le serveur a refusé une vérification de statut | Connectez-vous depuis `/mcp` |560| `needs a sign-in to <server>` | Le serveur a refusé une vérification de statut | Connectez-vous depuis `/mcp` |

561| `status requests come back with errors; retrying…` | Le serveur, ou un proxy placé devant lui, répond aux vérifications de statut par des erreurs | Patientez pendant que Claude Code réessaie |561| `status requests come back with errors; retrying…` | Le serveur, ou un proxy placé devant lui, répond aux vérifications de statut par des erreurs | Patientez pendant que Claude Code réessaie |

562| `server '<name>' did not reconnect within 300s` | Aucune vérification n'a obtenu de réponse pendant cinq minutes, par exemple parce que la connexion est coupée ou le serveur désactivé | Reconnectez depuis `/mcp` |562| `server '<name>' did not reconnect within 300s` | Aucune vérification n'a reçu de réponse pendant cinq minutes, par exemple parce que la connexion est coupée ou le serveur désactivé | Reconnectez depuis `/mcp` |

563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Après cinq minutes, le serveur demande toujours une connexion | Connectez-vous depuis `/mcp` |563| `server '<name>' asked for a sign-in, and none was accepted within 300s` | Après cinq minutes, le serveur demande toujours une connexion | Connectez-vous depuis `/mcp` |

564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Cinq minutes de réponses d'erreur | Vérifiez l'état de santé ou les logs du serveur lui-même |564| `status requests to server '<name>' came back with errors, and none succeeded in 300s` | Cinq minutes de réponses en erreur | Vérifiez l'état de santé ou les logs du serveur lui-même |

565| `server '<name>' is not configured in this session; the task may still be running on it` | La session n'a aucun serveur de ce nom, par exemple parce qu'il a été supprimé, renommé ou omis de `--mcp-config`, ou qu'un connecteur claude.ai est encore en cours de chargement | Restaurez le serveur sous le même nom, puis reprenez à nouveau la session. Pour un connecteur en cours de chargement, rien : Claude Code suit la tâche dès qu'il apparaît |565| `server '<name>' is not configured in this session; the task may still be running on it` | La session n'a aucun serveur de ce nom, par exemple parce qu'il a été supprimé, renommé ou omis de `--mcp-config`, ou qu'un connecteur claude.ai est encore en cours de chargement | Restaurez le serveur sous le même nom, puis reprenez à nouveau la session. Pour un connecteur en cours de chargement, rien : Claude Code suit la tâche dès qu'il apparaît |

566| Un message commençant par `server '<name>' was reconfigured to a different transport since this task was created` | Un serveur de ce nom existe, mais ses paramètres de connexion ont changé depuis le démarrage de la tâche, tels que son URL, sa commande, ses args, son env, ses en-têtes ou son délai d'expiration | Restaurez les paramètres précédents, puis reprenez à nouveau la session |566| Un message commençant par `server '<name>' was reconfigured to a different transport since this task was created` | Un serveur de ce nom existe, avec des paramètres de connexion modifiés depuis le démarrage de la tâche, comme son URL, sa commande, ses args, son env, ses en-têtes ou son timeout | Restaurez les paramètres précédents, puis reprenez à nouveau la session |

567| `the server rejected this task's id; asking again…` | Le serveur indique qu'il ne connaît pas l'ID de la tâche. Claude Code continue de demander pendant jusqu'à cinq minutes | Patientez : le message disparaît si le serveur reconnaît à nouveau l'ID, sinon la ligne `outcome unknown.` suit |567| `the server rejected this task's id; asking again…` | Le serveur indique qu'il ne connaît pas l'ID de la tâche. Claude Code continue de le demander pendant jusqu'à cinq minutes | Patientez : le message disparaît si le serveur reconnaît à nouveau l'ID, sinon la ligne `outcome unknown.` suit |

568| Une ligne de transcription se terminant par `outcome unknown.`, sous une forme `expired on the server: outcome unknown.` | Le serveur a rejeté l'ID ou a refusé avec une autre erreur permanente, et Claude Code a cessé de suivre la tâche | Un second appel peut répéter le travail. Avant d'appeler à nouveau l'outil, vérifiez auprès du serveur ce qui a été fait, par exemple en demandant à Claude d'utiliser les autres outils du serveur |568| Une ligne de transcription se terminant par `outcome unknown.`, sous une forme `expired on the server: outcome unknown.` | Le serveur a rejeté l'ID ou refusé avec une autre erreur permanente, et Claude Code a cessé de suivre la tâche | Un second appel peut répéter le travail. Avant de rappeler l'outil, déterminez auprès du serveur ce qui a été fait, par exemple en demandant à Claude d'utiliser les autres outils du serveur |

569 569 

570#### Limites de temps des tâches MCP570#### Limites de temps des tâches MCP

571 571 

572Par défaut, une tâche en arrière-plan n'a aucune limite de temps imposée par Claude Code. Les [limites de temps des appels d'outils](#time-limits-on-mcp-tool-calls), y compris la limite en temps réel et le délai d'inactivité, s'appliquent jusqu'à ce que le serveur réponde à l'appel avec la tâche. Si vous [faites attendre Claude](#make-claude-wait-for-the-result-of-an-mcp-task), elles s'appliquent pendant toute la durée de la tâche. Les vérifications de statut ayant obtenu une réponse comptent comme une activité pour le délai d'inactivité.572Par défaut, une tâche en arrière-plan n'a aucune limite de temps imposée par Claude Code. Les [limites de temps des appels d'outils](#time-limits-on-mcp-tool-calls), y compris la limite en temps réel et le délai d'inactivité, s'appliquent jusqu'à ce que le serveur réponde à l'appel avec la tâche. Si vous [faites attendre Claude](#make-claude-wait-for-the-result-of-an-mcp-task), elles s'appliquent pendant toute la durée de la tâche. Les vérifications de statut ayant reçu une réponse comptent comme une activité pour le délai d'inactivité.

573 573 

574#### Faire attendre Claude le résultat d'une tâche MCP574#### Faire attendre Claude le résultat d'une tâche MCP

575 575 

576Pour que Claude attende le résultat d'une tâche dans une session interactive, définissez l'une de deux variables d'environnement, par exemple dans le bloc `env` de [`settings.json`](https://code.claude.com/docs/fr/settings) :576Pour que Claude attende le résultat d'une tâche dans une session interactive, définissez l'une de deux variables d'environnement, par exemple dans le bloc `env` de [`settings.json`](https://code.claude.com/docs/fr/settings) :

577 577 

578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/fr/env-vars) défini sur `0`** : Claude attend chaque appel d'outil MCP jusqu'à sa fin578* **[`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/fr/env-vars) défini sur `0`** : Claude attend chaque appel d'outil MCP jusqu'à la fin de l'appel

579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/fr/env-vars) défini sur `1`** : Claude attend le résultat d'une tâche. Tant que la [mise en arrière-plan automatique](#automatic-backgrounding-of-long-tool-calls) est activée, elle déplace l'appel après deux minutes par défaut, de sorte que les tâches courtes se terminent sur place et que les longues ne vous bloquent pas. L'appel déplacé est un appel en arrière-plan ordinaire plutôt qu'une tâche MCP. Il ne survit pas à la fermeture de la session579* **[`CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND`](https://code.claude.com/docs/fr/env-vars) défini sur `1`** : Claude attend le résultat d'une tâche. Tant que le [passage automatique en arrière-plan](#automatic-backgrounding-of-long-tool-calls) est activé, il déplace l'appel au bout de deux minutes par défaut : les tâches courtes se terminent donc sur place et les longues ne vous bloquent pas. L'appel déplacé est un appel en arrière-plan ordinaire plutôt qu'une tâche MCP. Il ne survit pas à la fermeture de la session

580 580 

581Pendant que Claude attend, appuyer sur `Esc` ou atteindre la [limite en temps réel ou le délai d'inactivité](#time-limits-on-mcp-tasks) met fin à l'appel, et Claude Code demande au serveur d'annuler la tâche.581Pendant que Claude attend, appuyer sur `Esc` ou atteindre la [limite en temps réel ou le délai d'inactivité](#time-limits-on-mcp-tasks) met fin à l'appel, et Claude Code demande au serveur d'annuler la tâche.

582 582 


592 592 

593### Tâches MCP pour les auteurs de serveurs593### Tâches MCP pour les auteurs de serveurs

594 594 

595Si vous développez un serveur MCP, vous pouvez répondre à un `tools/call` de longue durée avec une tâche. L'[extension MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview) définit les messages que vous envoyez. Sur une connexion utilisant la [révision de protocole 2026-07-28](#mcp-client-runtimes), chaque requête transporte les capacités client de Claude Code à `params._meta["io.modelcontextprotocol/clientCapabilities"]`, avec `"io.modelcontextprotocol/tasks": {}` sous `extensions`. Une requête `tools/call` qui [ne peut pas devenir une tâche](#requirements-for-mcp-tasks) omet cette extension.595Si vous développez un serveur MCP, vous pouvez répondre à un `tools/call` de longue durée par une tâche. L'[extension MCP tasks](https://modelcontextprotocol.io/extensions/tasks/overview) définit les messages que vous envoyez. Sur une connexion utilisant la [révision 2026-07-28 du protocole](#mcp-client-runtimes), chaque requête transporte les capacités client de Claude Code dans `params._meta["io.modelcontextprotocol/clientCapabilities"]`, avec `"io.modelcontextprotocol/tasks": {}` sous `extensions`. Une requête `tools/call` qui [ne peut pas devenir une tâche](#requirements-for-mcp-tasks) omet cette extension.

596 596 

597#### Répondre à l'appel avec une tâche597#### Répondre à l'appel par une tâche

598 598 

599Ne répondez avec une tâche que lorsque la requête transporte l'extension, sinon l'appel échoue avec l'erreur d'outil `Unsupported result type 'task' for tools/call`. L'appel échoue de la même manière si votre réponse n'a pas de `taskId` ou pas de `status` valide. L'objet tâche est le `result` JSON-RPC de votre réponse `tools/call`, ne nécessite pas de tableau `content`, et inclut ici les champs facultatifs `statusMessage` et `pollIntervalMs` :599Ne répondez par une tâche que lorsque la requête transporte l'extension, sinon l'appel échoue avec l'erreur d'outil `Unsupported result type 'task' for tools/call`. L'appel échoue de la même manière si votre réponse n'a pas de `taskId` ou pas de `status` valide. L'objet tâche est le `result` JSON-RPC de votre réponse `tools/call`, ne nécessite pas de tableau `content`, et inclut ici les champs facultatifs `statusMessage` et `pollIntervalMs` :

600 600 

601```json theme={null}601```json theme={null}

602{602{


614| Champ | Comment Claude Code le traite |614| Champ | Comment Claude Code le traite |

615| - | - |615| - | - |

616| `resultType` | Définissez-le sur `"task"` pour marquer la réponse comme une tâche. Sans lui, Claude Code lit la réponse comme un résultat ordinaire |616| `resultType` | Définissez-le sur `"task"` pour marquer la réponse comme une tâche. Sans lui, Claude Code lit la réponse comme un résultat ordinaire |

617| `taskId` | Obligatoire. Au maximum 128 caractères ASCII imprimables sans espaces, sinon Claude reçoit une erreur d'outil commençant par `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Veillez à ce que l'ID puisse obtenir une réponse d'une connexion à l'autre, car après une reprise, Claude Code l'interroge sur une nouvelle connexion |617| `taskId` | Obligatoire. Au plus 128 caractères ASCII imprimables sans espaces, sinon Claude reçoit une erreur d'outil commençant par `MCP server "<name>" returned a malformed task handle for tool "<tool>"`. Veillez à ce que l'ID reste utilisable d'une connexion à l'autre, car après une reprise, Claude Code l'interroge sur une nouvelle connexion |

618| `status` | Obligatoire. L'une des valeurs `working`, `input_required`, `completed`, `failed` ou `cancelled`. Une autre valeur provoque l'erreur `Unsupported result type` |618| `status` | Obligatoire. L'une des valeurs `working`, `input_required`, `completed`, `failed` ou `cancelled`. Toute autre valeur provoque l'erreur `Unsupported result type` |

619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Exigés par l'extension tasks, et `ttlMs` peut être `null`. Claude Code n'abandonne pas une tâche parce que son `ttlMs` est dépassé |619| `createdAt`, `lastUpdatedAt`, `ttlMs` | Requis par l'extension tasks, et `ttlMs` peut être `null`. Claude Code n'abandonne pas une tâche parce que son `ttlMs` est dépassé |

620| `pollIntervalMs` | Facultatif. Millisecondes entre les requêtes `tasks/get`, bornées entre 250 et 30000. Claude Code utilise 2000 lorsque le champ est absent ou `null`, et relit la valeur dans chaque réponse `tasks/get` |620| `pollIntervalMs` | Facultatif. Millisecondes entre les requêtes `tasks/get`, limitées entre 250 et 30000. Claude Code utilise 2000 lorsque le champ est absent ou `null`, et relit la valeur dans chaque réponse `tasks/get` |

621| `statusMessage` | Facultatif. `/tasks` affiche la valeur de votre dernière réponse `tasks/get`, et non de cette première réponse, et une réponse qui omet le champ l'efface. Un [message de statut de Claude Code](#status-messages-on-an-mcp-task) peut le remplacer |621| `statusMessage` | Facultatif. `/tasks` affiche la valeur de votre dernière réponse `tasks/get`, et non celle de cette première réponse, et une réponse qui omet le champ l'efface. Un [message de statut de Claude Code](#status-messages-on-an-mcp-task) peut prendre sa place |

622 622 

623Claude Code accepte une réponse de tâche qui omet `createdAt`, `lastUpdatedAt` ou `ttlMs`, ou qui définit `pollIntervalMs` sur `null`. Avant la v2.1.317, l'appel échouait plutôt avec l'erreur `Unsupported result type`. Pour fonctionner aussi avec ces versions, envoyez les trois champs exigés par l'extension tasks, et envoyez `pollIntervalMs` sous forme de nombre ou pas du tout.623Claude Code accepte une réponse de tâche qui omet `createdAt`, `lastUpdatedAt` ou `ttlMs`, ou qui définit `pollIntervalMs` sur `null`. Avant la v2.1.317, l'appel échouait plutôt avec l'erreur `Unsupported result type`. Pour fonctionner également avec ces versions, envoyez les trois champs requis par l'extension tasks, et envoyez `pollIntervalMs` sous forme de nombre ou pas du tout.

624 624 

625Sur un serveur HTTP ou connecteur claude.ai, la réponse de tâche doit commencer dans le délai du [minuteur par requête](#time-limits-on-mcp-tool-calls) ; acceptez donc le travail et répondez d'abord, puis effectuez le travail.625Sur un serveur HTTP ou un connecteur claude.ai, la réponse de tâche doit commencer dans les limites du [minuteur par requête](#time-limits-on-mcp-tool-calls) : acceptez donc le travail et répondez d'abord, puis effectuez le travail.

626 626 

627#### Signaler le statut, les résultats et les questions627#### Signaler le statut, les résultats et les questions

628 628 

629Juste après la réponse de tâche, Claude Code envoie `tasks/get` avec `{ "taskId": ... }`, puis le répète une fois par intervalle d'interrogation. L'extension tasks exige que votre réponse contienne `"resultType": "complete"` ainsi que `taskId`, `status`, `createdAt`, `lastUpdatedAt` et `ttlMs`. `ttlMs` peut être `null`, et `statusMessage` et `pollIntervalMs` sont facultatifs. Cet exemple signale que le build est terminé :629Juste après la réponse de tâche, Claude Code envoie `tasks/get` avec `{ "taskId": ... }`, puis la répète une fois par intervalle d'interrogation. L'extension tasks exige que votre réponse contienne `"resultType": "complete"` ainsi que `taskId`, `status`, `createdAt`, `lastUpdatedAt` et `ttlMs`. `ttlMs` peut être `null`, et `statusMessage` et `pollIntervalMs` sont facultatifs. Cet exemple signale que le build est terminé :

630 630 

631```json theme={null}631```json theme={null}

632{632{


645| Statut, méthode ou réponse | Comment Claude Code le traite |645| Statut, méthode ou réponse | Comment Claude Code le traite |

646| - | - |646| - | - |

647| `working` | Continue d'interroger |647| `working` | Continue d'interroger |

648| `completed` | Transmet à Claude le résultat `tools/call` normal contenu dans l'objet `result` de niveau supérieur. Un `isError: true` dans celui-ci est signalé comme un échec |648| `completed` | Transmet à Claude le résultat `tools/call` normal contenu dans l'objet `result` de premier niveau. Un `isError: true` qu'il contient est signalé comme un échec |

649| `failed` | Transmet à Claude le `message` de l'objet `error` de niveau supérieur `{ code, message, data }`, que l'extension tasks exige pour une tâche en échec. Sans ce `message`, Claude reçoit plutôt `statusMessage`, ou à défaut `Task failed` |649| `failed` | Transmet à Claude le `message` de l'objet `error` de premier niveau `{ code, message, data }`, que l'extension tasks exige pour une tâche en échec. Sans ce `message`, Claude reçoit `statusMessage` à la place, ou à défaut `Task failed` |

650| `cancelled` | Transmet à Claude `statusMessage`, ou à défaut `Task was cancelled by the server` |650| `cancelled` | Transmet à Claude `statusMessage`, ou à défaut `Task was cancelled by the server` |

651| `input_required` | Lit `inputRequests`, un objet qui associe une clé de votre choix à `{ method, params }`. Claude Code répond une fois à chaque clé via `tasks/update` avec `{ taskId, inputResponses }`, où `inputResponses` associe la même clé au résultat de cette requête. Les clés au-delà de 16 par tâche sont ignorées |651| `input_required` | Lit `inputRequests`, un objet qui associe une clé de votre choix à `{ method, params }`. Claude Code répond une fois à chaque clé via `tasks/update` avec `{ taskId, inputResponses }`, où `inputResponses` associe la même clé au résultat de cette requête. Les clés au-delà de 16 par tâche sont ignorées |

652| Méthodes dans `inputRequests` | `elicitation/create` n'est servie que dans les sessions de terminal interactives, et `roots/list` partout. Lorsque Claude Code ne peut pas servir une requête, il demande au serveur d'annuler la tâche |652| Méthodes dans `inputRequests` | `elicitation/create` n'est servie que dans les sessions de terminal interactives, et `roots/list` partout. Lorsque Claude Code ne peut pas servir une requête, il demande au serveur d'annuler la tâche |

653| Une autre valeur de `status` | Claude Code demande au serveur d'annuler la tâche et la signale à Claude comme en échec |653| Une autre valeur de `status` | Claude Code demande au serveur d'annuler la tâche et la signale à Claude comme en échec |

654| Erreur JSON-RPC `-32602` | Lue comme un ID de tâche inconnu. Pour une tâche en arrière-plan, Claude Code continue de demander pendant jusqu'à cinq minutes, puis signale le résultat à Claude comme inconnu |654| Erreur JSON-RPC `-32602` | Interprétée comme un ID de tâche inconnu. Pour une tâche en arrière-plan, Claude Code continue de demander pendant jusqu'à cinq minutes, puis signale à Claude que le résultat est inconnu |

655| `tasks/cancel` | Envoyée, par exemple, lorsque Claude ou la personne arrête la tâche alors que le serveur est connecté. Non envoyée à la fermeture |655| `tasks/cancel` | Envoyée, par exemple, lorsque Claude ou l'utilisateur arrête la tâche pendant que le serveur est connecté. Non envoyée à la fermeture |

656| `tasks/result`, `tasks/list`, `notifications/tasks` | Non utilisées ; placez donc le résultat dans vos réponses `tasks/get` |656| `tasks/result`, `tasks/list`, `notifications/tasks` | Non utilisées : placez donc le résultat dans vos réponses `tasks/get` |

657 657 

658### Serveurs MCP fournis par les plugins658### Serveurs MCP fournis par les plugins

659 659 

660[Les plugins](https://code.claude.com/docs/fr/plugins/overview.md) peuvent regrouper des serveurs MCP qui fournissent des outils et des intégrations lorsque vous activez le plugin.660Les [plugins](https://code.claude.com/docs/fr/plugins/overview.md) peuvent intégrer des serveurs MCP qui fournissent des outils et des intégrations lorsque vous activez le plugin.

661 661 

662**Comment fonctionnent les serveurs MCP des plugins** :662**Fonctionnement des serveurs MCP de plugin** :

663 663 

664* Les plugins définissent les serveurs MCP dans `.mcp.json` à la racine du plugin ou en ligne dans `plugin.json`664* Les plugins définissent des serveurs MCP dans `.mcp.json` à la racine du plugin ou directement dans `plugin.json`

665* Lorsque vous activez un plugin, Claude Code démarre automatiquement ses serveurs MCP665* Lorsque vous activez un plugin, Claude Code démarre automatiquement ses serveurs MCP

666* Claude Code propose les outils MCP des plugins aux côtés des outils MCP configurés manuellement666* Claude Code propose les outils MCP des plugins aux côtés des outils MCP configurés manuellement

667* Vous ajoutez et supprimez les serveurs de plugins en installant ou en désinstallant le plugin, pas avec les commandes `/mcp`. Vous pouvez toujours [désactiver un serveur de plugin installé](#disable-a-server-without-removing-it) dans `/mcp`, ce qui empêche Claude Code de s'y connecter sans supprimer le plugin667* Vous ajoutez et supprimez les serveurs de plugin en installant ou en désinstallant le plugin, et non avec les commandes `/mcp`. Vous pouvez néanmoins [désactiver un serveur de plugin installé](#disable-a-server-without-removing-it) dans `/mcp`, ce qui empêche Claude Code de s'y connecter sans supprimer le plugin

668 668 

669**Exemple de configuration MCP de plugin** :669**Exemple de configuration MCP de plugin** :

670 670 


684}684}

685```685```

686 686 

687Ou en ligne dans `plugin.json` :687Ou directement dans `plugin.json` :

688 688 

689```json theme={null}689```json theme={null}

690{690{


701**Fonctionnalités MCP des plugins** :701**Fonctionnalités MCP des plugins** :

702 702 

703* **Cycle de vie automatique** : les serveurs se connectent et se déconnectent aux moments suivants :703* **Cycle de vie automatique** : les serveurs se connectent et se déconnectent aux moments suivants :

704 * Au démarrage de la session, Claude Code connecte automatiquement les serveurs des plugins activés. Dans `/mcp`, un serveur de plugin distant (HTTP ou SSE) que vous avez utilisé auparavant peut afficher le [statut `cached`](#server-status-detail) à la place ; Claude Code le connecte lorsque Claude appelle pour la première fois l'un de ses outils. Lorsque la connexion d'un serveur de plugin stdio a échoué moins de 15 minutes auparavant, Claude Code [ignore la connexion](https://code.claude.com/docs/fr/errors.md#skipping-connection-recent-failure-cached)704 * Au démarrage de la session, Claude Code connecte automatiquement les serveurs des plugins activés. Dans `/mcp`, un serveur de plugin distant (HTTP ou SSE) que vous avez déjà utilisé peut plutôt afficher le [statut `cached`](#server-status-detail) ; Claude Code le connecte lorsque Claude appelle pour la première fois l'un de ses outils. Lorsque la connexion d'un serveur de plugin stdio a échoué moins de 15 minutes auparavant, Claude Code [ignore la connexion](https://code.claude.com/docs/fr/errors.md#skipping-connection-recent-failure-cached)

705 * Si vous activez ou désactivez un plugin pendant une session, Claude Code connecte ou déconnecte ses serveurs MCP lorsque la modification s'applique. [Appliquer les modifications de plugin sans redémarrer](https://code.claude.com/docs/fr/plugins/cli-reference.md#reload-plugins) décrit quand c'est le cas. Dans une session sans terminal interactif, `/reload-plugins` ne connecte ni ne déconnecte les serveurs MCP des plugins ; ces modifications prennent effet dans votre session suivante705 * Si vous activez ou désactivez un plugin pendant une session, Claude Code connecte ou déconnecte ses serveurs MCP lorsque la modification s'applique. La section [Appliquer les modifications de plugin sans redémarrer](https://code.claude.com/docs/fr/plugins/cli-reference.md#reload-plugins) décrit à quel moment cela se produit. Dans une session sans terminal interactif, `/reload-plugins` ne connecte ni ne déconnecte les serveurs MCP de plugin ; ces modifications prennent effet lors de votre prochaine session

706 * Lorsque vous rechargez, Claude Code conserve les connexions actives des serveurs de plugins dont la configuration est inchangée, et fait de même lorsque vous [remplacez la liste des serveurs MCP de la session](https://code.claude.com/docs/fr/agent-sdk/typescript.md#mcpsetserversresult) à partir de l'Agent SDK sans les nommer706 * Lors d'un rechargement, Claude Code conserve les connexions actives des serveurs de plugin dont la configuration n'a pas changé, et fait de même lorsque vous [remplacez la liste des serveurs MCP de la session](https://code.claude.com/docs/fr/agent-sdk/typescript.md#mcpsetserversresult) depuis l'Agent SDK sans les nommer

707 * Lorsque vous [déplacez la session avec `/cd`](https://code.claude.com/docs/fr/permissions#move-the-session-to-another-directory) sur v2.1.246 ou ultérieur, Claude Code connecte les serveurs des plugins que les paramètres du nouveau répertoire activent et déconnecte les serveurs des plugins qui ne sont plus activés, afin que vous n'ayez pas besoin d'exécuter `/reload-plugins` après le déplacement707 * Lorsque vous [déplacez la session avec `/cd`](https://code.claude.com/docs/fr/permissions#move-the-session-to-another-directory) en v2.1.246 ou ultérieure, Claude Code connecte les serveurs des plugins activés par les paramètres du nouveau répertoire et déconnecte les serveurs des plugins qui ne sont plus activés, vous n'avez donc pas besoin d'exécuter `/reload-plugins` après le déplacement

708 * Dans les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), un appel MCP à un serveur de plugin qui n'est pas encore connecté, par exemple juste après le réveil d'une session inactive, démarre le serveur à la demande et attend qu'il se connecte708 * Dans les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), un appel MCP vers un serveur de plugin qui n'est pas encore connecté, par exemple juste après le réveil d'une session inactive, démarre le serveur à la demande et attend qu'il se connecte

709* **Espaces réservés de chemin** : `${CLAUDE_PLUGIN_ROOT}` se résout au répertoire d'installation du plugin, `${CLAUDE_PLUGIN_DATA}` à son répertoire d'[état persistant](https://code.claude.com/docs/fr/plugins/components.md#path-variables-and-persistent-data), et `${CLAUDE_PROJECT_DIR}` à la racine de projet stable. La substitution s'applique à :709* **Espaces réservés de chemin** : `${CLAUDE_PLUGIN_ROOT}` est résolu vers le répertoire d'installation du plugin, `${CLAUDE_PLUGIN_DATA}` vers son répertoire d'[état persistant](https://code.claude.com/docs/fr/plugins/components.md#path-variables-and-persistent-data), et `${CLAUDE_PROJECT_DIR}` vers la racine stable du projet. La substitution s'applique à :

710 * serveurs `stdio` : `command`, `args`, `env`710 * Serveurs `stdio` : `command`, `args`, `env`

711 * serveurs `http`, `sse`, et `ws` : `url`, `headers`, et `headersHelper`711 * Serveurs `http`, `sse` et `ws` : `url`, `headers` et `headersHelper`

712* **Accès à l'environnement utilisateur** : accès aux mêmes variables d'environnement que les serveurs configurés manuellement712* **Accès à l'environnement utilisateur** : accès aux mêmes variables d'environnement que les serveurs configurés manuellement

713* **Types de transport multiples** : support des transports stdio, SSE, HTTP, et WebSocket, bien que le support de transport puisse varier selon le serveur713* **Plusieurs types de transport** : prise en charge des transports stdio, SSE, HTTP et WebSocket, bien que la prise en charge des transports puisse varier selon le serveur

714 714 

715Les serveurs de plugins apparaissent dans `/mcp` avec des indicateurs montrant qu'ils proviennent de plugins.715Les serveurs de plugin apparaissent dans `/mcp` avec des indicateurs signalant qu'ils proviennent de plugins.

716 716 

717`claude mcp get` masque les valeurs configurées pour le serveur stdio ou WebSocket d'un plugin, car elles peuvent contenir des identifiants :717`claude mcp get` masque les valeurs configurées pour le serveur stdio ou WebSocket d'un plugin, car elles peuvent contenir des identifiants :

718 718 

719* **Serveur stdio** : il imprime `Command: stdio`, une ligne `Args:` vide, et chaque variable d'environnement sous la forme `NAME=[REDACTED]`719* **Serveur stdio** : la commande affiche `Command: stdio`, une ligne `Args:` vide, et chaque variable d'environnement sous la forme `NAME=[REDACTED]`

720* **Serveur WebSocket** : il imprime `URL: ws` et chaque en-tête sous la forme `<name>: [REDACTED]`, et `claude mcp list` affiche `ws` à la place de l'URL720* **Serveur WebSocket** : la commande affiche `URL: ws` et chaque en-tête sous la forme `<name>: [REDACTED]`, et `claude mcp list` affiche `ws` à la place de l'URL

721 721 

722Pour voir ce que le plugin a configuré, [trouvez le plugin sur le disque](https://code.claude.com/docs/fr/plugins/loading.md#find-plugins-on-disk) et lisez son `.mcp.json` ou son `plugin.json`.722Pour voir ce que le plugin a configuré, [trouvez le plugin sur le disque](https://code.claude.com/docs/fr/plugins/loading.md#find-plugins-on-disk) et lisez son fichier `.mcp.json` ou `plugin.json`.

723 723 

724**Noms d'outils MCP des plugins** :724**Noms des outils MCP de plugin** :

725 725 

726Les outils d'un serveur MCP regroupé dans un plugin incluent à la fois le nom du plugin et la clé du serveur dans leur nom appelable. La forme complète est `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, où tout caractère en dehors de `A-Z`, `a-z`, `0-9`, `_`, et `-` est remplacé par `_`. Pour le serveur `database-tools` regroupé dans un plugin nommé `my-plugin`, un outil `query` est appelable sous la forme :726Les outils d'un serveur MCP intégré à un plugin incluent à la fois le nom du plugin et la clé du serveur dans leur nom appelable. La forme complète est `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, où tout caractère en dehors de `A-Z`, `a-z`, `0-9`, `_` et `-` est remplacé par `_`. Pour le serveur `database-tools` intégré à un plugin nommé `my-plugin`, un outil `query` peut être appelé ainsi :

727 727 

728```728```

729mcp__plugin_my-plugin_database-tools__query729mcp__plugin_my-plugin_database-tools__query

730```730```

731 731 

732Utilisez ce nom complet lorsque vous référencez l'outil dans les [règles de permission](https://code.claude.com/docs/fr/permissions.md), la liste `allowed-tools` d'un skill, le [champ `tools` d'un sous-agent](https://code.claude.com/docs/fr/sub-agents#available-tools), ou un [matcher de hook](https://code.claude.com/docs/fr/hooks.md#match-mcp-tools). Un matcher de hook écrit avec la clé de serveur seule, telle que `mcp__database-tools__.*`, ne se déclenche jamais pour un serveur regroupé dans un plugin.732Utilisez ce nom complet pour référencer l'outil dans les [règles de permission](https://code.claude.com/docs/fr/permissions.md), la liste `allowed-tools` d'un skill, le [champ `tools` d'un sous-agent](https://code.claude.com/docs/fr/sub-agents#available-tools) ou un [matcher de hook](https://code.claude.com/docs/fr/hooks.md#match-mcp-tools). Un matcher de hook écrit avec la seule clé du serveur, comme `mcp__database-tools__.*`, ne se déclenche jamais pour un serveur intégré à un plugin.

733 733 

734Le serveur lui-même s'enregistre sous le nom préfixé `plugin:<plugin-name>:<server-name>`, tel que `plugin:my-plugin:database-tools`. Utilisez ce nom là où un nom de serveur configuré est attendu, tel que le [champ `server` d'un hook `mcp_tool`](https://code.claude.com/docs/fr/hooks#mcp-tool-hook-fields).734Le serveur lui-même est enregistré sous le nom à portée `plugin:<plugin-name>:<server-name>`, par exemple `plugin:my-plugin:database-tools`. Utilisez ce nom là où un nom de serveur configuré est attendu, comme dans le [champ `server` d'un hook `mcp_tool`](https://code.claude.com/docs/fr/hooks#mcp-tool-hook-fields).

735 735 

736Voir la [référence des composants de plugin](https://code.claude.com/docs/fr/plugins/components.md#mcp-servers) pour les détails sur le regroupement de serveurs MCP avec les plugins.736Consultez la [référence des composants de plugin](https://code.claude.com/docs/fr/plugins/components.md#mcp-servers) pour plus de détails sur l'intégration de serveurs MCP dans les plugins.

737 737 

738## Portées d'installation MCP738## Portées d'installation MCP

739 739 


1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5, et ultérieur** : la recherche d'outils est activée par défaut, comme sur l'API Anthropic.1800* **Claude Opus 4.5, Sonnet 4.5, Haiku 4.5, et ultérieur** : la recherche d'outils est activée par défaut, comme sur l'API Anthropic.

1801* **Modèles Agent Platform antérieurs** : Claude Code charge tous les outils MCP en amont, car leurs piles de service rejettent l'en-tête bêta requis. `ENABLE_TOOL_SEARCH=true` ne contourne pas cela.1801* **Modèles Agent Platform antérieurs** : Claude Code charge tous les outils MCP en amont, car leurs piles de service rejettent l'en-tête bêta requis. `ENABLE_TOOL_SEARCH=true` ne contourne pas cela.

1802 1802 

1803Avant v2.1.221, Claude Code désactivait la recherche d'outils pour tous les modèles sur la plateforme Agent de Google Cloud sauf si vous définissiez `ENABLE_TOOL_SEARCH=true`.

1804 

1805Contrôlez le comportement de la recherche d'outils avec la variable d'environnement `ENABLE_TOOL_SEARCH` :1803Contrôlez le comportement de la recherche d'outils avec la variable d'environnement `ENABLE_TOOL_SEARCH` :

1806 1804 

1807| Valeur | Comportement |1805| Valeur | Comportement |

model-config.md +3 −3

Details

71* **Fable 5.2** : exécutez `/model fable`, ou lancez avec `claude --model fable`. Dans les sessions de [passerelle d'applications Claude](https://code.claude.com/docs/fr/claude-apps-gateway), exécutez plutôt `/model claude-fable-5-2`.71* **Fable 5.2** : exécutez `/model fable`, ou lancez avec `claude --model fable`. Dans les sessions de [passerelle d'applications Claude](https://code.claude.com/docs/fr/claude-apps-gateway), exécutez plutôt `/model claude-fable-5-2`.

72* **Fable 5.1 ou Fable 5** : sélectionnez-le par ID de modèle. Sur l'API Anthropic, exécutez `/model claude-fable-5-1` ou `/model claude-fable-5`, ou lancez avec `claude --model claude-fable-5-1`. Sur d'autres fournisseurs, utilisez l'ID de modèle de votre fournisseur ou [épinglez-le](#pin-models-for-third-party-deployments) avec `ANTHROPIC_DEFAULT_FABLE_MODEL`.72* **Fable 5.1 ou Fable 5** : sélectionnez-le par ID de modèle. Sur l'API Anthropic, exécutez `/model claude-fable-5-1` ou `/model claude-fable-5`, ou lancez avec `claude --model claude-fable-5-1`. Sur d'autres fournisseurs, utilisez l'ID de modèle de votre fournisseur ou [épinglez-le](#pin-models-for-third-party-deployments) avec `ANTHROPIC_DEFAULT_FABLE_MODEL`.

73 73 

74Sur les plans Pro, Max, Team et Enterprise, un modèle `claude-fable-5-1` enregistré dans vos paramètres utilisateur passe à l'alias `fable` :74Sur les plans Pro, Max, Ultra, Team et Enterprise, un modèle `claude-fable-5-1` enregistré dans vos paramètres utilisateur passe à l'alias `fable` :

75 75 

76* **Plan Pro ou Max** : le changement a lieu la première fois que vous exécutez v2.1.321 ou ultérieur. Dans le terminal, la ligne de modèle de démarrage peut afficher `(auto-updated)` une fois.76* **Plan Pro, Max ou Ultra** : le changement a lieu la première fois que vous exécutez v2.1.321 ou ultérieur. Dans le terminal, la ligne de modèle de démarrage peut afficher `(auto-updated)` une fois.

77* **Plan Team ou Enterprise** : le changement attend les paramètres de votre organisation ; il peut donc intervenir lors d'un démarrage ultérieur, ou ne jamais intervenir. Il s'applique à partir de la session suivante, sans ligne `(auto-updated)`. Pour vérifier votre modèle, exécutez `/model`.77* **Plan Team ou Enterprise** : le changement attend les paramètres de votre organisation ; il peut donc intervenir lors d'un démarrage ultérieur, ou ne jamais intervenir. Il s'applique à partir de la session suivante, sans ligne `(auto-updated)`. Pour vérifier votre modèle, exécutez `/model`.

78 78 

79Après le changement, les sessions démarrent au niveau d'effort par défaut de Fable 5.2, sauf si vous avez [défini un niveau](#adjust-effort-level) pour celui-ci. Les comptes Console, les fournisseurs tiers et les paramètres de projet, locaux ou gérés conservent `claude-fable-5-1`.79Après le changement, les sessions démarrent au niveau d'effort par défaut de Fable 5.2, sauf si vous avez [défini un niveau](#adjust-effort-level) pour celui-ci. Les comptes Console, les fournisseurs tiers et les paramètres de projet, locaux ou gérés conservent `claude-fable-5-1`.


97 97 

98Selon votre plan et votre niveau de siège, l'utilisation de Fable peut être facturée aux [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) au lieu de puiser dans les limites incluses de votre plan. Lorsque c'est le cas, le sélecteur `/model` affiche « Requires usage credits » sur la ligne Fable. Pour gérer les crédits d'utilisation, consultez [Ajouter des crédits d'utilisation à votre abonnement](https://code.claude.com/docs/fr/costs.md#add-usage-credits-to-your-subscription).98Selon votre plan et votre niveau de siège, l'utilisation de Fable peut être facturée aux [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) au lieu de puiser dans les limites incluses de votre plan. Lorsque c'est le cas, le sélecteur `/model` affiche « Requires usage credits » sur la ligne Fable. Pour gérer les crédits d'utilisation, consultez [Ajouter des crédits d'utilisation à votre abonnement](https://code.claude.com/docs/fr/costs.md#add-usage-credits-to-your-subscription).

99 99 

100Dans les sessions interactives, Claude Code peut afficher une invite de consentement aux crédits d'utilisation pour Fable. Les membres des plans Enterprise avec facturation organisationnelle ne voient pas l'invite. Vous pouvez continuer sur Fable en utilisant les crédits d'utilisation ou basculer vers votre modèle par défaut. Vous pouvez également ignorer l'invite :100Dans les sessions interactives, Claude Code peut afficher une invite de consentement aux crédits d'utilisation pour Fable. Vous pouvez continuer sur Fable en utilisant les crédits d'utilisation ou basculer vers votre modèle par défaut. Vous pouvez également ignorer l'invite :

101 101 

102* Lorsque vous sélectionnez un modèle Fable avec `/model`, vous conservez votre modèle actuel.102* Lorsque vous sélectionnez un modèle Fable avec `/model`, vous conservez votre modèle actuel.

103* En cours de session, Claude Code continue le tour sur votre modèle par défaut.103* En cours de session, Claude Code continue le tour sur votre modèle par défaut.

Details

146 146 

147### Contrôle de la cardinalité des métriques147### Contrôle de la cardinalité des métriques

148 148 

149Les variables d'environnement suivantes contrôlent les attributs inclus dans les métriques pour gérer la cardinalité :149Les variables d'environnement suivantes contrôlent les attributs inclus dans les métriques et les événements pour gérer la cardinalité :

150 150 

151| Variable d'environnement | Description | Valeur par défaut | Exemple pour désactiver |151| Variable d'environnement | Description | Valeur par défaut | Exemple pour désactiver |

152| - | - | - | - |152| - | - | - | - |

153| `OTEL_METRICS_INCLUDE_SESSION_ID` | Inclure les attributs session.id et, sur les sessions cloud, ccr.session.id dans les métriques | `true` | `false` |153| `OTEL_METRICS_INCLUDE_SESSION_ID` | Inclure les attributs session.id et, sur les sessions cloud, ccr.session.id dans les métriques et les événements | `true` | `false` |

154| `OTEL_METRICS_INCLUDE_VERSION` | Inclure l'attribut app.version dans les métriques | `false` | `true` |154| `OTEL_METRICS_INCLUDE_VERSION` | Inclure l'attribut app.version dans les métriques et les événements | `false` | `true` |

155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Inclure les attributs user.account\_uuid et user.account\_id dans les métriques | `true` | `false` |155| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Inclure les attributs user.account\_uuid et user.account\_id dans les métriques et les événements | `true` | `false` |

156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Inclure l'attribut app.entrypoint dans les métriques | `false` | `true` |156| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Inclure l'attribut app.entrypoint dans les métriques et les événements | `false` | `true` |

157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Inclure les clés de `OTEL_RESOURCE_ATTRIBUTES` comme attributs sur les points de données de métriques | `true` | `false` |157| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Inclure les clés de `OTEL_RESOURCE_ATTRIBUTES` comme attributs sur les points de données de métriques et les événements | `true` | `false` |

158| `OTEL_METRICS_INCLUDE_REPOSITORY` | Inclure les [attributs d'identité de référentiel](#repository-attributes) `vcs.*` sur les métriques et événements. Nécessite Claude Code v2.1.269 ou ultérieur | `false` | `true` |158| `OTEL_METRICS_INCLUDE_REPOSITORY` | Inclure les [attributs d'identité de référentiel](#repository-attributes) `vcs.*` sur les métriques et événements. Nécessite Claude Code v2.1.269 ou ultérieur | `false` | `true` |

159 159 

160Une cardinalité plus basse signifie généralement de meilleures performances et des coûts de stockage plus bas, mais des données moins granulaires pour l'analyse.160Une cardinalité plus basse signifie généralement de meilleures performances et des coûts de stockage plus bas, mais des données moins granulaires pour l'analyse.


523export OTEL_METRICS_EXPORTER=otlp523export OTEL_METRICS_EXPORTER=otlp

524export OTEL_LOGS_EXPORTER=otlp524export OTEL_LOGS_EXPORTER=otlp

525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf525export OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/protobuf

526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318526export OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://metrics.example.com:4318/v1/metrics

527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc527export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=grpc

528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317528export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317

529```529```


571 571 

572Pour attribuer la télémétrie plus en détail, utilisez ces options :572Pour attribuer la télémétrie plus en détail, utilisez ces options :

573 573 

574* **Identifier les sessions Claude Tag** : définissez `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, comme décrit sous [Contrôle de la cardinalité des métriques](#metrics-cardinality-control). Les métriques portent alors `app.entrypoint`, dont la valeur est `claude-in-slack` pour les sessions Claude Tag.574* **Identifier les sessions Claude Tag** : définissez `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, comme décrit sous [Contrôle de la cardinalité des métriques](#metrics-cardinality-control). Les métriques et les événements portent alors `app.entrypoint`, dont la valeur est `claude-in-slack` pour les sessions Claude Tag.

575* **Ajouter des attributs personnalisés** : définissez [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) au même endroit où vous définissez les autres variables `OTEL_*` pour ces sessions. Si vous l'`export` dans le [script de configuration](https://code.claude.com/docs/fr/cloud-environments.md#setup-scripts) de l'environnement à la place, la valeur n'atteint pas Claude Code : le script de configuration est un script Bash séparé qui s'exécute avant le lancement de Claude Code, et les variables qu'il exporte se terminent avec lui.575* **Ajouter des attributs personnalisés** : définissez [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) au même endroit où vous définissez les autres variables `OTEL_*` pour ces sessions. Si vous l'`export` dans le [script de configuration](https://code.claude.com/docs/fr/cloud-environments.md#setup-scripts) de l'environnement à la place, la valeur n'atteint pas Claude Code : le script de configuration est un script Bash séparé qui s'exécute avant le lancement de Claude Code, et les variables qu'il exporte se terminent avec lui.

576 576 

577Dans les sessions du canal Claude Tag, Claude fonctionne comme l'[identité partagée](https://code.claude.com/docs/fr/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses) de votre organisation plutôt que comme n'importe quel membre, donc ne vous fiez pas aux attributs `user.*` pour identifier qui a tagué Claude.577Dans les sessions du canal Claude Tag, Claude fonctionne comme l'[identité partagée](https://code.claude.com/docs/fr/cloud-environments.md#set-the-environment-a-claude-tag-channel-uses) de votre organisation plutôt que comme n'importe quel membre, donc ne vous fiez pas aux attributs `user.*` pour identifier qui a tagué Claude.


587| `session.id` | L'identifiant de session propre à Claude Code, que `/clear` remplace | `OTEL_METRICS_INCLUDE_SESSION_ID` (par défaut : true) |587| `session.id` | L'identifiant de session propre à Claude Code, que `/clear` remplace | `OTEL_METRICS_INCLUDE_SESSION_ID` (par défaut : true) |

588| `ccr.session.id` | Identifiant de la session cloud, c'est-à-dire la valeur de `CLAUDE_CODE_REMOTE_SESSION_ID`, pour les sessions qui s'exécutent dans un [environnement cloud](https://code.claude.com/docs/fr/cloud-environments.md) | `OTEL_METRICS_INCLUDE_SESSION_ID` (par défaut : true) |588| `ccr.session.id` | Identifiant de la session cloud, c'est-à-dire la valeur de `CLAUDE_CODE_REMOTE_SESSION_ID`, pour les sessions qui s'exécutent dans un [environnement cloud](https://code.claude.com/docs/fr/cloud-environments.md) | `OTEL_METRICS_INCLUDE_SESSION_ID` (par défaut : true) |

589| `app.version` | Version actuelle de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (par défaut : false) |589| `app.version` | Version actuelle de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (par défaut : false) |

590| `app.entrypoint` | Mode de lancement de la session, par exemple `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode` ou `claude-in-slack` pour les sessions Claude Tag | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (par défaut : false) |590| `app.entrypoint` | Mode de lancement de la session, tel que `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode`, `claude-desktop` pour les sessions de l'onglet Code de Claude Desktop hors du cloud, `claude-desktop-3p` pour ces mêmes sessions sur un [déploiement tiers](https://claude.com/docs/third-party/claude-desktop/overview), ou `claude-in-slack` pour les sessions Claude Tag. Les valeurs des sessions cloud incluent `remote`, ainsi que `remote_desktop` et `remote_mobile` pour les sessions que vous démarrez depuis Claude Desktop ou l'application mobile | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (par défaut : false) |

591| `organization.id` | UUID de l'organisation (si authentifié) | Toujours inclus lorsque disponible |591| `organization.id` | UUID de l'organisation (si authentifié) | Toujours inclus lorsque disponible |

592| `user.account_uuid` | UUID du compte (si authentifié) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |592| `user.account_uuid` | UUID du compte (si authentifié) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |

593| `user.account_id` | ID du compte au format balisé correspondant aux API d'administration d'Anthropic (si authentifié), par exemple `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |593| `user.account_id` | ID du compte au format balisé correspondant aux API d'administration d'Anthropic (si authentifié), par exemple `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |


643 643 

644| Nom de la métrique | Description | Unité |644| Nom de la métrique | Description | Unité |

645| - | - | - |645| - | - | - |

646| `claude_code.session.count` | Nombre de sessions CLI démarrées | aucune |646| `claude_code.session.count` | Nombre de sessions démarrées | aucune |

647| `claude_code.lines_of_code.count` | Nombre de lignes de code modifiées | aucune |647| `claude_code.lines_of_code.count` | Nombre de lignes de code modifiées | aucune |

648| `claude_code.pull_request.count` | Nombre de pull requests créées | aucune |648| `claude_code.pull_request.count` | Nombre de pull requests créées | aucune |

649| `claude_code.commit.count` | Nombre de commits git créés | aucune |649| `claude_code.commit.count` | Nombre de commits git créés | aucune |


660 660 

661#### Compteur de sessions661#### Compteur de sessions

662 662 

663Incrémenté au début de chaque session.663Incrémenté au début de chaque session. Pour compter des personnes plutôt que des sessions, consultez [Surveillance de l'utilisation](#usage-monitoring).

664 664 

665**Attributs** :665**Attributs** :

666 666 


1458 1458 

1459Comme tous les événements OTel de cette page, il est envoyé uniquement au backend de télémétrie que vous configurez. Nécessite Claude Code v2.1.227 ou version ultérieure.1459Comme tous les événements OTel de cette page, il est envoyé uniquement au backend de télémétrie que vous configurez. Nécessite Claude Code v2.1.227 ou version ultérieure.

1460 1460 

1461Lorsque Claude Code ne peut pas déterminer de manière sûre la période de rétention, il suspend le balayage et émet l'événement avec `result` défini sur `"skipped"` et un `skip_reason`. Lorsque des [paramètres gérés](https://code.claude.com/docs/fr/server-managed-settings.md) définissent `cleanupPeriodDays`, la valeur gérée fixe la période de rétention et le balayage s'exécute même lorsqu'un fichier de paramètres d'une portée de priorité inférieure est endommagé ou invalide. Lorsque `managed-settings.json` lui-même ne peut pas être lu, Claude Code suspend quand même le balayage, sauf si le [niveau géré](https://code.claude.com/docs/fr/managed-settings.md#how-claude-code-combines-managed-sources) fournit `cleanupPeriodDays` depuis une autre source, comme des paramètres gérés par le serveur ou un fichier déposé dans `managed-settings.d/` à côté du fichier endommagé. Les attributs de compteur de suppressions ne sont présents que lorsque `result` vaut `"complete"`.1461Lisez `result` pour savoir si le balayage a été exécuté :

1462 

1463* `"complete"` : le balayage a été exécuté, et l'événement contient ses compteurs

1464* `"skipped"` : Claude Code n'a pas pu déterminer la période de rétention en toute sécurité ; il a donc suspendu le balayage et l'événement ne contient aucun compteur. Si `skip_reason` vaut `"settings_unknowable"` ou `"settings_invalid_key_set"`, corrigez l'erreur de paramètres que `/status` signale sur cette machine afin qu'une session ultérieure puisse exécuter le balayage

1465 

1466Lorsque des [paramètres gérés](https://code.claude.com/docs/fr/server-managed-settings.md) définissent `cleanupPeriodDays`, la valeur gérée fixe la période de rétention et le balayage s'exécute même lorsqu'un fichier de paramètres d'une portée de priorité inférieure est défectueux ou invalide.

1462 1467 

1463**Nom de l'événement** : `claude_code.retention_sweep`1468**Nom de l'événement** : `claude_code.retention_sweep`

1464 1469 


1469* `event.timestamp` : horodatage ISO 86011474* `event.timestamp` : horodatage ISO 8601

1470* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation des événements](#event-correlation-attributes)1475* `event.sequence` : compteur par processus pour ordonner les événements, décrit sous [Attributs de corrélation des événements](#event-correlation-attributes)

1471* `result` : `"complete"` lorsque le balayage s'est exécuté, `"skipped"` lorsque Claude Code l'a suspendu1476* `result` : `"complete"` lorsque le balayage s'est exécuté, `"skipped"` lorsque Claude Code l'a suspendu

1472* `period_days` : la valeur de `cleanupPeriodDays` issue des paramètres fusionnés, en jours, ou `30` lorsqu'aucune source ne la définit. Sur les événements ignorés, il s'agit de la valeur que le balayage aurait utilisée, calculée à partir des sources de paramètres que Claude Code a pu lire1477* `period_days` : la période de rétention avec laquelle le balayage a démarré, en jours : `cleanupPeriodDays` issu des paramètres fusionnés, avec toute modification appliquée par un [hook `settings.read`](https://code.claude.com/docs/fr/plugins/mods/events#settings-read-hook). `30` lorsque la clé reste alors non définie. Sur les événements ignorés, la valeur que le balayage aurait utilisée, calculée à partir des sources de paramètres que Claude Code a pu lire

1473* `used_default` : `"true"` lorsqu'aucune source de paramètres lisible ne définit `cleanupPeriodDays`, `"false"` sinon. Sur les événements terminés, `"true"` signifie que la valeur par défaut de 30 jours s'est appliquée1478* `used_default` : `"true"` lorsque `period_days` s'est rabattu sur `30`, `"false"` sinon. Sur les événements terminés, `"true"` signifie que la valeur par défaut de 30 jours s'est appliquée

1474* `skip_reason` : la raison pour laquelle Claude Code a suspendu le balayage. Présent uniquement lorsque `result` vaut `"skipped"` :1479* `skip_reason` : la raison pour laquelle Claude Code a suspendu le balayage. Présent uniquement lorsque `result` vaut `"skipped"` :

1475 * `"user_source_disabled"` : les paramètres utilisateur sont exclus, par exemple par le flag [`--setting-sources`](https://code.claude.com/docs/fr/cli-reference#cli-flags) ou l'option [`settingSources`](https://code.claude.com/docs/fr/agent-sdk/typescript#options) du SDK, et aucune source activée ne fournit `cleanupPeriodDays`1480 * `"user_source_disabled"` : les paramètres utilisateur sont exclus, par exemple par le flag [`--setting-sources`](https://code.claude.com/docs/fr/cli-reference#cli-flags) ou l'option [`settingSources`](https://code.claude.com/docs/fr/agent-sdk/typescript#options) du SDK, et aucune source activée ne fournit `cleanupPeriodDays`

1476 * `"settings_unknowable"` : un fichier de paramètres n'a pas pu être lu ou analysé, de sorte que `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` peut être défini sur une valeur que Claude Code ne peut pas voir1481 * `"settings_unknowable"` : un fichier de paramètres n'a pas pu être lu ou analysé, de sorte que `cleanupPeriodDays` ou `desktopSessionCleanupPeriodDays` peut être défini sur une valeur que Claude Code ne peut pas voir


1549| Métrique | Opportunité d'analyse |1554| Métrique | Opportunité d'analyse |

1550| - | - |1555| - | - |

1551| `claude_code.token.usage` | Ventiler par [`type`](#token-counter) de token, utilisateur, équipe, modèle, `skill.name`, `plugin.name`, ou `agent.name` |1556| `claude_code.token.usage` | Ventiler par [`type`](#token-counter) de token, utilisateur, équipe, modèle, `skill.name`, `plugin.name`, ou `agent.name` |

1552| `claude_code.session.count` | Suivre l'adoption et l'engagement au fil du temps |

1553| `claude_code.lines_of_code.count` | Mesurer la productivité en suivant les ajouts et suppressions de code, ventilés par modèle |1557| `claude_code.lines_of_code.count` | Mesurer la productivité en suivant les ajouts et suppressions de code, ventilés par modèle |

1554| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendre l'impact sur les flux de travail de développement |1558| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendre l'impact sur les flux de travail de développement |

1555 1559 

1560Pour comparer les utilisateurs actifs entre les surfaces, définissez `OTEL_METRICS_INCLUDE_ENTRYPOINT=true` afin d'ajouter [`app.entrypoint`](#standard-attributes) aux métriques et aux événements. Comptez ensuite les valeurs distinctes de `user.account_uuid` par point d'entrée sur les événements [`claude_code.user_prompt`](#user-prompt-event), ou sur `claude_code.token.usage` si vous n'exportez que les métriques. Par exemple, utilisez `cli` pour les sessions CLI interactives, et regroupez `claude-desktop`, `claude-desktop-3p` et `remote_desktop` pour l'onglet Code de Claude Desktop.

1561 

1562`user.account_uuid` n'identifie pas les personnes dans les sessions de canal Claude Tag et est absent des sessions sans compte Claude : consultez [Attribuer les actions aux utilisateurs](#attribute-actions-to-users). Lorsqu'une même personne démarre de nombreuses sessions, ou qu'une session ne reçoit aucun prompt, [`claude_code.session.count`](#session-counter) augmente sans ajouter d'utilisateur actif.

1563 

1556### Surveillance des coûts1564### Surveillance des coûts

1557 1565 

1558La métrique `claude_code.cost.usage` aide à :1566La métrique `claude_code.cost.usage` aide à :


1783## Sécurité et confidentialité1791## Sécurité et confidentialité

1784 1792 

1785* L'export OpenTelemetry vers votre backend est opt-in et nécessite une configuration explicite. Pour la télémétrie opérationnelle distincte d'Anthropic et comment la désactiver, consultez [Utilisation des données](https://code.claude.com/docs/fr/data-usage.md#telemetry-services)1793* L'export OpenTelemetry vers votre backend est opt-in et nécessite une configuration explicite. Pour la télémétrie opérationnelle distincte d'Anthropic et comment la désactiver, consultez [Utilisation des données](https://code.claude.com/docs/fr/data-usage.md#telemetry-services)

1786* Les contenus de fichiers bruts et les extraits de code ne sont pas inclus dans les métriques ou les événements. Les intervalles de trace constituent un chemin de données distinct : voir la puce `OTEL_LOG_TOOL_CONTENT` ci-dessous1794* Par défaut, les contenus de fichiers bruts et les extraits de code ne sont pas inclus dans les métriques ou les événements. Si vous définissez une variable telle que `OTEL_LOG_TOOL_DETAILS` ou `OTEL_LOG_RAW_API_BODIES`, les événements peuvent les inclure. Les intervalles de trace constituent un chemin de données distinct : voir la puce `OTEL_LOG_TOOL_CONTENT` ci-dessous

1787* Lorsqu'authentifié via OAuth, `user.email` est inclus dans les attributs de télémétrie, envoyé uniquement au point de terminaison OTel que vous configurez, jamais à Anthropic. Si cela pose un problème pour votre organisation, travaillez avec votre backend de télémétrie pour filtrer ou masquer ce champ1795* Lorsqu'authentifié via OAuth, `user.email` est inclus dans les attributs de télémétrie, envoyé uniquement au point de terminaison OTel que vous configurez, jamais à Anthropic. Si cela pose un problème pour votre organisation, travaillez avec votre backend de télémétrie pour filtrer ou masquer ce champ

1788* Le contenu des prompts utilisateur n'est pas collecté par défaut. Seule la longueur du prompt est enregistrée. Pour inclure le contenu du prompt, définissez `OTEL_LOG_USER_PROMPTS=1`. Lorsque cette option est activée :1796* Le contenu des prompts utilisateur n'est pas collecté par défaut. Seule la longueur du prompt est enregistrée. Pour inclure le contenu du prompt, définissez `OTEL_LOG_USER_PROMPTS=1`. Lorsque cette option est activée :

1789 * Les événements `user_prompt` portent le texte du prompt dans deux attributs, `prompt` et [`prompt_text`](#user-prompt-event). Si vous supprimez ou masquez le texte du prompt de l'événement par nom d'attribut dans votre collecteur, nommez les deux attributs dans la règle1797 * Les événements `user_prompt` portent le texte du prompt dans deux attributs, `prompt` et [`prompt_text`](#user-prompt-event). Si vous supprimez ou masquez le texte du prompt de l'événement par nom d'attribut dans votre collecteur, nommez les deux attributs dans la règle

Details

686* **Si vous acceptez** : Claude Code définit `skipDangerousModePermissionPrompt` sur `true` dans `~/.claude/settings.json`, de sorte que les sessions ultérieures ignorent le dialogue. Pour voir le dialogue à nouveau, supprimez la clé de ce fichier ou définissez-la sur `false`. La [référence `skipDangerousModePermissionPrompt`](https://code.claude.com/docs/fr/settings-reference#skipdangerousmodepermissionprompt) énumère les autres fichiers de paramètres où vous ou votre organisation pouvez le définir.686* **Si vous acceptez** : Claude Code définit `skipDangerousModePermissionPrompt` sur `true` dans `~/.claude/settings.json`, de sorte que les sessions ultérieures ignorent le dialogue. Pour voir le dialogue à nouveau, supprimez la clé de ce fichier ou définissez-la sur `false`. La [référence `skipDangerousModePermissionPrompt`](https://code.claude.com/docs/fr/settings-reference#skipdangerousmodepermissionprompt) énumère les autres fichiers de paramètres où vous ou votre organisation pouvez le définir.

687* **Si vous refusez** : Claude Code quitte.687* **Si vous refusez** : Claude Code quitte.

688 688 

689Si vous passez [`--setting-sources`](https://code.claude.com/docs/fr/cli-reference#cli-flags) sans `user`, le dialogue peut réapparaître bien que vous l'ayez accepté précédemment. Pour l'ignorer, ajoutez `user`, comme dans `--setting-sources user,project`.

690 

689En [mode non interactif](https://code.claude.com/docs/fr/headless.md), aucun dialogue n'est affiché.691En [mode non interactif](https://code.claude.com/docs/fr/headless.md), aucun dialogue n'est affiché.

690 692 

691Une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) respecte votre acceptation lorsqu'elle est enregistrée dans les paramètres utilisateur ou les paramètres gérés :693Une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md) respecte votre acceptation lorsqu'elle est enregistrée dans les paramètres utilisateur ou les paramètres gérés :

permissions.md +5 −3

Details

578* `mcp__puppeteer__*` utilise la syntaxe des caractères génériques et correspond également à tous les outils du serveur `puppeteer`578* `mcp__puppeteer__*` utilise la syntaxe des caractères génériques et correspond également à tous les outils du serveur `puppeteer`

579* `mcp__puppeteer__puppeteer_navigate` correspond à l'outil `puppeteer_navigate` fourni par le serveur `puppeteer`579* `mcp__puppeteer__puppeteer_navigate` correspond à l'outil `puppeteer_navigate` fourni par le serveur `puppeteer`

580 580 

581Écrivez les règles allow pour les outils MCP sans [spécificateur](#use-specifiers-for-fine-grained-control), ce qu'une [mise à jour de permission](https://code.claude.com/docs/fr/hooks.md#permission-update-entries) appelle `ruleContent`. Si vous en ajoutez un pour n'autoriser que certains appels d'un outil, la règle ne correspond à aucun appel. Pour bloquer plutôt certains appels, consultez [Faire correspondre par paramètre d'entrée](#match-by-input-parameter).

582 

581Pour `<server>`, écrivez le nom du serveur tel qu'il apparaît dans les noms d'outils de ce serveur. Les exemples suivants montrent la règle à écrire pour un nom comportant des caractères spéciaux, pour un serveur provenant d'un plugin et pour un nom qui contient `__` ou se termine par `_` :583Pour `<server>`, écrivez le nom du serveur tel qu'il apparaît dans les noms d'outils de ce serveur. Les exemples suivants montrent la règle à écrire pour un nom comportant des caractères spéciaux, pour un serveur provenant d'un plugin et pour un nom qui contient `__` ou se termine par `_` :

582 584 

583* **Noms comportant des caractères comme `.` ou des espaces** : ces caractères deviennent `_` ; pour un serveur que vous avez configuré sous le nom `my.server`, écrivez donc `mcp__my_server__*`585* **Noms comportant des caractères comme `.` ou des espaces** : ces caractères deviennent `_` ; pour un serveur que vous avez configuré sous le nom `my.server`, écrivez donc `mcp__my_server__*`


632 634 

633Les décisions du hook PreToolUse ne contournent pas les règles d'autorisation. Claude Code évalue les règles de refus et de demande indépendamment de ce qu'un hook PreToolUse retourne : une règle de refus correspondante bloque l'appel, et une règle de demande correspondante demande toujours même lorsque le hook a retourné `"allow"` ou `"ask"`. Cela préserve la précédence de refus en premier décrite dans [Gérer les autorisations](#manage-permissions), y compris les règles de refus définies dans les paramètres gérés.635Les décisions du hook PreToolUse ne contournent pas les règles d'autorisation. Claude Code évalue les règles de refus et de demande indépendamment de ce qu'un hook PreToolUse retourne : une règle de refus correspondante bloque l'appel, et une règle de demande correspondante demande toujours même lorsque le hook a retourné `"allow"` ou `"ask"`. Cela préserve la précédence de refus en premier décrite dans [Gérer les autorisations](#manage-permissions), y compris les règles de refus définies dans les paramètres gérés.

634 636 

635Cette priorité couvre les hooks dans les fichiers de paramètres et dans le fichier `hooks/hooks.json` d'un plugin. Un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous installez et qui gère l'événement [`tool.check`](https://code.claude.com/docs/fr/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) donne sa réponse après l'exécution des hooks `PreToolUse`. Avec des [paramètres gérés](https://code.claude.com/docs/fr/settings.md#check-what-your-organization-enforces) sur la machine, ou une connexion [`/login`](https://code.claude.com/docs/fr/authentication#authentication-precedence) Team ou Enterprise comme identifiants de la session, ces résultats restent en place par défaut lorsque le mod approuve un appel :637Cette priorité couvre les hooks dans les fichiers de paramètres et dans le fichier `hooks/hooks.json` d'un plugin. Un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous installez et qui gère l'événement [`tool.check`](https://code.claude.com/docs/fr/plugins/mods/events#approve-or-refuse-a-tool-call-before-the-user-is-asked) donne sa réponse après l'exécution des hooks `PreToolUse`. Avec des [paramètres gérés](https://code.claude.com/docs/fr/settings.md#check-what-your-organization-enforces) ou un [fichier `managed-mcp.json`](https://code.claude.com/docs/fr/managed-mcp#deploy-managed-mcp-json), ou une connexion [`/login`](https://code.claude.com/docs/fr/authentication#authentication-precedence) Team ou Enterprise comme identifiants de la session, ces résultats restent en place par défaut lorsque le mod approuve un appel :

636 638 

637* Un appel qu'une règle de refus refuse reste refusé, et votre organisation peut modifier cela.639* Un appel qu'une règle de refus refuse reste refusé.

638* Un appel pour lequel une règle de demande vous solliciterait continue de vous solliciter.640* Un appel pour lequel une règle de demande vous solliciterait continue de vous solliciter.

639* Un appel pour lequel un hook `PreToolUse` ou [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/fr/settings-reference#permissions-blockreadsoutsideworkingdirectories) vous solliciterait continue de vous solliciter.641* Un appel pour lequel un hook `PreToolUse` ou [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/fr/settings-reference#permissions-blockreadsoutsideworkingdirectories) vous solliciterait continue de vous solliciter.

640* Un appel qu'un hook `PreToolUse` a bloqué reste bloqué, quel que soit le fichier de paramètres d'où provient le hook.642* Un appel qu'un hook `PreToolUse` a bloqué reste bloqué, quel que soit le fichier de paramètres d'où provient le hook.

641* Un appel au sujet duquel votre [`--permission-prompt-tool`](https://code.claude.com/docs/fr/cli-reference#cli-flags) ou le [callback `canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input#handle-tool-approval-requests) de l'Agent SDK serait interrogé est toujours soumis à cet outil ou à ce callback.643* Un appel au sujet duquel votre [`--permission-prompt-tool`](https://code.claude.com/docs/fr/cli-reference#cli-flags) ou le [callback `canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input#handle-tool-approval-requests) de l'Agent SDK serait interrogé est toujours soumis à cet outil ou à ce callback.

642 644 

643Sans paramètres gérés ni connexion `/login` Team ou Enterprise comme identifiants de la session, le mod peut approuver un appel qu'une règle de refus refuse ou qu'un hook `PreToolUse` a bloqué. Une session qui s'exécute plutôt avec une clé API ou un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/fr/authentication#generate-a-long-lived-token) de longue durée n'utilise pas cette connexion, même lorsque celle-ci est stockée.645Votre configuration peut ne comporter ni paramètres gérés, ni fichier `managed-mcp.json`, ni connexion `/login` Team ou Enterprise comme identifiants de la session. Dans cette configuration, le mod peut approuver un appel qu'une règle de refus refuse ou qu'un hook `PreToolUse` a bloqué. Une session qui s'exécute plutôt avec une clé API ou un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/fr/authentication#generate-a-long-lived-token) de longue durée n'utilise pas cette connexion, même lorsque celle-ci est stockée.

644 646 

645Dans cette configuration, vous n'êtes pas sollicité lorsque le mod approuve un appel pour lequel une règle de demande, un hook `PreToolUse` ou `permissions.blockReadsOutsideWorkingDirectories` vous solliciterait. Votre `--permission-prompt-tool` ou votre callback `canUseTool` n'est pas non plus interrogé au sujet d'un appel que le mod approuve. Le mode auto, le mode plan et le mode `dontAsk` ajoutent chacun un résultat qui leur est propre, quelle que soit la configuration :647Dans cette configuration, vous n'êtes pas sollicité lorsque le mod approuve un appel pour lequel une règle de demande, un hook `PreToolUse` ou `permissions.blockReadsOutsideWorkingDirectories` vous solliciterait. Votre `--permission-prompt-tool` ou votre callback `canUseTool` n'est pas non plus interrogé au sujet d'un appel que le mod approuve. Le mode auto, le mode plan et le mode `dontAsk` ajoutent chacun un résultat qui leur est propre, quelle que soit la configuration :

646 648 

Details

94* **stdin ou stdout n'est pas un TTY, et vous ne passez ni `-y` ni `--accept-command`** : l'installation est refusée. La sortie dit que la commande a été seulement affichée, et le code de sortie est `1`94* **stdin ou stdout n'est pas un TTY, et vous ne passez ni `-y` ni `--accept-command`** : l'installation est refusée. La sortie dit que la commande a été seulement affichée, et le code de sortie est `1`

95* **Claude exécute la commande via son outil Bash** : `-y` est ignoré. Exécutez la commande depuis votre propre terminal à la place95* **Claude exécute la commande via son outil Bash** : `-y` est ignoré. Exécutez la commande depuis votre propre terminal à la place

96 96 

97Installez un plugin pour tous ceux qui clonent le projet :97Pour partager un plugin avec tous ceux qui clonent le projet, exécutez `claude plugin install` avec `--scope project` et commitez `.claude/settings.json`. Demandez ensuite à chaque personne d'[ajouter la marketplace](https://code.claude.com/docs/fr/plugins/install.md#add-a-marketplace) et d'[exécuter la même commande](https://code.claude.com/docs/fr/plugins/loading.md#enabled-in-project-settings-but-not-installed) dans son propre clone :

98 98 

99```bash theme={null}99```bash theme={null}

100claude plugin install formatter@my-marketplace --scope project100claude plugin install formatter@my-marketplace --scope project


333| `notes` | array of strings | Avertissements qui ne sont pas des erreurs de chargement, comme des problèmes de création ou des [packages qui ne sont pas installés](https://code.claude.com/docs/fr/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |333| `notes` | array of strings | Avertissements qui ne sont pas des erreurs de chargement, comme des problèmes de création ou des [packages qui ne sont pas installés](https://code.claude.com/docs/fr/plugins/loading.md#when-the-dependency-install-fails-or-is-skipped) |

334| `errorDetails` | array of objects | Un objet par entrée `errors`, donnant son `type` de diagnostic et les noms auxquels il se réfère, comme le plugin, la marketplace, le serveur, ou le fichier. Nécessite Claude Code v2.1.268 ou ultérieur |334| `errorDetails` | array of objects | Un objet par entrée `errors`, donnant son `type` de diagnostic et les noms auxquels il se réfère, comme le plugin, la marketplace, le serveur, ou le fichier. Nécessite Claude Code v2.1.268 ou ultérieur |

335| `noteDetails` | array of objects | Les mêmes objets de détail pour chaque entrée `notes`. Nécessite Claude Code v2.1.268 ou ultérieur |335| `noteDetails` | array of objects | Les mêmes objets de détail pour chaque entrée `notes`. Nécessite Claude Code v2.1.268 ou ultérieur |

336| `hasUserConfig` | boolean | Présent et `true` quand le plugin s'est chargé et son manifeste déclare des options [`userConfig`](https://code.claude.com/docs/fr/plugins/manifest-reference#user-configuration). Absent pour un plugin qui n'a pas pu se charger, quel que soit ce que son manifeste déclare. Les valeurs sauvegardées ne sont jamais incluses. Nécessite Claude Code v2.1.285 ou ultérieur |336| `hasUserConfig` | boolean | Présent et `true` quand le plugin s'est chargé et son manifeste déclare des [options `userConfig`](https://code.claude.com/docs/fr/plugins/manifest-reference#user-configuration). Absent pour un plugin qui n'a pas pu se charger, quel que soit ce que son manifeste déclare. Nécessite Claude Code v2.1.285 ou ultérieur |

337| `projectEnabled` | boolean | Si le `.claude/settings.json` partagé du projet active le plugin. Installations de marketplace seulement. Nécessite Claude Code v2.1.285 ou ultérieur |337| `projectEnabled` | boolean | Si le `.claude/settings.json` partagé du projet active le plugin. Installations de marketplace seulement. Nécessite Claude Code v2.1.285 ou ultérieur |

338| `dataDirSize` | object | Avec `--data-size`, la taille du [répertoire de données sauvegardées](#what-an-uninstall-deletes-and-keeps) du plugin en tant que `bytes` et `human` ; absent quand le répertoire est manquant ou vide. Installations de marketplace seulement. Nécessite Claude Code v2.1.285 ou ultérieur |338| `dataDirSize` | object | Avec `--data-size`, la taille du [répertoire de données sauvegardées](#what-an-uninstall-deletes-and-keeps) du plugin en tant que `bytes` et `human` ; absent quand le répertoire est manquant ou vide. Installations de marketplace seulement. Nécessite Claude Code v2.1.285 ou ultérieur |

339| `dataDirUnreadable` | boolean | Avec `--data-size`, `true` quand le répertoire de données sauvegardées existe mais n'a pas pu être mesuré. Installations de marketplace seulement. Nécessite Claude Code v2.1.285 ou ultérieur |339| `dataDirUnreadable` | boolean | Avec `--data-size`, `true` quand le répertoire de données sauvegardées existe mais n'a pas pu être mesuré. Installations de marketplace seulement. Nécessite Claude Code v2.1.285 ou ultérieur |

Details

169 169 

170### Charger un plugin pour une session170### Charger un plugin pour une session

171 171 

172Vous pouvez charger un plugin pour une seule session de trois façons : à partir d'un répertoire ou d'une archive `.zip` sur le disque avec `--plugin-dir`, à partir d'une URL avec `--plugin-url`, ou à partir d'une variable d'environnement quand vous ne pouvez pas ajouter un drapeau. Chaque plugin se charge pour cette session uniquement, et rien n'est écrit dans vos paramètres pour celui-ci. Quand vous modifiez les fichiers du plugin pendant la session, exécutez `/reload-plugins` pour charger les modifications.172Vous pouvez charger un plugin pour une seule session de trois façons :

173 

174* À partir d'un répertoire ou d'une archive `.zip` sur le disque avec `--plugin-dir`

175* À partir d'une URL avec `--plugin-url`

176* À partir d'une variable d'environnement quand vous ne pouvez pas ajouter un flag

177 

178Quand vous modifiez les fichiers du plugin pendant la session, exécutez `/reload-plugins` pour charger les modifications.

173 179 

174#### Charger un plugin à partir d'un répertoire ou d'un `.zip`180#### Charger un plugin à partir d'un répertoire ou d'un `.zip`

175 181 

Details

123 123 

124Ces sources d'entrée n'ont pas besoin de compte git :124Ces sources d'entrée n'ont pas besoin de compte git :

125 125 

126* **`archive`** : un zip téléchargé sur HTTPS. Les utilisateurs n'ont besoin ni de `git` ni de compte, seulement d'accès réseau à l'URL. Nécessite Claude Code v2.1.224 ou ultérieur. Épinglez chaque archive avec `sha256` pour que Claude Code refuse un téléchargement modifié. Pour envoyer des identifiants avec le téléchargement, voir [Authentifier les téléchargements d'archive](#authenticate-archive-downloads).126* **`archive`** : un zip téléchargé sur HTTPS. Les utilisateurs n'ont besoin ni de `git` ni de compte, seulement d'accès réseau à l'URL. Épinglez chaque archive avec `sha256` pour que Claude Code refuse un téléchargement modifié. Pour envoyer des identifiants avec le téléchargement, voir [Authentifier les téléchargements d'archive](#authenticate-archive-downloads).

127* **Un dépôt git public** : Claude Code clone une source `url` ou `git-subdir` publique sur HTTPS sans identifiants quand l'entrée donne une URL `https://`. Pour une source `github`, ou une source `git-subdir` écrite comme `owner/repo`, dites aux utilisateurs sans clé SSH GitHub de définir `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.127* **Un dépôt git public** : Claude Code clone une source `url` ou `git-subdir` publique sur HTTPS sans identifiants quand l'entrée donne une URL `https://`. Pour une source `github`, ou une source `git-subdir` écrite comme `owner/repo`, dites aux utilisateurs sans clé SSH GitHub de définir `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.

128 128 

129Conservez `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` dans vos instructions même si `claude plugin install` réussit sans cette variable depuis le shell sur une machine sans clé SSH. Pour une source `github`, cette commande peut basculer d'elle-même sur HTTPS, en affichant `SSH not configured, cloning via HTTPS`. Les installations depuis `/plugin` au sein d'une session et les mises à jour de plugins ne basculent pas, donc sans la variable elles échouent pour les utilisateurs qui n'ont pas de clé SSH GitHub.129Conservez `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` dans vos instructions même si `claude plugin install` réussit sans cette variable depuis le shell sur une machine sans clé SSH. Pour une source `github`, cette commande peut basculer d'elle-même sur HTTPS, en affichant `SSH not configured, cloning via HTTPS`. Les installations depuis `/plugin` au sein d'une session et les mises à jour de plugins ne basculent pas, donc sans la variable elles échouent pour les utilisateurs qui n'ont pas de clé SSH GitHub.

Details

132La portée d'installation d'un plugin détermine qui dispose du plugin et quel fichier de paramètres l'enregistre comme activé :132La portée d'installation d'un plugin détermine qui dispose du plugin et quel fichier de paramètres l'enregistre comme activé :

133 133 

134* **Portée utilisateur** : le plugin est activé pour vous dans tous les projets de cette machine. L'entrée est ajoutée à `enabledPlugins` dans `~/.claude/settings.json`.134* **Portée utilisateur** : le plugin est activé pour vous dans tous les projets de cette machine. L'entrée est ajoutée à `enabledPlugins` dans `~/.claude/settings.json`.

135* **Portée projet** : le plugin est activé pour toutes les personnes qui travaillent dans ce dépôt. L'entrée est ajoutée à `.claude/settings.json`, que vous commitez. Commiter cette entrée active le plugin pour vos collaborateurs mais ne le télécharge pas sur leurs machines, chaque collaborateur exécute donc également une fois `claude plugin install <name>@<marketplace> --scope project` ; consultez [Activé dans les paramètres du projet mais non installé](https://code.claude.com/docs/fr/plugins/loading.md#enabled-in-project-settings-but-not-installed).135* **Portée projet** : le plugin est activé pour toutes les personnes qui travaillent dans ce dépôt. L'entrée est ajoutée à `.claude/settings.json`, que vous commitez. Commiter cette entrée active le plugin pour vos collaborateurs mais ne le télécharge pas sur leurs machines. Chaque collaborateur exécute également `claude plugin install <name>@<marketplace> --scope project` une fois par clone ; consultez [Activé dans les paramètres du projet mais non installé](https://code.claude.com/docs/fr/plugins/loading.md#enabled-in-project-settings-but-not-installed).

136* **Portée locale** : le plugin est activé pour vous uniquement dans ce dépôt. L'entrée est ajoutée à `.claude/settings.local.json`.136* **Portée locale** : le plugin est activé pour vous uniquement dans ce dépôt. L'entrée est ajoutée à `.claude/settings.local.json`.

137 137 

138Certains plugins sont configurés par leur auteur pour démarrer désactivés, via le champ [`defaultEnabled`](https://code.claude.com/docs/fr/plugins/manifest-reference#defaultenabled). Un tel plugin est installé mais reste désactivé jusqu'à ce que vous l'activiez avec `claude plugin enable <name>` dans votre shell, ou depuis l'onglet **Installed** de `/plugin` dans une session.138Certains plugins sont configurés par leur auteur pour démarrer désactivés, via le champ [`defaultEnabled`](https://code.claude.com/docs/fr/plugins/manifest-reference#defaultenabled). Un tel plugin est installé mais reste désactivé jusqu'à ce que vous l'activiez avec `claude plugin enable <name>` dans votre shell, ou depuis l'onglet **Installed** de `/plugin` dans une session.

Details

173 173 

174Pour refuser un plugin activé par le projet sur votre machine, définissez l'id à `false` dans `.claude/settings.local.json`, qui a une plus haute précédence que le fichier de projet.174Pour refuser un plugin activé par le projet sur votre machine, définissez l'id à `false` dans `.claude/settings.local.json`, qui a une plus haute précédence que le fichier de projet.

175 175 

176### Activé dans un répertoire `--add-dir` mais non chargé

177 

178Claude Code lit une entrée `enabledPlugins` à `true` dans l'un des fichiers du répertoire ajouté uniquement lorsque les sources de paramètres de ce fichier sont activées :

179 

180* **`.claude/settings.json`** : `project`

181* **`.claude/settings.local.json`** : `project` et `local`

182 

183Vérifiez quelles sources de paramètres la session charge. Vous les définissez avec [`--setting-sources`](https://code.claude.com/docs/fr/cli-reference#cli-flags). Dans la CLI, `user`, `project` et `local` sont tous activés par défaut.

184 

185Par exemple, si vous exécutez `claude --setting-sources user --add-dir ./shared` dans votre shell, Claude Code ne lit aucun des deux fichiers de `./shared`. Passez le flag correspondant au fichier qui contient le `true` :

186 

187* **`settings.json`** : `--setting-sources user,project`

188* **`settings.local.json`** : `--setting-sources user,project,local`

189 

176### Activé dans les paramètres de projet mais non installé190### Activé dans les paramètres de projet mais non installé

177 191 

178Quand le seul `true` d'un plugin est dans le `.claude/settings.json` du projet, Claude Code ne le récupère pas sur une machine où il n'est pas installé, sauf si son entrée de marché a une [source de chemin relatif](https://code.claude.com/docs/fr/plugins/marketplace-reference.md#plugin-sources) ou un [répertoire de semence](https://code.claude.com/docs/fr/plugins/org.md#seed-containers-and-ci) le contient déjà. À la place, l'onglet **Errors** de `/plugin` affiche `Plugin "<name>" is enabled in project settings but isn't installed here`.192Par défaut, un plugin activé uniquement dans le `.claude/settings.json` de votre projet ne se charge pas au démarrage de la session tant que vous ne l'avez pas installé sur votre machine. Si la marketplace est présente sur votre machine, l'onglet **Errors** de `/plugin` affiche [`Plugin "<name>" is enabled in project settings but isn't installed here`](https://code.claude.com/docs/fr/plugins/troubleshooting#plugin-is-enabled-in-project-settings-but-isnt-installed-here) ou [`Plugin "<name>" not cached at <path>`](https://code.claude.com/docs/fr/plugins/troubleshooting#plugin-not-cached-at).

193 

194> [!NOTE]

195>

196> Si l'onglet n'affiche aucun de ces messages, [ajoutez la marketplace](https://code.claude.com/docs/fr/plugins/install.md#add-a-marketplace) avant d'installer. Trouvez sa source dans le paramètre `extraKnownMarketplaces` de `.claude/settings.json`, ou demandez à votre mainteneur.

197 

198Pour installer, exécutez cette commande dans un shell depuis le projet, en utilisant la clé du plugin dans `enabledPlugins` :

199 

200```shell theme={null}

201claude plugin install <name>@<marketplace> --scope project

202```

203 

204Pour charger le plugin, exécutez `/reload-plugins` dans votre session ou démarrez une nouvelle session. Répétez l'installation dans chacun de vos clones, ou utilisez `--scope user` pour couvrir tous vos projets.

205 

206Vous pouvez charger un plugin sans installation dans les cas suivants :

179 207 

180Un plugin de chemin relatif n'a besoin d'aucun enregistrement d'installation car il se charge à partir du marché lui-même.208* **Dans un [répertoire seed](https://code.claude.com/docs/fr/plugins/org.md#seed-containers-and-ci)** : vous n'avez rien à exécuter

209* **Référencé par un [chemin relatif](https://code.claude.com/docs/fr/plugins/marketplace-reference.md#plugin-sources) dans une marketplace que vous avez ajoutée depuis un chemin local** : vous n'avez rien à exécuter, car le plugin se charge au démarrage de la session

210* **Référencé par un chemin relatif, comme `./plugins/formatter`, dans le `marketplace.json` d'une marketplace git que vous avez ajoutée** : exécutez `/reload-plugins` pour le charger pour la session en cours uniquement. Pour le charger lors d'une [exécution non interactive `-p`](https://code.claude.com/docs/fr/headless), définissez [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL=1`](https://code.claude.com/docs/fr/env-vars).

181 211 

182Claude Code récupère un plugin avec une source externe uniquement quand l'une de ces sources le définit à `true` :212Claude Code récupère un plugin avec une source externe uniquement quand l'une de ces sources le définit à `true` :

183 213 

Details

189 189 

190### `metadata`190### `metadata`

191 191 

192Un objet de forme libre pour vos propres données, comme des champs de catalogue ou de droit. Claude Code ne le lit pas. Nécessite Claude Code v2.1.222 ou ultérieur.192Un objet de forme libre pour vos propres données, comme des champs de catalogue ou de droit. Claude Code ne le lit pas.

193 193 

194### Champs de la fiche d'annuaire194### Champs de la fiche d'annuaire

195 195 


394 394 

395Chaque chemin de composant dans un manifeste est relatif à la racine du plugin et doit commencer par `./`. Un chemin comme `commands/foo.md` échoue la validation. `skills` et `mcpServers` acceptent chacun une forme en dehors de cette règle :395Chaque chemin de composant dans un manifeste est relatif à la racine du plugin et doit commencer par `./`. Un chemin comme `commands/foo.md` échoue la validation. `skills` et `mcpServers` acceptent chacun une forme en dehors de cette règle :

396 396 

397* **`skills`** : accepte également `"."`. À la fois `"."` et `"./"` désignent la racine du plugin. Avant v2.1.221, `"."` échouait la validation du manifeste, donc utilisez `"./"` lorsque le plugin doit se charger sur les versions antérieures397* **`skills`** : accepte également `"."`. À la fois `"."` et `"./"` désignent la racine du plugin

398* **`mcpServers`** : accepte également une URL de bundle `https://`398* **`mcpServers`** : accepte également une URL de bundle `https://`

399 399 

400`experimental.evals` n'est pas un chemin de composant, donc les règles de cette section ne le couvrent pas, et `claude plugin eval` vérifie plutôt la valeur au moment de son exécution. Elle désigne un répertoire sous la racine du plugin, comme `"quality/evals"`, avec ou sans le préfixe `./`. Avec un tableau, seule la première entrée est utilisée. Pour savoir ce que la valeur accepte et ce qui se passe avec une valeur inutilisable, consultez [Utiliser un répertoire d'eval différent](https://code.claude.com/docs/fr/plugin-evals.md#use-a-different-eval-directory).400`experimental.evals` n'est pas un chemin de composant, donc les règles de cette section ne le couvrent pas, et `claude plugin eval` vérifie plutôt la valeur au moment de son exécution. Elle désigne un répertoire sous la racine du plugin, comme `"quality/evals"`, avec ou sans le préfixe `./`. Avec un tableau, seule la première entrée est utilisée. Pour savoir ce que la valeur accepte et ce qui se passe avec une valeur inutilisable, consultez [Utiliser un répertoire d'eval différent](https://code.claude.com/docs/fr/plugin-evals.md#use-a-different-eval-directory).


403 403 

404Chaque chemin de composant doit se résoudre à l'intérieur de la racine du plugin et doit exister. `claude plugin validate` vérifie les chemins sous chaque clé de composant :404Chaque chemin de composant doit se résoudre à l'intérieur de la racine du plugin et doit exister. `claude plugin validate` vérifie les chemins sous chaque clé de composant :

405 405 

406* **Confinement** : un chemin qui se résout en dehors de la racine du plugin ne se charge pas, et l'onglet **Errors** `/plugin` affiche `<component> path escapes plugin directory: <path>`. Un chemin contenant `..` est le cas habituel, et `claude plugin validate` signale l'erreur `Path contains ".." which could be a path traversal attempt`406* **Confinement** : un chemin qui se résout en dehors de la racine du plugin ne se charge pas, et l'onglet **Errors** `/plugin` affiche `<component> path escapes plugin directory: <path>`. Un chemin contenant `..` est le cas habituel, et `claude plugin validate` signale l'erreur `Path contains ".." which could be a path traversal attempt`. Pour un fichier `mcpServers` ou `lspServers`, un message [`path not read`](https://code.claude.com/docs/fr/errors#server-file-path-not-read) signifie que le chemin est absolu ou contient `..`

407* **Existence** : un chemin qui n'existe pas ne se charge pas, et l'onglet **Errors** `/plugin` affiche `<component> path not found: <path>`. `claude plugin validate` signale l'erreur `Path not found`407* **Existence** : un chemin qui n'existe pas ne se charge pas, et l'onglet **Errors** `/plugin` affiche `<component> path not found: <path>`. `claude plugin validate` signale l'erreur `Path not found`

408 408 

409Pour les chemins `outputStyles`, `lspServers`, `monitors`, et `themes`, la vérification `claude plugin validate` nécessite Claude Code v2.1.283 ou ultérieur.409Pour les chemins `outputStyles`, `lspServers`, `monitors`, et `themes`, la vérification `claude plugin validate` nécessite Claude Code v2.1.283 ou ultérieur.

Details

94| `dependencies` | array | Plugins qui doivent être activés pour que celui-ci fonctionne. Chaque élément est `"name"`, `"name@marketplace"` ou un objet. Consultez [Dépendances de plugin](https://code.claude.com/docs/fr/plugins/dependencies.md) |94| `dependencies` | array | Plugins qui doivent être activés pour que celui-ci fonctionne. Chaque élément est `"name"`, `"name@marketplace"` ou un objet. Consultez [Dépendances de plugin](https://code.claude.com/docs/fr/plugins/dependencies.md) |

95| `defaultEnabled` | boolean | Par défaut `true`. Si le plugin démarre activé quand l'utilisateur ne l'a pas défini dans [`enabledPlugins`](https://code.claude.com/docs/fr/settings-reference#enabledplugins). La valeur de l'entrée a la priorité sur `plugin.json` |95| `defaultEnabled` | boolean | Par défaut `true`. Si le plugin démarre activé quand l'utilisateur ne l'a pas défini dans [`enabledPlugins`](https://code.claude.com/docs/fr/settings-reference#enabledplugins). La valeur de l'entrée a la priorité sur `plugin.json` |

96| `displayName` | string | Nom lisible affiché dans l'interface utilisateur. Quand ni l'entrée ni le `plugin.json` du plugin n'en définit un, les utilisateurs voient le `name` du plugin |96| `displayName` | string | Nom lisible affiché dans l'interface utilisateur. Quand ni l'entrée ni le `plugin.json` du plugin n'en définit un, les utilisateurs voient le `name` du plugin |

97| `metadata` | object | Objet libre pour vos propres champs. Claude Code ne le lit pas. Nécessite Claude Code v2.1.222 ou ultérieur |97| `metadata` | object | Objet libre pour vos propres champs. Claude Code ne le lit pas |

98| `headers` | object | En-têtes HTTP que Claude Code envoie quand il télécharge l'[archive](#archive-plugin-source) de cette entrée. Un en-tête défini ici remplace un en-tête du même nom provenant des [`headers`](#fields-by-type) de la source de la marketplace. Nécessite Claude Code v2.1.238 ou ultérieur |98| `headers` | object | En-têtes HTTP que Claude Code envoie quand il télécharge l'[archive](#archive-plugin-source) de cette entrée. Un en-tête défini ici remplace un en-tête du même nom provenant des [`headers`](#fields-by-type) de la source de la marketplace. Nécessite Claude Code v2.1.238 ou ultérieur |

99| `headersHelper` | string | Commande qui imprime les en-têtes de téléchargement d'archive de cette entrée sous la forme d'un objet JSON, pour des identifiants qui expirent. L'entrée doit également définir [`"strict": false`](#strict-mode). Nécessite Claude Code v2.1.238 ou ultérieur. Consultez [Authentifier les téléchargements d'archive](https://code.claude.com/docs/fr/plugins/host-marketplace.md#authenticate-archive-downloads) |99| `headersHelper` | string | Commande qui imprime les en-têtes de téléchargement d'archive de cette entrée sous la forme d'un objet JSON, pour des identifiants qui expirent. L'entrée doit également définir [`"strict": false`](#strict-mode). Nécessite Claude Code v2.1.238 ou ultérieur. Consultez [Authentifier les téléchargements d'archive](https://code.claude.com/docs/fr/plugins/host-marketplace.md#authenticate-archive-downloads) |

100 100 


142| `url` | `url`, `ref`, `sha` | Tout référentiel git par URL |142| `url` | `url`, `ref`, `sha` | Tout référentiel git par URL |

143| `git-subdir` | `url`, `path`, `ref`, `sha` | Un sous-répertoire d'un dépôt git, récupéré avec un sparse checkout |143| `git-subdir` | `url`, `path`, `ref`, `sha` | Un sous-répertoire d'un dépôt git, récupéré avec un sparse checkout |

144| `npm` | `package`, `version`, `registry` | Package du registre npm ou lien vers un tarball, récupéré avec votre client npm et décompressé sans exécuter les scripts d'installation |144| `npm` | `package`, `version`, `registry` | Package du registre npm ou lien vers un tarball, récupéré avec votre client npm et décompressé sans exécuter les scripts d'installation |

145| `archive` | `url`, `sha256` | Archive Zip sur HTTPS. Nécessite Claude Code v2.1.224 ou ultérieure |145| `archive` | `url`, `sha256` | Archive Zip sur HTTPS |

146| `command` | `command`, `timeout`, `mode` | Répertoire imprimé par une commande que Claude Code exécute sur la machine de l'utilisateur. Nécessite Claude Code v2.1.229 ou ultérieure |146| `command` | `command`, `timeout`, `mode` | Répertoire imprimé par une commande que Claude Code exécute sur la machine de l'utilisateur. Nécessite Claude Code v2.1.229 ou ultérieure |

147 147 

148Les noms `url` et `github` sont également des types de [source marketplace](#marketplace-sources), où `url` signifie un lien direct vers un fichier `marketplace.json` plutôt qu'un référentiel git. `git` n'existe que comme source marketplace, et `npm` existe comme les deux. `git-subdir`, `archive` et `command` n'existent que comme sources de plugin.148Les noms `url` et `github` sont également des types de [source marketplace](#marketplace-sources), où `url` signifie un lien direct vers un fichier `marketplace.json` plutôt qu'un référentiel git. `git` n'existe que comme source marketplace, et `npm` existe comme les deux. `git-subdir`, `archive` et `command` n'existent que comme sources de plugin.

Details

57* **Les mods sont activés.** Un utilisateur peut installer un plugin qui contient un mod à partir de n'importe quelle place de marché que vos paramètres de plugin autorisent, ou en charger un à partir d'un répertoire avec `--plugin-dir`.57* **Les mods sont activés.** Un utilisateur peut installer un plugin qui contient un mod à partir de n'importe quelle place de marché que vos paramètres de plugin autorisent, ou en charger un à partir d'un répertoire avec `--plugin-dir`.

58* **Un garde-fou intégré s'exécute en premier.** Claude Code charge un mod intégré nommé `sec-default@builtin` avant chaque mod qu'un utilisateur installe. Les utilisateurs ne peuvent pas le désactiver. `/plugin` et le log de débogage le listent comme `cc-plugin-sec-default`. Le garde-fou se charge quand l'une de ces conditions est vraie :58* **Un garde-fou intégré s'exécute en premier.** Claude Code charge un mod intégré nommé `sec-default@builtin` avant chaque mod qu'un utilisateur installe. Les utilisateurs ne peuvent pas le désactiver. `/plugin` et le log de débogage le listent comme `cc-plugin-sec-default`. Le garde-fou se charge quand l'une de ces conditions est vraie :

59 59 

60 * La machine a des paramètres gérés60 * La machine a des paramètres gérés ou un fichier [`managed-mcp.json`](https://code.claude.com/docs/fr/managed-mcp#deploy-managed-mcp-json)

61 * La session s'exécute avec des [identifiants `/login`](https://code.claude.com/docs/fr/authentication#authentication-precedence) pour un plan Team ou Enterprise61 * La session s'exécute avec des [identifiants `/login`](https://code.claude.com/docs/fr/authentication#authentication-precedence) pour un plan Team ou Enterprise

62 62 

63 Un utilisateur qui s'authentifie avec une clé API, ou via Amazon Bedrock, la plateforme Agent de Google Cloud, ou Microsoft Foundry, n'obtient le garde-fou que sur une machine qui a des paramètres gérés. Une session qui s'exécute avec un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/fr/authentication#generate-a-long-lived-token) de longue durée ne compte pas non plus comme cette connexion, même lorsqu'une connexion Team ou Enterprise est enregistrée sur la machine.63 Un utilisateur qui s'authentifie avec une clé API, ou via Amazon Bedrock, la plateforme Agent de Google Cloud, ou Microsoft Foundry, n'obtient le garde-fou que sur une machine qui a des paramètres gérés ou `managed-mcp.json`. Une session qui s'exécute avec un [`CLAUDE_CODE_OAUTH_TOKEN`](https://code.claude.com/docs/fr/authentication#generate-a-long-lived-token) de longue durée ne compte pas non plus comme cette connexion, même lorsqu'une connexion Team ou Enterprise est enregistrée sur la machine.

64* **La garde protège ce que vous gérez.** Le mod d'un utilisateur ne peut pas changer ce que vos hooks gérés reçoivent ou décident, l'invite système, votre `CLAUDE.md` géré et autres instructions gérées, ce que n'importe quel mod lit comme paramètres, ou les outils et descriptions de vos serveurs MCP gérés.64* **La garde protège ce que vous gérez.** Le mod d'un utilisateur ne peut pas changer ce que vos hooks gérés reçoivent ou décident, l'invite système, votre `CLAUDE.md` géré et autres instructions gérées, ce que n'importe quel mod lit comme paramètres, ou les outils et descriptions de vos serveurs MCP gérés.

65* **En dehors de ce que vous gérez, le mod d'un utilisateur agit en tant que cet utilisateur.** Le mod conserve les permissions de cet utilisateur : il peut toujours lire et écrire des fichiers, démarrer des processus et effectuer des requêtes réseau. Il peut aussi réécrire les appels d'outils et les prompts, refuser un appel d'outil et dessiner dans l'interface.65* **En dehors de ce que vous gérez, le mod d'un utilisateur agit en tant que cet utilisateur.** Le mod conserve les permissions de cet utilisateur : il peut toujours lire et écrire des fichiers, démarrer des processus et effectuer des requêtes réseau. Il peut aussi réécrire les appels d'outils et les prompts, refuser un appel d'outil et dessiner dans l'interface.

66* **Les règles de permission et les hooks `PreToolUse` ont priorité sur le mod d'un utilisateur.** Avec le garde-fou chargé, par défaut le mod d'un utilisateur ne peut pas approuver un appel qu'une règle `deny` refuse ou pour lequel une règle `ask` déclenche une demande, quel que soit le fichier de paramètres qui contient la règle. Le mod ne peut pas non plus approuver un appel qu'un hook `PreToolUse` a bloqué.66* **Les règles de permission et les hooks `PreToolUse` ont priorité sur le mod d'un utilisateur.** Avec le garde-fou chargé, par défaut le mod d'un utilisateur ne peut pas approuver un appel qu'une règle `deny` refuse ou pour lequel une règle `ask` déclenche une demande, quel que soit le fichier de paramètres qui contient la règle. Le mod ne peut pas non plus approuver un appel qu'un hook `PreToolUse` a bloqué.


76 76 

77* **Les hooks de paramètres continuent de fonctionner.** Les hooks de commande, HTTP, de prompt et d'agent dans les fichiers de paramètres et dans le `hooks/hooks.json` des plugins s'exécutent comme avant, aux côtés des mods.77* **Les hooks de paramètres continuent de fonctionner.** Les hooks de commande, HTTP, de prompt et d'agent dans les fichiers de paramètres et dans le `hooks/hooks.json` des plugins s'exécutent comme avant, aux côtés des mods.

78* **Les règles de refus ont la priorité là où la garde se charge.** Le mod d'un utilisateur ne peut pas approuver un appel qu'une règle `deny` refuse, sauf si vous définissez [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).78* **Les règles de refus ont la priorité là où la garde se charge.** Le mod d'un utilisateur ne peut pas approuver un appel qu'une règle `deny` refuse, sauf si vous définissez [`allowModsToOverrideDenyRules`](#set-options-on-the-built-in-guard).

79* **Les hooks gérés s'exécutent en premier.** Un hook `PreToolUse` dans les paramètres gérés s'exécute avant le hook [`tool.call`](https://code.claude.com/docs/fr/plugins/mods/reference#tools) de n'importe quel mod, et lorsque ce hook géré bloque un appel d'outil, aucun hook `tool.call` de mod ne s'exécute pour cet appel. Si l'appel se poursuit et qu'un mod le réécrit, vos hooks gérés s'exécutent à nouveau sur l'appel réécrit, ils peuvent donc toujours le bloquer.79* **Les hooks gérés s'exécutent en premier.** Un hook `PreToolUse` dans les paramètres gérés s'exécute avant le hook [`tool.call`](https://code.claude.com/docs/fr/plugins/mods/reference#tools) de n'importe quel mod, et lorsque ce hook géré bloque un appel d'outil, aucun hook `tool.call` de mod ne s'exécute pour cet appel. Si l'appel se poursuit et qu'un mod le réécrit, vos hooks gérés s'exécutent à nouveau sur l'appel réécrit, ils peuvent donc, par défaut, toujours le bloquer.

80 80 

81 Les hooks `PreToolUse` d'autres fichiers de paramètres et de plugins s'exécutent après le dernier mod. Si un mod répond lui-même à l'appel d'outil, l'outil ne s'exécute jamais, pas plus que ces hooks. Voir [L'ordre dans lequel les mods s'exécutent](https://code.claude.com/docs/fr/plugins/mods/events.md#the-order-mods-run-in).81 Les hooks `PreToolUse` d'autres fichiers de paramètres et de plugins s'exécutent après le dernier mod. Si un mod répond lui-même à l'appel d'outil, l'outil ne s'exécute jamais, pas plus que ces hooks. Voir [L'ordre dans lequel les mods s'exécutent](https://code.claude.com/docs/fr/plugins/mods/events.md#the-order-mods-run-in).

82* **La politique réseau couvre `$.http.fetch`.**82* **La politique réseau couvre `$.http.fetch`.**


260| Option | Non définie | `true` |260| Option | Non définie | `true` |

261| :- | :- | :- |261| :- | :- | :- |

262| `allowManagedModsOnly` | Les mods propres des utilisateurs s'exécutent | Seuls [les mods de votre organisation](#install-your-organizations-mods), et les mods intégrés à Claude Code, exécutent leurs hooks. Claude Code refuse tous les autres mods, y compris un que l'utilisateur a installé ou nommé avec `--plugin-dir`. |262| `allowManagedModsOnly` | Les mods propres des utilisateurs s'exécutent | Seuls [les mods de votre organisation](#install-your-organizations-mods), et les mods intégrés à Claude Code, exécutent leurs hooks. Claude Code refuse tous les autres mods, y compris un que l'utilisateur a installé ou nommé avec `--plugin-dir`. |

263| `allowModsToOverrideDenyRules` | Les règles de refus ont la priorité sur les mods des utilisateurs | Le mod d'un utilisateur qui approuve les appels d'outils peut approuver un appel qu'une règle `deny` refuse |263| `allowModsToOverrideDenyRules` | Les règles de refus ont la priorité sur les mods des utilisateurs | Le mod d'un utilisateur qui approuve les appels d'outils peut approuver un appel 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` |

264 264 

265Ces règles décident si une option prend effet :265Ces règles décident si une option prend effet :

266 266 


350 350 

351* **La liste remplace la valeur par défaut** : quand vous définissez `prependPlugins` dans les paramètres gérés, indiquez-y `sec-default@builtin` pour conserver le garde-fou intégré. Le garde-fou est intégré et n'a besoin d'aucune entrée `enabledPlugins`.351* **La liste remplace la valeur par défaut** : quand vous définissez `prependPlugins` dans les paramètres gérés, indiquez-y `sec-default@builtin` pour conserver le garde-fou intégré. Le garde-fou est intégré et n'a besoin d'aucune entrée `enabledPlugins`.

352* **Vos propres ids doivent compter comme les vôtres** : dans les paramètres gérés, Claude Code ignore un id dont le plugin ne remplit pas les conditions d'un mod d'organisation352* **Vos propres ids doivent compter comme les vôtres** : dans les paramètres gérés, Claude Code ignore un id dont le plugin ne remplit pas les conditions d'un mod d'organisation

353* **Les dépôts ne peuvent pas les définir** : Claude Code lit les deux paramètres à partir des paramètres gérés et jamais à partir du fichier de paramètres d'un dépôt. Un utilisateur peut les définir dans `~/.claude/settings.json` pour ordonner ses propres mods uniquement sur une machine sans paramètres gérés, et uniquement quand les identifiants de la session ne proviennent pas d'un `/login` Team ou Enterprise. Partout ailleurs, Claude Code ignore les deux clés dans les paramètres utilisateur. Une liste à cet endroit n'ajoute ni ne supprime le garde-fou intégré.353* **Les dépôts ne peuvent définir aucune des deux listes** : Claude Code les ignore toutes deux dans le fichier de paramètres d'un dépôt, donc définissez-les dans les paramètres gérés.

354* **Un utilisateur peut les définir pour ordonner ses propres mods** : dans `~/.claude/settings.json`, uniquement sur une machine sans paramètres gérés ni fichier `managed-mcp.json`, et uniquement quand les identifiants de la session ne proviennent pas d'un `/login` Team ou Enterprise. Partout ailleurs, Claude Code ignore les deux clés dans les paramètres utilisateur. Une liste à cet endroit n'ajoute ni ne supprime le garde-fou intégré.

354 355 

355### Appliquer une politique avec un mod de votre côté356### Appliquer une politique avec un mod de votre côté

356 357 

Details

21 21 

22Décrivez le mod que vous voulez dans une session Claude Code interactive, et Claude l'écrit. Claude fonctionne à partir d'une [skill](https://code.claude.com/docs/fr/skills.md) intégrée nommée `plugin-authoring`, qui lui indique où écrire le mod, quels événements et méthodes votre version a, et comment le mod est chargé. Claude peut charger la skill lorsque vous demandez un mod, ou vous pouvez la charger vous-même en exécutant `/plugin-authoring` à l'invite Claude Code.22Décrivez le mod que vous voulez dans une session Claude Code interactive, et Claude l'écrit. Claude fonctionne à partir d'une [skill](https://code.claude.com/docs/fr/skills.md) intégrée nommée `plugin-authoring`, qui lui indique où écrire le mod, quels événements et méthodes votre version a, et comment le mod est chargé. Claude peut charger la skill lorsque vous demandez un mod, ou vous pouvez la charger vous-même en exécutant `/plugin-authoring` à l'invite Claude Code.

23 23 

24Le mod s'exécute une fois que vous l'approuvez, sauf dans [les sessions où un mod que Claude écrit ne peut pas se charger](#sessions-that-skip-the-approval).24Dans les [modes de permission](https://code.claude.com/docs/fr/permission-modes.md) `auto` et `bypassPermissions`, le mod peut s'exécuter à la fin du tour. Sinon, il s'exécute une fois que vous l'approuvez, sauf dans [les sessions où un mod que Claude écrit ne peut pas se charger](#sessions-that-skip-the-approval).

25 25 

26**1. Décrivez le mod**26**1. Décrivez le mod**

27 27 


33 33 

34**2. Approuvez le mod**34**2. Approuvez le mod**

35 35 

36Lorsque Claude enregistre le premier fichier, Claude Code demande s'il faut activer le rechargement à chaud pour la session. Le rechargement à chaud exécute les mods que Claude écrit dans cette session et récupère chaque modification ultérieure.36Lorsque Claude enregistre le premier fichier, Claude Code demande s'il faut activer le rechargement à chaud pour la session. Le rechargement à chaud exécute les mods que Claude écrit dans cette session et récupère chaque modification ultérieure. Si aucune question n'apparaît, passez cette étape.

37 37 

38Choisissez l'une de ces réponses :38Choisissez l'une de ces réponses :

39 39 

40* **Activer pour cette session** : les mods dans le dossier des mods de la session se chargent à la fin du tour, et se rechargent à la fin de chaque tour qui les modifie. Votre réponse dure pour la session, y compris après l'avoir reprise.40* **Les activer** : les mods dans le dossier des mods de la session se chargent à la fin du tour, et se rechargent à la fin de chaque tour qui les modifie. Votre réponse dure pour la session, y compris après l'avoir reprise.

41* **Pas maintenant** : rien ne se charge pour l'instant. Les fichiers restent où Claude les a écrits, et les mods se chargent la prochaine fois que cette session démarre. Pour empêcher un mod de jamais se charger, supprimez son répertoire.41* **Pas maintenant** : rien ne se charge pour l'instant. Les fichiers restent où Claude les a écrits, et les mods se chargent la prochaine fois que cette session démarre. Pour empêcher un mod de jamais se charger, supprimez son répertoire.

42 42 

43**3. Vérifiez que le mod s'est chargé**43**3. Vérifiez que le mod s'est chargé**


59 59 

60### Sessions où un mod que Claude écrit ne peut pas se charger60### Sessions où un mod que Claude écrit ne peut pas se charger

61 61 

62Un mod que Claude écrit ne se charge qu'après que vous l'approuviez, dans un espace de travail de confiance où les mods sont autorisés à s'exécuter. Dans ces sessions, il ne se charge pas :62Un mod que Claude écrit se charge dans un espace de travail de confiance où les mods sont autorisés à s'exécuter, après que vous l'avez approuvé dans les modes qui le demandent. Dans ces sessions, il ne se charge pas :

63 63 

64* **Personne n'est là pour approuver** : la session ne peut pas vous montrer une invite, comme dans une exécution `claude -p` ou en [mode `dontAsk`](https://code.claude.com/docs/fr/permission-modes)64* **Personne n'est là pour approuver** : la session ne peut pas vous montrer une invite, comme dans une exécution `claude -p` en dehors des modes `auto` et `bypassPermissions`, ou en [mode `dontAsk`](https://code.claude.com/docs/fr/permission-modes)

65* **L'espace de travail n'est pas de confiance** : vous n'avez pas accepté l'invite de confiance pour le répertoire65* **L'espace de travail n'est pas de confiance** : vous n'avez pas accepté l'invite de confiance pour le répertoire

66* **Les mods sont désactivés** : vous avez démarré avec `--safe-mode` ou `--bare`, vous avez défini `disableAllHooks`, ou [les paramètres gérés de votre organisation le bloquent](https://code.claude.com/docs/fr/plugins/mods/admin.md#choose-how-much-to-allow)66* **Les mods sont désactivés** : vous avez démarré avec `--safe-mode` ou `--bare`, vous avez défini `disableAllHooks`, ou [les paramètres gérés de votre organisation le bloquent](https://code.claude.com/docs/fr/plugins/mods/admin.md#choose-how-much-to-allow)

67 67 

Details

328 328 

329Vérifiez quels mods reçoivent cet événement, ainsi que votre version de Claude Code :329Vérifiez quels mods reçoivent cet événement, ainsi que votre version de Claude Code :

330 330 

331* **Le garde-fou intégré** : avec des paramètres gérés, ou avec un [`/login`](https://code.claude.com/docs/fr/authentication#authentication-precedence) Team ou Enterprise comme identifiants de la session, le [garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#know-what-happens-by-default) peut ignorer ce hook dans un mod que vous installez ou chargez avec `--plugin-dir`. Pour le vérifier, recherchez `settings.read bypassed by cc-plugin-sec-default` dans le [log de débogage](https://code.claude.com/docs/fr/plugins/mods/troubleshoot.md#read-the-debug-log). Si une ligne contenant ce texte nomme votre mod, demandez à l'administrateur de votre organisation d'[installer le mod parmi les mods de l'organisation](https://code.claude.com/docs/fr/plugins/mods/admin.md#install-your-organizations-mods).331* **Le garde-fou intégré** : là où le [garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#know-what-happens-by-default) se charge, il peut ignorer ce hook dans un mod que vous installez ou chargez avec `--plugin-dir`. Pour le vérifier, recherchez `settings.read bypassed by cc-plugin-sec-default` dans le [log de débogage](https://code.claude.com/docs/fr/plugins/mods/troubleshoot.md#read-the-debug-log). Si une ligne contenant ce texte nomme votre mod, demandez à l'administrateur de votre organisation d'[installer le mod parmi les mods de l'organisation](https://code.claude.com/docs/fr/plugins/mods/admin.md#install-your-organizations-mods).

332* **La version** : le déclenchement de l'événement lors de la lecture propre à Claude Code, ainsi que le champ `e.layers`, nécessitent Claude Code v2.1.304 ou une version ultérieure.332* **La version** : le déclenchement de l'événement lors de la lecture propre à Claude Code, ainsi que le champ `e.layers`, nécessitent Claude Code v2.1.304 ou une version ultérieure.

333 333 

334#### Ce que reçoit un hook `settings.read`334#### Ce que reçoit un hook `settings.read`

Details

78 78 

79Les mods ne sont pas isolés dans un sandbox. Si vous activez le [sandboxing](https://code.claude.com/docs/fr/sandboxing.md), le sandbox isole les commandes Bash que Claude exécute, et un processus qu'un mod démarre s'exécute en dehors de celui-ci.79Les mods ne sont pas isolés dans un sandbox. Si vous activez le [sandboxing](https://code.claude.com/docs/fr/sandboxing.md), le sandbox isole les commandes Bash que Claude exécute, et un processus qu'un mod démarre s'exécute en dehors de celui-ci.

80 80 

81Avec des [paramètres gérés](https://code.claude.com/docs/fr/settings.md#check-what-your-organization-enforces) ou un [`/login`](https://code.claude.com/docs/fr/authentication#authentication-precedence) Team ou Enterprise comme identifiants de la session, par défaut, l'approbation d'un mod ne permet pas à un appel de contourner vos règles `ask` ni vos hooks `PreToolUse`. Sans l'un ni l'autre, un mod peut approuver un appel pour lequel une règle `ask` vous demanderait confirmation, ou que votre hook `PreToolUse` a bloqué. Pour vérifier quand un mod peut également approuver un appel qu'une règle `deny` refuse, consultez [Étendre les permissions avec les hooks](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).81Un mod peut approuver [de nombreux appels d'outils](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods) que vos règles `deny` ou `ask` ou vos hooks `PreToolUse` arrêteraient, sauf si le [garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#know-what-happens-by-default) l'en empêche. Lorsque le garde-fou est chargé, par défaut, le mod d'un utilisateur ne peut pas le faire. Dans une session de terminal local, la présence de `cc-plugin-sec-default` dans l'onglet **Installed** de `/plugin` signifie que le garde-fou est chargé.

82 82 

83Un mod peut remodeler une grande partie de l'interface de Claude Code, mais pas la demande de permission. Il ne peut pas modifier ce qu'une demande vous montre.83Un mod peut remodeler une grande partie de l'interface de Claude Code, mais pas la demande de permission. Il ne peut pas modifier ce qu'une demande vous montre.

84 84 

Details

39| `next.origin` | `{ plugin, tier }` de l'émetteur de l'événement. Claude Code lui-même est `{ plugin: 'engine', tier: 'core' }`. Le `tier` d'un mod est son groupe de priorité dans [l'ordre d'exécution des mods](https://code.claude.com/docs/fr/plugins/mods/events.md#the-order-mods-run-in) : `prepend`, `user`, `append` ou `builtin`. |39| `next.origin` | `{ plugin, tier }` de l'émetteur de l'événement. Claude Code lui-même est `{ plugin: 'engine', tier: 'core' }`. Le `tier` d'un mod est son groupe de priorité dans [l'ordre d'exécution des mods](https://code.claude.com/docs/fr/plugins/mods/events.md#the-order-mods-run-in) : `prepend`, `user`, `append` ou `builtin`. |

40| `next.budget` | La limite de temps du hook en millisecondes : `next.budget.ms` est la limite totale, et `next.budget.remainingMs` est ce qui reste à cet instant |40| `next.budget` | La limite de temps du hook en millisecondes : `next.budget.ms` est la limite totale, et `next.budget.remainingMs` est ce qui reste à cet instant |

41| `next.to(e, tier)` | Passe directement à un tier ultérieur, qui est `append`, `builtin` ou `core`. `next.to(e, 'append')` ignore les mods installés par un utilisateur. Seul un mod présent dans `prependPlugins` ou `appendPlugins` peut l'appeler. |41| `next.to(e, tier)` | Passe directement à un tier ultérieur, qui est `append`, `builtin` ou `core`. `next.to(e, 'append')` ignore les mods installés par un utilisateur. Seul un mod présent dans `prependPlugins` ou `appendPlugins` peut l'appeler. |

42| `next.error` | Dans un gestionnaire `.catch` uniquement. `kind` vaut `throw` ou `timeout` lorsque le hook a échoué, et `message` est le texte de l'erreur. `kind` vaut `re-entry` lorsque le hook a été ignoré parce que l'événement provenait d'un appel à l'API des mods effectué par ce hook ou par le code de votre mod en dehors de ses hooks. `re-entry` nécessite Claude Code v2.1.292 ou une version ultérieure. |42| `next.error` | Dans un gestionnaire `.catch` uniquement. `kind` vaut `throw` ou `timeout`, et `message` est le texte de l'erreur. |

43| `next.error.cause` | Défini uniquement lorsque `kind` vaut `re-entry`. `rewritten` si un hook `tool.call` ou [`PreToolUse`](https://code.claude.com/docs/fr/hooks#pretooluse) a modifié l'appel à l'API des mods dont provenait l'événement, ou si un hook `agent.spawn` a modifié un agent démarré par cet appel. `lent` lorsqu'une méthode qu'un autre mod ajoute à l'API des mods a déclenché cet événement, sauf si `rewritten` s'applique également. `lent` nécessite Claude Code v2.1.292 ou une version ultérieure, et `rewritten` la v2.1.300 ou une version ultérieure. |

44| `next.called` | Dans un gestionnaire `.catch` uniquement. `true` lorsque le hook avait appelé `next`. |43| `next.called` | Dans un gestionnaire `.catch` uniquement. `true` lorsque le hook avait appelé `next`. |

45 44 

46## Événements45## Événements


252| [`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 |251| [`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 |

253| [`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 |252| [`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 |

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

255| `UserMessage` | `text`, `origin`, `isExpanded`, et `task` ou `from` selon l'origine | L'id du message | Terminal, Desktop, VS Code |254| `UserMessage` | `text`, `origin`, `isExpanded`, et `task` ou `from` selon l'origine | L'id de la ligne dessinée | Terminal, Desktop, VS Code |

256| `AssistantMessage` | Le texte de la réponse | L'id du message | Terminal, Desktop, VS Code |255| `AssistantMessage` | Le texte de la réponse | L'id de la ligne dessinée | Terminal, Desktop, VS Code |

257| `ToolUse`, `ToolResult`, `ToolGroup` | Le nom, l'entrée et le résultat de l'outil | L'id de l'appel d'outil | Terminal, Desktop, VS Code |256| `ToolUse`, `ToolResult`, `ToolGroup` | Le nom, l'entrée et le résultat de l'outil | L'id de l'appel d'outil | Terminal, Desktop, VS Code |

258| `CommandOutput` | `command`, `text` | L'id du message | Terminal, Desktop |257| `CommandOutput` | `command`, `text` | L'id de la ligne dessinée | Terminal, Desktop |

259| [`AskUserQuestion`](https://code.claude.com/docs/fr/plugins/mods/interface#change-what-claude-code-already-draws) | La question et les options | L'id de l'appel d'outil | Terminal, Desktop, VS Code |258| [`AskUserQuestion`](https://code.claude.com/docs/fr/plugins/mods/interface#change-what-claude-code-already-draws) | La question et les options | L'id de l'appel d'outil | Terminal, Desktop, VS Code |

260| `ToolProgress` | `kind` | L'id de l'appel d'outil | Terminal |259| `ToolProgress` | `kind` | L'id de l'appel d'outil | Terminal |

261| [`Spinner`](https://code.claude.com/docs/fr/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | L'id de l'agent | Terminal, Desktop, VS Code |260| [`Spinner`](https://code.claude.com/docs/fr/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | L'id de l'agent | Terminal, Desktop, VS Code |

262| `TurnDuration` | `word`, `durationMs` | L'id du message | Terminal |261| `TurnDuration` | `word`, `durationMs` | L'id de la ligne dessinée | Terminal |

263| `InfoNotice` | `text`, `command` | L'id du message | Terminal |262| `InfoNotice` | `text`, `command` | Le `text` de la notification, préfixé par `notice:` | Terminal |

264| `SessionMode` | `modes` | Une seule instance | Terminal, Desktop |263| `SessionMode` | `modes` | Une seule instance | Terminal, Desktop |

265| `PromptHint` | `isDraft`, `isWorking`, `hint` | Une seule instance | Terminal, Desktop |264| `PromptHint` | `isDraft`, `isWorking`, `hint` | Une seule instance | Terminal, Desktop |

266 265 


424| :- | :- | :- |423| :- | :- | :- |

425| `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. |424| `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. |

426| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Environnement | `1` fait recharger les mods `--plugin-dir` à l'enregistrement dans une session non interactive de longue durée |425| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Environnement | `1` fait recharger les mods `--plugin-dir` à l'enregistrement dans une session non interactive de longue durée |

427| `prependPlugins`, `appendPlugins` | Paramètres gérés. Paramètres utilisateur uniquement sur une machine sans paramètres gérés, 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). |426| `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). |

428| `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. |427| `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. |

429| `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 refusé par une règle `deny` |428| `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` |

430| `allowManagedHooksOnly` | Paramètres gérés | Bloque les hooks et les mods installés qui n'appartiennent pas à votre organisation. Consultez [ce qui continue de s'exécuter](https://code.claude.com/docs/fr/settings-reference.md#what-runs-under-allowmanagedhooksonly). |429| `allowManagedHooksOnly` | Paramètres gérés | Bloque les hooks et les mods installés qui n'appartiennent pas à votre organisation. Consultez [ce qui continue de s'exécuter](https://code.claude.com/docs/fr/settings-reference.md#what-runs-under-allowmanagedhooksonly). |

431| `disableAllHooks` | Tout fichier de paramètres | Dans les paramètres gérés, aucun mod ni hook provenant d'un plugin installé ne s'exécute. Dans vos propres paramètres, ce que gère votre organisation continue de s'exécuter. Consultez [`disableAllHooks`](https://code.claude.com/docs/fr/settings-reference#disableallhooks). |430| `disableAllHooks` | Tout fichier de paramètres | Dans les paramètres gérés, aucun mod ni hook provenant d'un plugin installé ne s'exécute. Dans vos propres paramètres, ce que gère votre organisation continue de s'exécuter. Consultez [`disableAllHooks`](https://code.claude.com/docs/fr/settings-reference#disableallhooks). |

432| `disableSideloadFlags` | Paramètres gérés | Rejette `--plugin-dir` et `--plugin-url` au démarrage |431| `disableSideloadFlags` | Paramètres gérés | Rejette `--plugin-dir` et `--plugin-url` au démarrage |

433| `pluginConfigs` | Paramètres utilisateur ou gérés | Contient les valeurs `userConfig` d'un mod, indexées par l'identifiant du plugin, comme `acme-guard@acme-tools`, ou par son nom suivi de `@inline`, comme `first-mod@inline`, pour un mod chargé avec `--plugin-dir` |432| `pluginConfigs` | Paramètres utilisateur ou gérés | Contient les valeurs `userConfig` d'un mod, indexées par l'identifiant du plugin, comme `acme-guard@acme-tools`, ou par son nom suivi de `@inline`, comme `first-mod@inline`, pour un mod chargé avec `--plugin-dir` |

434 433 

435`sec-default@builtin` est un garde-fou intégré à Claude Code, listé sous le nom `cc-plugin-sec-default` dans `/plugin` et dans le log de débogage. Il se charge avant tout mod installé par une personne sur une machine dotée de paramètres gérés, ou dans une session dont les identifiants proviennent d'un [`/login`](https://code.claude.com/docs/fr/authentication#authentication-precedence) Team ou Enterprise. Si `prependPlugins` est défini dans les paramètres gérés, le garde-fou ne se charge que lorsque cette liste le nomme, à la position indiquée.434`sec-default@builtin` est un garde-fou intégré à Claude Code, listé sous le nom `cc-plugin-sec-default` dans `/plugin` et dans le log de débogage. [Là où il se charge](https://code.claude.com/docs/fr/plugins/mods/admin.md#know-what-happens-by-default), il s'exécute avant tout mod installé par une personne. Si `prependPlugins` est défini dans les paramètres gérés, le garde-fou ne se charge que lorsque cette liste le nomme, à la position indiquée.

436 435 

437Son code source se trouve dans le [répertoire `mods/sec-default` du dépôt Claude Code](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).436Son code source se trouve dans le [répertoire `mods/sec-default` du dépôt Claude Code](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).

438 437 

Details

14 14 

15Quand un module ne se charge pas, un hook est ignoré ou un autre mod refuse le vôtre, Claude Code écrit une ligne qui nomme votre mod. L'endroit où vous lisez cette ligne dépend de la session :15Quand un module ne se charge pas, un hook est ignoré ou un autre mod refuse le vôtre, Claude Code écrit une ligne qui nomme votre mod. L'endroit où vous lisez cette ligne dépend de la session :

16 16 

17* **Une session qui recharge à chaud un répertoire de plugin** : une ligne atténuée dans la transcription. C'est une session interactive que vous avez démarrée avec `--plugin-dir`, ou une session où vous avez [activé le rechargement à chaud](https://code.claude.com/docs/fr/plugins/mods/create.md#ask-claude-for-a-mod) pour les mods que Claude a écrits.17* **Une session qui recharge à chaud un répertoire de plugin** : une ligne atténuée dans la transcription. C'est une session interactive que vous avez démarrée avec `--plugin-dir`, ou une session où [le rechargement à chaud est activé](https://code.claude.com/docs/fr/plugins/mods/create.md#ask-claude-for-a-mod) pour les mods que Claude a écrits.

18* **Toute autre session interactive, comme une qui exécute un mod que vous avez installé à partir d'une marketplace** : le [journal de débogage](#read-the-debug-log) uniquement. Pour en obtenir un, démarrez la session avec `claude --debug`.18* **Toute autre session interactive, comme une qui exécute un mod que vous avez installé à partir d'une marketplace** : le [journal de débogage](#read-the-debug-log) uniquement. Pour en obtenir un, démarrez la session avec `claude --debug`.

19* **Une exécution `claude -p` avec `--plugin-dir`** : stderr, au format de sortie texte par défaut. Un refus par un autre mod va au journal de débogage uniquement.19* **Une exécution `claude -p` avec `--plugin-dir`** : stderr, au format de sortie texte par défaut. Un refus par un autre mod va au journal de débogage uniquement.

20 20 


68 68 

69### Messages du garde intégré69### Messages du garde intégré

70 70 

71Sur une machine avec des paramètres gérés, ou dans une session dont les identifiants proviennent d'un `/login` Team ou Enterprise, le [garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#know-what-happens-by-default) peut refuser un mod ou l'une de ses réponses. Chaque message nomme l'option que l'administrateur de votre organisation définit pour modifier la règle.71Là où le [garde-fou intégré](https://code.claude.com/docs/fr/plugins/mods/admin.md#know-what-happens-by-default) se charge, il peut refuser un mod ou l'une de ses réponses. Chaque message nomme l'option que l'administrateur de votre organisation définit pour modifier la règle.

72 72 

73| Le message contient | Ce que cela signifie | Où cela apparaît |73| Le message contient | Ce que cela signifie | Où cela apparaît |

74| :- | :- | :- |74| :- | :- | :- |

plugins/org.md +1 −1

Details

89* **Sessions interactives** : Claude Code enregistre le marketplace uniquement après que le contributeur accepte la [boîte de dialogue de confiance de l'espace de travail](https://code.claude.com/docs/fr/permissions.md#what-runs-before-you-trust-a-folder) pour ce dossier.89* **Sessions interactives** : Claude Code enregistre le marketplace uniquement après que le contributeur accepte la [boîte de dialogue de confiance de l'espace de travail](https://code.claude.com/docs/fr/permissions.md#what-runs-before-you-trust-a-folder) pour ce dossier.

90* **[Exécutions non interactives `-p`](https://code.claude.com/docs/fr/headless)** : les entrées s'appliquent uniquement dans un dossier dont la confiance que l'utilisateur a déjà acceptée de manière interactive, ou dont vous définissez l'indicateur `hasTrustDialogAccepted` dans `~/.claude.json`.90* **[Exécutions non interactives `-p`](https://code.claude.com/docs/fr/headless)** : les entrées s'appliquent uniquement dans un dossier dont la confiance que l'utilisateur a déjà acceptée de manière interactive, ou dont vous définissez l'indicateur `hasTrustDialogAccepted` dans `~/.claude.json`.

91 91 

92Un plugin que le marketplace liste par un chemin relatif se charge à partir de la copie du marketplace une fois que les entrées `extraKnownMarketplaces` du référentiel s'appliquent. Un plugin dont l'entrée de marketplace pointe vers une source externe à la place, comme le référentiel GitHub propre du plugin, ne s'installe pas à partir des paramètres du référentiel seuls. Chaque contributeur voit `Plugin "<name>" is enabled in project settings but isn't installed` jusqu'à ce qu'il exécute `claude plugin install <name>@<marketplace> --scope project`, comme [Installer des plugins](https://code.claude.com/docs/fr/plugins/install.md) le décrit.92Définir `enabledPlugins` dans le dépôt n'installe pas le plugin. Une fois la marketplace enregistrée, demandez à chaque contributeur d'exécuter `claude plugin install <name>@<marketplace> --scope project`. Tant qu'il ne l'a pas fait, l'onglet **Errors** de `/plugin` peut afficher `Plugin "<name>" is enabled in project settings but isn't installed here` ou [`not cached`](https://code.claude.com/docs/fr/plugins/troubleshooting#plugin-not-cached-at). Les contributeurs n'ont pas besoin de l'installation lorsqu'une marketplace locale `directory` ou `file` liste le plugin avec une [`source` à chemin relatif](https://code.claude.com/docs/fr/plugins/marketplace-reference#plugin-sources).

93 93 

94Si vous utilisez une source `directory` ou `file` locale avec un chemin relatif, le chemin se résout par rapport au checkout principal de votre référentiel. Quand vous exécutez Claude Code à partir d'une git worktree, le chemin pointe toujours vers le checkout principal, donc tous les worktrees partagent le même emplacement de marketplace.94Si vous utilisez une source `directory` ou `file` locale avec un chemin relatif, le chemin se résout par rapport au checkout principal de votre référentiel. Quand vous exécutez Claude Code à partir d'une git worktree, le chemin pointe toujours vers le checkout principal, donc tous les worktrees partagent le même emplacement de marketplace.

95 95 

Details

322 322 

323### Les mises à jour de la marketplace continuent d'échouer hors ligne323### Les mises à jour de la marketplace continuent d'échouer hors ligne

324 324 

325Vous travaillez dans un environnement où l'hôte git de la marketplace est inaccessible, et chaque session répète un échec d'actualisation en arrière-plan. Votre checkout existant de la marketplace reste en place et le démarrage n'est pas retardé.325Vous travaillez dans un environnement où l'hôte git de la marketplace est inaccessible, et chaque session répète un échec d'actualisation en arrière-plan. Votre checkout existant de la marketplace reste en place.

326 326 

327Chaque session, pour une marketplace avec [mise à jour automatique activée](https://code.claude.com/docs/fr/plugins/loading.md#which-marketplaces-and-plugins-auto-update), Claude Code vérifie l'hôte git de la marketplace pour les nouveaux commits en arrière-plan. Lorsque cette vérification ne peut pas atteindre l'hôte, elle essaie de cloner à nouveau la marketplace, et hors ligne ce clonage échoue aussi.327Chaque session, pour une marketplace avec [mise à jour automatique activée](https://code.claude.com/docs/fr/plugins/loading.md#which-marketplaces-and-plugins-auto-update), Claude Code vérifie l'hôte git de la marketplace pour les nouveaux commits en arrière-plan. Lorsque cette vérification ne peut pas atteindre l'hôte, elle essaie de cloner à nouveau la marketplace, et hors ligne ce clonage échoue aussi.

328 328 


675 675 

676### `Plugin "<name>" not cached at <path>`676### `Plugin "<name>" not cached at <path>`

677 677 

678L'onglet **Erreurs** affiche cette ligne avec la guidance `Run /plugin to refresh the plugin cache`. Claude Code a un enregistrement d'installation pour le plugin, mais le répertoire que l'enregistrement pointe est manquant, par exemple après que vous ayez vidé le cache.678L'onglet **Errors** affiche cette ligne avec la guidance `Run /plugin to refresh the plugin cache`. Cela signifie que Claude Code n'a trouvé aucune copie utilisable du plugin. Par exemple, vous avez vidé le cache, si bien que le répertoire vers lequel pointe son enregistrement d'installation est manquant. Ou bien vous avez ouvert un dépôt dont les paramètres activent le plugin, et vous ne l'avez pas installé.

679 679 

680Réinstallez le plugin à partir de votre shell. `claude plugin install <name>@<marketplace>` re-télécharge un plugin dont le répertoire d'installation est manquant même si son enregistrement existe :680Installez le plugin à partir de votre shell. Si vous avez ouvert un dépôt dont le `.claude/settings.json` active le plugin, exécutez ceci depuis le projet avec la clé du plugin issue de `enabledPlugins`, comme le décrit [Activé dans les paramètres du projet mais non installé](https://code.claude.com/docs/fr/plugins/loading.md#enabled-in-project-settings-but-not-installed) :

681 

682```shell theme={null}

683claude plugin install <name>@<marketplace> --scope project

684```

685 

686Sinon, exécutez ceci, qui re-télécharge un plugin dont le répertoire d'installation est manquant même si son enregistrement existe :

681 687 

682```shell theme={null}688```shell theme={null}

683claude plugin install <name>@<marketplace>689claude plugin install <name>@<marketplace>

684```690```

685 691 

686Ensuite, exécutez `/reload-plugins` dans votre session. L'entrée de l'onglet **Erreurs** disparaît et le plugin est de retour sous **Installed**.692Ensuite, exécutez `/reload-plugins` dans votre session. L'entrée de l'onglet **Errors** disparaît et le plugin est répertorié sous **Installed**.

687 693 

688### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`694### `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

689 695 

Details

103Le [mode rapide](https://code.claude.com/docs/fr/fast-mode.md) et la vitesse standard conservent des caches distincts, donc après avoir activé ou désactivé le mode rapide, la prochaine requête ne peut pas utiliser ce que l'autre vitesse a mis en cache. La première fois que vous activez le mode rapide dans une conversation, la prochaine requête lit l'intégralité de la conversation jusqu'à ce point sans cache, aux [tarifs du mode rapide](https://code.claude.com/docs/fr/fast-mode.md#understand-the-cost-tradeoff). Pour limiter ce coût, activez-le au début d'une session.103Le [mode rapide](https://code.claude.com/docs/fr/fast-mode.md) et la vitesse standard conservent des caches distincts, donc après avoir activé ou désactivé le mode rapide, la prochaine requête ne peut pas utiliser ce que l'autre vitesse a mis en cache. La première fois que vous activez le mode rapide dans une conversation, la prochaine requête lit l'intégralité de la conversation jusqu'à ce point sans cache, aux [tarifs du mode rapide](https://code.claude.com/docs/fr/fast-mode.md#understand-the-cost-tradeoff). Pour limiter ce coût, activez-le au début d'une session.

104 104 

105* Si vous l'activez pendant que Claude travaille, ce tour se termine à la vitesse standard, et vous payez toute lecture non mise en cache à la première requête de votre tour suivant.105* Si vous l'activez pendant que Claude travaille, ce tour se termine à la vitesse standard, et vous payez toute lecture non mise en cache à la première requête de votre tour suivant.

106* Si votre modèle actuel ne supporte pas le mode rapide, l'exécution de `/fast` [vous bascule également vers Opus](https://code.claude.com/docs/fr/fast-mode.md#toggle-fast-mode). Ce [changement de modèle](#switching-models) démarre à lui seul un nouveau cache à partir de la prochaine requête du tour en cours.106* Si votre modèle actuel ne supporte pas le mode rapide, l'exécution de `/fast` [change également votre modèle](https://code.claude.com/docs/fr/fast-mode.md#toggle-fast-mode). Ce [changement de modèle](#switching-models) démarre à lui seul un nouveau cache à partir de la prochaine requête du tour en cours.

107 107 

108Chaque basculement ultérieur lit sans cache tout ce que la vitesse vers laquelle vous basculez n'a pas en cache. Les changements de vitesse que Claude Code effectue de lui-même, comme le [basculement vers la vitesse standard](https://code.claude.com/docs/fr/fast-mode.md#handle-rate-limits) après une limite de débit puis le retour au mode rapide plus tard, comptent également comme des basculements.108Chaque basculement ultérieur lit sans cache tout ce que la vitesse vers laquelle vous basculez n'a pas en cache. Les changements de vitesse que Claude Code effectue de lui-même, comme le [basculement vers la vitesse standard](https://code.claude.com/docs/fr/fast-mode.md#handle-rate-limits) après une limite de débit puis le retour au mode rapide plus tard, comptent également comme des basculements.

109 109 

Details

185* **Niveau d'effort** : lorsque vous définissez le [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level) depuis un appareil connecté, avec `/effort` ou le contrôle d'effort de l'appareil, Claude Code l'applique à la session sur votre machine. Si vous avez fixé un niveau avec `CLAUDE_CODE_EFFORT_LEVEL`, la session conserve ce niveau et Claude Code refuse tout autre choix effectué via le contrôle d'effort. Choisir un niveau via le contrôle d'effort nécessite Claude Code v2.1.234 ou ultérieur sur votre machine.185* **Niveau d'effort** : lorsque vous définissez le [niveau d'effort](https://code.claude.com/docs/fr/model-config.md#adjust-effort-level) depuis un appareil connecté, avec `/effort` ou le contrôle d'effort de l'appareil, Claude Code l'applique à la session sur votre machine. Si vous avez fixé un niveau avec `CLAUDE_CODE_EFFORT_LEVEL`, la session conserve ce niveau et Claude Code refuse tout autre choix effectué via le contrôle d'effort. Choisir un niveau via le contrôle d'effort nécessite Claude Code v2.1.234 ou ultérieur sur votre machine.

186* **Reconnexion après un échec de connexion** : exécutez `/remote-control` pour vous reconnecter. Si la compaction a réécrit la conversation ou si vous avez changé de conversation avec `/resume` entre-temps, Claude Code archive la session serveur qu'il utilisait au lieu de la laisser dans la liste des sessions. Vous pouvez toujours retrouver cette session parmi vos [sessions archivées](https://code.claude.com/docs/fr/claude-code-on-the-web.md#find-an-archived-session) sur claude.ai/code. Changer de conversation pendant qu'un appareil est encore connecté n'archive pas la session.186* **Reconnexion après un échec de connexion** : exécutez `/remote-control` pour vous reconnecter. Si la compaction a réécrit la conversation ou si vous avez changé de conversation avec `/resume` entre-temps, Claude Code archive la session serveur qu'il utilisait au lieu de la laisser dans la liste des sessions. Vous pouvez toujours retrouver cette session parmi vos [sessions archivées](https://code.claude.com/docs/fr/claude-code-on-the-web.md#find-an-archived-session) sur claude.ai/code. Changer de conversation pendant qu'un appareil est encore connecté n'archive pas la session.

187 187 

188### Créer un fork d'une session depuis votre navigateur

189 

190Pour explorer une autre direction sans interrompre une session, ouvrez-la sur [claude.ai/code](https://claude.ai/code) et sélectionnez **Fork** dans le menu de la session, ou créez un fork à partir d'un message antérieur de la transcription. Le fork s'ouvre comme une nouvelle session dans votre liste des sessions et poursuit la conversation à partir de ce point pendant que l'originale continue de s'exécuter. La création d'un fork nécessite Claude Code v2.1.277 ou ultérieur sur votre machine.

191 

192Un serveur `claude remote-control` démarré avec `--spawn session` n'a de place que pour son unique session ; il ne peut donc pas exécuter de fork.

193 

194Claude Code refuse le fork dans des cas tels que les suivants :

195 

196* La session est occupée. Créez le fork lorsqu'elle est inactive.

197* La session est hébergée par l'extension VS Code ou par une autre application construite sur l'[Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md).

198 

188### Activer Remote Control pour toutes les sessions199### Activer Remote Control pour toutes les sessions

189 200 

190Remote Control ne s'active que lorsque vous exécutez explicitement `claude remote-control`, `claude --remote-control` ou `/remote-control`, sauf si la connexion automatique est activée. Pour activer la connexion automatique pour chaque session interactive, exécutez `/config` dans Claude Code et définissez **Enable Remote Control for all sessions**. Ce réglage accepte trois valeurs :201Remote Control ne s'active que lorsque vous exécutez explicitement `claude remote-control`, `claude --remote-control` ou `/remote-control`, sauf si la connexion automatique est activée. Pour activer la connexion automatique pour chaque session interactive, exécutez `/config` dans Claude Code et définissez **Enable Remote Control for all sessions**. Ce réglage accepte trois valeurs :


198* **Extension VS Code** : **Enable Remote Control for all sessions** dans la section Settings du [menu de commandes](https://code.claude.com/docs/fr/vs-code.md#use-the-prompt-box).209* **Extension VS Code** : **Enable Remote Control for all sessions** dans la section Settings du [menu de commandes](https://code.claude.com/docs/fr/vs-code.md#use-the-prompt-box).

199* **Application Desktop** : **Connect new sessions to Remote Control** dans **Settings > Code** ou **Settings > Claude Code**. Consultez [Contrôler quelles sessions apparaissent sur vos autres appareils](https://code.claude.com/docs/fr/desktop.md#control-which-sessions-appear-on-your-other-devices).210* **Application Desktop** : **Connect new sessions to Remote Control** dans **Settings > Code** ou **Settings > Claude Code**. Consultez [Contrôler quelles sessions apparaissent sur vos autres appareils](https://code.claude.com/docs/fr/desktop.md#control-which-sessions-appear-on-your-other-devices).

200 211 

201Pour activer plutôt la connexion automatique depuis un fichier de paramètres, définissez [`remoteControlAtStartup`](https://code.claude.com/docs/fr/settings-reference#remotecontrolatstartup) sur `true` dans votre fichier utilisateur `~/.claude/settings.json` ou dans les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md). Dans les paramètres de projet ou locaux (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code respecte un `false` et désactive la connexion automatique pour ce dépôt, mais ignore un `true`, de sorte qu'un fichier versionné ne peut pas activer Remote Control pour toutes les personnes qui ouvrent le dépôt.212Pour activer plutôt la connexion automatique depuis un fichier de paramètres, définissez [`remoteControlAtStartup`](https://code.claude.com/docs/fr/settings-reference#remotecontrolatstartup) sur `true` dans votre fichier utilisateur `~/.claude/settings.json` ou dans les [paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md). Dans les paramètres de projet ou locaux (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code respecte un `false` et désactive la connexion automatique pour ce dépôt. Il ignore un `true`, de sorte que vous ne pouvez pas utiliser un fichier versionné pour activer Remote Control pour toutes les personnes qui ouvrent le dépôt.

202 213 

203La connexion automatique utilise votre propre compte claude.ai, de sorte qu'une session qu'elle démarre n'apparaît que dans les applications Claude de votre propre compte et ne donne accès à personne d'autre.214La connexion automatique utilise votre propre compte claude.ai, de sorte qu'une session qu'elle démarre n'apparaît que dans les applications Claude de votre propre compte et ne donne accès à personne d'autre.

204 215 

routines.md +1 −1

Details

528* [`/loop` et planification en session](https://code.claude.com/docs/fr/scheduled-tasks) : planifiez des tâches locales dans une session CLI ouverte528* [`/loop` et planification en session](https://code.claude.com/docs/fr/scheduled-tasks) : planifiez des tâches locales dans une session CLI ouverte

529* [Tâches planifiées Desktop](https://code.claude.com/docs/fr/desktop-scheduled-tasks.md) : tâches planifiées locales qui s'exécutent sur votre machine avec accès aux fichiers locaux529* [Tâches planifiées Desktop](https://code.claude.com/docs/fr/desktop-scheduled-tasks.md) : tâches planifiées locales qui s'exécutent sur votre machine avec accès aux fichiers locaux

530* [Environnements cloud](https://code.claude.com/docs/fr/cloud-environments.md) : configurez l'accès réseau, les variables d'environnement et les scripts de configuration pour les sessions cloud530* [Environnements cloud](https://code.claude.com/docs/fr/cloud-environments.md) : configurez l'accès réseau, les variables d'environnement et les scripts de configuration pour les sessions cloud

531* [Projets](https://code.claude.com/docs/fr/claude-projects.md) : travail au long cours que Claude coordonne sur plusieurs sessions cloud parallèles ; les tâches planifiées créées à partir d'un projet apparaissent dans son onglet **Scheduled tasks**531* [Projets](https://code.claude.com/docs/fr/claude-projects.md) : travail au long cours que Claude coordonne sur plusieurs sessions cloud parallèles ; les tâches planifiées créées à partir d'un projet apparaissent dans sa vue **Scheduled tasks**

532* [Connecteurs MCP](https://code.claude.com/docs/fr/mcp.md) : connectez des services externes comme Slack, Linear et Google Drive532* [Connecteurs MCP](https://code.claude.com/docs/fr/mcp.md) : connectez des services externes comme Slack, Linear et Google Drive

533* [GitHub Actions](https://code.claude.com/docs/fr/github-actions.md) : exécutez Claude dans votre pipeline CI sur les événements du dépôt533* [GitHub Actions](https://code.claude.com/docs/fr/github-actions.md) : exécutez Claude dans votre pipeline CI sur les événements du dépôt

sandboxing.md +4 −0

Details

903 903 

904Après l'échec, Claude peut [proposer de réexécuter la commande en dehors du sandbox](#the-unsandboxed-retry-escape-hatch). Approuvez cette nouvelle tentative ou exécutez la commande git vous-même dans un autre terminal. Si vous avez défini `allowUnsandboxedCommands` sur `false`, Claude ne peut pas proposer la nouvelle tentative, alors exécutez la commande vous-même.904Après l'échec, Claude peut [proposer de réexécuter la commande en dehors du sandbox](#the-unsandboxed-retry-escape-hatch). Approuvez cette nouvelle tentative ou exécutez la commande git vous-même dans un autre terminal. Si vous avez défini `allowUnsandboxedCommands` sur `false`, Claude ne peut pas proposer la nouvelle tentative, alors exécutez la commande vous-même.

905 905 

906### Une commande git échoue avec `Unable to create '…/index.lock'`

907 

908Si vous avez démarré Claude Code dans un sous-répertoire d'un dépôt, cette erreur peut signifier que `.git` se trouve en dehors de [ce dans quoi les commandes sandboxées peuvent écrire](#filesystem-isolation). Démarrez plutôt Claude Code depuis la racine du dépôt, ou depuis la racine du worktree dans un [worktree lié](https://code.claude.com/docs/fr/worktrees.md).

909 

906### Un dossier nommé `objects` ou `refs` disparaît après une commande910### Un dossier nommé `objects` ou `refs` disparaît après une commande

907 911 

908Un dossier `objects` ou `refs` de premier niveau apparu pendant la session peut être [supprimé à la fin d'une commande sandboxée](#when-the-sandbox-deletes-head-objects-or-refs). Peu importe qu'il ait été créé par une commande, par Claude ou par vous. Pour conserver un dossier, laissez-y quelque chose. Si un fichier ou un lien symbolique `HEAD` s'est trouvé au premier niveau pendant la session, déplacez-le ailleurs, puis redémarrez chaque session Claude Code ouverte dans votre répertoire de travail.912Un dossier `objects` ou `refs` de premier niveau apparu pendant la session peut être [supprimé à la fin d'une commande sandboxée](#when-the-sandbox-deletes-head-objects-or-refs). Peu importe qu'il ait été créé par une commande, par Claude ou par vous. Pour conserver un dossier, laissez-y quelque chose. Si un fichier ou un lien symbolique `HEAD` s'est trouvé au premier niveau pendant la session, déplacez-le ailleurs, puis redémarrez chaque session Claude Code ouverte dans votre répertoire de travail.

Details

54}54}

55```55```

56 56 

57Chaque coéquipier [exécute également `claude plugin install security-guidance@claude-plugins-official --scope project`](https://code.claude.com/docs/fr/plugins/loading#enabled-in-project-settings-but-not-installed) une fois par clone.

58 

57Les administrateurs peuvent activer le plugin à l'échelle de l'organisation en définissant [`enabledPlugins`](https://code.claude.com/docs/fr/settings-reference#enabledplugins) dans [les paramètres gérés](https://code.claude.com/docs/fr/admin-setup.md).59Les administrateurs peuvent activer le plugin à l'échelle de l'organisation en définissant [`enabledPlugins`](https://code.claude.com/docs/fr/settings-reference#enabledplugins) dans [les paramètres gérés](https://code.claude.com/docs/fr/admin-setup.md).

58 60 

59## Ce que le plugin vérifie61## Ce que le plugin vérifie


135patterns:137patterns:

136 - rule_name: internal_api_key138 - rule_name: internal_api_key

137 substrings: ["sk_live_", "AKIA"]139 substrings: ["sk_live_", "AKIA"]

138 reminder: "Clé API codée en dur. Chargez les identifiants à partir du gestionnaire de secrets."140 reminder: "Hardcoded API key prefix. Load credentials from the secret manager."

139 - rule_name: tenant_unfiltered_query141 - rule_name: tenant_unfiltered_query

140 regex: "\\.objects\\.all\\(\\)"142 regex: "\\.objects\\.all\\(\\)"

141 paths: ["**/src/tenants/**"]143 paths: ["**/src/tenants/**"]

142 reminder: "Le code multi-locataire doit filtrer par org_id."144 reminder: "Multi-tenant code must filter by org_id."

143```145```

144 146 

145| Champ | Type | Description |147| Champ | Type | Description |

Details

235set -u235set -u

236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}236export GIT_ALLOW_PROTOCOL=${GIT_ALLOW_PROTOCOL:-https:http:ssh}

237IFS=':'237IFS=':'

238rc=0 # passe à 1 quand une étape échoue ; une sortie non nulle amène le runner à la consigner

238# Les remplacements -c l'emportent sur les paramètres locaux au dépôt, empêchant la configuration239# Les remplacements -c l'emportent sur les paramètres locaux au dépôt, empêchant la configuration

239# fsmonitor, hook-path et gpg-program écrite par la session d'exécuter du code avec les240# fsmonitor, hook-path et gpg-program écrite par la session d'exécuter du code avec les

240# privilèges du hook. -c commit.gpgsign=false laisse aussi ces commits de secours241# privilèges du hook. -c commit.gpgsign=false laisse aussi ces commits de secours


245g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \246g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \

246 -c commit.gpgsign=false "$@"; }247 -c commit.gpgsign=false "$@"; }

247for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do248for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do

248 cd "$ws" 2>/dev/null || continue249 cd "$ws" || { rc=1; continue; }

249 [ -z "$(g status --porcelain 2>/dev/null)" ] && continue250 g add -A || rc=1

250 g add -A251 g diff-index --cached --quiet HEAD && continue # rien à sauvegarder

251 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || continue252 g commit -q -m "runner snapshot: $CLAUDE_RUNNER_SESSION_ID ($CLAUDE_RUNNER_EXIT_REASON)" || { rc=1; continue; }

252 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || true253 g push -q origin "HEAD:refs/heads/rescue/$CLAUDE_RUNNER_SESSION_ID" || rc=1

253done254done

255exit "$rc"

254```256```

255 257 

256La ligne `GIT_ALLOW_PROTOCOL` du script limite git aux remotes HTTPS, HTTP et SSH. Si l'environnement du runner définit déjà sa propre liste `GIT_ALLOW_PROTOCOL` non vide, le script conserve cette liste.258La ligne `GIT_ALLOW_PROTOCOL` du script limite git aux remotes HTTPS, HTTP et SSH. Si l'environnement du runner définit déjà sa propre liste `GIT_ALLOW_PROTOCOL` non vide, le script conserve cette liste.

Details

23 * **Avec [git géré par Anthropic](#use-the-anthropic-git-proxy)** : avec un tel identifiant, Claude atteint GitHub directement au lieu de passer par git géré par Anthropic.23 * **Avec [git géré par Anthropic](#use-the-anthropic-git-proxy)** : avec un tel identifiant, Claude atteint GitHub directement au lieu de passer par git géré par Anthropic.

24 * **Sans git géré par Anthropic** : un identifiant de clone peut rester dans l'image si vous limitez sa portée aussi strictement que le décrit [Intégrer la configuration git dans votre image](#ship-git-config-in-your-image).24 * **Sans git géré par Anthropic** : un identifiant de clone peut rester dans l'image si vous limitez sa portée aussi strictement que le décrit [Intégrer la configuration git dans votre image](#ship-git-config-in-your-image).

25* **Gardez le secret de l'environnement loin des hôtes exécutant les sessions** : le secret de l'environnement peut enregistrer des runners et récupérer toute session mise en file d'attente sur l'environnement. Sur une flotte fixe, il réside sur chaque hôte runner, où le code de toute session peut lire le fichier secret. Préférez les [runners à la demande](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners), où le secret reste sur l'hôte orchestrateur, qui n'exécute jamais de code utilisateur, et chaque runner reçoit un bon de travail à usage unique qui enregistre exactement un runner. Sur une flotte fixe, traitez le fichier secret-environnement comme lisible par toute session et faites tourner le secret après tout compromis de session suspecté.25* **Gardez le secret de l'environnement loin des hôtes exécutant les sessions** : le secret de l'environnement peut enregistrer des runners et récupérer toute session mise en file d'attente sur l'environnement. Sur une flotte fixe, il réside sur chaque hôte runner, où le code de toute session peut lire le fichier secret. Préférez les [runners à la demande](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners), où le secret reste sur l'hôte orchestrateur, qui n'exécute jamais de code utilisateur, et chaque runner reçoit un bon de travail à usage unique qui enregistre exactement un runner. Sur une flotte fixe, traitez le fichier secret-environnement comme lisible par toute session et faites tourner le secret après tout compromis de session suspecté.

26 * **Après un compromis suspecté** : demandez à un [propriétaire](https://code.claude.com/docs/fr/cloud-environments.md#organization-shared-environments) de créer un nouveau secret et de révoquer l'ancien depuis l'onglet **Configuration** de l'environnement, puis déployez le nouveau. Anthropic refuse tout orchestrateur et tout runner utilisant l'ancien secret, y compris les runners à la demande issus de ses bons de travail. Vos runners se terminent, ce qui interrompt leurs sessions.26 * **Après un compromis suspecté, révoquez d'abord la session suspecte** : avant d'arrêter son runner ou de révoquer le secret, sélectionnez **Révoquer le jeton** dans le menu de la session, dans l'onglet **Activité**. Aucun runner ne peut alors la reprendre.

27 * **Remplacez ensuite le secret** : demandez à un [propriétaire](https://code.claude.com/docs/fr/cloud-environments.md#organization-shared-environments) de créer un nouveau secret et de révoquer l'ancien depuis l'onglet **Configuration** de l'environnement, puis déployez le nouveau. Anthropic refuse tout orchestrateur et tout runner utilisant l'ancien secret, y compris les runners à la demande issus de ses bons de travail. Vos runners se terminent, ce qui interrompt leurs sessions.

27* **Sortie réseau par défaut-refuser** : limitez le trafic sortant du conteneur runner et session à votre propre limite réseau sur chaque environnement ; [Sortie par défaut-refuser](#default-deny-egress) couvre ce qu'il faut autoriser et pourquoi.28* **Sortie réseau par défaut-refuser** : limitez le trafic sortant du conteneur runner et session à votre propre limite réseau sur chaque environnement ; [Sortie par défaut-refuser](#default-deny-egress) couvre ce qu'il faut autoriser et pourquoi.

28* **IAM hôte avec privilèges minimaux** : l'identité de calcul attachée à l'hôte runner, telle qu'un profil d'instance ou un compte de service de nœud, ne devrait accorder que ce dont le runner lui-même a besoin. Les sessions devraient obtenir leurs propres identifiants via votre script wrapper plutôt que d'hériter de ceux de l'hôte.29* **IAM hôte avec privilèges minimaux** : l'identité de calcul attachée à l'hôte runner, telle qu'un profil d'instance ou un compte de service de nœud, ne devrait accorder que ce dont le runner lui-même a besoin. Les sessions devraient obtenir leurs propres identifiants via votre script wrapper plutôt que d'hériter de ceux de l'hôte.

29* **Bloquez le point de terminaison des métadonnées cloud des sessions** : garder les sessions hors de l'identité hôte nécessite de bloquer leur accès au point de terminaison des métadonnées, et les politiques de sortie au niveau du sous-réseau n'interceptent pas le trafic de métadonnées link-local, donc bloquez-le dans le conteneur lui-même :30* **Bloquez le point de terminaison des métadonnées cloud des sessions** : garder les sessions hors de l'identité hôte nécessite de bloquer leur accès au point de terminaison des métadonnées, et les politiques de sortie au niveau du sous-réseau n'interceptent pas le trafic de métadonnées link-local, donc bloquez-le dans le conteneur lui-même :


243 244 

244Pour chaque session, un runner sur Claude Code v2.1.267 ou plus récent journalise également soit une ligne `[runner:session]` contenant `governed git ACTIVE` lorsqu'Anthropic sert le git de la session, soit une ligne `[runner:warn]` contenant `the server withheld Anthropic-managed git for this session` lorsqu'il ne le sert pas. Trouvez la ligne que vous voyez parmi ces cas :245Pour chaque session, un runner sur Claude Code v2.1.267 ou plus récent journalise également soit une ligne `[runner:session]` contenant `governed git ACTIVE` lorsqu'Anthropic sert le git de la session, soit une ligne `[runner:warn]` contenant `the server withheld Anthropic-managed git for this session` lorsqu'il ne le sert pas. Trouvez la ligne que vous voyez parmi ces cas :

245 246 

246* **Ni `governed git ACTIVE` ni la ligne `withheld`** : un runner antérieur à Claude Code v2.1.267 ne journalise aucune des deux lignes, et Anthropic ne sert pas ses sessions. Mettez à jour le runner vers v2.1.267 ou plus récent en suivant [Épingler la version](#pin-the-version).247* **Ni `governed git ACTIVE` ni la ligne `withheld`** : si le runner est antérieur à Claude Code v2.1.267, Anthropic ne sert pas ses sessions. Mettez à jour le runner vers v2.1.267 ou plus récent en suivant [Épingler la version](#pin-the-version).

247* **La ligne `withheld`** : Anthropic n'a pas servi la session. Un runner qui fonctionnait auparavant avec le proxy git peut échouer ainsi sans aucun changement de votre côté.248* **La ligne `withheld`** : Anthropic n'a pas servi la session. Un runner qui fonctionnait auparavant avec le proxy git peut échouer ainsi sans aucun changement de votre côté.

248 * **Un dépôt n'est pas sur github.com** : une session ayant ne serait-ce qu'un dépôt sur un autre hôte git, comme GitHub Enterprise Server, n'est pas servie, y compris ses dépôts github.com. [Désactivez le proxy git Anthropic](#turn-the-anthropic-git-proxy-off) pour les runners de cet environnement.249 * **Un dépôt n'est pas sur github.com** : une session ayant ne serait-ce qu'un dépôt sur un autre hôte git, comme GitHub Enterprise Server, n'est pas servie, y compris ses dépôts github.com. [Désactivez le proxy git Anthropic](#turn-the-anthropic-git-proxy-off) pour les runners de cet environnement.

249 * **Tous les dépôts sont sur github.com** : signalez l'échec à [votre équipe de compte Anthropic](#report-an-issue) avec l'identifiant de session figurant dans la ligne `withheld`. Anthropic enregistre la raison de son côté.250 * **Tous les dépôts sont sur github.com** : signalez l'échec à [votre équipe de compte Anthropic](#report-an-issue) avec l'identifiant de session figurant dans la ligne `withheld`. Anthropic enregistre la raison de son côté.


396Échangez `linux-x64` pour `linux-arm64` si vos nœuds sont ARM, ou pour `linux-x64-musl` ou `linux-arm64-musl` sur une image basée sur musl comme Alpine ; consultez [Configuration Alpine Linux](https://code.claude.com/docs/fr/setup.md#alpine-linux-and-musl-based-distributions) pour les paquets supplémentaires dont les images musl ont besoin. L'URL est l'emplacement de version standard de Claude Code, donc vous pouvez vérifier le binaire téléchargé par rapport au manifeste signé de la version comme décrit dans [Intégrité binaire et signature de code](https://code.claude.com/docs/fr/setup.md#binary-integrity-and-code-signing). Le runner nécessite Claude Code version 2.1.224 ou ultérieure, ou 2.1.229 ou ultérieure pour servir des sessions Claude Tag. Construisez l'image, puis poussez-la vers votre registre et référencez-la dans les recettes ci-dessous :397Échangez `linux-x64` pour `linux-arm64` si vos nœuds sont ARM, ou pour `linux-x64-musl` ou `linux-arm64-musl` sur une image basée sur musl comme Alpine ; consultez [Configuration Alpine Linux](https://code.claude.com/docs/fr/setup.md#alpine-linux-and-musl-based-distributions) pour les paquets supplémentaires dont les images musl ont besoin. L'URL est l'emplacement de version standard de Claude Code, donc vous pouvez vérifier le binaire téléchargé par rapport au manifeste signé de la version comme décrit dans [Intégrité binaire et signature de code](https://code.claude.com/docs/fr/setup.md#binary-integrity-and-code-signing). Le runner nécessite Claude Code version 2.1.224 ou ultérieure, ou 2.1.229 ou ultérieure pour servir des sessions Claude Tag. Construisez l'image, puis poussez-la vers votre registre et référencez-la dans les recettes ci-dessous :

397 398 

398```bash theme={null}399```bash theme={null}

400# If your model needs a newer release, change stable to latest in the URL

399docker build \401docker build \

400 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \402 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \

401 -t <your-registry>/claude-runner:latest .403 -t <your-registry>/claude-runner:latest .


429Le runner utilise `--capacity` pour limiter le nombre de sessions qu'il exécute à la fois. Il ne divise pas le CPU ou la mémoire entre elles, donc les sessions sur un runner partagent le CPU et la mémoire du conteneur. Pour éviter que la consommation de mémoire d'une session ne mette fin aux autres, exécutez une session par runner avec [sa propre limite de mémoire](#give-each-session-its-own-memory-limit).431Le runner utilise `--capacity` pour limiter le nombre de sessions qu'il exécute à la fois. Il ne divise pas le CPU ou la mémoire entre elles, donc les sessions sur un runner partagent le CPU et la mémoire du conteneur. Pour éviter que la consommation de mémoire d'une session ne mette fin aux autres, exécutez une session par runner avec [sa propre limite de mémoire](#give-each-session-its-own-memory-limit).

430 432 

431* **Une session par runner** : donnez à chaque conteneur les valeurs d'une session. Utilisez ce dimensionnement à `--capacity 1`, que la [section de durcissement](#harden-your-deployment) recommande, et pour les [runners à la demande](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners), où vous définissez les valeurs sur la charge de travail que votre [hook `spawn-runner`](https://code.claude.com/docs/fr/self-hosted-environments-configuration#the-spawn-runner-hook) soumet, comme un modèle de pod de Job Kubernetes.433* **Une session par runner** : donnez à chaque conteneur les valeurs d'une session. Utilisez ce dimensionnement à `--capacity 1`, que la [section de durcissement](#harden-your-deployment) recommande, et pour les [runners à la demande](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners), où vous définissez les valeurs sur la charge de travail que votre [hook `spawn-runner`](https://code.claude.com/docs/fr/self-hosted-environments-configuration#the-spawn-runner-hook) soumet, comme un modèle de pod de Job Kubernetes.

432* **Plusieurs sessions par runner** : à un `--capacity` supérieur à un, multipliez les valeurs d'une session par la capacité, car jusqu'à ce nombre de sessions peuvent s'exécuter dans le conteneur en même temps. Les recettes [Kubernetes](#kubernetes) et [Docker Compose](#docker-compose) exécutent `--capacity 4` sans limites de CPU ou de mémoire, donc ajoutez des limites dimensionnées pour la capacité que vous exécutez.434* **Plusieurs sessions par runner** : à un `--capacity` supérieur à un, multipliez les valeurs d'une session par la capacité, car jusqu'à ce nombre de sessions peuvent s'exécuter dans le conteneur en même temps, [sessions inactives comprises](#release-idle-sessions-on-a-fixed-fleet). Les recettes [Kubernetes](#kubernetes) et [Docker Compose](#docker-compose) exécutent `--capacity 4` sans limites de CPU ou de mémoire, donc ajoutez des limites dimensionnées pour la capacité que vous exécutez.

433* **Plusieurs conteneurs de runner sur un même hôte** : dimensionnez l'hôte pour la somme des capacités des runners, car chaque runner ne décompte que ses propres sessions par rapport à `--capacity` :435* **Plusieurs conteneurs de runner sur un même hôte** : dimensionnez l'hôte pour la somme des capacités des runners, car chaque runner ne décompte que ses propres sessions par rapport à `--capacity` :

434 436 

435 * **Mémoire** : multipliez la mémoire d'une session par cette somme, puis ajoutez ce qu'utilisent les propres processus de l'hôte437 * **Mémoire** : multipliez la mémoire d'une session par cette somme, puis ajoutez ce qu'utilisent les propres processus de l'hôte

Details

56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Combien de temps attendre que le processus Claude se termine proprement après la fin d'une session, avant de le tuer de force. Augmentez la valeur si les hooks `SessionEnd` propres de l'enfant ont besoin de plus de temps. |56| `--session-stop-grace-sec <n>` | `SELF_HOSTED_RUNNER_SESSION_STOP_GRACE_MS` | `5` | Combien de temps attendre que le processus Claude se termine proprement après la fin d'une session, avant de le tuer de force. Augmentez la valeur si les hooks `SessionEnd` propres de l'enfant ont besoin de plus de temps. |

57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Durée d'attente d'un processus enfant qui ne s'est pas initialisé avant de libérer le créneau de la session. Voir [Délai d'expiration du démarrage de session](#session-startup-timeout) pour savoir où commence le décompte et quelles sessions il laisse en cours d'exécution. `0` désactive le délai d'expiration. |57| `--startup-timeout-min <n>` | `SELF_HOSTED_RUNNER_STARTUP_TIMEOUT_MS` | `15` | Durée d'attente d'un processus enfant qui ne s'est pas initialisé avant de libérer le créneau de la session. Voir [Délai d'expiration du démarrage de session](#session-startup-timeout) pour savoir où commence le décompte et quelles sessions il laisse en cours d'exécution. `0` désactive le délai d'expiration. |

58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | activé | Amorcer la confiance persistante pour les chemins de dépôt de chaque session afin que les `permissions.allow` et `additionalDirectories` validés par le dépôt soient honorés. Définir `false` pour supprimer les subventions de permission validées par le dépôt et configurer les règles d'autorisation dans le `settings.json` de la configuration d'hôte à la place ; les paramètres `sandbox.*` validés par le dépôt s'appliquent toujours de toute façon, c'est pourquoi la [garde de paramètres de dépôt](https://code.claude.com/docs/fr/self-hosted-environments-deploy.md#harden-your-deployment) les analyse indépendamment de ce drapeau. |58| `--trust-workspace [bool]` | `SELF_HOSTED_RUNNER_TRUST_WORKSPACE` | activé | Amorcer la confiance persistante pour les chemins de dépôt de chaque session afin que les `permissions.allow` et `additionalDirectories` validés par le dépôt soient honorés. Définir `false` pour supprimer les subventions de permission validées par le dépôt et configurer les règles d'autorisation dans le `settings.json` de la configuration d'hôte à la place ; les paramètres `sandbox.*` validés par le dépôt s'appliquent toujours de toute façon, c'est pourquoi la [garde de paramètres de dépôt](https://code.claude.com/docs/fr/self-hosted-environments-deploy.md#harden-your-deployment) les analyse indépendamment de ce drapeau. |

59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | désactivé | Cloner les dépôts hébergés sur github.com via le [proxy git Anthropic](https://code.claude.com/docs/fr/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) au lieu de l'authentification git gérée par le client. Nécessite `--capacity 1` et git 2.32 ou plus récent ; le runner refuse de démarrer sinon. Remplace les flags de réécriture. |59| `--use-anthropic-git-proxy` | `CLAUDE_RUNNER_USE_GIT_PROXY=1` | désactivé | Cloner les dépôts hébergés sur github.com via le [proxy git Anthropic](https://code.claude.com/docs/fr/self-hosted-environments-deploy.md#use-the-anthropic-git-proxy) au lieu de l'authentification git gérée par le client. Nécessite `--capacity 1` et git 2.32 ou plus récent ; le runner refuse de démarrer sinon. Nécessite également Claude Code v2.1.267 ou ultérieur. Remplace les flags de réécriture. |

60 60 

61La plupart des drapeaux de durée ont un maximum, choisi pour garder chaque délai d'attente en dessous du plafond de minuteur 32 bits du runtime d'environ 24,85 jours. Les drapeaux `--*-min` sont plafonnés à 10080 minutes, 7 jours ; `--drain-grace-sec` à 604800 secondes, également 7 jours ; et `--drain-wait-sec` à 86400 secondes, 24 heures. `--session-stop-grace-sec` et `--post-session-hook-timeout-sec` ne sont pas plafonnés. Dépasser un plafond se comporte différemment par surface :61La plupart des drapeaux de durée ont un maximum, choisi pour garder chaque délai d'attente en dessous du plafond de minuteur 32 bits du runtime d'environ 24,85 jours. Les drapeaux `--*-min` sont plafonnés à 10080 minutes, 7 jours ; `--drain-grace-sec` à 604800 secondes, également 7 jours ; et `--drain-wait-sec` à 86400 secondes, 24 heures. `--session-stop-grace-sec` et `--post-session-hook-timeout-sec` ne sont pas plafonnés. Dépasser un plafond se comporte différemment par surface :

62 62 


161 161 

162## Métriques Prometheus162## Métriques Prometheus

163 163 

164Chaque runner expose les métriques Prometheus à `GET /metrics` sur le même port que `/healthz`. Séries clés :164Chaque runner expose des métriques Prometheus sur `GET /metrics`, sur le même port que `/healthz`. Principales séries :

165 165 

166| Série | Notes |166| Série | Remarques |

167| :- | :- |167| :- | :- |

168| `claude_code_self_hosted_runner_info{runner_id,version,client_label}` | Toujours `1` ; utile pour l'inventaire de la flotte et la détection de dérive de version |168| `claude_code_self_hosted_runner_info{runner_id,version,client_label}` | Toujours `1` ; utile pour l'inventaire de la flotte et la détection des écarts de version |

169| `claude_code_self_hosted_runner_capacity` | `--capacity` configurée |169| `claude_code_self_hosted_runner_capacity` | `--capacity` configurée |

170| `claude_code_self_hosted_runner_active_sessions` | Sessions actuellement en cours d'exécution |170| `claude_code_self_hosted_runner_active_sessions` | Sessions en cours d'exécution |

171| `claude_code_self_hosted_runner_locked_account{email}` | Présente une fois que le runner s'est verrouillé sur un utilisateur et qu'un jeton de session portant une revendication `act.email` a été émis. La série est absente sur un runner verrouillé sur un agent Claude Tag, dont les jetons de session ne portent pas `act.email`. La valeur du label est l'email du compte ; si votre magasin de métriques est largement lisible, supprimez ou hashifiez le label au moment du scrape, par exemple avec les `metric_relabel_configs` de Prometheus. |171| `claude_code_self_hosted_runner_locked_account{email}` | Présente dès que le runner s'est verrouillé sur un utilisateur et qu'un jeton de session portant une revendication `act.email` a été émis. La série est absente sur un runner verrouillé sur un agent Claude Tag, dont les jetons de session ne portent pas d'`act.email`. La valeur du label est l'adresse e-mail du compte ; si votre stockage de métriques est largement accessible en lecture, supprimez ou hachez le label au moment du scrape, par exemple avec `metric_relabel_configs` de Prometheus. |

172| `claude_code_self_hosted_runner_last_poll_age_seconds` | Secondes depuis le dernier poll réussi. Alertez si plus de 60. |172| `claude_code_self_hosted_runner_last_poll_age_seconds` | Secondes écoulées depuis le dernier poll réussi. Déclenchez une alerte au-delà de 60. |

173| `claude_code_self_hosted_runner_poll_errors_total{error_kind}` | Cumul des échecs PollWork par type : `transport`, `timeout`, `5xx`, `429`, ou `4xx`. Les cinq séries sont présentes depuis le démarrage du processus ; alertez sur `rate(...[5m]) > 0`. |173| `claude_code_self_hosted_runner_poll_errors_total{error_kind}` | Échecs cumulés de PollWork par type : `transport`, `timeout`, `5xx`, `429` ou `4xx`. Les cinq séries sont présentes dès le démarrage du processus ; alertez sur `rate(...[5m]) > 0`. |

174| `claude_code_self_hosted_runner_sessions_started_total{client_platform}` | Processus enfants de session générés au cours de la durée de vie du runner, une série par origine de session telle que `web_claude_ai`, `ios`, `android`, `desktop_app`, ou `claude_code_cli`, ou `unknown` quand le serveur n'en a pas envoyé. Les sessions Slack portent soit `claude_in_slack` soit `claude-in-slack` selon l'intégration Slack qui les a créées, donc faites correspondre les deux avec un sélecteur regex tel que `{client_platform=~"claude[-_]in[-_]slack"}`. Utilisez `sum()` pour le total de la flotte. |174| `claude_code_self_hosted_runner_sessions_started_total{client_platform}` | Processus enfants de session lancés pendant la durée de vie du runner, une série par origine de session, comme `web_claude_ai`, `ios`, `android`, `desktop_app` ou `claude_code_cli`, ou `unknown` lorsque le serveur n'en a pas envoyé. Les sessions Slack portent soit `claude_in_slack`, soit `claude-in-slack` selon l'intégration Slack qui les a créées ; faites donc correspondre les deux avec un sélecteur regex tel que `{client_platform=~"claude[-_]in[-_]slack"}`. Utilisez `sum()` pour le total de la flotte. |

175| `claude_code_self_hosted_runner_sessions_completed_total{client_platform}` | Sessions qui se sont terminées correctement, étiquetées de la même manière. Plus large qu'une simple sortie propre : voir [sémantique des compteurs du cycle de vie de la session](#session-lifecycle-counter-semantics) pour ce qui compte. |175| `claude_code_self_hosted_runner_sessions_completed_total{client_platform}` | Sessions terminées proprement, avec les mêmes labels. Plus large qu'une simple sortie propre : consultez la [sémantique des compteurs du cycle de vie des sessions](#session-lifecycle-counter-semantics) pour savoir ce qui est comptabilisé. |

176| `claude_code_self_hosted_runner_sessions_failed_total{client_platform}` | Sessions qui se sont terminées en échec, étiquetées de la même manière. Même mise en garde : voir [sémantique des compteurs du cycle de vie de la session](#session-lifecycle-counter-semantics). |176| `claude_code_self_hosted_runner_sessions_failed_total{client_platform}` | Sessions terminées en échec, avec les mêmes labels. Même réserve : consultez la [sémantique des compteurs du cycle de vie des sessions](#session-lifecycle-counter-semantics). |

177| `claude_code_self_hosted_runner_sessions_interrupted_total{client_platform}` | Sessions que le runner a terminées pour une raison opérationnelle plutôt qu'un résultat de session, étiquetées de la même manière. Voir [sémantique des compteurs du cycle de vie de la session](#session-lifecycle-counter-semantics). |177| `claude_code_self_hosted_runner_sessions_interrupted_total{client_platform}` | Sessions que le runner a arrêtées pour une raison opérationnelle plutôt qu'en raison de l'issue de la session, avec les mêmes labels. Consultez la [sémantique des compteurs du cycle de vie des sessions](#session-lifecycle-counter-semantics). |

178| `claude_code_self_hosted_runner_initializing_sessions` | Sessions actuellement en phase d'initialisation, de l'assignation jusqu'à l'événement init de l'enfant |178| `claude_code_self_hosted_runner_initializing_sessions` | Sessions actuellement en phase d'initialisation, de l'attribution jusqu'à l'événement init de l'enfant |

179| `claude_code_self_hosted_runner_session_init_duration_seconds` | Histogramme des durées d'initialisation de session |179| `claude_code_self_hosted_runner_session_init_duration_seconds` | Histogramme des durées d'initialisation des sessions |

180| `claude_code_self_hosted_runner_session_init_errors_total` | Sessions qui ont échoué avant d'atteindre l'initialisation : un échec de hook de checkout, préparation git, problème de jeton, ou un crash enfant pré-init |180| `claude_code_self_hosted_runner_session_init_errors_total` | Sessions ayant échoué avant d'atteindre l'initialisation : échec du hook de checkout, préparation git, problème de jeton ou plantage de l'enfant avant l'initialisation |

181| `claude_code_self_hosted_runner_session_start_hook_errors_total` | Hooks `SessionStart` qui ont signalé un résultat d'erreur, un par exécution de hook échouée |181| `claude_code_self_hosted_runner_session_start_hook_errors_total` | Hooks `SessionStart` ayant signalé une erreur, un par exécution de hook en échec |

182| `claude_code_self_hosted_runner_session_idle_seconds{session_id,client_platform}` | Jauge par session de secondes depuis que la session est devenue inactive. Utile pour terminer les sessions bloquées sur une invite de permission sans réponse. |182| `claude_code_self_hosted_runner_session_idle_seconds{session_id,client_platform}` | Jauge par session du nombre de secondes écoulées depuis que la session est inactive. Utile pour arrêter les sessions bloquées sur une demande de permission restée sans réponse. |

183 183 

184L'orchestrateur expose ses propres séries à `GET /metrics` sur le même port que son `/healthz` :184L'orchestrateur expose ses propres séries sur `GET /metrics`, sur le même port que son `/healthz` :

185 185 

186| Série | Notes |186| Série | Remarques |

187| :- | :- |187| :- | :- |

188| `claude_code_self_hosted_orchestrator_info{version,pool_id,orchestrator_uuid,hostname}` | Toujours `1` |188| `claude_code_self_hosted_orchestrator_info{version,pool_id,orchestrator_uuid,hostname}` | Toujours `1` |

189| `claude_code_self_hosted_orchestrator_connected` | `1` quand le poll le plus récent a réussi ; tombe à `0` après tout poll échoué, quel que soit le type d'échec |189| `claude_code_self_hosted_orchestrator_connected` | `1` lorsque le poll le plus récent a réussi ; passe à `0` après tout poll en échec, quel que soit le type d'échec |

190| `claude_code_self_hosted_orchestrator_last_poll_age_seconds` | Secondes depuis la dernière tentative de poll, succès ou échec, contrairement à la métrique identiquement nommée du runner, qui mesure depuis le dernier succès ; associez avec `connected` pour détecter les polls échouant. La boucle de poll de l'orchestrateur attend l'exécution du hook, donc alertez au-dessus de `--hook-timeout` plus une marge, environ 90 secondes par défaut, plutôt qu'un plat 60. |190| `claude_code_self_hosted_orchestrator_last_poll_age_seconds` | Secondes écoulées depuis la dernière tentative de poll, réussie ou non, contrairement à la métrique du runner portant le même nom, qui mesure le temps depuis le dernier succès ; associez-la à `connected` pour détecter les polls en échec. La boucle de poll de l'orchestrateur attend l'exécution des hooks ; déclenchez donc l'alerte au-delà de `--hook-timeout` plus une marge, soit environ 90 secondes avec les valeurs par défaut, plutôt qu'à un seuil fixe de 60. |

191| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | Cumul des échecs PollSpawnHints par type : `transport`, `timeout`, `5xx`, `429`, ou `4xx`. Les cinq séries sont présentes depuis le démarrage du processus ; alertez sur `rate(...[5m]) > 0`. |191| `claude_code_self_hosted_orchestrator_poll_errors_total{error_kind}` | Échecs cumulés de PollSpawnHints par type : `transport`, `timeout`, `5xx`, `429` ou `4xx`. Les cinq séries sont présentes dès le démarrage du processus ; alertez sur `rate(...[5m]) > 0`. |

192| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | Demandes de spawn revendicables maintenant |192| `claude_code_self_hosted_orchestrator_queue_pending_sessions` | Demandes de lancement pouvant être réclamées immédiatement |

193| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | Demandes de spawn en retry backoff après un échec de hook réessayable |193| `claude_code_self_hosted_orchestrator_queue_backing_off_sessions` | Demandes de lancement en backoff de nouvelle tentative après un échec de hook pouvant être réessayé |

194| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | Sessions dont le spawn est bloqué. Chacune reste bloquée jusqu'à ce qu'un utilisateur lui envoie un nouveau message ou qu'un Owner la réessaie à partir de l'onglet **Activity** de l'environnement. Le compteur peut rester au-dessus de zéro après que vous avez corrigé la cause. Alertez si au-dessus de zéro. |194| `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions` | Sessions dont le lancement est bloqué. Chacune reste bloquée jusqu'à ce qu'un utilisateur lui envoie un nouveau message ou qu'un Owner la relance depuis l'onglet **Activity** de l'environnement. Le compteur peut rester supérieur à zéro après que vous avez corrigé la cause. Déclenchez une alerte s'il est supérieur à zéro. |

195| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | Total des sessions attendant un runner pour cet environnement. Agrégat à l'échelle de l'environnement, identique sur chaque instance d'orchestrateur : utilisez `MAX` plutôt que `SUM` entre les instances. |195| `claude_code_self_hosted_orchestrator_pool_pending_sessions` | Nombre total de sessions en attente d'un runner pour cet environnement. Agrégat à l'échelle de l'environnement, identique sur chaque instance de l'orchestrateur : utilisez `MAX` plutôt que `SUM` entre les instances. |

196| `claude_code_self_hosted_orchestrator_pool_active_sessions` | Sessions actuellement assignées à un runner vivant dans cet environnement. Agrégat à l'échelle de l'environnement, identique sur chaque instance d'orchestrateur : utilisez `MAX` plutôt que `SUM` entre les instances. |196| `claude_code_self_hosted_orchestrator_pool_active_sessions` | Sessions actuellement attribuées à un runner actif dans cet environnement. Agrégat à l'échelle de l'environnement, identique sur chaque instance de l'orchestrateur : utilisez `MAX` plutôt que `SUM` entre les instances. |

197| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | Cumul des résultats du hook `spawn-runner` : `ok`, `retryable`, `non_retryable`. Compte les invocations de hook d'orchestrateur, pas les enfants de session que les runners génèrent : non comparable à `sessions_started_total`, puisque la capacité au-dessus d'un, les pools chauds, et les runners générés à nouveau pour la même session divergent les deux. |197| `claude_code_self_hosted_orchestrator_spawn_hooks_total{result}` | Résultats cumulés du hook `spawn-runner` : `ok`, `retryable`, `non_retryable`. Compte les invocations de hook de l'orchestrateur, et non les enfants de session lancés par les runners : non comparable à `sessions_started_total`, car une capacité supérieure à un, les pools préchauffés et les runners relancés pour la même session font tous diverger les deux. |

198| `claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds` | Histogramme des durées de hook |198| `claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds` | Histogramme des durées des hooks |

199| `claude_code_self_hosted_orchestrator_warm_hints_dispatched_total` | Demandes de spawn en attente dispatched depuis le démarrage du processus |199| `claude_code_self_hosted_orchestrator_warm_hints_dispatched_total` | Demandes de lancement en attente (standby) distribuées depuis le démarrage du processus |

200| `claude_code_self_hosted_orchestrator_session_queue_wait_seconds` | Histogramme de secondes que chaque session a attendu dans la queue avant que l'orchestrateur la réclame pour spawn, enregistré à partir du timestamp d'attente en queue que le plan de contrôle envoie avec la demande de spawn de chaque session. Utilisez pour les alertes de temps d'attente en queue p50/p99. Les spawns de pré-warming ne sont pas échantillonnés. |200| `claude_code_self_hosted_orchestrator_session_queue_wait_seconds` | Histogramme du nombre de secondes pendant lesquelles chaque session a attendu dans la file avant que l'orchestrateur ne la réclame pour la lancer, enregistré à partir de l'horodatage d'attente en file que le plan de contrôle envoie avec la demande de lancement de chaque session. À utiliser pour les alertes sur le temps d'attente en file p50/p99. Les lancements de préchauffage ne sont pas échantillonnés. |

201| `claude_code_self_hosted_orchestrator_clock_skew_seconds` | Décalage d'horloge local moins serveur ; diagnostique, présent une fois mesuré |201| `claude_code_self_hosted_orchestrator_clock_skew_seconds` | Décalage d'horloge local moins serveur ; diagnostic, présent une fois mesuré |

202| `claude_code_self_hosted_orchestrator_scm_connector_connected` | `1` quand le [connecteur SCM](#scm-connector-flags) WebSocket est ouvert ; `0` pendant la composition ou le backoff. Absent quand `--scm-connector-host` n'est pas défini. |202| `claude_code_self_hosted_orchestrator_scm_connector_connected` | `1` lorsque le WebSocket du [connecteur SCM](#scm-connector-flags) est ouvert ; `0` pendant la connexion ou le backoff. Absente lorsque `--scm-connector-host` n'est pas défini. |

203| `claude_code_self_hosted_orchestrator_scm_connector_requests_forwarded_total` | Cumul des requêtes HTTP proxifiées vers l'hôte SCM configuré depuis le démarrage du processus. Absent quand `--scm-connector-host` n'est pas défini. |203| `claude_code_self_hosted_orchestrator_scm_connector_requests_forwarded_total` | Requêtes HTTP cumulées transmises par proxy à l'hôte SCM configuré depuis le démarrage du processus. Absente lorsque `--scm-connector-host` n'est pas défini. |

204 204 

205Pour l'autoscaling, choisissez la série qui correspond à votre style de scaling et contrôlez-la avant qu'elle n'alimente le scaler :205Pour l'autoscaling, choisissez la série qui correspond à votre stratégie de mise à l'échelle et filtrez-la avant qu'elle n'alimente le scaler :

206 206 

207* **Scaling basé sur la profondeur de queue** : alimentez `claude_code_self_hosted_orchestrator_pool_pending_sessions` dans votre scaler HPA ou KEDA, pas `queue_pending_sessions`.207* **Mise à l'échelle selon la profondeur de file** : alimentez votre scaler HPA ou KEDA avec `claude_code_self_hosted_orchestrator_pool_pending_sessions`, et non `queue_pending_sessions`.

208* **Scaling basé sur la capacité** : mettez à l'échelle sur le ratio des `active_sessions` du runner à `capacity`.208* **Mise à l'échelle selon la capacité** : basez la mise à l'échelle sur le rapport entre `active_sessions` et `capacity` du runner.

209* **Contrôle sur `connected`** : filtrez la requête avec `claude_code_self_hosted_orchestrator_connected == 1` par instance, afin qu'une valeur obsolète d'un replica déconnecté n'alimente pas le scaler.209* **Filtrer sur `connected`** : filtrez la requête avec `claude_code_self_hosted_orchestrator_connected == 1` par instance, afin que la valeur obsolète d'un réplica déconnecté n'alimente pas le scaler.

210 210 

211Pendant une panne complète de poll, chaque replica déconnecté, la requête contrôlée ne retourne aucune donnée. HPA maintient le nombre de replicas actuel sur une métrique manquante, mais le scaler Prometheus de KEDA à son `ignoreNullValues: "true"` par défaut lit le résultat vide comme zéro et réduit ; définissez `ignoreNullValues: "false"` sur le ScaledObject, optionnellement avec un plancher de replicas `fallback`.211Pendant une panne complète du poll, où tous les réplicas sont déconnectés, la requête filtrée ne renvoie aucune donnée. HPA conserve le nombre de réplicas actuel en cas de métrique manquante, mais le scaler Prometheus de KEDA, avec sa valeur par défaut `ignoreNullValues: "true"`, interprète le résultat vide comme zéro et réduit le nombre de réplicas ; définissez `ignoreNullValues: "false"` sur le ScaledObject, éventuellement avec un plancher de réplicas `fallback`.

212 212 

213Le `PodMonitor` suivant de Prometheus Operator couvre les deux processus. Il sélectionne les pods par le label `app.kubernetes.io/part-of: claude-code-self-hosted-runner` et le port nommé `health` que la [recette Kubernetes](https://code.claude.com/docs/fr/self-hosted-environments-deploy.md#kubernetes) définit ; ajustez les namespaces pour correspondre à votre déploiement :213Le `PodMonitor` Prometheus Operator suivant couvre les deux processus. Il sélectionne les pods selon le label `app.kubernetes.io/part-of: claude-code-self-hosted-runner` et le port nommé `health` que définit la [recette Kubernetes](https://code.claude.com/docs/fr/self-hosted-environments-deploy.md#kubernetes) ; adaptez les namespaces à votre déploiement :

214 214 

215```yaml theme={null}215```yaml theme={null}

216# Exemple de PodMonitor Prometheus Operator pour le runner Claude Code216# Exemple de PodMonitor Prometheus Operator pour le runner auto-hébergé

217# auto-hébergé + orchestrateur. Ajustez les sélecteurs de namespace et de label217# Claude Code + l'orchestrateur. Adaptez le namespace et les sélecteurs de labels

218# pour correspondre à votre déploiement. Le runner et l'orchestrateur servent218# à votre déploiement. Le runner et l'orchestrateur exposent tous deux /metrics sur

219# /metrics sur leur --health-port (par défaut 8080).219# leur --health-port (8080 par défaut).

220apiVersion: monitoring.coreos.com/v1220apiVersion: monitoring.coreos.com/v1

221kind: PodMonitor221kind: PodMonitor

222metadata:222metadata:


228 - claude-runners228 - claude-runners

229 selector:229 selector:

230 matchExpressions:230 matchExpressions:

231 # Correspond au Deployment du runner de la recette Kubernetes, plus tout231 # Correspond au Deployment du runner de la recette Kubernetes, ainsi qu'aux

232 # Job de runner à la demande et pods d'orchestrateur que vous étiquetez232 # Jobs de runners à la demande et aux pods d'orchestrateur que vous étiquetez

233 # de la même manière et donnez un containerPort 'health' nommé.233 # de la même manière et auxquels vous attribuez un containerPort nommé 'health'.

234 - key: app.kubernetes.io/part-of234 - key: app.kubernetes.io/part-of

235 operator: In235 operator: In

236 values: [claude-code-self-hosted-runner]236 values: [claude-code-self-hosted-runner]


242 242 

243### Exemples de règles d'alerte243### Exemples de règles d'alerte

244 244 

245Ces règles d'alerte d'exemple sont un point de départ ; ajustez les seuils pour la taille de votre flotte :245Ces exemples de règles d'alerte constituent un point de départ ; ajustez les seuils en fonction de la taille de votre flotte :

246 246 

247```yaml theme={null}247```yaml theme={null}

248# Exemple de règles d'alerte Prometheus pour le runner Claude Code auto-hébergé248# Exemples de règles d'alerte Prometheus pour le runner auto-hébergé Claude Code

249# + orchestrateur. Ajustez les seuils pour la taille de votre flotte et vos SLOs.249# + l'orchestrateur. Ajustez les seuils selon la taille de votre flotte et vos SLO.

250groups:250groups:

251 - name: claude-code-self-hosted-runner251 - name: claude-code-self-hosted-runner

252 rules:252 rules:


255 for: 2m255 for: 2m

256 labels: {severity: warning}256 labels: {severity: warning}

257 annotations:257 annotations:

258 summary: "Runner {{ $labels.pod }} n'a pas pollé depuis >60s"258 summary: "Runner {{ $labels.pod }} has not polled in >60s"

259 - alert: ClaudeRunnerVersionDrift259 - alert: ClaudeRunnerVersionDrift

260 expr: count(count by (version) (claude_code_self_hosted_runner_info)) > 1260 expr: count(count by (version) (claude_code_self_hosted_runner_info)) > 1

261 for: 30m261 for: 30m

262 labels: {severity: info}262 labels: {severity: info}

263 annotations:263 annotations:

264 summary: "Les runners exécutent des versions mixtes"264 summary: "Runners are running mixed versions"

265 - alert: ClaudeRunnerInitErrorsHigh265 - alert: ClaudeRunnerInitErrorsHigh

266 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_init_errors_total[10m])) > 3266 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_init_errors_total[10m])) > 3

267 for: 5m267 for: 5m

268 labels: {severity: warning}268 labels: {severity: warning}

269 annotations:269 annotations:

270 summary: "Des sessions échouent avant l'initialisation (hook de checkout / git / jeton / crash pré-init)"270 summary: "Sessions are failing before init (checkout hook / git / token / pre-init crash)"

271 - alert: ClaudeRunnerPollErrors271 - alert: ClaudeRunnerPollErrors

272 expr: sum by (pod) (rate(claude_code_self_hosted_runner_poll_errors_total[5m])) > 0272 expr: sum by (pod) (rate(claude_code_self_hosted_runner_poll_errors_total[5m])) > 0

273 for: 2m273 for: 2m

274 labels: {severity: warning}274 labels: {severity: warning}

275 annotations:275 annotations:

276 summary: "Runner {{ $labels.pod }} : PollWork échouant ({{ $value | humanize }}/s sur 5m)"276 summary: "Runner {{ $labels.pod }}: PollWork failing ({{ $value | humanize }}/s over 5m)"

277 - alert: ClaudeRunnerSessionStartHookErrors277 - alert: ClaudeRunnerSessionStartHookErrors

278 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_start_hook_errors_total[10m])) > 3278 expr: sum by (namespace) (increase(claude_code_self_hosted_runner_session_start_hook_errors_total[10m])) > 3

279 for: 5m279 for: 5m

280 labels: {severity: warning}280 labels: {severity: warning}

281 annotations:281 annotations:

282 summary: "Des hooks SessionStart échouent"282 summary: "SessionStart hooks are failing"

283 283 

284 - name: claude-code-self-hosted-orchestrator284 - name: claude-code-self-hosted-orchestrator

285 rules:285 rules:


288 for: 2m288 for: 2m

289 labels: {severity: critical}289 labels: {severity: critical}

290 annotations:290 annotations:

291 summary: "L'orchestrateur {{ $labels.pod }} ne peut pas atteindre le plan de contrôle Anthropic"291 summary: "Orchestrator {{ $labels.pod }} cannot reach the Anthropic control plane"

292 - alert: ClaudeOrchestratorPollStale292 - alert: ClaudeOrchestratorPollStale

293 expr: claude_code_self_hosted_orchestrator_last_poll_age_seconds > 90293 expr: claude_code_self_hosted_orchestrator_last_poll_age_seconds > 90

294 for: 2m294 for: 2m

295 labels: {severity: warning}295 labels: {severity: warning}

296 annotations:296 annotations:

297 summary: "L'orchestrateur {{ $labels.pod }} n'a pas pollé depuis >90s (la boucle de poll attend l'exécution du hook)"297 summary: "Orchestrator {{ $labels.pod }} has not polled in >90s (poll loop waits on hook execution)"

298 - alert: ClaudeOrchestratorCircuitBroken298 - alert: ClaudeOrchestratorCircuitBroken

299 expr: max by (namespace) (claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions and on (instance) max_over_time(claude_code_self_hosted_orchestrator_connected[2m]) == 1) > 0299 expr: max by (namespace) (claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions and on (instance) max_over_time(claude_code_self_hosted_orchestrator_connected[2m]) == 1) > 0

300 for: 1m300 for: 1m

301 labels: {severity: critical}301 labels: {severity: critical}

302 annotations:302 annotations:

303 summary: "Sessions dont le spawn est bloqué : {{ $value }}. Lisez l'erreur de chacune dans l'onglet Activity, corrigez la cause, puis sélectionnez Retry"303 summary: "Sessions blocked from spawning: {{ $value }}. Read each one's error in the Activity tab, fix the cause, then select Retry"

304 - alert: ClaudeOrchestratorPollErrors304 - alert: ClaudeOrchestratorPollErrors

305 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0305 expr: sum by (pod) (rate(claude_code_self_hosted_orchestrator_poll_errors_total[5m])) > 0

306 for: 2m306 for: 2m

307 labels: {severity: warning}307 labels: {severity: warning}

308 annotations:308 annotations:

309 summary: "Orchestrateur {{ $labels.pod }} : PollSpawnHints échouant ({{ $value | humanize }}/s sur 5m)"309 summary: "Orchestrator {{ $labels.pod }}: PollSpawnHints failing ({{ $value | humanize }}/s over 5m)"

310 - alert: ClaudeOrchestratorSpawnHookFailing310 - alert: ClaudeOrchestratorSpawnHookFailing

311 expr: sum by (pod) (increase(claude_code_self_hosted_orchestrator_spawn_hooks_total{result!="ok"}[5m])) > 3311 expr: sum by (pod) (increase(claude_code_self_hosted_orchestrator_spawn_hooks_total{result!="ok"}[5m])) > 3

312 for: 5m312 for: 5m

313 labels: {severity: warning}313 labels: {severity: warning}

314 annotations:314 annotations:

315 summary: "Orchestrateur {{ $labels.pod }} : >3 échecs de hook spawn-runner en 5m"315 summary: "Orchestrator {{ $labels.pod }}: >3 spawn-runner hook failures in 5m"

316```316```

317 317 

318### Alerter sur les runners perdus et les sessions en attente318### Alerter en cas de perte de runners et de sessions en attente

319 319 

320Pour être alerté lorsque des runners sont perdus, que des sessions attendent ou que l'orchestrateur est arrêté, chargez ces règles d'alerte Prometheus en plus des [exemples de règles d'alerte](#sample-alert-rules) :320Pour être alerté lorsque des runners sont perdus, que des sessions attendent ou que l'orchestrateur est arrêté, chargez ces règles d'alerte Prometheus en complément des [exemples de règles d'alerte](#sample-alert-rules) :

321 321 

322* **[Flotte fixe](https://code.claude.com/docs/fr/self-hosted-environments-deploy.md#scale-the-fleet)** : `ClaudeRunnersBelowFloor`322* **[Flotte fixe](https://code.claude.com/docs/fr/self-hosted-environments-deploy.md#scale-the-fleet)** : `ClaudeRunnersBelowFloor`

323* **[Runners à la demande](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners)** : `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` et `ClaudeOrchestratorAbsent`323* **[Runners à la demande](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners)** : `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` et `ClaudeOrchestratorAbsent`

324 324 

325#### Alerter lorsqu'une flotte fixe perd des runners325#### Alerter lorsqu'une flotte fixe perd des runners

326 326 

327`ClaudeRunnersBelowFloor` se déclenche lorsqu'il reste, pendant 10 minutes, moins de runners enregistrés et scrapés que le plancher :327`ClaudeRunnersBelowFloor` se déclenche lorsque le nombre de runners enregistrés et scrapés restants est inférieur au plancher pendant 10 minutes :

328 328 

329```yaml theme={null}329```yaml theme={null}

330groups:330groups:

331 # Flottes fixes uniquement. Avec des runners à la demande, le nombre suit la demande,331 # Flottes fixes uniquement. Avec des runners à la demande, le nombre suit la demande,

332 # donc ClaudeRunnersBelowFloor se déclencherait chaque fois que la demande est faible.332 # donc ClaudeRunnersBelowFloor se déclencherait dès que la demande est faible.

333 - name: claude-code-self-hosted-fixed-fleet-capacity333 - name: claude-code-self-hosted-fixed-fleet-capacity

334 rules:334 rules:

335 - alert: ClaudeRunnersBelowFloor335 - alert: ClaudeRunnersBelowFloor


337 for: 10m337 for: 10m

338 labels: {severity: critical, namespace: claude-runners}338 labels: {severity: critical, namespace: claude-runners}

339 annotations:339 annotations:

340 summary: "Runners enregistrés et scrapés : {{ $value }}, sous le plancher. Vérifiez d'abord les workloads des runners, puis les cibles de scrape si tous sont en cours d'exécution."340 summary: "Runners registered and scraped: {{ $value }}, below the floor. Check the runner workloads first, then the scrape targets if all are running."

341```341```

342 342 

343* **Plancher** : définissez le `2` dans `expr` à environ la moitié de votre nombre de replicas, arrondi au supérieur. Avec trois replicas, conservez `2`, et l'alerte se déclenche lorsqu'il reste un runner ou aucun.343* **Plancher** : définissez le `2` dans `expr` à environ la moitié de votre nombre de réplicas, arrondi à l'entier supérieur. Avec trois réplicas, conservez `2` : l'alerte se déclenche lorsqu'il reste un seul runner ou aucun.

344* **Namespace** : remplacez `claude-runners` dans le matcher et dans `labels`, et copiez l'alerte pour chaque namespace supplémentaire. Si vos cibles n'ont pas de label `namespace`, supprimez le matcher et le label, sinon l'alerte lit 0 et se déclenche.344* **Namespace** : remplacez `claude-runners` dans le matcher et dans `labels`, et dupliquez l'alerte pour chaque namespace supplémentaire. Si vos cibles n'ont pas de label `namespace`, supprimez le matcher et le label, sinon l'alerte lit 0 et se déclenche.

345* **`ClaudeRunnerPollStale` et `ClaudeRunnerPollErrors`** : conservez-les chargées depuis les [exemples de règles d'alerte](#sample-alert-rules), car `ClaudeRunnersBelowFloor` compte toujours un runner qui ne peut pas poller345* **`ClaudeRunnerPollStale` et `ClaudeRunnerPollErrors`** : gardez-les chargées depuis les [exemples de règles d'alerte](#sample-alert-rules), car `ClaudeRunnersBelowFloor` compte toujours un runner qui ne parvient pas à effectuer de poll

346 346 

347#### Alerter lorsque des sessions attendent des runners à la demande347#### Alerter lorsque des sessions attendent des runners à la demande

348 348 

349`ClaudeOrchestratorSessionsWaiting` se déclenche lorsque le nombre de sessions en attente d'un runner reste supérieur à 0 pendant 10 minutes. `ClaudeOrchestratorQueueWaitHigh` se déclenche lorsque plus de 1 % des attentes en queue des 10 dernières minutes ont dépassé 160 secondes, et que cela persiste pendant 5 minutes :349`ClaudeOrchestratorSessionsWaiting` se déclenche lorsque le nombre de sessions en attente d'un runner reste supérieur à 0 pendant 10 minutes. `ClaudeOrchestratorQueueWaitHigh` se déclenche lorsque plus de 1 % des attentes en file au cours des 10 dernières minutes ont dépassé 160 secondes, et que cette situation dure 5 minutes :

350 350 

351```yaml theme={null}351```yaml theme={null}

352groups:352groups:


363 for: 10m363 for: 10m

364 labels: {severity: warning}364 labels: {severity: warning}

365 annotations:365 annotations:

366 summary: "Sessions en attente d'un runner : {{ $value }}, au-dessus du seuil pendant 10 minutes. Vérifiez claude_code_self_hosted_orchestrator_spawn_hooks_total par résultat, puis les workloads de runner qui ne démarrent pas."366 summary: "Sessions waiting for a runner: {{ $value }}, above the threshold for 10 minutes. Check claude_code_self_hosted_orchestrator_spawn_hooks_total by result, then runner workloads that don't start."

367 - alert: ClaudeOrchestratorQueueWaitHigh367 - alert: ClaudeOrchestratorQueueWaitHigh

368 expr: |368 expr: |

369 histogram_quantile(0.99, sum by (namespace, le) (369 histogram_quantile(0.99, sum by (namespace, le) (


372 for: 5m372 for: 5m

373 labels: {severity: warning}373 labels: {severity: warning}

374 annotations:374 annotations:

375 summary: "Plus de 1 % des attentes en queue des 10 dernières minutes ont dépassé 160 secondes. Vérifiez si ClaudeOrchestratorDisconnected se déclenche, puis claude_code_self_hosted_orchestrator_spawn_hooks_total par résultat et claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds."375 summary: "Over 1% of queue waits in the last 10 minutes exceeded 160 seconds. Check whether ClaudeOrchestratorDisconnected is firing, then claude_code_self_hosted_orchestrator_spawn_hooks_total by result and claude_code_self_hosted_orchestrator_spawn_hook_duration_seconds."

376```376```

377 377 

378* **Seuil** : si une session est toujours en attente, relevez le `> 0` dans `ClaudeOrchestratorSessionsWaiting` au-dessus du nombre que vous observez habituellement378* **Seuil** : si une session est toujours en attente, augmentez le `> 0` de `ClaudeOrchestratorSessionsWaiting` au-dessus du nombre que vous observez habituellement

379* **`ClaudeOrchestratorDisconnected`** : conservez-la chargée depuis les [exemples de règles d'alerte](#sample-alert-rules), car `ClaudeOrchestratorSessionsWaiting` cesse de se déclencher environ 2 minutes après la déconnexion du dernier orchestrateur du namespace379* **`ClaudeOrchestratorDisconnected`** : gardez-la chargée depuis les [exemples de règles d'alerte](#sample-alert-rules), car `ClaudeOrchestratorSessionsWaiting` cesse de se déclencher environ 2 minutes après la déconnexion du dernier orchestrateur du namespace

380 380 

381#### Alerter lorsque l'orchestrateur est arrêté381#### Alerter lorsque l'orchestrateur est arrêté

382 382 

383Pour savoir si l'[orchestrateur](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners) lui-même est arrêté, chargez `ClaudeOrchestratorAbsent`. Elle se déclenche lorsqu'aucun orchestrateur du namespace n'a été scrapé pendant 5 minutes :383Pour savoir si l'[orchestrateur](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners) lui-même est arrêté, chargez `ClaudeOrchestratorAbsent`. Elle se déclenche lorsqu'aucun orchestrateur du namespace n'a été scrapé depuis 5 minutes :

384 384 

385```yaml theme={null}385```yaml theme={null}

386groups:386groups:


392 for: 5m392 for: 5m

393 labels: {severity: critical}393 labels: {severity: critical}

394 annotations:394 annotations:

395 summary: "Aucun orchestrateur n'a été scrapé depuis 5 minutes. S'il est arrêté, aucun runner à la demande ne démarre et les sessions attendent. Vérifiez d'abord le workload de l'orchestrateur, puis sa cible de scrape s'il est en cours d'exécution."395 summary: "No orchestrator has been scraped for 5 minutes. If it's down, no on-demand runner starts, and sessions wait. Check the orchestrator workload first, then its scrape target if it's running."

396```396```

397 397 

398* **Namespace** : remplacez `claude-runners` par le namespace de l'orchestrateur, et copiez l'alerte pour chaque namespace supplémentaire qui exécute un orchestrateur. Si vos cibles n'ont pas de label `namespace`, supprimez le matcher, sinon l'alerte se déclenche après 5 minutes et reste active.398* **Namespace** : remplacez `claude-runners` par le namespace de l'orchestrateur, et dupliquez l'alerte pour chaque namespace supplémentaire qui exécute un orchestrateur. Si vos cibles n'ont pas de label `namespace`, supprimez le matcher, sinon l'alerte se déclenche au bout de 5 minutes et reste active.

399* **Serveurs Prometheus qui ne scrapent pas l'orchestrateur** : n'incluez pas l'alerte dans leurs fichiers de règles, car sur un tel serveur elle se déclenche après 5 minutes et reste active399* **Serveurs Prometheus qui ne scrapent pas l'orchestrateur** : n'incluez pas l'alerte dans leurs fichiers de règles, car sur un tel serveur elle se déclenche au bout de 5 minutes et reste active

400* **Ne vous fiez pas aux autres alertes de l'orchestrateur** : elles lisent des métriques que l'orchestrateur expose lui-même. `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` et les [exemples de règles d'alerte](#sample-alert-rules) de l'orchestrateur cessent tous de se déclencher dans les 10 minutes environ suivant l'arrêt de l'orchestrateur.400* **Ne vous fiez pas aux autres alertes de l'orchestrateur** : elles lisent des métriques que l'orchestrateur expose lui-même. `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` et les [exemples de règles d'alerte](#sample-alert-rules) de l'orchestrateur cessent tous de se déclencher dans les 10 minutes environ suivant l'arrêt de l'orchestrateur.

401 401 

402### Passer les métriques enfants de session402### Relayer les métriques des enfants de session

403 403 

404Chaque session s'exécute dans son propre processus enfant avec ses propres métriques OpenTelemetry ; à `--capacity` au-dessus d'un, le runner réécrit comment ces métriques enfants sont exposées. Définir `OTEL_METRICS_EXPORTER=prometheus` sur l'hôte du runner et `CLAUDE_CODE_ENABLE_TELEMETRY=1` dans l'environnement de la session, par exemple à partir de votre [script wrapper](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#wrapper-scripts) ou l'environnement du runner lui-même, que les sessions héritent, réexpose les instruments de compteur et de jauge de chaque enfant sur le propre endpoint `/metrics` du runner, aux côtés des séries du runner. Le runner réécrit l'exporteur de l'enfant pour pousser sur OTLP vers un récepteur loopback uniquement sur le port de santé, étiquette chaque série avec les labels `session_id` et `client_platform`, et évince les séries d'une session quand cette session se termine. Les histogrammes ne passent pas, et une métrique enfant dont le nom entrerait en collision avec le propre préfixe du runner est supprimée.404Chaque session s'exécute dans son propre processus enfant avec ses propres métriques OpenTelemetry ; avec une `--capacity` supérieure à un, le runner réécrit la manière dont ces métriques enfants sont exposées. Définir `OTEL_METRICS_EXPORTER=prometheus` sur l'hôte du runner et `CLAUDE_CODE_ENABLE_TELEMETRY=1` dans l'environnement de la session, par exemple depuis votre [script wrapper](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#wrapper-scripts) ou l'environnement du runner lui-même, dont les sessions héritent, réexpose les instruments de type compteur et jauge de chaque enfant sur l'endpoint `/metrics` du runner, à côté des séries du runner. Le runner réécrit l'exportateur de l'enfant pour qu'il envoie via OTLP vers un récepteur en loopback uniquement sur le port de santé, ajoute à chaque série les labels `session_id` et `client_platform`, et supprime les séries d'une session lorsque celle-ci se termine. Les histogrammes ne sont pas relayés, et une métrique enfant dont le nom entrerait en conflit avec le préfixe propre du runner est ignorée.

405 405 

406À la `--capacity 1` par défaut, la réécriture ne s'applique pas : l'enfant de la session lie son propre endpoint Prometheus sur le port 9464 comme d'habitude.406Avec la valeur par défaut `--capacity 1`, la réécriture ne s'applique pas : l'enfant de la session lie son propre endpoint Prometheus sur le port 9464, comme d'habitude.

407 407 

408#### Associer les métriques d'une session à celles du runner408#### Joindre les métriques d'une session à celles du runner

409 409 

410Pour voir ce qu'ont coûté les sessions inactives, effectuez une jointure entre la métrique `claude_code_self_hosted_runner_session_idle_seconds` du runner et la métrique de coût de Claude Code sur `ccr_session_id`. La métrique du runner ne porte pas ce label ; ajoutez-le donc avec `label_replace`, comme dans cette requête :410Pour connaître le coût des sessions inactives, joignez la métrique `claude_code_self_hosted_runner_session_idle_seconds` du runner à la métrique de coût de Claude Code sur `ccr_session_id`. La métrique du runner ne porte pas ce label ; attribuez-le-lui avec `label_replace`, comme dans cette requête :

411 411 

412```text theme={null}412```text theme={null}

413sum by (ccr_session_id) (claude_code_cost_usage_total)413sum by (ccr_session_id) (claude_code_cost_usage_total)


418)418)

419```419```

420 420 

421La requête renvoie un résultat par session inactive depuis plus de dix minutes : le coût en dollars américains que son processus Claude Code a comptabilisé jusqu'à présent. Pour effectuer une jointure avec une autre métrique Claude Code, remplacez `claude_code_cost_usage_total` dans la requête. La requête fonctionne quelle que soit la valeur de `--capacity`.421La requête renvoie un résultat par session inactive depuis plus de dix minutes : le coût en dollars américains que son processus Claude Code a comptabilisé jusqu'à présent. Pour joindre une autre métrique Claude Code, remplacez `claude_code_cost_usage_total` dans la requête. La requête fonctionne quelle que soit la `--capacity`.

422 422 

423* **`session_id`** : sur le port 9464, ce label sur les métriques Claude Code contient le [`session.id`](https://code.claude.com/docs/fr/monitoring-usage#standard-attributes) propre à Claude Code, qui ne correspond à aucune série du runner. Une jointure sur celui-ci ne renvoie rien ; effectuez donc la jointure sur `ccr_session_id`.423* **`session_id`** : sur le port 9464, ce label sur les métriques Claude Code contient le [`session.id`](https://code.claude.com/docs/fr/monitoring-usage#standard-attributes) propre à Claude Code, qui ne correspond à aucune série du runner. Une jointure sur ce label ne renvoie rien ; effectuez donc la jointure sur `ccr_session_id`.

424* **Les métriques Claude Code n'ont pas de `ccr_session_id`** : vérifiez que [`OTEL_METRICS_INCLUDE_SESSION_ID`](https://code.claude.com/docs/fr/monitoring-usage#metrics-cardinality-control) n'est pas défini sur `false`424* **Les métriques Claude Code n'ont pas de `ccr_session_id`** : vérifiez que [`OTEL_METRICS_INCLUDE_SESSION_ID`](https://code.claude.com/docs/fr/monitoring-usage#metrics-cardinality-control) n'est pas défini sur `false`

425 425 

426### Sémantique des compteurs du cycle de vie de la session426### Sémantique des compteurs du cycle de vie des sessions

427 427 

428Les compteurs `sessions_started_total`, `sessions_completed_total`, `sessions_failed_total`, et `sessions_interrupted_total` classent chaque session par la façon dont elle s'est terminée. Chaque enfant de session généré incrémente `sessions_started_total` au moment du spawn, et exactement un des trois autres incrémente à la sortie, donc `sessions_started_total` moins la somme des trois autres égale le nombre d'enfants de session actuellement en cours d'exécution.428Les compteurs `sessions_started_total`, `sessions_completed_total`, `sessions_failed_total` et `sessions_interrupted_total` classent chaque session selon la manière dont elle s'est terminée. Chaque enfant de session lancé incrémente `sessions_started_total` au moment du lancement, et exactement un des trois autres compteurs est incrémenté à la sortie ; ainsi, `sessions_started_total` moins la somme des trois autres est égal au nombre d'enfants de session en cours d'exécution.

429 429 

430* `completed` : la session s'est terminée correctement. Cela couvre l'enfant quittant de lui-même avec le code `0`, la session étant archivée ou supprimée tandis que l'enfant était toujours connecté, et le runner remettant le slot correctement : libérant la session au timeout d'inactivité, au temps de retraite, ou à la limite `--kill-session-after-min` ; un timeout de démarrage ; ou une désassignation côté serveur que la boucle de poll a remarquée avant que l'enfant ne quitte. Incrémente `sessions_completed_total`.430* `completed` : la session s'est terminée proprement. Cela couvre l'enfant qui se termine de lui-même avec le code `0`, la session archivée ou supprimée alors que l'enfant était encore connecté, et le runner qui restitue proprement le slot : libération de la session à l'expiration du délai d'inactivité, à l'heure de retrait ou à la limite `--kill-session-after-min` ; un délai d'expiration au démarrage ; ou une désattribution côté serveur détectée par la boucle de poll avant la sortie de l'enfant. Incrémente `sessions_completed_total`.

431* `failed` : l'enfant a quitté de lui-même avec un code non-zéro, soit un crash soit un échec de configuration après spawn. Incrémente `sessions_failed_total`.431* `failed` : l'enfant s'est terminé de lui-même avec un code non nul, soit à la suite d'un plantage, soit d'un échec de configuration après le lancement. Incrémente `sessions_failed_total`.

432* `interrupted` : le runner a terminé l'enfant pour une raison opérationnelle qui n'est ni un succès de session ni une faute du runner, comme un drain, ou terminer une session qui était toujours sur le runner quand la fenêtre de grâce [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) après sa limite `--kill-session-after-min` s'est terminée. Un redémarrage roulant Kubernetes envoyant `SIGTERM` est un exemple de drain. Incrémente `sessions_interrupted_total`.432* `interrupted` : le runner a arrêté l'enfant pour une raison opérationnelle qui n'est ni un succès de la session ni une défaillance du runner, comme un drain, ou l'arrêt d'une session encore présente sur le runner à la fin de la fenêtre de grâce [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) qui suit sa limite `--kill-session-after-min`. Un redémarrage progressif Kubernetes envoyant `SIGTERM` est un exemple de drain. Incrémente `sessions_interrupted_total`.

433 433 

434Avant v2.1.260, le runner terminait chaque session qui atteignait sa limite `--kill-session-after-min` et la comptait dans `sessions_interrupted_total`.434Avant la v2.1.260, le runner arrêtait chaque session atteignant sa limite `--kill-session-after-min` et la comptabilisait dans `sessions_interrupted_total`.

435 435 

436Le hook [`post-session`](https://code.claude.com/docs/fr/self-hosted-environments-configuration#post-session) classifie différemment les remises propres avec `CLAUDE_RUNNER_EXIT_REASON`. Le hook les signale comme `interrupted`, parce que le runner a arrêté l'enfant : une libération, un timeout de démarrage, une désassignation serveur, et un archivage ou une suppression que le poll a remarqué en premier. Ces compteurs enregistrent les mêmes événements que `completed`, parce que le slot a été remis correctement.436La variable `CLAUDE_RUNNER_EXIT_REASON` du [hook `post-session`](https://code.claude.com/docs/fr/self-hosted-environments-configuration#post-session) classe différemment les restitutions propres. Le hook les signale comme `interrupted`, car c'est le runner qui a arrêté l'enfant : une libération, un délai d'expiration au démarrage, une désattribution par le serveur, et une archive ou une suppression détectée en premier par le poll. Ces compteurs enregistrent les mêmes événements comme `completed`, car le slot a été restitué proprement.

437 437 

438Si vous réconciliez les reçus de hook directement contre `sessions_completed_total`, vous sous-comptez les complétions. Utilisez le hook pour les garanties par session et les compteurs pour les taux agrégés.438Si vous rapprochez directement les accusés de réception du hook de `sessions_completed_total`, vous sous-estimez le nombre de sessions terminées. Utilisez le hook pour les garanties par session et les compteurs pour les taux agrégés.

439 439 

440Sur un environnement one-shot, `--capacity 1` avec le `--drain-grace-sec 0` par défaut, chaque processus runner quitte peu de temps après la fin de sa session. `sessions_completed_total`, `sessions_failed_total`, et `sessions_interrupted_total` incrémentent uniquement à la fin de la session, juste avant cette sortie, donc un scrape Prometheus toutes les 15 à 60 secondes attrape rarement l'incrément avant que les séries du runner ne disparaissent ; ces trois compteurs de fin de session sont les compteurs terminaux auxquels le reste de cette section se réfère. `sessions_started_total` incrémente au spawn et reste visible pour la durée de vie de la session, donc il s'affiche de manière fiable, mais sur un environnement one-shot il se lit plus proche de « sessions actuellement en cours d'exécution » qu'un compte cumulatif.440Sur un environnement à usage unique, avec `--capacity 1` et la valeur par défaut `--drain-grace-sec 0`, chaque processus runner se termine quelques instants après la fin de son unique session. `sessions_completed_total`, `sessions_failed_total` et `sessions_interrupted_total` ne sont incrémentés qu'à la fin de la session, juste avant cette sortie ; un scrape Prometheus toutes les 15 à 60 secondes capte donc rarement l'incrément avant la disparition des séries du runner. Ces trois compteurs de fin de session sont les compteurs terminaux auxquels fait référence le reste de cette section. `sessions_started_total` est incrémenté au lancement et reste visible pendant toute la durée de la session ; il apparaît donc de manière fiable, mais sur un environnement à usage unique, il s'interprète davantage comme « sessions en cours d'exécution » que comme un compteur cumulatif.

441 441 

442Utilisez la série dans ce tableau pour l'objectif correspondant au lieu des compteurs terminaux :442Utilisez les séries de ce tableau pour l'objectif correspondant plutôt que les compteurs terminaux :

443 443 

444| Objectif | Utiliser |444| Objectif | À utiliser |

445| :- | :- |445| :- | :- |

446| Débit | `claude_code_self_hosted_orchestrator_spawn_hooks_total{result="ok"}`, un compteur sur l'orchestrateur de longue durée qui incrémente une fois par hook `spawn-runner` réussi et reste significatif sous `rate()`. Il compte les invocations de hook plutôt que les sessions, donc le pré-warming et les spawns répétés pour la même session le divergent des comptages de session. |446| Débit | `claude_code_self_hosted_orchestrator_spawn_hooks_total{result="ok"}`, un compteur sur l'orchestrateur de longue durée qui s'incrémente une fois par hook `spawn-runner` réussi et reste pertinent avec `rate()`. Il compte les invocations de hook plutôt que les sessions ; le préchauffage et les lancements répétés pour la même session le font donc diverger du nombre de sessions. |

447| Utilisation | `sum(claude_code_self_hosted_runner_active_sessions)` contre `sum(claude_code_self_hosted_runner_capacity)`, les deux jauges valides à chaque scrape indépendamment de la durée de vie du runner |447| Utilisation | `sum(claude_code_self_hosted_runner_active_sessions)` comparé à `sum(claude_code_self_hosted_runner_capacity)`, deux jauges valides à chaque scrape, quelle que soit la durée de vie du runner |

448| Arriéré | `claude_code_self_hosted_orchestrator_pool_pending_sessions` pour la profondeur de queue, et `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions`, alertant si au-dessus de zéro |448| Arriéré | `claude_code_self_hosted_orchestrator_pool_pending_sessions` pour la profondeur de file, et `claude_code_self_hosted_orchestrator_queue_circuit_broken_sessions`, avec une alerte si la valeur est supérieure à zéro |

449| Échecs | `claude_code_self_hosted_runner_sessions_failed_total`, meilleur effort : les vrais crashes après spawn l'incrémentent bien, et `rate()` est significatif sur les runners qui survivent à leurs sessions avec `--drain-grace-sec` au-dessus de `0`. Un environnement one-shot a le même problème de fenêtre de scrape que les autres compteurs terminaux, donc traitez toute valeur non-zéro que vous voyez comme valant la peine d'être enquêtée. Les échecs avant spawn, comme un échec de hook de checkout, préparation git, ou un problème de jeton, n'apparaissent que dans `session_init_errors_total`. |449| Échecs | `claude_code_self_hosted_runner_sessions_failed_total`, au mieux : les véritables plantages après le lancement l'incrémentent bien, et `rate()` est pertinent sur les runners qui survivent à leurs sessions avec `--drain-grace-sec` supérieur à `0`. Un environnement à usage unique présente le même problème de fenêtre de scrape que les autres compteurs terminaux ; considérez donc toute valeur non nulle observée comme méritant une investigation. Les échecs antérieurs au lancement, comme un échec du hook de checkout, la préparation git ou un problème de jeton, n'apparaissent que dans `session_init_errors_total`. |

450 450 

451Les lignes `orchestrator_*` n'existent que sur les environnements exécutant l'[orchestrateur à la demande](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners). Sur une flotte fixe dont les runners survivent à leurs sessions, avec `--drain-grace-sec` au-dessus de `0`, utilisez `sum(rate(claude_code_self_hosted_runner_sessions_started_total[5m]))` pour le débit ; sur une flotte one-shot cette série a le même problème de fenêtre de scrape que les compteurs terminaux, donc fiez-vous au comptage des sessions en queue à la place. Vérifiez l'arriéré sur l'onglet **Activity** de l'environnement, sur la [page d'administration **Cloud environments**](https://claude.ai/admin-settings/cloud-environments) : les runners n'exportent pas une série de profondeur de queue.451Les lignes `orchestrator_*` n'existent que sur les environnements exécutant l'[orchestrateur à la demande](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#on-demand-runners). Sur une flotte fixe dont les runners survivent à leurs sessions, avec `--drain-grace-sec` supérieur à `0`, utilisez `sum(rate(claude_code_self_hosted_runner_sessions_started_total[5m]))` pour le débit ; sur une flotte à usage unique, cette série présente le même problème de fenêtre de scrape que les compteurs terminaux ; fiez-vous donc plutôt au nombre de sessions en file d'attente. Vérifiez l'arriéré dans l'onglet **Activity** de l'environnement, sur la [page d'administration **Cloud environments**](https://claude.ai/admin-settings/cloud-environments) : les runners n'exportent pas de série de profondeur de file.

452 452 

453Pour le rapport de résultat par session, utilisez le hook [`post-session`](https://code.claude.com/docs/fr/self-hosted-environments-configuration#post-session) à la place : il se déclenche à chaque fin de session où un processus enfant a été généré, à part la terminaison abrupte du runner comme une préemption VM, selon le [propre contrat du hook](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#post-session).453Pour un suivi des résultats par session, utilisez plutôt le [hook `post-session`](https://code.claude.com/docs/fr/self-hosted-environments-configuration#post-session) : il se déclenche à chaque fin de session pour laquelle un processus enfant a été lancé, sauf en cas d'arrêt brutal du runner, comme une préemption de VM, conformément au [contrat propre au hook](https://code.claude.com/docs/fr/self-hosted-environments-configuration.md#post-session).

454 454 

455## Étapes suivantes455## Étapes suivantes

456 456 

Details

12 12 

13Dans un [environnement auto-hébergé](https://code.claude.com/docs/fr/self-hosted-environments), les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md) de Claude Code s'exécutent sur une image de runner que vous construisez et maintenez. Avant de déployer une nouvelle image dans votre environnement de production, exécutez une session complète contre un environnement de test à partir d'un script : créez une session, lisez la réponse de Claude, envoyez un suivi, et lisez cette réponse aussi. C'est la forme d'un test de fumée CI qui vérifie votre image de runner, l'accès git, et tous les outils personnalisés avant de promouvoir une modification.13Dans un [environnement auto-hébergé](https://code.claude.com/docs/fr/self-hosted-environments), les [sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md) de Claude Code s'exécutent sur une image de runner que vous construisez et maintenez. Avant de déployer une nouvelle image dans votre environnement de production, exécutez une session complète contre un environnement de test à partir d'un script : créez une session, lisez la réponse de Claude, envoyez un suivi, et lisez cette réponse aussi. C'est la forme d'un test de fumée CI qui vérifie votre image de runner, l'accès git, et tous les outils personnalisés avant de promouvoir une modification.

14 14 

15Cette recette suppose que vous avez déjà [configuré un environnement et un runner](https://code.claude.com/docs/fr/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner), et que votre travail CI démarre le processus du runner sur le même hôte que le script de test, la configuration naturelle pour tester une nouvelle image de runner. Un hook Stop que vous installez sur le runner écrit la réponse finale de chaque tour dans un fichier local, et le script la lit de là, donc les seuls appels à l'API Anthropic sont les deux envois eux-mêmes. Si vos runners de test sont sur une infrastructure séparée, consultez [Runners de test distants](#remote-test-runners).15Cette recette suppose que vous avez déjà [configuré un environnement et un runner](https://code.claude.com/docs/fr/self-hosted-environments-quickstart.md#set-up-an-environment-and-runner), et que votre travail CI démarre le processus du runner sur le même hôte que le script de test. Un hook Stop que vous installez sur le runner écrit la réponse finale de chaque tour dans un fichier local, et le script la lit de là. Si vos runners de test sont sur une infrastructure séparée, consultez [Runners de test distants](#remote-test-runners).

16 16 

17## Installer le hook de capture sur votre runner de test17## Installer le hook de capture sur votre runner de test

18 18 

Details

62 62 

63Les hooks utilisent le même format que dans `settings.json`.63Les hooks utilisent le même format que dans `settings.json`.

64 64 

65Cet exemple exécute un script d'audit après chaque modification de fichier dans toute l'organisation :65Cet exemple exécute un script d'audit après les appels d'outils `Edit` et `Write` dans toute l'organisation :

66 66 

67```json theme={null}67```json theme={null}

68{68{


95 95 

96Pour confirmer que les paramètres sont appliqués, demandez à un utilisateur de redémarrer Claude Code. Si la configuration inclut des paramètres qui déclenchent la [boîte de dialogue d'approbation de sécurité](#security-approval-dialogs), l'utilisateur voit une invite décrivant les paramètres gérés la prochaine fois que Claude Code les récupère : au prochain démarrage, ou dans l'heure suivante dans une session interactive en cours. Vous pouvez également vérifier que les règles de permission gérées sont actives en demandant à un utilisateur d'exécuter `/permissions` pour afficher ses règles de permission effectives.96Pour confirmer que les paramètres sont appliqués, demandez à un utilisateur de redémarrer Claude Code. Si la configuration inclut des paramètres qui déclenchent la [boîte de dialogue d'approbation de sécurité](#security-approval-dialogs), l'utilisateur voit une invite décrivant les paramètres gérés la prochaine fois que Claude Code les récupère : au prochain démarrage, ou dans l'heure suivante dans une session interactive en cours. Vous pouvez également vérifier que les règles de permission gérées sont actives en demandant à un utilisateur d'exécuter `/permissions` pour afficher ses règles de permission effectives.

97 97 

98Dans une session, demandez à l'utilisateur d'exécuter `/status`. La [ligne `Setting sources`](https://code.claude.com/docs/fr/managed-settings#read-the-source-in-/status) affiche `Enterprise managed settings` avec `remote` entre parenthèses lorsque des paramètres gérés par le serveur s'appliquent.

99 

98Pour vérifier le résultat de la récupération sur une machine spécifique, demandez à l'utilisateur d'exécuter `claude doctor` et de lire la ligne `Managed settings (remote)`. Nécessite Claude Code v2.1.248 ou version ultérieure. La ligne signale l'un des quatre résultats :100Pour vérifier le résultat de la récupération sur une machine spécifique, demandez à l'utilisateur d'exécuter `claude doctor` et de lire la ligne `Managed settings (remote)`. Nécessite Claude Code v2.1.248 ou version ultérieure. La ligne signale l'un des quatre résultats :

99 101 

100* Les paramètres livrés ont été chargés102* Les paramètres livrés ont été chargés


247* Si la passerelle répond à un lancement interactif assisté avec un `401` et que ce paramètre est désactivé, la passerelle a terminé cette connexion. Claude Code imprime [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/fr/errors#cloud-gateway-session-expired) et ouvre la session déconnectée de la passerelle jusqu'à ce que l'utilisateur exécute `/login`.249* Si la passerelle répond à un lancement interactif assisté avec un `401` et que ce paramètre est désactivé, la passerelle a terminé cette connexion. Claude Code imprime [`Cloud gateway session expired — run /login to reconnect.`](https://code.claude.com/docs/fr/errors#cloud-gateway-session-expired) et ouvre la session déconnectée de la passerelle jusqu'à ce que l'utilisateur exécute `/login`.

248* Lorsque la récupération échoue de toute autre manière, ou dans tout autre type de lancement sauf une sous-commande `claude auth`, le client se ferme avec une erreur.250* Lorsque la récupération échoue de toute autre manière, ou dans tout autre type de lancement sauf une sous-commande `claude auth`, le client se ferme avec une erreur.

249 251 

250Lorsque ce paramètre est actif dans une session qui récupère les paramètres gérés par le serveur, l'interface de ligne de commande se bloque au démarrage jusqu'à ce que les paramètres distants soient récupérés à nouveau. Si la récupération échoue, l'interface de ligne de commande se ferme plutôt que de continuer sans la stratégie. Ce paramètre s'auto-perpétue : une fois livré par le serveur, il est également mis en cache localement afin que les démarrages ultérieurs appliquent le même comportement même avant la première récupération réussie d'une nouvelle session. Une session qui [ne récupère pas les paramètres gérés par le serveur](#platform-availability) démarre sans attendre.252Lorsque ce paramètre est actif dans une session qui récupère les paramètres gérés par le serveur, la CLI se bloque au démarrage jusqu'à ce que les paramètres distants soient récupérés à nouveau. Si la récupération échoue, la CLI se ferme plutôt que de continuer sans la stratégie. Une session qui [ne récupère pas les paramètres gérés par le serveur](#platform-availability) démarre sans attendre.

251 253 

252Pour activer cela, ajoutez la clé à votre configuration de paramètres gérés :254Pour activer cela, ajoutez la clé à votre configuration de paramètres gérés :

253 255 


259 261 

260Vous pouvez également définir cette clé dans un [profil MDM géré par le point de terminaison](https://code.claude.com/docs/fr/managed-settings.md#delivery-mechanisms) ou un fichier `managed-settings.json` système pour appliquer un comportement fermé par défaut au premier lancement, avant la livraison de toute charge utile du serveur. Cet indicateur est une exception à la [règle de précédence](#settings-precedence) ci-dessus : Claude Code l'honore lorsqu'il est défini dans n'importe quelle source gérée contrôlée par un administrateur même si une charge utile en cache gérée par le serveur est également présente, de sorte qu'une valeur livrée par MDM n'est pas ignorée lorsque des paramètres gérés par le serveur existent.262Vous pouvez également définir cette clé dans un [profil MDM géré par le point de terminaison](https://code.claude.com/docs/fr/managed-settings.md#delivery-mechanisms) ou un fichier `managed-settings.json` système pour appliquer un comportement fermé par défaut au premier lancement, avant la livraison de toute charge utile du serveur. Cet indicateur est une exception à la [règle de précédence](#settings-precedence) ci-dessus : Claude Code l'honore lorsqu'il est défini dans n'importe quelle source gérée contrôlée par un administrateur même si une charge utile en cache gérée par le serveur est également présente, de sorte qu'une valeur livrée par MDM n'est pas ignorée lorsque des paramètres gérés par le serveur existent.

261 263 

264Lors des démarrages ultérieurs, Claude Code lit une valeur livrée par le serveur à partir des paramètres en cache, de sorte que le paramètre est actif avant la première récupération de la nouvelle session. Pour maintenir le paramètre actif sans dépendre de la copie en cache, définissez également la clé dans une source gérée par l'endpoint.

265 

262Lorsqu'un [`policyHelper`](https://code.claude.com/docs/fr/settings-reference#policyhelper) fournit des paramètres gérés, sa sortie remplace toute autre source gérée pour les clés que Claude Code lit après le démarrage. Pour les sources à partir desquelles Claude Code lit cette clé, voir [son entrée de paramètres](https://code.claude.com/docs/fr/settings-reference.md#forceremotesettingsrefresh). L'entrée `policyHelper` indique quelles sources Claude Code lit le helper et quand il s'exécute.266Lorsqu'un [`policyHelper`](https://code.claude.com/docs/fr/settings-reference#policyhelper) fournit des paramètres gérés, sa sortie remplace toute autre source gérée pour les clés que Claude Code lit après le démarrage. Pour les sources à partir desquelles Claude Code lit cette clé, voir [son entrée de paramètres](https://code.claude.com/docs/fr/settings-reference.md#forceremotesettingsrefresh). L'entrée `policyHelper` indique quelles sources Claude Code lit le helper et quand il s'exécute.

263 267 

264La récupération des paramètres envoie également un en-tête `Cache-Control: no-cache` afin que les proxies HTTP intermédiaires ne servent pas une réponse obsolète.268La récupération des paramètres envoie également un en-tête `Cache-Control: no-cache` afin que les proxies HTTP intermédiaires ne servent pas une réponse obsolète.

settings.md +2 −2

Details

66 66 

67### Partagez les paramètres avec votre équipe67### Partagez les paramètres avec votre équipe

68 68 

69Commitez `.claude/settings.json` pour que tout le monde qui clone le dépôt obtienne les mêmes permissions, hooks, et plugins. Chaque coéquipier peut toujours le remplacer pour lui-même dans son propre `.claude/settings.local.json`, donc les exceptions personnelles n'ont pas besoin d'un commit. Pour un fichier d'équipe complet, voir [les paramètres partagés d'une équipe](https://code.claude.com/docs/fr/settings-example.md#a-teams-shared-settings).69Commitez `.claude/settings.json` pour que tout le monde qui clone le dépôt obtienne les mêmes permissions, hooks, et paramètres de plugins. Chaque coéquipier peut toujours le remplacer pour lui-même dans son propre `.claude/settings.local.json`, donc les exceptions personnelles n'ont pas besoin d'un commit. Pour un fichier d'équipe complet, voir [les paramètres partagés d'une équipe](https://code.claude.com/docs/fr/settings-example.md#a-teams-shared-settings).

70 70 

71Une partie de ce que vous commitez attend que chaque coéquipier [fasse confiance au dossier](https://code.claude.com/docs/fr/permissions.md#project-allow-rules-and-workspace-trust), et quelques clés ne prennent jamais effet à partir d'un fichier de dépôt ; [Dépannez un paramètre qui ne s'applique pas](#common-cases) couvre les deux.71Une partie de ce que vous commitez attend que chaque coéquipier [fasse confiance au dossier](https://code.claude.com/docs/fr/permissions.md#project-allow-rules-and-workspace-trust), et quelques clés ne prennent jamais effet à partir d'un fichier de dépôt ; [Dépannez un paramètre qui ne s'applique pas](#common-cases) couvre les deux.

72 72 


199* **Erreur de paramètres** : un fichier utilisateur, projet ou local a du JSON invalide ou une valeur que le schéma rejette. Au début d'une session interactive, Claude Code affiche un dialogue qui vous permet de corriger le fichier avec l'aide de Claude, de quitter, ou de continuer sans les paramètres cassés.199* **Erreur de paramètres** : un fichier utilisateur, projet ou local a du JSON invalide ou une valeur que le schéma rejette. Au début d'une session interactive, Claude Code affiche un dialogue qui vous permet de corriger le fichier avec l'aide de Claude, de quitter, ou de continuer sans les paramètres cassés.

200* **Avertissement de paramètres** : seules les entrées individuelles échouent, comme une règle de permission mal formée ou un nom d'événement hook inconnu. Claude Code ignore ces valeurs et garde le reste du fichier en vigueur.200* **Avertissement de paramètres** : seules les entrées individuelles échouent, comme une règle de permission mal formée ou un nom d'événement hook inconnu. Claude Code ignore ces valeurs et garde le reste du fichier en vigueur.

201* **Paramètres gérés** : Claude Code continue d'appliquer le reste du fichier. [Les entrées invalides dans les paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md#invalid-entries-in-managed-settings) dit ce qu'il supprime et quelles clés reviennent à une valeur plus stricte jusqu'à ce que vous les corrigiez. Pour un document de paramètres gérés qui n'est pas du JSON valide, voir [Le document de paramètres gérés n'a pas pu être analysé](https://code.claude.com/docs/fr/errors.md#managed-settings-document-could-not-be-parsed).201* **Paramètres gérés** : Claude Code continue d'appliquer le reste du fichier. [Les entrées invalides dans les paramètres gérés](https://code.claude.com/docs/fr/managed-settings.md#invalid-entries-in-managed-settings) dit ce qu'il supprime et quelles clés reviennent à une valeur plus stricte jusqu'à ce que vous les corrigiez. Pour un document de paramètres gérés qui n'est pas du JSON valide, voir [Le document de paramètres gérés n'a pas pu être analysé](https://code.claude.com/docs/fr/errors.md#managed-settings-document-could-not-be-parsed).

202* **Erreur de configuration** : [`~/.claude.json`](https://code.claude.com/docs/fr/claude-directory#ce-claude-json) ne peut pas être analysé. Une exécution `claude -p` quitte, et votre fichier reste inchangé. Voir [Configuration error in \~/.claude.json](https://code.claude.com/docs/fr/errors.md#configuration-error-in-claude-json) pour restaurer une copie antérieure. Claude Code copie le fichier cassé dans `~/.claude/backups/.claude.json.corrupted.<timestamp>` et, dans une session interactive, demande si vous voulez quitter et le corriger ou réinitialiser à la configuration par défaut. Quand le fichier est vide et qu'il n'existe aucune sauvegarde à restaurer, Claude Code démarre avec les paramètres par défaut.202* **Erreur de configuration** : [`~/.claude.json`](https://code.claude.com/docs/fr/claude-directory#ce-claude-json) ne peut pas être analysé. Une exécution `claude -p` quitte. Voir [Configuration error in \~/.claude.json](https://code.claude.com/docs/fr/errors.md#configuration-error-in-claude-json) pour restaurer une copie antérieure. Claude Code copie le fichier cassé dans `~/.claude/backups/.claude.json.corrupted.<timestamp>` et, dans une session interactive, demande si vous voulez quitter et le corriger ou réinitialiser à la configuration par défaut. Quand le fichier est vide et qu'il n'existe aucune sauvegarde à restaurer, Claude Code démarre avec les paramètres par défaut.

203 203 

204Après avoir continué, exécutez `/status` pour voir les fichiers affectés et `claude doctor` pour les détails de chaque erreur.204Après avoir continué, exécutez `/status` pour voir les fichiers affectés et `claude doctor` pour les détails de chaque erreur.

205 205 

Details

4829 4829 

4830### `agentPushNotifEnabled`4830### `agentPushNotifEnabled`

4831 4831 

4832Permettre à 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 **Envoyer une notification quand Claude le décide**. Lorsque vous le modifiez à cet endroit, Claude Code enregistre également la valeur dans votre compte.4832Permettre à 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.

4833 4833 

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

4835* **Type** : Booléen4835* **Type** : Booléen


4843}4843}

4844```4844```

4845 4845 

4846Si 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 **Envoyer une notification quand Claude le décide**. 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.4846Si 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.

4847 4847 

4848Voir [Notifications push mobiles](https://code.claude.com/docs/fr/remote-control.md#mobile-push-notifications).4848Voir [Notifications push mobiles](https://code.claude.com/docs/fr/remote-control.md#mobile-push-notifications).

4849 4849 


4966 4966 

4967### `inputNeededNotifEnabled`4967### `inputNeededNotifEnabled`

4968 4968 

4969Recevoir une notification push sur votre téléphone quand une demande de permission ou une question attend votre entrée. Dans une session locale, Claude Code envoie celles-ci uniquement pendant que [Remote Control](https://code.claude.com/docs/fr/remote-control.md) est connecté. Apparaît dans `/config` sous **Envoyer une notification quand des actions sont requises**.4969Recevoir une notification push sur votre téléphone quand une demande de permission ou une question attend votre entrée. Dans une session locale, Claude Code envoie celles-ci uniquement pendant que [Remote Control](https://code.claude.com/docs/fr/remote-control.md) est connecté. Apparaît dans `/config` sous **Push when actions required**.

4970 4970 

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

4972* **Type** : Booléen4972* **Type** : Booléen

skills.md +1 −1

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 une compétence groupée de la même manière que n'importe quelle autre compétence, en tapant `/` suivi du nom de la compétence. Claude invoque automatiquement certaines compétences groupées lorsqu'elles sont pertinentes ; d'autres, notamment `/verify`, ne s'exécutent que lorsque vous les invoquez, ce qui vous permet de contrôler quand ces vérifications plus longues consomment du temps et des tokens.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.

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 

Details

346 346 

347Claude Code conserve le contenu derrière chaque espace réservé `[Pasted text #N]` dans `~/.claude/paste-cache/`, de sorte que lorsque vous rappelez un prompt depuis l'[historique des commandes](https://code.claude.com/docs/fr/interactive-mode.md#command-history) et le soumettez à nouveau, le contenu collé complet est renvoyé, y compris lors d'une session ultérieure.347Claude Code conserve le contenu derrière chaque espace réservé `[Pasted text #N]` dans `~/.claude/paste-cache/`, de sorte que lorsque vous rappelez un prompt depuis l'[historique des commandes](https://code.claude.com/docs/fr/interactive-mode.md#command-history) et le soumettez à nouveau, le contenu collé complet est renvoyé, y compris lors d'une session ultérieure.

348 348 

349Les fichiers de cache plus anciens que [`cleanupPeriodDays`](https://code.claude.com/docs/fr/settings-reference#cleanupperioddays) sont supprimés selon les [règles de nettoyage de rétention](https://code.claude.com/docs/fr/claude-directory.md#cleaned-up-automatically) ; un prompt rappelé peut donc faire référence à du texte collé qui n'existe plus. Lorsque vous soumettez un tel prompt, Claude Code n'envoie jamais la chaîne littérale `[Pasted text #N]` et affiche une notification indiquant le contenu collé manquant :349Les fichiers de cache plus anciens que [`cleanupPeriodDays`](https://code.claude.com/docs/fr/settings-reference#cleanupperioddays) sont supprimés selon les [règles de nettoyage de rétention](https://code.claude.com/docs/fr/claude-directory.md#cleaned-up-automatically) ; un prompt rappelé peut donc faire référence à du texte collé qui n'existe plus. Lorsque vous soumettez un tel prompt, Claude Code n'envoie pas la chaîne littérale `[Pasted text #N]` et affiche une notification indiquant le contenu collé manquant :

350 350 

351* Dans un prompt simple où du texte subsiste, Claude Code supprime l'espace réservé et envoie le texte restant.351* Dans un prompt simple où du texte subsiste, Claude Code supprime l'espace réservé et envoie le texte restant.

352* Dans une commande en [mode shell](https://code.claude.com/docs/fr/interactive-mode.md#shell-mode-with-prefix) ou une commande `/`, où la suppression modifierait ce qui est exécuté, ainsi que dans tout prompt que la suppression laisserait vide, Claude Code annule la soumission et conserve le texte d'origine dans la zone de saisie, avec l'espace réservé toujours présent. Supprimez l'espace réservé ou modifiez la commande, puis soumettez à nouveau.352* Dans une commande en [mode shell](https://code.claude.com/docs/fr/interactive-mode.md#shell-mode-with-prefix) ou une commande `/`, où la suppression modifierait ce qui est exécuté, ainsi que dans tout prompt que la suppression laisserait vide, Claude Code annule la soumission et conserve le texte d'origine dans la zone de saisie, avec l'espace réservé toujours présent. Supprimez l'espace réservé ou modifiez la commande, puis soumettez à nouveau.

Details

29| `EACCES: permission denied` pendant l'installation | [Corrigez les permissions du répertoire d'installation](#permission-errors-during-installation) |29| `EACCES: permission denied` pendant l'installation | [Corrigez les permissions du répertoire d'installation](#permission-errors-during-installation) |

30| `TLS connect error` ou `SSL/TLS secure channel` | [Mettez à jour les certificats CA](#tls-or-ssl-connection-errors) |30| `TLS connect error` ou `SSL/TLS secure channel` | [Mettez à jour les certificats CA](#tls-or-ssl-connection-errors) |

31| `CRYPT_E_NO_REVOCATION_CHECK` ou `CRYPT_E_REVOCATION_OFFLINE` | [Contournez les vérifications de révocation bloquées](#tls-or-ssl-connection-errors) |31| `CRYPT_E_NO_REVOCATION_CHECK` ou `CRYPT_E_REVOCATION_OFFLINE` | [Contournez les vérifications de révocation bloquées](#tls-or-ssl-connection-errors) |

32| `Failed to fetch version` ou impossible d'atteindre le serveur de téléchargement | [Vérifiez les paramètres réseau et proxy](#check-network-connectivity) |32| `Failed to fetch version` ou impossible d'atteindre le serveur de téléchargement | [Vérifiez les paramètres réseau et proxy](#check-network-connectivity) ou, en cas d'erreur de certificat, [configurez les certificats CA d'entreprise](#tls-or-ssl-connection-errors) |

33| `The connection dropped while downloading the update` ou `Download timed out: exceeded the total deadline` | [Relancez la mise à jour ou configurez votre proxy](#the-connection-dropped-while-downloading-the-update) |33| `The connection dropped while downloading the update` ou `Download timed out: exceeded the total deadline` | [Relancez la mise à jour ou configurez votre proxy](#the-connection-dropped-while-downloading-the-update) |

34| `Release verification failed for Claude Code` | [Exécutez à nouveau `claude update` ou `claude install`](#release-verification-failed) |34| `Release verification failed for Claude Code` | [Exécutez à nouveau `claude update` ou `claude install`](#release-verification-failed) |

35| `Auto-update failed · Run claude doctor` en rouge dans le pied de page de la session | [Exécutez `claude update` depuis votre shell](#auto-update-failed) |35| `Auto-update failed · Run claude doctor` en rouge dans le pied de page de la session | [Exécutez `claude update` depuis votre shell](#auto-update-failed) |


94* `403` : généralement un proxy ou un filtre réseau bloquant l'hôte, ou Claude Code n'est [pas disponible dans votre région](https://www.anthropic.com/supported-countries)94* `403` : généralement un proxy ou un filtre réseau bloquant l'hôte, ou Claude Code n'est [pas disponible dans votre région](https://www.anthropic.com/supported-countries)

95* `5xx` : généralement un problème de service temporaire ; attendez quelques minutes et réessayez95* `5xx` : généralement un problème de service temporaire ; attendez quelques minutes et réessayez

96 96 

97Si vous ne voyez aucune sortie, `Could not resolve host`, ou un délai d'expiration de connexion, votre réseau bloque la connexion. Les causes courantes incluent :97Si vous ne voyez aucune sortie, ou si le programme d'installation affiche `Could not resolve host` ou un délai d'expiration de connexion, la connexion a échoué ; vérifiez donc ces causes :

98 98 

99* Les pare-feu d'entreprise ou les proxys bloquant `downloads.claude.ai`99* Les pare-feu d'entreprise ou les proxys bloquant `downloads.claude.ai`

100* Les restrictions réseau régionales : essayez un VPN ou un réseau alternatif100* Les restrictions réseau régionales : essayez un VPN ou un réseau alternatif

101* Les problèmes TLS/SSL : mettez à jour les certificats CA de votre système, ou vérifiez si `HTTPS_PROXY` est configuré101* Les problèmes TLS/SSL : consultez [Erreurs de connexion TLS ou SSL](#tls-or-ssl-connection-errors)

102 102 

103Si vous êtes derrière un proxy d'entreprise, définissez `HTTPS_PROXY` et `HTTP_PROXY` à l'adresse de votre proxy avant d'installer. Demandez à votre équipe informatique l'URL du proxy si vous ne la connaissez pas, ou vérifiez les paramètres proxy de votre navigateur.103Si vous êtes derrière un proxy d'entreprise, définissez `HTTPS_PROXY` et `HTTP_PROXY` à l'adresse de votre proxy avant d'installer. Demandez à votre équipe informatique l'URL du proxy si vous ne la connaissez pas, ou vérifiez les paramètres proxy de votre navigateur.

104 104 


566 irm https://claude.ai/install.ps1 | iex566 irm https://claude.ai/install.ps1 | iex

567 ```567 ```

568 568 

5693. **Vérifiez l'interférence du proxy ou du pare-feu** : les proxys d'entreprise qui effectuent une inspection TLS peuvent causer ces erreurs, y compris `unable to get local issuer certificate` et `SELF_SIGNED_CERT_IN_CHAIN`. Pour l'étape d'installation, faites en sorte que le téléchargement d'installation fasse confiance à l'autorité de certification de votre proxy d'entreprise :5693. **Vérifiez l'interférence du proxy ou du pare-feu** : les proxys d'entreprise qui effectuent une inspection TLS peuvent causer ces erreurs, y compris `unable to get local issuer certificate`, `unable to verify the first certificate` et `SELF_SIGNED_CERT_IN_CHAIN`. Faites en sorte que le téléchargement d'installation fasse confiance à l'autorité de certification de votre proxy d'entreprise :

570 570 

571 > [tab] macOS/Linux571 > [tab] macOS/Linux

572 >572 >

573 > Définissez `CURL_CA_BUNDLE` pour les téléchargements `curl` du script d'installation, et [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/fr/network-config#custom-ca-certificates) pour la commande `claude install` que le script exécute ensuite. Demandez à votre équipe informatique un fichier PEM contenant le certificat CA racine de votre proxy si vous ne l'avez pas. Cet exemple définit les deux variables sur le fichier CA de votre proxy et exécute le script dans le même terminal :

574 >

573 > ```bash theme={null}575 > ```bash theme={null}

574 > curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash576 > export CURL_CA_BUNDLE=/path/to/corporate-ca.pem

577 > export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

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

575 > ```579 > ```

580 >

581 > Si l'installation échoue toujours avec l'une de ces erreurs de certificat, demandez à votre équipe informatique un fichier contenant à la fois les certificats racine publics et la chaîne CA complète de votre proxy. Définissez ensuite les deux variables sur ce fichier.

576 582 

577 > [tab] Windows PowerShell583 > [tab] Windows PowerShell

578 >584 >


596 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'602 > $env:NODE_EXTRA_CA_CERTS = 'C:\path\to\corporate-ca.pem'

597 > ```603 > ```

598 604 

599 Demandez à votre équipe informatique le fichier de certificat si vous ne l'avez pas. Vous pouvez également essayer sur une connexion directe pour confirmer que le proxy en est la cause.

600 

6014. **Sur Windows, contournez les vérifications de révocation bloquées**. Les erreurs `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` et `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` signifient que curl a atteint le serveur mais votre réseau bloque la recherche de révocation de certificat, ce qui est courant derrière les pare-feu d'entreprise. Si la commande défaillante est le `curl` qui télécharge `install.cmd`, réexécutez-la à partir d'une invite de commandes avec `--ssl-revoke-best-effort` ajouté :6054. **Sur Windows, contournez les vérifications de révocation bloquées**. Les erreurs `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` et `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` signifient que curl a atteint le serveur mais votre réseau bloque la recherche de révocation de certificat, ce qui est courant derrière les pare-feu d'entreprise. Si la commande défaillante est le `curl` qui télécharge `install.cmd`, réexécutez-la à partir d'une invite de commandes avec `--ssl-revoke-best-effort` ajouté :

602 ```batch theme={null}606 ```batch theme={null}

603 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd607 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd


610 614 

611### `Failed to fetch version from downloads.claude.ai`615### `Failed to fetch version from downloads.claude.ai`

612 616 

613Le programme d'installation n'a pas pu atteindre le serveur de téléchargement. Cela signifie généralement que `downloads.claude.ai` est bloqué sur votre réseau. Consultez [Vérifier la connectivité réseau](#check-network-connectivity).617La fin du message en indique la raison. S'il s'agit d'une erreur de certificat telle que `unable to verify the first certificate`, consultez [Erreurs de connexion TLS ou SSL](#tls-or-ssl-connection-errors). Pour toute autre raison, consultez [Vérifier la connectivité réseau](#check-network-connectivity).

614 618 

615### The connection dropped while downloading the update619### The connection dropped while downloading the update

616 620 

whats-new.md +2 −2

Details

72 72 

7320–24 juillet 20267320–24 juillet 2026

74 74 

75**Claude Opus 5** : le nouveau modèle Opus par défaut dans Claude Code, avec une fenêtre de contexte de 1M de tokens et le mode rapide à 10 $/50 $ par MTok.75**Claude Opus 5** : le nouveau modèle Opus par défaut dans Claude Code, avec une fenêtre de contexte de 1M de tokens et le mode rapide à 10 \$/50 \$ par MTok.

76 76 

77Également cette semaine : **Claude Code Desktop** ouvre un volet iOS Simulator en bêta public afin que Claude puisse exécuter votre application et la parcourir en cliquant pendant que vous regardez ; le **plugin Claude Security** exécute une analyse de vulnérabilité multi-agents de votre base de code et transforme les résultats que vous choisissez en correctifs que vous appliquez vous-même ; et **`/code-review`** s'exécute en tant que sous-agent d'arrière-plan.77Également cette semaine : **Claude Code Desktop** ouvre un volet iOS Simulator en bêta public afin que Claude puisse exécuter votre application et la parcourir en cliquant pendant que vous regardez ; le **plugin Claude Security** exécute une analyse de vulnérabilité multi-agents de votre base de code et transforme les résultats que vous choisissez en correctifs que vous appliquez vous-même ; et **`/code-review`** s'exécute en tant que sous-agent d'arrière-plan.

78 78 


154 154 

155**Claude Opus 4.8** : le nouveau modèle par défaut pour Max, Team Premium, Enterprise pay-as-you-go, et les comptes Anthropic API, avec un effort élevé par défaut et `/effort xhigh` pour les tâches les plus difficiles.155**Claude Opus 4.8** : le nouveau modèle par défaut pour Max, Team Premium, Enterprise pay-as-you-go, et les comptes Anthropic API, avec un effort élevé par défaut et `/effort xhigh` pour les tâches les plus difficiles.

156 156 

157Également cette semaine : **dynamic workflows** orchestrent des dizaines à des centaines de sous-agents à partir d'un script que Claude écrit ; le **security-guidance plugin** examine les modifications de Claude pour les vulnérabilités pendant qu'il travaille ; et **fast mode** s'exécute sur Opus 4.8 à 10 $/50 $ par MTok.157Également cette semaine : **dynamic workflows** orchestrent des dizaines à des centaines de sous-agents à partir d'un script que Claude écrit ; le **security-guidance plugin** examine les modifications de Claude pour les vulnérabilités pendant qu'il travaille ; et **fast mode** s'exécute sur Opus 4.8 à 10 \$/50 \$ par MTok.

158 158 

159[Lire le digest de la Week 22 →](https://code.claude.com/docs/fr/whats-new/2026-w22.md)159[Lire le digest de la Week 22 →](https://code.claude.com/docs/fr/whats-new/2026-w22.md)

160 160 

Details

42Mode rapide sur Opus 4.742Mode rapide sur Opus 4.7

43aperçu de recherche43aperçu de recherche

44 44 

45`/fast` s'exécute maintenant sur Opus 4.7 par défaut au lieu d'Opus 4.6. Le mode rapide est une configuration Opus haute vitesse : la même qualité de modèle à environ 2,5 fois la vitesse pour un coût par token plus élevé, utile pour l'itération rapide et le débogage en direct. La tarification reste inchangée à 30 $/150 $ par MTok, identique au mode rapide Opus 4.6. Pour épingler le mode rapide à Opus 4.6, définissez `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1`.45`/fast` s'exécute maintenant sur Opus 4.7 par défaut au lieu d'Opus 4.6. Le mode rapide est une configuration Opus haute vitesse : la même qualité de modèle à environ 2,5 fois la vitesse pour un coût par token plus élevé, utile pour l'itération rapide et le débogage en direct. La tarification reste inchangée à 30 \$/150 \$ par MTok, identique au mode rapide Opus 4.6. Pour épingler le mode rapide à Opus 4.6, définissez `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1`.

46 46 

47![Le sélecteur de modèle Claude Code montrant Opus 4.7 Fast 1M comme valeur par défaut avec le basculement Fast activé](https://mintcdn.com/claude-code/ITvjicPxe1SM3GX7/images/whats-new/fast-mode-opus-47.png?fit=max\&auto=format\&n=ITvjicPxe1SM3GX7\&q=85\&s=6b6d92f7748ce5328a1ee9a269fb1a87)47![Le sélecteur de modèle Claude Code montrant Opus 4.7 Fast 1M comme valeur par défaut avec le basculement Fast activé](https://mintcdn.com/claude-code/ITvjicPxe1SM3GX7/images/whats-new/fast-mode-opus-47.png?fit=max\&auto=format\&n=ITvjicPxe1SM3GX7\&q=85\&s=6b6d92f7748ce5328a1ee9a269fb1a87)

48 48 

Details

12Claude Sonnet 512Claude Sonnet 5

13nouveau modèle13nouveau modèle

14 14 

15Sonnet 5 est le nouveau modèle par défaut pour les sièges des abonnements Pro, Team Standard et Enterprise : codage de haut niveau et utilisation d'outils au prix de Sonnet, avec une fenêtre de contexte native de 1 M de jetons et la réflexion adaptative activée par défaut. La tarification de l'API est promotionnelle à 2 $/10 $ par MTok jusqu'au 31 août. Nécessite v2.1.197 ou ultérieure.15Sonnet 5 est le nouveau modèle par défaut pour les sièges des abonnements Pro, Team Standard et Enterprise : codage de haut niveau et utilisation d'outils au prix de Sonnet, avec une fenêtre de contexte native de 1 M de jetons et la réflexion adaptative activée par défaut. La tarification de l'API est promotionnelle à 2 \$/10 \$ par MTok jusqu'au 31 août. Nécessite v2.1.197 ou ultérieure.

16 16 

17Basculez vers Sonnet 5 par nom, ou sélectionnez-le dans le sélecteur de modèle :17Basculez vers Sonnet 5 par nom, ou sélectionnez-le dans le sélecteur de modèle :

18 18 

Details

12Claude Opus 512Claude Opus 5

13nouveau modèle13nouveau modèle

14 14 

15Claude Opus 5 est le nouveau modèle Opus par défaut dans Claude Code. C'est le modèle par défaut sur Max, Team Premium, Enterprise avec paiement à l'usage, et l'API Anthropic, ainsi que sur Claude Platform sur AWS, Amazon Bedrock et Agent Platform de Google Cloud. Sur l'API Anthropic et sur les plans Max, Team et Enterprise, Opus 5 s'exécute avec une [fenêtre de contexte de 1M de tokens](https://code.claude.com/docs/fr/model-config.md#extended-context) ; sur Amazon Bedrock et Agent Platform de Google Cloud, sélectionnez la variante de modèle 1M. Le mode rapide passe à Opus 5 à 10 $/50 $ par MTok. Nécessite v2.1.219 ou ultérieure.15Claude Opus 5 est le nouveau modèle Opus par défaut dans Claude Code. C'est le modèle par défaut sur Max, Team Premium, Enterprise avec paiement à l'usage, et l'API Anthropic, ainsi que sur Claude Platform sur AWS, Amazon Bedrock et Agent Platform de Google Cloud. Sur l'API Anthropic et sur les plans Max, Team et Enterprise, Opus 5 s'exécute avec une [fenêtre de contexte de 1M de tokens](https://code.claude.com/docs/fr/model-config.md#extended-context) ; sur Amazon Bedrock et Agent Platform de Google Cloud, sélectionnez la variante de modèle 1M. Le mode rapide passe à Opus 5 à 10 \$/50 \$ par MTok. Nécessite v2.1.219 ou ultérieure.

16 16 

17<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/opus-5.mp4?fit=max&auto=format&n=N3yEaTYPXMXFrF6k&q=85&s=8536b1cb3180e539008f39930403e47b" />17<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/N3yEaTYPXMXFrF6k/images/whats-new/opus-5.mp4?fit=max&auto=format&n=N3yEaTYPXMXFrF6k&q=85&s=8536b1cb3180e539008f39930403e47b" />

18 18 

workflows.md +10 −4

Details

375 375 

376 Avant la v2.1.305, les agents terminés pouvaient également s'exécuter à nouveau quand vous relanciez un script non modifié dont les éléments `pipeline()` ou les tâches `parallel()` exécutaient chacun plus d'un agent. Pour éviter ces réexécutions lors des nouvelles exécutions, mettez à jour Claude Code.376 Avant la v2.1.305, les agents terminés pouvaient également s'exécuter à nouveau quand vous relanciez un script non modifié dont les éléments `pipeline()` ou les tâches `parallel()` exécutaient chacun plus d'un agent. Pour éviter ces réexécutions lors des nouvelles exécutions, mettez à jour Claude Code.

377* **Toujours en cours d'exécution quand vous avez arrêté** : recommence. L'arrêt de l'ensemble de l'exécution ne compte aucun agent comme ayant échoué.377* **Toujours en cours d'exécution quand vous avez arrêté** : recommence. L'arrêt de l'ensemble de l'exécution ne compte aucun agent comme ayant échoué.

378* **[Échoué à une limite d'utilisation](#when-a-run-hits-your-usage-limit) sur v2.1.318 ou ultérieur** : s'exécute à nouveau, et les agents qui ont terminé retournent leurs résultats sauvegardés. Si votre script a appelé un autre agent après l'échec et que cet agent a retourné un résultat, tous les agents que le script démarre après celui qui a échoué s'exécutent également à nouveau.

378* **Échoué** : s'exécute à nouveau, tout comme tous les agents que le script démarre après lui, même ceux qui ont terminé. L'arrêt d'un seul agent, en le sélectionnant dans [`/workflows`](#watch-the-run) et en appuyant sur `x`, compte comme un échec.379* **Échoué** : s'exécute à nouveau, tout comme tous les agents que le script démarre après lui, même ceux qui ont terminé. L'arrêt d'un seul agent, en le sélectionnant dans [`/workflows`](#watch-the-run) et en appuyant sur `x`, compte comme un échec.

379 380 

380Ce dernier cas signifie qu'un échec au milieu d'une distribution réexécute le travail qui a déjà terminé. Si un script démarre A, B, C et D dans cet ordre et que B échoue, relancer retourne A du cache et exécute B, C et D à nouveau.381Ce dernier cas signifie qu'un agent **Échoué** au milieu d'une distribution réexécute le travail qui a déjà terminé. Si un script démarre A, B, C et D dans cet ordre et que B est **Échoué**, relancer retourne A du cache et exécute B, C et D à nouveau.

381 382 

382Si vous modifiez un script qui démarrait A, B, C et D pour qu'il démarre A, C, B et D, le deuxième agent à démarrer est désormais C, là où l'exécution précédente démarrait B. Relancer retourne A du cache et exécute C, B et D à nouveau.383Si vous modifiez un script qui démarrait A, B, C et D pour qu'il démarre A, C, B et D, le deuxième agent à démarrer est désormais C, là où l'exécution précédente démarrait B. Relancer retourne A du cache et exécute C, B et D à nouveau.

383 384 


395 396 

396### Quand une exécution atteint votre limite d'utilisation397### Quand une exécution atteint votre limite d'utilisation

397 398 

398Quand un agent atteint votre limite d'utilisation [claude.ai](https://code.claude.com/docs/fr/interactive-mode.md#wait-for-a-usage-limit-to-reset), l'exécution se met en pause plutôt que de faire échouer cet agent : les agents qui ont atteint la limite attendent la réinitialisation, et aucun nouvel agent ne démarre. Peu de temps après la réinitialisation de la limite, les agents en attente s'exécutent à nouveau et l'exécution continue d'elle-même. Nécessite Claude Code v2.1.271 ou ultérieur ; sur les versions antérieures, les agents affectés échouent.399Quand un agent atteint votre [limite d'utilisation](https://code.claude.com/docs/fr/interactive-mode.md#wait-for-a-usage-limit-to-reset) claude.ai, l'exécution se met en pause plutôt que de faire échouer cet agent. Les agents qui ont atteint la limite attendent la réinitialisation, et aucun nouvel agent ne démarre. Peu de temps après la réinitialisation de la limite, les agents en attente s'exécutent à nouveau et l'exécution continue d'elle-même. Nécessite Claude Code v2.1.271 ou ultérieur, ou [v2.1.319 ou ultérieur](https://code.claude.com/docs/fr/desktop.md#claude-code-version-in-the-code-tab) dans l'[onglet Code](https://code.claude.com/docs/fr/desktop.md) de Desktop. Sur les versions antérieures, les agents affectés échouent.

399 400 

400Pendant que l'exécution attend, sa ligne de progression dans le panneau des tâches et l'en-tête [`/workflows`](#watch-the-run) affichent quand la limite se réinitialise.401Pendant que l'exécution attend, sa ligne de progression dans le panneau des tâches et l'en-tête [`/workflows`](#watch-the-run) affichent quand la limite se réinitialise. Dans l'onglet Code, l'exécution affiche une ligne telle que `Paused at usage limit · continues after 3:45 PM if the app stays open`. Gardez l'application ouverte.

401 402 

402L'exécution se met en pause uniquement quand tous ces éléments sont vrais ; quand l'un d'eux ne l'est pas, l'agent affecté échoue à la place :403L'exécution se met en pause uniquement quand tous ces éléments sont vrais ; quand l'un d'eux ne l'est pas, l'agent affecté échoue à la place :

403 404 

404* La session est interactive et connectée avec un abonnement claude.ai. Une exécution ne se met pas en pause en [mode non-interactif](https://code.claude.com/docs/fr/headless.md) avec `claude -p` ou l'[Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md), dans une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md), ou dans une session coéquipier [Remote Control](https://code.claude.com/docs/fr/remote-control.md) ou [équipe d'agents](https://code.claude.com/docs/fr/agent-teams.md).405* La session est connectée avec un abonnement claude.ai sans [facturation à l'usage](https://code.claude.com/docs/fr/interactive-mode.md#start-a-wait-yourself), et fait partie de ces types de session :

406 * Une session de terminal interactive. Une exécution ne se met pas en pause en [mode non interactif](https://code.claude.com/docs/fr/headless.md) avec `claude -p` ou l'[Agent SDK](https://code.claude.com/docs/fr/agent-sdk/overview.md), dans une [session en arrière-plan](https://code.claude.com/docs/fr/agent-view.md), ou dans une session coéquipier [Remote Control](https://code.claude.com/docs/fr/remote-control.md) ou [équipe d'agents](https://code.claude.com/docs/fr/agent-teams.md).

407 * Une session locale que vous avez démarrée dans l'onglet Code. Une exécution ne se met pas en pause dans une session SSH, WSL, [Dispatch](https://code.claude.com/docs/fr/desktop.md#sessions-from-dispatch) ou de [tâche planifiée](https://code.claude.com/docs/fr/desktop-scheduled-tasks.md), dans une session démarrée depuis Remote Control ou via un [lanceur d'entreprise](https://code.claude.com/docs/fr/corporate-launcher.md), ni lorsque [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/fr/env-vars#variables) est défini.

405* [`autoContinueAtUsageLimit`](https://code.claude.com/docs/fr/settings-reference#autocontinueatusagelimit) est activé, le même paramètre qui permet à la session elle-même d'[attendre la réinitialisation d'une limite d'utilisation](https://code.claude.com/docs/fr/interactive-mode.md#wait-for-a-usage-limit-to-reset). Si vous le désactivez pendant une attente, l'attente se termine et les agents en attente échouent.408* [`autoContinueAtUsageLimit`](https://code.claude.com/docs/fr/settings-reference#autocontinueatusagelimit) est activé, le même paramètre qui permet à la session elle-même d'[attendre la réinitialisation d'une limite d'utilisation](https://code.claude.com/docs/fr/interactive-mode.md#wait-for-a-usage-limit-to-reset). Si vous le désactivez pendant une attente, l'attente se termine et les agents en attente échouent.

409* Dans l'onglet Code, la case **Auto-continue when limits reset** d'une [carte de limite de session](https://code.claude.com/docs/fr/errors.md#youve-hit-your-session-limit) est cochée, comme c'est le cas par défaut. Si vous la décochez, les exécutions dans vos sessions de l'onglet Code cessent de se mettre en pause, sauf si les paramètres gérés définissent `autoContinueAtUsageLimit` sur `true`.

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

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

408 412 

413Pour terminer une exécution dont les agents ont échoué à la limite, demandez à Claude de [relancer le workflow](#which-agents-run-again) après la réinitialisation de la limite.

414 

409### Quand un agent se bloque et redémarre415### Quand un agent se bloque et redémarre

410 416 

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

worktrees.md +1 −1

Details

253 253 

254Un worktree obtient ses propres fichiers et branche, mais il partage les éléments suivants avec l'extraction principale :254Un worktree obtient ses propres fichiers et branche, mais il partage les éléments suivants avec l'extraction principale :

255 255 

256* **Le répertoire `.git` du dépôt** : les commandes git dans un worktree écrivent dans le répertoire `.git` partagé du dépôt principal, et l'[isolation du système de fichiers](https://code.claude.com/docs/fr/sandboxing.md#filesystem-isolation) permet ces écritures, donc les commandes telles que `git commit` fonctionnent depuis l'intérieur d'un worktree avec le sandbox activé.256* **Le répertoire `.git` du dépôt** : les commandes git dans un worktree écrivent dans le répertoire `.git` partagé du dépôt principal. Avec le [sandbox](https://code.claude.com/docs/fr/sandboxing.md#filesystem-isolation) activé, les commandes telles que `git commit` fonctionnent dans une session ouverte à la racine du worktree, là où `--worktree` en démarre une. Par défaut, elles [échouent avec une erreur `index.lock` si vous exécutez `claude` dans un sous-répertoire du worktree](https://code.claude.com/docs/fr/sandboxing#git-index-lock).

257* **Plugins** : les plugins installés à [portée du projet](https://code.claude.com/docs/fr/plugins/loading.md#find-where-a-plugin-is-enabled) à partir de l'extraction principale se chargent également dans les worktrees du même dépôt, vous n'avez donc pas besoin de les réinstaller par worktree.257* **Plugins** : les plugins installés à [portée du projet](https://code.claude.com/docs/fr/plugins/loading.md#find-where-a-plugin-is-enabled) à partir de l'extraction principale se chargent également dans les worktrees du même dépôt, vous n'avez donc pas besoin de les réinstaller par worktree.

258* **Approbations de permission** : choisir « Oui, et ne plus demander » pour une commande Bash dans une session worktree sauvegarde la règle dans le `.claude/settings.local.json` de l'extraction principale. La règle s'applique dans l'extraction principale et dans chaque autre worktree du dépôt, et elle survit à la suppression du worktree.258* **Approbations de permission** : choisir « Oui, et ne plus demander » pour une commande Bash dans une session worktree sauvegarde la règle dans le `.claude/settings.local.json` de l'extraction principale. La règle s'applique dans l'extraction principale et dans chaque autre worktree du dépôt, et elle survit à la suppression du worktree.

259 259 

Details

41 41 

42### Ce que ZDR ne couvre pas42### Ce que ZDR ne couvre pas

43 43 

44ZDR ne s'étend pas aux éléments suivants, même pour les organisations avec ZDR activée. Ces fonctionnalités suivent les [politiques standard de conservation des données](https://code.claude.com/docs/fr/data-usage.md#data-retention) :44ZDR ne s'étend pas aux éléments suivants, même pour les organisations avec ZDR activée. Sauf indication contraire dans une ligne, ces fonctionnalités suivent les [politiques standard de conservation des données](https://code.claude.com/docs/fr/data-usage.md#data-retention) :

45 45 

46| Fonctionnalité | Détails |46| Fonctionnalité | Détails |

47| - | - |47| - | - |

48| Chat sur claude.ai | Les conversations de chat via l'interface web Claude for Enterprise ne sont pas couvertes par ZDR. |48| Chat sur claude.ai | Les conversations de chat via l'interface web Claude for Enterprise ne sont pas couvertes par ZDR. |

49| Cowork | Les sessions Cowork ne sont pas couvertes par ZDR. |49| Cowork | Les sessions Cowork ne sont pas couvertes par ZDR. |

50| Artefacts | Les artefacts des conversations de chat et des sessions Cowork ne sont pas couverts par ZDR et sont conservés jusqu'à leur suppression, sauf si votre organisation définit une période de conservation pour eux. Les artefacts ne sont pas disponibles dans Claude Code avec ZDR. |

50| Claude Code Analytics | Ne stocke pas les invites ou les réponses du modèle, mais collecte les métadonnées de productivité telles que les e-mails de compte et les statistiques d'utilisation. Les métriques de contribution ne sont pas disponibles pour les organisations ZDR ; le [tableau de bord analytics](https://code.claude.com/docs/fr/analytics.md) affiche uniquement les métriques d'utilisation. |51| Claude Code Analytics | Ne stocke pas les invites ou les réponses du modèle, mais collecte les métadonnées de productivité telles que les e-mails de compte et les statistiques d'utilisation. Les métriques de contribution ne sont pas disponibles pour les organisations ZDR ; le [tableau de bord analytics](https://code.claude.com/docs/fr/analytics.md) affiche uniquement les métriques d'utilisation. |

51| Gestion des utilisateurs et des sièges | Les données administratives telles que les e-mails de compte et les attributions de sièges sont conservées selon les politiques standard. |52| Gestion des utilisateurs et des sièges | Les données administratives telles que les e-mails de compte et les attributions de sièges sont conservées selon les politiques standard. |

52| Intégrations tierces | Les données traitées par des outils tiers, des serveurs MCP ou d'autres intégrations externes ne sont pas couvertes par ZDR. Examinez indépendamment les pratiques de traitement des données de ces services. |53| Intégrations tierces | Les données traitées par des outils tiers, des serveurs MCP ou d'autres intégrations externes ne sont pas couvertes par ZDR. Examinez indépendamment les pratiques de traitement des données de ces services. |


60| [Sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), y compris celles lancées depuis l'[application Desktop](https://code.claude.com/docs/fr/desktop.md#cloud-sessions) | Nécessite le stockage côté serveur des données de session, y compris l'historique des conversations avec les invites et les complétions. |61| [Sessions cloud](https://code.claude.com/docs/fr/claude-code-on-the-web.md), y compris celles lancées depuis l'[application Desktop](https://code.claude.com/docs/fr/desktop.md#cloud-sessions) | Nécessite le stockage côté serveur des données de session, y compris l'historique des conversations avec les invites et les complétions. |

61| [Chat et Cowork unifiés](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | Nécessite les sessions cloud. |62| [Chat et Cowork unifiés](https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization) | Nécessite les sessions cloud. |

62| [Claude Tag](https://claude.com/docs/claude-tag) | Conserve la mémoire du canal et les transcriptions de session. |63| [Claude Tag](https://claude.com/docs/claude-tag) | Conserve la mémoire du canal et les transcriptions de session. |

63| [Artifacts](https://code.claude.com/docs/fr/artifacts.md) | Nécessite de stocker le contenu de la page publiée sur l'infrastructure exploitée par Anthropic. |64| [Artefacts](https://code.claude.com/docs/fr/artifacts.md) dans Claude Code | Nécessite de stocker le contenu de la page publiée sur l'infrastructure exploitée par Anthropic. |

65| [Claude Docs](https://support.claude.com/en/articles/16923645-get-started-with-claude-docs) | Nécessite de stocker le contenu des documents sur l'infrastructure exploitée par Anthropic. |

64| Soumission de commentaires (`/feedback`, `/bug`, `/share`) | La soumission de commentaires envoie les données de conversation à Anthropic. |66| Soumission de commentaires (`/feedback`, `/bug`, `/share`) | La soumission de commentaires envoie les données de conversation à Anthropic. |

65| [Contrôle à distance](https://code.claude.com/docs/fr/remote-control.md) | Stocke la transcription de la session sur les serveurs Anthropic pour synchroniser la conversation entre les appareils. |67| [Contrôle à distance](https://code.claude.com/docs/fr/remote-control.md) | Stocke la transcription de la session sur les serveurs Anthropic pour synchroniser la conversation entre les appareils. |

66 68