SpyBara
Go Premium

Documentation 2026-06-16 21:57 UTC to 2026-06-17 17:02 UTC

112 files changed +6,676 −1,102. View all changes and history on the product overview
2026
Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

admin-setup.md +5 −4

Details

46 Décider comment les paramètres atteignent les appareils46 Décider comment les paramètres atteignent les appareils

47</h2>47</h2>

48 48 

49Les paramètres gérés définissent une politique qui prend précédence sur la configuration locale des développeurs. Claude Code les recherche dans quatre endroits et utilise le premier qu'il trouve sur un appareil donné.49Les paramètres gérés définissent une politique qui prend précédence sur la configuration locale des développeurs. Claude Code vérifie les quatre sources ci-dessous dans l'ordre de priorité et applique la première qui retourne une configuration non vide.

50 50 

51| Mécanisme | Livraison | Priorité | Plateformes |51| Mécanisme | Livraison | Priorité | Plateformes |

52| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------- | :----------------- |52| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------- | :----------------- |


74Les paramètres gérés peuvent verrouiller les outils, l'exécution du sandbox, restreindre les serveurs MCP et les sources de plugins, et contrôler les hooks qui s'exécutent. Chaque ligne est une surface de contrôle avec les clés de paramètres qui la pilotent.74Les paramètres gérés peuvent verrouiller les outils, l'exécution du sandbox, restreindre les serveurs MCP et les sources de plugins, et contrôler les hooks qui s'exécutent. Chaque ligne est une surface de contrôle avec les clés de paramètres qui la pilotent.

75 75 

76| Contrôle | Ce qu'il fait | Paramètres clés |76| Contrôle | Ce qu'il fait | Paramètres clés |

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

78| [Règles de permission](/fr/permissions) | Autoriser, demander ou refuser des outils et commandes spécifiques | `permissions.allow`, `permissions.deny` |78| [Règles de permission](/fr/permissions) | Autoriser, demander ou refuser des outils et commandes spécifiques | `permissions.allow`, `permissions.deny` |

79| [Verrouillage des permissions](/fr/permissions#managed-only-settings) | Seules les règles de permission gérées s'appliquent ; désactiver `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |79| [Verrouillage des permissions](/fr/permissions#managed-only-settings) | Seules les règles de permission gérées s'appliquent ; désactiver `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

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


85| [Restrictions des hooks](/fr/settings#hook-configuration) | Seuls les hooks gérés se chargent ; restreindre les URL des hooks HTTP | `allowManagedHooksOnly`, `allowedHttpHookUrls` |85| [Restrictions des hooks](/fr/settings#hook-configuration) | Seuls les hooks gérés se chargent ; restreindre les URL des hooks HTTP | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

86| [Désactiver la vue agent](/fr/agent-view#how-background-sessions-are-hosted) | Désactiver `claude agents`, `--bg`, `/background`, et le superviseur à la demande | `disableAgentView` |86| [Désactiver la vue agent](/fr/agent-view#how-background-sessions-are-hosted) | Désactiver `claude agents`, `--bg`, `/background`, et le superviseur à la demande | `disableAgentView` |

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

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

88 89 

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

90 91 


122 Vérifier et intégrer123 Vérifier et intégrer

123</h2>124</h2>

124 125 

125Après avoir configuré les paramètres gérés, demandez à un développeur d'exécuter `/status` dans Claude Code. La sortie inclut une ligne commençant par `Enterprise managed settings` suivie de la source entre parenthèses, l'une de `(remote)`, `(plist)`, `(HKLM)`, `(HKCU)` ou `(file)`. Consultez [Vérifier les paramètres actifs](/fr/settings#verify-active-settings).126Après avoir configuré les paramètres gérés, demandez à un développeur d'exécuter `/status` dans Claude Code. Sur l'onglet **Status**, la ligne `Setting sources` affiche `Enterprise managed settings` suivie de la source entre parenthèses, l'une de `(remote)`, `(plist)`, `(HKLM)`, `(HKCU)` ou `(file)`. Consultez [Vérifier les paramètres actifs](/fr/settings#verify-active-settings).

126 127 

127Partagez ces ressources pour aider les développeurs à démarrer :128Partagez ces ressources pour aider les développeurs à démarrer :

128 129 


130* [Flux de travail courants](/fr/common-workflows) : modèles pour les tâches quotidiennes comme l'examen du code, la refactorisation et le débogage131* [Flux de travail courants](/fr/common-workflows) : modèles pour les tâches quotidiennes comme l'examen du code, la refactorisation et le débogage

131* [Claude 101](https://anthropic.skilljar.com/claude-101) et [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action) : cours d'Anthropic Academy à votre rythme132* [Claude 101](https://anthropic.skilljar.com/claude-101) et [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action) : cours d'Anthropic Academy à votre rythme

132 133 

133Pour les problèmes de connexion, dirigez les développeurs vers [dépannage de l'authentification](/fr/troubleshooting#login-and-authentication). Les correctifs les plus courants sont :134Pour les problèmes de connexion, dirigez les développeurs vers [dépannage de l'authentification](/fr/troubleshoot-install#login-and-authentication). Les correctifs les plus courants sont :

134 135 

135* Exécuter `/logout` puis `/login` pour changer de compte136* Exécuter `/logout` puis `/login` pour changer de compte

136* Exécuter `claude update` si l'option d'authentification d'entreprise est manquante137* Exécuter `claude update` si l'option d'authentification d'entreprise est manquante

advisor.md +198 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Escalader les décisions difficiles avec l'outil advisor

6 

7> Associez votre modèle principal à un modèle advisor plus puissant que Claude consulte aux moments clés pendant une tâche.

8 

9{/* plan-availability: feature=advisor providers=anthropic */}

10 

11<Note>

12 L'outil advisor est expérimental et nécessite Claude Code v2.1.98 ou ultérieur avec l'API Anthropic. Il n'est pas disponible sur Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. Le comportement, la tarification et la disponibilité peuvent changer.

13</Note>

14 

15L'outil advisor permet à Claude de consulter un deuxième modèle, généralement plus puissant, aux moments clés pendant une tâche, par exemple avant de s'engager dans une approche, lorsqu'il est bloqué par une erreur récurrente, ou avant de déclarer une tâche terminée. L'advisor reçoit la conversation complète, y compris chaque appel d'outil et résultat, et retourne des conseils que Claude applique avant de continuer.

16 

17L'advisor s'exécute côté serveur sur l'infrastructure d'Anthropic en tant qu'[outil serveur](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool), disponible pour les comptes d'abonnement et facturés à l'API. Vous choisissez quel modèle agit comme advisor, et Claude décide quand l'appeler.

18 

19Cette page couvre comment activer l'advisor, quels appairages de modèles sont acceptés, ce que Claude affiche pendant une consultation, et comment l'utilisation de l'advisor est facturée.

20 

21<h2 id="when-to-use-the-advisor">

22 Quand utiliser l'advisor

23</h2>

24 

25L'advisor convient aux tâches longues et multi-étapes où la plupart des tours sont routiniers mais la qualité du plan détermine le résultat. Les exemples incluent les grandes refactorisations, les sessions de débogage où une erreur se reproduit constamment, et les tâches que vous voulez vérifier indépendamment avant que Claude les déclare terminées.

26 

27Il ajoute moins de valeur sur les tâches courtes où il y a peu à planifier, ou sur le travail où chaque tour a besoin du modèle le plus puissant. Pour ceux-ci, [changez le modèle principal](/fr/model-config#setting-your-model) à la place, ou consultez [comment l'advisor se compare avec opusplan et les sous-agents](#compare-with-related-features) pour d'autres façons d'obtenir un deuxième avis.

28 

29<h2 id="enable-the-advisor">

30 Activer l'advisor

31</h2>

32 

33Vous pouvez définir le modèle advisor de trois façons :

34 

35* **Commande `/advisor`** : définir ou modifier l'advisor en milieu de session et l'enregistrer comme valeur par défaut

36* **Paramètre `advisorModel`** : configurer une valeur par défaut persistante dans votre [fichier de paramètres](/fr/settings)

37* **Drapeau `--advisor`** : définir l'advisor pour une seule session au lancement

38 

39Si l'une de ces options définit un modèle advisor, l'advisor est activé pour les sessions dont le modèle principal [le supporte](#choose-an-advisor-model). Pour arrêter de l'utiliser, consultez [Désactiver l'advisor](#turn-the-advisor-off).

40 

41<Note>

42 Pour utiliser Fable 5 comme advisor, vous avez besoin de Claude Code v2.1.170 ou ultérieur et de l'[accès à Fable 5](/fr/model-config#work-with-fable-5) pour votre organisation.

43</Note>

44 

45<h3 id="use-the-/advisor-command">

46 Utiliser la commande `/advisor`

47</h3>

48 

49Exécutez `/advisor` sans arguments pour ouvrir un sélecteur listant les modèles advisor disponibles, ou passez le modèle directement :

50 

51```

52/advisor opus

53```

54 

55Votre sélection est enregistrée dans `advisorModel` dans vos paramètres utilisateur et persiste entre les sessions. Si votre modèle principal actuel ne supporte pas l'advisor, la sélection est toujours enregistrée et s'active lorsque vous basculez vers un [modèle principal compatible](#choose-an-advisor-model) avec [`/model`](/fr/model-config#setting-your-model).

56 

57<h3 id="set-advisormodel-in-settings">

58 Définir `advisorModel` dans les paramètres

59</h3>

60 

61Pour configurer l'advisor comme valeur par défaut sans ouvrir une session, définissez-le dans votre fichier de paramètres :

62 

63```json theme={null}

64{

65 "advisorModel": "opus"

66}

67```

68 

69<h3 id="use-the-advisor-flag">

70 Utiliser le drapeau `--advisor`

71</h3>

72 

73Pour définir l'advisor pour une seule session sans modifier votre paramètre enregistré, lancez avec le drapeau :

74 

75```bash theme={null}

76claude --advisor opus

77```

78 

79Le drapeau a la priorité sur le paramètre `advisorModel` pour cette session. Contrairement à `/advisor`, qui enregistre une sélection inactive, le drapeau se termine avec une erreur si le modèle principal de la session ne supporte pas l'advisor.

80 

81<h2 id="choose-an-advisor-model">

82 Choisir un modèle advisor

83</h2>

84 

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

86 

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

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

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

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

91| Opus 4.6 ou ultérieur | Fable, Opus à la version du modèle principal ou ultérieure | Un Opus 4.7 principal avec un advisor Opus 4.6 est rejeté |

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

93 

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

95 

96Définissez l'advisor comme `opus`, `sonnet`, ou `fable`. Ces alias se résolvent à la dernière version de chaque modèle. Vous pouvez également passer un ID de modèle complet tel que `claude-opus-4-8`.

97 

98Les sous-agents héritent de l'advisor configuré et appliquent la même vérification d'appairage par rapport à leur propre modèle.

99 

100Claude Code valide l'appairage avant d'envoyer une requête :

101 

102* Si l'advisor est moins capable que le modèle principal, l'advisor n'est pas attaché aux requêtes du modèle principal. La sortie de la commande `/advisor` et une notification le montrent. Les sous-agents dont le modèle propre satisfait l'appairage peuvent toujours utiliser l'advisor.

103* Si le modèle principal ou l'advisor est un modèle que Claude Code ne reconnaît pas, l'advisor n'est pas attaché.

104 

105<h3 id="common-model-pairings">

106 Appairages de modèles courants

107</h3>

108 

109Tout appairage accepté fonctionne. Ces combinaisons équilibrent le coût par rapport à la capacité de différentes façons :

110 

111| Appairage | Quand l'utiliser |

112| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

113| Sonnet principal + advisor Opus | Sonnet gère le travail routinier et escalade la planification, les défaillances ambiguës et les vérifications d'achèvement à Opus |

114| Sonnet principal + advisor Fable | Conseils Fable 5 aux points de décision sans exécuter Fable 5 partout. Nécessite v2.1.170 ou ultérieur et l'accès à Fable 5 |

115| Haiku principal + advisor Opus | Modèle principal au coût le plus bas avec une planification puissante. Attendez-vous à un coût plus élevé que Haiku seul mais inférieur au basculement du modèle principal vers Sonnet ou Opus |

116| Opus principal + advisor Opus | Un deuxième Opus examine le premier. Utile pour les tâches à enjeux élevés où une vérification indépendante importe plus que le coût |

117| Fable principal + advisor Fable | Appairage de plus haute capacité lorsque Fable 5 est disponible (v2.1.170+). Fable est un niveau supérieur à Opus et Sonnet, donc c'est le seul advisor accepté pour un modèle principal Fable |

118| Sonnet principal + advisor Sonnet | Un deuxième avis à coût inférieur pour attraper les oublis routiniers |

119 

120<h2 id="when-claude-consults-the-advisor">

121 Quand Claude consulte l'advisor

122</h2>

123 

124Claude décide quand appeler l'advisor. Il tend à consulter avant de s'engager dans une approche, lorsqu'une erreur se reproduit constamment, et avant de déclarer une tâche terminée, mais le timing est piloté par le modèle plutôt que basé sur des règles.

125 

126Vous pouvez demander une consultation dans votre invite de la même façon que vous demanderiez n'importe quel outil, par exemple `consulter l'advisor avant de continuer`. Il n'y a pas de paramètre pour limiter ou forcer les appels advisor ; si vous voulez que Claude consulte plus ou moins souvent pendant une tâche, dites-le dans vos instructions.

127 

128<h2 id="what-you-see-during-a-session">

129 Ce que vous voyez pendant une session

130</h2>

131 

132Quand Claude appelle l'advisor, la transcription affiche une ligne `Advising` avec le nom du modèle advisor pendant que l'appel est en cours. Quand le résultat revient, la ligne confirme que l'advisor a examiné la conversation. Appuyez sur `Ctrl+O` pour l'agrandir et lire les conseils complets de l'advisor.

133 

134Claude suit généralement les conseils de l'advisor, mais s'adapte lorsque ses propres preuves contredisent une affirmation spécifique : si une étape recommandée échoue lorsqu'elle est essayée, ou si le contenu du fichier contredit le conseil, Claude met en évidence le conflit plutôt que de suivre le conseil inconditionnellement.

135 

136L'advisor reçoit toujours la conversation complète, et Claude contrôle le timing. Pour plus de contrôle ou une configuration différente, consultez [comment l'advisor se compare avec les sous-agents et opusplan](#compare-with-related-features).

137 

138<h2 id="cost">

139 Coût

140</h2>

141 

142Chaque appel advisor envoie la conversation au modèle advisor, donc il consomme des tokens aux tarifs du modèle advisor en plus de l'utilisation de votre modèle principal. Avec la facturation API, les tokens advisor sont facturés aux tarifs d'entrée et de sortie du modèle advisor. Sur les plans d'abonnement, l'utilisation de l'advisor compte vers les limites d'utilisation de votre plan.

143 

144Claude 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`](/fr/costs#track-your-costs).

145 

146Pour savoir comment les tokens advisor sont signalés dans les réponses API, consultez [Utilisation et facturation](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool#usage-and-billing) dans la documentation de l'API Claude.

147 

148<h2 id="impact-on-prompt-caching">

149 Impact sur la mise en cache des invites

150</h2>

151 

152Activer ou désactiver l'advisor en milieu de session n'invalide pas le [cache d'invite](/fr/prompt-caching) de votre modèle principal. Contrairement au [changement de modèle ou de niveau d'effort](/fr/prompt-caching#actions-that-invalidate-the-cache), basculer `/advisor` garde le préfixe en cache intact, et les conseils retournés par l'advisor sont mis en cache dans la transcription sur les tours ultérieurs.

153 

154La propre lecture de la conversation par le modèle advisor n'est pas mise en cache. Chaque appel advisor traite la transcription complète à nouveau, sans réutilisation entre les appels.

155 

156<h2 id="requirements">

157 Exigences

158</h2>

159 

160L'outil advisor nécessite tous les éléments suivants :

161 

162* **Claude Code v2.1.98 ou ultérieur** : exécutez `claude update` pour mettre à niveau.

163* **API Anthropic uniquement** : l'advisor est un outil exécuté par le serveur. Il n'est pas disponible sur Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. Via une [passerelle LLM](/fr/llm-gateway) configurée avec `ANTHROPIC_BASE_URL`, la disponibilité dépend de si la passerelle transfère la requête intacte à l'API Anthropic.

164* **Modèle principal supporté** : Opus 4.6 ou ultérieur, Sonnet 4.6, ou Haiku 4.5. {/* min-version: 2.1.170 */}Fable 5 se qualifie également sur Claude Code v2.1.170 ou ultérieur.

165 

166<h2 id="turn-the-advisor-off">

167 Désactiver l'advisor

168</h2>

169 

170Pour arrêter d'utiliser l'advisor et effacer votre `advisorModel` enregistré, exécutez `/advisor off` ou choisissez **No advisor** dans le sélecteur `/advisor` :

171 

172```

173/advisor off

174```

175 

176Pour désactiver complètement l'outil advisor, y compris la commande `/advisor` et le drapeau `--advisor`, définissez `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`. Consultez [Variables d'environnement](/fr/env-vars).

177 

178<h2 id="compare-with-related-features">

179 Comparer avec les fonctionnalités connexes

180</h2>

181 

182L'advisor est l'une de plusieurs façons de combiner les forces des modèles. Choisissez en fonction de quand vous voulez qu'un deuxième modèle soit impliqué.

183 

184| Approche | Quand le modèle plus puissant s'exécute | Comment il démarre |

185| ---------------------------------------------------------------- | --------------------------------------------------------------- | ---------------------------------------------- |

186| Outil advisor | Aux points de décision en milieu de tâche | Claude l'appelle quand il a besoin de conseils |

187| [`opusplan`](/fr/model-config#opusplan-model-setting) | Pendant le mode plan, puis bascule vers Sonnet pour l'exécution | Vous entrez en mode plan |

188| [Sous-agents](/fr/sub-agents#choose-a-model) avec `model` défini | Pour l'ensemble de la sous-tâche déléguée | Claude délègue, ou vous invoquez le sous-agent |

189| [`/model`](/fr/model-config#setting-your-model) | Pour tous les tours ultérieurs | Vous changez de modèle |

190 

191<h2 id="see-also">

192 Voir aussi

193</h2>

194 

195* [Configuration du modèle](/fr/model-config) : changer de modèles, définir les niveaux d'effort, et utiliser `opusplan`

196* [Gérer les coûts efficacement](/fr/costs) : suivre l'utilisation des tokens entre les modèles

197* [Outil advisor dans l'API Claude](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool) : comprendre l'outil serveur sous-jacent, ou l'utiliser directement à partir de l'API Messages

198* [La stratégie advisor](https://claude.com/blog/the-advisor-strategy) : pourquoi associer un modèle principal rapide avec un advisor plus puissant fonctionne

Details

16 16 

17Chaque session d'agent suit le même cycle :17Chaque session d'agent suit le même cycle :

18 18 

19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-loop-diagram.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=1c6e8f28d80dba14a7287419656f1237" alt="Boucle d'agent : le prompt entre, Claude évalue, se divise en appels d'outils ou réponse finale" width="720" height="212" data-path="images/agent-loop-diagram.svg" />19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-loop-diagram.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=1c6e8f28d80dba14a7287419656f1237" alt="Diagramme de la boucle d'agent : votre prompt entre dans la boucle agentique, Claude évalue et demande soit des appels d'outils, dont les résultats réintègrent une autre évaluation, soit retourne la réponse finale" width="720" height="212" data-path="images/agent-loop-diagram.svg" />

20 20 

211. **Recevoir le prompt.** Claude reçoit votre prompt, ainsi que le prompt système, les définitions d'outils et l'historique de conversation. Le SDK produit un [`SystemMessage`](#message-types) avec le sous-type `"init"` contenant les métadonnées de session.211. **Recevoir le prompt.** Claude reçoit votre prompt, ainsi que le prompt système, les définitions d'outils et l'historique de conversation. Le SDK produit un [`SystemMessage`](#message-types) avec le sous-type `"init"` contenant les métadonnées de session.

222. **Évaluer et répondre.** Claude évalue l'état actuel et détermine comment procéder. Il peut répondre avec du texte, demander un ou plusieurs appels d'outils, ou les deux. Le SDK produit un [`AssistantMessage`](#message-types) contenant le texte et toutes les demandes d'appels d'outils.222. **Évaluer et répondre.** Claude évalue l'état actuel et détermine comment procéder. Il peut répondre avec du texte, demander un ou plusieurs appels d'outils, ou les deux. Le SDK produit un [`AssistantMessage`](#message-types) contenant le texte et toutes les demandes d'appels d'outils.


53 53 

54Lorsque la boucle s'exécute, le SDK produit un flux de messages. Chaque message porte un type qui vous indique à quel stade de la boucle il provient. Les cinq types principaux sont :54Lorsque la boucle s'exécute, le SDK produit un flux de messages. Chaque message porte un type qui vous indique à quel stade de la boucle il provient. Les cinq types principaux sont :

55 55 

56* **`SystemMessage` :** événements du cycle de vie de la session. Le champ `subtype` les distingue : `"init"` est le premier message (métadonnées de session), et `"compact_boundary"` se déclenche après [compaction](#automatic-compaction). En TypeScript, la limite de compaction est son propre type [`SDKCompactBoundaryMessage`](/fr/agent-sdk/typescript#sdkcompactboundarymessage) plutôt qu'un sous-type de `SDKSystemMessage`.56* **`SystemMessage` :** événements du cycle de vie de la session. Le champ `subtype` les distingue :

57 

58 * `"init"` : le premier message avec les métadonnées de session

59 * `"compact_boundary"` : se déclenche après [compaction](#automatic-compaction)

60 * `"informational"` : bannières de statut en texte brut de la boucle

61 * `"worker_shutting_down"` : la boucle se terminera après le tour actuel car l'hôte se ferme ou Remote Control s'est déconnecté

62 

63 En TypeScript, chaque sous-type autre que `"init"` est son propre type dans l'union [`SDKMessage`](/fr/agent-sdk/typescript#sdkmessage) plutôt qu'un sous-type de `SDKSystemMessage`.

57* **`AssistantMessage` :** émis après chaque réponse de Claude, y compris la réponse textuelle finale. Contient les blocs de contenu textuel et les blocs d'appels d'outils de ce tour.64* **`AssistantMessage` :** émis après chaque réponse de Claude, y compris la réponse textuelle finale. Contient les blocs de contenu textuel et les blocs d'appels d'outils de ce tour.

58* **`UserMessage` :** émis après chaque exécution d'outil avec le résultat d'outil renvoyé à Claude. Également émis pour toute entrée utilisateur que vous diffusez en boucle.65* **`UserMessage` :** émis après chaque exécution d'outil avec le résultat d'outil renvoyé à Claude. Également émis pour toute entrée utilisateur que vous diffusez en boucle.

59* **`StreamEvent` :** émis uniquement lorsque les messages partiels sont activés. Contient les événements de diffusion API bruts (deltas de texte, chunks d'entrée d'outil). Voir [Réponses en flux](/fr/agent-sdk/streaming-output).66* **`StreamEvent` :** émis uniquement lorsque les messages partiels sont activés. Contient les événements de diffusion API bruts (deltas de texte, chunks d'entrée d'outil). Voir [Réponses en flux](/fr/agent-sdk/streaming-output).


183L'option `effort` contrôle la profondeur du raisonnement que Claude applique. Les niveaux d'effort inférieur utilisent moins de tokens par tour et réduisent le coût. Tous les modèles ne supportent pas le paramètre d'effort. Voir [Effort](https://platform.claude.com/docs/fr/build-with-claude/effort) pour savoir quels modèles le supportent.190L'option `effort` contrôle la profondeur du raisonnement que Claude applique. Les niveaux d'effort inférieur utilisent moins de tokens par tour et réduisent le coût. Tous les modèles ne supportent pas le paramètre d'effort. Voir [Effort](https://platform.claude.com/docs/fr/build-with-claude/effort) pour savoir quels modèles le supportent.

184 191 

185| Niveau | Comportement | Bon pour |192| Niveau | Comportement | Bon pour |

186| :--------- | :------------------------------------- | :--------------------------------------------------------- |193| :--------- | :------------------------------------- | :---------------------------------------------------------------- |

187| `"low"` | Raisonnement minimal, réponses rapides | Recherches de fichiers, listage de répertoires |194| `"low"` | Raisonnement minimal, réponses rapides | Recherches de fichiers, listage de répertoires |

188| `"medium"` | Raisonnement équilibré | Éditions de routine, tâches standard |195| `"medium"` | Raisonnement équilibré | Éditions de routine, tâches standard |

189| `"high"` | Analyse approfondie | Refactorisations, débogage |196| `"high"` | Analyse approfondie | Refactorisations, débogage |

190| `"xhigh"` | Profondeur de raisonnement étendue | Tâches de codage et d'agent ; recommandé sur Opus 4.7 |197| `"xhigh"` | Profondeur de raisonnement étendue | Tâches de codage et d'agent ; recommandé sur Fable 5 et Opus 4.7+ |

191| `"max"` | Profondeur de raisonnement maximale | Problèmes multi-étapes nécessitant une analyse approfondie |198| `"max"` | Profondeur de raisonnement maximale | Problèmes multi-étapes nécessitant une analyse approfondie |

192 199 

193Si vous ne définissez pas `effort`, le SDK Python laisse le paramètre non défini et s'en remet au comportement par défaut du modèle. Le SDK TypeScript utilise par défaut `"high"`.200Si vous ne définissez pas `effort`, les deux SDK laissent le paramètre non défini et s'en remettent au comportement par défaut du modèle.

194 201 

195<Note>202<Note>

196 `effort` échange la latence et le coût des tokens pour la profondeur du raisonnement dans chaque réponse. [Extended thinking](https://platform.claude.com/docs/fr/build-with-claude/extended-thinking) est une fonctionnalité distincte qui produit des blocs de chaîne de pensée visibles dans la sortie. Ils sont indépendants : vous pouvez définir `effort: "low"` avec extended thinking activé, ou `effort: "max"` sans lui.203 `effort` échange la latence et le coût des tokens pour la profondeur du raisonnement dans chaque réponse. [Extended thinking](https://platform.claude.com/docs/fr/build-with-claude/extended-thinking) est une fonctionnalité distincte qui produit des blocs de chaîne de pensée visibles dans la sortie. Ils sont indépendants : vous pouvez définir `effort: "low"` avec extended thinking activé, ou `effort: "max"` sans lui.


205L'option de mode de permission (`permission_mode` en Python, `permissionMode` en TypeScript) contrôle si l'agent demande une approbation avant d'utiliser les outils :212L'option de mode de permission (`permission_mode` en Python, `permissionMode` en TypeScript) contrôle si l'agent demande une approbation avant d'utiliser les outils :

206 213 

207| Mode | Comportement |214| Mode | Comportement |

208| :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |215| :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

209| `"default"` | Les outils non couverts par les règles d'autorisation déclenchent votre rappel d'approbation ; pas de rappel signifie refuser |216| `"default"` | Les outils non couverts par les règles d'autorisation déclenchent votre rappel d'approbation ; pas de rappel signifie refuser |

210| `"acceptEdits"` | Approuve automatiquement les éditions de fichiers et les commandes communes du système de fichiers (`mkdir`, `touch`, `mv`, `cp`, etc.) ; les autres commandes Bash suivent les règles par défaut |217| `"acceptEdits"` | Approuve automatiquement les éditions de fichiers et les commandes communes du système de fichiers (`mkdir`, `touch`, `mv`, `cp`, etc.) ; les autres commandes Bash suivent les règles par défaut |

211| `"plan"` | Les outils en lecture seule s'exécutent ; Claude explore et produit un plan sans éditer vos fichiers source |218| `"plan"` | Claude explore et planifie sans éditer vos fichiers source ; les éditions de fichiers ne sont jamais approuvées automatiquement et demandent via votre rappel `canUseTool` |

212| `"dontAsk"` | Ne demande jamais. Les outils pré-approuvés par les [règles de permission](/fr/settings#permission-settings) s'exécutent, tout le reste est refusé |219| `"dontAsk"` | Ne demande jamais. Les outils pré-approuvés par les [règles de permission](/fr/settings#permission-settings) s'exécutent, tout le reste est refusé |

213| `"auto"` (TypeScript uniquement) | Utilise un classificateur de modèle pour approuver ou refuser chaque appel d'outil. Voir [Mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) pour la disponibilité et le comportement |220| `"auto"` (TypeScript uniquement) | Utilise un classificateur de modèle pour approuver ou refuser chaque appel d'outil. Voir [Mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) pour la disponibilité et le comportement |

214| `"bypassPermissions"` | Exécute tous les outils autorisés sans demander. Ne peut pas être utilisé lors de l'exécution en tant que root sur Unix. À utiliser uniquement dans des environnements isolés où les actions de l'agent ne peuvent pas affecter les systèmes qui vous intéressent |221| `"bypassPermissions"` | Exécute tous les outils autorisés sans demander, sauf si une [règle `ask`](/fr/settings#permission-settings) explicite correspond ; voir [Comment les permissions sont évaluées](/fr/agent-sdk/permissions#how-permissions-are-evaluated) pour savoir où les règles ask se situent dans l'ordre de précédence. Ne peut pas être utilisé lors de l'exécution en tant que root sur Unix. À utiliser uniquement dans des environnements isolés où les actions de l'agent ne peuvent pas affecter les systèmes qui vous intéressent |

215 222 

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

217 224 


305Lorsque la boucle se termine, le `ResultMessage` vous indique ce qui s'est passé et vous donne la sortie. Le champ `subtype` (disponible dans les deux SDK) est le moyen principal de vérifier l'état de terminaison.312Lorsque la boucle se termine, le `ResultMessage` vous indique ce qui s'est passé et vous donne la sortie. Le champ `subtype` (disponible dans les deux SDK) est le moyen principal de vérifier l'état de terminaison.

306 313 

307| Sous-type de résultat | Ce qui s'est passé | Champ `result` disponible ? |314| Sous-type de résultat | Ce qui s'est passé | Champ `result` disponible ? |

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

309| `success` | Claude a terminé la tâche normalement | Oui |316| `success` | Claude a terminé la tâche normalement | Oui |

310| `error_max_turns` | Limite de `maxTurns` atteinte avant la fin | Non |317| `error_max_turns` | Limite de `maxTurns` atteinte avant la fin | Non |

311| `error_max_budget_usd` | Limite de `maxBudgetUsd` atteinte avant la fin | Non |318| `error_max_budget_usd` | Limite de `maxBudgetUsd` atteinte avant la fin | Non |

312| `error_during_execution` | Une erreur a interrompu la boucle (par exemple, une défaillance API ou une requête annulée) | Non |319| `error_during_execution` | Une erreur a interrompu la boucle (par exemple, une défaillance API ou une requête annulée) | Non |

313| `error_max_structured_output_retries` | La validation de la sortie structurée a échoué après la limite de tentatives configurée | Non |320| `error_max_structured_output_retries` | Aucune sortie structurée valide n'a été produite dans la limite de tentatives configurée : chaque tentative a échoué la validation, ou un modèle de secours a rétracté la sortie complétée sans nouvelle tentative réussie | Non |

314 321 

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

316 323 

Details

257 257 

258<CodeGroup>258<CodeGroup>

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

260 from claude_agent_sdk import ClaudeAgentOptions, query

261 import asyncio

262 

263 

264 async def main():

260 options = ClaudeAgentOptions(265 options = ClaudeAgentOptions(

261 env={266 env={

262 "CLAUDE_CODE_USE_BEDROCK": "1",267 "CLAUDE_CODE_USE_BEDROCK": "1",

263 "ENABLE_PROMPT_CACHING_1H": "1",268 "ENABLE_PROMPT_CACHING_1H": "1",

264 },269 },

265 )270 )

271 

272 async for message in query(prompt="Summarize this project", options=options):

273 print(message)

274 

275 

276 asyncio.run(main())

266 ```277 ```

267 278 

268 ```typescript TypeScript theme={null}279 ```typescript TypeScript theme={null}

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

281 

269 const options = {282 const options = {

270 env: {283 env: {

271 ...process.env,284 ...process.env,


273 ENABLE_PROMPT_CACHING_1H: "1",286 ENABLE_PROMPT_CACHING_1H: "1",

274 },287 },

275 };288 };

289 

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

291 console.log(message);

292 }

276 ```293 ```

277</CodeGroup>294</CodeGroup>

278 295 

Details

36* **Description :** ce que fait l'outil. Claude lit ceci pour décider quand l'appeler.36* **Description :** ce que fait l'outil. Claude lit ceci pour décider quand l'appeler.

37* **Schéma d'entrée :** les arguments que Claude doit fournir. En TypeScript, c'est toujours un [schéma Zod](https://zod.dev/), et les `args` du gestionnaire sont typés automatiquement à partir de celui-ci. En Python, c'est un dictionnaire mappant les noms aux types, comme `{"latitude": float}`, que le SDK convertit en JSON Schema pour vous. Le décorateur Python accepte également un dictionnaire [JSON Schema](https://json-schema.org/understanding-json-schema/about) complet directement quand vous avez besoin d'énumérations, de plages, de champs optionnels ou d'objets imbriqués.37* **Schéma d'entrée :** les arguments que Claude doit fournir. En TypeScript, c'est toujours un [schéma Zod](https://zod.dev/), et les `args` du gestionnaire sont typés automatiquement à partir de celui-ci. En Python, c'est un dictionnaire mappant les noms aux types, comme `{"latitude": float}`, que le SDK convertit en JSON Schema pour vous. Le décorateur Python accepte également un dictionnaire [JSON Schema](https://json-schema.org/understanding-json-schema/about) complet directement quand vous avez besoin d'énumérations, de plages, de champs optionnels ou d'objets imbriqués.

38* **Gestionnaire :** la fonction asynchrone qui s'exécute quand Claude appelle l'outil. Elle reçoit les arguments validés et doit retourner un objet avec :38* **Gestionnaire :** la fonction asynchrone qui s'exécute quand Claude appelle l'outil. Elle reçoit les arguments validés et doit retourner un objet avec :

39 * `content` (obligatoire) : un tableau de blocs de résultats, chacun avec un `type` de `"text"`, `"image"` ou `"resource"`. Voir [Retourner des images et des ressources](#return-images-and-resources) pour les blocs non textuels.39 * `content` (obligatoire) : un tableau de blocs de résultats, chacun avec un `type` de `"text"`, `"image"`, `"audio"`, `"resource"` ou `"resource_link"`. Voir [Retourner des images et des ressources](#return-images-and-resources) pour les blocs non textuels.

40 * `structuredContent` (optionnel) : un objet JSON contenant le résultat sous forme de données lisibles par machine, retourné aux côtés de `content`. Voir [Retourner des données structurées](#return-structured-data).40 * `structuredContent` (optionnel) : un objet JSON contenant le résultat sous forme de données lisibles par machine, retourné aux côtés de `content`. Voir [Retourner des données structurées](#return-structured-data).

41 * `isError` (optionnel) : définissez sur `true` pour signaler un échec d'outil afin que Claude puisse y réagir. Voir [Gérer les erreurs](#handle-errors).41 * `isError` (optionnel) : définissez sur `true` pour signaler un échec d'outil afin que Claude puisse y réagir. Voir [Gérer les erreurs](#handle-errors).

42 42 


461 Retourner des images et des ressources461 Retourner des images et des ressources

462</h2>462</h2>

463 463 

464Le tableau `content` dans un résultat d'outil accepte les blocs `text`, `image` et `resource`. Vous pouvez les mélanger dans la même réponse.464Le tableau `content` dans un résultat d'outil accepte les blocs `text`, `image`, `audio`, `resource` et `resource_link`. Vous pouvez les mélanger dans la même réponse. Les blocs audio sont enregistrés sur le disque et Claude reçoit un bloc texte avec le chemin du fichier enregistré. Les blocs de lien de ressource sont convertis en un bloc texte contenant le nom du lien, l'URI et la description.

465 465 

466<h3 id="images">466<h3 id="images">

467 Images467 Images

Details

729* **Python** : `pip install --upgrade claude-agent-sdk`729* **Python** : `pip install --upgrade claude-agent-sdk`

730* **TypeScript** : `npm install @anthropic-ai/claude-agent-sdk@latest`730* **TypeScript** : `npm install @anthropic-ai/claude-agent-sdk@latest`

731 731 

732<h3 id="user-messages-don-t-have-uuids">732<h3 id="user-messages-dont-have-uuids">

733 Les messages utilisateur n'ont pas d'UUID733 Les messages utilisateur n'ont pas d'UUID

734</h3>734</h3>

735 735 

Details

26 </Step>26 </Step>

27 27 

28 <Step title="Le SDK collecte les hooks enregistrés">28 <Step title="Le SDK collecte les hooks enregistrés">

29 Le SDK vérifie les hooks enregistrés pour ce type d'événement. Cela inclut les hooks de rappel que vous transmettez dans `options.hooks` et les hooks de commande shell à partir des fichiers de paramètres lorsque l'entrée [`settingSources`](/fr/agent-sdk/typescript#settingSources) ou [`setting_sources`](/fr/agent-sdk/python#settingSources) correspondante est activée, ce qui est le cas pour les options `query()` par défaut.29 Le SDK vérifie les hooks enregistrés pour ce type d'événement. Cela inclut les hooks de rappel que vous transmettez dans `options.hooks` et les hooks de commande shell à partir des fichiers de paramètres lorsque l'entrée [`settingSources`](/fr/agent-sdk/typescript#settingsource) ou [`setting_sources`](/fr/agent-sdk/python#settingsource) correspondante est activée, ce qui est le cas pour les options `query()` par défaut.

30 </Step>30 </Step>

31 31 

32 <Step title="Les matchers filtrent les hooks qui s'exécutent">32 <Step title="Les matchers filtrent les hooks qui s'exécutent">

agent-sdk/mcp.md +79 −27

Details

14 Cette page couvre la configuration de MCP pour l'Agent SDK. Pour ajouter des serveurs MCP à l'interface de ligne de commande Claude Code afin qu'ils se chargent dans chaque projet, consultez [Portées d'installation MCP](/fr/mcp#mcp-installation-scopes).14 Cette page couvre la configuration de MCP pour l'Agent SDK. Pour ajouter des serveurs MCP à l'interface de ligne de commande Claude Code afin qu'ils se chargent dans chaque projet, consultez [Portées d'installation MCP](/fr/mcp#mcp-installation-scopes).

15</Note>15</Note>

16 16 

17## Démarrage rapide17<h2 id="quickstart">

18 Démarrage rapide

19</h2>

18 20 

19Cet exemple se connecte au serveur MCP de [documentation Claude Code](https://code.claude.com/docs) en utilisant le [transport HTTP](#httpsse-servers) et utilise [`allowedTools`](#allow-mcp-tools) avec un caractère générique pour autoriser tous les outils du serveur.21Cet exemple se connecte au serveur MCP de [documentation Claude Code](https://code.claude.com/docs) en utilisant le [transport HTTP](#http%2Fsse-servers) et utilise [`allowedTools`](#allow-mcp-tools) avec un caractère générique pour autoriser tous les outils du serveur.

20 22 

21<CodeGroup>23<CodeGroup>

22 ```typescript TypeScript theme={null}24 ```typescript TypeScript theme={null}


70 72 

71L'agent se connecte au serveur de documentation, recherche des informations sur les hooks et retourne les résultats.73L'agent se connecte au serveur de documentation, recherche des informations sur les hooks et retourne les résultats.

72 74 

73## Ajouter un serveur MCP75<h2 id="add-an-mcp-server">

76 Ajouter un serveur MCP

77</h2>

74 78 

75Vous pouvez configurer les serveurs MCP dans le code lors de l'appel de `query()`, ou dans un fichier `.mcp.json` chargé via [`settingSources`](#from-a-config-file).79Vous pouvez configurer les serveurs MCP dans le code lors de l'appel de `query()`, ou dans un fichier `.mcp.json` chargé via [`settingSources`](#from-a-config-file).

76 80 

77### Dans le code81<h3 id="in-code">

82 Dans le code

83</h3>

78 84 

79Transmettez les serveurs MCP directement dans l'option `mcpServers` :85Transmettez les serveurs MCP directement dans l'option `mcpServers` :

80 86 


129 ```135 ```

130</CodeGroup>136</CodeGroup>

131 137 

132### À partir d'un fichier de configuration138<h3 id="from-a-config-file">

139 À partir d'un fichier de configuration

140</h3>

133 141 

134Créez un fichier `.mcp.json` à la racine de votre projet. Le fichier est récupéré lorsque la source de paramètre `project` est activée, ce qui est le cas pour les options `query()` par défaut. Si vous définissez `settingSources` explicitement, incluez `"project"` pour que ce fichier se charge :142Créez un fichier `.mcp.json` à la racine de votre projet. Le fichier est récupéré lorsque la source de paramètre `project` est activée, ce qui est le cas pour les options `query()` par défaut. Si vous définissez `settingSources` explicitement, incluez `"project"` pour que ce fichier se charge :

135 143 


144}152}

145```153```

146 154 

147## Autoriser les outils MCP155<h2 id="allow-mcp-tools">

156 Autoriser les outils MCP

157</h2>

148 158 

149Les outils MCP nécessitent une autorisation explicite avant que Claude puisse les utiliser. Sans autorisation, Claude verra que les outils sont disponibles mais ne pourra pas les appeler.159Les outils MCP nécessitent une autorisation explicite avant que Claude puisse les utiliser. Sans autorisation, Claude verra que les outils sont disponibles mais ne pourra pas les appeler.

150 160 

151### Convention de nommage des outils161<h3 id="tool-naming-convention">

162 Convention de nommage des outils

163</h3>

152 164 

153Les outils MCP suivent le modèle de nommage `mcp__<server-name>__<tool-name>`. Par exemple, un serveur GitHub nommé `"github"` avec un outil `list_issues` devient `mcp__github__list_issues`.165Les outils MCP suivent le modèle de nommage `mcp__<server-name>__<tool-name>`. Par exemple, un serveur GitHub nommé `"github"` avec un outil `list_issues` devient `mcp__github__list_issues`.

154 166 

155### Approbation automatique avec allowedTools167<h3 id="auto-approve-with-allowedtools">

168 Approbation automatique avec allowedTools

169</h3>

156 170 

157Utilisez `allowedTools` pour approuver automatiquement des outils MCP spécifiques afin que Claude puisse les utiliser sans invite de permission :171Utilisez `allowedTools` pour approuver automatiquement des outils MCP spécifiques afin que Claude puisse les utiliser sans invite de permission :

158 172 


177 **Préférez `allowedTools` aux modes de permission pour l'accès MCP.** `permissionMode: "acceptEdits"` n'approuve pas automatiquement les outils MCP (uniquement les modifications de fichiers et les commandes Bash du système de fichiers). `permissionMode: "bypassPermissions"` approuve automatiquement les outils MCP mais désactive également tous les autres messages de sécurité, ce qui est plus large que nécessaire. Un caractère générique dans `allowedTools` accorde exactement le serveur MCP que vous souhaitez et rien de plus. Consultez [Modes de permission](/fr/agent-sdk/permissions#permission-modes) pour une comparaison complète.191 **Préférez `allowedTools` aux modes de permission pour l'accès MCP.** `permissionMode: "acceptEdits"` n'approuve pas automatiquement les outils MCP (uniquement les modifications de fichiers et les commandes Bash du système de fichiers). `permissionMode: "bypassPermissions"` approuve automatiquement les outils MCP mais désactive également tous les autres messages de sécurité, ce qui est plus large que nécessaire. Un caractère générique dans `allowedTools` accorde exactement le serveur MCP que vous souhaitez et rien de plus. Consultez [Modes de permission](/fr/agent-sdk/permissions#permission-modes) pour une comparaison complète.

178</Note>192</Note>

179 193 

180### Découvrir les outils disponibles194<h3 id="discover-available-tools">

195 Découvrir les outils disponibles

196</h3>

181 197 

182Pour voir quels outils un serveur MCP fournit, consultez la documentation du serveur ou connectez-vous au serveur et inspectez le message d'initialisation `system` :198Pour voir quels outils un serveur MCP fournit, consultez la documentation du serveur ou connectez-vous au serveur et inspectez le message d'initialisation `system` :

183 199 


189}205}

190```206```

191 207 

192## Types de transport208<h2 id="transport-types">

209 Types de transport

210</h2>

193 211 

194Les serveurs MCP communiquent avec votre agent en utilisant différents protocoles de transport. Consultez la documentation du serveur pour voir quel transport il supporte :212Les serveurs MCP communiquent avec votre agent en utilisant différents protocoles de transport. Consultez la documentation du serveur pour voir quel transport il supporte :

195 213 


197* Si la documentation vous donne une **URL**, utilisez HTTP ou SSE215* Si la documentation vous donne une **URL**, utilisez HTTP ou SSE

198* Si vous construisez vos propres outils dans le code, utilisez un serveur MCP SDK216* Si vous construisez vos propres outils dans le code, utilisez un serveur MCP SDK

199 217 

200### Serveurs stdio218<h3 id="stdio-servers">

219 Serveurs stdio

220</h3>

201 221 

202Les processus locaux qui communiquent via stdin/stdout. Utilisez ceci pour les serveurs MCP que vous exécutez sur la même machine :222Les processus locaux qui communiquent via stdin/stdout. Utilisez ceci pour les serveurs MCP que vous exécutez sur la même machine :

203 223 


253 </Tab>273 </Tab>

254</Tabs>274</Tabs>

255 275 

256### Serveurs HTTP/SSE276<h3 id="http/sse-servers">

277 Serveurs HTTP/SSE

278</h3>

257 279 

258Utilisez HTTP ou SSE pour les serveurs MCP hébergés dans le cloud et les API distantes :280Utilisez HTTP ou SSE pour les serveurs MCP hébergés dans le cloud et les API distantes :

259 281 


311 333 

312Pour le transport HTTP en continu, utilisez `"type": "http"` à la place. Dans `.mcp.json` et autres fichiers de configuration JSON, `"streamable-http"` est accepté comme alias pour `"http"`. L'option programmatique `mcpServers` accepte uniquement `"http"`.334Pour le transport HTTP en continu, utilisez `"type": "http"` à la place. Dans `.mcp.json` et autres fichiers de configuration JSON, `"streamable-http"` est accepté comme alias pour `"http"`. L'option programmatique `mcpServers` accepte uniquement `"http"`.

313 335 

314### Serveurs MCP SDK336<h3 id="sdk-mcp-servers">

337 Serveurs MCP SDK

338</h3>

315 339 

316Définissez des outils personnalisés directement dans le code de votre application au lieu d'exécuter un processus serveur séparé. Consultez le [guide des outils personnalisés](/fr/agent-sdk/custom-tools) pour les détails d'implémentation.340Définissez des outils personnalisés directement dans le code de votre application au lieu d'exécuter un processus serveur séparé. Consultez le [guide des outils personnalisés](/fr/agent-sdk/custom-tools) pour les détails d'implémentation.

317 341 

318## Recherche d'outils MCP342<h2 id="mcp-tool-search">

343 Recherche d'outils MCP

344</h2>

319 345 

320Lorsque vous avez de nombreux outils MCP configurés, les définitions d'outils peuvent consommer une partie importante de votre fenêtre de contexte. La recherche d'outils résout ce problème en retenant les définitions d'outils du contexte et en chargeant uniquement ceux dont Claude a besoin pour chaque tour.346Lorsque vous avez de nombreux outils MCP configurés, les définitions d'outils peuvent consommer une partie importante de votre fenêtre de contexte. La recherche d'outils résout ce problème en retenant les définitions d'outils du contexte et en chargeant uniquement ceux dont Claude a besoin pour chaque tour.

321 347 


323 349 

324Pour plus de détails, y compris les meilleures pratiques et l'utilisation de la recherche d'outils avec les outils SDK personnalisés, consultez le [guide de recherche d'outils](/fr/agent-sdk/tool-search).350Pour plus de détails, y compris les meilleures pratiques et l'utilisation de la recherche d'outils avec les outils SDK personnalisés, consultez le [guide de recherche d'outils](/fr/agent-sdk/tool-search).

325 351 

326## Authentification352<h2 id="authentication">

353 Authentification

354</h2>

327 355 

328La plupart des serveurs MCP nécessitent une authentification pour accéder aux services externes. Transmettez les identifiants via des variables d'environnement dans la configuration du serveur.356La plupart des serveurs MCP nécessitent une authentification pour accéder aux services externes. Transmettez les identifiants via des variables d'environnement dans la configuration du serveur.

329 357 

330### Transmettre les identifiants via des variables d'environnement358<h3 id="pass-credentials-via-environment-variables">

359 Transmettre les identifiants via des variables d'environnement

360</h3>

331 361 

332Utilisez le champ `env` pour transmettre les clés API, les jetons et autres identifiants au serveur MCP :362Utilisez le champ `env` pour transmettre les clés API, les jetons et autres identifiants au serveur MCP :

333 363 


387 417 

388Consultez [Lister les problèmes d'un référentiel](#list-issues-from-a-repository) pour un exemple complet fonctionnant avec la journalisation de débogage.418Consultez [Lister les problèmes d'un référentiel](#list-issues-from-a-repository) pour un exemple complet fonctionnant avec la journalisation de débogage.

389 419 

390### En-têtes HTTP pour les serveurs distants420<h3 id="http-headers-for-remote-servers">

421 En-têtes HTTP pour les serveurs distants

422</h3>

391 423 

392Pour les serveurs HTTP et SSE, transmettez les en-têtes d'authentification directement dans la configuration du serveur :424Pour les serveurs HTTP et SSE, transmettez les en-têtes d'authentification directement dans la configuration du serveur :

393 425 


445 </Tab>477 </Tab>

446</Tabs>478</Tabs>

447 479 

448### Authentification OAuth2480<h3 id="oauth2-authentication">

481 Authentification OAuth2

482</h3>

449 483 

450La [spécification MCP supporte OAuth 2.1](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization) pour l'autorisation. Le SDK ne gère pas les flux OAuth automatiquement, mais vous pouvez transmettre les jetons d'accès via les en-têtes après avoir complété le flux OAuth dans votre application :484La [spécification MCP supporte OAuth 2.1](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization) pour l'autorisation. Le SDK ne gère pas les flux OAuth automatiquement, mais vous pouvez transmettre les jetons d'accès via les en-têtes après avoir complété le flux OAuth dans votre application :

451 485 


485 ```519 ```

486</CodeGroup>520</CodeGroup>

487 521 

488## Exemples522<h2 id="examples">

523 Exemples

524</h2>

489 525 

490### Lister les problèmes d'un référentiel526<h3 id="list-issues-from-a-repository">

527 Lister les problèmes d'un référentiel

528</h3>

491 529 

492Cet exemple se connecte au [serveur GitHub MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/github) pour lister les problèmes récents. L'exemple inclut la journalisation de débogage pour vérifier la connexion MCP et les appels d'outils.530Cet exemple se connecte au [serveur GitHub MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/github) pour lister les problèmes récents. L'exemple inclut la journalisation de débogage pour vérifier la connexion MCP et les appels d'outils.

493 531 


584 ```622 ```

585</CodeGroup>623</CodeGroup>

586 624 

587### Interroger une base de données625<h3 id="query-a-database">

626 Interroger une base de données

627</h3>

588 628 

589Cet exemple utilise le [serveur Postgres MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/postgres) pour interroger une base de données. La chaîne de connexion est transmise comme argument au serveur. L'agent découvre automatiquement le schéma de la base de données, écrit la requête SQL et retourne les résultats :629Cet exemple utilise le [serveur Postgres MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/postgres) pour interroger une base de données. La chaîne de connexion est transmise comme argument au serveur. L'agent découvre automatiquement le schéma de la base de données, écrit la requête SQL et retourne les résultats :

590 630 


655 ```695 ```

656</CodeGroup>696</CodeGroup>

657 697 

658## Gestion des erreurs698<h2 id="error-handling">

699 Gestion des erreurs

700</h2>

659 701 

660Les serveurs MCP peuvent échouer à se connecter pour diverses raisons : le processus serveur peut ne pas être installé, les identifiants peuvent être invalides, ou un serveur distant peut être inaccessible.702Les serveurs MCP peuvent échouer à se connecter pour diverses raisons : le processus serveur peut ne pas être installé, les identifiants peuvent être invalides, ou un serveur distant peut être inaccessible.

661 703 


717 ```759 ```

718</CodeGroup>760</CodeGroup>

719 761 

720## Dépannage762<h2 id="troubleshooting">

763 Dépannage

764</h2>

721 765 

722### Le serveur affiche le statut « failed »766<h3 id="server-shows-failed-status">

767 Le serveur affiche le statut « failed »

768</h3>

723 769 

724Vérifiez le message `init` pour voir quels serveurs n'ont pas pu se connecter :770Vérifiez le message `init` pour voir quels serveurs n'ont pas pu se connecter :

725 771 


740* **Chaîne de connexion invalide** : Pour les serveurs de base de données, vérifiez le format de la chaîne de connexion et que la base de données est accessible.786* **Chaîne de connexion invalide** : Pour les serveurs de base de données, vérifiez le format de la chaîne de connexion et que la base de données est accessible.

741* **Problèmes réseau** : Pour les serveurs HTTP/SSE distants, vérifiez que l'URL est accessible et que les pare-feu autorisent la connexion.787* **Problèmes réseau** : Pour les serveurs HTTP/SSE distants, vérifiez que l'URL est accessible et que les pare-feu autorisent la connexion.

742 788 

743### Les outils ne sont pas appelés789<h3 id="tools-not-being-called">

790 Les outils ne sont pas appelés

791</h3>

744 792 

745Si Claude voit les outils mais ne les utilise pas, vérifiez que vous avez accordé la permission avec `allowedTools` :793Si Claude voit les outils mais ne les utilise pas, vérifiez que vous avez accordé la permission avec `allowedTools` :

746 794 


755};803};

756```804```

757 805 

758### Délais d'expiration de la connexion806<h3 id="connection-timeouts">

807 Délais d'expiration de la connexion

808</h3>

759 809 

760Le SDK MCP a un délai d'expiration par défaut de 60 secondes pour les connexions serveur. Si votre serveur prend plus de temps pour démarrer, la connexion échouera. Pour les serveurs qui ont besoin de plus de temps de démarrage, envisagez :810Le SDK MCP a un délai d'expiration par défaut de 60 secondes pour les connexions serveur. Si votre serveur prend plus de temps pour démarrer, la connexion échouera. Pour les serveurs qui ont besoin de plus de temps de démarrage, envisagez :

761 811 


763* Préchauffer le serveur avant de démarrer votre agent813* Préchauffer le serveur avant de démarrer votre agent

764* Vérifier les journaux du serveur pour les causes de lenteur d'initialisation814* Vérifier les journaux du serveur pour les causes de lenteur d'initialisation

765 815 

766## Ressources connexes816<h2 id="related-resources">

817 Ressources connexes

818</h2>

767 819 

768* **[Guide des outils personnalisés](/fr/agent-sdk/custom-tools)** : Créez votre propre serveur MCP qui s'exécute en processus avec votre application SDK820* **[Guide des outils personnalisés](/fr/agent-sdk/custom-tools)** : Créez votre propre serveur MCP qui s'exécute en processus avec votre application SDK

769* **[Permissions](/fr/agent-sdk/permissions)** : Contrôlez quels outils MCP votre agent peut utiliser avec `allowedTools` et `disallowedTools`821* **[Permissions](/fr/agent-sdk/permissions)** : Contrôlez quels outils MCP votre agent peut utiliser avec `allowedTools` et `disallowedTools`

Details

12 12 

13Le SDK Claude Code a été renommé en **Claude Agent SDK** et sa documentation a été réorganisée. Ce changement reflète les capacités plus larges du SDK pour construire des agents IA au-delà des simples tâches de codage.13Le SDK Claude Code a été renommé en **Claude Agent SDK** et sa documentation a été réorganisée. Ce changement reflète les capacités plus larges du SDK pour construire des agents IA au-delà des simples tâches de codage.

14 14 

15<h2 id="what-s-changed">15<h2 id="whats-changed">

16 Qu'est-ce qui a changé16 Qu'est-ce qui a changé

17</h2>17</h2>

18 18 


82}82}

83```83```

84 84 

85C'est tout ! Aucune autre modification de code n'est requise.85**5. Consultez les [modifications incompatibles](#breaking-changes)**

86 

87Effectuez les modifications de code nécessaires pour terminer la migration.

86 88 

87<h3 id="for-python-projects">89<h3 id="for-python-projects">

88 Pour les projets Python90 Pour les projets Python


172 174 

173<CodeGroup>175<CodeGroup>

174 ```typescript TypeScript theme={null}176 ```typescript TypeScript theme={null}

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

178 

175 // AVANT (v0.0.x) - Utilisait le système prompt de Claude Code par défaut179 // AVANT (v0.0.x) - Utilisait le système prompt de Claude Code par défaut

176 const result = query({ prompt: "Hello" });180 const before = query({ prompt: "Hello" });

177 181 

178 // APRÈS (v0.1.0) - Utilise un système prompt minimal par défaut182 // APRÈS (v0.1.0) - Utilise un système prompt minimal par défaut

179 // Pour obtenir l'ancien comportement, demandez explicitement le préréglage de Claude Code :183 // Pour obtenir l'ancien comportement, demandez explicitement le préréglage de Claude Code :

180 const result = query({184 const presetResult = query({

181 prompt: "Hello",185 prompt: "Hello",

182 options: {186 options: {

183 systemPrompt: { type: "preset", preset: "claude_code" }187 systemPrompt: { type: "preset", preset: "claude_code" }


185 });189 });

186 190 

187 // Ou utilisez un système prompt personnalisé :191 // Ou utilisez un système prompt personnalisé :

188 const result = query({192 const customResult = query({

189 prompt: "Hello",193 prompt: "Hello",

190 options: {194 options: {

191 systemPrompt: "You are a helpful coding assistant"195 systemPrompt: "You are a helpful coding assistant"


233 237 

234<CodeGroup>238<CodeGroup>

235 ```typescript TypeScript theme={null}239 ```typescript TypeScript theme={null}

236 const result = query({240 import { query } from "@anthropic-ai/claude-agent-sdk";

241 

242 const isolatedResult = query({

237 prompt: "Hello",243 prompt: "Hello",

238 options: {244 options: {

239 settingSources: [] // Aucun paramètre du système de fichiers chargé245 settingSources: [] // Aucun paramètre du système de fichiers chargé


241 });247 });

242 248 

243 // Ou charger uniquement des sources spécifiques :249 // Ou charger uniquement des sources spécifiques :

244 const result = query({250 const projectOnlyResult = query({

245 prompt: "Hello",251 prompt: "Hello",

246 options: {252 options: {

247 settingSources: ["project"] // Uniquement les paramètres du projet253 settingSources: ["project"] // Uniquement les paramètres du projet

Details

199 ...process.env,199 ...process.env,

200 // ... exporter configuration ...200 // ... exporter configuration ...

201 OTEL_SERVICE_NAME: "support-triage-agent",201 OTEL_SERVICE_NAME: "support-triage-agent",

202 OTEL_RESOURCE_ATTRIBUTES:202 OTEL_RESOURCE_ATTRIBUTES":

203 "service.version=1.4.0,deployment.environment=production",203 "service.version=1.4.0,deployment.environment=production",

204 },204 },

205 };205 };

Details

580 580 

581**Autorisé :**581**Autorisé :**

582 582 

583* ' Claude Agent ' (préféré pour les menus déroulants)583* « Claude Agent » (préféré pour les menus déroulants)

584* ' Claude ' (lorsque vous êtes déjà dans un menu étiqueté ' Agents ')584* « Claude » (lorsque vous êtes déjà dans un menu étiqueté « Agents »)

585* ' {YourAgentName} Powered by Claude ' (si vous avez un nom d'agent existant)585* « {YourAgentName} Powered by Claude » (si vous avez un nom d'agent existant)

586 586 

587**Non autorisé :**587**Non autorisé :**

588 588 

589* ' Claude Code ' ou ' Claude Code Agent '589* « Claude Code » ou « Claude Code Agent »

590* Art ASCII ou éléments visuels de marque Claude Code qui imitent Claude Code590* Art ASCII ou éléments visuels de marque Claude Code qui imitent Claude Code

591 591 

592Votre produit doit conserver sa propre marque et ne pas sembler être Claude Code ou un produit Anthropic. Pour des questions sur la conformité de la marque, contactez l'équipe [ventes](https://www.anthropic.com/contact-sales) d'Anthropic.592Votre produit doit conserver sa propre marque et ne pas sembler être Claude Code ou un produit Anthropic. Pour des questions sur la conformité de la marque, contactez l'équipe [ventes](https://www.anthropic.com/contact-sales) d'Anthropic.

Details

27 Vérifiez les règles `deny` (à partir de `disallowed_tools` et [settings.json](/fr/settings#permission-settings)). Si une règle de refus correspond, l'outil est bloqué, même en mode `bypassPermissions`. Les règles de nom simple comme `Bash` suppriment l'outil du contexte de Claude avant que cette évaluation ne commence, donc seules les règles délimitées comme `Bash(rm *)` sont vérifiées à cette étape.27 Vérifiez les règles `deny` (à partir de `disallowed_tools` et [settings.json](/fr/settings#permission-settings)). Si une règle de refus correspond, l'outil est bloqué, même en mode `bypassPermissions`. Les règles de nom simple comme `Bash` suppriment l'outil du contexte de Claude avant que cette évaluation ne commence, donc seules les règles délimitées comme `Bash(rm *)` sont vérifiées à cette étape.

28 </Step>28 </Step>

29 29 

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

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

32 </Step>

33 

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

31 Appliquez le [mode de permission](#permission-modes) actif. `bypassPermissions` approuve tout ce qui atteint cette étape. `acceptEdits` approuve les opérations de fichiers. Les autres modes passent au suivant.35 Appliquez le [mode de permission](#permission-modes) actif. `bypassPermissions` approuve tout ce qui atteint cette étape. `acceptEdits` approuve les opérations de fichiers. `plan` achemine les outils d'édition de fichiers et d'écriture shell vers votre callback `canUseTool` indépendamment des règles d'autorisation, donc les opérations d'écriture ne peuvent pas être approuvées automatiquement lors de la planification. Les autres modes passent au suivant.

32 </Step>36 </Step>

33 37 

34 <Step title="Règles d'autorisation">38 <Step title="Règles d'autorisation">


40 </Step>44 </Step>

41</Steps>45</Steps>

42 46 

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

44 48 

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

46 50 


54`allowed_tools` et `disallowed_tools` (TypeScript : `allowedTools` / `disallowedTools`) ajoutent des entrées aux listes de règles d'autorisation et de refus dans le flux d'évaluation ci-dessus. Les règles d'autorisation affectent uniquement l'approbation : un outil non listé dans `allowed_tools` est toujours disponible pour Claude et passe au mode de permission. Les règles de refus se comportent différemment selon qu'elles nomment un outil ou délimitent un motif au sein de celui-ci.58`allowed_tools` et `disallowed_tools` (TypeScript : `allowedTools` / `disallowedTools`) ajoutent des entrées aux listes de règles d'autorisation et de refus dans le flux d'évaluation ci-dessus. Les règles d'autorisation affectent uniquement l'approbation : un outil non listé dans `allowed_tools` est toujours disponible pour Claude et passe au mode de permission. Les règles de refus se comportent différemment selon qu'elles nomment un outil ou délimitent un motif au sein de celui-ci.

55 59 

56| Option | Effet |60| Option | Effet |

57| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |61| :-------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

58| `allowed_tools=["Read", "Grep"]` | `Read` et `Grep` sont auto-approuvés. Les outils non listés ici existent toujours et passent au mode de permission et à `canUseTool`. |62| `allowed_tools=["Read", "Grep"]` | `Read` et `Grep` sont auto-approuvés. Les outils non listés ici existent toujours et passent au mode de permission et à `canUseTool`. |

59| `disallowed_tools=["Bash"]` | La définition de l'outil `Bash` est supprimée de la requête. Claude ne voit pas l'outil et ne peut pas le tenter. |63| `disallowed_tools=["Bash"]` | La définition de l'outil `Bash` est supprimée de la requête. Claude ne voit pas l'outil et ne peut pas le tenter. |

60| `disallowed_tools=["Bash(rm *)"]` | `Bash` reste disponible. Les appels correspondant à `rm *` sont refusés dans tous les modes de permission, y compris `bypassPermissions`. Les autres appels `Bash` passent au mode de permission. |64| `disallowed_tools=["Bash(rm *)"]` | `Bash` reste disponible. Les appels correspondant à `rm *` sont refusés dans tous les modes de permission, y compris `bypassPermissions`. Les autres appels `Bash` passent au mode de permission. |

65| `disallowed_tools=["*"]` | Chaque définition d'outil est supprimée de la requête. Les globs de noms d'outils sont pris en charge dans les règles de refus : `"*"` correspond à chaque outil et `"mcp__*"` correspond à chaque outil MCP sur tous les serveurs. |

66 

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

61 68 

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

63 70 


87Le SDK supporte ces modes de permission :94Le SDK supporte ces modes de permission :

88 95 

89| Mode | Description | Comportement de l'outil |96| Mode | Description | Comportement de l'outil |

90| :----------------------------- | :------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |97| :----------------------------- | :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

91| `default` | Comportement de permission standard | Pas d'auto-approbations ; les outils non appariés déclenchent votre callback `canUseTool` |98| `default` | Comportement de permission standard | Pas d'auto-approbations ; les outils non appariés déclenchent votre callback `canUseTool` |

92| `dontAsk` | Refuser au lieu de demander | Tout ce qui n'est pas pré-approuvé par `allowed_tools` ou les règles est refusé ; `canUseTool` n'est jamais appelé |99| `dontAsk` | Refuser au lieu de demander | Tout ce qui n'est pas pré-approuvé par `allowed_tools` ou les règles est refusé ; `canUseTool` n'est jamais appelé |

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

94| `bypassPermissions` | Contourner tous les contrôles de permission | Tous les outils s'exécutent sans invites de permission (à utiliser avec prudence) |101| `bypassPermissions` | Contourner les contrôles de permission | Les outils s'exécutent sans invites de permission, sauf si une [règle `ask`](#how-permissions-are-evaluated) explicite correspond (à utiliser avec prudence) |

95| `plan` | Mode de planification | Les outils en lecture seule s'exécutent ; Claude analyse et planifie sans modifier vos fichiers source |102| `plan` | Mode de planification | Claude explore et planifie sans modifier vos fichiers source ; les modifications de fichiers ne sont jamais auto-approuvées et demandent via votre callback `canUseTool` |

96| `auto` (TypeScript uniquement) | Approbations classées par modèle | Un classificateur de modèle approuve ou refuse chaque appel d'outil. Consultez [Mode Auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) pour la disponibilité |103| `auto` (TypeScript uniquement) | Approbations classées par modèle | Un classificateur de modèle approuve ou refuse chaque appel d'outil. Consultez [Mode Auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) pour la disponibilité |

97 104 

98<Warning>105<Warning>

99 **Héritage des sous-agents :** Lorsque le parent utilise `bypassPermissions`, `acceptEdits` ou `auto`, tous les sous-agents héritent de ce mode et il ne peut pas être remplacé par sous-agent. Les sous-agents peuvent avoir des invites système différentes et un comportement moins contraint que votre agent principal, donc hériter de `bypassPermissions` leur accorde un accès système complet et autonome sans aucune invite d'approbation.106 **Héritage des sous-agents :** Lorsque le parent utilise `bypassPermissions`, `acceptEdits` ou `auto`, tous les sous-agents héritent de ce mode et il ne peut pas être remplacé par sous-agent. Les sous-agents peuvent avoir des invites système différentes et un comportement moins contraint que votre agent principal, donc hériter de `bypassPermissions` leur accorde un accès système complet et autonome. Une [règle `ask`](#how-permissions-are-evaluated) explicite force toujours une invite.

100</Warning>107</Warning>

101 108 

102<h3 id="set-permission-mode">109<h3 id="set-permission-mode">


226 233 

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

228 235 

229<h4 id="don-t-ask-mode-dontask">236<h4 id="dont-ask-mode-dontask">

230 Mode de non-demande (`dontAsk`)237 Mode de non-demande (`dontAsk`)

231</h4>238</h4>

232 239 


250 Mode de planification (`plan`)257 Mode de planification (`plan`)

251</h4>258</h4>

252 259 

253Restreint Claude aux outils en lecture seule. Claude peut lire des fichiers et exécuter des commandes shell en lecture seule pour explorer la base de code mais ne modifie pas vos fichiers source. Claude peut utiliser `AskUserQuestion` pour clarifier les exigences avant de finaliser le plan. Consultez [Gérer les approbations et les entrées utilisateur](/fr/agent-sdk/user-input#handle-clarifying-questions) pour gérer ces invites.260Claude explore la base de code et produit un plan sans modifier vos fichiers source. Les outils en lecture seule s'exécutent comme en mode par défaut. Les modifications de fichiers ne sont jamais auto-approuvées en mode plan, même lorsqu'une règle d'autorisation correspond. Elles demandent via votre callback `canUseTool` à la place. Claude peut utiliser `AskUserQuestion` pour clarifier les exigences avant de finaliser le plan. Consultez [Gérer les approbations et les entrées utilisateur](/fr/agent-sdk/user-input#handle-clarifying-questions) pour gérer ces invites.

254 261 

255**À utiliser quand :** vous voulez que Claude propose des modifications sans les exécuter, par exemple lors d'une révision de code ou lorsque vous devez approuver les modifications avant qu'elles ne soient apportées.262**À utiliser quand :** vous voulez que Claude propose des modifications sans les exécuter, par exemple lors d'une révision de code ou lorsque vous devez approuver les modifications avant qu'elles ne soient apportées.

256 263 

Details

385 385 

386* [Plugins](/fr/plugins) - Guide complet de développement de plugins386* [Plugins](/fr/plugins) - Guide complet de développement de plugins

387* [Référence des plugins](/fr/plugins-reference) - Spécifications techniques387* [Référence des plugins](/fr/plugins-reference) - Spécifications techniques

388* [Slash Commands](/fr/agent-sdk/slash-commands) - Utilisation des slash commands dans le SDK388* [Commands](/fr/agent-sdk/slash-commands) - Utilisation des commandes dans le SDK

389* [Subagents](/fr/agent-sdk/subagents) - Travail avec des agents spécialisés389* [Subagents](/fr/agent-sdk/subagents) - Travail avec des agents spécialisés

390* [Skills](/fr/agent-sdk/skills) - Utilisation des Agent Skills390* [Skills](/fr/agent-sdk/skills) - Utilisation des Agent Skills

agent-sdk/python.md +519 −178

Details

6 6 

7> Référence API complète du SDK Agent Python, incluant toutes les fonctions, types et classes.7> Référence API complète du SDK Agent Python, incluant toutes les fonctions, types et classes.

8 8 

9## Installation9<h2 id="installation">

10 Installation

11</h2>

10 12 

11```bash theme={null}13```bash theme={null}

12pip install claude-agent-sdk14pip install claude-agent-sdk

13```15```

14 16 

15## Choisir entre `query()` et `ClaudeSDKClient`17<h2 id="choosing-between-query-and-claudesdkclient">

18 Choisir entre `query()` et `ClaudeSDKClient`

19</h2>

16 20 

17Le SDK Python offre deux façons d'interagir avec Claude Code :21Le SDK Python offre deux façons d'interagir avec Claude Code :

18 22 

19### Comparaison rapide23<h3 id="quick-comparison">

24 Comparaison rapide

25</h3>

20 26 

21| Fonctionnalité | `query()` | `ClaudeSDKClient` |27| Fonctionnalité | `query()` | `ClaudeSDKClient` |

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


30| **Continuer la conversation** | Manuel via `continue_conversation` ou `resume` | ✅ Automatique |36| **Continuer la conversation** | Manuel via `continue_conversation` ou `resume` | ✅ Automatique |

31| **Cas d'usage** | Tâches ponctuelles | Conversations continues |37| **Cas d'usage** | Tâches ponctuelles | Conversations continues |

32 38 

33### Quand utiliser `query()` (tâches ponctuelles)39<h3 id="when-to-use-query-one-off-tasks">

40 Quand utiliser `query()` (tâches ponctuelles)

41</h3>

34 42 

35**Idéal pour :**43**Idéal pour :**

36 44 


39* Les scripts d'automatisation simples47* Les scripts d'automatisation simples

40* Quand vous voulez un nouveau départ à chaque fois48* Quand vous voulez un nouveau départ à chaque fois

41 49 

42### Quand utiliser `ClaudeSDKClient` (conversation continue)50<h3 id="when-to-use-claudesdkclient-continuous-conversation">

51 Quand utiliser `ClaudeSDKClient` (conversation continue)

52</h3>

43 53 

44**Idéal pour :**54**Idéal pour :**

45 55 


49* **Logique basée sur les réponses** - Quand l'action suivante dépend de la réponse de Claude59* **Logique basée sur les réponses** - Quand l'action suivante dépend de la réponse de Claude

50* **Contrôle de session** - Gérer explicitement le cycle de vie de la conversation60* **Contrôle de session** - Gérer explicitement le cycle de vie de la conversation

51 61 

52## Fonctions62<h2 id="functions">

63 Fonctions

64</h2>

53 65 

54### `query()`66<h3 id="query">

67 `query()`

68</h3>

55 69 

56Crée une nouvelle session pour chaque interaction avec Claude Code par défaut. Retourne un itérateur asynchrone qui produit les messages au fur et à mesure qu'ils arrivent. Chaque appel à `query()` recommence à zéro sans mémoire des interactions précédentes, sauf si vous passez `continue_conversation=True` ou `resume` dans [`ClaudeAgentOptions`](#claudeagentoptions). Voir [Sessions](/fr/agent-sdk/sessions).70Crée une nouvelle session pour chaque interaction avec Claude Code par défaut. Retourne un itérateur asynchrone qui produit les messages au fur et à mesure qu'ils arrivent. Chaque appel à `query()` recommence à zéro sans mémoire des interactions précédentes, sauf si vous passez `continue_conversation=True` ou `resume` dans [`ClaudeAgentOptions`](#claudeagentoptions). Voir [Sessions](/fr/agent-sdk/sessions).

57 71 


64) -> AsyncIterator[Message]78) -> AsyncIterator[Message]

65```79```

66 80 

67#### Paramètres81<h4 id="parameters">

82 Paramètres

83</h4>

68 84 

69| Paramètre | Type | Description |85| Paramètre | Type | Description |

70| :---------- | :--------------------------- | :-------------------------------------------------------------------------------------- |86| :---------- | :--------------------------- | :-------------------------------------------------------------------------------------- |


72| `options` | `ClaudeAgentOptions \| None` | Objet de configuration optionnel (par défaut `ClaudeAgentOptions()` si None) |88| `options` | `ClaudeAgentOptions \| None` | Objet de configuration optionnel (par défaut `ClaudeAgentOptions()` si None) |

73| `transport` | `Transport \| None` | Transport personnalisé optionnel pour communiquer avec le processus CLI |89| `transport` | `Transport \| None` | Transport personnalisé optionnel pour communiquer avec le processus CLI |

74 90 

75#### Retours91<h4 id="returns">

92 Retours

93</h4>

76 94 

77Retourne un `AsyncIterator[Message]` qui produit les messages de la conversation.95Retourne un `AsyncIterator[Message]` qui produit les messages de la conversation.

78 96 

79#### Exemple - Avec options97<h4 id="example-with-options">

98 Exemple - Avec options

99</h4>

80 100 

81```python theme={null}101```python theme={null}

82import asyncio102import asyncio


97asyncio.run(main())117asyncio.run(main())

98```118```

99 119 

100### `tool()`120<h3 id="tool">

121 `tool()`

122</h3>

101 123 

102Décorateur pour définir des outils MCP avec sécurité des types.124Décorateur pour définir des outils MCP avec sécurité des types.

103 125 


110) -> Callable[[Callable[[Any], Awaitable[dict[str, Any]]]], SdkMcpTool[Any]]132) -> Callable[[Callable[[Any], Awaitable[dict[str, Any]]]], SdkMcpTool[Any]]

111```133```

112 134 

113#### Paramètres135<h4 id="parameters-1">

136 Paramètres

137</h4>

114 138 

115| Paramètre | Type | Description |139| Paramètre | Type | Description |

116| :------------- | :---------------------------------------------- | :------------------------------------------------------------------------------- |140| :------------- | :---------------------------------------------- | :------------------------------------------------------------------------------- |


119| `input_schema` | `type \| dict[str, Any]` | Schéma définissant les paramètres d'entrée de l'outil (voir ci-dessous) |143| `input_schema` | `type \| dict[str, Any]` | Schéma définissant les paramètres d'entrée de l'outil (voir ci-dessous) |

120| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Annotations MCP optionnelles fournissant des indices comportementaux aux clients |144| `annotations` | [`ToolAnnotations`](#toolannotations)` \| None` | Annotations MCP optionnelles fournissant des indices comportementaux aux clients |

121 145 

122#### Options de schéma d'entrée146<h4 id="input-schema-options">

147 Options de schéma d'entrée

148</h4>

123 149 

1241. **Mappage de type simple** (recommandé) :1501. **Mappage de type simple** (recommandé) :

125 151 


139 }165 }

140 ```166 ```

141 167 

142#### Retours168<h4 id="returns-1">

169 Retours

170</h4>

143 171 

144Une fonction décorateur qui enveloppe l'implémentation de l'outil et retourne une instance `SdkMcpTool`.172Une fonction décorateur qui enveloppe l'implémentation de l'outil et retourne une instance `SdkMcpTool`.

145 173 

146#### Exemple174<h4 id="example">

175 Exemple

176</h4>

147 177 

148```python theme={null}178```python theme={null}

149from claude_agent_sdk import tool179from claude_agent_sdk import tool


155 return {"content": [{"type": "text", "text": f"Hello, {args['name']}!"}]}185 return {"content": [{"type": "text", "text": f"Hello, {args['name']}!"}]}

156```186```

157 187 

158#### `ToolAnnotations`188<h4 id="toolannotations">

189 `ToolAnnotations`

190</h4>

159 191 

160Réexportée depuis `mcp.types` (également disponible via `from claude_agent_sdk import ToolAnnotations`). Tous les champs sont des indices optionnels ; les clients ne doivent pas s'y fier pour les décisions de sécurité.192Réexportée depuis `mcp.types` (également disponible via `from claude_agent_sdk import ToolAnnotations`). Tous les champs sont des indices optionnels ; les clients ne doivent pas s'y fier pour les décisions de sécurité.

161 193 


182 return {"content": [{"type": "text", "text": f"Results for: {args['query']}"}]}214 return {"content": [{"type": "text", "text": f"Results for: {args['query']}"}]}

183```215```

184 216 

185### `create_sdk_mcp_server()`217<h3 id="create_sdk_mcp_server">

218 `create_sdk_mcp_server()`

219</h3>

186 220 

187Crée un serveur MCP en processus qui s'exécute dans votre application Python.221Crée un serveur MCP en processus qui s'exécute dans votre application Python.

188 222 


194) -> McpSdkServerConfig228) -> McpSdkServerConfig

195```229```

196 230 

197#### Paramètres231<h4 id="parameters-2">

232 Paramètres

233</h4>

198 234 

199| Paramètre | Type | Par défaut | Description |235| Paramètre | Type | Par défaut | Description |

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


202| `version` | `str` | `"1.0.0"` | Chaîne de version du serveur |238| `version` | `str` | `"1.0.0"` | Chaîne de version du serveur |

203| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | Liste des fonctions d'outil créées avec le décorateur `@tool` |239| `tools` | `list[SdkMcpTool[Any]] \| None` | `None` | Liste des fonctions d'outil créées avec le décorateur `@tool` |

204 240 

205#### Retours241<h4 id="returns-2">

242 Retours

243</h4>

206 244 

207Retourne un objet `McpSdkServerConfig` qui peut être passé à `ClaudeAgentOptions.mcp_servers`.245Retourne un objet `McpSdkServerConfig` qui peut être passé à `ClaudeAgentOptions.mcp_servers`.

208 246 

209#### Exemple247<h4 id="example-1">

248 Exemple

249</h4>

210 250 

211```python theme={null}251```python theme={null}

212from claude_agent_sdk import tool, create_sdk_mcp_server252from claude_agent_sdk import tool, create_sdk_mcp_server


235)275)

236```276```

237 277 

238### `list_sessions()`278<h3 id="list_sessions">

279 `list_sessions()`

280</h3>

239 281 

240Liste les sessions passées avec métadonnées. Filtrez par répertoire de projet ou listez les sessions dans tous les projets. Synchrone ; retourne immédiatement.282Liste les sessions passées avec métadonnées. Filtrez par répertoire de projet ou listez les sessions dans tous les projets. Synchrone ; retourne immédiatement.

241 283 


247) -> list[SDKSessionInfo]289) -> list[SDKSessionInfo]

248```290```

249 291 

250#### Paramètres292<h4 id="parameters-3">

293 Paramètres

294</h4>

251 295 

252| Paramètre | Type | Par défaut | Description |296| Paramètre | Type | Par défaut | Description |

253| :------------------ | :------------ | :--------- | :---------------------------------------------------------------------------------------------------- |297| :------------------ | :------------ | :--------- | :---------------------------------------------------------------------------------------------------- |


255| `limit` | `int \| None` | `None` | Nombre maximum de sessions à retourner |299| `limit` | `int \| None` | `None` | Nombre maximum de sessions à retourner |

256| `include_worktrees` | `bool` | `True` | Quand `directory` est à l'intérieur d'un dépôt git, inclure les sessions de tous les chemins worktree |300| `include_worktrees` | `bool` | `True` | Quand `directory` est à l'intérieur d'un dépôt git, inclure les sessions de tous les chemins worktree |

257 301 

258#### Type de retour : `SDKSessionInfo`302<h4 id="return-type-sdksessioninfo">

303 Type de retour : `SDKSessionInfo`

304</h4>

259 305 

260| Propriété | Type | Description |306| Propriété | Type | Description |

261| :-------------- | :------------ | :--------------------------------------------------------------------------------------- |307| :-------------- | :------------ | :--------------------------------------------------------------------------------------- |


270| `tag` | `str \| None` | Étiquette de session définie par l'utilisateur (voir [`tag_session()`](#tag_session)) |316| `tag` | `str \| None` | Étiquette de session définie par l'utilisateur (voir [`tag_session()`](#tag_session)) |

271| `created_at` | `int \| None` | Heure de création de la session en millisecondes depuis l'époque |317| `created_at` | `int \| None` | Heure de création de la session en millisecondes depuis l'époque |

272 318 

273#### Exemple319<h4 id="example-2">

320 Exemple

321</h4>

274 322 

275Affiche les 10 sessions les plus récentes pour un projet. Les résultats sont triés par `last_modified` décroissant, donc le premier élément est le plus récent. Omettez `directory` pour rechercher dans tous les projets.323Affiche les 10 sessions les plus récentes pour un projet. Les résultats sont triés par `last_modified` décroissant, donc le premier élément est le plus récent. Omettez `directory` pour rechercher dans tous les projets.

276 324 


281 print(f"{session.summary} ({session.session_id})")329 print(f"{session.summary} ({session.session_id})")

282```330```

283 331 

284### `get_session_messages()`332<h3 id="get_session_messages">

333 `get_session_messages()`

334</h3>

285 335 

286Récupère les messages d'une session passée. Synchrone ; retourne immédiatement.336Récupère les messages d'une session passée. Synchrone ; retourne immédiatement.

287 337 


294) -> list[SessionMessage]344) -> list[SessionMessage]

295```345```

296 346 

297#### Paramètres347<h4 id="parameters-4">

348 Paramètres

349</h4>

298 350 

299| Paramètre | Type | Par défaut | Description |351| Paramètre | Type | Par défaut | Description |

300| :----------- | :------------ | :--------- | :--------------------------------------------------------------------------- |352| :----------- | :------------ | :--------- | :--------------------------------------------------------------------------- |


303| `limit` | `int \| None` | `None` | Nombre maximum de messages à retourner |355| `limit` | `int \| None` | `None` | Nombre maximum de messages à retourner |

304| `offset` | `int` | `0` | Nombre de messages à ignorer depuis le début |356| `offset` | `int` | `0` | Nombre de messages à ignorer depuis le début |

305 357 

306#### Type de retour : `SessionMessage`358<h4 id="return-type-sessionmessage">

359 Type de retour : `SessionMessage`

360</h4>

307 361 

308| Propriété | Type | Description |362| Propriété | Type | Description |

309| :------------------- | :----------------------------- | :---------------------------- |363| :------------------- | :----------------------------- | :---------------------------- |


313| `message` | `Any` | Contenu du message brut |367| `message` | `Any` | Contenu du message brut |

314| `parent_tool_use_id` | `None` | Réservé pour un usage futur |368| `parent_tool_use_id` | `None` | Réservé pour un usage futur |

315 369 

316#### Exemple370<h4 id="example-3">

371 Exemple

372</h4>

317 373 

318```python theme={null}374```python theme={null}

319from claude_agent_sdk import list_sessions, get_session_messages375from claude_agent_sdk import list_sessions, get_session_messages


325 print(f"[{msg.type}] {msg.uuid}")381 print(f"[{msg.type}] {msg.uuid}")

326```382```

327 383 

328### `get_session_info()`384<h3 id="get_session_info">

385 `get_session_info()`

386</h3>

329 387 

330Lit les métadonnées d'une seule session par ID sans scanner le répertoire de projet complet. Synchrone ; retourne immédiatement.388Lit les métadonnées d'une seule session par ID sans scanner le répertoire de projet complet. Synchrone ; retourne immédiatement.

331 389 


336) -> SDKSessionInfo | None394) -> SDKSessionInfo | None

337```395```

338 396 

339#### Paramètres397<h4 id="parameters-5">

398 Paramètres

399</h4>

340 400 

341| Paramètre | Type | Par défaut | Description |401| Paramètre | Type | Par défaut | Description |

342| :----------- | :------------ | :--------- | :---------------------------------------------------------------------------------------- |402| :----------- | :------------ | :--------- | :---------------------------------------------------------------------------------------- |


345 405 

346Retourne [`SDKSessionInfo`](#return-type-sdksessioninfo), ou `None` si la session n'est pas trouvée.406Retourne [`SDKSessionInfo`](#return-type-sdksessioninfo), ou `None` si la session n'est pas trouvée.

347 407 

348#### Exemple408<h4 id="example-4">

409 Exemple

410</h4>

349 411 

350Recherchez les métadonnées d'une seule session sans scanner le répertoire de projet. Utile quand vous avez déjà un ID de session d'une exécution précédente.412Recherchez les métadonnées d'une seule session sans scanner le répertoire de projet. Utile quand vous avez déjà un ID de session d'une exécution précédente.

351 413 


357 print(f"{info.summary} (branch: {info.git_branch}, tag: {info.tag})")419 print(f"{info.summary} (branch: {info.git_branch}, tag: {info.tag})")

358```420```

359 421 

360### `rename_session()`422<h3 id="rename_session">

423 `rename_session()`

424</h3>

361 425 

362Renomme une session en ajoutant une entrée de titre personnalisé. Les appels répétés sont sûrs ; le titre le plus récent gagne. Synchrone.426Renomme une session en ajoutant une entrée de titre personnalisé. Les appels répétés sont sûrs ; le titre le plus récent gagne. Synchrone.

363 427 


369) -> None433) -> None

370```434```

371 435 

372#### Paramètres436<h4 id="parameters-6">

437 Paramètres

438</h4>

373 439 

374| Paramètre | Type | Par défaut | Description |440| Paramètre | Type | Par défaut | Description |

375| :----------- | :------------ | :--------- | :---------------------------------------------------------------------------------------- |441| :----------- | :------------ | :--------- | :---------------------------------------------------------------------------------------- |


379 445 

380Lève `ValueError` si `session_id` n'est pas un UUID valide ou si `title` est vide ; `FileNotFoundError` si la session ne peut pas être trouvée.446Lève `ValueError` si `session_id` n'est pas un UUID valide ou si `title` est vide ; `FileNotFoundError` si la session ne peut pas être trouvée.

381 447 

382#### Exemple448<h4 id="example-5">

449 Exemple

450</h4>

383 451 

384Renommez la session la plus récente pour qu'elle soit plus facile à trouver plus tard. Le nouveau titre apparaît dans [`SDKSessionInfo.custom_title`](#return-type-sdksessioninfo) lors des lectures ultérieures.452Renommez la session la plus récente pour qu'elle soit plus facile à trouver plus tard. Le nouveau titre apparaît dans [`SDKSessionInfo.custom_title`](#return-type-sdksessioninfo) lors des lectures ultérieures.

385 453 


391 rename_session(sessions[0].session_id, "Refactor auth module")459 rename_session(sessions[0].session_id, "Refactor auth module")

392```460```

393 461 

394### `tag_session()`462<h3 id="tag_session">

463 `tag_session()`

464</h3>

395 465 

396Étiquette une session. Passez `None` pour effacer l'étiquette. Les appels répétés sont sûrs ; l'étiquette la plus récente gagne. Synchrone.466Étiquette une session. Passez `None` pour effacer l'étiquette. Les appels répétés sont sûrs ; l'étiquette la plus récente gagne. Synchrone.

397 467 


403) -> None473) -> None

404```474```

405 475 

406#### Paramètres476<h4 id="parameters-7">

477 Paramètres

478</h4>

407 479 

408| Paramètre | Type | Par défaut | Description |480| Paramètre | Type | Par défaut | Description |

409| :----------- | :------------ | :--------- | :---------------------------------------------------------------------------------------- |481| :----------- | :------------ | :--------- | :---------------------------------------------------------------------------------------- |


413 485 

414Lève `ValueError` si `session_id` n'est pas un UUID valide ou si `tag` est vide après nettoyage ; `FileNotFoundError` si la session ne peut pas être trouvée.486Lève `ValueError` si `session_id` n'est pas un UUID valide ou si `tag` est vide après nettoyage ; `FileNotFoundError` si la session ne peut pas être trouvée.

415 487 

416#### Exemple488<h4 id="example-6">

489 Exemple

490</h4>

417 491 

418Étiquetez une session, puis filtrez par cette étiquette lors d'une lecture ultérieure. Passez `None` pour effacer une étiquette existante.492Étiquetez une session, puis filtrez par cette étiquette lors d'une lecture ultérieure. Passez `None` pour effacer une étiquette existante.

419 493 


429 print(session.summary)503 print(session.summary)

430```504```

431 505 

432## Classes506<h2 id="classes">

507 Classes

508</h2>

433 509 

434### `ClaudeSDKClient`510<h3 id="claudesdkclient">

511 `ClaudeSDKClient`

512</h3>

435 513 

436**Maintient une session de conversation sur plusieurs échanges.** C'est l'équivalent Python de la façon dont la fonction `query()` du SDK TypeScript fonctionne en interne - elle crée un objet client qui peut continuer les conversations.514**Maintient une session de conversation sur plusieurs échanges.** C'est l'équivalent Python de la façon dont la fonction `query()` du SDK TypeScript fonctionne en interne - elle crée un objet client qui peut continuer les conversations.

437 515 

438#### Fonctionnalités clés516<h4 id="key-features">

517 Fonctionnalités clés

518</h4>

439 519 

440* **Continuité de session** : Maintient le contexte de conversation sur plusieurs appels `query()`520* **Continuité de session** : Maintient le contexte de conversation sur plusieurs appels `query()`

441* **Même conversation** : La session conserve les messages précédents521* **Même conversation** : La session conserve les messages précédents


463 async def disconnect(self) -> None543 async def disconnect(self) -> None

464```544```

465 545 

466#### Méthodes546<h4 id="methods">

547 Méthodes

548</h4>

467 549 

468| Méthode | Description |550| Méthode | Description |

469| :---------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |551| :---------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


483| `get_server_info()` | Obtient les informations du serveur incluant l'ID de session et les capacités |565| `get_server_info()` | Obtient les informations du serveur incluant l'ID de session et les capacités |

484| `disconnect()` | Se déconnecte de Claude |566| `disconnect()` | Se déconnecte de Claude |

485 567 

486#### Support du gestionnaire de contexte568<h4 id="context-manager-support">

569 Support du gestionnaire de contexte

570</h4>

487 571 

488Le client peut être utilisé comme un gestionnaire de contexte asynchrone pour la gestion automatique de la connexion :572Le client peut être utilisé comme un gestionnaire de contexte asynchrone pour la gestion automatique de la connexion :

489 573 


496 580 

497> **Important :** Lors de l'itération sur les messages, évitez d'utiliser `break` pour quitter tôt car cela peut causer des problèmes de nettoyage asyncio. À la place, laissez l'itération se terminer naturellement ou utilisez des drapeaux pour suivre quand vous avez trouvé ce que vous cherchiez.581> **Important :** Lors de l'itération sur les messages, évitez d'utiliser `break` pour quitter tôt car cela peut causer des problèmes de nettoyage asyncio. À la place, laissez l'itération se terminer naturellement ou utilisez des drapeaux pour suivre quand vous avez trouvé ce que vous cherchiez.

498 582 

499#### Exemple - Continuer une conversation583<h4 id="example-continuing-a-conversation">

584 Exemple - Continuer une conversation

585</h4>

500 586 

501```python theme={null}587```python theme={null}

502import asyncio588import asyncio


537asyncio.run(main())623asyncio.run(main())

538```624```

539 625 

540#### Exemple - Entrée en streaming avec ClaudeSDKClient626<h4 id="example-streaming-input-with-claudesdkclient">

627 Exemple - Entrée en streaming avec ClaudeSDKClient

628</h4>

541 629 

542```python theme={null}630```python theme={null}

543import asyncio631import asyncio


581asyncio.run(main())669asyncio.run(main())

582```670```

583 671 

584#### Exemple - Utiliser les interruptions672<h4 id="example-using-interrupts">

673 Exemple - Utiliser les interruptions

674</h4>

585 675 

586```python theme={null}676```python theme={null}

587import asyncio677import asyncio


624 **Comportement du buffer après interruption :** `interrupt()` envoie un signal d'arrêt mais ne vide pas le buffer de messages. Les messages déjà produits par la tâche interrompue, incluant son `ResultMessage` (avec `subtype="error_during_execution"`), restent dans le flux. Vous devez les vider avec `receive_response()` avant de lire la réponse à une nouvelle requête. Si vous envoyez une nouvelle requête immédiatement après `interrupt()` et appelez `receive_response()` une seule fois, vous recevrez les messages de la tâche interrompue, pas la réponse de la nouvelle requête.714 **Comportement du buffer après interruption :** `interrupt()` envoie un signal d'arrêt mais ne vide pas le buffer de messages. Les messages déjà produits par la tâche interrompue, incluant son `ResultMessage` (avec `subtype="error_during_execution"`), restent dans le flux. Vous devez les vider avec `receive_response()` avant de lire la réponse à une nouvelle requête. Si vous envoyez une nouvelle requête immédiatement après `interrupt()` et appelez `receive_response()` une seule fois, vous recevrez les messages de la tâche interrompue, pas la réponse de la nouvelle requête.

625</Note>715</Note>

626 716 

627#### Exemple - Contrôle avancé des permissions717<h4 id="example-advanced-permission-control">

718 Exemple - Contrôle avancé des permissions

719</h4>

628 720 

629```python theme={null}721```python theme={null}

630from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions722from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions


673asyncio.run(main())765asyncio.run(main())

674```766```

675 767 

676## Types768<h2 id="types">

769 Types

770</h2>

677 771 

678<Note>772<Note>

679 **`@dataclass` vs `TypedDict` :** Ce SDK utilise deux types de types. Les classes décorées avec `@dataclass` (telles que `ResultMessage`, `AgentDefinition`, `TextBlock`) sont des instances d'objet à l'exécution et supportent l'accès par attribut : `msg.result`. Les classes définies avec `TypedDict` (telles que `ThinkingConfigEnabled`, `McpStdioServerConfig`, `SyncHookJSONOutput`) sont **des dicts simples à l'exécution** et nécessitent l'accès par clé : `config["budget_tokens"]`, pas `config.budget_tokens`. La syntaxe d'appel `ClassName(field=value)` fonctionne pour les deux, mais seules les dataclasses produisent des objets avec des attributs.773 **`@dataclass` vs `TypedDict` :** Ce SDK utilise deux types de types. Les classes décorées avec `@dataclass` (telles que `ResultMessage`, `AgentDefinition`, `TextBlock`) sont des instances d'objet à l'exécution et supportent l'accès par attribut : `msg.result`. Les classes définies avec `TypedDict` (telles que `ThinkingConfigEnabled`, `McpStdioServerConfig`, `SyncHookJSONOutput`) sont **des dicts simples à l'exécution** et nécessitent l'accès par clé : `config["budget_tokens"]`, pas `config.budget_tokens`. La syntaxe d'appel `ClassName(field=value)` fonctionne pour les deux, mais seules les dataclasses produisent des objets avec des attributs.

680</Note>774</Note>

681 775 

682### `SdkMcpTool`776<h3 id="sdkmcptool">

777 `SdkMcpTool`

778</h3>

683 779 

684Définition pour un outil MCP SDK créé avec le décorateur `@tool`.780Définition pour un outil MCP SDK créé avec le décorateur `@tool`.

685 781 


701| `handler` | `Callable[[T], Awaitable[dict[str, Any]]]` | Fonction asynchrone qui gère l'exécution de l'outil |797| `handler` | `Callable[[T], Awaitable[dict[str, Any]]]` | Fonction asynchrone qui gère l'exécution de l'outil |

702| `annotations` | `ToolAnnotations \| None` | Annotations MCP optionnelles (par exemple, `readOnlyHint`, `destructiveHint`, `openWorldHint`). De `mcp.types` |798| `annotations` | `ToolAnnotations \| None` | Annotations MCP optionnelles (par exemple, `readOnlyHint`, `destructiveHint`, `openWorldHint`). De `mcp.types` |

703 799 

704### `Transport`800<h3 id="transport">

801 `Transport`

802</h3>

705 803 

706Classe de base abstraite pour les implémentations de transport personnalisées. Utilisez ceci pour communiquer avec le processus Claude sur un canal personnalisé (par exemple, une connexion distante au lieu d'un sous-processus local).804Classe de base abstraite pour les implémentations de transport personnalisées. Utilisez ceci pour communiquer avec le processus Claude sur un canal personnalisé (par exemple, une connexion distante au lieu d'un sous-processus local).

707 805 


746 844 

747Importation : `from claude_agent_sdk import Transport`845Importation : `from claude_agent_sdk import Transport`

748 846 

749### `ClaudeAgentOptions`847<h3 id="claudeagentoptions">

848 `ClaudeAgentOptions`

849</h3>

750 850 

751Dataclass de configuration pour les requêtes Claude Code.851Dataclass de configuration pour les requêtes Claude Code.

752 852 


810| `max_budget_usd` | `float \| None` | `None` | Arrêtez la requête quand l'estimation du coût côté client atteint cette valeur USD. Comparé à la même estimation que `total_cost_usd` ; voir [Suivi du coût et de l'utilisation](/fr/agent-sdk/cost-tracking) pour les avertissements de précision |910| `max_budget_usd` | `float \| None` | `None` | Arrêtez la requête quand l'estimation du coût côté client atteint cette valeur USD. Comparé à la même estimation que `total_cost_usd` ; voir [Suivi du coût et de l'utilisation](/fr/agent-sdk/cost-tracking) pour les avertissements de précision |

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

812| `enable_file_checkpointing` | `bool` | `False` | Activez le suivi des modifications de fichiers pour le rembobinage. Voir [Sauvegarde de points de contrôle de fichiers](/fr/agent-sdk/file-checkpointing) |912| `enable_file_checkpointing` | `bool` | `False` | Activez le suivi des modifications de fichiers pour le rembobinage. Voir [Sauvegarde de points de contrôle de fichiers](/fr/agent-sdk/file-checkpointing) |

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

814| `fallback_model` | `str \| None` | `None` | Modèle de secours à utiliser si le modèle principal échoue |914| `fallback_model` | `str \| None` | `None` | Modèle de secours à utiliser si le modèle principal échoue |

815| `betas` | `list[SdkBeta]` | `[]` | Fonctionnalités bêta à activer. Voir [`SdkBeta`](#sdkbeta) pour les options disponibles |915| `betas` | `list[SdkBeta]` | `[]` | Fonctionnalités bêta à activer. Voir [`SdkBeta`](#sdkbeta) pour les options disponibles |

816| `output_format` | `dict[str, Any] \| None` | `None` | Format de sortie pour les réponses structurées (par exemple, `{"type": "json_schema", "schema": {...}}`). Voir [Sorties structurées](/fr/agent-sdk/structured-outputs) pour les détails |916| `output_format` | `dict[str, Any] \| None` | `None` | Format de sortie pour les réponses structurées (par exemple, `{"type": "json_schema", "schema": {...}}`). Voir [Sorties structurées](/fr/agent-sdk/structured-outputs) pour les détails |


834| `plugins` | `list[SdkPluginConfig]` | `[]` | Charger les plugins personnalisés à partir de chemins locaux. Voir [Plugins](/fr/agent-sdk/plugins) pour les détails |934| `plugins` | `list[SdkPluginConfig]` | `[]` | Charger les plugins personnalisés à partir de chemins locaux. Voir [Plugins](/fr/agent-sdk/plugins) pour les détails |

835| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurez le comportement du sandbox programmatiquement. Voir [Paramètres du sandbox](#sandboxsettings) pour les détails |935| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Configurez le comportement du sandbox programmatiquement. Voir [Paramètres du sandbox](#sandboxsettings) pour les détails |

836| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Contrôlez quels paramètres du système de fichiers charger. Passez `[]` pour désactiver les paramètres utilisateur, projet et locaux. Les paramètres de politique gérée se chargent indépendamment. Voir [Utiliser les fonctionnalités de Claude Code](/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) |936| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Contrôlez quels paramètres du système de fichiers charger. Passez `[]` pour désactiver les paramètres utilisateur, projet et locaux. Les paramètres de politique gérée se chargent indépendamment. Voir [Utiliser les fonctionnalités de Claude Code](/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

837| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Compétences disponibles pour la session. Passez `"all"` pour activer chaque compétence découverte, ou une liste de noms de compétences. Quand défini, le SDK active l'outil Skill automatiquement sans le lister dans `allowed_tools`. Voir [Compétences](/fr/agent-sdk/skills) |937| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Compétences disponibles pour la session. Passez `"all"` pour activer chaque compétence découverte, ou une liste de noms de compétences. Quand défini, le SDK ajoute l'outil Skill à `allowed_tools` automatiquement. Si vous passez aussi `tools`, incluez `"Skill"` dans cette liste. Voir [Compétences](/fr/agent-sdk/skills) |

838| `max_thinking_tokens` | `int \| None` | `None` | *Déprécié* - Tokens maximum pour les blocs de réflexion. Utilisez `thinking` à la place |938| `max_thinking_tokens` | `int \| None` | `None` | *Déprécié* - Tokens maximum pour les blocs de réflexion. Utilisez `thinking` à la place |

839| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Contrôle le comportement de la réflexion étendue. Prend la priorité sur `max_thinking_tokens` |939| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Contrôle le comportement de la réflexion étendue. Prend la priorité sur `max_thinking_tokens` |

840| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Niveau d'effort pour la profondeur de réflexion |940| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Niveau d'effort pour la profondeur de réflexion. Voir [ajuster le niveau d'effort](/fr/model-config#adjust-effort-level) |

841| `session_store` | [`SessionStore`](/fr/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Miroir les transcriptions de session vers un backend externe pour que n'importe quel hôte puisse les reprendre. Voir [Persister les sessions vers un stockage externe](/fr/agent-sdk/session-storage) |941| `session_store` | [`SessionStore`](/fr/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Miroir les transcriptions de session vers un backend externe pour que n'importe quel hôte puisse les reprendre. Voir [Persister les sessions vers un stockage externe](/fr/agent-sdk/session-storage) |

842| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quand vider les entrées de transcription en miroir vers `session_store`. `"batched"` vide une fois par tour ou quand le buffer se remplit ; `"eager"` déclenche un vidage en arrière-plan après chaque frame. Ignoré quand `session_store` est `None` |942| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Quand vider les entrées de transcription en miroir vers `session_store`. `"batched"` vide une fois par tour ou quand le buffer se remplit ; `"eager"` déclenche un vidage en arrière-plan après chaque frame. Ignoré quand `session_store` est `None` |

843 943 

844#### Gérer les réponses API lentes ou bloquées944<h4 id="handle-slow-or-stalled-api-responses">

945 Gérer les réponses API lentes ou bloquées

946</h4>

845 947 

846Le sous-processus CLI lit plusieurs variables d'environnement qui contrôlent les délais d'expiration de l'API et la détection de blocage. Passez-les via `ClaudeAgentOptions.env` :948Le sous-processus CLI lit plusieurs variables d'environnement qui contrôlent les délais d'expiration de l'API et la détection de blocage. Passez-les via `ClaudeAgentOptions.env` :

847 949 


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

859* `CLAUDE_CODE_MAX_RETRIES` : nombre maximum de tentatives API. Par défaut `10`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire temps mural est approximativement `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff.961* `CLAUDE_CODE_MAX_RETRIES` : nombre maximum de tentatives API. Par défaut `10`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire temps mural est approximativement `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff.

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

861* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : abandonne la requête quand les en-têtes sont arrivés mais le corps de la réponse cesse de faire du streaming. Désactivé par défaut. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` par défaut à `300000` et est limité à ce minimum. La requête abandonnée passe par le chemin de tentative normal.963* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : abandonne la requête quand les en-têtes sont arrivés mais le corps de la réponse cesse de faire du streaming. Quand `CLAUDE_ENABLE_STREAM_WATCHDOG` n'est pas défini, la valeur par défaut est contrôlée par le serveur sur l'API Anthropic directe et désactivée sur les autres fournisseurs. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` par défaut à `300000` et est limité à ce minimum. La requête abandonnée passe par le chemin de tentative normal.

862 964 

863### `OutputFormat`965<h3 id="outputformat">

966 `OutputFormat`

967</h3>

864 968 

865Configuration pour la validation de sortie structurée. Passez ceci comme un `dict` au champ `output_format` sur `ClaudeAgentOptions` :969Configuration pour la validation de sortie structurée. Passez ceci comme un `dict` au champ `output_format` sur `ClaudeAgentOptions` :

866 970 


877| `type` | Oui | Doit être `"json_schema"` pour la validation JSON Schema |981| `type` | Oui | Doit être `"json_schema"` pour la validation JSON Schema |

878| `schema` | Oui | Définition JSON Schema pour la validation de sortie |982| `schema` | Oui | Définition JSON Schema pour la validation de sortie |

879 983 

880### `SystemPromptPreset`984<h3 id="systempromptpreset">

985 `SystemPromptPreset`

986</h3>

881 987 

882Configuration pour utiliser le preset de prompt système de Claude Code avec des ajouts optionnels.988Configuration pour utiliser le preset de prompt système de Claude Code avec des ajouts optionnels.

883 989 


896| `append` | Non | Instructions supplémentaires à ajouter au preset de prompt système |1002| `append` | Non | Instructions supplémentaires à ajouter au preset de prompt système |

897| `exclude_dynamic_sections` | Non | Déplacez le contexte par session comme le répertoire de travail, le statut git et les chemins de mémoire du prompt système vers le premier message utilisateur. Améliore la réutilisation du cache de prompt entre les utilisateurs et les machines. Voir [Modifier les prompts système](/fr/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1003| `exclude_dynamic_sections` | Non | Déplacez le contexte par session comme le répertoire de travail, le statut git et les chemins de mémoire du prompt système vers le premier message utilisateur. Améliore la réutilisation du cache de prompt entre les utilisateurs et les machines. Voir [Modifier les prompts système](/fr/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |

898 1004 

899### `SettingSource`1005<h3 id="settingsource">

1006 `SettingSource`

1007</h3>

900 1008 

901Contrôle quelles sources de configuration basées sur le système de fichiers le SDK charge les paramètres à partir de.1009Contrôle quelles sources de configuration basées sur le système de fichiers le SDK charge les paramètres à partir de.

902 1010 


905```1013```

906 1014 

907| Valeur | Description | Emplacement |1015| Valeur | Description | Emplacement |

908| :---------- | :-------------------------------------------------- | :---------------------------- |1016| :---------- | :------------------------------------------------------ | :---------------------------- |

909| `"user"` | Paramètres utilisateur globaux | `~/.claude/settings.json` |1017| `"user"` | Paramètres utilisateur globaux | `~/.claude/settings.json` |

910| `"project"` | Paramètres de projet partagés (contrôle de version) | `.claude/settings.json` |1018| `"project"` | Paramètres de projet partagés (contrôle de version) | `.claude/settings.json` |

911| `"local"` | Paramètres de projet locaux (gitignored) | `.claude/settings.local.json` |1019| `"local"` | Paramètres de projet locaux (non contrôlés par version) | `.claude/settings.local.json` |

912 1020 

913#### Comportement par défaut1021<h4 id="default-behavior">

1022 Comportement par défaut

1023</h4>

914 1024 

915Quand `setting_sources` est omis ou `None`, `query()` charge les mêmes paramètres du système de fichiers que le CLI Claude Code : utilisateur, projet et local. Les paramètres de politique gérée sont chargés dans tous les cas. Voir [Ce que settingSources ne contrôle pas](/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) pour les entrées qui sont lues indépendamment de cette option, et comment les désactiver.1025Quand `setting_sources` est omis ou `None`, `query()` charge les mêmes paramètres du système de fichiers que le CLI Claude Code : utilisateur, projet et local. Les paramètres de politique gérée sont chargés dans tous les cas. Voir [Ce que settingSources ne contrôle pas](/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) pour les entrées qui sont lues indépendamment de cette option, et comment les désactiver.

916 1026 

917#### Pourquoi utiliser setting\_sources1027<h4 id="why-use-setting_sources">

1028 Pourquoi utiliser setting\_sources

1029</h4>

918 1030 

919**Désactiver les paramètres du système de fichiers :**1031**Désactiver les paramètres du système de fichiers :**

920 1032 


1011 print(message)1123 print(message)

1012```1124```

1013 1125 

1014#### Précédence des paramètres1126<h4 id="settings-precedence">

1127 Précédence des paramètres

1128</h4>

1015 1129 

1016Quand plusieurs sources sont chargées, les paramètres sont fusionnés avec cette précédence (la plus haute à la plus basse) :1130Quand plusieurs sources sont chargées, les paramètres sont fusionnés avec cette précédence (la plus haute à la plus basse) :

1017 1131 


1021 1135 

1022Les options programmatiques telles que `agents` et `allowed_tools` remplacent les paramètres du système de fichiers utilisateur, projet et local. Les paramètres de politique gérée prennent la priorité sur les options programmatiques.1136Les options programmatiques telles que `agents` et `allowed_tools` remplacent les paramètres du système de fichiers utilisateur, projet et local. Les paramètres de politique gérée prennent la priorité sur les options programmatiques.

1023 1137 

1024### `AgentDefinition`1138<h3 id="agentdefinition">

1139 `AgentDefinition`

1140</h3>

1025 1141 

1026Configuration pour un sous-agent défini programmatiquement.1142Configuration pour un sous-agent défini programmatiquement.

1027 1143 


1044```1160```

1045 1161 

1046| Champ | Requis | Description |1162| Champ | Requis | Description |

1047| :---------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1163| :---------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1048| `description` | Oui | Description en langage naturel de quand utiliser cet agent |1164| `description` | Oui | Description en langage naturel de quand utiliser cet agent |

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

1050| `tools` | Non | Tableau des noms d'outils autorisés. Si omis, hérite de tous les outils |1166| `tools` | Non | Tableau des noms d'outils autorisés. Si omis, hérite de tous les outils |

1051| `disallowedTools` | Non | Tableau des noms d'outils à supprimer de l'ensemble d'outils de l'agent |1167| `disallowedTools` | Non | Tableau des noms d'outils à supprimer de l'ensemble d'outils de l'agent. Les motifs au niveau du serveur MCP sont également acceptés : `mcp__server` ou `mcp__server__*` supprime chaque outil de ce serveur, et `mcp__*` supprime chaque outil MCP de n'importe quel serveur |

1052| `model` | Non | Remplacement de modèle pour cet agent. Accepte un alias tel que `"sonnet"`, `"opus"`, `"haiku"`, ou `"inherit"`, ou un ID de modèle complet. Si omis, utilise le modèle principal |1168| `model` | Non | Remplacement de modèle pour cet agent. Accepte un alias tel que `"sonnet"`, `"opus"`, `"haiku"`, ou `"inherit"`, ou un ID de modèle complet. Si omis, utilise le modèle principal |

1053| `skills` | Non | Liste des noms de compétences à précharger dans le contexte de l'agent au démarrage. Les compétences non listées restent invocables via l'outil Skill |1169| `skills` | Non | Liste des noms de compétences à précharger dans le contexte de l'agent au démarrage. Les compétences non listées restent invocables via l'outil Skill |

1054| `memory` | Non | Source de mémoire pour cet agent : `"user"`, `"project"`, ou `"local"` |1170| `memory` | Non | Source de mémoire pour cet agent : `"user"`, `"project"`, ou `"local"` |


1063 Les noms de champs `AgentDefinition` utilisent camelCase, tels que `disallowedTools`, `permissionMode`, et `maxTurns`. Ces noms correspondent directement au format de fil partagé avec le SDK TypeScript. Ceci diffère de `ClaudeAgentOptions`, qui utilise Python snake\_case pour les champs de niveau supérieur équivalents tels que `disallowed_tools` et `permission_mode`. Parce que `AgentDefinition` est une dataclass, passer un mot-clé snake\_case lève une `TypeError` au moment de la construction.1179 Les noms de champs `AgentDefinition` utilisent camelCase, tels que `disallowedTools`, `permissionMode`, et `maxTurns`. Ces noms correspondent directement au format de fil partagé avec le SDK TypeScript. Ceci diffère de `ClaudeAgentOptions`, qui utilise Python snake\_case pour les champs de niveau supérieur équivalents tels que `disallowed_tools` et `permission_mode`. Parce que `AgentDefinition` est une dataclass, passer un mot-clé snake\_case lève une `TypeError` au moment de la construction.

1064</Note>1180</Note>

1065 1181 

1066### `PermissionMode`1182<h3 id="permissionmode">

1183 `PermissionMode`

1184</h3>

1067 1185 

1068Modes de permission pour contrôler l'exécution des outils.1186Modes de permission pour contrôler l'exécution des outils.

1069 1187 


1071PermissionMode = Literal[1189PermissionMode = Literal[

1072 "default", # Standard permission behavior1190 "default", # Standard permission behavior

1073 "acceptEdits", # Auto-accept file edits1191 "acceptEdits", # Auto-accept file edits

1074 "plan", # Planning mode - read-only tools only1192 "plan", # Planning mode - explore without editing

1075 "dontAsk", # Deny anything not pre-approved instead of prompting1193 "dontAsk", # Deny anything not pre-approved instead of prompting

1076 "bypassPermissions", # Bypass all permission checks (use with caution)1194 "bypassPermissions", # Bypass permission checks; explicit ask rules still prompt (use with caution)

1077]1195]

1078```1196```

1079 1197 

1080### `EffortLevel`1198<h3 id="effortlevel">

1199 `EffortLevel`

1200</h3>

1081 1201 

1082Niveaux d'effort pour guider la profondeur de réflexion.1202Niveaux d'effort pour guider la profondeur de réflexion.

1083 1203 


1086 "low", # Minimal thinking, fastest responses1206 "low", # Minimal thinking, fastest responses

1087 "medium", # Moderate thinking1207 "medium", # Moderate thinking

1088 "high", # Deep reasoning1208 "high", # Deep reasoning

1089 "xhigh", # Extended reasoning (Opus 4.7 only; falls back to "high" on other models)1209 "xhigh", # Extended reasoning (Opus 4.8 and Opus 4.7; falls back to "high" on other models)

1090 "max", # Maximum effort1210 "max", # Maximum effort

1091]1211]

1092```1212```

1093 1213 

1094### `CanUseTool`1214<h3 id="canusetool">

1215 `CanUseTool`

1216</h3>

1095 1217 

1096Alias de type pour les fonctions de callback de permission d'outil.1218Alias de type pour les fonctions de callback de permission d'outil.

1097 1219 


1109 1231 

1110Retourne un `PermissionResult` (soit `PermissionResultAllow` soit `PermissionResultDeny`).1232Retourne un `PermissionResult` (soit `PermissionResultAllow` soit `PermissionResultDeny`).

1111 1233 

1112### `ToolPermissionContext`1234<h3 id="toolpermissioncontext">

1235 `ToolPermissionContext`

1236</h3>

1113 1237 

1114Informations de contexte passées aux callbacks de permission d'outil.1238Informations de contexte passées aux callbacks de permission d'outil.

1115 1239 


1135| `display_name` | `str \| None` | Phrase nominale courte pour l'action de l'outil, telle que `Read file`, appropriée pour les étiquettes de bouton |1259| `display_name` | `str \| None` | Phrase nominale courte pour l'action de l'outil, telle que `Read file`, appropriée pour les étiquettes de bouton |

1136| `description` | `str \| None` | Sous-titre lisible pour l'interface utilisateur de permission |1260| `description` | `str \| None` | Sous-titre lisible pour l'interface utilisateur de permission |

1137 1261 

1138### `PermissionResult`1262<h3 id="permissionresult">

1263 `PermissionResult`

1264</h3>

1139 1265 

1140Type union pour les résultats de callback de permission.1266Type union pour les résultats de callback de permission.

1141 1267 


1143PermissionResult = PermissionResultAllow | PermissionResultDeny1269PermissionResult = PermissionResultAllow | PermissionResultDeny

1144```1270```

1145 1271 

1146### `PermissionResultAllow`1272<h3 id="permissionresultallow">

1273 `PermissionResultAllow`

1274</h3>

1147 1275 

1148Résultat indiquant que l'appel d'outil doit être autorisé.1276Résultat indiquant que l'appel d'outil doit être autorisé.

1149 1277 


1161| `updated_input` | `dict[str, Any] \| None` | `None` | Entrée modifiée à utiliser à la place de l'original |1289| `updated_input` | `dict[str, Any] \| None` | `None` | Entrée modifiée à utiliser à la place de l'original |

1162| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Mises à jour de permission à appliquer |1290| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Mises à jour de permission à appliquer |

1163 1291 

1164### `PermissionResultDeny`1292<h3 id="permissionresultdeny">

1293 `PermissionResultDeny`

1294</h3>

1165 1295 

1166Résultat indiquant que l'appel d'outil doit être refusé.1296Résultat indiquant que l'appel d'outil doit être refusé.

1167 1297 


1179| `message` | `str` | `""` | Message expliquant pourquoi l'outil a été refusé |1309| `message` | `str` | `""` | Message expliquant pourquoi l'outil a été refusé |

1180| `interrupt` | `bool` | `False` | S'il faut interrompre l'exécution actuelle |1310| `interrupt` | `bool` | `False` | S'il faut interrompre l'exécution actuelle |

1181 1311 

1182### `PermissionUpdate`1312<h3 id="permissionupdate">

1313 `PermissionUpdate`

1314</h3>

1183 1315 

1184Configuration pour mettre à jour les permissions programmatiquement.1316Configuration pour mettre à jour les permissions programmatiquement.

1185 1317 


1212| `directories` | `list[str] \| None` | Répertoires pour les opérations d'ajout/suppression de répertoire |1344| `directories` | `list[str] \| None` | Répertoires pour les opérations d'ajout/suppression de répertoire |

1213| `destination` | `Literal[...] \| None` | Où appliquer la mise à jour de permission |1345| `destination` | `Literal[...] \| None` | Où appliquer la mise à jour de permission |

1214 1346 

1215### `PermissionRuleValue`1347<h3 id="permissionrulevalue">

1348 `PermissionRuleValue`

1349</h3>

1216 1350 

1217Une règle à ajouter, remplacer ou supprimer dans une mise à jour de permission.1351Une règle à ajouter, remplacer ou supprimer dans une mise à jour de permission.

1218 1352 


1223 rule_content: str | None = None1357 rule_content: str | None = None

1224```1358```

1225 1359 

1226### `ToolsPreset`1360<h3 id="toolspreset">

1361 `ToolsPreset`

1362</h3>

1227 1363 

1228Configuration des outils preset pour utiliser l'ensemble d'outils par défaut de Claude Code.1364Configuration des outils preset pour utiliser l'ensemble d'outils par défaut de Claude Code.

1229 1365 


1233 preset: Literal["claude_code"]1369 preset: Literal["claude_code"]

1234```1370```

1235 1371 

1236### `ThinkingConfig`1372<h3 id="thinkingconfig">

1373 `ThinkingConfig`

1374</h3>

1237 1375 

1238Contrôle le comportement de la réflexion étendue. Une union de trois configurations :1376Contrôle le comportement de la réflexion étendue. Une union de trois configurations :

1239 1377 


1281# config.budget_tokens would raise AttributeError1419# config.budget_tokens would raise AttributeError

1282```1420```

1283 1421 

1284### `SdkBeta`1422<h3 id="sdkbeta">

1423 `SdkBeta`

1424</h3>

1285 1425 

1286Type littéral pour les fonctionnalités bêta du SDK.1426Type littéral pour les fonctionnalités bêta du SDK.

1287 1427 


1292Utilisez avec le champ `betas` dans `ClaudeAgentOptions` pour activer les fonctionnalités bêta.1432Utilisez avec le champ `betas` dans `ClaudeAgentOptions` pour activer les fonctionnalités bêta.

1293 1433 

1294<Warning>1434<Warning>

1295 La bêta `context-1m-2025-08-07` est retirée à partir du 30 avril 2026. Passer cet en-tête avec Claude Sonnet 4.5 ou Sonnet 4 n'a aucun effet, et les requêtes qui dépassent la fenêtre de contexte standard de 200k tokens retournent une erreur. Pour utiliser une fenêtre de contexte de 1M tokens, migrez vers [Claude Sonnet 4.6, Claude Opus 4.6, ou Claude Opus 4.7](https://platform.claude.com/docs/en/about-claude/models/overview), qui incluent 1M de contexte à prix standard sans en-tête bêta requis.1435 La bêta `context-1m-2025-08-07` est retirée à partir du 30 avril 2026. Passer cet en-tête avec Claude Sonnet 4.5 ou Sonnet 4 n'a aucun effet, et les requêtes qui dépassent la fenêtre de contexte standard de 200 000 tokens retournent une erreur. Pour utiliser une fenêtre de contexte de 1 million de tokens, migrez vers [Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, ou Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), qui incluent 1 million de contexte à prix standard sans en-tête bêta requis.

1296</Warning>1436</Warning>

1297 1437 

1298### `McpSdkServerConfig`1438<h3 id="mcpsdkserverconfig">

1439 `McpSdkServerConfig`

1440</h3>

1299 1441 

1300Configuration pour les serveurs MCP SDK créés avec `create_sdk_mcp_server()`.1442Configuration pour les serveurs MCP SDK créés avec `create_sdk_mcp_server()`.

1301 1443 


1306 instance: Any # MCP Server instance1448 instance: Any # MCP Server instance

1307```1449```

1308 1450 

1309### `McpServerConfig`1451<h3 id="mcpserverconfig">

1452 `McpServerConfig`

1453</h3>

1310 1454 

1311Type union pour les configurations de serveur MCP.1455Type union pour les configurations de serveur MCP.

1312 1456 


1316)1460)

1317```1461```

1318 1462 

1319#### `McpStdioServerConfig`1463<h4 id="mcpstdioserverconfig">

1464 `McpStdioServerConfig`

1465</h4>

1320 1466 

1321```python theme={null}1467```python theme={null}

1322class McpStdioServerConfig(TypedDict):1468class McpStdioServerConfig(TypedDict):


1326 env: NotRequired[dict[str, str]]1472 env: NotRequired[dict[str, str]]

1327```1473```

1328 1474 

1329#### `McpSSEServerConfig`1475<h4 id="mcpsseserverconfig">

1476 `McpSSEServerConfig`

1477</h4>

1330 1478 

1331```python theme={null}1479```python theme={null}

1332class McpSSEServerConfig(TypedDict):1480class McpSSEServerConfig(TypedDict):


1335 headers: NotRequired[dict[str, str]]1483 headers: NotRequired[dict[str, str]]

1336```1484```

1337 1485 

1338#### `McpHttpServerConfig`1486<h4 id="mcphttpserverconfig">

1487 `McpHttpServerConfig`

1488</h4>

1339 1489 

1340```python theme={null}1490```python theme={null}

1341class McpHttpServerConfig(TypedDict):1491class McpHttpServerConfig(TypedDict):


1344 headers: NotRequired[dict[str, str]]1494 headers: NotRequired[dict[str, str]]

1345```1495```

1346 1496 

1347### `McpServerStatusConfig`1497<h3 id="mcpserverstatusconfig">

1498 `McpServerStatusConfig`

1499</h3>

1348 1500 

1349La configuration d'un serveur MCP telle que rapportée par [`get_mcp_status()`](#methods). C'est l'union de toutes les variantes de transport [`McpServerConfig`](#mcpserverconfig) plus une variante de sortie uniquement `claudeai-proxy` pour les serveurs proxifiés via claude.ai.1501La configuration d'un serveur MCP telle que rapportée par [`get_mcp_status()`](#methods). C'est l'union de toutes les variantes de transport [`McpServerConfig`](#mcpserverconfig) plus une variante de sortie uniquement `claudeai-proxy` pour les serveurs proxifiés via claude.ai.

1350 1502 


1360 1512 

1361`McpSdkServerConfigStatus` est la forme sérialisable de [`McpSdkServerConfig`](#mcpsdkserverconfig) avec seulement les champs `type` (`"sdk"`) et `name` (`str`) ; l'`instance` en processus est omise. `McpClaudeAIProxyServerConfig` a les champs `type` (`"claudeai-proxy"`), `url` (`str`), et `id` (`str`).1513`McpSdkServerConfigStatus` est la forme sérialisable de [`McpSdkServerConfig`](#mcpsdkserverconfig) avec seulement les champs `type` (`"sdk"`) et `name` (`str`) ; l'`instance` en processus est omise. `McpClaudeAIProxyServerConfig` a les champs `type` (`"claudeai-proxy"`), `url` (`str`), et `id` (`str`).

1362 1514 

1363### `McpStatusResponse`1515<h3 id="mcpstatusresponse">

1516 `McpStatusResponse`

1517</h3>

1364 1518 

1365Réponse de [`ClaudeSDKClient.get_mcp_status()`](#methods). Enveloppe la liste des statuts de serveur sous la clé `mcpServers`.1519Réponse de [`ClaudeSDKClient.get_mcp_status()`](#methods). Enveloppe la liste des statuts de serveur sous la clé `mcpServers`.

1366 1520 


1369 mcpServers: list[McpServerStatus]1523 mcpServers: list[McpServerStatus]

1370```1524```

1371 1525 

1372### `McpServerStatus`1526<h3 id="mcpserverstatus">

1527 `McpServerStatus`

1528</h3>

1373 1529 

1374Statut d'un serveur MCP connecté, contenu dans [`McpStatusResponse`](#mcpstatusresponse).1530Statut d'un serveur MCP connecté, contenu dans [`McpStatusResponse`](#mcpstatusresponse).

1375 1531 


1394| `scope` | `str` (optionnel) | Portée de la configuration |1550| `scope` | `str` (optionnel) | Portée de la configuration |

1395| `tools` | `list` (optionnel) | Outils fournis par ce serveur, chacun avec les champs `name`, `description`, et `annotations` |1551| `tools` | `list` (optionnel) | Outils fournis par ce serveur, chacun avec les champs `name`, `description`, et `annotations` |

1396 1552 

1397### `SdkPluginConfig`1553<h3 id="sdkpluginconfig">

1554 `SdkPluginConfig`

1555</h3>

1398 1556 

1399Configuration pour charger les plugins dans le SDK.1557Configuration pour charger les plugins dans le SDK.

1400 1558 


1420 1578 

1421Pour des informations complètes sur la création et l'utilisation de plugins, voir [Plugins](/fr/agent-sdk/plugins).1579Pour des informations complètes sur la création et l'utilisation de plugins, voir [Plugins](/fr/agent-sdk/plugins).

1422 1580 

1423## Types de messages1581<h2 id="message-types">

1582 Types de messages

1583</h2>

1424 1584 

1425### `Message`1585<h3 id="message">

1586 `Message`

1587</h3>

1426 1588 

1427Type union de tous les messages possibles.1589Type union de tous les messages possibles.

1428 1590 


1437)1599)

1438```1600```

1439 1601 

1440### `UserMessage`1602<h3 id="usermessage">

1603 `UserMessage`

1604</h3>

1441 1605 

1442Message d'entrée utilisateur.1606Message d'entrée utilisateur.

1443 1607 


1457| `parent_tool_use_id` | `str \| None` | ID d'utilisation d'outil si ce message est une réponse de résultat d'outil |1621| `parent_tool_use_id` | `str \| None` | ID d'utilisation d'outil si ce message est une réponse de résultat d'outil |

1458| `tool_use_result` | `dict[str, Any] \| None` | Données de résultat d'outil si applicable |1622| `tool_use_result` | `dict[str, Any] \| None` | Données de résultat d'outil si applicable |

1459 1623 

1460### `AssistantMessage`1624<h3 id="assistantmessage">

1625 `AssistantMessage`

1626</h3>

1461 1627 

1462Message de réponse d'assistant avec blocs de contenu.1628Message de réponse d'assistant avec blocs de contenu.

1463 1629 


1481| `usage` | `dict[str, Any] \| None` | Utilisation de tokens par message (mêmes clés que [`ResultMessage.usage`](#resultmessage)) |1647| `usage` | `dict[str, Any] \| None` | Utilisation de tokens par message (mêmes clés que [`ResultMessage.usage`](#resultmessage)) |

1482| `message_id` | `str \| None` | ID de message API. Plusieurs messages d'un tour partagent le même ID |1648| `message_id` | `str \| None` | ID de message API. Plusieurs messages d'un tour partagent le même ID |

1483 1649 

1484### `AssistantMessageError`1650<h3 id="assistantmessageerror">

1651 `AssistantMessageError`

1652</h3>

1485 1653 

1486Types d'erreur possibles pour les messages d'assistant.1654Types d'erreur possibles pour les messages d'assistant.

1487 1655 


1497]1665]

1498```1666```

1499 1667 

1500### `SystemMessage`1668<h3 id="systemmessage">

1669 `SystemMessage`

1670</h3>

1501 1671 

1502Message système avec métadonnées.1672Message système avec métadonnées.

1503 1673 


1508 data: dict[str, Any]1678 data: dict[str, Any]

1509```1679```

1510 1680 

1511### `ResultMessage`1681<h3 id="resultmessage">

1682 `ResultMessage`

1683</h3>

1512 1684 

1513Message de résultat final avec informations de coût et d'utilisation.1685Message de résultat final avec informations de coût et d'utilisation.

1514 1686 


1534 uuid: str | None = None1706 uuid: str | None = None

1535```1707```

1536 1708 

1709Le champ `subtype` détermine quels autres champs sont remplis. C'est l'un de `"success"`, `"error_during_execution"`, `"error_max_turns"`, `"error_max_budget_usd"`, ou `"error_max_structured_output_retries"`. La dataclass Python aplatit toutes les variantes en une seule forme, donc les champs qui ne s'appliquent pas au sous-type retourné sont `None`.

1710 

1711Plusieurs champs portent des détails de diagnostic quand la conversation se termine sur une erreur :

1712 

1713* `is_error` : `True` quand la conversation s'est terminée dans un état d'erreur. Toujours `True` sur les sous-types `error_*`. Sur `subtype="success"` c'est `True` quand la dernière demande de modèle a échoué, ce qui signifie que la boucle d'agent s'est terminée mais le dernier appel API a retourné une erreur.

1714* `api_error_status` : le code de statut HTTP de l'erreur API terminale. `None` quand le tour s'est terminé sans une. Rempli uniquement sur `subtype="success"`.

1715* `result` : texte du message d'assistant final sur `subtype="success"`, ou `None` sur les sous-types `error_*`. Quand `subtype="success"` et `is_error=True`, ceci contient la chaîne d'erreur API si une est disponible mais peut être vide, donc vérifiez `api_error_status` et le contenu `AssistantMessage` précédent pour plus de détails.

1716* `errors` : chaînes d'erreur au niveau de la boucle telles que le message max-turns. Rempli uniquement sur les sous-types `error_*`.

1717 

1537Le dict `usage` contient les clés suivantes quand présentes :1718Le dict `usage` contient les clés suivantes quand présentes :

1538 1719 

1539| Clé | Type | Description |1720| Clé | Type | Description |


1556| `contextWindow` | `int` | Taille de la fenêtre de contexte pour ce modèle. |1737| `contextWindow` | `int` | Taille de la fenêtre de contexte pour ce modèle. |

1557| `maxOutputTokens` | `int` | Limite de tokens de sortie maximum pour ce modèle. |1738| `maxOutputTokens` | `int` | Limite de tokens de sortie maximum pour ce modèle. |

1558 1739 

1559### `StreamEvent`1740<h3 id="streamevent">

1741 `StreamEvent`

1742</h3>

1560 1743 

1561Événement de flux pour les mises à jour de messages partiels pendant le streaming. Reçu uniquement quand `include_partial_messages=True` dans `ClaudeAgentOptions`. Importez via `from claude_agent_sdk.types import StreamEvent`.1744Événement de flux pour les mises à jour de messages partiels pendant le streaming. Reçu uniquement quand `include_partial_messages=True` dans `ClaudeAgentOptions`. Importez via `from claude_agent_sdk.types import StreamEvent`.

1562 1745 


1576| `event` | `dict[str, Any]` | Les données d'événement de flux Claude API brutes |1759| `event` | `dict[str, Any]` | Les données d'événement de flux Claude API brutes |

1577| `parent_tool_use_id` | `str \| None` | ID d'utilisation d'outil parent si cet événement provient d'un sous-agent |1760| `parent_tool_use_id` | `str \| None` | ID d'utilisation d'outil parent si cet événement provient d'un sous-agent |

1578 1761 

1579### `RateLimitEvent`1762<h3 id="ratelimitevent">

1763 `RateLimitEvent`

1764</h3>

1580 1765 

1581Émis quand le statut de limite de débit change (par exemple, de `"allowed"` à `"allowed_warning"`). Utilisez ceci pour avertir les utilisateurs avant qu'ils ne frappent une limite dure, ou pour reculer quand le statut est `"rejected"`.1766Émis quand le statut de limite de débit change (par exemple, de `"allowed"` à `"allowed_warning"`). Utilisez ceci pour avertir les utilisateurs avant qu'ils ne frappent une limite dure, ou pour reculer quand le statut est `"rejected"`.

1582 1767 


1594| `uuid` | `str` | Identifiant d'événement unique |1779| `uuid` | `str` | Identifiant d'événement unique |

1595| `session_id` | `str` | Identifiant de session |1780| `session_id` | `str` | Identifiant de session |

1596 1781 

1597### `RateLimitInfo`1782<h3 id="ratelimitinfo">

1783 `RateLimitInfo`

1784</h3>

1598 1785 

1599État de limite de débit porté par [`RateLimitEvent`](#ratelimitevent).1786État de limite de débit porté par [`RateLimitEvent`](#ratelimitevent).

1600 1787 


1628| `overage_disabled_reason` | `str \| None` | Pourquoi le dépassement est indisponible, si le statut est `"rejected"` |1815| `overage_disabled_reason` | `str \| None` | Pourquoi le dépassement est indisponible, si le statut est `"rejected"` |

1629| `raw` | `dict[str, Any]` | Dict brut complet du CLI, incluant les champs non modélisés ci-dessus |1816| `raw` | `dict[str, Any]` | Dict brut complet du CLI, incluant les champs non modélisés ci-dessus |

1630 1817 

1631### `TaskStartedMessage`1818<h3 id="taskstartedmessage">

1819 `TaskStartedMessage`

1820</h3>

1632 1821 

1633Émis quand une tâche de fond démarre. Une tâche de fond est tout ce qui est suivi en dehors du tour principal : une commande Bash en arrière-plan, une montre [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`.1822Émis quand une tâche de fond démarre. Une tâche de fond est tout ce qui est suivi en dehors du tour principal : une commande Bash en arrière-plan, une montre [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`.

1634 1823 


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

1653| `task_type` | `str \| None` | Quel type de tâche de fond : `"local_bash"` pour Bash en arrière-plan et les montres Monitor, `"local_agent"`, ou `"remote_agent"` |1842| `task_type` | `str \| None` | Quel type de tâche de fond : `"local_bash"` pour Bash en arrière-plan et les montres Monitor, `"local_agent"`, ou `"remote_agent"` |

1654 1843 

1655### `TaskUsage`1844<h3 id="taskusage">

1845 `TaskUsage`

1846</h3>

1656 1847 

1657Données de tokens et de timing pour une tâche de fond.1848Données de tokens et de timing pour une tâche de fond.

1658 1849 


1663 duration_ms: int1854 duration_ms: int

1664```1855```

1665 1856 

1666### `TaskProgressMessage`1857<h3 id="taskprogressmessage">

1858 `TaskProgressMessage`

1859</h3>

1667 1860 

1668Émis périodiquement avec les mises à jour de progression pour une tâche de fond en cours d'exécution.1861Émis périodiquement avec les mises à jour de progression pour une tâche de fond en cours d'exécution.

1669 1862 


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

1690| `last_tool_name` | `str \| None` | Nom du dernier outil utilisé par la tâche |1883| `last_tool_name` | `str \| None` | Nom du dernier outil utilisé par la tâche |

1691 1884 

1692### `TaskNotificationMessage`1885<h3 id="tasknotificationmessage">

1886 `TaskNotificationMessage`

1887</h3>

1693 1888 

1694Émis quand une tâche de fond se termine, échoue, ou est arrêtée. Les tâches de fond incluent les commandes Bash `run_in_background`, les montres Monitor, et les sous-agents en arrière-plan.1889Émis quand une tâche de fond se termine, échoue, ou est arrêtée. Les tâches de fond incluent les commandes Bash `run_in_background`, les montres Monitor, et les sous-agents en arrière-plan.

1695 1890 


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

1718| `usage` | `TaskUsage \| None` | Utilisation de tokens finale pour la tâche |1913| `usage` | `TaskUsage \| None` | Utilisation de tokens finale pour la tâche |

1719 1914 

1720## Types de blocs de contenu1915<h2 id="content-block-types">

1916 Types de blocs de contenu

1917</h2>

1721 1918 

1722### `ContentBlock`1919<h3 id="contentblock">

1920 `ContentBlock`

1921</h3>

1723 1922 

1724Type union de tous les blocs de contenu.1923Type union de tous les blocs de contenu.

1725 1924 


1727ContentBlock = TextBlock | ThinkingBlock | ToolUseBlock | ToolResultBlock1926ContentBlock = TextBlock | ThinkingBlock | ToolUseBlock | ToolResultBlock

1728```1927```

1729 1928 

1730### `TextBlock`1929<h3 id="textblock">

1930 `TextBlock`

1931</h3>

1731 1932 

1732Bloc de contenu texte.1933Bloc de contenu texte.

1733 1934 


1737 text: str1938 text: str

1738```1939```

1739 1940 

1740### `ThinkingBlock`1941<h3 id="thinkingblock">

1942 `ThinkingBlock`

1943</h3>

1741 1944 

1742Bloc de contenu de réflexion (pour les modèles avec capacité de réflexion).1945Bloc de contenu de réflexion (pour les modèles avec capacité de réflexion).

1743 1946 


1748 signature: str1951 signature: str

1749```1952```

1750 1953 

1751### `ToolUseBlock`1954<h3 id="tooluseblock">

1955 `ToolUseBlock`

1956</h3>

1752 1957 

1753Bloc de requête d'utilisation d'outil.1958Bloc de requête d'utilisation d'outil.

1754 1959 


1760 input: dict[str, Any]1965 input: dict[str, Any]

1761```1966```

1762 1967 

1763### `ToolResultBlock`1968<h3 id="toolresultblock">

1969 `ToolResultBlock`

1970</h3>

1764 1971 

1765Bloc de résultat d'exécution d'outil.1972Bloc de résultat d'exécution d'outil.

1766 1973 


1772 is_error: bool | None = None1979 is_error: bool | None = None

1773```1980```

1774 1981 

1775## Types d'erreur1982<h2 id="error-types">

1983 Types d'erreur

1984</h2>

1776 1985 

1777### `ClaudeSDKError`1986<h3 id="claudesdkerror">

1987 `ClaudeSDKError`

1988</h3>

1778 1989 

1779Classe d'exception de base pour toutes les erreurs du SDK.1990Classe d'exception de base pour toutes les erreurs du SDK.

1780 1991 


1783 """Base error for Claude SDK."""1994 """Base error for Claude SDK."""

1784```1995```

1785 1996 

1786### `CLINotFoundError`1997<h3 id="clinotfounderror">

1998 `CLINotFoundError`

1999</h3>

1787 2000 

1788Levée quand Claude Code CLI n'est pas installé ou introuvable.2001Levée quand Claude Code CLI n'est pas installé ou introuvable.

1789 2002 


1799 """2012 """

1800```2013```

1801 2014 

1802### `CLIConnectionError`2015<h3 id="cliconnectionerror">

2016 `CLIConnectionError`

2017</h3>

1803 2018 

1804Levée quand la connexion à Claude Code échoue.2019Levée quand la connexion à Claude Code échoue.

1805 2020 


1808 """Failed to connect to Claude Code."""2023 """Failed to connect to Claude Code."""

1809```2024```

1810 2025 

1811### `ProcessError`2026<h3 id="processerror">

2027 `ProcessError`

2028</h3>

1812 2029 

1813Levée quand le processus Claude Code échoue.2030Levée quand le processus Claude Code échoue.

1814 2031 


1821 self.stderr = stderr2038 self.stderr = stderr

1822```2039```

1823 2040 

1824### `CLIJSONDecodeError`2041<h3 id="clijsondecodeerror">

2042 `CLIJSONDecodeError`

2043</h3>

1825 2044 

1826Levée quand l'analyse JSON échoue.2045Levée quand l'analyse JSON échoue.

1827 2046 


1837 self.original_error = original_error2056 self.original_error = original_error

1838```2057```

1839 2058 

1840## Types de hooks2059<h2 id="hook-types">

2060 Types de hooks

2061</h2>

1841 2062 

1842Pour un guide complet sur l'utilisation des hooks avec des exemples et des modèles courants, voir le [guide Hooks](/fr/agent-sdk/hooks).2063Pour un guide complet sur l'utilisation des hooks avec des exemples et des modèles courants, voir le [guide Hooks](/fr/agent-sdk/hooks).

1843 2064 

1844### `HookEvent`2065<h3 id="hookevent">

2066 `HookEvent`

2067</h3>

1845 2068 

1846Types d'événements de hook supportés.2069Types d'événements de hook supportés.

1847 2070 


1864 Le SDK TypeScript supporte des événements de hook supplémentaires non encore disponibles en Python : `SessionStart`, `SessionEnd`, `Setup`, `TeammateIdle`, `TaskCompleted`, `ConfigChange`, `WorktreeCreate`, `WorktreeRemove`, `PostToolBatch` et `MessageDisplay`.2087 Le SDK TypeScript supporte des événements de hook supplémentaires non encore disponibles en Python : `SessionStart`, `SessionEnd`, `Setup`, `TeammateIdle`, `TaskCompleted`, `ConfigChange`, `WorktreeCreate`, `WorktreeRemove`, `PostToolBatch` et `MessageDisplay`.

1865</Note>2088</Note>

1866 2089 

1867### `HookCallback`2090<h3 id="hookcallback">

2091 `HookCallback`

2092</h3>

1868 2093 

1869Définition de type pour les fonctions de callback de hook.2094Définition de type pour les fonctions de callback de hook.

1870 2095 


1884* `systemMessage` : Message d'avertissement affiché à l'utilisateur2109* `systemMessage` : Message d'avertissement affiché à l'utilisateur

1885* `hookSpecificOutput` : Données de sortie spécifiques au hook2110* `hookSpecificOutput` : Données de sortie spécifiques au hook

1886 2111 

1887### `HookContext`2112<h3 id="hookcontext">

2113 `HookContext`

2114</h3>

1888 2115 

1889Informations de contexte passées aux callbacks de hook.2116Informations de contexte passées aux callbacks de hook.

1890 2117 


1893 signal: Any | None # Future: abort signal support2120 signal: Any | None # Future: abort signal support

1894```2121```

1895 2122 

1896### `HookMatcher`2123<h3 id="hookmatcher">

2124 `HookMatcher`

2125</h3>

1897 2126 

1898Configuration pour faire correspondre les hooks à des événements ou des outils spécifiques.2127Configuration pour faire correspondre les hooks à des événements ou des outils spécifiques.

1899 2128 


1911 )2140 )

1912```2141```

1913 2142 

1914### `HookInput`2143<h3 id="hookinput">

2144 `HookInput`

2145</h3>

1915 2146 

1916Type union de tous les types d'entrée de hook. Le type réel dépend du champ `hook_event_name`.2147Type union de tous les types d'entrée de hook. Le type réel dépend du champ `hook_event_name`.

1917 2148 


1930)2161)

1931```2162```

1932 2163 

1933### `BaseHookInput`2164<h3 id="basehookinput">

2165 `BaseHookInput`

2166</h3>

1934 2167 

1935Champs de base présents dans tous les types d'entrée de hook.2168Champs de base présents dans tous les types d'entrée de hook.

1936 2169 


1949| `cwd` | `str` | Répertoire de travail actuel |2182| `cwd` | `str` | Répertoire de travail actuel |

1950| `permission_mode` | `str` (optionnel) | Mode de permission actuel |2183| `permission_mode` | `str` (optionnel) | Mode de permission actuel |

1951 2184 

1952### `PreToolUseHookInput`2185<h3 id="pretoolusehookinput">

2186 `PreToolUseHookInput`

2187</h3>

1953 2188 

1954Données d'entrée pour les événements de hook `PreToolUse`.2189Données d'entrée pour les événements de hook `PreToolUse`.

1955 2190 


1972| `agent_id` | `str` (optionnel) | Identifiant de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |2207| `agent_id` | `str` (optionnel) | Identifiant de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |

1973| `agent_type` | `str` (optionnel) | Type de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |2208| `agent_type` | `str` (optionnel) | Type de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |

1974 2209 

1975### `PostToolUseHookInput`2210<h3 id="posttoolusehookinput">

2211 `PostToolUseHookInput`

2212</h3>

1976 2213 

1977Données d'entrée pour les événements de hook `PostToolUse`.2214Données d'entrée pour les événements de hook `PostToolUse`.

1978 2215 


1997| `agent_id` | `str` (optionnel) | Identifiant de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |2234| `agent_id` | `str` (optionnel) | Identifiant de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |

1998| `agent_type` | `str` (optionnel) | Type de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |2235| `agent_type` | `str` (optionnel) | Type de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |

1999 2236 

2000### `PostToolUseFailureHookInput`2237<h3 id="posttoolusefailurehookinput">

2238 `PostToolUseFailureHookInput`

2239</h3>

2001 2240 

2002Données d'entrée pour les événements de hook `PostToolUseFailure`. Appelé quand l'exécution d'un outil échoue.2241Données d'entrée pour les événements de hook `PostToolUseFailure`. Appelé quand l'exécution d'un outil échoue.

2003 2242 


2024| `agent_id` | `str` (optionnel) | Identifiant de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |2263| `agent_id` | `str` (optionnel) | Identifiant de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |

2025| `agent_type` | `str` (optionnel) | Type de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |2264| `agent_type` | `str` (optionnel) | Type de sous-agent, présent quand le hook se déclenche à l'intérieur d'un sous-agent |

2026 2265 

2027### `UserPromptSubmitHookInput`2266<h3 id="userpromptsubmithookinput">

2267 `UserPromptSubmitHookInput`

2268</h3>

2028 2269 

2029Données d'entrée pour les événements de hook `UserPromptSubmit`.2270Données d'entrée pour les événements de hook `UserPromptSubmit`.

2030 2271 


2039| `hook_event_name` | `Literal["UserPromptSubmit"]` | Toujours « UserPromptSubmit » |2280| `hook_event_name` | `Literal["UserPromptSubmit"]` | Toujours « UserPromptSubmit » |

2040| `prompt` | `str` | Le prompt soumis par l'utilisateur |2281| `prompt` | `str` | Le prompt soumis par l'utilisateur |

2041 2282 

2042### `StopHookInput`2283<h3 id="stophookinput">

2284 `StopHookInput`

2285</h3>

2043 2286 

2044Données d'entrée pour les événements de hook `Stop`.2287Données d'entrée pour les événements de hook `Stop`.

2045 2288 


2054| `hook_event_name` | `Literal["Stop"]` | Toujours « Stop » |2297| `hook_event_name` | `Literal["Stop"]` | Toujours « Stop » |

2055| `stop_hook_active` | `bool` | Si le hook d'arrêt est actif |2298| `stop_hook_active` | `bool` | Si le hook d'arrêt est actif |

2056 2299 

2057### `SubagentStopHookInput`2300<h3 id="subagentstophookinput">

2301 `SubagentStopHookInput`

2302</h3>

2058 2303 

2059Données d'entrée pour les événements de hook `SubagentStop`.2304Données d'entrée pour les événements de hook `SubagentStop`.

2060 2305 


2075| `agent_transcript_path` | `str` | Chemin vers le fichier de transcription du sous-agent |2320| `agent_transcript_path` | `str` | Chemin vers le fichier de transcription du sous-agent |

2076| `agent_type` | `str` | Type du sous-agent |2321| `agent_type` | `str` | Type du sous-agent |

2077 2322 

2078### `PreCompactHookInput`2323<h3 id="precompacthookinput">

2324 `PreCompactHookInput`

2325</h3>

2079 2326 

2080Données d'entrée pour les événements de hook `PreCompact`.2327Données d'entrée pour les événements de hook `PreCompact`.

2081 2328 


2092| `trigger` | `Literal["manual", "auto"]` | Ce qui a déclenché la compaction |2339| `trigger` | `Literal["manual", "auto"]` | Ce qui a déclenché la compaction |

2093| `custom_instructions` | `str \| None` | Instructions personnalisées pour la compaction |2340| `custom_instructions` | `str \| None` | Instructions personnalisées pour la compaction |

2094 2341 

2095### `NotificationHookInput`2342<h3 id="notificationhookinput">

2343 `NotificationHookInput`

2344</h3>

2096 2345 

2097Données d'entrée pour les événements de hook `Notification`.2346Données d'entrée pour les événements de hook `Notification`.

2098 2347 


2111| `title` | `str` (optionnel) | Titre de la notification |2360| `title` | `str` (optionnel) | Titre de la notification |

2112| `notification_type` | `str` | Type de notification |2361| `notification_type` | `str` | Type de notification |

2113 2362 

2114### `SubagentStartHookInput`2363<h3 id="subagentstarthookinput">

2364 `SubagentStartHookInput`

2365</h3>

2115 2366 

2116Données d'entrée pour les événements de hook `SubagentStart`.2367Données d'entrée pour les événements de hook `SubagentStart`.

2117 2368 


2128| `agent_id` | `str` | Identifiant unique pour le sous-agent |2379| `agent_id` | `str` | Identifiant unique pour le sous-agent |

2129| `agent_type` | `str` | Type du sous-agent |2380| `agent_type` | `str` | Type du sous-agent |

2130 2381 

2131### `PermissionRequestHookInput`2382<h3 id="permissionrequesthookinput">

2383 `PermissionRequestHookInput`

2384</h3>

2132 2385 

2133Données d'entrée pour les événements de hook `PermissionRequest`. Permet aux hooks de gérer les décisions de permission programmatiquement.2386Données d'entrée pour les événements de hook `PermissionRequest`. Permet aux hooks de gérer les décisions de permission programmatiquement.

2134 2387 


2147| `tool_input` | `dict[str, Any]` | Paramètres d'entrée pour l'outil |2400| `tool_input` | `dict[str, Any]` | Paramètres d'entrée pour l'outil |

2148| `permission_suggestions` | `list[Any]` (optionnel) | Mises à jour de permission suggérées du CLI |2401| `permission_suggestions` | `list[Any]` (optionnel) | Mises à jour de permission suggérées du CLI |

2149 2402 

2150### `HookJSONOutput`2403<h3 id="hookjsonoutput">

2404 `HookJSONOutput`

2405</h3>

2151 2406 

2152Type union pour les valeurs de retour de callback de hook.2407Type union pour les valeurs de retour de callback de hook.

2153 2408 


2155HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput2410HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput

2156```2411```

2157 2412 

2158#### `SyncHookJSONOutput`2413<h4 id="synchookjsonoutput">

2414 `SyncHookJSONOutput`

2415</h4>

2159 2416 

2160Sortie de hook synchrone avec champs de contrôle et de décision.2417Sortie de hook synchrone avec champs de contrôle et de décision.

2161 2418 


2179 Utilisez `continue_` (avec trait de soulignement) dans le code Python. Il est automatiquement converti en `continue` quand envoyé au CLI.2436 Utilisez `continue_` (avec trait de soulignement) dans le code Python. Il est automatiquement converti en `continue` quand envoyé au CLI.

2180</Note>2437</Note>

2181 2438 

2182#### `HookSpecificOutput`2439<h4 id="hookspecificoutput">

2440 `HookSpecificOutput`

2441</h4>

2183 2442 

2184Un `TypedDict` contenant le nom d'événement de hook et les champs spécifiques à l'événement. La forme dépend de la valeur `hookEventName`. Pour les détails complets sur les champs disponibles par événement de hook, voir [Contrôler l'exécution avec les hooks](/fr/agent-sdk/hooks#outputs).2443Un `TypedDict` contenant le nom d'événement de hook et les champs spécifiques à l'événement. La forme dépend de la valeur `hookEventName`. Pour les détails complets sur les champs disponibles par événement de hook, voir [Contrôler l'exécution avec les hooks](/fr/agent-sdk/hooks#outputs).

2185 2444 


2237)2496)

2238```2497```

2239 2498 

2240#### `AsyncHookJSONOutput`2499<h4 id="asynchookjsonoutput">

2500 `AsyncHookJSONOutput`

2501</h4>

2241 2502 

2242Sortie de hook asynchrone qui diffère l'exécution du hook.2503Sortie de hook asynchrone qui diffère l'exécution du hook.

2243 2504 


2251 Utilisez `async_` (avec trait de soulignement) dans le code Python. Il est automatiquement converti en `async` quand envoyé au CLI.2512 Utilisez `async_` (avec trait de soulignement) dans le code Python. Il est automatiquement converti en `async` quand envoyé au CLI.

2252</Note>2513</Note>

2253 2514 

2254### Exemple d'utilisation de hook2515<h3 id="hook-usage-example">

2516 Exemple d'utilisation de hook

2517</h3>

2255 2518 

2256Cet exemple enregistre deux hooks : l'un qui bloque les commandes bash dangereuses comme `rm -rf /`, et un autre qui enregistre toute l'utilisation d'outils pour l'audit. Le hook de sécurité s'exécute uniquement sur les commandes Bash (via le `matcher`), tandis que le hook de journalisation s'exécute sur tous les outils.2519Cet exemple enregistre deux hooks : l'un qui bloque les commandes bash dangereuses comme `rm -rf /`, et un autre qui enregistre toute l'utilisation d'outils pour l'audit. Le hook de sécurité s'exécute uniquement sur les commandes Bash (via le `matcher`), tandis que le hook de journalisation s'exécute sur tous les outils.

2257 2520 


2303 print(message)2566 print(message)

2304```2567```

2305 2568 

2306## Types d'entrée/sortie d'outil2569<h2 id="tool-input/output-types">

2570 Types d'entrée/sortie d'outil

2571</h2>

2307 2572 

2308Documentation des schémas d'entrée/sortie pour tous les outils Claude Code intégrés. Bien que le SDK Python n'exporte pas ceux-ci en tant que types, ils représentent la structure des entrées et sorties d'outils dans les messages.2573Documentation des schémas d'entrée/sortie pour tous les outils Claude Code intégrés. Bien que le SDK Python n'exporte pas ceux-ci en tant que types, ils représentent la structure des entrées et sorties d'outils dans les messages.

2309 2574 

2310### Agent2575<h3 id="agent">

2576 Agent

2577</h3>

2311 2578 

2312**Nom de l'outil :** `Agent` (précédemment `Task`, qui est toujours accepté comme alias)2579**Nom de l'outil :** `Agent` (précédemment `Task`, qui est toujours accepté comme alias)

2313 2580 


2332}2599}

2333```2600```

2334 2601 

2335### AskUserQuestion2602<h3 id="askuserquestion">

2603 AskUserQuestion

2604</h3>

2336 2605 

2337**Nom de l'outil :** `AskUserQuestion`2606**Nom de l'outil :** `AskUserQuestion`

2338 2607 


2378}2647}

2379```2648```

2380 2649 

2381### Bash2650<h3 id="bash">

2651 Bash

2652</h3>

2382 2653 

2383**Nom de l'outil :** `Bash`2654**Nom de l'outil :** `Bash`

2384 2655 


2404}2675}

2405```2676```

2406 2677 

2407### Monitor2678<h3 id="monitor">

2679 Monitor

2680</h3>

2408 2681 

2409**Nom de l'outil :** `Monitor`2682**Nom de l'outil :** `Monitor`

2410 2683 


2431}2704}

2432```2705```

2433 2706 

2434### Edit2707<h3 id="edit">

2708 Edit

2709</h3>

2435 2710 

2436**Nom de l'outil :** `Edit`2711**Nom de l'outil :** `Edit`

2437 2712 


2456}2731}

2457```2732```

2458 2733 

2459### Read2734<h3 id="read">

2735 Read

2736</h3>

2460 2737 

2461**Nom de l'outil :** `Read`2738**Nom de l'outil :** `Read`

2462 2739 


2490}2767}

2491```2768```

2492 2769 

2493### Write2770<h3 id="write">

2771 Write

2772</h3>

2494 2773 

2495**Nom de l'outil :** `Write`2774**Nom de l'outil :** `Write`

2496 2775 


2513}2792}

2514```2793```

2515 2794 

2516### Glob2795<h3 id="glob">

2796 Glob

2797</h3>

2517 2798 

2518**Nom de l'outil :** `Glob`2799**Nom de l'outil :** `Glob`

2519 2800 


2536}2817}

2537```2818```

2538 2819 

2539### Grep2820<h3 id="grep">

2821 Grep

2822</h3>

2540 2823 

2541**Nom de l'outil :** `Grep`2824**Nom de l'outil :** `Grep`

2542 2825 


2585}2868}

2586```2869```

2587 2870 

2588### NotebookEdit2871<h3 id="notebookedit">

2872 NotebookEdit

2873</h3>

2589 2874 

2590**Nom de l'outil :** `NotebookEdit`2875**Nom de l'outil :** `NotebookEdit`

2591 2876 


2612}2897}

2613```2898```

2614 2899 

2615### WebFetch2900<h3 id="webfetch">

2901 WebFetch

2902</h3>

2616 2903 

2617**Nom de l'outil :** `WebFetch`2904**Nom de l'outil :** `WebFetch`

2618 2905 


2638}2925}

2639```2926```

2640 2927 

2641### WebSearch2928<h3 id="websearch">

2929 WebSearch

2930</h3>

2642 2931 

2643**Nom de l'outil :** `WebSearch`2932**Nom de l'outil :** `WebSearch`

2644 2933 


2662}2951}

2663```2952```

2664 2953 

2665### TodoWrite2954<h3 id="todowrite">

2955 TodoWrite

2956</h3>

2666 2957 

2667**Nom de l'outil :** `TodoWrite`2958**Nom de l'outil :** `TodoWrite`

2668 2959 


2693}2984}

2694```2985```

2695 2986 

2696### TaskCreate2987<h3 id="taskcreate">

2988 TaskCreate

2989</h3>

2697 2990 

2698**Nom de l'outil :** `TaskCreate`2991**Nom de l'outil :** `TaskCreate`

2699 2992 


2716}3009}

2717```3010```

2718 3011 

2719### TaskUpdate3012<h3 id="taskupdate">

3013 TaskUpdate

3014</h3>

2720 3015 

2721**Nom de l'outil :** `TaskUpdate`3016**Nom de l'outil :** `TaskUpdate`

2722 3017 


2748}3043}

2749```3044```

2750 3045 

2751### TaskGet3046<h3 id="taskget">

3047 TaskGet

3048</h3>

2752 3049 

2753**Nom de l'outil :** `TaskGet`3050**Nom de l'outil :** `TaskGet`

2754 3051 


2775}3072}

2776```3073```

2777 3074 

2778### TaskList3075<h3 id="tasklist">

3076 TaskList

3077</h3>

2779 3078 

2780**Nom de l'outil :** `TaskList`3079**Nom de l'outil :** `TaskList`

2781 3080 


2801}3100}

2802```3101```

2803 3102 

2804### BashOutput3103<h3 id="bashoutput">

3104 BashOutput

3105</h3>

2805 3106 

2806**Nom de l'outil :** `BashOutput`3107**Nom de l'outil :** `BashOutput`

2807 3108 


2824}3125}

2825```3126```

2826 3127 

2827### KillBash3128<h3 id="killbash">

3129 KillBash

3130</h3>

2828 3131 

2829**Nom de l'outil :** `KillBash`3132**Nom de l'outil :** `KillBash`

2830 3133 


2845}3148}

2846```3149```

2847 3150 

2848### ExitPlanMode3151<h3 id="exitplanmode">

3152 ExitPlanMode

3153</h3>

2849 3154 

2850**Nom de l'outil :** `ExitPlanMode`3155**Nom de l'outil :** `ExitPlanMode`

2851 3156 


2866}3171}

2867```3172```

2868 3173 

2869### ListMcpResources3174<h3 id="listmcpresources">

3175 ListMcpResources

3176</h3>

2870 3177 

2871**Nom de l'outil :** `ListMcpResourcesTool`3178**Nom de l'outil :** `ListMcpResourcesTool`

2872 3179 


2895}3202}

2896```3203```

2897 3204 

2898### ReadMcpResource3205<h3 id="readmcpresource">

3206 ReadMcpResource

3207</h3>

2899 3208 

2900**Nom de l'outil :** `ReadMcpResourceTool`3209**Nom de l'outil :** `ReadMcpResourceTool`

2901 3210 


2919}3228}

2920```3229```

2921 3230 

2922## Fonctionnalités avancées avec ClaudeSDKClient3231<h2 id="advanced-features-with-claudesdkclient">

3232 Fonctionnalités avancées avec ClaudeSDKClient

3233</h2>

2923 3234 

2924### Construire une interface de conversation continue3235<h3 id="building-a-continuous-conversation-interface">

3236 Construire une interface de conversation continue

3237</h3>

2925 3238 

2926```python theme={null}3239```python theme={null}

2927from claude_agent_sdk import (3240from claude_agent_sdk import (


3000asyncio.run(main())3313asyncio.run(main())

3001```3314```

3002 3315 

3003### Utiliser les hooks pour la modification du comportement3316<h3 id="using-hooks-for-behavior-modification">

3317 Utiliser les hooks pour la modification du comportement

3318</h3>

3004 3319 

3005```python theme={null}3320```python theme={null}

3006from claude_agent_sdk import (3321from claude_agent_sdk import (


3084asyncio.run(main())3399asyncio.run(main())

3085```3400```

3086 3401 

3087### Surveillance de la progression en temps réel3402<h3 id="real-time-progress-monitoring">

3403 Surveillance de la progression en temps réel

3404</h3>

3088 3405 

3089```python theme={null}3406```python theme={null}

3090from claude_agent_sdk import (3407from claude_agent_sdk import (


3125asyncio.run(monitor_progress())3442asyncio.run(monitor_progress())

3126```3443```

3127 3444 

3128## Exemple d'utilisation3445<h2 id="example-usage">

3446 Exemple d'utilisation

3447</h2>

3129 3448 

3130### Opérations de fichiers de base (utilisant query)3449<h3 id="basic-file-operations-using-query">

3450 Opérations de fichiers de base (utilisant query)

3451</h3>

3131 3452 

3132```python theme={null}3453```python theme={null}

3133from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock3454from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock


3153asyncio.run(create_project())3474asyncio.run(create_project())

3154```3475```

3155 3476 

3156### Gestion des erreurs3477<h3 id="error-handling">

3478 Gestion des erreurs

3479</h3>

3157 3480 

3158```python theme={null}3481```python theme={null}

3159from claude_agent_sdk import query, CLINotFoundError, ProcessError, CLIJSONDecodeError3482from claude_agent_sdk import query, CLINotFoundError, ProcessError, CLIJSONDecodeError


3171 print(f"Failed to parse response: {e}")3494 print(f"Failed to parse response: {e}")

3172```3495```

3173 3496 

3174### Mode streaming avec client3497<h3 id="streaming-mode-with-client">

3498 Mode streaming avec client

3499</h3>

3175 3500 

3176```python theme={null}3501```python theme={null}

3177from claude_agent_sdk import ClaudeSDKClient3502from claude_agent_sdk import ClaudeSDKClient


3198asyncio.run(interactive_session())3523asyncio.run(interactive_session())

3199```3524```

3200 3525 

3201### Utiliser les outils personnalisés avec ClaudeSDKClient3526<h3 id="using-custom-tools-with-claudesdkclient">

3527 Utiliser les outils personnalisés avec ClaudeSDKClient

3528</h3>

3202 3529 

3203```python theme={null}3530```python theme={null}

3204from claude_agent_sdk import (3531from claude_agent_sdk import (


3270asyncio.run(main())3597asyncio.run(main())

3271```3598```

3272 3599 

3273## Configuration du sandbox3600<h2 id="sandbox-configuration">

3601 Configuration du sandbox

3602</h2>

3274 3603 

3275### `SandboxSettings`3604<h3 id="sandboxsettings">

3605 `SandboxSettings`

3606</h3>

3276 3607 

3277Configuration pour le comportement du sandbox. Utilisez ceci pour activer le sandboxing des commandes et configurer les restrictions réseau programmatiquement.3608Configuration pour le comportement du sandbox. Utilisez ceci pour activer le sandboxing des commandes et configurer les restrictions réseau programmatiquement.

3278 3609 


3303 Définissez `"failIfUnavailable": True` dans vos paramètres de sandbox pour arrêter à la place. La clé n'est pas encore déclarée sur `SandboxSettings`, mais le SDK la transmet à Claude Code, qui la respecte. `query()` rapporte alors un `ResultMessage` avec `subtype="error_during_execution"` et la raison dans `errors`. Surveillez ce sous-type plutôt que de vous attendre à ce que `query()` lève une exception avant de produire des messages.3634 Définissez `"failIfUnavailable": True` dans vos paramètres de sandbox pour arrêter à la place. La clé n'est pas encore déclarée sur `SandboxSettings`, mais le SDK la transmet à Claude Code, qui la respecte. `query()` rapporte alors un `ResultMessage` avec `subtype="error_during_execution"` et la raison dans `errors`. Surveillez ce sous-type plutôt que de vous attendre à ce que `query()` lève une exception avant de produire des messages.

3304</Note>3635</Note>

3305 3636 

3306#### Exemple d'utilisation3637<h4 id="example-usage-1">

3638 Exemple d'utilisation

3639</h4>

3307 3640 

3308```python theme={null}3641```python theme={null}

3309from claude_agent_sdk import query, ClaudeAgentOptions, SandboxSettings3642from claude_agent_sdk import query, ClaudeAgentOptions, SandboxSettings


3325 **Sécurité des sockets Unix** : L'option `allowUnixSockets` peut accorder l'accès à des services système puissants. Par exemple, permettre `/var/run/docker.sock` accorde effectivement un accès complet au système hôte via l'API Docker, contournant l'isolation du sandbox. Autorisez uniquement les sockets Unix strictement nécessaires et comprenez les implications de sécurité de chacun.3658 **Sécurité des sockets Unix** : L'option `allowUnixSockets` peut accorder l'accès à des services système puissants. Par exemple, permettre `/var/run/docker.sock` accorde effectivement un accès complet au système hôte via l'API Docker, contournant l'isolation du sandbox. Autorisez uniquement les sockets Unix strictement nécessaires et comprenez les implications de sécurité de chacun.

3326</Warning>3659</Warning>

3327 3660 

3328### `SandboxNetworkConfig`3661<h3 id="sandboxnetworkconfig">

3662 `SandboxNetworkConfig`

3663</h3>

3329 3664 

3330Configuration spécifique au réseau pour le mode sandbox. Ces paramètres s'appliquent aux commandes Bash en sandbox quand `enabled` est `True` dans le parent [`SandboxSettings`](#sandboxsettings). Ils ne restreignent pas l'outil WebFetch, qui utilise à la place des [règles de permission](/fr/permissions#webfetch).3665Configuration spécifique au réseau pour le mode sandbox. Ces paramètres s'appliquent aux commandes Bash en sandbox quand `enabled` est `True` dans le parent [`SandboxSettings`](#sandboxsettings). Ils ne restreignent pas l'outil WebFetch, qui utilise à la place des [règles de permission](/fr/permissions#webfetch).

3331 3666 


3358 Le proxy sandbox intégré applique la liste blanche réseau en fonction du nom d'hôte demandé et ne termine pas ou n'inspecte pas le trafic TLS, donc des techniques telles que le [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) peuvent potentiellement le contourner. Voir [Limitations de sécurité du sandboxing](/fr/sandboxing#security-limitations) pour les détails et [Déploiement sécurisé](/fr/agent-sdk/secure-deployment#traffic-forwarding) pour configurer un proxy qui termine TLS.3693 Le proxy sandbox intégré applique la liste blanche réseau en fonction du nom d'hôte demandé et ne termine pas ou n'inspecte pas le trafic TLS, donc des techniques telles que le [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) peuvent potentiellement le contourner. Voir [Limitations de sécurité du sandboxing](/fr/sandboxing#security-limitations) pour les détails et [Déploiement sécurisé](/fr/agent-sdk/secure-deployment#traffic-forwarding) pour configurer un proxy qui termine TLS.

3359</Note>3694</Note>

3360 3695 

3361### `SandboxIgnoreViolations`3696<h3 id="sandboxignoreviolations">

3697 `SandboxIgnoreViolations`

3698</h3>

3362 3699 

3363Configuration pour ignorer les violations de sandbox spécifiques.3700Configuration pour ignorer les violations de sandbox spécifiques.

3364 3701 


3373| `file` | `list[str]` | `[]` | Modèles de chemin de fichier pour ignorer les violations |3710| `file` | `list[str]` | `[]` | Modèles de chemin de fichier pour ignorer les violations |

3374| `network` | `list[str]` | `[]` | Modèles réseau pour ignorer les violations |3711| `network` | `list[str]` | `[]` | Modèles réseau pour ignorer les violations |

3375 3712 

3376### Fallback de permissions pour les commandes sans sandbox3713<h3 id="permissions-fallback-for-unsandboxed-commands">

3714 Fallback de permissions pour les commandes sans sandbox

3715</h3>

3377 3716 

3378Quand `allowUnsandboxedCommands` est activé, le modèle peut demander l'exécution de commandes en dehors du sandbox en définissant `dangerouslyDisableSandbox: True` dans l'entrée d'outil. Ces requêtes reviennent au système de permissions existant, ce qui signifie que votre gestionnaire `can_use_tool` sera invoqué, vous permettant d'implémenter une logique d'autorisation personnalisée.3717Quand `allowUnsandboxedCommands` est activé, le modèle peut demander l'exécution de commandes en dehors du sandbox en définissant `dangerouslyDisableSandbox: True` dans l'entrée d'outil. Ces requêtes reviennent au système de permissions existant, ce qui signifie que votre gestionnaire `can_use_tool` sera invoqué, vous permettant d'implémenter une logique d'autorisation personnalisée.

3379 3718 


3451 Si `permission_mode` est défini sur `bypassPermissions` et `allow_unsandboxed_commands` est activé, le modèle peut exécuter de manière autonome des commandes en dehors du sandbox sans aucun prompt d'approbation. Cette combinaison permet effectivement au modèle d'échapper à l'isolation du sandbox silencieusement.3790 Si `permission_mode` est défini sur `bypassPermissions` et `allow_unsandboxed_commands` est activé, le modèle peut exécuter de manière autonome des commandes en dehors du sandbox sans aucun prompt d'approbation. Cette combinaison permet effectivement au modèle d'échapper à l'isolation du sandbox silencieusement.

3452</Warning>3791</Warning>

3453 3792 

3454## Voir aussi3793<h2 id="see-also">

3794 Voir aussi

3795</h2>

3455 3796 

3456* [Vue d'ensemble du SDK](/fr/agent-sdk/overview) - Concepts généraux du SDK3797* [Vue d'ensemble du SDK](/fr/agent-sdk/overview) - Concepts généraux du SDK

3457* [Référence du SDK TypeScript](/fr/agent-sdk/typescript) - Documentation du SDK TypeScript3798* [Référence du SDK TypeScript](/fr/agent-sdk/typescript) - Documentation du SDK TypeScript

Details

244C'est ce qui rend le SDK Agent différent : Claude exécute les outils directement au lieu de vous demander de les implémenter.244C'est ce qui rend le SDK Agent différent : Claude exécute les outils directement au lieu de vous demander de les implémenter.

245 245 

246<Note>246<Note>

247 Si vous voyez « API key not found », assurez-vous d'avoir défini la variable d'environnement `ANTHROPIC_API_KEY` dans votre fichier `.env` ou votre environnement shell. Consultez le [guide de dépannage complet](/fr/troubleshooting) pour plus d'aide.247 Si vous voyez ' API key not found ', assurez-vous d'avoir défini la variable d'environnement `ANTHROPIC_API_KEY` dans votre fichier `.env` ou votre environnement shell. Consultez le [guide de dépannage complet](/fr/troubleshooting) pour plus d'aide.

248</Note>248</Note>

249 249 

250<h3 id="try-other-prompts">250<h3 id="try-other-prompts">


340**Les modes de permission** contrôlent le niveau de surveillance humaine que vous souhaitez :340**Les modes de permission** contrôlent le niveau de surveillance humaine que vous souhaitez :

341 341 

342| Mode | Comportement | Cas d'usage |342| Mode | Comportement | Cas d'usage |

343| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- |343| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- |

344| `acceptEdits` | Approuve automatiquement les modifications de fichiers et les commandes courantes du système de fichiers, demande les autres actions | Flux de travail de développement de confiance |344| `acceptEdits` | Approuve automatiquement les modifications de fichiers et les commandes courantes du système de fichiers, demande les autres actions | Flux de travail de développement de confiance |

345| `dontAsk` | Refuse tout ce qui n'est pas dans `allowedTools` | Agents sans tête verrouillés |345| `dontAsk` | Refuse tout ce qui n'est pas dans `allowedTools` | Agents sans tête verrouillés |

346| `auto` (TypeScript uniquement) | Un classificateur de modèle approuve ou refuse chaque appel d'outil | Agents autonomes avec garde-fous de sécurité |346| `auto` (TypeScript uniquement) | Un classificateur de modèle approuve ou refuse chaque appel d'outil | Agents autonomes avec garde-fous de sécurité |

347| `bypassPermissions` | Exécute chaque outil sans invites | CI en bac à sable, environnements entièrement de confiance |347| `bypassPermissions` | Exécute chaque outil sans invites, sauf si une règle [`ask`](/fr/agent-sdk/permissions#how-permissions-are-evaluated) explicite correspond | CI en bac à sable, environnements entièrement de confiance |

348| `default` | Nécessite un rappel `canUseTool` pour gérer l'approbation | Flux d'approbation personnalisés |348| `default` | Nécessite un rappel `canUseTool` pour gérer l'approbation | Flux d'approbation personnalisés |

349 349 

350L'exemple ci-dessus utilise le mode `acceptEdits`, qui approuve automatiquement les opérations de fichiers afin que l'agent puisse s'exécuter sans invites interactives. Si vous souhaitez inviter les utilisateurs à approuver, utilisez le mode `default` et fournissez un rappel [`canUseTool`](/fr/agent-sdk/user-input) qui collecte l'entrée de l'utilisateur. Pour plus de contrôle, consultez [Permissions](/fr/agent-sdk/permissions).350L'exemple ci-dessus utilise le mode `acceptEdits`, qui approuve automatiquement les opérations de fichiers afin que l'agent puisse s'exécuter sans invites interactives. Si vous souhaitez inviter les utilisateurs à approuver, utilisez le mode `default` et fournissez un rappel [`canUseTool`](/fr/agent-sdk/user-input) qui collecte l'entrée de l'utilisateur. Pour plus de contrôle, consultez [Permissions](/fr/agent-sdk/permissions).

Details

150 ```150 ```

151</CodeGroup>151</CodeGroup>

152 152 

153La deuxième requête affiche un résumé des fichiers de la première requête, ce qui montre que l'agent a repris avec le contexte complet du magasin.

154 

153<h2 id="write-your-own-adapter">155<h2 id="write-your-own-adapter">

154 Écrivez votre propre adaptateur156 Écrivez votre propre adaptateur

155</h2>157</h2>

Details

210Passez un ID de session à `resume` pour revenir à cette session spécifique. L'agent reprend avec le contexte complet d'où la session s'est arrêtée. Les raisons courantes de reprendre :210Passez un ID de session à `resume` pour revenir à cette session spécifique. L'agent reprend avec le contexte complet d'où la session s'est arrêtée. Les raisons courantes de reprendre :

211 211 

212* **Faire un suivi sur une tâche terminée.** L'agent a déjà analysé quelque chose ; maintenant vous voulez qu'il agisse sur cette analyse sans relire les fichiers.212* **Faire un suivi sur une tâche terminée.** L'agent a déjà analysé quelque chose ; maintenant vous voulez qu'il agisse sur cette analyse sans relire les fichiers.

213* **Récupérer d'une limite.** La première exécution s'est terminée avec `error_max_turns` ou `error_max_budget_usd` (voir [Handle the result](/fr/agent-sdk/agent-loop#handle-the-result)) ; reprenez avec une limite plus élevée.213* **Récupérer d'une limite.** La première exécution s'est terminée avec `error_max_turns` ou `error_max_budget_usd` (voir [Gérer le résultat](/fr/agent-sdk/agent-loop#handle-the-result)) ; reprenez avec une limite plus élevée.

214* **Redémarrer votre processus.** Vous avez capturé l'ID avant l'arrêt et voulez restaurer la conversation.214* **Redémarrer votre processus.** Vous avez capturé l'ID avant l'arrêt et voulez restaurer la conversation.

215 215 

216Cet exemple reprend la session de [Capturer l'ID de session](#capture-the-session-id) avec un prompt de suivi. Parce que vous reprenez, l'agent a déjà l'analyse antérieure en contexte :216Cet exemple reprend la session de [Capturer l'ID de session](#capture-the-session-id) avec un prompt de suivi. Parce que vous reprenez, l'agent a déjà l'analyse antérieure en contexte :


230 ```230 ```

231 231 

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

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

234 

235 const sessionId = "..."; // The ID you captured in the previous example

236 

233 // Earlier session analyzed the code; now build on that analysis237 // Earlier session analyzed the code; now build on that analysis

234 for await (const message of query({238 for await (const message of query({

235 prompt: "Now implement the refactoring you suggested",239 prompt: "Now implement the refactoring you suggested",


245 ```249 ```

246</CodeGroup>250</CodeGroup>

247 251 

252Vous devriez voir une réponse qui s'appuie sur l'analyse antérieure au lieu de recommencer à zéro. Cela confirme que l'agent a repris la session avec son contexte antérieur intact.

253 

248<Tip>254<Tip>

249 Si un appel `resume` retourne une session nouvelle au lieu de l'historique attendu, la cause la plus courante est un `cwd` non correspondant. Les sessions sont stockées sous `~/.claude/projects/<encoded-cwd>/*.jsonl`, où `<encoded-cwd>` est le répertoire de travail absolu avec chaque caractère non alphanumérique remplacé par `-` (donc `/Users/me/proj` devient `-Users-me-proj`). Si votre appel resume s'exécute à partir d'un répertoire différent, le SDK cherche au mauvais endroit. Le fichier de session doit également exister sur la machine actuelle.255 Si un appel `resume` retourne une session nouvelle au lieu de l'historique attendu, la cause la plus courante est un `cwd` non correspondant. Les sessions sont stockées sous `~/.claude/projects/<encoded-cwd>/*.jsonl`, ou sous `$CLAUDE_CONFIG_DIR/projects/<encoded-cwd>/*.jsonl` si vous définissez la variable d'environnement `CLAUDE_CONFIG_DIR`, où `<encoded-cwd>` est le répertoire de travail absolu avec chaque caractère non alphanumérique remplacé par `-` (donc `/Users/me/proj` devient `-Users-me-proj`). Si votre appel resume s'exécute à partir d'un répertoire différent, le SDK cherche au mauvais endroit. Le fichier de session doit également exister sur la machine actuelle.

250</Tip>256</Tip>

251 257 

252Pour reprendre les sessions sur plusieurs machines ou dans des environnements sans serveur, mettez en miroir les transcriptions vers un stockage partagé avec un adaptateur [`SessionStore`](/fr/agent-sdk/session-storage).258Pour reprendre les sessions sur plusieurs machines ou dans des environnements sans serveur, mettez en miroir les transcriptions vers un stockage partagé avec un adaptateur [`SessionStore`](/fr/agent-sdk/session-storage).


268 # Fork: branch from session_id into a new session274 # Fork: branch from session_id into a new session

269 forked_id = None275 forked_id = None

270 async for message in query(276 async for message in query(

271 prompt="Instead of JWT, implement OAuth2 for the auth module",277 prompt="Instead of JWT, outline how OAuth2 would work for the auth module",

272 options=ClaudeAgentOptions(278 options=ClaudeAgentOptions(

273 resume=session_id,279 resume=session_id,

274 fork_session=True,280 fork_session=True,

281 max_turns=5,

275 ),282 ),

276 ):283 ):

277 if isinstance(message, ResultMessage):284 if isinstance(message, ResultMessage):


291 ```298 ```

292 299 

293 ```typescript TypeScript theme={null}300 ```typescript TypeScript theme={null}

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

302 

303 const sessionId = "..."; // The ID you captured in the previous example

304 

294 // Fork: branch from sessionId into a new session305 // Fork: branch from sessionId into a new session

295 let forkedId: string | undefined;306 let forkedId: string | undefined;

296 307 

297 for await (const message of query({308 for await (const message of query({

298 prompt: "Instead of JWT, implement OAuth2 for the auth module",309 prompt: "Instead of JWT, outline how OAuth2 would work for the auth module",

299 options: {310 options: {

300 resume: sessionId,311 resume: sessionId,

301 forkSession: true312 forkSession: true,

313 maxTurns: 5

302 }314 }

303 })) {315 })) {

304 if (message.type === "system" && message.subtype === "init") {316 if (message.type === "system" && message.subtype === "init") {


323 ```335 ```

324</CodeGroup>336</CodeGroup>

325 337 

338Vous devriez voir que `forkedId` diffère de l'ID de session original. Reprendre la session originale continue toujours le fil JWT, ce qui confirme que la bifurcation n'a pas modifié l'historique original.

339 

326<h2 id="resume-across-hosts">340<h2 id="resume-across-hosts">

327 Reprendre sur plusieurs hôtes341 Reprendre sur plusieurs hôtes

328</h2>342</h2>

Details

101 parent_tool_use_id: string | null;101 parent_tool_use_id: string | null;

102 uuid: UUID;102 uuid: UUID;

103 session_id: string;103 session_id: string;

104 ttft_ms?: number; // Time to first token in ms, present only on message_start events

104 };105 };

105 ```106 ```

106</CodeGroup>107</CodeGroup>

Details

218 ```218 ```

219</CodeGroup>219</CodeGroup>

220 220 

221<Note>

222 Dans le SDK TypeScript, si votre générateur de messages lève une exception, par exemple lorsqu'un fichier qu'il lit est manquant, le flux se termine par une erreur qui lit « Claude Code process aborted by user » au lieu de l'erreur d'origine, donc vérifiez d'abord le code à l'intérieur de votre générateur lorsque vous voyez ce message. L'erreur peut également être précédée par une longue ligne minifiée du code source du SDK groupé, donc lisez jusqu'à la fin de la sortie pour le texte d'erreur.

223 

224 Dans le SDK Python, une exception du générateur est enregistrée au niveau du débogage et la session s'arrête sans lever, donc si une session de streaming se bloque sans sortie, activez la journalisation du débogage et vérifiez votre générateur.

225</Note>

226 

221<h2 id="single-message-input">227<h2 id="single-message-input">

222 Entrée de message unique228 Entrée de message unique

223</h2>229</h2>


247 * Les conversations multi-tours naturelles253 * Les conversations multi-tours naturelles

248</Warning>254</Warning>

249 255 

250<h3 id="implementation-example">256Si une requête se termine par un résultat d'erreur, tel que `error_max_turns`, un appel unique `query()` lève une erreur qui inclut le texte d'échec après avoir cédé le message de résultat final, donc enveloppez la boucle dans un bloc try si votre code doit continuer. Consultez [Gérer le résultat](/fr/agent-sdk/agent-loop#handle-the-result) pour les sous-types de résultat.

257 

258<h3 id="implementation-example-1">

251 Exemple d'implémentation259 Exemple d'implémentation

252</h3>260</h3>

253 261 

Details

98 import asyncio98 import asyncio

99 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage99 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

100 100 

101 # Définir la forme des données que vous souhaitez récupérer101 // Définir la forme des données que vous souhaitez récupérer

102 schema = {102 schema = {

103 "type": "object",103 "type": "object",

104 "properties": {104 "properties": {


117 output_format={"type": "json_schema", "schema": schema}117 output_format={"type": "json_schema", "schema": schema}

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 isinstance(message, ResultMessage) and message.structured_output:

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

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

124 124 

125 125 

126 asyncio.run(main())126 asyncio.run(main())


245* `type` : Défini sur `"json_schema"` pour les sorties structurées245* `type` : Défini sur `"json_schema"` pour les sorties structurées

246* `schema` : Un objet [JSON Schema](https://json-schema.org/understanding-json-schema/about) définissant votre structure de sortie. Vous pouvez générer ceci à partir d'un schéma Zod avec `z.toJSONSchema()` ou d'un modèle Pydantic avec `.model_json_schema()`246* `schema` : Un objet [JSON Schema](https://json-schema.org/understanding-json-schema/about) définissant votre structure de sortie. Vous pouvez générer ceci à partir d'un schéma Zod avec `z.toJSONSchema()` ou d'un modèle Pydantic avec `.model_json_schema()`

247 247 

248Le SDK supporte les fonctionnalités JSON Schema standard incluant tous les types de base (object, array, string, number, boolean, null), `enum`, `const`, `required`, les objets imbriqués et les définitions `$ref`. Pour la liste complète des fonctionnalités supportées et des limitations, voir [Limitations JSON Schema](https://platform.claude.com/docs/en/build-with-claude/structured-outputs#json-schema-limitations).248Le SDK supporte les fonctionnalités JSON Schema standard incluant tous les types de base (object, array, string, number, boolean, null), `enum`, `const`, `required`, les objets imbriqués et les définitions `$ref`. Pour la liste complète des fonctionnalités supportées et des limitations, voir [Limitations JSON Schema](https://platform.claude.com/docs/fr/build-with-claude/structured-outputs#json-schema-limitations).

249 249 

250<h2 id="example-todo-tracking-agent">250<h2 id="example-todo-tracking-agent">

251 Exemple : agent de suivi des TODO251 Exemple : agent de suivi des TODO


358 Gestion des erreurs358 Gestion des erreurs

359</h2>359</h2>

360 360 

361La 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.361La 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 [repli de modèle](/fr/model-config#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 le champ `errors` du message de résultat pour distinguer les deux causes avant de déboguer votre schéma.

362 362 

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

364 364 

365| Subtype | Signification |365| Subtype | Signification |

366| ------------------------------------- | ------------------------------------------------------------------------ |366| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |

367| `success` | La sortie a été générée et validée avec succès |367| `success` | La sortie a été générée et validée avec succès |

368| `error_max_structured_output_retries` | L'agent n'a pas pu produire une sortie valide après plusieurs tentatives |368| `error_max_structured_output_retries` | Aucune sortie valide n'a survécu après plusieurs tentatives (erreurs de validation, ou une rétraction de repli de modèle sans nouvelle tentative réussie) |

369 369 

370L'exemple ci-dessous vérifie le champ `subtype` pour déterminer si la sortie a été générée avec succès ou si vous devez gérer un échec :370L'exemple ci-dessous vérifie le champ `subtype` pour déterminer si la sortie a été générée avec succès ou si vous devez gérer un échec :

371 371 

Details

41 Parallélisation41 Parallélisation

42</h3>42</h3>

43 43 

44Plusieurs sous-agents peuvent s'exécuter simultanément, accélérant considérablement les flux de travail complexes.44Plusieurs sous-agents peuvent s'exécuter simultanément, de sorte que les sous-tâches indépendantes se terminent dans le temps du plus lent plutôt que la somme de tous.

45 45 

46**Exemple :** lors d'une révision de code, vous pouvez exécuter les sous-agents `style-checker`, `security-scanner` et `test-coverage` simultanément, réduisant le temps de révision de minutes à secondes.46**Exemple :** lors d'une révision de code, vous pouvez exécuter les sous-agents `style-checker`, `security-scanner` et `test-coverage` simultanément au lieu de séquentiellement.

47 47 

48<h3 id="specialized-instructions-and-knowledge">48<h3 id="specialized-instructions-and-knowledge">

49 Instructions et connaissances spécialisées49 Instructions et connaissances spécialisées


178</h3>178</h3>

179 179 

180| Champ | Type | Requis | Description |180| Champ | Type | Requis | Description |

181| :---------------- | :---------------------------------------------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |181| :---------------- | :---------------------------------------------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

182| `description` | `string` | Oui | Description en langage naturel de quand utiliser cet agent |182| `description` | `string` | Oui | Description en langage naturel de quand utiliser cet agent |

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

184| `tools` | `string[]` | Non | Tableau des noms d'outils autorisés. S'il est omis, hérite de tous les outils |184| `tools` | `string[]` | Non | Tableau des noms d'outils autorisés. S'il est omis, hérite de tous les outils |

185| `disallowedTools` | `string[]` | Non | Tableau des noms d'outils à supprimer de l'ensemble d'outils de l'agent |185| `disallowedTools` | `string[]` | Non | Tableau des noms d'outils à supprimer de l'ensemble d'outils de l'agent. Les modèles au niveau du serveur MCP sont également acceptés : `mcp__server` ou `mcp__server__*` supprime tous les outils de ce serveur, et `mcp__*` supprime tous les outils MCP de n'importe quel serveur |

186| `model` | `string` | Non | Remplacement du modèle pour cet agent. Accepte un alias tel que `'sonnet'`, `'opus'`, `'haiku'`, `'inherit'`, ou un ID de modèle complet. Par défaut le modèle principal s'il est omis |186| `model` | `string` | Non | Remplacement du modèle pour cet agent. Accepte un alias tel que `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, ou un ID de modèle complet. Par défaut le modèle principal s'il est omis |

187| `skills` | `string[]` | Non | Liste des noms de compétences à précharger dans le contexte de l'agent au démarrage. Les compétences non listées restent invocables via l'outil Skill |187| `skills` | `string[]` | Non | Liste des noms de compétences à précharger dans le contexte de l'agent au démarrage. Les compétences non listées restent invocables via l'outil Skill |

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

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

190| `initialPrompt` | `string` | Non | Soumis automatiquement comme premier tour utilisateur lorsque cet agent s'exécute en tant qu'agent de thread principal. Ignoré lorsque l'agent est invoqué en tant que sous-agent |

190| `maxTurns` | `number` | Non | Nombre maximum de tours d'agent avant que l'agent s'arrête |191| `maxTurns` | `number` | Non | Nombre maximum de tours d'agent avant que l'agent s'arrête |

191| `background` | `boolean` | Non | Exécuter cet agent comme une tâche de fond non bloquante lorsqu'il est invoqué |192| `background` | `boolean` | Non | Exécuter cet agent comme une tâche de fond non bloquante lorsqu'il est invoqué |

192| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | Non | Niveau d'effort de raisonnement pour cet agent |193| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | Non | Niveau d'effort de raisonnement pour cet agent |


195Dans le SDK Python, ces noms de champs utilisent camelCase pour correspondre au format de transmission. Voir la référence [`AgentDefinition`](/fr/agent-sdk/python#agentdefinition) pour plus de détails.196Dans le SDK Python, ces noms de champs utilisent camelCase pour correspondre au format de transmission. Voir la référence [`AgentDefinition`](/fr/agent-sdk/python#agentdefinition) pour plus de détails.

196 197 

197<Note>198<Note>

198 Les sous-agents ne peuvent pas créer leurs propres sous-agents. N'incluez pas `Agent` dans le tableau `tools` d'un sous-agent.199 {/* min-version: 2.1.172 */}À partir de Claude Code v2.1.172, les sous-agents peuvent créer leurs propres sous-agents. Un sous-agent de fond cinq niveaux en dessous de l'agent principal ne peut pas créer d'autres sous-agents ; les sous-agents de premier plan peuvent créer à n'importe quelle profondeur. Pour empêcher un sous-agent de créer d'autres agents, omettez `Agent` de son tableau `tools` ou ajoutez-le à `disallowedTools`. Voir [sous-agents imbriqués](/fr/sub-agents#spawn-nested-subagents) pour les règles de profondeur complètes.

199</Note>200</Note>

200 201 

201<h3 id="filesystem-based-definition-alternative">202<h3 id="filesystem-based-definition-alternative">


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

216 217 

217| Le sous-agent reçoit | Le sous-agent ne reçoit pas |218| Le sous-agent reçoit | Le sous-agent ne reçoit pas |

218| :------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- |219| :----------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- |

219| Sa propre invite système (`AgentDefinition.prompt`) et l'invite de l'outil Agent | L'historique de conversation du parent ou les résultats des outils |220| Sa propre invite système (`AgentDefinition.prompt`) et l'invite de l'outil Agent | L'historique de conversation du parent ou les résultats des outils |

220| Le CLAUDE.md du projet (chargé via `settingSources`) | Le contenu des compétences préchargées, sauf s'il est listé dans `AgentDefinition.skills` |221| Le CLAUDE.md du projet (chargé via [`settingSources`](/fr/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources)) | Le contenu des compétences préchargées, sauf s'il est listé dans `AgentDefinition.skills` |

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

222 223 

223<Note>224<Note>


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

337</Note>338</Note>

338 339 

339Cet exemple itère à travers les messages en continu, enregistrant quand un sous-agent est invoqué et quand les messages suivants proviennent du contexte d'exécution de ce sous-agent.340La structure du message diffère entre les SDK. En Python, les blocs de contenu sont accessibles directement via `message.content`. En TypeScript, `SDKAssistantMessage` enveloppe le message de l'API Claude, donc le contenu est accessible via `message.message.content`.

340 341 

341<Note>342Cet exemple itère à travers les messages en continu, enregistrant quand un sous-agent est invoqué et quand les messages suivants proviennent du contexte d'exécution de ce sous-agent.

342 La structure du message diffère entre les SDK. En Python, les blocs de contenu sont accessibles directement via `message.content`. En TypeScript, `SDKAssistantMessage` enveloppe le message de l'API Claude, donc le contenu est accessible via `message.message.content`.

343</Note>

344 343 

345<CodeGroup>344<CodeGroup>

346 ```python Python theme={null}345 ```python Python theme={null}


427 426 

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

429 428 

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

431 430 

4321. **Capturez l'ID de session** : Extrayez `session_id` des messages lors de la première requête4311. **Capturez l'ID de session** : Extrayez `session_id` des messages lors de la première requête

4332. **Extrayez l'ID d'agent** : Analysez `agentId` du contenu du message4322. **Extrayez l'ID d'agent** : Analysez `agentId` du texte du résultat de l'outil Agent

4343. **Reprenez la session** : Passez `resume: sessionId` dans les options de la deuxième requête, et incluez l'ID d'agent dans votre invite4333. **Reprenez la session** : Passez `resume: sessionId` dans les options de la deuxième requête, et incluez l'ID d'agent dans votre invite

435 434 

436<Note>435<Note>

437 Vous devez reprendre la même session pour accéder à la transcription du sous-agent. Chaque appel `query()` démarre une nouvelle session par défaut, donc passez `resume: sessionId` pour continuer dans la même session.436 Vous devez reprendre la même session pour accéder à la transcription du sous-agent. Chaque appel `query()` démarre une nouvelle session par défaut, donc passez `resume: sessionId` pour continuer dans la même session.

438 437 

439 Si vous utilisez un agent personnalisé (pas un agent intégré), vous devez également transmettre la même définition d'agent dans le paramètre `agents` pour les deux requêtes.438 Lorsque vous utilisez un agent personnalisé, passez la même définition d'agent dans le paramètre `agents` pour les deux requêtes.

440</Note>439</Note>

441 440 

442L'exemple ci-dessous démontre ce flux : la première requête exécute un sous-agent et capture l'ID de session et l'ID d'agent, puis la deuxième requête reprend la session pour poser une question de suivi qui nécessite le contexte de la première analyse.441L'exemple ci-dessous définit un agent personnalisé `endpoint-finder`. La première requête l'exécute et capture l'ID de session et l'ID d'agent du résultat de l'outil Agent, puis la deuxième requête reprend la session pour poser une question de suivi qui nécessite le contexte de la première analyse.

443 442 

444<CodeGroup>443<CodeGroup>

445 ```typescript TypeScript theme={null}

446 import { query, type SDKMessage } from "@anthropic-ai/claude-agent-sdk";

447 

448 // Helper to extract agentId from message content

449 // Stringify to avoid traversing different block types (TextBlock, ToolResultBlock, etc.)

450 function extractAgentId(message: SDKMessage): string | undefined {

451 if (message.type !== "assistant" && message.type !== "user") return undefined;

452 // Stringify the content so we can search it without traversing nested blocks

453 const content = JSON.stringify(message.message.content);

454 const match = content.match(/agentId:\s*([a-f0-9-]+)/);

455 return match?.[1];

456 }

457 

458 let agentId: string | undefined;

459 let sessionId: string | undefined;

460 

461 // First invocation - use the Explore agent to find API endpoints

462 for await (const message of query({

463 prompt: "Use the Explore agent to find all API endpoints in this codebase",

464 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"] }

465 })) {

466 // Capture session_id from ResultMessage (needed to resume this session)

467 if ("session_id" in message) sessionId = message.session_id;

468 // Search message content for the agentId (appears in Agent tool results)

469 const extractedId = extractAgentId(message);

470 if (extractedId) agentId = extractedId;

471 // Print the final result

472 if ("result" in message) console.log(message.result);

473 }

474 

475 // Second invocation - resume and ask follow-up

476 if (agentId && sessionId) {

477 for await (const message of query({

478 prompt: `Resume agent ${agentId} and list the top 3 most complex endpoints`,

479 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], resume: sessionId }

480 })) {

481 if ("result" in message) console.log(message.result);

482 }

483 }

484 ```

485 

486 ```python Python theme={null}444 ```python Python theme={null}

487 import asyncio445 import asyncio

488 import json

489 import re446 import re

490 from claude_agent_sdk import query, ClaudeAgentOptions447 from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition, ToolResultBlock

448 

449 AGENTS = {

450 "endpoint-finder": AgentDefinition(

451 description="Locates and catalogs API endpoints in a codebase.",

452 prompt="You find and document API endpoints. Report each endpoint's path, method, and handler.",

453 tools=["Read", "Grep", "Glob"],

454 )

455 }

491 456 

492 457 

493 def extract_agent_id(text: str) -> str | None:458 def extract_agent_id(block: ToolResultBlock) -> str | None:

494 """Extract agentId from Agent tool result text."""459 """Extract agentId from an Agent tool result's text content."""

495 match = re.search(r"agentId:\s*([a-f0-9-]+)", text)460 parts = block.content if isinstance(block.content, list) else [{"text": block.content}]

496 return match.group(1) if match else None461 for part in parts:

462 if match := re.search(r"agentId:\s*([\w-]+)", part.get("text") or ""):

463 return match.group(1)

464 return None

497 465 

498 466 

499 async def main():467 async def main():

500 agent_id = None468 agent_id = None

501 session_id = None469 session_id = None

502 470 

503 # First invocation - use the Explore agent to find API endpoints471 # First invocation - run the endpoint-finder subagent

504 async for message in query(472 async for message in query(

505 prompt="Use the Explore agent to find all API endpoints in this codebase",473 prompt="Use the endpoint-finder agent to find all API endpoints in this codebase",

506 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"]),474 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS),

507 ):475 ):

508 # Capture session_id from ResultMessage (needed to resume this session)476 # Capture session_id from ResultMessage (needed to resume this session)

509 if hasattr(message, "session_id"):477 if hasattr(message, "session_id"):

510 session_id = message.session_id478 session_id = message.session_id

511 # Search message content for the agentId (appears in Agent tool results)479 # Search tool results for the agentId trailer

512 if hasattr(message, "content"):480 for block in getattr(message, "content", None) or []:

513 # Stringify the content so we can search it without traversing nested blocks481 if isinstance(block, ToolResultBlock):

514 content_str = json.dumps(message.content, default=str)482 agent_id = extract_agent_id(block) or agent_id

515 extracted = extract_agent_id(content_str)

516 if extracted:

517 agent_id = extracted

518 # Print the final result483 # Print the final result

519 if hasattr(message, "result"):484 if hasattr(message, "result"):

520 print(message.result)485 print(message.result)


524 async for message in query(489 async for message in query(

525 prompt=f"Resume agent {agent_id} and list the top 3 most complex endpoints",490 prompt=f"Resume agent {agent_id} and list the top 3 most complex endpoints",

526 options=ClaudeAgentOptions(491 options=ClaudeAgentOptions(

527 allowed_tools=["Read", "Grep", "Glob", "Agent"], resume=session_id492 allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS, resume=session_id

528 ),493 ),

529 ):494 ):

530 if hasattr(message, "result"):495 if hasattr(message, "result"):


533 498 

534 asyncio.run(main())499 asyncio.run(main())

535 ```500 ```

501 

502 ```typescript TypeScript theme={null}

503 import { query, type SDKMessage } from "@anthropic-ai/claude-agent-sdk";

504 

505 const agents = {

506 "endpoint-finder": {

507 description: "Locates and catalogs API endpoints in a codebase.",

508 prompt: "You find and document API endpoints. Report each endpoint's path, method, and handler.",

509 tools: ["Read", "Grep", "Glob"]

510 }

511 };

512 

513 // Stringify content to search for agentId without traversing nested block types

514 function extractAgentId(message: SDKMessage): string | undefined {

515 if (message.type !== "assistant" && message.type !== "user") return undefined;

516 const content = JSON.stringify(message.message.content);

517 const match = content.match(/agentId:\s*([\w-]+)/);

518 return match?.[1];

519 }

520 

521 let agentId: string | undefined;

522 let sessionId: string | undefined;

523 

524 // First invocation - run the endpoint-finder subagent

525 for await (const message of query({

526 prompt: "Use the endpoint-finder agent to find all API endpoints in this codebase",

527 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents }

528 })) {

529 // Capture session_id from ResultMessage (needed to resume this session)

530 if ("session_id" in message) sessionId = message.session_id;

531 // Search message content for the agentId (appears in Agent tool results)

532 const extractedId = extractAgentId(message);

533 if (extractedId) agentId = extractedId;

534 // Print the final result

535 if ("result" in message) console.log(message.result);

536 }

537 

538 // Second invocation - resume and ask follow-up

539 if (agentId && sessionId) {

540 for await (const message of query({

541 prompt: `Resume agent ${agentId} and list the top 3 most complex endpoints`,

542 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents, resume: sessionId }

543 })) {

544 if ("result" in message) console.log(message.result);

545 }

546 }

547 ```

536</CodeGroup>548</CodeGroup>

537 549 

538Les transcriptions des sous-agents persistent indépendamment de la conversation principale :550Les transcriptions des sous-agents persistent indépendamment de la conversation principale :


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

542* **Nettoyage automatique** : Les transcriptions sont nettoyées en fonction du paramètre `cleanupPeriodDays` (par défaut : 30 jours).554* **Nettoyage automatique** : Les transcriptions sont nettoyées en fonction du paramètre `cleanupPeriodDays` (par défaut : 30 jours).

543 555 

544<h2 id="tool-restrictions">556<h2 id="tool-restrictions-1">

545 Restrictions d'outils557 Restrictions d'outils

546</h2>558</h2>

547 559 

Details

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

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

219 219 

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

221 

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

221 223 

222<CodeGroup>224<CodeGroup>

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


233 const input = block.input as { subject: string };235 const input = block.input as { subject: string };

234 console.log(`+ ${input.subject}`);236 console.log(`+ ${input.subject}`);

235 } else if (block.name === "TaskUpdate") {237 } else if (block.name === "TaskUpdate") {

236 const input = block.input as { taskId: string; status?: string };238 const input = block.input as {

237 if (input.status) console.log(` ${input.taskId} -> ${input.status}`);239 taskId?: string;

240 id?: string;

241 task_id?: string;

242 status?: string;

243 };

244 const taskId = input.taskId ?? input.id ?? input.task_id;

245 if (taskId && input.status) console.log(` ${taskId} -> ${input.status}`);

238 }246 }

239 }247 }

240 }248 }


254 if block.name == "TaskCreate":262 if block.name == "TaskCreate":

255 print(f"+ {block.input['subject']}")263 print(f"+ {block.input['subject']}")

256 elif block.name == "TaskUpdate" and block.input.get("status"):264 elif block.name == "TaskUpdate" and block.input.get("status"):

257 print(f" {block.input['taskId']} -> {block.input['status']}")265 task_id = (

266 block.input.get("taskId")

267 or block.input.get("id")

268 or block.input.get("task_id")

269 )

270 if task_id:

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

258 ```272 ```

259</CodeGroup>273</CodeGroup>

260 274 

Details

100}): Promise<WarmQuery>;100}): Promise<WarmQuery>;

101```101```

102 102 

103<h4 id="parameters">103<h4 id="parameters-1">

104 Paramètres104 Paramètres

105</h4>105</h4>

106 106 


109| `options` | [`Options`](#options) | Objet de configuration optionnel. Identique au paramètre `options` de `query()` |109| `options` | [`Options`](#options) | Objet de configuration optionnel. Identique au paramètre `options` de `query()` |

110| `initializeTimeoutMs` | `number` | Temps maximum en millisecondes à attendre pour l'initialisation du sous-processus. Par défaut `60000`. Si l'initialisation ne se termine pas à temps, la promesse est rejetée avec une erreur de délai d'expiration |110| `initializeTimeoutMs` | `number` | Temps maximum en millisecondes à attendre pour l'initialisation du sous-processus. Par défaut `60000`. Si l'initialisation ne se termine pas à temps, la promesse est rejetée avec une erreur de délai d'expiration |

111 111 

112<h4 id="returns">112<h4 id="returns-1">

113 Retours113 Retours

114</h4>114</h4>

115 115 


149): SdkMcpToolDefinition<Schema>;149): SdkMcpToolDefinition<Schema>;

150```150```

151 151 

152<h4 id="parameters">152<h4 id="parameters-2">

153 Paramètres153 Paramètres

154</h4>154</h4>

155 155 


204}): McpSdkServerConfigWithInstance;204}): McpSdkServerConfigWithInstance;

205```205```

206 206 

207<h4 id="parameters">207<h4 id="parameters-3">

208 Paramètres208 Paramètres

209</h4>209</h4>

210 210 


224function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;224function listSessions(options?: ListSessionsOptions): Promise<SDKSessionInfo[]>;

225```225```

226 226 

227<h4 id="parameters">227<h4 id="parameters-4">

228 Paramètres228 Paramètres

229</h4>229</h4>

230 230 


251| `tag` | `string \| undefined` | Étiquette de session définie par l'utilisateur (voir [`tagSession()`](#tagsession)) |251| `tag` | `string \| undefined` | Étiquette de session définie par l'utilisateur (voir [`tagSession()`](#tagsession)) |

252| `createdAt` | `number \| undefined` | Heure de création en millisecondes depuis l'époque, à partir de l'horodatage de la première entrée |252| `createdAt` | `number \| undefined` | Heure de création en millisecondes depuis l'époque, à partir de l'horodatage de la première entrée |

253 253 

254<h4 id="example">254<h4 id="example-1">

255 Exemple255 Exemple

256</h4>256</h4>

257 257 


280): Promise<SessionMessage[]>;280): Promise<SessionMessage[]>;

281```281```

282 282 

283<h4 id="parameters">283<h4 id="parameters-5">

284 Paramètres284 Paramètres

285</h4>285</h4>

286 286 


303| `message` | `unknown` | Charge utile de message brute de la transcription |303| `message` | `unknown` | Charge utile de message brute de la transcription |

304| `parent_tool_use_id` | `string \| null` | Pour les messages de sous-agent, le `tool_use_id` de l'appel d'outil `Agent` qui l'a généré. `null` pour les messages de session principale et les sessions plus anciennes |304| `parent_tool_use_id` | `string \| null` | Pour les messages de sous-agent, le `tool_use_id` de l'appel d'outil `Agent` qui l'a généré. `null` pour les messages de session principale et les sessions plus anciennes |

305 305 

306<h4 id="example">306<h4 id="example-2">

307 Exemple307 Exemple

308</h4>308</h4>

309 309 


337): Promise<SDKSessionInfo | undefined>;337): Promise<SDKSessionInfo | undefined>;

338```338```

339 339 

340<h4 id="parameters">340<h4 id="parameters-6">

341 Paramètres341 Paramètres

342</h4>342</h4>

343 343 


362): Promise<void>;362): Promise<void>;

363```363```

364 364 

365<h4 id="parameters">365<h4 id="parameters-7">

366 Paramètres366 Paramètres

367</h4>367</h4>

368 368 


386): Promise<void>;386): Promise<void>;

387```387```

388 388 

389<h4 id="parameters">389<h4 id="parameters-8">

390 Paramètres390 Paramètres

391</h4>391</h4>

392 392 


412): Promise<ResolvedSettings>;412): Promise<ResolvedSettings>;

413```413```

414 414 

415<h4 id="parameters">415<h4 id="parameters-9">

416 Paramètres416 Paramètres

417</h4>417</h4>

418 418 


437| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | Pour chaque clé de niveau supérieur dans `effective`, quelle source a fourni la valeur |437| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | Pour chaque clé de niveau supérieur dans `effective`, quelle source a fourni la valeur |

438| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | Paramètres bruts par source, ordonnés de la plus basse à la plus haute précédence |438| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | Paramètres bruts par source, ordonnés de la plus basse à la plus haute précédence |

439 439 

440<h4 id="example">440<h4 id="example-3">

441 Exemple441 Exemple

442</h4>442</h4>

443 443 


481| `debug` | `boolean` | `false` | Activer le mode débogage pour le processus Claude Code |481| `debug` | `boolean` | `false` | Activer le mode débogage pour le processus Claude Code |

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

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

484| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `'high'` | Contrôle l'effort que Claude met dans sa réponse. Fonctionne avec la réflexion adaptative pour guider la profondeur de réflexion |484| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | Par défaut du modèle | Contrôle l'effort que Claude met dans sa réponse. Fonctionne avec la réflexion adaptative pour guider la profondeur de réflexion. Voir [ajuster le niveau d'effort](/fr/model-config#adjust-effort-level) |

485| `enableFileCheckpointing` | `boolean` | `false` | Activer le suivi des modifications de fichiers pour le rembobinage. Voir [Sauvegarde de fichiers](/fr/agent-sdk/file-checkpointing) |485| `enableFileCheckpointing` | `boolean` | `false` | Activer le suivi des modifications de fichiers pour le rembobinage. Voir [Sauvegarde de fichiers](/fr/agent-sdk/file-checkpointing) |

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

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


499| `maxThinkingTokens` | `number` | `undefined` | *Déprécié :* Utilisez `thinking` à la place. Tokens maximum pour le processus de réflexion |499| `maxThinkingTokens` | `number` | `undefined` | *Déprécié :* Utilisez `thinking` à la place. Tokens maximum pour le processus de réflexion |

500| `maxTurns` | `number` | `undefined` | Tours agentiques maximum (allers-retours d'utilisation d'outils) |500| `maxTurns` | `number` | `undefined` | Tours agentiques maximum (allers-retours d'utilisation d'outils) |

501| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurations de serveur MCP |501| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurations de serveur MCP |

502| `model` | `string` | Par défaut de CLI | Modèle Claude à utiliser |502| `model` | `string` | Par défaut de CLI | Alias de modèle Claude ou nom de modèle complet. Voir [valeurs acceptées et ID spécifiques au fournisseur](/fr/model-config#available-models) |

503| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Rappel pour gérer les demandes d'élicitation MCP. Appelé quand un serveur MCP demande une entrée utilisateur et aucun hook ne la gère en premier. Quand non fourni, les demandes d'élicitation non gérées sont automatiquement refusées |503| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Rappel pour gérer les demandes d'élicitation MCP. Appelé quand un serveur MCP demande une entrée utilisateur et aucun hook ne la gère en premier. Quand non fourni, les demandes d'élicitation non gérées sont automatiquement refusées |

504| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Définir le format de sortie pour les résultats de l'agent. Voir [Sorties structurées](/fr/agent-sdk/structured-outputs) pour les détails |504| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Définir le format de sortie pour les résultats de l'agent. Voir [Sorties structurées](/fr/agent-sdk/structured-outputs) pour les détails |

505| `outputStyle` | `string` | `undefined` | Pas un champ `Options`. Définissez `outputStyle` dans l'objet [`settings`](/fr/settings) en ligne ou un fichier de paramètres à la place. Voir [Activer un style de sortie](/fr/agent-sdk/modifying-system-prompts#activate-an-output-style) |505| `outputStyle` | `string` | `undefined` | Pas un champ `Options`. Définissez `outputStyle` dans l'objet [`settings`](/fr/settings) en ligne ou un fichier de paramètres à la place. Voir [Activer un style de sortie](/fr/agent-sdk/modifying-system-prompts#activate-an-output-style) |


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

519| `settings` | `string \| Settings` | `undefined` | Objet [paramètres](/fr/settings) en ligne ou chemin vers un fichier de paramètres. Remplit la couche de paramètres d'indicateur dans l'[ordre de précédence](/fr/settings#settings-precedence). Modifiez à l'exécution avec [`applyFlagSettings()`](#applyflagsettings) |519| `settings` | `string \| Settings` | `undefined` | Objet [paramètres](/fr/settings) en ligne ou chemin vers un fichier de paramètres. Remplit la couche de paramètres d'indicateur dans l'[ordre de précédence](/fr/settings#settings-precedence). Modifiez à l'exécution avec [`applyFlagSettings()`](#applyflagsettings) |

520| `settingSources` | [`SettingSource`](#settingsource)`[]` | Paramètres par défaut de CLI (toutes les sources) | Contrôler les paramètres du système de fichiers à charger. Passez `[]` pour désactiver les paramètres utilisateur, projet et locaux. Les paramètres de politique gérée se chargent indépendamment. Voir [Utiliser les fonctionnalités Claude Code](/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) |520| `settingSources` | [`SettingSource`](#settingsource)`[]` | Paramètres par défaut de CLI (toutes les sources) | Contrôler les paramètres du système de fichiers à charger. Passez `[]` pour désactiver les paramètres utilisateur, projet et locaux. Les paramètres de politique gérée se chargent indépendamment. Voir [Utiliser les fonctionnalités Claude Code](/fr/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

521| `skills` | `string[] \| 'all'` | `undefined` | Compétences disponibles pour la session. Passez `'all'` pour activer chaque compétence découverte, ou une liste de noms de compétences. Quand défini, le SDK active l'outil Skill automatiquement sans le lister dans `allowedTools`. Voir [Compétences](/fr/agent-sdk/skills) |521| `skills` | `string[] \| 'all'` | `undefined` | Compétences disponibles pour la session. Passez `'all'` pour activer chaque compétence découverte, ou une liste de noms de compétences. Quand défini, le SDK ajoute l'outil Skill à `allowedTools` automatiquement. Si vous passez également `tools`, incluez `'Skill'` dans cette liste. Voir [Compétences](/fr/agent-sdk/skills) |

522| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Fonction personnalisée pour générer le processus Claude Code. Utilisez pour exécuter Claude Code dans des VM, des conteneurs ou des environnements distants |522| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Fonction personnalisée pour générer le processus Claude Code. Utilisez pour exécuter Claude Code dans des VM, des conteneurs ou des environnements distants |

523| `stderr` | `(data: string) => void` | `undefined` | Rappel pour la sortie stderr |523| `stderr` | `(data: string) => void` | `undefined` | Rappel pour la sortie stderr |

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


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

554* `CLAUDE_CODE_MAX_RETRIES` : tentatives API maximales. Par défaut `10`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire cas de temps mural est approximativement `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff.554* `CLAUDE_CODE_MAX_RETRIES` : tentatives API maximales. Par défaut `10`. Chaque tentative obtient sa propre fenêtre `API_TIMEOUT_MS`, donc le pire cas de temps mural est approximativement `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` plus le backoff.

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

556* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : abandonne la requête quand les en-têtes sont arrivés mais que le corps de la réponse cesse de diffuser. Désactivé par défaut. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` par défaut à `300000` et est limité à ce minimum. La requête abandonnée passe par le chemin de tentative normal.556* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` : abandonne la requête quand les en-têtes sont arrivés mais que le corps de la réponse cesse de diffuser. Quand `CLAUDE_ENABLE_STREAM_WATCHDOG` n'est pas défini, la valeur par défaut est contrôlée par le serveur sur l'API Anthropic directe et désactivée sur les autres fournisseurs. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` par défaut à `300000` et est limité à ce minimum. La requête abandonnée passe par le chemin de tentative normal.

557 557 

558<h3 id="query-object">558<h3 id="query-object">

559 Objet `Query`559 Objet `Query`


658}658}

659```659```

660 660 

661<h4 id="methods">661<h4 id="methods-1">

662 Méthodes662 Méthodes

663</h4>663</h4>

664 664 


717```717```

718 718 

719| Champ | Requis | Description |719| Champ | Requis | Description |

720| :------------------------------------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |720| :------------------------------------ | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

721| `description` | Oui | Description en langage naturel de quand utiliser cet agent |721| `description` | Oui | Description en langage naturel de quand utiliser cet agent |

722| `tools` | Non | Tableau de noms d'outils autorisés. S'il est omis, hérite tous les outils du parent. Pour précharger les compétences dans le contexte de l'agent, utilisez le champ `skills` plutôt que de lister `'Skill'` ici |722| `tools` | Non | Tableau de noms d'outils autorisés. S'il est omis, hérite tous les outils du parent. Pour précharger les compétences dans le contexte de l'agent, utilisez le champ `skills` plutôt que de lister `'Skill'` ici |

723| `disallowedTools` | Non | Tableau de noms d'outils à explicitement interdire pour cet agent |723| `disallowedTools` | Non | Tableau de noms d'outils à explicitement interdire pour cet agent. Les modèles au niveau du serveur MCP sont également acceptés : `mcp__server` ou `mcp__server__*` supprime chaque outil de ce serveur, et `mcp__*` supprime chaque outil MCP de n'importe quel serveur |

724| `prompt` | Oui | L'invite système de l'agent |724| `prompt` | Oui | L'invite système de l'agent |

725| `model` | Non | Remplacement de modèle pour cet agent. Accepte un alias tel que `'sonnet'`, `'opus'`, `'haiku'`, `'inherit'`, ou un ID de modèle complet. S'il est omis ou `'inherit'`, utilise le modèle principal |725| `model` | Non | Remplacement de modèle pour cet agent. Accepte un alias tel que `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, ou un ID de modèle complet. S'il est omis ou `'inherit'`, utilise le modèle principal |

726| `mcpServers` | Non | Spécifications de serveur MCP pour cet agent |726| `mcpServers` | Non | Spécifications de serveur MCP pour cet agent |

727| `skills` | Non | Tableau de noms de compétences à précharger dans le contexte de l'agent |727| `skills` | Non | Tableau de noms de compétences à précharger dans le contexte de l'agent |

728| `initialPrompt` | Non | Auto-soumis comme le premier tour utilisateur quand cet agent s'exécute en tant qu'agent du thread principal |728| `initialPrompt` | Non | Auto-soumis comme le premier tour utilisateur quand cet agent s'exécute en tant qu'agent du thread principal |


874type PermissionMode =874type PermissionMode =

875 | "default" // Comportement de permission standard875 | "default" // Comportement de permission standard

876 | "acceptEdits" // Accepter automatiquement les modifications de fichiers876 | "acceptEdits" // Accepter automatiquement les modifications de fichiers

877 | "bypassPermissions" // Contourner tous les contrôles de permission877 | "bypassPermissions" // Contourner les contrôles de permission ; les règles d'ask explicites demandent toujours

878 | "plan" // Mode de planification - outils en lecture seule uniquement878 | "plan" // Mode de planification - explorer sans modifier

879 | "dontAsk" // Ne pas demander les permissions, refuser si non pré-approuvé879 | "dontAsk" // Ne pas demander les permissions, refuser si non pré-approuvé

880 | "auto"; // Utiliser un classificateur de modèle pour approuver ou refuser chaque appel d'outil880 | "auto"; // Utiliser un classificateur de modèle pour approuver ou refuser chaque appel d'outil

881```881```


1035type SdkPluginConfig = {1035type SdkPluginConfig = {

1036 type: "local";1036 type: "local";

1037 path: string;1037 path: string;

1038 skipMcpDiscovery?: boolean;

1038};1039};

1039```1040```

1040 1041 

1041| Champ | Type | Description |1042| Champ | Type | Description |

1042| :----- | :-------- | :------------------------------------------------------------------------------ |1043| :----------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

1044| `path` | `string` | Chemin absolu ou relatif au répertoire du plugin |1045| `path` | `string` | Chemin absolu ou relatif au répertoire du plugin |

1046| `skipMcpDiscovery` | `boolean` | Quand `true`, le SDK charge les compétences, les hooks, les agents et les commandes de ce plugin mais ne lit pas son `.mcp.json` ou le manifeste `mcpServers`. Définissez ceci quand votre application possède les connexions MCP du plugin. |

1045 1047 

1046**Exemple :**1048**Exemple :**

1047 1049 


1086 | SDKTaskProgressMessage1088 | SDKTaskProgressMessage

1087 | SDKTaskUpdatedMessage1089 | SDKTaskUpdatedMessage

1088 | SDKSessionStateChangedMessage1090 | SDKSessionStateChangedMessage

1091 | SDKWorkerShuttingDownMessage

1089 | SDKCommandsChangedMessage1092 | SDKCommandsChangedMessage

1090 | SDKNotificationMessage1093 | SDKNotificationMessage

1091 | SDKFilesPersistedEvent1094 | SDKFilesPersistedEvent


1096 | SDKPermissionDeniedMessage1099 | SDKPermissionDeniedMessage

1097 | SDKPromptSuggestionMessage1100 | SDKPromptSuggestionMessage

1098 | SDKAPIRetryMessage1101 | SDKAPIRetryMessage

1099 | SDKMirrorErrorMessage;1102 | SDKMirrorErrorMessage

1103 | SDKInformationalMessage;

1100```1104```

1101 1105 

1102<h3 id="sdkassistantmessage">1106<h3 id="sdkassistantmessage">


1183 result: string;1187 result: string;

1184 stop_reason: string | null;1188 stop_reason: string | null;

1185 ttft_ms?: number;1189 ttft_ms?: number;

1190 ttft_stream_ms?: number;

1186 total_cost_usd: number;1191 total_cost_usd: number;

1187 usage: NonNullableUsage;1192 usage: NonNullableUsage;

1188 modelUsage: { [modelName: string]: ModelUsage };1193 modelUsage: { [modelName: string]: ModelUsage };


1221Plusieurs champs du résultat portent des détails diagnostiques au-delà du `subtype` :1226Plusieurs champs du résultat portent des détails diagnostiques au-delà du `subtype` :

1222 1227 

1223* `api_error_status` : le code de statut HTTP de l'erreur API qui a terminé la conversation. Absent ou `null` quand le tour s'est terminé sans erreur API.1228* `api_error_status` : le code de statut HTTP de l'erreur API qui a terminé la conversation. Absent ou `null` quand le tour s'est terminé sans erreur API.

1224* `ttft_ms` : temps jusqu'au premier jeton en millisecondes. Présent uniquement sur le bras de succès.1229* `ttft_ms` : temps jusqu'au premier jeton en millisecondes, mesuré quand le premier message assistant complet arrive. Présent uniquement sur le bras de succès.

1230* `ttft_stream_ms` : temps en millisecondes jusqu'au premier événement de flux `message_start`, quand le flux de réponse s'ouvre. Inférieur à `ttft_ms` ; l'écart entre les deux est le temps passé à diffuser le premier message. Présent uniquement sur le bras de succès.

1225* `terminal_reason` : pourquoi la boucle s'est terminée. L'un de `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"` ou `"model_error"`.1231* `terminal_reason` : pourquoi la boucle s'est terminée. L'un de `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"` ou `"model_error"`.

1226* `fast_mode_state` : l'un de `"on"`, `"off"` ou `"cooldown"`.1232* `fast_mode_state` : l'un de `"on"`, `"off"` ou `"cooldown"`.

1227 1233 


1273 parent_tool_use_id: string | null;1279 parent_tool_use_id: string | null;

1274 uuid: UUID;1280 uuid: UUID;

1275 session_id: string;1281 session_id: string;

1282 ttft_ms?: number; // Temps jusqu'au premier jeton en ms, présent uniquement sur les événements message_start

1276};1283};

1277```1284```

1278 1285 


1295};1302};

1296```1303```

1297 1304 

1305<h3 id="sdkinformationalmessage">

1306 `SDKInformationalMessage`

1307</h3>

1308 

1309Bannière de texte générique émise par la boucle. Porte les lignes d'état non-erreur, les retours de hook comme la raison de blocage d'un hook `UserPromptSubmit`, et la sortie de commande. Rendez `content` en texte brut au `level` donné.

1310 

1311```typescript theme={null}

1312type SDKInformationalMessage = {

1313 type: "system";

1314 subtype: "informational";

1315 content: string;

1316 level: "info" | "notice" | "suggestion" | "warning";

1317 tool_use_id?: string;

1318 prevent_continuation?: boolean;

1319 uuid: UUID;

1320 session_id: string;

1321};

1322```

1323 

1324<h3 id="sdkworkershuttingdownmessage">

1325 `SDKWorkerShuttingDownMessage`

1326</h3>

1327 

1328Émis lors de l'arrêt gracieux du worker afin que les clients distants puissent montrer pourquoi le worker a disparu au lieu d'attendre l'expiration du heartbeat. La `reason` est une courte chaîne snake\_case définie par le CLI hôte, comme `"host_exit"` ou `"remote_control_disabled"`. Agissez sur ceci uniquement lors de la diffusion en direct. Une session reprise rejoue les instances passées de ce message, donc ignorez-les dans ce cas.

1329 

1330```typescript theme={null}

1331type SDKWorkerShuttingDownMessage = {

1332 type: "system";

1333 subtype: "worker_shutting_down";

1334 reason: string;

1335 uuid: UUID;

1336 session_id: string;

1337};

1338```

1339 

1298<h3 id="sdkplugininstallmessage">1340<h3 id="sdkplugininstallmessage">

1299 `SDKPluginInstallMessage`1341 `SDKPluginInstallMessage`

1300</h3>1342</h3>


1369type SDKMessageOrigin =1411type SDKMessageOrigin =

1370 | { kind: "human" }1412 | { kind: "human" }

1371 | { kind: "channel"; server: string }1413 | { kind: "channel"; server: string }

1372 | { kind: "peer"; from: string; name?: string }1414 | { kind: "peer"; from: string; name?: string; senderTaskId?: string }

1373 | { kind: "task-notification" }1415 | { kind: "task-notification" }

1374 | { kind: "coordinator" };1416 | { kind: "coordinator" }

1417 | { kind: "auto-continuation" };

1375```1418```

1376 1419 

1377| `kind` | Signification |1420| `kind` | Signification |

1378| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |1421| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1379| `human` | Entrée directe de l'utilisateur final. Sur les messages utilisateur, une `origin` absente signifie également une entrée humaine. |1422| `human` | Entrée directe de l'utilisateur final. Sur les messages utilisateur, une `origin` absente signifie également une entrée humaine. |

1380| `channel` | Message arrivant sur un [canal](/fr/channels). `server` est le nom du serveur MCP source. |1423| `channel` | Message arrivant sur un [canal](/fr/channels). `server` est le nom du serveur MCP source. |

1381| `peer` | Message d'une autre session d'agent via `SendMessage`. `from` est l'adresse de l'expéditeur ; `name` est le nom d'affichage de l'expéditeur quand disponible. |1424| `peer` | Réservé pour les messages d'une autre session d'agent. `from` est l'adresse de l'expéditeur et `name` est le nom d'affichage de l'expéditeur quand disponible. `senderTaskId` est l'ID de tâche du sous-agent de fond en cours qui a envoyé le message ; absent pour les pairs entre sessions. Le Agent SDK n'émet pas cette origine ; traitez-la comme une origine inconnue. |

1382| `task-notification` | Tour synthétique injecté après la fin d'une tâche de fond. Voir [`SDKTaskNotificationMessage`](#sdktasknotificationmessage). |1425| `task-notification` | Tour synthétique injecté après la fin d'une tâche de fond. Voir [`SDKTaskNotificationMessage`](#sdktasknotificationmessage). |

1383| `coordinator` | Message d'un coordinateur d'équipe dans une [équipe d'agents](/fr/agent-teams). |1426| `coordinator` | Message d'un coordinateur d'équipe dans une [équipe d'agents](/fr/agent-teams). |

1427| `auto-continuation` | Tour synthétique injecté quand la session continue sans nouvelle entrée utilisateur, comme un résultat de commande qui déclenche une invite de suivi. |

1384 1428 

1385<h2 id="hook-types">1429<h2 id="hook-types">

1386 Types de hook1430 Types de hook


1712type TeammateIdleHookInput = BaseHookInput & {1756type TeammateIdleHookInput = BaseHookInput & {

1713 hook_event_name: "TeammateIdle";1757 hook_event_name: "TeammateIdle";

1714 teammate_name: string;1758 teammate_name: string;

1759 /** @deprecated depuis v2.1.178. Porte le nom d'équipe dérivé de la session ; sera supprimé. */

1715 team_name: string;1760 team_name: string;

1716};1761};

1717```1762```


1727 task_subject: string;1772 task_subject: string;

1728 task_description?: string;1773 task_description?: string;

1729 teammate_name?: string;1774 teammate_name?: string;

1775 /** @deprecated depuis v2.1.178. Porte le nom d'équipe dérivé de la session ; sera supprimé. */

1730 team_name?: string;1776 team_name?: string;

1731};1777};

1732```1778```


1934 description: string;1980 description: string;

1935 prompt: string;1981 prompt: string;

1936 subagent_type: string;1982 subagent_type: string;

1937 model?: "sonnet" | "opus" | "haiku";1983 model?: "sonnet" | "opus" | "haiku" | "fable";

1938 resume?: string;1984 resume?: string;

1939 run_in_background?: boolean;1985 run_in_background?: boolean;

1940 max_turns?: number;1986 max_turns?: number;

1941 name?: string;1987 name?: string;

1942 team_name?: string;

1943 mode?: "acceptEdits" | "bypassPermissions" | "default" | "dontAsk" | "plan";1988 mode?: "acceptEdits" | "bypassPermissions" | "default" | "dontAsk" | "plan";

1944 isolation?: "worktree";1989 isolation?: "worktree";

1945};1990};


2385 | WorkflowOutput;2430 | WorkflowOutput;

2386```2431```

2387 2432 

2388<h3 id="agent">2433<h3 id="agent-1">

2389 Agent2434 Agent

2390</h3>2435</h3>

2391 2436 


2397 status: "completed";2442 status: "completed";

2398 agentId: string;2443 agentId: string;

2399 content: Array<{ type: "text"; text: string }>;2444 content: Array<{ type: "text"; text: string }>;

2445 resolvedModel?: string;

2400 totalToolUseCount: number;2446 totalToolUseCount: number;

2401 totalDurationMs: number;2447 totalDurationMs: number;

2402 totalTokens: number;2448 totalTokens: number;


2421 status: "async_launched";2467 status: "async_launched";

2422 agentId: string;2468 agentId: string;

2423 description: string;2469 description: string;

2470 resolvedModel?: string;

2424 prompt: string;2471 prompt: string;

2425 outputFile: string;2472 outputFile: string;

2426 canReadOutputFile?: boolean;2473 canReadOutputFile?: boolean;


2434 2481 

2435Retourne le résultat du sous-agent. Discriminé sur le champ `status` : `"completed"` pour les tâches terminées, `"async_launched"` pour les tâches de fond et `"sub_agent_entered"` pour les sous-agents interactifs.2482Retourne le résultat du sous-agent. Discriminé sur le champ `status` : `"completed"` pour les tâches terminées, `"async_launched"` pour les tâches de fond et `"sub_agent_entered"` pour les sous-agents interactifs.

2436 2483 

2437<h3 id="askuserquestion">2484Le champ `resolvedModel` sur les variantes `completed` et `async_launched` nomme le modèle sur lequel le sous-agent a réellement fonctionné, qui peut différer du modèle demandé en entrée `model` lorsque [`availableModels`](/fr/model-config#restrict-model-selection) ou une autre substitution s'applique. {/* min-version: 2.1.174 */}Ce champ nécessite Claude Code v2.1.174 ou ultérieur.

2485 

2486<h3 id="askuserquestion-1">

2438 AskUserQuestion2487 AskUserQuestion

2439</h3>2488</h3>

2440 2489 


2455 2504 

2456Retourne les questions posées et les réponses de l'utilisateur. `response` est défini lorsque l'utilisateur a tapé une réponse libre au lieu de répondre aux questions structurées ; lorsqu'il est présent, Claude reçoit « L'utilisateur a répondu : … » au lieu de la liste de réponses par question.2505Retourne les questions posées et les réponses de l'utilisateur. `response` est défini lorsque l'utilisateur a tapé une réponse libre au lieu de répondre aux questions structurées ; lorsqu'il est présent, Claude reçoit « L'utilisateur a répondu : … » au lieu de la liste de réponses par question.

2457 2506 

2458<h3 id="bash">2507<h3 id="bash-1">

2459 Bash2508 Bash

2460</h3>2509</h3>

2461 2510 


2480 2529 

2481Retourne la sortie de la commande avec stdout/stderr séparés. Les commandes de fond incluent un `backgroundTaskId`.2530Retourne la sortie de la commande avec stdout/stderr séparés. Les commandes de fond incluent un `backgroundTaskId`.

2482 2531 

2483<h3 id="monitor">2532<h3 id="monitor-1">

2484 Monitor2533 Monitor

2485</h3>2534</h3>

2486 2535 


2496 2545 

2497Retourne l'ID de tâche de fond pour le moniteur en cours d'exécution. Utilisez cet ID avec `TaskStop` pour annuler la surveillance plus tôt.2546Retourne l'ID de tâche de fond pour le moniteur en cours d'exécution. Utilisez cet ID avec `TaskStop` pour annuler la surveillance plus tôt.

2498 2547 

2499<h3 id="edit">2548<h3 id="edit-1">

2500 Edit2549 Edit

2501</h3>2550</h3>

2502 2551 


2530 2579 

2531Retourne le diff structuré de l'opération d'édition.2580Retourne le diff structuré de l'opération d'édition.

2532 2581 

2533<h3 id="read">2582<h3 id="read-1">

2534 Read2583 Read

2535</h3>2584</h3>

2536 2585 


2590 2639 

2591Retourne le contenu du fichier dans un format approprié au type de fichier. Discriminé sur le champ `type`.2640Retourne le contenu du fichier dans un format approprié au type de fichier. Discriminé sur le champ `type`.

2592 2641 

2593<h3 id="write">2642<h3 id="write-1">

2594 Write2643 Write

2595</h3>2644</h3>

2596 2645 


2622 2671 

2623Retourne le résultat d'écriture avec les informations de diff structuré.2672Retourne le résultat d'écriture avec les informations de diff structuré.

2624 2673 

2625<h3 id="glob">2674<h3 id="glob-1">

2626 Glob2675 Glob

2627</h3>2676</h3>

2628 2677 


2639 2688 

2640Retourne les chemins de fichiers correspondant au motif glob, triés par heure de modification.2689Retourne les chemins de fichiers correspondant au motif glob, triés par heure de modification.

2641 2690 

2642<h3 id="grep">2691<h3 id="grep-1">

2643 Grep2692 Grep

2644</h3>2693</h3>

2645 2694 


2660 2709 

2661Retourne les résultats de recherche. La forme varie selon `mode` : liste de fichiers, contenu avec correspondances ou comptages de correspondances.2710Retourne les résultats de recherche. La forme varie selon `mode` : liste de fichiers, contenu avec correspondances ou comptages de correspondances.

2662 2711 

2663<h3 id="taskstop">2712<h3 id="taskstop-1">

2664 TaskStop2713 TaskStop

2665</h3>2714</h3>

2666 2715 


2677 2726 

2678Retourne la confirmation après l'arrêt de la tâche de fond.2727Retourne la confirmation après l'arrêt de la tâche de fond.

2679 2728 

2680<h3 id="notebookedit">2729<h3 id="notebookedit-1">

2681 NotebookEdit2730 NotebookEdit

2682</h3>2731</h3>

2683 2732 


2699 2748 

2700Retourne le résultat de l'édition du carnet avec le contenu du fichier original et mis à jour.2749Retourne le résultat de l'édition du carnet avec le contenu du fichier original et mis à jour.

2701 2750 

2702<h3 id="webfetch">2751<h3 id="webfetch-1">

2703 WebFetch2752 WebFetch

2704</h3>2753</h3>

2705 2754 


2718 2767 

2719Retourne le contenu récupéré avec le statut HTTP et les métadonnées.2768Retourne le contenu récupéré avec le statut HTTP et les métadonnées.

2720 2769 

2721<h3 id="websearch">2770<h3 id="websearch-1">

2722 WebSearch2771 WebSearch

2723</h3>2772</h3>

2724 2773 


2740 2789 

2741Retourne les résultats de recherche du web.2790Retourne les résultats de recherche du web.

2742 2791 

2743<h3 id="workflow">2792<h3 id="workflow-1">

2744 Workflow2793 Workflow

2745</h3>2794</h3>

2746 2795 


2770| `scriptPath` | `string` | Chemin du script de workflow persisté pour cette exécution. Modifiez-le et transmettez-le en tant que `scriptPath` pour réexécuter sans renvoyer le script |2819| `scriptPath` | `string` | Chemin du script de workflow persisté pour cette exécution. Modifiez-le et transmettez-le en tant que `scriptPath` pour réexécuter sans renvoyer le script |

2771| `error` | `string` | Défini lorsque le script échoue sa vérification de syntaxe. Lorsqu'il est présent, l'exécution n'a pas démarré malgré le statut `async_launched` |2820| `error` | `string` | Défini lorsque le script échoue sa vérification de syntaxe. Lorsqu'il est présent, l'exécution n'a pas démarré malgré le statut `async_launched` |

2772 2821 

2773<h3 id="todowrite">2822<h3 id="todowrite-1">

2774 TodoWrite2823 TodoWrite

2775</h3>2824</h3>

2776 2825 


2797 À partir du TypeScript Agent SDK 0.3.142, `TodoWrite` est désactivé par défaut. Utilisez `TaskCreate`, `TaskGet`, `TaskUpdate` et `TaskList` à la place. Consultez [Migrer vers les outils Task](/fr/agent-sdk/todo-tracking#migrate-to-task-tools) pour mettre à jour votre code de surveillance, ou définissez `CLAUDE_CODE_ENABLE_TASKS=0` pour revenir à `TodoWrite`.2846 À partir du TypeScript Agent SDK 0.3.142, `TodoWrite` est désactivé par défaut. Utilisez `TaskCreate`, `TaskGet`, `TaskUpdate` et `TaskList` à la place. Consultez [Migrer vers les outils Task](/fr/agent-sdk/todo-tracking#migrate-to-task-tools) pour mettre à jour votre code de surveillance, ou définissez `CLAUDE_CODE_ENABLE_TASKS=0` pour revenir à `TodoWrite`.

2798</Note>2847</Note>

2799 2848 

2800<h3 id="taskcreate">2849<h3 id="taskcreate-1">

2801 TaskCreate2850 TaskCreate

2802</h3>2851</h3>

2803 2852 


2814 2863 

2815Retourne la tâche créée avec son ID assigné.2864Retourne la tâche créée avec son ID assigné.

2816 2865 

2817<h3 id="taskupdate">2866<h3 id="taskupdate-1">

2818 TaskUpdate2867 TaskUpdate

2819</h3>2868</h3>

2820 2869 


2835 2884 

2836Retourne le résultat de la mise à jour, y compris les champs qui ont changé.2885Retourne le résultat de la mise à jour, y compris les champs qui ont changé.

2837 2886 

2838<h3 id="taskget">2887<h3 id="taskget-1">

2839 TaskGet2888 TaskGet

2840</h3>2889</h3>

2841 2890 


2856 2905 

2857Retourne l'enregistrement de tâche complet, ou `null` lorsque l'ID n'est pas trouvé.2906Retourne l'enregistrement de tâche complet, ou `null` lorsque l'ID n'est pas trouvé.

2858 2907 

2859<h3 id="tasklist">2908<h3 id="tasklist-1">

2860 TaskList2909 TaskList

2861</h3>2910</h3>

2862 2911 


2876 2925 

2877Retourne un instantané de toutes les tâches dans la liste actuelle.2926Retourne un instantané de toutes les tâches dans la liste actuelle.

2878 2927 

2879<h3 id="exitplanmode">2928<h3 id="exitplanmode-1">

2880 ExitPlanMode2929 ExitPlanMode

2881</h3>2930</h3>

2882 2931 


2895 2944 

2896Retourne l'état du plan après la sortie du mode de planification.2945Retourne l'état du plan après la sortie du mode de planification.

2897 2946 

2898<h3 id="listmcpresources">2947<h3 id="listmcpresources-1">

2899 ListMcpResources2948 ListMcpResources

2900</h3>2949</h3>

2901 2950 


2913 2962 

2914Retourne un tableau de ressources MCP disponibles.2963Retourne un tableau de ressources MCP disponibles.

2915 2964 

2916<h3 id="readmcpresource">2965<h3 id="readmcpresource-1">

2917 ReadMcpResource2966 ReadMcpResource

2918</h3>2967</h3>

2919 2968 


2931 2980 

2932Retourne le contenu de la ressource MCP demandée.2981Retourne le contenu de la ressource MCP demandée.

2933 2982 

2934<h3 id="enterworktree">2983<h3 id="enterworktree-1">

2935 EnterWorktree2984 EnterWorktree

2936</h3>2985</h3>

2937 2986 


3010type PermissionUpdateDestination =3059type PermissionUpdateDestination =

3011 | "userSettings" // Paramètres utilisateur globaux3060 | "userSettings" // Paramètres utilisateur globaux

3012 | "projectSettings" // Paramètres de projet par répertoire3061 | "projectSettings" // Paramètres de projet par répertoire

3013 | "localSettings" // Paramètres de projet gitignorés3062 | "localSettings" // Paramètres de projet locaux

3014 | "session" // Session actuelle uniquement3063 | "session" // Session actuelle uniquement

3015 | "cliArg"; // Argument CLI3064 | "cliArg"; // Argument CLI

3016```3065```


3049```3098```

3050 3099 

3051<Warning>3100<Warning>

3052 La bêta `context-1m-2025-08-07` est retirée à partir du 30 avril 2026. Passer cette valeur avec Claude Sonnet 4.5 ou Sonnet 4 n'a aucun effet, et les demandes qui dépassent la fenêtre de contexte standard de 200 k tokens retournent une erreur. Pour utiliser une fenêtre de contexte de 1 M tokens, migrez vers [Claude Sonnet 4.6, Claude Opus 4.6 ou Claude Opus 4.7](https://platform.claude.com/docs/fr/about-claude/models/overview), qui incluent 1 M de contexte à prix standard sans en-tête bêta requis.3101 La bêta `context-1m-2025-08-07` est retirée à partir du 30 avril 2026. Passer cette valeur avec Claude Sonnet 4.5 ou Sonnet 4 n'a aucun effet, et les demandes qui dépassent la fenêtre de contexte standard de 200 k tokens retournent une erreur. Pour utiliser une fenêtre de contexte de 1 M tokens, migrez vers [Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 ou Claude Opus 4.8](https://platform.claude.com/docs/fr/about-claude/models/overview), qui incluent 1 M de contexte à prix standard sans en-tête bêta requis.

3053</Warning>3102</Warning>

3054 3103 

3055<h3 id="slashcommand">3104<h3 id="slashcommand">


3241```typescript theme={null}3290```typescript theme={null}

3242type CallToolResult = {3291type CallToolResult = {

3243 content: Array<{3292 content: Array<{

3244 type: "text" | "image" | "resource";3293 type: "text" | "image" | "audio" | "resource" | "resource_link";

3245 // Les champs supplémentaires varient selon le type3294 // Les champs supplémentaires varient selon le type

3246 }>;3295 }>;

3247 structuredContent?: Record<string, unknown>;3296 structuredContent?: Record<string, unknown>;

Details

16 16 

17Ce guide vous montre comment détecter chaque type de demande et répondre de manière appropriée.17Ce guide vous montre comment détecter chaque type de demande et répondre de manière appropriée.

18 18 

19## Détecter quand Claude a besoin d'une entrée19<h2 id="detect-when-claude-needs-input">

20 Détecter quand Claude a besoin d'une entrée

21</h2>

20 22 

21Passez un callback `canUseTool` dans vos options de requête. Le callback se déclenche chaque fois que Claude a besoin d'une entrée utilisateur, en recevant le nom de l'outil et l'entrée comme arguments :23Passez un callback `canUseTool` dans vos options de requête. Le callback se déclenche chaque fois que Claude a besoin d'une entrée utilisateur, en recevant le nom de l'outil et l'entrée comme arguments :

22 24 


49 Pour autoriser ou refuser automatiquement les outils sans inviter les utilisateurs, utilisez plutôt les [hooks](/fr/agent-sdk/hooks). Les hooks s'exécutent avant `canUseTool` et peuvent autoriser, refuser ou modifier les demandes en fonction de votre propre logique. Vous pouvez également utiliser le [hook `PermissionRequest`](/fr/agent-sdk/hooks#available-hooks) pour envoyer des notifications externes (Slack, email, push) lorsque Claude attend une approbation.51 Pour autoriser ou refuser automatiquement les outils sans inviter les utilisateurs, utilisez plutôt les [hooks](/fr/agent-sdk/hooks). Les hooks s'exécutent avant `canUseTool` et peuvent autoriser, refuser ou modifier les demandes en fonction de votre propre logique. Vous pouvez également utiliser le [hook `PermissionRequest`](/fr/agent-sdk/hooks#available-hooks) pour envoyer des notifications externes (Slack, email, push) lorsque Claude attend une approbation.

50</Note>52</Note>

51 53 

52## Gérer les demandes d'approbation d'outil54<h2 id="handle-tool-approval-requests">

55 Gérer les demandes d'approbation d'outil

56</h2>

53 57 

54Une fois que vous avez passé un callback `canUseTool` dans vos options de requête, il se déclenche lorsque Claude veut utiliser un outil qui n'est pas auto-approuvé. Votre callback reçoit trois arguments :58Une fois que vous avez passé un callback `canUseTool` dans vos options de requête, il se déclenche lorsque Claude veut utiliser un outil qui n'est pas auto-approuvé. Votre callback reçoit trois arguments :

55 59 


197 201 

198Cet exemple utilise un flux y/n où toute entrée autre que `y` est traitée comme un refus. En pratique, vous pourriez construire une interface utilisateur plus riche qui permet aux utilisateurs de modifier la demande, de fournir des commentaires, ou de rediriger Claude entièrement. Voir [Répondre aux demandes d'outil](#respond-to-tool-requests) pour tous les moyens de répondre.202Cet exemple utilise un flux y/n où toute entrée autre que `y` est traitée comme un refus. En pratique, vous pourriez construire une interface utilisateur plus riche qui permet aux utilisateurs de modifier la demande, de fournir des commentaires, ou de rediriger Claude entièrement. Voir [Répondre aux demandes d'outil](#respond-to-tool-requests) pour tous les moyens de répondre.

199 203 

200### Répondre aux demandes d'outil204<h3 id="respond-to-tool-requests">

205 Répondre aux demandes d'outil

206</h3>

201 207 

202Votre callback retourne l'un de deux types de réponse :208Votre callback retourne l'un de deux types de réponse :

203 209 


407 </Tab>413 </Tab>

408</Tabs>414</Tabs>

409 415 

410## Gérer les questions de clarification416<h2 id="handle-clarifying-questions">

417 Gérer les questions de clarification

418</h2>

411 419 

412Lorsque Claude a besoin de plus de direction sur une tâche avec plusieurs approches valides, il appelle l'outil `AskUserQuestion`. Cela déclenche votre callback `canUseTool` avec `toolName` défini sur `AskUserQuestion`. L'entrée contient les questions de Claude sous forme d'options à choix multiples, que vous affichez à l'utilisateur et retournez ses sélections.420Lorsque Claude a besoin de plus de direction sur une tâche avec plusieurs approches valides, il appelle l'outil `AskUserQuestion`. Cela déclenche votre callback `canUseTool` avec `toolName` défini sur `AskUserQuestion`. L'entrée contient les questions de Claude sous forme d'options à choix multiples, que vous affichez à l'utilisateur et retournez ses sélections.

413 421 


551 </Step>559 </Step>

552</Steps>560</Steps>

553 561 

554### Format de question562<h3 id="question-format">

563 Format de question

564</h3>

555 565 

556L'entrée contient les questions générées par Claude dans un tableau `questions`. Chaque question a ces champs :566L'entrée contient les questions générées par Claude dans un tableau `questions`. Chaque question a ces champs :

557 567 

558| Champ | Description |568| Champ | Description |

559| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |569| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |

560| `question` | Le texte complet de la question à afficher |570| `question` | Le texte complet de la question à afficher |

561| `header` | Étiquette courte pour la question (max 12 caractères) |571| `header` | Étiquette courte pour la question (max 12 caractères) |

562| `options` | Tableau de 2-4 choix, chacun avec `label` et `description`. TypeScript : optionnellement `preview` (voir [ci-dessous](#option-previews-type-script)) |572| `options` | Tableau de 2-4 choix, chacun avec `label` et `description`. TypeScript : optionnellement `preview` (voir [ci-dessous](#option-previews-typescript)) |

563| `multiSelect` | Si `true`, les utilisateurs peuvent sélectionner plusieurs options |573| `multiSelect` | Si `true`, les utilisateurs peuvent sélectionner plusieurs options |

564 574 

565La structure que votre callback reçoit :575La structure que votre callback reçoit :


580}590}

581```591```

582 592 

583#### Aperçus d'options (TypeScript)593<h4 id="option-previews-typescript">

594 Aperçus d'options (TypeScript)

595</h4>

584 596 

585`toolConfig.askUserQuestion.previewFormat` ajoute un champ `preview` à chaque option afin que votre application puisse afficher une maquette visuelle à côté du label. Sans ce paramètre, Claude ne génère pas d'aperçus et le champ est absent.597`toolConfig.askUserQuestion.previewFormat` ajoute un champ `preview` à chaque option afin que votre application puisse afficher une maquette visuelle à côté du label. Sans ce paramètre, Claude ne génère pas d'aperçus et le champ est absent.

586 598 


621}633}

622```634```

623 635 

624### Format de réponse636<h3 id="response-format">

637 Format de réponse

638</h3>

625 639 

626Retournez un objet `answers` mappant le champ `question` de chaque question au `label` de l'option sélectionnée :640Retournez un objet `answers` mappant le champ `question` de chaque question au `label` de l'option sélectionnée :

627 641 


645}659}

646```660```

647 661 

648#### Supporter l'entrée de texte libre662<h4 id="support-free-text-input">

663 Supporter l'entrée de texte libre

664</h4>

649 665 

650Les options prédéfinies de Claude ne couvriront pas toujours ce que les utilisateurs veulent. Pour permettre aux utilisateurs de taper leur propre réponse :666Les options prédéfinies de Claude ne couvriront pas toujours ce que les utilisateurs veulent. Pour permettre aux utilisateurs de taper leur propre réponse :

651 667 


654 670 

655Voir l'[exemple complet](#complete-example) ci-dessous pour une implémentation complète.671Voir l'[exemple complet](#complete-example) ci-dessous pour une implémentation complète.

656 672 

657### Exemple complet673<h3 id="complete-example">

674 Exemple complet

675</h3>

658 676 

659Claude pose des questions de clarification lorsqu'il a besoin d'une entrée utilisateur pour continuer. Par exemple, lorsqu'on lui demande d'aider à décider d'une pile technologique pour une application mobile, Claude pourrait poser des questions sur cross-platform vs native, les préférences de backend, ou les plates-formes cibles. Ces questions aident Claude à prendre des décisions qui correspondent aux préférences de l'utilisateur plutôt que de deviner.677Claude pose des questions de clarification lorsqu'il a besoin d'une entrée utilisateur pour continuer. Par exemple, lorsqu'on lui demande d'aider à décider d'une pile technologique pour une application mobile, Claude pourrait poser des questions sur cross-platform vs native, les préférences de backend, ou les plates-formes cibles. Ces questions aident Claude à prendre des décisions qui correspondent aux préférences de l'utilisateur plutôt que de deviner.

660 678 


821 ```839 ```

822</CodeGroup>840</CodeGroup>

823 841 

824## Limitations842<h2 id="limitations">

843 Limitations

844</h2>

825 845 

826* **Subagents** : `AskUserQuestion` n'est actuellement pas disponible dans les subagents générés via l'outil Agent846* **Subagents** : `AskUserQuestion` n'est actuellement pas disponible dans les subagents générés via l'outil Agent

827* **Limites de questions** : chaque appel `AskUserQuestion` supporte 1-4 questions avec 2-4 options chacune847* **Limites de questions** : chaque appel `AskUserQuestion` supporte 1-4 questions avec 2-4 options chacune

828 848 

829## Autres façons d'obtenir une entrée utilisateur849<h2 id="other-ways-to-get-user-input">

850 Autres façons d'obtenir une entrée utilisateur

851</h2>

830 852 

831Le callback `canUseTool` et l'outil `AskUserQuestion` couvrent la plupart des scénarios d'approbation et de clarification, mais le SDK offre d'autres façons d'obtenir une entrée des utilisateurs :853Le callback `canUseTool` et l'outil `AskUserQuestion` couvrent la plupart des scénarios d'approbation et de clarification, mais le SDK offre d'autres façons d'obtenir une entrée des utilisateurs :

832 854 

833### Streaming input855<h3 id="streaming-input">

856 Streaming input

857</h3>

834 858 

835Utilisez [streaming input](/fr/agent-sdk/streaming-vs-single-mode) lorsque vous avez besoin de :859Utilisez [streaming input](/fr/agent-sdk/streaming-vs-single-mode) lorsque vous avez besoin de :

836 860 


840 864 

841Streaming input est idéal pour les interfaces conversationnelles où les utilisateurs interagissent avec l'agent tout au long de l'exécution, pas seulement aux points d'approbation.865Streaming input est idéal pour les interfaces conversationnelles où les utilisateurs interagissent avec l'agent tout au long de l'exécution, pas seulement aux points d'approbation.

842 866 

843### Outils personnalisés867<h3 id="custom-tools">

868 Outils personnalisés

869</h3>

844 870 

845Utilisez [outils personnalisés](/fr/agent-sdk/custom-tools) lorsque vous avez besoin de :871Utilisez [outils personnalisés](/fr/agent-sdk/custom-tools) lorsque vous avez besoin de :

846 872 


850 876 

851Les outils personnalisés vous donnent un contrôle total sur l'interaction, mais nécessitent plus de travail d'implémentation que d'utiliser le callback `canUseTool` intégré.877Les outils personnalisés vous donnent un contrôle total sur l'interaction, mais nécessitent plus de travail d'implémentation que d'utiliser le callback `canUseTool` intégré.

852 878 

853## Ressources connexes879<h2 id="related-resources">

880 Ressources connexes

881</h2>

854 882 

855* [Configurer les permissions](/fr/agent-sdk/permissions) : configurer les modes et règles de permission883* [Configurer les permissions](/fr/agent-sdk/permissions) : configurer les modes et règles de permission

856* [Contrôler l'exécution avec les hooks](/fr/agent-sdk/hooks) : exécuter du code personnalisé à des points clés du cycle de vie de l'agent884* [Contrôler l'exécution avec les hooks](/fr/agent-sdk/hooks) : exécuter du code personnalisé à des points clés du cycle de vie de l'agent

agent-teams.md +31 −43

Details

7> Coordonnez plusieurs instances Claude Code travaillant ensemble en tant qu'équipe, avec des tâches partagées, la messagerie inter-agents et la gestion centralisée.7> Coordonnez plusieurs instances Claude Code travaillant ensemble en tant qu'équipe, avec des tâches partagées, la messagerie inter-agents et la gestion centralisée.

8 8 

9<Warning>9<Warning>

10 Les équipes d'agents sont expérimentales et désactivées par défaut. Activez-les en ajoutant `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` à votre [settings.json](/fr/settings) ou à votre 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.10 Les équipes d'agents sont expérimentales et désactivées par défaut. Activez-les en ajoutant `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` à votre [settings.json](/fr/settings) ou à votre 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</Warning>11</Warning>

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


15Contrairement aux [subagents](/fr/sub-agents), qui s'exécutent au sein d'une seule session et ne peuvent que rendre compte à l'agent principal, vous pouvez également interagir directement avec les coéquipiers individuels sans passer par le chef.15Contrairement aux [subagents](/fr/sub-agents), qui s'exécutent au sein d'une seule session et ne peuvent que rendre compte à l'agent principal, vous pouvez également interagir directement avec les coéquipiers individuels sans passer par le chef.

16 16 

17<Note>17<Note>

18 Les équipes d'agents nécessitent Claude Code v2.1.32 ou ultérieur. Vérifiez votre version avec `claude --version`.18 Cette page décrit les équipes d'agents à partir de la v2.1.178. Avec `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` défini, la création d'un coéquipier n'a plus besoin d'une étape de configuration, et le nettoyage se fait automatiquement à la fermeture de la session. Avant la v2.1.178, vous demandiez à Claude de créer et de nommer une équipe en premier, et Claude utilisait les outils `TeamCreate` et `TeamDelete` pour la configurer et la supprimer. Ces deux outils n'existent plus. L'entrée `team_name` sur l'outil Agent est acceptée mais ignorée, et le champ `team_name` dans les [payloads de hook](/fr/hooks#taskcreated) `TaskCreated`, `TaskCompleted` et `TeammateIdle` porte le nom dérivé de la session et est déprécié.

19</Note>19</Note>

20 20 

21Cette page couvre :21Cette page couvre :


78 Démarrer votre première équipe d'agents78 Démarrer votre première équipe d'agents

79</h2>79</h2>

80 80 

81Après avoir activé les équipes d'agents, demandez à Claude de créer une équipe d'agents et décrivez la tâche et la structure d'équipe que vous souhaitez en langage naturel. Claude crée l'équipe, génère les coéquipiers et coordonne le travail en fonction de votre prompt.81Après avoir activé les équipes d'agents, décrivez la tâche et les coéquipiers que vous souhaitez en langage naturel. Claude les crée et coordonne le travail en fonction de votre prompt.

82 82 

83Cet exemple fonctionne bien car les trois rôles sont indépendants et peuvent explorer le problème sans attendre les uns les autres :83Cet exemple fonctionne bien car les trois rôles sont indépendants et peuvent explorer le problème sans attendre les uns les autres :

84 84 

85```text theme={null}85```text theme={null}

86Je conçois un outil CLI qui aide les développeurs à suivre les commentaires TODO dans86Je conçois un outil CLI qui aide les développeurs à suivre les commentaires TODO dans

87leur base de code. Créez une équipe d'agents pour explorer cela sous différents angles : un87leur base de code. Créez trois coéquipiers pour explorer cela sous différents angles :

88coéquipier sur l'UX, un sur l'architecture technique, un jouant l'avocat du diable.88un sur l'UX, un sur l'architecture technique, un jouant l'avocat du diable.

89```89```

90 90 

91À partir de là, Claude crée une équipe avec une [liste de tâches partagée](/fr/interactive-mode#task-list), génère les coéquipiers pour chaque perspective, les fait explorer le problème, synthétise les conclusions et tente de [nettoyer l'équipe](#clean-up-the-team) une fois terminée.91À partir de là, Claude remplit une [liste de tâches partagée](/fr/interactive-mode#task-list), crée des coéquipiers pour chaque perspective, les fait explorer le problème, et synthétise les conclusions une fois terminé.

92 92 

93Le terminal du chef liste tous les coéquipiers et sur quoi ils travaillent. Utilisez Maj+Bas pour parcourir les coéquipiers et leur envoyer un message directement. Après le dernier coéquipier, Maj+Bas revient au chef.93Le terminal du chef liste tous les coéquipiers et sur quoi ils travaillent. Utilisez Maj+Bas pour parcourir les coéquipiers et leur envoyer un message directement. Après le dernier coéquipier, Maj+Bas revient au chef.

94 94 


113 `tmux` a des limitations connues sur certains systèmes d'exploitation et fonctionne traditionnellement mieux sur macOS. L'utilisation de `tmux -CC` dans iTerm2 est le point d'entrée suggéré dans `tmux`.113 `tmux` a des limitations connues sur certains systèmes d'exploitation et fonctionne traditionnellement mieux sur macOS. L'utilisation de `tmux -CC` dans iTerm2 est le point d'entrée suggéré dans `tmux`.

114</Note>114</Note>

115 115 

116La valeur par défaut est `"auto"`, qui utilise les volets divisés si vous êtes déjà en train de s'exécuter dans une session tmux, et in-process sinon. Le paramètre `"tmux"` active le mode volets divisés et détecte automatiquement s'il faut utiliser tmux ou iTerm2 en fonction de votre terminal. Pour remplacer, définissez [`teammateMode`](/fr/settings#available-settings) dans `~/.claude/settings.json` :116La valeur par défaut est `"auto"`, qui utilise les volets divisés si vous êtes déjà en train de s'exécuter dans une session tmux ou si votre terminal est iTerm2, et in-process sinon. Le paramètre `"tmux"` active le mode volets divisés et détecte automatiquement s'il faut utiliser tmux ou iTerm2 en fonction de votre terminal. Pour remplacer, définissez [`teammateMode`](/fr/settings#available-settings) dans `~/.claude/settings.json` :

117 117 

118```json theme={null}118```json theme={null}

119{119{


186 Arrêter les coéquipiers186 Arrêter les coéquipiers

187</h3>187</h3>

188 188 

189Pour terminer gracieusement la session d'un coéquipier :189Pour terminer gracieusement la session d'un coéquipier, référencez-le par son nom. Par exemple, avec un coéquipier nommé chercheur :

190 190 

191```text theme={null}191```text theme={null}

192Demandez au coéquipier chercheur d'arrêter192Demandez au coéquipier chercheur d'arrêter


194 194 

195Le chef envoie une demande d'arrêt. Le coéquipier peut approuver, quittant gracieusement, ou rejeter avec une explication.195Le chef envoie une demande d'arrêt. Le coéquipier peut approuver, quittant gracieusement, ou rejeter avec une explication.

196 196 

197<h3 id="clean-up-the-team">197Les répertoires partagés de l'équipe sont nettoyés automatiquement lorsque la session se termine, il n'y a donc pas d'étape de nettoyage séparé. Consultez [Architecture](#architecture) pour voir quels répertoires sont supprimés et lesquels persistent pour les sessions reprises.

198 Nettoyer l'équipe

199</h3>

200 

201Lorsque vous avez terminé, demandez au chef de nettoyer :

202 

203```text theme={null}

204Nettoyez l'équipe

205```

206 

207Cela supprime les ressources d'équipe partagées. Lorsque le chef exécute le nettoyage, il vérifie les coéquipiers actifs et échoue s'il y en a encore en cours d'exécution, alors arrêtez-les d'abord.

208 

209<Warning>

210 Utilisez toujours le chef pour nettoyer. Les coéquipiers ne doivent pas exécuter le nettoyage car leur contexte d'équipe peut ne pas se résoudre correctement, laissant potentiellement les ressources dans un état incohérent.

211</Warning>

212 198 

213<h3 id="enforce-quality-gates-with-hooks">199<h3 id="enforce-quality-gates-with-hooks">

214 Appliquer des portes de qualité avec des hooks200 Appliquer des portes de qualité avec des hooks


230 Comment Claude démarre les équipes d'agents216 Comment Claude démarre les équipes d'agents

231</h3>217</h3>

232 218 

233Il y a deux façons de démarrer les équipes d'agents :219Une équipe d'agents se forme lorsque le premier coéquipier est généré, la session principale agissant comme le chef. Il y a deux façons dont les coéquipiers sont générés :

234 220 

235* **Vous demandez une équipe** : donnez à Claude une tâche qui bénéficie du travail parallèle et demandez explicitement une équipe d'agents. Claude en crée une en fonction de vos instructions.221* **Vous demandez des coéquipiers** : donnez à Claude une tâche qui bénéficie du travail parallèle et demandez explicitement des coéquipiers. Claude les génère en fonction de vos instructions.

236* **Claude propose une équipe** : si Claude détermine que votre tâche bénéficierait du travail parallèle, il peut suggérer de créer une équipe. Vous confirmez avant qu'il ne procède.222* **Claude propose des coéquipiers** : si Claude détermine que votre tâche bénéficierait du travail parallèle, il peut suggérer de générer des coéquipiers. Vous confirmez avant qu'il ne procède.

237 223 

238Dans les deux cas, vous restez maître. Claude ne créera pas d'équipe sans votre approbation.224Dans les deux cas, vous restez maître. Claude ne générera pas de coéquipiers sans votre approbation.

239 225 

240<h3 id="architecture">226<h3 id="architecture">

241 Architecture227 Architecture


244Une équipe d'agents se compose de :230Une équipe d'agents se compose de :

245 231 

246| Composant | Rôle |232| Composant | Rôle |

247| :-------------------- | :-------------------------------------------------------------------------------------------------- |233| :-------------------- | :------------------------------------------------------------------------------------ |

248| **Chef d'équipe** | La session Claude Code principale qui crée l'équipe, génère les coéquipiers et coordonne le travail |234| **Chef d'équipe** | La session Claude Code principale qui génère les coéquipiers et coordonne le travail |

249| **Coéquipiers** | Des instances Claude Code distinctes qui travaillent chacune sur des tâches assignées |235| **Coéquipiers** | Des instances Claude Code distinctes qui travaillent chacune sur des tâches assignées |

250| **Liste de tâches** | Liste partagée d'éléments de travail que les coéquipiers revendiquent et complètent |236| **Liste de tâches** | Liste partagée d'éléments de travail que les coéquipiers revendiquent et complètent |

251| **Boîte aux lettres** | Système de messagerie pour la communication entre agents |237| **Boîte aux lettres** | Système de messagerie pour la communication entre agents |


254 240 

255Le système gère automatiquement les dépendances de tâches. Lorsqu'un coéquipier complète une tâche dont d'autres tâches dépendent, les tâches bloquées se débloquent sans intervention manuelle.241Le système gère automatiquement les dépendances de tâches. Lorsqu'un coéquipier complète une tâche dont d'autres tâches dépendent, les tâches bloquées se débloquent sans intervention manuelle.

256 242 

257Les équipes et les tâches sont stockées localement :243Les équipes et les tâches sont stockées localement sous un nom dérivé de la session. Le nom est `session-` suivi des huit premiers caractères de l'ID de session :

258 244 

259* **Configuration d'équipe** : `~/.claude/teams/{team-name}/config.json`245* **Configuration d'équipe** : `~/.claude/teams/{team-name}/config.json`

260* **Liste de tâches** : `~/.claude/tasks/{team-name}/`246* **Liste de tâches** : `~/.claude/tasks/{team-name}/`

261 247 

262Claude Code génère automatiquement ces deux éléments lorsque vous créez une équipe et les met à jour à mesure que les coéquipiers rejoignent, deviennent inactifs ou partent. La 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.248Claude Code génère automatiquement ces deux éléments au démarrage de la session et les met à jour à mesure que les coéquipiers rejoignent, deviennent inactifs ou partent. Le répertoire de configuration d'équipe est supprimé lorsque la session se termine. Le répertoire de liste de tâches persiste localement et n'est jamais téléchargé, donc les sessions reprises conservent leurs tâches. La rétention est régie par le même [`cleanupPeriodDays`](/fr/settings#available-settings) que vous contrôlez déjà pour les transcriptions de session.

249 

250La 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.

263 251 

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

265 253 


325Un seul examinateur tend à graviter vers un type de problème à la fois. Diviser les critères d'examen en domaines indépendants signifie que la sécurité, l'impact sur les performances et la couverture de test reçoivent tous une attention approfondie simultanément. Le prompt assigne à chaque coéquipier une lentille distincte pour qu'ils ne se chevauchent pas :313Un seul examinateur tend à graviter vers un type de problème à la fois. Diviser les critères d'examen en domaines indépendants signifie que la sécurité, l'impact sur les performances et la couverture de test reçoivent tous une attention approfondie simultanément. Le prompt assigne à chaque coéquipier une lentille distincte pour qu'ils ne se chevauchent pas :

326 314 

327```text theme={null}315```text theme={null}

328Créez une équipe d'agents pour examiner la PR #142. Générez trois examinateurs :316Spawn three teammates to review PR #142:

329- Un axé sur les implications de sécurité317- One focused on security implications

330- Un vérifiant l'impact sur les performances318- One checking performance impact

331- Un validant la couverture de test319- One validating test coverage

332Demandez-leur d'examiner et de signaler les conclusions.320Have them each review and report findings.

333```321```

334 322 

335Chaque examinateur travaille à partir de la même PR mais applique un filtre différent. Le chef synthétise les conclusions de tous les trois après qu'ils aient terminé.323Chaque examinateur travaille à partir de la même PR mais applique un filtre différent. Le chef synthétise les conclusions de tous les trois après qu'ils aient terminé.


341Lorsque la cause première est peu claire, un seul agent tend à trouver une explication plausible et s'arrête. Le prompt combat cela en rendant les coéquipiers explicitement adversaires : le travail de chacun n'est pas seulement d'enquêter sur sa propre théorie mais de contester les autres.329Lorsque la cause première est peu claire, un seul agent tend à trouver une explication plausible et s'arrête. Le prompt combat cela en rendant les coéquipiers explicitement adversaires : le travail de chacun n'est pas seulement d'enquêter sur sa propre théorie mais de contester les autres.

342 330 

343```text theme={null}331```text theme={null}

344Les utilisateurs signalent que l'application se ferme après un message au lieu de rester connectée.332Users report the app exits after one message instead of staying connected.

345Générez 5 coéquipiers agents pour enquêter sur différentes hypothèses. Demandez-leur de se parler333Spawn 5 agent teammates to investigate different hypotheses. Have them talk to

346pour essayer de réfuter les théories les uns des autres, comme un débat334each other to try to disprove each other's theories, like a scientific

347scientifique. Mettez à jour le document des conclusions avec le consensus qui émerge.335debate. Update the findings doc with whatever consensus emerges.

348```336```

349 337 

350La structure du débat est le mécanisme clé ici. L'enquête séquentielle souffre de l'ancrage : une fois qu'une théorie est explorée, l'enquête ultérieure est biaisée vers elle.338La structure du débat est le mécanisme clé ici. L'enquête séquentielle souffre de l'ancrage : une fois qu'une théorie est explorée, l'enquête ultérieure est biaisée vers elle.


483* **Pas de reprise de session avec les coéquipiers in-process** : `/resume` et `/rewind` ne restaurent pas les coéquipiers in-process. Après la reprise d'une session, le chef peut tenter d'envoyer un message aux coéquipiers qui n'existent plus. Si cela se produit, dites au chef de générer de nouveaux coéquipiers.471* **Pas de reprise de session avec les coéquipiers in-process** : `/resume` et `/rewind` ne restaurent pas les coéquipiers in-process. Après la reprise d'une session, le chef peut tenter d'envoyer un message aux coéquipiers qui n'existent plus. Si cela se produit, dites au chef de générer de nouveaux coéquipiers.

484* **L'état des tâches peut être en retard** : les coéquipiers échouent parfois à marquer les tâches comme complètes, ce qui bloque les tâches dépendantes. Si une tâche semble bloquée, vérifiez si le travail est réellement terminé et mettez à jour l'état de la tâche manuellement ou dites au chef de pousser le coéquipier.472* **L'état des tâches peut être en retard** : les coéquipiers échouent parfois à marquer les tâches comme complètes, ce qui bloque les tâches dépendantes. Si une tâche semble bloquée, vérifiez si le travail est réellement terminé et mettez à jour l'état de la tâche manuellement ou dites au chef de pousser le coéquipier.

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

486* **Une équipe à la fois** : un chef ne peut gérer qu'une seule équipe. Nettoyez l'équipe actuelle avant de créer une nouvelle.474* **Une équipe par session** : une session a exactement une équipe, limitée à cette session. Vous ne pouvez pas créer d'équipes nommées supplémentaires ou partager une équipe entre les sessions.

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

488* **Le chef est fixe** : la session qui crée l'équipe est le chef pour sa durée de vie. Vous ne pouvez pas promouvoir un coéquipier en chef ou transférer le leadership.476* **Le chef est fixe** : la session principale est le chef pour sa durée de vie. Vous ne pouvez pas promouvoir un coéquipier en chef ou transférer le leadership.

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

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

491 479 

agent-view.md +17 −8

Details

143 143 

144Le résumé d'une ligne dans chaque ligne est généré par un [modèle de classe Haiku](/fr/model-config) afin que la ligne puisse vous dire ce que la session fait, ce qu'elle a besoin, ou ce qu'elle a produit sans ouvrir la transcription. Pendant qu'une session fonctionne activement, le résumé s'actualise au maximum une fois toutes les 15 secondes, plus une fois quand chaque tour se termine.144Le résumé d'une ligne dans chaque ligne est généré par un [modèle de classe Haiku](/fr/model-config) afin que la ligne puisse vous dire ce que la session fait, ce qu'elle a besoin, ou ce qu'elle a produit sans ouvrir la transcription. Pendant qu'une session fonctionne activement, le résumé s'actualise au maximum une fois toutes les 15 secondes, plus une fois quand chaque tour se termine.

145 145 

146À partir de v2.1.161, quand la session exécute deux ou plusieurs éléments de travail parallèles, comme des sous-agents, des commandes shell en arrière-plan, ou des moniteurs, un nombre `done/total` comme `2/5` apparaît avant le texte du résumé.

147 

146Chaque actualisation est une courte demande de classe Haiku via votre fournisseur normal, facturée et traitée selon les mêmes [conditions d'utilisation des données](/fr/data-usage) que la session elle-même. Sur les fournisseurs tiers tels que Bedrock, Vertex AI, Microsoft Foundry, et les passerelles personnalisées, la demande revient au modèle principal de la session quand aucun modèle Haiku n'est configuré. Définissez [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/fr/model-config#environment-variables) pour choisir le modèle pour ces résumés sur ces fournisseurs.148Chaque actualisation est une courte demande de classe Haiku via votre fournisseur normal, facturée et traitée selon les mêmes [conditions d'utilisation des données](/fr/data-usage) que la session elle-même. Sur les fournisseurs tiers tels que Bedrock, Vertex AI, Microsoft Foundry, et les passerelles personnalisées, la demande revient au modèle principal de la session quand aucun modèle Haiku n'est configuré. Définissez [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/fr/model-config#environment-variables) pour choisir le modèle pour ces résumés sur ces fournisseurs.

147 149 

148<h3 id="pull-request-status">150<h3 id="pull-request-status">


170 172 

171Appuyez sur `Espace` sur une ligne sélectionnée pour ouvrir le panneau d'aperçu. Il affiche ce que la session a besoin de vous, sa sortie la plus récente, et toutes les pull requests qu'elle a ouvertes. La plupart du temps, c'est suffisant, et vous n'avez jamais besoin d'ouvrir la transcription complète.173Appuyez sur `Espace` sur une ligne sélectionnée pour ouvrir le panneau d'aperçu. Il affiche ce que la session a besoin de vous, sa sortie la plus récente, et toutes les pull requests qu'elle a ouvertes. La plupart du temps, c'est suffisant, et vous n'avez jamais besoin d'ouvrir la transcription complète.

172 174 

175À partir de v2.1.161, quand la session exécute des éléments de travail parallèles, le panneau nomme également le plus long en cours d'exécution et depuis combien de temps il s'exécute, afin que vous puissiez voir ce que la session attend sans vous attacher.

176 

173Tapez une réponse dans le panneau d'aperçu et appuyez sur `Entrée` pour l'envoyer à cette session. Quand la session pose une question à choix multiples, le panneau d'aperçu affiche les options et vous pouvez appuyer sur une touche numérique pour en choisir une. Pour les autres sessions bloquées, appuyez sur `Tab` pour remplir l'entrée avec une réponse suggérée que vous pouvez modifier avant d'envoyer. Préfixez une réponse avec `!` pour envoyer une commande Bash à la place.177Tapez une réponse dans le panneau d'aperçu et appuyez sur `Entrée` pour l'envoyer à cette session. Quand la session pose une question à choix multiples, le panneau d'aperçu affiche les options et vous pouvez appuyer sur une touche numérique pour en choisir une. Pour les autres sessions bloquées, appuyez sur `Tab` pour remplir l'entrée avec une réponse suggérée que vous pouvez modifier avant d'envoyer. Préfixez une réponse avec `!` pour envoyer une commande Bash à la place.

174 178 

175Avec la [dictée vocale](/fr/voice-dictation) activée, maintenez ou appuyez sur votre touche push-to-talk pendant que l'entrée de réponse est active pour dicter une réponse au lieu de la taper. La même chose fonctionne dans l'entrée de lancement en bas de la vue agent.179À partir de v2.1.145, avec la [dictée vocale](/fr/voice-dictation) activée, maintenez ou appuyez sur votre touche push-to-talk pendant que l'entrée de réponse est active pour dicter une réponse au lieu de la taper. La même chose fonctionne dans l'entrée de lancement en bas de la vue agent.

176 180 

177Utilisez `↑` et `↓` pour apercevoir les sessions adjacentes sans fermer le panneau, ou `→` pour vous attacher.181Utilisez `↑` et `↓` pour apercevoir les sessions adjacentes sans fermer le panneau, ou `→` pour vous attacher.

178 182 


220Tapez dans l'entrée de lancement pour filtrer au lieu de lancer :224Tapez dans l'entrée de lancement pour filtrer au lieu de lancer :

221 225 

222| Filtre | Affiche |226| Filtre | Affiche |

223| :------------------------ | :----------------------------------------------------------------------------------------------------------- |227| :------------------------- | :----------------------------------------------------------------------------------------------------------- |

224| `a:<name>` | Sessions exécutant l'agent nommé |228| `a:<name>` | Sessions exécutant l'agent nommé |

225| `s:<state>` | Sessions dans l'état donné, comme `s:working`. Accepte également `s:blocked` pour tout ce qui attend de vous |229| `s:<state>` | Sessions dans l'état donné, comme `s:working`. Accepte également `s:blocked` pour tout ce qui attend de vous |

226| `#<number>` ou une URL PR | La session travaillant sur cette pull request |230| `#<number>` ou une URL PR | La session travaillant sur cette pull request |

231| N'importe quelle autre URL | La session dont la première invite contenait cette URL |

227 232 

228<h3 id="keyboard-shortcuts">233<h3 id="keyboard-shortcuts">

229 Raccourcis clavier234 Raccourcis clavier


478Chaque session en arrière-plan a un ID court que vous pouvez utiliser depuis le shell. L'ID est affiché quand vous démarrez une session avec `claude --bg`, et l'ID de chaque session est son nom de répertoire sous `~/.claude/jobs/`. Ces commandes sont utiles pour les scripts ou quand vous ne voulez pas ouvrir la vue agent.483Chaque session en arrière-plan a un ID court que vous pouvez utiliser depuis le shell. L'ID est affiché quand vous démarrez une session avec `claude --bg`, et l'ID de chaque session est son nom de répertoire sous `~/.claude/jobs/`. Ces commandes sont utiles pour les scripts ou quand vous ne voulez pas ouvrir la vue agent.

479 484 

480| Commande | Objectif |485| Commande | Objectif |

481| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |486| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

482| `claude agents` | Ouvrir la vue agent |487| `claude agents` | Ouvrir la vue agent |

483| `claude agents --cwd <path>` | Ouvrir la vue agent limitée aux sessions démarrées sous `<path>` |488| `claude agents --cwd <path>` | Ouvrir la vue agent limitée aux sessions démarrées sous `<path>` |

484| `claude agents --json` | Afficher les sessions actives en tant que tableau JSON et quitter. Chaque entrée a `pid`, `cwd`, `kind`, et `startedAt`, plus `sessionId`, `name`, et `status` quand ils sont définis. Combinez avec `--cwd <path>` pour filtrer |489| `claude agents --json` | Afficher les sessions actives en tant que tableau JSON et quitter : chaque session active, plus les sessions en arrière-plan qui travaillent encore ou sont bloquées même quand leur processus a quitté. Ajoutez `--all` pour inclure aussi les sessions en arrière-plan terminées. Chaque entrée a `cwd`, `kind`, et `startedAt`. Les entrées en arrière-plan ont aussi `id`, utilisable avec `claude attach`/`logs`/`stop`, et `state` : l'une de `working`, `blocked`, `done`, `failed`, ou `stopped`. `pid` et `status` sont présents uniquement tant que le processus est actif, plus `waitingFor` quand status est `waiting`, qui indique sur quoi la session est bloquée, comme `permission prompt` ou `input needed` ; `sessionId` et `name` apparaissent quand ils sont définis. Combinez avec `--cwd <path>` pour filtrer |

485| `claude attach <id>` | S'attacher à une session dans ce terminal |490| `claude attach <id>` | S'attacher à une session dans ce terminal |

486| `claude logs <id>` | Afficher la sortie récente de la session |491| `claude logs <id>` | Afficher la sortie récente de la session |

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


530 535 

531Chaque session en arrière-plan a la variable d'environnement `CLAUDE_JOB_DIR` définie à son répertoire `~/.claude/jobs/<id>`, donc les commandes shell que la session exécute peuvent écrire des fichiers temporaires à `$CLAUDE_JOB_DIR/tmp` sans entrer en collision avec les sessions parallèles.536Chaque session en arrière-plan a la variable d'environnement `CLAUDE_JOB_DIR` définie à son répertoire `~/.claude/jobs/<id>`, donc les commandes shell que la session exécute peuvent écrire des fichiers temporaires à `$CLAUDE_JOB_DIR/tmp` sans entrer en collision avec les sessions parallèles.

532 537 

533Pour inspecter cet état sans lire les fichiers directement, exécutez `claude daemon status`. Il rapporte si le superviseur est accessible, son ID de processus et sa version, le répertoire socket, et combien de sessions en arrière-plan sont actives. `/doctor` inclut un résumé de la même vérification. Sur Windows, `claude daemon status` affiche l'erreur de fichier sous-jacente quand le fichier de clé pipe du daemon est verrouillé ou illisible au lieu de signaler un échec de connexion générique.538Pour inspecter cet état sans lire les fichiers directement, exécutez `claude daemon status`. Il rapporte si le superviseur est accessible, son ID de processus et sa version, le répertoire socket, et combien de sessions en arrière-plan sont actives. `/doctor` inclut un résumé de la même vérification.

539 

540La 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. Quand Claude Code est installé en tant que service du système d'exploitation, la commande suggérée est `claude daemon stop` sans le drapeau.

541 

542Sur Windows, `claude daemon status` affiche l'erreur de fichier sous-jacente quand le fichier de clé pipe du daemon est verrouillé ou illisible au lieu de signaler un échec de connexion générique.

534 543 

535<h3 id="turn-off-agent-view">544<h3 id="turn-off-agent-view">

536 Désactiver la vue agent545 Désactiver la vue agent


556 565 

557Avant de lancer votre première session, la vue agent affiche un court indice d'intégration avec des invites d'exemple à la place de la liste des sessions. Tapez une invite dans l'entrée en bas et appuyez sur `Entrée` pour lancer votre première session.566Avant de lancer votre première session, la vue agent affiche un court indice d'intégration avec des invites d'exemple à la place de la liste des sessions. Tapez une invite dans l'entrée en bas et appuyez sur `Entrée` pour lancer votre première session.

558 567 

559<h3 id="cannot-open-agents-because-background-tasks-are-running">568<h3 id="cannot-open-agents-because-work-is-running-in-the-background">

560 Impossible d'ouvrir les agents car des tâches en arrière-plan s'exécutent569 Impossible d'ouvrir les agents car du travail s'exécute en arrière-plan

561</h3>570</h3>

562 571 

563Si appuyer sur `←` pour mettre la session actuelle en arrière-plan affiche `Cannot open agents — N background task(s) running`, la session a du travail en cours comme un sous-agent, un workflow dynamique, ou une commande shell en arrière-plan, et le raccourci n'abandonnera pas silencieusement. Exécutez `/tasks` pour voir ce qui s'exécute, puis `/bg` pour confirmer l'abandon. Voir [Depuis l'intérieur d'une session](#from-inside-a-session) pour savoir ce qui se transfère et ce qui ne se transfère pas quand vous mettez en arrière-plan.572Si appuyer sur `←` pour mettre la session actuelle en arrière-plan affiche `Cannot open agents — N still running in the background`, la session a du travail en cours comme un sous-agent, un workflow dynamique, ou une commande shell en arrière-plan, et le raccourci n'abandonnera pas silencieusement. Exécutez `/tasks` pour voir ce qui s'exécute, puis `/bg` pour confirmer l'abandon. Voir [Depuis l'intérieur d'une session](#from-inside-a-session) pour savoir ce qui se transfère et ce qui ne se transfère pas quand vous mettez en arrière-plan.

564 573 

565<h3 id="prompt-rejected-as-too-short">574<h3 id="prompt-rejected-as-too-short">

566 Invite rejetée comme trop courte575 Invite rejetée comme trop courte

agents.md +2 −2

Details

9[Les sous-agents](/fr/sub-agents), [la vue agent](/fr/agent-view), [les équipes d'agents](/fr/agent-teams) et [les workflows dynamiques](/fr/workflows) parallélisent chacun le travail d'une manière différente. Le bon choix dépend de si vous voulez rester dans chaque conversation vous-même, déléguer des tâches et revérifier plus tard, ou laisser Claude coordonner un groupe de travailleurs pour vous.9[Les sous-agents](/fr/sub-agents), [la vue agent](/fr/agent-view), [les équipes d'agents](/fr/agent-teams) et [les workflows dynamiques](/fr/workflows) parallélisent chacun le travail d'une manière différente. Le bon choix dépend de si vous voulez rester dans chaque conversation vous-même, déléguer des tâches et revérifier plus tard, ou laisser Claude coordonner un groupe de travailleurs pour vous.

10 10 

11| Approche | Ce qu'elle vous offre | Utilisez-la quand |11| Approche | Ce qu'elle vous offre | Utilisez-la quand |

12| :------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |12| :------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

13| [Sous-agents](/fr/sub-agents) | Des travailleurs délégués dans une session qui effectuent une tâche secondaire dans leur propre contexte et retournent un résumé | Une tâche secondaire inonderait votre conversation principale avec des résultats de recherche, des journaux ou des contenus de fichiers que vous ne référencerez plus |13| [Sous-agents](/fr/sub-agents) | Des travailleurs délégués dans une session qui effectuent une tâche secondaire dans leur propre contexte et retournent un résumé | Une tâche secondaire inonderait votre conversation principale avec des résultats de recherche, des journaux ou des contenus de fichiers que vous ne référencerez plus |

14| [Vue agent](/fr/agent-view) | Un écran pour dispatcher et surveiller les sessions s'exécutant en arrière-plan, ouvert avec `claude agents`. Aperçu de recherche | Vous avez plusieurs tâches indépendantes et voulez les déléguer, vérifier l'état en un coup d'œil et intervenir uniquement quand l'une d'elles a besoin de vous |14| [Vue agent](/fr/agent-view) | Un écran pour dispatcher et surveiller les sessions s'exécutant en arrière-plan, ouvert avec `claude agents`. Aperçu de recherche | Vous avez plusieurs tâches indépendantes et voulez les déléguer, vérifier l'état en un coup d'œil et intervenir uniquement quand l'une d'elles a besoin de vous |

15| [Équipes d'agents](/fr/agent-teams) | Plusieurs sessions coordonnées avec une liste de tâches partagée et une messagerie inter-agents, gérées par un responsable. Expérimental et désactivé par défaut | Vous voulez que Claude divise un projet en morceaux, les assigne et maintient les travailleurs synchronisés |15| [Équipes d'agents](/fr/agent-teams) | Plusieurs sessions coordonnées avec une liste de tâches partagée et une messagerie inter-agents, gérées par un responsable. Expérimental et désactivé par défaut | Vous voulez que Claude divise un projet en morceaux, les assigne et maintient les travailleurs synchronisés |

16| [Workflows dynamiques](/fr/workflows) | Un script qui exécute de nombreux sous-agents et vérifie leurs résultats, pour un travail trop important pour être coordonné en un seul tour ou qui nécessite plus d'une seule passe. Aperçu de recherche | Une tâche dépasse une poignée de sous-agents, ou vous voulez que les résultats soient vérifiés les uns par rapport aux autres : un audit à l'échelle de la base de code, une migration de 500 fichiers, une recherche vérifiée de manière croisée, ou un plan élaboré sous plusieurs angles |16| [Workflows dynamiques](/fr/workflows) | Un script qui exécute de nombreux sous-agents et vérifie leurs résultats, pour un travail trop important pour être coordonné en un seul tour ou qui nécessite plus d'une seule passe | Une tâche dépasse une poignée de sous-agents, ou vous voulez que les résultats soient vérifiés les uns par rapport aux autres : un audit à l'échelle de la base de code, une migration de 500 fichiers, une recherche vérifiée de manière croisée, ou un plan élaboré sous plusieurs angles |

17 17 

18Dans chaque approche, les travailleurs sont des sessions Claude. Pour impliquer un outil différent, exposez-le à Claude en tant que [serveur MCP](/fr/mcp).18Dans chaque approche, les travailleurs sont des sessions Claude. Pour impliquer un outil différent, exposez-le à Claude en tant que [serveur MCP](/fr/mcp).

19 19 

Details

6 6 

7> Découvrez comment configurer Claude Code via Amazon Bedrock, y compris la configuration, la configuration IAM et le dépannage.7> Découvrez comment configurer Claude Code via Amazon Bedrock, y compris la configuration, la configuration IAM et le dépannage.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79<ContactSalesCard surface="bedrock" />

80 

9<h2 id="prerequisites">81<h2 id="prerequisites">

10 Prérequis82 Prérequis

11</h2>83</h2>


141 "Credentials": {213 "Credentials": {

142 "AccessKeyId": "value",214 "AccessKeyId": "value",

143 "SecretAccessKey": "value",215 "SecretAccessKey": "value",

144 "SessionToken": "value"216 "SessionToken": "value",

217 "Expiration": "2026-01-01T00:00:00Z"

145 }218 }

146}219}

147```220```

148 221 

222`Expiration` est facultatif. {/* min-version: 2.1.176 */}À partir de Claude Code v2.1.176, lorsque la commande retourne une `Expiration` ISO 8601 valide, Claude Code met en cache les identifiants jusqu'à cinq minutes avant cette heure. Sans cela, ou sur les versions antérieures, les identifiants sont mis en cache pendant une heure.

223 

149<h3 id="3-configure-claude-code">224<h3 id="3-configure-claude-code">

150 3. Configurer Claude Code225 3. Configurer Claude Code

151</h3>226</h3>


155```bash theme={null}230```bash theme={null}

156# Enable Bedrock integration231# Enable Bedrock integration

157export CLAUDE_CODE_USE_BEDROCK=1232export CLAUDE_CODE_USE_BEDROCK=1

158export AWS_REGION=us-east-1 # or your preferred region233export AWS_REGION=us-east-1 # optional if your AWS profile already sets a region

159 234 

160# Optional: Override the AWS region for the small/fast model (Bedrock and Mantle).235# Optional: Override the AWS region for the small/fast model (Bedrock and Mantle).

161# On Bedrock, has no effect without ANTHROPIC_DEFAULT_HAIKU_MODEL236# On Bedrock, has no effect without ANTHROPIC_DEFAULT_HAIKU_MODEL


168 243 

169Lors de l'activation de Bedrock pour Claude Code, gardez à l'esprit les points suivants :244Lors de l'activation de Bedrock pour Claude Code, gardez à l'esprit les points suivants :

170 245 

171* `AWS_REGION` est une variable d'environnement requise. Claude Code ne lit pas à partir du fichier de configuration `.aws` pour ce paramètre.246* {/* min-version: 2.1.172 */}À partir de la v2.1.172, vous devez uniquement définir `AWS_REGION` pour remplacer la région de votre profil AWS ou lorsque votre profil n'a pas de région. Claude Code résout la région dans cet ordre :

247 

248 * `AWS_REGION`

249 * `AWS_DEFAULT_REGION`

250 * la `region` définie sur votre profil AWS actif, lue d'abord à partir du fichier des identifiants partagés AWS, puis du fichier de configuration partagé, en correspondant avec la précédence du SDK AWS

251 * `us-east-1`

252 

253 Le profil actif est `AWS_PROFILE` s'il est défini, sinon `default`. Définissez `AWS_SHARED_CREDENTIALS_FILE` ou `AWS_CONFIG_FILE` pour pointer vers des chemins de fichiers non par défaut. Exécutez `/status` pour voir la région résolue. Lorsque la région provient de vos fichiers de configuration AWS ou du repli par défaut, `/status` note également la source. Sur la v2.1.171 et antérieures, Claude Code ne lit pas les fichiers de configuration AWS, donc définissez `AWS_REGION` explicitement.

172* Lors de l'utilisation de Bedrock, la commande `/logout` est indisponible car l'authentification est gérée via les identifiants AWS.254* Lors de l'utilisation de Bedrock, la commande `/logout` est indisponible car l'authentification est gérée via les identifiants AWS.

173* L'outil WebSearch n'est pas disponible sur Bedrock. Voir [Comportement de l'outil WebSearch](/fr/tools-reference#websearch-tool-behavior).255* L'outil WebSearch n'est pas disponible sur Bedrock. Voir [Comportement de l'outil WebSearch](/fr/tools-reference#websearch-tool-behavior).

174* Vous pouvez utiliser des fichiers de paramètres pour les variables d'environnement comme `AWS_PROFILE` que vous ne voulez pas divulguer à d'autres processus. Voir [Paramètres](/fr/settings) pour plus d'informations.256* Vous pouvez utiliser des fichiers de paramètres pour les variables d'environnement comme `AWS_PROFILE` que vous ne voulez pas divulguer à d'autres processus. Voir [Paramètres](/fr/settings) pour plus d'informations.


178</h3>260</h3>

179 261 

180<Warning>262<Warning>

181 Épinglez les versions de modèle spécifiques lors du déploiement pour plusieurs utilisateurs. Sans épinglage, les alias de modèle tels que `sonnet` et `opus` se résolvent à la dernière version, qui peut ne pas encore être disponible dans votre compte Bedrock lorsqu'Anthropic publie une mise à jour. Claude Code [revient](#startup-model-checks) à la version précédente au démarrage lorsque la dernière n'est pas disponible, mais l'épinglage vous permet de contrôler quand vos utilisateurs passent à un nouveau modèle.263 Épinglez les versions de modèle spécifiques lors du déploiement pour plusieurs utilisateurs. Sans épinglage, les alias de modèle tels que `sonnet` et `opus` se résolvent à la valeur par défaut intégrée de Claude Code pour Bedrock, qui peut être en retard par rapport à la version la plus récente et peut ne pas encore être disponible dans votre compte. Claude Code [revient](#startup-model-checks) à la version précédente au démarrage lorsque la valeur par défaut n'est pas disponible, mais l'épinglage vous permet de contrôler quand vos utilisateurs passent à un nouveau modèle.

182</Warning>264</Warning>

183 265 

184Définissez ces variables d'environnement sur des ID de modèle Bedrock spécifiques.266Définissez ces variables d'environnement sur des ID de modèle Bedrock spécifiques.


191export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'273export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'

192```274```

193 275 

194Ces variables utilisent des ID de profil d'inférence inter-régions (avec le préfixe `us.`). Si vous utilisez un préfixe de région différent ou des profils d'inférence d'application, ajustez en conséquence. Pour les ID de modèle actuels et hérités, voir [Aperçu des modèles](https://platform.claude.com/docs/en/about-claude/models/overview). Voir [Configuration du modèle](/fr/model-config#pin-models-for-third-party-deployments) pour la liste complète des variables d'environnement.276Ces variables utilisent des ID de profil d'inférence inter-régions (avec le préfixe `us.`). Si vous utilisez un préfixe de région différent ou des profils d'inférence d'application, ajustez en conséquence. Dans les régions AWS GovCloud, utilisez le préfixe `us-gov.`. Pour les ID de modèle actuels et hérités, voir [Aperçu des modèles](https://platform.claude.com/docs/en/about-claude/models/overview). Voir [Configuration du modèle](/fr/model-config#pin-models-for-third-party-deployments) pour la liste complète des variables d'environnement.

195 277 

196Claude Code utilise ces modèles par défaut lorsqu'aucune variable d'épinglage n'est définie :278Claude Code utilise ces modèles par défaut lorsqu'aucune variable d'épinglage n'est définie :

197 279 


366export AWS_REGION=us-east-1448export AWS_REGION=us-east-1

367```449```

368 450 

369Claude Code construit l'URL du point de terminaison à partir de `AWS_REGION`. Pour la remplacer pour un point de terminaison personnalisé ou une passerelle, définissez `ANTHROPIC_BEDROCK_MANTLE_BASE_URL`.451Claude Code construit l'URL du point de terminaison à partir de la région AWS. {/* min-version: 2.1.172 */}À partir de la v2.1.172, la région est résolue avec la même priorité que [Bedrock ci-dessus](#3-configure-claude-code) ; les versions antérieures utilisent uniquement `AWS_REGION`. Pour remplacer l'URL pour un point de terminaison personnalisé ou une passerelle, définissez `ANTHROPIC_BEDROCK_MANTLE_BASE_URL`.

370 452 

371Exécutez `/status` dans Claude Code pour confirmer. La ligne du fournisseur affiche `Amazon Bedrock (Mantle)` lorsque Mantle est actif.453Exécutez `/status` dans Claude Code pour confirmer. La ligne du fournisseur affiche `Amazon Bedrock (Mantle)` lorsque Mantle est actif.

372 454 

Details

136* **Intervalles d'actualisation** : par défaut, `apiKeyHelper` est appelé après 5 minutes ou en réponse HTTP 401. Définissez la variable d'environnement `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` pour les intervalles d'actualisation personnalisés.136* **Intervalles d'actualisation** : par défaut, `apiKeyHelper` est appelé après 5 minutes ou en réponse HTTP 401. Définissez la variable d'environnement `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` pour les intervalles d'actualisation personnalisés.

137* **Avis d'assistant lent** : si `apiKeyHelper` prend plus de 10 secondes pour retourner une clé, Claude Code affiche un avis d'avertissement dans la barre d'invite montrant le temps écoulé. Si vous voyez cet avis régulièrement, vérifiez si votre script d'identifiants peut être optimisé.137* **Avis d'assistant lent** : si `apiKeyHelper` prend plus de 10 secondes pour retourner une clé, Claude Code affiche un avis d'avertissement dans la barre d'invite montrant le temps écoulé. Si vous voyez cet avis régulièrement, vérifiez si votre script d'identifiants peut être optimisé.

138 138 

139`apiKeyHelper`, `ANTHROPIC_API_KEY` et `ANTHROPIC_AUTH_TOKEN` s'appliquent uniquement aux sessions CLI de terminal. Claude Desktop et les sessions distantes utilisent OAuth exclusivement et n'appellent pas `apiKeyHelper` ni ne lisent les variables d'environnement de clé API.139`apiKeyHelper`, `ANTHROPIC_API_KEY` et `ANTHROPIC_AUTH_TOKEN` s'appliquent uniquement aux sessions CLI de terminal. Claude Desktop et les sessions cloud utilisent OAuth exclusivement et n'appellent pas `apiKeyHelper` ni ne lisent les variables d'environnement de clé API.

140 140 

141<h3 id="authentication-precedence">141<h3 id="authentication-precedence">

142 Ordre de priorité de l'authentification142 Ordre de priorité de l'authentification

Details

6 6 

7> Indiquez au classificateur du mode auto quels dépôts, buckets et domaines votre organisation approuve. Définissez le contexte d'environnement, remplacez les règles de blocage et d'autorisation par défaut, et inspectez votre configuration effective avec les sous-commandes CLI du mode auto.7> Indiquez au classificateur du mode auto quels dépôts, buckets et domaines votre organisation approuve. Définissez le contexte d'environnement, remplacez les règles de blocage et d'autorisation par défaut, et inspectez votre configuration effective avec les sous-commandes CLI du mode auto.

8 8 

9[Le mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) permet à Claude Code de s'exécuter sans invites de permission en acheminant chaque appel d'outil via un classificateur qui bloque tout ce qui est irréversible, destructeur ou destiné en dehors de votre environnement. Utilisez le bloc de paramètres `autoMode` pour indiquer à ce classificateur quels dépôts, buckets et domaines votre organisation approuve, afin qu'il cesse de bloquer les opérations internes courantes.9[Le mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) permet à Claude Code de s'exécuter sans invites de permission en acheminant chaque appel d'outil via un classificateur qui bloque tout ce qui est irréversible, destructeur ou destiné en dehors de votre environnement. Les règles de refus et de demande explicite sont évaluées avant le classificateur et bloquent ou invitent toujours. Utilisez le bloc de paramètres `autoMode` pour indiquer à ce classificateur quels dépôts, buckets et domaines votre organisation approuve, afin qu'il cesse de bloquer les opérations internes courantes.

10 10 

11<Note>11<Note>

12 Le mode auto est disponible pour tous les utilisateurs sur l'API Anthropic. Sur Amazon Bedrock, Google Cloud Vertex AI et Microsoft Foundry, vous devez d'abord [définir `CLAUDE_CODE_ENABLE_AUTO_MODE`](/fr/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry). Si Claude Code signale que le mode auto n'est pas disponible pour votre compte, consultez les [exigences complètes](/fr/permission-modes#eliminate-prompts-with-auto-mode), qui couvrent également les modèles pris en charge et l'activation par l'administrateur sur les plans Team et Enterprise.12 Le mode auto est disponible pour tous les utilisateurs sur l'API Anthropic. Sur Amazon Bedrock, Google Cloud Vertex AI et Microsoft Foundry, vous devez d'abord [définir `CLAUDE_CODE_ENABLE_AUTO_MODE`](/fr/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry). Si Claude Code signale que le mode auto n'est pas disponible pour votre compte, consultez les [exigences complètes](/fr/permission-modes#eliminate-prompts-with-auto-mode), qui couvrent également les modèles pris en charge et l'activation par l'administrateur sur les plans Team et Enterprise.


35| Portée | Fichier | Utiliser pour |35| Portée | Fichier | Utiliser pour |

36| :-------------------------------- | :---------------------------------------------- | :---------------------------------------------------------- |36| :-------------------------------- | :---------------------------------------------- | :---------------------------------------------------------- |

37| Un développeur | `~/.claude/settings.json` | Infrastructure approuvée personnelle |37| Un développeur | `~/.claude/settings.json` | Infrastructure approuvée personnelle |

38| Un projet, un développeur | `.claude/settings.local.json` | Buckets ou services approuvés par projet, gitignorés |38| Un projet, un développeur | `.claude/settings.local.json` | Buckets ou services approuvés par projet |

39| À l'échelle de l'organisation | [Paramètres gérés](/fr/server-managed-settings) | Infrastructure approuvée distribuée à tous les développeurs |39| À l'échelle de l'organisation | [Paramètres gérés](/fr/server-managed-settings) | Infrastructure approuvée distribuée à tous les développeurs |

40| Drapeau `--settings` ou Agent SDK | JSON en ligne | Remplacements par invocation pour l'automatisation |40| Drapeau `--settings` ou Agent SDK | JSON en ligne | Remplacements par invocation pour l'automatisation |

41 41 

champion-kit.md +1 −1

Details

119 Pointez vers la fonctionnalité plutôt que vers la documentation119 Pointez vers la fonctionnalité plutôt que vers la documentation

120</h3>120</h3>

121 121 

122Une réponse comme « Essayez le mode plan, appuyez sur `Maj+Tab` jusqu'à ce que vous le voyiez » est plus utile au moment que un lien vers la documentation. Si la personne a besoin de plus de profondeur plus tard, elle la trouvera d'elle-même ; en ce moment, elle a besoin de la seule chose qui la déverrouille.122Une réponse comme « Essayez le mode plan, appuyez sur `Maj+Tab` jusqu'à ce que vous le voyiez » est plus utile au moment qu'un lien vers la documentation. Si la personne a besoin de plus de profondeur plus tard, elle la trouvera d'elle-même ; en ce moment, elle a besoin de la seule chose qui la déverrouille.

123 123 

124<h3 id="questions-you-are-likely-to-hear">124<h3 id="questions-you-are-likely-to-hear">

125 Questions que vous êtes susceptible d'entendre125 Questions que vous êtes susceptible d'entendre

channels.md +2 −2

Details

269 </Step>269 </Step>

270</Steps>270</Steps>

271 271 

272Si Claude rencontre une invite de permission alors que vous êtes loin du terminal, la session s'interrompt jusqu'à ce que vous répondiez. Les serveurs de canaux qui déclarent la [capacité de relais de permission](/fr/channels-reference#relay-permission-prompts) peuvent vous transférer ces invites pour que vous puissiez approuver ou refuser à distance. Pour une utilisation sans surveillance, [`--dangerously-skip-permissions`](/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) contourne complètement les invites, mais utilisez-le uniquement dans les environnements auxquels vous faites confiance.272Si Claude rencontre une invite de permission alors que vous êtes loin du terminal, la session s'interrompt jusqu'à ce que vous répondiez. Les serveurs de canaux qui déclarent la [capacité de relais de permission](/fr/channels-reference#relay-permission-prompts) peuvent vous transférer ces invites pour que vous puissiez approuver ou refuser à distance. Pour une utilisation sans surveillance, [`--dangerously-skip-permissions`](/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) contourne les invites autres que les règles d'ask explicites, mais utilisez-le uniquement dans les environnements auxquels vous faites confiance.

273 273 

274Lorsque vous exécutez des canaux en mode non interactif avec `-p`, les outils qui nécessitent une entrée de terminal, tels que les questions à choix multiples et l'approbation du mode plan, sont désactivés pour que la session ne s'arrête jamais en attente d'entrée.274Lorsque vous exécutez des canaux en mode non interactif avec `-p`, les outils qui nécessitent une entrée de terminal, tels que les questions à choix multiples et l'approbation du mode plan, sont désactivés pour que la session ne s'arrête jamais en attente d'entrée.

275 275 


363| ---------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |363| ---------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |

364| [Claude Code sur le web](/fr/claude-code-on-the-web) | Exécute les tâches dans un nouveau bac à sable cloud, cloné à partir de GitHub | Déléguer le travail asynchrone autonome que vous vérifiez plus tard |364| [Claude Code sur le web](/fr/claude-code-on-the-web) | Exécute les tâches dans un nouveau bac à sable cloud, cloné à partir de GitHub | Déléguer le travail asynchrone autonome que vous vérifiez plus tard |

365| [Claude dans Slack](/fr/slack) | Lance une session web à partir d'une mention `@Claude` dans un canal ou un fil | Démarrer les tâches directement à partir du contexte de conversation d'équipe |365| [Claude dans Slack](/fr/slack) | Lance une session web à partir d'une mention `@Claude` dans un canal ou un fil | Démarrer les tâches directement à partir du contexte de conversation d'équipe |

366| [Serveur MCP](/fr/mcp) standard | Claude l'interroge pendant une tâche ; rien n'est envoyé à la session | Donner à Claude un accès à la demande pour lire ou interroger un système |366| Serveur [MCP](/fr/mcp) standard | Claude l'interroge pendant une tâche ; rien n'est envoyé à la session | Donner à Claude un accès à la demande pour lire ou interroger un système |

367| [Remote Control](/fr/remote-control) | Vous pilotez votre session locale à partir de claude.ai ou de l'application mobile Claude | Diriger une session en cours pendant que vous êtes loin de votre bureau |367| [Remote Control](/fr/remote-control) | Vous pilotez votre session locale à partir de claude.ai ou de l'application mobile Claude | Diriger une session en cours pendant que vous êtes loin de votre bureau |

368 368 

369Les canaux comblent le vide dans cette liste en envoyant des événements de sources non-Claude dans votre session locale déjà active.369Les canaux comblent le vide dans cette liste en envoyant des événements de sources non-Claude dans votre session locale déjà active.

Details

142 claude --dangerously-load-development-channels server:webhook142 claude --dangerously-load-development-channels server:webhook

143 ```143 ```

144 144 

145 La première fois que vous démarrez une session dans ce projet, Claude Code demande le consentement avant d'utiliser le nouveau serveur de `.mcp.json`. La boîte de dialogue signale ' Nouveau serveur MCP trouvé dans ce projet : webhook '. Sélectionnez **Utiliser ce serveur MCP** pour continuer.

146 

145 Quand Claude Code démarre, il lit votre configuration MCP, lance votre `webhook.ts` en tant que sous-processus, et l'écouteur HTTP démarre automatiquement sur le port que vous avez configuré (8788 dans cet exemple). Vous n'avez pas besoin de lancer le serveur vous-même.147 Quand Claude Code démarre, il lit votre configuration MCP, lance votre `webhook.ts` en tant que sous-processus, et l'écouteur HTTP démarre automatiquement sur le port que vous avez configuré (8788 dans cet exemple). Vous n'avez pas besoin de lancer le serveur vous-même.

146 148 

147 Si vous voyez ' bloqué par la politique de l'organisation ', votre administrateur Team ou Enterprise doit d'abord [activer les canaux](/fr/channels#enterprise-controls).149 Un avis atténué sous la bannière de démarrage confirme que le canal est enregistré : `Channels (experimental) messages from server:webhook inject directly in this session · restart without --dangerously-load-development-channels to stop`.

150 

151 Si vous voyez ' bloqué par la politique de l'organisation ', votre administrateur d'organisation doit d'abord [activer les canaux](/fr/channels#enterprise-controls).

148 152 

149 Dans un terminal séparé, simulez un webhook en envoyant un HTTP POST avec un message à votre serveur. Cet exemple envoie une alerte d'échec CI au port 8788 (ou quel que soit le port que vous avez configuré) :153 Dans un terminal séparé, simulez un webhook en envoyant un HTTP POST avec un message à votre serveur. Cet exemple envoie une alerte d'échec CI au port 8788 (ou quel que soit le port que vous avez configuré) :

150 154 


753curl -d "list the files in this directory" -H "X-Sender: dev" localhost:8788757curl -d "list the files in this directory" -H "X-Sender: dev" localhost:8788

754```758```

755 759 

756La boîte de dialogue de permission locale s'ouvre dans votre terminal Claude Code. Un moment plus tard, l'invite apparaît dans le flux `/events`, y compris l'ID à cinq lettres. Approuvez-le du côté distant :760L'énumération de fichiers est en lecture seule, donc Claude l'exécute sans approbation. La boîte de dialogue de permission s'ouvre quand Claude appelle l'outil `reply` pour envoyer sa réponse en retour. La boîte de dialogue locale s'ouvre dans votre terminal Claude Code, et un moment plus tard l'invite pour `mcp__webhook__reply` apparaît dans le flux `/events`, y compris l'ID à cinq lettres. Approuvez-le du côté distant :

757 761 

758```bash theme={null}762```bash theme={null}

759curl -d "yes <id>" -H "X-Sender: dev" localhost:8788763curl -d "yes <id>" -H "X-Sender: dev" localhost:8788

760```764```

761 765 

762La boîte de dialogue locale se ferme et l'outil s'exécute. La réponse de Claude revient via l'outil `reply` et atterrit aussi dans le flux.766La boîte de dialogue locale se ferme, l'outil `reply` s'exécute, et la réponse de Claude atterrit dans le flux.

763 767 

764Les trois pièces spécifiques au canal dans ce fichier :768Les trois pièces spécifiques au canal dans ce fichier :

765 769 

chrome.md +2 −1

Details

198 Extension non détectée198 Extension non détectée

199</h3>199</h3>

200 200 

201Si Claude Code affiche « Chrome extension not detected » :201Si la ligne setup-issues de Claude Code liste `chrome` :

202 202 

2031. Vérifiez que l'extension Chrome est installée et activée dans `chrome://extensions`2031. Vérifiez que l'extension Chrome est installée et activée dans `chrome://extensions`

2042. Vérifiez que Claude Code est à jour en exécutant `claude --version`2042. Vérifiez que Claude Code est à jour en exécutant `claude --version`


264 Voir aussi264 Voir aussi

265</h2>265</h2>

266 266 

267* [Utilisation informatique](/fr/computer-use) : contrôlez les applications macOS natives quand une tâche ne peut pas être effectuée dans un navigateur

267* [Utiliser Claude Code dans VS Code](/fr/vs-code#automate-browser-tasks-with-chrome) : automatisation du navigateur dans l'extension VS Code268* [Utiliser Claude Code dans VS Code](/fr/vs-code#automate-browser-tasks-with-chrome) : automatisation du navigateur dans l'extension VS Code

268* [Référence CLI](/fr/cli-reference) : drapeaux de ligne de commande incluant `--chrome`269* [Référence CLI](/fr/cli-reference) : drapeaux de ligne de commande incluant `--chrome`

269* [Flux de travail courants](/fr/common-workflows) : plus de façons d'utiliser Claude Code270* [Flux de travail courants](/fr/common-workflows) : plus de façons d'utiliser Claude Code

Details

59 59 

60Chaque session s'exécute dans une VM fraîche gérée par Anthropic avec votre référentiel cloné. Cette section couvre ce qui est disponible au démarrage d'une session et comment la personnaliser.60Chaque session s'exécute dans une VM fraîche gérée par Anthropic avec votre référentiel cloné. Cette section couvre ce qui est disponible au démarrage d'une session et comment la personnaliser.

61 61 

62<h3 id="what-s-available-in-cloud-sessions">62<h3 id="whats-available-in-cloud-sessions">

63 Ce qui est disponible dans les sessions cloud63 Ce qui est disponible dans les sessions cloud

64</h3>64</h3>

65 65 

66Les sessions cloud commencent par un clone frais de votre référentiel. Tout ce qui est validé dans le référentiel est disponible. Tout ce que vous avez installé ou configuré uniquement sur votre propre machine ne l'est pas.66Les sessions cloud commencent par un clone frais de votre référentiel. Tout ce qui est validé dans le référentiel est disponible. Tout ce que vous avez installé ou configuré uniquement sur votre propre machine ne l'est pas.

67 67 

68| | Disponible dans les sessions cloud | Pourquoi |68| | Disponible dans les sessions cloud | Pourquoi |

69| :----------------------------------------------------------------------------- | :--------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |69| :-------------------------------------------------------------------------------- | :--------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

70| Votre `CLAUDE.md` du référentiel | Oui | Fait partie du clone |70| Votre `CLAUDE.md` du référentiel | Oui | Fait partie du clone |

71| Vos hooks `.claude/settings.json` du référentiel | Oui | Fait partie du clone |71| Vos hooks `.claude/settings.json` du référentiel | Oui | Fait partie du clone |

72| Vos serveurs MCP `.mcp.json` du référentiel | Oui | Fait partie du clone |72| Vos serveurs MCP `.mcp.json` du référentiel | Oui | Fait partie du clone |


74| Votre `.claude/skills/`, `.claude/agents/`, `.claude/commands/` du référentiel | Oui | Fait partie du clone |74| Votre `.claude/skills/`, `.claude/agents/`, `.claude/commands/` du référentiel | Oui | Fait partie du clone |

75| Plugins déclarés dans `.claude/settings.json` | Oui | Installés au démarrage de la session à partir de la [marketplace](/fr/plugin-marketplaces) que vous avez déclarée. Nécessite un accès réseau pour atteindre la source de la marketplace |75| Plugins déclarés dans `.claude/settings.json` | Oui | Installés au démarrage de la session à partir de la [marketplace](/fr/plugin-marketplaces) que vous avez déclarée. Nécessite un accès réseau pour atteindre la source de la marketplace |

76| Votre `~/.claude/CLAUDE.md` utilisateur | Non | Vit sur votre machine, pas dans le référentiel |76| Votre `~/.claude/CLAUDE.md` utilisateur | Non | Vit sur votre machine, pas dans le référentiel |

77| Votre `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` utilisateur | Non | Vivent sur votre machine, pas dans le référentiel. Validez-les plutôt dans le répertoire `.claude/` du référentiel. Les compétences que vous activez sur claude.ai sont chargées automatiquement dans les sessions cloud |

77| Plugins activés uniquement dans vos paramètres utilisateur | Non | Les `enabledPlugins` limités à l'utilisateur vivent dans `~/.claude/settings.json`. Déclarez-les plutôt dans le `.claude/settings.json` du référentiel |78| Plugins activés uniquement dans vos paramètres utilisateur | Non | Les `enabledPlugins` limités à l'utilisateur vivent dans `~/.claude/settings.json`. Déclarez-les plutôt dans le `.claude/settings.json` du référentiel |

78| Serveurs MCP que vous avez ajoutés avec `claude mcp add` | Non | Ceux-ci écrivent dans votre configuration utilisateur locale, pas dans le référentiel. Déclarez le serveur dans [`.mcp.json`](/fr/mcp#project-scope) à la place |79| Serveurs MCP que vous avez ajoutés avec `claude mcp add` | Non | Ceux-ci écrivent dans votre configuration utilisateur locale, pas dans le référentiel. Déclarez le serveur dans [`.mcp.json`](/fr/mcp#project-scope) à la place |

79| Jetons API statiques et identifiants | Non | Aucun magasin de secrets dédié n'existe encore. Voir ci-dessous |80| Jetons API statiques et identifiants | Non | Aucun magasin de secrets dédié n'existe encore. Voir ci-dessous |


353* Protection contre les demandes malveillantes354* Protection contre les demandes malveillantes

354* Limitation de débit et prévention des abus355* Limitation de débit et prévention des abus

355* Filtrage de contenu pour une sécurité renforcée356* Filtrage de contenu pour une sécurité renforcée

357* Un journal d'audit au niveau DNS des noms d'hôtes demandés

356 358 

357<h3 id="default-allowed-domains">359<h3 id="default-allowed-domains">

358 Domaines autorisés par défaut360 Domaines autorisés par défaut


745| `/context` | Oui | Affiche ce qui est actuellement dans la fenêtre de contexte |747| `/context` | Oui | Affiche ce qui est actuellement dans la fenêtre de contexte |

746| `/clear` | Non | Démarrez une nouvelle session à partir de la barre latérale à la place |748| `/clear` | Non | Démarrez une nouvelle session à partir de la barre latérale à la place |

747 749 

748La compaction automatique s'exécute automatiquement lorsque la fenêtre de contexte approche de la capacité, comme dans le CLI. Pour la déclencher plus tôt, définissez [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/fr/env-vars) dans vos [variables d'environnement](#configure-your-environment). Par exemple, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70` compacte à 70 % de capacité au lieu de la valeur par défaut \~95 %. Pour modifier la taille de fenêtre effective pour les calculs de compaction, utilisez [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/fr/env-vars).750La compaction automatique s'exécute automatiquement lorsque la fenêtre de contexte approche de la capacité. Pour la déclencher plus tôt, définissez [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/fr/env-vars) dans vos [variables d'environnement](#configure-your-environment). Par exemple, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70` compacte à 70 % de capacité au lieu d'attendre que la fenêtre soit presque pleine. Pour modifier la taille de fenêtre effective pour les calculs de compaction, utilisez [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/fr/env-vars).

749 751 

750Les [sous-agents](/fr/sub-agents) fonctionnent de la même manière qu'en local. Claude peut les générer avec l'outil Task pour décharger la recherche ou le travail parallèle dans une fenêtre de contexte séparée, gardant la conversation principale plus légère. Les sous-agents définis dans votre `.claude/agents/` du référentiel sont récupérés automatiquement. Les [équipes d'agents](/fr/agent-teams) sont désactivées par défaut mais peuvent être activées en ajoutant `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` à vos [variables d'environnement](#configure-your-environment).752Les [sous-agents](/fr/sub-agents) fonctionnent de la même manière qu'en local. Claude peut les générer avec l'outil Task pour décharger la recherche ou le travail parallèle dans une fenêtre de contexte séparée, gardant la conversation principale plus légère. Les sous-agents définis dans votre `.claude/agents/` du référentiel sont récupérés automatiquement. Les [équipes d'agents](/fr/agent-teams) sont désactivées par défaut mais peuvent être activées en ajoutant `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` à vos [variables d'environnement](#configure-your-environment).

751 753 


887* **Limites de débit** : Claude Code sur le web partage les limites de débit avec tous les autres usages de Claude et Claude Code au sein de votre compte. L'exécution de plusieurs tâches en parallèle consomme proportionnellement plus de limites de débit. Il n'y a pas de frais de calcul séparé pour la VM cloud.889* **Limites de débit** : Claude Code sur le web partage les limites de débit avec tous les autres usages de Claude et Claude Code au sein de votre compte. L'exécution de plusieurs tâches en parallèle consomme proportionnellement plus de limites de débit. Il n'y a pas de frais de calcul séparé pour la VM cloud.

888* **Authentification du référentiel** : vous ne pouvez déplacer les sessions du web vers le local que lorsque vous êtes authentifié au même compte890* **Authentification du référentiel** : vous ne pouvez déplacer les sessions du web vers le local que lorsque vous êtes authentifié au même compte

889* **Restrictions de plateforme** : le clonage du référentiel et la création de demandes de tirage nécessitent GitHub. Les instances [GitHub Enterprise Server](/fr/github-enterprise-server) auto-hébergées sont prises en charge pour les plans Team et Enterprise. GitLab, Bitbucket et les autres référentiels non-GitHub peuvent être envoyés aux sessions cloud en tant que [paquet local](#send-local-repositories-without-github), mais la session ne peut pas pousser les résultats vers le serveur distant891* **Restrictions de plateforme** : le clonage du référentiel et la création de demandes de tirage nécessitent GitHub. Les instances [GitHub Enterprise Server](/fr/github-enterprise-server) auto-hébergées sont prises en charge pour les plans Team et Enterprise. GitLab, Bitbucket et les autres référentiels non-GitHub peuvent être envoyés aux sessions cloud en tant que [paquet local](#send-local-repositories-without-github), mais la session ne peut pas pousser les résultats vers le serveur distant

890* **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. Si votre organisation a [l'autorisation IP](/fr/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) activée, chaque session cloud échoue avec une erreur d'authentification. Il en va de même pour [Code Review](/fr/code-review) et [Routines](/fr/routines). 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.892* **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. Si votre organisation a [l'autorisation IP](https://support.claude.com/fr/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) activée, chaque session cloud échoue avec une erreur d'authentification. Il en va de même pour [Code Review](/fr/code-review) et [Routines](/fr/routines). 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.

891 893 

892<h2 id="related-resources">894<h2 id="related-resources">

893 Ressources connexes895 Ressources connexes

claude-directory.md +1427 −1

Details

6 6 

7> Où Claude Code lit CLAUDE.md, settings.json, hooks, skills, commands, subagents, workflows, rules et auto memory. Explorez le répertoire .claude dans votre projet et ~/.claude dans votre répertoire personnel.7> Où Claude Code lit CLAUDE.md, settings.json, hooks, skills, commands, subagents, workflows, rules et auto memory. Explorez le répertoire .claude dans votre projet et ~/.claude dans votre répertoire personnel.

8 8 

9export const ClaudeExplorer = () => {

10 const A = useMemo(() => ({href, children}) => <a href={href} style={{

11 color: 'var(--ce-accent)',

12 textDecoration: 'none',

13 borderBottom: '1px dotted var(--ce-accent)'

14 }}>{children}</a>, []);

15 const C = useMemo(() => ({children}) => <code style={{

16 fontFamily: 'var(--ce-mono)',

17 fontSize: '0.92em',

18 padding: '1px 4px',

19 borderRadius: '3px',

20 background: 'var(--ce-surface)',

21 border: '0.5px solid var(--ce-border-subtle)'

22 }}>{children}</code>, []);

23 const commandsNote = useMemo(() => <>Commands and skills are now the same mechanism. For new workflows, use <A href="/en/skills">skills/</A> instead: same <C>/name</C> invocation, plus you can bundle supporting files.</>, []);

24 const FILE_TREE = useMemo(() => ({

25 project: {

26 label: 'your-project/',

27 children: [{

28 id: 'claude-md',

29 label: 'CLAUDE.md',

30 type: 'file',

31 icon: 'md',

32 color: '#6A9BCC',

33 badge: 'committed',

34 oneLiner: 'Project instructions Claude reads every session',

35 when: 'Loaded into context at the start of every session',

36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',

37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/en/skills">skill</A> or a path-scoped <A href="/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>],

38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',

39 example: `# Project conventions

40 

41## Commands

42- Build: \`npm run build\`

43- Test: \`npm test\`

44- Lint: \`npm run lint\`

45 

46## Stack

47- TypeScript with strict mode

48- React 19, functional components only

49 

50## Rules

51- Named exports, never default exports

52- Tests live next to source: \`foo.ts\` -> \`foo.test.ts\`

53- All API routes return \`{ data, error }\` shape`,

54 docsLink: '/en/memory'

55 }, {

56 id: 'mcp-json',

57 label: '.mcp.json',

58 type: 'file',

59 icon: 'json',

60 color: '#9B7BC4',

61 badge: 'committed',

62 oneLiner: 'Project-scoped MCP servers, shared with your team',

63 when: <>Servers connect when the session begins. Tool schemas are deferred by default and load on demand via <A href="/en/mcp#scale-with-mcp-tool-search">tool search</A></>,

64 description: <>Configures Model Context Protocol (MCP) servers that give Claude access to external tools: databases, APIs, browsers, and more. This file holds the project-scoped servers your whole team uses. Personal servers you want to keep to yourself go in <C>~/.claude.json</C> instead.</>,

65 tips: [<>Use environment variable references for secrets: <C>{'${GITHUB_TOKEN}'}</C></>, <>Lives at the project root, not inside <C>.claude/</C></>, <>For servers only you need, run <C>claude mcp add --scope user</C>. This writes to <C>~/.claude.json</C> instead of <C>.mcp.json</C></>],

66 exampleIntro: <>This example configures the GitHub MCP server so Claude can read issues and open pull requests. The <C>{'${GITHUB_TOKEN}'}</C> reference is read from your shell environment when Claude Code starts the server, so the token never lands in the file.</>,

67 example: `{

68 "mcpServers": {

69 "github": {

70 "command": "npx",

71 "args": ["-y", "@modelcontextprotocol/server-github"],

72 "env": {

73 "GITHUB_TOKEN": "\${GITHUB_TOKEN}"

74 }

75 }

76 }

77}`,

78 docsLink: '/en/mcp'

79 }, {

80 id: 'worktreeinclude',

81 label: '.worktreeinclude',

82 type: 'file',

83 icon: 'md',

84 color: '#8FA876',

85 badge: 'committed',

86 oneLiner: 'Gitignored files to copy into new worktrees',

87 when: <>Read when Claude creates a git worktree via <C>--worktree</C>, the <C>EnterWorktree</C> tool, or subagent <C>isolation: worktree</C></>,

88 description: <>Lists gitignored files to copy from your main repository into each new worktree. Worktrees are fresh checkouts, so untracked files like <C>.env</C> are missing by default. Patterns here use <C>.gitignore</C> syntax. Only files that match a pattern and are also gitignored get copied, so tracked files are never duplicated.</>,

89 tips: [<>Lives at the project root, not inside <C>.claude/</C></>, <>Git-only: if you configure a <A href="/en/hooks#worktreecreate">WorktreeCreate hook</A> for a different VCS, this file is not read. Copy files inside your hook script instead</>, <>Also applies to parallel sessions in the <A href="/en/desktop#work-in-parallel-with-sessions">desktop app</A></>],

90 exampleIntro: 'This example copies your local environment files and a secrets config into every worktree Claude creates. Comments start with # and blank lines are ignored, same as .gitignore.',

91 example: `# Local environment

92.env

93.env.local

94 

95# API credentials

96config/secrets.json`,

97 docsLink: '/en/worktrees#copy-gitignored-files-into-worktrees'

98 }, {

99 id: 'dot-claude',

100 label: '.claude/',

101 type: 'folder',

102 icon: 'folder',

103 color: 'var(--ce-accent)',

104 oneLiner: 'Project-level configuration, rules, and extensions',

105 description: 'Everything Claude Code reads that is specific to this project. If you use git, commit most files here so your team shares them; a few, like settings.local.json, are automatically gitignored. Each file badge shows which.',

106 children: [{

107 id: 'settings-json',

108 label: 'settings.json',

109 type: 'file',

110 icon: 'json',

111 color: 'var(--ce-text-3)',

112 badge: 'committed',

113 oneLiner: 'Permissions, hooks, and configuration',

114 when: <>Overrides global <C>~/.claude/settings.json</C>. Local settings, CLI flags, and managed settings override this</>,

115 description: 'Settings that Claude Code applies directly. Permissions control which commands and tools Claude can use; hooks run your scripts at specific points in a session. Unlike CLAUDE.md, which Claude reads as guidance, these are enforced whether Claude follows them or not.',

116 contains: [<><A href="/en/permissions">permissions</A>: allow, deny, or prompt before Claude uses specific tools or commands</>, <><A href="/en/hooks">hooks</A>: run your own scripts on events like before a tool call or after a file edit</>, <><A href="/en/statusline">statusLine</A>: customize the line shown at the bottom while Claude works</>, <><A href="/en/settings#available-settings">model</A>: pick a default model for this project</>, <><A href="/en/settings#environment-variables">env</A>: environment variables set in every session</>, <><A href="/en/output-styles">outputStyle</A>: select a custom system-prompt style from output-styles/</>],

117 tips: [<>Bash permission patterns support wildcards: <C>Bash(npm test *)</C> matches any command starting with <C>npm test</C></>, <>Array settings like <C>permissions.allow</C> combine across all scopes; scalar settings like <C>model</C> use the most specific value</>],

118 exampleIntro: <>This example allows <C>npm test</C> and <C>npm run</C> commands without prompting, blocks <C>rm -rf</C>, and runs Prettier on files after Claude edits or writes them.</>,

119 example: `{

120 "permissions": {

121 "allow": [

122 "Bash(npm test *)",

123 "Bash(npm run *)"

124 ],

125 "deny": [

126 "Bash(rm -rf *)"

127 ]

128 },

129 "hooks": {

130 "PostToolUse": [{

131 "matcher": "Edit|Write",

132 "hooks": [{

133 "type": "command",

134 "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"

135 }]

136 }]

137 }

138}`,

139 docsLink: '/en/settings'

140 }, {

141 id: 'settings-local-json',

142 label: 'settings.local.json',

143 type: 'file',

144 icon: 'json',

145 color: 'var(--ce-text-3)',

146 badge: 'gitignored',

147 oneLiner: 'Your personal settings overrides for this project',

148 when: 'Highest of the user-editable settings files; CLI flags and managed settings still take precedence',

149 description: 'Personal settings that take precedence over the project defaults. Same JSON format as settings.json, but not committed. Use this when you need different permissions or defaults than the team config.',

150 tips: [<>Same schema as settings.json. Array settings like <C>permissions.allow</C> combine across scopes; scalar settings like <C>model</C> use the local value</>, <>Claude Code adds this file to <C>~/.config/git/ignore</C> the first time it writes one. If you use a custom <C>core.excludesFile</C>, add the pattern there too. To share the ignore rule with your team, also add it to the project <C>.gitignore</C></>],

151 exampleIntro: 'This example adds Docker permissions on top of whatever the team settings.json allows.',

152 example: `{

153 "permissions": {

154 "allow": [

155 "Bash(docker *)"

156 ]

157 }

158}`,

159 docsLink: '/en/settings'

160 }, {

161 id: 'rules',

162 label: 'rules/',

163 type: 'folder',

164 icon: 'folder',

165 color: '#9B7BC4',

166 oneLiner: 'Topic-scoped instructions, optionally gated by file paths',

167 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,

168 description: [<>Project instructions split into topic files that can load conditionally based on file paths. A rule without <C>paths:</C> frontmatter loads at session start like CLAUDE.md; a rule with <C>paths:</C> loads only when Claude reads a matching file.</>, <>Like CLAUDE.md, rules are guidance Claude reads, not configuration Claude Code enforces. For guaranteed behavior use <A href="/en/hooks">hooks</A> or <A href="/en/permissions">permissions</A>.</>],

169 tips: [<>Use <C>paths:</C> frontmatter with globs to scope rules to directories or file types</>, <>Subdirectories work: <C>.claude/rules/frontend/react.md</C> is discovered automatically</>, 'When CLAUDE.md approaches 200 lines, start splitting into rules'],

170 docsLink: '/en/memory#organize-rules-with-claude/rules/',

171 children: [{

172 id: 'rule-testing',

173 label: 'testing.md',

174 type: 'file',

175 icon: 'md',

176 color: '#9B7BC4',

177 badge: 'committed',

178 oneLiner: 'Test conventions scoped to test files',

179 when: <>Loaded when Claude reads a file matching the <C>paths:</C> globs below</>,

180 description: <>An example rule that only loads when Claude is working on test files. The <C>paths:</C> globs in the frontmatter define which files trigger it; here, anything ending in .test.ts or .test.tsx. For other files, this rule is not loaded into context.</>,

181 example: `---

182paths:

183 - "**/*.test.ts"

184 - "**/*.test.tsx"

185---

186 

187# Testing Rules

188 

189- Use descriptive test names: "should [expected] when [condition]"

190- Mock external dependencies, not internal modules

191- Clean up side effects in afterEach`

192 }, {

193 id: 'rule-api',

194 label: 'api-design.md',

195 type: 'file',

196 icon: 'md',

197 color: '#9B7BC4',

198 badge: 'committed',

199 oneLiner: 'API conventions scoped to backend code',

200 when: <>Loaded when Claude reads a file matching the <C>paths:</C> glob below</>,

201 description: <>A second example showing a rule scoped to backend code. The <C>paths:</C> glob matches files under src/api/, so these conventions load only when Claude is editing API routes.</>,

202 example: `---

203paths:

204 - "src/api/**/*.ts"

205---

206 

207# API Design Rules

208 

209- All endpoints must validate input with Zod schemas

210- Return shape: { data: T } | { error: string }

211- Rate limit all public endpoints`

212 }]

213 }, {

214 id: 'skills',

215 label: 'skills/',

216 type: 'folder',

217 icon: 'folder',

218 color: '#D4A843',

219 oneLiner: 'Reusable prompts you or Claude invoke by name',

220 when: <>Invoked with <C>/skill-name</C> or when Claude matches the task to a skill</>,

221 description: <>Each skill is a folder with a SKILL.md file plus any supporting files it needs. By default, both you and Claude can invoke a skill. Use frontmatter to control that: <C>disable-model-invocation: true</C> for user-only workflows like <C>/deploy</C>, or <C>user-invocable: false</C> to hide from the <C>/</C> menu while Claude can still invoke it.</>,

222 tips: [<>Skills accept arguments: <C>/deploy staging</C> passes "staging" as <C>$ARGUMENTS</C>. Use <C>$0</C>, <C>$1</C>, and so on for positional access</>, <>The <C>description</C> frontmatter determines when Claude auto-invokes the skill</>, 'Bundle reference docs alongside SKILL.md. Claude knows the skill directory path and can read supporting files when you mention them'],

223 docsLink: '/en/skills',

224 children: [{

225 id: 'skill-review',

226 label: 'security-review/',

227 type: 'folder',

228 icon: 'folder',

229 color: '#D4A843',

230 oneLiner: 'A skill bundling SKILL.md with supporting files',

231 children: [{

232 id: 'skill-review-md',

233 label: 'SKILL.md',

234 type: 'file',

235 icon: 'md',

236 color: '#D4A843',

237 badge: 'committed',

238 oneLiner: 'Entrypoint: trigger, invocability, instructions',

239 when: <>User types <C>/security-review &lt;target&gt;</C>; Claude cannot auto-invoke this skill</>,

240 description: [<>This skill uses <C>disable-model-invocation: true</C> so only you can trigger it; Claude never invokes it on its own.</>, <>The <C>!`...`</C> line runs a shell command and injects its output into the prompt. <C>$ARGUMENTS</C> substitutes whatever you typed after the skill name. Claude sees the skill directory path, so mentioning a bundled file like checklist.md lets Claude read it.</>],

241 example: `---

242description: Reviews code changes for security vulnerabilities, authentication gaps, and injection risks

243disable-model-invocation: true

244argument-hint: <branch-or-path>

245---

246 

247## Diff to review

248 

249!\`git diff $ARGUMENTS\`

250 

251Audit the changes above for:

252 

2531. Injection vulnerabilities (SQL, XSS, command)

2542. Authentication and authorization gaps

2553. Hardcoded secrets or credentials

256 

257Use checklist.md in this skill directory for the full review checklist.

258 

259Report findings with severity ratings and remediation steps.`

260 }, {

261 id: 'skill-checklist',

262 label: 'checklist.md',

263 type: 'file',

264 icon: 'md',

265 color: '#D4A843',

266 badge: 'committed',

267 oneLiner: 'Supporting file bundled with the skill',

268 when: 'Claude reads it on demand while running the skill',

269 description: <>Skills can bundle any supporting files: reference docs, templates, scripts. The skill directory path is prepended to SKILL.md, so Claude can read bundled files by name. For scripts in bash injection commands, use the <C>{'${CLAUDE_SKILL_DIR}'}</C> placeholder.</>,

270 example: `# Security Review Checklist

271 

272## Input Validation

273- [ ] All user input sanitized before DB queries

274- [ ] File upload MIME types validated

275- [ ] Path traversal prevented on file operations

276 

277## Authentication

278- [ ] JWT tokens expire after 24 hours

279- [ ] API keys stored in environment variables

280- [ ] Passwords hashed with bcrypt or argon2`

281 }]

282 }]

283 }, {

284 id: 'commands',

285 label: 'commands/',

286 type: 'folder',

287 icon: 'folder',

288 color: '#788C5D',

289 oneLiner: <>Single-file prompts invoked with <C>/name</C></>,

290 note: commandsNote,

291 when: <>User types <C>/command-name</C></>,

292 description: <>A file at <C>commands/deploy.md</C> creates <C>/deploy</C> the same way a skill at <C>skills/deploy/SKILL.md</C> does, and both can be auto-invoked by Claude. Skills use a directory with SKILL.md, letting you bundle reference docs, templates, or scripts alongside the prompt.</>,

293 tips: [<>Use <C>$ARGUMENTS</C> in the file to accept parameters: <C>/fix-issue 123</C></>, 'If a skill and command share a name, the skill takes precedence', 'New commands should usually be skills instead; commands remain supported'],

294 docsLink: '/en/skills',

295 children: [{

296 id: 'cmd-example',

297 label: 'fix-issue.md',

298 type: 'file',

299 icon: 'md',

300 color: '#788C5D',

301 badge: 'committed',

302 oneLiner: <>Invoked as <C>/fix-issue &lt;number&gt;</C></>,

303 note: commandsNote,

304 description: [<>An example command for fixing a GitHub issue. Type <C>/fix-issue 123</C> and the <C>!`...`</C> line runs <C>gh issue view 123</C> in your shell, injecting the output into the prompt before Claude sees it.</>, <><C>$ARGUMENTS</C> substitutes whatever you typed after the command name. For positional access, use <C>$0</C> <C>$1</C> and so on.</>],

305 example: `---

306argument-hint: <issue-number>

307---

308 

309!\`gh issue view $ARGUMENTS\`

310 

311Investigate and fix the issue above.

312 

3131. Trace the bug to its root cause

3142. Implement the fix

3153. Write or update tests

3164. Summarize what you changed and why`

317 }]

318 }, {

319 id: 'output-styles',

320 label: 'output-styles/',

321 type: 'folder',

322 icon: 'folder',

323 color: '#5AA7A7',

324 oneLiner: 'Project-scoped output styles, if your team shares any',

325 when: 'Applied at session start when selected via the outputStyle setting',

326 description: <>Output styles are usually personal, so most live in <C>~/.claude/output-styles/</C>. Put one here if your team shares a style, like a review mode everyone uses. See <A href="#ce-global-output-styles">the Global tab</A> for the full explanation and example.</>,

327 docsLink: '/en/output-styles',

328 children: []

329 }, {

330 id: 'agents',

331 label: 'agents/',

332 type: 'folder',

333 icon: 'folder',

334 color: '#C46686',

335 oneLiner: 'Specialized subagents with their own context window',

336 when: 'Runs in its own context window when you or Claude invoke it',

337 description: 'Each markdown file defines a subagent with its own system prompt, tool access, and optionally its own model. Subagents run in a fresh context window, keeping the main conversation clean. Useful for parallel work or isolated tasks.',

338 tips: ['Each agent gets a fresh context window, separate from your main session', <>Restrict tool access per agent with the <C>tools:</C> frontmatter field</>, 'Type @ and pick an agent from the autocomplete to delegate directly'],

339 docsLink: '/en/sub-agents',

340 children: [{

341 id: 'agent-reviewer',

342 label: 'code-reviewer.md',

343 type: 'file',

344 icon: 'md',

345 color: '#C46686',

346 badge: 'committed',

347 oneLiner: 'Subagent for isolated code review',

348 when: 'Claude spawns it for review tasks, or you @-mention it from the autocomplete',

349 description: <>An example subagent restricted to read-only tools. The <C>description</C> frontmatter tells Claude when to delegate to it automatically; <C>tools:</C> limits it to Read, Grep, and Glob so it can inspect code but never edit. The body becomes the subagent's system prompt.</>,

350 example: `---

351name: code-reviewer

352description: Reviews code for correctness, security, and maintainability

353tools: Read, Grep, Glob

354---

355 

356You are a senior code reviewer. Review for:

357 

3581. Correctness: logic errors, edge cases, null handling

3592. Security: injection, auth bypass, data exposure

3603. Maintainability: naming, complexity, duplication

361 

362Every finding must include a concrete fix.`

363 }]

364 }, {

365 id: 'workflows',

366 label: 'workflows/',

367 type: 'folder',

368 icon: 'folder',

369 color: '#C46686',

370 oneLiner: 'Dynamic workflow scripts that orchestrate many subagents',

371 when: 'Loaded at startup; each file becomes a /<name> command',

372 description: <>Each <C>.js</C> file is a <A href="/en/workflows">dynamic workflow</A>: a script the runtime executes to spawn and coordinate many subagents. Workflows are written by Claude and saved here from <C>/workflows</C> rather than authored from scratch.</>,

373 tips: [<>Save a run from <C>/workflows</C> with <C>s</C> to create one of these</>, <>A project workflow takes precedence over a personal one in <C>~/.claude/workflows/</C> with the same name</>],

374 docsLink: '/en/workflows'

375 }, {

376 id: 'agent-memory',

377 label: 'agent-memory/',

378 type: 'folder',

379 icon: 'folder',

380 color: '#C46686',

381 badge: 'committed',

382 autogen: true,

383 oneLiner: 'Subagent persistent memory, separate from your main session auto memory',

384 when: 'First 200 lines (capped at 25KB) of MEMORY.md loaded into the subagent system prompt when it runs',

385 description: <>Subagents with <C>memory: project</C> in their frontmatter get a dedicated memory directory here. This is distinct from your <A href="/en/memory#auto-memory">main session auto memory</A> at <C>~/.claude/projects/</C>: each subagent reads and writes its own MEMORY.md, not yours.</>,

386 tips: [<>Only created for subagents that set the <C>memory:</C> frontmatter field</>, <>This directory holds project-scoped subagent memory, meant to be shared with your team. To keep memory out of version control use <C>memory: local</C>, which writes to <C>.claude/agent-memory-local/</C> instead. For cross-project memory use <C>memory: user</C>, which writes to <C>~/.claude/agent-memory/</C></>, <>The main session auto memory is a different feature; see <C>~/.claude/projects/</C> in the Global tab</>],

387 docsLink: '/en/sub-agents#enable-persistent-memory',

388 children: [{

389 id: 'agent-memory-sub',

390 label: '<agent-name>/',

391 type: 'folder',

392 icon: 'folder',

393 color: '#C46686',

394 autogen: true,

395 children: [{

396 id: 'agent-memory-md',

397 label: 'MEMORY.md',

398 type: 'file',

399 icon: 'md',

400 color: '#C46686',

401 badge: 'committed',

402 autogen: true,

403 oneLiner: 'The subagent writes and maintains this file automatically',

404 when: 'Loaded into the subagent system prompt when the subagent starts',

405 description: <>Works the same as your <A href="/en/memory#auto-memory">main auto memory</A>: the subagent creates and updates this file itself. You do not write it. The subagent reads it at the start of each task and writes back what it learns.</>,

406 example: `# code-reviewer memory

407 

408## Patterns seen

409- Project uses custom Result<T, E> type, not exceptions

410- Auth middleware expects Bearer token in Authorization header

411- Tests use factory functions in test/factories/

412 

413## Recurring issues

414- Missing null checks on API responses (src/api/*)

415- Unhandled promise rejections in background jobs`

416 }]

417 }]

418 }]

419 }]

420 },

421 global: {

422 label: '~/',

423 children: [{

424 id: 'claude-json',

425 label: '.claude.json',

426 type: 'file',

427 icon: 'json',

428 color: 'var(--ce-text-3)',

429 badge: 'local',

430 oneLiner: 'App state and UI preferences',

431 when: <>Read at session start for your preferences and MCP servers. Claude Code writes back to it when you change settings in <C>/config</C> or approve trust prompts</>,

432 description: <>Holds state that does not belong in settings.json: theme, OAuth session, per-project trust decisions, your personal MCP servers, and UI toggles. Mostly managed through <C>/config</C> rather than editing directly.</>,

433 tips: [<>IDE toggles like <C>autoConnectIde</C> and <C>externalEditorContext</C> live here, not in settings.json</>, <>The <C>projects</C> key tracks per-project state like trust-dialog acceptance and last-session metrics. Permission rules you approve in-session go to <C>.claude/settings.local.json</C> instead</>, <>MCP servers here are yours only: user scope applies across all projects, local scope is per-project but not committed. Team-shared servers go in <C>.mcp.json</C> at the project root instead</>],

434 example: `{

435 "autoConnectIde": true,

436 "externalEditorContext": true,

437 "mcpServers": {

438 "my-tools": {

439 "command": "npx",

440 "args": ["-y", "@example/mcp-server"]

441 }

442 }

443}`,

444 docsLink: '/en/settings#global-config-settings'

445 }, {

446 id: 'global-dot-claude',

447 label: '.claude/',

448 type: 'folder',

449 icon: 'folder',

450 color: 'var(--ce-accent)',

451 oneLiner: 'Your personal configuration across all projects',

452 description: 'The global counterpart to your project .claude/ directory. Files here apply to every project you work in and are never committed to any repository.',

453 children: [{

454 id: 'global-claude-md',

455 label: 'CLAUDE.md',

456 type: 'file',

457 icon: 'md',

458 color: '#6A9BCC',

459 badge: 'local',

460 oneLiner: 'Personal preferences across every project',

461 when: 'Loaded at the start of every session, in every project',

462 description: 'Your global instruction file. Loaded alongside the project CLAUDE.md at session start, so both are in context together. When instructions conflict, project-level instructions take priority. Keep this to preferences that apply everywhere: response style, commit format, personal conventions.',

463 tips: ['Keep it short since it loads into context for every project, alongside that project\'s own CLAUDE.md', 'Good for response style, commit format, and personal conventions'],

464 example: `# Global preferences

465 

466- Keep explanations concise

467- Use conventional commit format

468- Show the terminal command to verify changes

469- Prefer composition over inheritance`,

470 docsLink: '/en/memory'

471 }, {

472 id: 'global-settings',

473 label: 'settings.json',

474 type: 'file',

475 icon: 'json',

476 color: 'var(--ce-text-3)',

477 badge: 'local',

478 oneLiner: 'Default settings for all projects',

479 when: 'Your defaults. Project and local settings.json override any keys you also set there',

480 description: [<>Same keys as project <C>settings.json</C>: permissions, hooks, model, environment variables, and the rest. Put settings here that you want in every project, like permissions you always allow, a preferred model, or a notification hook that runs regardless of which project you're in.</>, <>Settings follow a precedence order: project <C>settings.json</C> overrides any matching keys you set here. This is different from CLAUDE.md, where global and project files are both loaded into context rather than merged key by key.</>],

481 example: `{

482 "permissions": {

483 "allow": [

484 "Bash(git log *)",

485 "Bash(git diff *)"

486 ]

487 }

488}`,

489 docsLink: '/en/settings'

490 }, {

491 id: 'keybindings',

492 label: 'keybindings.json',

493 type: 'file',

494 icon: 'json',

495 color: 'var(--ce-text-3)',

496 badge: 'local',

497 oneLiner: 'Custom keyboard shortcuts',

498 when: 'Read at session start and hot-reloaded when you edit the file',

499 description: <>Rebind keyboard shortcuts in the interactive CLI. Run <C>/keybindings</C> to create or open this file with a schema reference. Ctrl+C, Ctrl+D, Ctrl+M, and Caps Lock are reserved and cannot be rebound.</>,

500 exampleIntro: <>This example binds <C>Ctrl+E</C> to open your external editor and unbinds <C>Ctrl+U</C> by setting it to <C>null</C>. The <C>context</C> field scopes bindings to a specific part of the CLI, here the main chat input.</>,

501 example: `{

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

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

504 "bindings": [

505 {

506 "context": "Chat",

507 "bindings": {

508 "ctrl+e": "chat:externalEditor",

509 "ctrl+u": null

510 }

511 }

512 ]

513}`,

514 docsLink: '/en/keybindings'

515 }, {

516 id: 'themes',

517 label: 'themes/',

518 type: 'folder',

519 icon: 'folder',

520 color: '#5AA7A7',

521 oneLiner: 'Custom color themes',

522 when: <>Read at session start and hot-reloaded when files change. Listed in <C>/theme</C></>,

523 description: <>Each <C>.json</C> file defines a custom color theme: a built-in <C>base</C> preset plus an <C>overrides</C> map of color tokens. Create one interactively with <C>/theme</C> or write the JSON by hand. Selecting a custom theme stores <C>custom:&lt;slug&gt;</C> as your theme preference.</>,

524 example: `{

525 "name": "Dracula",

526 "base": "dark",

527 "overrides": {

528 "claude": "#bd93f9",

529 "error": "#ff5555",

530 "success": "#50fa7b"

531 }

532}`,

533 docsLink: '/en/terminal-config#create-a-custom-theme',

534 children: []

535 }, {

536 id: 'global-projects',

537 label: 'projects/',

538 type: 'folder',

539 icon: 'folder',

540 color: '#E8A45C',

541 autogen: true,

542 oneLiner: "Auto memory: Claude's notes to itself, per project",

543 when: 'MEMORY.md loaded at session start; topic files read on demand',

544 description: 'Auto memory lets Claude accumulate knowledge across sessions without you writing anything. Claude saves notes as it works: build commands, debugging insights, architecture notes. Each project gets its own memory directory keyed by the repository path.',

545 tips: [<>On by default. Toggle with <C>/memory</C> or <C>autoMemoryEnabled</C> in settings</>, 'MEMORY.md is the index loaded each session. The first 200 lines, or 25KB, whichever comes first, are read', 'Topic files like debugging.md are read on demand, not at startup', 'These are plain markdown. Edit or delete them anytime'],

546 docsLink: '/en/memory#auto-memory',

547 children: [{

548 id: 'memory-dir',

549 label: '<project>/memory/',

550 type: 'folder',

551 icon: 'folder',

552 color: '#E8A45C',

553 autogen: true,

554 oneLiner: "Claude's accumulated knowledge for one project",

555 children: [{

556 id: 'memory-md',

557 label: 'MEMORY.md',

558 type: 'file',

559 icon: 'md',

560 color: '#E8A45C',

561 badge: 'local',

562 autogen: true,

563 oneLiner: 'Claude writes and maintains this file automatically',

564 when: 'First 200 lines (capped at 25KB) loaded at session start',

565 description: 'Claude creates and updates this file as it works; you do not write it yourself. It acts as an index that Claude reads at the start of every session, pointing to topic files for detail. You can edit or delete it, but Claude will keep updating it.',

566 example: `# Memory Index

567 

568## Project

569- [build-and-test.md](build-and-test.md): npm run build (~45s), Vitest, dev server on 3001

570- [architecture.md](architecture.md): API client singleton, refresh-token auth

571 

572## Reference

573- [debugging.md](debugging.md): auth token rotation and DB connection troubleshooting`,

574 docsLink: '/en/memory'

575 }, {

576 id: 'memory-topic',

577 label: 'debugging.md',

578 type: 'file',

579 icon: 'md',

580 color: '#E8A45C',

581 badge: 'local',

582 autogen: true,

583 oneLiner: 'Topic notes Claude writes when MEMORY.md gets long',

584 when: 'Claude reads this when a related task comes up',

585 description: 'An example of a topic file Claude creates when MEMORY.md grows too long. Claude picks the filename based on what it splits out: debugging.md, architecture.md, build-commands.md, or similar. You never create these yourself. Claude reads a topic file back only when the current task relates to it.',

586 example: `---

587name: Debugging patterns

588description: Auth token rotation and database connection troubleshooting for this project

589type: reference

590---

591 

592## Auth Token Issues

593- Refresh token rotation: old token invalidated immediately

594- If 401 after refresh: check clock skew between client and server

595 

596## Database Connection Drops

597- Connection pool: max 10 in dev, 50 in prod

598- Always check \`docker compose ps\` first`

599 }]

600 }]

601 }, {

602 id: 'global-rules',

603 label: 'rules/',

604 type: 'folder',

605 icon: 'folder',

606 color: '#9B7BC4',

607 oneLiner: 'User-level rules that apply to every project',

608 when: <>Rules without <C>paths:</C> load at session start. Rules with <C>paths:</C> load when a matching file enters context</>,

609 description: 'Same as project .claude/rules/ but applies everywhere. Use this for conventions you want across all your work, like personal code style or commit message format.',

610 docsLink: '/en/memory#organize-rules-with-claude/rules/',

611 children: []

612 }, {

613 id: 'global-skills',

614 label: 'skills/',

615 type: 'folder',

616 icon: 'folder',

617 color: '#D4A843',

618 oneLiner: 'Personal skills available in every project',

619 when: <>Invoked with <C>/skill-name</C> in any project</>,

620 description: 'Skills you built for yourself that work everywhere. Same structure as project skills: each is a folder with SKILL.md, scoped to your user account instead of a single project.',

621 docsLink: '/en/skills',

622 children: []

623 }, {

624 id: 'global-commands',

625 label: 'commands/',

626 type: 'folder',

627 icon: 'folder',

628 color: '#788C5D',

629 oneLiner: 'Personal single-file commands available in every project',

630 note: commandsNote,

631 when: <>User types <C>/command-name</C> in any project</>,

632 description: 'Same as project commands/ but scoped to your user account. Each markdown file becomes a command available everywhere.',

633 docsLink: '/en/skills',

634 children: []

635 }, {

636 id: 'global-output-styles',

637 label: 'output-styles/',

638 type: 'folder',

639 icon: 'folder',

640 color: '#5AA7A7',

641 oneLiner: 'Custom system-prompt sections that adjust how Claude works',

642 when: 'Applied at session start when selected via the outputStyle setting',

643 description: [<>Each markdown file defines an output style: a section appended to the system prompt that, by default, also drops the built-in software-engineering task instructions. Use this to adapt Claude Code for uses beyond coding, or to add teaching or review modes.</>, <>Select a built-in or custom style with <C>/config</C> or the <C>outputStyle</C> key in settings. Styles here are available in every project; project-level styles with the same name take precedence.</>],

644 tips: ['Built-in styles Explanatory and Learning are included with Claude Code; custom styles go here', <>Set <C>keep-coding-instructions: true</C> in frontmatter to keep the default task instructions alongside your additions</>, 'Changes take effect on the next session since the system prompt is fixed at startup for caching'],

645 docsLink: '/en/output-styles',

646 children: [{

647 id: 'output-style-example',

648 label: 'teaching.md',

649 type: 'file',

650 icon: 'md',

651 color: '#5AA7A7',

652 badge: 'local',

653 oneLiner: 'Example style that adds explanations and leaves small changes for you',

654 when: <>Active when <C>outputStyle</C> in settings is set to <C>teaching</C></>,

655 description: <>This style appends instructions to the system prompt: Claude adds a "Why this approach" note after each task and leaves TODO(human) markers for changes under 10 lines instead of writing them itself. Select it by setting <C>outputStyle</C> to the filename without .md, or to the <C>name</C> field if you set one in frontmatter.</>,

656 example: `---

657description: Explains reasoning and asks you to implement small pieces

658keep-coding-instructions: true

659---

660 

661After completing each task, add a brief "Why this approach" note

662explaining the key design decision.

663 

664When a change is under 10 lines, ask the user to implement it

665themselves by leaving a TODO(human) marker instead of writing it.`

666 }]

667 }, {

668 id: 'global-agents',

669 label: 'agents/',

670 type: 'folder',

671 icon: 'folder',

672 color: '#C46686',

673 oneLiner: 'Personal subagents available in every project',

674 when: 'Claude delegates or you @-mention in any project',

675 description: 'Subagents defined here are available across all your projects. Same format as project agents.',

676 docsLink: '/en/sub-agents',

677 children: []

678 }, {

679 id: 'global-workflows',

680 label: 'workflows/',

681 type: 'folder',

682 icon: 'folder',

683 color: '#C46686',

684 oneLiner: 'Personal dynamic workflows available in every project',

685 when: 'Loaded at startup; each file becomes a /<name> command',

686 description: <>Workflow scripts saved here are available across all your projects. A project workflow with the same name in <C>.claude/workflows/</C> takes precedence.</>,

687 docsLink: '/en/workflows',

688 children: []

689 }, {

690 id: 'global-agent-memory',

691 label: 'agent-memory/',

692 type: 'folder',

693 icon: 'folder',

694 color: '#C46686',

695 autogen: true,

696 oneLiner: <>Persistent memory for subagents with <C>memory: user</C></>,

697 when: 'Loaded into the subagent system prompt when the subagent starts',

698 description: <>Subagents with <C>memory: user</C> in their frontmatter store knowledge here that persists across all projects. For project-scoped subagent memory, see <C>.claude/agent-memory/</C> instead.</>,

699 docsLink: '/en/sub-agents#enable-persistent-memory',

700 children: []

701 }]

702 }]

703 }

704 }), []);

705 const BADGE_STYLES = useMemo(() => ({

706 committed: {

707 bg: 'rgba(85,138,66,0.08)',

708 color: 'var(--ce-badge-committed)',

709 border: 'rgba(85,138,66,0.15)',

710 label: 'committed'

711 },

712 gitignored: {

713 bg: 'rgba(217,119,87,0.06)',

714 color: 'var(--ce-badge-gitignored)',

715 border: 'rgba(217,119,87,0.15)',

716 label: 'gitignored'

717 },

718 local: {

719 bg: 'rgba(115,114,108,0.06)',

720 color: 'var(--ce-badge-local)',

721 border: 'rgba(115,114,108,0.12)',

722 label: 'local only'

723 },

724 autogen: {

725 bg: 'rgba(232,164,92,0.1)',

726 color: 'var(--ce-badge-autogen)',

727 border: 'rgba(232,164,92,0.2)',

728 label: 'Claude writes'

729 }

730 }), []);

731 const allNodes = useMemo(() => {

732 const flatten = (nodes, acc, path, parentId) => {

733 for (const node of nodes) {

734 const nextPath = [...path, node.label];

735 acc[node.id] = {

736 ...node,

737 path: nextPath,

738 parentId

739 };

740 if (node.children) flatten(node.children, acc, nextPath, node.id);

741 }

742 return acc;

743 };

744 const project = flatten(FILE_TREE.project.children, {}, [FILE_TREE.project.label]);

745 const global = flatten(FILE_TREE.global.children, {}, [FILE_TREE.global.label]);

746 for (const id in project) project[id].root = 'project';

747 for (const id in global) global[id].root = 'global';

748 return {

749 ...project,

750 ...global

751 };

752 }, [FILE_TREE]);

753 const allFolderIds = useMemo(() => Object.keys(allNodes).filter(id => allNodes[id].type === 'folder'), [allNodes]);

754 const DEFAULT_EXPANDED = ['dot-claude', 'rules', 'skills', 'skill-review', 'commands', 'agents', 'agent-memory', 'agent-memory-sub', 'global-dot-claude', 'global-output-styles', 'global-projects', 'memory-dir'];

755 const [mounted, setMounted] = useState(false);

756 const [activeRoot, setActiveRoot] = useState('project');

757 const [selectedId, setSelectedId] = useState('claude-md');

758 const [expandedFolders, setExpandedFolders] = useState(() => new Set(DEFAULT_EXPANDED));

759 const [forceMobile, setForceMobile] = useState(false);

760 const [copiedId, setCopiedId] = useState(null);

761 const [isFullscreen, setIsFullscreen] = useState(false);

762 const copyTimeoutRef = useRef(null);

763 const rootRef = useRef(null);

764 useEffect(() => {

765 setMounted(true);

766 const applyHash = scroll => {

767 const hash = window.location.hash.slice(1);

768 if (!hash.startsWith('ce-')) return;

769 const id = hash.slice(3);

770 const node = allNodes[id];

771 if (!node) return;

772 setActiveRoot(node.root);

773 setSelectedId(id);

774 setExpandedFolders(new Set(allFolderIds));

775 if (scroll && rootRef.current) rootRef.current.scrollIntoView({

776 behavior: 'smooth',

777 block: 'start'

778 });

779 };

780 applyHash(false);

781 const onHashChange = () => applyHash(true);

782 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

783 window.addEventListener('hashchange', onHashChange);

784 document.addEventListener('fullscreenchange', onFsChange);

785 return () => {

786 if (copyTimeoutRef.current) clearTimeout(copyTimeoutRef.current);

787 window.removeEventListener('hashchange', onHashChange);

788 document.removeEventListener('fullscreenchange', onFsChange);

789 };

790 }, []);

791 useEffect(() => {

792 if (!mounted || !rootRef.current) return;

793 const hash = window.location.hash.slice(1);

794 if (hash.startsWith('ce-') && allNodes[hash.slice(3)]) {

795 rootRef.current.scrollIntoView({

796 behavior: 'smooth',

797 block: 'start'

798 });

799 }

800 }, [mounted]);

801 if (!mounted) return null;

802 const selected = allNodes[selectedId];

803 const tree = FILE_TREE[activeRoot];

804 const isCopied = copiedId === selected.id;

805 const toggleFolder = id => {

806 const next = new Set(expandedFolders);

807 next.has(id) ? next.delete(id) : next.add(id);

808 setExpandedFolders(next);

809 };

810 const switchRoot = root => {

811 if (root === activeRoot) return;

812 setActiveRoot(root);

813 const firstId = FILE_TREE[root].children[0].id;

814 setSelectedId(firstId);

815 try {

816 history.replaceState(null, '', '#ce-' + firstId);

817 } catch (e) {}

818 };

819 const toggleFullscreen = () => {

820 if (!rootRef.current) return;

821 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

822 };

823 const selectNode = n => {

824 setSelectedId(n.id);

825 if (n.type === 'folder' && !expandedFolders.has(n.id)) toggleFolder(n.id);

826 try {

827 history.replaceState(null, '', '#ce-' + n.id);

828 } catch (e) {}

829 };

830 const iconBtn = {

831 width: 28,

832 flexShrink: 0,

833 borderRadius: '6px',

834 border: 'none',

835 cursor: 'pointer',

836 background: 'transparent',

837 color: 'var(--ce-text-4)',

838 display: 'flex',

839 alignItems: 'center',

840 justifyContent: 'center'

841 };

842 const visibleFolderIds = allFolderIds.filter(id => allNodes[id].root === activeRoot);

843 const allExpanded = visibleFolderIds.every(id => expandedFolders.has(id));

844 const toggleAllFolders = () => {

845 const next = new Set(expandedFolders);

846 visibleFolderIds.forEach(id => allExpanded ? next.delete(id) : next.add(id));

847 setExpandedFolders(next);

848 };

849 const onTreeKeyDown = e => {

850 if (!['ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(e.key)) return;

851 const visible = [];

852 const walk = nodes => {

853 for (const n of nodes) {

854 visible.push(n.id);

855 if (n.children && expandedFolders.has(n.id)) walk(n.children);

856 }

857 };

858 walk(tree.children);

859 const i = visible.indexOf(selectedId);

860 if (i === -1) return;

861 e.preventDefault();

862 if (e.key === 'ArrowDown' && i < visible.length - 1) selectNode(allNodes[visible[i + 1]]); else if (e.key === 'ArrowUp' && i > 0) selectNode(allNodes[visible[i - 1]]); else if (e.key === 'ArrowRight' && selected.type === 'folder') {

863 if (!expandedFolders.has(selectedId)) toggleFolder(selectedId); else if (selected.children && selected.children.length) selectNode(allNodes[selected.children[0].id]);

864 } else if (e.key === 'ArrowLeft') {

865 if (selected.type === 'folder' && expandedFolders.has(selectedId)) toggleFolder(selectedId); else if (selected.parentId) selectNode(allNodes[selected.parentId]);

866 }

867 };

868 const copyExample = (id, text) => {

869 const done = () => {

870 setCopiedId(id);

871 if (copyTimeoutRef.current) clearTimeout(copyTimeoutRef.current);

872 copyTimeoutRef.current = setTimeout(() => setCopiedId(null), 2000);

873 };

874 const fallback = () => {

875 const ta = document.createElement('textarea');

876 ta.value = text;

877 ta.style.position = 'fixed';

878 ta.style.opacity = '0';

879 document.body.appendChild(ta);

880 ta.select();

881 try {

882 if (document.execCommand('copy')) done();

883 } catch (e) {}

884 document.body.removeChild(ta);

885 };

886 if (navigator.clipboard) {

887 navigator.clipboard.writeText(text).then(done, fallback);

888 } else {

889 fallback();

890 }

891 };

892 const renderIcon = (icon, color, size) => {

893 const sz = size || 14;

894 if (icon === 'folder') {

895 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

896 <path d="M1.5 3.5a1 1 0 0 1 1-1h2.6l1 1.2h5.4a1 1 0 0 1 1 1v5.8a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1V3.5z" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

897 </svg>;

898 }

899 if (icon === 'json') {

900 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

901 <rect x="2" y="1.5" width="10" height="11" rx="1.5" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

902 <text x="7" y="9" fontSize="6" fontFamily="monospace" fill={color} textAnchor="middle" fontWeight="700">{'{}'}</text>

903 </svg>;

904 }

905 return <svg width={sz} height={sz} viewBox="0 0 14 14" fill="none">

906 <rect x="2" y="1.5" width="10" height="11" rx="1.5" fill={color} fillOpacity="0.15" stroke={color} strokeWidth="1" />

907 <line x1="4.5" y1="5" x2="9.5" y2="5" stroke={color} strokeWidth="1" />

908 <line x1="4.5" y1="7" x2="9.5" y2="7" stroke={color} strokeWidth="1" />

909 <line x1="4.5" y1="9" x2="8" y2="9" stroke={color} strokeWidth="1" />

910 </svg>;

911 };

912 const renderNode = (node, depth) => {

913 const isFolder = node.type === 'folder';

914 const isExpanded = expandedFolders.has(node.id);

915 const isSelected = selectedId === node.id;

916 return <div key={node.id}>

917 <button role="treeitem" tabIndex={-1} onClick={() => selectNode(node)} aria-selected={isSelected} aria-expanded={isFolder ? isExpanded : undefined} style={{

918 display: 'flex',

919 alignItems: 'center',

920 gap: '5px',

921 width: '100%',

922 padding: `4px 8px 4px ${8 + depth * 16}px`,

923 background: isSelected ? 'var(--ce-accent-bg)' : 'transparent',

924 borderTop: 'none',

925 borderRight: 'none',

926 borderBottom: 'none',

927 borderLeft: isSelected ? '2px solid var(--ce-accent)' : '2px solid transparent',

928 outline: 'none',

929 cursor: 'pointer',

930 textAlign: 'left',

931 fontFamily: 'var(--ce-mono)',

932 fontSize: '13.5px',

933 color: isSelected ? 'var(--ce-accent)' : 'var(--ce-text-2)',

934 fontWeight: isSelected ? 550 : 400,

935 transition: 'all 0.1s'

936 }}>

937 {isFolder ? <span onClick={e => {

938 e.stopPropagation();

939 toggleFolder(node.id);

940 }} style={{

941 fontSize: '14px',

942 color: 'var(--ce-text-4)',

943 width: '20px',

944 height: '20px',

945 display: 'inline-flex',

946 alignItems: 'center',

947 justifyContent: 'center',

948 cursor: 'pointer',

949 borderRadius: '4px',

950 marginLeft: '-6px',

951 flexShrink: 0

952 }} onMouseEnter={e => {

953 e.currentTarget.style.background = 'var(--ce-arrow-hover)';

954 e.currentTarget.style.color = 'var(--ce-text-2)';

955 }} onMouseLeave={e => {

956 e.currentTarget.style.background = 'transparent';

957 e.currentTarget.style.color = 'var(--ce-text-4)';

958 }}>{isExpanded ? '▾' : '▸'}</span> : <span style={{

959 width: '14px',

960 flexShrink: 0

961 }} />}

962 {renderIcon(node.icon, node.color)}

963 <span style={{

964 flex: 1,

965 overflow: 'hidden',

966 textOverflow: 'ellipsis',

967 whiteSpace: 'nowrap'

968 }}>{node.label}</span>

969 {node.badge && BADGE_STYLES[node.badge] && <span title={BADGE_STYLES[node.badge].label} style={{

970 width: 6,

971 height: 6,

972 borderRadius: '50%',

973 background: BADGE_STYLES[node.badge].color,

974 flexShrink: 0,

975 opacity: 0.7

976 }} />}

977 </button>

978 {isFolder && isExpanded && node.children && <div role="group">{node.children.map(child => renderNode(child, depth + 1))}</div>}

979 </div>;

980 };

981 return <>

982 <style>{`

983 .ce-root {

984 --ce-mono: var(--font-mono, ui-monospace, monospace);

985 --ce-accent: #D97757;

986 --ce-accent-bg: rgba(217,119,87,0.06);

987 --ce-accent-border: rgba(217,119,87,0.12);

988 --ce-bg: #fff;

989 --ce-surface: #FAFAF7;

990 --ce-surface-hover: #F0EEE6;

991 --ce-border: #E8E6DC;

992 --ce-border-subtle: #F0EEE6;

993 --ce-text: #141413;

994 --ce-text-2: #5E5D59;

995 --ce-text-3: #73726C;

996 --ce-text-4: #9C9A92;

997 --ce-text-5: #B8B6AE;

998 --ce-sep: #D1CFC5;

999 --ce-code-header: #F5F4ED;

1000 --ce-code-bg: #1A1918;

1001 --ce-arrow-hover: rgba(0,0,0,0.08);

1002 --ce-badge-committed: #3d6b2e;

1003 --ce-badge-gitignored: #b85c3a;

1004 --ce-badge-local: #5e5d59;

1005 --ce-badge-autogen: #b07520;

1006 --ce-when-text: #4a7fb5;

1007 }

1008 .dark .ce-root {

1009 --ce-bg: #1a1918;

1010 --ce-surface: #232221;

1011 --ce-surface-hover: #2e2d2b;

1012 --ce-border: #3a3936;

1013 --ce-border-subtle: #2e2d2b;

1014 --ce-text: #e8e6dc;

1015 --ce-text-2: #c4c2b8;

1016 --ce-text-3: #9c9a92;

1017 --ce-text-4: #73726c;

1018 --ce-text-5: #5e5d59;

1019 --ce-sep: #4a4946;

1020 --ce-code-header: #2e2d2b;

1021 --ce-code-bg: #0d0d0c;

1022 --ce-arrow-hover: rgba(255,255,255,0.08);

1023 --ce-badge-committed: #6fa85c;

1024 --ce-badge-gitignored: #e08a60;

1025 --ce-badge-local: #9c9a92;

1026 --ce-badge-autogen: #e8a45c;

1027 --ce-when-text: #8bb4e0;

1028 }

1029 .ce-mobile-fallback { display: none; border: 1px solid rgba(0,0,0,0.1); background: rgba(0,0,0,0.03); }

1030 .dark .ce-mobile-fallback { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.04); }

1031 @media (max-width: 700px) {

1032 .ce-root:not(.ce-force) { display: none !important; }

1033 .ce-mobile-fallback { display: block; }

1034 }

1035 `}</style>

1036 {!forceMobile && <div className="ce-mobile-fallback" style={{

1037 padding: '14px 16px',

1038 borderRadius: '8px',

1039 fontSize: '14px'

1040 }}>

1041 The interactive explorer works best on a larger screen. See the <a href="#file-reference" style={{

1042 color: '#D97757'

1043 }}>file reference table</a> below, or <button onClick={() => setForceMobile(true)} style={{

1044 border: 'none',

1045 background: 'none',

1046 padding: 0,

1047 color: '#D97757',

1048 textDecoration: 'underline',

1049 cursor: 'pointer',

1050 font: 'inherit'

1051 }}>show the explorer anyway</button>.

1052 </div>}

1053 <div ref={rootRef} className={forceMobile ? 'ce-root ce-force' : 'ce-root'} style={{

1054 borderRadius: isFullscreen ? 0 : '12px',

1055 border: '1px solid var(--ce-border)',

1056 background: 'var(--ce-bg)',

1057 display: 'flex',

1058 alignItems: 'stretch',

1059 overflow: 'hidden',

1060 fontFamily: 'var(--font-sans, -apple-system, sans-serif)',

1061 ...isFullscreen && ({

1062 height: '100vh'

1063 })

1064 }}>

1065 {}

1066 <div style={{

1067 width: 'min(240px, 35%)',

1068 minWidth: '180px',

1069 flexShrink: 0,

1070 borderRight: '1px solid var(--ce-border-subtle)',

1071 background: 'var(--ce-surface)',

1072 display: 'flex',

1073 flexDirection: 'column'

1074 }}>

1075 <div style={{

1076 padding: '8px 8px 4px',

1077 borderBottom: '1px solid var(--ce-border-subtle)',

1078 display: 'flex',

1079 gap: '4px'

1080 }}>

1081 {['project', 'global'].map(root => <button key={root} onClick={() => switchRoot(root)} style={{

1082 flex: 1,

1083 padding: '6px 0',

1084 borderRadius: '6px',

1085 border: 'none',

1086 cursor: 'pointer',

1087 fontFamily: 'var(--ce-mono)',

1088 fontSize: '11.5px',

1089 background: activeRoot === root ? 'var(--ce-accent-bg)' : 'transparent',

1090 color: activeRoot === root ? 'var(--ce-accent)' : 'var(--ce-text-4)',

1091 fontWeight: activeRoot === root ? 600 : 430

1092 }}>

1093 {root === 'project' ? 'Project' : 'Global (~/)'}

1094 </button>)}

1095 <button onClick={toggleAllFolders} title={allExpanded ? 'Collapse all' : 'Expand all'} style={{

1096 ...iconBtn,

1097 fontSize: 11

1098 }}>

1099 {allExpanded ? '⊟' : '⊞'}

1100 </button>

1101 <button onClick={toggleFullscreen} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} style={{

1102 ...iconBtn,

1103 fontSize: 13

1104 }}>

1105 {isFullscreen ? '⤡' : '⛶'}

1106 </button>

1107 </div>

1108 <div role="tree" aria-label="Configuration files" tabIndex={0} onKeyDown={onTreeKeyDown} style={{

1109 padding: '6px 0',

1110 overflowY: 'auto',

1111 flex: 1,

1112 outline: 'none'

1113 }}>

1114 {tree.children.map(node => renderNode(node, 0))}

1115 </div>

1116 </div>

1117 

1118 {}

1119 <div style={{

1120 flex: 1,

1121 minWidth: 0,

1122 padding: '20px 24px',

1123 minHeight: '400px',

1124 overflowY: 'auto'

1125 }}>

1126 <span aria-live="polite" style={{

1127 position: 'absolute',

1128 width: 1,

1129 height: 1,

1130 overflow: 'hidden',

1131 clip: 'rect(0 0 0 0)'

1132 }}>{selected.label} selected</span>

1133 {}

1134 <div style={{

1135 fontFamily: 'var(--ce-mono)',

1136 fontSize: '11px',

1137 color: 'var(--ce-text-4)',

1138 marginBottom: '10px',

1139 cursor: 'default'

1140 }}>

1141 {selected.path.map((seg, i) => <span key={i}>

1142 <span style={{

1143 color: i === selected.path.length - 1 ? 'var(--ce-accent)' : 'var(--ce-text-4)'

1144 }}>{seg.replace(/\/$/, '')}</span>

1145 {i < selected.path.length - 1 && <span style={{

1146 color: 'var(--ce-sep)'

1147 }}> / </span>}

1148 </span>)}

1149 </div>

1150 

1151 {}

1152 <div style={{

1153 display: 'flex',

1154 alignItems: 'flex-start',

1155 gap: '10px',

1156 marginBottom: '10px'

1157 }}>

1158 <span style={{

1159 flexShrink: 0,

1160 display: 'flex'

1161 }}>{renderIcon(selected.icon, selected.color, 24)}</span>

1162 <div style={{

1163 flex: 1,

1164 minWidth: 0

1165 }}>

1166 <div style={{

1167 fontSize: '22px',

1168 fontWeight: 600,

1169 color: 'var(--ce-text)',

1170 letterSpacing: '-0.3px',

1171 lineHeight: '26px'

1172 }}>{selected.label}</div>

1173 {selected.oneLiner && <div style={{

1174 fontSize: '15px',

1175 color: 'var(--ce-text-3)',

1176 marginTop: '3px'

1177 }}>{selected.oneLiner}</div>}

1178 </div>

1179 <div style={{

1180 display: 'flex',

1181 gap: '4px',

1182 flexShrink: 0

1183 }}>

1184 {[selected.autogen && 'autogen', selected.badge].filter(Boolean).map(k => {

1185 const s = BADGE_STYLES[k];

1186 if (!s) return null;

1187 return <span key={k} style={{

1188 fontFamily: 'var(--ce-mono)',

1189 fontSize: '10px',

1190 fontWeight: 600,

1191 textTransform: 'uppercase',

1192 letterSpacing: '0.3px',

1193 padding: '2px 6px',

1194 borderRadius: '4px',

1195 background: s.bg,

1196 color: s.color,

1197 border: `0.5px solid ${s.border}`

1198 }}>{s.label}</span>;

1199 })}

1200 </div>

1201 </div>

1202 

1203 {}

1204 {selected.note && <div style={{

1205 padding: '10px 12px',

1206 borderRadius: '8px',

1207 marginBottom: '14px',

1208 background: 'rgba(217,119,87,0.06)',

1209 border: '1px solid rgba(217,119,87,0.2)',

1210 borderLeft: '3px solid var(--ce-accent)',

1211 fontSize: '15px',

1212 color: 'var(--ce-text-2)',

1213 lineHeight: 1.6

1214 }}>

1215 {selected.note}

1216 </div>}

1217 

1218 {}

1219 {selected.when && <div style={{

1220 padding: '8px 12px',

1221 borderRadius: '6px',

1222 background: 'rgba(106,155,204,0.06)',

1223 border: '0.5px solid rgba(106,155,204,0.12)',

1224 fontSize: '15px',

1225 color: 'var(--ce-when-text)',

1226 marginBottom: '16px'

1227 }}>

1228 <div style={{

1229 fontSize: '10px',

1230 fontWeight: 700,

1231 textTransform: 'uppercase',

1232 letterSpacing: '0.4px',

1233 opacity: 0.65,

1234 marginBottom: '3px'

1235 }}>When it loads</div>

1236 <div style={{

1237 fontWeight: 500

1238 }}>{selected.when}</div>

1239 </div>}

1240 

1241 {}

1242 {selected.description && <div style={{

1243 fontSize: '16px',

1244 color: 'var(--ce-text-2)',

1245 lineHeight: 1.65,

1246 marginBottom: '16px'

1247 }}>

1248 {Array.isArray(selected.description) ? selected.description.map((para, i) => <div key={i} style={{

1249 marginBottom: i < selected.description.length - 1 ? '12px' : 0

1250 }}>{para}</div>) : selected.description}

1251 </div>}

1252 

1253 {}

1254 {selected.contains && selected.contains.length > 0 && <div style={{

1255 marginBottom: '16px'

1256 }}>

1257 <div style={{

1258 fontSize: '11px',

1259 fontWeight: 700,

1260 color: 'var(--ce-text-4)',

1261 textTransform: 'uppercase',

1262 letterSpacing: '0.4px',

1263 marginBottom: '8px'

1264 }}>Common keys</div>

1265 {selected.contains.map((item, i) => <div key={i} style={{

1266 display: 'flex',

1267 gap: '7px',

1268 fontSize: '15px',

1269 color: 'var(--ce-text-2)',

1270 lineHeight: 1.5,

1271 marginBottom: '5px'

1272 }}>

1273 <span style={{

1274 fontSize: '7px',

1275 color: 'var(--ce-text-4)',

1276 marginTop: '6px'

1277 }}>●</span>

1278 <span>{item}</span>

1279 </div>)}

1280 </div>}

1281 

1282 {}

1283 {selected.tips && selected.tips.length > 0 && <div style={{

1284 padding: '12px 14px',

1285 borderRadius: '8px',

1286 background: 'var(--ce-surface)',

1287 border: '1px solid var(--ce-border-subtle)',

1288 marginBottom: '16px'

1289 }}>

1290 <div style={{

1291 fontSize: '11px',

1292 fontWeight: 700,

1293 color: 'var(--ce-accent)',

1294 textTransform: 'uppercase',

1295 letterSpacing: '0.4px',

1296 marginBottom: '6px'

1297 }}>Tips</div>

1298 {selected.tips.map((tip, i) => <div key={i} style={{

1299 display: 'flex',

1300 gap: '7px',

1301 fontSize: '14.5px',

1302 color: 'var(--ce-text-2)',

1303 marginBottom: i < selected.tips.length - 1 ? '5px' : 0

1304 }}>

1305 <span style={{

1306 fontSize: '7px',

1307 color: 'var(--ce-accent)',

1308 marginTop: '6px'

1309 }}>●</span>

1310 <span>{tip}</span>

1311 </div>)}

1312 </div>}

1313 

1314 {}

1315 {selected.example && <div style={{

1316 marginBottom: '16px'

1317 }}>

1318 {selected.exampleIntro && <div style={{

1319 fontSize: '15px',

1320 color: 'var(--ce-text-2)',

1321 lineHeight: 1.6,

1322 marginBottom: '10px'

1323 }}>

1324 {selected.exampleIntro}

1325 </div>}

1326 <div style={{

1327 display: 'flex',

1328 justifyContent: 'space-between',

1329 alignItems: 'center',

1330 padding: '6px 10px',

1331 background: 'var(--ce-code-header)',

1332 border: '1px solid var(--ce-border)',

1333 borderRadius: '8px 8px 0 0'

1334 }}>

1335 <span style={{

1336 fontFamily: 'var(--ce-mono)',

1337 fontSize: '11px',

1338 fontWeight: 600,

1339 color: 'var(--ce-text-3)'

1340 }}>{selected.label}</span>

1341 <button onClick={() => copyExample(selected.id, selected.example)} style={{

1342 padding: '3px 8px',

1343 borderRadius: '4px',

1344 fontSize: '11px',

1345 fontWeight: 600,

1346 cursor: 'pointer',

1347 transition: 'all 0.15s',

1348 background: isCopied ? 'rgba(85,138,66,0.08)' : 'var(--ce-code-header)',

1349 border: isCopied ? '0.5px solid rgba(85,138,66,0.2)' : '0.5px solid var(--ce-border)',

1350 color: isCopied ? '#558A42' : 'var(--ce-text-3)'

1351 }}>

1352 {isCopied ? '✓ Copied' : 'Copy'}

1353 </button>

1354 </div>

1355 <pre style={{

1356 margin: 0,

1357 padding: '12px 14px',

1358 background: 'var(--ce-code-bg)',

1359 color: '#E8E6DC',

1360 fontFamily: 'var(--ce-mono)',

1361 fontSize: '13px',

1362 lineHeight: 1.65,

1363 borderRadius: '0 0 8px 8px',

1364 overflowX: 'auto',

1365 whiteSpace: 'pre'

1366 }}>{selected.example}</pre>

1367 </div>}

1368 

1369 {}

1370 {selected.docsLink && <a href={selected.docsLink} style={{

1371 display: 'inline-flex',

1372 padding: '5px 12px',

1373 borderRadius: '6px',

1374 background: 'var(--ce-accent-bg)',

1375 border: '1px solid var(--ce-accent-border)',

1376 color: 'var(--ce-accent)',

1377 fontSize: '12px',

1378 fontWeight: 600,

1379 textDecoration: 'none'

1380 }}>Full docs →</a>}

1381 

1382 {}

1383 {selected.children && selected.children.length > 0 && <div style={{

1384 marginTop: '20px'

1385 }}>

1386 <div style={{

1387 fontSize: '11px',

1388 fontWeight: 700,

1389 color: 'var(--ce-text-4)',

1390 textTransform: 'uppercase',

1391 letterSpacing: '0.4px',

1392 marginBottom: '8px'

1393 }}>Contents</div>

1394 <div style={{

1395 display: 'flex',

1396 flexDirection: 'column',

1397 gap: '4px'

1398 }}>

1399 {selected.children.map(child => <button key={child.id} onClick={() => selectNode(child)} style={{

1400 display: 'flex',

1401 alignItems: 'center',

1402 gap: '8px',

1403 padding: '6px 8px',

1404 width: '100%',

1405 background: 'var(--ce-surface)',

1406 borderRadius: '6px',

1407 border: 'none',

1408 cursor: 'pointer',

1409 textAlign: 'left',

1410 transition: 'background 0.1s'

1411 }} onMouseEnter={e => e.currentTarget.style.background = 'var(--ce-surface-hover)'} onMouseLeave={e => e.currentTarget.style.background = 'var(--ce-surface)'}>

1412 {renderIcon(child.icon, child.color, 13)}

1413 <span style={{

1414 fontFamily: 'var(--ce-mono)',

1415 fontSize: '12px',

1416 color: 'var(--ce-text-2)'

1417 }}>{child.label}</span>

1418 {child.oneLiner && <span style={{

1419 fontSize: '11px',

1420 color: 'var(--ce-text-4)',

1421 overflow: 'hidden',

1422 textOverflow: 'ellipsis',

1423 whiteSpace: 'nowrap'

1424 }}>{child.oneLiner}</span>}

1425 </button>)}

1426 </div>

1427 </div>}

1428 </div>

1429 </div>

1430 </>;

1431};

1432 

9Claude Code lit les instructions, les paramètres, les skills, les subagents et la mémoire à partir de votre répertoire de projet et de `~/.claude` dans votre répertoire personnel. Validez les fichiers du projet dans git pour les partager avec votre équipe ; les fichiers dans `~/.claude` sont une configuration personnelle qui s'applique à tous vos projets.1433Claude Code lit les instructions, les paramètres, les skills, les subagents et la mémoire à partir de votre répertoire de projet et de `~/.claude` dans votre répertoire personnel. Validez les fichiers du projet dans git pour les partager avec votre équipe ; les fichiers dans `~/.claude` sont une configuration personnelle qui s'applique à tous vos projets.

10 1434 

11Sur Windows, `~/.claude` se résout en `%USERPROFILE%\.claude`. Si vous définissez [`CLAUDE_CONFIG_DIR`](/fr/env-vars), chaque chemin `~/.claude` sur cette page se trouve sous ce répertoire à la place.1435Sur Windows, `~/.claude` se résout en `%USERPROFILE%\.claude`. Si vous définissez [`CLAUDE_CONFIG_DIR`](/fr/env-vars), chaque chemin `~/.claude` sur cette page se trouve sous ce répertoire à la place.


18 1442 

19Cliquez sur les fichiers dans l'arborescence pour voir ce que chacun fait, quand il se charge et un exemple.1443Cliquez sur les fichiers dans l'arborescence pour voir ce que chacun fait, quand il se charge et un exemple.

20 1444 

21<h2 id="what-s-not-shown">1445<ClaudeExplorer />

1446 

1447<h2 id="what’s-not-shown">

22 Ce qui n'est pas affiché1448 Ce qui n'est pas affiché

23</h2>1449</h2>

24 1450 

Details

6 6 

7> Configurez Claude Code pour utiliser l'API Claude exploitée par Anthropic avec l'authentification AWS, le contrôle d'accès IAM et la facturation AWS Marketplace.7> Configurez Claude Code pour utiliser l'API Claude exploitée par Anthropic avec l'authentification AWS, le contrôle d'accès IAM et la facturation AWS Marketplace.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79export const Experiment = ({flag, treatment, children}) => {

80 const VID_KEY = 'exp_vid';

81 const CONSENT_COUNTRIES = new Set(['AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'RE', 'GP', 'MQ', 'GF', 'YT', 'BL', 'MF', 'PM', 'WF', 'PF', 'NC', 'AW', 'CW', 'SX', 'FO', 'GL', 'AX', 'GB', 'UK', 'AI', 'BM', 'IO', 'VG', 'KY', 'FK', 'GI', 'MS', 'PN', 'SH', 'TC', 'GG', 'JE', 'IM', 'CA', 'BR', 'IN']);

82 const fnv1a = s => {

83 let h = 0x811c9dc5;

84 for (let i = 0; i < s.length; i++) {

85 h ^= s.charCodeAt(i);

86 h += (h << 1) + (h << 4) + (h << 7) + (h << 8) + (h << 24);

87 }

88 return h >>> 0;

89 };

90 const bucket = (seed, vid) => fnv1a(fnv1a(seed + vid) + '') % 10000 < 5000 ? 'control' : 'treatment';

91 const [decision] = useState(() => {

92 const params = new URLSearchParams(location.search);

93 const preBucketed = document.documentElement.dataset['gb_' + flag.replace(/-/g, '_')];

94 const force = params.get('gb-force');

95 if (force) {

96 for (const p of force.split(',')) {

97 const [k, v] = p.split(':');

98 if (k === flag) return {

99 variant: v || 'treatment',

100 track: false

101 };

102 }

103 }

104 if (navigator.globalPrivacyControl) {

105 return {

106 variant: 'control',

107 track: false

108 };

109 }

110 const prefsMatch = document.cookie.match(/(?:^|; )anthropic-consent-preferences=([^;]+)/);

111 if (prefsMatch) {

112 try {

113 if (JSON.parse(decodeURIComponent(prefsMatch[1])).analytics !== true) {

114 return {

115 variant: 'control',

116 track: false

117 };

118 }

119 } catch {

120 return {

121 variant: 'control',

122 track: false

123 };

124 }

125 } else {

126 const country = params.get('country')?.toUpperCase() || (document.cookie.match(/(?:^|; )cf_geo=([A-Z]{2})/) || [])[1];

127 if (!country || CONSENT_COUNTRIES.has(country)) {

128 return {

129 variant: 'control',

130 track: false

131 };

132 }

133 }

134 let vid;

135 try {

136 const ajsMatch = document.cookie.match(/(?:^|; )ajs_anonymous_id=([^;]+)/);

137 if (ajsMatch) {

138 vid = decodeURIComponent(ajsMatch[1]).replace(/^"|"$/g, '');

139 } else {

140 vid = localStorage.getItem(VID_KEY);

141 if (!vid) {

142 vid = crypto.randomUUID();

143 }

144 document.cookie = `ajs_anonymous_id=${vid}; domain=.claude.com; path=/; Secure; SameSite=Lax; max-age=31536000`;

145 }

146 try {

147 localStorage.setItem(VID_KEY, vid);

148 } catch {}

149 } catch {

150 return {

151 variant: 'control',

152 track: false

153 };

154 }

155 const variant = preBucketed === '1' ? 'treatment' : preBucketed === '0' ? 'control' : bucket(flag, vid);

156 return {

157 variant,

158 track: true,

159 vid

160 };

161 });

162 useEffect(() => {

163 if (!decision.track) return;

164 fetch('https://api.anthropic.com/api/event_logging/v2/batch', {

165 method: 'POST',

166 headers: {

167 'Content-Type': 'application/json',

168 'x-service-name': 'claude_code_docs'

169 },

170 body: JSON.stringify({

171 events: [{

172 event_type: 'GrowthbookExperimentEvent',

173 event_data: {

174 device_id: decision.vid,

175 anonymous_id: decision.vid,

176 timestamp: new Date().toISOString(),

177 experiment_id: flag,

178 variation_id: decision.variant === 'treatment' ? 1 : 0,

179 environment: 'production'

180 }

181 }]

182 }),

183 keepalive: true

184 }).catch(() => {});

185 }, []);

186 return decision.variant === 'treatment' ? treatment : children;

187};

188 

189<Experiment flag="docs-contact-sales-cta" treatment={<ContactSalesCard surface="claude_platform_on_aws" />} />

190 

9Claude Platform on AWS est l'API Claude exploitée par Anthropic avec l'authentification AWS, le contrôle d'accès IAM et la facturation AWS Marketplace. Les requêtes atteignent directement l'API d'Anthropic, vous bénéficiez donc des mêmes modèles et fonctionnalités que l'[API Claude](https://platform.claude.com/docs) selon le même calendrier de publication. Vous vous authentifiez avec les identifiants AWS ou une clé API d'espace de travail, et vous payez via AWS Marketplace.191Claude Platform on AWS est l'API Claude exploitée par Anthropic avec l'authentification AWS, le contrôle d'accès IAM et la facturation AWS Marketplace. Les requêtes atteignent directement l'API d'Anthropic, vous bénéficiez donc des mêmes modèles et fonctionnalités que l'[API Claude](https://platform.claude.com/docs) selon le même calendrier de publication. Vous vous authentifiez avec les identifiants AWS ou une clé API d'espace de travail, et vous payez via AWS Marketplace.

10 192 

11Utilisez ce guide pour pointer Claude Code vers un espace de travail que vous avez déjà provisionné via Claude Platform on AWS. Pour l'abonnement AWS et la configuration de l'espace de travail qui précèdent cela, consultez la [documentation Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).193Utilisez ce guide pour pointer Claude Code vers un espace de travail que vous avez déjà provisionné via Claude Platform on AWS. Pour l'abonnement AWS et la configuration de l'espace de travail qui précèdent cela, consultez la [documentation Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws).


92 3. Épinglez les versions de modèle274 3. Épinglez les versions de modèle

93</h3>275</h3>

94 276 

95Claude Platform on AWS utilise les mêmes ID de modèle que l'API Claude directe. Les alias par défaut `opus`, `sonnet` et `haiku` se résolvent aux dernières versions disponibles dans votre espace de travail.277Claude Platform on AWS utilise les mêmes ID de modèle que l'API Claude directe. Les alias par défaut `fable`, `opus`, `sonnet` et `haiku` se résolvent aux valeurs par défaut intégrées de Claude Code pour Claude Platform on AWS, qui peuvent être en retard par rapport à la version la plus récente. Sans `ANTHROPIC_DEFAULT_OPUS_MODEL`, l'alias `opus` se résout à Opus 4.7.

96 278 

97Si vous déployez Claude Code pour une équipe, épinglez explicitement les ID de modèle pour qu'une nouvelle version ne déplace pas tout le monde à la fois :279Si vous déployez Claude Code pour une équipe, épinglez explicitement les ID de modèle pour qu'une nouvelle version ne déplace pas tout le monde à la fois :

98 280 

99```bash theme={null}281```bash theme={null}

282export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5

100export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7283export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7

101export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6284export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6

102export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5285export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5


157 `403 Forbidden` ou `AccessDenied` à chaque requête340 `403 Forbidden` ou `AccessDenied` à chaque requête

158</h3>341</h3>

159 342 

160Le principal IAM que Claude Code a résolu manque probablement de la permission d'invoquer le service Anthropic dans votre espace de travail. Vérifiez le rôle attaché à votre profil AWS ou au runner qui a démarré Claude Code, et vérifiez qu'il dispose des actions `aws-external-anthropic` documentées dans la [référence des actions IAM](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions).343Le principal IAM que Claude Code a résolu manque probablement de la permission d'invoquer le service Anthropic dans votre espace de travail. Vérifiez le rôle attaché à votre profil AWS ou au runner qui a démarré Claude Code, et vérifiez qu'il dispose des actions `aws-external-anthropic` documentées dans la [référence des actions IAM](https://platform.claude.com/docs/fr/api/claude-platform-on-aws-iam-actions).

161 344 

162Si vous avez défini `ANTHROPIC_AWS_API_KEY`, la clé prend la priorité sur SigV4 et une clé obsolète produit la même erreur. Régénérez la clé dans la console AWS sous **Claude Platform on AWS → API keys** ou désactivez la variable pour revenir à vos identifiants AWS.345Si vous avez défini `ANTHROPIC_AWS_API_KEY`, la clé prend la priorité sur SigV4 et une clé obsolète produit la même erreur. Régénérez la clé dans la console AWS sous **Claude Platform on AWS → API keys** ou désactivez la variable pour revenir à vos identifiants AWS.

163 346 


179 362 

180L'abonnement Claude Platform on AWS, la configuration de l'espace de travail et d'IAM qui précèdent la configuration de Claude Code sont couverts dans la documentation de la plateforme :363L'abonnement Claude Platform on AWS, la configuration de l'espace de travail et d'IAM qui précèdent la configuration de Claude Code sont couverts dans la documentation de la plateforme :

181 364 

182* [Aperçu de Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws) : abonnement, configuration de l'espace de travail et référence du produit365* [Aperçu de Claude Platform on AWS](https://platform.claude.com/docs/fr/build-with-claude/claude-platform-on-aws) : abonnement, configuration de l'espace de travail et référence du produit

183* [Référence des actions IAM](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions) : permissions et politiques gérées366* [Référence des actions IAM](https://platform.claude.com/docs/fr/api/claude-platform-on-aws-iam-actions) : permissions et politiques gérées

cli-reference.md +11 −9

Details

13Vous pouvez démarrer des sessions, traiter du contenu, reprendre des conversations et gérer les mises à jour avec ces commandes :13Vous pouvez démarrer des sessions, traiter du contenu, reprendre des conversations et gérer les mises à jour avec ces commandes :

14 14 

15| Commande | Description | Exemple |15| Commande | Description | Exemple |

16| :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |16| :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- |

17| `claude` | Démarrer une session interactive | `claude` |17| `claude` | Démarrer une session interactive | `claude` |

18| `claude "query"` | Démarrer une session interactive avec une invite initiale | `claude "explain this project"` |18| `claude "query"` | Démarrer une session interactive avec une invite initiale | `claude "explain this project"` |

19| `claude -p "query"` | Interroger via SDK, puis quitter | `claude -p "explain this function"` |19| `claude -p "query"` | Interroger via SDK, puis quitter | `claude -p "explain this function"` |


26| `claude auth login` | Se connecter à votre compte Anthropic. Utilisez `--email` pour pré-remplir votre adresse e-mail, `--sso` pour forcer l'authentification SSO, et `--console` pour vous connecter avec Anthropic Console pour la facturation de l'utilisation de l'API au lieu d'un abonnement Claude | `claude auth login --console` |26| `claude auth login` | Se connecter à votre compte Anthropic. Utilisez `--email` pour pré-remplir votre adresse e-mail, `--sso` pour forcer l'authentification SSO, et `--console` pour vous connecter avec Anthropic Console pour la facturation de l'utilisation de l'API au lieu d'un abonnement Claude | `claude auth login --console` |

27| `claude auth logout` | Se déconnecter de votre compte Anthropic | `claude auth logout` |27| `claude auth logout` | Se déconnecter de votre compte Anthropic | `claude auth logout` |

28| `claude auth status` | Afficher l'état d'authentification en JSON. Utilisez `--text` pour une sortie lisible par l'homme. Quitte avec le code 0 si connecté, 1 sinon | `claude auth status` |28| `claude auth status` | Afficher l'état d'authentification en JSON. Utilisez `--text` pour une sortie lisible par l'homme. Quitte avec le code 0 si connecté, 1 sinon | `claude auth status` |

29| `claude agents` | Ouvrir la [vue agent](/fr/agent-view) pour surveiller et dispatcher les sessions d'arrière-plan parallèles. Utilisez `--cwd <path>` pour afficher uniquement les sessions démarrées sous ce répertoire, ou `--json` pour imprimer les sessions actives en tant que tableau JSON pour les scripts. Passez `--permission-mode`, `--model`, `--effort`, ou `--agent` pour définir les [valeurs par défaut pour les sessions dispatched](/fr/agent-view#permission-mode-model-and-effort). Accepte `--settings`, `--add-dir`, `--plugin-dir`, et `--mcp-config` comme la commande `claude` de niveau supérieur. L'ouverture de la vue agent nécessite un terminal interactif | `claude agents --json` |29| `claude agents` | Ouvrir la [vue agent](/fr/agent-view) pour surveiller et dispatcher les sessions d'arrière-plan parallèles. Utilisez `--cwd <path>` pour afficher uniquement les sessions démarrées sous ce répertoire, ou `--json` pour imprimer les sessions actives en tant que tableau JSON pour les scripts (`--json --all` inclut également les sessions d'arrière-plan terminées). Passez `--permission-mode`, `--model`, `--effort`, ou `--agent` pour définir les [valeurs par défaut pour les sessions dispatched](/fr/agent-view#permission-mode-model-and-effort). Accepte `--settings`, `--add-dir`, `--plugin-dir`, et `--mcp-config` comme la commande `claude` de niveau supérieur. L'ouverture de la vue agent nécessite un terminal interactif | `claude agents --json` |

30| `claude attach <id>` | Attacher à une [session d'arrière-plan](/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal | `claude attach 7c5dcf5d` |30| `claude attach <id>` | Attacher à une [session d'arrière-plan](/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal | `claude attach 7c5dcf5d` |

31| `claude auto-mode defaults` | Imprimer les règles du classificateur [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) intégrées en JSON. Utilisez `claude auto-mode config` pour voir votre configuration effective avec les paramètres appliqués | `claude auto-mode defaults > rules.json` |31| `claude auto-mode defaults` | Imprimer les règles du classificateur [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) intégrées en JSON. Utilisez `claude auto-mode config` pour voir votre configuration effective avec les paramètres appliqués | `claude auto-mode defaults > rules.json` |

32| `claude daemon status` | Imprimer l'état du [superviseur](/fr/agent-view#the-supervisor-process) de session d'arrière-plan, la version, le répertoire socket, et le nombre de workers pour les diagnostics. Quitte avec 1 si le superviseur n'est pas en cours d'exécution | `claude daemon status` |32| `claude daemon status` | Imprimer l'état du [superviseur](/fr/agent-view#the-supervisor-process) de session d'arrière-plan, la version, le répertoire socket, et le nombre de workers pour les diagnostics. Quitte avec 1 si le superviseur n'est pas en cours d'exécution | `claude daemon status` |


51Personnalisez le comportement de Claude Code avec ces drapeaux de ligne de commande. `claude --help` ne répertorie pas tous les drapeaux, donc l'absence d'un drapeau dans `--help` ne signifie pas qu'il n'est pas disponible.51Personnalisez le comportement de Claude Code avec ces drapeaux de ligne de commande. `claude --help` ne répertorie pas tous les drapeaux, donc l'absence d'un drapeau dans `--help` ne signifie pas qu'il n'est pas disponible.

52 52 

53| Drapeau | Description | Exemple |53| Drapeau | Description | Exemple |

54| :---------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |54| :---------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |

55| `--add-dir` | Ajouter des répertoires de travail supplémentaires pour que Claude y accède et modifie les fichiers. Accorde l'accès aux fichiers ; la plupart de la configuration `.claude/` est [non découverte](/fr/permissions#additional-directories-grant-file-access-not-configuration) à partir de ces répertoires. Valide que chaque chemin existe en tant que répertoire. Pour conserver ces répertoires entre les sessions, définissez [`permissions.additionalDirectories`](/fr/settings#permission-settings) dans les paramètres | `claude --add-dir ../apps ../lib` |55| `--add-dir` | Ajouter des répertoires de travail supplémentaires pour que Claude y accède et modifie les fichiers. Accorde l'accès aux fichiers ; la plupart de la configuration `.claude/` est [non découverte](/fr/permissions#additional-directories-grant-file-access-not-configuration) à partir de ces répertoires. Valide que chaque chemin existe en tant que répertoire. Pour conserver ces répertoires entre les sessions, définissez [`permissions.additionalDirectories`](/fr/settings#permission-settings) dans les paramètres | `claude --add-dir ../apps ../lib` |

56| `--advisor <model>` | {/* min-version: 2.1.98 */}Activer l'[outil advisor](/fr/advisor) côté serveur pour cette session avec un alias de modèle : `opus`, `sonnet`, ou `fable` ({/* min-version: 2.1.170 */}v2.1.170+), ou un ID de modèle complet. Prend la priorité sur le paramètre `advisorModel` pour la session. Nécessite Claude Code v2.1.98 ou ultérieur | `claude --advisor opus` |

56| `--agent` | Spécifier un agent pour la session actuelle (remplace le paramètre `agent`) | `claude --agent my-custom-agent` |57| `--agent` | Spécifier un agent pour la session actuelle (remplace le paramètre `agent`) | `claude --agent my-custom-agent` |

57| `--agents` | Définir des subagents personnalisés dynamiquement via JSON. Utilise les mêmes noms de champs que le [frontmatter](/fr/sub-agents#supported-frontmatter-fields) des subagents, plus un champ `prompt` pour les instructions de l'agent | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |58| `--agents` | Définir des subagents personnalisés dynamiquement via JSON. Utilise les mêmes noms de champs que le [frontmatter](/fr/sub-agents#supported-frontmatter-fields) des subagents, plus un champ `prompt` pour les instructions de l'agent | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

58| `--allow-dangerously-skip-permissions` | Ajouter `bypassPermissions` au cycle du mode `Shift+Tab` sans commencer dedans. Permet de commencer dans un mode différent comme `plan` et de basculer vers `bypassPermissions` plus tard. Voir [modes de permission](/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |59| `--allow-dangerously-skip-permissions` | Ajouter `bypassPermissions` au cycle du mode `Shift+Tab` sans commencer dedans. Permet de commencer dans un mode différent comme `plan` et de basculer vers `bypassPermissions` plus tard. Voir [modes de permission](/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

59| `--allowedTools` | Outils qui s'exécutent sans demander la permission. Voir [syntaxe des règles de permission](/fr/settings#permission-rule-syntax) pour la correspondance de motifs. Pour restreindre les outils disponibles, utilisez `--tools` à la place | `"Bash(git log *)" "Bash(git diff *)" "Read"` |60| `--allowedTools`, `--allowed-tools` | Outils qui s'exécutent sans demander la permission. Voir [syntaxe des règles de permission](/fr/settings#permission-rule-syntax) pour la correspondance de motifs. Pour restreindre les outils disponibles, utilisez `--tools` à la place | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

60| `--append-system-prompt` | Ajouter du texte personnalisé à la fin de l'invite système par défaut | `claude --append-system-prompt "Always use TypeScript"` |61| `--append-system-prompt` | Ajouter du texte personnalisé à la fin de l'invite système par défaut | `claude --append-system-prompt "Always use TypeScript"` |

61| `--append-system-prompt-file` | Charger du texte d'invite système supplémentaire à partir d'un fichier et l'ajouter à l'invite par défaut | `claude --append-system-prompt-file ./extra-rules.txt` |62| `--append-system-prompt-file` | Charger du texte d'invite système supplémentaire à partir d'un fichier et l'ajouter à l'invite par défaut | `claude --append-system-prompt-file ./extra-rules.txt` |

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


70| `--debug` | Activer le mode débogage avec filtrage de catégorie optionnel (par exemple, `"api,hooks"` ou `"!statsig,!file"`) | `claude --debug "api,mcp"` |71| `--debug` | Activer le mode débogage avec filtrage de catégorie optionnel (par exemple, `"api,hooks"` ou `"!statsig,!file"`) | `claude --debug "api,mcp"` |

71| `--debug-file <path>` | Écrire les journaux de débogage dans un chemin de fichier spécifique. Active implicitement le mode débogage. Prend la priorité sur `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |72| `--debug-file <path>` | Écrire les journaux de débogage dans un chemin de fichier spécifique. Active implicitement le mode débogage. Prend la priorité sur `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

72| `--disable-slash-commands` | Désactiver tous les skills et commandes pour cette session | `claude --disable-slash-commands` |73| `--disable-slash-commands` | Désactiver tous les skills et commandes pour cette session | `claude --disable-slash-commands` |

73| `--disallowedTools` | Règles de refus. Un nom d'outil nu supprime cet outil du contexte du modèle. Une règle délimitée telle que `Bash(rm *)` laisse l'outil disponible et refuse uniquement les appels correspondants | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |74| `--disallowedTools`, `--disallowed-tools` | Règles de refus. Un nom d'outil nu supprime cet outil du contexte du modèle : `"Edit"` supprime Edit, `"*"` supprime tous les outils, et `"mcp__*"` supprime tous les outils MCP. Une règle délimitée telle que `Bash(rm *)` laisse l'outil disponible et refuse uniquement les appels correspondants | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

74| `--effort` | Définir le [niveau d'effort](/fr/model-config#adjust-effort-level) pour la session actuelle. Options : `low`, `medium`, `high`, `xhigh`, `max` ; les niveaux disponibles dépendent du modèle. Remplace le paramètre [`effortLevel`](/fr/settings#available-settings) pour cette session et ne persiste pas | `claude --effort high` |75| `--effort` | Définir le [niveau d'effort](/fr/model-config#adjust-effort-level) pour la session actuelle. Options : `low`, `medium`, `high`, `xhigh`, `max` ; les niveaux disponibles dépendent du modèle. Remplace le paramètre [`effortLevel`](/fr/settings#available-settings) pour cette session et ne persiste pas | `claude --effort high` |

75| `--enable-auto-mode` | {/* max-version: 2.1.110 */}Supprimé dans v2.1.111. Le mode auto est maintenant dans le cycle `Shift+Tab` par défaut ; utilisez `--permission-mode auto` pour commencer dedans | `claude --permission-mode auto` |76| `--enable-auto-mode` | {/* max-version: 2.1.110 */}Supprimé dans v2.1.111. Le mode auto est maintenant dans le cycle `Shift+Tab` par défaut ; utilisez `--permission-mode auto` pour commencer dedans | `claude --permission-mode auto` |

76| `--exclude-dynamic-system-prompt-sections` | Déplacer les sections par machine de l'invite système (répertoire de travail, informations d'environnement, chemins de mémoire, statut git) dans le premier message utilisateur. Améliore la réutilisation du cache d'invite sur différents utilisateurs et machines exécutant la même tâche. S'applique uniquement avec l'invite système par défaut ; ignoré lorsque `--system-prompt` ou `--system-prompt-file` est défini. À utiliser avec `-p` pour les charges de travail scriptées multi-utilisateurs | `claude -p --exclude-dynamic-system-prompt-sections "query"` |77| `--exclude-dynamic-system-prompt-sections` | Déplacer les sections par machine de l'invite système (répertoire de travail, informations d'environnement, chemins de mémoire, statut git) dans le premier message utilisateur. Améliore la réutilisation du cache d'invite sur différents utilisateurs et machines exécutant la même tâche. S'applique uniquement avec l'invite système par défaut ; ignoré lorsque `--system-prompt` ou `--system-prompt-file` est défini. À utiliser avec `-p` pour les charges de travail scriptées multi-utilisateurs | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

77| `--exec` | Exécuter une commande shell en tant que travail en arrière-plan soutenu par PTY au lieu de démarrer une session Claude. À utiliser avec `--bg` pour lancer depuis le shell | `claude --bg --exec 'pytest -x'` |78| `--exec` | Exécuter une commande shell en tant que travail en arrière-plan soutenu par PTY au lieu de démarrer une session Claude. À utiliser avec `--bg` pour lancer depuis le shell | `claude --bg --exec 'pytest -x'` |

78| `--fallback-model` | Activer le basculement automatique vers un modèle spécifié lorsque le modèle par défaut est surchargé ou non disponible, par exemple un modèle retiré. Prend effet en mode impression (`-p`) et dans les [sessions en arrière-plan](/fr/agent-view), qui s'exécutent de manière non interactive ; ignoré dans une session interactive | `claude -p --fallback-model sonnet "query"` |79| `--fallback-model` | Activer le basculement automatique vers le ou les modèles spécifiés lorsque le modèle principal est surchargé ou non disponible, par exemple un modèle retiré. Accepte une liste séparée par des virgules essayée dans l'ordre. Voir [Chaînes de modèles de secours](/fr/model-config#fallback-model-chains). Pour conserver une chaîne entre les sessions, utilisez le paramètre [`fallbackModel`](/fr/settings#available-settings), que ce drapeau remplace | `claude --fallback-model sonnet,haiku` |

79| `--fork-session` | Lors de la reprise, créer un nouvel ID de session au lieu de réutiliser l'original (à utiliser avec `--resume` ou `--continue`) | `claude --resume abc123 --fork-session` |80| `--fork-session` | Lors de la reprise, créer un nouvel ID de session au lieu de réutiliser l'original (à utiliser avec `--resume` ou `--continue`) | `claude --resume abc123 --fork-session` |

80| `--from-pr` | Reprendre les sessions liées à une demande de tirage spécifique. Accepte un numéro de PR, une URL GitHub ou GitHub Enterprise PR, une URL de demande de fusion GitLab, ou une URL de demande de tirage Bitbucket. Les sessions sont automatiquement liées lorsque Claude crée la demande de tirage | `claude --from-pr 123` |81| `--from-pr` | Reprendre les sessions liées à une demande de tirage spécifique. Accepte un numéro de PR, une URL GitHub ou GitHub Enterprise PR, une URL de demande de fusion GitLab, ou une URL de demande de tirage Bitbucket. Les sessions sont automatiquement liées lorsque Claude crée la demande de tirage | `claude --from-pr 123` |

81| `--ide` | Se connecter automatiquement à l'IDE au démarrage s'il y a exactement un IDE valide disponible | `claude --ide` |82| `--ide` | Se connecter automatiquement à l'IDE au démarrage s'il y a exactement un IDE valide disponible | `claude --ide` |


89| `--max-budget-usd` | Montant en dollars maximum à dépenser pour les appels API avant d'arrêter (mode impression uniquement) | `claude -p --max-budget-usd 5.00 "query"` |90| `--max-budget-usd` | Montant en dollars maximum à dépenser pour les appels API avant d'arrêter (mode impression uniquement) | `claude -p --max-budget-usd 5.00 "query"` |

90| `--max-turns` | Limiter le nombre de tours d'agent (mode impression uniquement). Quitte avec une erreur lorsque la limite est atteinte. Pas de limite par défaut | `claude -p --max-turns 3 "query"` |91| `--max-turns` | Limiter le nombre de tours d'agent (mode impression uniquement). Quitte avec une erreur lorsque la limite est atteinte. Pas de limite par défaut | `claude -p --max-turns 3 "query"` |

91| `--mcp-config` | Charger les serveurs MCP à partir de fichiers ou de chaînes JSON (séparés par des espaces) | `claude --mcp-config ./mcp.json` |92| `--mcp-config` | Charger les serveurs MCP à partir de fichiers ou de chaînes JSON (séparés par des espaces) | `claude --mcp-config ./mcp.json` |

92| `--model` | Définit le modèle pour la session actuelle avec un alias pour le dernier modèle (`sonnet` ou `opus`) ou le nom complet d'un modèle. Remplace le paramètre [`model`](/fr/settings#available-settings) et [`ANTHROPIC_MODEL`](/fr/model-config#environment-variables) | `claude --model claude-sonnet-4-6` |93| `--model` | Définit le modèle pour la session actuelle avec un alias pour le dernier modèle (`sonnet`, `opus`, `haiku`, ou `fable`) ou le nom complet d'un modèle. Remplace le paramètre [`model`](/fr/settings#available-settings) et [`ANTHROPIC_MODEL`](/fr/model-config#environment-variables) | `claude --model claude-sonnet-4-6` |

93| `--name`, `-n` | Définir un nom d'affichage pour la session, affiché dans `/resume` et le titre du terminal. Vous pouvez reprendre une session nommée avec `claude --resume <name>`. <br /><br />[`/rename`](/fr/commands) change le nom en cours de session et l'affiche également dans la barre d'invite | `claude -n "my-feature-work"` |94| `--name`, `-n` | Définir un nom d'affichage pour la session, affiché dans `/resume` et le titre du terminal. Vous pouvez reprendre une session nommée avec `claude --resume <name>`. <br /><br />[`/rename`](/fr/commands) change le nom en cours de session et l'affiche également dans la barre d'invite | `claude -n "my-feature-work"` |

94| `--no-chrome` | Désactiver l'[intégration du navigateur Chrome](/fr/chrome) pour cette session | `claude --no-chrome` |95| `--no-chrome` | Désactiver l'[intégration du navigateur Chrome](/fr/chrome) pour cette session | `claude --no-chrome` |

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


104| `--remote-control`, `--rc` | Démarrer une session interactive avec [Remote Control](/fr/remote-control#start-a-remote-control-session) activé afin que vous puissiez également le contrôler depuis claude.ai ou l'application Claude. Optionnellement, passez un nom pour la session | `claude --remote-control "My Project"` |105| `--remote-control`, `--rc` | Démarrer une session interactive avec [Remote Control](/fr/remote-control#start-a-remote-control-session) activé afin que vous puissiez également le contrôler depuis claude.ai ou l'application Claude. Optionnellement, passez un nom pour la session | `claude --remote-control "My Project"` |

105| `--remote-control-session-name-prefix <prefix>` | Préfixe pour les noms de session [Remote Control](/fr/remote-control) générés automatiquement lorsqu'aucun nom explicite n'est défini. Par défaut, le nom d'hôte de votre machine, produisant des noms comme `myhost-graceful-unicorn`. Définissez `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` pour le même effet | `claude remote-control --remote-control-session-name-prefix dev-box` |106| `--remote-control-session-name-prefix <prefix>` | Préfixe pour les noms de session [Remote Control](/fr/remote-control) générés automatiquement lorsqu'aucun nom explicite n'est défini. Par défaut, le nom d'hôte de votre machine, produisant des noms comme `myhost-graceful-unicorn`. Définissez `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` pour le même effet | `claude remote-control --remote-control-session-name-prefix dev-box` |

106| `--replay-user-messages` | Ré-émettre les messages utilisateur de stdin sur stdout pour la reconnaissance. Nécessite `--input-format stream-json` et `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |107| `--replay-user-messages` | Ré-émettre les messages utilisateur de stdin sur stdout pour la reconnaissance. Nécessite `--input-format stream-json` et `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

107| `--resume`, `-r` | Reprendre une session spécifique par ID ou nom, ou afficher un sélecteur interactif pour choisir une session. Inclut les sessions qui ont ajouté ce répertoire avec `/add-dir`. À partir de v2.1.144, les [sessions en arrière-plan](/fr/agent-view) apparaissent dans le sélecteur marquées avec `bg` | `claude --resume auth-refactor` |108| `--resume`, `-r` | Reprendre une session spécifique par ID ou nom, ou afficher un sélecteur interactif pour choisir une session. Le sélecteur et la recherche par nom incluent les sessions qui ont ajouté ce répertoire avec `/add-dir` ; passer un ID de session recherche uniquement le répertoire du projet actuel et ses git worktrees. À partir de v2.1.144, les [sessions en arrière-plan](/fr/agent-view) apparaissent dans le sélecteur marquées avec `bg` | `claude --resume auth-refactor` |

109| `--safe-mode` | {/* min-version: 2.1.169 */}Démarrer avec toutes les personnalisations désactivées pour dépanner une configuration cassée : CLAUDE.md, skills, plugins, hooks, serveurs MCP, commandes et agents personnalisés, styles de sortie, workflows, thèmes personnalisés, liaisons de touches personnalisées, commandes de ligne d'état et de suggestion de fichiers, serveurs LSP, et mémoire automatique ne se chargent pas. L'authentification, la sélection du modèle, les outils intégrés et les permissions fonctionnent normalement, ce qui diffère de [`--bare`](/fr/headless#start-faster-with-bare-mode). La politique des paramètres gérés s'applique toujours, y compris les hooks configurés par la politique, la ligne d'état et les commandes de suggestion de fichiers ; les plugins gérés, les skills gérés, le CLAUDE.md géré et les serveurs MCP configurés par la politique ne se chargent pas. Utile pour vérifier si une personnalisation est ce qui déclenche le [basculement automatique depuis Fable 5](/fr/model-config#automatic-model-fallback). Définit [`CLAUDE_CODE_SAFE_MODE`](/fr/env-vars) | `claude --safe-mode` |

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

109| `--setting-sources` | Liste séparée par des virgules des sources de paramètres à charger (`user`, `project`, `local`) | `claude --setting-sources user,project` |111| `--setting-sources` | Liste séparée par des virgules des sources de paramètres à charger (`user`, `project`, `local`) | `claude --setting-sources user,project` |

110| `--settings` | Chemin vers un fichier JSON de paramètres ou une chaîne JSON en ligne. Les valeurs que vous définissez ici remplacent les mêmes clés dans vos fichiers `settings.json` pour cette session. Les clés que vous omettez conservent leurs valeurs basées sur les fichiers. Voir [précédence des paramètres](/fr/settings#settings-precedence) | `claude --settings ./settings.json` |112| `--settings` | Chemin vers un fichier JSON de paramètres ou une chaîne JSON en ligne. Les valeurs que vous définissez ici remplacent les mêmes clés dans vos fichiers `settings.json` pour cette session. Les clés que vous omettez conservent leurs valeurs basées sur les fichiers. Voir [précédence des paramètres](/fr/settings#settings-precedence) | `claude --settings ./settings.json` |


114| `--teleport` | Reprendre une [session web](/fr/claude-code-on-the-web) dans votre terminal local | `claude --teleport` |116| `--teleport` | Reprendre une [session web](/fr/claude-code-on-the-web) dans votre terminal local | `claude --teleport` |

115| `--teammate-mode` | Définir comment les coéquipiers de l'[équipe d'agents](/fr/agent-teams) s'affichent : `auto` (par défaut), `in-process`, ou `tmux`. Remplace le paramètre [`teammateMode`](/fr/settings#available-settings) pour cette session. Voir [Choisir un mode d'affichage](/fr/agent-teams#choose-a-display-mode) | `claude --teammate-mode in-process` |117| `--teammate-mode` | Définir comment les coéquipiers de l'[équipe d'agents](/fr/agent-teams) s'affichent : `auto` (par défaut), `in-process`, ou `tmux`. Remplace le paramètre [`teammateMode`](/fr/settings#available-settings) pour cette session. Voir [Choisir un mode d'affichage](/fr/agent-teams#choose-a-display-mode) | `claude --teammate-mode in-process` |

116| `--tmux` | Créer une session tmux pour le worktree. Nécessite `--worktree`. Utilise les volets natifs iTerm2 lorsqu'ils sont disponibles ; passez `--tmux=classic` pour le tmux traditionnel | `claude -w feature-auth --tmux` |118| `--tmux` | Créer une session tmux pour le worktree. Nécessite `--worktree`. Utilise les volets natifs iTerm2 lorsqu'ils sont disponibles ; passez `--tmux=classic` pour le tmux traditionnel | `claude -w feature-auth --tmux` |

117| `--tools` | Restreindre les outils intégrés que Claude peut utiliser. Utilisez `""` pour désactiver tous, `"default"` pour tous, ou des noms d'outils comme `"Bash,Edit,Read"` | `claude --tools "Bash,Edit,Read"` |119| `--tools` | Restreindre les outils intégrés que Claude peut utiliser. Utilisez `""` pour désactiver tous, `"default"` pour tous, ou des noms d'outils comme `"Bash,Edit,Read"`. Les outils MCP ne sont pas affectés ; pour les refuser aussi, utilisez `--disallowedTools "mcp__*"`, ou passez `--strict-mcp-config` sans `--mcp-config` afin qu'aucun serveur MCP ne se charge | `claude --tools "Bash,Edit,Read"` |

118| `--verbose` | Activer la journalisation détaillée, affiche la sortie complète tour par tour. Remplace le paramètre [`viewMode`](/fr/settings#available-settings) pour cette session | `claude --verbose` |120| `--verbose` | Activer la journalisation détaillée, affiche la sortie complète tour par tour. Remplace le paramètre [`viewMode`](/fr/settings#available-settings) pour cette session | `claude --verbose` |

119| `--version`, `-v` | Afficher le numéro de version | `claude -v` |121| `--version`, `-v` | Afficher le numéro de version | `claude -v` |

120| `--worktree`, `-w` | Démarrer Claude dans un [git worktree](/fr/worktrees) isolé à `<repo>/.claude/worktrees/<name>`. Si aucun nom n'est donné, un est généré automatiquement. Passez `#<number>` ou une URL de demande de tirage GitHub pour récupérer cette PR de `origin` et créer une branche du worktree à partir de celle-ci | `claude -w feature-auth` |122| `--worktree`, `-w` | Démarrer Claude dans un [git worktree](/fr/worktrees) isolé à `<repo>/.claude/worktrees/<name>`. Si aucun nom n'est donné, un est généré automatiquement. Passez `#<number>` ou une URL de demande de tirage GitHub pour récupérer cette PR de `origin` et créer une branche du worktree à partir de celle-ci | `claude -w feature-auth` |

code-review.md +6 −6

Details

82 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'82 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

83```83```

84 84 

85Cela retourne un objet JSON avec des comptages par gravité, par exemple `{"normal": 2, "nit": 1, "pre_existing": 0}`. La clé `normal` contient le nombre de résultats importants ; une valeur non nulle signifie que Claude a trouvé au moins un bug à corriger avant la fusion.85Cela retourne un objet JSON avec des comptages par gravité, par exemple `{"normal": 2, "nit": 1, "pre_existing": 0}`. La clé `normal` contient le nombre de résultats importants ; une valeur non nulle signifie que Claude a trouvé au least un bug à corriger avant la fusion.

86 86 

87<h3 id="what-code-review-checks">87<h3 id="what-code-review-checks">

88 Ce que Code Review vérifie88 Ce que Code Review vérifie


296 296 

297Le bouton **Re-run** dans l'onglet Checks de GitHub ne redéclenche pas Code Review. Utilisez la commande de commentaire ou un nouveau push à la place.297Le bouton **Re-run** dans l'onglet Checks de GitHub ne redéclenche pas Code Review. Utilisez la commande de commentaire ou un nouveau push à la place.

298 298 

299<h3 id="review-didn-t-run-and-the-pr-shows-a-spend-cap-message">299<h3 id="review-didnt-run-and-the-pr-shows-a-spend-cap-message">

300 Révision n'a pas s'exécuté et la PR affiche un message de plafond de dépenses300 Révision n'a pas s'exécuté et la PR affiche un message de plafond de dépenses

301</h3>301</h3>

302 302 

303Quand le plafond de dépenses mensuelles de votre organisation est atteint, Code Review publie un seul commentaire sur la PR expliquant que la révision a été ignorée. Les révisions reprennent automatiquement au début de la prochaine période de facturation, ou immédiatement quand un administrateur augmente le plafond à [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).303Quand le plafond de dépenses mensuelles de votre organisation est atteint, Code Review publie un seul commentaire sur la PR expliquant que la révision a été ignorée. Les révisions reprennent automatiquement au début de la prochaine période de facturation, ou immédiatement quand un administrateur augmente le plafond à [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).

304 304 

305<h3 id="find-issues-that-aren-t-showing-as-inline-comments">305<h3 id="find-issues-that-arent-showing-as-inline-comments">

306 Trouver les problèmes qui ne s'affichent pas comme des commentaires en ligne306 Trouver les problèmes qui ne s'affichent pas comme des commentaires en ligne

307</h3>307</h3>

308 308 


316 Révision d'une diff localement316 Révision d'une diff localement

317</h2>317</h2>

318 318 

319La commande [`/code-review`](/fr/commands) examine une diff dans votre terminal sans installer l'application GitHub. Exécutez-la dans n'importe quelle session Claude Code : elle signale les bugs de correction et {/* min-version: 2.1.151 */}la réutilisation, la simplification, et les nettoyages d'efficacité dans la diff actuelle. Passez `--comment` pour publier les résultats sous forme de commentaires PR en ligne, ou `--fix` pour appliquer les résultats à votre arborescence de travail après la révision.319La commande [`/code-review`](/fr/commands) examine une diff dans votre terminal sans installer l'application GitHub. Exécutez-la dans n'importe quelle session Claude Code : elle signale les bugs de correction et {/* min-version: 2.1.151 */}la réutilisation, la simplification, et les nettoyages d'efficacité. Par défaut, la révision locale couvre les commits de votre branche en avance sur son amont plus les modifications non validées dans l'arborescence de travail. Passez `--comment` pour publier les résultats sous forme de commentaires PR en ligne, ou `--fix` pour appliquer les résultats à votre arborescence de travail après la révision.

320 320 

321Les [niveaux d'effort](/fr/model-config#adjust-effort-level) inférieurs retournent moins de résultats, plus confiants, tandis que `high` à `max` donnent une couverture plus large et peuvent inclure des résultats incertains. Sans argument d'effort, la révision utilise l'effort actuel de la session. Passez un chemin ou une référence PR pour examiner une cible spécifique au lieu de la diff actuelle.321Les [niveaux d'effort](/fr/model-config#adjust-effort-level) inférieurs retournent moins de résultats, plus confiants, tandis que `high` à `max` donnent une couverture plus large et peuvent inclure des résultats incertains. Sans argument d'effort, la révision utilise l'effort actuel de la session. Pour examiner quelque chose d'autre que la diff par défaut, passez une cible : un chemin de fichier, un numéro de PR, un nom de branche, ou une plage de références telle que `main...my-feature`. La forme de plage de références examine la diff validée qu'une demande de tirage de `my-feature` vers `main` contiendrait, indépendamment de la façon dont l'amont de la branche est configuré.

322 322 

323`/code-review ultra --fix` exécute la [ultrareview](/fr/ultrareview) plus profonde dans le cloud, puis applique ses résultats à votre arborescence de travail quand ils reviennent dans votre session.323`/code-review ultra --fix` exécute la [ultrareview](/fr/ultrareview) plus profonde dans le cloud, puis applique ses résultats à votre arborescence de travail quand ils reviennent dans votre session. Ultrareview utilise sa propre portée : votre branche actuelle par rapport à la branche par défaut du référentiel, plus les modifications non validées et mises en scène dans l'arborescence de travail.

324 324 

325La commande s'appelait `/simplify` avant v2.1.147, quand elle appliquait les correctifs par défaut. {/* min-version: 2.1.154 */}À partir de v2.1.154, `/simplify` exécute une révision de nettoyage séparé qui applique les correctifs sans rechercher les bugs. Si vous avez écrit un script `/simplify` pour la recherche de bugs, passez à `/code-review --fix`, qui n'a pas changé.325La commande s'appelait `/simplify` avant v2.1.147, quand elle appliquait les correctifs par défaut. {/* min-version: 2.1.154 */}À partir de v2.1.154, `/simplify` exécute une révision de nettoyage séparé qui applique les correctifs sans rechercher les bugs. Si vous avez écrit un script `/simplify` pour la recherche de bugs, passez à `/code-review --fix`, qui n'a pas changé.

326 326 

commands.md +26 −15

Details

12 12 

13Une commande n'est reconnue qu'au début de votre message. Le texte qui suit le nom de la commande lui est transmis en tant qu'arguments.13Une commande n'est reconnue qu'au début de votre message. Le texte qui suit le nom de la commande lui est transmis en tant qu'arguments.

14 14 

15## Commandes au cours d'un workflow typique15<h2 id="commands-across-a-typical-workflow">

16 Commandes au cours d'un workflow typique

17</h2>

16 18 

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

18 20 


28 30 

29**Quand quelque chose ne va pas.** `/rewind` ramène le code et la conversation à un point de contrôle, ou résume une partie de la conversation. `/doctor` et `/debug` diagnostiquent les problèmes d'installation et d'exécution, et `/feedback` signale un bug avec le contexte de la session joint.31**Quand quelque chose ne va pas.** `/rewind` ramène le code et la conversation à un point de contrôle, ou résume une partie de la conversation. `/doctor` et `/debug` diagnostiquent les problèmes d'installation et d'exécution, et `/feedback` signale un bug avec le contexte de la session joint.

30 32 

31## Toutes les commandes33<h2 id="all-commands">

34 Toutes les commandes

35</h2>

32 36 

33Le tableau ci-dessous répertorie toutes les commandes incluses dans Claude Code. La plupart sont des commandes intégrées dont le comportement est codé dans le CLI. Deux types d'entrées sont marqués :37Le tableau ci-dessous répertorie toutes les commandes incluses dans Claude Code. La plupart sont des commandes intégrées dont le comportement est codé dans le CLI. Deux types d'entrées sont marqués :

34 38 


46| Commande | Objectif |50| Commande | Objectif |

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

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

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

49| `/agents` | Gérer les configurations des [agents](/fr/sub-agents) |54| `/agents` | Gérer les configurations des [agents](/fr/sub-agents) |

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

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

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

53| `/branch [name]` | Créer une branche de la conversation actuelle à ce stade. Vous bascule dans la branche et préserve l'original, auquel vous pouvez revenir avec `/resume`. Alias : `/fork`. Lorsque [`CLAUDE_CODE_FORK_SUBAGENT`](/fr/env-vars) est défini, `/fork` génère à la place un [sous-agent forké](/fr/sub-agents#fork-the-current-conversation) et n'est plus un alias pour cette commande |58| `/branch [name]` | Créer une branche de la conversation actuelle à ce stade, afin que vous puissiez essayer une direction différente sans perdre la conversation telle qu'elle se présente. Vous bascule dans la branche et préserve l'original, auquel vous pouvez revenir avec `/resume`. Pour confier une tâche secondaire à un sous-agent d'arrière-plan au lieu de basculer dans une copie vous-même, utilisez `/fork` |

54| `/btw <question>` | Poser une [question rapide](/fr/interactive-mode#side-questions-with-%2Fbtw) sans l'ajouter à la conversation |59| `/btw <question>` | Poser une [question rapide](/fr/interactive-mode#side-questions-with-%2Fbtw) sans l'ajouter à la conversation |

60| `/cd <path>` | {/* min-version: 2.1.169 */}Déplacer cette session vers un nouveau répertoire de travail. Le cache d'invite de la conversation est préservé : le [`CLAUDE.md`](/fr/memory) du nouveau répertoire est ajouté en tant que message au lieu de reconstruire l'invite système. La session est relocalisée dans le stockage du projet du nouveau répertoire, donc `--resume` et `--continue` le trouvent à partir de là. Vous demande de faire confiance au répertoire si vous n'y avez pas travaillé auparavant. Pour accorder l'accès à un répertoire supplémentaire sans déplacer la session, utilisez `/add-dir`. Restreindre ou désactiver les cibles `/cd` avec les [règles de permission `Cd`](/fr/permissions#cd). Nécessite Claude Code v2.1.169 ou ultérieur ; les versions antérieures signalent `Unknown command: /cd` |

55| `/chrome` | Configurer les paramètres de [Claude dans Chrome](/fr/chrome) |61| `/chrome` | Configurer les paramètres de [Claude dans Chrome](/fr/chrome) |

56| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/fr/skills#bundled-skills).** Charger le matériel de référence de l'API Claude pour le langage de votre projet (Python, TypeScript, Java, Go, Ruby, C#, PHP, ou cURL) et la référence des Agents gérés. Couvre l'utilisation d'outils, le streaming, les lots, les sorties structurées et les pièges courants. S'active également automatiquement lorsque votre code importe `anthropic` ou `@anthropic-ai/sdk`. Exécutez `/claude-api migrate` pour mettre à niveau le code existant de l'API Claude vers un modèle plus récent : Claude vous demande quels fichiers analyser et quel modèle cibler, puis met à jour les ID de modèle, la configuration de la réflexion et d'autres paramètres qui ont changé entre les versions. Exécutez `/claude-api managed-agents-onboard` pour une procédure pas à pas interactive qui crée un nouvel Agent géré à partir de zéro |62| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/fr/skills#bundled-skills).** Charger le matériel de référence de l'API Claude pour le langage de votre projet (Python, TypeScript, Java, Go, Ruby, C#, PHP, ou cURL) et la référence des Agents gérés. Couvre l'utilisation d'outils, le streaming, les lots, les sorties structurées et les pièges courants. S'active également automatiquement lorsque votre code importe `anthropic` ou `@anthropic-ai/sdk`. Exécutez `/claude-api migrate` pour mettre à niveau le code existant de l'API Claude vers un modèle plus récent : Claude vous demande quels fichiers analyser et quel modèle cibler, puis met à jour les ID de modèle, la configuration de la réflexion et d'autres paramètres qui ont changé entre les versions. Exécutez `/claude-api managed-agents-onboard` pour une procédure pas à pas interactive qui crée un nouvel Agent géré à partir de zéro |

57| `/clear [name]` | Démarrer une nouvelle conversation avec un contexte vide. La conversation précédente reste disponible dans `/resume`. Passez un nom pour étiqueter la conversation précédente dans le sélecteur `/resume`. Pour libérer du contexte tout en continuant la même conversation, utilisez `/compact` à la place. Alias : `/reset`, `/new` |63| `/clear [name]` | Démarrer une nouvelle conversation avec un contexte vide. La conversation précédente reste disponible dans `/resume`. Passez un nom pour étiqueter la conversation précédente dans le sélecteur `/resume`. Pour libérer du contexte tout en continuant la même conversation, utilisez `/compact` à la place. Alias : `/reset`, `/new` |


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

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

76| `/focus` | Activer/désactiver la vue de focus, qui affiche uniquement votre dernière invite, un résumé d'appel d'outil d'une ligne avec les statistiques de diff d'édition, et la réponse finale. La sélection persiste entre les sessions ; définissez [`viewMode`](/fr/settings#available-settings) dans les paramètres pour la remplacer. Disponible uniquement dans le [rendu en plein écran](/fr/fullscreen) |82| `/focus` | Activer/désactiver la vue de focus, qui affiche uniquement votre dernière invite, un résumé d'appel d'outil d'une ligne avec les statistiques de diff d'édition, et la réponse finale. La sélection persiste entre les sessions ; définissez [`viewMode`](/fr/settings#available-settings) dans les paramètres pour la remplacer. Disponible uniquement dans le [rendu en plein écran](/fr/fullscreen) |

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

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

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

79| `/help` | Afficher l'aide et les commandes disponibles |86| `/help` | Afficher l'aide et les commandes disponibles |


83| `/insights` | Générer un rapport analysant vos sessions Claude Code, y compris les domaines de projet, les modèles d'interaction et les points de friction |90| `/insights` | Générer un rapport analysant vos sessions Claude Code, y compris les domaines de projet, les modèles d'interaction et les points de friction |

84| `/install-github-app` | Configurer l'application [Claude GitHub Actions](/fr/github-actions) pour un référentiel. Vous guide dans la sélection d'un référentiel et la configuration de l'intégration |91| `/install-github-app` | Configurer l'application [Claude GitHub Actions](/fr/github-actions) pour un référentiel. Vous guide dans la sélection d'un référentiel et la configuration de l'intégration |

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

86| `/keybindings` | Ouvrir ou créer votre fichier de configuration des raccourcis clavier |93| `/keybindings` | Ouvrir votre fichier de [raccourcis clavier](/fr/keybindings) |

87| `/login` | Se connecter à votre compte Anthropic |94| `/login` | Se connecter à votre compte Anthropic |

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

89| `/loop [interval] [prompt]` | **[Skill](/fr/skills#bundled-skills).** Exécuter une invite à plusieurs reprises pendant que la session reste ouverte. Omettez l'intervalle et Claude s'auto-règle entre les itérations. Omettez l'invite et, [où disponible](/fr/scheduled-tasks#run-the-built-in-maintenance-prompt), Claude exécute une vérification de maintenance autonome ou l'invite dans `.claude/loop.md`. Exemple : `/loop 5m check if the deploy finished`. Consultez [Exécuter des invites selon un calendrier](/fr/scheduled-tasks). Alias : `/proactive` |96| `/loop [interval] [prompt]` | **[Skill](/fr/skills#bundled-skills).** Exécuter une invite à plusieurs reprises pendant que la session reste ouverte. Omettez l'intervalle et Claude s'auto-règle entre les itérations. Omettez l'invite et, [où disponible](/fr/scheduled-tasks#run-the-built-in-maintenance-prompt), Claude exécute une vérification de maintenance autonome ou l'invite dans `.claude/loop.md`. Exemple : `/loop 5m check if the deploy finished`. Consultez [Exécuter des invites selon un calendrier](/fr/scheduled-tasks). Alias : `/proactive` |

90| `/mcp` | Gérer les connexions aux serveurs MCP et l'authentification OAuth |97| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | Gérer les connexions aux serveurs MCP et l'authentification OAuth. Exécutez sans argument pour ouvrir la liste interactive, passez `reconnect <server>` pour reconnecter un serveur déconnecté, ou passez `enable`/`disable` avec un nom de serveur ou `all` pour modifier l'état de la connexion sans ouvrir la boîte de dialogue |

91| `/memory` | Modifier les fichiers de mémoire `CLAUDE.md`, activer ou désactiver la [mémoire automatique](/fr/memory#auto-memory) et afficher les entrées de mémoire automatique |98| `/memory` | Modifier les fichiers de mémoire `CLAUDE.md`, activer ou désactiver la [mémoire automatique](/fr/memory#auto-memory) et afficher les entrées de mémoire automatique |

92| `/mobile` | Afficher le code QR pour télécharger l'application mobile Claude. Alias : `/ios`, `/android` |99| `/mobile` | Afficher le code QR pour télécharger l'application mobile Claude. Alias : `/ios`, `/android` |

93| `/model [model]` | Basculer le modèle IA et l'enregistrer comme valeur par défaut pour les nouvelles sessions. Pour les modèles qui le supportent, utilisez les flèches gauche/droite pour [ajuster le niveau d'effort](/fr/model-config#adjust-effort-level). Sans argument, ouvre un sélecteur ; appuyez sur `s` sur une ligne pour basculer uniquement pour la session actuelle. Le sélecteur demande une confirmation lorsque la conversation a une sortie antérieure, car la réponse suivante relit l'historique complet sans contexte en cache. Une fois confirmé, le changement s'applique sans attendre la fin de la réponse actuelle |100| `/model [model]` | Basculer le modèle IA et l'enregistrer comme valeur par défaut pour les nouvelles sessions. Pour les modèles qui le supportent, utilisez les flèches gauche/droite pour [ajuster le niveau d'effort](/fr/model-config#adjust-effort-level). Sans argument, ouvre un sélecteur ; appuyez sur `s` sur une ligne pour basculer uniquement pour la session actuelle. Le sélecteur demande une confirmation lorsque la conversation a une sortie antérieure, car la réponse suivante relit l'historique complet sans contexte en cache. Une fois confirmé, le changement s'applique sans attendre la fin de la réponse actuelle |

94| `/passes` | Partager une semaine gratuite de Claude Code avec des amis. Visible uniquement si votre compte est éligible |101| `/passes` | Partager une semaine gratuite de Claude Code avec des amis. Visible uniquement si votre compte est éligible |

95| `/permissions` | Gérer les règles d'autorisation, de demande et de refus pour les permissions d'outils. Ouvre une boîte de dialogue interactive où vous pouvez afficher les règles par portée, ajouter ou supprimer des règles, gérer les répertoires de travail et examiner les [refus en mode automatique récents](/fr/auto-mode-config#review-denials). Alias : `/allowed-tools` |102| `/permissions` | Gérer les règles d'autorisation, de demande et de refus pour les permissions d'outils. Ouvre une boîte de dialogue interactive où vous pouvez afficher les règles par portée, ajouter ou supprimer des règles, gérer les répertoires de travail et examiner les [refus en mode automatique récents](/fr/auto-mode-config#review-denials). Alias : `/allowed-tools` |

96| `/plan [description]` | Entrer directement en mode plan à partir de l'invite. Passez une description optionnelle pour entrer en mode plan et commencer immédiatement avec cette tâche, par exemple `/plan fix the auth bug` |103| `/plan [description]` | Entrer directement en mode plan à partir de l'invite. Passez une description optionnelle pour entrer en mode plan et commencer immédiatement avec cette tâche, par exemple `/plan fix the auth bug` |

97| `/plugin` | Gérer les [plugins](/fr/plugins) de Claude Code |104| `/plugin [subcommand]` | Gérer les [plugins](/fr/plugins) de Claude Code. Exécutez sans argument pour ouvrir le menu des plugins, ou passez une sous-commande telle que `list`, `install`, `enable`, ou `disable` pour agir directement |

98| `/powerup` | Découvrir les fonctionnalités de Claude Code à travers des leçons interactives rapides avec des démos animées |105| `/powerup` | Découvrir les fonctionnalités de Claude Code à travers des leçons interactives rapides avec des démos animées |

99| `/pr-comments [PR]` | {/* max-version: 2.1.90 */}Supprimé dans v2.1.91. Demandez à Claude directement de consulter les commentaires de demande de tirage à la place. Sur les versions antérieures, récupère et affiche les commentaires d'une demande de tirage GitHub ; détecte automatiquement la PR pour la branche actuelle, ou passez une URL ou un numéro de PR. Nécessite le CLI `gh` |106| `/pr-comments [PR]` | {/* max-version: 2.1.90 */}Supprimé dans v2.1.91. Demandez à Claude directement de consulter les commentaires de demande de tirage à la place. Sur les versions antérieures, récupère et affiche les commentaires d'une demande de tirage GitHub ; détecte automatiquement la PR pour la branche actuelle, ou passez une URL ou un numéro de PR. Nécessite le CLI `gh` |

100| `/privacy-settings` | Afficher et mettre à jour vos paramètres de confidentialité. Disponible uniquement pour les abonnés aux plans Pro et Max |107| `/privacy-settings` | Afficher et mettre à jour vos paramètres de confidentialité. Disponible uniquement pour les abonnés aux plans Pro et Max |

101| `/radio` | Ouvrir Claude FM lo-fi radio dans votre navigateur. Affiche l'URL du flux lorsqu'aucun navigateur n'est disponible. Non disponible sur Bedrock, Vertex, ou Foundry |108| `/radio` | Ouvrir Claude FM lo-fi radio dans votre navigateur. Affiche l'URL du flux lorsqu'aucun navigateur n'est disponible. Non disponible sur Bedrock, Vertex, ou Foundry |

102| `/recap` | Générer un résumé d'une ligne de la session actuelle à la demande. Consultez [Récapitulatif de session](/fr/interactive-mode#session-recap) pour le récapitulatif automatique qui apparaît après votre absence |109| `/recap` | Générer un résumé d'une ligne de la session actuelle à la demande. Consultez [Récapitulatif de session](/fr/interactive-mode#session-recap) pour le récapitulatif automatique qui apparaît après votre absence |

103| `/release-notes` | Afficher le journal des modifications dans un sélecteur de version interactif. Sélectionnez une version spécifique pour voir ses notes de version, ou choisissez d'afficher toutes les versions |110| `/release-notes` | Afficher le journal des modifications dans un sélecteur de version interactif. Sélectionnez une version spécifique pour voir ses notes de version, ou choisissez d'afficher toutes les versions |

104| `/reload-plugins` | Recharger tous les [plugins](/fr/plugins) actifs pour appliquer les modifications en attente sans redémarrer. Signale les comptages pour chaque composant rechargé et signale les erreurs de chargement |111| `/reload-plugins [--force]` | Recharger tous les [plugins](/fr/plugins) actifs pour appliquer les modifications en attente sans redémarrer. Signale les comptages pour chaque composant rechargé et signale les erreurs de chargement. Lorsque le rechargement changerait les outils MCP chargés et invaliderait le cache d'invite, la commande avertit et ignore sauf si vous passez `--force` |

105| `/reload-skills` | {/* min-version: 2.1.152 */}Réanalyser les répertoires de [skills](/fr/skills) et de commandes afin que les skills ajoutés ou modifiés sur le disque pendant la session deviennent disponibles sans redémarrer. Signale le nombre de skills disponibles et le nombre de skills ajoutés ou supprimés |112| `/reload-skills` | {/* min-version: 2.1.152 */}Réanalyser les répertoires de [skills](/fr/skills) et de commandes afin que les skills ajoutés ou modifiés sur le disque pendant la session deviennent disponibles sans redémarrer. Signale le nombre de skills disponibles et le nombre de skills ajoutés ou supprimés. Ajouté dans v2.1.152 |

106| `/remote-control` | Rendre cette session disponible pour le [contrôle à distance](/fr/remote-control) depuis claude.ai. Alias : `/rc` |113| `/remote-control` | Rendre cette session disponible pour le [contrôle à distance](/fr/remote-control) depuis claude.ai. Alias : `/rc` |

107| `/remote-env` | Configurer l'environnement distant par défaut pour les [sessions web démarrées avec `--remote`](/fr/claude-code-on-the-web#configure-your-environment) |114| `/remote-env` | Choisir l'environnement par défaut pour les [agents cloud](/fr/claude-code-on-the-web#configure-your-environment) |

108| `/rename [name]` | Renommer la session actuelle et afficher le nom sur la barre d'invite. Sans nom, génère automatiquement un à partir de l'historique de la conversation |115| `/rename [name]` | Renommer la session actuelle et afficher le nom sur la barre d'invite. Sans nom, génère automatiquement un à partir de l'historique de la conversation |

109| `/resume [session]` | Reprendre une conversation par ID ou nom, ou ouvrir le sélecteur de session. À partir de v2.1.144, les [sessions d'arrière-plan](/fr/agent-view) apparaissent dans le sélecteur marquées avec `bg`. Alias : `/continue` |116| `/resume [session]` | Reprendre une conversation par ID ou nom, ou ouvrir le sélecteur de session. À partir de v2.1.144, les [sessions d'arrière-plan](/fr/agent-view) apparaissent dans le sélecteur marquées avec `bg`. Alias : `/continue` |

110| `/review [PR]` | Examiner une demande de tirage localement dans votre session actuelle. Pour un examen plus approfondi basé sur le cloud, consultez [`/code-review ultra`](/fr/ultrareview) |117| `/review [PR]` | Examiner une demande de tirage localement dans votre session actuelle. Pour un examen plus approfondi basé sur le cloud, consultez [`/code-review ultra`](/fr/ultrareview) |


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

125| `/stickers` | Commander des autocollants Claude Code |132| `/stickers` | Commander des autocollants Claude Code |

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

127| `/tasks` | Lister et gérer les tâches en arrière-plan. Également disponible sous `/bashes` |134| `/tasks` | Afficher et gérer tout ce qui s'exécute en arrière-plan. Également disponible sous `/bashes` |

128| `/team-onboarding` | Générer un guide d'intégration d'équipe à partir de votre historique d'utilisation de Claude Code. Claude analyse vos sessions, commandes et utilisation du serveur MCP des 30 derniers jours et produit un guide markdown qu'un coéquipier peut coller comme premier message pour se configurer rapidement. Pour les abonnés claude.ai aux plans Pro, Max, Team et Enterprise, retourne également un lien de partage que les coéquipiers peuvent ouvrir directement dans Claude Code |135| `/team-onboarding` | Générer un guide d'intégration d'équipe à partir de votre historique d'utilisation de Claude Code. Claude analyse vos sessions, commandes et utilisation du serveur MCP des 30 derniers jours et produit un guide markdown qu'un coéquipier peut coller comme premier message pour se configurer rapidement. Pour les abonnés claude.ai aux plans Pro, Max, Team et Enterprise, retourne également un lien de partage que les coéquipiers peuvent ouvrir directement dans Claude Code |

129| `/teleport` | Extraire une session [Claude Code sur le web](/fr/claude-code-on-the-web#from-web-to-terminal) dans ce terminal : ouvre un sélecteur, puis récupère la branche et la conversation. Également disponible sous `/tp`. Nécessite un abonnement claude.ai |136| `/teleport` | Extraire une session [Claude Code sur le web](/fr/claude-code-on-the-web#from-web-to-terminal) dans ce terminal : ouvre un sélecteur, puis récupère la branche et la conversation. Également disponible sous `/tp`. Nécessite un abonnement claude.ai |

130| `/terminal-setup` | Configurer les raccourcis clavier du terminal pour Shift+Entrée et d'autres raccourcis. Visible uniquement dans les terminaux qui en ont besoin, comme VS Code, Cursor, Windsurf, Alacritty, ou Zed |137| `/terminal-setup` | Configurer les raccourcis clavier du terminal pour Shift+Entrée et d'autres raccourcis. Visible uniquement dans les terminaux qui en ont besoin, comme VS Code, Cursor, Devin Desktop, Alacritty, ou Zed |

131| `/theme` | Modifier le thème de couleur. Inclut une option `auto` qui suit le mode sombre ou clair de votre terminal, les variantes claires et sombres, les thèmes accessibles aux daltoniens (daltonisés), les thèmes ANSI qui utilisent la palette de couleurs de votre terminal, et tous les [thèmes personnalisés](/fr/terminal-config#create-a-custom-theme) de `~/.claude/themes/` ou des plugins. Sélectionnez **Nouveau thème personnalisé…** pour en créer un |138| `/theme` | Modifier le thème de couleur. Inclut une option `auto` qui suit le mode sombre ou clair de votre terminal, les variantes claires et sombres, les thèmes accessibles aux daltoniens (daltonisés), les thèmes ANSI qui utilisent la palette de couleurs de votre terminal, et tous les [thèmes personnalisés](/fr/terminal-config#create-a-custom-theme) de `~/.claude/themes/` ou des plugins. Sélectionnez **Nouveau thème personnalisé…** pour en créer un |

132| `/tui [default\|fullscreen]` | Définir le moteur de rendu de l'interface utilisateur du terminal et relancer avec votre conversation intacte. `fullscreen` active le [moteur de rendu alt-screen sans scintillement](/fr/fullscreen). Sans argument, affiche le moteur de rendu actif |139| `/tui [default\|fullscreen]` | Définir le moteur de rendu de l'interface utilisateur du terminal et relancer avec votre conversation intacte. `fullscreen` active le [moteur de rendu alt-screen sans scintillement](/fr/fullscreen). Sans argument, affiche le moteur de rendu actif |

133| `/ultraplan <prompt>` | Rédiger un plan dans une session [ultraplan](/fr/ultraplan), l'examiner dans votre navigateur, puis l'exécuter à distance ou le renvoyer à votre terminal |140| `/ultraplan <prompt>` | Rédiger un plan dans une session [ultraplan](/fr/ultraplan), l'examiner dans votre navigateur, puis l'exécuter à distance ou le renvoyer à votre terminal |


141| `/web-setup` | Connecter votre compte GitHub à [Claude Code sur le web](/fr/web-quickstart#connect-from-your-terminal) en utilisant vos identifiants CLI `gh` locaux. `/schedule` demande cela automatiquement si GitHub n'est pas connecté |148| `/web-setup` | Connecter votre compte GitHub à [Claude Code sur le web](/fr/web-quickstart#connect-from-your-terminal) en utilisant vos identifiants CLI `gh` locaux. `/schedule` demande cela automatiquement si GitHub n'est pas connecté |

142| `/workflows` | Ouvrir la [vue de progression du workflow](/fr/workflows#watch-the-run) pour regarder, mettre en pause, reprendre ou enregistrer les workflows en cours d'exécution et terminés |149| `/workflows` | Ouvrir la [vue de progression du workflow](/fr/workflows#watch-the-run) pour regarder, mettre en pause, reprendre ou enregistrer les workflows en cours d'exécution et terminés |

143 150 

144## Prompts MCP151<h2 id="mcp-prompts">

152 Prompts MCP

153</h2>

145 154 

146Les serveurs MCP peuvent exposer des prompts qui apparaissent comme des commandes. Ceux-ci utilisent le format `/mcp__<server>__<prompt>` et sont découverts dynamiquement à partir des serveurs connectés. Consultez [MCP prompts](/fr/mcp#use-mcp-prompts-as-commands) pour plus de détails.155Les serveurs MCP peuvent exposer des prompts qui apparaissent comme des commandes. Ceux-ci utilisent le format `/mcp__<server>__<prompt>` et sont découverts dynamiquement à partir des serveurs connectés. Consultez [Prompts MCP](/fr/mcp#use-mcp-prompts-as-commands) pour plus de détails.

147 156 

148## Voir aussi157<h2 id="see-also">

158 Voir aussi

159</h2>

149 160 

150* [Skills](/fr/skills) : créer vos propres commandes161* [Skills](/fr/skills) : créer vos propres commandes

151* [Mode interactif](/fr/interactive-mode) : raccourcis clavier, mode Vim et historique des commandes162* [Mode interactif](/fr/interactive-mode) : raccourcis clavier, mode Vim et historique des commandes

Details

227en milieu de session. *Sonnet* est le workhorse par défaut pour le travail de fonctionnalité quotidienne,227en milieu de session. *Sonnet* est le workhorse par défaut pour le travail de fonctionnalité quotidienne,

228les bugs, les tests et les révisions. Utilisez *Opus* pour les grandes refactorisations, le débogage complexe,228les bugs, les tests et les révisions. Utilisez *Opus* pour les grandes refactorisations, le débogage complexe,

229ou tout ce qui est à enjeux élevés. Passez à *Haiku* pour les questions rapides,229ou tout ce qui est à enjeux élevés. Passez à *Haiku* pour les questions rapides,

230le formatage et les modifications mécaniques où la vitesse gagne.230le formatage et les modifications mécaniques où la vitesse gagne. *Fable 5* est le modèle le plus

231capable pour vos tâches les plus difficiles et les plus longues ; ce n'est pas le

232défaut, donc sélectionnez-le avec `/model fable`, et notez que le contenu de cybersécurité et

233de biologie revient automatiquement à Opus.

231 234 

232*Essayez maintenant :* tapez `/model` et choisissez Sonnet si vous ne l'avez pas déjà fait. C'est235*Essayez maintenant :* tapez `/model` et choisissez Sonnet si vous ne l'avez pas déjà fait. C'est

233le bon défaut pour la plupart des tâches.236le bon défaut pour la plupart des tâches.


236```239```

237 240 

238| Modèle | Meilleur pour |241| Modèle | Meilleur pour |

239| ------ | ---------------------------------------------------------------------------------------------------------------------- |242| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

243| Fable 5 | Les tâches les plus difficiles et les plus longues. Opt-in uniquement : sélectionnez-le avec `/model fable`. Le contenu de cybersécurité ou de biologie [revient à Opus](/fr/model-config#automatic-model-fallback) |

240| Opus | Refactorisations à grande échelle, débogage complexe, décisions architecturales, changements à enjeux élevés |244| Opus | Refactorisations à grande échelle, débogage complexe, décisions architecturales, changements à enjeux élevés |

241| Sonnet | Travail de fonctionnalité quotidienne, corrections de bugs, tests, documentation, révision de code. Défaut recommandé. |245| Sonnet | Travail de fonctionnalité quotidienne, corrections de bugs, tests, documentation, révision de code. Défaut recommandé. |

242| Haiku | Questions rapides, formatage, modifications mécaniques, itération rapide |246| Haiku | Questions rapides, formatage, modifications mécaniques, itération rapide |

computer-use.md +1 −1

Details

233 233 

234macOS nécessite parfois un redémarrage du processus demandeur après avoir accordé l'enregistrement d'écran. Quittez complètement Claude Code et démarrez une nouvelle session. Si l'invite persiste, ouvrez **Paramètres système > Confidentialité et sécurité > Enregistrement d'écran** et confirmez que votre application de terminal est répertoriée et activée.234macOS nécessite parfois un redémarrage du processus demandeur après avoir accordé l'enregistrement d'écran. Quittez complètement Claude Code et démarrez une nouvelle session. Si l'invite persiste, ouvrez **Paramètres système > Confidentialité et sécurité > Enregistrement d'écran** et confirmez que votre application de terminal est répertoriée et activée.

235 235 

236<h3 id="computer-use-doesn-t-appear-in-/mcp">236<h3 id="computer-use-doesnt-appear-in-/mcp">

237 `computer-use` n'apparaît pas dans `/mcp`237 `computer-use` n'apparaît pas dans `/mcp`

238</h3>238</h3>

239 239 

context-window.md +1591 −5

Details

6 6 

7> Une simulation interactive de la façon dont la fenêtre de contexte de Claude Code se remplit pendant une session. Voyez ce qui se charge automatiquement, ce que coûte chaque lecture de fichier, et quand les règles et les hooks s'exécutent.7> Une simulation interactive de la façon dont la fenêtre de contexte de Claude Code se remplit pendant une session. Voyez ce qui se charge automatiquement, ce que coûte chaque lecture de fichier, et quand les règles et les hooks s'exécutent.

8 8 

9La fenêtre de contexte de Claude Code contient tout ce que Claude sait sur votre session : vos instructions, les fichiers qu'il lit, ses propres réponses, et le contenu qui n'apparaît jamais dans votre terminal. La chronologie ci-dessous vous montre ce qui se charge et quand. Consultez [la description écrite](#what-the-timeline-shows) pour le même contenu sous forme de liste.9export const ContextWindow = () => {

10 const MAX = 200000;

11 const STARTUP_END = 0.2;

12 {}

13 const EVENTS = useMemo(() => [{}, {

14 t: 0.015,

15 kind: 'auto',

16 label: 'System prompt',

17 tokens: 4200,

18 color: '#6B6964',

19 vis: 'hidden',

20 desc: 'Core instructions for behavior, tool use, and response formatting. Always loaded first. You never see it.',

21 link: null

22 }, {

23 t: 0.035,

24 kind: 'auto',

25 label: 'Auto memory (MEMORY.md)',

26 tokens: 680,

27 color: '#E8A45C',

28 vis: 'hidden',

29 desc: "Claude's notes to itself from previous sessions: build commands it learned, patterns it noticed, mistakes to avoid. The first 200 lines or 25KB, whichever comes first, are loaded into the conversation context.",

30 link: '/en/memory#auto-memory'

31 }, {

32 t: 0.06,

33 kind: 'auto',

34 label: 'Environment info',

35 tokens: 280,

36 color: '#6B6964',

37 vis: 'hidden',

38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block at the very end of the system prompt.',

39 link: null

40 }, {

41 t: 0.08,

42 kind: 'auto',

43 label: 'MCP tools (deferred)',

44 tokens: 120,

45 color: '#9B7BC4',

46 vis: 'hidden',

47 desc: 'MCP tool names listed so Claude knows what is available. By default, full schemas stay deferred and Claude loads specific ones on demand via tool search when a task needs them. Set `ENABLE_TOOL_SEARCH=auto` to load schemas upfront when they fit within 10% of the context window, or `ENABLE_TOOL_SEARCH=false` to load everything.',

48 link: '/en/mcp#scale-with-mcp-tool-search'

49 }, {

50 t: 0.1,

51 kind: 'auto',

52 label: 'Skill descriptions',

53 tokens: 450,

54 color: '#D4A843',

55 vis: 'hidden',

56 noSurviveCompact: true,

57 desc: 'One-line descriptions of available skills so Claude knows what it can invoke. Full skill content loads only when Claude actually uses one. Skills with `disable-model-invocation: true` are not in this list. They stay completely out of context until you invoke them with `/name`. Unlike the rest of the startup content, this listing is not re-injected after `/compact`. Only skills you actually invoked get preserved.',

58 link: '/en/skills'

59 }, {

60 t: 0.12,

61 kind: 'auto',

62 label: '~/.claude/CLAUDE.md',

63 tokens: 320,

64 color: '#6A9BCC',

65 vis: 'hidden',

66 desc: 'Your global preferences. Applies to every project. Loaded alongside project instructions at the start of every conversation.',

67 link: '/en/memory#choose-where-to-put-claude-md-files'

68 }, {

69 t: 0.14,

70 kind: 'auto',

71 label: 'Project CLAUDE.md',

72 tokens: 1800,

73 color: '#6A9BCC',

74 vis: 'hidden',

75 desc: 'Project conventions, build commands, architecture notes. The most important file you can create. Lives in your project root, so your whole team gets the same instructions.',

76 tip: 'Keep it under 200 lines. Move reference content to skills or path-scoped rules so it only loads when needed.',

77 link: '/en/memory'

78 }, {}, {

79 t: 0.22,

80 kind: 'user',

81 label: 'Your prompt',

82 tokens: 45,

83 color: '#558A42',

84 vis: 'full',

85 desc: '"Fix the auth bug where users get 401 after token refresh"',

86 link: null

87 }, {}, {

88 t: 0.28,

89 kind: 'claude',

90 label: 'Read src/api/auth.ts',

91 tokens: 2400,

92 color: '#8A8880',

93 vis: 'brief',

94 desc: 'Main auth file. You see "Read auth.ts" in your terminal, but the 2,400 tokens of file content only Claude sees.',

95 tip: 'File reads dominate context usage. Be specific in prompts ("fix the bug in auth.ts") so Claude reads fewer files. For research-heavy tasks, use a subagent.',

96 link: null

97 }, {

98 t: 0.32,

99 kind: 'claude',

100 label: 'Read src/lib/tokens.ts',

101 tokens: 1100,

102 color: '#8A8880',

103 vis: 'brief',

104 desc: 'Following imports to the token module. Shown as a one-liner in your terminal.',

105 link: null

106 }, {

107 t: 0.35,

108 kind: 'auto',

109 label: 'Rule: api-conventions.md',

110 tokens: 380,

111 color: '#4A9B8E',

112 vis: 'brief',

113 desc: 'This rule in `.claude/rules/` has a `paths:` pattern matching `src/api/**`. It loaded automatically when Claude read a file in that directory. You see "Loaded .claude/rules/api-conventions.md" in your terminal, but not the rule content.',

114 link: '/en/memory#path-specific-rules'

115 }, {

116 t: 0.38,

117 kind: 'claude',

118 label: 'Read middleware.ts',

119 tokens: 1800,

120 color: '#8A8880',

121 vis: 'brief',

122 desc: 'Tracing the auth flow deeper.',

123 link: null

124 }, {

125 t: 0.41,

126 kind: 'claude',

127 label: 'Read auth.test.ts',

128 tokens: 1600,

129 color: '#8A8880',

130 vis: 'brief',

131 desc: 'Checking existing tests for expected behavior.',

132 link: null

133 }, {

134 t: 0.44,

135 kind: 'auto',

136 label: 'Rule: testing.md',

137 tokens: 290,

138 color: '#4A9B8E',

139 vis: 'brief',

140 desc: 'Another path-scoped rule, this one matching `*.test.ts` files. Triggered when Claude read auth.test.ts. Shown as a one-line "Loaded" notice.',

141 link: '/en/memory#path-specific-rules'

142 }, {

143 t: 0.47,

144 kind: 'claude',

145 label: 'grep "refreshToken"',

146 tokens: 600,

147 color: '#A09E96',

148 vis: 'brief',

149 desc: 'Search results across the codebase. You see the command ran, not the full output.',

150 link: null

151 }, {}, {

152 t: 0.53,

153 kind: 'claude',

154 label: "Claude's analysis",

155 tokens: 800,

156 color: '#D97757',

157 vis: 'full',

158 desc: 'Explains the bug: token invalidated too early in the rotation. This text appears in your terminal.',

159 link: null

160 }, {

161 t: 0.57,

162 kind: 'claude',

163 label: 'Edit auth.ts',

164 tokens: 400,

165 color: '#D97757',

166 vis: 'full',

167 desc: 'Fixes the token rotation order. The diff appears in your terminal.',

168 link: null

169 }, {

170 t: 0.59,

171 kind: 'hook',

172 label: 'Hook: prettier',

173 tokens: 120,

174 color: '#B8860B',

175 vis: 'hidden',

176 desc: 'A PostToolUse hook in `settings.json` runs prettier after every file edit and reports back via `hookSpecificOutput.additionalContext`. That field enters Claude\'s context. Plain stdout on exit 0 does not. It is written to the debug log only.',

177 tip: 'Output JSON with `additionalContext` to send info to Claude. For PostToolUse hooks, exit code 2 surfaces stderr as an error but cannot block since the tool already ran. Keep output concise since it enters context without truncation.',

178 link: '/en/hooks-guide'

179 }, {

180 t: 0.62,

181 kind: 'claude',

182 label: 'Edit auth.test.ts',

183 tokens: 600,

184 color: '#D97757',

185 vis: 'full',

186 desc: 'Adds a regression test for the fix. The diff appears in your terminal.',

187 link: null

188 }, {

189 t: 0.64,

190 kind: 'hook',

191 label: 'Hook: prettier',

192 tokens: 100,

193 color: '#B8860B',

194 vis: 'hidden',

195 desc: 'The same hook fires again for the test file. Every matching tool event triggers it.',

196 link: '/en/hooks-guide'

197 }, {

198 t: 0.67,

199 kind: 'claude',

200 label: 'npm test output',

201 tokens: 1200,

202 color: '#A09E96',

203 vis: 'brief',

204 desc: 'Runs the test suite. You see "Running npm test..." and the pass count, not the full 1,200 tokens of output.',

205 link: null

206 }, {

207 t: 0.70,

208 kind: 'claude',

209 label: 'Summary',

210 tokens: 400,

211 color: '#D97757',

212 vis: 'full',

213 desc: '"Fixed token rotation. Added regression test. All tests pass."',

214 link: null

215 }, {}, {

216 t: 0.72,

217 kind: 'user',

218 label: 'Your follow-up',

219 tokens: 40,

220 color: '#558A42',

221 vis: 'full',

222 desc: '"Use a subagent to research session timeout handling, then fix it"',

223 tip: 'Follow-ups add to the same context. Delegating research to a subagent keeps large file reads out of your main window.',

224 link: null

225 }, {

226 t: 0.79,

227 kind: 'claude',

228 label: 'Spawn research subagent',

229 tokens: 80,

230 color: '#D97757',

231 vis: 'brief',

232 desc: "Claude delegates the research to a subagent with a fresh, separate context window. It loads CLAUDE.md and the same MCP and skill setup, but starts without your conversation history or the main session's auto memory.",

233 link: '/en/sub-agents'

234 }, {

235 t: 0.795,

236 kind: 'sub',

237 label: 'System prompt',

238 tokens: 0,

239 subTokens: 900,

240 color: '#6B6964',

241 vis: 'hidden',

242 desc: "The subagent gets its own system prompt, shorter than the main session's. For the general-purpose agent, it's a brief prompt plus environment details. The main session's auto memory is not included. If a custom agent has memory: in its frontmatter, it loads its own separate MEMORY.md here instead.",

243 link: '/en/sub-agents#enable-persistent-memory'

244 }, {

245 t: 0.80,

246 kind: 'sub',

247 label: 'Project CLAUDE.md (own copy)',

248 tokens: 0,

249 subTokens: 1800,

250 color: '#6A9BCC',

251 vis: 'hidden',

252 desc: "The subagent loads CLAUDE.md too. Same file, same content, but it counts against the subagent's context, not yours. The built-in Explore and Plan agents skip this for a smaller context.",

253 link: '/en/sub-agents'

254 }, {

255 t: 0.805,

256 kind: 'sub',

257 label: 'MCP tools + skills',

258 tokens: 0,

259 subTokens: 970,

260 color: '#9B7BC4',

261 vis: 'hidden',

262 desc: "The subagent has access to the same MCP servers and skills. It gets most of the parent's tools, minus several that don't apply in a nested context, including plan-mode controls, background-task tools, and by default the Agent tool itself to prevent recursion.",

263 link: '/en/sub-agents'

264 }, {

265 t: 0.81,

266 kind: 'sub',

267 label: 'Task prompt from main',

268 tokens: 0,

269 subTokens: 120,

270 color: '#558A42',

271 vis: 'hidden',

272 desc: "Instead of a user prompt, the subagent receives the task Claude wrote for it: 'Research session timeout handling in this codebase.'",

273 link: '/en/sub-agents'

274 }, {

275 t: 0.82,

276 kind: 'sub',

277 label: 'Read session.ts',

278 tokens: 0,

279 subTokens: 2200,

280 color: '#8A8880',

281 vis: 'hidden',

282 desc: "Now the subagent does its work. This file read fills the subagent's context, not yours.",

283 link: '/en/sub-agents'

284 }, {

285 t: 0.825,

286 kind: 'sub',

287 label: 'Read timeouts.ts',

288 tokens: 0,

289 subTokens: 800,

290 color: '#8A8880',

291 vis: 'hidden',

292 desc: "Another file read in the subagent's separate context.",

293 link: '/en/sub-agents'

294 }, {

295 t: 0.83,

296 kind: 'sub',

297 label: 'Read config/*.ts',

298 tokens: 0,

299 subTokens: 3100,

300 color: '#8A8880',

301 vis: 'hidden',

302 desc: "The subagent can read as many files as it needs. None of this touches your main context.",

303 link: '/en/sub-agents'

304 }, {

305 t: 0.85,

306 kind: 'claude',

307 label: 'Subagent returns summary',

308 tokens: 420,

309 color: '#D97757',

310 vis: 'brief',

311 desc: "Only the subagent's final text response comes back to your context, plus a small metadata trailer with token counts and duration. The subagent read 6,100 tokens of files. You got a 420-token result. That's the context savings.",

312 link: '/en/sub-agents'

313 }, {

314 t: 0.86,

315 kind: 'claude',

316 label: "Claude's response",

317 tokens: 1200,

318 color: '#D97757',

319 vis: 'full',

320 desc: 'Analysis and fix for session timeouts. This text appears in your terminal.',

321 link: null

322 }, {}, {

323 t: 0.875,

324 kind: 'user',

325 label: '!git status',

326 tokens: 180,

327 color: '#558A42',

328 vis: 'full',

329 desc: "You ran a shell command with the ! prefix to see which files Claude modified. The command and its output both enter context as part of your message. Useful for grounding Claude in command output without Claude running it.",

330 link: '/en/interactive-mode#bash-mode-with-prefix'

331 }, {

332 t: 0.89,

333 kind: 'user',

334 label: '/commit-push',

335 tokens: 620,

336 color: '#558A42',

337 vis: 'brief',

338 desc: 'You invoked a skill that has `disable-model-invocation: true`. Its description was not in the skill index at startup, so it cost zero context until this moment. Now the full skill content loads and Claude follows its instructions to stage, commit, and push your changes.',

339 tip: 'Set `disable-model-invocation: true` on skills with side effects like committing, deploying, or sending messages. They stay out of context entirely until you need them.',

340 link: '/en/skills#control-who-invokes-a-skill'

341 }, {}, {

342 t: 0.93,

343 kind: 'compact',

344 label: '/compact',

345 tokens: 0,

346 color: '#D97757',

347 vis: 'brief',

348 desc: 'Replaces the conversation with a structured summary. You see a "Conversation compacted" message. The summarization happens without appearing in your terminal.',

349 link: '/en/how-claude-code-works#the-context-window'

350 }].filter(e => e.t !== undefined), []);

351 const VIS_META = {

352 hidden: {

353 label: 'Invisible in your terminal',

354 sub: 'This content does not appear in your terminal.'

355 },

356 brief: {

357 label: 'One-liner in your terminal',

358 sub: 'You see a brief mention, not the full content.'

359 },

360 full: {

361 label: 'Shown in your terminal',

362 sub: 'The actual content appears in your terminal.'

363 }

364 };

365 {}

366 const GATES = [{

367 at: 0.18,

368 kind: 'prompt',

369 text: 'Fix the auth bug where users get 401 after token refresh',

370 resumeTo: 0.22

371 }, {

372 at: 0.705,

373 kind: 'prompt',

374 text: 'Use a subagent to research session timeout handling, then fix it',

375 resumeTo: 0.72

376 }, {

377 at: 0.865,

378 kind: 'bang',

379 text: '!git status',

380 resumeTo: 0.875

381 }, {

382 at: 0.88,

383 kind: 'slash',

384 text: '/commit-push',

385 resumeTo: 0.89

386 }, {

387 at: 0.90,

388 kind: 'compact',

389 text: '/compact',

390 resumeTo: 1

391 }];

392 const KIND_META = {

393 auto: {

394 badge: 'auto',

395 detail: 'Auto-loaded',

396 badgeBg: 'rgba(94,93,89,0.15)',

397 badgeColor: '#8A8880'

398 },

399 user: {

400 badge: 'you',

401 detail: 'You typed this',

402 badgeBg: 'rgba(85,138,66,0.15)',

403 badgeColor: '#6BA656'

404 },

405 claude: {

406 badge: 'claude',

407 detail: "Claude's work",

408 badgeBg: 'rgba(217,119,87,0.12)',

409 badgeColor: '#D97757'

410 },

411 hook: {

412 badge: 'hook',

413 detail: 'Hook (automatic)',

414 badgeBg: 'rgba(184,134,11,0.15)',

415 badgeColor: '#CCA020'

416 },

417 compact: {

418 badge: 'compact',

419 detail: 'Compaction',

420 badgeBg: 'rgba(217,119,87,0.12)',

421 badgeColor: '#D97757'

422 },

423 sub: {

424 badge: 'subagent',

425 detail: "In subagent's context",

426 badgeBg: 'rgba(155,123,196,0.12)',

427 badgeColor: '#9B7BC4'

428 }

429 };

430 const LEGEND = [{

431 c: '#6B6964',

432 l: 'System'

433 }, {

434 c: '#6A9BCC',

435 l: 'CLAUDE.md'

436 }, {

437 c: '#E8A45C',

438 l: 'Memory'

439 }, {

440 c: '#D4A843',

441 l: 'Skills'

442 }, {

443 c: '#9B7BC4',

444 l: 'MCP'

445 }, {

446 c: '#4A9B8E',

447 l: 'Rules'

448 }, {

449 c: '#558A42',

450 l: 'You'

451 }, {

452 c: '#8A8880',

453 l: 'Files'

454 }, {

455 c: '#A09E96',

456 l: 'Output'

457 }, {

458 c: '#D97757',

459 l: 'Claude'

460 }, {

461 c: '#B8860B',

462 l: 'Hooks'

463 }];

464 const fmt = n => n >= 1000 ? (n / 1000).toFixed(1).replace(/\.0$/, '') + 'K' : n + '';

465 const [time, setTime] = useState(0);

466 const [playing, setPlaying] = useState(false);

467 const [hovIdx, setHovIdx] = useState(null);

468 const [selIdx, setSelIdx] = useState(null);

469 const [hovCat, setHovCat] = useState(null);

470 const [gatesPassed, setGatesPassed] = useState(0);

471 const [mounted, setMounted] = useState(false);

472 const [hasInteracted, setHasInteracted] = useState(false);

473 const lastRef = useRef(null);

474 const scrollRef = useRef(null);

475 const detailRef = useRef(null);

476 useEffect(() => setMounted(true), []);

477 const activeGate = GATES.find((g, i) => i >= gatesPassed && time >= g.at && time < g.resumeTo);

478 useEffect(() => {

479 if (!playing) return;

480 let raf;

481 let stopped = false;

482 const tick = ts => {

483 if (stopped) return;

484 if (!lastRef.current) lastRef.current = ts;

485 const dt = (ts - lastRef.current) / 1000;

486 lastRef.current = ts;

487 setTime(prev => {

488 const next = prev + dt * 0.032;

489 const gate = GATES.find((g, i) => i >= gatesPassed && next >= g.at && prev < g.resumeTo);

490 if (gate) {

491 stopped = true;

492 setPlaying(false);

493 return gate.at;

494 }

495 if (next >= 1) {

496 stopped = true;

497 setPlaying(false);

498 return 1;

499 }

500 return next;

501 });

502 if (!stopped) raf = requestAnimationFrame(tick);

503 };

504 raf = requestAnimationFrame(tick);

505 return () => {

506 stopped = true;

507 cancelAnimationFrame(raf);

508 lastRef.current = null;

509 };

510 }, [playing, gatesPassed]);

511 const sendPrompt = () => {

512 if (!activeGate) return;

513 const isCompact = activeGate.kind === 'compact';

514 setGatesPassed(n => n + 1);

515 setTime(activeGate.resumeTo);

516 setSelIdx(null);

517 setHovIdx(null);

518 if (!isCompact) setPlaying(true);

519 };

520 const visibleCount = EVENTS.filter(e => e.t <= time).length;

521 const preCompactVisible = useMemo(() => EVENTS.slice(0, visibleCount), [EVENTS, visibleCount]);

522 const compactGateIdx = GATES.length - 1;

523 const isCompacted = gatesPassed > compactGateIdx && preCompactVisible.some(e => e.kind === 'compact');

524 const {visible, preCompactTotal} = useMemo(() => {

525 const nonCompact = preCompactVisible.filter(e => e.kind !== 'compact');

526 if (!isCompacted) {

527 return {

528 visible: preCompactVisible,

529 preCompactTotal: 0

530 };

531 }

532 {}

533 const autoLoads = nonCompact.filter(e => e.kind === 'auto' && e.t < STARTUP_END && !e.noSurviveCompact);

534 const summarized = nonCompact.filter(e => e.t >= STARTUP_END && e.kind !== 'sub');

535 const sumTokens = summarized.reduce((s, e) => s + e.tokens, 0);

536 const summaryBlock = {

537 t: STARTUP_END,

538 kind: 'compact',

539 label: 'Conversation summary',

540 tokens: Math.round(sumTokens * 0.12),

541 color: '#A09E96',

542 vis: 'hidden',

543 desc: `All ${summarized.length} conversation events condensed into one structured summary. The summary keeps: your requests and intent, key technical concepts, files examined or modified with important code snippets, errors and how they were fixed, pending tasks, and current work. It replaces the verbatim conversation: full tool outputs and intermediate reasoning are gone. Claude can still reference the work but won't have the exact code it read earlier.`,

544 link: '/en/how-claude-code-works#the-context-window'

545 };

546 return {

547 visible: [...autoLoads, summaryBlock],

548 preCompactTotal: nonCompact.reduce((s, e) => s + e.tokens, 0)

549 };

550 }, [preCompactVisible, isCompacted]);

551 const {blocks, totalTokens} = useMemo(() => {

552 const bl = visible.map((e, visIdx) => ({

553 ...e,

554 id: e.label + e.t,

555 visIdx

556 })).filter(e => e.tokens > 0 || e.label === 'Conversation summary');

557 return {

558 blocks: bl,

559 totalTokens: bl.reduce((s, b) => s + b.tokens, 0)

560 };

561 }, [visible]);

562 const subTotal = useMemo(() => visible.filter(e => e.kind === 'sub').reduce((s, e) => s + (e.subTokens || 0), 0), [visible]);

563 useEffect(() => {

564 if (!scrollRef.current) return;

565 if (isCompacted) scrollRef.current.scrollTo({

566 top: 0,

567 behavior: 'smooth'

568 }); else if (playing || activeGate) scrollRef.current.scrollTop = scrollRef.current.scrollHeight;

569 }, [visible.length, !!activeGate, isCompacted]);

570 const rootRef = useRef(null);

571 const keyStateRef = useRef({});

572 const [isFullscreen, setIsFullscreen] = useState(false);

573 keyStateRef.current = {

574 time,

575 activeGate,

576 sendPrompt,

577 hasInteracted

578 };

579 useEffect(() => {

580 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

581 document.addEventListener('fullscreenchange', onFsChange);

582 return () => document.removeEventListener('fullscreenchange', onFsChange);

583 }, []);

584 const toggleFullscreen = () => {

585 if (!rootRef.current) return;

586 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

587 };

588 useEffect(() => {

589 const onKey = e => {

590 const tag = e.target.tagName;

591 if (tag === 'INPUT' || tag === 'BUTTON' || tag === 'TEXTAREA' || tag === 'SELECT' || e.target.isContentEditable) return;

592 if (!rootRef.current) return;

593 const rect = rootRef.current.getBoundingClientRect();

594 if (rect.width === 0 && rect.height === 0) return;

595 if (rect.bottom < 0 || rect.top > window.innerHeight) return;

596 if (e.code === 'Space') {

597 const {time: t, activeGate: g, sendPrompt: send, hasInteracted: hi} = keyStateRef.current;

598 if (!hi) return;

599 e.preventDefault();

600 if (t === 0) setPlaying(true); else if (g) send(); else if (t >= 1) {

601 setTime(0);

602 setGatesPassed(0);

603 setSelIdx(null);

604 setHovIdx(null);

605 setPlaying(true);

606 } else setPlaying(p => !p);

607 }

608 };

609 window.addEventListener('keydown', onKey);

610 return () => window.removeEventListener('keydown', onKey);

611 }, []);

612 const pct = totalTokens / MAX * 100;

613 const barColor = pct > 75 ? '#D97757' : pct > 50 ? '#B8860B' : '#558A42';

614 const activeIdx = selIdx !== null ? selIdx : hovIdx;

615 const hovEvent = activeIdx !== null ? visible[activeIdx] : null;

616 useEffect(() => {

617 if (detailRef.current) detailRef.current.scrollTop = 0;

618 }, [hovEvent]);

619 const focusT = hovEvent ? hovEvent.t : time;

620 const takeaway = isCompacted ? 'Compaction replaces the conversation with a structured summary. System prompt, CLAUDE.md, memory, and MCP tools reload automatically. The skill listing is the one exception. Only skills you actually invoked are preserved.' : focusT < STARTUP_END ? 'A lot loads before you type anything. CLAUDE.md, memory, skills, and MCP tools are all in context before your first prompt.' : focusT < 0.28 ? "Your prompt is tiny compared to what's already loaded. Most of Claude's context is project knowledge, not your words." : focusT < 0.50 ? 'Each file Claude reads grows the context. Path-scoped rules load automatically alongside matching files.' : focusT < 0.71 ? 'Hooks fire automatically on tool events. Output reaches Claude via additionalContext JSON. Exit code 2 surfaces stderr to Claude. Plain stdout on exit 0 goes to the debug log, not the transcript.' : focusT < 0.79 ? 'Follow-up questions keep building on the same context. Everything from earlier is still there.' : focusT < 0.87 ? "The subagent works in its own separate context window. None of its file reads touch yours. Only the final summary comes back." : focusT < 0.88 ? 'Bang commands run in your shell and prefix the output to your next message. Useful for grounding Claude in command results without it running them.' : focusT < 0.90 ? 'User-only skills stay out of context entirely until you invoke them. The skill index at startup only lists skills Claude can call on its own.' : '/compact summarizes the conversation to free space while keeping key information. In a real session, run it when context starts affecting performance or before a long new task.';

621 const terminalView = isCompacted ? 'A "Conversation compacted" message. The summarization happens silently.' : focusT < STARTUP_END ? 'The input box, waiting for your first message. Everything above loads silently before you type anything.' : focusT < 0.28 ? 'Your prompt. Claude hasn\'t started working yet.' : focusT < 0.52 ? 'Your prompt and "Reading files...". Rules show as one-line "Loaded" notices, not their content.' : focusT < 0.72 ? "Claude's response and file diffs. Hooks fire silently. Tool output like npm test shows as a brief summary, not the full content." : focusT < 0.79 ? 'Your follow-up prompt.' : focusT < 0.86 ? "A brief notice that a subagent is working, then its result. You don't see the subagent's individual file reads." : focusT < 0.90 ? "Claude's response, your git status output, and the commit-push skill running." : 'Your full conversation. /compact is available to run.';

622 const mono = 'var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace)';

623 const renderWithCode = s => s.split('`').map((part, i) => i % 2 === 1 ? <code key={i} style={{

624 fontFamily: mono,

625 fontSize: '0.92em',

626 background: 'var(--cw-track)',

627 padding: '1px 4px',

628 borderRadius: 3

629 }}>{part}</code> : part);

630 if (!mounted) return null;

631 return <>

632 <div className="cw-mobile-fallback">

633 This interactive timeline works best on a larger screen. See <a href="#what-the-timeline-shows" style={{

634 color: '#D97757'

635 }}>the written breakdown below</a> for the same concepts.

636 </div>

637 <div className="cw-root" ref={rootRef} onClickCapture={() => setHasInteracted(true)} style={isFullscreen ? {

638 height: '100vh',

639 borderRadius: 0,

640 display: 'flex',

641 flexDirection: 'column'

642 } : {}}>

643 <style>{`

644 .cw-root {

645 --cw-bg: #FAFAF8;

646 --cw-text: #1A1918;

647 --cw-text-2: #3D3C38;

648 --cw-text-3: #5E5D59;

649 --cw-text-dim: #6E6C64;

650 --cw-text-faint: #8A8880;

651 --cw-surface: rgba(0,0,0,0.025);

652 --cw-surface-2: rgba(0,0,0,0.04);

653 --cw-border: rgba(0,0,0,0.08);

654 --cw-track: rgba(0,0,0,0.04);

655 --cw-hover: rgba(0,0,0,0.04);

656 --cw-rail: rgba(0,0,0,0.08);

657 --cw-scrollbar: rgba(0,0,0,0.22);

658 background: var(--cw-bg);

659 border-radius: 12px;

660 overflow: hidden;

661 font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, sans-serif);

662 color: var(--cw-text);

663 border: 1px solid var(--cw-border);

664 }

665 .dark .cw-root {

666 --cw-bg: #111110;

667 --cw-text: #E8E6DC;

668 --cw-text-2: #B8B6AE;

669 --cw-text-3: #9C9A92;

670 --cw-text-dim: #8A8880;

671 --cw-text-faint: #6E6C64;

672 --cw-surface: rgba(255,255,255,0.02);

673 --cw-surface-2: rgba(255,255,255,0.015);

674 --cw-border: rgba(255,255,255,0.06);

675 --cw-track: rgba(255,255,255,0.03);

676 --cw-hover: rgba(255,255,255,0.04);

677 --cw-rail: rgba(255,255,255,0.04);

678 --cw-scrollbar: rgba(255,255,255,0.18);

679 }

680 .cw-scroll::-webkit-scrollbar { width: 6px; }

681 .cw-scroll::-webkit-scrollbar-track { background: transparent; }

682 .cw-scroll::-webkit-scrollbar-thumb { background: var(--cw-scrollbar); border-radius: 3px; }

683 @keyframes cw-blink { 50% { opacity: 0; } }

684 @keyframes cw-fadein { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

685 .cw-compacted-row { animation: cw-fadein 0.3s ease-out backwards; }

686 .cw-mobile-fallback { display: none; padding: 14px 16px; border-radius: 8px; font-size: 14px; border: 1px solid rgba(0,0,0,0.1); background: rgba(0,0,0,0.03); }

687 .dark .cw-mobile-fallback { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.04); }

688 @media (max-width: 700px) {

689 .cw-root { display: none !important; }

690 .cw-mobile-fallback { display: block; }

691 }

692 `}</style>

10 693 

11## Ce que la chronologie montre694 {}

695 <div style={{

696 padding: '16px 20px 12px',

697 display: 'flex',

698 alignItems: 'flex-end',

699 gap: 24

700 }}>

701 <div style={{

702 flex: 1,

703 minWidth: 0

704 }}>

705 <div style={{

706 fontSize: 18,

707 fontWeight: 600,

708 letterSpacing: -0.3,

709 lineHeight: 1

710 }}>

711 Explore the context window

712 </div>

713 <div style={{

714 fontSize: 14,

715 color: 'var(--cw-text-dim)',

716 marginTop: 4

717 }}>

718 A simulated session showing what enters context and what it costs

719 </div>

720 </div>

721 <div style={{

722 textAlign: 'right',

723 flexShrink: 0

724 }}>

725 <div style={{

726 fontFamily: mono,

727 fontSize: 20,

728 fontWeight: 600,

729 color: barColor,

730 letterSpacing: -0.5,

731 lineHeight: 1

732 }}>

733 ~{fmt(totalTokens)}<span style={{

734 fontSize: 15,

735 fontWeight: 500,

736 marginLeft: 4

737 }}>tokens</span>

738 </div>

739 <div style={{

740 fontFamily: mono,

741 fontSize: 13,

742 color: 'var(--cw-text-dim)',

743 marginTop: 2

744 }} title="Token counts are illustrative. Actual values vary with your CLAUDE.md size, MCP servers, and file lengths.">

745 / {fmt(MAX)} · illustrative

746 </div>

747 </div>

748 </div>

749 

750 {}

751 <div style={{

752 padding: '0 20px'

753 }}>

754 <div style={{

755 height: 4,

756 borderRadius: 2,

757 background: 'var(--cw-track)',

758 overflow: 'hidden',

759 marginBottom: 6

760 }}>

761 <div style={{

762 width: pct + '%',

763 height: '100%',

764 background: barColor,

765 transition: 'width 0.6s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s'

766 }} />

767 </div>

768 <div style={{

769 height: 28,

770 borderRadius: 5,

771 background: 'var(--cw-track)',

772 border: '1px solid var(--cw-border)',

773 overflow: 'hidden',

774 display: 'flex'

775 }}>

776 {blocks.map((b, i) => {

777 const w = Math.max(b.tokens / MAX * 100, 0.15);

778 const isHov = b.visIdx === activeIdx;

779 const catMatch = hovCat && b.color === hovCat;

780 const dimmed = hovCat ? !catMatch : activeIdx !== null && !isHov;

781 return <div key={b.id} onMouseEnter={() => setHovIdx(b.visIdx)} onMouseLeave={() => setHovIdx(null)} onClick={() => setSelIdx(selIdx === b.visIdx ? null : b.visIdx)} style={{

782 width: w + '%',

783 height: '100%',

784 background: b.color,

785 opacity: isHov || catMatch ? 1 : dimmed ? 0.25 : 0.65,

786 borderRight: i < blocks.length - 1 ? '0.5px solid var(--cw-border)' : 'none',

787 transition: 'opacity 0.15s',

788 cursor: 'pointer'

789 }} />;

790 })}

791 </div>

792 <div style={{

793 display: 'flex',

794 gap: 12,

795 marginTop: 6,

796 flexWrap: 'wrap',

797 justifyContent: 'space-between'

798 }}>

799 <div style={{

800 display: 'flex',

801 gap: 12,

802 flexWrap: 'wrap'

803 }}>

804 {LEGEND.map(x => {

805 const active = hovCat === x.c;

806 return <div key={x.l} onMouseEnter={() => setHovCat(x.c)} onMouseLeave={() => setHovCat(null)} style={{

807 display: 'flex',

808 alignItems: 'center',

809 gap: 4,

810 padding: '2px 6px',

811 borderRadius: 4,

812 cursor: 'pointer',

813 background: active ? 'var(--cw-hover)' : 'transparent',

814 transition: 'background 0.1s'

815 }}>

816 <div style={{

817 width: 6,

818 height: 6,

819 borderRadius: 1.5,

820 background: x.c,

821 opacity: active ? 1 : 0.7

822 }} />

823 <span style={{

824 fontSize: 12,

825 color: active ? 'var(--cw-text)' : 'var(--cw-text-dim)'

826 }}>{x.l}</span>

827 </div>;

828 })}

829 </div>

830 <div style={{

831 display: 'flex',

832 gap: 6,

833 alignItems: 'center',

834 fontSize: 12,

835 color: 'var(--cw-text-dim)'

836 }}>

837 <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="#558A42" strokeWidth="2.5">

838 <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" /><circle cx="12" cy="12" r="3" />

839 </svg>

840 <span>= appears in your terminal</span>

841 </div>

842 </div>

843 </div>

844 

845 {}

846 <div style={{

847 display: 'flex',

848 padding: '14px 20px 0',

849 gap: 16,

850 height: isFullscreen ? 'calc(100vh - 240px)' : 420

851 }}>

852 

853 {}

854 <div ref={scrollRef} className="cw-scroll" style={{

855 flex: 1,

856 minWidth: 0,

857 overflowY: 'auto',

858 paddingRight: 8,

859 scrollBehavior: 'smooth'

860 }}>

861 {visible.length === 0 && !playing && <div style={{

862 height: '100%',

863 display: 'flex',

864 flexDirection: 'column',

865 alignItems: 'center',

866 justifyContent: 'center',

867 gap: 16

868 }}>

869 <div style={{

870 fontFamily: mono,

871 fontSize: 16,

872 color: 'var(--cw-text-dim)',

873 display: 'flex',

874 alignItems: 'center',

875 gap: 8

876 }}>

877 <span style={{

878 color: 'var(--cw-text-faint)'

879 }}>$</span>

880 <span>claude</span>

881 <span style={{

882 display: 'inline-block',

883 width: 8,

884 height: 16,

885 background: 'var(--cw-text-dim)',

886 opacity: 0.5,

887 animation: 'cw-blink 1s step-end infinite'

888 }} />

889 </div>

890 <button onClick={() => setPlaying(true)} style={{

891 padding: '10px 20px',

892 borderRadius: 8,

893 border: '1px solid rgba(217,119,87,0.3)',

894 background: 'rgba(217,119,87,0.08)',

895 color: '#D97757',

896 fontSize: 15,

897 fontWeight: 600,

898 cursor: 'pointer',

899 display: 'flex',

900 alignItems: 'center',

901 gap: 8

902 }}>

903 <span>▶</span>

904 <span>Start session</span>

905 </button>

906 <div style={{

907 fontSize: 13,

908 color: 'var(--cw-text-faint)',

909 maxWidth: 280,

910 textAlign: 'center',

911 lineHeight: 1.5

912 }}>

913 Watch what loads into context, from the moment you run <code style={{

914 fontFamily: mono

915 }}>claude</code> through a full conversation.

916 </div>

917 </div>}

918 {isCompacted && <div style={{

919 marginBottom: 10,

920 padding: '10px 12px',

921 borderRadius: 6,

922 background: 'rgba(217,119,87,0.05)',

923 border: '1px solid rgba(217,119,87,0.15)'

924 }}>

925 <div style={{

926 fontSize: 13,

927 fontWeight: 600,

928 color: '#D97757',

929 marginBottom: 3

930 }}>

931 After /compact

932 </div>

933 <div style={{

934 fontSize: 13,

935 color: 'var(--cw-text-3)',

936 lineHeight: 1.5,

937 fontFamily: mono

938 }}>

939 {fmt(preCompactTotal)} → {fmt(totalTokens)} tokens · freed {fmt(preCompactTotal - totalTokens)}

940 </div>

941 <div style={{

942 fontSize: 13,

943 color: 'var(--cw-text-dim)',

944 lineHeight: 1.5,

945 marginTop: 4

946 }}>

947 This is what's left in context: startup content, which lives outside the message history and reloads after compaction, plus a structured summary of the entire conversation. Skill descriptions don't reload.

948 </div>

949 </div>}

950 {time > 0 && visible.length > 0 && <div style={{

951 fontSize: 12,

952 fontWeight: 700,

953 color: 'var(--cw-text-faint)',

954 textTransform: 'uppercase',

955 letterSpacing: 0.6,

956 marginBottom: 6,

957 paddingLeft: 28

958 }}>

959 {isCompacted ? 'Reloaded after compact' : 'Before you type anything'}

960 </div>}

961 

962 {time > 0 && visible.map((evt, i) => {

963 const meta = KIND_META[evt.kind];

964 const isHov = hovIdx === i;

965 const prevKind = i > 0 ? visible[i - 1].kind : null;

966 const isSub = evt.kind === 'sub';

967 const enteringSubagent = isSub && prevKind !== 'sub';

968 const leavingSubagent = prevKind === 'sub' && !isSub;

969 let showPhase = null;

970 if (evt.kind === 'user' && prevKind !== 'user') showPhase = 'You'; else if (evt.kind === 'claude' && prevKind === 'user') showPhase = 'Claude works'; else if (evt.label === 'Conversation summary') showPhase = 'Summarized by /compact';

971 const isNewRow = isCompacted && !(evt.kind === 'auto' && evt.t < STARTUP_END);

972 return <div key={evt.label + evt.t} className={isNewRow ? 'cw-compacted-row' : ''} style={isNewRow ? {

973 animationDelay: `${i * 60}ms`

974 } : {}}>

975 {showPhase && <div style={{

976 fontSize: 12,

977 fontWeight: 700,

978 color: 'var(--cw-text-faint)',

979 textTransform: 'uppercase',

980 letterSpacing: 0.6,

981 marginTop: 14,

982 marginBottom: 6,

983 paddingLeft: 28

984 }}>

985 {showPhase}

986 </div>}

987 {enteringSubagent && <div style={{

988 marginLeft: 28,

989 marginTop: 6,

990 marginBottom: 2,

991 paddingLeft: 10,

992 borderLeft: '2px solid rgba(155,123,196,0.4)',

993 fontSize: 12,

994 fontWeight: 600,

995 color: '#9B7BC4',

996 textTransform: 'uppercase',

997 letterSpacing: 0.5

998 }}>

999 Subagent's separate context window

1000 </div>}

1001 {leavingSubagent && <div style={{

1002 marginLeft: 28,

1003 marginBottom: 6,

1004 paddingLeft: 10,

1005 paddingBottom: 6,

1006 borderLeft: '2px solid rgba(155,123,196,0.4)',

1007 fontSize: 12,

1008 color: 'var(--cw-text-dim)',

1009 fontFamily: mono

1010 }}>

1011 ↓ {fmt(subTotal)} tokens stayed in subagent's context · only the summary returns

1012 </div>}

1013 <div onMouseEnter={() => setHovIdx(i)} onMouseLeave={() => setHovIdx(null)} onClick={() => setSelIdx(selIdx === i ? null : i)} style={{

1014 display: 'flex',

1015 alignItems: 'flex-start',

1016 borderRadius: 6,

1017 cursor: 'pointer',

1018 background: selIdx === i || isHov ? 'var(--cw-hover)' : 'transparent',

1019 outline: selIdx === i ? '1px solid rgba(217,119,87,0.4)' : 'none',

1020 opacity: hovCat && evt.color !== hovCat ? 0.35 : 1,

1021 transition: 'background 0.1s, opacity 0.15s',

1022 marginLeft: isSub ? 28 : 0,

1023 paddingLeft: isSub ? 10 : 0,

1024 borderLeft: isSub ? '2px solid rgba(155,123,196,0.4)' : 'none'

1025 }}>

1026 <div style={{

1027 width: 28,

1028 display: 'flex',

1029 flexDirection: 'column',

1030 alignItems: 'center',

1031 paddingTop: 8,

1032 flexShrink: 0

1033 }}>

1034 <div style={{

1035 width: evt.kind === 'user' || evt.kind === 'compact' ? 10 : 7,

1036 height: evt.kind === 'user' || evt.kind === 'compact' ? 10 : 7,

1037 borderRadius: '50%',

1038 background: evt.color,

1039 opacity: isHov ? 1 : 0.6,

1040 transition: 'opacity 0.15s',

1041 boxShadow: isHov ? `0 0 8px ${evt.color}40` : 'none'

1042 }} />

1043 {i < visible.length - 1 && <div style={{

1044 width: 1.5,

1045 flex: 1,

1046 background: 'var(--cw-rail)',

1047 marginTop: 2,

1048 minHeight: 6

1049 }} />}

1050 </div>

1051 <div style={{

1052 flex: 1,

1053 minWidth: 0,

1054 padding: '5px 10px 5px 4px',

1055 display: 'flex',

1056 alignItems: 'center',

1057 gap: 8

1058 }}>

1059 <span style={{

1060 fontSize: 12,

1061 fontWeight: 600,

1062 padding: '1px 5px',

1063 borderRadius: 3,

1064 background: meta.badgeBg,

1065 color: meta.badgeColor,

1066 flexShrink: 0,

1067 fontFamily: mono

1068 }}>

1069 {meta.badge}

1070 </span>

1071 <span style={{

1072 fontSize: 15,

1073 fontFamily: mono,

1074 color: isHov ? 'var(--cw-text)' : evt.kind === 'user' ? '#558A42' : evt.kind === 'auto' ? 'var(--cw-text-dim)' : 'var(--cw-text-2)',

1075 flex: 1,

1076 minWidth: 0,

1077 overflow: 'hidden',

1078 textOverflow: 'ellipsis',

1079 whiteSpace: 'nowrap',

1080 fontWeight: evt.kind === 'user' ? 550 : 400

1081 }}>

1082 {evt.label}

1083 </span>

1084 {evt.tokens > 0 && <span style={{

1085 fontSize: 12,

1086 fontFamily: mono,

1087 color: 'var(--cw-text-faint)',

1088 flexShrink: 0

1089 }}>

1090 +{fmt(evt.tokens)}

1091 </span>}

1092 {evt.subTokens > 0 && <span style={{

1093 fontSize: 12,

1094 fontFamily: mono,

1095 color: '#9B7BC4',

1096 flexShrink: 0,

1097 opacity: 0.6

1098 }}>

1099 +{fmt(evt.subTokens)}

1100 </span>}

1101 {evt.tokens > 0 && <div style={{

1102 width: 50,

1103 height: 5,

1104 borderRadius: 2,

1105 background: 'var(--cw-track)',

1106 flexShrink: 0,

1107 overflow: 'hidden'

1108 }}>

1109 <div style={{

1110 width: Math.min(evt.tokens / 5000 * 100, 100) + '%',

1111 height: '100%',

1112 background: evt.color,

1113 opacity: isHov ? 0.8 : 0.4,

1114 transition: 'opacity 0.15s'

1115 }} />

1116 </div>}

1117 <span style={{

1118 width: 14,

1119 flexShrink: 0,

1120 display: 'flex',

1121 justifyContent: 'center'

1122 }} title={VIS_META[evt.vis].label}>

1123 {evt.vis !== 'hidden' && <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke={evt.vis === 'full' ? '#558A42' : 'currentColor'} style={{

1124 color: 'var(--cw-text-faint)',

1125 opacity: evt.vis === 'full' ? 1 : 0.5

1126 }} strokeWidth="2">

1127 <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" /><circle cx="12" cy="12" r="3" />

1128 </svg>}

1129 </span>

1130 </div>

1131 </div>

1132 </div>;

1133 })}

1134 

1135 {activeGate && (activeGate.kind === 'prompt' || activeGate.kind === 'bang' || activeGate.kind === 'slash') && <div style={{

1136 paddingLeft: 28,

1137 marginTop: 12,

1138 paddingRight: 8

1139 }}>

1140 <div style={{

1141 fontSize: 11,

1142 fontWeight: 600,

1143 color: '#6BA656',

1144 fontFamily: mono,

1145 textTransform: 'uppercase',

1146 letterSpacing: 0.5,

1147 marginBottom: 4,

1148 paddingLeft: 2

1149 }}>

1150 You type in your terminal

1151 </div>

1152 <div style={{

1153 display: 'flex',

1154 alignItems: 'flex-start',

1155 gap: 8,

1156 padding: '10px 12px',

1157 borderRadius: 6,

1158 background: 'rgba(85,138,66,0.06)',

1159 border: '1px solid rgba(85,138,66,0.2)'

1160 }}>

1161 <span style={{

1162 color: '#558A42',

1163 fontSize: 15,

1164 fontFamily: mono,

1165 flexShrink: 0

1166 }}>❯</span>

1167 <span style={{

1168 fontSize: 15,

1169 fontFamily: mono,

1170 color: 'var(--cw-text-2)',

1171 flex: 1,

1172 lineHeight: 1.5

1173 }}>

1174 {activeGate.text}

1175 <span style={{

1176 display: 'inline-block',

1177 width: 7,

1178 height: 13,

1179 marginLeft: 2,

1180 background: '#558A42',

1181 opacity: 0.5,

1182 verticalAlign: 'middle',

1183 animation: 'cw-blink 1s step-end infinite'

1184 }} />

1185 </span>

1186 <button onClick={sendPrompt} style={{

1187 padding: '5px 12px',

1188 borderRadius: 5,

1189 border: 'none',

1190 background: '#558A42',

1191 color: '#fff',

1192 fontSize: 13,

1193 fontWeight: 600,

1194 cursor: 'pointer',

1195 flexShrink: 0

1196 }}>

1197 {activeGate.kind === 'prompt' ? 'Send ↵' : 'Run ↵'}

1198 </button>

1199 </div>

1200 </div>}

1201 {activeGate && activeGate.kind === 'compact' && <div style={{

1202 paddingLeft: 28,

1203 marginTop: 12,

1204 paddingRight: 8

1205 }}>

1206 <div style={{

1207 padding: '12px 14px',

1208 borderRadius: 6,

1209 background: 'rgba(217,119,87,0.06)',

1210 border: '1px solid rgba(217,119,87,0.25)'

1211 }}>

1212 <div style={{

1213 fontSize: 13,

1214 color: 'var(--cw-text-3)',

1215 marginBottom: 8,

1216 lineHeight: 1.5

1217 }}>

1218 Context is at <span style={{

1219 fontFamily: mono,

1220 fontWeight: 600,

1221 color: barColor

1222 }}>{fmt(totalTokens)} tokens</span>.

1223 Run <code style={{

1224 fontFamily: mono,

1225 background: 'var(--cw-track)',

1226 padding: '1px 4px',

1227 borderRadius: 3

1228 }}>/compact</code> to

1229 summarize older exchanges and free space for more work.

1230 </div>

1231 <div style={{

1232 display: 'flex',

1233 alignItems: 'center',

1234 gap: 8

1235 }}>

1236 <span style={{

1237 color: '#D97757',

1238 fontSize: 15,

1239 fontFamily: mono

1240 }}>❯</span>

1241 <span style={{

1242 fontSize: 15,

1243 fontFamily: mono,

1244 color: 'var(--cw-text-2)',

1245 flex: 1

1246 }}>

1247 {activeGate.text}

1248 </span>

1249 <button onClick={sendPrompt} style={{

1250 padding: '5px 12px',

1251 borderRadius: 5,

1252 border: 'none',

1253 background: '#D97757',

1254 color: '#fff',

1255 fontSize: 13,

1256 fontWeight: 600,

1257 cursor: 'pointer',

1258 flexShrink: 0

1259 }}>

1260 Run ↵

1261 </button>

1262 </div>

1263 </div>

1264 </div>}

1265 </div>

1266 

1267 {}

1268 <div style={{

1269 width: 300,

1270 flexShrink: 0,

1271 display: 'flex',

1272 flexDirection: 'column'

1273 }}>

1274 <div ref={detailRef} className="cw-scroll" style={{

1275 padding: '14px 16px',

1276 borderRadius: 10,

1277 background: 'var(--cw-surface)',

1278 border: '1px solid var(--cw-border)',

1279 flex: 1,

1280 minHeight: 0,

1281 overflowY: 'auto',

1282 display: 'flex',

1283 flexDirection: 'column',

1284 gap: 10

1285 }}>

1286 {hovEvent ? <div>

1287 <div style={{

1288 display: 'flex',

1289 alignItems: 'center',

1290 gap: 8,

1291 marginBottom: 8

1292 }}>

1293 <div style={{

1294 width: 10,

1295 height: 10,

1296 borderRadius: 3,

1297 background: hovEvent.color,

1298 opacity: 0.8

1299 }} />

1300 <span style={{

1301 fontSize: 16,

1302 fontWeight: 600

1303 }}>{hovEvent.label}</span>

1304 </div>

1305 <div style={{

1306 display: 'flex',

1307 width: 'fit-content',

1308 padding: '3px 8px',

1309 borderRadius: 4,

1310 marginBottom: 8,

1311 background: KIND_META[hovEvent.kind].badgeBg

1312 }}>

1313 <span style={{

1314 fontSize: 12,

1315 fontWeight: 600,

1316 color: KIND_META[hovEvent.kind].badgeColor

1317 }}>

1318 {KIND_META[hovEvent.kind].detail}

1319 </span>

1320 </div>

1321 {hovEvent.tokens > 0 && <div style={{

1322 fontSize: 14,

1323 fontFamily: mono,

1324 color: 'var(--cw-text-dim)',

1325 marginBottom: 6

1326 }}>

1327 {fmt(hovEvent.tokens)} tokens

1328 </div>}

1329 {hovEvent.subTokens > 0 && <div style={{

1330 fontSize: 14,

1331 fontFamily: mono,

1332 color: '#9B7BC4',

1333 marginBottom: 6

1334 }}>

1335 {fmt(hovEvent.subTokens)} tokens in the subagent's context

1336 </div>}

1337 <p style={{

1338 fontSize: 15,

1339 color: 'var(--cw-text-3)',

1340 lineHeight: 1.55,

1341 margin: 0

1342 }}>

1343 {renderWithCode(hovEvent.desc)}

1344 </p>

1345 <div style={{

1346 marginTop: 10,

1347 padding: '8px 10px',

1348 borderRadius: 6,

1349 background: hovEvent.vis === 'full' ? 'rgba(85,138,66,0.08)' : 'var(--cw-surface-2)',

1350 border: '1px solid ' + (hovEvent.vis === 'full' ? 'rgba(85,138,66,0.2)' : 'var(--cw-border)')

1351 }}>

1352 <div style={{

1353 display: 'flex',

1354 alignItems: 'center',

1355 gap: 6,

1356 marginBottom: 3

1357 }}>

1358 <span style={{

1359 fontSize: 13,

1360 color: hovEvent.vis === 'full' ? '#558A42' : 'var(--cw-text-dim)'

1361 }}>

1362 {hovEvent.vis === 'full' ? '●' : hovEvent.vis === 'brief' ? '◐' : '○'}

1363 </span>

1364 <span style={{

1365 fontSize: 12,

1366 fontWeight: 600,

1367 color: 'var(--cw-text-2)'

1368 }}>

1369 {VIS_META[hovEvent.vis].label}

1370 </span>

1371 </div>

1372 <div style={{

1373 fontSize: 13,

1374 color: 'var(--cw-text-dim)',

1375 lineHeight: 1.4

1376 }}>

1377 {VIS_META[hovEvent.vis].sub}

1378 </div>

1379 </div>

1380 {hovEvent.tip && <div style={{

1381 marginTop: 10,

1382 padding: '8px 10px',

1383 borderRadius: 6,

1384 background: 'rgba(85,138,66,0.06)',

1385 border: '1px solid rgba(85,138,66,0.15)'

1386 }}>

1387 <div style={{

1388 fontSize: 12,

1389 fontWeight: 600,

1390 color: '#558A42',

1391 marginBottom: 3,

1392 display: 'flex',

1393 alignItems: 'center',

1394 gap: 4

1395 }}>

1396 <span>💡</span> Save context

1397 </div>

1398 <div style={{

1399 fontSize: 13,

1400 color: 'var(--cw-text-3)',

1401 lineHeight: 1.5

1402 }}>

1403 {renderWithCode(hovEvent.tip)}

1404 </div>

1405 </div>}

1406 {hovEvent.link && <a href={hovEvent.link} style={{

1407 display: 'inline-block',

1408 marginTop: 10,

1409 fontSize: 13,

1410 color: '#D97757',

1411 textDecoration: 'none',

1412 borderBottom: '1px solid rgba(217,119,87,0.3)'

1413 }}>

1414 Learn more →

1415 </a>}

1416 </div> : <div style={{

1417 display: 'flex',

1418 flexDirection: 'column',

1419 alignItems: 'center',

1420 textAlign: 'center',

1421 gap: 4,

1422 padding: '12px 0 4px'

1423 }}>

1424 <div style={{

1425 fontSize: 22,

1426 opacity: 0.2

1427 }}>👁</div>

1428 <div style={{

1429 fontSize: 14,

1430 fontWeight: 500,

1431 color: 'var(--cw-text-dim)'

1432 }}>Hover or click any event</div>

1433 <div style={{

1434 fontSize: 12,

1435 color: 'var(--cw-text-faint)',

1436 lineHeight: 1.4,

1437 maxWidth: 200

1438 }}>

1439 Hover to preview. Click to pin so you can scroll.

1440 </div>

1441 </div>}

1442 

1443 <div style={{

1444 padding: '10px 12px',

1445 borderRadius: 8,

1446 background: 'rgba(217,119,87,0.05)',

1447 border: '1px solid rgba(217,119,87,0.12)'

1448 }}>

1449 <div style={{

1450 fontSize: 11,

1451 fontWeight: 700,

1452 color: '#D97757',

1453 textTransform: 'uppercase',

1454 letterSpacing: 0.5,

1455 marginBottom: 3

1456 }}>

1457 Key takeaway

1458 </div>

1459 <div style={{

1460 fontSize: 13,

1461 color: 'var(--cw-text-3)',

1462 lineHeight: 1.5

1463 }}>

1464 {takeaway}

1465 </div>

1466 </div>

1467 

1468 <div style={{

1469 padding: '10px 12px',

1470 borderRadius: 8,

1471 background: 'var(--cw-surface-2)',

1472 border: '1px solid var(--cw-border)'

1473 }}>

1474 <div style={{

1475 fontSize: 11,

1476 fontWeight: 700,

1477 color: 'var(--cw-text-dim)',

1478 textTransform: 'uppercase',

1479 letterSpacing: 0.5,

1480 marginBottom: 3

1481 }}>

1482 In your terminal you see

1483 </div>

1484 <div style={{

1485 fontSize: 13,

1486 color: 'var(--cw-text-3)',

1487 lineHeight: 1.5

1488 }}>

1489 {terminalView}

1490 </div>

1491 </div>

1492 </div>

1493 </div>

1494 </div>

1495 

1496 {}

1497 <div style={{

1498 padding: '10px 20px 14px',

1499 display: 'flex',

1500 alignItems: 'center',

1501 gap: 10

1502 }}>

1503 <button aria-label={time >= 1 ? 'Restart' : activeGate ? 'Continue' : playing ? 'Pause' : 'Play'} onClick={() => {

1504 if (time >= 1) {

1505 setTime(0);

1506 setGatesPassed(0);

1507 setSelIdx(null);

1508 setHovIdx(null);

1509 setPlaying(true);

1510 } else if (activeGate) sendPrompt(); else setPlaying(!playing);

1511 }} style={{

1512 width: 30,

1513 height: 30,

1514 borderRadius: 6,

1515 border: 'none',

1516 background: 'rgba(217,119,87,0.1)',

1517 color: '#D97757',

1518 cursor: 'pointer',

1519 fontSize: 15,

1520 fontWeight: 700,

1521 display: 'flex',

1522 alignItems: 'center',

1523 justifyContent: 'center'

1524 }}>

1525 {time >= 1 ? '↺' : playing ? '⏸' : '▶'}

1526 </button>

1527 <div style={{

1528 flex: 1,

1529 height: 3,

1530 borderRadius: 2,

1531 background: 'var(--cw-track)',

1532 overflow: 'hidden'

1533 }}>

1534 <div style={{

1535 width: time * 100 + '%',

1536 height: '100%',

1537 background: '#D97757',

1538 transition: 'width 0.1s linear'

1539 }} />

1540 </div>

1541 <span style={{

1542 fontSize: 12,

1543 fontFamily: mono,

1544 color: 'var(--cw-text-faint)',

1545 minWidth: 30

1546 }}>

1547 {Math.round(time * 100)}%

1548 </span>

1549 <button onClick={toggleFullscreen} aria-label={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} style={{

1550 width: 28,

1551 height: 28,

1552 borderRadius: 6,

1553 border: '1px solid var(--cw-border)',

1554 background: 'var(--cw-surface)',

1555 color: 'var(--cw-text-dim)',

1556 cursor: 'pointer',

1557 fontSize: 15,

1558 flexShrink: 0,

1559 marginLeft: 4,

1560 display: 'flex',

1561 alignItems: 'center',

1562 justifyContent: 'center'

1563 }}>

1564 {isFullscreen ? '⤡' : '⛶'}

1565 </button>

1566 </div>

1567 </div>

1568 </>;

1569};

1570 

1571La fenêtre de contexte de Claude Code contient tout ce que Claude sait sur votre session : vos instructions, les fichiers qu'il lit, ses propres réponses, et le contenu qui n'apparaît jamais dans votre terminal. La chronologie ci-dessous joue une session complète du démarrage à la compaction : ce qui se charge avant que vous ne tapiez, ce que chaque lecture de fichier, règle et hook ajoute pendant que Claude travaille, et comment un sous-agent garde les lectures volumineuses en dehors de votre contexte. Consultez [la description écrite](#what-the-timeline-shows) pour le même contenu sous forme de liste.

1572 

1573<ContextWindow />

1574 

1575<h2 id="what-the-timeline-shows">

1576 Ce que la chronologie montre

1577</h2>

12 1578 

13La session parcourt un flux réaliste avec des comptages de jetons représentatifs :1579La session parcourt un flux réaliste avec des comptages de jetons représentatifs :

14 1580 


17* **L'invite de suivi** : un [sous-agent](/fr/sub-agents) gère la recherche dans sa propre fenêtre de contexte séparée, de sorte que les lectures de fichiers volumineux restent en dehors de la vôtre. Seul le résumé et une petite remorque de métadonnées reviennent.1583* **L'invite de suivi** : un [sous-agent](/fr/sub-agents) gère la recherche dans sa propre fenêtre de contexte séparée, de sorte que les lectures de fichiers volumineux restent en dehors de la vôtre. Seul le résumé et une petite remorque de métadonnées reviennent.

18* **À la fin** : `/compact` remplace la conversation par un résumé structuré. La plupart du contenu de démarrage se recharge automatiquement ; le tableau ci-dessous montre ce qui se passe pour chaque mécanisme.1584* **À la fin** : `/compact` remplace la conversation par un résumé structuré. La plupart du contenu de démarrage se recharge automatiquement ; le tableau ci-dessous montre ce qui se passe pour chaque mécanisme.

19 1585 

20## Ce qui survit à la compaction1586<h2 id="what-survives-compaction">

1587 Ce qui survit à la compaction

1588</h2>

21 1589 

22Quand une longue session se compacte, Claude Code résume l'historique de la conversation pour l'adapter à la fenêtre de contexte. Ce qui arrive à vos instructions dépend de la façon dont elles ont été chargées :1590Quand une longue session se compacte, Claude Code résume l'historique de la conversation pour l'adapter à la fenêtre de contexte. Ce qui arrive à vos instructions dépend de la façon dont elles ont été chargées :

23 1591 


35 1603 

36Les corps de compétences sont réinjectés après compaction, mais les grandes compétences sont tronquées pour s'adapter au plafond par compétence, et les compétences invoquées les plus anciennes sont supprimées une fois le budget total dépassé. La troncature conserve le début du fichier, donc mettez les instructions les plus importantes près du haut de `SKILL.md`.1604Les corps de compétences sont réinjectés après compaction, mais les grandes compétences sont tronquées pour s'adapter au plafond par compétence, et les compétences invoquées les plus anciennes sont supprimées une fois le budget total dépassé. La troncature conserve le début du fichier, donc mettez les instructions les plus importantes près du haut de `SKILL.md`.

37 1605 

38## Vérifiez votre propre session1606<h2 id="when-your-context-fills-up">

1607 Quand votre contexte se remplit

1608</h2>

1609 

1610Claude Code se compacte automatiquement à mesure que vous approchez de la limite, de sorte qu'une fenêtre de contexte complète ne termine pas votre session. La passe automatique fonctionne de la même manière que l'étape `/compact` dans la chronologie. Consultez [Quand le contexte se remplit](/fr/how-claude-code-works#when-context-fills-up) pour voir ce qu'elle préserve.

1611 

1612Vous pouvez également agir avant que la passe automatique ne s'exécute :

1613 

1614* **Compacter avec un focus** : exécutez `/compact` avec des instructions, comme `/compact focus on the auth bug fix`, avant de commencer une longue nouvelle tâche. Le résumé conserve ce que vous choisissez au lieu de ce que la passe automatique devine être important.

1615* **Effacer entre les tâches** : exécutez `/clear` quand vous passez à un travail non lié. L'ancienne conversation encombre les fichiers dont vous avez besoin ensuite et coûte des jetons à chaque message.

1616* **Déléguer les lectures volumineuses** : envoyez la recherche à un [sous-agent](/fr/sub-agents) de sorte que le contenu du fichier reste dans sa fenêtre de contexte, pas dans la vôtre.

1617 

1618Si vous avez besoin d'une fenêtre plus grande plutôt qu'une conversation plus petite, Fable 5, Opus 4.6 et versions ultérieures, et Sonnet 4.6 supportent une fenêtre de contexte de 1 million de jetons. Consultez [Contexte étendu](/fr/model-config#extended-context) pour la disponibilité par plan et comment sélectionner une variante de modèle `[1m]`. La compaction fonctionne de la même manière à la limite plus grande.

1619 

1620<h2 id="check-your-own-session">

1621 Vérifiez votre propre session

1622</h2>

39 1623 

40La visualisation utilise des nombres représentatifs. Pour voir votre utilisation réelle du contexte à tout moment, exécutez `/context` pour une ventilation en direct par catégorie avec des suggestions d'optimisation. Exécutez `/memory` pour vérifier quels fichiers CLAUDE.md et de mémoire automatique se sont chargés au démarrage.1624La visualisation utilise des nombres représentatifs. Pour voir votre utilisation réelle du contexte à tout moment, exécutez `/context` pour une ventilation en direct par catégorie avec des suggestions d'optimisation. Exécutez `/memory` pour vérifier quels fichiers CLAUDE.md et de mémoire automatique se sont chargés au démarrage.

41 1625 

42## Ressources connexes1626<h2 id="related-resources">

1627 Ressources connexes

1628</h2>

43 1629 

44Pour une couverture plus approfondie des fonctionnalités présentées dans la chronologie, consultez ces pages :1630Pour une couverture plus approfondie des fonctionnalités présentées dans la chronologie, consultez ces pages :

45 1631 

costs.md +4 −2

Details

35 35 

36Sur un plan Pro, Max, Team ou Enterprise, `/usage` affiche également une ventilation de ce qui compte par rapport à vos limites de plan. Il attribue l'utilisation récente aux skills, subagents, plugins et serveurs MCP individuels, chacun étant affiché en pourcentage du total. Appuyez sur `d` ou `w` pour basculer entre les 24 dernières heures et les 7 derniers jours. Les chiffres sont approximatifs et calculés à partir de l'historique des sessions locales sur cette machine, donc l'utilisation d'autres appareils ou de claude.ai n'est pas incluse.36Sur un plan Pro, Max, Team ou Enterprise, `/usage` affiche également une ventilation de ce qui compte par rapport à vos limites de plan. Il attribue l'utilisation récente aux skills, subagents, plugins et serveurs MCP individuels, chacun étant affiché en pourcentage du total. Appuyez sur `d` ou `w` pour basculer entre les 24 dernières heures et les 7 derniers jours. Les chiffres sont approximatifs et calculés à partir de l'historique des sessions locales sur cette machine, donc l'utilisation d'autres appareils ou de claude.ai n'est pas incluse.

37 37 

38Dans l'[extension VS Code](/fr/vs-code#check-account-and-usage), la même ventilation apparaît dans la boîte de dialogue Compte et utilisation avec un bouton bascule Jour et Semaine. Nécessite Claude Code v2.1.174 ou version ultérieure.

39 

38<h2 id="managing-costs-for-teams">40<h2 id="managing-costs-for-teams">

39 Gérer les coûts pour les équipes41 Gérer les coûts pour les équipes

40</h2>42</h2>


85* Utilisez Sonnet pour les coéquipiers. Il équilibre la capacité et le coût pour les tâches de coordination.87* Utilisez Sonnet pour les coéquipiers. Il équilibre la capacité et le coût pour les tâches de coordination.

86* Gardez les équipes petites. Chaque coéquipier exécute sa propre fenêtre de contexte, donc l'utilisation des tokens est à peu près proportionnelle à la taille de l'équipe.88* Gardez les équipes petites. Chaque coéquipier exécute sa propre fenêtre de contexte, donc l'utilisation des tokens est à peu près proportionnelle à la taille de l'équipe.

87* Gardez les invites de génération concentrées. Les coéquipiers chargent CLAUDE.md, les serveurs MCP et les skills automatiquement, mais tout ce qui se trouve dans l'invite de génération s'ajoute à leur contexte dès le départ.89* Gardez les invites de génération concentrées. Les coéquipiers chargent CLAUDE.md, les serveurs MCP et les skills automatiquement, mais tout ce qui se trouve dans l'invite de génération s'ajoute à leur contexte dès le départ.

88* Nettoyez les équipes lorsque le travail est terminé. Les coéquipiers actifs continuent à consommer des tokens même s'ils sont inactifs.90* Arrêtez les coéquipiers lorsque leur travail est terminé. Chaque coéquipier actif continue à consommer des tokens jusqu'à ce qu'il se termine ou que la session se termine.

89* Les équipes d'agents sont désactivées par défaut. Définissez `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` dans votre [settings.json](/fr/settings) ou dans l'environnement pour les activer. Voir [activer les équipes d'agents](/fr/agent-teams#enable-agent-teams).91* Les équipes d'agents sont désactivées par défaut. Définissez `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` dans votre [settings.json](/fr/settings) ou dans l'environnement pour les activer. Voir [activer les équipes d'agents](/fr/agent-teams#enable-agent-teams).

90 92 

91<h2 id="reduce-token-usage">93<h2 id="reduce-token-usage">


196 Ajuster la réflexion étendue198 Ajuster la réflexion étendue

197</h3>199</h3>

198 200 

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

200 202 

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

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

data-usage.md +3 −3

Details

62**Utilisateurs commerciaux (Team, Enterprise et API)** :62**Utilisateurs commerciaux (Team, Enterprise et API)** :

63 63 

64* Standard : période de conservation de 30 jours64* Standard : période de conservation de 30 jours

65* [Conservation zéro des données](/fr/zero-data-retention) : disponible pour Claude Code sur Claude for Enterprise. La conservation zéro des données est activée par organisation ; chaque nouvelle organisation doit avoir la conservation zéro des données activée séparément par votre équipe de compte65* [Conservation zéro des données](/fr/zero-data-retention) : disponible pour Claude Code sur Claude for Enterprise. La conservation zéro des données n'est pas incluse dans le plan Enterprise standard ; elle est activée par organisation après confirmation de l'admissibilité par votre équipe de compte

66* Mise en cache locale : les clients Claude Code stockent les transcriptions de session localement en texte brut sous `~/.claude/projects/` pendant 30 jours par défaut pour permettre la reprise de session. Ajustez la période avec `cleanupPeriodDays`. Consultez [données d'application](/fr/claude-directory#application-data) pour savoir ce qui est stocké et comment l'effacer.66* Mise en cache locale : les clients Claude Code stockent les transcriptions de session localement en texte brut sous `~/.claude/projects/` pendant 30 jours par défaut pour permettre la reprise de session. Ajustez la période avec `cleanupPeriodDays`. Consultez [données d'application](/fr/claude-directory#application-data) pour savoir ce qui est stocké et comment l'effacer.

67 67 

68Vous pouvez supprimer les sessions individuelles de Claude Code sur le web à tout moment. La suppression d'une session supprime définitivement les données d'événement de la session. Pour obtenir des instructions sur la suppression des sessions, consultez [Supprimer les sessions](/fr/claude-code-on-the-web#delete-sessions).68Vous pouvez supprimer les sessions individuelles de Claude Code sur le web à tout moment. La suppression d'une session supprime définitivement les données d'événement de la session. Pour obtenir des instructions sur la suppression des sessions, consultez [Supprimer les sessions](/fr/claude-code-on-the-web#delete-sessions).


83 83 

84Le diagramme ci-dessous montre comment Claude Code se connecte aux services externes lors de l'installation et du fonctionnement normal. Les lignes pleines indiquent les connexions requises, tandis que les lignes pointillées représentent les flux de données optionnels ou initiés par l'utilisateur.84Le diagramme ci-dessous montre comment Claude Code se connecte aux services externes lors de l'installation et du fonctionnement normal. Les lignes pleines indiquent les connexions requises, tandis que les lignes pointillées représentent les flux de données optionnels ou initiés par l'utilisateur.

85 85 

86<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/claude-code-data-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=5b1131530bdfdd415700a0cb4d4070c4" alt="Diagramme montrant les connexions externes de Claude Code : l'installation/mise à jour se connecte au serveur de distribution, et les demandes des utilisateurs se connectent aux services Anthropic, y compris l'authentification Console, l'API publique, et optionnellement les métriques, Sentry et les rapports de bogues" width="720" height="520" data-path="images/claude-code-data-flow.svg" />86<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/claude-code-data-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=5b1131530bdfdd415700a0cb4d4070c4" alt="Diagramme montrant les connexions externes de Claude Code : l'installation/mise à jour se connecte au serveur de distribution, et les demandes des utilisateurs se connectent aux services Anthropic, y compris l'authentification Console, l'API publique, et optionnellement les métriques et Sentry. Les commentaires envoyés avec /feedback vont vers Google Cloud Storage et créent optionnellement un problème GitHub" width="720" height="520" data-path="images/claude-code-data-flow.svg" />

87 87 

88Claude Code s'exécute localement. Pour interagir avec le LLM, Claude Code envoie des données sur le réseau. Ces données incluent tous les invites utilisateur et les sorties du modèle, chiffrées en transit via TLS 1.2+. Claude Code est compatible avec la plupart des VPN et proxies LLM populaires.88Claude Code s'exécute localement. Pour interagir avec le LLM, Claude Code envoie des données sur le réseau. Ces données incluent tous les invites utilisateur et les sorties du modèle, chiffrées en transit via TLS 1.2+. Claude Code est compatible avec la plupart des VPN et proxies LLM populaires.

89 89 


119 119 

120Claude Code se connecte à partir des machines des utilisateurs à Sentry pour la journalisation des erreurs opérationnelles. Les données sont chiffrées en transit à l'aide de TLS et au repos à l'aide du chiffrement AES 256 bits. Lisez-en plus dans la [documentation de sécurité Sentry](https://sentry.io/security/). Pour refuser la journalisation des erreurs, définissez la variable d'environnement `DISABLE_ERROR_REPORTING`.120Claude Code se connecte à partir des machines des utilisateurs à Sentry pour la journalisation des erreurs opérationnelles. Les données sont chiffrées en transit à l'aide de TLS et au repos à l'aide du chiffrement AES 256 bits. Lisez-en plus dans la [documentation de sécurité Sentry](https://sentry.io/security/). Pour refuser la journalisation des erreurs, définissez la variable d'environnement `DISABLE_ERROR_REPORTING`.

121 121 

122Lorsque vous exécutez la commande `/feedback`, une copie de votre historique de conversation complet, y compris le code, est envoyée à Anthropic. Avant de soumettre, vous choisissez la quantité d'historique à inclure : la session actuelle uniquement, qui est la valeur par défaut, ou également d'autres sessions du même projet au cours des 24 dernières heures ou 7 derniers jours. Les données sont chiffrées en transit via TLS. Optionnellement, un problème GitHub est créé dans le référentiel public. Pour refuser, définissez la variable d'environnement `DISABLE_FEEDBACK_COMMAND` sur `1`.122Lorsque vous exécutez la commande `/feedback`, une copie de votre historique de conversation complet, y compris le code, est envoyée à Anthropic. Avant de soumettre, vous choisissez la quantité d'historique à inclure : la session actuelle uniquement, qui est la valeur par défaut, ou également d'autres sessions du même projet au cours des 24 dernières heures ou 7 derniers jours. Les données sont chiffrées en transit via TLS et stockées dans Google Cloud Storage, qui chiffre les données stockées au repos par défaut. Optionnellement, un problème GitHub est créé dans le référentiel public. Pour refuser, définissez la variable d'environnement `DISABLE_FEEDBACK_COMMAND` sur `1`.

123 123 

124Lorsque vous utilisez un fournisseur tiers tel que Bedrock ou Vertex, ou que vous n'avez pas d'identifiants Anthropic configurés, `/feedback` écrit le rapport dans une archive locale sous `~/.claude/feedback-bundles/` au lieu de l'envoyer à Anthropic. Les modèles de clé API et de jeton connus sont masqués avant que l'archive ne soit écrite. Rien ne quitte votre machine jusqu'à ce que vous envoyiez ce fichier à votre représentant du compte Anthropic ou que vous le joigniez à une demande d'assistance.124Lorsque vous utilisez un fournisseur tiers tel que Bedrock ou Vertex, ou que vous n'avez pas d'identifiants Anthropic configurés, `/feedback` écrit le rapport dans une archive locale sous `~/.claude/feedback-bundles/` au lieu de l'envoyer à Anthropic. Les modèles de clé API et de jeton connus sont masqués avant que l'archive ne soit écrite. Rien ne quitte votre machine jusqu'à ce que vous envoyiez ce fichier à votre représentant du compte Anthropic ou que vous le joigniez à une demande d'assistance.

125 125 

Details

78 Tester avec une configuration propre78 Tester avec une configuration propre

79</h2>79</h2>

80 80 

81Si les vérifications ciblées n'isolent pas la cause, ou si votre configuration est dans un état inconnu, comparez avec une session qui ne charge rien de votre configuration habituelle. Pointez [`CLAUDE_CONFIG_DIR`](/fr/env-vars) vers un répertoire vide pour contourner tout ce qui se trouve sous `~/.claude`, et lancez depuis un répertoire qui n'a pas de dossier `.claude`, `.mcp.json` ou `CLAUDE.md` afin que la configuration du projet soit également ignorée.81{/* min-version: 2.1.169 */}Commencez par [`claude --safe-mode`](/fr/cli-reference#cli-flags), qui lance une session avec toutes les personnalisations désactivées, y compris `CLAUDE.md`, les skills, les plugins, les hooks, les serveurs MCP, et les commandes et agents personnalisés. L'authentification, la sélection du modèle, les outils intégrés et les permissions fonctionnent normalement. Si le problème disparaît en mode sécurisé, l'une de ces surfaces en est la cause ; utilisez les vérifications ciblées ci-dessus pour trouver laquelle. Les paramètres gérés déployés par votre organisation s'appliquent toujours partiellement, donc les hooks configurés par la politique et la ligne d'état s'exécutent même en mode sécurisé.

82 

83Si le problème persiste en mode sécurisé, ou si vos paramètres eux-mêmes sont suspects, comparez avec une session qui ne charge rien de votre configuration habituelle. Pointez [`CLAUDE_CONFIG_DIR`](/fr/env-vars) vers un répertoire vide pour contourner tout ce qui se trouve sous `~/.claude`, et lancez depuis un répertoire qui n'a pas de dossier `.claude`, `.mcp.json` ou `CLAUDE.md` afin que la configuration du projet soit également ignorée.

82 84 

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

84cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude86cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude


127* **[Paramètres](/fr/settings)** : ordre de précédence et liste complète des clés129* **[Paramètres](/fr/settings)** : ordre de précédence et liste complète des clés

128* **[Référence des hooks](/fr/hooks)** : noms d'événements, charges utiles et format de sortie `--debug hooks`130* **[Référence des hooks](/fr/hooks)** : noms d'événements, charges utiles et format de sortie `--debug hooks`

129* **[MCP](/fr/mcp)** : configuration du serveur, approbation et sortie `/mcp`131* **[MCP](/fr/mcp)** : configuration du serveur, approbation et sortie `/mcp`

130* **[Troubleshoot installation and login](/fr/troubleshoot-install)** : `command not found`, PATH et problèmes d'authentification132* **[Dépannage de l'installation et de la connexion](/fr/troubleshoot-install)** : `command not found`, PATH et problèmes d'authentification

131* **[Troubleshooting](/fr/troubleshooting)** : performance, blocages et problèmes de recherche133* **[Dépannage](/fr/troubleshooting)** : performance, blocages et problèmes de recherche

desktop.md +23 −21

Details

67 67 

68La zone de prompt supporte deux façons d'apporter du contexte externe :68La zone de prompt supporte deux façons d'apporter du contexte externe :

69 69 

70* **Fichiers @mention** : tapez `@` suivi d'un nom de fichier pour ajouter un fichier au contexte de la conversation. Claude peut alors lire et référencer ce fichier. @mention n'est pas disponible dans les sessions distantes.70* **Fichiers @mention** : tapez `@` suivi d'un nom de fichier pour ajouter un fichier au contexte de la conversation. Claude peut alors lire et référencer ce fichier. @mention n'est pas disponible dans les sessions cloud.

71* **Joindre des fichiers** : joignez des images, des PDF et d'autres fichiers à votre prompt en utilisant le bouton de pièce jointe, ou glissez-déposez les fichiers directement dans le prompt. Ceci est utile pour partager des captures d'écran de bugs, des maquettes de conception ou des documents de référence.71* **Joindre des fichiers** : joignez des images, des PDF et d'autres fichiers à votre prompt en utilisant le bouton de pièce jointe, ou glissez-déposez les fichiers directement dans le prompt. Ceci est utile pour partager des captures d'écran de bugs, des maquettes de conception ou des documents de référence.

72 72 

73<h3 id="choose-a-permission-mode">73<h3 id="choose-a-permission-mode">


77Les modes de permission contrôlent le niveau d'autonomie de Claude pendant une session : s'il demande avant de modifier des fichiers, d'exécuter des commandes ou les deux. Vous pouvez changer de mode à tout moment en utilisant le sélecteur de mode à côté du bouton d'envoi. Commencez par Demander les permissions pour voir exactement ce que Claude fait, puis passez à Accepter automatiquement les modifications ou Plan mode à mesure que vous vous sentez à l'aise.77Les modes de permission contrôlent le niveau d'autonomie de Claude pendant une session : s'il demande avant de modifier des fichiers, d'exécuter des commandes ou les deux. Vous pouvez changer de mode à tout moment en utilisant le sélecteur de mode à côté du bouton d'envoi. Commencez par Demander les permissions pour voir exactement ce que Claude fait, puis passez à Accepter automatiquement les modifications ou Plan mode à mesure que vous vous sentez à l'aise.

78 78 

79| Mode | Clé de paramètres | Comportement |79| Mode | Clé de paramètres | Comportement |

80| ---------------------------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |80| ---------------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

81| **Demander les permissions** | `default` | Claude demande avant de modifier des fichiers ou d'exécuter des commandes. Vous voyez une différence et pouvez accepter ou rejeter chaque modification. Recommandé pour les nouveaux utilisateurs. |81| **Demander les permissions** | `default` | Claude demande avant de modifier des fichiers ou d'exécuter des commandes. Vous voyez une différence et pouvez accepter ou rejeter chaque modification. Recommandé pour les nouveaux utilisateurs. |

82| **Accepter automatiquement les modifications** | `acceptEdits` | Claude accepte automatiquement les modifications de fichiers et les commandes courantes du système de fichiers comme `mkdir`, `touch` et `mv`, mais demande toujours avant d'exécuter les autres commandes du terminal. Utilisez ceci quand vous faites confiance aux modifications de fichiers et voulez une itération plus rapide. |82| **Accepter automatiquement les modifications** | `acceptEdits` | Claude accepte automatiquement les modifications de fichiers et les commandes courantes du système de fichiers comme `mkdir`, `touch` et `mv`, mais demande toujours avant d'exécuter les autres commandes du terminal. Utilisez ceci quand vous faites confiance aux modifications de fichiers et voulez une itération plus rapide. |

83| **Plan mode** | `plan` | Claude lit les fichiers et exécute les commandes pour explorer, puis propose un plan sans modifier votre code source. Bon pour les tâches complexes où vous voulez examiner l'approche en premier. |83| **Plan mode** | `plan` | Claude lit les fichiers et exécute les commandes pour explorer, puis propose un plan sans modifier votre code source. Bon pour les tâches complexes où vous voulez examiner l'approche en premier. |

84| **Auto** | `auto` | Claude exécute toutes les actions avec des vérifications de sécurité en arrière-plan qui vérifient l'alignement avec votre demande. Réduit les invites de permission tout en maintenant la surveillance. Activez dans vos Paramètres → Claude Code. Voir [conditions de disponibilité](#auto-mode-availability) ci-dessous. |84| **Auto** | `auto` | Claude exécute toutes les actions avec des vérifications de sécurité en arrière-plan qui vérifient l'alignement avec votre demande. Réduit les invites de permission tout en maintenant la surveillance. Activez dans vos Paramètres → Claude Code. Voir [conditions de disponibilité](#auto-mode-availability) ci-dessous. |

85| **Contourner les permissions** | `bypassPermissions` | Claude s'exécute sans aucune invite de permission, équivalent à `--dangerously-skip-permissions` dans la CLI. Activez dans vos Paramètres → Claude Code sous « Autoriser le mode de contournement des permissions ». Utilisez uniquement dans les conteneurs sandboxés ou les machines virtuelles. Les administrateurs d'entreprise peuvent désactiver cette option. |85| **Contourner les permissions** | `bypassPermissions` | Claude s'exécute sans aucune invite de permission, sauf celles forcées par des [règles d'ask](/fr/permissions#manage-permissions) explicites ; équivalent à `--dangerously-skip-permissions` dans la CLI. Activez dans vos Paramètres → Claude Code sous « Autoriser le mode de contournement des permissions ». Utilisez uniquement dans les conteneurs sandboxés ou les machines virtuelles. Les administrateurs d'entreprise peuvent désactiver cette option. |

86 86 

87Le mode de permission `dontAsk` est disponible uniquement dans la [CLI](/fr/permission-modes#allow-only-pre-approved-tools-with-dontask-mode).87Le mode de permission `dontAsk` est disponible uniquement dans la [CLI](/fr/permission-modes#allow-only-pre-approved-tools-with-dontask-mode).

88 88 


94 Commencez les tâches complexes en Plan mode pour que Claude trace une approche avant de faire des modifications. Une fois que vous approuvez le plan, passez à Accepter automatiquement les modifications ou Demander les permissions pour l'exécuter. Voir [explorer d'abord, puis planifier, puis coder](/fr/best-practices#explore-first-then-plan-then-code) pour plus d'informations sur ce flux de travail.94 Commencez les tâches complexes en Plan mode pour que Claude trace une approche avant de faire des modifications. Une fois que vous approuvez le plan, passez à Accepter automatiquement les modifications ou Demander les permissions pour l'exécuter. Voir [explorer d'abord, puis planifier, puis coder](/fr/best-practices#explore-first-then-plan-then-code) pour plus d'informations sur ce flux de travail.

95</Tip>95</Tip>

96 96 

97Les sessions distantes supportent Accepter automatiquement les modifications et Plan mode. Demander les permissions n'est pas disponible car les sessions distantes acceptent automatiquement les modifications de fichiers par défaut, et Contourner les permissions n'est pas disponible car l'environnement distant est déjà sandboxé.97Les sessions cloud supportent Accepter automatiquement les modifications, Plan mode et Auto mode. Accepter automatiquement les modifications correspond au mode `default` : les sessions cloud pré-approuvent les modifications de fichiers, donc le sélecteur affiche Accepter automatiquement les modifications au lieu de Demander les permissions. Contourner les permissions n'est pas disponible car l'environnement cloud est déjà sandboxé.

98 98 

99Les administrateurs d'entreprise peuvent restreindre les modes de permission disponibles. Voir [configuration d'entreprise](#enterprise-configuration) pour les détails.99Les administrateurs d'entreprise peuvent restreindre les modes de permission disponibles. Voir [configuration d'entreprise](#enterprise-configuration) pour les détails.

100 100 


403 Connecter les outils externes403 Connecter les outils externes

404</h3>404</h3>

405 405 

406Pour les sessions locales et [SSH](#ssh-sessions), cliquez sur le bouton **+** à côté de la zone de prompt et sélectionnez **Connecteurs** pour ajouter des intégrations comme Google Calendar, Slack, GitHub, Linear, Notion et bien d'autres. Vous pouvez ajouter des connecteurs avant ou pendant une session. Le bouton **+** n'est pas disponible dans les sessions distantes, mais les [routines](/fr/routines) configurent les connecteurs au moment de la création de la routine.406Pour les sessions locales et [SSH](#ssh-sessions), cliquez sur le bouton **+** à côté de la zone de prompt et sélectionnez **Connecteurs** pour ajouter des intégrations comme Google Calendar, Slack, GitHub, Linear, Notion et bien d'autres. Vous pouvez ajouter des connecteurs avant ou pendant une session. Le bouton **+** n'est pas disponible dans les sessions cloud, mais les [routines](/fr/routines) configurent les connecteurs au moment de la création de la routine.

407 407 

408Pour gérer ou déconnecter les connecteurs, allez à Paramètres → Connecteurs dans l'application de bureau, ou sélectionnez **Gérer les connecteurs** à partir du menu Connecteurs dans la zone de prompt.408Pour gérer ou déconnecter les connecteurs, allez à Paramètres → Connecteurs dans l'application de bureau, ou sélectionnez **Gérer les connecteurs** à partir du menu Connecteurs dans la zone de prompt.

409 409 


425 425 

426Pour les sessions locales et [SSH](#ssh-sessions), cliquez sur le bouton **+** à côté de la zone de prompt et sélectionnez **Plugins** pour voir vos plugins installés et leurs skills. Pour ajouter un plugin, sélectionnez **Ajouter un plugin** à partir du sous-menu pour ouvrir le navigateur de plugins, qui affiche les plugins disponibles à partir de vos [marketplaces](/fr/plugin-marketplaces) configurés, y compris le marketplace officiel d'Anthropic. Sélectionnez **Gérer les plugins** pour activer, désactiver ou désinstaller les plugins.426Pour les sessions locales et [SSH](#ssh-sessions), cliquez sur le bouton **+** à côté de la zone de prompt et sélectionnez **Plugins** pour voir vos plugins installés et leurs skills. Pour ajouter un plugin, sélectionnez **Ajouter un plugin** à partir du sous-menu pour ouvrir le navigateur de plugins, qui affiche les plugins disponibles à partir de vos [marketplaces](/fr/plugin-marketplaces) configurés, y compris le marketplace officiel d'Anthropic. Sélectionnez **Gérer les plugins** pour activer, désactiver ou désinstaller les plugins.

427 427 

428Les plugins peuvent être limités à votre compte utilisateur, un projet spécifique ou local uniquement. Si votre organisation gère les plugins de manière centralisée, ces plugins sont disponibles dans les sessions de bureau de la même manière qu'ils le sont dans la CLI. Les plugins ne sont pas disponibles pour les sessions distantes. Pour la référence complète des plugins, y compris la création de vos propres plugins, voir [plugins](/fr/plugins).428Les plugins peuvent être limités à votre compte utilisateur, un projet spécifique ou local uniquement. Si votre organisation gère les plugins de manière centralisée, ces plugins sont disponibles dans les sessions de bureau de la même manière qu'ils le sont dans la CLI. Les plugins ne sont pas disponibles pour les sessions cloud. Pour la référence complète des plugins, y compris la création de vos propres plugins, voir [plugins](/fr/plugins).

429 429 

430<h3 id="configure-preview-servers">430<h3 id="configure-preview-servers">

431 Configurer les serveurs d'aperçu431 Configurer les serveurs d'aperçu


487| `program` | string | Un script à exécuter avec `node`. Voir [quand utiliser `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |487| `program` | string | Un script à exécuter avec `node`. Voir [quand utiliser `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |

488| `args` | string\[] | Arguments passés à `program`. Utilisé uniquement quand `program` est défini |488| `args` | string\[] | Arguments passés à `program`. Utilisé uniquement quand `program` est défini |

489 489 

490<a id="when-to-use-program-vs-runtimeexecutable" />

491 

490<h5 id="when-to-use-program-vs-runtimeexecutable">492<h5 id="when-to-use-program-vs-runtimeexecutable">

491 Quand utiliser `program` vs `runtimeExecutable`493 Quand utiliser `program` vs `runtimeExecutable`

492</h5>494</h5>


598 600 

599Pour définir les variables d'environnement pour les sessions locales et les serveurs de développement sur n'importe quelle plateforme, ouvrez la liste déroulante d'environnement dans la zone de prompt, survolez **Local** et cliquez sur l'icône d'engrenage pour ouvrir l'éditeur d'environnement local. Les variables que vous enregistrez ici sont stockées chiffrées sur votre machine et s'appliquent à chaque session locale et serveur d'aperçu que vous démarrez. Vous pouvez également ajouter des variables à la clé `env` dans votre fichier `~/.claude/settings.json`, bien que celles-ci n'atteignent que les sessions Claude et non les serveurs de développement. Voir [variables d'environnement](/fr/env-vars) pour la liste complète des variables supportées.601Pour définir les variables d'environnement pour les sessions locales et les serveurs de développement sur n'importe quelle plateforme, ouvrez la liste déroulante d'environnement dans la zone de prompt, survolez **Local** et cliquez sur l'icône d'engrenage pour ouvrir l'éditeur d'environnement local. Les variables que vous enregistrez ici sont stockées chiffrées sur votre machine et s'appliquent à chaque session locale et serveur d'aperçu que vous démarrez. Vous pouvez également ajouter des variables à la clé `env` dans votre fichier `~/.claude/settings.json`, bien que celles-ci n'atteignent que les sessions Claude et non les serveurs de développement. Voir [variables d'environnement](/fr/env-vars) pour la liste complète des variables supportées.

600 602 

601[La réflexion étendue](/fr/model-config#extended-thinking) est activée par défaut, ce qui améliore les performances sur les tâches de raisonnement complexe mais utilise des tokens supplémentaires. Pour désactiver complètement la réflexion, définissez `MAX_THINKING_TOKENS` à `0` dans l'éditeur d'environnement local. Sur les modèles avec [raisonnement adaptatif](/fr/model-config#adjust-effort-level), toute autre valeur `MAX_THINKING_TOKENS` est ignorée car le raisonnement adaptatif contrôle la profondeur de la réflexion à la place. Sur Opus 4.6 et Sonnet 4.6, définissez `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` à `1` pour utiliser un budget de réflexion fixe ; Opus 4.7 et versions ultérieures utilisent toujours le raisonnement adaptatif et n'ont pas de mode de budget fixe.603[La réflexion étendue](/fr/model-config#extended-thinking) est activée par défaut, ce qui améliore les performances sur les tâches de raisonnement complexe mais utilise des tokens supplémentaires. Pour désactiver la réflexion, définissez `MAX_THINKING_TOKENS` à `0` dans l'éditeur d'environnement local ; cela n'a aucun effet sur Fable 5, qui utilise toujours la réflexion étendue. Sur les [fournisseurs tiers](/fr/third-party-integrations), `0` omet le paramètre `thinking` à la place, et les modèles de raisonnement adaptatif peuvent toujours réfléchir. Sur les modèles avec [raisonnement adaptatif](/fr/model-config#adjust-effort-level), toute autre valeur `MAX_THINKING_TOKENS` est ignorée car le raisonnement adaptatif contrôle la profondeur de la réflexion à la place. Sur Opus 4.6 et Sonnet 4.6, définissez `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` à `1` pour utiliser un budget de réflexion fixe ; Opus 4.7 et versions ultérieures utilisent toujours le raisonnement adaptatif et n'ont pas de mode de budget fixe.

602 604 

603<h3 id="remote-sessions">605<h3 id="cloud-sessions">

604 Sessions distantes606 Sessions distantes

605</h3>607</h3>

606 608 


710 712 

711Les équipes informatiques peuvent gérer l'application de bureau via MDM sur macOS ou la politique de groupe sur Windows. Les politiques disponibles incluent l'activation ou la désactivation de la fonctionnalité Claude Code, le contrôle des mises à jour automatiques et la définition d'une URL de déploiement personnalisée.713Les équipes informatiques peuvent gérer l'application de bureau via MDM sur macOS ou la politique de groupe sur Windows. Les politiques disponibles incluent l'activation ou la désactivation de la fonctionnalité Claude Code, le contrôle des mises à jour automatiques et la définition d'une URL de déploiement personnalisée.

712 714 

713* **macOS** : configurez via le domaine de préférence `com.anthropic.Claude` en utilisant des outils comme Jamf ou Kandji715* **macOS** : configurez via le domaine de préférence `com.anthropic.claudefordesktop` en utilisant des outils comme Jamf ou Kandji

714* **Windows** : configurez via le registre à `SOFTWARE\Policies\Claude`716* **Windows** : configurez via le registre à `SOFTWARE\Policies\Claude`

715 717 

716<h3 id="authentication-and-sso">718<h3 id="authentication-and-sso">


762| `--resume`, `--continue` | Cliquez sur une session dans la barre latérale |764| `--resume`, `--continue` | Cliquez sur une session dans la barre latérale |

763| `--permission-mode` | Sélecteur de mode à côté du bouton d'envoi |765| `--permission-mode` | Sélecteur de mode à côté du bouton d'envoi |

764| `--dangerously-skip-permissions` | Mode Contourner les permissions. Activez dans Paramètres → Claude Code → « Autoriser le mode de contournement des permissions ». Les administrateurs d'entreprise peuvent désactiver ce paramètre. |766| `--dangerously-skip-permissions` | Mode Contourner les permissions. Activez dans Paramètres → Claude Code → « Autoriser le mode de contournement des permissions ». Les administrateurs d'entreprise peuvent désactiver ce paramètre. |

765| `--add-dir` | Ajouter plusieurs référentiels avec le bouton **+** dans les sessions distantes |767| `--add-dir` | Ajouter plusieurs référentiels avec le bouton **+** dans les sessions cloud |

766| `--allowedTools`, `--disallowedTools` | Aucun équivalent par session. Les règles de permission dans les [fichiers de paramètres](/fr/settings) s'appliquent toujours. |768| `--allowedTools`, `--disallowedTools` | Aucun équivalent par session. Les règles de permission dans les [fichiers de paramètres](/fr/settings) s'appliquent toujours. |

767| `--verbose` | Mode d'affichage [Verbose](#switch-view-modes) dans la liste déroulante Vue de la transcription |769| `--verbose` | Mode d'affichage [Verbose](#switch-view-modes) dans la liste déroulante Vue de la transcription |

768| `--print`, `--output-format` | Non disponible. Desktop est interactif uniquement. |770| `--print`, `--output-format` | Non disponible. Desktop est interactif uniquement. |


779* Les **[serveurs MCP](/fr/mcp)** configurés dans `~/.claude.json` ou `.mcp.json` fonctionnent dans les deux781* Les **[serveurs MCP](/fr/mcp)** configurés dans `~/.claude.json` ou `.mcp.json` fonctionnent dans les deux

780* Les **[hooks](/fr/hooks)** et **[skills](/fr/skills)** définis dans les paramètres s'appliquent aux deux782* Les **[hooks](/fr/hooks)** et **[skills](/fr/skills)** définis dans les paramètres s'appliquent aux deux

781* Les **[paramètres](/fr/settings)** dans `~/.claude.json` et `~/.claude/settings.json` sont partagés. Les règles de permission, les outils autorisés et d'autres paramètres dans `settings.json` s'appliquent aux sessions Desktop.783* Les **[paramètres](/fr/settings)** dans `~/.claude.json` et `~/.claude/settings.json` sont partagés. Les règles de permission, les outils autorisés et d'autres paramètres dans `settings.json` s'appliquent aux sessions Desktop.

782* **Modèles** : Sonnet, Opus et Haiku sont disponibles dans les deux. Dans Desktop, sélectionnez le modèle à partir de la liste déroulante à côté du bouton d'envoi. Vous pouvez modifier le modèle pendant la session à partir de la même liste déroulante.784* **Modèles** : les mêmes [modèles](/fr/model-config#available-models) sont disponibles dans les deux. Dans Desktop, sélectionnez le modèle à partir de la liste déroulante à côté du bouton d'envoi. Vous pouvez modifier le modèle pendant la session à partir de la même liste déroulante.

783 785 

784<Note>786<Note>

785 **Serveurs MCP de l'application de chat Claude Desktop** : l'application Desktop charge les serveurs MCP de `claude_desktop_config.json` dans les sessions de l'onglet Code, aux côtés des serveurs de `~/.claude.json` et `.mcp.json`. Un serveur défini dans `claude_desktop_config.json` est disponible à la fois dans la surface de chat Desktop et dans l'onglet Code.787 **Serveurs MCP de l'application de chat Claude Desktop** : l'application Desktop charge les serveurs MCP de `claude_desktop_config.json` dans les sessions de l'onglet Code, aux côtés des serveurs de `~/.claude.json` et `.mcp.json`. Un serveur défini dans `claude_desktop_config.json` est disponible à la fois dans la surface de chat Desktop et dans l'onglet Code.


794Ce tableau compare les capacités principales entre la CLI et Desktop. Pour une liste complète des drapeaux CLI, voir la [référence CLI](/fr/cli-reference).796Ce tableau compare les capacités principales entre la CLI et Desktop. Pour une liste complète des drapeaux CLI, voir la [référence CLI](/fr/cli-reference).

795 797 

796| Fonctionnalité | CLI | Desktop |798| Fonctionnalité | CLI | Desktop |

797| -------------------------------------------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |799| -------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

798| Modes de permission | Tous les modes y compris `dontAsk` | Demander les permissions, Accepter automatiquement les modifications, Plan mode, Auto et Contourner les permissions via Paramètres |800| Modes de permission | Tous les modes y compris `dontAsk` | Demander les permissions, Accepter automatiquement les modifications, Plan mode, Auto et Contourner les permissions via Paramètres |

799| `--dangerously-skip-permissions` | Drapeau CLI | Mode Contourner les permissions. Activez dans Paramètres → Claude Code → « Autoriser le mode de contournement des permissions » |801| `--dangerously-skip-permissions` | Drapeau CLI | Mode Contourner les permissions. Activez dans Paramètres → Claude Code → « Autoriser le mode de contournement des permissions » |

800| [Fournisseurs tiers](/fr/third-party-integrations) | Bedrock, Vertex, Foundry | API d'Anthropic par défaut. Les déploiements d'entreprise peuvent configurer Vertex AI et les fournisseurs de passerelle. Voir le [guide de configuration d'entreprise](https://support.claude.com/en/articles/12622667-enterprise-configuration). |802| [Fournisseurs tiers](/fr/third-party-integrations) | Bedrock, Vertex AI, Foundry | API d'Anthropic par défaut. Les déploiements d'entreprise peuvent configurer Vertex AI et les fournisseurs de passerelle. Voir le [guide de configuration d'entreprise](https://support.claude.com/en/articles/12622667-enterprise-configuration). Pour exécuter l'onglet Code sur Bedrock, Vertex AI, Foundry ou une passerelle LLM auto-hébergée, voir [Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview). |

801| [Serveurs MCP](/fr/mcp) | Configurer dans les fichiers de paramètres | Interface utilisateur Connecteurs pour les sessions locales et SSH, ou fichiers de paramètres |803| [Serveurs MCP](/fr/mcp) | Configurer dans les fichiers de paramètres | Interface utilisateur Connecteurs pour les sessions locales et SSH, ou fichiers de paramètres |

802| [Plugins](/fr/plugins) | Commande `/plugin` | Interface utilisateur du gestionnaire de plugins |804| [Plugins](/fr/plugins) | Commande `/plugin` | Interface utilisateur du gestionnaire de plugins |

803| Fichiers @mention | Basé sur le texte | Avec autocomplétion ; sessions locales et SSH uniquement |805| Fichiers @mention | Basé sur le texte | Avec autocomplétion ; sessions locales et SSH uniquement |


809| Intégration Dispatch | Non disponible | [Sessions Dispatch](#sessions-from-dispatch) dans la barre latérale |811| Intégration Dispatch | Non disponible | [Sessions Dispatch](#sessions-from-dispatch) dans la barre latérale |

810| Scripts et automatisation | [`--print`](/fr/cli-reference), [Agent SDK](/fr/headless) | Non disponible |812| Scripts et automatisation | [`--print`](/fr/cli-reference), [Agent SDK](/fr/headless) | Non disponible |

811 813 

812<h3 id="what-s-not-available-in-desktop">814<h3 id="whats-not-available-in-desktop">

813 Ce qui n'est pas disponible dans Desktop815 Ce qui n'est pas disponible dans Desktop

814</h3>816</h3>

815 817 

816Les fonctionnalités suivantes sont disponibles uniquement dans la CLI ou l'extension VS Code :818Les fonctionnalités suivantes sont disponibles uniquement dans la CLI ou l'extension VS Code, sauf indication contraire :

817 819 

818* **Fournisseurs tiers** : Desktop se connecte à l'API d'Anthropic par défaut. Les déploiements d'entreprise peuvent configurer Vertex AI et les fournisseurs de passerelle via [paramètres gérés](https://support.claude.com/en/articles/12622667-enterprise-configuration). Pour Bedrock ou Foundry, utilisez la [CLI](/fr/quickstart).820* **Fournisseurs tiers** : Desktop se connecte à l'API d'Anthropic par défaut. Les déploiements d'entreprise peuvent configurer Vertex AI et les fournisseurs de passerelle via [paramètres gérés](https://support.claude.com/en/articles/12622667-enterprise-configuration). Pour Bedrock ou Foundry dans la CLI, voir le [démarrage rapide](/fr/quickstart). À titre d'exception à la section ci-dessus, [Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview) exécute l'onglet Code sur Bedrock, Vertex AI, Foundry ou une passerelle LLM auto-hébergée.

819* **Linux** : l'application de bureau est disponible sur macOS et Windows uniquement. Sur Linux, utilisez la [CLI](/fr/quickstart).821* **Linux** : l'application de bureau est disponible sur macOS et Windows uniquement. Sur Linux, utilisez la [CLI](/fr/quickstart).

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

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


885 887 

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

887 889 

888<h3 id="app-won-t-quit">890<h3 id="app-wont-quit">

889 L'application ne veut pas quitter891 L'application ne veut pas quitter

890</h3>892</h3>

891 893 


899* **PATH non mis à jour après l'installation** : ouvrez une nouvelle fenêtre de terminal. Les mises à jour PATH s'appliquent uniquement aux nouvelles sessions de terminal.901* **PATH non mis à jour après l'installation** : ouvrez une nouvelle fenêtre de terminal. Les mises à jour PATH s'appliquent uniquement aux nouvelles sessions de terminal.

900* **Erreur d'installation simultanée** : si vous voyez une erreur concernant une autre installation en cours mais qu'il n'y en a pas, essayez d'exécuter l'installateur en tant qu'administrateur.902* **Erreur d'installation simultanée** : si vous voyez une erreur concernant une autre installation en cours mais qu'il n'y en a pas, essayez d'exécuter l'installateur en tant qu'administrateur.

901 903 

902<h3 id="branch-doesn-t-exist-yet-when-opening-in-cli">904<h3 id="branch-doesnt-exist-yet-when-opening-in-cli">

903 « La branche n'existe pas encore » lors de l'ouverture dans la CLI905 « La branche n'existe pas encore » lors de l'ouverture dans la CLI

904</h3>906</h3>

905 907 


914 Toujours bloqué ?916 Toujours bloqué ?

915</h3>917</h3>

916 918 

917* Recherchez ou signalez un bug sur [GitHub Issues](https://github.com/anthropics/claude-code/issues)919* Ouvrez Aide Obtenir de l'aide dans l'application de bureau, ou visitez le [centre de support Claude](https://support.claude.com/) directement

918* Visitez le [centre de support Claude](https://support.claude.com/)920* Pour les problèmes qui se reproduisent également dans la CLI autonome `claude`, recherchez ou signalez un bug sur [GitHub Issues](https://github.com/anthropics/claude-code/issues)

919 921 

920Lors du signalement d'un bug, incluez la version de votre application de bureau, votre système d'exploitation, le message d'erreur exact et les journaux pertinents. Sur macOS, vérifiez Console.app. Sur Windows, vérifiez Observateur d'événements → Journaux Windows → Application.922Lors du signalement d'un problème, incluez la version de votre application de bureau, votre système d'exploitation, le message d'erreur exact et les journaux pertinents. Sur macOS, vérifiez Console.app. Sur Windows, vérifiez Observateur d'événements → Journaux Windows → Application.

Details

71 </Step>71 </Step>

72 72 

73 <Step title="Choisir un modèle">73 <Step title="Choisir un modèle">

74 Sélectionnez un modèle dans la liste déroulante à côté du bouton d'envoi. Consultez [modèles](/fr/model-config#available-models) pour une comparaison d'Opus, Sonnet et Haiku. Vous pouvez changer le modèle plus tard à partir de la même liste déroulante.74 Sélectionnez un modèle dans la liste déroulante à côté du bouton d'envoi. Consultez [modèles](/fr/model-config#available-models) pour une comparaison des modèles disponibles. Vous pouvez changer le modèle plus tard à partir de la même liste déroulante.

75 </Step>75 </Step>

76 76 

77 <Step title="Dire à Claude ce qu'il faut faire">77 <Step title="Dire à Claude ce qu'il faut faire">


129 129 

130Desktop exécute le même moteur que la CLI avec une interface graphique. Vous pouvez exécuter les deux simultanément sur le même projet, et ils partagent la configuration (fichiers CLAUDE.md, MCP servers, hooks, skills et paramètres). Pour une comparaison complète des fonctionnalités, des équivalents de drapeaux et de ce qui n'est pas disponible dans Desktop, consultez [Comparaison CLI](/fr/desktop#coming-from-the-cli).130Desktop exécute le même moteur que la CLI avec une interface graphique. Vous pouvez exécuter les deux simultanément sur le même projet, et ils partagent la configuration (fichiers CLAUDE.md, MCP servers, hooks, skills et paramètres). Pour une comparaison complète des fonctionnalités, des équivalents de drapeaux et de ce qui n'est pas disponible dans Desktop, consultez [Comparaison CLI](/fr/desktop#coming-from-the-cli).

131 131 

132<h2 id="what-s-next">132<h2 id="whats-next">

133 Prochaines étapes133 Prochaines étapes

134</h2>134</h2>

135 135 

Details

117</h2>117</h2>

118 118 

119* [Routines](/fr/routines) : exécuter des tâches sur l'infrastructure gérée par Anthropic selon un calendrier, via un appel API ou en réponse à des événements GitHub, même lorsque votre ordinateur est éteint119* [Routines](/fr/routines) : exécuter des tâches sur l'infrastructure gérée par Anthropic selon un calendrier, via un appel API ou en réponse à des événements GitHub, même lorsque votre ordinateur est éteint

120* [Run prompts on a schedule](/fr/scheduled-tasks) : planification au niveau de la session avec `/loop` dans la CLI120* [Exécuter des prompts selon un calendrier](/fr/scheduled-tasks) : planification au niveau de la session avec `/loop` dans la CLI

121* [Claude Code GitHub Actions](/fr/github-actions) : exécuter Claude selon un calendrier dans CI au lieu de sur votre machine121* [Claude Code GitHub Actions](/fr/github-actions) : exécuter Claude selon un calendrier dans CI au lieu de sur votre machine

122* [Use Claude Code Desktop](/fr/desktop) : le guide complet de l'application Desktop122* [Utiliser Claude Code Desktop](/fr/desktop) : le guide complet de l'application Desktop

Details

169 * **Marketplaces** : ajoutez, supprimez ou mettez à jour vos marketplaces ajoutées169 * **Marketplaces** : ajoutez, supprimez ou mettez à jour vos marketplaces ajoutées

170 * **Errors** : visualisez les erreurs de chargement de plugins170 * **Errors** : visualisez les erreurs de chargement de plugins

171 171 

172 Allez à l'onglet **Discover** pour voir les plugins de la marketplace que vous venez d'ajouter. {/* min-version: 2.1.154 */}Les plugins marqués comme pertinents pour votre répertoire de travail actuel sont épinglés en haut avec une étiquette **suggested for this directory**.172 Allez à l'onglet **Discover** pour voir les plugins de la marketplace que vous venez d'ajouter. {/* min-version: 2.1.154 */}Lorsque votre administrateur a autorisé la marketplace via le paramètre géré [`pluginSuggestionMarketplaces`](/fr/settings#available-settings), les plugins marqués comme pertinents pour votre répertoire de travail actuel sont épinglés en haut avec une étiquette **suggested for this directory**.

173 </Step>173 </Step>

174 174 

175 <Step title="Installer un plugin">175 <Step title="Installer un plugin">


328* taper pour filtrer par nom ou description du plugin328* taper pour filtrer par nom ou description du plugin

329* appuyer sur Enter pour ouvrir la vue détaillée d'un plugin et l'activer, le désactiver ou le désinstaller329* appuyer sur Enter pour ouvrir la vue détaillée d'un plugin et l'activer, le désactiver ou le désinstaller

330 330 

331La vue détaillée affiche les composants que le plugin contribue : commandes, skills, agents, hooks, serveurs MCP et serveurs LSP. Le même inventaire est disponible depuis la ligne de commande avec `claude plugin details`.

332 

331Quand vous installez un plugin qui déclare des dépendances, la sortie d'installation liste quelles dépendances ont été auto-installées avec lui.333Quand vous installez un plugin qui déclare des dépendances, la sortie d'installation liste quelles dépendances ont été auto-installées avec lui.

332 334 

333Vous pouvez également gérer les plugins avec des commandes directes.335Vous pouvez également gérer les plugins avec des commandes directes.

334 336 

337Lister les plugins installés sans ouvrir le menu :

338 

339```shell theme={null}

340/plugin list

341```

342 

343Passez `--enabled` ou `--disabled` pour afficher uniquement les plugins dans cet état.

344 

335Désactiver un plugin sans le désinstaller :345Désactiver un plugin sans le désinstaller :

336 346 

337```shell theme={null}347```shell theme={null}


369 379 

370Claude Code recharge tous les plugins actifs et affiche les comptages pour les plugins, les skills, les agents, les hooks, les serveurs MCP de plugin et les serveurs LSP de plugin.380Claude Code recharge tous les plugins actifs et affiche les comptages pour les plugins, les skills, les agents, les hooks, les serveurs MCP de plugin et les serveurs LSP de plugin.

371 381 

372Le rechargement a un coût en jetons sur la demande suivante : les composants nouvellement chargés s'annoncent dans le contenu ajouté à la conversation, tandis que l'historique existant lit toujours à partir du cache de prompt. Un plugin qui fournit des serveurs MCP coûte plus cher quand ses outils ne sont pas différés par [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) : le changement invalide le cache et la demande suivante relit l'intégralité de la conversation. Consultez [activation ou désactivation d'un plugin](/fr/prompt-caching#enabling-or-disabling-a-plugin) pour plus de détails.382Le rechargement a un coût en jetons sur la demande suivante : les composants nouvellement chargés s'annoncent dans le contenu ajouté à la conversation, tandis que l'historique existant lit toujours à partir du cache de prompt. Un plugin qui fournit des serveurs MCP coûte plus cher quand ses outils ne sont pas différés par [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) : le changement invalide le cache et la demande suivante relit l'intégralité de la conversation. {/* min-version: 2.1.163 */}Dans ce cas, `/reload-plugins` affiche un avertissement et n'applique pas le rechargement ; passez `--force` pour appliquer quand même. Consultez [activation ou désactivation d'un plugin](/fr/prompt-caching#enabling-or-disabling-a-plugin) pour plus de détails.

373 383 

374<h2 id="manage-marketplaces">384<h2 id="manage-marketplaces">

375 Gérer les marketplaces385 Gérer les marketplaces

env-vars.md +35 −20

Details

73Le fichier que vous choisissez contrôle à qui les variables s'appliquent :73Le fichier que vous choisissez contrôle à qui les variables s'appliquent :

74 74 

75| Fichier | S'applique à |75| Fichier | S'applique à |

76| :---------------------------- | :--------------------------------------------------------------------------- |76| :---------------------------- | :------------------------------------------------------------------------------------------- |

77| `~/.claude/settings.json` | Vous, dans chaque projet |77| `~/.claude/settings.json` | Vous, dans chaque projet |

78| `.claude/settings.json` | Tous ceux qui travaillent dans le projet, archivé dans le contrôle de source |78| `.claude/settings.json` | Tous ceux qui travaillent dans le projet, archivé dans le contrôle de source |

79| `.claude/settings.local.json` | Vous, dans ce projet uniquement, non archivé |79| `.claude/settings.local.json` | Vous, dans ce projet uniquement (ajoutez-le à votre gitignore si vous le créez manuellement) |

80| Paramètres gérés | Tous les membres de votre organisation, déployés par un administrateur |80| Paramètres gérés | Tous les membres de votre organisation, déployés par un administrateur |

81 81 

82Voir [Fichiers de paramètres](/fr/settings#settings-files) pour savoir où se trouve chaque fichier et [Précédence des paramètres](/fr/settings#settings-precedence) pour savoir comment ils se combinent lorsque plusieurs définissent la même variable.82Voir [Fichiers de paramètres](/fr/settings#settings-files) pour savoir où se trouve chaque fichier et [Précédence des paramètres](/fr/settings#settings-precedence) pour savoir comment ils se combinent lorsque plusieurs définissent la même variable.


96</h2>96</h2>

97 97 

98| Variable | Objectif |98| Variable | Objectif |

99| :------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |99| :------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

100| `ANTHROPIC_API_KEY` | Clé API envoyée en tant qu'en-tête `X-Api-Key`. Lorsqu'elle est définie, cette clé est utilisée à la place de votre abonnement Claude Pro, Max, Team ou Enterprise, même si vous êtes connecté. En mode non interactif (`-p`), la clé est toujours utilisée lorsqu'elle est présente. En mode interactif, vous êtes invité à approuver la clé une fois avant qu'elle ne remplace votre abonnement. Pour utiliser votre abonnement à la place, exécutez `unset ANTHROPIC_API_KEY` |100| `ANTHROPIC_API_KEY` | Clé API envoyée en tant qu'en-tête `X-Api-Key`. Lorsqu'elle est définie, cette clé est utilisée à la place de votre abonnement Claude Pro, Max, Team ou Enterprise, même si vous êtes connecté. En mode non interactif (`-p`), la clé est toujours utilisée lorsqu'elle est présente. En mode interactif, vous êtes invité à approuver la clé une fois avant qu'elle ne remplace votre abonnement. Pour utiliser votre abonnement à la place, exécutez `unset ANTHROPIC_API_KEY` |

101| `ANTHROPIC_AUTH_TOKEN` | Valeur personnalisée pour l'en-tête `Authorization` (la valeur que vous définissez ici sera préfixée par `Bearer `) |101| `ANTHROPIC_AUTH_TOKEN` | Valeur personnalisée pour l'en-tête `Authorization` (la valeur que vous définissez ici sera préfixée par `Bearer `) |

102| `ANTHROPIC_AWS_API_KEY` | Clé API de l'espace de travail pour [Claude Platform on AWS](/fr/claude-platform-on-aws), générée dans la console AWS. Envoyée en tant que `x-api-key` et prend la priorité sur AWS SigV4 |102| `ANTHROPIC_AWS_API_KEY` | Clé API de l'espace de travail pour [Claude Platform on AWS](/fr/claude-platform-on-aws), générée dans la console AWS. Envoyée en tant que `x-api-key` et prend la priorité sur AWS SigV4 |


112| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Description d'affichage pour l'entrée de modèle personnalisé dans le sélecteur `/model`. Par défaut `Custom model (<model-id>)` lorsqu'il n'est pas défini |112| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Description d'affichage pour l'entrée de modèle personnalisé dans le sélecteur `/model`. Par défaut `Custom model (<model-id>)` lorsqu'il n'est pas défini |

113| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nom d'affichage pour l'entrée de modèle personnalisé dans le sélecteur `/model`. Par défaut l'ID du modèle lorsqu'il n'est pas défini |113| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nom d'affichage pour l'entrée de modèle personnalisé dans le sélecteur `/model`. Par défaut l'ID du modèle lorsqu'il n'est pas défini |

114| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Voir [Configuration du modèle](/fr/model-config#customize-pinned-model-display-and-capabilities) |114| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Voir [Configuration du modèle](/fr/model-config#customize-pinned-model-display-and-capabilities) |

115| `ANTHROPIC_DEFAULT_FABLE_MODEL` | Voir [Configuration du modèle](/fr/model-config#environment-variables) |

116| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Voir [Configuration du modèle](/fr/model-config#customize-pinned-model-display-and-capabilities) |

117| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Voir [Configuration du modèle](/fr/model-config#customize-pinned-model-display-and-capabilities) |

118| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Voir [Configuration du modèle](/fr/model-config#customize-pinned-model-display-and-capabilities) |

115| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Voir [Configuration du modèle](/fr/model-config#environment-variables) |119| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Voir [Configuration du modèle](/fr/model-config#environment-variables) |

116| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Voir [Configuration du modèle](/fr/model-config#customize-pinned-model-display-and-capabilities) |120| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Voir [Configuration du modèle](/fr/model-config#customize-pinned-model-display-and-capabilities) |

117| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Voir [Configuration du modèle](/fr/model-config#customize-pinned-model-display-and-capabilities) |121| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Voir [Configuration du modèle](/fr/model-config#customize-pinned-model-display-and-capabilities) |


133| `ANTHROPIC_VERTEX_BASE_URL` | Remplacer l'URL du point de terminaison Vertex AI. À utiliser pour les points de terminaison Vertex personnalisés ou lors du routage via une [passerelle LLM](/fr/llm-gateway). Voir [Google Vertex AI](/fr/google-vertex-ai) |137| `ANTHROPIC_VERTEX_BASE_URL` | Remplacer l'URL du point de terminaison Vertex AI. À utiliser pour les points de terminaison Vertex personnalisés ou lors du routage via une [passerelle LLM](/fr/llm-gateway). Voir [Google Vertex AI](/fr/google-vertex-ai) |

134| `ANTHROPIC_VERTEX_PROJECT_ID` | ID de projet GCP pour les requêtes Vertex AI. Remplacé par `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` ou le projet dans votre fichier d'identifiants `GOOGLE_APPLICATION_CREDENTIALS`. Voir [Google Vertex AI](/fr/google-vertex-ai) |138| `ANTHROPIC_VERTEX_PROJECT_ID` | ID de projet GCP pour les requêtes Vertex AI. Remplacé par `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` ou le projet dans votre fichier d'identifiants `GOOGLE_APPLICATION_CREDENTIALS`. Voir [Google Vertex AI](/fr/google-vertex-ai) |

135| `ANTHROPIC_WORKSPACE_ID` | ID d'espace de travail pour la [fédération d'identité de charge de travail](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Définissez ceci lorsque votre règle de fédération est limitée à plus d'un espace de travail pour que l'échange de jetons sache quel espace de travail cibler |139| `ANTHROPIC_WORKSPACE_ID` | ID d'espace de travail pour la [fédération d'identité de charge de travail](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Définissez ceci lorsque votre règle de fédération est limitée à plus d'un espace de travail pour que l'échange de jetons sache quel espace de travail cibler |

140| `API_FORCE_IDLE_TIMEOUT` | {/* min-version: 2.1.169 */}Remplacer le délai d'expiration d'inactivité de 5 minutes qui interrompt une réponse de modèle en continu lorsqu'aucun octet n'arrive. Définissez sur `0` pour désactiver le délai d'expiration, par exemple lorsqu'une [passerelle](/fr/llm-gateway) lente ou un modèle local fait une pause plus longue que 5 minutes entre les chunks. Définissez sur `1` pour maintenir le délai d'expiration sur chaque fournisseur. Lorsqu'il n'est pas défini, le délai d'expiration est inactif sur les connexions API Anthropic directes et [Claude Platform on AWS](/fr/claude-platform-on-aws), où le chien de garde de flux au niveau des octets de Claude Code s'exécute, et actif sur tous les autres fournisseurs, y compris [Vertex AI](/fr/google-vertex-ai), [Foundry](/fr/microsoft-foundry), [Mantle](/fr/amazon-bedrock#use-the-mantle-endpoint), [Bedrock](/fr/amazon-bedrock) et les connexions de passerelle, de sorte qu'un flux bloqué s'interrompt au lieu de rester suspendu. À partir de v2.1.169 |

136| `API_TIMEOUT_MS` | Délai d'expiration pour les requêtes API en millisecondes (par défaut : 600 000, ou 10 minutes ; maximum : 2 147 483 647). Augmentez ceci lorsque les requêtes expirent sur les réseaux lents ou lors du routage via un proxy. Les valeurs au-dessus du maximum dépassent le minuteur sous-jacent et provoquent l'échec immédiat des requêtes |141| `API_TIMEOUT_MS` | Délai d'expiration pour les requêtes API en millisecondes (par défaut : 600 000, ou 10 minutes ; maximum : 2 147 483 647). Augmentez ceci lorsque les requêtes expirent sur les réseaux lents ou lors du routage via un proxy. Les valeurs au-dessus du maximum dépassent le minuteur sous-jacent et provoquent l'échec immédiat des requêtes |

137| `AWS_BEARER_TOKEN_BEDROCK` | Clé API Bedrock pour l'authentification (voir [Clés API Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |142| `AWS_BEARER_TOKEN_BEDROCK` | Clé API Bedrock pour l'authentification (voir [Clés API Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

138| `BASH_DEFAULT_TIMEOUT_MS` | Délai d'expiration par défaut pour les commandes bash longues (par défaut : 120 000, ou 2 minutes) |143| `BASH_DEFAULT_TIMEOUT_MS` | Délai d'expiration par défaut pour les commandes bash longues (par défaut : 120 000, ou 2 minutes) |

139| `BASH_MAX_OUTPUT_LENGTH` | Nombre maximum de caractères dans les sorties bash avant que la sortie complète soit enregistrée dans un fichier et que Claude reçoive le chemin plus un court aperçu. Voir [Comportement de l'outil Bash](/fr/tools-reference#bash-tool-behavior) |144| `BASH_MAX_OUTPUT_LENGTH` | Nombre maximum de caractères dans les sorties bash avant que la sortie complète soit enregistrée dans un fichier et que Claude reçoive le chemin plus un court aperçu. Voir [Comportement de l'outil Bash](/fr/tools-reference#bash-tool-behavior) |

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

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

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

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

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

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

146| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Définissez le pourcentage de capacité de contexte (1-100) auquel le compactage automatique se déclenche. Par défaut, le compactage automatique se déclenche à environ 95 % de capacité. Utilisez des valeurs plus basses comme `50` pour compacter plus tôt. Les valeurs au-dessus du seuil par défaut n'ont aucun effet. S'applique aux conversations principales et aux subagents. Ce pourcentage s'aligne avec le champ `context_window.used_percentage` disponible dans la [ligne d'état](/fr/statusline) |151| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Définissez le pourcentage (1-100) de la fenêtre de compactage automatique auquel le compactage automatique se déclenche. Utilisez des valeurs plus basses comme `50` pour compacter plus tôt. Cette variable ne provoque un compactage plus précoce que lorsque Claude Code compacte de manière proactive : lorsque `CLAUDE_CODE_AUTO_COMPACT_WINDOW` est défini, dans les [sessions cloud](/fr/claude-code-on-the-web), dans les sessions [Contrôle à distance](/fr/remote-control) et sur Sonnet 4.6 et Opus 4.6 sans [contexte étendu](/fr/model-config#extended-context), qui compactent à la limite 200K par défaut. Dans d'autres cas, comme une session locale sur Opus 4.8 ou tout modèle avec contexte étendu, le compactage automatique se déclenche lorsque la conversation atteint la limite de contexte du modèle. Le remplacement ne peut que réduire le seuil, de sorte que les valeurs au-dessus de la valeur par défaut n'ont aucun effet. S'applique aux conversations principales et aux subagents |

147| `CLAUDE_AUTO_BACKGROUND_TASKS` | Définissez sur `1` pour forcer l'activation de la mise en arrière-plan automatique des tâches d'agent longues. Lorsqu'elle est activée, les subagents sont déplacés en arrière-plan après environ deux minutes d'exécution |152| `CLAUDE_AUTO_BACKGROUND_TASKS` | Définissez sur `1` pour forcer l'activation de la mise en arrière-plan automatique des tâches d'agent longues. Lorsqu'elle est activée, les subagents sont déplacés en arrière-plan après environ deux minutes d'exécution |

148| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Retourner au répertoire de travail d'origine après chaque commande Bash ou PowerShell dans la session principale |153| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Retourner au répertoire de travail d'origine après chaque commande Bash ou PowerShell dans la session principale |

149| `CLAUDE_CODE_ACCESSIBILITY` | Définissez sur `1` pour garder le curseur du terminal natif visible et désactiver l'indicateur de curseur en texte inversé. Permet aux loupes d'écran comme macOS Zoom de suivre la position du curseur |154| `CLAUDE_CODE_ACCESSIBILITY` | Définissez sur `1` pour garder le curseur du terminal natif visible et désactiver l'indicateur de curseur en texte inversé. Permet aux loupes d'écran comme macOS Zoom de suivre la position du curseur |

150| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Définissez sur `1` pour charger les fichiers de mémoire à partir des répertoires spécifiés avec `--add-dir`. Charge `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` et `CLAUDE.local.md`. Par défaut, les répertoires supplémentaires ne chargent pas les fichiers de mémoire |155| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Définissez sur `1` pour charger les fichiers de mémoire à partir des répertoires spécifiés avec `--add-dir`. Charge `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` et `CLAUDE.local.md`. Par défaut, les répertoires supplémentaires ne chargent pas les fichiers de mémoire |

151| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Définissez sur `1` pour repeindre l'écran entier à chaque image dans le [rendu en plein écran](/fr/fullscreen) au lieu d'envoyer des mises à jour incrémentielles. À utiliser si le mode plein écran affiche des fragments de texte obsolètes ou mal placés. Claude Code active ceci automatiquement pour les sessions en arrière-plan et la [vue des agents](/fr/agent-view) sur Windows |156| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Définissez sur `1` pour repeindre l'écran entier à chaque image dans le [rendu en plein écran](/fr/fullscreen) au lieu d'envoyer des mises à jour incrémentielles. À utiliser si le mode plein écran affiche des fragments de texte obsolètes ou mal placés. Claude Code active ceci automatiquement pour les sessions en arrière-plan et la [vue des agents](/fr/agent-view) sur Windows |

157| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Définissez sur `1` pour envoyer le paramètre [effort](/fr/model-config#adjust-effort-level) avec chaque requête, même lorsque Claude Code ne reconnaît pas l'ID du modèle comme capable d'effort. À utiliser lors du routage via une [passerelle LLM](/fr/llm-gateway) ou un fournisseur tiers qui sert les modèles sous des identifiants personnalisés. Les modèles qui rejettent le paramètre d'effort à l'API, y compris les modèles Claude 3, Sonnet 4.0 et 4.5, Opus 4.0 et 4.1, et Haiku 4.5, sont toujours exclus pour que les requêtes ne échouent pas |

152| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalle en millisecondes auquel les identifiants doivent être actualisés (lors de l'utilisation de [`apiKeyHelper`](/fr/settings#available-settings)) |158| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalle en millisecondes auquel les identifiants doivent être actualisés (lors de l'utilisation de [`apiKeyHelper`](/fr/settings#available-settings)) |

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

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

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

156| `CLAUDE_CODE_CERT_STORE` | Liste séparée par des virgules de sources de certificats CA pour les connexions TLS. `bundled` est l'ensemble Mozilla CA fourni avec Claude Code. `system` est le magasin de confiance du système d'exploitation. Par défaut `bundled,system` |162| `CLAUDE_CODE_CERT_STORE` | Liste séparée par des virgules de sources de certificats CA pour les connexions TLS. `bundled` est l'ensemble Mozilla CA fourni avec Claude Code. `system` est le magasin de confiance du système d'exploitation. Par défaut `bundled,system` |

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

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

158| `CLAUDE_CODE_CLIENT_KEY` | Chemin d'accès au fichier de clé privée client pour l'authentification mTLS |165| `CLAUDE_CODE_CLIENT_KEY` | Chemin d'accès au fichier de clé privée client pour l'authentification mTLS |

159| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Phrase de passe pour CLAUDE\_CODE\_CLIENT\_KEY chiffré (facultatif) |166| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Phrase de passe pour CLAUDE\_CODE\_CLIENT\_KEY chiffré (facultatif) |

160| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Remplacer le chemin d'accès au fichier journal de débogage. Malgré le nom, il s'agit d'un chemin de fichier, pas d'un répertoire. Nécessite que le mode débogage soit activé séparément via `--debug`, `/debug` ou la variable d'environnement `DEBUG` : la définition de cette variable seule n'active pas la journalisation. Le drapeau [`--debug-file`](/fr/cli-reference#cli-flags) fait les deux à la fois. Par défaut `~/.claude/debug/<session-id>.txt` |167| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Remplacer le chemin d'accès au fichier journal de débogage. Malgré le nom, il s'agit d'un chemin de fichier, pas d'un répertoire. Nécessite que le mode débogage soit activé séparément via `--debug`, `/debug` ou la variable d'environnement `DEBUG` : la définition de cette variable seule n'active pas la journalisation. Le drapeau [`--debug-file`](/fr/cli-reference#cli-flags) fait les deux à la fois. Par défaut `~/.claude/debug/<session-id>.txt` |

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

162| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Définissez sur `1` pour désactiver la prise en charge de la [fenêtre de contexte 1 M](/fr/model-config#extended-context). Lorsqu'elle est définie, les variantes de modèle 1 M ne sont pas disponibles dans le sélecteur de modèle. Utile pour les environnements d'entreprise avec des exigences de conformité |169| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Définissez sur `1` pour désactiver la prise en charge de la [fenêtre de contexte 1 M](/fr/model-config#extended-context). Lorsqu'elle est définie, les variantes de modèle 1 M ne sont pas disponibles dans le sélecteur de modèle. Utile pour les environnements d'entreprise avec des exigences de conformité |

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

171| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Définissez sur `1` pour désactiver l'[outil advisor](/fr/advisor). La commande `/advisor` et le drapeau `--advisor` deviennent indisponibles et tout `advisorModel` configuré est ignoré. Nécessite Claude Code v2.1.98 ou ultérieur |

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

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

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

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

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

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

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

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

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


180| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Définissez sur `1` pour ignorer l'ajout automatique de la place de marché officielle des plugins au premier lancement |189| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Définissez sur `1` pour ignorer l'ajout automatique de la place de marché officielle des plugins au premier lancement |

181| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Définissez sur `1` pour ignorer le chargement des skills à partir du répertoire des skills gérés au niveau du système. Utile pour les sessions de conteneur ou CI qui ne doivent pas charger les skills fournis par l'opérateur |190| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Définissez sur `1` pour ignorer le chargement des skills à partir du répertoire des skills gérés au niveau du système. Utile pour les sessions de conteneur ou CI qui ne doivent pas charger les skills fournis par l'opérateur |

182| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Définissez sur `1` pour désactiver les mises à jour automatiques du titre du terminal en fonction du contexte de la conversation. En mode Agent SDK et sessions `claude -p`, cela ignore également la requête Haiku en arrière-plan qui génère le titre de la session |191| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Définissez sur `1` pour désactiver les mises à jour automatiques du titre du terminal en fonction du contexte de la conversation. En mode Agent SDK et sessions `claude -p`, cela ignore également la requête Haiku en arrière-plan qui génère le titre de la session |

183| `CLAUDE_CODE_DISABLE_THINKING` | Définissez sur `1` pour forcer la désactivation de la [réflexion étendue](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) indépendamment de la prise en charge du modèle ou d'autres paramètres. Plus direct que `MAX_THINKING_TOKENS=0` |192| `CLAUDE_CODE_DISABLE_THINKING` | Définissez sur `1` pour omettre complètement le paramètre `thinking` des requêtes API. Il s'agit d'une option de compatibilité pour les proxies et les passerelles qui rejettent le paramètre. Le comportement de la variable est inchangé par rapport aux versions antérieures ; sur les modèles qui pensent par défaut, l'omission du paramètre signifie que le modèle peut toujours penser. Pour désactiver explicitement la [réflexion étendue](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) sur l'API Anthropic, utilisez `MAX_THINKING_TOKENS=0` à la place, ce qui est également inefficace sur Fable 5 car il ne peut pas avoir la réflexion désactivée. Sur les [fournisseurs tiers](/fr/third-party-integrations), `0` omet également le paramètre, de sorte que les deux variables se comportent de la même manière là-bas |

184| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Définissez sur `1` pour désactiver le défilement virtuel dans le [rendu en plein écran](/fr/fullscreen) et afficher chaque message dans la transcription. Utilisez ceci si le défilement en mode plein écran affiche des régions vierges où les messages devraient apparaître |193| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Définissez sur `1` pour désactiver le défilement virtuel dans le [rendu en plein écran](/fr/fullscreen) et afficher chaque message dans la transcription. Utilisez ceci si le défilement en mode plein écran affiche des régions vierges où les messages devraient apparaître |

185| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Définissez sur `1` pour désactiver les [workflows](/fr/workflows#turn-workflows-off). Équivalent au paramètre [`disableWorkflows`](/fr/settings#available-settings) |194| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Définissez sur `1` pour désactiver les [workflows](/fr/workflows#turn-workflows-off). Équivalent au paramètre [`disableWorkflows`](/fr/settings#available-settings) |

186| `CLAUDE_CODE_EFFORT_LEVEL` | Définissez le niveau d'effort pour les modèles pris en charge. Valeurs : `low`, `medium`, `high`, `xhigh`, `max` ou `auto` pour utiliser le niveau par défaut du modèle. Les niveaux disponibles dépendent du modèle. Prend la priorité sur `/effort` et le paramètre `effortLevel`. Voir [Ajuster le niveau d'effort](/fr/model-config#adjust-effort-level) |195| `CLAUDE_CODE_EFFORT_LEVEL` | Définissez le niveau d'effort pour les modèles pris en charge. Valeurs : `low`, `medium`, `high`, `xhigh`, `max` ou `auto` pour utiliser le niveau par défaut du modèle. Les niveaux disponibles dépendent du modèle. Prend la priorité sur `/effort` et le paramètre `effortLevel`. Voir [Ajuster le niveau d'effort](/fr/model-config#adjust-effort-level) |


198| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Définissez sur `1` pour activer les [équipes d'agents](/fr/agent-teams). Les équipes d'agents sont expérimentales et désactivées par défaut |207| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Définissez sur `1` pour activer les [équipes d'agents](/fr/agent-teams). Les équipes d'agents sont expérimentales et désactivées par défaut |

199| `CLAUDE_CODE_EXTRA_BODY` | Objet JSON à fusionner dans le niveau supérieur de chaque corps de requête API. Utile pour transmettre des paramètres spécifiques au fournisseur que Claude Code n'expose pas directement |208| `CLAUDE_CODE_EXTRA_BODY` | Objet JSON à fusionner dans le niveau supérieur de chaque corps de requête API. Utile pour transmettre des paramètres spécifiques au fournisseur que Claude Code n'expose pas directement |

200| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Remplacer la limite de tokens par défaut pour les lectures de fichiers. Utile lorsque vous devez lire des fichiers plus volumineux en intégralité |209| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Remplacer la limite de tokens par défaut pour les lectures de fichiers. Utile lorsque vous devez lire des fichiers plus volumineux en intégralité |

210| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | {/* min-version: 2.1.172 */}Définissez sur `1` pour forcer la persistance de la transcription, l'historique des invites et l'enregistrement `claude agents` même lorsque ce `claude` a été lancé de l'intérieur d'une autre session Claude Code. À utiliser lorsqu'une valeur `CLAUDE_CODE_CHILD_SESSION` héritée, par exemple d'un serveur tmux d'abord démarré par l'outil Bash de Claude Code, provoque la mauvaise classification d'une session de niveau supérieur comme imbriquée. Également honoré sur v2.1.169 et antérieur ; n'a aucun effet sur v2.1.170 et v2.1.171, où la détection de session imbriquée qu'il remplace a été supprimée |

201| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Définissez sur `1` pour forcer l'activation du mode privé DEC 2026 [synchronized output](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) lorsque votre terminal le prend en charge mais n'est pas détecté automatiquement. Utile pour les émulateurs tels que Emacs `eat` qui implémentent BSU/ESU mais ne répondent pas à la sonde de capacité. N'a aucun effet sous tmux |211| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Définissez sur `1` pour forcer l'activation du mode privé DEC 2026 [synchronized output](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) lorsque votre terminal le prend en charge mais n'est pas détecté automatiquement. Utile pour les émulateurs tels que Emacs `eat` qui implémentent BSU/ESU mais ne répondent pas à la sonde de capacité. N'a aucun effet sous tmux |

202| `CLAUDE_CODE_FORK_SUBAGENT` | Définissez sur `1` pour faire des [subagents forked](/fr/sub-agents#fork-the-current-conversation) le défaut du modèle : Claude génère un fork, un subagent qui hérite du contexte de conversation complet au lieu de commencer à zéro, chaque fois qu'il utiliserait autrement le subagent à usage général, et tous les spawns de subagent s'exécutent en arrière-plan. La commande [`/fork`](/fr/commands) explicite fonctionne sans cette variable. Fonctionne en mode interactif et via le SDK ou `claude -p` |212| `CLAUDE_CODE_FORK_SUBAGENT` | Définissez sur `1` pour permettre à Claude de générer des [subagents forked](/fr/sub-agents#fork-the-current-conversation), ou `0` pour les désactiver, remplaçant tout déploiement côté serveur. Lorsqu'elle est activée, Claude peut demander le type de subagent `fork` pour générer un fork, un subagent qui hérite du contexte de conversation complet au lieu de commencer à zéro. Les spawns sans type de subagent utilisent toujours le subagent à usage général, et tous les spawns de subagent s'exécutent en arrière-plan. La commande [`/fork`](/fr/commands) explicite fonctionne sans cette variable. Fonctionne en mode interactif et via le SDK ou `claude -p` |

203| `CLAUDE_CODE_GIT_BASH_PATH` | Windows uniquement : chemin d'accès à l'exécutable Git Bash (`bash.exe`). À utiliser lorsque Git Bash est installé mais pas dans votre PATH. Voir [Configuration Windows](/fr/setup#set-up-on-windows) |213| `CLAUDE_CODE_GIT_BASH_PATH` | Windows uniquement : chemin d'accès à l'exécutable Git Bash (`bash.exe`). À utiliser lorsque Git Bash est installé mais pas dans votre PATH. Voir [Configuration Windows](/fr/setup#set-up-on-windows) |

204| `CLAUDE_CODE_GLOB_HIDDEN` | Définissez sur `false` pour exclure les fichiers pointés des résultats lorsque Claude appelle l'[outil Glob](/fr/tools-reference#glob-tool-behavior). Inclus par défaut. N'affecte pas l'autocomplétion de fichier `@`, `ls`, Grep ou Read |214| `CLAUDE_CODE_GLOB_HIDDEN` | Définissez sur `false` pour exclure les fichiers pointés des résultats lorsque Claude appelle l'[outil Glob](/fr/tools-reference#glob-tool-behavior). Inclus par défaut. N'affecte pas l'autocomplétion de fichier `@`, `ls`, Grep ou Read |

205| `CLAUDE_CODE_GLOB_NO_IGNORE` | Définissez sur `false` pour faire respecter à l'[outil Glob](/fr/tools-reference#glob-tool-behavior) les modèles `.gitignore`. Par défaut, Glob retourne tous les fichiers correspondants, y compris ceux ignorés par git. N'affecte pas l'autocomplétion de fichier `@`, qui a son propre paramètre [`respectGitignore`](/fr/settings#available-settings) |215| `CLAUDE_CODE_GLOB_NO_IGNORE` | Définissez sur `false` pour faire respecter à l'[outil Glob](/fr/tools-reference#glob-tool-behavior) les modèles `.gitignore`. Par défaut, Glob retourne tous les fichiers correspondants, y compris ceux ignorés par git. N'affecte pas l'autocomplétion de fichier `@`, qui a son propre paramètre [`respectGitignore`](/fr/settings#available-settings) |


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

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

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

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

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

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

244| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Remplacer le budget de temps en millisecondes pour les hooks [SessionEnd](/fr/hooks#sessionend). S'applique à la sortie de session, `/clear` et au changement de sessions via `/resume` interactif. Par défaut, le budget est de 1,5 secondes, automatiquement augmenté au `timeout` par hook le plus élevé configuré dans les fichiers de paramètres, jusqu'à 60 secondes. Les délais d'expiration sur les hooks fournis par les plugins ne relèvent pas du budget |255| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Remplacer le budget de temps en millisecondes pour les hooks [SessionEnd](/fr/hooks#sessionend). S'applique à la sortie de session, `/clear` et au changement de sessions via `/resume` interactif. Par défaut, le budget est de 1,5 secondes, automatiquement augmenté au `timeout` par hook le plus élevé configuré dans les fichiers de paramètres, jusqu'à 60 secondes. Les délais d'expiration sur les hooks fournis par les plugins ne relèvent pas du budget |

245| `CLAUDE_CODE_SESSION_ID` | Défini automatiquement dans les sous-processus des outils Bash et PowerShell, les sous-processus des commandes [hook](/fr/hooks) et les sous-processus du serveur MCP [stdio](/fr/mcp) à l'ID de session actuel. Pour Bash, PowerShell et hooks, cela correspond au champ `session_id` dans l'entrée JSON du hook et est mis à jour sur `/clear`. Un sous-processus du serveur MCP conserve l'ID avec lequel il a été généré, et peut recevoir l'ID de démarrage initial plutôt que l'ID repris lorsqu'il est lancé via `--resume` ou `--continue`. À utiliser pour corréler les scripts et les outils externes avec la session Claude Code qui les a lancés |256| `CLAUDE_CODE_SESSION_ID` | Défini automatiquement dans les sous-processus des outils Bash et PowerShell, les sous-processus des commandes [hook](/fr/hooks) et les sous-processus du serveur MCP [stdio](/fr/mcp) à l'ID de session actuel. Pour Bash, PowerShell et hooks, cela correspond au champ `session_id` dans l'entrée JSON du hook et est mis à jour sur `/clear`. Un sous-processus du serveur MCP conserve l'ID avec lequel il a été généré. Sur `--resume <session-id>` il reçoit l'ID repris, correspondant aux hooks et Bash. Sur `--continue` ou `--resume` sans ID explicite, il peut recevoir l'ID de démarrage initial à la place. À utiliser pour corréler les scripts et les outils externes avec la session Claude Code qui les a lancés |

246| `CLAUDE_CODE_SHELL` | Remplacer la détection automatique du shell. Utile lorsque votre shell de connexion diffère de votre shell de travail préféré (par exemple, `bash` vs `zsh`) |257| `CLAUDE_CODE_SHELL` | Remplacer la détection automatique du shell. Utile lorsque votre shell de connexion diffère de votre shell de travail préféré (par exemple, `bash` vs `zsh`) |

247| `CLAUDE_CODE_SHELL_PREFIX` | Préfixe de commande pour envelopper les commandes shell que Claude Code génère : appels d'outil Bash, commandes [hook](/fr/hooks) et commandes de démarrage du serveur MCP [stdio](/fr/mcp). Utile pour la journalisation ou l'audit. Exemple : la définition de `/path/to/logger.sh` exécute chaque commande en tant que `/path/to/logger.sh <command>` |258| `CLAUDE_CODE_SHELL_PREFIX` | Préfixe de commande pour envelopper les commandes shell que Claude Code génère : appels d'outil Bash, commandes [hook](/fr/hooks), commandes de [ligne d'état](/fr/statusline) et commandes de démarrage du serveur MCP [stdio](/fr/mcp). Les hooks PowerShell et les hooks de forme exec s'exécutent sans le préfixe. Utile pour la journalisation ou l'audit. La définition d'un chemin d'exécutable nu tel que `/path/to/logger.sh` exécute chaque commande en tant que `/path/to/logger.sh '<command>'`. Le wrapper reçoit la ligne de commande en tant qu'argument shell-quoted unique dans `$1`, de sorte que le wrapper doit ré-évaluer `$1` avec un shell, par exemple `exec bash -c "$1"`. Traiter `$1` comme un chemin d'exécutable nu casse les serveurs MCP stdio qui passent des arguments tels que `npx -y <package>`. Pour les appels d'outil Bash, `$1` contient l'invocation shell complète que Claude Code assemble, y compris la configuration de l'environnement, pas seulement la commande que Claude a exécutée |

248| `CLAUDE_CODE_SIMPLE` | Définissez sur `1` pour exécuter avec une invite système minimale et uniquement les outils Bash, lecture de fichier et édition de fichier. Les outils MCP de `--mcp-config` sont toujours disponibles. Désactive la découverte automatique des hooks, skills, plugins, serveurs MCP, mémoire automatique et CLAUDE.md. Les jetons OAuth et les identifiants du trousseau ne sont pas lus, donc l'authentification Anthropic doit provenir de `ANTHROPIC_API_KEY` ou d'un `apiKeyHelper` dans `--settings`. Équivalent à la transmission de [`--bare`](/fr/headless#start-faster-with-bare-mode) |259| `CLAUDE_CODE_SIMPLE` | Définissez sur `1` pour exécuter avec une invite système minimale et uniquement les outils Bash, lecture de fichier et édition de fichier. Les outils MCP de `--mcp-config` sont toujours disponibles. Désactive la découverte automatique des hooks, skills, plugins, serveurs MCP, mémoire automatique et CLAUDE.md. Les jetons OAuth et les identifiants du trousseau ne sont pas lus, donc l'authentification Anthropic doit provenir de `ANTHROPIC_API_KEY` ou d'un `apiKeyHelper` dans `--settings`. Équivalent à la transmission de [`--bare`](/fr/headless#start-faster-with-bare-mode) |

249| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Définissez sur `1` pour utiliser une invite système plus courte et des descriptions d'outils abrégées sur n'importe quel modèle. Définissez sur `0`, `false`, `no` ou `off` pour refuser même sur les modèles où l'expérience ou la configuration du serveur l'activerait autrement. L'ensemble complet d'outils, les hooks, les serveurs MCP et la découverte CLAUDE.md restent activés |260| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Définissez sur `1` pour utiliser une invite système plus courte et des descriptions d'outils abrégées sur n'importe quel modèle. Définissez sur `0`, `false`, `no` ou `off` pour refuser même sur les modèles où l'expérience ou la configuration du serveur l'activerait autrement. L'ensemble complet d'outils, les hooks, les serveurs MCP et la découverte CLAUDE.md restent activés |

250| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Ignorer l'authentification côté client pour [Claude Platform on AWS](/fr/claude-platform-on-aws), pour les passerelles qui signent les requêtes elles-mêmes |261| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Ignorer l'authentification côté client pour [Claude Platform on AWS](/fr/claude-platform-on-aws), pour les passerelles qui signent les requêtes elles-mêmes |


258| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Définissez sur `1` pour supprimer les identifiants Anthropic et des fournisseurs de cloud des environnements de sous-processus (outil Bash, hooks, serveurs MCP stdio). Le processus Claude parent conserve ces identifiants pour les appels API, mais les processus enfants ne peuvent pas les lire, réduisant l'exposition aux attaques par injection de prompt qui tentent d'exfiltrer les secrets via l'expansion du shell. Sur Linux, cela exécute également les sous-processus Bash dans un espace de noms PID isolé pour qu'ils ne puissent pas lire les environnements de processus hôte via `/proc` ; en conséquence, `ps`, `pgrep` et `kill` ne peuvent pas voir ou signaler les processus hôte. `claude-code-action` définit ceci automatiquement lorsque `allowed_non_write_users` est configuré |269| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Définissez sur `1` pour supprimer les identifiants Anthropic et des fournisseurs de cloud des environnements de sous-processus (outil Bash, hooks, serveurs MCP stdio). Le processus Claude parent conserve ces identifiants pour les appels API, mais les processus enfants ne peuvent pas les lire, réduisant l'exposition aux attaques par injection de prompt qui tentent d'exfiltrer les secrets via l'expansion du shell. Sur Linux, cela exécute également les sous-processus Bash dans un espace de noms PID isolé pour qu'ils ne puissent pas lire les environnements de processus hôte via `/proc` ; en conséquence, `ps`, `pgrep` et `kill` ne peuvent pas voir ou signaler les processus hôte. `claude-code-action` définit ceci automatiquement lorsque `allowed_non_write_users` est configuré |

259| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Définissez sur `1` en mode non interactif (l'indicateur `-p`) pour attendre que l'installation du plugin se termine avant la première requête. Sans cela, les plugins s'installent en arrière-plan et peuvent ne pas être disponibles au premier tour. Combinez avec `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` pour limiter l'attente |270| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Définissez sur `1` en mode non interactif (l'indicateur `-p`) pour attendre que l'installation du plugin se termine avant la première requête. Sans cela, les plugins s'installent en arrière-plan et peuvent ne pas être disponibles au premier tour. Combinez avec `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` pour limiter l'attente |

260| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Délai d'expiration en millisecondes pour l'installation synchrone des plugins. Lorsqu'il est dépassé, Claude Code continue sans plugins et enregistre une erreur. Pas de défaut : sans cette variable, l'installation synchrone attend jusqu'à la fin |271| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Délai d'expiration en millisecondes pour l'installation synchrone des plugins. Lorsqu'il est dépassé, Claude Code continue sans plugins et enregistre une erreur. Pas de défaut : sans cette variable, l'installation synchrone attend jusqu'à la fin |

261| `CLAUDE_CODE_SYNC_SKILLS` | Définissez sur `1` pour télécharger vos skills claude.ai activés dans `~/.claude/skills/` avant la première requête et resynchroniser toutes les 10 minutes. S'applique uniquement en mode non interactif avec l'indicateur `-p`. Défini automatiquement dans les sessions [Claude Code on the web](/fr/claude-code-on-the-web). Nécessite l'authentification claude.ai |272| `CLAUDE_CODE_SYNC_SKILLS` | Définissez sur `1` pour télécharger vos skills claude.ai activés dans `~/.claude/skills/` avant la première requête et resynchroniser toutes les 10 minutes. S'applique uniquement en mode non interactif avec l'indicateur `-p`. Nécessite l'authentification claude.ai. Les sessions [Claude Code on the web](/fr/claude-code-on-the-web) reçoivent vos skills claude.ai activés automatiquement ; vous n'avez pas besoin de définir ceci là-bas |

273| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Délai d'expiration en millisecondes pour une resynchronisation des skills en milieu de session lorsque `CLAUDE_CODE_SYNC_SKILLS` est défini (par défaut : 30 000). Limite le téléchargement déclenché lorsque l'hôte demande un rechargement des skills pendant la session. Lorsqu'il est dépassé, la resynchronisation s'arrête et les téléchargements restants continuent en arrière-plan |

262| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pour que la première requête attende la synchronisation initiale des skills lorsque `CLAUDE_CODE_SYNC_SKILLS` est défini (par défaut : 5 000). Lorsqu'il est dépassé, la requête continue et les téléchargements de skills restants continuent en arrière-plan |274| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pour que la première requête attende la synchronisation initiale des skills lorsque `CLAUDE_CODE_SYNC_SKILLS` est défini (par défaut : 5 000). Lorsqu'il est dépassé, la requête continue et les téléchargements de skills restants continuent en arrière-plan |

263| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Définissez sur `false` pour désactiver la coloration syntaxique dans la sortie diff. Utile lorsque les couleurs interfèrent avec votre configuration de terminal. Pour désactiver également la coloration dans les blocs de code et les aperçus de fichiers, utilisez le paramètre [`syntaxHighlightingDisabled`](/fr/settings) |275| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Définissez sur `false` pour désactiver la coloration syntaxique dans la sortie diff. Utile lorsque les couleurs interfèrent avec votre configuration de terminal. Pour désactiver également la coloration dans les blocs de code et les aperçus de fichiers, utilisez le paramètre [`syntaxHighlightingDisabled`](/fr/settings) |

264| `CLAUDE_CODE_TASK_LIST_ID` | Partager une liste de tâches entre les sessions. Définissez le même ID dans plusieurs instances de Claude Code pour coordonner une liste de tâches partagée. Voir [Liste des tâches](/fr/interactive-mode#task-list) |276| `CLAUDE_CODE_TASK_LIST_ID` | Partager une liste de tâches entre les sessions. Définissez le même ID dans plusieurs instances de Claude Code pour coordonner une liste de tâches partagée. Voir [Liste des tâches](/fr/interactive-mode#task-list) |

265| `CLAUDE_CODE_TEAM_NAME` | Nom de l'équipe d'agents à laquelle appartient ce coéquipier. Défini automatiquement sur les membres de l'[équipe d'agents](/fr/agent-teams) |277| `CLAUDE_CODE_TEAM_NAME` | Nom de l'équipe d'agents à laquelle appartient ce coéquipier. Défini automatiquement sur les membres de l'[équipe d'agents](/fr/agent-teams) |

266| `CLAUDE_CODE_TMPDIR` | Remplacer le répertoire temporaire utilisé pour les fichiers temporaires internes. Claude Code ajoute `/claude-{uid}/` sur Unix ou `/claude/` sur Windows à ce chemin. Par défaut : `/tmp` sur macOS, `os.tmpdir()` sur Linux et Windows. {/* min-version: 2.1.161 */}À partir de v2.1.161, sur macOS et Linux, les sous-processus Bash reçoivent un `$TMPDIR` de secours court sous la valeur par défaut du système lorsque votre remplacement est un chemin long, car certains outils échouent lorsque les chemins temporaires deviennent trop longs. Les fichiers temporaires propres de Claude Code utilisent toujours votre remplacement |278| `CLAUDE_CODE_TMPDIR` | Remplacer le répertoire temporaire utilisé pour les fichiers temporaires internes. Claude Code ajoute `/claude-{uid}/` sur Unix ou `/claude/` sur Windows à ce chemin. Par défaut : `/tmp` sur macOS, `os.tmpdir()` sur Linux et Windows. {/* min-version: 2.1.161 */}À partir de v2.1.161, sur macOS et Linux, les sous-processus Bash [sandboxés](/fr/sandboxing) reçoivent un `$TMPDIR` de secours court sous la valeur par défaut du système lorsque votre remplacement est un chemin long, car certains outils échouent lorsque les chemins temporaires deviennent trop longs. Les commandes Bash non sandboxées héritent de votre `$TMPDIR` shell inchangé. Les fichiers temporaires propres de Claude Code utilisent toujours votre remplacement |

267| `CLAUDE_CODE_TMUX_TRUECOLOR` | Définissez sur `1` pour permettre la sortie truecolor 24 bits à l'intérieur de tmux. Par défaut, Claude Code limite à 256 couleurs lorsque `$TMUX` est défini car tmux ne transmet pas les séquences d'échappement truecolor à moins d'être configuré. Définissez ceci après avoir ajouté `set -ga terminal-overrides ',*:Tc'` à votre `~/.tmux.conf`. Voir [Configuration du terminal](/fr/terminal-config) pour d'autres paramètres tmux |279| `CLAUDE_CODE_TMUX_TRUECOLOR` | Définissez sur `1` pour permettre la sortie truecolor 24 bits à l'intérieur de tmux. Par défaut, Claude Code limite à 256 couleurs lorsque `$TMUX` est défini car tmux ne transmet pas les séquences d'échappement truecolor à moins d'être configuré. Définissez ceci après avoir ajouté `set -ga terminal-overrides ',*:Tc'` à votre `~/.tmux.conf`. Voir [Configuration du terminal](/fr/terminal-config) pour d'autres paramètres tmux |

268| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Utiliser [Claude Platform on AWS](/fr/claude-platform-on-aws) |280| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Utiliser [Claude Platform on AWS](/fr/claude-platform-on-aws) |

269| `CLAUDE_CODE_USE_BEDROCK` | Utiliser [Bedrock](/fr/amazon-bedrock) |281| `CLAUDE_CODE_USE_BEDROCK` | Utiliser [Bedrock](/fr/amazon-bedrock) |


274| `CLAUDE_CODE_USE_VERTEX` | Utiliser [Vertex](/fr/google-vertex-ai) |286| `CLAUDE_CODE_USE_VERTEX` | Utiliser [Vertex](/fr/google-vertex-ai) |

275| `CLAUDE_CONFIG_DIR` | Remplacer le répertoire de configuration (par défaut : `~/.claude`). Tous les paramètres, identifiants, historique de session et plugins sont stockés sous ce chemin. Utile pour exécuter plusieurs comptes côte à côte : par exemple, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |287| `CLAUDE_CONFIG_DIR` | Remplacer le répertoire de configuration (par défaut : `~/.claude`). Tous les paramètres, identifiants, historique de session et plugins sont stockés sous ce chemin. Utile pour exécuter plusieurs comptes côte à côte : par exemple, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |

276| `CLAUDE_EFFORT` | Défini automatiquement dans les sous-processus des outils Bash et les commandes hook au [niveau d'effort](/fr/model-config#adjust-effort-level) actif pour le tour : `low`, `medium`, `high`, `xhigh` ou `max`. Ultracode n'est pas un niveau distinct et rapporte comme `xhigh`. Correspond au champ `effort.level` passé aux [hooks](/fr/hooks). Défini uniquement lorsque le modèle actuel prend en charge le paramètre d'effort |288| `CLAUDE_EFFORT` | Défini automatiquement dans les sous-processus des outils Bash et les commandes hook au [niveau d'effort](/fr/model-config#adjust-effort-level) actif pour le tour : `low`, `medium`, `high`, `xhigh` ou `max`. Ultracode n'est pas un niveau distinct et rapporte comme `xhigh`. Correspond au champ `effort.level` passé aux [hooks](/fr/hooks). Défini uniquement lorsque le modèle actuel prend en charge le paramètre d'effort |

277| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Définissez sur `1` pour forcer l'activation du chien de garde d'inactivité au niveau des octets, ou définissez sur `0` pour forcer la désactivation. Lorsqu'il n'est pas défini, le chien de garde est activé par défaut pour les connexions API Anthropic. Le chien de garde d'octets abandonne une connexion lorsqu'aucun octet n'arrive sur le fil pendant la durée définie par `CLAUDE_STREAM_IDLE_TIMEOUT_MS`, avec un minimum de 5 minutes, indépendamment du chien de garde au niveau des événements |289| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Définissez sur `1` pour forcer l'activation du chien de garde d'inactivité au niveau des octets, ou définissez sur `0` pour forcer la désactivation. Lorsqu'il n'est pas défini, le chien de garde est activé par défaut pour les connexions API Anthropic directes et [Claude Platform on AWS](/fr/claude-platform-on-aws). Le chien de garde d'octets abandonne une connexion lorsqu'aucun octet n'arrive sur le fil pendant 180 secondes par défaut sur les connexions API Anthropic directes, 300 secondes sur Claude Platform on AWS et lorsqu'il est activé sur Bedrock, ou pour la valeur de `CLAUDE_STREAM_IDLE_TIMEOUT_MS` lorsqu'elle est définie, qui est limitée à un minimum de 5 minutes, indépendamment du chien de garde au niveau des événements |

278| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Définissez sur `1` pour activer le chien de garde d'inactivité de streaming au niveau des octets sur les réponses Amazon Bedrock `vnd.amazon.eventstream`. Désactivé par défaut. Configurez le délai d'expiration avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |290| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Définissez sur `1` pour activer le chien de garde d'inactivité de streaming au niveau des octets sur les réponses Amazon Bedrock `vnd.amazon.eventstream`. Désactivé par défaut. Configurez le délai d'expiration avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

279| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Définissez sur `1` pour activer le chien de garde d'inactivité de streaming au niveau des événements. Désactivé par défaut. S'applique à tous les fournisseurs, y compris Bedrock. Pour Vertex et Foundry, c'est le seul chien de garde d'inactivité disponible. Sur Bedrock, vous pouvez également activer le chien de garde indépendant au niveau des octets avec `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` ; les deux s'exécutent ensemble lorsque les deux sont définis. Configurez le délai d'expiration avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |291| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Définissez sur `1` pour forcer l'activation du chien de garde d'inactivité de streaming au niveau des événements, ou définissez sur `0` pour forcer la désactivation. Lorsqu'il n'est pas défini, la valeur par défaut est contrôlée par le serveur sur l'API Anthropic directe et désactivée sur les autres fournisseurs. {/* min-version: 2.1.169 */}À partir de v2.1.169, les fournisseurs autres que l'API Anthropic directe et Claude Platform on AWS ont également un délai d'expiration d'inactivité du corps de 5 minutes par défaut indépendant de cette variable ; voir `API_FORCE_IDLE_TIMEOUT`. Sur Bedrock, vous pouvez également activer le chien de garde indépendant au niveau des octets avec `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` ; les deux s'exécutent ensemble lorsque les deux sont définis. Configurez le délai d'expiration avec `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

280| `CLAUDE_ENV_FILE` | Chemin d'accès à un script shell dont le contenu Claude Code exécute avant chaque commande Bash dans le même processus shell, de sorte que les exports du fichier sont visibles pour la commande. À utiliser pour persister l'activation de virtualenv ou conda entre les commandes. Également rempli dynamiquement par les hooks [SessionStart](/fr/hooks#persist-environment-variables), [Setup](/fr/hooks#setup), [CwdChanged](/fr/hooks#cwdchanged) et [FileChanged](/fr/hooks#filechanged) |292| `CLAUDE_ENV_FILE` | Chemin d'accès à un script shell dont le contenu Claude Code exécute avant chaque commande Bash dans le même processus shell, de sorte que les exports du fichier sont visibles pour la commande. À utiliser pour persister l'activation de virtualenv ou conda entre les commandes. Également rempli dynamiquement par les hooks [SessionStart](/fr/hooks#persist-environment-variables), [Setup](/fr/hooks#setup), [CwdChanged](/fr/hooks#cwdchanged) et [FileChanged](/fr/hooks#filechanged) |

281| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Préfixe pour les noms de session [Contrôle à distance](/fr/remote-control) générés automatiquement lorsqu'aucun nom explicite n'est fourni. Par défaut, le nom d'hôte de votre machine, produisant des noms comme `myhost-graceful-unicorn`. Le drapeau CLI `--remote-control-session-name-prefix` définit la même valeur pour une seule invocation |293| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Préfixe pour les noms de session [Contrôle à distance](/fr/remote-control) générés automatiquement lorsqu'aucun nom explicite n'est fourni. Par défaut, le nom d'hôte de votre machine, produisant des noms comme `myhost-graceful-unicorn`. Le drapeau CLI `--remote-control-session-name-prefix` définit la même valeur pour une seule invocation |

282| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Délai d'expiration en millisecondes avant que le chien de garde d'inactivité de streaming ferme une connexion bloquée. Par défaut et minimum `300000` (5 minutes) pour les deux chiens de garde au niveau des octets et au niveau des événements ; les valeurs inférieures sont silencieusement limitées pour absorber les pauses de réflexion étendue et la mise en mémoire tampon du proxy. Pour les fournisseurs tiers, nécessite `CLAUDE_ENABLE_STREAM_WATCHDOG=1`. Sur Bedrock, s'applique également lorsque `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` |294| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Délai d'expiration en millisecondes avant que le chien de garde d'inactivité de streaming ferme une connexion bloquée. Lorsque vous définissez cette variable explicitement, le minimum est `300000` (5 minutes) ; les valeurs inférieures sont silencieusement limitées pour absorber les pauses de réflexion étendue et la mise en mémoire tampon du proxy. Lorsqu'il n'est pas défini, le chien de garde au niveau des événements par défaut à 300 secondes et le chien de garde au niveau des octets par défaut à 180 secondes sur les connexions API Anthropic directes (300 secondes sur Claude Platform on AWS et les autres fournisseurs). La valeur par défaut non définie de 180 secondes du chien de garde au niveau des octets est une valeur distincte et n'est pas soumise à la limite de 5 minutes. Pour le chien de garde au niveau des événements sur les fournisseurs tiers, nécessite `CLAUDE_ENABLE_STREAM_WATCHDOG=1` ; le délai d'expiration d'inactivité du corps décrit sous `API_FORCE_IDLE_TIMEOUT` s'applique indépendamment. Sur Bedrock, s'applique également lorsque `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` |

283| `DEBUG` | Définissez sur `1` pour activer le mode débogage, équivalent au lancement avec [`--debug`](/fr/cli-reference#cli-flags). Les journaux de débogage sont écrits dans `~/.claude/debug/<session-id>.txt`, ou dans le chemin défini par `CLAUDE_CODE_DEBUG_LOGS_DIR`. Seules les valeurs véridiques `1`, `true`, `yes` et `on` activent le mode débogage, donc les modèles d'espace de noms comme `DEBUG=express:*` définis pour d'autres outils ne le déclenchent pas |295| `DEBUG` | Définissez sur `1` pour activer le mode débogage, équivalent au lancement avec [`--debug`](/fr/cli-reference#cli-flags). Les journaux de débogage sont écrits dans `~/.claude/debug/<session-id>.txt`, ou dans le chemin défini par `CLAUDE_CODE_DEBUG_LOGS_DIR`. Seules les valeurs véridiques `1`, `true`, `yes` et `on` activent le mode débogage, donc les modèles d'espace de noms comme `DEBUG=express:*` définis pour d'autres outils ne le déclenchent pas |

284| `DISABLE_AUTOUPDATER` | Définissez sur `1` pour désactiver les mises à jour automatiques en arrière-plan. La commande manuelle `claude update` fonctionne toujours. Utilisez `DISABLE_UPDATES` pour bloquer les deux |296| `DISABLE_AUTOUPDATER` | Définissez sur `1` pour désactiver les mises à jour automatiques en arrière-plan. La commande manuelle `claude update` fonctionne toujours. Utilisez `DISABLE_UPDATES` pour bloquer les deux |

285| `DISABLE_AUTO_COMPACT` | Définissez sur `1` pour désactiver le compactage automatique lorsque vous approchez de la limite de contexte. La commande manuelle `/compact` reste disponible. À utiliser lorsque vous souhaitez un contrôle explicite sur le moment du compactage |297| `DISABLE_AUTO_COMPACT` | Définissez sur `1` pour désactiver le compactage automatique lorsque vous approchez de la limite de contexte. La commande manuelle `/compact` reste disponible. À utiliser lorsque vous souhaitez un contrôle explicite sur le moment du compactage |


295| `DISABLE_INTERLEAVED_THINKING` | Définissez sur `1` pour empêcher l'envoi de l'en-tête bêta de réflexion entrelacée. Utile lorsque votre passerelle LLM ou fournisseur ne prend pas en charge la [réflexion entrelacée](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |307| `DISABLE_INTERLEAVED_THINKING` | Définissez sur `1` pour empêcher l'envoi de l'en-tête bêta de réflexion entrelacée. Utile lorsque votre passerelle LLM ou fournisseur ne prend pas en charge la [réflexion entrelacée](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

296| `DISABLE_LOGIN_COMMAND` | Définissez sur `1` pour masquer la commande `/login`. Utile lorsque l'authentification est gérée en externe via des clés API ou `apiKeyHelper` |308| `DISABLE_LOGIN_COMMAND` | Définissez sur `1` pour masquer la commande `/login`. Utile lorsque l'authentification est gérée en externe via des clés API ou `apiKeyHelper` |

297| `DISABLE_LOGOUT_COMMAND` | Définissez sur `1` pour masquer la commande `/logout` |309| `DISABLE_LOGOUT_COMMAND` | Définissez sur `1` pour masquer la commande `/logout` |

298| `DISABLE_PROMPT_CACHING` | Définissez sur `1` pour désactiver la mise en cache des invites pour tous les modèles (prend la priorité sur les paramètres par modèle) |310| `DISABLE_PROMPT_CACHING` | Définissez sur `1` pour désactiver la [mise en cache des invites](/fr/prompt-caching#disable-prompt-caching) pour tous les modèles (prend la priorité sur les paramètres par modèle) |

311| `DISABLE_PROMPT_CACHING_FABLE` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Fable |

299| `DISABLE_PROMPT_CACHING_HAIKU` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Haiku |312| `DISABLE_PROMPT_CACHING_HAIKU` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Haiku |

300| `DISABLE_PROMPT_CACHING_OPUS` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Opus |313| `DISABLE_PROMPT_CACHING_OPUS` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Opus |

301| `DISABLE_PROMPT_CACHING_SONNET` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Sonnet |314| `DISABLE_PROMPT_CACHING_SONNET` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Sonnet |


307| `ENABLE_PROMPT_CACHING_1H` | Définissez sur `1` pour demander une TTL de cache d'invite d'une heure au lieu des 5 minutes par défaut. Destiné aux utilisateurs de clé API, [Bedrock](/fr/amazon-bedrock), [Vertex](/fr/google-vertex-ai), [Foundry](/fr/microsoft-foundry) et [Claude Platform on AWS](/fr/claude-platform-on-aws). Les utilisateurs d'abonnement reçoivent automatiquement une TTL d'une heure. Les écritures de cache d'une heure sont facturées à un taux plus élevé |320| `ENABLE_PROMPT_CACHING_1H` | Définissez sur `1` pour demander une TTL de cache d'invite d'une heure au lieu des 5 minutes par défaut. Destiné aux utilisateurs de clé API, [Bedrock](/fr/amazon-bedrock), [Vertex](/fr/google-vertex-ai), [Foundry](/fr/microsoft-foundry) et [Claude Platform on AWS](/fr/claude-platform-on-aws). Les utilisateurs d'abonnement reçoivent automatiquement une TTL d'une heure. Les écritures de cache d'une heure sont facturées à un taux plus élevé |

308| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Déprécié. Utilisez `ENABLE_PROMPT_CACHING_1H` à la place |321| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Déprécié. Utilisez `ENABLE_PROMPT_CACHING_1H` à la place |

309| `ENABLE_TOOL_SEARCH` | Contrôle la [recherche d'outils MCP](/fr/mcp#scale-with-mcp-tool-search). Non défini : tous les outils MCP différés par défaut, mais chargés en amont sur Vertex AI ou lorsque `ANTHROPIC_BASE_URL` pointe vers un hôte non-first-party. Valeurs : `true` (toujours différer et envoyer l'en-tête bêta, les requêtes échouent sur les modèles Vertex AI antérieurs à Sonnet 4.5 ou Opus 4.5, ou sur les proxies qui ne prennent pas en charge `tool_reference`), `auto` (mode seuil : charger en amont si les outils s'ajustent dans 10 % du contexte), `auto:N` (seuil personnalisé, par exemple, `auto:5` pour 5 %), `false` (charger tous en amont) |322| `ENABLE_TOOL_SEARCH` | Contrôle la [recherche d'outils MCP](/fr/mcp#scale-with-mcp-tool-search). Non défini : tous les outils MCP différés par défaut, mais chargés en amont sur Vertex AI ou lorsque `ANTHROPIC_BASE_URL` pointe vers un hôte non-first-party. Valeurs : `true` (toujours différer et envoyer l'en-tête bêta, les requêtes échouent sur les modèles Vertex AI antérieurs à Sonnet 4.5 ou Opus 4.5, ou sur les proxies qui ne prennent pas en charge `tool_reference`), `auto` (mode seuil : charger en amont si les outils s'ajustent dans 10 % du contexte), `auto:N` (seuil personnalisé, par exemple, `auto:5` pour 5 %), `false` (charger tous en amont) |

310| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Définissez sur n'importe quelle valeur non vide pour déclencher le basculement vers [`--fallback-model`](/fr/cli-reference#cli-flags) après des erreurs de surcharge répétées sur n'importe quel modèle principal. Par défaut, seuls les modèles Opus déclenchent le basculement |323| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Définissez sur n'importe quelle valeur non vide pour faire arrêter tous les modèles, pas seulement Opus, de réessayer avec une erreur de surcharge répétée lorsqu'aucun modèle de secours n'est configuré. {/* min-version: 2.1.160 */}À partir de v2.1.160, une [chaîne de modèles de secours](/fr/model-config#fallback-model-chains) configurée se déclenche sur les erreurs de surcharge répétées pour n'importe quel modèle principal, de sorte que cette variable n'affecte pas le basculement vers un modèle de secours |

311| `FORCE_AUTOUPDATE_PLUGINS` | Définissez sur `1` pour forcer les mises à jour automatiques des plugins même lorsque la mise à jour automatique principale est désactivée via `DISABLE_AUTOUPDATER` |324| `FORCE_AUTOUPDATE_PLUGINS` | Définissez sur `1` pour forcer les mises à jour automatiques des plugins même lorsque la mise à jour automatique principale est désactivée via `DISABLE_AUTOUPDATER` |

312| `FORCE_PROMPT_CACHING_5M` | Définissez sur `1` pour forcer la TTL de cache d'invite de 5 minutes même lorsque la TTL d'une heure s'appliquerait autrement. Remplace `ENABLE_PROMPT_CACHING_1H` |325| `FORCE_PROMPT_CACHING_5M` | Définissez sur `1` pour forcer la TTL de cache d'invite de 5 minutes même lorsque la TTL d'une heure s'appliquerait autrement. Remplace `ENABLE_PROMPT_CACHING_1H` |

313| `HTTP_PROXY` | Spécifier le serveur proxy HTTP pour les connexions réseau |326| `HTTP_PROXY` | Spécifier le serveur proxy HTTP pour les connexions réseau |


315| `IS_DEMO` | Définissez sur `1` pour activer le mode démo : masque votre e-mail et le nom de l'organisation de l'en-tête et de la sortie `/status`, et ignore l'intégration. Utile pour la diffusion en continu ou l'enregistrement d'une session |328| `IS_DEMO` | Définissez sur `1` pour activer le mode démo : masque votre e-mail et le nom de l'organisation de l'en-tête et de la sortie `/status`, et ignore l'intégration. Utile pour la diffusion en continu ou l'enregistrement d'une session |

316| `MAX_MCP_OUTPUT_TOKENS` | Nombre maximal de tokens autorisés dans les réponses des outils MCP. Claude Code affiche un avertissement lorsque la sortie dépasse 10 000 tokens. Les outils qui déclarent [`anthropic/maxResultSizeChars`](/fr/mcp#raise-the-limit-for-a-specific-tool) utilisent cette limite de caractères pour le contenu textuel à la place, mais le contenu d'image de ces outils est toujours soumis à cette variable (par défaut : 25 000) |329| `MAX_MCP_OUTPUT_TOKENS` | Nombre maximal de tokens autorisés dans les réponses des outils MCP. Claude Code affiche un avertissement lorsque la sortie dépasse 10 000 tokens. Les outils qui déclarent [`anthropic/maxResultSizeChars`](/fr/mcp#raise-the-limit-for-a-specific-tool) utilisent cette limite de caractères pour le contenu textuel à la place, mais le contenu d'image de ces outils est toujours soumis à cette variable (par défaut : 25 000) |

317| `MAX_STRUCTURED_OUTPUT_RETRIES` | Nombre de fois pour réessayer lorsque la réponse du modèle échoue la validation par rapport au [`--json-schema`](/fr/cli-reference#cli-flags) en mode non interactif (l'indicateur `-p`). Par défaut 5 |330| `MAX_STRUCTURED_OUTPUT_RETRIES` | Nombre de fois pour réessayer lorsque la réponse du modèle échoue la validation par rapport au [`--json-schema`](/fr/cli-reference#cli-flags) en mode non interactif (l'indicateur `-p`). Par défaut 5 |

318| `MAX_THINKING_TOKENS` | Remplacer le budget de tokens de [réflexion étendue](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Le plafond est le [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) du modèle moins un. Définissez sur `0` pour désactiver complètement la réflexion. Sur les modèles avec [raisonnement adaptatif](/fr/model-config#adjust-effort-level), le budget est ignoré sauf si le raisonnement adaptatif est désactivé via `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` |331| `MAX_THINKING_TOKENS` | Remplacer le budget de tokens de [réflexion étendue](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Le plafond est le [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) du modèle moins un. Définissez sur `0` pour désactiver la réflexion sur l'API Anthropic sauf sur Fable 5, qui ne peut pas avoir la réflexion désactivée. Sur les [fournisseurs tiers](/fr/third-party-integrations), `0` omet le paramètre `thinking` à la place, et les modèles avec [raisonnement adaptatif](/fr/model-config#adjust-effort-level) peuvent toujours penser. Pour les valeurs non nulles sur les modèles de raisonnement adaptatif, le budget est ignoré sauf si le raisonnement adaptatif est désactivé via `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` |

319| `MCP_CLIENT_SECRET` | Secret client OAuth pour les serveurs MCP qui nécessitent des [identifiants préconfigurés](/fr/mcp#use-pre-configured-oauth-credentials). Évite l'invite interactive lors de l'ajout d'un serveur avec `--client-secret` |332| `MCP_CLIENT_SECRET` | Secret client OAuth pour les serveurs MCP qui nécessitent des [identifiants préconfigurés](/fr/mcp#use-pre-configured-oauth-credentials). Évite l'invite interactive lors de l'ajout d'un serveur avec `--client-secret` |

320| `MCP_CONNECTION_NONBLOCKING` | Contrôle si le démarrage attend les serveurs MCP pour se connecter avant la première requête. {/* min-version: 2.1.142 */}À partir de Claude Code v2.1.142, le démarrage MCP est non-bloquant par défaut : les serveurs se connectent en arrière-plan et leurs outils deviennent disponibles au fur et à mesure qu'ils se terminent. Définissez sur `0` pour restaurer l'attente de connexion bloquante de 5 secondes. Les serveurs configurés avec [`alwaysLoad: true`](/fr/mcp#exempt-a-server-from-deferral) bloquent toujours le démarrage indépendamment, car leurs outils doivent être présents lorsque la première invite est construite |333| `MCP_CONNECTION_NONBLOCKING` | Contrôle si le démarrage attend les serveurs MCP pour se connecter avant la première requête. {/* min-version: 2.1.142 */}À partir de Claude Code v2.1.142, le démarrage MCP est non-bloquant par défaut : les serveurs se connectent en arrière-plan et leurs outils deviennent disponibles au fur et à mesure qu'ils se terminent. Définissez sur `0` pour restaurer l'attente de connexion bloquante de 5 secondes. Les serveurs configurés avec [`alwaysLoad: true`](/fr/mcp#exempt-a-server-from-deferral) bloquent toujours le démarrage indépendamment, car leurs outils doivent être présents lorsque la première invite est construite |

321| `MCP_CONNECT_TIMEOUT_MS` | Combien de temps l'attente de démarrage bloquante pour MCP, en millisecondes, pour le lot de connexion avant de prendre un instantané de la liste d'outils (par défaut : 5 000). S'applique lorsque `MCP_CONNECTION_NONBLOCKING=0` ou pour les serveurs marqués [`alwaysLoad: true`](/fr/mcp#exempt-a-server-from-deferral). Les serveurs toujours en attente à la date limite continuent à se connecter en arrière-plan mais n'apparaîtront pas jusqu'à la requête suivante. Distinct de `MCP_TIMEOUT`, qui limite la tentative de connexion d'un serveur individuel |334| `MCP_CONNECT_TIMEOUT_MS` | Combien de temps l'attente de démarrage bloquante pour MCP, en millisecondes, pour le lot de connexion avant de prendre un instantané de la liste d'outils (par défaut : 5 000). S'applique lorsque `MCP_CONNECTION_NONBLOCKING=0` ou pour les serveurs marqués [`alwaysLoad: true`](/fr/mcp#exempt-a-server-from-deferral). Les serveurs toujours en attente à la date limite continuent à se connecter en arrière-plan mais n'apparaîtront pas jusqu'à la requête suivante. Distinct de `MCP_TIMEOUT`, qui limite la tentative de connexion d'un serveur individuel |


323| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Nombre maximal de serveurs MCP distants (HTTP/SSE) à connecter en parallèle au démarrage (par défaut : 20) |336| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Nombre maximal de serveurs MCP distants (HTTP/SSE) à connecter en parallèle au démarrage (par défaut : 20) |

324| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Nombre maximal de serveurs MCP locaux (stdio) à connecter en parallèle au démarrage (par défaut : 3) |337| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Nombre maximal de serveurs MCP locaux (stdio) à connecter en parallèle au démarrage (par défaut : 3) |

325| `MCP_TIMEOUT` | Délai d'expiration en millisecondes pour le démarrage du serveur MCP (par défaut : 30 000, ou 30 secondes) |338| `MCP_TIMEOUT` | Délai d'expiration en millisecondes pour le démarrage du serveur MCP (par défaut : 30 000, ou 30 secondes) |

326| `MCP_TOOL_TIMEOUT` | Délai d'expiration en millisecondes pour l'exécution de l'outil MCP (par défaut : 100 000 000, environ 28 heures). Un champ `timeout` par serveur dans `.mcp.json` remplace ceci pour ce serveur. Les valeurs inférieures à 1 000 sont arrondies à une seconde |339| `MCP_TOOL_TIMEOUT` | Délai d'expiration en millisecondes pour l'exécution de l'outil MCP (par défaut : 100 000 000, environ 28 heures). Un champ `timeout` par serveur dans `.mcp.json` remplace ceci pour ce serveur. Pour la variable env, les valeurs inférieures à 1 000 sont arrondies à une seconde ; pour le champ par serveur, les valeurs inférieures à 1 000 sont ignorées |

327| `NO_PROXY` | Liste des domaines et adresses IP vers lesquels les requêtes seront émises directement, en contournant le proxy |340| `NO_PROXY` | Liste des domaines et adresses IP vers lesquels les requêtes seront émises directement, en contournant le proxy |

328| `OTEL_LOG_RAW_API_BODIES` | Émettre la requête et la réponse JSON complètes de l'API Anthropic Messages en tant qu'événements de journal `api_request_body` / `api_response_body`. Définissez sur `1` pour les corps en ligne tronqués à 60 Ko, ou `file:<dir>` pour écrire les corps non tronqués sur le disque et émettre une référence de chemin `body_ref` à la place. Désactivé par défaut ; les corps incluent l'historique complet de la conversation. Voir [Surveillance](/fr/monitoring-usage#api-request-body-event) |341| `OTEL_LOG_RAW_API_BODIES` | Émettre la requête et la réponse JSON complètes de l'API Anthropic Messages en tant qu'événements de journal `api_request_body` / `api_response_body`. Définissez sur `1` pour les corps en ligne tronqués à 60 Ko, ou `file:<dir>` pour écrire les corps non tronqués sur le disque et émettre une référence de chemin `body_ref` à la place. Désactivé par défaut ; les corps incluent l'historique complet de la conversation. Voir [Surveillance](/fr/monitoring-usage#api-request-body-event) |

329| `OTEL_LOG_TOOL_CONTENT` | Définissez sur `1` pour inclure le contenu d'entrée et de sortie d'outil dans les événements d'intervalle OpenTelemetry. Désactivé par défaut pour protéger les données sensibles. Voir [Surveillance](/fr/monitoring-usage) |342| `OTEL_LOG_TOOL_CONTENT` | Définissez sur `1` pour inclure le contenu d'entrée et de sortie d'outil dans les événements d'intervalle OpenTelemetry. Désactivé par défaut pour protéger les données sensibles. Voir [Surveillance](/fr/monitoring-usage) |


348| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Remplacer la région pour Claude Opus 4.6 lors de l'utilisation de Vertex AI |361| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Remplacer la région pour Claude Opus 4.6 lors de l'utilisation de Vertex AI |

349| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Remplacer la région pour Claude Sonnet 4.6 lors de l'utilisation de Vertex AI |362| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Remplacer la région pour Claude Sonnet 4.6 lors de l'utilisation de Vertex AI |

350| `VERTEX_REGION_CLAUDE_4_7_OPUS` | {/* min-version: 2.1.111 */}Remplacer la région pour Claude Opus 4.7 lors de l'utilisation de Vertex AI. Ajouté dans v2.1.111 |363| `VERTEX_REGION_CLAUDE_4_7_OPUS` | {/* min-version: 2.1.111 */}Remplacer la région pour Claude Opus 4.7 lors de l'utilisation de Vertex AI. Ajouté dans v2.1.111 |

364| `VERTEX_REGION_CLAUDE_4_8_OPUS` | {/* min-version: 2.1.154 */}Remplacer la région pour Claude Opus 4.8 lors de l'utilisation de Vertex AI. Ajouté dans v2.1.154 |

365| `VERTEX_REGION_CLAUDE_FABLE_5` | {/* min-version: 2.1.170 */}Remplacer la région pour Claude Fable 5 lors de l'utilisation de Vertex AI. Ajouté dans v2.1.170 |

351| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Remplacer la région pour Claude Haiku 4.5 lors de l'utilisation de Vertex AI |366| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Remplacer la région pour Claude Haiku 4.5 lors de l'utilisation de Vertex AI |

352 367 

353Les variables d'exportateur OpenTelemetry standard (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` et les variantes spécifiques au signal) sont également prises en charge. Voir [Surveillance](/fr/monitoring-usage) pour les détails de configuration.368Les variables d'exportateur OpenTelemetry standard (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` et les variantes spécifiques au signal) sont également prises en charge. Voir [Surveillance](/fr/monitoring-usage) pour les détails de configuration.

errors.md +201 −50

Details

14 Claude Code appelle l'API Claude pour les réponses du modèle, donc la plupart des erreurs d'exécution correspondent à un code d'erreur API sous-jacent. Cette page couvre ce que chaque erreur signifie dans Claude Code et comment récupérer. Pour les définitions brutes du code de statut HTTP, consultez la [référence des erreurs de la plateforme Claude](https://platform.claude.com/docs/en/api/errors).14 Claude Code appelle l'API Claude pour les réponses du modèle, donc la plupart des erreurs d'exécution correspondent à un code d'erreur API sous-jacent. Cette page couvre ce que chaque erreur signifie dans Claude Code et comment récupérer. Pour les définitions brutes du code de statut HTTP, consultez la [référence des erreurs de la plateforme Claude](https://platform.claude.com/docs/en/api/errors).

15</Note>15</Note>

16 16 

17## Trouvez votre erreur17<h2 id="find-your-error">

18 Trouvez votre erreur

19</h2>

18 20 

19Faites correspondre le message que vous voyez dans votre terminal à une section ci-dessous.21Faites correspondre le message que vous voyez dans votre terminal à une section ci-dessous.

20 22 


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

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

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

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

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

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

31| `Request rejected (429)` | [Limites d'utilisation](#request-rejected-429) |34| `Request rejected (429)` | [Limites d'utilisation](#request-rejected-429) |

32| `Credit balance is too low` | [Limites d'utilisation](#credit-balance-is-too-low) |35| `Credit balance is too low` | [Limites d'utilisation](#credit-balance-is-too-low) |

33| `Not logged in · Please run /login` | [Authentification](#not-logged-in) |36| `Not logged in · Please run /login` | [Authentification](#not-logged-in) |

37| `Could not resolve authentication method` | [Authentification](#could-not-resolve-authentication-method) |

34| `Invalid API key` | [Authentification](#invalid-api-key) |38| `Invalid API key` | [Authentification](#invalid-api-key) |

35| `This organization has been disabled` | [Authentification](#this-organization-has-been-disabled) |39| `This organization has been disabled` | [Authentification](#this-organization-has-been-disabled) |

40| `Your organization has disabled API key authentication` | [Authentification](#your-organization-has-disabled-api-key-authentication) |

36| `Your organization has disabled Claude subscription access` | [Authentification](#your-organization-has-disabled-claude-subscription-access) |41| `Your organization has disabled Claude subscription access` | [Authentification](#your-organization-has-disabled-claude-subscription-access) |

37| `Routines are disabled by your organization's policy` | [Authentification](#routines-are-disabled-by-your-organizations-policy) |42| `Routines are disabled by your organization's policy` | [Authentification](#routines-are-disabled-by-your-organization%E2%80%99s-policy) |

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

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

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


47| `Unable to resize image` | [Erreurs de requête](#unable-to-resize-image) |52| `Unable to resize image` | [Erreurs de requête](#unable-to-resize-image) |

48| `PDF too large` / `PDF is password protected` | [Erreurs de requête](#pdf-errors) |53| `PDF too large` / `PDF is password protected` | [Erreurs de requête](#pdf-errors) |

49| `Extra inputs are not permitted` | [Erreurs de requête](#extra-inputs-are-not-permitted) |54| `Extra inputs are not permitted` | [Erreurs de requête](#extra-inputs-are-not-permitted) |

50| `There's an issue with the selected model` | [Erreurs de requête](#theres-an-issue-with-the-selected-model) |55| `There's an issue with the selected model` | [Erreurs de requête](#there%E2%80%99s-an-issue-with-the-selected-model) |

51| `Claude Opus is not available with the Claude Pro plan` | [Erreurs de requête](#claude-opus-is-not-available-with-the-claude-pro-plan) |56| `Claude Opus is not available with the Claude Pro plan` | [Erreurs de requête](#claude-opus-is-not-available-with-the-claude-pro-plan) |

52| `thinking.type.enabled is not supported for this model` | [Erreurs de requête](#thinking-type-enabled-is-not-supported-for-this-model) |57| `thinking.type.enabled is not supported for this model` | [Erreurs de requête](#thinking-type-enabled-is-not-supported-for-this-model) |

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


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

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

57 62 

58## Tentatives automatiques63<h2 id="automatic-retries">

64 Tentatives automatiques

65</h2>

59 66 

60Claude Code réessaie les défaillances transitoires avant de vous afficher une erreur. Les erreurs serveur, les réponses surchargées, les délais d'attente des requêtes, les accélérateurs 429 temporaires et les connexions interrompues sont tous réessayés jusqu'à 10 fois avec un backoff exponentiel. Lors des tentatives, le spinner affiche un compte à rebours `Retrying in Ns · attempt x/y`.67Claude Code réessaie les défaillances transitoires avant de vous afficher une erreur. Les erreurs serveur, les réponses surchargées, les délais d'attente des requêtes, les accélérateurs 429 temporaires et les connexions interrompues sont tous réessayés jusqu'à 10 fois avec un backoff exponentiel. Lors des tentatives, le spinner affiche un compte à rebours `Retrying in Ns · attempt x/y`.

61 68 


66| [`CLAUDE_CODE_MAX_RETRIES`](/fr/env-vars) | 10 | Nombre de tentatives. Réduisez-le pour afficher les défaillances plus rapidement dans les scripts ; augmentez-le pour attendre les incidents plus longs. |73| [`CLAUDE_CODE_MAX_RETRIES`](/fr/env-vars) | 10 | Nombre de tentatives. Réduisez-le pour afficher les défaillances plus rapidement dans les scripts ; augmentez-le pour attendre les incidents plus longs. |

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

68 75 

69## Erreurs serveur76<h2 id="server-errors">

77 Erreurs serveur

78</h2>

70 79 

71Ces erreurs proviennent du fournisseur d'inférence plutôt que de votre compte ou de votre requête. Sur l'API Anthropic, cela signifie l'infrastructure Anthropic. Sur Bedrock, Vertex AI, Foundry ou une passerelle personnalisée, cela signifie l'infrastructure de ce fournisseur.80Ces erreurs proviennent du fournisseur d'inférence plutôt que de votre compte ou de votre requête. Sur l'API Anthropic, cela signifie l'infrastructure Anthropic. Sur Bedrock, Vertex AI, Foundry ou une passerelle personnalisée, cela signifie l'infrastructure de ce fournisseur.

72 81 

73### API Error: 500 Internal server error82<h3 id="api-error-500-internal-server-error">

83 API Error: 500 Internal server error

84</h3>

74 85 

75Claude Code affiche le code de statut et le message d'erreur de l'API pour toute réponse 5xx. L'exemple ci-dessous montre une réponse 500 sur l'API Anthropic :86Claude Code affiche le code de statut et le message d'erreur de l'API pour toute réponse 5xx. L'exemple ci-dessous montre une réponse 500 sur l'API Anthropic :

76 87 


88* Attendez une minute, puis envoyez votre message à nouveau. Votre message original est toujours dans la conversation, donc pour un long prompt vous pouvez taper `try again` au lieu de coller le tout.99* Attendez une minute, puis envoyez votre message à nouveau. Votre message original est toujours dans la conversation, donc pour un long prompt vous pouvez taper `try again` au lieu de coller le tout.

89* Si l'erreur persiste sans incident affiché, exécutez `/feedback` pour qu'Anthropic puisse enquêter avec les détails de votre requête. Consultez [Signaler une erreur](#report-an-error) si `/feedback` n'est pas disponible dans votre environnement.100* Si l'erreur persiste sans incident affiché, exécutez `/feedback` pour qu'Anthropic puisse enquêter avec les détails de votre requête. Consultez [Signaler une erreur](#report-an-error) si `/feedback` n'est pas disponible dans votre environnement.

90 101 

91### API Error: Repeated 529 Overloaded errors102<h3 id="api-error-repeated-529-overloaded-errors">

103 API Error: Repeated 529 Overloaded errors

104</h3>

92 105 

93L'API est temporairement à pleine capacité pour tous les utilisateurs. Claude Code a déjà réessayé plusieurs fois avant d'afficher ce message :106L'API est temporairement à pleine capacité pour tous les utilisateurs. Claude Code a déjà réessayé plusieurs fois avant d'afficher ce message :

94 107 


104* Réessayez dans quelques minutes117* Réessayez dans quelques minutes

105* Exécutez `/model` et basculez vers un modèle différent pour continuer à travailler, car la capacité est suivie par modèle. Claude Code vous invite à le faire lorsqu'un modèle est sous une charge particulièrement élevée, par exemple `Opus is experiencing high load, please use /model to switch to Sonnet`.118* Exécutez `/model` et basculez vers un modèle différent pour continuer à travailler, car la capacité est suivie par modèle. Claude Code vous invite à le faire lorsqu'un modèle est sous une charge particulièrement élevée, par exemple `Opus is experiencing high load, please use /model to switch to Sonnet`.

106 119 

107### Request timed out120<h3 id="request-timed-out">

121 Request timed out

122</h3>

108 123 

109L'API n'a pas répondu avant la date limite de connexion.124L'API n'a pas répondu avant la date limite de connexion.

110 125 


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

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

123 138 

124### Auto mode cannot determine the safety of an action139<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">

140 Auto mode cannot determine the safety of an action

141</h3>

125 142 

126Le modèle que le [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) utilise pour classer les actions n'a pas pu produire une décision, donc le mode auto n'a pas approuvé l'action automatiquement. Le message que vous voyez dépend de la raison pour laquelle le classificateur a échoué.143Le modèle que le [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) utilise pour classer les actions n'a pas pu produire une décision, donc le mode auto n'a pas approuvé l'action automatiquement. Le message que vous voyez dépend de la raison pour laquelle le classificateur a échoué.

127 144 


163* Approuvez ou refusez l'action dans l'invite qui apparaît180* Approuvez ou refusez l'action dans l'invite qui apparaît

164* Exécutez `/compact` pour réduire la taille de la conversation afin que les actions suivantes s'ajustent à nouveau dans la fenêtre du classificateur181* Exécutez `/compact` pour réduire la taille de la conversation afin que les actions suivantes s'ajustent à nouveau dans la fenêtre du classificateur

165 182 

166## Limites d'utilisation183<h2 id="usage-limits">

184 Limites d'utilisation

185</h2>

167 186 

168Ces erreurs signifient qu'un quota lié à votre compte ou à votre plan a été atteint. Elles sont distinctes des [erreurs serveur](#server-errors), qui affectent tout le monde.187Ces erreurs signifient qu'un quota lié à votre compte ou à votre plan a été atteint. Elles sont distinctes des [erreurs serveur](#server-errors), qui affectent tout le monde.

169 188 

170### Vous avez atteint votre limite de session189<h3 id="you’ve-hit-your-session-limit">

190 Vous avez atteint votre limite de session

191</h3>

171 192 

172Les plans d'abonnement incluent une allocation d'utilisation roulante. Lorsqu'elle s'épuise, vous voyez l'un de ces messages :193Les plans d'abonnement incluent une allocation d'utilisation roulante. Lorsqu'elle s'épuise, vous voyez l'un de ces messages :

173 194 


188 209 

189Pour surveiller votre allocation restante avant d'atteindre la limite, ajoutez les champs `rate_limits` à une [ligne d'état personnalisée](/fr/statusline#rate-limit-usage), ou dans l'application Desktop cliquez sur l'[anneau d'utilisation](/fr/desktop#check-usage) à côté du sélecteur de modèle.210Pour surveiller votre allocation restante avant d'atteindre la limite, ajoutez les champs `rate_limits` à une [ligne d'état personnalisée](/fr/statusline#rate-limit-usage), ou dans l'application Desktop cliquez sur l'[anneau d'utilisation](/fr/desktop#check-usage) à côté du sélecteur de modèle.

190 211 

191### Le serveur limite temporairement les demandes212<h3 id="usage-credits-required-for-1m-context">

213 Crédits d'utilisation requis pour le contexte 1M

214</h3>

215 

216Le modèle sélectionné utilise la fenêtre de contexte étendue 1M-token, et votre plan ne l'inclut que par le biais de crédits d'utilisation.

217 

218```text theme={null}

219API Error: Usage credits required for 1M context · run /usage-credits to turn them on, or /model to switch to standard context

220```

221 

222Il s'agit d'une vérification de droit, et non d'un épuisement de quota. Elle se déclenche même lorsque vos allocations de session et hebdomadaires ont une capacité restante. Consultez [Extended context](/fr/model-config#extended-context) pour savoir quels plans incluent directement le contexte 1M et lesquels nécessitent des crédits d'utilisation.

223 

224{/* min-version: 2.1.172 */}Lorsque cette erreur apparaît en milieu de conversation parce que le contexte a dépassé 200 K tokens, Claude Code compacte automatiquement la conversation en dessous de la limite de contexte standard et maintient la session à cette limite par la suite, donc aucune action n'est nécessaire. Sur les versions antérieures à v2.1.172, l'erreur s'est répétée à chaque demande ultérieure, y compris `/compact` ; exécutez `/clear` sur ces versions pour récupérer. Les étapes ci-dessous s'appliquent lorsque vous avez explicitement sélectionné un modèle `[1m]`.

225 

226**Que faire :**

227 

228* Exécutez `/model` et sélectionnez la variante sans le suffixe `[1m]` pour revenir à la fenêtre de contexte standard

229* Exécutez `/usage-credits` pour activer la facturation au compteur pour la variante 1M sur Pro et Max, ou pour la demander à votre administrateur sur Team et Enterprise

230* Si l'erreur persiste après `/model`, un ID de modèle 1M peut être défini ailleurs. Consultez [There's an issue with the selected model](#there%E2%80%99s-an-issue-with-the-selected-model) pour les emplacements de configuration à vérifier par ordre de priorité.

231* Pour supprimer entièrement les variantes 1M du sélecteur de modèle, définissez [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/fr/env-vars)

232 

233<h3 id="server-is-temporarily-limiting-requests">

234 Le serveur limite temporairement les demandes

235</h3>

192 236 

193L'API a appliqué un accélérateur de courte durée qui n'est pas lié à votre quota de plan.237L'API a appliqué un accélérateur de courte durée qui n'est pas lié à votre quota de plan.

194 238 


203* Attendez brièvement et réessayez247* Attendez brièvement et réessayez

204* Vérifiez [status.claude.com](https://status.claude.com) si cela persiste248* Vérifiez [status.claude.com](https://status.claude.com) si cela persiste

205 249 

206### Demande rejetée (429)250<h3 id="request-rejected-429">

251 Demande rejetée (429)

252</h3>

207 253 

208Vous avez atteint la limite de débit configurée pour votre clé API, votre projet Amazon Bedrock ou votre projet Google Vertex AI.254Vous avez atteint la limite de débit configurée pour votre clé API, votre projet Amazon Bedrock ou votre projet Google Vertex AI.

209 255 


220* Pour les clés API Anthropic, consultez la [référence des limites de débit](https://platform.claude.com/docs/fr/api/rate-limits) pour savoir comment fonctionnent les niveaux et comment définir des plafonds par espace de travail266* Pour les clés API Anthropic, consultez la [référence des limites de débit](https://platform.claude.com/docs/fr/api/rate-limits) pour savoir comment fonctionnent les niveaux et comment définir des plafonds par espace de travail

221* Réduisez la concurrence : réduisez [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/fr/env-vars), évitez d'exécuter de nombreux sous-agents parallèles, ou basculez vers un modèle plus petit avec `/model` pour les exécutions scriptées à haut volume267* Réduisez la concurrence : réduisez [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/fr/env-vars), évitez d'exécuter de nombreux sous-agents parallèles, ou basculez vers un modèle plus petit avec `/model` pour les exécutions scriptées à haut volume

222 268 

223### Le solde de crédits est trop faible269<h3 id="credit-balance-is-too-low">

270 Le solde de crédits est trop faible

271</h3>

224 272 

225Votre organisation Console a épuisé ses crédits prépayés.273Votre organisation Console a épuisé ses crédits prépayés.

226 274 


234* Basculez vers l'authentification par abonnement avec `/login` si vous avez un plan Pro, Max, Team ou Enterprise282* Basculez vers l'authentification par abonnement avec `/login` si vous avez un plan Pro, Max, Team ou Enterprise

235* Définissez des plafonds de dépenses par espace de travail dans la Console pour empêcher un seul projet de drainer le solde de l'organisation. Consultez [Gérer les coûts efficacement](/fr/costs).283* Définissez des plafonds de dépenses par espace de travail dans la Console pour empêcher un seul projet de drainer le solde de l'organisation. Consultez [Gérer les coûts efficacement](/fr/costs).

236 284 

237## Erreurs d'authentification285<h2 id="authentication-errors">

286 Erreurs d'authentification

287</h2>

238 288 

239Ces erreurs signifient que Claude Code ne peut pas prouver qui vous êtes à l'API. Exécutez `/status` à tout moment pour voir quel identifiant est actuellement actif.289Ces erreurs signifient que Claude Code ne peut pas prouver qui vous êtes à l'API. Exécutez `/status` à tout moment pour voir quel identifiant est actuellement actif.

240 290 

241### Not logged in291<h3 id="not-logged-in">

292 Not logged in

293</h3>

242 294 

243Aucun identifiant valide n'est disponible pour cette session.295Aucun identifiant valide n'est disponible pour cette session.

244 296 


255 307 

256Si vous êtes invité à vous connecter à plusieurs reprises, consultez [Not logged in or token expired](/fr/troubleshoot-install#not-logged-in-or-token-expired) pour les corrections d'horloge système et de Keychain macOS.308Si vous êtes invité à vous connecter à plusieurs reprises, consultez [Not logged in or token expired](/fr/troubleshoot-install#not-logged-in-or-token-expired) pour les corrections d'horloge système et de Keychain macOS.

257 309 

258### Invalid API key310<h3 id="could-not-resolve-authentication-method">

311 Could not resolve authentication method

312</h3>

313 

314La session a atteint le client API sans aucun identifiant. Cela apparaît dans les [sessions en arrière-plan](/fr/agent-view), les sessions cloud et les contextes du SDK Agent où la vérification de connexion interactive ne s'exécute pas avant la première requête.

315 

316```text theme={null}

317Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

318```

319 

320{/* min-version: 2.1.174 */}Avant la v2.1.174, une session en arrière-plan ou cloud assignée à un worker pré-initialisé inactif pouvait échouer de cette façon même lorsque des identifiants valides étaient configurés. Mettez à niveau pour récupérer. Sur les versions actuelles, l'erreur signifie qu'aucun identifiant n'était disponible pour le processus worker.

321 

322**Que faire :**

323 

324* Mettez à niveau vers la v2.1.174 ou ultérieure si cela apparaît dans une session en arrière-plan ou cloud et que vos identifiants sont déjà configurés

325* Confirmez que `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN` ou vos identifiants de fournisseur cloud sont définis dans l'environnement qui lance le worker, pas seulement dans votre shell interactif

326* Pour le SDK Agent, consultez [configuration de l'authentification](/fr/agent-sdk/overview#get-started)

327* Exécutez `/status` dans une session interactive dans le même environnement pour confirmer quelle source d'identifiant se résout

328 

329<h3 id="invalid-api-key">

330 Invalid API key

331</h3>

259 332 

260La variable d'environnement `ANTHROPIC_API_KEY` ou le script `apiKeyHelper` a renvoyé une clé que l'API a rejetée.333La variable d'environnement `ANTHROPIC_API_KEY` ou le script `apiKeyHelper` a renvoyé une clé que l'API a rejetée.

261 334 


271* Si la clé provient d'un script [`apiKeyHelper`](/fr/settings#available-settings), exécutez le script directement pour confirmer qu'il imprime une clé valide sur stdout344* Si la clé provient d'un script [`apiKeyHelper`](/fr/settings#available-settings), exécutez le script directement pour confirmer qu'il imprime une clé valide sur stdout

272* Exécutez `/status` pour confirmer quelle source d'identifiant Claude Code utilise réellement345* Exécutez `/status` pour confirmer quelle source d'identifiant Claude Code utilise réellement

273 346 

274### This organization has been disabled347<h3 id="this-organization-has-been-disabled">

348 This organization has been disabled

349</h3>

275 350 

276Une `ANTHROPIC_API_KEY` obsolète d'une organisation Console désactivée remplace votre connexion par abonnement.351Une `ANTHROPIC_API_KEY` obsolète d'une organisation Console désactivée remplace votre connexion par abonnement.

277 352 


288* Exécutez `/status` après pour confirmer que l'identifiant actif est votre abonnement363* Exécutez `/status` après pour confirmer que l'identifiant actif est votre abonnement

289* Si aucune variable d'environnement n'est définie et que l'erreur persiste, l'organisation désactivée est celle liée à votre `/login`. Contactez le support ou connectez-vous avec un compte différent.364* Si aucune variable d'environnement n'est définie et que l'erreur persiste, l'organisation désactivée est celle liée à votre `/login`. Contactez le support ou connectez-vous avec un compte différent.

290 365 

291### Your organization has disabled Claude subscription access366<h3 id="your-organization-has-disabled-api-key-authentication">

367 Your organization has disabled API key authentication

368</h3>

369 

370{/* min-version: 2.1.169 */}L'administrateur de votre organisation Console a désactivé l'authentification par clé API, donc l'API rejette la clé que Claude Code envoie. L'indice de récupération après le `·` varie selon d'où provient la clé :

371 

372```text theme={null}

373Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account

374Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead

375Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account

376Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account

377```

378 

379Les variables d'environnement et `apiKeyHelper` ont la priorité sur `/login`, donc exécuter `/login` seul n'aide pas tant que l'un ou l'autre fournit toujours une clé. Consultez [Précédence d'authentification](/fr/authentication#authentication-precedence).

380 

381**Que faire :**

382 

383* Si le message nomme `ANTHROPIC_API_KEY`, déconfigurez-le dans le shell actuel et supprimez-le de votre profil shell ou du fichier `.env`, puis relancez `claude`

384* Si le message nomme `apiKeyHelper`, supprimez le paramètre [`apiKeyHelper`](/fr/settings#available-settings) de votre `settings.json`

385* Exécutez `/login` pour vous connecter avec votre compte claude.ai

386* Exécutez `/status` après pour confirmer que l'identifiant actif est votre abonnement plutôt qu'une clé API

387* Si vous avez besoin de l'authentification par clé API pour l'automatisation, demandez à votre administrateur d'organisation de la réactiver dans la Console

388 

389<h3 id="your-organization-has-disabled-claude-subscription-access">

390 Your organization has disabled Claude subscription access

391</h3>

292 392 

293Votre organisation Claude ne permet pas de se connecter à Claude Code avec une connexion par abonnement. Exécuter `/login` à nouveau avec le même compte retourne la même erreur.393Votre organisation Claude ne permet pas de se connecter à Claude Code avec une connexion par abonnement. Exécuter `/login` à nouveau avec le même compte retourne la même erreur.

294 394 


304* Authentifiez-vous avec une clé API Console au lieu de votre abonnement. Consultez [Authentification Claude Console](/fr/authentication#claude-console-authentication) pour la configuration.404* Authentifiez-vous avec une clé API Console au lieu de votre abonnement. Consultez [Authentification Claude Console](/fr/authentication#claude-console-authentication) pour la configuration.

305* Si vous êtes l'administrateur et que vous ne voyez pas d'option pour activer l'accès, contactez le [support Anthropic](https://support.claude.com)405* Si vous êtes l'administrateur et que vous ne voyez pas d'option pour activer l'accès, contactez le [support Anthropic](https://support.claude.com)

306 406 

307### Routines are disabled by your organization's policy407<h3 id="routines-are-disabled-by-your-organizations-policy">

408 Routines are disabled by your organization's policy

409</h3>

308 410 

309Votre administrateur d'équipe ou d'entreprise a désactivé les routines au niveau de l'organisation. L'erreur apparaît lorsque vous essayez de créer ou d'exécuter une routine, y compris à partir de `/schedule` et de l'interface utilisateur [Routines](/fr/routines) sur claude.ai/code.411Votre administrateur d'équipe ou d'entreprise a désactivé les routines au niveau de l'organisation. L'erreur apparaît lorsque vous essayez de créer ou d'exécuter une routine, y compris à partir de `/schedule` et de l'interface utilisateur [Routines](/fr/routines) sur claude.ai/code.

310 412 


319* Demandez à votre administrateur d'activer le bouton bascule **Routines** sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)421* Demandez à votre administrateur d'activer le bouton bascule **Routines** sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

320* Pour les travaux ponctuels programmés qui ne nécessitent pas de routines au niveau de l'organisation, consultez [tâches programmées](/fr/scheduled-tasks)422* Pour les travaux ponctuels programmés qui ne nécessitent pas de routines au niveau de l'organisation, consultez [tâches programmées](/fr/scheduled-tasks)

321 423 

322### OAuth token revoked or expired424<h3 id="oauth-token-revoked-or-expired">

425 OAuth token revoked or expired

426</h3>

323 427 

324Votre connexion enregistrée n'est plus valide. Un jeton révoqué signifie que vous vous êtes déconnecté partout ou qu'un administrateur a supprimé l'accès ; un jeton expiré signifie que l'actualisation automatique a échoué en milieu de session.428Votre connexion enregistrée n'est plus valide. Un jeton révoqué signifie que vous vous êtes déconnecté partout ou qu'un administrateur a supprimé l'accès ; un jeton expiré signifie que l'actualisation automatique a échoué en milieu de session.

325 429 


336* Pour les invites répétées de connexion entre les lancements, consultez les vérifications d'horloge système et de Keychain macOS dans [Troubleshooting](/fr/troubleshoot-install#not-logged-in-or-token-expired)440* Pour les invites répétées de connexion entre les lancements, consultez les vérifications d'horloge système et de Keychain macOS dans [Troubleshooting](/fr/troubleshoot-install#not-logged-in-or-token-expired)

337* Pour les autres défaillances incluant `403 Forbidden` et les problèmes de navigateur OAuth, consultez [Login and authentication](/fr/troubleshoot-install#login-and-authentication)441* Pour les autres défaillances incluant `403 Forbidden` et les problèmes de navigateur OAuth, consultez [Login and authentication](/fr/troubleshoot-install#login-and-authentication)

338 442 

339### OAuth scope requirement443<h3 id="oauth-scope-requirement">

444 OAuth scope requirement

445</h3>

340 446 

341Le jeton stocké est antérieur à une portée de permission qu'une fonctionnalité plus récente nécessite. Vous voyez cela le plus souvent à partir de `/usage` et de l'indicateur d'utilisation de la ligne d'état :447Le jeton stocké est antérieur à une portée de permission qu'une fonctionnalité plus récente nécessite. Vous voyez cela le plus souvent à partir de `/usage` et de l'indicateur d'utilisation de la ligne d'état :

342 448 


348 454 

349* Exécutez `/login` pour créer un nouveau jeton avec les portées actuelles. Vous n'avez pas besoin de vous déconnecter d'abord.455* Exécutez `/login` pour créer un nouveau jeton avec les portées actuelles. Vous n'avez pas besoin de vous déconnecter d'abord.

350 456 

351## Erreurs réseau et de connexion457<h2 id="network-and-connection-errors">

458 Erreurs réseau et de connexion

459</h2>

352 460 

353Ces erreurs signifient qu'une demande réseau de Claude Code n'a pas pu atteindre sa destination. Elles proviennent généralement de votre réseau local, proxy ou pare-feu, ou de la politique réseau de l'environnement cloud.461Ces erreurs signifient qu'une demande réseau de Claude Code n'a pas pu atteindre sa destination. Elles proviennent généralement de votre réseau local, proxy ou pare-feu, ou de la politique réseau de l'environnement cloud.

354 462 

355### Unable to connect to API463<h3 id="unable-to-connect-to-api">

464 Impossible de se connecter à l'API

465</h3>

356 466 

357La connexion TCP à l'API a échoué ou ne s'est jamais complétée.467La connexion TCP à l'API a échoué ou ne s'est jamais complétée.

358 468 


381* Sur macOS, un client VPN qui a été déconnecté ou désinstallé peut laisser une interface de tunnel ou une règle de routage. Vérifiez `ifconfig` pour les interfaces `utun` obsolètes et supprimez l'extension réseau du VPN dans les Paramètres système.491* Sur macOS, un client VPN qui a été déconnecté ou désinstallé peut laisser une interface de tunnel ou une règle de routage. Vérifiez `ifconfig` pour les interfaces `utun` obsolètes et supprimez l'extension réseau du VPN dans les Paramètres système.

382* Docker Desktop et les runtimes de conteneurs similaires peuvent intercepter le trafic sortant. Quittez-les et réessayez pour exclure cela.492* Docker Desktop et les runtimes de conteneurs similaires peuvent intercepter le trafic sortant. Quittez-les et réessayez pour exclure cela.

383 493 

384### SSL certificate errors494<h3 id="ssl-certificate-errors">

495 Erreurs de certificat SSL

496</h3>

385 497 

386Un proxy ou un appareil de sécurité sur votre réseau intercepte le trafic TLS avec son propre certificat, et Claude Code ne lui fait pas confiance.498Un proxy ou un appareil de sécurité sur votre réseau intercepte le trafic TLS avec son propre certificat, et Claude Code ne lui fait pas confiance.

387 499 


396* Consultez [Network configuration](/fr/network-config#custom-ca-certificates) pour les instructions de configuration complètes508* Consultez [Network configuration](/fr/network-config#custom-ca-certificates) pour les instructions de configuration complètes

397* Ne définissez pas `NODE_TLS_REJECT_UNAUTHORIZED=0`, qui désactive complètement la validation des certificats509* Ne définissez pas `NODE_TLS_REJECT_UNAUTHORIZED=0`, qui désactive complètement la validation des certificats

398 510 

399### Host not allowed in a cloud session511<h3 id="host-not-allowed-in-a-cloud-session">

512 Hôte non autorisé dans une session cloud

513</h3>

400 514 

401Une demande HTTP sortante d'une session cloud ou d'une routine a été bloquée par la politique réseau de l'environnement.515Une demande HTTP sortante d'une session cloud ou d'une routine a été bloquée par la politique réseau de l'environnement.

402 516 


417 531 

418Consultez [Network access](/fr/claude-code-on-the-web#network-access) pour les niveaux d'accès et la liste d'autorisation par défaut. Les sessions CLI locales ne sont pas affectées par cette politique.532Consultez [Network access](/fr/claude-code-on-the-web#network-access) pour les niveaux d'accès et la liste d'autorisation par défaut. Les sessions CLI locales ne sont pas affectées par cette politique.

419 533 

420## Erreurs de requête534<h2 id="request-errors">

535 Erreurs de requête

536</h2>

421 537 

422Ces erreurs signifient que l'API a reçu votre requête mais a rejeté son contenu.538Ces erreurs signifient que l'API a reçu votre requête mais a rejeté son contenu.

423 539 

424### Prompt is too long540<h3 id="prompt-is-too-long">

541 Prompt is too long

542</h3>

425 543 

426La conversation plus les fichiers joints dépassent la fenêtre de contexte du modèle.544La conversation plus les fichiers joints dépassent la fenêtre de contexte du modèle.

427 545 


440 558 

441Consultez [Explore the context window](/fr/context-window) pour une vue interactive de la façon dont le contexte se remplit.559Consultez [Explore the context window](/fr/context-window) pour une vue interactive de la façon dont le contexte se remplit.

442 560 

443### Error during compaction: Conversation too long561<h3 id="error-during-compaction-conversation-too-long">

562 Error during compaction: Conversation too long

563</h3>

444 564 

445`/compact` lui-même a échoué car il n'y a pas assez d'espace libre pour contenir le résumé qu'il produit.565`/compact` lui-même a échoué car il n'y a pas assez d'espace libre pour contenir le résumé qu'il produit.

446 566 


455* Appuyez sur Esc deux fois pour ouvrir la liste des messages et revenir plusieurs tours en arrière. Cela supprime les messages les plus récents du contexte. Ensuite, exécutez `/compact` à nouveau.575* Appuyez sur Esc deux fois pour ouvrir la liste des messages et revenir plusieurs tours en arrière. Cela supprime les messages les plus récents du contexte. Ensuite, exécutez `/compact` à nouveau.

456* Si revenir en arrière ne libère pas assez d'espace, exécutez `/clear` pour démarrer une nouvelle session. Votre conversation précédente est préservée et peut être rouverte avec `/resume`.576* Si revenir en arrière ne libère pas assez d'espace, exécutez `/clear` pour démarrer une nouvelle session. Votre conversation précédente est préservée et peut être rouverte avec `/resume`.

457 577 

458### Request too large578<h3 id="request-too-large">

579 Request too large

580</h3>

459 581 

460Le corps de la requête brute a dépassé la limite d'octets de l'API avant la tokenisation, généralement en raison d'un fichier collé volumineux ou d'une pièce jointe.582Le corps de la requête brute a dépassé la limite d'octets de l'API avant la tokenisation, généralement en raison d'un fichier collé volumineux ou d'une pièce jointe.

461 583 


471* Référencez les fichiers volumineux par chemin au lieu de coller leur contenu, afin que Claude puisse les lire par morceaux593* Référencez les fichiers volumineux par chemin au lieu de coller leur contenu, afin que Claude puisse les lire par morceaux

472* Pour les images, consultez [Image was too large](#image-was-too-large) ci-dessous594* Pour les images, consultez [Image was too large](#image-was-too-large) ci-dessous

473 595 

474### Image was too large596<h3 id="image-was-too-large">

597 Image was too large

598</h3>

475 599 

476Une image collée ou jointe dépasse les limites de taille ou de dimension de l'API.600Une image collée ou jointe dépasse les limites de taille ou de dimension de l'API.

477 601 


480API Error: 400 ... image dimensions exceed max allowed size604API Error: 400 ... image dimensions exceed max allowed size

481```605```

482 606 

483L'image reste dans l'historique de la conversation après l'erreur, donc chaque message suivant échoue avec la même erreur jusqu'à ce que vous la supprimiez.607{/* min-version: 2.1.142 */}Claude Code remplace l'image non traitée par un espace réservé textuel et réessaie, donc les messages suivants réussissent. Sur les versions antérieures à 2.1.142, une image collée pouvait rester dans la conversation et répéter la même erreur à chaque message suivant. Pour récupérer sur ces versions, appuyez sur Esc deux fois et revenir en arrière au-delà du tour où l'image a été ajoutée.

484 608 

485**Que faire :**609**Que faire :**

486 610 

487* Appuyez sur Esc deux fois et revenir en arrière au-delà du tour où l'image a été ajoutée

488* Redimensionnez l'image avant de la coller. L'API accepte les images jusqu'à 8 000 pixels sur le bord le plus long pour une seule image, ou 2 000 pixels lorsque de nombreuses images sont en contexte.611* Redimensionnez l'image avant de la coller. L'API accepte les images jusqu'à 8 000 pixels sur le bord le plus long pour une seule image, ou 2 000 pixels lorsque de nombreuses images sont en contexte.

489* Prenez une capture d'écran plus serrée de la région pertinente au lieu de l'écran complet612* Prenez une capture d'écran plus serrée de la région pertinente au lieu de l'écran complet

490 613 

491### Unable to resize image614<h3 id="unable-to-resize-image">

615 Unable to resize image

616</h3>

492 617 

493Claude Code n'a pas pu réduire l'échelle d'une image jointe avant de l'envoyer à l'API.618Claude Code n'a pas pu réduire l'échelle d'une image jointe avant de l'envoyer à l'API.

494 619 


506* Si le message vous demande de convertir l'image, convertissez-la en PNG, JPEG, GIF ou WebP et joignez-la à nouveau. Claude Code peut vérifier les dimensions de ces formats sans le processeur d'image.631* Si le message vous demande de convertir l'image, convertissez-la en PNG, JPEG, GIF ou WebP et joignez-la à nouveau. Claude Code peut vérifier les dimensions de ces formats sans le processeur d'image.

507* Si le message signale une limite de dimension ou de taille, redimensionnez ou recompressez l'image en dessous de cette limite avant de la joindre.632* Si le message signale une limite de dimension ou de taille, redimensionnez ou recompressez l'image en dessous de cette limite avant de la joindre.

508 633 

509### PDF errors634<h3 id="pdf-errors">

635 PDF errors

636</h3>

510 637 

511Le PDF que vous avez joint n'a pas pu être traité.638Le PDF que vous avez joint n'a pas pu être traité.

512 639 


521* Pour les PDF surdimensionnés, demandez à Claude de lire une plage de pages avec l'outil Read au lieu de joindre le fichier entier, ou extrayez le texte avec un outil comme `pdftotext` et référencez le fichier de sortie par chemin648* Pour les PDF surdimensionnés, demandez à Claude de lire une plage de pages avec l'outil Read au lieu de joindre le fichier entier, ou extrayez le texte avec un outil comme `pdftotext` et référencez le fichier de sortie par chemin

522* Pour les PDF protégés ou invalides, supprimez le mot de passe ou réexportez le fichier à partir de son application source, puis réessayez649* Pour les PDF protégés ou invalides, supprimez le mot de passe ou réexportez le fichier à partir de son application source, puis réessayez

523 650 

524### Extra inputs are not permitted651<h3 id="extra-inputs-are-not-permitted">

652 Extra inputs are not permitted

653</h3>

525 654 

526Un proxy ou une passerelle LLM entre Claude Code et l'API a supprimé l'en-tête de requête `anthropic-beta`, donc l'API a rejeté les champs qui en dépendent.655Un proxy ou une passerelle LLM entre Claude Code et l'API a supprimé l'en-tête de requête `anthropic-beta`, donc l'API a rejeté les champs qui en dépendent.

527 656 


538* Configurez votre passerelle pour transférer l'en-tête `anthropic-beta`. Consultez [LLM gateway configuration](/fr/llm-gateway).667* Configurez votre passerelle pour transférer l'en-tête `anthropic-beta`. Consultez [LLM gateway configuration](/fr/llm-gateway).

539* En dernier recours, définissez [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/fr/env-vars) avant de lancer. Cela désactive les fonctionnalités qui nécessitent l'en-tête bêta pour que les requêtes réussissent via une passerelle qui ne peut pas le transférer.668* En dernier recours, définissez [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/fr/env-vars) avant de lancer. Cela désactive les fonctionnalités qui nécessitent l'en-tête bêta pour que les requêtes réussissent via une passerelle qui ne peut pas le transférer.

540 669 

541### There's an issue with the selected model670<h3 id="there’s-an-issue-with-the-selected-model">

671 There's an issue with the selected model

672</h3>

542 673 

543Le nom du modèle configuré n'a pas été reconnu ou votre compte n'a pas accès à celui-ci. À partir de v2.1.160, l'indice de fin, montré ici sous sa forme interactive, varie selon la surface.674Le nom du modèle configuré n'a pas été reconnu ou votre compte n'a pas accès à celui-ci. À partir de v2.1.160, l'indice de fin, montré ici sous sa forme interactive, varie selon la surface.

544 675 


551* **CLI interactif** : exécutez `/model` pour choisir parmi les modèles disponibles pour votre compte.682* **CLI interactif** : exécutez `/model` pour choisir parmi les modèles disponibles pour votre compte.

552* **Mode non interactif (`-p`)** : passez `--model` avec un alias ou un ID valide, ou définissez [`ANTHROPIC_MODEL`](/fr/env-vars). Le texte d'erreur affiche `Run --model` sur cette surface.683* **Mode non interactif (`-p`)** : passez `--model` avec un alias ou un ID valide, ou définissez [`ANTHROPIC_MODEL`](/fr/env-vars). Le texte d'erreur affiche `Run --model` sur cette surface.

553* **SDK Agent** : le texte d'erreur omet l'indice car le modèle est défini par programmation. Définissez [`model` sur `Options`](/fr/agent-sdk/typescript#options) en TypeScript ou [`ClaudeAgentOptions(model=...)`](/fr/agent-sdk/python#claudeagentoptions) en Python, et gérez l'erreur structurée `model_not_found` pour afficher votre propre retry ou sélecteur de modèle.684* **SDK Agent** : le texte d'erreur omet l'indice car le modèle est défini par programmation. Définissez [`model` sur `Options`](/fr/agent-sdk/typescript#options) en TypeScript ou [`ClaudeAgentOptions(model=...)`](/fr/agent-sdk/python#claudeagentoptions) en Python, et gérez l'erreur structurée `model_not_found` pour afficher votre propre retry ou sélecteur de modèle.

554* Utilisez un alias tel que `sonnet` ou `opus` au lieu d'un ID complet versionné. Les alias suivent la dernière version pour qu'ils ne deviennent pas obsolètes. Consultez [Model configuration](/fr/model-config).685* Utilisez un alias tel que `sonnet` ou `opus` au lieu d'un ID complet versionné. Les alias se résolvent à une version maintenue par défaut pour qu'ils ne deviennent pas obsolètes. Consultez [Model configuration](/fr/model-config).

555* Si le mauvais modèle continue de revenir dans l'interface CLI, un ID obsolète est défini quelque part. Vérifiez dans [l'ordre de priorité](/fr/model-config#setting-your-model) : l'indicateur `--model`, la variable d'environnement `ANTHROPIC_MODEL`, puis le champ `model` dans `.claude/settings.local.json`, le fichier `.claude/settings.json` de votre projet, et `~/.claude/settings.json`. Supprimez la valeur obsolète et Claude Code revient à votre compte par défaut.686* Si le mauvais modèle continue de revenir dans l'interface CLI, un ID obsolète est défini quelque part. Vérifiez dans [l'ordre de priorité](/fr/model-config#setting-your-model) : l'indicateur `--model`, la variable d'environnement `ANTHROPIC_MODEL`, puis le champ `model` dans `.claude/settings.local.json`, le fichier `.claude/settings.json` de votre projet, et `~/.claude/settings.json`. Supprimez la valeur obsolète et Claude Code revient à votre compte par défaut.

556* Pour les déploiements Vertex AI, consultez [Vertex AI troubleshooting](/fr/google-vertex-ai#troubleshooting).687* Pour les déploiements Vertex AI, consultez [Vertex AI troubleshooting](/fr/google-vertex-ai#troubleshooting).

557 688 

558### Claude Opus is not available with the Claude Pro plan689<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

690 Claude Opus is not available with the Claude Pro plan

691</h3>

559 692 

560Votre plan d'abonnement actif n'inclut pas le modèle que vous avez sélectionné.693Votre plan d'abonnement actif n'inclut pas le modèle que vous avez sélectionné.

561 694 


569* Si vous avez récemment mis à niveau votre plan et voyez toujours cela, exécutez `/logout` puis `/login`. Le jeton stocké reflète votre plan au moment où vous vous êtes connecté, donc la mise à niveau sur le web ne prend effet dans une session existante que jusqu'à ce que vous vous réauthentifiiez.702* Si vous avez récemment mis à niveau votre plan et voyez toujours cela, exécutez `/logout` puis `/login`. Le jeton stocké reflète votre plan au moment où vous vous êtes connecté, donc la mise à niveau sur le web ne prend effet dans une session existante que jusqu'à ce que vous vous réauthentifiiez.

570* Consultez [claude.com/pricing](https://claude.com/pricing) pour savoir quels modèles chaque plan inclut703* Consultez [claude.com/pricing](https://claude.com/pricing) pour savoir quels modèles chaque plan inclut

571 704 

572### thinking.type.enabled is not supported for this model705<h3 id="thinking-type-enabled-is-not-supported-for-this-model">

706 thinking.type.enabled is not supported for this model

707</h3>

573 708 

574Votre version de Claude Code est plus ancienne que le minimum pour Opus 4.7 ou Opus 4.8. L'interface CLI a envoyé une configuration de réflexion que le modèle n'accepte plus.709Votre version de Claude Code est plus ancienne que le minimum pour Opus 4.7 ou Opus 4.8. L'interface CLI a envoyé une configuration de réflexion que le modèle n'accepte plus.

575 710 


583* Si vous ne pouvez pas mettre à niveau, exécutez `/model` et sélectionnez Opus 4.6 ou Sonnet à la place718* Si vous ne pouvez pas mettre à niveau, exécutez `/model` et sélectionnez Opus 4.6 ou Sonnet à la place

584* Si vous rencontrez cela dans le SDK Agent, consultez [SDK troubleshooting](/fr/agent-sdk/quickstart#troubleshooting)719* Si vous rencontrez cela dans le SDK Agent, consultez [SDK troubleshooting](/fr/agent-sdk/quickstart#troubleshooting)

585 720 

586### Thinking budget exceeds output limit721<h3 id="thinking-budget-exceeds-output-limit">

722 Thinking budget exceeds output limit

723</h3>

587 724 

588Le budget de réflexion étendue configuré dépasse la longueur de réponse maximale, donc il n'y a pas de place pour la réponse réelle.725Le budget de réflexion étendue configuré dépasse la longueur de réponse maximale, donc il n'y a pas de place pour la réponse réelle.

589 726 


598* Réduisez `MAX_THINKING_TOKENS`, ou augmentez [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/fr/env-vars) au-dessus du budget de réflexion735* Réduisez `MAX_THINKING_TOKENS`, ou augmentez [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/fr/env-vars) au-dessus du budget de réflexion

599* Consultez [Extended thinking](/fr/model-config#extended-thinking) pour savoir comment le budget interagit avec la longueur de sortie736* Consultez [Extended thinking](/fr/model-config#extended-thinking) pour savoir comment le budget interagit avec la longueur de sortie

600 737 

601### Tool use or thinking block mismatch738<h3 id="tool-use-or-thinking-block-mismatch">

739 Tool use or thinking block mismatch

740</h3>

602 741 

603L'historique de la conversation a atteint l'API dans un état incohérent, généralement après qu'un appel d'outil a été interrompu ou qu'un tour a été modifié en milieu de flux.742L'historique de la conversation a atteint l'API dans un état incohérent, généralement après qu'un appel d'outil a été interrompu ou qu'un tour a été modifié en milieu de flux.

604 743 


615* {/* max-version: 2.1.155 */}Si vous utilisez Opus 4.7 ou Opus 4.8, exécutez d'abord `claude update`. Les versions antérieures à v2.1.156 peuvent déclencher cette erreur lors de l'utilisation normale d'outils, et `/rewind` ne l'efface pas.754* {/* max-version: 2.1.155 */}Si vous utilisez Opus 4.7 ou Opus 4.8, exécutez d'abord `claude update`. Les versions antérieures à v2.1.156 peuvent déclencher cette erreur lors de l'utilisation normale d'outils, et `/rewind` ne l'efface pas.

616* Exécutez `/rewind`, ou appuyez sur Esc deux fois, pour revenir à un point de contrôle avant le tour corrompu et continuer à partir de là. Consultez [Checkpointing](/fr/checkpointing) pour savoir comment les points de contrôle sont créés et restaurés.755* Exécutez `/rewind`, ou appuyez sur Esc deux fois, pour revenir à un point de contrôle avant le tour corrompu et continuer à partir de là. Consultez [Checkpointing](/fr/checkpointing) pour savoir comment les points de contrôle sont créés et restaurés.

617 756 

618### Usage Policy refusal757<h3 id="usage-policy-refusal">

758 Usage Policy refusal

759</h3>

619 760 

620L'API a refusé de répondre car le contenu de la conversation a déclenché une vérification de la [Politique d'utilisation](https://www.anthropic.com/legal/aup). Le message inclut un ID de requête que vous pouvez citer au support si vous pensez que le refus est incorrect.761L'API a refusé de répondre car le contenu de la conversation a déclenché une vérification de la [Politique d'utilisation](https://www.anthropic.com/legal/aup). Le message inclut un ID de requête que vous pouvez citer au support si vous pensez que le refus est incorrect.

621 762 


629 770 

630* Appuyez sur Esc deux fois ou exécutez `/rewind` pour revenir à un point de contrôle avant le tour qui a déclenché le refus, puis reformulez ou adoptez une approche différente. Consultez [Checkpointing](/fr/checkpointing).771* Appuyez sur Esc deux fois ou exécutez `/rewind` pour revenir à un point de contrôle avant le tour qui a déclenché le refus, puis reformulez ou adoptez une approche différente. Consultez [Checkpointing](/fr/checkpointing).

631* Si vous ne pouvez pas identifier quel tour l'a causé, exécutez `/clear` pour démarrer une nouvelle conversation dans le même projet. Votre conversation précédente est préservée sur disque et reste disponible dans `/resume`.772* Si vous ne pouvez pas identifier quel tour l'a causé, exécutez `/clear` pour démarrer une nouvelle conversation dans le même projet. Votre conversation précédente est préservée sur disque et reste disponible dans `/resume`.

632* En [mode non interactif](/fr/headless) (`-p`), où la rembobinage n'est pas disponible, réessayez avec un prompt reformulé ou démarrez une nouvelle session sans `--continue`.773* En [mode non interactif](/fr/headless) (`-p`), où la rembobinage n'est pas disponible, réessayez avec un prompt reformulé dans une nouvelle session sans `--continue`. Les vérifications de politique varient selon le modèle, donc passer à un modèle différent avec `--model` peut également résoudre le refus dans certains cas.

774 

775<h2 id="responses-seem-lower-quality-than-usual">

776 Les réponses semblent de qualité inférieure à la normale

777</h2>

778 

779Si les réponses de Claude semblent moins capables que vous ne l'attendez mais qu'aucune erreur n'est affichée, la cause est généralement l'état de la conversation plutôt que le modèle lui-même. Claude Code ne change pas silencieusement les versions de modèle. Il peut basculer vers un modèle de secours dans trois cas spécifiques :

633 780 

634## Les réponses semblent de qualité inférieure à la normale781* Un [`--fallback-model`](/fr/cli-reference#cli-flags) configuré prend le relais après une erreur de disponibilité, pour ce tour uniquement, avec un avis dans la transcription

782* Une vérification de démarrage Bedrock ou Vertex AI trouve votre modèle par défaut indisponible

783* Le [basculement automatique du modèle](/fr/model-config#automatic-model-fallback) sur Fable 5 déplace la session vers le modèle Opus par défaut et affiche un avis dans la transcription

635 784 

636Si les réponses de Claude semblent moins capables que vous ne l'attendez mais qu'aucune erreur n'est affichée, la cause est généralement l'état de la conversation plutôt que le modèle lui-même. Claude Code ne change pas silencieusement les versions de modèle. Il peut basculer vers un modèle de secours dans des cas spécifiques tels qu'un quota Opus atteint ou une région Bedrock ou Vertex AI manquant votre modèle ; la vérification de sélection de modèle ci-dessous capture les deux, et [Model configuration](/fr/model-config) explique quand le secours s'applique.785La vérification de sélection du modèle ci-dessous capture les deuxième et troisième cas ; le premier apparaît comme un avis de transcription plutôt qu'un changement `/model`. La [configuration du modèle](/fr/model-config) explique quand chaque secours s'applique.

637 786 

638Vérifiez d'abord ceux-ci :787Vérifiez d'abord ceux-ci :

639 788 

640* **Sélection du modèle** : exécutez `/model` pour confirmer que vous êtes sur le modèle que vous attendez. Un choix `/model` précédent ou une variable d'environnement `ANTHROPIC_MODEL` peut vous mettre sur un modèle plus petit que prévu.789* **Sélection du modèle** : exécutez `/model` pour confirmer que vous êtes sur le modèle que vous attendez. Un choix `/model` précédent ou une variable d'environnement `ANTHROPIC_MODEL` peut vous mettre sur un modèle plus petit que prévu.

641* **Niveau d'effort** : exécutez `/effort` pour vérifier le niveau de raisonnement actuel et augmentez-le pour le débogage difficile ou le travail de conception. Les valeurs par défaut varient selon le modèle, donc vérifiez avant de supposer que vous êtes en dessous du maximum. Consultez [Adjust effort level](/fr/model-config#adjust-effort-level) pour les valeurs par défaut par modèle et le raccourci `ultrathink`.790* **Niveau d'effort** : exécutez `/effort` pour vérifier le niveau de raisonnement actuel et augmentez-le pour le débogage difficile ou le travail de conception. Les valeurs par défaut varient selon le modèle, donc vérifiez avant de supposer que vous êtes en dessous du maximum. Consultez [Ajuster le niveau d'effort](/fr/model-config#adjust-effort-level) pour les valeurs par défaut par modèle et le raccourci `ultrathink`.

642* **Pression de contexte** : exécutez `/context` pour voir à quel point la fenêtre est pleine. Si elle est près de la capacité, exécutez `/compact` à un point de rupture naturel ou `/clear` pour recommencer. Consultez [Explore the context window](/fr/context-window) pour savoir comment la compaction automatique affecte les tours antérieurs.791* **Pression de contexte** : exécutez `/context` pour voir à quel point la fenêtre est pleine. Si elle est près de la capacité, exécutez `/compact` à un point de rupture naturel ou `/clear` pour recommencer. Consultez [Explorer la fenêtre de contexte](/fr/context-window) pour savoir comment la compaction automatique affecte les tours antérieurs.

643* **Instructions obsolètes** : les fichiers `CLAUDE.md` volumineux ou obsolètes et les définitions d'outils MCP consomment du contexte et peuvent orienter les réponses. `/doctor` signale les fichiers mémoire surdimensionnés et les définitions de sous-agents ; `/context` affiche l'utilisation des jetons d'outils MCP.792* **Instructions obsolètes** : les fichiers `CLAUDE.md` volumineux ou obsolètes et les définitions d'outils MCP consomment du contexte et peuvent orienter les réponses. `/doctor` signale les fichiers mémoire surdimensionnés et les définitions de sous-agents ; `/context` affiche l'utilisation des jetons d'outils MCP.

644 793 

645Lorsqu'une réponse s'avère mauvaise, le rembobinage fonctionne généralement mieux que de répondre avec des corrections. Appuyez sur Esc deux fois ou exécutez `/rewind` pour revenir avant le mauvais tour, puis reformulez le prompt avec plus de détails. Corriger dans le fil conserve la mauvaise tentative en contexte, ce qui peut ancrer les réponses ultérieures à celle-ci. Consultez [Checkpointing](/fr/checkpointing).794Lorsqu'une réponse s'avère mauvaise, le rembobinage fonctionne généralement mieux que de répondre avec des corrections. Appuyez sur Esc deux fois ou exécutez `/rewind` pour revenir avant le mauvais tour, puis reformulez le prompt avec plus de détails. Corriger dans le fil conserve la mauvaise tentative en contexte, ce qui peut ancrer les réponses ultérieures à celle-ci. Consultez [Checkpointing](/fr/checkpointing).

646 795 

647Si la qualité semble toujours incorrecte après avoir vérifié ce qui précède, exécutez `/feedback` et décrivez ce que vous attendiez par rapport à ce que vous avez obtenu. Les commentaires soumis de cette manière incluent la transcription de la conversation, ce qui est le moyen le plus rapide pour Anthropic de diagnostiquer une véritable régression. Consultez [Signaler une erreur](#report-an-error) si `/feedback` n'est pas disponible dans votre environnement.796Si la qualité semble toujours incorrecte après avoir vérifié ce qui précède, exécutez `/feedback` et décrivez ce que vous attendiez par rapport à ce que vous avez obtenu. Les commentaires soumis de cette manière incluent la transcription de la conversation, ce qui est le moyen le plus rapide pour Anthropic de diagnostiquer une véritable régression. Consultez [Signaler une erreur](#report-an-error) si `/feedback` n'est pas disponible dans votre environnement.

648 797 

649## Signaler une erreur798<h2 id="report-an-error">

799 Signaler une erreur

800</h2>

650 801 

651Cette page couvre les erreurs de l'API Claude. Pour les erreurs d'autres composants Claude Code, consultez le guide pertinent :802Cette page couvre les erreurs de l'API Claude. Pour les erreurs d'autres composants Claude Code, consultez le guide pertinent :

652 803 

fast-mode.md +1 −1

Details

115* **Activation par l'administrateur pour Team et Enterprise** : le mode rapide est désactivé par défaut pour les organisations Team et Enterprise. Un administrateur doit explicitement [activer le mode rapide](#enable-fast-mode-for-your-organization) avant que les utilisateurs puissent y accéder.115* **Activation par l'administrateur pour Team et Enterprise** : le mode rapide est désactivé par défaut pour les organisations Team et Enterprise. Un administrateur doit explicitement [activer le mode rapide](#enable-fast-mode-for-your-organization) avant que les utilisateurs puissent y accéder.

116 116 

117<Note>117<Note>

118 Si votre administrateur n'a pas activé le mode rapide pour votre organisation, la commande `/fast` affichera « Le mode rapide a été désactivé par votre organisation. »118 Si votre administrateur n'a pas activé le mode rapide pour votre organisation, la commande `/fast` affichera « Le mode rapide a été désactivé par votre organisation. » Si la liste d'autorisation [`availableModels`](/fr/model-config#restrict-model-selection) de votre organisation exclut le modèle Opus du mode rapide, `/fast` est refusé avec « n'est pas dans les modèles autorisés de votre organisation ».

119</Note>119</Note>

120 120 

121<h3 id="enable-fast-mode-for-your-organization">121<h3 id="enable-fast-mode-for-your-organization">

Details

109 109 

110 **Mettez-le dans une skill** si c'est du matériel de référence dont Claude a besoin parfois (documentation API, guides de style) ou un flux de travail que vous déclenchez avec `/<name>` (déployer, examiner, publier).110 **Mettez-le dans une skill** si c'est du matériel de référence dont Claude a besoin parfois (documentation API, guides de style) ou un flux de travail que vous déclenchez avec `/<name>` (déployer, examiner, publier).

111 111 

112 **Règle générale :** Gardez CLAUDE.md sous 200 lignes. S'il grandit, déplacez le contenu de référence vers des skills ou divisez-le en fichiers [`.claude/rules/`](/fr/memory#organize-rules-with-clauderules).112 **Règle générale :** Gardez CLAUDE.md sous 200 lignes. S'il grandit, déplacez le contenu de référence vers des skills ou divisez-le en fichiers [`.claude/rules/`](/fr/memory#organize-rules-with-claude%2Frules%2F).

113 </Tab>113 </Tab>

114 114 

115 <Tab title="CLAUDE.md vs Rules vs Skills">115 <Tab title="CLAUDE.md vs Rules vs Skills">


198 198 

199Les fonctionnalités peuvent être définies à plusieurs niveaux : à l'échelle de l'utilisateur, par projet, via des plugins ou via des politiques gérées. Vous pouvez également imbriquer des fichiers CLAUDE.md dans des sous-répertoires ou placer des skills dans des packages spécifiques d'un monorepo. Quand la même fonctionnalité existe à plusieurs niveaux, voici comment elles se superposent :199Les fonctionnalités peuvent être définies à plusieurs niveaux : à l'échelle de l'utilisateur, par projet, via des plugins ou via des politiques gérées. Vous pouvez également imbriquer des fichiers CLAUDE.md dans des sous-répertoires ou placer des skills dans des packages spécifiques d'un monorepo. Quand la même fonctionnalité existe à plusieurs niveaux, voici comment elles se superposent :

200 200 

201* **Les fichiers CLAUDE.md** sont additifs : tous les niveaux contribuent du contenu au contexte de Claude simultanément. Les fichiers de votre répertoire de travail et au-dessus se chargent au lancement ; les sous-répertoires se chargent au fur et à mesure que vous y travaillez. Quand les instructions entrent en conflit, Claude utilise son jugement pour les réconcilier, les instructions plus spécifiques ayant généralement la priorité. Consultez [comment les fichiers CLAUDE.md se chargent](/fr/memory#how-claudemd-files-load).201* **Les fichiers CLAUDE.md** sont additifs : tous les niveaux contribuent du contenu au contexte de Claude simultanément. Les fichiers de votre répertoire de travail et au-dessus se chargent au lancement ; les sous-répertoires se chargent au fur et à mesure que vous y travaillez. Quand les instructions entrent en conflit, Claude utilise son jugement pour les réconcilier, les instructions plus spécifiques ayant généralement la priorité. Consultez [comment les fichiers CLAUDE.md se chargent](/fr/memory#how-claude-md-files-load).

202* **Les skills et subagents** se remplacent par nom : quand le même nom existe à plusieurs niveaux, une définition gagne en fonction de la priorité (géré > utilisateur > projet pour les skills ; géré > drapeau CLI > projet > utilisateur > plugin pour les subagents). Les skills de plugin sont [espacées de noms](/fr/plugins#add-skills-to-your-plugin) pour éviter les conflits. Consultez [découverte de skills](/fr/skills#where-skills-live) et [portée du subagent](/fr/sub-agents#choose-the-subagent-scope).202* **Les skills et subagents** se remplacent par nom : quand le même nom existe à plusieurs niveaux, une définition gagne en fonction de la priorité (géré > utilisateur > projet pour les skills ; géré > drapeau CLI > projet > utilisateur > plugin pour les subagents). Les skills de plugin sont [espacées de noms](/fr/plugins#add-skills-to-your-plugin) pour éviter les conflits. Consultez [découverte de skills](/fr/skills#where-skills-live) et [portée du subagent](/fr/sub-agents#choose-the-subagent-scope).

203* **Les serveurs MCP** se remplacent par nom : local > projet > utilisateur. Consultez [portée MCP](/fr/mcp#scope-hierarchy-and-precedence).203* **Les serveurs MCP** se remplacent par nom : local > projet > utilisateur. Consultez [portée MCP](/fr/mcp#scope-hierarchy-and-precedence).

204* **Les hooks** fusionnent : tous les hooks enregistrés se déclenchent pour leurs événements correspondants indépendamment de la source. Consultez [hooks](/fr/hooks-guide).204* **Les hooks** fusionnent : tous les hooks enregistrés se déclenchent pour leurs événements correspondants indépendamment de la source. Consultez [hooks](/fr/hooks-guide).


255 255 

256 **Ce qui se charge :** Contenu complet de tous les fichiers CLAUDE.md (niveaux géré, utilisateur et projet).256 **Ce qui se charge :** Contenu complet de tous les fichiers CLAUDE.md (niveaux géré, utilisateur et projet).

257 257 

258 **Héritage :** Claude lit les fichiers CLAUDE.md de votre répertoire de travail jusqu'à la racine et découvre les fichiers imbriqués dans les sous-répertoires au fur et à mesure qu'il accède à ces fichiers. Consultez [Comment les fichiers CLAUDE.md se chargent](/fr/memory#how-claudemd-files-load) pour plus de détails.258 **Héritage :** Claude lit les fichiers CLAUDE.md de votre répertoire de travail jusqu'à la racine et découvre les fichiers imbriqués dans les sous-répertoires au fur et à mesure qu'il accède à ces fichiers. Consultez [Comment les fichiers CLAUDE.md se chargent](/fr/memory#how-claude-md-files-load) pour plus de détails.

259 259 

260 <Tip>Gardez CLAUDE.md sous 200 lignes. Déplacez le matériel de référence vers les skills, qui se chargent à la demande.</Tip>260 <Tip>Gardez CLAUDE.md sous 200 lignes. Déplacez le matériel de référence vers les skills, qui se chargent à la demande.</Tip>

261 </Tab>261 </Tab>

fullscreen.md +23 −4

Details

104export CLAUDE_CODE_SCROLL_SPEED=3104export CLAUDE_CODE_SCROLL_SPEED=3

105```105```

106 106 

107Une valeur de `3` correspond à la valeur par défaut dans `vim` et les applications similaires. Le paramètre accepte les valeurs de 1 à 20.107Une valeur de `3` correspond à la valeur par défaut dans `vim` et les applications similaires. Le paramètre accepte les valeurs de 1 à 20, et les valeurs fractionnaires inférieures à 1 telles que `0,5` pour ralentir le défilement accéléré du trackpad et de la molette dans les terminaux qui amplifient déjà les événements de molette.

108 108 

109Pour ajuster la vitesse de défilement de manière interactive, exécutez `/scroll-speed`. La boîte de dialogue affiche une règle que vous pouvez faire défiler pendant qu'elle est ouverte afin que vous puissiez ressentir le changement immédiatement. Appuyez sur `←` et `→` pour ajuster, `r` pour réinitialiser à la valeur par défaut détectée automatiquement, et `Entrée` pour enregistrer. La commande écrit la même valeur que la variable d'environnement `CLAUDE_CODE_SCROLL_SPEED` définit, persistée à `~/.claude/settings.json`. La commande n'est pas disponible dans le terminal de l'IDE JetBrains.109Pour ajuster la vitesse de défilement de manière interactive, exécutez `/scroll-speed`. La boîte de dialogue affiche une règle que vous pouvez faire défiler pendant qu'elle est ouverte afin que vous puissiez ressentir le changement immédiatement. Appuyez sur `←` et `→` pour ajuster, `r` pour réinitialiser à la valeur par défaut détectée automatiquement, et `Entrée` pour enregistrer. La commande écrit la même valeur que la variable d'environnement `CLAUDE_CODE_SCROLL_SPEED` définit, persistée à `~/.claude/settings.json`. La commande n'est pas disponible dans le terminal de l'IDE JetBrains.

110 110 

111Indépendamment de la vitesse de base, Claude Code accélère la vitesse de défilement lorsque vous tournez la molette rapidement, donc une rotation rapide couvre plus de distance que le même nombre de crans lents. Pour désactiver l'accélération et maintenir une vitesse constante par cran, définissez `wheelScrollAccelerationEnabled` sur `false` dans [`settings.json`](/fr/settings#available-settings). Ce paramètre nécessite Claude Code v2.1.174 ou une version ultérieure.

112 

111<h3 id="scroll-in-the-jetbrains-ide-terminal">113<h3 id="scroll-in-the-jetbrains-ide-terminal">

112 Défilement dans le terminal de l'IDE JetBrains114 Défilement dans le terminal de l'IDE JetBrains

113</h3>115</h3>


171 173 

172La capture de souris est le point de friction le plus courant, surtout sur SSH ou à l'intérieur de tmux. Lorsque Claude Code capture les événements de souris, la copie à la sélection natif de votre terminal cesse de fonctionner. La sélection que vous faites avec clic et glissement existe à l'intérieur de Claude Code, pas dans le tampon de sélection de votre terminal, donc le mode copie tmux, les indices Kitty et les outils similaires ne la voient pas.174La capture de souris est le point de friction le plus courant, surtout sur SSH ou à l'intérieur de tmux. Lorsque Claude Code capture les événements de souris, la copie à la sélection natif de votre terminal cesse de fonctionner. La sélection que vous faites avec clic et glissement existe à l'intérieur de Claude Code, pas dans le tampon de sélection de votre terminal, donc le mode copie tmux, les indices Kitty et les outils similaires ne la voient pas.

173 175 

174Claude Code essaie d'écrire la sélection dans votre presse-papiers, mais le chemin qu'il utilise dépend de votre configuration. À l'intérieur de tmux, il écrit dans le tampon de collage tmux. Sur SSH, il revient aux séquences d'échappement OSC 52, que certains terminaux bloquent par défaut. iTerm2 les bloque jusqu'à ce que vous activiez Paramètres → Général → Sélection → Les applications du terminal peuvent accéder au presse-papiers. Exécutez [`/terminal-setup`](/fr/terminal-config) dans iTerm2 pour activer cela pour vous. Claude Code imprime un toast après chaque copie vous indiquant quel chemin il a utilisé.176Claude Code écrit la sélection dans votre presse-papiers système, et le chemin qu'il utilise dépend de votre configuration. Sur une session locale, il exécute un outil de presse-papiers natif :

177 

178* **macOS** : `pbcopy`

179* **Linux** : `wl-copy` sur Wayland, ou `xclip` ou `xsel` sur X11, selon ce qui est installé. Claude Code écrit à la fois le presse-papiers et la sélection PRIMARY, donc le collage au clic du milieu fonctionne.

180* **Windows et WSL** : PowerShell `Set-Clipboard`

181 

182À l'intérieur de tmux, il écrit également dans le tampon de collage tmux. Sur SSH, il revient aux séquences d'échappement OSC 52. Claude Code imprime un toast après chaque copie vous indiquant quel chemin il a utilisé.

183 

184Certains terminaux bloquent OSC 52 par défaut. iTerm2 le bloque jusqu'à ce que vous activiez Paramètres → Général → Sélection → Les applications du terminal peuvent accéder au presse-papiers ; exécuter [`/terminal-setup`](/fr/terminal-config) dans iTerm2 active cela pour vous.

185 

186Pour une sélection natif ponctuelle, la touche à utiliser dépend de votre terminal :

187 

188* **Terminal.app** : `Fn`

189* **iTerm2** : `Option`

190* **VS Code, Cursor et Devin Desktop** : `Shift`, ou `Option` sur macOS avec le paramètre `terminal.integrated.macOptionClickForcesSelection` activé

191* **La plupart des autres terminaux** : `Shift`

192 

193Maintenez cette touche enfoncée pendant que vous cliquez et glissez. Votre terminal gère la sélection lui-même au lieu de la transférer à Claude Code, donc les raccourcis de copie comme `Cmd+C` fonctionnent sur ce que vous sélectionnez. Claude Code affiche également la touche correcte dans son indice à l'écran.

175 194 

176Pour une sélection natif ponctuelle, maintenez le modificateur de contournement de votre terminal pendant que vous cliquez et glissez : `Option` dans iTerm2, ou `Shift` dans la plupart des terminaux Linux et Windows. Le modificateur indique à votre terminal de gérer la sélection lui-même au lieu de transférer les événements de souris à Claude Code, donc `Cmd+C` et les autres raccourcis de copie de votre terminal fonctionnent dessus.195Sur SSH ou à l'intérieur de tmux, Claude Code ne peut pas toujours détecter le terminal auquel vous vous connectez, donc l'indice liste les touches candidates à la place.

177 196 

178Si vous comptez sur la sélection natif de votre terminal, définissez `CLAUDE_CODE_DISABLE_MOUSE=1` pour refuser la capture de souris tout en conservant le rendu sans scintillement et la mémoire plate :197Si vous comptez sur la sélection natif tout le temps, définissez `CLAUDE_CODE_DISABLE_MOUSE=1` pour refuser la capture de souris tout en conservant le rendu sans scintillement et la mémoire plate :

179 198 

180```bash theme={null}199```bash theme={null}

181CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude200CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude

github-actions.md +103 −39

Details

12 Claude Code GitHub Actions est construit sur le [Claude Agent SDK](/fr/agent-sdk/overview), qui permet l'intégration programmatique de Claude Code dans vos applications. Vous pouvez utiliser le SDK pour créer des flux de travail d'automatisation personnalisés au-delà de GitHub Actions.12 Claude Code GitHub Actions est construit sur le [Claude Agent SDK](/fr/agent-sdk/overview), qui permet l'intégration programmatique de Claude Code dans vos applications. Vous pouvez utiliser le SDK pour créer des flux de travail d'automatisation personnalisés au-delà de GitHub Actions.

13</Note>13</Note>

14 14 

15<Info>15<h2 id="why-use-claude-code-github-actions">

16 **Claude Opus 4.8 est maintenant disponible.** Claude Code GitHub Actions utilise par défaut Sonnet. Pour utiliser Opus 4.8, configurez le [paramètre model](#breaking-changes-reference) pour utiliser `claude-opus-4-8`.16 Pourquoi utiliser Claude Code GitHub Actions ?

17</Info>17</h2>

18 

19## Pourquoi utiliser Claude Code GitHub Actions ?

20 18 

21* **Création instantanée de PR** : Décrivez ce dont vous avez besoin, et Claude crée une PR complète avec tous les changements nécessaires19* **Création instantanée de PR** : Décrivez ce dont vous avez besoin, et Claude crée une PR complète avec tous les changements nécessaires

22* **Implémentation de code automatisée** : Transformez les issues en code fonctionnel avec une seule commande20* **Implémentation de code automatisée** : Transformez les issues en code fonctionnel avec une seule commande


24* **Configuration simple** : Commencez en quelques minutes avec notre installateur et votre clé API22* **Configuration simple** : Commencez en quelques minutes avec notre installateur et votre clé API

25* **Sécurisé par défaut** : Votre code reste sur les runners de Github23* **Sécurisé par défaut** : Votre code reste sur les runners de Github

26 24 

27## Que peut faire Claude ?25<h2 id="what-can-claude-do">

26 Que peut faire Claude ?

27</h2>

28 28 

29Claude Code fournit une GitHub Action puissante qui transforme votre façon de travailler avec le code :29Claude Code fournit une GitHub Action puissante qui transforme votre façon de travailler avec le code :

30 30 

31### Claude Code Action31<h3 id="claude-code-action">

32 Claude Code Action

33</h3>

32 34 

33Cette GitHub Action vous permet d'exécuter Claude Code dans vos flux de travail GitHub Actions. Vous pouvez l'utiliser pour créer n'importe quel flux de travail personnalisé sur Claude Code.35Cette GitHub Action vous permet d'exécuter Claude Code dans vos flux de travail GitHub Actions. Vous pouvez l'utiliser pour créer n'importe quel flux de travail personnalisé sur Claude Code.

34 36 

35[Voir le repository →](https://github.com/anthropics/claude-code-action)37[Voir le repository →](https://github.com/anthropics/claude-code-action)

36 38 

37## Configuration39<h2 id="setup">

40 Configuration

41</h2>

38 42 

39## Configuration rapide43<h2 id="quick-setup">

44 Configuration rapide

45</h2>

40 46 

41Le moyen le plus simple de configurer cette action est via Claude Code dans le terminal. Ouvrez simplement claude et exécutez `/install-github-app`.47Le moyen le plus simple de configurer cette action est via Claude Code dans le terminal. Ouvrez simplement claude et exécutez `/install-github-app`.

42 48 


48 * Cette méthode de démarrage rapide n'est disponible que pour les utilisateurs directs de l'API Claude. Si vous utilisez Amazon Bedrock ou Google Vertex AI, veuillez consulter la section [Utilisation avec Amazon Bedrock et Google Vertex AI](#using-with-amazon-bedrock-%26-google-vertex-ai).54 * Cette méthode de démarrage rapide n'est disponible que pour les utilisateurs directs de l'API Claude. Si vous utilisez Amazon Bedrock ou Google Vertex AI, veuillez consulter la section [Utilisation avec Amazon Bedrock et Google Vertex AI](#using-with-amazon-bedrock-%26-google-vertex-ai).

49</Note>55</Note>

50 56 

51## Configuration manuelle57<h2 id="manual-setup">

58 Configuration manuelle

59</h2>

52 60 

53Si la commande `/install-github-app` échoue ou si vous préférez une configuration manuelle, veuillez suivre ces instructions de configuration manuelle :61Si la commande `/install-github-app` échoue ou si vous préférez une configuration manuelle, veuillez suivre ces instructions de configuration manuelle :

54 62 


68 Après avoir complété la configuration rapide ou manuelle, testez l'action en marquant `@claude` dans un commentaire d'issue ou de PR.76 Après avoir complété la configuration rapide ou manuelle, testez l'action en marquant `@claude` dans un commentaire d'issue ou de PR.

69</Tip>77</Tip>

70 78 

71## Mise à niveau depuis la version bêta79<h2 id="upgrading-from-beta">

80 Mise à niveau depuis la version bêta

81</h2>

72 82 

73<Warning>83<Warning>

74 Claude Code GitHub Actions v1.0 introduit des changements majeurs qui nécessitent de mettre à jour vos fichiers de flux de travail pour passer de la version bêta à v1.0.84 Claude Code GitHub Actions v1.0 introduit des changements majeurs qui nécessitent de mettre à jour vos fichiers de flux de travail pour passer de la version bêta à v1.0.


76 86 

77Si vous utilisez actuellement la version bêta de Claude Code GitHub Actions, nous vous recommandons de mettre à jour vos flux de travail pour utiliser la version GA. La nouvelle version simplifie la configuration tout en ajoutant des fonctionnalités puissantes comme la détection automatique du mode.87Si vous utilisez actuellement la version bêta de Claude Code GitHub Actions, nous vous recommandons de mettre à jour vos flux de travail pour utiliser la version GA. La nouvelle version simplifie la configuration tout en ajoutant des fonctionnalités puissantes comme la détection automatique du mode.

78 88 

79### Changements essentiels89<h3 id="essential-changes">

90 Changements essentiels

91</h3>

80 92 

81Tous les utilisateurs bêta doivent apporter ces changements à leurs fichiers de flux de travail pour mettre à niveau :93Tous les utilisateurs bêta doivent apporter ces changements à leurs fichiers de flux de travail pour mettre à niveau :

82 94 


853. **Mettez à jour les entrées de prompt** : Remplacez `direct_prompt` par `prompt`973. **Mettez à jour les entrées de prompt** : Remplacez `direct_prompt` par `prompt`

864. **Déplacez les options CLI** : Convertissez `max_turns`, `model`, `custom_instructions`, etc. en `claude_args`984. **Déplacez les options CLI** : Convertissez `max_turns`, `model`, `custom_instructions`, etc. en `claude_args`

87 99 

88### Référence des changements majeurs100<h3 id="breaking-changes-reference">

101 Référence des changements majeurs

102</h3>

89 103 

90| Ancienne entrée bêta | Nouvelle entrée v1.0 |104| Ancienne entrée bêta | Nouvelle entrée v1.0 |

91| --------------------- | ---------------------------------------- |105| --------------------- | ---------------------------------------- |


99| `disallowed_tools` | `claude_args: --disallowedTools` |113| `disallowed_tools` | `claude_args: --disallowedTools` |

100| `claude_env` | `settings` format JSON |114| `claude_env` | `settings` format JSON |

101 115 

102### Exemple avant et après116<h3 id="before-and-after-example">

117 Exemple avant et après

118</h3>

103 119 

104**Version bêta :**120**Version bêta :**

105 121 


131 L'action détecte maintenant automatiquement s'il faut s'exécuter en mode interactif (répond aux mentions `@claude`) ou en mode automatisation (s'exécute immédiatement avec un prompt) en fonction de votre configuration.147 L'action détecte maintenant automatiquement s'il faut s'exécuter en mode interactif (répond aux mentions `@claude`) ou en mode automatisation (s'exécute immédiatement avec un prompt) en fonction de votre configuration.

132</Tip>148</Tip>

133 149 

134## Exemples de cas d'usage150<h2 id="example-use-cases">

151 Exemples de cas d'usage

152</h2>

135 153 

136Claude Code GitHub Actions peut vous aider avec une variété de tâches. Le [répertoire d'exemples](https://github.com/anthropics/claude-code-action/tree/main/examples) contient des flux de travail prêts à l'emploi pour différents scénarios.154Claude Code GitHub Actions peut vous aider avec une variété de tâches. Le [répertoire d'exemples](https://github.com/anthropics/claude-code-action/tree/main/examples) contient des flux de travail prêts à l'emploi pour différents scénarios.

137 155 

138### Flux de travail basique156<h3 id="basic-workflow">

157 Flux de travail basique

158</h3>

139 159 

140```yaml theme={null}160```yaml theme={null}

141name: Claude Code161name: Claude Code


154 # Responds to @claude mentions in comments174 # Responds to @claude mentions in comments

155```175```

156 176 

157### Utilisation de skills177<h3 id="using-skills">

178 Utilisation de skills

179</h3>

158 180 

159L'entrée `prompt` accepte une [invocation de skill](/fr/skills) ainsi que du texte brut :181L'entrée `prompt` accepte une [invocation de skill](/fr/skills) ainsi que du texte brut :

160 182 


180 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"202 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

181```203```

182 204 

183### Automatisation personnalisée avec prompts205<h3 id="custom-automation-with-prompts">

206 Automatisation personnalisée avec prompts

207</h3>

184 208 

185```yaml theme={null}209```yaml theme={null}

186name: Daily Report210name: Daily Report


198 claude_args: "--model opus"222 claude_args: "--model opus"

199```223```

200 224 

201### Cas d'usage courants225<h3 id="common-use-cases">

226 Cas d'usage courants

227</h3>

202 228 

203Dans les commentaires d'issue ou de PR :229Dans les commentaires d'issue ou de PR :

204 230 


210 236 

211Claude analysera automatiquement le contexte et répondra de manière appropriée.237Claude analysera automatiquement le contexte et répondra de manière appropriée.

212 238 

213## Bonnes pratiques239<h2 id="best-practices">

240 Bonnes pratiques

241</h2>

214 242 

215### Configuration CLAUDE.md243<h3 id="claude-md-configuration">

244 Configuration CLAUDE.md

245</h3>

216 246 

217Créez un fichier `CLAUDE.md` à la racine de votre repository pour définir les directives de style de code, les critères de révision, les règles spécifiques au projet et les modèles préférés. Ce fichier guide la compréhension de Claude des normes de votre projet.247Créez un fichier `CLAUDE.md` à la racine de votre repository pour définir les directives de style de code, les critères de révision, les règles spécifiques au projet et les modèles préférés. Ce fichier guide la compréhension de Claude des normes de votre projet.

218 248 

219### Considérations de sécurité249<h3 id="security-considerations">

250 Considérations de sécurité

251</h3>

220 252 

221<Warning>Ne commitez jamais les clés API directement dans votre repository.</Warning>253<Warning>Ne commitez jamais les clés API directement dans votre repository.</Warning>

222 254 


231 263 

232Utilisez toujours GitHub Secrets (par exemple, `${{ secrets.ANTHROPIC_API_KEY }}`) plutôt que de coder en dur les clés API directement dans vos fichiers de flux de travail.264Utilisez toujours GitHub Secrets (par exemple, `${{ secrets.ANTHROPIC_API_KEY }}`) plutôt que de coder en dur les clés API directement dans vos fichiers de flux de travail.

233 265 

234### Optimisation des performances266<h3 id="optimizing-performance">

267 Optimisation des performances

268</h3>

235 269 

236Utilisez les modèles d'issue pour fournir du contexte, gardez votre `CLAUDE.md` concis et ciblé, et configurez les délais d'attente appropriés pour vos flux de travail.270Utilisez les modèles d'issue pour fournir du contexte, gardez votre `CLAUDE.md` concis et ciblé, et configurez les délais d'attente appropriés pour vos flux de travail.

237 271 

238### Coûts CI272<h3 id="ci-costs">

273 Coûts CI

274</h3>

239 275 

240Lorsque vous utilisez Claude Code GitHub Actions, soyez conscient des coûts associés :276Lorsque vous utilisez Claude Code GitHub Actions, soyez conscient des coûts associés :

241 277 


257* Définissez les délais d'attente au niveau du flux de travail pour éviter les jobs qui s'exécutent indéfiniment293* Définissez les délais d'attente au niveau du flux de travail pour éviter les jobs qui s'exécutent indéfiniment

258* Envisagez d'utiliser les contrôles de concurrence de GitHub pour limiter les exécutions parallèles294* Envisagez d'utiliser les contrôles de concurrence de GitHub pour limiter les exécutions parallèles

259 295 

260## Exemples de configuration296<h2 id="configuration-examples">

297 Exemples de configuration

298</h2>

261 299 

262Claude Code Action v1 simplifie la configuration avec des paramètres unifiés :300Claude Code Action v1 simplifie la configuration avec des paramètres unifiés :

263 301 


282 Lorsque vous répondez à des commentaires d'issue ou de PR, Claude répond automatiquement aux mentions @claude. Pour les autres événements, utilisez le paramètre `prompt` pour fournir des instructions.320 Lorsque vous répondez à des commentaires d'issue ou de PR, Claude répond automatiquement aux mentions @claude. Pour les autres événements, utilisez le paramètre `prompt` pour fournir des instructions.

283</Tip>321</Tip>

284 322 

285## Utilisation avec Amazon Bedrock et Google Vertex AI323<h2 id="using-with-amazon-bedrock--google-vertex-ai">

324 Utilisation avec Amazon Bedrock et Google Vertex AI

325</h2>

286 326 

287Pour les environnements d'entreprise, vous pouvez utiliser Claude Code GitHub Actions avec votre propre infrastructure cloud. Cette approche vous donne le contrôle sur la résidence des données et la facturation tout en maintenant les mêmes fonctionnalités.327Pour les environnements d'entreprise, vous pouvez utiliser Claude Code GitHub Actions avec votre propre infrastructure cloud. Cette approche vous donne le contrôle sur la résidence des données et la facturation tout en maintenant les mêmes fonctionnalités.

288 328 

289### Prérequis329<h3 id="prerequisites">

330 Prérequis

331</h3>

290 332 

291Avant de configurer Claude Code GitHub Actions avec les fournisseurs cloud, vous avez besoin de :333Avant de configurer Claude Code GitHub Actions avec les fournisseurs cloud, vous avez besoin de :

292 334 

293#### Pour Google Cloud Vertex AI :335<h4 id="for-google-cloud-vertex-ai">

336 Pour Google Cloud Vertex AI :

337</h4>

294 338 

2951. Un projet Google Cloud avec Vertex AI activé3391. Un projet Google Cloud avec Vertex AI activé

2962. Workload Identity Federation configuré pour GitHub Actions3402. Workload Identity Federation configuré pour GitHub Actions

2973. Un compte de service avec les permissions requises3413. Un compte de service avec les permissions requises

2984. Une application GitHub (recommandée) ou utilisez le GITHUB\_TOKEN par défaut3424. Une application GitHub (recommandée) ou utilisez le GITHUB\_TOKEN par défaut

299 343 

300#### Pour Amazon Bedrock :344<h4 id="for-amazon-bedrock">

345 Pour Amazon Bedrock :

346</h4>

301 347 

3021. Un compte AWS avec Amazon Bedrock activé3481. Un compte AWS avec Amazon Bedrock activé

3032. GitHub OIDC Identity Provider configuré dans AWS3492. GitHub OIDC Identity Provider configuré dans AWS


348 Choisissez votre fournisseur cloud et configurez l'authentification sécurisée :394 Choisissez votre fournisseur cloud et configurez l'authentification sécurisée :

349 395 

350 <AccordionGroup>396 <AccordionGroup>

351 <Accordion title="AWS Bedrock">397 <Accordion title="Amazon Bedrock">

352 **Configurez AWS pour permettre à GitHub Actions de s'authentifier de manière sécurisée sans stocker les credentials.**398 **Configurez AWS pour permettre à GitHub Actions de s'authentifier de manière sécurisée sans stocker les credentials.**

353 399 

354 > **Note de sécurité** : Utilisez des configurations spécifiques au repository et accordez uniquement les permissions minimales requises.400 > **Note de sécurité** : Utilisez des configurations spécifiques au repository et accordez uniquement les permissions minimales requises.


609 </Step>655 </Step>

610</Steps>656</Steps>

611 657 

612## Dépannage658<h2 id="troubleshooting">

659 Dépannage

660</h2>

613 661 

614### Claude ne répond pas aux commandes @claude662<h3 id="claude-not-responding-to-claude-commands">

663 Claude ne répond pas aux commandes @claude

664</h3>

615 665 

616Vérifiez que l'application GitHub est correctement installée, vérifiez que les flux de travail sont activés, assurez-vous que la clé API est définie dans les secrets du repository et confirmez que le commentaire contient `@claude` (pas `/claude`).666Vérifiez que l'application GitHub est correctement installée, vérifiez que les flux de travail sont activés, assurez-vous que la clé API est définie dans les secrets du repository et confirmez que le commentaire contient `@claude` (pas `/claude`).

617 667 

618### CI ne s'exécute pas sur les commits de Claude668<h3 id="ci-not-running-on-claude’s-commits">

669 CI ne s'exécute pas sur les commits de Claude

670</h3>

619 671 

620Assurez-vous que vous utilisez l'application GitHub ou une application personnalisée (pas l'utilisateur Actions), vérifiez que les déclencheurs de flux de travail incluent les événements nécessaires et vérifiez que les permissions de l'application incluent les déclencheurs CI.672Assurez-vous que vous utilisez l'application GitHub ou une application personnalisée (pas l'utilisateur Actions), vérifiez que les déclencheurs de flux de travail incluent les événements nécessaires et vérifiez que les permissions de l'application incluent les déclencheurs CI.

621 673 

622### Erreurs d'authentification674<h3 id="authentication-errors">

675 Erreurs d'authentification

676</h3>

623 677 

624Confirmez que la clé API est valide et dispose des permissions suffisantes. Pour Bedrock/Vertex, vérifiez la configuration des credentials et assurez-vous que les secrets sont nommés correctement dans les flux de travail.678Confirmez que la clé API est valide et dispose des permissions suffisantes. Pour Bedrock/Vertex, vérifiez la configuration des credentials et assurez-vous que les secrets sont nommés correctement dans les flux de travail.

625 679 

626## Configuration avancée680<h2 id="advanced-configuration">

681 Configuration avancée

682</h2>

627 683 

628### Paramètres de l'action684<h3 id="action-parameters">

685 Paramètres de l'action

686</h3>

629 687 

630Claude Code Action v1 utilise une configuration simplifiée :688Claude Code Action v1 utilise une configuration simplifiée :

631 689 


644\*Le prompt est optionnel - lorsqu'il est omis pour les commentaires d'issue/PR, Claude répond à la phrase de déclenchement\702\*Le prompt est optionnel - lorsqu'il est omis pour les commentaires d'issue/PR, Claude répond à la phrase de déclenchement\

645\*\*Requis pour l'API Claude directe, pas pour Bedrock/Vertex703\*\*Requis pour l'API Claude directe, pas pour Bedrock/Vertex

646 704 

647#### Passer les arguments CLI705<h4 id="pass-cli-arguments">

706 Passer les arguments CLI

707</h4>

648 708 

649Le paramètre `claude_args` accepte n'importe quel argument Claude Code CLI :709Le paramètre `claude_args` accepte n'importe quel argument Claude Code CLI :

650 710 


660* `--allowedTools` : Liste séparée par des virgules des outils autorisés. L'alias `--allowed-tools` fonctionne également.720* `--allowedTools` : Liste séparée par des virgules des outils autorisés. L'alias `--allowed-tools` fonctionne également.

661* `--debug` : Activer la sortie de débogage721* `--debug` : Activer la sortie de débogage

662 722 

663### Méthodes d'intégration alternatives723<h3 id="alternative-integration-methods">

724 Méthodes d'intégration alternatives

725</h3>

664 726 

665Bien que la commande `/install-github-app` soit l'approche recommandée, vous pouvez également :727Bien que la commande `/install-github-app` soit l'approche recommandée, vous pouvez également :

666 728 


670 732 

671Consultez la [documentation Claude Code Action](https://github.com/anthropics/claude-code-action/blob/main/docs) pour des guides détaillés sur l'authentification, la sécurité et la configuration avancée.733Consultez la [documentation Claude Code Action](https://github.com/anthropics/claude-code-action/blob/main/docs) pour des guides détaillés sur l'authentification, la sécurité et la configuration avancée.

672 734 

673### Personnalisation du comportement de Claude735<h3 id="customizing-claude’s-behavior">

736 Personnalisation du comportement de Claude

737</h3>

674 738 

675Vous pouvez configurer le comportement de Claude de deux façons :739Vous pouvez configurer le comportement de Claude de deux façons :

676 740 

Details

205 Instance GHES non accessible205 Instance GHES non accessible

206</h3>206</h3>

207 207 

208Si les révisions ou les sessions web expirent, votre instance GHES peut ne pas être accessible à partir de l'infrastructure Anthropic. Confirmez que votre pare-feu autorise les connexions entrantes à partir des [adresses IP de l'API Anthropic](https://platform.claude.com/docs/en/api/ip-addresses).208Si les révisions ou les sessions web expirent, votre instance GHES peut ne pas être accessible à partir de l'infrastructure Anthropic. Confirmez que votre pare-feu autorise les connexions entrantes à partir des [adresses IP de l'API Anthropic](https://platform.claude.com/docs/fr/api/ip-addresses).

209 209 

210<h2 id="related-resources">210<h2 id="related-resources">

211 Ressources connexes211 Ressources connexes

gitlab-ci-cd.md +85 −29

Details

16 Cette intégration est construite sur la base de [Claude Code CLI et Agent SDK](/fr/agent-sdk/overview), permettant l'utilisation programmatique de Claude dans vos tâches CI/CD et vos flux de travail d'automatisation personnalisés.16 Cette intégration est construite sur la base de [Claude Code CLI et Agent SDK](/fr/agent-sdk/overview), permettant l'utilisation programmatique de Claude dans vos tâches CI/CD et vos flux de travail d'automatisation personnalisés.

17</Note>17</Note>

18 18 

19## Pourquoi utiliser Claude Code avec GitLab ?19<h2 id="why-use-claude-code-with-gitlab">

20 Pourquoi utiliser Claude Code avec GitLab ?

21</h2>

20 22 

21* **Création instantanée de MR** : Décrivez ce dont vous avez besoin, et Claude propose une MR complète avec les modifications et une explication23* **Création instantanée de MR** : Décrivez ce dont vous avez besoin, et Claude propose une MR complète avec les modifications et une explication

22* **Implémentation automatisée** : Transformez les problèmes en code fonctionnel avec une seule commande ou mention24* **Implémentation automatisée** : Transformez les problèmes en code fonctionnel avec une seule commande ou mention


25* **Prêt pour l'entreprise** : Choisissez Claude API, Amazon Bedrock ou Google Vertex AI pour répondre aux besoins de résidence des données et d'approvisionnement27* **Prêt pour l'entreprise** : Choisissez Claude API, Amazon Bedrock ou Google Vertex AI pour répondre aux besoins de résidence des données et d'approvisionnement

26* **Sécurisé par défaut** : S'exécute dans vos exécuteurs GitLab avec votre protection de branche et vos approbations28* **Sécurisé par défaut** : S'exécute dans vos exécuteurs GitLab avec votre protection de branche et vos approbations

27 29 

28## Comment ça marche30<h2 id="how-it-works">

31 Comment ça marche

32</h2>

29 33 

30Claude Code utilise GitLab CI/CD pour exécuter des tâches d'IA dans des tâches isolées et valider les résultats via des MR :34Claude Code utilise GitLab CI/CD pour exécuter des tâches d'IA dans des tâches isolées et valider les résultats via des MR :

31 35 


40 44 

41Choisissez des points de terminaison régionaux pour réduire la latence et respecter les exigences de souveraineté des données tout en utilisant les accords cloud existants.45Choisissez des points de terminaison régionaux pour réduire la latence et respecter les exigences de souveraineté des données tout en utilisant les accords cloud existants.

42 46 

43## Que peut faire Claude ?47<h2 id="what-can-claude-do">

48 Que peut faire Claude ?

49</h2>

44 50 

45Claude Code active des flux de travail CI/CD puissants qui transforment votre façon de travailler avec le code :51Claude Code active des flux de travail CI/CD puissants qui transforment votre façon de travailler avec le code :

46 52 


50* Corriger les bogues et les régressions identifiés par les tests ou les commentaires56* Corriger les bogues et les régressions identifiés par les tests ou les commentaires

51* Répondre aux commentaires de suivi pour itérer sur les modifications demandées57* Répondre aux commentaires de suivi pour itérer sur les modifications demandées

52 58 

53## Configuration59<h2 id="setup">

60 Configuration

61</h2>

54 62 

55### Configuration rapide63<h3 id="quick-setup">

64 Configuration rapide

65</h3>

56 66 

57Le moyen le plus rapide de commencer est d'ajouter une tâche minimale à votre `.gitlab-ci.yml` et de définir votre clé API comme variable masquée.67Le moyen le plus rapide de commencer est d'ajouter une tâche minimale à votre `.gitlab-ci.yml` et de définir votre clé API comme variable masquée.

58 68 


98Après avoir ajouté la tâche et votre variable `ANTHROPIC_API_KEY`, testez en exécutant la tâche manuellement à partir de **CI/CD** → **Pipelines**, ou déclenchez-la à partir d'une MR pour laisser Claude proposer des mises à jour dans une branche et ouvrir une MR si nécessaire.108Après avoir ajouté la tâche et votre variable `ANTHROPIC_API_KEY`, testez en exécutant la tâche manuellement à partir de **CI/CD** → **Pipelines**, ou déclenchez-la à partir d'une MR pour laisser Claude proposer des mises à jour dans une branche et ouvrir une MR si nécessaire.

99 109 

100<Note>110<Note>

101 Pour exécuter sur Amazon Bedrock ou Google Vertex AI au lieu de Claude API, consultez la section [Utilisation avec Amazon Bedrock et Google Vertex AI](#using-with-amazon-bedrock--google-vertex-ai) ci-dessous pour la configuration de l'authentification et de l'environnement.111 Pour exécuter sur Amazon Bedrock ou Google Vertex AI au lieu de Claude API, consultez la section [Utilisation avec Amazon Bedrock et Google Vertex AI](#using-with-amazon-bedrock-%26-google-vertex-ai) ci-dessous pour la configuration de l'authentification et de l'environnement.

102</Note>112</Note>

103 113 

104### Configuration manuelle (recommandée pour la production)114<h3 id="manual-setup-recommended-for-production">

115 Configuration manuelle (recommandée pour la production)

116</h3>

105 117 

106Si vous préférez une configuration plus contrôlée ou si vous avez besoin de fournisseurs d'entreprise :118Si vous préférez une configuration plus contrôlée ou si vous avez besoin de fournisseurs d'entreprise :

107 119 


120 * Ajoutez un webhook de projet pour « Commentaires (notes) » à votre écouteur d'événements (si vous en utilisez un)132 * Ajoutez un webhook de projet pour « Commentaires (notes) » à votre écouteur d'événements (si vous en utilisez un)

121 * Faites en sorte que l'écouteur appelle l'API de déclenchement du pipeline avec des variables comme `AI_FLOW_INPUT` et `AI_FLOW_CONTEXT` lorsqu'un commentaire contient `@claude`133 * Faites en sorte que l'écouteur appelle l'API de déclenchement du pipeline avec des variables comme `AI_FLOW_INPUT` et `AI_FLOW_CONTEXT` lorsqu'un commentaire contient `@claude`

122 134 

123## Exemples de cas d'utilisation135<h2 id="example-use-cases">

136 Exemples de cas d'utilisation

137</h2>

124 138 

125### Transformer les problèmes en MR139<h3 id="turn-issues-into-mrs">

140 Transformer les problèmes en MR

141</h3>

126 142 

127Dans un commentaire de problème :143Dans un commentaire de problème :

128 144 


132 148 

133Claude analyse le problème et la base de code, écrit les modifications dans une branche et ouvre une MR pour examen.149Claude analyse le problème et la base de code, écrit les modifications dans une branche et ouvre une MR pour examen.

134 150 

135### Obtenir de l'aide à l'implémentation151<h3 id="get-implementation-help">

152 Obtenir de l'aide à l'implémentation

153</h3>

136 154 

137Dans une discussion MR :155Dans une discussion MR :

138 156 


142 160 

143Claude propose des modifications, ajoute du code avec la mise en cache appropriée et met à jour la MR.161Claude propose des modifications, ajoute du code avec la mise en cache appropriée et met à jour la MR.

144 162 

145### Corriger les bogues rapidement163<h3 id="fix-bugs-quickly">

164 Corriger les bogues rapidement

165</h3>

146 166 

147Dans un commentaire de problème ou de MR :167Dans un commentaire de problème ou de MR :

148 168 


152 172 

153Claude localise le bogue, implémente un correctif et met à jour la branche ou ouvre une nouvelle MR.173Claude localise le bogue, implémente un correctif et met à jour la branche ou ouvre une nouvelle MR.

154 174 

155## Utilisation avec Amazon Bedrock et Google Vertex AI175<h2 id="using-with-amazon-bedrock--google-vertex-ai">

176 Utilisation avec Amazon Bedrock et Google Vertex AI

177</h2>

156 178 

157Pour les environnements d'entreprise, vous pouvez exécuter Claude Code entièrement sur votre infrastructure cloud avec la même expérience développeur.179Pour les environnements d'entreprise, vous pouvez exécuter Claude Code entièrement sur votre infrastructure cloud avec la même expérience développeur.

158 180 


238 </Tab>260 </Tab>

239</Tabs>261</Tabs>

240 262 

241## Exemples de configuration263<h2 id="configuration-examples">

264 Exemples de configuration

265</h2>

242 266 

243Voici des extraits prêts à l'emploi que vous pouvez adapter à votre pipeline.267Voici des extraits prêts à l'emploi que vous pouvez adapter à votre pipeline.

244 268 

245### .gitlab-ci.yml basique (Claude API)269<h3 id="basic-gitlab-ci-yml-claude-api">

270 .gitlab-ci.yml basique (Claude API)

271</h3>

246 272 

247```yaml theme={null}273```yaml theme={null}

248stages:274stages:


271 # Claude Code utilisera ANTHROPIC_API_KEY à partir des variables CI/CD297 # Claude Code utilisera ANTHROPIC_API_KEY à partir des variables CI/CD

272```298```

273 299 

274### Exemple de tâche Amazon Bedrock (OIDC)300<h3 id="amazon-bedrock-job-example-oidc">

301 Exemple de tâche Amazon Bedrock (OIDC)

302</h3>

275 303 

276**Conditions préalables :**304**Conditions préalables :**

277 305 


322 Les identifiants de modèle pour Bedrock incluent des préfixes spécifiques à la région (par exemple, `us.anthropic.claude-sonnet-4-6`). Transmettez le modèle souhaité via votre configuration de tâche ou votre invite si votre flux de travail le supporte.350 Les identifiants de modèle pour Bedrock incluent des préfixes spécifiques à la région (par exemple, `us.anthropic.claude-sonnet-4-6`). Transmettez le modèle souhaité via votre configuration de tâche ou votre invite si votre flux de travail le supporte.

323</Note>351</Note>

324 352 

325### Exemple de tâche Google Vertex AI (Workload Identity Federation)353<h3 id="google-vertex-ai-job-example-workload-identity-federation">

354 Exemple de tâche Google Vertex AI (Workload Identity Federation)

355</h3>

326 356 

327**Conditions préalables :**357**Conditions préalables :**

328 358 


375 Avec Workload Identity Federation, vous n'avez pas besoin de stocker les clés du compte de service. Utilisez des conditions de confiance spécifiques au référentiel et des comptes de service avec le moindre privilège.405 Avec Workload Identity Federation, vous n'avez pas besoin de stocker les clés du compte de service. Utilisez des conditions de confiance spécifiques au référentiel et des comptes de service avec le moindre privilège.

376</Note>406</Note>

377 407 

378## Bonnes pratiques408<h2 id="best-practices">

409 Bonnes pratiques

410</h2>

379 411 

380### Configuration CLAUDE.md412<h3 id="claude-md-configuration">

413 Configuration CLAUDE.md

414</h3>

381 415 

382Créez un fichier `CLAUDE.md` à la racine du référentiel pour définir les normes de codage, les critères d'examen et les règles spécifiques au projet. Claude lit ce fichier lors des exécutions et suit vos conventions lors de la proposition de modifications.416Créez un fichier `CLAUDE.md` à la racine du référentiel pour définir les normes de codage, les critères d'examen et les règles spécifiques au projet. Claude lit ce fichier lors des exécutions et suit vos conventions lors de la proposition de modifications.

383 417 

384### Considérations de sécurité418<h3 id="security-considerations">

419 Considérations de sécurité

420</h3>

385 421 

386**Ne validez jamais les clés API ou les identifiants cloud dans votre référentiel**. Utilisez toujours les variables CI/CD GitLab :422**Ne validez jamais les clés API ou les identifiants cloud dans votre référentiel**. Utilisez toujours les variables CI/CD GitLab :

387 423 


390* Limitez les autorisations des tâches et la sortie réseau426* Limitez les autorisations des tâches et la sortie réseau

391* Examinez les MR de Claude comme tout autre contributeur427* Examinez les MR de Claude comme tout autre contributeur

392 428 

393### Optimisation des performances429<h3 id="optimizing-performance">

430 Optimisation des performances

431</h3>

394 432 

395* Gardez `CLAUDE.md` concentré et concis433* Gardez `CLAUDE.md` concentré et concis

396* Fournissez des descriptions claires de problèmes/MR pour réduire les itérations434* Fournissez des descriptions claires de problèmes/MR pour réduire les itérations

397* Configurez des délais d'expiration de tâche raisonnables pour éviter les exécutions incontrôlées435* Configurez des délais d'expiration de tâche raisonnables pour éviter les exécutions incontrôlées

398* Mettez en cache les installations npm et de paquets dans les exécuteurs si possible436* Mettez en cache les installations npm et de paquets dans les exécuteurs si possible

399 437 

400### Coûts CI438<h3 id="ci-costs">

439 Coûts CI

440</h3>

401 441 

402Lorsque vous utilisez Claude Code avec GitLab CI/CD, soyez conscient des coûts associés :442Lorsque vous utilisez Claude Code avec GitLab CI/CD, soyez conscient des coûts associés :

403 443 


415 * Définissez les valeurs `max_turns` et le délai d'expiration de la tâche appropriés455 * Définissez les valeurs `max_turns` et le délai d'expiration de la tâche appropriés

416 * Limitez la concurrence pour contrôler les exécutions parallèles456 * Limitez la concurrence pour contrôler les exécutions parallèles

417 457 

418## Sécurité et gouvernance458<h2 id="security-and-governance">

459 Sécurité et gouvernance

460</h2>

419 461 

420* Chaque tâche s'exécute dans un conteneur isolé avec accès réseau restreint462* Chaque tâche s'exécute dans un conteneur isolé avec accès réseau restreint

421* Les modifications de Claude passent par des MR afin que les examinateurs voient chaque différence463* Les modifications de Claude passent par des MR afin que les examinateurs voient chaque différence


423* Claude Code utilise des autorisations limitées à l'espace de travail pour limiter les écritures465* Claude Code utilise des autorisations limitées à l'espace de travail pour limiter les écritures

424* Les coûts restent sous votre contrôle car vous apportez vos propres identifiants de fournisseur466* Les coûts restent sous votre contrôle car vous apportez vos propres identifiants de fournisseur

425 467 

426## Dépannage468<h2 id="troubleshooting">

469 Dépannage

470</h2>

427 471 

428### Claude ne répond pas aux commandes @claude472<h3 id="claude-not-responding-to-claude-commands">

473 Claude ne répond pas aux commandes @claude

474</h3>

429 475 

430* Vérifiez que votre pipeline est déclenché (manuellement, événement MR ou via un écouteur d'événements/webhook de note)476* Vérifiez que votre pipeline est déclenché (manuellement, événement MR ou via un écouteur d'événements/webhook de note)

431* Assurez-vous que les variables CI/CD (`ANTHROPIC_API_KEY` ou les paramètres du fournisseur cloud) sont présentes et non masquées477* Assurez-vous que les variables CI/CD (`ANTHROPIC_API_KEY` ou les paramètres du fournisseur cloud) sont présentes et non masquées

432* Vérifiez que le commentaire contient `@claude` (pas `/claude`) et que votre déclencheur de mention est configuré478* Vérifiez que le commentaire contient `@claude` (pas `/claude`) et que votre déclencheur de mention est configuré

433 479 

434### La tâche ne peut pas écrire de commentaires ou ouvrir des MR480<h3 id="job-can’t-write-comments-or-open-mrs">

481 La tâche ne peut pas écrire de commentaires ou ouvrir des MR

482</h3>

435 483 

436* Assurez-vous que `CI_JOB_TOKEN` dispose des autorisations suffisantes pour le projet, ou utilisez un jeton d'accès au projet avec la portée `api`484* Assurez-vous que `CI_JOB_TOKEN` dispose des autorisations suffisantes pour le projet, ou utilisez un jeton d'accès au projet avec la portée `api`

437* Vérifiez que l'outil `mcp__gitlab` est activé dans `--allowedTools`485* Vérifiez que l'outil `mcp__gitlab` est activé dans `--allowedTools`

438* Confirmez que la tâche s'exécute dans le contexte de la MR ou dispose de suffisamment de contexte via les variables `AI_FLOW_*`486* Confirmez que la tâche s'exécute dans le contexte de la MR ou dispose de suffisamment de contexte via les variables `AI_FLOW_*`

439 487 

440### Erreurs d'authentification488<h3 id="authentication-errors">

489 Erreurs d'authentification

490</h3>

441 491 

442* **Pour Claude API** : Confirmez que `ANTHROPIC_API_KEY` est valide et non expiré492* **Pour Claude API** : Confirmez que `ANTHROPIC_API_KEY` est valide et non expiré

443* **Pour Bedrock/Vertex** : Vérifiez la configuration OIDC/WIF, l'emprunt d'identité de rôle et les noms secrets ; confirmez la disponibilité de la région et du modèle493* **Pour Bedrock/Vertex** : Vérifiez la configuration OIDC/WIF, l'emprunt d'identité de rôle et les noms secrets ; confirmez la disponibilité de la région et du modèle

444 494 

445## Configuration avancée495<h2 id="advanced-configuration">

496 Configuration avancée

497</h2>

446 498 

447### Paramètres et variables courants499<h3 id="common-parameters-and-variables">

500 Paramètres et variables courants

501</h3>

448 502 

449Claude Code supporte ces entrées couramment utilisées :503Claude Code supporte ces entrées couramment utilisées :

450 504 


458 Les drapeaux et paramètres exacts peuvent varier selon la version de `@anthropic-ai/claude-code`. Exécutez `claude --help` dans votre tâche pour voir les options prises en charge.512 Les drapeaux et paramètres exacts peuvent varier selon la version de `@anthropic-ai/claude-code`. Exécutez `claude --help` dans votre tâche pour voir les options prises en charge.

459</Note>513</Note>

460 514 

461### Personnalisation du comportement de Claude515<h3 id="customizing-claude’s-behavior">

516 Personnalisation du comportement de Claude

517</h3>

462 518 

463Vous pouvez guider Claude de deux façons principales :519Vous pouvez guider Claude de deux façons principales :

464 520 

glossary.md +6 −6

Details

112 CLAUDE.md112 CLAUDE.md

113</h3>113</h3>

114 114 

115Un fichier markdown d'instructions persistantes que vous écrivez pour Claude, chargé au début de chaque session en tant que message utilisateur après l'invite système. Mettez les conventions de projet, les notes d'architecture et les règles « toujours faire X » ici. CLAUDE.md survit à [compaction](#compaction) et est relu à nouveau à partir du disque après.115Un fichier markdown d'instructions persistantes que vous écrivez pour Claude, chargé au début de chaque session en tant que message utilisateur après l'invite système. Mettez les conventions de projet, les notes d'architecture et les règles « toujours faire X » ici. Project-root CLAUDE.md survit à [compaction](#compaction) et est relu à nouveau à partir du disque après.

116 116 

117Vous pouvez placer CLAUDE.md au niveau du projet dans `./CLAUDE.md` ou `./.claude/CLAUDE.md`, au niveau utilisateur dans `~/.claude/CLAUDE.md`, ou comme [managed policy](#managed-settings) pour votre organisation. Tous les fichiers découverts sont concaténés dans le contexte plutôt que de se remplacer les uns les autres, ordonnés du champ d'application le plus large au plus spécifique.117Vous pouvez placer CLAUDE.md au niveau du projet dans `./CLAUDE.md` ou `./.claude/CLAUDE.md`, au niveau utilisateur dans `~/.claude/CLAUDE.md`, ou comme [managed policy](#managed-settings) pour votre organisation. Tous les fichiers découverts sont concaténés dans le contexte plutôt que de se remplacer les uns les autres, ordonnés du champ d'application le plus large au plus spécifique.

118 118 


130 Compaction130 Compaction

131</h3>131</h3>

132 132 

133Résumé automatique de votre conversation lorsque la [context window](#context-window) approche de sa limite. Les résultats des outils plus anciens sont d'abord effacés, puis la conversation est résumée. Le CLAUDE.md à la racine du projet et la auto memory survivent à la compaction et se rechargent à partir du disque ; les instructions données uniquement dans la conversation peuvent être perdues. Exécutez `/compact` pour déclencher manuellement, éventuellement avec un focus comme `/compact focus on the API changes`.133Résumé automatique de votre conversation lorsque la [context window](#context-window) approche de sa limite. Les résultats des outils plus anciens sont d'abord effacés, puis la conversation est résumée. Project-root CLAUDE.md et auto memory survivent à la compaction et se rechargent à partir du disque ; les instructions données uniquement dans la conversation peuvent être perdues. Exécutez `/compact` pour déclencher manuellement, éventuellement avec un focus comme `/compact focus on the API changes`.

134 134 

135En savoir plus : [What survives compaction](/fr/context-window#what-survives-compaction) · [When context fills up](/fr/how-claude-code-works#when-context-fills-up)135En savoir plus : [What survives compaction](/fr/context-window#what-survives-compaction) · [When context fills up](/fr/how-claude-code-works#when-context-fills-up)

136 136 


162 Effort level162 Effort level

163</h3>163</h3>

164 164 

165Un paramètre qui contrôle la quantité du budget de réflexion adaptative que Claude utilise à chaque tour. Un effort plus élevé signifie plus de tokens de réflexion et un raisonnement plus profond ; un effort plus faible est plus rapide et moins cher. L'effort est pris en charge sur Opus 4.6 et versions ultérieures, ainsi que sur Sonnet 4.6.165Un paramètre qui contrôle la quantité du budget de réflexion adaptative que Claude utilise à chaque tour. Un effort plus élevé signifie plus de tokens de réflexion et un raisonnement plus profond ; un effort plus faible est plus rapide et moins cher. L'effort est pris en charge sur Fable 5, sur Opus 4.6 et versions ultérieures, ainsi que sur Sonnet 4.6.

166 166 

167En savoir plus : [Adjust effort level](/fr/model-config#adjust-effort-level)167En savoir plus : [Adjust effort level](/fr/model-config#adjust-effort-level)

168 168 


170 Extended thinking170 Extended thinking

171</h3>171</h3>

172 172 

173Un raisonnement étape par étape visible que le modèle effectue avant de répondre. Vous pouvez plafonner les tokens de réflexion avec `MAX_THINKING_TOKENS` ou ajuster le [effort level](#effort-level). La réflexion apparaît en texte gris italique dans le terminal.173Un raisonnement étape par étape visible que le modèle effectue avant de répondre. Vous pouvez l'ajuster avec le [effort level](#effort-level), ou plafonner les tokens de réflexion avec `MAX_THINKING_TOKENS` sur les modèles avec un budget de réflexion fixe. La réflexion apparaît en texte gris italique dans le terminal.

174 174 

175En savoir plus : [Use extended thinking](/fr/model-config#extended-thinking)175En savoir plus : [Use extended thinking](/fr/model-config#extended-thinking)

176 176 


410 410 

411Comment une session sait que le travail est réellement terminé plutôt que simplement plausible. Vous donnez à Claude une vérification qu'il peut exécuter, comme une suite de tests, une compilation ou une comparaison de captures d'écran, et Claude itère jusqu'à ce que la vérification réussisse au lieu de s'arrêter après une tentative. Une verification loop est la condition préalable pour [`/goal`](/fr/goal), les exécutions sans surveillance et les [dynamic workflows](/fr/workflows) : sans elle, la seule chose qui décide que l'agent a terminé est l'agent lui-même.411Comment une session sait que le travail est réellement terminé plutôt que simplement plausible. Vous donnez à Claude une vérification qu'il peut exécuter, comme une suite de tests, une compilation ou une comparaison de captures d'écran, et Claude itère jusqu'à ce que la vérification réussisse au lieu de s'arrêter après une tentative. Une verification loop est la condition préalable pour [`/goal`](/fr/goal), les exécutions sans surveillance et les [dynamic workflows](/fr/workflows) : sans elle, la seule chose qui décide que l'agent a terminé est l'agent lui-même.

412 412 

413En savoir plus : [Give Claude a way to verify its work](/fr/best-practices#give-claude-a-way-to-verify-its-work)413En savoir plus : [Donnez à Claude un moyen de vérifier son travail](/fr/best-practices#give-claude-a-way-to-verify-its-work)

414 414 

415<h2 id="w">415<h2 id="w">

416 W416 W


427***427***

428 428 

429<h2 id="deprecated-and-renamed-terms">429<h2 id="deprecated-and-renamed-terms">

430 Deprecated and renamed terms430 Termes dépréciés et renommés

431</h2>431</h2>

432 432 

433Ces termes apparaissent dans les documents plus anciens, les articles de blog et le contenu communautaire. Utilisez le nom actuel lors de la recherche sur ce site.433Ces termes apparaissent dans les documents plus anciens, les articles de blog et le contenu communautaire. Utilisez le nom actuel lors de la recherche sur ce site.

Details

6 6 

7> Découvrez comment configurer Claude Code via Google Vertex AI, y compris la configuration, la configuration IAM et la résolution des problèmes.7> Découvrez comment configurer Claude Code via Google Vertex AI, y compris la configuration, la configuration IAM et la résolution des problèmes.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79<ContactSalesCard surface="vertex" />

80 

9<h2 id="prerequisites">81<h2 id="prerequisites">

10 Conditions préalables82 Conditions préalables

11</h2>83</h2>


155</h3>227</h3>

156 228 

157<Warning>229<Warning>

158 Épinglez les versions de modèle spécifiques lors du déploiement pour plusieurs utilisateurs. Sans épinglage, les alias de modèle tels que `sonnet` et `opus` se résolvent à la dernière version, qui peut ne pas encore être activée dans votre projet Vertex AI lorsqu'Anthropic publie une mise à jour. Claude Code [revient](#startup-model-checks) à la version précédente au démarrage lorsque la dernière n'est pas disponible, mais l'épinglage vous permet de contrôler quand vos utilisateurs passent à un nouveau modèle.230 Épinglez les versions de modèle spécifiques lors du déploiement pour plusieurs utilisateurs. Sans épinglage, les alias de modèle tels que `sonnet` et `opus` se résolvent à la valeur par défaut intégrée de Claude Code pour Vertex AI, qui peut être en retard par rapport à la version la plus récente et peut ne pas encore être activée dans votre projet. Claude Code [revient](#startup-model-checks) à la version précédente au démarrage lorsque la valeur par défaut n'est pas disponible, mais l'épinglage vous permet de contrôler quand vos utilisateurs passent à un nouveau modèle.

159</Warning>231</Warning>

160 232 

161Définissez ces variables d'environnement sur des ID de modèle Vertex AI spécifiques.233Définissez ces variables d'environnement sur des ID de modèle Vertex AI spécifiques.

headless.md +11 −3

Details

62 `--bare` est le mode recommandé pour les appels scriptés et SDK, et deviendra le mode par défaut pour `-p` dans une version future.62 `--bare` est le mode recommandé pour les appels scriptés et SDK, et deviendra le mode par défaut pour `-p` dans une version future.

63</Note>63</Note>

64 64 

65<h3 id="background-tasks-at-exit">

66 Tâches en arrière-plan à la sortie

67</h3>

68 

69Si Claude démarre une [tâche Bash en arrière-plan](/fr/tools-reference#bash-tool-behavior) lors d'une exécution `claude -p`, par exemple un serveur de développement ou une compilation en surveillance, cette tâche est terminée environ cinq secondes après que Claude ait retourné son résultat final et que stdin ait été fermé. La période de grâce permet à une tâche qui se termine juste après le résultat de livrer quand même sa sortie. Avant la v2.1.163, un processus en arrière-plan qui ne s'arrêtait jamais maintiendrait l'invocation `claude -p` ouverte indéfiniment.

70 

65<h2 id="examples">71<h2 id="examples">

66 Exemples72 Exemples

67</h2>73</h2>


163Quand une requête API échoue avec une erreur réessayable, Claude Code émet un événement `system/api_retry` avant de réessayer. Vous pouvez l'utiliser pour afficher la progression des tentatives ou implémenter une logique de backoff personnalisée.169Quand une requête API échoue avec une erreur réessayable, Claude Code émet un événement `system/api_retry` avant de réessayer. Vous pouvez l'utiliser pour afficher la progression des tentatives ou implémenter une logique de backoff personnalisée.

164 170 

165| Champ | Type | Description |171| Champ | Type | Description |

166| ---------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |172| ---------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

167| `type` | `"system"` | type de message |173| `type` | `"system"` | type de message |

168| `subtype` | `"api_retry"` | identifie ceci comme un événement de tentative |174| `subtype` | `"api_retry"` | identifie ceci comme un événement de tentative |

169| `attempt` | entier | numéro de tentative actuel, commençant à 1 |175| `attempt` | entier | numéro de tentative actuel, commençant à 1 |

170| `max_retries` | entier | nombre total de tentatives autorisées |176| `max_retries` | entier | nombre total de tentatives autorisées |

171| `retry_delay_ms` | entier | millisecondes jusqu'à la prochaine tentative |177| `retry_delay_ms` | entier | millisecondes jusqu'à la prochaine tentative |

172| `error_status` | entier ou null | code de statut HTTP, ou `null` pour les erreurs de connexion sans réponse HTTP |178| `error_status` | entier ou null | code de statut HTTP, ou `null` pour les erreurs de connexion sans réponse HTTP |

173| `error` | chaîne | catégorie d'erreur : `authentication_failed`, `oauth_org_not_allowed`, `billing_error`, `rate_limit`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, ou `unknown` |179| `error` | chaîne | catégorie d'erreur : `authentication_failed`, `oauth_org_not_allowed`, `billing_error`, `rate_limit`, `overloaded`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, ou `unknown` |

174| `uuid` | chaîne | identifiant d'événement unique |180| `uuid` | chaîne | identifiant d'événement unique |

175| `session_id` | chaîne | session à laquelle appartient l'événement |181| `session_id` | chaîne | session à laquelle appartient l'événement |

176 182 


226Le flag `--allowedTools` utilise la [syntaxe des règles de permission](/fr/settings#permission-rule-syntax). L'espace ` *` à la fin active la correspondance de préfixe, donc `Bash(git diff *)` autorise n'importe quelle commande commençant par `git diff`. L'espace avant `*` est important : sans lui, `Bash(git diff*)` correspondrait également à `git diff-index`.232Le flag `--allowedTools` utilise la [syntaxe des règles de permission](/fr/settings#permission-rule-syntax). L'espace ` *` à la fin active la correspondance de préfixe, donc `Bash(git diff *)` autorise n'importe quelle commande commençant par `git diff`. L'espace avant `*` est important : sans lui, `Bash(git diff*)` correspondrait également à `git diff-index`.

227 233 

228<Note>234<Note>

229 Les [skills](/fr/skills) invoquées par l'utilisateur comme `/code-review` et les [commandes intégrées](/fr/commands) ne sont disponibles qu'en mode interactif. En mode `-p`, décrivez plutôt la tâche que vous souhaitez accomplir.235 Les [skills](/fr/skills) invoquées par l'utilisateur et les commandes personnalisées fonctionnent en mode `-p` : incluez `/skill-name` dans la chaîne de prompt et Claude Code l'étend avant d'exécuter. Les commandes intégrées qui ouvrent un dialogue interactif, telles que `/config` et `/login`, ne sont pas disponibles en mode `-p`.

230</Note>236</Note>

231 237 

232<h3 id="customize-the-system-prompt">238<h3 id="customize-the-system-prompt">


265claude -p "Continue that review" --resume "$session_id"271claude -p "Continue that review" --resume "$session_id"

266```272```

267 273 

274Exécutez les deux commandes à partir du même répertoire : la recherche d'ID de session est limitée au répertoire de projet actuel et à ses git worktrees. Consultez [Reprendre une session](/fr/sessions#resume-a-session) pour les règles de portée complètes.

275 

268<h2 id="next-steps">276<h2 id="next-steps">

269 Étapes suivantes277 Étapes suivantes

270</h2>278</h2>

hooks.md +64 −25

Details

108Supposons maintenant que Claude Code décide d'exécuter `Bash "rm -rf /tmp/build"`. Voici ce qui se passe :108Supposons maintenant que Claude Code décide d'exécuter `Bash "rm -rf /tmp/build"`. Voici ce qui se passe :

109 109 

110<Frame>110<Frame>

111 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" alt="Flux de résolution du hook : l'événement PreToolUse se déclenche, le matcher vérifie la correspondance Bash, la condition if vérifie la correspondance Bash(rm *), le gestionnaire de hook s'exécute, le résultat revient à Claude Code" width="930" height="270" data-path="images/hook-resolution.svg" />111 <img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/hook-resolution.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=be0bf3053550c26de5f54cd64674c197" alt="Diagramme de résolution du hook : PreToolUse se déclenche, le matcher vérifie la correspondance Bash, la condition if vérifie la correspondance Bash(rm *). Si les deux correspondent, la commande du hook s'exécute et retourne permissionDecision deny, donc l'appel d'outil est bloqué et Claude Code continue. Si l'une des vérifications ne correspond pas, le hook est ignoré et l'appel d'outil est autorisé à procéder." width="930" height="270" data-path="images/hook-resolution.svg" />

112</Frame>112</Frame>

113 113 

114<Steps>114<Steps>


174L'endroit où vous définissez un hook détermine sa portée :174L'endroit où vous définissez un hook détermine sa portée :

175 175 

176| Emplacement | Portée | Partageable |176| Emplacement | Portée | Partageable |

177| :--------------------------------------------------------- | :--------------------------------- | :--------------------------------------- |177| :--------------------------------------------------------- | :--------------------------------- | :---------------------------------------------- |

178| `~/.claude/settings.json` | Tous vos projets | Non, local à votre machine |178| `~/.claude/settings.json` | Tous vos projets | Non, local à votre machine |

179| `.claude/settings.json` | Projet unique | Oui, peut être commité dans le repo |179| `.claude/settings.json` | Projet unique | Oui, peut être commité dans le repo |

180| `.claude/settings.local.json` | Projet unique | Non, ignoré par git |180| `.claude/settings.local.json` | Projet unique | Non, ignoré par git lorsque Claude Code le crée |

181| Paramètres de politique gérée | À l'échelle de l'organisation | Oui, contrôlé par l'administrateur |181| Paramètres de politique gérée | À l'échelle de l'organisation | Oui, contrôlé par l'administrateur |

182| [Plugin](/fr/plugins) `hooks/hooks.json` | Lorsque le plugin est activé | Oui, fourni avec le plugin |182| [Plugin](/fr/plugins) `hooks/hooks.json` | Lorsque le plugin est activé | Oui, fourni avec le plugin |

183| Frontmatter [Skill](/fr/skills) ou [agent](/fr/sub-agents) | Pendant que le composant est actif | Oui, défini dans le fichier du composant |183| Frontmatter [Skill](/fr/skills) ou [agent](/fr/sub-agents) | Pendant que le composant est actif | Oui, défini dans le fichier du composant |


311Ces champs s'appliquent à tous les types de hooks :311Ces champs s'appliquent à tous les types de hooks :

312 312 

313| Champ | Requis | Description |313| Champ | Requis | Description |

314| :-------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |314| :-------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

315| `type` | oui | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` ou `"agent"` |315| `type` | oui | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` ou `"agent"` |

316| `if` | non | Syntaxe de règle de permission pour filtrer quand ce hook s'exécute, comme `"Bash(git *)"` ou `"Edit(*.ts)"`. Le hook ne s'exécute que si l'appel d'outil correspond au modèle, ou si une commande Bash est trop complexe à analyser. Évalué uniquement sur les événements d'outil : `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` et `PermissionDenied`. Sur les autres événements, un hook avec `if` défini ne s'exécute jamais. Utilise la même syntaxe que les [règles de permission](/fr/permissions) |316| `if` | non | Syntaxe de règle de permission pour filtrer quand ce hook s'exécute, comme `"Bash(git *)"` ou `"Edit(*.ts)"`. Le hook de commande ne s'exécute que si l'appel d'outil correspond au modèle. Consultez le [tableau de correspondance Bash](#bash-if-matching) ci-dessous pour voir comment les modèles Bash s'évaluent par rapport aux sous-commandes, `$()` et aux backticks. Évalué uniquement sur les événements d'outil : `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` et `PermissionDenied`. Sur les autres événements, un hook avec `if` défini ne s'exécute jamais. Utilise la même syntaxe que les [règles de permission](/fr/permissions) |

317| `timeout` | non | Secondes avant annulation. Valeurs par défaut : 600 pour `command`, `http` et `mcp_tool` ; 30 pour `prompt` ; 60 pour `agent`. [`UserPromptSubmit`](#userpromptsubmit) abaisse la valeur par défaut de `command`, `http` et `mcp_tool` à 30, et [`MessageDisplay`](#messagedisplay) l'abaisse à 10 |317| `timeout` | non | Secondes avant annulation. Valeurs par défaut : 600 pour `command`, `http` et `mcp_tool` ; 30 pour `prompt` ; 60 pour `agent`. [`UserPromptSubmit`](#userpromptsubmit) abaisse la valeur par défaut de `command`, `http` et `mcp_tool` à 30, et [`MessageDisplay`](#messagedisplay) l'abaisse à 10 |

318| `statusMessage` | non | Message de spinner personnalisé affiché pendant l'exécution du hook |318| `statusMessage` | non | Message de spinner personnalisé affiché pendant l'exécution du hook |

319| `once` | non | Si `true`, s'exécute une seule fois par session puis est supprimé. Honoré uniquement pour les hooks déclarés dans le [frontmatter des skills](#hooks-in-skills-and-agents) ; ignoré dans les fichiers de paramètres et le frontmatter des agents |319| `once` | non | Si `true`, s'exécute une seule fois par session puis est supprimé. Honoré uniquement pour les hooks déclarés dans le [frontmatter des skills](#hooks-in-skills-and-agents) ; ignoré dans les fichiers de paramètres et le frontmatter des agents |

320 320 

321Le champ `if` contient exactement une règle de permission. Il n'y a pas de syntaxe `&&`, `||` ou de liste pour combiner les règles ; pour appliquer plusieurs conditions, définissez un gestionnaire de hook séparé pour chacune. Pour Bash, la règle est comparée à chaque sous-commande de l'entrée de l'outil après suppression des affectations `VAR=value` en début, donc `if: "Bash(git push *)"` correspond à la fois à `FOO=bar git push` et à `npm test && git push`. Le hook s'exécute si une sous-commande correspond, et s'exécute toujours lorsque la commande est trop complexe à analyser.321Le champ `if` contient exactement une règle de permission. Il n'y a pas de syntaxe `&&`, `||` ou de liste pour combiner les règles ; pour appliquer plusieurs conditions, définissez un gestionnaire de hook séparé pour chacune.

322 

323<span id="bash-if-matching" />Pour les modèles Bash, le fait que votre commande de hook s'exécute dépend de la forme du modèle et de la commande Bash que Claude invoque. Les affectations `VAR=value` en début sont supprimées avant la correspondance.

324 

325| Modèle `if` | Commande Bash | Le hook s'exécute-t-il ? | Pourquoi |

326| :----------------- | :--------------------- | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------- |

327| `Bash(git *)` | `FOO=bar git push` | oui | les affectations en début sont supprimées ; `git push` correspond |

328| `Bash(git *)` | `npm test && git push` | oui | chaque sous-commande est vérifiée ; `git push` correspond |

329| `Bash(rm *)` | `echo $(rm -rf /)` | oui | les commandes à l'intérieur de `$()` et des backticks sont vérifiées ; `rm -rf /` correspond |

330| `Bash(rm *)` | `echo $(date)` | non | aucune sous-commande ne correspond à `rm *` |

331| `Bash(git push *)` | `echo $(date)` | oui | les modèles qui spécifient plus que le nom de la commande exécutent le hook de toute façon sur `$()`, les backticks ou `$VAR` |

332 

333Le filtre échoue également ouvert, exécutant votre hook indépendamment du modèle, lorsque la commande Bash ne peut pas être analysée. Parce que le filtre `if` est au mieux un effort, utilisez le [système de permission](/fr/permissions) plutôt qu'un hook pour appliquer une autorisation ou un refus strict.

322 334 

323<h4 id="command-hook-fields">335<h4 id="command-hook-fields">

324 Champs des hooks de commande336 Champs des hooks de commande


461En plus des [champs communs](#common-fields), les hooks de prompt et d'agent acceptent ces champs :473En plus des [champs communs](#common-fields), les hooks de prompt et d'agent acceptent ces champs :

462 474 

463| Champ | Requis | Description |475| Champ | Requis | Description |

464| :------- | :----- | :------------------------------------------------------------------------------------------------------ |476| :------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

465| `prompt` | oui | Texte du prompt à envoyer au modèle. Utilisez `$ARGUMENTS` comme placeholder pour l'entrée JSON du hook |477| `prompt` | oui | Texte du prompt à envoyer au modèle. Utilisez `$ARGUMENTS` comme placeholder pour l'entrée JSON du hook. Échappez avec une barre oblique inverse pour inclure du texte littéral : `\$1.00` s'affiche comme `$1.00` |

466| `model` | non | Modèle à utiliser pour l'évaluation. Par défaut un modèle rapide |478| `model` | non | Modèle à utiliser pour l'évaluation. Par défaut un modèle rapide |

467 479 

468Tous les hooks correspondants s'exécutent en parallèle, et les gestionnaires identiques sont automatiquement dédupliqués. Les hooks de commande sont dédupliqués par chaîne de commande et `args`, et les hooks HTTP sont dédupliqués par URL. Les gestionnaires s'exécutent dans le répertoire courant avec l'environnement de Claude Code. La variable d'environnement `$CLAUDE_CODE_REMOTE` est définie à `"true"` dans les environnements web distants et n'est pas définie dans le CLI local.480Tous les hooks correspondants s'exécutent en parallèle, et les gestionnaires identiques sont automatiquement dédupliqués. Les hooks de commande sont dédupliqués par chaîne de commande et `args`, et les hooks HTTP sont dédupliqués par URL. Les gestionnaires s'exécutent dans le répertoire courant avec l'environnement de Claude Code. La variable d'environnement `$CLAUDE_CODE_REMOTE` est définie à `"true"` dans les environnements web distants et n'est pas définie dans le CLI local.


619| `agent_id` | Identifiant unique pour le subagent. Présent uniquement lorsque le hook se déclenche à l'intérieur d'un appel de subagent. Utilisez ceci pour distinguer les appels de hook de subagent des appels du thread principal. |631| `agent_id` | Identifiant unique pour le subagent. Présent uniquement lorsque le hook se déclenche à l'intérieur d'un appel de subagent. Utilisez ceci pour distinguer les appels de hook de subagent des appels du thread principal. |

620| `agent_type` | Nom de l'agent (par exemple, `"Explore"` ou `"security-reviewer"`). Présent lorsque la session utilise `--agent` ou que le hook se déclenche à l'intérieur d'un subagent. Pour les subagents, le type du subagent prend précédence sur la valeur `--agent` de la session. Pour les [subagents personnalisés](/fr/sub-agents), c'est le champ `name` du frontmatter de l'agent, pas le nom du fichier. |632| `agent_type` | Nom de l'agent (par exemple, `"Explore"` ou `"security-reviewer"`). Présent lorsque la session utilise `--agent` ou que le hook se déclenche à l'intérieur d'un subagent. Pour les subagents, le type du subagent prend précédence sur la valeur `--agent` de la session. Pour les [subagents personnalisés](/fr/sub-agents), c'est le champ `name` du frontmatter de l'agent, pas le nom du fichier. |

621 633 

622Seuls les hooks [`SessionStart`](#sessionstart) reçoivent un champ `model`. Il n'y a pas de variable d'environnement `$CLAUDE_MODEL`. Un processus de hook hérite de l'environnement parent, il peut donc lire `$ANTHROPIC_MODEL` si vous le définissez dans votre shell, mais cette valeur ne change pas lorsque vous changez de modèle avec `/model` pendant une session.634Seuls les hooks [`SessionStart`](#sessionstart) reçoivent un champ `model`, et sa présence n'est pas garantie. Il n'y a pas de variable d'environnement `$CLAUDE_MODEL`. Un processus de hook hérite de l'environnement parent, il peut donc lire `$ANTHROPIC_MODEL` si vous le définissez dans votre shell, mais cette valeur ne change pas lorsque vous changez de modèle avec `/model` pendant une session.

623 635 

624Par exemple, un hook `PreToolUse` pour une commande Bash reçoit ceci sur stdin :636Par exemple, un hook `PreToolUse` pour une commande Bash reçoit ceci sur stdin :

625 637 


782# Hook de notification : ping le bureau lorsque Claude Code a besoin d'attention.794# Hook de notification : ping le bureau lorsque Claude Code a besoin d'attention.

783input=$(cat)795input=$(cat)

784title="Claude Code'796title="Claude Code'

785body=$(jq -r '.message // 'Needs your attention'' <<<"$input")797body=$(jq -r '.message // 'Needs your attention'' <<<'$input")

786seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")798seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

787jq -nc --arg seq "$seq" '{terminalSequence: $seq}'799jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

788```800```


815* [SessionStart](#sessionstart), [Setup](#setup) et [SubagentStart](#subagentstart) : au début de la conversation, avant le premier prompt827* [SessionStart](#sessionstart), [Setup](#setup) et [SubagentStart](#subagentstart) : au début de la conversation, avant le premier prompt

816* [UserPromptSubmit](#userpromptsubmit) et [UserPromptExpansion](#userpromptexpansion) : aux côtés du prompt soumis828* [UserPromptSubmit](#userpromptsubmit) et [UserPromptExpansion](#userpromptexpansion) : aux côtés du prompt soumis

817* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) et [PostToolBatch](#posttoolbatch) : à côté du résultat de l'outil829* [PreToolUse](#pretooluse), [PostToolUse](#posttooluse), [PostToolUseFailure](#posttoolusefailure) et [PostToolBatch](#posttoolbatch) : à côté du résultat de l'outil

830* [Stop](#stop) et [SubagentStop](#subagentstop) : à la fin du tour. La conversation continue afin que Claude puisse agir sur les commentaires. Consultez [Contrôle de décision Stop](#stop-decision-control)

818 831 

819Lorsque plusieurs hooks retournent `additionalContext` pour le même événement, Claude reçoit toutes les valeurs. Si une valeur dépasse 10 000 caractères, Claude Code écrit le texte complet dans un fichier du répertoire de session et transmet à Claude le chemin du fichier avec un court aperçu à la place.832Lorsque plusieurs hooks retournent `additionalContext` pour le même événement, Claude reçoit toutes les valeurs. Si une valeur dépasse 10 000 caractères, Claude Code écrit le texte complet dans un fichier du répertoire de session et transmet à Claude le chemin du fichier avec un court aperçu à la place.

820 833 


838 851 

839| Événements | Modèle de décision | Champs clés |852| Événements | Modèle de décision | Champs clés |

840| :---------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |853| :---------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

841| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` au niveau supérieur | `decision: "block"`, `reason` |854| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | `decision` au niveau supérieur | `decision: "block"`, `reason`. Stop et SubagentStop acceptent également `hookSpecificOutput.additionalContext` pour [les commentaires non-erreur qui continuent la conversation](#stop-decision-control) |

842| TeammateIdle, TaskCreated, TaskCompleted | Code de sortie ou `continue: false` | Le code de sortie 2 bloque l'action avec commentaires stderr. JSON `{"continue": false, "stopReason": "..."}` arrête également complètement le coéquipier, correspondant au comportement du hook `Stop` |855| TeammateIdle, TaskCreated, TaskCompleted | Code de sortie ou `continue: false` | Le code de sortie 2 bloque l'action avec commentaires stderr. JSON `{"continue": false, "stopReason": "..."}` arrête également complètement le coéquipier, correspondant au comportement du hook `Stop` |

843| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |856| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` |

844| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |857| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) |


850| SessionStart, Setup, SubagentStart | Contexte uniquement | `hookSpecificOutput.additionalContext` ajoute du contexte pour Claude. SessionStart accepte également [`initialUserMessage`, `watchPaths`, `sessionTitle` et `reloadSkills`](#sessionstart-decision-control). Pas de blocage ou de contrôle de décision |863| SessionStart, Setup, SubagentStart | Contexte uniquement | `hookSpecificOutput.additionalContext` ajoute du contexte pour Claude. SessionStart accepte également [`initialUserMessage`, `watchPaths`, `sessionTitle` et `reloadSkills`](#sessionstart-decision-control). Pas de blocage ou de contrôle de décision |

851| WorktreeRemove, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, FileChanged | Aucun | Pas de contrôle de décision. Utilisé pour les effets secondaires comme la journalisation ou le nettoyage |864| WorktreeRemove, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, FileChanged | Aucun | Pas de contrôle de décision. Utilisé pour les effets secondaires comme la journalisation ou le nettoyage |

852 865 

866Quelques événements peuvent également réécrire le contenu plutôt que seulement l'autoriser ou le bloquer :

867 

868* `PreToolUse` — `updatedInput` directement sous `hookSpecificOutput` remplace les arguments d'un outil avant son exécution ([détails](#pretooluse-decision-control))

869* `PermissionRequest` — `updatedInput` à l'intérieur de l'objet `decision` ([détails](#permissionrequest-decision-control))

870* `PostToolUse` — `updatedToolOutput` remplace le résultat de l'outil ([détails](#posttooluse-decision-control))

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

872 

873Pour 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.

874 

853Voici des exemples de chaque modèle en action :875Voici des exemples de chaque modèle en action :

854 876 

855<Tabs>877<Tabs>


926 Entrée SessionStart948 Entrée SessionStart

927</h4>949</h4>

928 950 

929En plus des [champs d'entrée communs](#common-input-fields), les hooks SessionStart reçoivent `source`, `model` et optionnellement `agent_type` et `session_title`. Le champ `source` indique comment la session a démarré : `"startup"` pour les nouvelles sessions, `"resume"` pour les sessions reprises, `"clear"` après `/clear` ou `"compact"` après compaction. Le champ `model` contient l'identifiant du modèle. Si vous démarrez Claude Code avec `claude --agent <name>`, un champ `agent_type` contient le nom de l'agent. Le champ `session_title` porte le titre de session actuel s'il est déjà défini, par exemple via `--name` ou `/rename`. Un hook qui émet `sessionTitle` peut vérifier `session_title` en premier pour éviter de remplacer un titre que l'utilisateur a défini explicitement.951En plus des [champs d'entrée communs](#common-input-fields), les hooks SessionStart reçoivent `source` et optionnellement `model`, `agent_type` et `session_title`. Le champ `source` indique comment la session a démarré : `"startup"` pour les nouvelles sessions, `"resume"` pour les sessions reprises, `"clear"` après `/clear` ou `"compact"` après compaction. Le champ `model` contient l'identifiant du modèle actif. Il peut être omis, par exemple après `/clear` ou lorsqu'une session est restaurée via la récupération de conversation, donc vérifiez le champ avant de le lire. Si vous démarrez Claude Code avec `claude --agent <name>`, un champ `agent_type` contient le nom de l'agent. Le champ `session_title` porte le titre de session actuel s'il est déjà défini, par exemple via `--name` ou `/rename`. Un hook qui émet `sessionTitle` peut vérifier `session_title` en premier pour éviter de remplacer un titre que l'utilisateur a défini explicitement.

930 952 

931```json theme={null}953```json theme={null}

932{954{


1502Dans `PostToolUse`, `tool_response` pour un appel Agent complété porte le texte final du subagent ainsi que la télémétrie d'utilisation. Lisez ces champs pour enregistrer le coût par subagent à partir d'un hook :1524Dans `PostToolUse`, `tool_response` pour un appel Agent complété porte le texte final du subagent ainsi que la télémétrie d'utilisation. Lisez ces champs pour enregistrer le coût par subagent à partir d'un hook :

1503 1525 

1504| Champ | Type | Exemple | Description |1526| Champ | Type | Exemple | Description |

1505| :------------------ | :----- | :---------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------- |1527| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |

1506| `status` | string | `"completed"` | `"completed"` pour les appels synchrones, `"async_launched"` pour `run_in_background: true` |1528| `status` | string | `"completed"` | `"completed"` pour les appels synchrones, `"async_launched"` pour `run_in_background: true` |

1507| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identifiant pour l'exécution du subagent |1529| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identifiant pour l'exécution du subagent |

1508| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Les blocs de texte finaux du subagent |1530| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Les blocs de texte finaux du subagent |

1531| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modèle sur lequel le subagent a fonctionné, qui peut différer du modèle demandé. {/* min-version: 2.1.174 */}Nécessite Claude Code v2.1.174 ou ultérieur |

1509| `totalTokens` | number | `12450` | Tokens totaux facturés sur les tours du subagent |1532| `totalTokens` | number | `12450` | Tokens totaux facturés sur les tours du subagent |

1510| `totalDurationMs` | number | `48211` | Durée murale de l'exécution du subagent |1533| `totalDurationMs` | number | `48211` | Durée murale de l'exécution du subagent |

1511| `totalToolUseCount` | number | `7` | Nombre d'appels d'outil que le subagent a effectués |1534| `totalToolUseCount` | number | `7` | Nombre d'appels d'outil que le subagent a effectués |

1512| `usage` | object | `{"input_tokens": 8320, ...}` | Ventilation des tokens par type : `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1535| `usage` | object | `{"input_tokens": 8320, ...}` | Ventilation des tokens par type : `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1513 1536 

1514Pour les appels `run_in_background: true`, l'outil retourne immédiatement après le lancement du subagent, donc `tool_response` ne porte aucun champ d'utilisation. Il a `status: "async_launched"`, `agentId`, `description`, `prompt` et `outputFile` à la place.1537Pour les appels `run_in_background: true`, l'outil retourne immédiatement après le lancement du subagent, donc `tool_response` ne porte aucun champ d'utilisation. Il a `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` et `resolvedModel` à la place.

1538 

1539Le champ `resolvedModel` nomme le modèle sur lequel le subagent fonctionne réellement, qui peut différer de la valeur `model` dans `tool_input`. Il nécessite Claude Code v2.1.174 ou ultérieur.

1540 

1541<a id="askuserquestion" />

1515 1542 

1516<h5 id="askuserquestion">1543<h5 id="askuserquestion">

1517 AskUserQuestion1544 AskUserQuestion


2088}2115}

2089```2116```

2090 2117 

2091Les hooks SubagentStop utilisent le même format de contrôle de décision que les [hooks Stop](#stop-decision-control). Ils ne supportent pas `additionalContext`. Retourner `decision: "block"` avec une `reason` garde le subagent en cours d'exécution et livre `reason` au subagent comme sa prochaine instruction. Pour injecter du contexte dans la session parent après qu'un subagent retourne, utilisez un hook [`PostToolUse`](#posttooluse) sur l'outil `Agent` à la place.2118Les hooks SubagentStop utilisent le même format de contrôle de décision que les [hooks Stop](#stop-decision-control), y compris `hookSpecificOutput.additionalContext` avec `hookEventName` défini à `"SubagentStop"`, pour les commentaires sans erreur qui gardent le subagent en cours d'exécution. Retourner `decision: "block"` avec une `reason` garde le subagent en cours d'exécution et livre `reason` au subagent comme sa prochaine instruction. Pour injecter du contexte dans la session parent après qu'un subagent retourne, utilisez un hook [`PostToolUse`](#posttooluse) sur l'outil `Agent` à la place.

2092 2119 

2093<h3 id="taskcreated">2120<h3 id="taskcreated">

2094 TaskCreated2121 TaskCreated


2115 "task_subject": "Implement user authentication",2142 "task_subject": "Implement user authentication",

2116 "task_description": "Add login and signup endpoints",2143 "task_description": "Add login and signup endpoints",

2117 "teammate_name": "implementer",2144 "teammate_name": "implementer",

2118 "team_name": "my-project"2145 "team_name": "session-a1b2c3d4"

2119}2146}

2120```2147```

2121 2148 

2122| Champ | Description |2149| Champ | Description |

2123| :----------------- | :-------------------------------------------------- |2150| :----------------- | :------------------------------------------------------------------------------------ |

2124| `task_id` | Identifiant de la tâche en cours de création |2151| `task_id` | Identifiant de la tâche en cours de création |

2125| `task_subject` | Titre de la tâche |2152| `task_subject` | Titre de la tâche |

2126| `task_description` | Description détaillée de la tâche. Peut être absent |2153| `task_description` | Description détaillée de la tâche. Peut être absent |

2127| `teammate_name` | Nom du coéquipier créant la tâche. Peut être absent |2154| `teammate_name` | Nom du coéquipier créant la tâche. Peut être absent |

2128| `team_name` | Nom de l'équipe. Peut être absent |2155| `team_name` | Dépréciée. Nom d'équipe dérivé de la session ; sera supprimée dans une version future |

2129 2156 

2130<h4 id="taskcreated-decision-control">2157<h4 id="taskcreated-decision-control">

2131 Contrôle de décision TaskCreated2158 Contrôle de décision TaskCreated


2176 "task_subject": "Implement user authentication",2203 "task_subject": "Implement user authentication",

2177 "task_description": "Add login and signup endpoints",2204 "task_description": "Add login and signup endpoints",

2178 "teammate_name": "implementer",2205 "teammate_name": "implementer",

2179 "team_name": "my-project"2206 "team_name": "session-a1b2c3d4"

2180}2207}

2181```2208```

2182 2209 

2183| Champ | Description |2210| Champ | Description |

2184| :----------------- | :------------------------------------------------------ |2211| :----------------- | :------------------------------------------------------------------------------------ |

2185| `task_id` | Identifiant de la tâche en cours de réalisation |2212| `task_id` | Identifiant de la tâche en cours de réalisation |

2186| `task_subject` | Titre de la tâche |2213| `task_subject` | Titre de la tâche |

2187| `task_description` | Description détaillée de la tâche. Peut être absent |2214| `task_description` | Description détaillée de la tâche. Peut être absent |

2188| `teammate_name` | Nom du coéquipier complétant la tâche. Peut être absent |2215| `teammate_name` | Nom du coéquipier complétant la tâche. Peut être absent |

2189| `team_name` | Nom de l'équipe. Peut être absent |2216| `team_name` | Dépréciée. Nom d'équipe dérivé de la session ; sera supprimée dans une version future |

2190 2217 

2191<h4 id="taskcompleted-decision-control">2218<h4 id="taskcompleted-decision-control">

2192 Contrôle de décision TaskCompleted2219 Contrôle de décision TaskCompleted


2292Les hooks `Stop` et `SubagentStop` peuvent contrôler si Claude continue. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut retourner ces champs spécifiques à l'événement :2319Les hooks `Stop` et `SubagentStop` peuvent contrôler si Claude continue. En plus des [champs de sortie JSON](#json-output) disponibles pour tous les hooks, votre script de hook peut retourner ces champs spécifiques à l'événement :

2293 2320 

2294| Champ | Description |2321| Champ | Description |

2295| :--------- | :----------------------------------------------------------------------------------- |2322| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

2296| `decision` | `"block"` empêche Claude de s'arrêter. Omettez pour autoriser Claude à s'arrêter |2323| `decision` | `"block"` empêche Claude de s'arrêter. Omettez pour autoriser Claude à s'arrêter |

2297| `reason` | Requis lorsque `decision` est `"block"`. Indique à Claude pourquoi il doit continuer |2324| `reason` | Requis lorsque `decision` est `"block"`. Indique à Claude pourquoi il doit continuer |

2325| `hookSpecificOutput.additionalContext` | Commentaires sans erreur pour Claude. La conversation continue afin que Claude puisse agir dessus, mais contrairement à `decision: "block"`, elle est affichée dans la transcription comme commentaire de hook plutôt qu'une erreur de hook |

2298 2326 

2299```json theme={null}2327```json theme={null}

2300{2328{


2303}2331}

2304```2332```

2305 2333 

2334Utilisez `additionalContext` lorsque le hook fonctionne comme prévu et donne des conseils à Claude, comme « exécutez la suite de tests avant de terminer ». Cela garde la conversation en cours à travers les mêmes protections de boucle que `decision: "block"`, à savoir l'entrée `stop_hook_active` et le plafond de 8 continuations consécutives, mais la transcription l'étiquette `Stop hook feedback` et aucune notification d'erreur de hook n'est affichée :

2335 

2336```json theme={null}

2337{

2338 "hookSpecificOutput": {

2339 "hookEventName": "Stop",

2340 "additionalContext": "Please run the test suite before finishing"

2341 }

2342}

2343```

2344 

2306<h3 id="stopfailure">2345<h3 id="stopfailure">

2307 StopFailure2346 StopFailure

2308</h3>2347</h3>


2357 "permission_mode": "default",2396 "permission_mode": "default",

2358 "hook_event_name": "TeammateIdle",2397 "hook_event_name": "TeammateIdle",

2359 "teammate_name": "researcher",2398 "teammate_name": "researcher",

2360 "team_name": "my-project"2399 "team_name": "session-a1b2c3d4"

2361}2400}

2362```2401```

2363 2402 

2364| Champ | Description |2403| Champ | Description |

2365| :-------------- | :-------------------------------------------------------- |2404| :-------------- | :------------------------------------------------------------------------------------ |

2366| `teammate_name` | Nom du coéquipier qui est sur le point de devenir inactif |2405| `teammate_name` | Nom du coéquipier qui est sur le point de devenir inactif |

2367| `team_name` | Nom de l'équipe |2406| `team_name` | Dépréciée. Nom d'équipe dérivé de la session ; sera supprimée dans une version future |

2368 2407 

2369<h4 id="teammateidle-decision-control">2408<h4 id="teammateidle-decision-control">

2370 Contrôle de décision TeammateIdle2409 Contrôle de décision TeammateIdle

hooks-guide.md +18 −6

Details

506 506 

507Lorsque plusieurs hooks correspondent au même événement, la commande de chaque hook s'exécute jusqu'à son terme avant que Claude Code ne fusionne les résultats. Un hook retournant `deny` n'empêche pas les hooks frères de s'exécuter. Ne comptez pas sur le `deny` d'un hook pour supprimer les effets secondaires dans un autre hook.507Lorsque plusieurs hooks correspondent au même événement, la commande de chaque hook s'exécute jusqu'à son terme avant que Claude Code ne fusionne les résultats. Un hook retournant `deny` n'empêche pas les hooks frères de s'exécuter. Ne comptez pas sur le `deny` d'un hook pour supprimer les effets secondaires dans un autre hook.

508 508 

509Après que tous les hooks correspondants se terminent, Claude Code combine leurs résultats. Pour les décisions de permission `PreToolUse`, la réponse la plus restrictive gagne : `deny` remplace `ask`, qui remplace `allow`. Le texte de `additionalContext` est conservé de chaque hook et transmis à Claude ensemble.509Après que tous les hooks correspondants se terminent, Claude Code combine leurs résultats. Pour les décisions de permission `PreToolUse`, la réponse la plus restrictive gagne, dans l'ordre `deny`, `defer`, `ask`, `allow`. Le texte de `additionalContext` est conservé de chaque hook et transmis à Claude ensemble.

510 510 

511L'exemple ci-dessous enregistre deux hooks `PreToolUse` sur `Bash`. Le premier ajoute chaque commande à un fichier journal et quitte avec le code 0. Le second exécute un script qui quitte avec le code 2 pour refuser lorsque la commande contient `rm -rf` :511L'exemple ci-dessous enregistre deux hooks `PreToolUse` sur `Bash`. Le premier ajoute chaque commande à un fichier journal et quitte avec le code 0. Le second exécute un script qui quitte avec le code 2 pour refuser lorsque la commande contient `rm -rf` :

512 512 


751 Le champ `if` nécessite Claude Code v2.1.85 ou ultérieur. Les versions antérieures l'ignorent et exécutent le hook à chaque appel correspondant.751 Le champ `if` nécessite Claude Code v2.1.85 ou ultérieur. Les versions antérieures l'ignorent et exécutent le hook à chaque appel correspondant.

752</Note>752</Note>

753 753 

754Le champ `if` utilise la [syntaxe des règles de permission](/fr/permissions) pour filtrer les hooks par nom d'outil et arguments ensemble, afin que le processus du hook ne soit généré que lorsque l'appel d'outil correspond, ou lorsqu'une commande Bash est trop complexe à analyser. Cela va au-delà du `matcher`, qui filtre au niveau du groupe par nom d'outil uniquement.754Le champ `if` utilise la [syntaxe des règles de permission](/fr/permissions) pour filtrer les hooks par nom d'outil et arguments ensemble, afin que le processus du hook ne soit généré que lorsque l'appel d'outil correspond. Cela va au-delà du `matcher`, qui filtre au niveau du groupe par nom d'outil uniquement.

755 755 

756Par exemple, pour exécuter un hook uniquement lorsque Claude utilise des commandes `git` plutôt que toutes les commandes Bash :756Par exemple, pour exécuter un hook uniquement lorsque Claude utilise des commandes `git` plutôt que toutes les commandes Bash :

757 757 


774}774}

775```775```

776 776 

777Le processus du hook ne se génère que lorsqu'une sous-commande de la commande Bash correspond à `git *`, ou lorsque la commande est trop complexe à analyser en sous-commandes. Pour les commandes composées comme `npm test && git push`, Claude Code évalue chaque sous-commande et déclenche le hook car `git push` correspond. Le champ `if` accepte les mêmes modèles que les règles de permission : `"Bash(git *)"`, `"Edit(*.ts)"`, et ainsi de suite. Pour correspondre à plusieurs noms d'outils, utilisez des gestionnaires séparés chacun avec sa propre valeur `if`, ou correspondez au niveau du `matcher` où l'alternation par pipe est supportée.777Le processus du hook s'exécute selon la forme de votre modèle `if` et la commande Bash que Claude invoque :

778 

779| Modèle `if` | Commande Bash | Le hook s'exécute-t-il ? | Pourquoi |

780| :----------------- | :--------------------- | :----------------------- | :----------------------------------------------------------------------------------------------------------------------------- |

781| `Bash(git *)` | `git push` | oui | le nom de la commande correspond |

782| `Bash(git *)` | `npm test && git push` | oui | chaque sous-commande est vérifiée ; `git push` correspond |

783| `Bash(git *)` | `echo $(git log)` | oui | les commandes à l'intérieur de `$()` et des backticks sont vérifiées ; `git log` correspond |

784| `Bash(git *)` | `echo $(date)` | non | aucune sous-commande ne correspond à `git *` |

785| `Bash(git push *)` | `echo $(date)` | oui | les modèles qui spécifient plus que le nom de la commande exécutent le hook de toute façon sur `$()`, les backticks, ou `$VAR` |

786 

787Le filtre échoue également de manière ouverte, exécutant votre hook indépendamment du modèle, lorsque la commande Bash ne peut pas être analysée. Parce que le filtre est au mieux un effort, utilisez le [système de permission](/fr/permissions) plutôt qu'un hook pour appliquer un allow ou deny dur.

788 

789Le champ `if` accepte les mêmes modèles que les règles de permission : `"Bash(git *)"`, `"Edit(*.ts)"`, et ainsi de suite. Pour correspondre à plusieurs noms d'outils, utilisez des gestionnaires séparés chacun avec sa propre valeur `if`, ou correspondez au niveau du `matcher` où l'alternation par pipe est supportée.

778 790 

779`if` ne fonctionne que sur les événements d'outils : `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` et `PermissionDenied`. L'ajouter à tout autre événement empêche le hook de s'exécuter.791`if` ne fonctionne que sur les événements d'outils : `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` et `PermissionDenied`. L'ajouter à tout autre événement empêche le hook de s'exécuter.

780 792 


785L'endroit où vous ajoutez un hook détermine son périmètre :797L'endroit où vous ajoutez un hook détermine son périmètre :

786 798 

787| Emplacement | Périmètre | Partageable |799| Emplacement | Périmètre | Partageable |

788| :--------------------------------------------------------- | :---------------------------------------- | :--------------------------------------- |800| :--------------------------------------------------------- | :---------------------------------------- | :------------------------------------------ |

789| `~/.claude/settings.json` | Tous vos projets | Non, local à votre machine |801| `~/.claude/settings.json` | Tous vos projets | Non, local à votre machine |

790| `.claude/settings.json` | Projet unique | Oui, peut être commité au repo |802| `.claude/settings.json` | Projet unique | Oui, peut être commité au repo |

791| `.claude/settings.local.json` | Projet unique | Non, gitignored |803| `.claude/settings.local.json` | Projet unique | Non, gitignored lorsque Claude Code le crée |

792| Paramètres de politique gérés | À l'échelle de l'organisation | Oui, contrôlé par l'administrateur |804| Paramètres de politique gérés | À l'échelle de l'organisation | Oui, contrôlé par l'administrateur |

793| [Plugin](/fr/plugins) `hooks/hooks.json` | Lorsque le plugin est activé | Oui, fourni avec le plugin |805| [Plugin](/fr/plugins) `hooks/hooks.json` | Lorsque le plugin est activé | Oui, fourni avec le plugin |

794| [Skill](/fr/skills) ou [agent](/fr/sub-agents) frontmatter | Pendant que le skill ou l'agent est actif | Oui, défini dans le fichier du composant |806| [Skill](/fr/skills) ou [agent](/fr/sub-agents) frontmatter | Pendant que le skill ou l'agent est actif | Oui, défini dans le fichier du composant |

795 807 

796Exécutez [`/hooks`](/fr/hooks#the-hooks-menu) dans Claude Code pour parcourir tous les hooks configurés regroupés par événement. Pour désactiver les hooks, définissez `"disableAllHooks": true` dans votre fichier de paramètres. Les hooks configurés dans les paramètres gérés s'exécutent toujours sauf si `disableAllHooks` est également défini là.808Exécutez [`/hooks`](/fr/hooks#the-%2Fhooks-menu) dans Claude Code pour parcourir tous les hooks configurés regroupés par événement. Pour désactiver les hooks, définissez `"disableAllHooks": true` dans votre fichier de paramètres. Les hooks configurés dans les paramètres gérés s'exécutent toujours sauf si `disableAllHooks` est également défini là.

797 809 

798Si vous modifiez les fichiers de paramètres directement pendant que Claude Code s'exécute, l'observateur de fichiers récupère normalement les modifications de hook automatiquement.810Si vous modifiez les fichiers de paramètres directement pendant que Claude Code s'exécute, l'observateur de fichiers récupère normalement les modifications de hook automatiquement.

799 811 

Details

16 16 

17Lorsque vous donnez une tâche à Claude, il travaille à travers trois phases : **rassembler le contexte**, **agir**, et **vérifier les résultats**. Ces phases se mélangent ensemble. Claude utilise des outils tout au long du processus, qu'il s'agisse de rechercher des fichiers pour comprendre votre code, d'éditer pour apporter des modifications, ou d'exécuter des tests pour vérifier son travail.17Lorsque vous donnez une tâche à Claude, il travaille à travers trois phases : **rassembler le contexte**, **agir**, et **vérifier les résultats**. Ces phases se mélangent ensemble. Claude utilise des outils tout au long du processus, qu'il s'agisse de rechercher des fichiers pour comprendre votre code, d'éditer pour apporter des modifications, ou d'exécuter des tests pour vérifier son travail.

18 18 

19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agentic-loop.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=4a30fb7ce2815012a9f27c955e2c6bb0" alt="La boucle agentive : Votre prompt conduit Claude à rassembler le contexte, agir, vérifier les résultats, et répéter jusqu'à ce que la tâche soit terminée. Vous pouvez interrompre à tout moment." width="720" height="280" data-path="images/agentic-loop.svg" />19<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agentic-loop.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=4a30fb7ce2815012a9f27c955e2c6bb0" alt="Diagramme de la boucle agentive : Votre prompt conduit Claude à rassembler le contexte, agir, vérifier les résultats, et répéter jusqu'à ce que la tâche soit terminée. Vous pouvez interrompre à tout moment." width="720" height="280" data-path="images/agentic-loop.svg" />

20 20 

21La boucle s'adapte à ce que vous demandez. Une question sur votre base de code pourrait nécessiter uniquement la collecte de contexte. Une correction de bug parcourt les trois phases à plusieurs reprises. Une refactorisation pourrait impliquer une vérification extensive. Claude décide ce que chaque étape nécessite en fonction de ce qu'il a appris à l'étape précédente, en enchaînant des dizaines d'actions ensemble et en se corrigeant en cours de route.21La boucle s'adapte à ce que vous demandez. Une question sur votre base de code pourrait nécessiter uniquement la collecte de contexte. Une correction de bug parcourt les trois phases à plusieurs reprises. Une refactorisation pourrait impliquer une vérification extensive. Claude décide ce que chaque étape nécessite en fonction de ce qu'il a appris à l'étape précédente, en enchaînant des dizaines d'actions ensemble et en se corrigeant en cours de route.

22 22 


188 188 

189* **Par défaut** : Claude demande avant les éditions de fichiers et les commandes shell189* **Par défaut** : Claude demande avant les éditions de fichiers et les commandes shell

190* **Auto-accepter les éditions** : Claude édite les fichiers et exécute les commandes courantes du système de fichiers comme `mkdir` et `mv` sans demander, demande toujours pour les autres commandes190* **Auto-accepter les éditions** : Claude édite les fichiers et exécute les commandes courantes du système de fichiers comme `mkdir` et `mv` sans demander, demande toujours pour les autres commandes

191* **Plan Mode** : Claude utilise uniquement les outils en lecture seule, créant un plan que vous pouvez approuver avant l'exécution191* **Plan Mode** : Claude explore et propose un plan sans éditer vos fichiers source ; les invites de permission s'appliquent toujours comme en mode par défaut

192* **Mode Auto** : Claude évalue toutes les actions avec des vérifications de sécurité en arrière-plan. Actuellement une préversion de recherche192* **Auto mode** : Claude évalue toutes les actions avec des vérifications de sécurité en arrière-plan. Actuellement une préversion de recherche

193 193 

194Vous pouvez également autoriser des commandes spécifiques dans `.claude/settings.json` afin que Claude ne demande pas à chaque fois. C'est utile pour les commandes de confiance comme `npm test` ou `git status`. Les paramètres peuvent être scoped à partir des politiques à l'échelle de l'organisation jusqu'aux préférences personnelles. Consultez [Permissions](/fr/permissions) pour plus de détails.194Vous pouvez également autoriser des commandes spécifiques dans `.claude/settings.json` afin que Claude ne demande pas à chaque fois. C'est utile pour les commandes de confiance comme `npm test` ou `git status`. Les paramètres peuvent être scoped à partir des politiques à l'échelle de l'organisation jusqu'aux préférences personnelles. Consultez [Permissions](/fr/permissions) pour plus de détails.

195 195 


213* `/agents` vous aide à configurer des subagents personnalisés213* `/agents` vous aide à configurer des subagents personnalisés

214* `/doctor` diagnostique les problèmes courants avec votre installation214* `/doctor` diagnostique les problèmes courants avec votre installation

215 215 

216<h3 id="it-s-a-conversation">216<h3 id="its-a-conversation">

217 C'est une conversation217 C'est une conversation

218</h3>218</h3>

219 219 


282 282 

283Examinez le plan, affinez-le à travers la conversation, puis laissez Claude implémenter. Cette approche en deux phases produit de meilleurs résultats que de sauter directement au code.283Examinez le plan, affinez-le à travers la conversation, puis laissez Claude implémenter. Cette approche en deux phases produit de meilleurs résultats que de sauter directement au code.

284 284 

285<h3 id="delegate-don-t-dictate">285<h3 id="delegate-dont-dictate">

286 Déléguer, ne pas dicter286 Déléguer, ne pas dicter

287</h3>287</h3>

288 288 


295 295 

296Vous n'avez pas besoin de spécifier quels fichiers lire ou quelles commandes exécuter. Claude le détermine.296Vous n'avez pas besoin de spécifier quels fichiers lire ou quelles commandes exécuter. Claude le détermine.

297 297 

298<h2 id="what-s-next">298<h2 id="whats-next">

299 Prochaines étapes299 Prochaines étapes

300</h2>300</h2>

301 301 

Details

27</h3>27</h3>

28 28 

29| Raccourci | Description | Contexte |29| Raccourci | Description | Contexte |

30| :------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |30| :------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

31| `Ctrl+C` | Interrompre, ou effacer l'entrée | Interrompt une opération en cours. Si rien ne s'exécute, la première pression efface l'entrée d'invite et une deuxième pression quitte Claude Code |31| `Ctrl+C` | Interrompre, ou effacer l'entrée | Interrompt une opération en cours. Si rien ne s'exécute, la première pression efface l'entrée d'invite et une deuxième pression quitte Claude Code |

32| `Ctrl+X Ctrl+K` | Arrêter tous les [sous-agents en arrière-plan](/fr/sub-agents#run-subagents-in-foreground-or-background) dans cette session. Appuyez deux fois dans les 3 secondes pour confirmer | Contrôle des sous-agents |32| `Ctrl+X Ctrl+K` | Arrêter tous les [sous-agents en arrière-plan](/fr/sub-agents#run-subagents-in-foreground-or-background) dans cette session. Appuyez deux fois dans les 3 secondes pour confirmer | Contrôle des sous-agents |

33| `Ctrl+D` | Quitter la session Claude Code | Signal EOF |33| `Ctrl+D` | Quitter la session Claude Code | Signal EOF |


39| `Ctrl+B` | Tâches en arrière-plan | Met en arrière-plan les commandes bash et les agents. Les utilisateurs Tmux appuyez deux fois |39| `Ctrl+B` | Tâches en arrière-plan | Met en arrière-plan les commandes bash et les agents. Les utilisateurs Tmux appuyez deux fois |

40| `Ctrl+T` | Basculer la liste des tâches | Afficher ou masquer la [liste des tâches](#task-list) dans la zone d'état du terminal |40| `Ctrl+T` | Basculer la liste des tâches | Afficher ou masquer la [liste des tâches](#task-list) dans la zone d'état du terminal |

41| `Flèches gauche/droite` | Parcourir les onglets de dialogue | Naviguez entre les onglets dans les dialogues de permission et les menus |41| `Flèches gauche/droite` | Parcourir les onglets de dialogue | Naviguez entre les onglets dans les dialogues de permission et les menus |

42| `Flèches haut/bas` ou `Ctrl+P`/`Ctrl+N` | Déplacer le curseur ou naviguer dans l'historique des commandes | Dans une entrée multiligne, déplace d'abord le curseur dans l'invite. Une fois que le curseur est déjà sur le bord supérieur ou inférieur, appuyer à nouveau navigue dans l'historique des commandes |42| `Flèches haut/bas` ou `Ctrl+P`/`Ctrl+N` | Déplacer le curseur ou naviguer dans l'historique des commandes | Lorsque l'entrée s'étend sur plus d'une ligne visuelle, qu'elle soit enveloppée ou multiligne, déplace d'abord le curseur dans l'invite. Une fois que le curseur est sur la première ou la dernière ligne visuelle, appuyer à nouveau navigue dans l'historique des commandes. {/* min-version: 2.1.169 */}À partir de la v2.1.169, l'entrée monolignes enveloppée se comporte de la même manière que l'entrée multiligne |

43| `Esc` | Interrompre Claude | Arrêtez la réponse actuelle ou l'appel d'outil en cours de tour afin que vous puissiez rediriger. Claude conserve le travail effectué jusqu'à présent |43| `Esc` | Interrompre Claude | Arrêtez la réponse actuelle ou l'appel d'outil en cours de tour afin que vous puissiez rediriger. Claude conserve le travail effectué jusqu'à présent |

44| `Esc` + `Esc` | Effacer le brouillon d'entrée, ou rembobiner | Lorsque l'entrée d'invite contient du texte, double `Esc` l'efface et enregistre le brouillon dans l'historique afin que `Haut` le rappelle. Lorsque l'entrée est vide, double `Esc` ouvre le [menu de rembobinage](/fr/checkpointing) pour restaurer ou résumer le code et la conversation à partir d'un point antérieur |44| `Esc` + `Esc` | Effacer le brouillon d'entrée, ou rembobiner | Lorsque l'entrée d'invite contient du texte, double `Esc` l'efface et enregistre le brouillon dans l'historique afin que `Haut` le rappelle. Lorsque l'entrée est vide, double `Esc` ouvre le [menu de rembobinage](/fr/checkpointing) pour restaurer ou résumer le code et la conversation à partir d'un point antérieur |

45| `Shift+Tab` ou `Alt+M` (certaines configurations) | Basculer les modes de permission | Basculer entre `default`, `acceptEdits`, `plan` et tous les modes que vous avez activés, comme `auto` ou `bypassPermissions`. Consultez [modes de permission](/fr/permission-modes). |45| `Shift+Tab` ou `Alt+M` (certaines configurations) | Basculer les modes de permission | Basculer entre `default`, `acceptEdits`, `plan` et tous les modes que vous avez activés, comme `auto` ou `bypassPermissions`. Consultez [modes de permission](/fr/permission-modes). |

46| `Option+P` (macOS) ou `Alt+P` (Windows/Linux) | Changer de modèle | Changez de modèles sans effacer votre invite |46| `Option+P` (macOS) ou `Alt+P` (Windows/Linux) | Changer de modèle | Changez de modèles sans effacer votre invite |

47| `Option+T` (macOS) ou `Alt+T` (Windows/Linux) | Basculer la réflexion étendue | Activez ou désactivez le mode de réflexion étendue. {/* min-version: 2.1.132 */}À partir de la v2.1.132, ce raccourci fonctionne sur macOS sans configurer Option en tant que Meta |47| `Option+T` (macOS) ou `Alt+T` (Windows/Linux) | Basculer la réflexion étendue | Activez ou désactivez le mode de réflexion étendue. N'a aucun effet sur Fable 5, qui utilise toujours la réflexion étendue. {/* min-version: 2.1.132 */}À partir de la v2.1.132, ce raccourci fonctionne sur macOS sans configurer Option en tant que Meta |

48| `Option+O` (macOS) ou `Alt+O` (Windows/Linux) | Basculer le mode rapide | Activez ou désactivez le [mode rapide](/fr/fast-mode) |48| `Option+O` (macOS) ou `Alt+O` (Windows/Linux) | Basculer le mode rapide | Activez ou désactivez le [mode rapide](/fr/fast-mode) |

49 49 

50<h3 id="text-editing">50<h3 id="text-editing">


372| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |372| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

373| `Espace`, `Entrée`, `Échap` | Rejeter la réponse et revenir à l'invite |373| `Espace`, `Entrée`, `Échap` | Rejeter la réponse et revenir à l'invite |

374| `Haut` / `Bas` | Faire défiler la réponse |374| `Haut` / `Bas` | Faire défiler la réponse |

375| `c` | Copier la réponse dans votre presse-papiers en tant que Markdown brut. Utilisez ceci au lieu de la sélection à la souris, qui capture le rendu du terminal avec retour à la ligne plutôt que le texte source |

375| `f` | Diviser en une nouvelle session. La division hérite de la conversation parent plus cette question et réponse en tant que tours de transcription réels, vous pouvez donc continuer avec un accès complet aux outils. La session d'origine est conservée sous [`/resume`](/fr/commands). Disponible uniquement dans les sessions locales |376| `f` | Diviser en une nouvelle session. La division hérite de la conversation parent plus cette question et réponse en tant que tours de transcription réels, vous pouvez donc continuer avec un accès complet aux outils. La session d'origine est conservée sous [`/resume`](/fr/commands). Disponible uniquement dans les sessions locales |

376| `x` | Effacer la liste des échanges `/btw` antérieurs affichés au-dessus de la réponse actuelle |377| `x` | Effacer la liste des échanges `/btw` antérieurs affichés au-dessus de la réponse actuelle |

377 378 

jetbrains.md +13 −5

Details

35 Installation35 Installation

36</h2>36</h2>

37 37 

38<h3 id="marketplace-installation">38Le plugin exécute la commande `claude` dans le terminal intégré de votre IDE et s'y connecte. Il ne regroupe pas sa propre copie de la CLI, donc installez les deux éléments :

39 Installation via la Marketplace39 

40</h3>40<Steps>

41 <Step title="Installer la CLI Claude Code">

42 Suivez le [guide de démarrage rapide](/fr/quickstart) pour installer la CLI si vous ne l'avez pas déjà fait. Le plugin affiche une notification ' Impossible de lancer Claude Code ' lorsque `claude` ne se trouve pas sur votre PATH.

43 </Step>

44 

45 <Step title="Installer le plugin JetBrains">

46 Installez le [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) depuis la Marketplace JetBrains et redémarrez votre IDE.

47 </Step>

48</Steps>

41 49 

42Trouvez et installez le [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) depuis la marketplace JetBrains et redémarrez votre IDE.50Si `claude` est installé quelque part que votre IDE ne peut pas trouver, définissez le chemin complet dans les [paramètres de commande Claude](#general-settings) du plugin.

43 51 

44Si vous n'avez pas encore installé Claude Code, consultez le [guide de démarrage rapide](/fr/quickstart) pour les instructions d'installation.52Claude Code fonctionne avec n'importe quel abonnement Claude payant (Pro, Max, Team ou Enterprise) ou un compte Claude Console, et aucune clé API n'est requise. Vous serez invité à [vous connecter](/fr/authentication#log-in-to-claude-code) la première fois que vous exécutez `claude`.

45 53 

46<Note>54<Note>

47 Après l'installation du plugin, vous devrez peut-être redémarrer complètement votre IDE pour que les modifications prennent effet.55 Après l'installation du plugin, vous devrez peut-être redémarrer complètement votre IDE pour que les modifications prennent effet.

keybindings.md +2 −2

Details

203Actions disponibles dans le contexte `Task` :203Actions disponibles dans le contexte `Task` :

204 204 

205| Action | Par défaut | Description |205| Action | Par défaut | Description |

206| :---------------- | :--------- | :--------------------------------------- |206| :---------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

207| `task:background` | Ctrl+B | Mettre la tâche actuelle en arrière-plan |207| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | Mettre la tâche actuelle en arrière-plan. {/* min-version: 2.1.169 */}L'accord Ctrl+X Ctrl+B nécessite la v2.1.169 ou ultérieure et évite le conflit de préfixe tmux |

208 208 

209<h3 id="theme-actions">209<h3 id="theme-actions">

210 Actions de thème210 Actions de thème

Details

148 148 

149Utilisez ceci pour les répertoires dans lesquels vous ne travaillez jamais, comme les packages d'autres équipes, le code hérité ou les sous-arbres vendus. La liste d'exclusion est statique, pas un commutateur par tâche. Pour vous concentrer sur un package aujourd'hui et un autre demain, [démarrez Claude à partir du répertoire de ce package](#choose-where-to-start-claude) au lieu de modifier les exclusions.149Utilisez ceci pour les répertoires dans lesquels vous ne travaillez jamais, comme les packages d'autres équipes, le code hérité ou les sous-arbres vendus. La liste d'exclusion est statique, pas un commutateur par tâche. Pour vous concentrer sur un package aujourd'hui et un autre demain, [démarrez Claude à partir du répertoire de ce package](#choose-where-to-start-claude) au lieu de modifier les exclusions.

150 150 

151Si vous ne voulez que ces exclusions pour vous-même, mettez le paramètre dans `.claude/settings.local.json`, qui est gitignored et non validé. Les modèles utilisent la syntaxe glob correspondant aux chemins de fichiers absolus, donc commencez les modèles de style relatif avec `**/` pour correspondre n'importe où dans l'arbre. L'exemple ci-dessous exclut les packages appartenant à d'autres équipes :151Si vous ne voulez que ces exclusions pour vous-même, mettez le paramètre dans `.claude/settings.local.json`. Claude Code gitignore ce fichier lorsqu'il le crée ; puisque vous le créez à la main ici, ajoutez-le à votre gitignore. Les modèles utilisent la syntaxe glob correspondant aux chemins de fichiers absolus, donc commencez les modèles de style relatif avec `**/` pour correspondre n'importe où dans l'arbre. L'exemple ci-dessous exclut les packages appartenant à d'autres équipes :

152 152 

153```json .claude/settings.local.json theme={null}153```json .claude/settings.local.json theme={null}

154{154{

llm-gateway.md +2 −0

Details

14* **Journalisation d'audit** - Suivre toutes les interactions de modèle pour la conformité14* **Journalisation d'audit** - Suivre toutes les interactions de modèle pour la conformité

15* **Routage des modèles** - Basculer entre les fournisseurs sans modifications de code15* **Routage des modèles** - Basculer entre les fournisseurs sans modifications de code

16 16 

17Cette page couvre les exigences de la passerelle et la configuration pour Claude Code CLI. Les déploiements Enterprise Desktop peuvent configurer les fournisseurs de passerelle via les [paramètres gérés](https://support.claude.com/fr/articles/12622667-enterprise-configuration). L'application Claude Desktop peut également s'exécuter sur une passerelle auto-hébergée via la [préversion de recherche Cowork on 3P](https://claude.com/docs/cowork/3p/gateway), qui utilise ses propres clés de configuration.

18 

17<h2 id="gateway-requirements">19<h2 id="gateway-requirements">

18 Exigences de la passerelle20 Exigences de la passerelle

19</h2>21</h2>

mcp.md +158 −72

Details

12 12 

13Si vous connectez votre premier serveur, commencez par le [guide de démarrage MCP](/fr/mcp-quickstart) pour une procédure pas à pas. Cette page est la référence complète.13Si vous connectez votre premier serveur, commencez par le [guide de démarrage MCP](/fr/mcp-quickstart) pour une procédure pas à pas. Cette page est la référence complète.

14 14 

15## Ce que vous pouvez faire avec MCP15<h2 id="what-you-can-do-with-mcp">

16 Ce que vous pouvez faire avec MCP

17</h2>

16 18 

17Avec les serveurs MCP connectés, vous pouvez demander à Claude Code de :19Avec les serveurs MCP connectés, vous pouvez demander à Claude Code de :

18 20 


23* **Automatiser les flux de travail** : « Créer des brouillons Gmail invitant ces 10 utilisateurs à une session de rétroaction sur la nouvelle fonctionnalité. »25* **Automatiser les flux de travail** : « Créer des brouillons Gmail invitant ces 10 utilisateurs à une session de rétroaction sur la nouvelle fonctionnalité. »

24* **Réagir aux événements externes** : Un serveur MCP peut également agir comme un [canal](/fr/channels) qui pousse des messages dans votre session, afin que Claude réagisse aux messages Telegram, aux discussions Discord ou aux événements webhook pendant que vous êtes absent.26* **Réagir aux événements externes** : Un serveur MCP peut également agir comme un [canal](/fr/channels) qui pousse des messages dans votre session, afin que Claude réagisse aux messages Telegram, aux discussions Discord ou aux événements webhook pendant que vous êtes absent.

25 27 

26## Trouver et créer des serveurs MCP28<h2 id="find-and-build-mcp-servers">

29 Trouver et créer des serveurs MCP

30</h2>

27 31 

28Parcourez les connecteurs vérifiés dans le [Répertoire Anthropic](https://claude.ai/directory). Les connecteurs du répertoire utilisent la même infrastructure MCP que Claude Code, vous pouvez donc ajouter n'importe quel serveur distant répertorié avec `claude mcp add`.32Parcourez les connecteurs vérifiés dans le [Répertoire Anthropic](https://claude.ai/directory). Les connecteurs du répertoire utilisent la même infrastructure MCP que Claude Code, vous pouvez donc ajouter n'importe quel serveur distant répertorié avec `claude mcp add`.

29 33 


55 </Step>59 </Step>

56</Steps>60</Steps>

57 61 

58## Installation des serveurs MCP62<h2 id="installing-mcp-servers">

63 Installation des serveurs MCP

64</h2>

59 65 

60Les serveurs MCP peuvent être configurés de plusieurs façons selon vos besoins :66Les serveurs MCP peuvent être configurés de plusieurs façons selon vos besoins :

61 67 

62### Option 1 : Ajouter un serveur HTTP distant68<h3 id="option-1-add-a-remote-http-server">

69 Option 1 : Ajouter un serveur HTTP distant

70</h3>

63 71 

64Les serveurs HTTP sont l'option recommandée pour se connecter aux serveurs MCP distants. C'est le transport le plus largement supporté pour les services basés sur le cloud.72Les serveurs HTTP sont l'option recommandée pour se connecter aux serveurs MCP distants. C'est le transport le plus largement supporté pour les services basés sur le cloud.

65 73 


77 85 

78Lors 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.86Lors 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.

79 87 

80### Option 2 : Ajouter un serveur SSE distant88<h3 id="option-2-add-a-remote-sse-server">

89 Option 2 : Ajouter un serveur SSE distant

90</h3>

81 91 

82<Warning>92<Warning>

83 Le transport SSE (Server-Sent Events) est déprécié. Utilisez plutôt les serveurs HTTP, si disponibles.93 Le transport SSE (Server-Sent Events) est déprécié. Utilisez plutôt les serveurs HTTP, si disponibles.


95 --header "X-API-Key: your-key-here"105 --header "X-API-Key: your-key-here"

96```106```

97 107 

98### Option 3 : Ajouter un serveur stdio local108<h3 id="option-3-add-a-local-stdio-server">

109 Option 3 : Ajouter un serveur stdio local

110</h3>

99 111 

100Les 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.112Les 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.

101 113 


108claude mcp add [options] <name> -- <command> [args...]120claude mcp add [options] <name> -- <command> [args...]

109 121 

110# Exemple réel : Ajouter un serveur Airtable122# Exemple réel : Ajouter un serveur Airtable

111claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \123claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \

112 -- npx -y airtable-mcp-server124 -- npx -y airtable-mcp-server

113```125```

114 126 

115<Note>127<Note>

116 **Important : Ordre des options**128 **Important : Séparer les arguments du serveur avec `--`**

117 129 

118 Toutes les options (`--transport`, `--env`, `--scope`, `--header`) doivent venir **avant** le nom du serveur. Le `--` (double tiret) sépare ensuite le nom du serveur de la commande et des arguments qui sont passés au serveur MCP.130 Pour les serveurs stdio, le `--` (double tiret) sépare les propres options de 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.

119 131 

120 Par exemple :132 Par exemple :

121 133 

122 * `claude mcp add --transport stdio myserver -- npx server` → exécute `npx server`134 * `claude mcp add --transport stdio myserver -- npx server` → exécute `npx server`

123 * `claude mcp add --transport stdio --env KEY=value myserver -- python server.py --port 8080` → exécute `python server.py --port 8080` avec `KEY=value` dans l'environnement135 * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → exécute `python server.py --port 8080` avec `KEY=value` dans l'environnement

124 136 

125 Cela évite les conflits entre les drapeaux de Claude et les drapeaux du serveur.137 Sans `--`, Claude Code essaierait d'analyser les drapeaux du serveur, comme `--port` ci-dessus, comme ses propres options.

138 

139 `--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 entre `--env` et le nom du serveur, comme dans les exemples ci-dessus.

126</Note>140</Note>

127 141 

128### Option 4 : Ajouter un serveur WebSocket distant142<h3 id="option-4-add-a-remote-websocket-server">

143 Option 4 : Ajouter un serveur WebSocket distant

144</h3>

129 145 

130Les 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 demandes, car HTTP supporte OAuth et le drapeau `claude mcp add --transport`, tandis que WebSocket ne supporte ni l'un ni l'autre.146Les 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 demandes, car HTTP supporte OAuth et le drapeau `claude mcp add --transport`, tandis que WebSocket ne supporte ni l'un ni l'autre.

131 147 


138 154 

139L'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 drapeau `claude mcp add --transport` n'accepte pas `ws`.155L'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 drapeau `claude mcp add --transport` n'accepte pas `ws`.

140 156 

141### Gestion de vos serveurs157<h3 id="managing-your-servers">

158 Gestion de vos serveurs

159</h3>

142 160 

143Une fois configurés, vous pouvez gérer vos serveurs MCP avec ces commandes :161Une fois configurés, vous pouvez gérer vos serveurs MCP avec ces commandes :

144 162 


164 182 

165Le nom du serveur `workspace` est réservé à un usage interne. Si votre configuration définit un serveur avec ce nom, Claude Code le saute au chargement et affiche un avertissement vous demandant de le renommer.183Le nom du serveur `workspace` est réservé à un usage interne. Si votre configuration définit un serveur avec ce nom, Claude Code le saute au chargement et affiche un avertissement vous demandant de le renommer.

166 184 

167### Mises à jour dynamiques des outils185<h3 id="dynamic-tool-updates">

186 Mises à jour dynamiques des outils

187</h3>

168 188 

169Claude Code supporte les notifications MCP `list_changed`, permettant aux serveurs MCP de mettre à jour dynamiquement leurs outils, prompts et ressources disponibles sans vous obliger à vous déconnecter et reconnecter. Lorsqu'un serveur MCP envoie une notification `list_changed`, Claude Code actualise automatiquement les capacités disponibles de ce serveur.189Claude Code supporte les notifications MCP `list_changed`, permettant aux serveurs MCP de mettre à jour dynamiquement leurs outils, prompts et ressources disponibles sans vous obliger à vous déconnecter et reconnecter. Lorsqu'un serveur MCP envoie une notification `list_changed`, Claude Code actualise automatiquement les capacités disponibles de ce serveur.

170 190 

171### Reconnexion automatique191<h3 id="automatic-reconnection">

192 Reconnexion automatique

193</h3>

172 194 

173Si un serveur HTTP ou SSE se déconnecte en cours de session, Claude Code se reconnecte automatiquement avec un backoff exponentiel : jusqu'à cinq tentatives, en commençant par un délai d'une seconde et en doublant à chaque fois. Le serveur apparaît comme en attente dans `/mcp` pendant que la reconnexion est en cours. Après cinq tentatives échouées, le serveur est marqué comme échoué et vous pouvez réessayer manuellement à partir de `/mcp`. Les serveurs Stdio sont des processus locaux et ne sont pas reconnectés automatiquement.195Si un serveur HTTP ou SSE se déconnecte en cours de session, Claude Code se reconnecte automatiquement avec un backoff exponentiel : jusqu'à cinq tentatives, en commençant par un délai d'une seconde et en doublant à chaque fois. Le serveur apparaît comme en attente dans `/mcp` pendant que la reconnexion est en cours. Après cinq tentatives échouées, le serveur est marqué comme échoué et vous pouvez réessayer manuellement à partir de `/mcp`. Les serveurs Stdio sont des processus locaux et ne sont pas reconnectés automatiquement.

174 196 

175Le même backoff s'applique lorsqu'un serveur HTTP ou SSE échoue sa connexion initiale au démarrage. À partir de la v2.1.121, Claude Code réessaie la connexion initiale jusqu'à trois fois sur les erreurs transitoires telles qu'une réponse 5xx, une connexion refusée ou un délai d'expiration, puis marque le serveur comme échoué s'il ne peut toujours pas se connecter. Les erreurs d'authentification et les erreurs de non-trouvé ne sont pas réessayées car elles nécessitent une modification de la configuration pour être résolues.197Le même backoff s'applique lorsqu'un serveur HTTP ou SSE échoue sa connexion initiale au démarrage. À partir de la v2.1.121, Claude Code réessaie la connexion initiale jusqu'à trois fois sur les erreurs transitoires telles qu'une réponse 5xx, une connexion refusée ou un délai d'expiration, puis marque le serveur comme échoué s'il ne peut toujours pas se connecter. Les erreurs d'authentification et les erreurs de non-trouvé ne sont pas réessayées car elles nécessitent une modification de la configuration pour être résolues.

176 198 

177### Pousser des messages avec des canaux199<h3 id="push-messages-with-channels">

200 Pousser des messages avec des canaux

201</h3>

178 202 

179Un serveur MCP peut également pousser des messages directement dans votre session afin que Claude puisse réagir aux é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 drapeau `--channels` au démarrage. Consultez [Canaux](/fr/channels) pour utiliser un canal officiellement supporté, ou [Référence des canaux](/fr/channels-reference) pour créer le vôtre.203Un serveur MCP peut également pousser des messages directement dans votre session afin que Claude puisse réagir aux é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 drapeau `--channels` au démarrage. Consultez [Canaux](/fr/channels) pour utiliser un canal officiellement supporté, ou [Référence des canaux](/fr/channels-reference) pour créer le vôtre.

180 204 


192 * Utilisez `/mcp` pour vous authentifier auprès des serveurs distants qui nécessitent une authentification OAuth 2.0216 * Utilisez `/mcp` pour vous authentifier auprès des serveurs distants qui nécessitent une authentification OAuth 2.0

193</Tip>217</Tip>

194 218 

195Le `timeout` par serveur est une limite stricte en temps réel par appel d'outil, et les notifications de progression du serveur ne l'étendent pas. Les valeurs inférieures à 1000 sont arrondies à une seconde. Pour les serveurs HTTP et SSE, le budget du premier octet par requête de récupération a un minimum de 60 secondes indépendamment de cette valeur, donc seul le chien de garde d'appel d'outil honore les valeurs plus petites.219Le `timeout` par serveur est une limite stricte en temps réel par appel d'outil, et les notifications de progression du serveur ne l'étendent pas. Les valeurs inférieures à 1000 sont ignorées et passent à `MCP_TOOL_TIMEOUT`, ou à sa valeur par défaut d'environ 28 heures lorsque cette variable n'est pas définie. {/* min-version: 2.1.162 */}Avant la v2.1.162, les valeurs inférieures à 1000 étaient arrondies à une seconde. Pour les serveurs HTTP et SSE, le budget du premier octet par requête de récupération a un minimum de 60 secondes.

196 220 

197### Serveurs MCP fournis par les plugins221<h3 id="plugin-provided-mcp-servers">

222 Serveurs MCP fournis par les plugins

223</h3>

198 224 

199Les [plugins](/fr/plugins) peuvent regrouper des serveurs MCP, fournissant automatiquement des outils et des intégrations lorsque le plugin est activé. Les serveurs MCP des plugins fonctionnent de manière identique aux serveurs configurés par l'utilisateur.225Les [plugins](/fr/plugins) peuvent regrouper des serveurs MCP, fournissant automatiquement des outils et des intégrations lorsque le plugin est activé. Les serveurs MCP des plugins fonctionnent de manière identique aux serveurs configurés par l'utilisateur.

200 226 


253 279 

254Les serveurs des plugins apparaissent dans la liste avec des indicateurs montrant qu'ils proviennent des plugins.280Les serveurs des plugins apparaissent dans la liste avec des indicateurs montrant qu'ils proviennent des plugins.

255 281 

282**Noms des outils MCP du plugin** :

283 

284Les outils d'un serveur MCP groupé par 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` groupé dans un plugin nommé `my-plugin`, un outil `query` est appelable comme :

285 

286```

287mcp__plugin_my-plugin_database-tools__query

288```

289 

290Utilisez ce nom complet lors du référencement de l'outil dans les [règles de permission](/fr/permissions), la liste `allowed-tools` d'une compétence, ou le [champ `tools` d'un sous-agent](/fr/sub-agents#available-tools).

291 

256**Avantages des serveurs MCP du plugin** :292**Avantages des serveurs MCP du plugin** :

257 293 

258* **Distribution groupée** : Outils et serveurs emballés ensemble294* **Distribution groupée** : Outils et serveurs emballés ensemble


261 297 

262Consultez la [référence des composants du plugin](/fr/plugins-reference#mcp-servers) pour plus de détails sur le regroupement des serveurs MCP avec les plugins.298Consultez la [référence des composants du plugin](/fr/plugins-reference#mcp-servers) pour plus de détails sur le regroupement des serveurs MCP avec les plugins.

263 299 

264## Portées d'installation MCP300<h2 id="mcp-installation-scopes">

301 Portées d'installation MCP

302</h2>

265 303 

266Les serveurs MCP peuvent être configurés à trois portées différentes. La portée que vous choisissez contrôle les projets dans lesquels le serveur se charge et si la configuration est partagée avec votre équipe. Les administrateurs peuvent également déployer des serveurs au niveau de l'entreprise via la [configuration gérée](#managed-mcp-configuration).304Les serveurs MCP peuvent être configurés à trois portées différentes. La portée que vous choisissez contrôle les projets dans lesquels le serveur se charge et si la configuration est partagée avec votre équipe. Les administrateurs peuvent également déployer des serveurs au niveau de l'entreprise via la [configuration gérée](#managed-mcp-configuration).

267 305 


271| [Projet](#project-scope) | Projet actuel uniquement | Oui, via le contrôle de version | `.mcp.json` à la racine du projet |309| [Projet](#project-scope) | Projet actuel uniquement | Oui, via le contrôle de version | `.mcp.json` à la racine du projet |

272| [Utilisateur](#user-scope) | Tous vos projets | Non | `~/.claude.json` |310| [Utilisateur](#user-scope) | Tous vos projets | Non | `~/.claude.json` |

273 311 

274### Portée locale312<h3 id="local-scope">

313 Portée locale

314</h3>

275 315 

276La portée locale est la portée par défaut. Un serveur à portée locale se charge uniquement dans le projet où vous l'avez ajouté et reste privé pour vous. Claude Code le stocke dans `~/.claude.json` sous le chemin de ce projet, donc le même serveur n'apparaîtra pas dans vos autres projets. Utilisez la portée locale pour les serveurs de développement personnels, les configurations expérimentales ou les serveurs avec des identifiants que vous ne voulez pas dans le contrôle de version.316La portée locale est la portée par défaut. Un serveur à portée locale se charge uniquement dans le projet où vous l'avez ajouté et reste privé pour vous. Claude Code le stocke dans `~/.claude.json` sous le chemin de ce projet, donc le même serveur n'apparaîtra pas dans vos autres projets. Utilisez la portée locale pour les serveurs de développement personnels, les configurations expérimentales ou les serveurs avec des identifiants que vous ne voulez pas dans le contrôle de version.

277 317 


304}344}

305```345```

306 346 

307### Portée du projet347<h3 id="project-scope">

348 Portée du projet

349</h3>

308 350 

309Les serveurs à portée de projet permettent la collaboration d'équipe en stockant les configurations dans un fichier `.mcp.json` à la racine de votre projet. Ce fichier est conçu pour être archivé dans le contrôle de version, garantissant que tous les membres de l'équipe ont accès aux mêmes outils et services MCP. Lorsque vous ajoutez un serveur à portée de projet, Claude Code crée ou met à jour automatiquement ce fichier avec la structure de configuration appropriée.351Les serveurs à portée de projet permettent la collaboration d'équipe en stockant les configurations dans un fichier `.mcp.json` à la racine de votre projet. Ce fichier est conçu pour être archivé dans le contrôle de version, garantissant que tous les membres de l'équipe ont accès aux mêmes outils et services MCP. Lorsque vous ajoutez un serveur à portée de projet, Claude Code crée ou met à jour automatiquement ce fichier avec la structure de configuration appropriée.

310 352 


329 371 

330Pour des raisons de sécurité, Claude Code demande une approbation avant d'utiliser les serveurs à portée de projet à partir des fichiers `.mcp.json`. Si vous devez réinitialiser ces choix d'approbation, utilisez la commande `claude mcp reset-project-choices`.372Pour des raisons de sécurité, Claude Code demande une approbation avant d'utiliser les serveurs à portée de projet à partir des fichiers `.mcp.json`. Si vous devez réinitialiser ces choix d'approbation, utilisez la commande `claude mcp reset-project-choices`.

331 373 

332### Portée utilisateur374<h3 id="user-scope">

375 Portée utilisateur

376</h3>

333 377 

334Les serveurs à portée utilisateur sont stockés dans `~/.claude.json` et offrent une accessibilité inter-projets, les rendant disponibles dans tous les projets de votre machine tout en restant privés pour votre compte utilisateur. Cette portée fonctionne bien pour les serveurs utilitaires personnels, les outils de développement ou les services que vous utilisez fréquemment dans différents projets.378Les serveurs à portée utilisateur sont stockés dans `~/.claude.json` et offrent une accessibilité inter-projets, les rendant disponibles dans tous les projets de votre machine tout en restant privés pour votre compte utilisateur. Cette portée fonctionne bien pour les serveurs utilitaires personnels, les outils de développement ou les services que vous utilisez fréquemment dans différents projets.

335 379 


338claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic382claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic

339```383```

340 384 

341### Hiérarchie de portée et précédence385<h3 id="scope-hierarchy-and-precedence">

386 Hiérarchie de portée et précédence

387</h3>

342 388 

343Lorsque le même serveur est défini à plus d'un endroit, Claude Code s'y connecte une fois, en utilisant la définition de la source avec la plus haute priorité. L'entrée de serveur entière de cette source est utilisée ; les champs ne sont pas fusionnés entre les portées.389Lorsque le même serveur est défini à plus d'un endroit, Claude Code s'y connecte une fois, en utilisant la définition de la source avec la plus haute priorité. L'entrée de serveur entière de cette source est utilisée ; les champs ne sont pas fusionnés entre les portées.

344 390 


350 396 

351Les trois portées correspondent aux doublons par nom. Les plugins et les connecteurs correspondent par point de terminaison, donc celui qui pointe vers la même URL ou commande qu'un serveur ci-dessus est traité comme un doublon.397Les trois portées correspondent aux doublons par nom. Les plugins et les connecteurs correspondent par point de terminaison, donc celui qui pointe vers la même URL ou commande qu'un serveur ci-dessus est traité comme un doublon.

352 398 

353### Expansion des variables d'environnement dans `.mcp.json`399<h3 id="environment-variable-expansion-in-mcp-json">

400 Expansion des variables d'environnement dans `.mcp.json`

401</h3>

354 402 

355Claude Code supporte l'expansion des variables d'environnement dans les fichiers `.mcp.json`, permettant aux équipes de partager des configurations tout en maintenant la flexibilité pour les chemins spécifiques à la machine et les valeurs sensibles comme les clés API.403Claude Code supporte l'expansion des variables d'environnement dans les fichiers `.mcp.json`, permettant aux équipes de partager des configurations tout en maintenant la flexibilité pour les chemins spécifiques à la machine et les valeurs sensibles comme les clés API.

356 404 


386 434 

387Si une variable d'environnement requise n'est pas définie et n'a pas de valeur par défaut, Claude Code ne pourra pas analyser la configuration.435Si une variable d'environnement requise n'est pas définie et n'a pas de valeur par défaut, Claude Code ne pourra pas analyser la configuration.

388 436 

389## Exemples pratiques437<h2 id="practical-examples">

438 Exemples pratiques

439</h2>

390 440 

391{/* ### Exemple : Automatiser les tests de navigateur avec Playwright441<h3 id="example-monitor-errors-with-sentry">

392 442 Exemple : Surveiller les erreurs avec Sentry

393```bash443</h3>

394claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest

395```

396 

397Ensuite, écrivez et exécutez des tests de navigateur :

398 

399```text

400Test si le flux de connexion fonctionne avec test@example.com

401```

402```text

403Prendre une capture d'écran de la page de paiement sur mobile

404```

405```text

406Vérifier que la fonction de recherche retourne des résultats

407``` */}

408 

409### Exemple : Surveiller les erreurs avec Sentry

410 444 

411```bash theme={null}445```bash theme={null}

412claude mcp add --transport http sentry https://mcp.sentry.dev/mcp446claude mcp add --transport http sentry https://mcp.sentry.dev/mcp


432Quel déploiement a introduit ces nouvelles erreurs ?466Quel déploiement a introduit ces nouvelles erreurs ?

433```467```

434 468 

435### Exemple : Se connecter à GitHub pour les révisions de code469<h3 id="example-connect-to-github-for-code-reviews">

470 Exemple : Se connecter à GitHub pour les révisions de code

471</h3>

436 472 

437Le serveur MCP distant de GitHub s'authentifie avec un jeton d'accès personnel GitHub transmis en tant qu'en-tête. Pour en obtenir un, ouvrez vos [paramètres de jeton GitHub](https://github.com/settings/personal-access-tokens), générez un nouveau jeton à granularité fine avec accès aux référentiels avec lesquels vous souhaitez que Claude travaille, puis ajoutez le serveur :473Le serveur MCP distant de GitHub s'authentifie avec un jeton d'accès personnel GitHub transmis en tant qu'en-tête. Pour en obtenir un, ouvrez vos [paramètres de jeton GitHub](https://github.com/settings/personal-access-tokens), générez un nouveau jeton à granularité fine avec accès aux référentiels avec lesquels vous souhaitez que Claude travaille, puis ajoutez le serveur :

438 474 


455Montrez-moi toutes les PR ouvertes qui me sont assignées491Montrez-moi toutes les PR ouvertes qui me sont assignées

456```492```

457 493 

458### Exemple : Interroger votre base de données PostgreSQL494<h3 id="example-query-your-postgresql-database">

495 Exemple : Interroger votre base de données PostgreSQL

496</h3>

459 497 

460```bash theme={null}498```bash theme={null}

461claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \499claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \


476Trouver les clients qui n'ont pas effectué d'achat depuis 90 jours514Trouver les clients qui n'ont pas effectué d'achat depuis 90 jours

477```515```

478 516 

479## S'authentifier auprès des serveurs MCP distants517<h2 id="authenticate-with-remote-mcp-servers">

518 S'authentifier auprès des serveurs MCP distants

519</h2>

480 520 

481De nombreux serveurs MCP basés sur le cloud nécessitent une authentification. Claude Code supporte OAuth 2.0 pour les connexions sécurisées.521De nombreux serveurs MCP basés sur le cloud nécessitent une authentification. Claude Code supporte OAuth 2.0 pour les connexions sécurisées.

482 522 


514 * L'authentification OAuth fonctionne avec les serveurs HTTP554 * L'authentification OAuth fonctionne avec les serveurs HTTP

515</Tip>555</Tip>

516 556 

517### Utiliser un port de rappel OAuth fixe557<h3 id="use-a-fixed-oauth-callback-port">

558 Utiliser un port de rappel OAuth fixe

559</h3>

518 560 

519Certains serveurs MCP nécessitent un URI de redirection spécifique enregistré à l'avance. Par défaut, Claude Code choisit un port disponible aléatoire pour le rappel OAuth. Utilisez `--callback-port` pour fixer le port afin qu'il corresponde à un URI de redirection pré-enregistré de la forme `http://localhost:PORT/callback`.561Certains serveurs MCP nécessitent un URI de redirection spécifique enregistré à l'avance. Par défaut, Claude Code choisit un port disponible aléatoire pour le rappel OAuth. Utilisez `--callback-port` pour fixer le port afin qu'il corresponde à un URI de redirection pré-enregistré de la forme `http://localhost:PORT/callback`.

520 562 


527 my-server https://mcp.example.com/mcp569 my-server https://mcp.example.com/mcp

528```570```

529 571 

530### Utiliser les identifiants OAuth pré-configurés572<h3 id="use-pre-configured-oauth-credentials">

573 Utiliser les identifiants OAuth pré-configurés

574</h3>

531 575 

532Certains serveurs MCP ne supportent pas la configuration OAuth automatique via l'enregistrement dynamique du client. Si vous voyez une erreur comme « Incompatible auth server: does not support dynamic client registration », le serveur nécessite des identifiants pré-configurés. Claude Code supporte également les serveurs qui utilisent un document de métadonnées d'ID client (CIMD) au lieu de l'enregistrement dynamique du client, et les découvre automatiquement. Si la découverte automatique échoue, enregistrez d'abord une application OAuth via le portail des développeurs du serveur, puis fournissez les identifiants lors de l'ajout du serveur.576Certains serveurs MCP ne supportent pas la configuration OAuth automatique via l'enregistrement dynamique du client. Si vous voyez une erreur comme « Incompatible auth server: does not support dynamic client registration », le serveur nécessite des identifiants pré-configurés. Claude Code supporte également les serveurs qui utilisent un document de métadonnées d'ID client (CIMD) au lieu de l'enregistrement dynamique du client, et les découvre automatiquement. Si la découverte automatique échoue, enregistrez d'abord une application OAuth via le portail des développeurs du serveur, puis fournissez les identifiants lors de l'ajout du serveur.

533 577 


598 * Utilisez `claude mcp get <name>` pour vérifier que les identifiants OAuth sont configurés pour un serveur642 * Utilisez `claude mcp get <name>` pour vérifier que les identifiants OAuth sont configurés pour un serveur

599</Tip>643</Tip>

600 644 

601### Remplacer la découverte des métadonnées OAuth645<h3 id="override-oauth-metadata-discovery">

646 Remplacer la découverte des métadonnées OAuth

647</h3>

602 648 

603Pointez Claude Code vers une URL de métadonnées spécifique du serveur d'autorisation OAuth pour contourner la chaîne de découverte par défaut. Définissez `authServerMetadataUrl` lorsque les points de terminaison standard du serveur MCP génèrent des erreurs, ou lorsque vous souhaitez acheminer la découverte via un proxy interne. Par défaut, Claude Code vérifie d'abord les métadonnées de ressource protégée RFC 9728 à `/.well-known/oauth-protected-resource`, puis revient aux métadonnées du serveur d'autorisation RFC 8414 à `/.well-known/oauth-authorization-server`.649Pointez Claude Code vers une URL de métadonnées spécifique du serveur d'autorisation OAuth pour contourner la chaîne de découverte par défaut. Définissez `authServerMetadataUrl` lorsque les points de terminaison standard du serveur MCP génèrent des erreurs, ou lorsque vous souhaitez acheminer la découverte via un proxy interne. Par défaut, Claude Code vérifie d'abord les métadonnées de ressource protégée RFC 9728 à `/.well-known/oauth-protected-resource`, puis revient aux métadonnées du serveur d'autorisation RFC 8414 à `/.well-known/oauth-authorization-server`.

604 650 


620 666 

621L'URL doit utiliser `https://`. `authServerMetadataUrl` nécessite Claude Code v2.1.64 ou ultérieur. Les `scopes_supported` de l'URL des métadonnées remplacent les portées que le serveur en amont annonce.667L'URL doit utiliser `https://`. `authServerMetadataUrl` nécessite Claude Code v2.1.64 ou ultérieur. Les `scopes_supported` de l'URL des métadonnées remplacent les portées que le serveur en amont annonce.

622 668 

623### Restreindre les portées OAuth669<h3 id="restrict-oauth-scopes">

670 Restreindre les portées OAuth

671</h3>

624 672 

625Définissez `oauth.scopes` pour épingler les portées que Claude Code demande pendant le flux d'autorisation. C'est la façon supportée de restreindre un serveur MCP à un sous-ensemble approuvé par l'équipe de sécurité lorsque le serveur d'autorisation en amont annonce plus de portées que vous ne souhaitez accorder. La valeur est une seule chaîne séparée par des espaces, correspondant au format du paramètre `scope` dans RFC 6749 §3.3.673Définissez `oauth.scopes` pour épingler les portées que Claude Code demande pendant le flux d'autorisation. C'est la façon supportée de restreindre un serveur MCP à un sous-ensemble approuvé par l'équipe de sécurité lorsque le serveur d'autorisation en amont annonce plus de portées que vous ne souhaitez accorder. La valeur est une seule chaîne séparée par des espaces, correspondant au format du paramètre `scope` dans RFC 6749 §3.3.

626 674 


644 692 

645Si le serveur retourne ultérieurement un 403 `insufficient_scope` pour un appel d'outil, Claude Code se réauthentifie avec les mêmes portées épinglées. Élargissez `oauth.scopes` lorsqu'un outil dont vous avez besoin nécessite une portée en dehors de l'épingle.693Si le serveur retourne ultérieurement un 403 `insufficient_scope` pour un appel d'outil, Claude Code se réauthentifie avec les mêmes portées épinglées. Élargissez `oauth.scopes` lorsqu'un outil dont vous avez besoin nécessite une portée en dehors de l'épingle.

646 694 

647### Utiliser des en-têtes dynamiques pour l'authentification personnalisée695<h3 id="use-dynamic-headers-for-custom-authentication">

696 Utiliser des en-têtes dynamiques pour l'authentification personnalisée

697</h3>

648 698 

649Si votre serveur MCP utilise un schéma d'authentification autre que OAuth (tel que Kerberos, jetons de courte durée ou un SSO interne), utilisez `headersHelper` pour générer des en-têtes de requête au moment de la connexion. Claude Code exécute la commande et fusionne sa sortie dans les en-têtes de connexion.699Si votre serveur MCP utilise un schéma d'authentification autre que OAuth (tel que Kerberos, jetons de courte durée ou un SSO interne), utilisez `headersHelper` pour générer des en-têtes de requête au moment de la connexion. Claude Code exécute la commande et fusionne sa sortie dans les en-têtes de connexion.

650 700 


695 `headersHelper` exécute des commandes shell arbitraires. Lorsqu'il est défini à portée de projet ou locale, il ne s'exécute qu'après que vous ayez accepté la boîte de dialogue de confiance de l'espace de travail.745 `headersHelper` exécute des commandes shell arbitraires. Lorsqu'il est défini à portée de projet ou locale, il ne s'exécute qu'après que vous ayez accepté la boîte de dialogue de confiance de l'espace de travail.

696</Note>746</Note>

697 747 

698## Ajouter des serveurs MCP à partir de la configuration JSON748<h2 id="add-mcp-servers-from-json-configuration">

749 Ajouter des serveurs MCP à partir de la configuration JSON

750</h2>

699 751 

700Si vous avez une configuration JSON pour un serveur MCP, vous pouvez l'ajouter directement :752Si vous avez une configuration JSON pour un serveur MCP, vous pouvez l'ajouter directement :

701 753 


731 * Vous pouvez utiliser `--scope user` pour ajouter le serveur à votre configuration utilisateur au lieu de celle spécifique au projet783 * Vous pouvez utiliser `--scope user` pour ajouter le serveur à votre configuration utilisateur au lieu de celle spécifique au projet

732</Tip>784</Tip>

733 785 

734## Importer les serveurs MCP à partir de Claude Desktop786<h2 id="import-mcp-servers-from-claude-desktop">

787 Importer les serveurs MCP à partir de Claude Desktop

788</h2>

735 789 

736Si vous avez déjà configuré des serveurs MCP dans Claude Desktop, vous pouvez les importer :790Si vous avez déjà configuré des serveurs MCP dans Claude Desktop, vous pouvez les importer :

737 791 


764 * Si des serveurs portant les mêmes noms existent déjà, ils recevront un suffixe numérique (par exemple, `server_1`)818 * Si des serveurs portant les mêmes noms existent déjà, ils recevront un suffixe numérique (par exemple, `server_1`)

765</Tip>819</Tip>

766 820 

767## Utiliser les serveurs MCP à partir de Claude.ai821<h2 id="use-mcp-servers-from-claude-ai">

822 Utiliser les serveurs MCP à partir de Claude.ai

823</h2>

768 824 

769Si vous vous êtes connecté à Claude Code avec un compte [Claude.ai](https://claude.ai), les serveurs MCP que vous avez ajoutés dans Claude.ai sont automatiquement disponibles dans Claude Code :825Si vous vous êtes connecté à Claude Code avec un compte [Claude.ai](https://claude.ai), les serveurs MCP que vous avez ajoutés dans Claude.ai sont automatiquement disponibles dans Claude Code :

770 826 


794 850 

795Un serveur que vous avez ajouté dans Claude Code prend [précédence](#scope-hierarchy-and-precedence) sur un connecteur claude.ai qui pointe vers la même URL. Quand cela se produit, `/mcp` répertorie le connecteur comme masqué et montre comment supprimer le doublon si vous préférez utiliser le connecteur.851Un serveur que vous avez ajouté dans Claude Code prend [précédence](#scope-hierarchy-and-precedence) sur un connecteur claude.ai qui pointe vers la même URL. Quand cela se produit, `/mcp` répertorie le connecteur comme masqué et montre comment supprimer le doublon si vous préférez utiliser le connecteur.

796 852 

853Certains connecteurs hébergés par Anthropic, tels que Microsoft 365, Gmail et Google Calendar, ne supportent pas OAuth local à partir de Claude Code car le fournisseur d'identité en amont n'accepte que l'URL de redirection que claude.ai a enregistrée. À partir de la v2.1.162, l'authentification de l'un de ces hôtes dans `/mcp` affiche un message vous dirigeant pour le connecter à Paramètres → Connecteurs sur claude.ai à la place. Une fois connecté là-bas, le connecteur apparaît dans Claude Code automatiquement.

854 

797Pour désactiver les serveurs MCP de Claude.ai dans Claude Code, définissez la variable d'environnement `ENABLE_CLAUDEAI_MCP_SERVERS` sur `false` :855Pour désactiver les serveurs MCP de Claude.ai dans Claude Code, définissez la variable d'environnement `ENABLE_CLAUDEAI_MCP_SERVERS` sur `false` :

798 856 

799```bash theme={null}857```bash theme={null}

800ENABLE_CLAUDEAI_MCP_SERVERS=false claude858ENABLE_CLAUDEAI_MCP_SERVERS=false claude

801```859```

802 860 

803## Utiliser Claude Code comme serveur MCP861<h2 id="use-claude-code-as-an-mcp-server">

862 Utiliser Claude Code comme serveur MCP

863</h2>

804 864 

805Vous pouvez utiliser Claude Code lui-même comme serveur MCP auquel d'autres applications peuvent se connecter :865Vous pouvez utiliser Claude Code lui-même comme serveur MCP auquel d'autres applications peuvent se connecter :

806 866 


859 * Notez que ce serveur MCP expose uniquement les outils de Claude Code à votre client MCP, donc votre propre client est responsable de l'implémentation de la confirmation de l'utilisateur pour les appels d'outils individuels.919 * Notez que ce serveur MCP expose uniquement les outils de Claude Code à votre client MCP, donc votre propre client est responsable de l'implémentation de la confirmation de l'utilisateur pour les appels d'outils individuels.

860</Tip>920</Tip>

861 921 

862## Limites de sortie MCP et avertissements922<h2 id="mcp-output-limits-and-warnings">

923 Limites de sortie MCP et avertissements

924</h2>

863 925 

864Lorsque les outils MCP produisent de grandes sorties, Claude Code aide à gérer l'utilisation des jetons pour éviter de surcharger votre contexte de conversation :926Lorsque les outils MCP produisent de grandes sorties, Claude Code aide à gérer l'utilisation des jetons pour éviter de surcharger votre contexte de conversation :

865 927 


881* Génèrent des rapports ou des documentations détaillés943* Génèrent des rapports ou des documentations détaillés

882* Traitent des fichiers journaux ou des informations de débogage étendus944* Traitent des fichiers journaux ou des informations de débogage étendus

883 945 

884### Augmenter la limite pour un outil spécifique946<h3 id="raise-the-limit-for-a-specific-tool">

947 Augmenter la limite pour un outil spécifique

948</h3>

885 949 

886Si vous créez un serveur MCP, vous pouvez permettre aux outils individuels de retourner des résultats plus grands que le seuil par défaut de persistance sur disque en définissant `_meta["anthropic/maxResultSizeChars"]` dans l'entrée de l'outil dans la réponse `tools/list`. Claude Code augmente le seuil de cet outil à la valeur annotée, jusqu'à un plafond dur de 500 000 caractères.950Si vous créez un serveur MCP, vous pouvez permettre aux outils individuels de retourner des résultats plus grands que le seuil par défaut de persistance sur disque en définissant `_meta["anthropic/maxResultSizeChars"]` dans l'entrée de l'outil dans la réponse `tools/list`. Claude Code augmente le seuil de cet outil à la valeur annotée, jusqu'à un plafond dur de 500 000 caractères.

887 951 


903 Si vous rencontrez fréquemment des avertissements de sortie avec des serveurs MCP spécifiques que vous ne contrôlez pas, envisagez d'augmenter la limite `MAX_MCP_OUTPUT_TOKENS`. Vous pouvez également demander à l'auteur du serveur d'ajouter l'annotation `anthropic/maxResultSizeChars` ou de paginer ses réponses. L'annotation n'a aucun effet sur les outils qui retournent du contenu d'image ; pour ceux-ci, augmenter `MAX_MCP_OUTPUT_TOKENS` est la seule option.967 Si vous rencontrez fréquemment des avertissements de sortie avec des serveurs MCP spécifiques que vous ne contrôlez pas, envisagez d'augmenter la limite `MAX_MCP_OUTPUT_TOKENS`. Vous pouvez également demander à l'auteur du serveur d'ajouter l'annotation `anthropic/maxResultSizeChars` ou de paginer ses réponses. L'annotation n'a aucun effet sur les outils qui retournent du contenu d'image ; pour ceux-ci, augmenter `MAX_MCP_OUTPUT_TOKENS` est la seule option.

904</Warning>968</Warning>

905 969 

906## Répondre aux demandes d'élicitation MCP970<h2 id="respond-to-mcp-elicitation-requests">

971 Répondre aux demandes d'élicitation MCP

972</h2>

907 973 

908Les serveurs MCP peuvent demander une entrée structurée de votre part au cours d'une tâche en utilisant l'élicitation. Lorsqu'un serveur a besoin d'informations qu'il ne peut pas obtenir par lui-même, Claude Code affiche une boîte de dialogue interactive et transmet votre réponse au serveur. Aucune configuration n'est requise de votre côté : les boîtes de dialogue d'élicitation apparaissent automatiquement lorsqu'un serveur les demande.974Les serveurs MCP peuvent demander une entrée structurée de votre part au cours d'une tâche en utilisant l'élicitation. Lorsqu'un serveur a besoin d'informations qu'il ne peut pas obtenir par lui-même, Claude Code affiche une boîte de dialogue interactive et transmet votre réponse au serveur. Aucune configuration n'est requise de votre côté : les boîtes de dialogue d'élicitation apparaissent automatiquement lorsqu'un serveur les demande.

909 975 


912* **Mode formulaire** : Claude Code affiche une boîte de dialogue avec des champs de formulaire définis par le serveur (par exemple, une invite de nom d'utilisateur et de mot de passe). Remplissez les champs et soumettez.978* **Mode formulaire** : Claude Code affiche une boîte de dialogue avec des champs de formulaire définis par le serveur (par exemple, une invite de nom d'utilisateur et de mot de passe). Remplissez les champs et soumettez.

913* **Mode URL** : Claude Code ouvre une URL de navigateur pour l'authentification ou l'approbation. Complétez le flux dans le navigateur, puis confirmez dans l'interface de ligne de commande.979* **Mode URL** : Claude Code ouvre une URL de navigateur pour l'authentification ou l'approbation. Complétez le flux dans le navigateur, puis confirmez dans l'interface de ligne de commande.

914 980 

915Pour répondre automatiquement aux demandes d'élicitation sans afficher de boîte de dialogue, utilisez le [hook `Elicitation`](/fr/hooks#Elicitation).981Pour répondre automatiquement aux demandes d'élicitation sans afficher de boîte de dialogue, utilisez le [hook `Elicitation`](/fr/hooks#elicitation).

916 982 

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

918 984 

919## Utiliser les ressources MCP985<h2 id="use-mcp-resources">

986 Utiliser les ressources MCP

987</h2>

920 988 

921Les serveurs MCP peuvent exposer des ressources que vous pouvez référencer en utilisant des mentions @, similaire à la façon dont vous référencez les fichiers.989Les serveurs MCP peuvent exposer des ressources que vous pouvez référencer en utilisant des mentions @, similaire à la façon dont vous référencez les fichiers.

922 990 

923### Référencer les ressources MCP991<h3 id="reference-mcp-resources">

992 Référencer les ressources MCP

993</h3>

924 994 

925<Steps>995<Steps>

926 <Step title="Lister les ressources disponibles">996 <Step title="Lister les ressources disponibles">


957 * Les ressources peuvent contenir n'importe quel type de contenu fourni par le serveur MCP (texte, JSON, données structurées, etc.)1027 * Les ressources peuvent contenir n'importe quel type de contenu fourni par le serveur MCP (texte, JSON, données structurées, etc.)

958</Tip>1028</Tip>

959 1029 

960## Mettre à l'échelle avec la recherche d'outils MCP1030<h2 id="scale-with-mcp-tool-search">

1031 Mettre à l'échelle avec la recherche d'outils MCP

1032</h2>

961 1033 

962La recherche d'outils maintient l'utilisation du contexte MCP faible en différant les définitions d'outils jusqu'à ce que Claude en ait besoin. Seuls les noms d'outils et les instructions du serveur se chargent au démarrage de la session, donc l'ajout de plus de serveurs MCP a un impact minimal sur votre fenêtre de contexte.1034La recherche d'outils maintient l'utilisation du contexte MCP faible en différant les définitions d'outils jusqu'à ce que Claude en ait besoin. Seuls les noms d'outils et les instructions du serveur se chargent au démarrage de la session, donc l'ajout de plus de serveurs MCP a un impact minimal sur votre fenêtre de contexte. Claude Code n'impose pas de limite fixe d'outils par serveur ; la limite pratique est votre budget de fenêtre de contexte.

963 1035 

964### Comment cela fonctionne1036<h3 id="how-it-works">

1037 Comment cela fonctionne

1038</h3>

965 1039 

966La recherche d'outils est activée par défaut. Les outils MCP sont différés plutôt que chargés dans le contexte à l'avance, et Claude utilise un outil de recherche pour découvrir les outils pertinents lorsqu'une tâche en a besoin. Seuls les outils que Claude utilise réellement entrent dans le contexte. De votre point de vue, les outils MCP fonctionnent exactement comme avant.1040La recherche d'outils est activée par défaut. Les outils MCP sont différés plutôt que chargés dans le contexte à l'avance, et Claude utilise un outil de recherche pour découvrir les outils pertinents lorsqu'une tâche en a besoin. Seuls les outils que Claude utilise réellement entrent dans le contexte. De votre point de vue, les outils MCP fonctionnent exactement comme avant.

967 1041 

968Si vous préférez le chargement basé sur un seuil, définissez `ENABLE_TOOL_SEARCH=auto` pour charger les schémas à l'avance lorsqu'ils s'ajustent dans 10 % de la fenêtre de contexte et différer uniquement le débordement. Consultez [Configurer la recherche d'outils](#configure-tool-search) pour toutes les options.1042Si vous préférez le chargement basé sur un seuil, définissez `ENABLE_TOOL_SEARCH=auto` pour charger les schémas à l'avance lorsqu'ils s'ajustent dans 10 % de la fenêtre de contexte et différer uniquement le débordement. Consultez [Configurer la recherche d'outils](#configure-tool-search) pour toutes les options.

969 1043 

970### Pour les auteurs de serveurs MCP1044<h3 id="for-mcp-server-authors">

1045 Pour les auteurs de serveurs MCP

1046</h3>

971 1047 

972Si vous créez un serveur MCP, le champ des instructions du serveur devient plus utile avec la recherche d'outils activée. Les instructions du serveur aident Claude à comprendre quand rechercher vos outils, similaire à la façon dont les [skills](/fr/skills) fonctionnent.1048Si vous créez un serveur MCP, le champ des instructions du serveur devient plus utile avec la recherche d'outils activée. Les instructions du serveur aident Claude à comprendre quand rechercher vos outils, similaire à la façon dont les [skills](/fr/skills) fonctionnent.

973 1049 


979 1055 

980Claude Code tronque les descriptions d'outils et les instructions du serveur à 2 Ko chacune. Gardez-les concis pour éviter la troncature, et mettez les détails critiques près du début.1056Claude Code tronque les descriptions d'outils et les instructions du serveur à 2 Ko chacune. Gardez-les concis pour éviter la troncature, et mettez les détails critiques près du début.

981 1057 

982### Configurer la recherche d'outils1058<h3 id="configure-tool-search">

1059 Configurer la recherche d'outils

1060</h3>

983 1061 

984La recherche d'outils est activée par défaut : les outils MCP sont différés et découverts à la demande. Claude Code la désactive par défaut sur Vertex AI. Elle est également désactivée lorsque `ANTHROPIC_BASE_URL` pointe vers un hôte non-propriétaire, car la plupart des proxies ne transfèrent pas les blocs `tool_reference`. Définissez `ENABLE_TOOL_SEARCH` explicitement pour remplacer l'un ou l'autre des mécanismes de secours.1062La recherche d'outils est activée par défaut : les outils MCP sont différés et découverts à la demande. Claude Code la désactive par défaut sur Vertex AI. Elle est également désactivée lorsque `ANTHROPIC_BASE_URL` pointe vers un hôte non-propriétaire, car la plupart des proxies ne transfèrent pas les blocs `tool_reference`. Définissez `ENABLE_TOOL_SEARCH` explicitement pour remplacer l'un ou l'autre des mécanismes de secours.

985 1063 

986La recherche d'outils nécessite un modèle qui supporte les blocs `tool_reference` : Sonnet 4 et ultérieur, ou Opus 4 et ultérieur. Les modèles Haiku ne le supportent pas. Sur Vertex AI, la recherche d'outils est supportée pour Claude Sonnet 4.5 et ultérieur et Claude Opus 4.5 et ultérieur.1064La recherche d'outils nécessite un modèle qui supporte les blocs `tool_reference`. Les modèles Haiku ne le supportent pas. Sur Vertex AI, la recherche d'outils est supportée pour Claude Sonnet 4.5 et ultérieur et Claude Opus 4.5 et ultérieur.

987 1065 

988Contrôlez le comportement de la recherche d'outils avec la variable d'environnement `ENABLE_TOOL_SEARCH` :1066Contrôlez le comportement de la recherche d'outils avec la variable d'environnement `ENABLE_TOOL_SEARCH` :

989 1067 


1015}1093}

1016```1094```

1017 1095 

1018### Exempter un serveur du différé1096<h3 id="exempt-a-server-from-deferral">

1097 Exempter un serveur du différé

1098</h3>

1019 1099 

1020Si les outils d'un serveur doivent toujours être visibles pour Claude sans une étape de recherche, définissez `alwaysLoad` à `true` dans la configuration de ce serveur. Chaque outil de ce serveur se charge alors dans le contexte au démarrage de la session indépendamment du paramètre `ENABLE_TOOL_SEARCH`. Utilisez ceci pour un petit nombre d'outils que Claude doit utiliser à chaque tour, car chaque outil à l'avance consomme du contexte qui serait autrement disponible pour votre conversation.1100Si les outils d'un serveur doivent toujours être visibles pour Claude sans une étape de recherche, définissez `alwaysLoad` à `true` dans la configuration de ce serveur. Chaque outil de ce serveur se charge alors dans le contexte au démarrage de la session indépendamment du paramètre `ENABLE_TOOL_SEARCH`. Utilisez ceci pour un petit nombre d'outils que Claude doit utiliser à chaque tour, car chaque outil à l'avance consomme du contexte qui serait autrement disponible pour votre conversation.

1021 1101 


1037 1117 

1038La définition de `alwaysLoad: true` bloque également le démarrage jusqu'à ce que le serveur se connecte, limité au délai d'expiration de connexion standard de 5 secondes. Cela s'applique même lorsque MCP startup est autrement [non-bloquant par défaut](/fr/env-vars), car les outils doivent être présents lors de la construction de la première invite. Les autres serveurs continuent à se connecter en arrière-plan.1118La définition de `alwaysLoad: true` bloque également le démarrage jusqu'à ce que le serveur se connecte, limité au délai d'expiration de connexion standard de 5 secondes. Cela s'applique même lorsque MCP startup est autrement [non-bloquant par défaut](/fr/env-vars), car les outils doivent être présents lors de la construction de la première invite. Les autres serveurs continuent à se connecter en arrière-plan.

1039 1119 

1040## Utiliser les prompts MCP comme commandes1120<h2 id="use-mcp-prompts-as-commands">

1121 Utiliser les prompts MCP comme commandes

1122</h2>

1041 1123 

1042Les serveurs MCP peuvent exposer des prompts qui deviennent disponibles en tant que commandes dans Claude Code.1124Les serveurs MCP peuvent exposer des prompts qui deviennent disponibles en tant que commandes dans Claude Code.

1043 1125 

1044### Exécuter les prompts MCP1126<h3 id="execute-mcp-prompts">

1127 Exécuter les prompts MCP

1128</h3>

1045 1129 

1046<Steps>1130<Steps>

1047 <Step title="Découvrir les prompts disponibles">1131 <Step title="Découvrir les prompts disponibles">


1076 * Les noms de serveur et de prompt sont normalisés (les espaces deviennent des traits de soulignement)1160 * Les noms de serveur et de prompt sont normalisés (les espaces deviennent des traits de soulignement)

1077</Tip>1161</Tip>

1078 1162 

1079## Configuration MCP gérée1163<h2 id="managed-mcp-configuration">

1164 Configuration MCP gérée

1165</h2>

1080 1166 

1081Pour les organisations qui ont besoin d'un contrôle centralisé sur les serveurs MCP auxquels les utilisateurs peuvent se connecter, consultez [Configuration MCP gérée](/fr/managed-mcp). Elle couvre le déploiement d'un ensemble fixe de serveurs avec `managed-mcp.json`, la restriction des serveurs avec `allowedMcpServers` et `deniedMcpServers`, et ce que les utilisateurs voient lorsqu'un serveur est bloqué.1167Pour les organisations qui ont besoin d'un contrôle centralisé sur les serveurs MCP auxquels les utilisateurs peuvent se connecter, consultez [Configuration MCP gérée](/fr/managed-mcp). Elle couvre le déploiement d'un ensemble fixe de serveurs avec `managed-mcp.json`, la restriction des serveurs avec `allowedMcpServers` et `deniedMcpServers`, et ce que les utilisateurs voient lorsqu'un serveur est bloqué.

memory.md +92 −32

Details

18* [Configurer la mémoire automatique](#auto-memory) pour que Claude prenne des notes automatiquement18* [Configurer la mémoire automatique](#auto-memory) pour que Claude prenne des notes automatiquement

19* [Dépanner](#troubleshoot-memory-issues) quand les instructions ne sont pas suivies19* [Dépanner](#troubleshoot-memory-issues) quand les instructions ne sont pas suivies

20 20 

21## CLAUDE.md vs mémoire automatique21<h2 id="claude-md-vs-auto-memory">

22 CLAUDE.md vs mémoire automatique

23</h2>

22 24 

23Claude Code dispose de deux systèmes de mémoire complémentaires. Les deux sont chargés au début de chaque conversation. Claude les traite comme du contexte, pas comme une configuration appliquée. Pour bloquer une action indépendamment de ce que Claude décide, utilisez un [hook PreToolUse](/fr/hooks-guide) à la place. Plus vos instructions sont spécifiques et concises, plus Claude les suit régulièrement.25Claude Code dispose de deux systèmes de mémoire complémentaires. Les deux sont chargés au début de chaque conversation. Claude les traite comme du contexte, pas comme une configuration appliquée. Pour bloquer une action indépendamment de ce que Claude décide, utilisez un [hook PreToolUse](/fr/hooks-guide) à la place. Plus vos instructions sont spécifiques et concises, plus Claude les suit régulièrement.

24 26 


34 36 

35Les subagents peuvent également maintenir leur propre mémoire automatique. Consultez la [configuration des subagents](/fr/sub-agents#enable-persistent-memory) pour plus de détails.37Les subagents peuvent également maintenir leur propre mémoire automatique. Consultez la [configuration des subagents](/fr/sub-agents#enable-persistent-memory) pour plus de détails.

36 38 

37## Fichiers CLAUDE.md39<h2 id="claude-md-files">

40 Fichiers CLAUDE.md

41</h2>

38 42 

39Les fichiers CLAUDE.md sont des fichiers markdown qui donnent à Claude des instructions persistantes pour un projet, votre flux de travail personnel ou toute votre organisation. Vous écrivez ces fichiers en texte brut ; Claude les lit au début de chaque session.43Les fichiers CLAUDE.md sont des fichiers markdown qui donnent à Claude des instructions persistantes pour un projet, votre flux de travail personnel ou toute votre organisation. Vous écrivez ces fichiers en texte brut ; Claude les lit au début de chaque session.

40 44 

41### Quand ajouter à CLAUDE.md45<h3 id="when-to-add-to-claude-md">

46 Quand ajouter à CLAUDE.md

47</h3>

42 48 

43Traitez CLAUDE.md comme l'endroit où vous écrivez ce que vous expliqueriez autrement à nouveau. Ajoutez-y quand :49Traitez CLAUDE.md comme l'endroit où vous écrivez ce que vous expliqueriez autrement à nouveau. Ajoutez-y quand :

44 50 


49 55 

50Gardez-le aux faits que Claude devrait retenir à chaque session : commandes de compilation, conventions, disposition du projet, règles « toujours faire X ». Si une entrée est une procédure multi-étapes ou ne concerne qu'une partie de la base de code, déplacez-la vers une [skill](/fr/skills) ou une [règle limitée au chemin](#organize-rules-with-claude/rules/) à la place. L'[aperçu des extensions](/fr/features-overview#build-your-setup-over-time) couvre quand utiliser chaque mécanisme.56Gardez-le aux faits que Claude devrait retenir à chaque session : commandes de compilation, conventions, disposition du projet, règles « toujours faire X ». Si une entrée est une procédure multi-étapes ou ne concerne qu'une partie de la base de code, déplacez-la vers une [skill](/fr/skills) ou une [règle limitée au chemin](#organize-rules-with-claude/rules/) à la place. L'[aperçu des extensions](/fr/features-overview#build-your-setup-over-time) couvre quand utiliser chaque mécanisme.

51 57 

52### Choisir où placer les fichiers CLAUDE.md58<h3 id="choose-where-to-put-claude-md-files">

59 Choisir où placer les fichiers CLAUDE.md

60</h3>

53 61 

54Les fichiers CLAUDE.md peuvent se trouver à plusieurs endroits, chacun avec une portée différente. Le tableau ci-dessous les énumère dans l'ordre de chargement, de la portée la plus large à la plus spécifique, donc une instruction de projet apparaît en contexte après une instruction utilisateur.62Les fichiers CLAUDE.md peuvent se trouver à plusieurs endroits, chacun avec une portée différente. Le tableau ci-dessous les énumère dans l'ordre de chargement, de la portée la plus large à la plus spécifique, donc une instruction de projet apparaît en contexte après une instruction utilisateur.

55 63 


64 72 

65Pour les grands projets, vous pouvez diviser les instructions en fichiers spécifiques à un sujet en utilisant les [règles du projet](#organize-rules-with-claude/rules/). Les règles vous permettent de limiter les instructions à des types de fichiers ou des sous-répertoires spécifiques.73Pour les grands projets, vous pouvez diviser les instructions en fichiers spécifiques à un sujet en utilisant les [règles du projet](#organize-rules-with-claude/rules/). Les règles vous permettent de limiter les instructions à des types de fichiers ou des sous-répertoires spécifiques.

66 74 

67### Configurer un CLAUDE.md de projet75<h3 id="set-up-a-project-claude-md">

76 Configurer un CLAUDE.md de projet

77</h3>

68 78 

69Un CLAUDE.md de projet peut être stocké dans `./CLAUDE.md` ou `./.claude/CLAUDE.md`. Créez ce fichier et ajoutez des instructions qui s'appliquent à quiconque travaille sur le projet : commandes de compilation et de test, normes de codage, décisions architecturales, conventions de nommage et flux de travail courants. Ces instructions sont partagées avec votre équipe via le contrôle de version, donc concentrez-vous sur les normes au niveau du projet plutôt que sur les préférences personnelles.79Un CLAUDE.md de projet peut être stocké dans `./CLAUDE.md` ou `./.claude/CLAUDE.md`. Créez ce fichier et ajoutez des instructions qui s'appliquent à quiconque travaille sur le projet : commandes de compilation et de test, normes de codage, décisions architecturales, conventions de nommage et flux de travail courants. Ces instructions sont partagées avec votre équipe via le contrôle de version, donc concentrez-vous sur les normes au niveau du projet plutôt que sur les préférences personnelles.

70 80 


74 Définissez `CLAUDE_CODE_NEW_INIT=1` pour activer un flux interactif multi-phases. `/init` demande quels artefacts configurer : fichiers CLAUDE.md, skills et hooks. Il explore ensuite votre base de code avec un subagent, comble les lacunes via des questions de suivi et présente une proposition vérifiable avant d'écrire des fichiers.84 Définissez `CLAUDE_CODE_NEW_INIT=1` pour activer un flux interactif multi-phases. `/init` demande quels artefacts configurer : fichiers CLAUDE.md, skills et hooks. Il explore ensuite votre base de code avec un subagent, comble les lacunes via des questions de suivi et présente une proposition vérifiable avant d'écrire des fichiers.

75</Tip>85</Tip>

76 86 

77### Écrire des instructions efficaces87<h3 id="write-effective-instructions">

88 Écrire des instructions efficaces

89</h3>

78 90 

79Les fichiers CLAUDE.md sont chargés dans la fenêtre de contexte au début de chaque session, consommant des tokens aux côtés de votre conversation. La [visualisation de la fenêtre de contexte](/fr/context-window) montre où CLAUDE.md se charge par rapport au reste du contexte de démarrage. Parce qu'ils sont du contexte plutôt qu'une configuration appliquée, la façon dont vous écrivez les instructions affecte la fiabilité avec laquelle Claude les suit. Les instructions spécifiques, concises et bien structurées fonctionnent mieux.91Les fichiers CLAUDE.md sont chargés dans la fenêtre de contexte au début de chaque session, consommant des tokens aux côtés de votre conversation. La [visualisation de la fenêtre de contexte](/fr/context-window) montre où CLAUDE.md se charge par rapport au reste du contexte de démarrage. Parce qu'ils sont du contexte plutôt qu'une configuration appliquée, la façon dont vous écrivez les instructions affecte la fiabilité avec laquelle Claude les suit. Les instructions spécifiques, concises et bien structurées fonctionnent mieux.

80 92 


90 102 

91**Cohérence** : si deux règles se contredisent, Claude peut en choisir une arbitrairement. Examinez régulièrement vos fichiers CLAUDE.md, les fichiers CLAUDE.md imbriqués dans les sous-répertoires et les fichiers [`.claude/rules/`](#organize-rules-with-claude/rules/) pour supprimer les instructions obsolètes ou conflictuelles. Dans les monorepos, utilisez [`claudeMdExcludes`](#exclude-specific-claude-md-files) pour ignorer les fichiers CLAUDE.md d'autres équipes qui ne sont pas pertinents pour votre travail.103**Cohérence** : si deux règles se contredisent, Claude peut en choisir une arbitrairement. Examinez régulièrement vos fichiers CLAUDE.md, les fichiers CLAUDE.md imbriqués dans les sous-répertoires et les fichiers [`.claude/rules/`](#organize-rules-with-claude/rules/) pour supprimer les instructions obsolètes ou conflictuelles. Dans les monorepos, utilisez [`claudeMdExcludes`](#exclude-specific-claude-md-files) pour ignorer les fichiers CLAUDE.md d'autres équipes qui ne sont pas pertinents pour votre travail.

92 104 

93### Importer des fichiers supplémentaires105<h3 id="import-additional-files">

106 Importer des fichiers supplémentaires

107</h3>

94 108 

95Les fichiers CLAUDE.md peuvent importer des fichiers supplémentaires en utilisant la syntaxe `@path/to/import`. Les fichiers importés sont développés et chargés dans le contexte au lancement aux côtés du CLAUDE.md qui les référence.109Les fichiers CLAUDE.md peuvent importer des fichiers supplémentaires en utilisant la syntaxe `@path/to/import`. Les fichiers importés sont développés et chargés dans le contexte au lancement aux côtés du CLAUDE.md qui les référence.

96 110 


120 134 

121Pour une approche plus structurée de l'organisation des instructions, consultez [`.claude/rules/`](#organize-rules-with-claude/rules/).135Pour une approche plus structurée de l'organisation des instructions, consultez [`.claude/rules/`](#organize-rules-with-claude/rules/).

122 136 

123### AGENTS.md137<h3 id="agents-md">

138 AGENTS.md

139</h3>

124 140 

125Claude Code lit `CLAUDE.md`, pas `AGENTS.md`. Si votre référentiel utilise déjà `AGENTS.md` pour d'autres agents de codage, créez un `CLAUDE.md` qui l'importe pour que les deux outils lisent les mêmes instructions sans les dupliquer. Vous pouvez également ajouter des instructions spécifiques à Claude Code en dessous de l'import. Claude charge le fichier importé au démarrage de la session, puis ajoute le reste :141Claude Code lit `CLAUDE.md`, pas `AGENTS.md`. Si votre référentiel utilise déjà `AGENTS.md` pour d'autres agents de codage, créez un `CLAUDE.md` qui l'importe pour que les deux outils lisent les mêmes instructions sans les dupliquer. Vous pouvez également ajouter des instructions spécifiques à Claude Code en dessous de l'import. Claude charge le fichier importé au démarrage de la session, puis ajoute le reste :

126 142 


140 156 

141Sur Windows, créer un lien symbolique nécessite les privilèges d'administrateur ou le mode développeur, donc utilisez plutôt l'import `@AGENTS.md`.157Sur Windows, créer un lien symbolique nécessite les privilèges d'administrateur ou le mode développeur, donc utilisez plutôt l'import `@AGENTS.md`.

142 158 

143L'exécution de [`/init`](/fr/commands) dans un référentiel qui a déjà un `AGENTS.md` le lit et incorpore les parties pertinentes dans le `CLAUDE.md` généré. Il lit également d'autres configurations d'outils comme `.cursorrules` et `.windsurfrules`.159L'exécution de [`/init`](/fr/commands) dans un référentiel qui a déjà un `AGENTS.md` le lit et incorpore les parties pertinentes dans le `CLAUDE.md` généré. Il lit également d'autres configurations d'outils comme `.cursorrules`, `.devin/rules/` et `.windsurfrules`.

144 160 

145### Comment les fichiers CLAUDE.md se chargent161<h3 id="how-claude-md-files-load">

162 Comment les fichiers CLAUDE.md se chargent

163</h3>

146 164 

147Claude Code lit les fichiers CLAUDE.md en remontant l'arborescence des répertoires à partir de votre répertoire de travail actuel, en vérifiant chaque répertoire en chemin pour les fichiers `CLAUDE.md` et `CLAUDE.local.md`. Cela signifie que si vous exécutez Claude Code dans `foo/bar/`, il charge les instructions de `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` et tous les fichiers `CLAUDE.local.md` à côté d'eux.165Claude Code lit les fichiers CLAUDE.md en remontant l'arborescence des répertoires à partir de votre répertoire de travail actuel, en vérifiant chaque répertoire en chemin pour les fichiers `CLAUDE.md` et `CLAUDE.local.md`. Cela signifie que si vous exécutez Claude Code dans `foo/bar/`, il charge les instructions de `foo/bar/CLAUDE.md`, `foo/CLAUDE.md` et tous les fichiers `CLAUDE.local.md` à côté d'eux.

148 166 


154 172 

155Les commentaires HTML au niveau des blocs (`<!-- maintainer notes -->`) dans les fichiers CLAUDE.md sont supprimés avant que le contenu ne soit injecté dans le contexte de Claude. Utilisez-les pour laisser des notes aux responsables humains sans dépenser de tokens de contexte. Les commentaires à l'intérieur des blocs de code sont conservés. Quand vous ouvrez un fichier CLAUDE.md directement avec l'outil Read, les commentaires restent visibles.173Les commentaires HTML au niveau des blocs (`<!-- maintainer notes -->`) dans les fichiers CLAUDE.md sont supprimés avant que le contenu ne soit injecté dans le contexte de Claude. Utilisez-les pour laisser des notes aux responsables humains sans dépenser de tokens de contexte. Les commentaires à l'intérieur des blocs de code sont conservés. Quand vous ouvrez un fichier CLAUDE.md directement avec l'outil Read, les commentaires restent visibles.

156 174 

157#### Charger à partir de répertoires supplémentaires175<h4 id="load-from-additional-directories">

176 Charger à partir de répertoires supplémentaires

177</h4>

158 178 

159Le drapeau `--add-dir` donne à Claude accès à des répertoires supplémentaires en dehors de votre répertoire de travail principal. Par défaut, les fichiers CLAUDE.md de ces répertoires ne sont pas chargés.179Le drapeau `--add-dir` donne à Claude accès à des répertoires supplémentaires en dehors de votre répertoire de travail principal. Par défaut, les fichiers CLAUDE.md de ces répertoires ne sont pas chargés.

160 180 


166 186 

167Cela charge `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` et `CLAUDE.local.md` à partir du répertoire supplémentaire. `CLAUDE.local.md` est ignoré si vous excluez `local` de [`--setting-sources`](/fr/cli-reference).187Cela charge `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` et `CLAUDE.local.md` à partir du répertoire supplémentaire. `CLAUDE.local.md` est ignoré si vous excluez `local` de [`--setting-sources`](/fr/cli-reference).

168 188 

169### Organiser les règles avec `.claude/rules/`189<h3 id="organize-rules-with-claude/rules/">

190 Organiser les règles avec `.claude/rules/`

191</h3>

170 192 

171Pour les projets plus grands, vous pouvez organiser les instructions en plusieurs fichiers en utilisant le répertoire `.claude/rules/`. Cela garde les instructions modulaires et plus faciles à maintenir pour les équipes. Les règles peuvent également être [limitées à des chemins de fichiers spécifiques](#path-specific-rules), donc elles ne se chargent dans le contexte que quand Claude travaille avec des fichiers correspondants, réduisant le bruit et économisant l'espace de contexte.193Pour les projets plus grands, vous pouvez organiser les instructions en plusieurs fichiers en utilisant le répertoire `.claude/rules/`. Cela garde les instructions modulaires et plus faciles à maintenir pour les équipes. Les règles peuvent également être [limitées à des chemins de fichiers spécifiques](#path-specific-rules), donc elles ne se chargent dans le contexte que quand Claude travaille avec des fichiers correspondants, réduisant le bruit et économisant l'espace de contexte.

172 194 


174 Les règles se chargent dans le contexte à chaque session ou quand les fichiers correspondants sont ouverts. Pour les instructions spécifiques à une tâche qui n'ont pas besoin d'être dans le contexte tout le temps, utilisez plutôt les [skills](/fr/skills), qui ne se chargent que quand vous les invoquez ou quand Claude détermine qu'elles sont pertinentes pour votre invite.196 Les règles se chargent dans le contexte à chaque session ou quand les fichiers correspondants sont ouverts. Pour les instructions spécifiques à une tâche qui n'ont pas besoin d'être dans le contexte tout le temps, utilisez plutôt les [skills](/fr/skills), qui ne se chargent que quand vous les invoquez ou quand Claude détermine qu'elles sont pertinentes pour votre invite.

175</Note>197</Note>

176 198 

177#### Configurer les règles199<h4 id="set-up-rules">

200 Configurer les règles

201</h4>

178 202 

179Placez les fichiers markdown dans le répertoire `.claude/rules/` de votre projet. Chaque fichier doit couvrir un sujet, avec un nom de fichier descriptif comme `testing.md` ou `api-design.md`. Tous les fichiers `.md` sont découverts récursivement, vous pouvez donc organiser les règles en sous-répertoires comme `frontend/` ou `backend/` :203Placez les fichiers markdown dans le répertoire `.claude/rules/` de votre projet. Chaque fichier doit couvrir un sujet, avec un nom de fichier descriptif comme `testing.md` ou `api-design.md`. Tous les fichiers `.md` sont découverts récursivement, vous pouvez donc organiser les règles en sous-répertoires comme `frontend/` ou `backend/` :

180 204 


190 214 

191Les règles sans [frontmatter `paths`](#path-specific-rules) sont chargées au lancement avec la même priorité que `.claude/CLAUDE.md`.215Les règles sans [frontmatter `paths`](#path-specific-rules) sont chargées au lancement avec la même priorité que `.claude/CLAUDE.md`.

192 216 

193#### Règles spécifiques au chemin217<h4 id="path-specific-rules">

218 Règles spécifiques au chemin

219</h4>

194 220 

195Les règles peuvent être limitées à des fichiers spécifiques en utilisant le frontmatter YAML avec le champ `paths`. Ces règles conditionnelles ne s'appliquent que quand Claude travaille avec des fichiers correspondant aux modèles spécifiés.221Les règles peuvent être limitées à des fichiers spécifiques en utilisant le frontmatter YAML avec le champ `paths`. Ces règles conditionnelles ne s'appliquent que quand Claude travaille avec des fichiers correspondant aux modèles spécifiés.

196 222 


229---255---

230```256```

231 257 

232#### Partager les règles entre les projets avec des liens symboliques258<h4 id="share-rules-across-projects-with-symlinks">

259 Partager les règles entre les projets avec des liens symboliques

260</h4>

233 261 

234Le répertoire `.claude/rules/` supporte les liens symboliques, vous pouvez donc maintenir un ensemble partagé de règles et les lier dans plusieurs projets. Les liens symboliques sont résolus et chargés normalement, et les liens symboliques circulaires sont détectés et gérés correctement.262Le répertoire `.claude/rules/` supporte les liens symboliques, vous pouvez donc maintenir un ensemble partagé de règles et les lier dans plusieurs projets. Les liens symboliques sont résolus et chargés normalement, et les liens symboliques circulaires sont détectés et gérés correctement.

235 263 


240ln -s ~/company-standards/security.md .claude/rules/security.md268ln -s ~/company-standards/security.md .claude/rules/security.md

241```269```

242 270 

243#### Règles au niveau utilisateur271<h4 id="user-level-rules">

272 Règles au niveau utilisateur

273</h4>

244 274 

245Les règles personnelles dans `~/.claude/rules/` s'appliquent à chaque projet sur votre machine. Utilisez-les pour les préférences qui ne sont pas spécifiques au projet :275Les règles personnelles dans `~/.claude/rules/` s'appliquent à chaque projet sur votre machine. Utilisez-les pour les préférences qui ne sont pas spécifiques au projet :

246 276 


252 282 

253Les règles au niveau utilisateur sont chargées avant les règles du projet, donnant aux règles du projet une priorité plus élevée.283Les règles au niveau utilisateur sont chargées avant les règles du projet, donnant aux règles du projet une priorité plus élevée.

254 284 

255### Gérer CLAUDE.md pour les grandes équipes285<h3 id="manage-claude-md-for-large-teams">

286 Gérer CLAUDE.md pour les grandes équipes

287</h3>

256 288 

257Pour les organisations déployant Claude Code dans les équipes, vous pouvez centraliser les instructions et contrôler quels fichiers CLAUDE.md sont chargés.289Pour les organisations déployant Claude Code dans les équipes, vous pouvez centraliser les instructions et contrôler quels fichiers CLAUDE.md sont chargés.

258 290 

259#### Déployer un CLAUDE.md à l'échelle de l'organisation291<h4 id="deploy-organization-wide-claude-md">

292 Déployer un CLAUDE.md à l'échelle de l'organisation

293</h4>

260 294 

261Les organisations peuvent déployer un CLAUDE.md géré centralement qui s'applique à tous les utilisateurs sur une machine. Ce fichier ne peut pas être exclu par les paramètres individuels.295Les organisations peuvent déployer un CLAUDE.md géré centralement qui s'applique à tous les utilisateurs sur une machine. Ce fichier ne peut pas être exclu par les paramètres individuels.

262 296 


302 336 

303Les règles de paramètres sont appliquées par le client indépendamment de ce que Claude décide de faire. Les instructions CLAUDE.md façonnent le comportement de Claude mais ne constituent pas une couche d'application stricte.337Les règles de paramètres sont appliquées par le client indépendamment de ce que Claude décide de faire. Les instructions CLAUDE.md façonnent le comportement de Claude mais ne constituent pas une couche d'application stricte.

304 338 

305#### Exclure des fichiers CLAUDE.md spécifiques339<h4 id="exclude-specific-claude-md-files">

340 Exclure des fichiers CLAUDE.md spécifiques

341</h4>

306 342 

307Dans les grands monorepos, les fichiers CLAUDE.md ancêtres peuvent contenir des instructions qui ne sont pas pertinentes pour votre travail. Le paramètre `claudeMdExcludes` vous permet d'ignorer des fichiers spécifiques par chemin ou modèle glob.343Dans les grands monorepos, les fichiers CLAUDE.md ancêtres peuvent contenir des instructions qui ne sont pas pertinentes pour votre travail. Le paramètre `claudeMdExcludes` vous permet d'ignorer des fichiers spécifiques par chemin ou modèle glob.

308 344 


321 357 

322Les fichiers CLAUDE.md de politique gérée ne peuvent pas être exclus. Cela garantit que les instructions à l'échelle de l'organisation s'appliquent toujours indépendamment des paramètres individuels.358Les fichiers CLAUDE.md de politique gérée ne peuvent pas être exclus. Cela garantit que les instructions à l'échelle de l'organisation s'appliquent toujours indépendamment des paramètres individuels.

323 359 

324## Mémoire automatique360<h2 id="auto-memory">

361 Mémoire automatique

362</h2>

325 363 

326La mémoire automatique permet à Claude d'accumuler des connaissances d'une session à l'autre sans que vous n'écriviez rien. Claude enregistre des notes pour lui-même au fur et à mesure qu'il travaille : commandes de compilation, insights de débogage, notes d'architecture, préférences de style de code et habitudes de flux de travail. Claude ne sauvegarde pas quelque chose à chaque session. Il décide ce qui vaut la peine d'être mémorisé en fonction de si l'information serait utile dans une conversation future.364La mémoire automatique permet à Claude d'accumuler des connaissances d'une session à l'autre sans que vous n'écriviez rien. Claude enregistre des notes pour lui-même au fur et à mesure qu'il travaille : commandes de compilation, insights de débogage, notes d'architecture, préférences de style de code et habitudes de flux de travail. Claude ne sauvegarde pas quelque chose à chaque session. Il décide ce qui vaut la peine d'être mémorisé en fonction de si l'information serait utile dans une conversation future.

327 365 


329 La mémoire automatique nécessite Claude Code v2.1.59 ou ultérieur. Vérifiez votre version avec `claude --version`.367 La mémoire automatique nécessite Claude Code v2.1.59 ou ultérieur. Vérifiez votre version avec `claude --version`.

330</Note>368</Note>

331 369 

332### Activer ou désactiver la mémoire automatique370<h3 id="enable-or-disable-auto-memory">

371 Activer ou désactiver la mémoire automatique

372</h3>

333 373 

334La mémoire automatique est activée par défaut. Pour la basculer, ouvrez `/memory` dans une session et utilisez le bouton bascule de mémoire automatique, ou définissez `autoMemoryEnabled` dans vos paramètres de projet :374La mémoire automatique est activée par défaut. Pour la basculer, ouvrez `/memory` dans une session et utilisez le bouton bascule de mémoire automatique, ou définissez `autoMemoryEnabled` dans vos paramètres de projet :

335 375 


341 381 

342Pour désactiver la mémoire automatique via une variable d'environnement, définissez `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1`.382Pour désactiver la mémoire automatique via une variable d'environnement, définissez `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1`.

343 383 

344### Emplacement de stockage384<h3 id="storage-location">

385 Emplacement de stockage

386</h3>

345 387 

346Chaque projet obtient son propre répertoire de mémoire à `~/.claude/projects/<project>/memory/`. Le chemin `<project>` est dérivé du référentiel git, donc tous les worktrees et sous-répertoires dans le même référentiel partagent un répertoire de mémoire automatique. En dehors d'un référentiel git, la racine du projet est utilisée à la place.388Chaque projet obtient son propre répertoire de mémoire à `~/.claude/projects/<project>/memory/`. Le chemin `<project>` est dérivé du référentiel git, donc tous les worktrees et sous-répertoires dans le même référentiel partagent un répertoire de mémoire automatique. En dehors d'un référentiel git, la racine du projet est utilisée à la place.

347 389 


369 411 

370La mémoire automatique est locale à la machine. Tous les worktrees et sous-répertoires dans le même référentiel git partagent un répertoire de mémoire automatique. Les fichiers ne sont pas partagés entre les machines ou les environnements cloud.412La mémoire automatique est locale à la machine. Tous les worktrees et sous-répertoires dans le même référentiel git partagent un répertoire de mémoire automatique. Les fichiers ne sont pas partagés entre les machines ou les environnements cloud.

371 413 

372### Comment ça marche414<h3 id="how-it-works">

415 Comment ça marche

416</h3>

373 417 

374Les 200 premières lignes de `MEMORY.md`, ou les premiers 25 KB, selon ce qui vient en premier, sont chargés au début de chaque conversation. Le contenu au-delà de ce seuil n'est pas chargé au démarrage de la session. Claude garde `MEMORY.md` concis en déplaçant les notes détaillées dans des fichiers de sujet séparés.418Les 200 premières lignes de `MEMORY.md`, ou les premiers 25 KB, selon ce qui vient en premier, sont chargés au début de chaque conversation. Le contenu au-delà de ce seuil n'est pas chargé au démarrage de la session. Claude garde `MEMORY.md` concis en déplaçant les notes détaillées dans des fichiers de sujet séparés.

375 419 


379 423 

380Claude lit et écrit les fichiers de mémoire pendant votre session. Quand vous voyez « Writing memory » ou « Recalled memory » dans l'interface Claude Code, Claude met activement à jour ou lit à partir de `~/.claude/projects/<project>/memory/`.424Claude lit et écrit les fichiers de mémoire pendant votre session. Quand vous voyez « Writing memory » ou « Recalled memory » dans l'interface Claude Code, Claude met activement à jour ou lit à partir de `~/.claude/projects/<project>/memory/`.

381 425 

382### Auditer et modifier votre mémoire426<h3 id="audit-and-edit-your-memory">

427 Auditer et modifier votre mémoire

428</h3>

383 429 

384Les fichiers de mémoire automatique sont du markdown brut que vous pouvez modifier ou supprimer à tout moment. Exécutez [`/memory`](#view-and-edit-with-memory) pour parcourir et ouvrir les fichiers de mémoire à partir d'une session.430Les fichiers de mémoire automatique sont du markdown brut que vous pouvez modifier ou supprimer à tout moment. Exécutez [`/memory`](#view-and-edit-with-%2Fmemory) pour parcourir et ouvrir les fichiers de mémoire à partir d'une session.

385 431 

386## Afficher et modifier avec `/memory`432<h2 id="view-and-edit-with-/memory">

433 Afficher et modifier avec `/memory`

434</h2>

387 435 

388La commande `/memory` liste tous les fichiers CLAUDE.md, CLAUDE.local.md et rules chargés dans votre session actuelle, vous permet de basculer la mémoire automatique activée ou désactivée, et fournit un lien pour ouvrir le dossier de mémoire automatique. Sélectionnez n'importe quel fichier pour l'ouvrir dans votre éditeur.436La commande `/memory` liste tous les fichiers CLAUDE.md, CLAUDE.local.md et rules chargés dans votre session actuelle, vous permet de basculer la mémoire automatique activée ou désactivée, et fournit un lien pour ouvrir le dossier de mémoire automatique. Sélectionnez n'importe quel fichier pour l'ouvrir dans votre éditeur.

389 437 

390Quand vous demandez à Claude de se souvenir de quelque chose, comme « toujours utiliser pnpm, pas npm » ou « se souvenir que les tests d'API nécessitent une instance Redis locale », Claude l'enregistre dans la mémoire automatique. Pour ajouter des instructions à CLAUDE.md à la place, demandez directement à Claude, comme « ajouter ceci à CLAUDE.md », ou modifiez le fichier vous-même via `/memory`.438Quand vous demandez à Claude de se souvenir de quelque chose, comme « toujours utiliser pnpm, pas npm » ou « se souvenir que les tests d'API nécessitent une instance Redis locale », Claude l'enregistre dans la mémoire automatique. Pour ajouter des instructions à CLAUDE.md à la place, demandez directement à Claude, comme « ajouter ceci à CLAUDE.md », ou modifiez le fichier vous-même via `/memory`.

391 439 

392## Dépanner les problèmes de mémoire440<h2 id="troubleshoot-memory-issues">

441 Dépanner les problèmes de mémoire

442</h2>

393 443 

394Ce sont les problèmes les plus courants avec CLAUDE.md et la mémoire automatique, ainsi que les étapes pour les déboguer.444Ce sont les problèmes les plus courants avec CLAUDE.md et la mémoire automatique, ainsi que les étapes pour les déboguer.

395 445 

396### Claude ne suit pas mon CLAUDE.md446<h3 id="claude-isn’t-following-my-claude-md">

447 Claude ne suit pas mon CLAUDE.md

448</h3>

397 449 

398Le contenu CLAUDE.md est livré en tant que message utilisateur après l'invite système, pas en tant que partie de l'invite système elle-même. Claude le lit et essaie de le suivre, mais il n'y a aucune garantie de conformité stricte, surtout pour les instructions vagues ou conflictuelles.450Le contenu CLAUDE.md est livré en tant que message utilisateur après l'invite système, pas en tant que partie de l'invite système elle-même. Claude le lit et essaie de le suivre, mais il n'y a aucune garantie de conformité stricte, surtout pour les instructions vagues ou conflictuelles.

399 451 


412 Utilisez le [hook `InstructionsLoaded`](/fr/hooks#instructionsloaded) pour enregistrer exactement quels fichiers d'instructions sont chargés, quand ils se chargent et pourquoi. C'est utile pour déboguer les règles spécifiques au chemin ou les fichiers chargés tardivement dans les sous-répertoires.464 Utilisez le [hook `InstructionsLoaded`](/fr/hooks#instructionsloaded) pour enregistrer exactement quels fichiers d'instructions sont chargés, quand ils se chargent et pourquoi. C'est utile pour déboguer les règles spécifiques au chemin ou les fichiers chargés tardivement dans les sous-répertoires.

413</Tip>465</Tip>

414 466 

415### Je ne sais pas ce que la mémoire automatique a enregistré467<h3 id="i-don’t-know-what-auto-memory-saved">

468 Je ne sais pas ce que la mémoire automatique a enregistré

469</h3>

416 470 

417Exécutez `/memory` et sélectionnez le dossier de mémoire automatique pour parcourir ce que Claude a enregistré. Tout est du markdown brut que vous pouvez lire, modifier ou supprimer.471Exécutez `/memory` et sélectionnez le dossier de mémoire automatique pour parcourir ce que Claude a enregistré. Tout est du markdown brut que vous pouvez lire, modifier ou supprimer.

418 472 

419### Mon CLAUDE.md est trop volumineux473<h3 id="my-claude-md-is-too-large">

474 Mon CLAUDE.md est trop volumineux

475</h3>

420 476 

421Les fichiers de plus de 200 lignes consomment plus de contexte et peuvent réduire l'adhérence. Utilisez les [règles spécifiques au chemin](#path-specific-rules) pour charger les instructions uniquement lorsque Claude travaille avec des fichiers correspondants, ou réduisez le contenu qui n'est pas nécessaire dans chaque session. La division en [imports `@path`](#import-additional-files) aide à l'organisation mais ne réduit pas le contexte, puisque les fichiers importés se chargent au lancement.477Les fichiers de plus de 200 lignes consomment plus de contexte et peuvent réduire l'adhérence. Utilisez les [règles spécifiques au chemin](#path-specific-rules) pour charger les instructions uniquement lorsque Claude travaille avec des fichiers correspondants, ou réduisez le contenu qui n'est pas nécessaire dans chaque session. La division en [imports `@path`](#import-additional-files) aide à l'organisation mais ne réduit pas le contexte, puisque les fichiers importés se chargent au lancement.

422 478 

423### Les instructions semblent perdues après `/compact`479<h3 id="instructions-seem-lost-after-/compact">

480 Les instructions semblent perdues après `/compact`

481</h3>

424 482 

425CLAUDE.md à la racine du projet survit à la compaction : après `/compact`, Claude relit votre CLAUDE.md à partir du disque et le réinjecte à nouveau dans la session. Les fichiers CLAUDE.md imbriqués dans les sous-répertoires ne sont pas réinjectés automatiquement ; ils se rechargent la prochaine fois que Claude lit un fichier de ce sous-répertoire.483CLAUDE.md à la racine du projet survit à la compaction : après `/compact`, Claude relit votre CLAUDE.md à partir du disque et le réinjecte à nouveau dans la session. Les fichiers CLAUDE.md imbriqués dans les sous-répertoires ne sont pas réinjectés automatiquement ; ils se rechargent la prochaine fois que Claude lit un fichier de ce sous-répertoire.

426 484 


428 486 

429Consultez [Écrire des instructions efficaces](#write-effective-instructions) pour des conseils sur la taille, la structure et la spécificité.487Consultez [Écrire des instructions efficaces](#write-effective-instructions) pour des conseils sur la taille, la structure et la spécificité.

430 488 

431## Ressources connexes489<h2 id="related-resources">

490 Ressources connexes

491</h2>

432 492 

433* [Déboguer votre configuration](/fr/debug-your-config) : diagnostiquez pourquoi CLAUDE.md ou les paramètres ne prennent pas effet493* [Déboguer votre configuration](/fr/debug-your-config) : diagnostiquez pourquoi CLAUDE.md ou les paramètres ne prennent pas effet

434* [Skills](/fr/skills) : empaquetez les flux de travail répétables qui se chargent à la demande494* [Skills](/fr/skills) : empaquetez les flux de travail répétables qui se chargent à la demande

Details

6 6 

7> Découvrez comment configurer Claude Code via Microsoft Foundry, y compris la configuration, les paramètres et la résolution des problèmes.7> Découvrez comment configurer Claude Code via Microsoft Foundry, y compris la configuration, les paramètres et la résolution des problèmes.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

79<ContactSalesCard surface="foundry" />

80 

9<h2 id="prerequisites">81<h2 id="prerequisites">

10 Conditions préalables82 Conditions préalables

11</h2>83</h2>


17* Azure CLI installé et configuré (facultatif - nécessaire uniquement si vous n'avez pas d'autre mécanisme pour obtenir les identifiants)89* Azure CLI installé et configuré (facultatif - nécessaire uniquement si vous n'avez pas d'autre mécanisme pour obtenir les identifiants)

18 90 

19<Note>91<Note>

20 Si vous déployez Claude Code pour plusieurs utilisateurs, [épinglez vos versions de modèle](#4-pin-model-versions) pour éviter les ruptures lorsqu'Anthropic publie de nouveaux modèles.92 Si vous déployez Claude Code pour plusieurs utilisateurs, [épinglez vos versions de modèle](#4-pin-model-versions) avant le déploiement.

21</Note>93</Note>

22 94 

23<h2 id="setup">95<h2 id="setup">


90</h3>162</h3>

91 163 

92<Warning>164<Warning>

93 Épinglez des versions de modèle spécifiques pour chaque déploiement. Si vous utilisez des alias de modèle (`sonnet`, `opus`, `haiku`) sans épingler, Claude Code peut tenter d'utiliser une version de modèle plus récente qui n'est pas disponible dans votre compte Foundry, ce qui casse les utilisateurs existants lorsqu'Anthropic publie des mises à jour. Lorsque vous créez des déploiements Azure, sélectionnez une version de modèle spécifique plutôt que « mise à jour automatique vers la dernière version ».165 Épinglez des versions de modèle spécifiques pour chaque déploiement. Sans épinglage, les alias de modèle tels que `sonnet` et `opus` se résolvent à la valeur par défaut intégrée de Claude Code pour Foundry, qui peut être en retard par rapport à la version la plus récente et peut ne pas encore être disponible dans votre compte. Foundry n'a pas de vérification de modèle au démarrage, donc les demandes échouent lorsque la valeur par défaut n'est pas disponible. Lorsque vous créez des déploiements Azure, sélectionnez une version de modèle spécifique plutôt que « mise à jour automatique vers la dernière version ».

94</Warning>166</Warning>

95 167 

96Définissez les variables de modèle pour correspondre aux noms de déploiement que vous avez créés à l'étape 1.168Définissez les variables de modèle pour correspondre aux noms de déploiement que vous avez créés à l'étape 1.

model-config.md +153 −31

Details

32| Alias de modèle | Comportement |32| Alias de modèle | Comportement |

33| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |33| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

34| **`default`** | Valeur spéciale qui efface tout remplacement de modèle et revient au modèle recommandé pour votre type de compte. N'est pas en soi un alias de modèle |34| **`default`** | Valeur spéciale qui efface tout remplacement de modèle et revient au modèle recommandé pour votre type de compte. N'est pas en soi un alias de modèle |

35| **`best`** | Utilise le modèle disponible le plus capable, actuellement équivalent à `opus` |35| **`best`** | Utilise Fable 5 votre organisation y a accès, sinon le dernier modèle Opus |

36| **`fable`** | Utilise Claude Fable 5 pour vos tâches les plus difficiles et les plus longues |

36| **`sonnet`** | Utilise le dernier modèle Sonnet pour les tâches de codage quotidiennes |37| **`sonnet`** | Utilise le dernier modèle Sonnet pour les tâches de codage quotidiennes |

37| **`opus`** | Utilise le dernier modèle Opus pour les tâches de raisonnement complexe |38| **`opus`** | Utilise le dernier modèle Opus pour les tâches de raisonnement complexe |

38| **`haiku`** | Utilise le modèle Haiku rapide et efficace pour les tâches simples |39| **`haiku`** | Utilise le modèle Haiku rapide et efficace pour les tâches simples |


48 Opus 4.8 nécessite Claude Code v2.1.154 ou version ultérieure. Exécutez `claude update` pour mettre à niveau.49 Opus 4.8 nécessite Claude Code v2.1.154 ou version ultérieure. Exécutez `claude update` pour mettre à niveau.

49</Note>50</Note>

50 51 

52<h3 id="work-with-fable-5">

53 Travailler avec Fable 5

54</h3>

55 

56[Claude Fable 5](https://platform.claude.com/docs/fr/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) est le modèle le plus capable dans Claude Code, adapté aux tâches plus grandes qu'une seule séance. Il soutient les sessions autonomes longues, enquête avant d'agir et vérifie son travail plus souvent que les modèles plus petits.

57 

58Fable 5 n'est pas le modèle par défaut. Sélectionnez-le avec `/model fable`. Les demandes que ses classificateurs de sécurité signalent, le plus souvent dans les domaines de la cybersécurité et de la biologie, déclenchent un [basculement automatique du modèle](#automatic-model-fallback).

59 

60Pour tirer le meilleur parti de Fable 5 :

61 

62* **Décrivez le résultat, pas les étapes** : donnez-lui le résultat que vous voulez et laissez-le planifier le chemin. Pour le maintenir en fonctionnement jusqu'à ce que ce résultat soit atteint, [définissez un objectif](/fr/goal).

63* **Donnez-lui des problèmes ambigus** : les enquêtes sur les causes profondes, le débogage des pannes et les décisions architecturales sont les endroits où l'enquête et la vérification supplémentaires sont payantes.

64* **Ignorez les rappels de vérification** : il vérifie son propre travail avec moins d'invites, donc les rappels de tester ou de vérifier sont généralement inutiles.

65* **Dimensionnez les tâches plus grandes** : donnez-lui du travail que vous diviseriez normalement en morceaux. Il maintient les sessions longues sans perdre le fil.

66 

67<Note>

68 Fable 5 nécessite Claude Code v2.1.170 ou version ultérieure. Les versions antérieures n'affichent pas Fable 5 dans le sélecteur de modèle et ne peuvent pas le sélectionner. Exécutez `claude update` pour mettre à niveau. Fable 5 n'est pas disponible sous [rétention de données zéro](/fr/zero-data-retention), où le sélecteur `/model` l'omet ou l'affiche désactivé.

69</Note>

70 

51<h3 id="setting-your-model">71<h3 id="setting-your-model">

52 Définir votre modèle72 Définir votre modèle

53</h3>73</h3>


101 121 

102Les administrateurs d'entreprise peuvent utiliser `availableModels` dans les [paramètres gérés ou de politique](/fr/settings#settings-files) pour restreindre les modèles que les utilisateurs peuvent sélectionner.122Les administrateurs d'entreprise peuvent utiliser `availableModels` dans les [paramètres gérés ou de politique](/fr/settings#settings-files) pour restreindre les modèles que les utilisateurs peuvent sélectionner.

103 123 

104Lorsque `availableModels` est défini, les utilisateurs ne peuvent pas basculer vers des modèles ne figurant pas dans la liste via `/model`, le drapeau `--model`, ou la variable d'environnement `ANTHROPIC_MODEL`.124Lorsque `availableModels` est défini, la liste d'autorisation s'applique à chaque surface un utilisateur peut nommer un modèle :

125 

126* **Modèle de session principale** : `/model`, le drapeau `--model`, et la variable d'environnement `ANTHROPIC_MODEL`

127* **Résolution d'alias** : {/* min-version: 2.1.176 */}les variables d'environnement `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, et `ANTHROPIC_DEFAULT_FABLE_MODEL` ne peuvent pas rediriger un alias autorisé vers un modèle en dehors de la liste

128* **Mode rapide** : {/* min-version: 2.1.176 */}`/fast` refuse de basculer lorsque cela changerait implicitement vers un modèle Opus en dehors de la liste, avec le message « is not in your organization's allowed models »

129* **Modèles de sous-agent** : le champ `model` dans le frontmatter du [sous-agent](/fr/sub-agents#choose-a-model), le paramètre `model` de l'outil Agent, le sélecteur de modèle dans `/agents`, et `CLAUDE_CODE_SUBAGENT_MODEL`

130* **Modèle de conseiller** : le paramètre [`advisorModel`](/fr/advisor) configuré

131* **Chaînes de secours** : les éléments d'une [chaîne de modèle de secours](#fallback-model-chains) en dehors de la liste sont supprimés

132 

133Le basculement vers un modèle bloqué avec `/model` est rejeté avec une erreur, tandis qu'un drapeau `--model` bloqué ou une valeur `ANTHROPIC_MODEL` est remplacée au démarrage par un avertissement nommant à la fois les modèles demandés et substitués, et la session démarre sur le modèle par défaut. Un remplacement de sous-agent ou de conseiller bloqué revient au modèle hérité ou par défaut plutôt que d'échouer la demande.

105 134 

106```json theme={null}135```json theme={null}

107{136{


113 Comportement du modèle par défaut142 Comportement du modèle par défaut

114</h3>143</h3>

115 144 

116L'option Par défaut dans le sélecteur de modèle n'est pas affectée par `availableModels`. Elle reste toujours disponible et représente la valeur par défaut du système [basée sur le niveau d'abonnement de l'utilisateur](#default-model-setting).145Par défaut, l'option Par défaut dans le sélecteur de modèle n'est pas affectée par `availableModels`. Elle reste disponible et représente la valeur par défaut du système [basée sur le niveau d'abonnement de l'utilisateur](#default-model-setting).

117 146 

118Même avec `availableModels: []`, les utilisateurs peuvent toujours utiliser Claude Code avec le modèle Par défaut pour leur niveau.147Pour étendre la liste d'autorisation à l'option Par défaut, définissez `enforceAvailableModels` sur `true` dans les paramètres gérés ou de politique aux côtés d'une liste `availableModels` non vide. Lorsque la valeur par défaut du niveau n'est pas dans la liste d'autorisation, Par défaut se résout à la première entrée autorisée au lieu de la valeur par défaut du niveau. Cela nécessite Claude Code v2.1.175 ou ultérieur.

148 

149Un tableau `availableModels` vide n'engage jamais l'application. Même avec `availableModels: []`, les utilisateurs peuvent toujours utiliser Claude Code avec le modèle Par défaut pour leur niveau indépendamment de `enforceAvailableModels`.

119 150 

120<h3 id="control-the-model-users-run-on">151<h3 id="control-the-model-users-run-on">

121 Contrôler le modèle sur lequel les utilisateurs s'exécutent152 Contrôler le modèle sur lequel les utilisateurs s'exécutent


123 154 

124Le paramètre `model` est une sélection initiale, pas une application. Il définit quel modèle est actif au démarrage d'une session, mais les utilisateurs peuvent toujours ouvrir `/model` et choisir Par défaut, qui se résout au système par défaut pour leur niveau indépendamment de ce que `model` est défini.155Le paramètre `model` est une sélection initiale, pas une application. Il définit quel modèle est actif au démarrage d'une session, mais les utilisateurs peuvent toujours ouvrir `/model` et choisir Par défaut, qui se résout au système par défaut pour leur niveau indépendamment de ce que `model` est défini.

125 156 

126Pour contrôler complètement l'expérience du modèle, combinez trois paramètres :157Pour contrôler complètement l'expérience du modèle, combinez ces paramètres :

127 158 

128* **`availableModels`** : restreint les modèles nommés vers lesquels les utilisateurs peuvent basculer159* **`availableModels`** : restreint les modèles nommés vers lesquels les utilisateurs peuvent basculer

160* **`enforceAvailableModels`** : étend la liste d'autorisation `availableModels` à l'option Par défaut, de sorte que Par défaut ne peut pas se résoudre à un modèle en dehors de la liste

129* **`model`** : définit la sélection de modèle initiale au démarrage d'une session161* **`model`** : définit la sélection de modèle initiale au démarrage d'une session

130* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** : contrôlent ce vers quoi l'option Par défaut et les alias `sonnet`, `opus` et `haiku` se résolvent162* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`** : contrôlent ce vers quoi l'option Par défaut et les alias `sonnet`, `opus`, `haiku` et `fable` se résolvent

131 163 

132Cet exemple démarre les utilisateurs sur Sonnet 4.5, limite le sélecteur à Sonnet et Haiku, et épingle Par défaut pour se résoudre à Sonnet 4.5 plutôt qu'à la dernière version :164Cet exemple démarre les utilisateurs sur Sonnet 4.5, limite le sélecteur à Sonnet et Haiku, et garantit que Par défaut se résout à un modèle sur la liste d'autorisation plutôt qu'à la valeur par défaut du niveau :

133 165 

134```json theme={null}166```json theme={null}

135{167{

136 "model": "claude-sonnet-4-5",168 "model": "claude-sonnet-4-5",

137 "availableModels": ["claude-sonnet-4-5", "haiku"],169 "availableModels": ["claude-sonnet-4-5", "haiku"],

170 "enforceAvailableModels": true,

138 "env": {171 "env": {

139 "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5"172 "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5"

140 }173 }

141}174}

142```175```

143 176 

144Sans le bloc `env`, un utilisateur qui sélectionne Par défaut dans le sélecteur obtiendrait la dernière version de Sonnet, contournant l'épinglage de version dans `model` et `availableModels`.177Sans `enforceAvailableModels` ou le bloc `env`, un utilisateur qui sélectionne Par défaut dans le sélecteur obtiendrait la dernière version pour son niveau, contournant l'épinglage de version dans `model` et `availableModels`. Les deux paramètres couvrent des portées différentes : `enforceAvailableModels` fait que Par défaut obéit à la liste d'autorisation, tandis que le bloc `env` épingle la version à laquelle un alias autorisé tel que `sonnet` se résout. Utilisez `enforceAvailableModels` seul lorsque restreindre les familles de modèles est suffisant ; ajoutez le bloc `env` lorsque vous devez également épingler une version spécifique.

145 178 

146<h3 id="merge-behavior">179<h3 id="merge-behavior">

147 Comportement de fusion180 Comportement de fusion

148</h3>181</h3>

149 182 

150Lorsque `availableModels` est défini à plusieurs niveaux, comme les paramètres utilisateur et les paramètres de projet, les tableaux sont fusionnés et dédupliqués. Pour appliquer une liste d'autorisation stricte, définissez `availableModels` dans les paramètres gérés ou de politique qui ont la priorité la plus élevée.183Lorsque `availableModels` est défini dans les paramètres utilisateur, projet et local uniquement, les tableaux sont fusionnés et dédupliqués à travers ces niveaux.

184 

185Lorsque `availableModels` est défini dans les paramètres gérés ou de politique, la valeur gérée ou de politique remplace entièrement le résultat fusionné : les entrées ajoutées dans les paramètres utilisateur ou projet ne peuvent pas l'élargir. Les paramètres gérés et de politique remplacent les valeurs de priorité inférieure pour `enforceAvailableModels` de la même manière. À partir de Claude Code v2.1.175, c'est la seule façon d'appliquer une liste d'autorisation stricte ; les versions antérieures fusionnent la liste gérée avec les entrées de priorité inférieure.

151 186 

152<h3 id="mantle-model-ids">187<h3 id="mantle-model-ids">

153 ID de modèle Mantle188 ID de modèle Mantle

154</h3>189</h3>

155 190 

156Lorsque le [point de terminaison Bedrock Mantle](/fr/amazon-bedrock#use-the-mantle-endpoint) est activé, les entrées dans `availableModels` qui commencent par `anthropic.` sont ajoutées au sélecteur `/model` en tant qu'options personnalisées et acheminées vers le point de terminaison Mantle. Ceci est une exception à la correspondance d'alias uniquement décrite dans [Épingler les modèles pour les déploiements tiers](#pin-models-for-third-party-deployments). Le paramètre restreint toujours le sélecteur aux entrées listées, donc incluez les alias standard aux côtés de tous les ID Mantle.191Lorsque le [point de terminaison Bedrock Mantle](/fr/amazon-bedrock#use-the-mantle-endpoint) est activé, les entrées dans `availableModels` qui commencent par `anthropic.` sont ajoutées au sélecteur `/model` en tant qu'options personnalisées et acheminées vers le point de terminaison Mantle. Le paramètre restreint toujours le sélecteur aux entrées listées, donc incluez les alias standard aux côtés de tous les ID Mantle.

157 192 

158<h2 id="special-model-behavior">193<h2 id="special-model-behavior">

159 Comportement spécial du modèle194 Comportement spécial du modèle


172 207 

173Enterprise pay-as-you-go signifie une organisation Enterprise facturée à l'utilisation plutôt que par siège d'abonnement.208Enterprise pay-as-you-go signifie une organisation Enterprise facturée à l'utilisation plutôt que par siège d'abonnement.

174 209 

175Claude Code peut automatiquement revenir à Sonnet si vous atteignez un seuil d'utilisation avec Opus.210Fable 5 n'est le modèle par défaut sur aucun type de compte. Les sessions utilisent Fable 5 uniquement après que vous l'ayez choisi, avec `/model fable`, un paramètre `model`, ou l'alias `best` où Fable 5 est disponible. Le choisir avec `/model` l'enregistre comme modèle sélectionné dans vos paramètres utilisateur, de sorte que les sessions ultérieures commencent sur Fable 5 jusqu'à ce que vous changiez de modèles.

176 211 

177<h3 id="opusplan-model-setting">212<h3 id="opusplan-model-setting">

178 Paramètre de modèle `opusplan`213 Paramètre de modèle `opusplan`


185 220 

186Cela vous donne le meilleur des deux mondes : le raisonnement supérieur d'Opus pour la planification et l'efficacité de Sonnet pour l'exécution.221Cela vous donne le meilleur des deux mondes : le raisonnement supérieur d'Opus pour la planification et l'efficacité de Sonnet pour l'exécution.

187 222 

188La phase Opus en mode plan s'exécute avec la fenêtre de contexte standard de 200 K. La mise à niveau automatique 1M décrite dans [Contexte étendu](#extended-context) s'applique au paramètre de modèle `opus` et ne s'étend pas à `opusplan`.223La phase Opus en mode plan utilise la même fenêtre de contexte que le paramètre de modèle `opus`. Sur les niveaux d'abonnement Opus est [automatiquement mis à niveau vers un contexte 1M](#extended-context), `opusplan` reçoit la mise à niveau en mode plan également. Pour forcer un contexte 1M pour les deux phases lorsque vous n'êtes pas sur un niveau de mise à niveau automatique, définissez le modèle sur `opusplan[1m]`.

224 

225Lorsque [`availableModels`](#restrict-model-selection) exclut Opus, `opusplan` reste sur Sonnet en mode plan au lieu de basculer. De même, une session Haiku qui se mettrait normalement à niveau vers Sonnet en mode plan reste sur Haiku lorsque Sonnet est exclu.

226 

227Pour une approche hybride où Claude décide en cours de tâche quand consulter un deuxième modèle plutôt que de basculer à la limite du plan, voir l'[outil advisor](/fr/advisor).

228 

229<h3 id="fallback-model-chains">

230 Chaînes de modèles de secours

231</h3>

232 

233Lorsque le modèle principal est surchargé, indisponible ou retourne une autre erreur serveur non renouvelable, Claude Code peut basculer vers un modèle de secours au lieu d'échouer la demande. Les erreurs d'authentification, de facturation, de limite de débit, de taille de demande et de transport ne déclenchent jamais un basculement ; celles-ci suivent leur gestion normale des tentatives et des erreurs.

234 

235Configurez un ou plusieurs modèles de secours et Claude Code les essaie dans l'ordre, affichant un avis lors du basculement. Le basculement dure uniquement pour le tour actuel, de sorte que votre message suivant essaie d'abord le modèle principal à nouveau. Les chaînes sont limitées à trois modèles après suppression des doublons, et les entrées supplémentaires sont ignorées.

236 

237Définissez une chaîne pour une session avec le drapeau `--fallback-model`, qui accepte une liste séparée par des virgules :

238 

239```bash theme={null}

240claude --fallback-model sonnet,haiku

241```

242 

243Pour persister une chaîne entre les sessions, définissez `fallbackModel` dans [paramètres](/fr/settings) comme un tableau :

244 

245```json theme={null}

246{

247 "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]

248}

249```

250 

251Le drapeau `--fallback-model` prend la priorité sur le paramètre `fallbackModel`. Chaque élément accepte un nom de modèle ou un alias, et `"default"` se développe vers le modèle par défaut.

252 

253Deux cas entraînent le saut d'un élément :

254 

255* **Modèle indisponible** : un modèle qui ne peut pas être atteint, comme un modèle retiré épinglé dans les paramètres, est ignoré et Claude Code continue vers l'élément suivant.

256* **En dehors de la liste d'autorisation** : un élément non autorisé par [`availableModels`](#restrict-model-selection) est supprimé lors de la lecture de la chaîne et n'est jamais essayé.

257 

258<h3 id="automatic-model-fallback">

259 Basculement automatique du modèle

260</h3>

261 

262Cette section couvre le basculement basé sur le contenu de Fable 5. Pour le basculement basé sur la disponibilité lorsqu'un modèle est surchargé ou indisponible, voir [Chaînes de modèles de secours](#fallback-model-chains).

263 

264Fable 5 s'exécute avec des classificateurs de sécurité pour le contenu de cybersécurité et de biologie. Lorsqu'un classificateur signale une demande, Claude Code réexécute cette demande sur le modèle Opus par défaut et affiche un avis dans la transcription : Opus 4.8 sur l'API Anthropic et les déploiements de [passerelle LLM](/fr/llm-gateway), ou Opus 4.7 sur [Claude Platform sur AWS](/fr/claude-platform-on-aws).

265 

266La session continue ensuite sur ce modèle Opus. Pour revenir à Fable 5, exécutez `/model fable`.

267 

268<h4 id="check-what-triggered-fallback">

269 Vérifier ce qui a déclenché le basculement

270</h4>

271 

272Le basculement peut se déclencher sur la première demande d'une session, avant que vous n'envoyiez quelque chose d'inhabituel, car la première demande porte le contexte de l'espace de travail tel que votre contenu CLAUDE.md et l'état git. Un référentiel qui contient du matériel de sécurité ou de biologie peut déclencher le classificateur sur ce contexte seul.

273 

274Pour vérifier si les personnalisations sont le déclencheur, démarrez une session avec `claude --safe-mode`, qui désactive les personnalisations telles que CLAUDE.md, les skills, les serveurs MCP et les hooks. L'état git et les noms de répertoires ne sont pas des personnalisations et sont toujours inclus.

275 

276<h4 id="ask-before-switching">

277 Demander avant de basculer

278</h4>

279 

280Pour décider ce qui se passe chaque fois qu'une demande est signalée, plutôt que de basculer automatiquement, exécutez `/config` et désactivez « switch models when a message is flagged ». Une demande signalée met alors la session en pause avec deux options : basculer vers le modèle Opus, ou modifier l'invite et réessayer sur Fable 5.

281 

282Certains cas se comportent différemment :

283 

284* Si les deux modèles signalent la même demande, vous pouvez modifier l'invite et réessayer, ou démarrer une nouvelle session.

285* Sur les sessions mobiles [Claude Code sur le web](/fr/claude-code-on-the-web), la modification et la nouvelle tentative ne sont pas prises en charge. Basculez les modèles, ou continuez la session à partir d'un navigateur de bureau ou de l'application de bureau.

286* En [mode non interactif](/fr/cli-reference#cli-flags) et les intégrations SDK qui ne peuvent pas afficher l'invite, une demande signalée termine le tour avec un refus à la place.

287 

288<h4 id="enable-fallback-on-bedrock-vertex-ai-and-foundry">

289 Activer le basculement sur Bedrock, Vertex AI et Foundry

290</h4>

291 

292Sur [Amazon Bedrock](/fr/amazon-bedrock), [Google Vertex AI](/fr/google-vertex-ai) et [Microsoft Foundry](/fr/microsoft-foundry), les ID de modèle sont spécifiques au fournisseur, de sorte que le basculement automatique ne fonctionne que lorsque Claude Code peut identifier les deux modèles impliqués :

293 

294* Claude Code doit reconnaître le modèle actuel comme Fable 5 : l'ID de modèle contient `claude-fable-5`, correspond à la valeur de `ANTHROPIC_DEFAULT_FABLE_MODEL`, ou est mappé avec [`modelOverrides`](#override-model-ids-per-version).

295* La cible de basculement doit se résoudre en un modèle Opus : la valeur de `ANTHROPIC_DEFAULT_OPUS_MODEL` si définie, sinon une entrée Opus 4.8 dans la liste des modèles du fournisseur.

296 

297Si l'un ou l'autre modèle ne peut pas être identifié, Claude Code ne bascule pas automatiquement. La demande signalée se termine par un message de refus, et vous pouvez basculer les modèles avec [`/model`](#setting-your-model) et réessayer. Pour activer le basculement automatique sur ces fournisseurs, définissez `ANTHROPIC_DEFAULT_FABLE_MODEL` sur votre ID de modèle Fable 5 et `ANTHROPIC_DEFAULT_OPUS_MODEL` sur votre ID de modèle Opus 4.8.

298 

299<h4 id="security-research-and-biology-workloads">

300 Charges de travail de recherche en sécurité et de biologie

301</h4>

302 

303Les charges de travail en sécurité offensive ou en biologie, y compris les tests de pénétration, les exercices Capture the Flag (CTF) et les bases de code adjacentes à la biologie, déclenchent fréquemment le basculement, souvent sur la première demande. Pour un travail de biologie substantiel, attendez-vous à ce que presque toutes les demandes soient réacheminées.

304 

305C'est le routage attendu pour ces domaines, pas un drapeau de compte. Si votre organisation a besoin de la capacité de classe Fable pour ce travail, demandez à votre équipe de compte Anthropic les programmes d'accès de confiance.

189 306 

190<h3 id="adjust-effort-level">307<h3 id="adjust-effort-level">

191 Ajuster le niveau d'effort308 Ajuster le niveau d'effort

192</h3>309</h3>

193 310 

194Les [niveaux d'effort](https://platform.claude.com/docs/fr/build-with-claude/effort) contrôlent le raisonnement adaptatif, qui permet au modèle de décider si et combien réfléchir à chaque étape en fonction de la complexité de la tâche. Un effort inférieur est plus rapide et moins cher pour les tâches simples, tandis qu'un effort supérieur fournit un raisonnement plus profond pour les problèmes complexes.311Les [niveaux d'effort](https://platform.claude.com/docs/en/build-with-claude/effort) contrôlent le raisonnement adaptatif, qui permet au modèle de décider si et combien réfléchir à chaque étape en fonction de la complexité de la tâche. Un effort inférieur est plus rapide et moins cher pour les tâches simples, tandis qu'un effort supérieur fournit un raisonnement plus profond pour les problèmes complexes.

195 312 

196Les niveaux d'effort disponibles dépendent du modèle. Les modèles non listés ici ne prennent pas en charge l'effort :313Les niveaux d'effort disponibles dépendent du modèle. Les modèles non listés ici ne prennent pas en charge l'effort :

197 314 

198| Modèle | Niveaux |315| Modèle | Niveaux |

199| :--------------------- | :-------------------------------------- |316| :--------------------- | :-------------------------------------- |

317| Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |

200| Opus 4.8 et Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |318| Opus 4.8 et Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

201| Opus 4.6 et Sonnet 4.6 | `low`, `medium`, `high`, `max` |319| Opus 4.6 et Sonnet 4.6 | `low`, `medium`, `high`, `max` |

202 320 

203Si vous définissez un niveau que le modèle actif ne prend pas en charge, Claude Code revient au niveau le plus élevé pris en charge au niveau ou en dessous de celui que vous avez défini. Par exemple, `xhigh` s'exécute comme `high` sur Opus 4.6.321Si vous définissez un niveau que le modèle actif ne prend pas en charge, Claude Code revient au niveau le plus élevé pris en charge au niveau ou en dessous de celui que vous avez défini. Par exemple, `xhigh` s'exécute comme `high` sur Opus 4.6.

204 322 

205L'effort par défaut est `high` sur Opus 4.8, Opus 4.6 et Sonnet 4.6, et `xhigh` sur Opus 4.7.323L'effort par défaut est `high` sur Fable 5, Opus 4.8, Opus 4.6 et Sonnet 4.6, et `xhigh` sur Opus 4.7.

206 324 

207Lorsque vous exécutez Opus 4.8 ou Opus 4.7 pour la première fois, Claude Code applique l'effort par défaut de ce modèle même si vous aviez précédemment défini un niveau différent pour un autre modèle : `high` sur Opus 4.8 et `xhigh` sur Opus 4.7. Exécutez `/effort` à nouveau pour choisir un niveau différent après le changement.325Lorsque vous exécutez Fable 5, Opus 4.8 ou Opus 4.7 pour la première fois, Claude Code applique l'effort par défaut de ce modèle même si vous aviez précédemment défini un niveau différent pour un autre modèle : `high` sur Fable 5 et Opus 4.8, et `xhigh` sur Opus 4.7. Exécutez `/effort` à nouveau pour choisir un niveau différent après le changement.

208 326 

209`low`, `medium`, `high` et `xhigh` persistent entre les sessions. `max` fournit le raisonnement le plus profond sans contrainte sur les dépenses en tokens et s'applique à la session actuelle uniquement, sauf lorsqu'il est défini via la variable d'environnement `CLAUDE_CODE_EFFORT_LEVEL`.327`low`, `medium`, `high` et `xhigh` persistent entre les sessions. `max` fournit le raisonnement le plus profond sans contrainte sur les dépenses en tokens et s'applique à la session actuelle uniquement, sauf lorsqu'il est défini via la variable d'environnement `CLAUDE_CODE_EFFORT_LEVEL`.

210 328 


220| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |338| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

221| `low` | Réservez aux tâches courtes, délimitées, sensibles à la latence qui ne sont pas sensibles à l'intelligence |339| `low` | Réservez aux tâches courtes, délimitées, sensibles à la latence qui ne sont pas sensibles à l'intelligence |

222| `medium` | Réduit l'utilisation des tokens pour le travail sensible aux coûts qui peut faire des compromis sur l'intelligence |340| `medium` | Réduit l'utilisation des tokens pour le travail sensible aux coûts qui peut faire des compromis sur l'intelligence |

223| `high` | Équilibre l'utilisation des tokens et l'intelligence. Par défaut sur Opus 4.8, Opus 4.6 et Sonnet 4.6 |341| `high` | Équilibre l'utilisation des tokens et l'intelligence. Par défaut sur Fable 5, Opus 4.8, Opus 4.6 et Sonnet 4.6 |

224| `xhigh` | Raisonnement plus profond avec dépenses en tokens plus élevées. Par défaut sur Opus 4.7 |342| `xhigh` | Raisonnement plus profond avec dépenses en tokens plus élevées. Par défaut sur Opus 4.7 |

225| `max` | Peut améliorer les performances sur les tâches exigeantes mais peut montrer des rendements décroissants et est sujet à la surréflexion. Testez avant d'adopter largement |343| `max` | Peut améliorer les performances sur les tâches exigeantes mais peut montrer des rendements décroissants et est sujet à la surréflexion. Testez avant d'adopter largement |

226| `ultracode` | Un paramètre de Claude Code qui planifie un [flux de travail dynamique](/fr/workflows) pour chaque tâche substantielle avec un raisonnement `xhigh` par message. Session uniquement |344| `ultracode` | Un paramètre de Claude Code qui planifie un [flux de travail dynamique](/fr/workflows) pour chaque tâche substantielle avec un raisonnement `xhigh` par message. Session uniquement |


256 374 

257Le raisonnement adaptatif rend la réflexion optionnelle à chaque étape, donc Claude peut répondre plus rapidement aux invites de routine et réserver une réflexion plus profonde pour les étapes qui en bénéficient. Si vous souhaitez que Claude réfléchisse plus ou moins souvent que le niveau actuel ne le produit, vous pouvez le dire directement dans votre invite ou dans `CLAUDE.md` ; le modèle répond à cette orientation dans son paramètre d'effort.375Le raisonnement adaptatif rend la réflexion optionnelle à chaque étape, donc Claude peut répondre plus rapidement aux invites de routine et réserver une réflexion plus profonde pour les étapes qui en bénéficient. Si vous souhaitez que Claude réfléchisse plus ou moins souvent que le niveau actuel ne le produit, vous pouvez le dire directement dans votre invite ou dans `CLAUDE.md` ; le modèle répond à cette orientation dans son paramètre d'effort.

258 376 

259Opus 4.7 et versions ultérieures utilisent toujours le raisonnement adaptatif. Le mode de budget de réflexion fixe et `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` ne s'appliquent pas à eux.377Opus 4.7 et versions ultérieures utilisent toujours le raisonnement adaptatif, tout comme Fable 5. Le mode de budget de réflexion fixe et `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` ne s'appliquent pas à eux.

260 378 

261Sur Opus 4.6 et Sonnet 4.6, vous pouvez définir `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` pour revenir au budget de réflexion fixe précédent contrôlé par `MAX_THINKING_TOKENS`. Voir [variables d'environnement](/fr/env-vars).379Sur Opus 4.6 et Sonnet 4.6, vous pouvez définir `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` pour revenir au budget de réflexion fixe précédent contrôlé par `MAX_THINKING_TOKENS`. Voir [variables d'environnement](/fr/env-vars).

262 380 


267La réflexion étendue est le raisonnement que Claude émet avant de répondre. Sur les modèles qui prennent en charge le [raisonnement adaptatif](#adjust-effort-level), le niveau d'effort est le contrôle principal de la quantité de réflexion qui se produit ; les paramètres ci-dessous activent ou désactivent la réflexion et contrôlent son affichage.385La réflexion étendue est le raisonnement que Claude émet avant de répondre. Sur les modèles qui prennent en charge le [raisonnement adaptatif](#adjust-effort-level), le niveau d'effort est le contrôle principal de la quantité de réflexion qui se produit ; les paramètres ci-dessous activent ou désactivent la réflexion et contrôlent son affichage.

268 386 

269| Contrôle | Comment le définir |387| Contrôle | Comment le définir |

270| :------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |388| :------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

271| Basculer pour la session actuelle | Appuyez sur `Option+T` sur macOS ou `Alt+T` sur Windows et Linux |389| Basculer pour la session actuelle | Appuyez sur `Option+T` sur macOS ou `Alt+T` sur Windows et Linux |

272| Définir la valeur par défaut globale | Exécutez `/config` et basculez le mode de réflexion. Enregistré en tant que `alwaysThinkingEnabled` dans `~/.claude/settings.json` |390| Définir la valeur par défaut globale | Exécutez `/config` et basculez le mode de réflexion. Enregistré en tant que `alwaysThinkingEnabled` dans `~/.claude/settings.json` |

273| Désactiver indépendamment de l'effort | Définissez [`MAX_THINKING_TOKENS=0`](/fr/env-vars). D'autres valeurs s'appliquent uniquement avec un [budget de réflexion fixe](#adaptive-reasoning-and-fixed-thinking-budgets) |391| Désactiver indépendamment de l'effort | Définissez [`MAX_THINKING_TOKENS=0`](/fr/env-vars), qui désactive la réflexion sur l'API Anthropic sauf sur Fable 5. Sur les [fournisseurs tiers](/fr/third-party-integrations) cela omet le paramètre `thinking` à la place, et les modèles de raisonnement adaptatif peuvent toujours réfléchir. D'autres valeurs s'appliquent uniquement avec un [budget de réflexion fixe](#adaptive-reasoning-and-fixed-thinking-budgets) |

392 

393La réflexion ne peut pas être désactivée sur Fable 5. Le basculement de session, `alwaysThinkingEnabled` et `MAX_THINKING_TOKENS=0` n'ont aucun effet là, et Fable 5 décide à chaque étape combien réfléchir en fonction du niveau d'effort.

274 394 

275La sortie de réflexion est réduite par défaut. Appuyez sur `Ctrl+O` pour basculer le mode verbeux et voir le raisonnement en tant que texte gris en italique. Les sessions interactives sur l'API Anthropic reçoivent des blocs de réflexion masqués par défaut, donc définissez `showThinkingSummaries: true` dans les [paramètres](/fr/settings) si vous souhaitez que les résumés complets soient disponibles lorsque vous développez. Vous êtes facturé pour tous les tokens de réflexion générés, même lorsqu'ils sont réduits ou masqués.395La sortie de réflexion est réduite par défaut. Appuyez sur `Ctrl+O` pour basculer le mode verbeux et voir le raisonnement en tant que texte gris en italique. Les sessions interactives sur l'API Anthropic reçoivent des blocs de réflexion masqués par défaut, donc définissez `showThinkingSummaries: true` dans les [paramètres](/fr/settings) si vous souhaitez que les résumés complets soient disponibles lorsque vous développez. Vous êtes facturé pour tous les tokens de réflexion générés, même lorsqu'ils sont réduits ou masqués.

276 396 


278 Contexte étendu398 Contexte étendu

279</h3>399</h3>

280 400 

281Opus 4.6 et versions ultérieures, et Sonnet 4.6, prennent en charge une [fenêtre de contexte de 1 million de tokens](https://platform.claude.com/docs/fr/build-with-claude/context-windows#1m-token-context-window) pour les sessions longues avec de grandes bases de code.401Fable 5, Opus 4.6 et versions ultérieures, et Sonnet 4.6, prennent en charge une [fenêtre de contexte de 1 million de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) pour les sessions longues avec de grandes bases de code.

282 402 

283La disponibilité varie selon le modèle et le plan. Sur les plans Max, Team et Enterprise, Opus est automatiquement mis à niveau vers un contexte 1M sans configuration supplémentaire. Cela s'applique aux sièges Team Standard et Team Premium. Sonnet avec contexte 1M ne fait pas partie de la mise à niveau automatique et nécessite des [crédits d'utilisation](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) sur tous les plans d'abonnement, y compris Max.403La disponibilité varie selon le modèle et le plan. Sur les plans Max, Team et Enterprise, Opus est automatiquement mis à niveau vers un contexte 1M sans configuration supplémentaire. Cela s'applique aux sièges Team Standard et Team Premium. Sur l'API Anthropic, Fable 5, Opus 4.8 et Opus 4.7 s'exécutent toujours avec la fenêtre 1M. Sonnet avec contexte 1M ne fait pas partie de la mise à niveau automatique et nécessite des [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) sur tous les plans d'abonnement, y compris Max.

284 404 

285| Plan | Opus avec contexte 1M | Sonnet avec contexte 1M |405| Plan | Opus avec contexte 1M | Sonnet avec contexte 1M |

286| ----------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |406| ----------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |

287| Max, Team et Enterprise | Inclus dans l'abonnement | Nécessite des [crédits d'utilisation](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) |407| Max, Team et Enterprise | Inclus dans l'abonnement | Nécessite des [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

288| Pro | Nécessite des [crédits d'utilisation](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) | Nécessite des [crédits d'utilisation](https://support.claude.com/fr/articles/12429409-extra-usage-for-paid-claude-plans) |408| Pro | Nécessite des [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | Nécessite des [crédits d'utilisation](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

289| API et pay-as-you-go | Accès complet | Accès complet |409| API et pay-as-you-go | Accès complet | Accès complet |

290 410 

291Pour désactiver complètement le contexte 1M, définissez `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Cela supprime les variantes de modèle 1M du sélecteur de modèle. Voir [variables d'environnement](/fr/env-vars).411Pour désactiver complètement le contexte 1M, définissez `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Cela supprime les variantes de modèle 1M du sélecteur de modèle. Voir [variables d'environnement](/fr/env-vars).


340 460 

341| Variable d'environnement | Description |461| Variable d'environnement | Description |

342| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |462| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

463| `ANTHROPIC_DEFAULT_FABLE_MODEL` | Le modèle à utiliser pour `fable`, et l'ID de modèle que Claude Code reconnaît comme Fable 5 pour le [basculement automatique du modèle](#automatic-model-fallback) sur les fournisseurs tiers |

343| `ANTHROPIC_DEFAULT_OPUS_MODEL` | Le modèle à utiliser pour `opus`, ou pour `opusplan` lorsque le mode Plan est actif. |464| `ANTHROPIC_DEFAULT_OPUS_MODEL` | Le modèle à utiliser pour `opus`, ou pour `opusplan` lorsque le mode Plan est actif. |

344| `ANTHROPIC_DEFAULT_SONNET_MODEL` | Le modèle à utiliser pour `sonnet`, ou pour `opusplan` lorsque le mode Plan n'est pas actif. |465| `ANTHROPIC_DEFAULT_SONNET_MODEL` | Le modèle à utiliser pour `sonnet`, ou pour `opusplan` lorsque le mode Plan n'est pas actif. |

345| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Le modèle à utiliser pour `haiku`, ou [fonctionnalité d'arrière-plan](/fr/costs#background-token-usage) |466| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Le modèle à utiliser pour `haiku`, ou [fonctionnalité d'arrière-plan](/fr/costs#background-token-usage) |


353 474 

354Lors du déploiement de Claude Code via [Bedrock](/fr/amazon-bedrock), [Vertex AI](/fr/google-vertex-ai), [Foundry](/fr/microsoft-foundry) ou [Claude Platform on AWS](/fr/claude-platform-on-aws), épinglez les versions de modèle avant de les déployer auprès des utilisateurs.475Lors du déploiement de Claude Code via [Bedrock](/fr/amazon-bedrock), [Vertex AI](/fr/google-vertex-ai), [Foundry](/fr/microsoft-foundry) ou [Claude Platform on AWS](/fr/claude-platform-on-aws), épinglez les versions de modèle avant de les déployer auprès des utilisateurs.

355 476 

356Sans épinglage, Claude Code utilise les alias de modèle (`sonnet`, `opus`, `haiku`) qui se résolvent à la dernière version. Lorsqu'Anthropic publie un nouveau modèle qui n'est pas encore activé dans le compte d'un utilisateur, les utilisateurs de Bedrock et Vertex AI voient un avis et reviennent à la version précédente pour cette session, tandis que les utilisateurs de Foundry voient des erreurs car Foundry n'a pas de vérification de démarrage équivalente.477Sans épinglage, Claude Code utilise les alias de modèle tels que `fable`, `opus`, `sonnet` et `haiku` qui se résolvent à un ID de modèle par défaut intégré pour chaque fournisseur. Ce défaut peut être en retard par rapport à la dernière version d'Anthropic, et le modèle auquel il pointe peut ne pas encore être activé dans le compte d'un utilisateur. Lorsque le défaut n'est pas disponible, les utilisateurs de Bedrock et Vertex AI voient un avis et reviennent à la version précédente pour cette session, tandis que les utilisateurs de Foundry voient des erreurs car Foundry n'a pas de vérification de démarrage équivalente.

357 478 

358<Warning>479<Warning>

359 Définissez les trois variables d'environnement de modèle sur des ID de version spécifiques dans le cadre de votre configuration initiale. L'épinglage vous permet de contrôler quand vos utilisateurs passent à un nouveau modèle.480 Définissez les variables d'environnement de modèle sur des ID de version spécifiques dans le cadre de votre configuration initiale. L'épinglage vous permet de contrôler quand vos utilisateurs passent à un nouveau modèle.

360</Warning>481</Warning>

361 482 

362Utilisez les variables d'environnement suivantes avec des ID de modèle spécifiques à la version pour votre fournisseur :483Utilisez les variables d'environnement suivantes avec des ID de modèle spécifiques à la version pour votre fournisseur :


367| Vertex AI | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |488| Vertex AI | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

368| Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |489| Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

369 490 

370Appliquez le même modèle pour `ANTHROPIC_DEFAULT_SONNET_MODEL` et `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Pour les ID de modèle actuels et hérités sur tous les fournisseurs, voir [Aperçu des modèles](https://platform.claude.com/docs/fr/about-claude/models/overview). Pour mettre à niveau les utilisateurs vers une nouvelle version de modèle, mettez à jour ces variables d'environnement et redéployez.491Appliquez le même modèle pour `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` et `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Pour les ID de modèle actuels et hérités sur tous les fournisseurs, voir [Aperçu des modèles](https://platform.claude.com/docs/en/about-claude/models/overview). Pour mettre à niveau les utilisateurs vers une nouvelle version de modèle, mettez à jour ces variables d'environnement et redéployez.

371 492 

372Pour activer le [contexte étendu](#extended-context) pour un modèle épinglé, ajoutez `[1m]` à l'ID du modèle dans `ANTHROPIC_DEFAULT_OPUS_MODEL` ou `ANTHROPIC_DEFAULT_SONNET_MODEL` :493Pour activer le [contexte étendu](#extended-context) pour un modèle épinglé, ajoutez `[1m]` à l'ID du modèle dans `ANTHROPIC_DEFAULT_OPUS_MODEL` ou `ANTHROPIC_DEFAULT_SONNET_MODEL` :

373 494 


375export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'496export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'

376```497```

377 498 

378Le suffixe `[1m]` applique la fenêtre de contexte 1M à toute utilisation des alias `opus` et `sonnet`. Il n'étend pas la phase Opus en mode plan de `opusplan`, qui [reste limitée à 200K](#opusplan-model-setting).499Le suffixe `[1m]` applique la fenêtre de contexte 1M à toute utilisation des alias `opus` et `sonnet`, y compris la phase Opus en mode plan de [`opusplan`](#opusplan-model-setting).

379 500 

380* Claude Code supprime le suffixe avant d'envoyer l'ID du modèle à votre fournisseur.501* Claude Code supprime le suffixe avant d'envoyer l'ID du modèle à votre fournisseur.

381* N'ajoutez `[1m]` que lorsque le modèle sous-jacent [prend en charge le contexte 1M](https://platform.claude.com/docs/fr/build-with-claude/context-windows#1m-token-context-window).502* N'ajoutez `[1m]` que lorsque le modèle sous-jacent [prend en charge le contexte 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window).

382* Le suffixe est lu par variable, et non par modèle. Sur Bedrock, Vertex et Foundry, un ID de modèle sans `[1m]` dans une variable utilise le contexte 200K même si une autre variable définit le même modèle avec le suffixe.503* Le suffixe est lu par variable, et non par modèle. Sur Bedrock, Vertex et Foundry, un ID de modèle sans `[1m]` dans une variable utilise le contexte 200K même si une autre variable définit le même modèle avec le suffixe.

383 504 

384<Note>505<Note>

385 La liste d'autorisation `settings.availableModels` s'applique toujours lors de l'utilisation de fournisseurs tiers. Le filtrage correspond à l'alias de modèle (`opus`, `sonnet`, `haiku`), et non à l'ID de modèle spécifique au fournisseur.506 La liste d'autorisation `settings.availableModels` s'applique toujours lors de l'utilisation de fournisseurs tiers. Le filtrage correspond à l'alias de modèle tel que `opus`, le préfixe de version tel que `claude-opus-4-8`, ou l'ID de modèle complet. Tout suffixe `[1m]` est supprimé de l'entrée de la liste d'autorisation et du modèle demandé avant la correspondance, donc une entrée de `claude-opus-4-8` permet à la fois les lignes Opus standard et 1M-contexte. Les préfixes spécifiques au fournisseur tels que `us.anthropic.` ne sont pas supprimés : listez la même forme dans `availableModels` que le sélecteur affiche, ou mappez-la via [`modelOverrides`](#override-model-ids-per-version).

386</Note>507</Note>

387 508 

388<h3 id="customize-pinned-model-display-and-capabilities">509<h3 id="customize-pinned-model-display-and-capabilities">


399| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Description d'affichage pour le modèle Opus épinglé dans le sélecteur `/model`. Par défaut, `Custom Opus model` lorsqu'il n'est pas défini |520| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Description d'affichage pour le modèle Opus épinglé dans le sélecteur `/model`. Par défaut, `Custom Opus model` lorsqu'il n'est pas défini |

400| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Liste séparée par des virgules des capacités que le modèle Opus épinglé prend en charge |521| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Liste séparée par des virgules des capacités que le modèle Opus épinglé prend en charge |

401 522 

402Les mêmes suffixes `_NAME`, `_DESCRIPTION` et `_SUPPORTED_CAPABILITIES` sont disponibles pour `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` et `ANTHROPIC_CUSTOM_MODEL_OPTION`.523Les mêmes suffixes `_NAME`, `_DESCRIPTION` et `_SUPPORTED_CAPABILITIES` sont disponibles pour `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, `ANTHROPIC_DEFAULT_FABLE_MODEL` et `ANTHROPIC_CUSTOM_MODEL_OPTION`.

403 524 

404Claude Code active les fonctionnalités comme les [niveaux d'effort](#adjust-effort-level) et la [réflexion étendue](#extended-thinking) en faisant correspondre l'ID du modèle à des modèles connus. Les ID spécifiques au fournisseur tels que les ARN Bedrock ou les noms de déploiement personnalisés ne correspondent souvent pas à ces modèles, laissant les fonctionnalités prises en charge désactivées. Définissez `_SUPPORTED_CAPABILITIES` pour indiquer à Claude Code les fonctionnalités que le modèle prend réellement en charge :525Claude Code active les fonctionnalités comme les [niveaux d'effort](#adjust-effort-level) et la [réflexion étendue](#extended-thinking) en faisant correspondre l'ID du modèle à des modèles connus. Les ID spécifiques au fournisseur tels que les ARN Bedrock ou les noms de déploiement personnalisés ne correspondent souvent pas à ces modèles, laissant les fonctionnalités prises en charge désactivées. Définissez `_SUPPORTED_CAPABILITIES` pour indiquer à Claude Code les fonctionnalités que le modèle prend réellement en charge :

405 526 


445}566}

446```567```

447 568 

448Les clés doivent être des ID de modèle Anthropic tels que listés dans l'[Aperçu des modèles](https://platform.claude.com/docs/fr/about-claude/models/overview). Pour les ID de modèle datés, incluez le suffixe de date exactement tel qu'il apparaît là. Les clés inconnues sont ignorées.569Les clés doivent être des ID de modèle Anthropic tels que listés dans l'[Aperçu des modèles](https://platform.claude.com/docs/en/about-claude/models/overview). Pour les ID de modèle datés, incluez le suffixe de date exactement tel qu'il apparaît là. Les clés inconnues sont ignorées.

449 570 

450Les remplacements remplacent les ID de modèle intégrés qui soutiennent chaque entrée dans le sélecteur `/model`. Sur Bedrock, les remplacements prennent la priorité sur tous les profils d'inférence que Claude Code découvre automatiquement au démarrage. Les valeurs que vous fournissez directement via `ANTHROPIC_MODEL`, `--model` ou les variables d'environnement `ANTHROPIC_DEFAULT_*_MODEL` sont transmises au fournisseur telles quelles et ne sont pas transformées par `modelOverrides`.571Les remplacements remplacent les ID de modèle intégrés qui soutiennent chaque entrée dans le sélecteur `/model`. Sur Bedrock, les remplacements prennent la priorité sur tous les profils d'inférence que Claude Code découvre automatiquement au démarrage. Les valeurs que vous fournissez directement via `ANTHROPIC_MODEL`, `--model` ou les variables d'environnement `ANTHROPIC_DEFAULT_*_MODEL` sont transmises au fournisseur telles quelles et ne sont pas transformées par `modelOverrides`.

451 572 


463| `DISABLE_PROMPT_CACHING_HAIKU` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Haiku uniquement |584| `DISABLE_PROMPT_CACHING_HAIKU` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Haiku uniquement |

464| `DISABLE_PROMPT_CACHING_SONNET` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Sonnet uniquement |585| `DISABLE_PROMPT_CACHING_SONNET` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Sonnet uniquement |

465| `DISABLE_PROMPT_CACHING_OPUS` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Opus uniquement |586| `DISABLE_PROMPT_CACHING_OPUS` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Opus uniquement |

587| `DISABLE_PROMPT_CACHING_FABLE` | Définissez sur `1` pour désactiver la mise en cache des invites pour les modèles Fable uniquement |

466 588 

467Pour modifier le TTL du cache ou découvrir ce qui déclenche un échec du cache, voir [Comment Claude Code utilise la mise en cache des invites](/fr/prompt-caching).589Pour modifier le TTL du cache ou découvrir ce qui déclenche un échec du cache, voir [Comment Claude Code utilise la mise en cache des invites](/fr/prompt-caching).

Details

221**`claude_code.tool`**221**`claude_code.tool`**

222 222 

223| Attribut | Description | Contrôlé par |223| Attribut | Description | Contrôlé par |

224| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |224| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------- |

225| `tool_name` | Nom de l'outil | |225| `tool_name` | Nom de l'outil | |

226| `duration_ms` | Durée murale incluant l'attente de permission et l'exécution | |226| `duration_ms` | Durée murale incluant l'attente de permission et l'exécution | |

227| `result_tokens` | Taille approximative en jetons du résultat de l'outil | |227| `result_tokens` | Taille approximative en jetons du résultat de l'outil | |

228| `agent_id` | Identifiant du sous-agent ou du coéquipier qui a exécuté l'outil. Absent dans la session principale | |228| `agent_id` | Identifiant du sous-agent ou du coéquipier qui a exécuté l'outil. Absent dans la session principale | |

229| `parent_agent_id` | Identifiant de l'agent qui a généré celui-ci. Absent pour la session principale et pour les agents générés directement à partir de celle-ci | |229| `parent_agent_id` | Identifiant de l'agent qui a généré celui-ci. Absent pour la session principale et pour les agents générés directement à partir de celle-ci | |

230| `tool_use_id` | L'ID du bloc `tool_use` du modèle pour cet appel. Correspond au `tool_use_id` sur les événements [tool\_result](#tool-result-event) et [tool\_decision](#tool-decision-event) et dans les charges utiles de hooks, afin que vous puissiez joindre l'intervalle à ces enregistrements | |

231| `gen_ai.tool.call.id` | Même valeur que `tool_use_id`. Convention sémantique GenAI OpenTelemetry | |

230| `file_path` | Chemin de fichier cible pour les outils Read, Edit et Write | `OTEL_LOG_TOOL_DETAILS` |232| `file_path` | Chemin de fichier cible pour les outils Read, Edit et Write | `OTEL_LOG_TOOL_DETAILS` |

231| `full_command` | Chaîne de commande pour l'outil Bash | `OTEL_LOG_TOOL_DETAILS` |233| `full_command` | Chaîne de commande pour l'outil Bash | `OTEL_LOG_TOOL_DETAILS` |

232| `skill_name` | Nom de la compétence pour l'outil Skill | `OTEL_LOG_TOOL_DETAILS` |234| `skill_name` | Nom de la compétence pour l'outil Skill | `OTEL_LOG_TOOL_DETAILS` |


245**`claude_code.tool.execution`**247**`claude_code.tool.execution`**

246 248 

247| Attribut | Description | Contrôlé par |249| Attribut | Description | Contrôlé par |

248| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |250| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |

249| `duration_ms` | Temps passé à exécuter le corps de l'outil | |251| `duration_ms` | Temps passé à exécuter le corps de l'outil | |

252| `tool_use_id` | Même valeur que sur l'intervalle parent `claude_code.tool` | |

253| `gen_ai.tool.call.id` | Même valeur que `tool_use_id`. Convention sémantique GenAI OpenTelemetry | |

250| `success` | `true` ou `false` | |254| `success` | `true` ou `false` | |

251| `error` | Chaîne de catégorie d'erreur lorsque l'exécution a échoué, telle que `Error:ENOENT` ou `ShellError`. Contient le message d'erreur complet à la place lorsque la porte est définie | `OTEL_LOG_TOOL_DETAILS` |255| `error` | Chaîne de catégorie d'erreur lorsque l'exécution a échoué, telle que `Error:ENOENT` ou `ShellError`. Contient le message d'erreur complet à la place lorsque la porte est définie | `OTEL_LOG_TOOL_DETAILS` |

252 256 


423Toutes les métriques et tous les événements partagent ces attributs standard :427Toutes les métriques et tous les événements partagent ces attributs standard :

424 428 

425| Attribut | Description | Contrôlé par |429| Attribut | Description | Contrôlé par |

426| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |430| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |

427| `session.id` | Identifiant de session unique | `OTEL_METRICS_INCLUDE_SESSION_ID` (par défaut : true) |431| `session.id` | Identifiant de session unique | `OTEL_METRICS_INCLUDE_SESSION_ID` (par défaut : true) |

428| `app.version` | Version actuelle de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (par défaut : false) |432| `app.version` | Version actuelle de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (par défaut : false) |

429| `app.entrypoint` | Comment la session a été lancée, par exemple `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, ou `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (par défaut : false) |433| `app.entrypoint` | Comment la session a été lancée, par exemple `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, ou `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (par défaut : false) |

430| `organization.id` | UUID de l'organisation (si authentifié) | Toujours inclus si disponible |434| `organization.id` | UUID de l'organisation (si authentifié) | Toujours inclus si disponible |

431| `user.account_uuid` | UUID du compte (si authentifié) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |435| `user.account_uuid` | UUID du compte (si authentifié) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |

432| `user.account_id` | ID du compte au format balisé correspondant aux API d'administration Anthropic (si authentifié), tel que `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |436| `user.account_id` | ID du compte au format balisé correspondant aux API d'administration Anthropic (si authentifié), tel que `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (par défaut : true) |

433| `user.id` | Identifiant anonyme d'appareil/installation, généré par installation de Claude Code | Toujours inclus |437| `user.id` | Identifiant anonyme aléatoire généré à la première exécution et conservé dans `~/.claude.json`. Il ne contient aucune information personnelle et n'est pas dérivé de votre compte Claude. La suppression du fichier produit une nouvelle valeur sans rapport à la prochaine exécution. | Toujours inclus |

434| `user.email` | Adresse e-mail de l'utilisateur (si authentifié via OAuth) | Toujours inclus si disponible |438| `user.email` | Adresse e-mail de l'utilisateur (si authentifié via OAuth) | Toujours inclus si disponible |

435| `terminal.type` | Type de terminal, tel que `iTerm.app`, `vscode`, `cursor`, ou `tmux` | Toujours inclus si détecté |439| `terminal.type` | Type de terminal, tel que `iTerm.app`, `vscode`, `cursor`, ou `tmux` | Toujours inclus si détecté |

436| Clés de `OTEL_RESOURCE_ATTRIBUTES` | Attributs personnalisés que vous définissez, tels que `department` ou `team.id`. Voir [Support des organisations multi-équipes](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (par défaut : true) |440| Clés de `OTEL_RESOURCE_ATTRIBUTES` | Attributs personnalisés que vous définissez, tels que `department` ou `team.id`. Voir [Support des organisations multi-équipes](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (par défaut : true) |


484 488 

485* Tous les [attributs standard](#standard-attributes)489* Tous les [attributs standard](#standard-attributes)

486* `type` : (`"added"`, `"removed"`)490* `type` : (`"added"`, `"removed"`)

491* `model` : Identifiant du modèle pour le modèle qui a effectué la modification (par exemple, « claude-sonnet-4-6 »). {/* min-version: 2.1.172 */}Nécessite Claude Code v2.1.172 ou ultérieur

487 492 

488<h4 id="pull-request-counter">493<h4 id="pull-request-counter">

489 Compteur de demandes de tirage494 Compteur de demandes de tirage


692* `effort` : [Niveau d'effort](/fr/model-config#adjust-effort-level) appliqué à la demande. Absent lorsque le modèle ne supporte pas l'effort.697* `effort` : [Niveau d'effort](/fr/model-config#adjust-effort-level) appliqué à la demande. Absent lorsque le modèle ne supporte pas l'effort.

693* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coûts](#cost-counter) pour les définitions et le comportement de masquage.698* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name` : Attribution de compétence, plugin, agent et MCP pour la demande. Voir [Compteur de coûts](#cost-counter) pour les définitions et le comportement de masquage.

694 699 

700<h4 id="api-refusal-event">

701 Événement de refus d'API

702</h4>

703 

704Enregistré lorsqu'une demande d'API retourne `stop_reason: "refusal"`. Les refus arrivent sur un flux de réponse réussi plutôt que comme une erreur HTTP, donc l'événement `api_error` ne se déclenche pas pour eux. Cet événement vous permet de suivre la fréquence des refus.

705 

706**Nom de l'événement** : `claude_code.api_refusal`

707 

708**Attributs** :

709 

710* Tous les [attributs standard](#standard-attributes)

711* `event.name` : `"api_refusal"`

712* `event.timestamp` : Horodatage ISO 8601

713* `event.sequence` : Compteur monotone croissant pour ordonner les événements au sein d'une session

714* `model` : Identifiant du modèle de la demande

715* `request_id` : ID de demande d'API Anthropic de l'en-tête `request-id` de la réponse, tel que `"req_011..."`. Présent uniquement lorsque l'API en retourne un.

716 

695<h4 id="api-request-body-event">717<h4 id="api-request-body-event">

696 Événement de corps de demande d'API718 Événement de corps de demande d'API

697</h4>719</h4>


823* `server_scope` : Portée à laquelle le serveur est configuré, telle que `"user"`, `"project"`, ou `"local"`845* `server_scope` : Portée à laquelle le serveur est configuré, telle que `"user"`, `"project"`, ou `"local"`

824* `duration_ms` : Durée de la tentative de connexion en millisecondes846* `duration_ms` : Durée de la tentative de connexion en millisecondes

825* `error_code` : Code d'erreur lorsque la connexion a échoué847* `error_code` : Code d'erreur lorsque la connexion a échoué

848* `is_plugin` : `true` lorsque le serveur est fourni par un plugin, `false` sinon

849* `plugin_id_hash` (lorsque `is_plugin` est `true`) : Hash stable du nom du plugin et de la place de marché, pour regrouper les événements par plugin sans exposer le nom

850* `plugin.name` (lorsque `is_plugin` est `true`) : Nom du plugin qui fournit le serveur. Pour les plugins tiers, ceci est la chaîne littérale `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1` ; cela protège les noms de plugins tiers d'apparaître dans les journaux par défaut. Les plugins provenant de sources officielles d'Anthropic sont toujours identifiés par nom. Les attributs `plugin_id_hash` et `plugin.name` circulent vers votre propre backend de surveillance et ne sont pas envoyés à Anthropic

826* `server_name` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Nom du serveur configuré851* `server_name` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Nom du serveur configuré

827* `error` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Message d'erreur complet lorsque la connexion a échoué852* `error` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : Message d'erreur complet lorsque la connexion a échoué

828 853 


885* `plugin_id_hash` : hash déterministe du nom du plugin et de la place de marché, envoyé uniquement à votre exportateur configuré. Vous permet de compter combien de plugins tiers distincts sont chargés dans votre flotte sans enregistrer leurs noms910* `plugin_id_hash` : hash déterministe du nom du plugin et de la place de marché, envoyé uniquement à votre exportateur configuré. Vous permet de compter combien de plugins tiers distincts sont chargés dans votre flotte sans enregistrer leurs noms

886* `has_hooks` : si le plugin contribue des hooks911* `has_hooks` : si le plugin contribue des hooks

887* `has_mcp` : si le plugin contribue des serveurs MCP912* `has_mcp` : si le plugin contribue des serveurs MCP

913* `host_owned_mcp` : `true` lorsque l'hôte SDK gère les connexions MCP de ce plugin et Claude Code a ignoré la lecture de la configuration du serveur MCP du plugin, `false` sinon. {/* min-version: 2.1.172 */}Nécessite Claude Code v2.1.172 ou ultérieur

888* `skill_path_count` : nombre de répertoires de compétences que le plugin déclare914* `skill_path_count` : nombre de répertoires de compétences que le plugin déclare

889* `command_path_count` : nombre de répertoires de commandes que le plugin déclare915* `command_path_count` : nombre de répertoires de commandes que le plugin déclare

890* `agent_path_count` : nombre de répertoires d'agents que le plugin déclare916* `agent_path_count` : nombre de répertoires d'agents que le plugin déclare

917* `safe_mode` : `"true"` lorsque la session a été démarrée avec [`--safe-mode`](/fr/cli-reference), `"false"` sinon. En mode sûr, cet événement rapporte l'inventaire configuré uniquement ; les commandes, compétences, hooks et serveurs MCP du plugin ne se chargent pas. {/* min-version: 2.1.169 */}Nécessite Claude Code v2.1.169 ou ultérieur

891 918 

892<h4 id="skill-activated-event">919<h4 id="skill-activated-event">

893 Événement de compétence activée920 Événement de compétence activée


906* `skill.name` : Nom de la compétence. Pour les compétences définies par l'utilisateur et les compétences de plugin tiers, la valeur est l'espace réservé `"custom_skill"` sauf si `OTEL_LOG_TOOL_DETAILS=1`933* `skill.name` : Nom de la compétence. Pour les compétences définies par l'utilisateur et les compétences de plugin tiers, la valeur est l'espace réservé `"custom_skill"` sauf si `OTEL_LOG_TOOL_DETAILS=1`

907* `invocation_trigger` : Comment la compétence a été déclenchée (`"user-slash"`, `"claude-proactive"`, ou `"nested-skill"`)934* `invocation_trigger` : Comment la compétence a été déclenchée (`"user-slash"`, `"claude-proactive"`, ou `"nested-skill"`)

908* `skill.source` : D'où la compétence a été chargée (par exemple, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)935* `skill.source` : D'où la compétence a été chargée (par exemple, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)

936* `skill.kind` : `"workflow"` lorsque la compétence est une compétence de flux de travail. Absent sinon

909* `plugin.name` (lorsque `OTEL_LOG_TOOL_DETAILS=1` ou le plugin provient d'une place de marché officielle) : Nom du plugin propriétaire lorsque la compétence est fournie par un plugin937* `plugin.name` (lorsque `OTEL_LOG_TOOL_DETAILS=1` ou le plugin provient d'une place de marché officielle) : Nom du plugin propriétaire lorsque la compétence est fournie par un plugin

910* `marketplace.name` (lorsque `OTEL_LOG_TOOL_DETAILS=1` ou le plugin provient d'une place de marché officielle) : Place de marché du plugin propriétaire, lorsque la compétence est fournie par un plugin938* `marketplace.name` (lorsque `OTEL_LOG_TOOL_DETAILS=1` ou le plugin provient d'une place de marché officielle) : Place de marché du plugin propriétaire, lorsque la compétence est fournie par un plugin

911 939 


964* `hook_event` : type d'événement hook, tel que `"PreToolUse"` ou `"PostToolUse"`992* `hook_event` : type d'événement hook, tel que `"PreToolUse"` ou `"PostToolUse"`

965* `hook_type` : type d'implémentation du hook : `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, ou `"agent"`993* `hook_type` : type d'implémentation du hook : `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, ou `"agent"`

966* `hook_source` : où le hook est défini : `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, ou `"pluginHook"`994* `hook_source` : où le hook est défini : `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, ou `"pluginHook"`

995* `safe_mode` : `"true"` lorsque la session a été démarrée avec [`--safe-mode`](/fr/cli-reference), `"false"` sinon. {/* min-version: 2.1.169 */}Nécessite Claude Code v2.1.169 ou ultérieur

967* `hook_matcher` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : la chaîne matcher de la configuration du hook, lorsqu'elle est définie996* `hook_matcher` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : la chaîne matcher de la configuration du hook, lorsqu'elle est définie

968* `plugin.name` (lorsque `hook_source` est `"pluginHook"`) : nom du plugin contributeur. Pour les plugins en dehors de la place de marché officielle et du bundle intégré, la valeur est `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1`997* `plugin.name` (lorsque `hook_source` est `"pluginHook"`) : nom du plugin contributeur. Pour les plugins en dehors de la place de marché officielle et du bundle intégré, la valeur est `"third-party"` sauf si `OTEL_LOG_TOOL_DETAILS=1`

969* `plugin_id_hash` (lorsque `hook_source` est `"pluginHook"`) : hash déterministe du nom du plugin et de la place de marché, envoyé uniquement à votre exportateur configuré. Vous permet de compter les plugins contributeurs distincts sans enregistrer leurs noms998* `plugin_id_hash` (lorsque `hook_source` est `"pluginHook"`) : hash déterministe du nom du plugin et de la place de marché, envoyé uniquement à votre exportateur configuré. Vous permet de compter les plugins contributeurs distincts sans enregistrer leurs noms


987* `num_hooks` : Nombre de commandes hook correspondantes1016* `num_hooks` : Nombre de commandes hook correspondantes

988* `managed_only` : `"true"` lorsque seuls les hooks de politique gérée sont autorisés1017* `managed_only` : `"true"` lorsque seuls les hooks de politique gérée sont autorisés

989* `hook_source` : `"policySettings"` ou `"merged"`1018* `hook_source` : `"policySettings"` ou `"merged"`

1019* `safe_mode` : `"true"` lorsque la session a été démarrée avec [`--safe-mode`](/fr/cli-reference), `"false"` sinon. {/* min-version: 2.1.169 */}Nécessite Claude Code v2.1.169 ou ultérieur

990* `hook_definitions` : Configuration du hook sérialisée en JSON. Inclus uniquement lorsque le traçage bêta détaillé et `OTEL_LOG_TOOL_DETAILS=1` sont tous deux activés1020* `hook_definitions` : Configuration du hook sérialisée en JSON. Inclus uniquement lorsque le traçage bêta détaillé et `OTEL_LOG_TOOL_DETAILS=1` sont tous deux activés

991 1021 

992<h4 id="hook-execution-complete-event">1022<h4 id="hook-execution-complete-event">


1013* `total_duration_ms` : Durée murale de tous les hooks correspondants1043* `total_duration_ms` : Durée murale de tous les hooks correspondants

1014* `managed_only` : `"true"` lorsque seuls les hooks de politique gérée sont autorisés1044* `managed_only` : `"true"` lorsque seuls les hooks de politique gérée sont autorisés

1015* `hook_source` : `"policySettings"` ou `"merged"`1045* `hook_source` : `"policySettings"` ou `"merged"`

1046* `safe_mode` : `"true"` lorsque la session a été démarrée avec [`--safe-mode`](/fr/cli-reference), `"false"` sinon. {/* min-version: 2.1.169 */}Nécessite Claude Code v2.1.169 ou ultérieur

1016* `hook_definitions` : Configuration du hook sérialisée en JSON. Inclus uniquement lorsque le traçage bêta détaillé et `OTEL_LOG_TOOL_DETAILS=1` sont tous deux activés1047* `hook_definitions` : Configuration du hook sérialisée en JSON. Inclus uniquement lorsque le traçage bêta détaillé et `OTEL_LOG_TOOL_DETAILS=1` sont tous deux activés

1017 1048 

1018<h4 id="hook-plugin-metrics-event">1049<h4 id="hook-plugin-metrics-event">


1089| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |1120| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |

1090| `claude_code.token.usage` | Ventiler par `type` (entrée/sortie), utilisateur, équipe, modèle, `skill.name`, `plugin.name`, ou `agent.name` |1121| `claude_code.token.usage` | Ventiler par `type` (entrée/sortie), utilisateur, équipe, modèle, `skill.name`, `plugin.name`, ou `agent.name` |

1091| `claude_code.session.count` | Suivre l'adoption et l'engagement au fil du temps |1122| `claude_code.session.count` | Suivre l'adoption et l'engagement au fil du temps |

1092| `claude_code.lines_of_code.count` | Mesurer la productivité en suivant les ajouts/suppressions de code |1123| `claude_code.lines_of_code.count` | Mesurer la productivité en suivant les ajouts et suppressions de code, ventilés par modèle |

1093| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendre l'impact sur les flux de travail de développement |1124| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendre l'impact sur les flux de travail de développement |

1094 1125 

1095<h3 id="cost-monitoring">1126<h3 id="cost-monitoring">


1116* Consommation de jetons inhabituelle1147* Consommation de jetons inhabituelle

1117* Volume de session élevé d'utilisateurs spécifiques1148* Volume de session élevé d'utilisateurs spécifiques

1118 1149 

1119Toutes les métriques peuvent être segmentées par `user.account_uuid`, `user.account_id`, `organization.id`, `session.id`, `model`, et `app.version`.1150Toutes les métriques peuvent être segmentées par les [attributs standard](#standard-attributes). L'attribut `model` est disponible sur `claude_code.token.usage`, `claude_code.cost.usage`, et à partir de la v2.1.172, `claude_code.lines_of_code.count`. Les ventilations par modèle des commits ne peuvent être approximées que en joignant les métriques de jetons ou de coûts sur `session.id`, puisqu'une session peut s'étendre sur plusieurs modèles.

1120 1151 

1121<h3 id="detect-retry-exhaustion">1152<h3 id="detect-retry-exhaustion">

1122 Détecter l'épuisement des tentatives1153 Détecter l'épuisement des tentatives


1179 1210 

1180* `tool_result` : conserve `tool_name` et `mcp_server_scope`, omet `mcp_server_name`, `mcp_tool_name`, et les arguments1211* `tool_result` : conserve `tool_name` et `mcp_server_scope`, omet `mcp_server_name`, `mcp_tool_name`, et les arguments

1181* `tool_decision` : conserve `tool_name`, omet `tool_parameters`1212* `tool_decision` : conserve `tool_name`, omet `tool_parameters`

1182* `mcp_server_connection` : omet `server_name` et le message d'erreur1213* `mcp_server_connection` : omet `server_name` et le message d'erreur, mais conserve `is_plugin`, `plugin_id_hash`, et `plugin.name`, avec les noms de plugins non-Anthropic redactés au littéral `"third-party"`, de sorte que les serveurs fournis par les plugins restent distinguables sans journalisation détaillée

1183 1214 

1184<h3 id="map-security-questions-to-events">1215<h3 id="map-security-questions-to-events">

1185 Mapper les questions de sécurité aux événements1216 Mapper les questions de sécurité aux événements


1193| Escalade du mode de permission | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |1224| Escalade du mode de permission | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |

1194| Hook de politique a bloqué une action | `hook_execution_complete` | `hook_event`, `num_blocking` |1225| Hook de politique a bloqué une action | `hook_execution_complete` | `hook_event`, `num_blocking` |

1195| Connexion, déconnexion et défaillance d'authentification | `auth` | `action`, `success`, `error_category` |1226| Connexion, déconnexion et défaillance d'authentification | `auth` | `action`, `success`, `error_category` |

1196| Connexion du serveur MCP ou défaillance | `mcp_server_connection` | `status`, `server_name`, `error_code` |1227| Connexion du serveur MCP ou défaillance | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |

1197| Plugin installé et sa source | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |1228| Plugin installé et sa source | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |

1198| Commandes exécutées et fichiers touchés | `tool_result` (exécuté) ou `tool_decision` (rejeté) avec `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters` ; `tool_input` (`tool_result` uniquement) |1229| Commandes exécutées et fichiers touchés | `tool_result` (exécuté) ou `tool_decision` (rejeté) avec `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters` ; `tool_input` (`tool_result` uniquement) |

1199 1230 


1230 1261 

1231* **Bases de données de séries chronologiques (par exemple, Prometheus)** : Calculs de taux, métriques agrégées1262* **Bases de données de séries chronologiques (par exemple, Prometheus)** : Calculs de taux, métriques agrégées

1232* **Magasins colonnaires (par exemple, ClickHouse)** : Requêtes complexes, analyse d'utilisateurs uniques1263* **Magasins colonnaires (par exemple, ClickHouse)** : Requêtes complexes, analyse d'utilisateurs uniques

1233* **Plates-formes d'observabilité complètes (par exemple, Honeycomb, Datadog)** : Requêtes avancées, visualisation, alertes1264* **Plates-formes d'observabilité complètes (par exemple, Honeycomb, Datadog, Grafana Cloud)** : Requêtes avancées, visualisation, alertes

1234 1265 

1235<h3 id="for-events/logs">1266<h3 id="for-events/logs">

1236 Pour les événements/journaux1267 Pour les événements/journaux


1238 1269 

1239* **Systèmes d'agrégation de journaux (par exemple, Elasticsearch, Loki)** : Recherche en texte intégral, analyse de journaux1270* **Systèmes d'agrégation de journaux (par exemple, Elasticsearch, Loki)** : Recherche en texte intégral, analyse de journaux

1240* **Magasins colonnaires (par exemple, ClickHouse)** : Analyse d'événements structurés1271* **Magasins colonnaires (par exemple, ClickHouse)** : Analyse d'événements structurés

1241* **Plates-formes d'observabilité complètes (par exemple, Honeycomb, Datadog)** : Corrélation entre les métriques et les événements1272* **Plates-formes d'observabilité complètes (par exemple, Honeycomb, Datadog, Grafana Cloud)** : Corrélation entre les métriques et les événements

1242 1273 

1243<h3 id="for-traces">1274<h3 id="for-traces">

1244 Pour les traces1275 Pour les traces


1247Choisissez un backend qui prend en charge le stockage de traces distribuées et la corrélation d'intervalles :1278Choisissez un backend qui prend en charge le stockage de traces distribuées et la corrélation d'intervalles :

1248 1279 

1249* **Systèmes de traçage distribué (par exemple, Jaeger, Zipkin, Grafana Tempo)** : Visualisation d'intervalles, cascades de demandes, analyse de latence1280* **Systèmes de traçage distribué (par exemple, Jaeger, Zipkin, Grafana Tempo)** : Visualisation d'intervalles, cascades de demandes, analyse de latence

1250* **Plates-formes d'observabilité complètes (par exemple, Honeycomb, Datadog)** : Recherche de traces et corrélation avec les métriques et les journaux1281* **Plates-formes d'observabilité complètes (par exemple, Honeycomb, Datadog, Grafana Cloud)** : Recherche de traces et corrélation avec les métriques et les journaux

1251 1282 

1252Pour les organisations nécessitant des métriques d'utilisateurs actifs quotidiens/hebdomadaires/mensuels (DAU/WAU/MAU), envisagez des backends qui prennent en charge les requêtes de valeurs uniques efficaces.1283Pour les organisations nécessitant des métriques d'utilisateurs actifs quotidiens/hebdomadaires/mensuels (DAU/WAU/MAU), envisagez des backends qui prennent en charge les requêtes de valeurs uniques efficaces.

1253 1284 

Details

57 * Utilisateur : `~/.claude/output-styles`57 * Utilisateur : `~/.claude/output-styles`

58 * Projet : `.claude/output-styles`58 * Projet : `.claude/output-styles`

59 * Politique gérée : `.claude/output-styles` à l'intérieur du [répertoire des paramètres gérés](/fr/settings#settings-files)59 * Politique gérée : `.claude/output-styles` à l'intérieur du [répertoire des paramètres gérés](/fr/settings#settings-files)

60 

61 Les styles de sortie de projet se chargent à partir de chaque `.claude/output-styles/` entre le répertoire de travail et la racine du référentiel. {/* min-version: 2.1.178 */}À partir de la v2.1.178, lorsque plusieurs de ces répertoires imbriqués définissent un style portant le même nom, Claude Code utilise celui le plus proche du répertoire de travail.

60 </Step>62 </Step>

61 63 

62 <Step title="Ajouter le frontmatter et les instructions">64 <Step title="Ajouter le frontmatter et les instructions">

overview.md +2 −2

Details

124 <Tab title="JetBrains">124 <Tab title="JetBrains">

125 Un plugin pour IntelliJ IDEA, PyCharm, WebStorm et autres IDE JetBrains avec visualisation interactive des diffs et partage du contexte de sélection.125 Un plugin pour IntelliJ IDEA, PyCharm, WebStorm et autres IDE JetBrains avec visualisation interactive des diffs et partage du contexte de sélection.

126 126 

127 Installez le [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) depuis la Marketplace JetBrains et redémarrez votre IDE.127 Installez le [plugin Claude Code](https://plugins.jetbrains.com/plugin/27310-claude-code-beta-) depuis la Marketplace JetBrains et redémarrez votre IDE. Le plugin nécessite le CLI Claude Code, installé séparément ; consultez les [étapes de configuration JetBrains](/fr/jetbrains#installation).

128 128 

129 [Commencer avec JetBrains →](/fr/jetbrains)129 [Commencer avec JetBrains →](/fr/jetbrains)

130 </Tab>130 </Tab>


209 209 

210 * Éloignez-vous de votre bureau et continuez à travailler depuis votre téléphone ou n'importe quel navigateur avec [Contrôle à distance](/fr/remote-control)210 * Éloignez-vous de votre bureau et continuez à travailler depuis votre téléphone ou n'importe quel navigateur avec [Contrôle à distance](/fr/remote-control)

211 * Envoyez un message à [Dispatch](/fr/desktop#sessions-from-dispatch) une tâche depuis votre téléphone et ouvrez la session de bureau qu'il crée211 * Envoyez un message à [Dispatch](/fr/desktop#sessions-from-dispatch) une tâche depuis votre téléphone et ouvrez la session de bureau qu'il crée

212 * Lancez une tâche longue sur le [web](/fr/claude-code-on-the-web) ou l'[application iOS](https://apps.apple.com/app/claude-by-anthropic/id6473753684), puis tirez-la dans votre terminal avec `claude --teleport`212 * Lancez une tâche longue sur le [web](/fr/claude-code-on-the-web) ou l'[application iOS](https://apps.apple.com/app/claude-by-anthropic/id6473753684), puis tirez-la dans votre terminal avec `claude --teleport`. Teleport nécessite un abonnement claude.ai.

213 * Remettez une session de terminal à l'[application de bureau](/fr/desktop) avec `/desktop` pour un examen visuel des diffs213 * Remettez une session de terminal à l'[application de bureau](/fr/desktop) avec `/desktop` pour un examen visuel des diffs

214 * Acheminez les tâches depuis le chat d'équipe : mentionnez `@Claude` dans [Slack](/fr/slack) avec un rapport de bogue et récupérez une demande de tirage214 * Acheminez les tâches depuis le chat d'équipe : mentionnez `@Claude` dans [Slack](/fr/slack) avec un rapport de bogue et récupérez une demande de tirage

215 </Accordion>215 </Accordion>

Details

25 25 

26Dans tous les modes sauf `bypassPermissions`, les écritures dans les [chemins protégés](#protected-paths) ne sont jamais auto-approuvées, protégeant l'état du dépôt et la configuration propre de Claude contre la corruption accidentelle.26Dans tous les modes sauf `bypassPermissions`, les écritures dans les [chemins protégés](#protected-paths) ne sont jamais auto-approuvées, protégeant l'état du dépôt et la configuration propre de Claude contre la corruption accidentelle.

27 27 

28Les modes définissent la ligne de base. Superposez les [règles de permission](/fr/permissions#manage-permissions) pour pré-approuver ou bloquer des outils spécifiques dans n'importe quel mode sauf `bypassPermissions`, qui ignore complètement la couche de permission.28Les modes définissent la ligne de base. Superposez les [règles de permission](/fr/permissions#manage-permissions) sur le dessus pour pré-approuver ou bloquer des outils spécifiques. Les règles de refus et les règles de demande explicite s'appliquent dans tous les modes, y compris `bypassPermissions`. Les règles d'autorisation n'ont aucun effet dans ce mode car tout le reste est déjà approuvé.

29 29 

30<h2 id="switch-permission-modes">30<h2 id="switch-permission-modes">

31 Changer de mode de permission31 Changer de mode de permission


95 <Tab title="Web and mobile">95 <Tab title="Web and mobile">

96 Utilisez le menu déroulant de mode à côté de la boîte d'invite sur [claude.ai/code](https://claude.ai/code) ou dans l'application mobile. Les invites de permission apparaissent dans claude.ai pour approbation. Les modes qui apparaissent dépendent de l'endroit où la session s'exécute :96 Utilisez le menu déroulant de mode à côté de la boîte d'invite sur [claude.ai/code](https://claude.ai/code) ou dans l'application mobile. Les invites de permission apparaissent dans claude.ai pour approbation. Les modes qui apparaissent dépendent de l'endroit où la session s'exécute :

97 97 

98 * **Sessions cloud** sur [Claude Code sur le web](/fr/claude-code-on-the-web) : Accepter automatiquement les modifications et Mode de planification. Demander les permissions, Auto et Ignorer les permissions ne sont pas disponibles.98 * **Sessions cloud** sur [Claude Code sur le web](/fr/claude-code-on-the-web) : Accepter les modifications, Mode de planification et Mode auto. Accepter les modifications correspond au mode `default` : l'environnement cloud pré-approuve les modifications de fichiers indépendamment du mode, donc le menu déroulant affiche Accepter les modifications au lieu de Demander les permissions. `defaultMode: "acceptEdits"` à partir des paramètres est toujours respecté. Le mode auto n'apparaît que quand votre organisation l'autorise et que le modèle sélectionné le supporte. Ignorer les permissions n'est pas disponible.

99 * **Sessions [Contrôle à distance](/fr/remote-control)** sur votre machine locale : Demander les permissions, Accepter automatiquement les modifications et Mode de planification. Auto et Ignorer les permissions ne sont pas disponibles.99 * **Sessions [Contrôle à distance](/fr/remote-control)** sur votre machine locale : Demander les permissions, Accepter automatiquement les modifications et Mode de planification. Auto et Ignorer les permissions ne sont pas disponibles.

100 100 

101 Pour le Contrôle à distance, vous pouvez également définir le mode de démarrage lors du lancement de l'hôte :101 Pour le Contrôle à distance, vous pouvez également définir le mode de démarrage lors du lancement de l'hôte :


176 Le mode auto nécessite Claude Code v2.1.83 ou ultérieur.176 Le mode auto nécessite Claude Code v2.1.83 ou ultérieur.

177</Note>177</Note>

178 178 

179Le mode auto permet à Claude d'exécuter sans invites de permission. Un modèle classificateur séparé examine les actions avant qu'elles ne s'exécutent, bloquant tout ce qui escalade au-delà de votre demande, cible une infrastructure non reconnue ou semble entraîné par du contenu hostile que Claude a lu.179Le mode auto permet à Claude d'exécuter sans invites de permission de routine. Un modèle classificateur séparé examine les actions avant qu'elles ne s'exécutent, bloquant tout ce qui escalade au-delà de votre demande, cible une infrastructure non reconnue ou semble entraîné par du contenu hostile que Claude a lu. Les [règles d'ask](/fr/permissions#manage-permissions) explicites forcent toujours une invite.

180 180 

181Le mode auto instruit également Claude à continuer à travailler sans s'arrêter pour des questions de clarification, bien que Claude pose toujours des questions quand votre invite ou une compétence s'y appuie explicitement. Pour un comportement autonome plus fort tout en conservant les invites de permission, définissez plutôt le [style de sortie proactif](/fr/output-styles).181Le mode auto instruit également Claude à continuer à travailler sans s'arrêter pour des questions de clarification, bien que Claude pose toujours des questions quand votre invite ou une compétence s'y appuie explicitement. Pour un comportement autonome plus fort tout en conservant les invites de permission, définissez plutôt le [style de sortie proactif](/fr/output-styles).

182 182 


193 193 

194Si Claude Code signale le mode auto comme indisponible, l'une de ces exigences n'est pas remplie ; ce n'est pas une panne transitoire. Un message séparé qui nomme un modèle et dit que le mode auto « ne peut pas déterminer la sécurité » d'une action est une panne transitoire du classificateur ; consultez la [référence d'erreur](/fr/errors#auto-mode-cannot-determine-the-safety-of-an-action).194Si Claude Code signale le mode auto comme indisponible, l'une de ces exigences n'est pas remplie ; ce n'est pas une panne transitoire. Un message séparé qui nomme un modèle et dit que le mode auto « ne peut pas déterminer la sécurité » d'une action est une panne transitoire du classificateur ; consultez la [référence d'erreur](/fr/errors#auto-mode-cannot-determine-the-safety-of-an-action).

195 195 

196Si vous définissez `defaultMode: "auto"` dans les [paramètres](/fr/settings#available-settings) et que la session démarre en mode `default` sans erreur, le paramètre se trouve probablement dans `.claude/settings.json` ou `.claude/settings.local.json`. Claude Code ignore `auto` de ces fichiers afin qu'un dépôt ne puisse pas s'accorder le mode auto. Déplacez-le vers `~/.claude/settings.json`.196Si vous définissez `defaultMode: "auto"` dans les [paramètres](/fr/settings#available-settings) et que la session démarre en mode `default` sans erreur, le paramètre se trouve probablement dans `.claude/settings.json` ou `.claude/settings.local.json`. Claude Code v2.1.142 et ultérieur ignorent `auto` de ces fichiers afin qu'un dépôt ne puisse pas s'accorder le mode auto. Déplacez-le vers `~/.claude/settings.json`.

197 197 

198<h3 id="enable-auto-mode-on-bedrock-vertex-ai-or-foundry">198<h3 id="enable-auto-mode-on-bedrock-vertex-ai-or-foundry">

199 Activer le mode auto sur Bedrock, Vertex AI ou Foundry199 Activer le mode auto sur Bedrock, Vertex AI ou Foundry

200</h3>200</h3>

201 201 

202Sur [Amazon Bedrock](/fr/amazon-bedrock), [Google Cloud Vertex AI](/fr/google-vertex-ai) et [Microsoft Foundry](/fr/microsoft-foundry), le mode auto n'apparaît pas dans le cycle `Shift+Tab` jusqu'à ce que `CLAUDE_CODE_ENABLE_AUTO_MODE` soit défini sur `1`. Seuls Claude Opus 4.7 et Opus 4.8 sont supportés sur ces fournisseurs.202Sur [Amazon Bedrock](/fr/amazon-bedrock), [Google Cloud Vertex AI](/fr/google-vertex-ai) et [Microsoft Foundry](/fr/microsoft-foundry), le mode auto n'apparaît pas dans le cycle `Shift+Tab` jusqu'à ce que `CLAUDE_CODE_ENABLE_AUTO_MODE` soit défini sur `1`. La variable fonctionne dans Claude Code v2.1.158 et ultérieur. Seuls Claude Opus 4.7 et Opus 4.8 sont supportés sur ces fournisseurs.

203 203 

204Pour l'activer pour un développeur, ajoutez la variable au bloc `env` dans `~/.claude/settings.json` :204Pour l'activer pour un développeur, ajoutez la variable au bloc `env` dans `~/.claude/settings.json` :

205 205 


293 1. Avant qu'un sous-agent ne démarre, la description de la tâche déléguée est évaluée, donc une tâche qui semble dangereuse est bloquée au moment du lancement.293 1. Avant qu'un sous-agent ne démarre, la description de la tâche déléguée est évaluée, donc une tâche qui semble dangereuse est bloquée au moment du lancement.

294 2. Pendant que le sous-agent s'exécute, chacune de ses actions passe par le classificateur avec les mêmes règles que la session parent, et tout `permissionMode` dans le frontmatter du sous-agent est ignoré.294 2. Pendant que le sous-agent s'exécute, chacune de ses actions passe par le classificateur avec les mêmes règles que la session parent, et tout `permissionMode` dans le frontmatter du sous-agent est ignoré.

295 3. Quand le sous-agent se termine, le classificateur examine son historique d'action complet ; si cette vérification de retour signale une préoccupation, un avertissement de sécurité est ajouté aux résultats du sous-agent.295 3. Quand le sous-agent se termine, le classificateur examine son historique d'action complet ; si cette vérification de retour signale une préoccupation, un avertissement de sécurité est ajouté aux résultats du sous-agent.

296 

297 L'étape 1 nécessite Claude Code v2.1.178 ou ultérieur. Les versions antérieures appliquaient le classificateur aux étapes 2 et 3, mais n'évaluaient pas la description de la tâche avant le démarrage du sous-agent.

296 </Accordion>298 </Accordion>

297 299 

298 <Accordion title="Coût et latence">300 <Accordion title="Coût et latence">


304 Autoriser uniquement les outils pré-approuvés avec le mode dontAsk306 Autoriser uniquement les outils pré-approuvés avec le mode dontAsk

305</h2>307</h2>

306 308 

307Le mode `dontAsk` refuse automatiquement chaque appel d'outil qui inviterait autrement. Seules les actions correspondant à vos règles `permissions.allow` et les [commandes Bash en lecture seule](/fr/permissions#read-only-commands) peuvent s'exécuter ; les règles `ask` explicites sont refusées plutôt que d'inviter. Cela rend le mode entièrement non-interactif pour les pipelines CI ou les environnements restreints où vous prédéfinissez exactement ce que Claude peut faire.309Le mode `dontAsk` refuse automatiquement chaque appel d'outil qui inviterait autrement. Seules les actions correspondant à vos règles `permissions.allow` et les [commandes Bash en lecture seule](/fr/permissions#read-only-commands) peuvent s'exécuter ; les règles [`ask` explicites](/fr/permissions#manage-permissions) sont refusées plutôt que d'inviter. Cela rend le mode entièrement non-interactif pour les pipelines CI ou les environnements restreints où vous prédéfinissez exactement ce que Claude peut faire. Les sessions cloud sur [Claude Code sur le web](/fr/claude-code-on-the-web) ignorent `defaultMode: "dontAsk"` ; consultez [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) pour plus de détails.

308 310 

309Définissez-le au démarrage avec le drapeau :311Définissez-le au démarrage avec le drapeau :

310 312 


316 Ignorer toutes les vérifications avec le mode bypassPermissions318 Ignorer toutes les vérifications avec le mode bypassPermissions

317</h2>319</h2>

318 320 

319Le mode `bypassPermissions` désactive les invites de permission et les vérifications de sécurité pour que les appels d'outils s'exécutent immédiatement. À partir de la v2.1.126, cela inclut les écritures dans les [chemins protégés](#protected-paths), que les versions antérieures invitaient toujours. Les suppressions ciblant la racine du système de fichiers ou le répertoire personnel, telles que `rm -rf /` et `rm -rf ~`, invitent toujours comme disjoncteur contre les erreurs du modèle. Utilisez ce mode uniquement dans les environnements isolés comme les conteneurs, les machines virtuelles ou les devcontainers sans accès à Internet, où Claude Code ne peut pas endommager votre système hôte.321Le mode `bypassPermissions` désactive les invites de permission et les vérifications de sécurité pour que les appels d'outils s'exécutent immédiatement. À partir de la v2.1.126, cela inclut les écritures dans les [chemins protégés](#protected-paths), que les versions antérieures invitaient toujours. Les [règles ask](/fr/permissions#manage-permissions) explicites forcent toujours une invite dans ce mode, et les suppressions ciblant la racine du système de fichiers ou le répertoire personnel, telles que `rm -rf /` et `rm -rf ~`, invitent toujours comme disjoncteur contre les erreurs du modèle. Utilisez ce mode uniquement dans les environnements isolés comme les conteneurs, les machines virtuelles ou les devcontainers sans accès à Internet, où Claude Code ne peut pas endommager votre système hôte.

320 322 

321Vous ne pouvez pas entrer `bypassPermissions` à partir d'une session qui a été démarrée sans l'un des drapeaux d'activation ; redémarrez avec l'un pour l'activer :323Vous ne pouvez pas entrer `bypassPermissions` à partir d'une session qui a été démarrée sans l'un des drapeaux d'activation ; redémarrez avec l'un pour l'activer :

322 324 


334 336 

335La vérification est ignorée automatiquement à l'intérieur d'un sandbox reconnu. Pour fonctionner de manière autonome dans un conteneur, utilisez la configuration du [devcontainer](/fr/devcontainer), qui exécute Claude Code en tant qu'utilisateur non-root.337La vérification est ignorée automatiquement à l'intérieur d'un sandbox reconnu. Pour fonctionner de manière autonome dans un conteneur, utilisez la configuration du [devcontainer](/fr/devcontainer), qui exécute Claude Code en tant qu'utilisateur non-root.

336 338 

339[Claude Code sur le web](/fr/claude-code-on-the-web) n'honore pas `defaultMode: "bypassPermissions"` ou `"dontAsk"` à partir de vos fichiers de paramètres, donc les paramètres archivés d'un référentiel ne peuvent pas démarrer une session cloud en mode bypass-permissions. Le paramètre est ignoré silencieusement et la session démarre dans le mode affiché dans la liste déroulante de mode à la place. Consultez [Changer les modes de permission](#switch-permission-modes) pour connaître les modes que les sessions cloud proposent.

340 

337<Warning>341<Warning>

338 `bypassPermissions` n'offre aucune protection contre l'injection d'invite ou les actions involontaires. Pour les vérifications de sécurité en arrière-plan sans invites, utilisez le [mode auto](#eliminate-prompts-with-auto-mode) à la place. Les administrateurs peuvent bloquer ce mode en définissant `permissions.disableBypassPermissionsMode` sur `"disable"` dans les [paramètres gérés](/fr/permissions#managed-settings).342 `bypassPermissions` n'offre aucune protection contre l'injection d'invite ou les actions involontaires. Pour les vérifications de sécurité en arrière-plan avec beaucoup moins d'invites, utilisez le [mode auto](#eliminate-prompts-with-auto-mode) à la place. Les administrateurs peuvent bloquer ce mode en définissant `permissions.disableBypassPermissionsMode` sur `"disable"` dans les [paramètres gérés](/fr/permissions#managed-settings).

339</Warning>343</Warning>

340 344 

341<h2 id="protected-paths">345<h2 id="protected-paths">


351| `dontAsk` | Refusées |355| `dontAsk` | Refusées |

352| `bypassPermissions` | Autorisées |356| `bypassPermissions` | Autorisées |

353 357 

358Les règles [`permissions.allow`](/fr/permissions#manage-permissions) dans les fichiers de paramètres ne pré-approuvent pas les écritures de chemins protégés. La vérification de sécurité s'exécute avant que Claude Code n'évalue les règles allow des paramètres, donc une entrée telle que `Edit(.claude/**)` dans `~/.claude/settings.json` ou `.claude/settings.json` ne change pas le résultat par mode dans le tableau ci-dessus. Dans les modes qui invitent, l'invite pour une écriture `.claude/` offre **Oui, et autoriser Claude à modifier ses propres paramètres pour cette session**, ce qui approuve les écritures `.claude/` ultérieures dans cette session sans inviter à nouveau.

359 

354Répertoires protégés :360Répertoires protégés :

355 361 

356* `.git`362* `.git`


362* `.devcontainer`368* `.devcontainer`

363* `.yarn`369* `.yarn`

364* `.mvn`370* `.mvn`

365* `.claude`, sauf pour `.claude/commands`, `.claude/agents`, `.claude/skills` et `.claude/worktrees` où Claude crée régulièrement du contenu371* `.claude`, sauf pour `.claude/worktrees` où Claude stocke ses propres git worktrees

366 372 

367Fichiers protégés :373Fichiers protégés :

368 374 

permissions.md +81 −9

Details

30* Les règles **Ask** demandent une confirmation chaque fois que Claude Code essaie d'utiliser l'outil spécifié.30* Les règles **Ask** demandent une confirmation chaque fois que Claude Code essaie d'utiliser l'outil spécifié.

31* Les règles **Deny** empêchent Claude Code d'utiliser l'outil spécifié.31* Les règles **Deny** empêchent Claude Code d'utiliser l'outil spécifié.

32 32 

33Les règles sont évaluées dans l'ordre : **deny -> ask -> allow**. La première règle correspondante gagne, donc les règles de refus ont toujours la priorité.33Les règles sont évaluées dans l'ordre : deny, puis ask, puis allow. La première correspondance dans cet ordre détermine le résultat, et la spécificité de la règle ne change pas l'ordre. Une règle deny large comme `Bash(aws *)` bloque chaque appel correspondant, y compris les appels qui correspondent également à une règle allow plus étroite comme `Bash(aws s3 ls)`, donc une règle deny ne peut pas comporter d'exceptions de liste d'autorisation. La même priorité s'applique entre ask et allow : une règle ask correspondante demande une confirmation même lorsqu'une règle allow plus spécifique correspond également au même appel.

34 34 

35Les règles de refus se comportent différemment selon qu'elles nomment un outil ou qu'elles délimitent un motif au sein de celui-ci. Un nom d'outil simple comme `Bash` supprime l'outil du contexte de Claude entièrement, donc Claude ne le voit jamais. Une règle délimitée comme `Bash(rm *)` laisse l'outil disponible et bloque les appels correspondants lorsque Claude essaie de les utiliser.35Les règles deny se comportent différemment selon qu'elles nomment un outil ou qu'elles délimitent un motif au sein de celui-ci. Un nom d'outil simple comme `Bash` supprime l'outil du contexte de Claude entièrement, donc Claude ne le voit jamais. Une règle délimitée comme `Bash(rm *)` laisse l'outil disponible et bloque les appels correspondants lorsque Claude essaie de les utiliser.

36 36 

37<Note>37<Note>

38 Les règles d'autorisation sont appliquées par Claude Code, et non par le modèle. Les instructions dans votre prompt ou `CLAUDE.md` façonnent ce que Claude essaie de faire, mais elles ne changent pas ce que Claude Code autorise. Pour accorder ou révoquer l'accès, utilisez `/permissions`, les règles décrites ici, un [mode d'autorisation](/fr/permission-modes), ou un [hook PreToolUse](#extend-permissions-with-hooks).38 Les règles d'autorisation sont appliquées par Claude Code, et non par le modèle. Les instructions dans votre prompt ou `CLAUDE.md` façonnent ce que Claude essaie de faire, mais elles ne changent pas ce que Claude Code autorise. Pour accorder ou révoquer l'accès, utilisez `/permissions`, les règles décrites ici, un [mode d'autorisation](/fr/permission-modes), ou un [hook PreToolUse](#extend-permissions-with-hooks).


45Claude Code prend en charge plusieurs modes d'autorisation qui contrôlent la façon dont les outils sont approuvés. Consultez [Modes d'autorisation](/fr/permission-modes) pour savoir quand utiliser chacun. Définissez le `defaultMode` dans vos [fichiers de paramètres](/fr/settings#settings-files) :45Claude Code prend en charge plusieurs modes d'autorisation qui contrôlent la façon dont les outils sont approuvés. Consultez [Modes d'autorisation](/fr/permission-modes) pour savoir quand utiliser chacun. Définissez le `defaultMode` dans vos [fichiers de paramètres](/fr/settings#settings-files) :

46 46 

47| Mode | Description |47| Mode | Description |

48| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |48| :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

49| `default` | Comportement standard : demande une autorisation à la première utilisation de chaque outil |49| `default` | Comportement standard : demande une autorisation à la première utilisation de chaque outil |

50| `acceptEdits` | Accepte automatiquement les éditions de fichiers et les commandes courantes du système de fichiers (`mkdir`, `touch`, `mv`, `cp`, etc.) pour les chemins du répertoire de travail ou `additionalDirectories` |50| `acceptEdits` | Accepte automatiquement les éditions de fichiers et les commandes courantes du système de fichiers (`mkdir`, `touch`, `mv`, `cp`, etc.) pour les chemins du répertoire de travail ou `additionalDirectories` |

51| `plan` | Plan Mode : Claude lit les fichiers et exécute les commandes shell en lecture seule pour explorer mais n'édite pas vos fichiers source |51| `plan` | Plan Mode : Claude lit les fichiers et exécute les commandes shell en lecture seule pour explorer mais n'édite pas vos fichiers source |

52| `auto` | Approuve automatiquement les appels d'outils avec des vérifications de sécurité en arrière-plan qui vérifient que les actions s'alignent avec votre demande. Actuellement un aperçu de recherche |52| `auto` | Approuve automatiquement les appels d'outils avec des vérifications de sécurité en arrière-plan qui vérifient que les actions s'alignent avec votre demande. Actuellement un aperçu de recherche |

53| `dontAsk` | Refuse automatiquement les outils sauf s'ils sont pré-approuvés via `/permissions` ou les règles `permissions.allow` |53| `dontAsk` | Refuse automatiquement les outils sauf s'ils sont pré-approuvés via `/permissions` ou les règles `permissions.allow` |

54| `bypassPermissions` | Ignore tous les invites d'autorisation. Les suppressions ciblant la racine du système de fichiers ou le répertoire personnel, comme `rm -rf /` et `rm -rf ~`, demandent toujours comme disjoncteur de sécurité |54| `bypassPermissions` | Ignore les invites d'autorisation, sauf celles forcées par les règles `ask` explicites. Les suppressions ciblant la racine du système de fichiers ou le répertoire personnel, comme `rm -rf /` et `rm -rf ~`, demandent toujours comme disjoncteur de sécurité |

55 55 

56<Warning>56<Warning>

57 Le mode `bypassPermissions` ignore tous les invites d'autorisation, y compris les écritures dans `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` et `.mvn`. Les suppressions ciblant la racine du système de fichiers ou le répertoire personnel, comme `rm -rf /` et `rm -rf ~`, demandent toujours comme disjoncteur de sécurité contre l'erreur du modèle. Utilisez ce mode uniquement dans des environnements isolés comme les conteneurs ou les machines virtuelles où Claude Code ne peut pas causer de dommages. Les administrateurs peuvent empêcher ce mode en définissant `permissions.disableBypassPermissionsMode` sur `"disable"` dans les [paramètres gérés](#managed-settings).57 Le mode `bypassPermissions` ignore les invites d'autorisation, y compris les écritures dans `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` et `.mvn`. Les règles `ask` explicites forcent toujours une invite, et les suppressions ciblant la racine du système de fichiers ou le répertoire personnel, comme `rm -rf /` et `rm -rf ~`, demandent toujours comme disjoncteur de sécurité contre l'erreur du modèle. Utilisez ce mode uniquement dans des environnements isolés comme les conteneurs ou les machines virtuelles où Claude Code ne peut pas causer de dommages. Les administrateurs peuvent empêcher ce mode en définissant `permissions.disableBypassPermissionsMode` sur `"disable"` dans les [paramètres gérés](#managed-settings).

58</Warning>58</Warning>

59 59 

60Pour empêcher le mode `bypassPermissions` ou `auto` d'être utilisé, définissez `permissions.disableBypassPermissionsMode` ou `permissions.disableAutoMode` sur `"disable"` dans n'importe quel [fichier de paramètres](/fr/settings#settings-files). Ces paramètres sont particulièrement utiles dans les [paramètres gérés](#managed-settings) où ils ne peuvent pas être remplacés.60Pour empêcher le mode `bypassPermissions` ou `auto` d'être utilisé, définissez `permissions.disableBypassPermissionsMode` ou `permissions.disableAutoMode` sur `"disable"` dans n'importe quel [fichier de paramètres](/fr/settings#settings-files). Ces paramètres sont particulièrement utiles dans les [paramètres gérés](#managed-settings) où ils ne peuvent pas être remplacés.


91| `Read(./.env)` | Correspond à la lecture du fichier `.env` dans le répertoire courant |91| `Read(./.env)` | Correspond à la lecture du fichier `.env` dans le répertoire courant |

92| `WebFetch(domain:example.com)` | Correspond aux demandes de récupération vers example.com |92| `WebFetch(domain:example.com)` | Correspond aux demandes de récupération vers example.com |

93 93 

94<h3 id="match-by-input-parameter">

95 Correspondre par paramètre d'entrée

96</h3>

97 

98Les règles de refus et de demande peuvent correspondre à un paramètre d'entrée de haut niveau sur n'importe quel outil avec `Tool(param:value)`. La règle correspond lorsque Claude appelle l'outil avec ce paramètre défini sur cette valeur exacte. Cette syntaxe est destinée aux règles de refus et de demande ; une règle d'autorisation pour une valeur de paramètre n'établirait pas que l'appel est sûr dans l'ensemble, donc les règles d'autorisation continuent à utiliser la syntaxe de spécificateur propre à chaque outil. Cela fonctionne pour n'importe quel paramètre scalaire que l'outil accepte :

99 

100| Règle | Correspond |

101| :----------------------------- | :------------------------------------------------------ |

102| `Agent(model:opus)` | Les appels Agent qui demandent le niveau de modèle Opus |

103| `Agent(isolation:worktree)` | Les appels Agent qui demandent une arborescence git |

104| `Bash(run_in_background:true)` | Les appels Bash qui s'exécutent en arrière-plan |

105 

106La correspondance des paramètres suit ces règles :

107 

108* Le nom du paramètre doit être un champ direct de l'entrée de l'outil, tel que `model` sur l'outil Agent. Les champs imbriqués dans un objet ou un tableau ne sont pas correspondables

109* Chaque règle nomme un paramètre. Pour contrôler à la fois `model` et `isolation`, écrivez deux règles, `Agent(model:opus)` et `Agent(isolation:worktree)`, plutôt que de les combiner dans une seule règle

110* La valeur prend en charge `*` comme caractère générique qui correspond à n'importe quelle séquence de caractères, donc `Agent(isolation:*)` correspond à n'importe quelle valeur d'isolation explicite. Sans `*`, la correspondance est exacte

111* Un paramètre que le modèle omet n'est jamais mis en correspondance, donc `Agent(model:*)` ne correspond pas à un appel qui laisse `model` non défini

112* La valeur est comparée à l'entrée littérale que Claude envoie, avant toute normalisation. `Agent(model:opus)` correspond à l'alias `opus` mais pas à un ID de modèle complet. Exécutez avec [`--verbose`](/fr/cli-reference) pour voir les noms et valeurs de paramètres exacts dans chaque appel d'outil

113* L'espace blanc autour du deux-points est ignoré

114 

115Les champs qu'un outil correspond déjà avec ses propres règles de canonicalisation ne sont pas correspondables de cette façon : `command` pour Bash et PowerShell, `file_path` pour Read, Edit et Write, `path` pour Grep et Glob, `notebook_path` pour NotebookEdit, et `url` pour WebFetch. Une règle comme `Bash(command:rm *)` serait contournable par une commande composée, donc Claude Code l'ignore et émet un avertissement au démarrage. Utilisez plutôt `Bash(rm *)`, `Read(./path)`, ou `WebFetch(domain:host)`.

116 

94<h3 id="wildcard-patterns">117<h3 id="wildcard-patterns">

95 Modèles de caractères génériques118 Modèles de caractères génériques

96</h3>119</h3>


118 141 

119La boîte de dialogue d'autorisation écrit la forme séparée par des espaces lorsque vous sélectionnez « Oui, ne pas demander à nouveau » pour un préfixe de commande. La forme `:*` n'est reconnue qu'à la fin d'un modèle. Dans un modèle comme `Bash(git:* push)`, le deux-points est traité comme un caractère littéral et ne correspondra pas aux commandes git.142La boîte de dialogue d'autorisation écrit la forme séparée par des espaces lorsque vous sélectionnez « Oui, ne pas demander à nouveau » pour un préfixe de commande. La forme `:*` n'est reconnue qu'à la fin d'un modèle. Dans un modèle comme `Bash(git:* push)`, le deux-points est traité comme un caractère littéral et ne correspondra pas aux commandes git.

120 143 

144<h3 id="tool-name-wildcards">

145 Caractères génériques de nom d'outil

146</h3>

147 

148Les règles de refus et de demande acceptent également les modèles glob dans la position du nom d'outil. Le modèle doit correspondre au nom d'outil complet : `"*"` correspond à chaque outil, et `"mcp__*"` correspond à chaque outil MCP sur tous les serveurs. Un outil correspondant à une règle de refus de nom nu est supprimé du contexte de Claude, de la même manière qu'un nom d'outil nu. Cette configuration refuse chaque outil MCP :

149 

150```json theme={null}

151{

152 "permissions": {

153 "deny": [

154 "mcp__*"

155 ]

156 }

157}

158```

159 

160Les règles d'autorisation acceptent les globs de nom d'outil uniquement après un préfixe littéral `mcp__<server>__`. Le segment serveur doit être exempt de glob afin que la règle nomme un serveur spécifique que vous avez configuré. `mcp__puppeteer__*` correspond à chaque outil du serveur `puppeteer`, et `mcp__github__get_*` correspond à ses outils `get_`. Un glob d'autorisation non ancré tel que `"*"`, `"B*"`, ou `"mcp__*"` est ignoré avec un avertissement et n'approuve automatiquement rien.

161 

162Une règle de refus ou de demande dont le nom d'outil ne correspond à aucun outil connu produit un avertissement au démarrage pour détecter les fautes de frappe. Les noms d'outils contenant `_` ou `*` sont exemptés de la vérification.

163 

164L'étiquette affichée pour un outil dans la transcription et la boîte de dialogue d'autorisation peut différer de son nom canonique. Par exemple, l'outil étiqueté `Stop Task` dans la transcription a le nom canonique `TaskStop`. Les règles d'autorisation et les [correspondances de hook](/fr/hooks) correspondent uniquement au nom canonique, donc une règle écrite comme `Stop Task` ne correspond pas. Pour les règles de refus et de demande, l'avertissement au démarrage ci-dessus détecte l'inadéquation. Utilisez les noms canoniques listés dans la [référence des outils](/fr/tools-reference).

165 

121<h2 id="tool-specific-permission-rules">166<h2 id="tool-specific-permission-rules">

122 Règles d'autorisation spécifiques aux outils167 Règles d'autorisation spécifiques aux outils

123</h2>168</h2>


252| `Read(//**/.env)` | tout `.env` n'importe où sur le système de fichiers | rien ; la règle est ancrée à la racine du système de fichiers |297| `Read(//**/.env)` | tout `.env` n'importe où sur le système de fichiers | rien ; la règle est ancrée à la racine du système de fichiers |

253 298 

254<Note>299<Note>

255 Dans les modèles gitignore, `*` correspond aux fichiers dans un seul répertoire tandis que `**` correspond récursivement dans les répertoires. Pour autoriser tous les accès aux fichiers, utilisez simplement le nom de l'outil sans parenthèses : `Read`, `Edit` ou `Write`.300 Dans les modèles gitignore, `*` correspond aux fichiers dans un seul segment de chemin et peut apparaître à n'importe quelle position du modèle, tandis que `**` correspond sur les répertoires. Pour autoriser tous les accès aux fichiers, utilisez simplement le nom de l'outil sans parenthèses : `Read`, `Edit` ou `Write`.

256</Note>301</Note>

257 302 

258Lorsque Claude accède à un lien symbolique, les règles d'autorisation vérifient deux chemins : le lien symbolique lui-même et le fichier vers lequel il se résout. Les règles d'autorisation et de refus traitent cette paire différemment : les règles d'autorisation reviennent à vous inviter, tandis que les règles de refus bloquent carrément.303Lorsque Claude accède à un lien symbolique, les règles d'autorisation vérifient deux chemins : le lien symbolique lui-même et le fichier vers lequel il se résout. Les règles d'autorisation et de refus traitent cette paire différemment : les règles d'autorisation reviennent à vous inviter, tandis que les règles de refus bloquent carrément.


266 WebFetch311 WebFetch

267</h3>312</h3>

268 313 

269* `WebFetch(domain:example.com)` correspond aux demandes de récupération vers example.com314Les règles WebFetch utilisent un préfixe `domain:` et correspondent au nom d'hôte de l'URL demandée. La correspondance est insensible à la casse, prend en charge les caractères génériques `*` et supprime un point final des deux côtés de la règle et du nom d'hôte afin que `example.com.` et `example.com` soient traités de la même manière.

315 

316* `WebFetch(domain:example.com)` correspond aux demandes vers `example.com`

317* `WebFetch(domain:*.example.com)` correspond à tout sous-domaine à n'importe quelle profondeur, comme `api.example.com` ou `a.b.example.com`, mais pas à `example.com` lui-même

318* `WebFetch(domain:*)` correspond à chaque domaine et est équivalent à une règle `WebFetch` nu

319 

320En toute position autre qu'un `*.` initial ou un `*` nu, le caractère générique correspond uniquement au texte entre deux points. `WebFetch(domain:example.*)` correspond à `example.org`, où `*` devient `org`, mais pas à `example.evil.com`, où `*` devrait devenir `evil.com` et traverser un point. Cela empêche un caractère générique de fin de correspondre à des domaines qu'un attaquant pourrait enregistrer.

270 321 

271<h3 id="mcp">322<h3 id="mcp">

272 MCP323 MCP


296}347}

297```348```

298 349 

350<h3 id="cd">

351 Cd

352</h3>

353 

354Les règles `Cd` contrôlent les répertoires vers lesquels la [commande `/cd`](/fr/commands) peut déplacer la session. `Cd` n'est pas un outil invocable par le modèle : Claude ne peut pas l'appeler, et les règles s'appliquent uniquement lorsque vous exécutez `/cd` vous-même.

355 

356Une règle de refus `Cd` nu désactive `/cd` entièrement. Une règle de refus `Cd(<path-pattern>)` bloque les cibles correspondantes. Les règles de refus vérifient chaque orthographe de la cible, y compris chaque saut de lien symbolique qu'elle résout, donc une règle écrite pour un chemin bloque également les cibles qui s'y résolvent.

357 

358L'ajout de toute règle d'autorisation `Cd` bascule `/cd` en mode liste blanche : le répertoire cible résolu doit correspondre à l'une de vos règles d'autorisation, ou `/cd` refuse. Sans règles `Cd` configurées, `/cd` conserve son comportement par défaut et vous invite à faire confiance à un répertoire inconnu.

359 

360Les modèles de chemin partagent les ancrages `//`, `~/` et `/` des [règles Read et Edit](#read-and-edit), mais la correspondance est ancrée au chemin du répertoire entier plutôt qu'au style gitignore. `*` correspond à exactement un segment de chemin et `**` correspond sur les segments. Un `/**` de fin correspond également à sa racine nommée.

361 

362| Règle | Correspond | Ne correspond pas |

363| --------------------- | ------------------------------------------------------------ | --------------------------------- |

364| `Cd(~/code/*)` | `~/code/app` | `~/code/app/src`, `~/code` |

365| `Cd(~/code/**)` | `~/code` et tout répertoire sous celui-ci | répertoires en dehors de `~/code` |

366| `Cd(**/node_modules)` | tout répertoire `node_modules` à n'importe quelle profondeur | `node_modules/pkg` |

367 

299<h2 id="extend-permissions-with-hooks">368<h2 id="extend-permissions-with-hooks">

300 Étendre les autorisations avec des hooks369 Étendre les autorisations avec des hooks

301</h2>370</h2>


318 387 

319Les fichiers dans les répertoires supplémentaires suivent les mêmes règles d'autorisation que le répertoire de travail d'origine : ils deviennent lisibles sans invites, et les autorisations d'édition de fichiers suivent le mode d'autorisation actuel.388Les fichiers dans les répertoires supplémentaires suivent les mêmes règles d'autorisation que le répertoire de travail d'origine : ils deviennent lisibles sans invites, et les autorisations d'édition de fichiers suivent le mode d'autorisation actuel.

320 389 

390Pour modifier le répertoire de travail principal de la session au lieu d'en ajouter un autre, utilisez [`/cd`](/fr/commands). La commande `/cd` nécessite Claude Code v2.1.169 ou version ultérieure. Contrairement à `/add-dir`, elle relocalise la session : le `CLAUDE.md` du nouveau répertoire est chargé et `--resume` trouve la session à partir de là.

391 

321<h3 id="additional-directories-grant-file-access-not-configuration">392<h3 id="additional-directories-grant-file-access-not-configuration">

322 Les répertoires supplémentaires accordent l'accès aux fichiers, pas la configuration393 Les répertoires supplémentaires accordent l'accès aux fichiers, pas la configuration

323</h3>394</h3>


331| Configuration | Chargé à partir de `--add-dir` |402| Configuration | Chargé à partir de `--add-dir` |

332| :---------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- |403| :---------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

333| [Skills](/fr/skills) dans `.claude/skills/` | Oui, avec rechargement en direct |404| [Skills](/fr/skills) dans `.claude/skills/` | Oui, avec rechargement en direct |

405| [Subagents](/fr/sub-agents) dans `.claude/agents/` | Oui |

334| Paramètres de plugin dans `.claude/settings.json` | `enabledPlugins` et `extraKnownMarketplaces` uniquement |406| Paramètres de plugin dans `.claude/settings.json` | `enabledPlugins` et `extraKnownMarketplaces` uniquement |

335| Fichiers [CLAUDE.md](/fr/memory), `.claude/rules/` et `CLAUDE.local.md` | Uniquement lorsque `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` est défini. `CLAUDE.local.md` nécessite également le paramètre `local`, qui est activé par défaut |407| Fichiers [CLAUDE.md](/fr/memory), `.claude/rules/` et `CLAUDE.local.md` | Uniquement lorsque `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1` est défini. `CLAUDE.local.md` nécessite également le paramètre `local`, qui est activé par défaut |

336 408 

337Les subagents, les commandes et les styles de sortie sont découverts à partir du répertoire de travail actuel et de ses parents, de votre répertoire utilisateur à `~/.claude/` et des paramètres gérés. Les hooks et d'autres clés `settings.json` se chargent à partir du dossier `.claude/` du répertoire de travail actuel sans secours au répertoire parent, aux côtés de votre `~/.claude/settings.json` utilisateur et des paramètres gérés. Pour partager cette configuration entre les projets, utilisez l'une de ces approches :409Les commandes et les styles de sortie sont découverts à partir du répertoire de travail actuel et de ses parents, de votre répertoire utilisateur à `~/.claude/` et des paramètres gérés. Les hooks et d'autres clés `settings.json` se chargent à partir du dossier `.claude/` du répertoire de travail actuel sans secours au répertoire parent, aux côtés de votre `~/.claude/settings.json` utilisateur et des paramètres gérés. Pour partager cette configuration entre les projets, utilisez l'une de ces approches :

338 410 

339* **Configuration au niveau utilisateur** : placez les fichiers dans `~/.claude/agents/`, `~/.claude/output-styles/` ou `~/.claude/settings.json` pour les rendre disponibles dans chaque projet411* **Configuration au niveau utilisateur** : placez les fichiers dans `~/.claude/agents/`, `~/.claude/output-styles/` ou `~/.claude/settings.json` pour les rendre disponibles dans chaque projet

340* **Plugins** : empaquetez et distribuez la configuration en tant que [plugin](/fr/plugins) que les équipes peuvent installer412* **Plugins** : empaquetez et distribuez la configuration en tant que [plugin](/fr/plugins) que les équipes peuvent installer


356* Les restrictions du système de fichiers dans le sandbox combinent les paramètres [`sandbox.filesystem`](/fr/sandboxing) avec les règles de refus Read et Edit ; les deux sont fusionnées dans la limite finale du sandbox428* Les restrictions du système de fichiers dans le sandbox combinent les paramètres [`sandbox.filesystem`](/fr/sandboxing) avec les règles de refus Read et Edit ; les deux sont fusionnées dans la limite finale du sandbox

357* Les restrictions réseau combinent les règles d'autorisation WebFetch avec les listes `allowedDomains` et `deniedDomains` du sandbox429* Les restrictions réseau combinent les règles d'autorisation WebFetch avec les listes `allowedDomains` et `deniedDomains` du sandbox

358 430 

359Lorsque le sandboxing est activé avec `autoAllowBashIfSandboxed: true`, qui est la valeur par défaut, les commandes Bash en sandbox s'exécutent sans invite même si vos autorisations incluent `ask: Bash(*)`. La limite du sandbox remplace l'invite par commande. Les règles de refus explicites s'appliquent toujours, et les commandes `rm` ou `rmdir` qui ciblent `/`, votre répertoire personnel ou d'autres chemins système critiques déclenchent toujours une invite. Consultez [modes sandbox](/fr/sandboxing#sandbox-modes) pour modifier ce comportement.431Lorsque le sandboxing est activé avec `autoAllowBashIfSandboxed: true`, qui est la valeur par défaut, les commandes Bash en sandbox s'exécutent sans invite même si vos autorisations incluent une règle ask `Bash` simple, ou la [forme équivalente `Bash(*)`](#match-all-uses-of-a-tool) : la limite du sandbox remplace cette invite pour l'outil entier. Les règles ask limitées au contenu comme `Bash(git push *)` forcent toujours une invite, les règles de refus explicites s'appliquent toujours, et les commandes `rm` ou `rmdir` qui ciblent `/`, votre répertoire personnel ou d'autres chemins système critiques déclenchent toujours une invite. Les commandes qui ne s'exécutent pas en sandbox, comme les commandes exclues, respectent la règle ask `Bash` simple comme d'habitude. Consultez [modes sandbox](/fr/sandboxing#sandbox-modes) pour modifier ce comportement.

360 432 

361<h2 id="managed-settings">433<h2 id="managed-settings">

362 Paramètres gérés434 Paramètres gérés

platforms.md +1 −1

Details

23| [Web](/fr/claude-code-on-the-web) | Tâches longues qui ne nécessitent pas beaucoup de direction, ou travail qui devrait continuer quand vous êtes hors ligne | Cloud géré par Anthropic, continue après votre déconnexion |23| [Web](/fr/claude-code-on-the-web) | Tâches longues qui ne nécessitent pas beaucoup de direction, ou travail qui devrait continuer quand vous êtes hors ligne | Cloud géré par Anthropic, continue après votre déconnexion |

24| Mobile | Démarrer et surveiller les tâches loin de votre ordinateur | Sessions cloud depuis l'application Claude pour iOS et Android, [Remote Control](/fr/remote-control) pour les sessions locales, [Dispatch](/fr/desktop#sessions-from-dispatch) vers Desktop sur Pro et Max |24| Mobile | Démarrer et surveiller les tâches loin de votre ordinateur | Sessions cloud depuis l'application Claude pour iOS et Android, [Remote Control](/fr/remote-control) pour les sessions locales, [Dispatch](/fr/desktop#sessions-from-dispatch) vers Desktop sur Pro et Max |

25 25 

26Le CLI est la surface la plus complète pour le travail natif en terminal : les scripts et l'Agent SDK sont exclusifs au CLI. Les fournisseurs tiers fonctionnent également dans [VS Code](/fr/vs-code#use-third-party-providers). Les déploiements [Desktop](/fr/desktop) d'entreprise prennent en charge Vertex AI et les fournisseurs de passerelle ; pour Bedrock ou Foundry, utilisez le CLI ou VS Code à la place de Desktop. Desktop et les extensions IDE échangent certaines fonctionnalités exclusives au CLI contre un examen visuel et une intégration plus étroite de l'éditeur. Le web s'exécute dans le cloud d'Anthropic, donc les tâches continuent après votre déconnexion. Mobile est un client léger dans ces mêmes sessions cloud ou dans une session locale via Remote Control, et peut envoyer des tâches à Desktop avec Dispatch.26Le CLI est la surface la plus complète pour le travail natif en terminal : les scripts et l'Agent SDK sont exclusifs au CLI. Les fournisseurs tiers fonctionnent également dans [VS Code](/fr/vs-code#use-third-party-providers). Les déploiements [Desktop](/fr/desktop) d'entreprise prennent en charge Vertex AI et les fournisseurs de passerelle ; pour Bedrock ou Foundry, utilisez le CLI ou VS Code, ou la [Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview), qui exécute l'onglet Code sur ces fournisseurs. Desktop et les extensions IDE échangent certaines fonctionnalités exclusives au CLI contre un examen visuel et une intégration plus étroite de l'éditeur. Le web s'exécute dans le cloud d'Anthropic, donc les tâches continuent après votre déconnexion. Mobile est un client léger dans ces mêmes sessions cloud ou dans une session locale via Remote Control, et peut envoyer des tâches à Desktop avec Dispatch.

27 27 

28Vous pouvez mélanger les surfaces sur le même projet. La configuration, la mémoire du projet et les serveurs MCP sont partagés entre les surfaces locales.28Vous pouvez mélanger les surfaces sur le même projet. La configuration, la mémoire du projet et les serveurs MCP sont partagés entre les surfaces locales.

29 29 

plugin-hints.md +7 −4

Details

16 Fonctionnement16 Fonctionnement

17</h2>17</h2>

18 18 

19Claude Code définit la variable d'environnement [`CLAUDECODE`](/fr/env-vars) à `1` pour chaque commande qu'elle exécute via les outils Bash et PowerShell, et pour les commandes [hook](/fr/hooks). Lorsque votre CLI voit cette variable, elle écrit une balise auto-fermante `<claude-code-hint />` sur stderr. Dans les commandes hook, la balise d'indice est supprimée et ignorée. Seule la sortie des outils Bash et PowerShell déclenche l'invite d'installation.19Claude Code définit la variable d'environnement [`CLAUDECODE`](/fr/env-vars) à `1` pour chaque commande qu'elle exécute via les outils Bash et PowerShell, et pour les commandes [hook](/fr/hooks). {/* min-version: 2.1.172 */}À partir de la v2.1.172, elle définit également [`CLAUDE_CODE_CHILD_SESSION`](/fr/env-vars) à `1` dans ces mêmes sous-processus. Lorsque votre CLI voit l'une de ces variables, elle écrit une balise auto-fermante `<claude-code-hint />` sur stderr. Dans les commandes hook, la balise d'indice est supprimée et ignorée. Seule la sortie des outils Bash et PowerShell déclenche l'invite d'installation.

20 20 

21Lorsque Claude Code reçoit la sortie de la commande, elle :21Lorsque Claude Code reçoit la sortie de la commande, elle :

22 22 


31 Émettre l'indice31 Émettre l'indice

32</h2>32</h2>

33 33 

34Conditionnez l'émission sur la variable d'environnement `CLAUDECODE` afin que le marqueur n'apparaisse jamais dans le terminal d'un utilisateur humain. Ensuite, écrivez la balise sur stderr sur sa propre ligne.34Conditionnez l'émission sur une variable d'environnement afin que le marqueur n'apparaisse pas lorsqu'un utilisateur humain exécute directement votre CLI, puis écrivez la balise sur stderr sur sa propre ligne. Choisissez la variable à vérifier :

35 35 

36Les exemples suivants émettent un indice pour un plugin nommé `example-cli` dans la marketplace officielle :36* `CLAUDECODE` : définie sur chaque version de Claude Code, elle atteint donc le plus de sessions. Elle est également définie dans les sessions tmux et les sous-processus du serveur MCP stdio que Claude Code démarre. Les extensions IDE la définissent également dans leurs terminaux intégrés, où un utilisateur humain peut exécuter directement votre CLI.

37* {/* min-version: 2.1.172 */}`CLAUDE_CODE_CHILD_SESSION` : définie uniquement dans les sous-processus que Claude Code lui-même génère, tels que les appels d'outils, les commandes hook et les commandes de [ligne d'état](/fr/statusline), de sorte que la balise n'atteint normalement pas un terminal humain. Un processus de longue durée qui a été démarré à l'intérieur d'une session, tel qu'un serveur tmux, capture la variable, de sorte que les shells lancés ultérieurement à partir de ce processus affichent toujours la balise brute. Nécessite Claude Code v2.1.172 ou version ultérieure, de sorte que les sessions sur les versions antérieures manquent l'indice.

38 

39Les exemples suivants conditionnent sur `CLAUDECODE` pour une portée maximale et émettent un indice pour un plugin nommé `example-cli` dans la marketplace officielle :

37 40 

38<CodeGroup>41<CodeGroup>

39 ```javascript Node.js theme={null}42 ```javascript Node.js theme={null}


147Les conseils restants sont recommandés mais non appliqués. Claude Code ne peut pas observer si votre CLI les suit :150Les conseils restants sont recommandés mais non appliqués. Claude Code ne peut pas observer si votre CLI les suit :

148 151 

149* **Écrire sur stderr** : stderr garde la balise hors des pipelines shell tels que `example-cli deploy | jq`. Claude Code analyse les deux flux, donc stdout fonctionne aussi.152* **Écrire sur stderr** : stderr garde la balise hors des pipelines shell tels que `example-cli deploy | jq`. Claude Code analyse les deux flux, donc stdout fonctionne aussi.

150* **Conditionner sur `CLAUDECODE`** : n'émettez que lorsque la variable d'environnement `CLAUDECODE` est définie. Cela empêche le marqueur d'apparaître aux utilisateurs exécutant votre CLI directement.153* **Conditionner sur une variable d'environnement** : n'émettez que lorsque `CLAUDECODE` ou `CLAUDE_CODE_CHILD_SESSION` est défini. Consultez [Émettre l'indice](#emit-the-hint) pour savoir comment les deux variables diffèrent.

151 154 

152<h2 id="get-your-plugin-into-the-official-marketplace">155<h2 id="get-your-plugin-into-the-official-marketplace">

153 Obtenir votre plugin dans la marketplace officielle156 Obtenir votre plugin dans la marketplace officielle

Details

69 ```69 ```

70 70 

71 <Note>71 <Note>

72 La définition de `version` signifie que les utilisateurs ne reçoivent des mises à jour que lorsque vous modifiez ce champ, donc augmentez-le à chaque version. Si vous omettez `version` et hébergez cette place de marché dans git, chaque commit compte automatiquement comme une nouvelle version. Consultez [Version resolution](#version-resolution-and-release-channels) pour choisir la bonne approche.72 La définition de `version` signifie que les utilisateurs ne reçoivent des mises à jour que lorsque vous modifiez ce champ, donc augmentez-le à chaque version. Si vous omettez `version` et hébergez cette place de marché dans git, chaque commit compte automatiquement comme une nouvelle version. Consultez [Résolution de version](#version-resolution-and-release-channels) pour choisir la bonne approche.

73 </Note>73 </Note>

74 </Step>74 </Step>

75 75 


171| `plugins` | array | Liste des plugins disponibles | Voir ci-dessous |171| `plugins` | array | Liste des plugins disponibles | Voir ci-dessous |

172 172 

173<Note>173<Note>

174 **Noms réservés** : Les noms de place de marché suivants sont réservés à l'usage officiel d'Anthropic et ne peuvent pas être utilisés par les places de marché tierces : `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`. Les noms qui usurpent l'identité de places de marché officielles, comme `official-claude-plugins` ou `anthropic-tools-v2`, sont également bloqués.174 **Noms réservés** : Les noms de place de marché suivants sont réservés à l'usage officiel d'Anthropic et ne peuvent pas être utilisés par les places de marché tierces : `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`. Les noms qui usurpent l'identité de places de marché officielles, comme `official-claude-plugins` ou `anthropic-tools-v2`, sont également bloqués.

175</Note>175</Note>

176 176 

177<h3 id="owner-fields">177<h3 id="owner-fields">


254 254 

255| Source | Type | Champs | Notes |255| Source | Type | Champs | Notes |

256| -------------- | -------------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |256| -------------- | -------------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

257| Chemin relatif | `string` (par exemple `"./my-plugin"`) | | Répertoire local dans le dépôt de la place de marché. Doit commencer par `./`. Résolu par rapport à la racine de la place de marché, pas au répertoire `.claude-plugin/` |257| Chemin relatif | `string` (par exemple `"./my-plugin"`) | aucun | Répertoire local dans le dépôt de la place de marché. Doit commencer par `./`. Résolu par rapport à la racine de la place de marché, pas au répertoire `.claude-plugin/` |

258| `github` | object | `repo`, `ref?`, `sha?` | |258| `github` | object | `repo`, `ref?`, `sha?` | |

259| `url` | object | `url`, `ref?`, `sha?` | Source d'URL Git |259| `url` | object | `url`, `ref?`, `sha?` | Source d'URL Git |

260| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Sous-répertoire dans un dépôt git. Clone partiellement pour minimiser la bande passante pour les monodépôts |260| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Sous-répertoire dans un dépôt git. Clone partiellement pour minimiser la bande passante pour les monodépôts |


269 Par exemple, une place de marché hébergée à `acme-corp/plugin-catalog` (source de place de marché) peut répertorier un plugin récupéré à partir de `acme-corp/code-formatter` (source de plugin). La source de place de marché et la source de plugin pointent vers des dépôts différents et sont épinglées indépendamment.269 Par exemple, une place de marché hébergée à `acme-corp/plugin-catalog` (source de place de marché) peut répertorier un plugin récupéré à partir de `acme-corp/code-formatter` (source de plugin). La source de place de marché et la source de plugin pointent vers des dépôts différents et sont épinglées indépendamment.

270</Note>270</Note>

271 271 

272Les types de source basés sur git ci-dessous sont `github`, `url` et `git-subdir`. Lorsque `ref` et `sha` sont tous deux définis sur l'un d'eux, le `sha` est l'épingle effective. Claude Code récupère et vérifie le commit épinglé directement, donc l'installation réussit même si la branche ou le tag nommé par `ref` a depuis été supprimé en amont, tant que le commit est toujours accessible à partir du dépôt.

273 

272<h3 id="relative-paths">274<h3 id="relative-paths">

273 Chemins relatifs275 Chemins relatifs

274</h3>276</h3>


505* **`${CLAUDE_PLUGIN_ROOT}`** : Utilisez cette variable dans les hooks et les configurations du serveur MCP pour référencer les fichiers dans le répertoire d'installation du plugin. C'est nécessaire car les plugins sont copiés vers un emplacement de cache lors de l'installation. Pour les dépendances ou l'état qui doivent survivre aux mises à jour des plugins, utilisez [`${CLAUDE_PLUGIN_DATA}`](/fr/plugins-reference#persistent-data-directory) à la place.507* **`${CLAUDE_PLUGIN_ROOT}`** : Utilisez cette variable dans les hooks et les configurations du serveur MCP pour référencer les fichiers dans le répertoire d'installation du plugin. C'est nécessaire car les plugins sont copiés vers un emplacement de cache lors de l'installation. Pour les dépendances ou l'état qui doivent survivre aux mises à jour des plugins, utilisez [`${CLAUDE_PLUGIN_DATA}`](/fr/plugins-reference#persistent-data-directory) à la place.

506* **`strict: false`** : Puisque ceci est défini sur false, le plugin n'a pas besoin de son propre `plugin.json`. L'entrée de la place de marché définit tout. Voir [Mode strict](#strict-mode) ci-dessous.508* **`strict: false`** : Puisque ceci est défini sur false, le plugin n'a pas besoin de son propre `plugin.json`. L'entrée de la place de marché définit tout. Voir [Mode strict](#strict-mode) ci-dessous.

507 509 

510Par défaut, les compétences d'un plugin se chargent à partir du répertoire `skills/` sous sa `source`, et tous les chemins répertoriés sous `skills` s'ajoutent à cette analyse. L'exception est une source à la racine de la place de marché telle que `source: "./"`, où plusieurs entrées de plugin partagent un dossier `skills/`. Dans ce cas, l'énumération de sous-répertoires spécifiques sous `skills` rend cette liste l'ensemble complet pour l'entrée, et les autres répertoires sous `skills/` ne se chargent pas. L'énumération du répertoire `skills/` lui-même ou de la racine du plugin maintient l'analyse complète. Si aucun des chemins énumérés n'existe, l'analyse par défaut s'exécute à la place.

511 

508<h3 id="strict-mode">512<h3 id="strict-mode">

509 Mode strict513 Mode strict

510</h3>514</h3>


1074* Vérifiez que les répertoires des plugins contiennent les fichiers requis1078* Vérifiez que les répertoires des plugins contiennent les fichiers requis

1075* Pour les sources GitHub, assurez-vous que les dépôts sont publics ou que vous avez accès1079* Pour les sources GitHub, assurez-vous que les dépôts sont publics ou que vous avez accès

1076* Testez manuellement les sources de plugins en les clonant/téléchargeant1080* Testez manuellement les sources de plugins en les clonant/téléchargeant

1081* Si la source épingle à la fois `ref` et `sha`, une branche ou un tag en amont supprimé ne bloque pas l'installation. Si l'installation échoue toujours, confirmez que le commit épinglé existe toujours dans le dépôt

1077 1082 

1078<h3 id="private-repository-authentication-fails">1083<h3 id="private-repository-authentication-fails">

1079 L'authentification du dépôt privé échoue1084 L'authentification du dépôt privé échoue

plugins.md +7 −3

Details

216| `bin/` | Racine du plugin | Exécutables ajoutés au `PATH` de l'outil Bash tandis que le plugin est activé |216| `bin/` | Racine du plugin | Exécutables ajoutés au `PATH` de l'outil Bash tandis que le plugin est activé |

217| `settings.json` | Racine du plugin | [Paramètres](/fr/settings) par défaut appliqués quand le plugin est activé |217| `settings.json` | Racine du plugin | [Paramètres](/fr/settings) par défaut appliqués quand le plugin est activé |

218 218 

219Un plugin qui fournit exactement un skill peut placer `SKILL.md` directement à la racine du plugin au lieu de créer un répertoire `skills/`. Claude Code le charge en tant que skill unique et utilise le champ `name` du frontmatter pour le nom d'invocation. Utilisez la disposition `skills/` pour les plugins qui pourraient croître pour avoir plus d'un skill.

220 

219<Note>221<Note>

220 **Prochaines étapes** : Prêt à ajouter plus de fonctionnalités ? Allez à [Développer des plugins plus complexes](#develop-more-complex-plugins) pour ajouter des agents, des hooks, des serveurs MCP et des serveurs LSP. Pour les spécifications techniques complètes de tous les composants du plugin, consultez [Référence des plugins](/fr/plugins-reference).222 **Prochaines étapes** : Prêt à ajouter plus de fonctionnalités ? Allez à [Développer des plugins plus complexes](#develop-more-complex-plugins) pour ajouter des agents, des hooks, des serveurs MCP et des serveurs LSP. Pour les spécifications techniques complètes de tous les composants du plugin, consultez [Référence des plugins](/fr/plugins-reference).

221</Note>223</Note>


402 404 

403Anthropic maintient deux marketplaces publiques pour les plugins Claude Code :405Anthropic maintient deux marketplaces publiques pour les plugins Claude Code :

404 406 

405* **`claude-plugins-official`** : un ensemble organisé de plugins maintenus par Anthropic. Disponible automatiquement dans chaque installation de Claude Code.407* **`claude-plugins-official`** : un ensemble organisé de plugins maintenus par Anthropic. Enregistré automatiquement la première fois que vous démarrez Claude Code de manière interactive. Un script non-interactif qui s'exécute avant ce premier lancement doit l'ajouter explicitement avec `claude plugin marketplace add anthropics/claude-plugins-official`.

406* **`claude-community`** : la marketplace communautaire publique où les soumissions tierces arrivent après examen. Les utilisateurs l'ajoutent avec `/plugin marketplace add anthropics/claude-plugins-community` et l'installent en tant que `@claude-community`.408* **`claude-community`** : la marketplace communautaire publique où les soumissions tierces arrivent après examen. Les utilisateurs l'ajoutent avec `/plugin marketplace add anthropics/claude-plugins-community` et l'installent en tant que `@claude-community`.

407 409 

408Pour soumettre votre plugin pour examen de la marketplace communautaire, utilisez l'un des formulaires dans l'application :410Pour soumettre votre plugin pour examen de la marketplace communautaire, utilisez l'un des formulaires dans l'application :

409 411 

410* **Claude.ai** : [claude.ai/settings/plugins/submit](https://claude.ai/settings/plugins/submit)412* **claude.ai** : [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

411* **Console** : [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)413* **Console** : [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

412 414 

415Le formulaire claude.ai nécessite une organisation Team ou Enterprise et un accès à la gestion du répertoire ; les propriétaires d'organisation ont cet accès par défaut. Les auteurs individuels qui ne font pas partie d'une organisation Team ou Enterprise peuvent utiliser le formulaire Console à la place.

416 

413Exécutez `claude plugin validate` localement avant de soumettre. Le pipeline d'examen exécute la même vérification sur chaque soumission, ainsi qu'un dépistage de sécurité automatisé.417Exécutez `claude plugin validate` localement avant de soumettre. Le pipeline d'examen exécute la même vérification sur chaque soumission, ainsi qu'un dépistage de sécurité automatisé.

414 418 

415Les plugins approuvés sont épinglés à un SHA de commit spécifique dans le catalogue [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), et CI augmente automatiquement l'épingle à mesure que vous poussez de nouveaux commits vers votre référentiel. Le catalogue public se synchronise chaque nuit à partir du pipeline d'examen, il peut donc y avoir un délai entre l'approbation et l'apparition de votre plugin dans `marketplace.json`. Pour vérifier si votre plugin est installable, recherchez son nom dans le [catalogue communautaire](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).419Les plugins approuvés sont épinglés à un SHA de commit spécifique dans le catalogue [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), et CI augmente automatiquement l'épingle à mesure que vous poussez de nouveaux commits vers votre référentiel. Le catalogue public se synchronise chaque nuit à partir du pipeline d'examen, il peut donc y avoir un délai entre l'approbation et l'apparition de votre plugin dans `marketplace.json`. Pour vérifier si votre plugin est installable, recherchez son nom dans le [catalogue communautaire](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).


512| Doit être copié manuellement pour partager | Installer avec `/plugin install` |516| Doit être copié manuellement pour partager | Installer avec `/plugin install` |

513 517 

514<Note>518<Note>

515 Après la migration, vous pouvez supprimer les fichiers originaux de `.claude/` pour éviter les doublons. La version du plugin aura la priorité quand elle est chargée.519 Après la migration, supprimez les fichiers originaux de `.claude/` pour éviter les doublons. Les définitions d'agents du projet et de l'utilisateur dans `.claude/agents/` remplacent les agents du plugin portant le même nom, donc la version du plugin ne prend effet qu'une fois que les originaux sont supprimés.

516</Note>520</Note>

517 521 

518<h2 id="next-steps">522<h2 id="next-steps">

Details

46* Claude peut les invoquer automatiquement en fonction du contexte de la tâche46* Claude peut les invoquer automatiquement en fonction du contexte de la tâche

47* Les skills peuvent inclure des fichiers de support à côté de SKILL.md47* Les skills peuvent inclure des fichiers de support à côté de SKILL.md

48 48 

49Si un plugin n'a pas de répertoire `skills/` et pas de champ manifest `skills`, un `SKILL.md` à la racine du plugin est chargé comme une seule skill. Définissez le champ frontmatter `name` pour contrôler le nom d'invocation de la skill. Sans cela, Claude Code revient au nom du répertoire d'installation, qui pour les plugins installés depuis la marketplace est une chaîne de version qui change à chaque mise à jour. Pour les plugins qui livrent plus d'une skill, utilisez la disposition du répertoire `skills/` montrée ci-dessus.

50 

49Pour plus de détails, consultez [Skills](/fr/skills).51Pour plus de détails, consultez [Skills](/fr/skills).

50 52 

51<h3 id="agents">53<h3 id="agents">


256**Champs optionnels :**258**Champs optionnels :**

257 259 

258| Champ | Description |260| Champ | Description |

259| :---------------------- | :-------------------------------------------------------------- |261| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

260| `args` | Arguments de ligne de commande pour le serveur LSP |262| `args` | Arguments de ligne de commande pour le serveur LSP |

261| `transport` | Transport de communication : `stdio` (par défaut) ou `socket` |263| `transport` | Transport de communication : `stdio` (par défaut) ou `socket` |

262| `env` | Variables d'environnement à définir au démarrage du serveur |264| `env` | Variables d'environnement à définir au démarrage du serveur |


265| `workspaceFolder` | Chemin du dossier de l'espace de travail pour le serveur |267| `workspaceFolder` | Chemin du dossier de l'espace de travail pour le serveur |

266| `startupTimeout` | Temps maximum d'attente du démarrage du serveur (millisecondes) |268| `startupTimeout` | Temps maximum d'attente du démarrage du serveur (millisecondes) |

267| `maxRestarts` | Nombre maximum de tentatives de redémarrage avant d'abandonner |269| `maxRestarts` | Nombre maximum de tentatives de redémarrage avant d'abandonner |

270| `diagnostics` | Indique s'il faut pousser les diagnostics dans le contexte de Claude après les modifications (par défaut `true`). Définissez sur `false` pour conserver la navigation de code mais supprimer l'injection automatique de diagnostics. |

268 271 

269<Warning>272<Warning>

270 **Vous devez installer le binaire du serveur de langage séparément.** Les plugins LSP configurent comment Claude Code se connecte à un serveur de langage, mais ils n'incluent pas le serveur lui-même. Si vous voyez `Executable not found in $PATH` dans l'onglet Erreurs de `/plugin`, installez le binaire requis pour votre langage.273 **Vous devez installer le binaire du serveur de langage séparément.** Les plugins LSP configurent comment Claude Code se connecte à un serveur de langage, mais ils n'incluent pas le serveur lui-même. Si vous voyez `Executable not found in $PATH` dans l'onglet Erreurs de `/plugin`, installez le binaire requis pour votre langage.


530</h3>533</h3>

531 534 

532| Champ | Type | Description | Exemple |535| Champ | Type | Description | Exemple |

533| :---------------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |536| :---------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

534| `skills` | string\|array | Répertoires de skills personnalisés contenant `<name>/SKILL.md` (en plus du répertoire par défaut `skills/`) | `"./custom/skills/"` |537| `skills` | string\|array | Répertoires de skills personnalisés contenant `<name>/SKILL.md`. S'ajoute à l'analyse par défaut `skills/`. Consultez [Règles de comportement des chemins](#path-behavior-rules) pour l'exception de la racine de la marketplace | `"./custom/skills/"` |

535| `commands` | string\|array | Fichiers de skill markdown plats personnalisés ou répertoires (remplace le répertoire par défaut `commands/`) | `"./custom/cmd.md"` ou `["./cmd1.md"]` |538| `commands` | string\|array | Fichiers de skill markdown plats personnalisés ou répertoires (remplace le répertoire par défaut `commands/`) | `"./custom/cmd.md"` ou `["./cmd1.md"]` |

536| `agents` | string\|array | Fichiers d'agents personnalisés (remplace le répertoire par défaut `agents/`) | `"./custom/agents/reviewer.md"` |539| `agents` | string\|array | Fichiers d'agents personnalisés (remplace le répertoire par défaut `agents/`) | `"./custom/agents/reviewer.md"` |

537| `hooks` | string\|array\|object | Chemins de configuration des hooks ou configuration en ligne | `"./my-extra-hooks.json"` |540| `hooks` | string\|array\|object | Chemins de configuration des hooks ou configuration en ligne | `"./my-extra-hooks.json"` |


629Qu'un chemin personnalisé remplace ou étende le répertoire par défaut du plugin dépend du champ :632Qu'un chemin personnalisé remplace ou étende le répertoire par défaut du plugin dépend du champ :

630 633 

631* **Remplace le répertoire par défaut** : `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Par exemple, quand le manifeste spécifie `commands`, le répertoire par défaut `commands/` n'est pas analysé. Pour conserver le répertoire par défaut et en ajouter d'autres, listez-le explicitement : `"commands": ["./commands/", "./extras/"]`634* **Remplace le répertoire par défaut** : `commands`, `agents`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Par exemple, quand le manifeste spécifie `commands`, le répertoire par défaut `commands/` n'est pas analysé. Pour conserver le répertoire par défaut et en ajouter d'autres, listez-le explicitement : `"commands": ["./commands/", "./extras/"]`

632* **S'ajoute au répertoire par défaut** : `skills`. Le répertoire par défaut `skills/` est toujours analysé, et les répertoires listés dans `skills` sont chargés à côté de lui635* **S'ajoute au répertoire par défaut** : `skills`. Le répertoire par défaut `skills/` est toujours analysé, et les répertoires listés dans `skills` sont chargés à côté de lui. Exception : pour une [entrée de marketplace dont la `source` se résout à la racine de la marketplace](/fr/plugin-marketplaces#advanced-plugin-entries), déclarer des sous-répertoires spécifiques remplace l'analyse

633* **Règles de fusion propres** : [hooks](#hooks), [Serveurs MCP](#mcp-servers), et [Serveurs LSP](#lsp-servers). Consultez chaque section pour savoir comment plusieurs sources se combinent636* **Règles de fusion propres** : [hooks](#hooks), [Serveurs MCP](#mcp-servers), et [Serveurs LSP](#lsp-servers). Consultez chaque section pour savoir comment plusieurs sources se combinent

634 637 

635Quand un plugin a à la fois un dossier par défaut et la clé de manifeste correspondante, Claude Code v2.1.140 et versions ultérieures signale le dossier ignoré dans `/doctor`, `claude plugin list`, et la vue de détail `/plugin`. Le plugin se charge toujours en utilisant les chemins du manifeste. Aucun avertissement n'est affiché quand la clé de manifeste pointe dans le dossier par défaut, par exemple `"commands": ["./commands/deploy.md"]`, car le dossier est adressé explicitement dans ce cas.638Quand un plugin a à la fois un dossier par défaut et la clé de manifeste correspondante, Claude Code v2.1.140 et versions ultérieures signale le dossier ignoré dans `/doctor`, `claude plugin list`, et la vue de détail `/plugin`. Le plugin se charge toujours en utilisant les chemins du manifeste. Aucun avertissement n'est affiché quand la clé de manifeste pointe dans le dossier par défaut, par exemple `"commands": ["./commands/deploy.md"]`, car le dossier est adressé explicitement dans ce cas.


1093| `--available` | Inclure les plugins disponibles des marketplaces. Nécessite `--json` | |1096| `--available` | Inclure les plugins disponibles des marketplaces. Nécessite `--json` | |

1094| `-h, --help` | Afficher l'aide pour la commande | |1097| `-h, --help` | Afficher l'aide pour la commande | |

1095 1098 

1099Dans une session interactive, `/plugin list` affiche le même listing en ligne. La forme interactive accepte `--enabled` ou `--disabled` pour afficher uniquement les plugins dans cet état, et `ls` comme raccourci pour `list`.

1100 

1096<h3 id="plugin-details">1101<h3 id="plugin-details">

1097 plugin details1102 plugin details

1098</h3>1103</h3>

Details

79 79 

80Le [paramètre de modèle `opusplan`](/fr/model-config#opusplan-model-setting) se résout en Opus pendant le mode plan et Sonnet pendant l'exécution, donc chaque basculement de mode plan est un changement de modèle et démarre un cache frais.80Le [paramètre de modèle `opusplan`](/fr/model-config#opusplan-model-setting) se résout en Opus pendant le mode plan et Sonnet pendant l'exécution, donc chaque basculement de mode plan est un changement de modèle et démarre un cache frais.

81 81 

82Le [basculement automatique du modèle](/fr/model-config#automatic-model-fallback) sur Fable 5 est également un changement de modèle. Quand un classificateur de sécurité signale une requête, Claude Code la réexécute sur le modèle Opus par défaut et la session continue là.

83 

82<h3 id="changing-effort-level">84<h3 id="changing-effort-level">

83 Modifier le niveau d'effort85 Modifier le niveau d'effort

84</h3>86</h3>


101 Connecter ou déconnecter un serveur MCP103 Connecter ou déconnecter un serveur MCP

102</h3>104</h3>

103 105 

104Les définitions d'outils se trouvent dans la couche du prompt système, donc le cache s'invalide quand l'ensemble des définitions d'outils dans la requête change entre les tours. Qu'un changement de [serveur MCP](/fr/mcp) fasse cela dépend de si ses outils sont différés par la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) ou chargés dans le préfixe :106Les définitions d'outils se trouvent dans la couche du prompt système, donc le cache s'invalide quand l'ensemble des définitions d'outils dans la requête change entre les tours. Basculer l'[outil conseiller](/fr/advisor) est une exception : sa définition se trouve après le point de rupture du cache, donc activer ou désactiver `/advisor` conserve le préfixe mis en cache intact. Qu'un changement de [serveur MCP](/fr/mcp) fasse cela dépend de si ses outils sont différés par la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) ou chargés dans le préfixe :

105 107 

106* **Outils différés**, la valeur par défaut sur les modèles supportés : un serveur qui se connecte, se déconnecte, ou change sa liste d'outils n'ajoute que du nouveau contenu et ne perturbe rien de ce qui est déjà en cache.108* **Outils différés**, la valeur par défaut sur les modèles supportés : un serveur qui se connecte, se déconnecte, ou change sa liste d'outils n'ajoute que du nouveau contenu et ne perturbe rien de ce qui est déjà en cache.

107* **Outils chargés dans le préfixe** : tout changement à leur égard invalide le cache. Cela se produit quand la [recherche d'outils n'est pas disponible ou est désactivée](/fr/mcp#configure-tool-search), comme sur les modèles Haiku, sur Vertex AI, ou avec une passerelle `ANTHROPIC_BASE_URL` personnalisée. Cela se produit également pour un serveur ou un outil marqué [`alwaysLoad`](/fr/mcp#exempt-a-server-from-deferral), et pour les définitions conservées en avant par le [chargement basé sur le seuil](/fr/mcp#configure-tool-search).109* **Outils chargés dans le préfixe** : tout changement à leur égard invalide le cache. Cela se produit quand la [recherche d'outils n'est pas disponible ou est désactivée](/fr/mcp#configure-tool-search), comme sur les modèles Haiku, sur Vertex AI, ou avec une passerelle `ANTHROPIC_BASE_URL` personnalisée. Cela se produit également pour un serveur ou un outil marqué [`alwaysLoad`](/fr/mcp#exempt-a-server-from-deferral), et pour les définitions conservées en avant par le [chargement basé sur le seuil](/fr/mcp#configure-tool-search).


118 120 

119L'exception est un plugin qui fournit des [serveurs MCP](/fr/plugins-reference#mcp-servers). Activer ou désactiver l'un d'eux suit les mêmes règles que [connecter ou déconnecter un serveur MCP](#connecting-or-disconnecting-an-mcp-server) : le cache survit quand les outils du serveur sont différés, et la requête suivante relit la conversation entière quand ils se chargent dans le préfixe.121L'exception est un plugin qui fournit des [serveurs MCP](/fr/plugins-reference#mcp-servers). Activer ou désactiver l'un d'eux suit les mêmes règles que [connecter ou déconnecter un serveur MCP](#connecting-or-disconnecting-an-mcp-server) : le cache survit quand les outils du serveur sont différés, et la requête suivante relit la conversation entière quand ils se chargent dans le préfixe.

120 122 

121Les changements de plugin s'appliquent quand vous exécutez [`/reload-plugins`](/fr/discover-plugins#apply-plugin-changes-without-restarting) ou démarrez une nouvelle session. Le coût, qu'il s'agisse d'annonces ajoutées ou d'une relecture complète, s'affiche au premier tour après le rechargement, pas quand vous exécutez `/plugin install`, `/plugin enable`, ou `/plugin disable`.123Les changements de plugin s'appliquent quand vous exécutez [`/reload-plugins`](/fr/discover-plugins#apply-plugin-changes-without-restarting) ou démarrez une nouvelle session. Le coût, qu'il s'agisse d'annonces ajoutées ou d'une relecture complète, s'affiche au premier tour après le rechargement, pas quand vous exécutez `/plugin install`, `/plugin enable`, ou `/plugin disable`. {/* min-version: 2.1.163 */}À partir de la v2.1.163, quand un rechargement déclencherait la relecture complète, `/reload-plugins` affiche un avertissement et n'applique pas le rechargement. Passez `--force` pour appliquer de toute façon.

122 124 

123Désactiver un plugin que vous avez activé plus tôt dans la session restaure la forme de requête précédente. Si ce préfixe se trouve toujours dans sa [durée de vie du cache](#cache-lifetime), la requête suivante lit l'entrée de cache plus ancienne au lieu de la reconstruire.125Désactiver un plugin que vous avez activé plus tôt dans la session restaure la forme de requête précédente. Si ce préfixe se trouve toujours dans sa [durée de vie du cache](#cache-lifetime), la requête suivante lit l'entrée de cache plus ancienne au lieu de la reconstruire.

124 126 


128 130 

129Ajouter un nom d'outil simple comme `Bash` ou `WebFetch` comme [règle de refus](/fr/permissions#manage-permissions) supprime cet outil du contexte de Claude entièrement. Les définitions d'outils intégrés se chargent dans la couche du prompt système, donc ajouter ou supprimer l'une de ces règles en cours de session invalide le cache. Le changement prend effet au tour suivant, que vous l'ajoutiez via `/permissions` ou en [éditant un fichier de paramètres directement](/fr/settings#when-edits-take-effect).131Ajouter un nom d'outil simple comme `Bash` ou `WebFetch` comme [règle de refus](/fr/permissions#manage-permissions) supprime cet outil du contexte de Claude entièrement. Les définitions d'outils intégrés se chargent dans la couche du prompt système, donc ajouter ou supprimer l'une de ces règles en cours de session invalide le cache. Le changement prend effet au tour suivant, que vous l'ajoutiez via `/permissions` ou en [éditant un fichier de paramètres directement](/fr/settings#when-edits-take-effect).

130 132 

131Seul un nom d'outil simple, ou la forme équivalente `Bash(*)`, a cet effet. Les règles de refus délimitées comme `Bash(rm *)`, et toutes les règles d'autorisation et de demande, ne changent pas les outils que Claude voit. Claude Code les vérifie quand Claude tente un appel, laissant le préfixe intact.133Seul un nom d'outil simple, la forme équivalente `Bash(*)`, ou un [glob de nom d'outil](/fr/permissions#tool-name-wildcards) comme `"*"` a cet effet. Un glob qui correspond uniquement aux outils MCP, comme `"mcp__*"`, supprime ces outils de la même manière mais laisse le cache intact quand les outils correspondants sont [différés](#connecting-or-disconnecting-an-mcp-server), la valeur par défaut, puisque les définitions différées n'étaient jamais dans le préfixe mis en cache. Les règles de refus délimitées comme `Bash(rm *)`, et toutes les règles d'autorisation et de demande, ne changent pas les outils que Claude voit. Claude Code les vérifie quand Claude tente un appel, laissant le préfixe intact.

132 134 

133<h3 id="compacting-the-conversation">135<h3 id="compacting-the-conversation">

134 Compacter la conversation136 Compacter la conversation


290| `DISABLE_PROMPT_CACHING_HAIKU` | Désactiver pour Haiku uniquement |292| `DISABLE_PROMPT_CACHING_HAIKU` | Désactiver pour Haiku uniquement |

291| `DISABLE_PROMPT_CACHING_SONNET` | Désactiver pour Sonnet uniquement |293| `DISABLE_PROMPT_CACHING_SONNET` | Désactiver pour Sonnet uniquement |

292| `DISABLE_PROMPT_CACHING_OPUS` | Désactiver pour Opus uniquement |294| `DISABLE_PROMPT_CACHING_OPUS` | Désactiver pour Opus uniquement |

295| `DISABLE_PROMPT_CACHING_FABLE` | Désactiver pour Fable uniquement |

293 296 

294Pour définir la politique de caching dans une organisation, mettez l'une de ces variables ou les [variables TTL](#cache-lifetime) dans le bloc `env` des [paramètres gérés](/fr/settings#settings-files). Pour un usage normal, laissez le caching activé.297Pour définir la politique de caching dans une organisation, mettez l'une de ces variables ou les [variables TTL](#cache-lifetime) dans le bloc `env` des [paramètres gérés](/fr/settings#settings-files). Pour un usage normal, laissez le caching activé.

295 298 

quickstart.md +12 −5

Details

118claude118claude

119```119```

120 120 

121Vous verrez l'écran de bienvenue de Claude Code avec les informations de votre session, les conversations récentes et les dernières mises à jour. Tapez `/help` pour les commandes disponibles ou `/resume` pour continuer une conversation précédente.121Vous verrez l'invite de Claude Code avec la version, le modèle actuel et le répertoire de travail affichés au-dessus. Tapez `/help` pour les commandes disponibles ou `/resume` pour continuer une conversation précédente.

122 122 

123<Tip>123<Tip>

124 Après vous être connecté (Étape 2), vos identifiants sont stockés sur votre système. En savoir plus dans [Gestion des identifiants](/fr/authentication#credential-management).124 Après vous être connecté (Étape 2), vos identifiants sont stockés sur votre système. En savoir plus dans [Gestion des identifiants](/fr/authentication#credential-management).


278 Commandes essentielles278 Commandes essentielles

279</h2>279</h2>

280 280 

281Voici les commandes les plus importantes pour l'utilisation quotidienne :281Voici les commandes les plus importantes pour l'utilisation quotidienne. Les commandes shell s'exécutent depuis votre terminal pour démarrer ou reprendre Claude Code. Les commandes de session s'exécutent à l'intérieur de Claude Code après son démarrage.

282 

283**Commandes shell**

282 284 

283| Commande | Ce qu'elle fait | Exemple |285| Commande | Ce qu'elle fait | Exemple |

284| ------------------- | ------------------------------------------------------------------- | ----------------------------------- |286| ------------------- | ------------------------------------------------------------------- | ----------------------------------- |


287| `claude -p "query"` | Exécuter une requête unique, puis quitter | `claude -p "explain this function"` |289| `claude -p "query"` | Exécuter une requête unique, puis quitter | `claude -p "explain this function"` |

288| `claude -c` | Continuer la conversation la plus récente dans le répertoire actuel | `claude -c` |290| `claude -c` | Continuer la conversation la plus récente dans le répertoire actuel | `claude -c` |

289| `claude -r` | Reprendre une conversation précédente | `claude -r` |291| `claude -r` | Reprendre une conversation précédente | `claude -r` |

292 

293**Commandes de session**

294 

295| Commande | Ce qu'elle fait | Exemple |

296| ----------------- | -------------------------------------- | -------- |

290| `/clear` | Effacer l'historique des conversations | `/clear` |297| `/clear` | Effacer l'historique des conversations | `/clear` |

291| `/help` | Afficher les commandes disponibles | `/help` |298| `/help` | Afficher les commandes disponibles | `/help` |

292| `exit` ou Ctrl+D | Quitter Claude Code | `exit` |299| `/exit` ou Ctrl+D | Quitter Claude Code | `/exit` |

293 300 

294Voir la [référence CLI](/fr/cli-reference) pour une liste complète des commandes.301Voir la [référence CLI](/fr/cli-reference) pour la liste complète des commandes shell et la [référence des commandes](/fr/commands) pour la liste complète des commandes de session.

295 302 

296<h2 id="pro-tips-for-beginners">303<h2 id="pro-tips-for-beginners">

297 Conseils professionnels pour les débutants304 Conseils professionnels pour les débutants


336 </Accordion>343 </Accordion>

337</AccordionGroup>344</AccordionGroup>

338 345 

339<h2 id="what-s-next">346<h2 id="whats-next">

340 Prochaines étapes347 Prochaines étapes

341</h2>348</h2>

342 349 

remote-control.md +21 −10

Details

93 /remote-control My Project93 /remote-control My Project

94 ```94 ```

95 95 

96 Cela démarre une session Remote Control qui reprend votre historique de conversation actuel et affiche une URL de session et un code QR que vous pouvez utiliser pour [vous connecter depuis un autre appareil](#connect-from-another-device). Les drapeaux `--verbose`, `--sandbox` et `--no-sandbox` ne sont pas disponibles avec cette commande.96 Cela démarre une session Remote Control qui reprend votre historique de conversation actuel.

97 

98 Les drapeaux `--verbose`, `--sandbox` et `--no-sandbox` ne sont pas disponibles avec cette commande.

97 </Tab>99 </Tab>

98 100 

99 <Tab title="VS Code">101 <Tab title="VS Code">


111 </Tab>113 </Tab>

112</Tabs>114</Tabs>

113 115 

116<h3 id="check-connection-status">

117 Vérifier l'état de la connexion

118</h3>

119 

120Dans une session de terminal interactive, un indicateur `/rc active` se trouve dans le pied de page sous la zone de saisie tandis que la connexion est active, et est masqué si le terminal est trop étroit pour le contenir. Le texte de l'indicateur est un lien vers la session sur claude.ai. Sélectionnez-le avec la flèche vers le bas et appuyez sur Entrée, ou exécutez `/remote-control` à nouveau, pour ouvrir un panneau d'état avec l'URL de la session et un code QR que vous pouvez utiliser pour [vous connecter depuis un autre appareil](#connect-from-another-device).

121 

122Si la connexion échoue, l'indicateur devient rouge et affiche `/rc failed`. Sélectionnez-le avec la flèche vers le bas et appuyez sur Entrée pour voir la raison de l'échec et une option de fermeture, ou exécutez `/remote-control` à nouveau pour réessayer.

123 

114<h3 id="connect-from-another-device">124<h3 id="connect-from-another-device">

115 Se connecter depuis un autre appareil125 Se connecter depuis un autre appareil

116</h3>126</h3>


1283. Le dernier message significatif dans l'historique de conversation existant1383. Le dernier message significatif dans l'historique de conversation existant

1294. Un nom généré automatiquement comme `myhost-graceful-unicorn`, où `myhost` est le nom d'hôte de votre machine ou le préfixe que vous avez défini avec `--remote-control-session-name-prefix`1394. Un nom généré automatiquement comme `myhost-graceful-unicorn`, où `myhost` est le nom d'hôte de votre machine ou le préfixe que vous avez défini avec `--remote-control-session-name-prefix`

130 140 

131Si vous n'avez pas défini de nom explicite, le titre se met à jour pour refléter votre message une fois que vous en envoyez un. Renommer une session depuis claude.ai ou l'application Claude met également à jour le titre local affiché dans `claude --resume`.141Si vous n'avez pas défini de nom explicite, le titre se met à jour pour refléter votre message une fois que vous en envoyez un. {/* min-version: 2.1.176 */}À partir de Claude Code v2.1.176, les titres générés automatiquement correspondent à la langue de votre conversation, ou au paramètre [`language`](/fr/settings#available-settings) s'il est configuré. Renommer une session depuis claude.ai ou l'application Claude met également à jour le titre local affiché dans `claude --resume`.

132 142 

133Si l'environnement a déjà une session active, vous serez invité à choisir si vous souhaitez la continuer ou en démarrer une nouvelle.143Si l'environnement a déjà une session active, vous serez invité à choisir si vous souhaitez la continuer ou en démarrer une nouvelle.

134 144 


164 174 

165Lorsque Remote Control est actif, Claude peut envoyer des notifications push à votre téléphone.175Lorsque Remote Control est actif, Claude peut envoyer des notifications push à votre téléphone.

166 176 

167Claude décide quand envoyer une notification. Il en envoie généralement une lorsqu'une tâche longue se termine ou lorsqu'il a besoin d'une décision de votre part pour continuer. Vous pouvez également demander une notification dans votre message, par exemple `notify me when the tests finish`. Au-delà du bouton marche/arrêt ci-dessous, il n'y a pas de configuration par événement.177Claude décide quand envoyer une notification. Il en envoie généralement une lorsqu'une tâche longue se termine ou lorsqu'il a besoin d'une décision de votre part pour continuer. Vous pouvez également demander une notification dans votre message, par exemple `notify me when the tests finish`. Au-delà des deux boutons marche/arrêt ci-dessous, il n'y a pas de configuration par événement.

168 178 

169<Note>179<Note>

170 Les notifications push mobiles nécessitent Claude Code v2.1.110 ou version ultérieure.180 Les notifications push mobiles nécessitent Claude Code v2.1.110 ou version ultérieure.


186 </Step>196 </Step>

187 197 

188 <Step title="Activer les notifications dans Claude Code">198 <Step title="Activer les notifications dans Claude Code">

189 Dans votre terminal, exécutez `/config` et activez **Push when Claude decides**.199 Dans votre terminal, exécutez `/config` et activez **Push when Claude decides** pour les notifications proactives, **Push when actions required** pour les invites de permission et les questions, ou les deux.

190 </Step>200 </Step>

191</Steps>201</Steps>

192 202 


204* **Le processus local doit continuer à s'exécuter** : Remote Control s'exécute en tant que processus local. Si vous fermez le terminal, quittez VS Code, ou arrêtez autrement le processus `claude`, la session se termine.214* **Le processus local doit continuer à s'exécuter** : Remote Control s'exécute en tant que processus local. Si vous fermez le terminal, quittez VS Code, ou arrêtez autrement le processus `claude`, la session se termine.

205* **Panne réseau prolongée** : si votre machine est allumée mais incapable d'atteindre le réseau pendant plus de dix minutes environ, la session expire et le processus se termine. Exécutez `claude remote-control` à nouveau pour démarrer une nouvelle session.215* **Panne réseau prolongée** : si votre machine est allumée mais incapable d'atteindre le réseau pendant plus de dix minutes environ, la session expire et le processus se termine. Exécutez `claude remote-control` à nouveau pour démarrer une nouvelle session.

206* **Ultraplan déconnecte Remote Control** : le démarrage d'une session [ultraplan](/fr/ultraplan) déconnecte toute session Remote Control active car les deux fonctionnalités occupent l'interface claude.ai/code et une seule peut être connectée à la fois.216* **Ultraplan déconnecte Remote Control** : le démarrage d'une session [ultraplan](/fr/ultraplan) déconnecte toute session Remote Control active car les deux fonctionnalités occupent l'interface claude.ai/code et une seule peut être connectée à la fois.

207* **Certaines commandes sont locales uniquement** : les commandes qui ouvrent un sélecteur interactif dans le terminal, telles que `/mcp`, `/plugin`, ou `/resume`, fonctionnent uniquement à partir de la CLI locale. Les commandes qui produisent une sortie textuelle, y compris `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, et `/reload-plugins`, fonctionnent à partir du mobile et du web.217* **Certaines commandes sont locales uniquement** : les commandes qui ouvrent un sélecteur interactif dans le terminal, telles que `/plugin` ou `/resume`, fonctionnent uniquement à partir de la CLI locale. Les commandes qui produisent une sortie textuelle, y compris `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, et `/reload-plugins`, fonctionnent à partir du mobile et du web. {/* min-version: 2.1.166 */}À partir de la v2.1.166, `/mcp` fonctionne également à partir du mobile et du web : il retourne un résumé textuel de l'état du serveur au lieu d'ouvrir le sélecteur, et accepte les mêmes [sous-commandes](/fr/commands#all-commands) que la CLI locale, avec une différence : à partir du mobile et du web, `/mcp reconnect` sans nom de serveur reconnecte tous les serveurs qui ont échoué ou nécessitent une authentification, tandis que la CLI locale nécessite un nom de serveur pour `reconnect`.

208 218 

209<h2 id="troubleshooting">219<h2 id="troubleshooting">

210 Dépannage220 Dépannage


232 « Remote Control is not yet enabled for your account »242 « Remote Control is not yet enabled for your account »

233</h3>243</h3>

234 244 

235La vérification d'admissibilité peut échouer avec certaines variables d'environnement présentes :245Le déploiement de Remote Control n'a pas atteint votre compte, ou vos droits en cache sont obsolètes. Si vous avez récemment changé de plan, exécutez `claude auth logout` puis `claude auth login` pour les actualiser. Exécutez `claude doctor` pour voir quel contrôle d'admissibilité individuel a échoué. Les conflits de variables d'environnement, les vérifications inaccessibles et la politique organisationnelle produisent chacun leur propre message, donc cette erreur signifie que la porte de déploiement elle-même.

236 246 

237* `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ou `DISABLE_TELEMETRY` : désactivez-les et réessayez.247<h3 id="couldn’t-verify-remote-control-eligibility">

238* `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, ou `CLAUDE_CODE_USE_FOUNDRY` : Remote Control nécessite l'authentification claude.ai et ne fonctionne pas avec les fournisseurs tiers.248 « Couldn't verify Remote Control eligibility »

249</h3>

239 250 

240Si aucun de ceux-ci n'est défini, exécutez `/logout` puis `/login` pour actualiser.251Claude Code n'a pas pu atteindre le service de drapeau de fonctionnalité pour vérifier si Remote Control est activé pour votre compte, généralement parce que vous êtes hors ligne ou qu'un proxy bloque la requête. Réessayez une fois que vous avez accès au réseau, ou exécutez `claude doctor` pour plus de détails. Le message associé « Couldn't verify your organization's Remote Control policy » a la même cause et le même correctif. Les deux messages ont été ajoutés dans la v2.1.178.

241 252 

242<h3 id="remote-control-is-disabled-by-your-organization-s-policy">253<h3 id="remote-control-is-disabled-by-your-organizations-policy">

243 « Remote Control is disabled by your organization's policy »254 « Remote Control is disabled by your organization's policy »

244</h3>255</h3>

245 256 

routines.md +81 −31

Details

26 26 

27Cette page couvre la création d'une routine, la configuration de chaque type de déclencheur, la gestion des exécutions et la façon dont les limites d'utilisation s'appliquent.27Cette page couvre la création d'une routine, la configuration de chaque type de déclencheur, la gestion des exécutions et la façon dont les limites d'utilisation s'appliquent.

28 28 

29## Exemples de cas d'usage29<h2 id="example-use-cases">

30 Exemples de cas d'usage

31</h2>

30 32 

31Chaque exemple associe un type de déclencheur au type de travail pour lequel les routines sont adaptées : sans surveillance, répétable et lié à un résultat clair.33Chaque exemple associe un type de déclencheur au type de travail pour lequel les routines sont adaptées : sans surveillance, répétable et lié à un résultat clair.

32 34 


44 46 

45Les sections ci-dessous expliquent comment créer une routine et configurer chacun de ces types de déclencheurs.47Les sections ci-dessous expliquent comment créer une routine et configurer chacun de ces types de déclencheurs.

46 48 

47## Créer une routine49<h2 id="create-a-routine">

50 Créer une routine

51</h2>

48 52 

49Créez une routine à partir du web sur [claude.ai/code/routines](https://claude.ai/code/routines), à partir de l'application de bureau, ou à partir de la CLI. Les trois surfaces écrivent dans le même compte cloud, de sorte qu'une routine que vous créez dans l'une d'elles apparaît immédiatement dans les autres. Dans l'application de bureau, cliquez sur **Routines** dans la barre latérale, puis sur **New routine**, et choisissez **Remote** ; choisir **Local** à la place crée une [tâche planifiée de bureau](/fr/desktop-scheduled-tasks), qui s'exécute sur votre machine plutôt que dans le cloud.53Créez une routine à partir du web sur [claude.ai/code/routines](https://claude.ai/code/routines), à partir de l'application de bureau, ou à partir de la CLI. Les trois surfaces écrivent dans le même compte cloud, de sorte qu'une routine que vous créez dans l'une d'elles apparaît immédiatement dans les autres. Dans l'application de bureau, cliquez sur **Routines** dans la barre latérale, puis sur **New routine**, et choisissez **Remote** ; choisir **Local** à la place crée une [tâche planifiée de bureau](/fr/desktop-scheduled-tasks), qui s'exécute sur votre machine plutôt que dans le cloud.

50 54 


54 58 

55Les routines appartiennent à votre compte claude.ai individuel. Elles ne sont pas partagées avec les coéquipiers, et elles comptent dans votre allocation quotidienne d'exécutions. Tout ce qu'une routine fait via votre identité GitHub connectée ou les connecteurs apparaît comme vous : les commits et les demandes de tirage portent votre utilisateur GitHub, et les messages Slack, les tickets Linear ou d'autres actions de connecteur utilisent vos comptes liés pour ces services.59Les routines appartiennent à votre compte claude.ai individuel. Elles ne sont pas partagées avec les coéquipiers, et elles comptent dans votre allocation quotidienne d'exécutions. Tout ce qu'une routine fait via votre identité GitHub connectée ou les connecteurs apparaît comme vous : les commits et les demandes de tirage portent votre utilisateur GitHub, et les messages Slack, les tickets Linear ou d'autres actions de connecteur utilisent vos comptes liés pour ces services.

56 60 

57### Créer à partir du web61<h3 id="create-from-the-web">

62 Créer à partir du web

63</h3>

58 64 

59<Steps>65<Steps>

60 <Step title="Ouvrir le formulaire de création">66 <Step title="Ouvrir le formulaire de création">


114 </Step>120 </Step>

115</Steps>121</Steps>

116 122 

117### Créer à partir de la CLI123<h3 id="create-from-the-cli">

124 Créer à partir de la CLI

125</h3>

118 126 

119Exécutez `/schedule` dans n'importe quelle session pour créer une routine planifiée de manière conversationnelle. Vous pouvez également transmettre une description directement, pour une routine récurrente comme `/schedule daily PR review at 9am` ou une exécution unique comme `/schedule clean up feature flag in one week`. Claude parcourt les mêmes informations que le formulaire web collecte, puis enregistre la routine sur votre compte.127Exécutez `/schedule` dans n'importe quelle session pour créer une routine planifiée de manière conversationnelle. Vous pouvez également transmettre une description directement, pour une routine récurrente comme `/schedule daily PR review at 9am` ou une exécution unique comme `/schedule clean up feature flag in one week`. Claude parcourt les mêmes informations que le formulaire web collecte, puis enregistre la routine sur votre compte.

120 128 


122 130 

123La CLI prend également en charge la gestion des routines existantes. Exécutez `/schedule list` pour voir toutes les routines, `/schedule update` pour en modifier une, ou `/schedule run` pour la déclencher immédiatement.131La CLI prend également en charge la gestion des routines existantes. Exécutez `/schedule list` pour voir toutes les routines, `/schedule update` pour en modifier une, ou `/schedule run` pour la déclencher immédiatement.

124 132 

125## Configurer les déclencheurs133<h2 id="configure-triggers">

134 Configurer les déclencheurs

135</h2>

126 136 

127Une routine démarre lorsque l'un de ses déclencheurs correspond. Vous pouvez attacher n'importe quelle combinaison de déclencheurs de calendrier, API et GitHub à la même routine, et les ajouter ou les supprimer à tout moment à partir de la section **Select a trigger** du formulaire d'édition de la routine.137Une routine démarre lorsque l'un de ses déclencheurs correspond. Vous pouvez attacher n'importe quelle combinaison de déclencheurs de calendrier, API et GitHub à la même routine, et les ajouter ou les supprimer à tout moment à partir de la section **Select a trigger** du formulaire d'édition de la routine.

128 138 

129### Ajouter un déclencheur de calendrier139<h3 id="add-a-schedule-trigger">

140 Ajouter un déclencheur de calendrier

141</h3>

130 142 

131Un déclencheur de calendrier exécute la routine selon une cadence récurrente, ou une seule fois à un moment futur spécifique. Choisissez une fréquence prédéfinie dans la section **Select a trigger** : toutes les heures, quotidienne, les jours de semaine ou hebdomadaire. Les heures sont entrées dans votre fuseau horaire local et converties automatiquement, de sorte que la routine s'exécute à cette heure murale indépendamment de l'endroit où se trouve l'infrastructure cloud.143Un déclencheur de calendrier exécute la routine selon une cadence récurrente, ou une seule fois à un moment futur spécifique. Choisissez une fréquence prédéfinie dans la section **Select a trigger** : toutes les heures, quotidienne, les jours de semaine ou hebdomadaire. Les heures sont entrées dans votre fuseau horaire local et converties automatiquement, de sorte que la routine s'exécute à cette heure murale indépendamment de l'endroit où se trouve l'infrastructure cloud.

132 144 


134 146 

135Pour un intervalle personnalisé tel que toutes les deux heures ou le premier de chaque mois, choisissez la prédéfinie la plus proche dans le formulaire, puis exécutez `/schedule update` dans la CLI pour définir une expression cron spécifique. L'intervalle minimum est d'une heure ; les expressions qui s'exécutent plus fréquemment sont rejetées.147Pour un intervalle personnalisé tel que toutes les deux heures ou le premier de chaque mois, choisissez la prédéfinie la plus proche dans le formulaire, puis exécutez `/schedule update` dans la CLI pour définir une expression cron spécifique. L'intervalle minimum est d'une heure ; les expressions qui s'exécutent plus fréquemment sont rejetées.

136 148 

137#### Planifier une exécution unique149<h4 id="schedule-a-one-off-run">

150 Planifier une exécution unique

151</h4>

138 152 

139Une exécution unique planifiée déclenche la routine une seule fois à un horodatage spécifique. Utilisez-la pour vous rappeler plus tard dans la semaine, pour ouvrir une PR de nettoyage après la fin d'un déploiement, ou pour lancer une tâche de suivi lorsqu'une modification en amont arrive. Après le déclenchement de la routine, elle se désactive automatiquement et l'interface utilisateur web la marque comme **Ran**. Pour l'exécuter à nouveau, modifiez la routine et définissez une nouvelle heure unique.153Une exécution unique planifiée déclenche la routine une seule fois à un horodatage spécifique. Utilisez-la pour vous rappeler plus tard dans la semaine, pour ouvrir une PR de nettoyage après la fin d'un déploiement, ou pour lancer une tâche de suivi lorsqu'une modification en amont arrive. Après le déclenchement de la routine, elle se désactive automatiquement et l'interface utilisateur web la marque comme **Ran**. Pour l'exécuter à nouveau, modifiez la routine et définissez une nouvelle heure unique.

140 154 


152 166 

153Les exécutions uniques ne comptent pas par rapport au plafond quotidien d'exécution de routine. Elles consomment l'utilisation d'abonnement régulière de votre plan comme n'importe quelle autre session. Consultez [Usage and limits](#usage-and-limits) pour plus de détails.167Les exécutions uniques ne comptent pas par rapport au plafond quotidien d'exécution de routine. Elles consomment l'utilisation d'abonnement régulière de votre plan comme n'importe quelle autre session. Consultez [Usage and limits](#usage-and-limits) pour plus de détails.

154 168 

155### Ajouter un déclencheur API169<h3 id="add-an-api-trigger">

170 Ajouter un déclencheur API

171</h3>

156 172 

157Un déclencheur API donne à une routine un point de terminaison HTTP dédié. POSTer sur le point de terminaison avec le jeton porteur de la routine démarre une nouvelle session et retourne une URL de session. Utilisez ceci pour intégrer Claude Code dans les systèmes d'alerte, les pipelines de déploiement, les outils internes ou n'importe où vous pouvez faire une requête HTTP authentifiée.173Un déclencheur API donne à une routine un point de terminaison HTTP dédié. POSTer sur le point de terminaison avec le jeton porteur de la routine démarre une nouvelle session et retourne une URL de session. Utilisez ceci pour intégrer Claude Code dans les systèmes d'alerte, les pipelines de déploiement, les outils internes ou n'importe où vous pouvez faire une requête HTTP authentifiée.

158 174 


178 194 

179Chaque routine a son propre jeton, limité au déclenchement de cette routine uniquement. Pour le faire tourner ou le révoquer, retournez à la même fenêtre modale et cliquez sur **Regenerate** ou **Revoke**.195Chaque routine a son propre jeton, limité au déclenchement de cette routine uniquement. Pour le faire tourner ou le révoquer, retournez à la même fenêtre modale et cliquez sur **Regenerate** ou **Revoke**.

180 196 

181#### Déclencher une routine197<h4 id="trigger-a-routine">

198 Déclencher une routine

199</h4>

182 200 

183Envoyez une requête POST au point de terminaison `/fire` avec le jeton porteur dans l'en-tête `Authorization`. Le corps de la requête accepte un champ `text` optionnel pour le contexte spécifique à l'exécution tel qu'un corps d'alerte ou un journal défaillant, transmis à la routine aux côtés de son invite enregistrée. La valeur est du texte libre et n'est pas analysée : si vous envoyez JSON ou une autre charge utile structurée, la routine la reçoit comme une chaîne littérale.201Envoyez une requête POST au point de terminaison `/fire` avec le jeton porteur dans l'en-tête `Authorization`. Le corps de la requête accepte un champ `text` optionnel pour le contexte spécifique à l'exécution tel qu'un corps d'alerte ou un journal défaillant, transmis à la routine aux côtés de son invite enregistrée. La valeur est du texte libre et n'est pas analysée : si vous envoyez JSON ou une autre charge utile structurée, la routine la reçoit comme une chaîne littérale.

184 202 


209 Le point de terminaison `/fire` est livré sous l'en-tête bêta `experimental-cc-routine-2026-04-01`. Les formes de requête et de réponse, les limites de débit et la sémantique des jetons peuvent changer pendant que la fonctionnalité est en aperçu de recherche. Les modifications de rupture sont livrées derrière les nouvelles versions d'en-tête bêta datées, et les deux versions d'en-tête précédentes les plus récentes continuent de fonctionner afin que les appelants aient le temps de migrer.227 Le point de terminaison `/fire` est livré sous l'en-tête bêta `experimental-cc-routine-2026-04-01`. Les formes de requête et de réponse, les limites de débit et la sémantique des jetons peuvent changer pendant que la fonctionnalité est en aperçu de recherche. Les modifications de rupture sont livrées derrière les nouvelles versions d'en-tête bêta datées, et les deux versions d'en-tête précédentes les plus récentes continuent de fonctionner afin que les appelants aient le temps de migrer.

210</Warning>228</Warning>

211 229 

212#### Référence API230<h4 id="api-reference">

231 Référence API

232</h4>

213 233 

214Pour la référence API complète, y compris toutes les réponses d'erreur, les règles de validation et les limites de champs, consultez [Trigger a routine via API](https://platform.claude.com/docs/fr/api/claude-code/routines-fire) dans la documentation de la plateforme Claude.234Pour la référence API complète, y compris toutes les réponses d'erreur, les règles de validation et les limites de champs, consultez [Trigger a routine via API](https://platform.claude.com/docs/fr/api/claude-code/routines-fire) dans la documentation de la plateforme Claude.

215 235 

216Le point de terminaison `/fire` est disponible pour les utilisateurs de claude.ai uniquement et ne fait pas partie de la surface de l'API Claude Platform.236Le point de terminaison `/fire` est disponible pour les utilisateurs de claude.ai uniquement et ne fait pas partie de la surface de l'API Claude Platform.

217 237 

218### Ajouter un déclencheur GitHub238<h3 id="add-a-github-trigger">

239 Ajouter un déclencheur GitHub

240</h3>

219 241 

220Un déclencheur GitHub démarre une nouvelle session automatiquement lorsqu'un événement correspondant se produit sur un référentiel connecté. Chaque événement correspondant démarre sa propre session.242Un déclencheur GitHub démarre une nouvelle session automatiquement lorsqu'un événement correspondant se produit sur un référentiel connecté. Chaque événement correspondant démarre sa propre session.

221 243 


247 </Step>269 </Step>

248</Steps>270</Steps>

249 271 

250#### Événements pris en charge272<h4 id="supported-events">

273 Événements pris en charge

274</h4>

251 275 

252Les déclencheurs GitHub peuvent s'abonner à l'une des catégories d'événements suivantes. Dans chaque catégorie, vous pouvez choisir une action spécifique, comme `pull_request.opened`, ou réagir à toutes les actions de la catégorie.276Les déclencheurs GitHub peuvent s'abonner à l'une des catégories d'événements suivantes. Dans chaque catégorie, vous pouvez choisir une action spécifique, comme `pull_request.opened`, ou réagir à toutes les actions de la catégorie.

253 277 


256| Pull request | Une PR est ouverte, fermée, assignée, étiquetée, synchronisée ou autrement mise à jour |280| Pull request | Une PR est ouverte, fermée, assignée, étiquetée, synchronisée ou autrement mise à jour |

257| Release | Une version est créée, publiée, modifiée ou supprimée |281| Release | Une version est créée, publiée, modifiée ou supprimée |

258 282 

259#### Filtrer les demandes de tirage283<h4 id="filter-pull-requests">

284 Filtrer les demandes de tirage

285</h4>

260 286 

261Utilisez les filtres pour affiner les demandes de tirage qui démarrent une nouvelle session. Toutes les conditions de filtre doivent correspondre pour que la routine se déclenche. Les champs de filtre disponibles sont :287Utilisez les filtres pour affiner les demandes de tirage qui démarrent une nouvelle session. Toutes les conditions de filtre doivent correspondre pour que la routine se déclenche. Les champs de filtre disponibles sont :

262 288 


281* **Prêt pour l'examen uniquement** : est brouillon est `false`. Ignore les brouillons afin que la routine s'exécute uniquement lorsque la PR est prête pour l'examen.307* **Prêt pour l'examen uniquement** : est brouillon est `false`. Ignore les brouillons afin que la routine s'exécute uniquement lorsque la PR est prête pour l'examen.

282* **Portage contrôlé par étiquette** : les étiquettes incluent `needs-backport`. Déclenche une routine de portage vers une autre branche uniquement lorsqu'un responsable marque la PR.308* **Portage contrôlé par étiquette** : les étiquettes incluent `needs-backport`. Déclenche une routine de portage vers une autre branche uniquement lorsqu'un responsable marque la PR.

283 309 

284#### Comment les sessions correspondent aux événements310<h4 id="how-sessions-map-to-events">

311 Comment les sessions correspondent aux événements

312</h4>

285 313 

286Chaque événement GitHub correspondant démarre une nouvelle session. La réutilisation de session entre les événements n'est pas disponible pour les routines déclenchées par GitHub, de sorte que deux mises à jour de PR produisent deux sessions indépendantes.314Chaque événement GitHub correspondant démarre une nouvelle session. La réutilisation de session entre les événements n'est pas disponible pour les routines déclenchées par GitHub, de sorte que deux mises à jour de PR produisent deux sessions indépendantes.

287 315 

288## Gérer les routines316<h2 id="manage-routines">

317 Gérer les routines

318</h2>

289 319 

290Cliquez sur une routine dans la liste pour ouvrir sa page de détail. La page de détail affiche les référentiels de la routine, les connecteurs, l'invite, le calendrier, les jetons API, les déclencheurs GitHub et une liste des exécutions passées.320Cliquez sur une routine dans la liste pour ouvrir sa page de détail. La page de détail affiche les référentiels de la routine, les connecteurs, l'invite, le calendrier, les jetons API, les déclencheurs GitHub et une liste des exécutions passées.

291 321 

292### Afficher et interagir avec les exécutions322<h3 id="view-and-interact-with-runs">

323 Afficher et interagir avec les exécutions

324</h3>

293 325 

294Cliquez sur n'importe quelle exécution pour l'ouvrir en tant que session complète. À partir de là, vous pouvez voir ce que Claude a fait, examiner les modifications, créer une demande de tirage ou continuer la conversation. Chaque session d'exécution fonctionne comme n'importe quelle autre session : utilisez le menu déroulant à côté du titre de la session pour la renommer, l'archiver ou la supprimer.326Cliquez sur n'importe quelle exécution pour l'ouvrir en tant que session complète. À partir de là, vous pouvez voir ce que Claude a fait, examiner les modifications, créer une demande de tirage ou continuer la conversation. Chaque session d'exécution fonctionne comme n'importe quelle autre session : utilisez le menu déroulant à côté du titre de la session pour la renommer, l'archiver ou la supprimer.

295 327 


297 Un statut vert dans la liste des exécutions signifie que la session a démarré et s'est terminée sans erreur d'infrastructure. Cela ne signifie pas que la tâche dans votre invite a réussi. Ouvrez l'exécution pour lire la transcription et confirmer ce que Claude a réellement fait. Les demandes réseau bloquées, les outils de connecteur manquants et les défaillances au niveau des tâches s'affichent là plutôt que dans l'indicateur de statut.329 Un statut vert dans la liste des exécutions signifie que la session a démarré et s'est terminée sans erreur d'infrastructure. Cela ne signifie pas que la tâche dans votre invite a réussi. Ouvrez l'exécution pour lire la transcription et confirmer ce que Claude a réellement fait. Les demandes réseau bloquées, les outils de connecteur manquants et les défaillances au niveau des tâches s'affichent là plutôt que dans l'indicateur de statut.

298</Note>330</Note>

299 331 

300### Éditer et contrôler les routines332<h3 id="edit-and-control-routines">

333 Éditer et contrôler les routines

334</h3>

301 335 

302À partir de la page de détail de la routine, vous pouvez :336À partir de la page de détail de la routine, vous pouvez :

303 337 


306* Cliquer sur l'icône de crayon pour ouvrir **Edit routine** et modifier le nom, l'invite, les référentiels, l'environnement, les connecteurs ou l'un des déclencheurs de la routine. La section **Select a trigger** est l'endroit où vous ajoutez ou supprimez les calendriers, les jetons API et les déclencheurs d'événements GitHub.340* Cliquer sur l'icône de crayon pour ouvrir **Edit routine** et modifier le nom, l'invite, les référentiels, l'environnement, les connecteurs ou l'un des déclencheurs de la routine. La section **Select a trigger** est l'endroit où vous ajoutez ou supprimez les calendriers, les jetons API et les déclencheurs d'événements GitHub.

307* Cliquer sur l'icône de suppression pour supprimer la routine. Les sessions passées créées par la routine restent dans votre liste de sessions.341* Cliquer sur l'icône de suppression pour supprimer la routine. Les sessions passées créées par la routine restent dans votre liste de sessions.

308 342 

309### Référentiels et permissions de branche343<h3 id="repositories-and-branch-permissions">

344 Référentiels et permissions de branche

345</h3>

310 346 

311Les routines ont besoin d'un accès GitHub pour cloner les référentiels. Lorsque vous créez une routine à partir de la CLI avec `/schedule`, Claude vérifie si votre compte a GitHub connecté et vous invite à exécuter `/web-setup` si ce n'est pas le cas. Consultez [GitHub authentication options](/fr/claude-code-on-the-web#github-authentication-options) pour les deux façons d'accorder l'accès.347Les routines ont besoin d'un accès GitHub pour cloner les référentiels. Lorsque vous créez une routine à partir de la CLI avec `/schedule`, Claude vérifie si votre compte a GitHub connecté et vous invite à exécuter `/web-setup` si ce n'est pas le cas. Consultez [Options d'authentification GitHub](/fr/claude-code-on-the-web#github-authentication-options) pour les deux façons d'accorder l'accès.

312 348 

313Chaque référentiel que vous ajoutez est cloné à chaque exécution. Claude commence à partir de la branche par défaut du référentiel sauf si votre invite spécifie le contraire.349Chaque référentiel que vous ajoutez est cloné à chaque exécution. Claude commence à partir de la branche par défaut du référentiel sauf si votre invite spécifie le contraire.

314 350 

315Par défaut, Claude ne peut pousser que vers les branches préfixées par `claude/`. Cela empêche les routines de modifier accidentellement les branches protégées ou longue durée. Pour supprimer cette restriction pour un référentiel spécifique, activez **Allow unrestricted branch pushes** pour ce référentiel lors de la création ou de l'édition de la routine.351Par défaut, Claude ne peut pousser que vers les branches préfixées par `claude/`. Cela empêche les routines de modifier accidentellement les branches protégées ou longue durée. Pour supprimer cette restriction pour un référentiel spécifique, activez **Allow unrestricted branch pushes** pour ce référentiel lors de la création ou de l'édition de la routine.

316 352 

317### Connecteurs353<h3 id="connectors">

354 Connecteurs

355</h3>

318 356 

319Les routines peuvent utiliser vos connecteurs MCP connectés pour lire et écrire dans les services externes pendant chaque exécution. Par exemple, une routine qui trie les demandes d'assistance peut lire à partir d'un canal Slack et créer des problèmes dans Linear.357Les routines peuvent utiliser vos connecteurs MCP connectés pour lire et écrire dans les services externes pendant chaque exécution. Par exemple, une routine qui trie les demandes d'assistance peut lire à partir d'un canal Slack et créer des problèmes dans Linear.

320 358 


324 362 

325Pour gérer ou ajouter des connecteurs en dehors du formulaire de routine, visitez **Settings > Connectors** sur claude.ai ou utilisez `/schedule update` dans la CLI.363Pour gérer ou ajouter des connecteurs en dehors du formulaire de routine, visitez **Settings > Connectors** sur claude.ai ou utilisez `/schedule update` dans la CLI.

326 364 

327### Environnements et accès réseau365<h3 id="environments-and-network-access">

366 Environnements et accès réseau

367</h3>

328 368 

329Chaque routine s'exécute dans un [environnement cloud](/fr/claude-code-on-the-web#the-cloud-environment) qui contrôle l'accès réseau, les variables d'environnement et les scripts de configuration. La routine hérite de la politique réseau de l'environnement à chaque exécution.369Chaque routine s'exécute dans un [environnement cloud](/fr/claude-code-on-the-web#the-cloud-environment) qui contrôle l'accès réseau, les variables d'environnement et les scripts de configuration. La routine hérite de la politique réseau de l'environnement à chaque exécution.

330 370 

331L'environnement **Default** utilise l'accès réseau **Trusted** : la [liste d'autorisation par défaut](/fr/claude-code-on-the-web#default-allowed-domains) des registres de paquets, des API des fournisseurs de cloud, des registres de conteneurs et des domaines de développement courants est accessible, mais les domaines arbitraires ne le sont pas. Les demandes sortantes vers d'autres hôtes échouent avec `403` et `x-deny-reason: host_not_allowed`. Le trafic des connecteurs MCP est acheminé via les serveurs d'Anthropic, donc les connecteurs que vous ajoutez à la routine fonctionnent sans ajouter leurs hôtes aux **Allowed domains**. Supprimez tous les connecteurs dont vous n'avez pas besoin sous [Connecteurs](#connecteurs).371L'environnement **Default** utilise l'accès réseau **Trusted** : la [liste d'autorisation par défaut](/fr/claude-code-on-the-web#default-allowed-domains) des registres de paquets, des API des fournisseurs de cloud, des registres de conteneurs et des domaines de développement courants est accessible, mais les domaines arbitraires ne le sont pas. Les demandes sortantes vers d'autres hôtes échouent avec `403` et `x-deny-reason: host_not_allowed`. Le trafic des connecteurs MCP est acheminé via les serveurs d'Anthropic, donc les connecteurs que vous ajoutez à la routine fonctionnent sans ajouter leurs hôtes aux **Allowed domains**. Supprimez tous les connecteurs dont vous n'avez pas besoin sous [Connecteurs](#connectors).

332 372 

333Pour autoriser des domaines supplémentaires :373Pour autoriser des domaines supplémentaires :

334 374 


354 </Step>394 </Step>

355</Steps>395</Steps>

356 396 

357Consultez [Network access](/fr/claude-code-on-the-web#network-access) pour plus de détails sur les niveaux d'accès et la liste d'autorisation par défaut.397Consultez [Accès réseau](/fr/claude-code-on-the-web#network-access) pour plus de détails sur les niveaux d'accès et la liste d'autorisation par défaut.

358 398 

359## Utilisation et limites399<h2 id="usage-and-limits">

400 Utilisation et limites

401</h2>

360 402 

361Les routines réduisent l'utilisation de l'abonnement de la même manière que les sessions interactives. En plus des limites d'abonnement standard, les routines ont un plafond quotidien sur le nombre d'exécutions qui peuvent démarrer par compte. Consultez votre consommation actuelle et vos exécutions de routine quotidiennes restantes sur [claude.ai/code/routines](https://claude.ai/code/routines) ou [claude.ai/settings/usage](https://claude.ai/settings/usage).403Les routines réduisent l'utilisation de l'abonnement de la même manière que les sessions interactives. En plus des limites d'abonnement standard, les routines ont un plafond quotidien sur le nombre d'exécutions qui peuvent démarrer par compte. Consultez votre consommation actuelle et vos exécutions de routine quotidiennes restantes sur [claude.ai/code/routines](https://claude.ai/code/routines) ou [claude.ai/settings/usage](https://claude.ai/settings/usage).

362 404 


364 406 

365Les exécutions ponctuelles ne comptent pas par rapport au plafond quotidien des routines. Elles réduisent votre utilisation d'abonnement régulière comme toute autre session, mais elles sont exemptes de l'allocation quotidienne d'exécutions de routine par compte.407Les exécutions ponctuelles ne comptent pas par rapport au plafond quotidien des routines. Elles réduisent votre utilisation d'abonnement régulière comme toute autre session, mais elles sont exemptes de l'allocation quotidienne d'exécutions de routine par compte.

366 408 

367## Dépannage409<h2 id="troubleshooting">

410 Dépannage

411</h2>

368 412 

369### `/schedule` retourne « Commande inconnue »413<h3 id="/schedule-returns-unknown-command">

414 `/schedule` retourne « Commande inconnue »

415</h3>

370 416 

371L'interface de ligne de commande masque `/schedule` lorsque l'une de ses exigences n'est pas satisfaite. La cause est généralement l'une des suivantes :417L'interface de ligne de commande masque `/schedule` lorsque l'une de ses exigences n'est pas satisfaite. La cause est généralement l'une des suivantes :

372 418 


377 423 

378Vous pouvez toujours créer et gérer les routines sur [claude.ai/code/routines](https://claude.ai/code/routines) indépendamment de la façon dont l'interface de ligne de commande est configurée.424Vous pouvez toujours créer et gérer les routines sur [claude.ai/code/routines](https://claude.ai/code/routines) indépendamment de la façon dont l'interface de ligne de commande est configurée.

379 425 

380### « Les routines sont désactivées par la politique de votre organisation »426<h3 id="routines-are-disabled-by-your-organization’s-policy">

427 « Les routines sont désactivées par la politique de votre organisation »

428</h3>

381 429 

382Votre administrateur Team ou Enterprise a probablement désactivé le bouton bascule **Routines** sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). Il s'agit d'un paramètre d'organisation côté serveur, il ne peut donc pas être remplacé par votre configuration locale. Contactez votre administrateur pour demander que les routines soient activées pour votre organisation.430Votre administrateur Team ou Enterprise a probablement désactivé le bouton bascule **Routines** sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). Il s'agit d'un paramètre d'organisation côté serveur, il ne peut donc pas être remplacé par votre configuration locale. Contactez votre administrateur pour demander que les routines soient activées pour votre organisation.

383 431 

384## Ressources connexes432<h2 id="related-resources">

433 Ressources connexes

434</h2>

385 435 

386* [`/loop` et planification en session](/fr/scheduled-tasks) : planifiez les tâches locales dans une session CLI ouverte436* [`/loop` et planification en session](/fr/scheduled-tasks) : planifiez les tâches locales dans une session CLI ouverte

387* [Desktop scheduled tasks](/fr/desktop-scheduled-tasks) : tâches planifiées locales qui s'exécutent sur votre machine avec accès aux fichiers locaux437* [Tâches planifiées de bureau](/fr/desktop-scheduled-tasks) : tâches planifiées locales qui s'exécutent sur votre machine avec accès aux fichiers locaux

388* [Cloud environment](/fr/claude-code-on-the-web#the-cloud-environment) : configurez l'environnement d'exécution pour les sessions cloud438* [Environnement cloud](/fr/claude-code-on-the-web#the-cloud-environment) : configurez l'environnement d'exécution pour les sessions cloud

389* [MCP connectors](/fr/mcp) : connectez les services externes comme Slack, Linear et Google Drive439* [Connecteurs MCP](/fr/mcp) : connectez les services externes comme Slack, Linear et Google Drive

390* [GitHub Actions](/fr/github-actions) : exécutez Claude dans votre pipeline CI sur les événements du référentiel440* [GitHub Actions](/fr/github-actions) : exécutez Claude dans votre pipeline CI sur les événements du référentiel

Details

65 65 

66Les [modes de permission](/fr/permission-modes) décident si un appel d'outil s'exécute et si vous êtes invité en premier. L'isolation restreint ce qu'une commande peut accéder une fois qu'elle s'exécute. Les deux fonctionnent ensemble : lorsqu'un mode de permission laisse les actions s'exécuter sans vous demander, une limite d'isolation restreint ce que ces actions peuvent atteindre.66Les [modes de permission](/fr/permission-modes) décident si un appel d'outil s'exécute et si vous êtes invité en premier. L'isolation restreint ce qu'une commande peut accéder une fois qu'elle s'exécute. Les deux fonctionnent ensemble : lorsqu'un mode de permission laisse les actions s'exécuter sans vous demander, une limite d'isolation restreint ce que ces actions peuvent atteindre.

67 67 

68`--dangerously-skip-permissions` supprime entièrement l'examen par action, donc une limite d'isolation est la seule chose limitant ce que Claude peut faire. Exécutez-le toujours à l'intérieur d'un conteneur, d'une VM ou du [runtime sandbox](#sandbox-runtime), afin que les outils de fichiers, les serveurs MCP et les hooks soient également à l'intérieur de la limite.68`--dangerously-skip-permissions` supprime l'examen par action autre que les [règles ask](/fr/permissions#manage-permissions) explicites, donc une limite d'isolation est la seule chose limitant ce que Claude peut faire. Exécutez-le toujours à l'intérieur d'un conteneur, d'une VM ou du [runtime sandbox](#sandbox-runtime), afin que les outils de fichiers, les serveurs MCP et les hooks soient également à l'intérieur de la limite.

69 69 

70Le [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) remplace l'invite par un classificateur qui examine les actions et bloque celles qui escaladent au-delà de la demande, ciblent une infrastructure non reconnue ou semblent motivées par du contenu hostile que Claude a lu. Le classificateur est un contrôle par action, pas une limite d'isolation, donc une limite d'isolation ajoute toujours une défense en profondeur pour les exécutions sans surveillance, et n'est pas requise comme elle l'est pour `--dangerously-skip-permissions`.70Le [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) remplace l'invite par un classificateur qui examine les actions et bloque celles qui escaladent au-delà de la demande, ciblent une infrastructure non reconnue ou semblent motivées par du contenu hostile que Claude a lu. Le classificateur est un contrôle par action, pas une limite d'isolation, donc une limite d'isolation ajoute toujours une défense en profondeur pour les exécutions sans surveillance, et n'est pas requise comme elle l'est pour `--dangerously-skip-permissions`.

71 71 

sandboxing.md +10 −7

Details

49 </Step>49 </Step>

50 50 

51 <Step title="Exécuter une commande Bash">51 <Step title="Exécuter une commande Bash">

52 Demandez à Claude d'exécuter une commande, comme une compilation ou une suite de tests. Par défaut, les commandes à l'intérieur du sandbox ne peuvent écrire que dans le répertoire de travail. La première fois qu'une commande a besoin d'un nouveau domaine réseau, Claude Code demande une approbation.52 Demandez à Claude d'exécuter une commande, comme une compilation ou une suite de tests. Par défaut, les commandes à l'intérieur du sandbox ne peuvent écrire que dans le répertoire de travail et le répertoire temporaire de la session. La première fois qu'une commande a besoin d'un nouveau domaine réseau, Claude Code demande une approbation.

53 53 

54 Les commandes qui ne peuvent pas s'exécuter sandboxées reviennent au flux de permission régulier. Pour élargir ou réduire ces limites, consultez [Configurer le sandboxing](#configure-sandboxing).54 Les commandes qui ne peuvent pas s'exécuter sandboxées reviennent au flux de permission régulier. Pour élargir ou réduire ces limites, consultez [Configurer le sandboxing](#configure-sandboxing).

55 </Step>55 </Step>


134 134 

135* Les [règles de refus](/fr/permissions) explicites sont toujours respectées135* Les [règles de refus](/fr/permissions) explicites sont toujours respectées

136* Les commandes `rm` ou `rmdir` qui ciblent `/`, votre répertoire personnel ou d'autres chemins système critiques déclenchent toujours une invite de permission136* Les commandes `rm` ou `rmdir` qui ciblent `/`, votre répertoire personnel ou d'autres chemins système critiques déclenchent toujours une invite de permission

137* Les [règles Ask](/fr/permissions) s'appliquent aux commandes qui reviennent au flux de permission régulier137* Les [règles ask](/fr/permissions) s'appliquant au contenu comme `Bash(git push *)` forcent toujours une invite même pour les commandes sandboxées

138* Une règle ask `Bash` simple, ou la forme équivalente `Bash(*)`, est ignorée pour les commandes qui s'exécutent sandboxées ; elle s'applique toujours aux commandes qui reviennent au flux de permission régulier

138 139 

139**Mode permissions régulières** : Toutes les commandes Bash passent par le flux de permission régulier, même lorsqu'elles sont sandboxées. Cela offre plus de contrôle mais nécessite plus d'approbations.140**Mode permissions régulières** : Toutes les commandes Bash passent par le flux de permission régulier, même lorsqu'elles sont sandboxées. Cela offre plus de contrôle mais nécessite plus d'approbations.

140 141 

141Dans les deux modes, le sandbox applique les mêmes restrictions de système de fichiers et de réseau. La différence réside uniquement dans le fait que les commandes sandboxées sont auto-approuvées ou nécessitent une permission explicite.142Dans les deux modes, le sandbox applique les mêmes restrictions de système de fichiers et de réseau. La différence réside uniquement dans le fait que les commandes sandboxées sont auto-approuvées ou nécessitent une permission explicite.

142 143 

144Le répertoire temporaire de la session est inscriptible à l'intérieur du sandbox par défaut, aux côtés du répertoire de travail. Claude Code définit `$TMPDIR` sur ce répertoire pour les commandes sandboxées, de sorte que les outils qui écrivent des fichiers temporaires fonctionnent sans configuration supplémentaire. Les commandes non sandboxées héritent de votre `$TMPDIR` shell inchangé, ce qui signifie que les commandes sandboxées et non sandboxées résolvent `$TMPDIR` à des répertoires différents. Pour transmettre des fichiers temporaires entre les deux, écrivez-les plutôt sous le répertoire de travail.

145 

143Certaines commandes ne peuvent pas s'exécuter à l'intérieur du sandbox du tout, comme les outils qui sont incompatibles avec lui ou qui ont besoin d'un hôte que vous n'avez pas autorisé. Plutôt que d'échouer la tâche ou de vous demander d'éteindre le sandboxing, Claude Code inclut une trappe d'échappement : lorsqu'une commande échoue en raison des restrictions du sandbox, Claude analyse l'échec et peut réessayer la commande avec le paramètre `dangerouslyDisableSandbox`. La commande réessayée s'exécute en dehors du sandbox, elle passe donc par le flux de permission régulier et nécessite votre approbation.146Certaines commandes ne peuvent pas s'exécuter à l'intérieur du sandbox du tout, comme les outils qui sont incompatibles avec lui ou qui ont besoin d'un hôte que vous n'avez pas autorisé. Plutôt que d'échouer la tâche ou de vous demander d'éteindre le sandboxing, Claude Code inclut une trappe d'échappement : lorsqu'une commande échoue en raison des restrictions du sandbox, Claude analyse l'échec et peut réessayer la commande avec le paramètre `dangerouslyDisableSandbox`. La commande réessayée s'exécute en dehors du sandbox, elle passe donc par le flux de permission régulier et nécessite votre approbation.

144 147 

145Vous pouvez désactiver cette trappe d'échappement en définissant `"allowUnsandboxedCommands": false` dans vos [paramètres de sandbox](/fr/settings#sandbox-settings). Lorsqu'elle est désactivée, ce que l'onglet Overrides de `/sandbox` affiche comme **Mode sandbox strict**, le paramètre `dangerouslyDisableSandbox` est complètement ignoré et toutes les commandes doivent s'exécuter sandboxées ou être explicitement listées dans `excludedCommands`.148Vous pouvez désactiver cette trappe d'échappement en définissant `"allowUnsandboxedCommands": false` dans vos [paramètres de sandbox](/fr/settings#sandbox-settings). Lorsqu'elle est désactivée, ce que l'onglet Overrides de `/sandbox` affiche comme **Mode sandbox strict**, le paramètre `dangerouslyDisableSandbox` est complètement ignoré et toutes les commandes doivent s'exécuter sandboxées ou être explicitement listées dans `excludedCommands`.


154 157 

155Personnalisez le comportement du sandbox via votre fichier `settings.json`. Consultez [Paramètres](/fr/settings#sandbox-settings) pour la référence de configuration complète.158Personnalisez le comportement du sandbox via votre fichier `settings.json`. Consultez [Paramètres](/fr/settings#sandbox-settings) pour la référence de configuration complète.

156 159 

157Par défaut, les commandes sandboxées ne peuvent écrire que dans le répertoire de travail actuel. Si les commandes de sous-processus comme `kubectl`, `terraform` ou `npm` doivent écrire en dehors du répertoire du projet, utilisez `sandbox.filesystem.allowWrite` pour accorder l'accès à des chemins spécifiques :160Par défaut, les commandes sandboxées ne peuvent écrire que dans le répertoire de travail actuel et le répertoire temporaire de la session. Si les commandes de sous-processus comme `kubectl`, `terraform` ou `npm` doivent écrire en dehors de ces répertoires, utilisez `sandbox.filesystem.allowWrite` pour accorder l'accès à des chemins spécifiques :

158 161 

159```json theme={null}162```json theme={null}

160{163{


209 212 

210L'outil Bash en sandbox restreint l'accès au système de fichiers à des répertoires spécifiques :213L'outil Bash en sandbox restreint l'accès au système de fichiers à des répertoires spécifiques :

211 214 

212* **Comportement d'écriture par défaut** : accès en lecture et écriture au répertoire de travail actuel et à ses sous-répertoires215* **Comportement d'écriture par défaut** : accès en lecture et écriture au répertoire de travail actuel et à ses sous-répertoires, plus le répertoire temporaire de session vers lequel `$TMPDIR` pointe

213* **Comportement de lecture par défaut** : accès en lecture à l'ensemble de l'ordinateur, sauf certains répertoires refusés. Notez que ce comportement par défaut permet toujours de lire les fichiers d'identifiants tels que `~/.aws/credentials` et `~/.ssh/`. Ajoutez-les à `denyRead` pour les bloquer.216* **Comportement de lecture par défaut** : accès en lecture à l'ensemble de l'ordinateur, sauf certains répertoires refusés. Notez que ce comportement par défaut permet toujours de lire les fichiers d'identifiants tels que `~/.aws/credentials` et `~/.ssh/`. Ajoutez-les à `denyRead` pour les bloquer.

214* **Accès bloqué** : impossible de modifier les fichiers en dehors du répertoire de travail actuel sans permission explicite, y compris les fichiers de configuration shell tels que `~/.bashrc` et les binaires système dans `/bin/`217* **Accès bloqué** : impossible de modifier les fichiers en dehors du répertoire de travail actuel et du répertoire temporaire de session sans permission explicite, y compris les fichiers de configuration shell tels que `~/.bashrc` et les binaires système dans `/bin/`

215* **Git worktrees** : lorsque le répertoire de travail est un [git worktree lié](/fr/worktrees), le sandbox permet également les écritures dans le répertoire `.git` partagé du référentiel principal afin que les commandes telles que `git commit` puissent mettre à jour les références et l'index. Les écritures dans `hooks/` et `config` à l'intérieur de ce répertoire restent refusées.218* **Git worktrees** : lorsque le répertoire de travail est un [linked git worktree](/fr/worktrees), le sandbox permet également les écritures dans le répertoire `.git` partagé du référentiel principal afin que les commandes telles que `git commit` puissent mettre à jour les références et l'index. Les écritures dans `hooks/` et `config` à l'intérieur de ce répertoire restent refusées.

216* **Configurable** : définissez des chemins autorisés et refusés personnalisés via les paramètres219* **Configurable** : définissez des chemins autorisés et refusés personnalisés via les paramètres

217 220 

218Vous pouvez accorder l'accès en écriture à des chemins supplémentaires en utilisant `sandbox.filesystem.allowWrite` dans vos paramètres. Ces restrictions sont appliquées au niveau du système d'exploitation, elles s'appliquent donc à toutes les commandes de sous-processus, y compris les outils comme `kubectl`, `terraform` et `npm`, pas seulement aux outils de fichiers de Claude.221Vous pouvez accorder l'accès en écriture à des chemins supplémentaires en utilisant `sandbox.filesystem.allowWrite` dans vos paramètres. Ces restrictions sont appliquées au niveau du système d'exploitation, elles s'appliquent donc à toutes les commandes de sous-processus, y compris les outils comme `kubectl`, `terraform` et `npm`, pas seulement aux outils de fichiers de Claude.


416* **Sous-agents** : les [sous-agents](/fr/sub-agents) s'exécutent dans le même processus que la session parent et utilisent la même configuration de sandbox. Les commandes Bash à l'intérieur d'un sous-agent sont sandboxées lorsque le sandboxing est activé dans la session parent.419* **Sous-agents** : les [sous-agents](/fr/sub-agents) s'exécutent dans le même processus que la session parent et utilisent la même configuration de sandbox. Les commandes Bash à l'intérieur d'un sous-agent sont sandboxées lorsque le sandboxing est activé dans la session parent.

417 420 

418<Warning>421<Warning>

419 Un sandboxing efficace nécessite **à la fois** l'isolation du système de fichiers et du réseau. Sans isolation réseau, un agent compromis pourrait exfiltrer des fichiers sensibles comme les clés SSH. Sans isolation du système de fichiers, un agent compromis pourrait installer une porte dérobée sur les ressources système pour accéder au réseau. Lorsque vous élargissez les valeurs par défaut, vérifiez qu'un chemin `allowWrite`, une entrée `allowedDomains` large ou une exception `excludedCommands` ne défait pas une restriction de l'autre côté.422 Un sandboxing efficace nécessite à la fois l'isolation du système de fichiers et du réseau. Sans isolation réseau, un agent compromis pourrait exfiltrer des fichiers sensibles comme les clés SSH. Sans isolation du système de fichiers, un agent compromis pourrait installer une porte dérobée sur les ressources système pour accéder au réseau. Lorsque vous élargissez les valeurs par défaut, vérifiez qu'un chemin `allowWrite`, une entrée `allowedDomains` large ou une exception `excludedCommands` ne défait pas une restriction de l'autre côté.

420</Warning>423</Warning>

421 424 

422<h2 id="see-also">425<h2 id="see-also">

security.md +4 −4

Details

22 22 

23Claude Code utilise des permissions strictes en lecture seule par défaut. Lorsque des actions supplémentaires sont nécessaires (édition de fichiers, exécution de tests, exécution de commandes), Claude Code demande une permission explicite. Les utilisateurs contrôlent s'il faut approuver les actions une seule fois ou les autoriser automatiquement.23Claude Code utilise des permissions strictes en lecture seule par défaut. Lorsque des actions supplémentaires sont nécessaires (édition de fichiers, exécution de tests, exécution de commandes), Claude Code demande une permission explicite. Les utilisateurs contrôlent s'il faut approuver les actions une seule fois ou les autoriser automatiquement.

24 24 

25Nous avons conçu Claude Code pour être transparent et sécurisé. Par exemple, nous exigeons une approbation pour les commandes bash avant de les exécuter, vous donnant un contrôle direct. Cette approche permet aux utilisateurs et aux organisations de configurer les permissions directement.25Claude Code nécessite une approbation avant d'exécuter les commandes Bash qui peuvent modifier votre système. Un ensemble intégré de commandes en lecture seule telles que `ls`, `cat` et `git status` s'exécute sans invite. Cette approche permet aux utilisateurs et aux organisations de configurer les permissions directement.

26 26 

27Pour une configuration détaillée des permissions, consultez [Permissions](/fr/permissions).27Pour une configuration détaillée des permissions, consultez [Permissions](/fr/permissions).

28 28 


56* **Système de permissions** : Les opérations sensibles nécessitent une approbation explicite56* **Système de permissions** : Les opérations sensibles nécessitent une approbation explicite

57* **Analyse contextuelle** : Détecte les instructions potentiellement nuisibles en analysant la demande complète57* **Analyse contextuelle** : Détecte les instructions potentiellement nuisibles en analysant la demande complète

58* **Assainissement des entrées** : Prévient l'injection de commandes en traitant les entrées utilisateur58* **Assainissement des entrées** : Prévient l'injection de commandes en traitant les entrées utilisateur

59* **Liste noire de commandes** : Bloque les commandes risquées qui récupèrent du contenu arbitraire sur le web comme `curl` et `wget` par défaut. Lorsqu'elles sont explicitement autorisées, soyez conscient des [limitations des modèles de permission](/fr/permissions#tool-specific-permission-rules)59* **Approbation des commandes réseau** : Les commandes qui récupèrent du contenu sur le web comme `curl` et `wget` ne sont pas approuvées automatiquement par défaut. Elles demandent une approbation comme n'importe quelle autre commande Bash non en lecture seule, vous pouvez donc toujours approuver une fois ou ajouter une règle d'autorisation explicite comme `Bash(curl *)`. Pour les bloquer entièrement, ajoutez-les à [`permissions.deny`](/fr/permissions#tool-specific-permission-rules)

60 60 

61<h3 id="privacy-safeguards">61<h3 id="privacy-safeguards">

62 Protections de la vie privée62 Protections de la vie privée


77* **Approbation des demandes réseau** : Les outils qui effectuent des demandes réseau nécessitent une approbation utilisateur par défaut77* **Approbation des demandes réseau** : Les outils qui effectuent des demandes réseau nécessitent une approbation utilisateur par défaut

78* **Fenêtres de contexte isolées** : Web fetch utilise une fenêtre de contexte séparée pour éviter d'injecter des prompts potentiellement malveillants78* **Fenêtres de contexte isolées** : Web fetch utilise une fenêtre de contexte séparée pour éviter d'injecter des prompts potentiellement malveillants

79* **Vérification de confiance** : Les premières exécutions de base de code et les nouveaux serveurs MCP nécessitent une vérification de confiance79* **Vérification de confiance** : Les premières exécutions de base de code et les nouveaux serveurs MCP nécessitent une vérification de confiance

80 * Remarque : La vérification de confiance est désactivée lors de l'exécution non-interactive avec le drapeau `-p`. L'exception est [`--worktree`](/fr/worktrees), qui nécessite toujours que la confiance ait été acceptée pour le répertoire80 * Remarque : La vérification de confiance est désactivée lors de l'exécution non-interactive avec le drapeau `-p`

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

82* **Détection d'injection de commande** : Les commandes bash suspectes nécessitent une approbation manuelle même si elles ont été précédemment autorisées82* **Détection d'injection de commande** : Les commandes bash suspectes nécessitent une approbation manuelle même si elles ont été précédemment autorisées

83* **Correspondance en cas d'échec fermé** : Les commandes non appariées par défaut nécessitent une approbation manuelle83* **Correspondance en cas d'échec fermé** : Les commandes non appariées par défaut nécessitent une approbation manuelle

84* **Descriptions en langage naturel** : Les commandes bash complexes incluent des explications pour la compréhension de l'utilisateur84* **Descriptions en langage naturel** : Les commandes bash complexes incluent des explications pour la compréhension de l'utilisateur

85* **Stockage sécurisé des identifiants** : Les clés API et les tokens sont chiffrés. Consultez [Gestion des identifiants](/fr/authentication#credential-management)85* **Stockage sécurisé des identifiants** : Les clés API et les tokens sont stockés dans le Keychain macOS lorsqu'il est disponible, et protégés par les permissions de fichiers sur Windows et Linux. Consultez [Gestion des identifiants](/fr/authentication#credential-management)

86 86 

87<Warning>87<Warning>

88 **Risque de sécurité WebDAV Windows** : Lors de l'exécution de Claude Code sur Windows, nous recommandons de ne pas activer WebDAV ou de permettre à Claude Code d'accéder à des chemins tels que `\\*` qui peuvent contenir des sous-répertoires WebDAV. [WebDAV a été déprécié par Microsoft](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated) en raison de risques de sécurité. L'activation de WebDAV peut permettre à Claude Code de déclencher des demandes réseau vers des hôtes distants, contournant le système de permissions.88 **Risque de sécurité WebDAV Windows** : Lors de l'exécution de Claude Code sur Windows, nous recommandons de ne pas activer WebDAV ou de permettre à Claude Code d'accéder à des chemins tels que `\\*` qui peuvent contenir des sous-répertoires WebDAV. [WebDAV a été déprécié par Microsoft](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated) en raison de risques de sécurité. L'activation de WebDAV peut permettre à Claude Code de déclencher des demandes réseau vers des hôtes distants, contournant le système de permissions.

Details

174 174 

175Claude Code applique les mises à jour des paramètres automatiquement sans redémarrage, sauf pour les paramètres avancés comme la configuration OpenTelemetry, qui nécessitent un redémarrage complet pour prendre effet.175Claude Code applique les mises à jour des paramètres automatiquement sans redémarrage, sauf pour les paramètres avancés comme la configuration OpenTelemetry, qui nécessitent un redémarrage complet pour prendre effet.

176 176 

177<h3 id="invalid-entries-in-delivered-settings">

178 Entrées invalides dans les paramètres livrés

179</h3>

180 

181Les charges utiles livrées s'analysent de manière tolérante avec les mêmes règles que les autres sources gérées. Lorsqu'une charge utile contient une entrée qui échoue la validation du schéma, Claude Code supprime cette entrée, affiche une erreur de validation et applique tous les paramètres valides restants. Consultez [Entrées invalides dans les paramètres gérés](/fr/settings#invalid-entries-in-managed-settings) pour le comportement au niveau des champs, y compris la façon dont les champs d'application de la sécurité sont traités. Nécessite Claude Code v2.1.169 ou version ultérieure.

182 

183La livraison gérée par le serveur ajoute ces comportements :

184 

185* Le cache à `~/.claude/remote-settings.json` stocke la charge utile sauvegardée avec les entrées invalides supprimées. La charge utile invalide brute n'est jamais persistée.

186* Lorsqu'aucun champ de la charge utile ne peut être sauvegardé, Claude Code conserve les derniers paramètres en cache acceptés et enregistre une erreur fatale.

187* La [boîte de dialogue d'approbation de sécurité](#security-approval-dialogs) évalue la charge utile sauvegardée, de sorte qu'une entrée invalide supprimée n'est jamais présentée pour approbation et n'exécute jamais.

188 

189Pour déboguer les problèmes de livraison, exécutez `claude --debug-file <path>` et recherchez `Remote settings` dans le journal. Validez un changement de charge utile avec `claude doctor` sur une machine de test avant de le déployer dans l'organisation.

190 

177<h3 id="enforce-fail-closed-startup">191<h3 id="enforce-fail-closed-startup">

178 Appliquer un démarrage fermé par défaut192 Appliquer un démarrage fermé par défaut

179</h3>193</h3>

sessions.md +2 −2

Details

30| `claude --from-pr <number>` | Reprend la session liée à cette demande de tirage |30| `claude --from-pr <number>` | Reprend la session liée à cette demande de tirage |

31| `/resume` | Bascule vers une conversation différente depuis une session active |31| `/resume` | Bascule vers une conversation différente depuis une session active |

32 32 

33Les sessions créées avec [`claude -p`](/fr/headless) ou le [SDK Agent](/fr/agent-sdk/overview) n'apparaissent pas dans le sélecteur de sessions, mais vous pouvez toujours en reprendre une en passant son ID de session à `claude --resume <session-id>`.33Les sessions créées avec [`claude -p`](/fr/headless) ou le [SDK Agent](/fr/agent-sdk/overview) n'apparaissent pas dans le sélecteur de sessions, mais vous pouvez toujours en reprendre une en passant son ID de session à `claude --resume <session-id>`. Exécutez ceci depuis le répertoire dans lequel la session a été démarrée : la recherche d'ID de session est limitée au répertoire de projet courant et à ses git worktrees, donc une session créée ailleurs signale `No conversation found with session ID: <session-id>`.

34 34 

35<h3 id="where-the-session-picker-looks">35<h3 id="where-the-session-picker-looks">

36 Où le sélecteur de sessions cherche36 Où le sélecteur de sessions cherche

37</h3>37</h3>

38 38 

39Les sessions sont stockées par répertoire de projet. Par défaut, le sélecteur de sessions affiche les sessions interactives du worktree courant, ainsi que les sessions démarrées ailleurs qui ont ajouté le répertoire courant avec `/add-dir`. Utilisez `Ctrl+W` pour élargir à tous les worktrees du référentiel ou `Ctrl+A` pour élargir à chaque projet sur cette machine.39Les sessions sont stockées par répertoire de projet. Par défaut, le sélecteur de sessions affiche les sessions interactives du worktree courant, ainsi que les sessions démarrées ailleurs qui ont ajouté le répertoire courant avec `/add-dir`. À partir de la v2.1.169, le déplacement d'une session avec [`/cd`](/fr/commands) la réinstalle dans le stockage de projet du nouveau répertoire, ce qui la fait apparaître dans le sélecteur de ce répertoire par la suite. Utilisez `Ctrl+W` pour élargir à tous les worktrees du référentiel ou `Ctrl+A` pour élargir à chaque projet sur cette machine.

40 40 

41La sélection d'une session d'un autre worktree du même référentiel la reprend sur place. La sélection d'une session d'un projet non lié copie une commande `cd` et de reprise dans votre presse-papiers à la place.41La sélection d'une session d'un autre worktree du même référentiel la reprend sur place. La sélection d'une session d'un projet non lié copie une commande `cd` et de reprise dans votre presse-papiers à la place.

42 42 

settings.md +111 −24

Details

19</h3>19</h3>

20 20 

21| Portée | Emplacement | Qui est affecté | Partagé avec l'équipe ? |21| Portée | Emplacement | Qui est affecté | Partagé avec l'équipe ? |

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

23| **Managed** | Paramètres gérés par le serveur, plist / registre, ou `managed-settings.json` au niveau système | Tous les utilisateurs de la machine | Oui (déployé par l'IT) |23| **Managed** | Paramètres gérés par le serveur, plist / registre, ou `managed-settings.json` au niveau système | Tous les utilisateurs de la machine | Oui (déployé par l'IT) |

24| **User** | Répertoire `~/.claude/` | Vous, dans tous les projets | Non |24| **User** | Répertoire `~/.claude/` | Vous, dans tous les projets | Non |

25| **Project** | `.claude/` dans le référentiel | Tous les collaborateurs de ce référentiel | Oui (commité dans git) |25| **Project** | `.claude/` dans le référentiel | Tous les collaborateurs de ce référentiel | Oui (commité dans git) |

26| **Local** | `.claude/settings.local.json` | Vous, dans ce référentiel uniquement | Non (ignoré par gitignore) |26| **Local** | `.claude/settings.local.json` | Vous, dans ce référentiel uniquement | Non (ignoré par gitignore quand Claude Code le crée) |

27 27 

28<h3 id="when-to-use-each-scope">28<h3 id="when-to-use-each-scope">

29 Quand utiliser chaque portée29 Quand utiliser chaque portée


94* Les **paramètres utilisateur** sont définis dans `~/.claude/settings.json` et s'appliquent à tous les projets.94* Les **paramètres utilisateur** sont définis dans `~/.claude/settings.json` et s'appliquent à tous les projets.

95* Les **paramètres de projet** sont enregistrés dans votre répertoire de projet :95* Les **paramètres de projet** sont enregistrés dans votre répertoire de projet :

96 * `.claude/settings.json` pour les paramètres qui sont vérifiés dans le contrôle de source et partagés avec votre équipe96 * `.claude/settings.json` pour les paramètres qui sont vérifiés dans le contrôle de source et partagés avec votre équipe

97 * `.claude/settings.local.json` pour les paramètres qui ne sont pas vérifiés, utiles pour les préférences personnelles et l'expérimentation. Claude Code configurera git pour ignorer `.claude/settings.local.json` quand il est créé.97 * `.claude/settings.local.json` pour les paramètres qui ne sont pas vérifiés, utiles pour les préférences personnelles et l'expérimentation. Quand Claude Code crée `.claude/settings.local.json`, il configure git pour ignorer le fichier. Si vous créez le fichier vous-même, ajoutez-le à votre gitignore manuellement.

98* **Paramètres gérés** : Pour les organisations qui ont besoin d'un contrôle centralisé, Claude Code supporte plusieurs mécanismes de livraison pour les paramètres gérés. Tous utilisent le même format JSON et ne peuvent pas être contournés par les paramètres utilisateur ou de projet :98* **Paramètres gérés** : Pour les organisations qui ont besoin d'un contrôle centralisé, Claude Code supporte plusieurs mécanismes de livraison pour les paramètres gérés. Tous utilisent le même format JSON et ne peuvent pas être contournés par les paramètres utilisateur ou de projet :

99 99 

100 * **Paramètres gérés par le serveur** : livrés depuis les serveurs d'Anthropic via la console d'administration Claude.ai. Voir [paramètres gérés par le serveur](/fr/server-managed-settings).100 * **Paramètres gérés par le serveur** : livrés depuis les serveurs d'Anthropic via la console d'administration Claude.ai. Voir [paramètres gérés par le serveur](/fr/server-managed-settings).


174* `model` : utilisez [`/model`](/fr/model-config#setting-your-model) pour basculer en session174* `model` : utilisez [`/model`](/fr/model-config#setting-your-model) pour basculer en session

175* [`outputStyle`](/fr/output-styles) : fait partie de l'invite système, qui est reconstruite sur `/clear` ou redémarrage175* [`outputStyle`](/fr/output-styles) : fait partie de l'invite système, qui est reconstruite sur `/clear` ou redémarrage

176 176 

177<h3 id="invalid-entries-in-managed-settings">

178 Entrées invalides dans les paramètres gérés

179</h3>

180 

181Les paramètres gérés analysent avec tolérance. Quand une configuration gérée contient une entrée qui échoue la validation du schéma, Claude Code supprime cette entrée, enregistre un avertissement, et applique chaque politique valide restante. Une seule faute de frappe ne peut pas désactiver le reste de la politique de votre organisation. Ce comportement est cohérent dans les trois mécanismes de livraison : [paramètres gérés par le serveur](/fr/server-managed-settings), politiques plist et registre déployées via MDM, et fichiers `managed-settings.json`. Nécessite Claude Code v2.1.169 ou ultérieur.

182 

183Les champs d'application de la sécurité sont traités par champ au lieu d'être supprimés en gros quand ils sont présents mais invalides :

184 

185| Champ | Comportement quand présent mais invalide |

186| :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

187| `allowedMcpServers` | Appliqué comme une liste blanche vide, donc aucun MCP server n'est admis jusqu'à ce que la valeur soit corrigée. Une entrée invalide individuelle est supprimée et le sous-ensemble valide est appliqué. |

188| `allowManagedMcpServersOnly` | Traité comme `true`. |

189| `availableModels` | {/* min-version: 2.1.175 */}Appliqué comme une liste blanche vide, donc seul le modèle Par défaut est disponible jusqu'à ce que la valeur soit corrigée. Une entrée non-chaîne individuelle est supprimée et le sous-ensemble valide est appliqué. S'applique dans v2.1.175 et ultérieur. |

190| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Traité comme `true`. S'applique dans v2.1.175 et ultérieur. |

191| `forceLoginOrgUUID` | Aucune organisation n'est autorisée à se connecter jusqu'à ce que la valeur soit corrigée. |

192| `deniedMcpServers` | Une entrée invalide individuelle est supprimée et le sous-ensemble valide est appliqué. Une valeur entièrement invalide est supprimée avec un avertissement, car refuser chaque server bloquerait les servers que la politique n'a jamais nommés. |

193 

194`requiredMinimumVersion` et `requiredMaximumVersion` échouent ouvertement par conception : une valeur invalide est supprimée plutôt qu'appliquée, donc une mauvaise poussée de politique ne peut pas empêcher Claude Code de démarrer.

195 

196Les erreurs de validation apparaissent à trois endroits :

197 

198* Les sessions interactives affichent une boîte de dialogue au démarrage énumérant les entrées invalides.

199* Les exécutions sans tête avec `-p` impriment un résumé sur stderr.

200* [`claude doctor`](/fr/debug-your-config) énumère chaque entrée invalide avec sa source et son champ.

201 

202Validez les changements de politique en exécutant `claude doctor` sur une machine de test avant de les déployer à l'échelle de la flotte.

203 

204Cette tolérance s'applique uniquement aux paramètres gérés. Les fichiers de paramètres utilisateur, projet et locaux restent stricts : un fichier qui échoue la validation est rejeté dans son ensemble et signalé.

205 

177<h3 id="available-settings">206<h3 id="available-settings">

178 Paramètres disponibles207 Paramètres disponibles

179</h3>208</h3>


181`settings.json` supporte un certain nombre d'options :210`settings.json` supporte un certain nombre d'options :

182 211 

183| Clé | Description | Exemple |212| Clé | Description | Exemple |

184| :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------- |213| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------ |

214| `advisorModel` | {/* min-version: 2.1.98 */}Modèle pour l'[outil advisor](/fr/advisor) côté serveur. Accepte un alias de modèle tel que `"opus"`, `"sonnet"`, ou `"fable"` ({/* min-version: 2.1.170 */}v2.1.170+), ou un ID de modèle complet. Écrit automatiquement quand vous exécutez `/advisor`. Non défini pour désactiver l'advisor. Nécessite Claude Code v2.1.98 ou ultérieur | `"opus"` |

185| `agent` | Exécuter le thread principal en tant que subagent nommé, et définir l'agent par défaut pour les sessions envoyées à partir de `claude agents`. Applique l'invite système, les restrictions d'outils et le modèle de ce subagent. Voir [Invoquer les subagents explicitement](/fr/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |215| `agent` | Exécuter le thread principal en tant que subagent nommé, et définir l'agent par défaut pour les sessions envoyées à partir de `claude agents`. Applique l'invite système, les restrictions d'outils et le modèle de ce subagent. Voir [Invoquer les subagents explicitement](/fr/sub-agents#invoke-subagents-explicitly) | `"code-reviewer"` |

216| `agentPushNotifEnabled` | {/* min-version: 2.1.119 */}Quand le [Contrôle à distance](/fr/remote-control) est connecté, autoriser Claude à envoyer des notifications push proactives à votre téléphone, par exemple quand une tâche longue se termine. Par défaut : `false`. Apparaît dans `/config` comme **Push when Claude decides**. Voir [Notifications push mobiles](/fr/remote-control#mobile-push-notifications). Nécessite Claude Code v2.1.119 ou ultérieur | `true` |

186| `allowAllClaudeAiMcps` | (Paramètres gérés uniquement) Charger les connecteurs claude.ai aux côtés d'un `managed-mcp.json` déployé, qui sinon prend le contrôle exclusif et les supprime. Voir [Configuration MCP gérée](/fr/managed-mcp) | `true` |217| `allowAllClaudeAiMcps` | (Paramètres gérés uniquement) Charger les connecteurs claude.ai aux côtés d'un `managed-mcp.json` déployé, qui sinon prend le contrôle exclusif et les supprime. Voir [Configuration MCP gérée](/fr/managed-mcp) | `true` |

187| `allowedChannelPlugins` | (Paramètres gérés uniquement) Liste blanche des plugins de channel qui peuvent envoyer des messages. Remplace la liste blanche Anthropic par défaut quand défini. Non défini = revenir à la valeur par défaut, tableau vide = bloquer tous les plugins de channel. Nécessite `channelsEnabled: true`. Voir [Restreindre quels plugins de channel peuvent s'exécuter](/fr/channels#restrict-which-channel-plugins-can-run) | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |218| `allowedChannelPlugins` | (Paramètres gérés uniquement) Liste blanche des plugins de channel qui peuvent envoyer des messages. Remplace la liste blanche Anthropic par défaut quand défini. Non défini = revenir à la valeur par défaut, tableau vide = bloquer tous les plugins de channel. Nécessite `channelsEnabled: true`. Voir [Restreindre quels plugins de channel peuvent s'exécuter](/fr/channels#restrict-which-channel-plugins-can-run) | `[{ "marketplace": "claude-plugins-official", "plugin": "telegram" }]` |

188| `allowedHttpHookUrls` | Liste blanche des modèles d'URL que les hooks HTTP peuvent cibler. Supporte `*` comme caractère générique. Quand défini, les hooks avec des URL non correspondantes sont bloqués. Non défini = pas de restriction, tableau vide = bloquer tous les hooks HTTP. Les tableaux fusionnent entre les sources de paramètres. Voir [Configuration des hooks](#hook-configuration) | `["https://hooks.example.com/*"]` |219| `allowedHttpHookUrls` | Liste blanche des modèles d'URL que les hooks HTTP peuvent cibler. Supporte `*` comme caractère générique. Quand défini, les hooks avec des URL non correspondantes sont bloqués. Non défini = pas de restriction, tableau vide = bloquer tous les hooks HTTP. Les tableaux fusionnent entre les sources de paramètres. Voir [Configuration des hooks](#hook-configuration) | `["https://hooks.example.com/*"]` |


190| `allowManagedHooksOnly` | (Paramètres gérés uniquement) Seuls les hooks gérés, les hooks SDK, et les hooks des plugins force-activés dans les paramètres gérés `enabledPlugins` sont chargés. Les hooks utilisateur, projet et tous les autres hooks de plugin sont bloqués. Voir [Configuration des hooks](#hook-configuration) | `true` |221| `allowManagedHooksOnly` | (Paramètres gérés uniquement) Seuls les hooks gérés, les hooks SDK, et les hooks des plugins force-activés dans les paramètres gérés `enabledPlugins` sont chargés. Les hooks utilisateur, projet et tous les autres hooks de plugin sont bloqués. Voir [Configuration des hooks](#hook-configuration) | `true` |

191| `allowManagedMcpServersOnly` | (Paramètres gérés uniquement) Seul `allowedMcpServers` à partir des paramètres gérés est respecté. `deniedMcpServers` fusionne toujours à partir de toutes les sources. Les utilisateurs peuvent toujours ajouter des MCP servers, mais seule la liste blanche définie par l'administrateur s'applique. Voir [Configuration MCP gérée](/fr/managed-mcp) | `true` |222| `allowManagedMcpServersOnly` | (Paramètres gérés uniquement) Seul `allowedMcpServers` à partir des paramètres gérés est respecté. `deniedMcpServers` fusionne toujours à partir de toutes les sources. Les utilisateurs peuvent toujours ajouter des MCP servers, mais seule la liste blanche définie par l'administrateur s'applique. Voir [Configuration MCP gérée](/fr/managed-mcp) | `true` |

192| `allowManagedPermissionRulesOnly` | (Paramètres gérés uniquement) Empêcher les paramètres utilisateur et projet de définir les règles de permission `allow`, `ask`, ou `deny`. Seules les règles dans les paramètres gérés s'appliquent. Voir [Paramètres gérés uniquement](/fr/permissions#managed-only-settings) | `true` |223| `allowManagedPermissionRulesOnly` | (Paramètres gérés uniquement) Empêcher les paramètres utilisateur et projet de définir les règles de permission `allow`, `ask`, ou `deny`. Seules les règles dans les paramètres gérés s'appliquent. Voir [Paramètres gérés uniquement](/fr/permissions#managed-only-settings) | `true` |

193| `alwaysThinkingEnabled` | Activer la [réflexion étendue](/fr/model-config#extended-thinking) par défaut pour toutes les sessions. Généralement configuré via la commande `/config` plutôt que d'éditer directement. Pour forcer la réflexion désactivée indépendamment de ce paramètre, définissez [`CLAUDE_CODE_DISABLE_THINKING`](/fr/env-vars) dans `env` | `true` |224| `alwaysThinkingEnabled` | Activer la [réflexion étendue](/fr/model-config#extended-thinking) par défaut pour toutes les sessions. Généralement configuré via la commande `/config` plutôt que d'éditer directement. Pour forcer la réflexion désactivée indépendamment de ce paramètre, définissez [`MAX_THINKING_TOKENS=0`](/fr/env-vars) dans `env`, qui désactive la réflexion sur l'API Anthropic sauf sur Fable 5, qui ne peut pas avoir la réflexion désactivée. Sur les [fournisseurs tiers](/fr/third-party-integrations), cela omet le paramètre `thinking` à la place, et les modèles de raisonnement adaptatif peuvent toujours réfléchir | `true` |

194| `apiKeyHelper` | Script personnalisé, à exécuter dans `/bin/sh`, pour générer une valeur d'authentification. Cette valeur sera envoyée comme en-têtes `X-Api-Key` et `Authorization: Bearer` pour les demandes de modèle. Définissez l'intervalle d'actualisation avec [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/fr/env-vars) | `/bin/generate_temp_api_key.sh` |225| `apiKeyHelper` | Script personnalisé, à exécuter dans `/bin/sh`, pour générer une valeur d'authentification. Cette valeur sera envoyée comme en-têtes `X-Api-Key` et `Authorization: Bearer` pour les demandes de modèle. Définissez l'intervalle d'actualisation avec [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/fr/env-vars) | `/bin/generate_temp_api_key.sh` |

195| `attribution` | Personnalisez l'attribution pour les commits git et les pull requests. Voir [Paramètres d'attribution](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |226| `attribution` | Personnalisez l'attribution pour les commits git et les pull requests. Voir [Paramètres d'attribution](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |

227| `autoCompactEnabled` | {/* min-version: 2.1.119 */}Compacter automatiquement la conversation quand le contexte approche la limite. Par défaut : `true`. Apparaît dans `/config` comme **Auto-compact**. Pour désactiver via une variable d'environnement, définissez [`DISABLE_AUTO_COMPACT`](/fr/env-vars) dans `env` | `false` |

196| `autoMemoryDirectory` | Répertoire personnalisé pour le stockage de la [mémoire automatique](/fr/memory#storage-location). Accepte un chemin absolu ou un chemin préfixé par `~/`. À partir des paramètres de projet ou locaux, ceci n'est honoré qu'après que vous acceptiez la boîte de dialogue de confiance de l'espace de travail, car un référentiel cloné peut fournir ce fichier | `"~/my-memory-dir"` |228| `autoMemoryDirectory` | Répertoire personnalisé pour le stockage de la [mémoire automatique](/fr/memory#storage-location). Accepte un chemin absolu ou un chemin préfixé par `~/`. À partir des paramètres de projet ou locaux, ceci n'est honoré qu'après que vous acceptiez la boîte de dialogue de confiance de l'espace de travail, car un référentiel cloné peut fournir ce fichier | `"~/my-memory-dir"` |

197| `autoMemoryEnabled` | Activer la [mémoire automatique](/fr/memory#enable-or-disable-auto-memory). Quand `false`, Claude ne lit pas et n'écrit pas dans le répertoire de mémoire automatique. Par défaut : `true`. Vous pouvez également basculer ceci avec `/memory` pendant une session. Pour désactiver via une variable d'environnement, définissez [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/fr/env-vars) dans `env` | `false` |229| `autoMemoryEnabled` | Activer la [mémoire automatique](/fr/memory#enable-or-disable-auto-memory). Quand `false`, Claude ne lit pas et n'écrit pas dans le répertoire de mémoire automatique. Par défaut : `true`. Vous pouvez également basculer ceci avec `/memory` pendant une session. Pour désactiver via une variable d'environnement, définissez [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/fr/env-vars) dans `env` | `false` |

198| `autoMode` | Personnalisez ce que le classificateur du [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) bloque et autorise. Contient les tableaux `environment`, `allow`, `soft_deny`, et `hard_deny` de règles en prose. Incluez la chaîne littérale `"$defaults"` dans un tableau pour hériter des règles intégrées à cette position. Voir [Configurer le mode auto](/fr/auto-mode-config). Non lu à partir des paramètres de projet partagés | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |230| `autoMode` | Personnalisez ce que le classificateur du [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) bloque et autorise. Contient les tableaux `environment`, `allow`, `soft_deny`, et `hard_deny` de règles en prose. Incluez la chaîne littérale `"$defaults"` dans un tableau pour hériter des règles intégrées à cette position. Voir [Configurer le mode auto](/fr/auto-mode-config). Non lu à partir des paramètres de projet partagés | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

199| `autoScrollEnabled` | Dans le [rendu fullscreen](/fr/fullscreen), suivre la nouvelle sortie vers le bas de la conversation. Par défaut : `true`. Apparaît dans `/config` comme **Auto-scroll**. Les invites de permission font toujours défiler dans la vue quand ceci est désactivé | `false` |231| `autoScrollEnabled` | Dans le [rendu fullscreen](/fr/fullscreen), suivre la nouvelle sortie vers le bas de la conversation. Par défaut : `true`. Apparaît dans `/config` comme **Auto-scroll**. Les invites de permission font toujours défiler dans la vue quand ceci est désactivé | `false` |

200| `autoUpdatesChannel` | Canal de version à suivre pour les mises à jour. Utilisez `"stable"` pour une version généralement une semaine ancienne et qui ignore les versions avec des régressions majeures, ou `"latest"` (par défaut) pour la version la plus récente. Pour désactiver complètement les auto-mises à jour, définissez [`DISABLE_AUTOUPDATER`](/fr/setup#disable-auto-updates) dans `env` | `"stable"` |232| `autoUpdatesChannel` | Canal de version à suivre pour les mises à jour. Utilisez `"stable"` pour une version généralement une semaine ancienne et qui ignore les versions avec des régressions majeures, ou `"latest"` (par défaut) pour la version la plus récente. Pour désactiver complètement les auto-mises à jour, définissez [`DISABLE_AUTOUPDATER`](/fr/setup#disable-auto-updates) dans `env` | `"stable"` |

201| `availableModels` | Restreindre les modèles que les utilisateurs peuvent sélectionner via `/model`, `--model`, ou `ANTHROPIC_MODEL`. N'affecte pas l'option Par défaut. Voir [Restreindre la sélection de modèle](/fr/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |233| `availableModels` | Restreindre les modèles que les utilisateurs peuvent sélectionner pour la session principale, les [subagents](/fr/sub-agents), et l'[advisor](/fr/advisor). Voir [Restreindre la sélection de modèle](/fr/model-config#restrict-model-selection). Voir `enforceAvailableModels` pour également contraindre Par défaut | `["sonnet", "haiku"]` |

202| `awaySummaryEnabled` | Afficher un récapitulatif de session d'une ligne quand vous revenez au terminal après quelques minutes d'absence. Définir à `false` ou désactiver le récapitulatif de session dans `/config` pour désactiver. Identique à [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/fr/env-vars) | `true` |234| `awaySummaryEnabled` | Afficher un récapitulatif de session d'une ligne quand vous revenez au terminal après quelques minutes d'absence. Définir à `false` ou désactiver le récapitulatif de session dans `/config` pour désactiver. Identique à [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/fr/env-vars) | `true` |

203| `awsAuthRefresh` | Script personnalisé qui modifie le répertoire `.aws` (voir [configuration avancée des identifiants](/fr/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |235| `awsAuthRefresh` | Script personnalisé qui modifie le répertoire `.aws` (voir [configuration avancée des identifiants](/fr/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |

204| `awsCredentialExport` | Script personnalisé qui génère du JSON avec les identifiants AWS (voir [configuration avancée des identifiants](/fr/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |236| `awsCredentialExport` | Script personnalisé qui génère du JSON avec les identifiants AWS (voir [configuration avancée des identifiants](/fr/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |


213| `disableAgentView` | Définir à `true` pour désactiver les [agents de fond et la vue d'agent](/fr/agent-view) : `claude agents`, `--bg`, `/background`, et le superviseur à la demande. Généralement défini dans les [paramètres gérés](/fr/permissions#managed-settings). Équivalent à définir `CLAUDE_CODE_DISABLE_AGENT_VIEW` à `1` | `true` |245| `disableAgentView` | Définir à `true` pour désactiver les [agents de fond et la vue d'agent](/fr/agent-view) : `claude agents`, `--bg`, `/background`, et le superviseur à la demande. Généralement défini dans les [paramètres gérés](/fr/permissions#managed-settings). Équivalent à définir `CLAUDE_CODE_DISABLE_AGENT_VIEW` à `1` | `true` |

214| `disableAllHooks` | Désactiver tous les [hooks](/fr/hooks) et toute [ligne d'état](/fr/statusline) personnalisée | `true` |246| `disableAllHooks` | Désactiver tous les [hooks](/fr/hooks) et toute [ligne d'état](/fr/statusline) personnalisée | `true` |

215| `disableAutoMode` | Définir à `"disable"` pour empêcher l'activation du [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode). Supprime `auto` du cycle `Shift+Tab` et rejette `--permission-mode auto` au démarrage. Très utile dans les [paramètres gérés](/fr/permissions#managed-settings) où les utilisateurs ne peuvent pas le contourner | `"disable"` |247| `disableAutoMode` | Définir à `"disable"` pour empêcher l'activation du [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode). Supprime `auto` du cycle `Shift+Tab` et rejette `--permission-mode auto` au démarrage. Très utile dans les [paramètres gérés](/fr/permissions#managed-settings) où les utilisateurs ne peuvent pas le contourner | `"disable"` |

248| `disableBundledSkills` | Définir à `true` pour désactiver les [skills](/fr/skills) et workflows qui sont livrés avec Claude Code : les skills bundlés et workflows sont supprimés entièrement, tandis que les commandes slash intégrées comme `/init` restent tapables mais sont masquées au modèle. Les skills des plugins, `.claude/skills/`, et `.claude/commands/` ne sont pas affectés. Équivalent à définir `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` à `1` | `true` |

216| `disableDeepLinkRegistration` | Définir à `"disable"` pour empêcher Claude Code d'enregistrer le gestionnaire de protocole `claude-cli://` auprès du système d'exploitation au démarrage. Les [liens profonds](/fr/deep-links) permettent aux outils externes d'ouvrir une session Claude Code avec une invite pré-remplie. Utile dans les environnements où l'enregistrement du gestionnaire de protocole est restreint ou géré séparément | `"disable"` |249| `disableDeepLinkRegistration` | Définir à `"disable"` pour empêcher Claude Code d'enregistrer le gestionnaire de protocole `claude-cli://` auprès du système d'exploitation au démarrage. Les [liens profonds](/fr/deep-links) permettent aux outils externes d'ouvrir une session Claude Code avec une invite pré-remplie. Utile dans les environnements où l'enregistrement du gestionnaire de protocole est restreint ou géré séparément | `"disable"` |

217| `disabledMcpjsonServers` | Liste des MCP servers spécifiques à partir des fichiers `.mcp.json` à rejeter | `["filesystem"]` |250| `disabledMcpjsonServers` | Liste des MCP servers spécifiques à partir des fichiers `.mcp.json` à rejeter | `["filesystem"]` |

218| `disableRemoteControl` | {/* min-version: 2.1.128 */}Désactiver le [Contrôle à distance](/fr/remote-control) : bloque `claude remote-control`, l'indicateur `--remote-control`, le démarrage automatique, et le basculement en session. Généralement placé dans les [paramètres gérés](/fr/permissions#managed-settings) pour l'application par appareil MDM, mais fonctionne à partir de n'importe quelle portée. Nécessite Claude Code v2.1.128 ou ultérieur | `true` |251| `disableRemoteControl` | {/* min-version: 2.1.128 */}Désactiver le [Contrôle à distance](/fr/remote-control) : bloque `claude remote-control`, l'indicateur `--remote-control`, le démarrage automatique, et le basculement en session. Généralement placé dans les [paramètres gérés](/fr/permissions#managed-settings) pour l'application par appareil MDM, mais fonctionne à partir de n'importe quelle portée. Nécessite Claude Code v2.1.128 ou ultérieur | `true` |


222| `effortLevel` | Persister le [niveau d'effort](/fr/model-config#adjust-effort-level) entre les sessions. Accepte `"low"`, `"medium"`, `"high"`, ou `"xhigh"`. Écrit automatiquement quand vous exécutez `/effort` avec l'une de ces valeurs. `--effort` et [`CLAUDE_CODE_EFFORT_LEVEL`](/fr/env-vars) remplacent ceci pour une session. Voir [Ajuster le niveau d'effort](/fr/model-config#adjust-effort-level) pour les modèles supportés | `"xhigh"` |255| `effortLevel` | Persister le [niveau d'effort](/fr/model-config#adjust-effort-level) entre les sessions. Accepte `"low"`, `"medium"`, `"high"`, ou `"xhigh"`. Écrit automatiquement quand vous exécutez `/effort` avec l'une de ces valeurs. `--effort` et [`CLAUDE_CODE_EFFORT_LEVEL`](/fr/env-vars) remplacent ceci pour une session. Voir [Ajuster le niveau d'effort](/fr/model-config#adjust-effort-level) pour les modèles supportés | `"xhigh"` |

223| `enableAllProjectMcpServers` | Approuver automatiquement tous les MCP servers définis dans les fichiers `.mcp.json` du projet | `true` |256| `enableAllProjectMcpServers` | Approuver automatiquement tous les MCP servers définis dans les fichiers `.mcp.json` du projet | `true` |

224| `enabledMcpjsonServers` | Liste des MCP servers spécifiques à partir des fichiers `.mcp.json` à approuver | `["memory", "github"]` |257| `enabledMcpjsonServers` | Liste des MCP servers spécifiques à partir des fichiers `.mcp.json` à approuver | `["memory", "github"]` |

258| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Quand `true` et `availableModels` est une liste non vide dans les paramètres gérés ou de politique, le modèle Par défaut est également contraint à la liste blanche. Voir [Restreindre la sélection de modèle](/fr/model-config#restrict-model-selection) pour les détails et le [comportement de fusion](/fr/model-config#merge-behavior) quand `availableModels` est défini à plusieurs niveaux. Nécessite Claude Code v2.1.175 ou ultérieur | `true` |

225| `env` | Variables d'environnement appliquées à chaque session et aux sous-processus que Claude Code génère à partir de celle-ci. {/* min-version: 2.1.143 */}À partir de v2.1.143, `NO_COLOR` et `FORCE_COLOR` définis ici sont passés aux sous-processus mais ne changent pas les couleurs de l'interface de Claude Code elle-même. Définissez-les dans votre shell avant de lancer `claude` pour changer les couleurs de l'interface | `{"FOO": "bar"}` |259| `env` | Variables d'environnement appliquées à chaque session et aux sous-processus que Claude Code génère à partir de celle-ci. {/* min-version: 2.1.143 */}À partir de v2.1.143, `NO_COLOR` et `FORCE_COLOR` définis ici sont passés aux sous-processus mais ne changent pas les couleurs de l'interface de Claude Code elle-même. Définissez-les dans votre shell avant de lancer `claude` pour changer les couleurs de l'interface | `{"FOO": "bar"}` |

260| `fallbackModel` | Modèle(s) de secours à essayer dans l'ordre quand le modèle principal est surchargé ou indisponible. Claude Code bascule vers le prochain modèle disponible dans la chaîne pour le reste du tour et affiche un avis. `"default"` se développe vers le modèle par défaut. Les chaînes sont limitées à trois modèles ; les entrées supplémentaires sont ignorées. Contrairement à la plupart des paramètres de tableau, cette clé ne fusionne pas entre les fichiers de paramètres : le fichier de priorité la plus élevée qui la définit fournit la chaîne entière. L'indicateur [`--fallback-model`](/fr/cli-reference#cli-flags) remplace ceci pour une session. Voir [Chaînes de modèle de secours](/fr/model-config#fallback-model-chains) | `["claude-sonnet-4-6", "claude-haiku-4-5"]` |

226| `fastModePerSessionOptIn` | Quand `true`, le mode rapide ne persiste pas entre les sessions. Chaque session commence avec le mode rapide désactivé, nécessitant que les utilisateurs l'activent avec `/fast`. La préférence de mode rapide de l'utilisateur est toujours enregistrée. Voir [Exiger l'opt-in par session](/fr/fast-mode#require-per-session-opt-in) | `true` |261| `fastModePerSessionOptIn` | Quand `true`, le mode rapide ne persiste pas entre les sessions. Chaque session commence avec le mode rapide désactivé, nécessitant que les utilisateurs l'activent avec `/fast`. La préférence de mode rapide de l'utilisateur est toujours enregistrée. Voir [Exiger l'opt-in par session](/fr/fast-mode#require-per-session-opt-in) | `true` |

227| `feedbackSurveyRate` | Probabilité (0–1) que l'[enquête de qualité de session](/fr/data-usage#session-quality-surveys) apparaisse quand elle est admissible. Définir à `0` pour supprimer complètement, ou définissez [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/fr/env-vars) dans `env`. Utile lors de l'utilisation de Bedrock, Vertex, ou Foundry où le taux d'échantillonnage par défaut ne s'applique pas | `0.05` |262| `feedbackSurveyRate` | Probabilité (0–1) que l'[enquête de qualité de session](/fr/data-usage#session-quality-surveys) apparaisse quand elle est admissible. Définir à `0` pour supprimer complètement, ou définissez [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/fr/env-vars) dans `env`. Utile lors de l'utilisation de Bedrock, Vertex, ou Foundry où le taux d'échantillonnage par défaut ne s'applique pas | `0.05` |

263| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}Créer des instantanés des fichiers avant chaque modification pour que [`/rewind`](/fr/checkpointing) puisse les restaurer. Par défaut : `true`. Apparaît dans `/config` comme **Rewind code (checkpoints)**. Pour désactiver via une variable d'environnement, définissez [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/fr/env-vars) dans `env` | `false` |

228| `fileSuggestion` | Configurez un script personnalisé pour l'autocomplétion de fichier `@`. Voir [Paramètres de suggestion de fichier](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |264| `fileSuggestion` | Configurez un script personnalisé pour l'autocomplétion de fichier `@`. Voir [Paramètres de suggestion de fichier](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

265| `footerLinksRegexes` | {/* min-version: 2.1.176 */}Rendre des badges cliquables supplémentaires dans le pied de page quand une regex correspond à la sortie du tour. Chaque entrée a un `pattern`, un modèle d'URL `url` avec des espaces réservés `{name}` remplis à partir de groupes de capture nommés, et une `label` optionnelle. Lus à partir des paramètres utilisateur, du drapeau `--settings`, et des paramètres gérés uniquement. Voir [Badges de lien de pied de page](#footer-link-badges) pour les contraintes d'URL, la liste blanche de schéma, et les limites. Nécessite Claude Code v2.1.176 ou ultérieur | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |

229| `forceLoginMethod` | Utilisez `claudeai` pour restreindre la connexion aux comptes Claude.ai, `console` pour restreindre la connexion aux comptes Claude Console. Quand défini dans les paramètres gérés, les sessions authentifiées par `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` sont bloquées au démarrage, car aucune valeur ne peut être satisfaite sans authentification OAuth de première partie. Les sessions de fournisseur tiers telles que Bedrock, Vertex, et Foundry ne sont pas bloquées : elles s'authentifient auprès de votre fournisseur cloud plutôt qu'Anthropic | `claudeai` |266| `forceLoginMethod` | Utilisez `claudeai` pour restreindre la connexion aux comptes Claude.ai, `console` pour restreindre la connexion aux comptes Claude Console. Quand défini dans les paramètres gérés, les sessions authentifiées par `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` sont bloquées au démarrage, car aucune valeur ne peut être satisfaite sans authentification OAuth de première partie. Les sessions de fournisseur tiers telles que Bedrock, Vertex, et Foundry ne sont pas bloquées : elles s'authentifient auprès de votre fournisseur cloud plutôt qu'Anthropic | `claudeai` |

230| `forceLoginOrgUUID` | Exiger que la connexion appartienne à une organisation Anthropic spécifique. Accepte une seule chaîne UUID, qui pré-sélectionne également cette organisation lors de la connexion, ou un tableau d'UUID où n'importe quelle organisation listée est acceptée sans pré-sélection. Quand défini dans les paramètres gérés, la connexion échoue si le compte authentifié n'appartient pas à une organisation listée, et les sessions authentifiées par `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` sont bloquées au démarrage car l'appartenance à l'organisation ne peut pas être vérifiée pour elles. Les sessions de fournisseur tiers telles que Bedrock, Vertex, et Foundry ne sont pas bloquées : utilisez votre IAM cloud pour restreindre les comptes cloud qui peuvent être utilisés. Un tableau vide échoue fermé et bloque la connexion avec un message de mauvaise configuration | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` ou `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |267| `forceLoginOrgUUID` | Exiger que la connexion appartienne à une organisation Anthropic spécifique. Accepte une seule chaîne UUID, qui pré-sélectionne également cette organisation lors de la connexion, ou un tableau d'UUID où n'importe quelle organisation listée est acceptée sans pré-sélection. Quand défini dans les paramètres gérés, la connexion échoue si le compte authentifié n'appartient pas à une organisation listée, et les sessions authentifiées par `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` sont bloquées au démarrage car l'appartenance à l'organisation ne peut pas être vérifiée pour elles. Les sessions de fournisseur tiers telles que Bedrock, Vertex, et Foundry ne sont pas bloquées : utilisez votre IAM cloud pour restreindre les comptes cloud qui peuvent être utilisés. Un tableau vide échoue fermé et bloque la connexion avec un message de mauvaise configuration | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` ou `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

231| `forceRemoteSettingsRefresh` | (Paramètres gérés uniquement) Bloquer le démarrage de la CLI jusqu'à ce que les paramètres gérés distants soient fraîchement récupérés du serveur. Si la récupération échoue, la CLI se termine plutôt que de continuer avec les paramètres en cache ou aucun paramètre. Quand non défini, le démarrage continue sans attendre les paramètres distants. Voir [application fail-closed](/fr/server-managed-settings#enforce-fail-closed-startup) | `true` |268| `forceRemoteSettingsRefresh` | (Paramètres gérés uniquement) Bloquer le démarrage de la CLI jusqu'à ce que les paramètres gérés distants soient fraîchement récupérés du serveur. Si la récupération échoue, la CLI se termine plutôt que de continuer avec les paramètres en cache ou aucun paramètre. Quand non défini, le démarrage continue sans attendre les paramètres distants. Voir [application fail-closed](/fr/server-managed-settings#enforce-fail-closed-startup) | `true` |


234| `httpHookAllowedEnvVars` | Liste blanche des noms de variables d'environnement que les hooks HTTP peuvent interpoler dans les en-têtes. Quand défini, le `allowedEnvVars` effectif de chaque hook est l'intersection avec cette liste. Non défini = pas de restriction. Les tableaux fusionnent entre les sources de paramètres. Voir [Configuration des hooks](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |271| `httpHookAllowedEnvVars` | Liste blanche des noms de variables d'environnement que les hooks HTTP peuvent interpoler dans les en-têtes. Quand défini, le `allowedEnvVars` effectif de chaque hook est l'intersection avec cette liste. Non défini = pas de restriction. Les tableaux fusionnent entre les sources de paramètres. Voir [Configuration des hooks](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |

235| `includeCoAuthoredBy` | **Déprécié** : Utilisez `attribution` à la place. S'il faut inclure la ligne `co-authored-by Claude` dans les commits git et les pull requests (par défaut : `true`) | `false` |272| `includeCoAuthoredBy` | **Déprécié** : Utilisez `attribution` à la place. S'il faut inclure la ligne `co-authored-by Claude` dans les commits git et les pull requests (par défaut : `true`) | `false` |

236| `includeGitInstructions` | Inclure les instructions de workflow de commit et PR intégrées et l'instantané du statut git dans l'invite système de Claude (par défaut : `true`). Définir à `false` pour supprimer les deux, par exemple lors de l'utilisation de vos propres skills de workflow git. La variable d'environnement `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` a la priorité sur ce paramètre quand elle est définie | `false` |273| `includeGitInstructions` | Inclure les instructions de workflow de commit et PR intégrées et l'instantané du statut git dans l'invite système de Claude (par défaut : `true`). Définir à `false` pour supprimer les deux, par exemple lors de l'utilisation de vos propres skills de workflow git. La variable d'environnement `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` a la priorité sur ce paramètre quand elle est définie | `false` |

237| `language` | Configurez la langue de réponse préférée de Claude (par exemple, `"japanese"`, `"spanish"`, `"french"`). Claude répondra dans cette langue par défaut. Définit également la langue de la [dictée vocale](/fr/voice-dictation#change-the-dictation-language) | `"japanese"` |274| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}Quand le [Contrôle à distance](/fr/remote-control) est connecté, envoyer une notification push à votre téléphone quand une invite de permission ou une question attend votre entrée. Par défaut : `false`. Apparaît dans `/config` comme **Push when actions required**. Voir [Notifications push mobiles](/fr/remote-control#mobile-push-notifications). Nécessite Claude Code v2.1.119 ou ultérieur | `true` |

238| `maxSkillDescriptionChars` | {/* min-version: 2.1.105 */}Limite de caractères par skill sur le texte combiné `description` et `when_to_use` dans l'[énumération des skills](/fr/skills#skill-descriptions-are-cut-short) que Claude voit à chaque tour (par défaut : `1536`). Le texte plus long que ceci est tronqué. Augmentez pour garder les longues descriptions intactes au prix de plus de contexte par tour ; diminuez pour adapter plus de skills sous [`skillListingBudgetFraction`](#available-settings). `/doctor` affiche le nombre de troncatures actuel et quels skills sont affectés. Nécessite Claude Code v2.1.105 ou ultérieur | `2048` |275| `language` | Configurez la langue de réponse préférée de Claude (par exemple, `"japanese"`, `"spanish"`, `"french"`). Claude répondra dans cette langue par défaut. Définit également la langue de la [dictée vocale](/fr/voice-dictation#change-the-dictation-language) et des titres de session générés automatiquement. {/* min-version: 2.1.176 */ partir de v2.1.176, quand non défini, les titres de session correspondent à la langue de votre conversation | `"japanese"` |

239| `minimumVersion` | Plancher qui empêche les auto-mises à jour de fond et `claude update` d'installer une version inférieure à celle-ci. Passer du canal `"latest"` à `"stable"` via `/config` vous invite à rester sur la version actuelle ou à autoriser la rétrogradation. Choisir de rester définit cette valeur. Également utile dans les [paramètres gérés](/fr/permissions#managed-settings) pour épingler une version minimale à l'échelle de l'organisation | `"2.1.100"` |276| `maxSkillDescriptionChars` | {/* min-version: 2.1.105 */}Limite de caractères par skill sur le texte combiné `description` et `when_to_use` dans l'[énumération des skills](/fr/skills#skill-descriptions-are-cut-short) que Claude voit à chaque tour (par défaut : `1536`). Le texte plus long que ceci est tronqué. Augmentez pour garder les longues descriptions intactes au prix de plus de contexte par tour ; diminuez pour adapter plus de skills sous [`skillListingBudgetFraction`](#available-settings). Nécessite Claude Code v2.1.105 ou ultérieur | `2048` |

277| `minimumVersion` | Plancher qui empêche les auto-mises à jour de fond et `claude update` d'installer une version inférieure à celle-ci. Passer du canal `"latest"` à `"stable"` via `/config` vous invite à rester sur la version actuelle ou à autoriser la rétrogradation. Choisir de rester définit cette valeur. Également utile dans les [paramètres gérés](/fr/permissions#managed-settings) pour épingler une version minimale à l'échelle de l'organisation. Pour un plancher dur qui bloque le démarrage entièrement, voir `requiredMinimumVersion` | `"2.1.100"` |

240| `model` | Remplacer le modèle par défaut à utiliser pour Claude Code. `--model` et [`ANTHROPIC_MODEL`](/fr/model-config#environment-variables) remplacent ceci pour une session | `"claude-sonnet-4-6"` |278| `model` | Remplacer le modèle par défaut à utiliser pour Claude Code. `--model` et [`ANTHROPIC_MODEL`](/fr/model-config#environment-variables) remplacent ceci pour une session | `"claude-sonnet-4-6"` |

241| `modelOverrides` | Mapper les ID de modèle Anthropic aux ID de modèle spécifiques au fournisseur tels que les ARN de profil d'inférence Bedrock. Chaque entrée du sélecteur de modèle utilise sa valeur mappée lors de l'appel de l'API du fournisseur. Voir [Remplacer les ID de modèle par version](/fr/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |279| `modelOverrides` | Mapper les ID de modèle Anthropic aux ID de modèle spécifiques au fournisseur tels que les ARN de profil d'inférence Bedrock. Chaque entrée du sélecteur de modèle utilise sa valeur mappée lors de l'appel de l'API du fournisseur. Voir [Remplacer les ID de modèle par version](/fr/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

242| `otelHeadersHelper` | Script pour générer des en-têtes OpenTelemetry dynamiques. S'exécute au démarrage et périodiquement. Définissez l'intervalle d'actualisation avec [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/fr/env-vars). Voir [En-têtes dynamiques](/fr/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |280| `otelHeadersHelper` | Script pour générer des en-têtes OpenTelemetry dynamiques. S'exécute au démarrage et périodiquement. Définissez l'intervalle d'actualisation avec [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/fr/env-vars). Voir [En-têtes dynamiques](/fr/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |


244| `parentSettingsBehavior` | {/* min-version: 2.1.133 */}(Paramètres gérés uniquement) Contrôle si les paramètres gérés fournis programmatiquement par un processus hôte d'intégration, tel que l'Agent SDK ou une extension IDE, s'appliquent quand un niveau géré déployé par l'administrateur est également présent. `"first-wins"` : les paramètres fournis par le parent sont supprimés et seul le niveau administrateur s'applique. `"merge"` : les paramètres fournis par le parent s'appliquent sous le niveau administrateur, filtrés pour qu'ils puissent resserrer la politique mais pas l'assouplir. N'a aucun effet quand aucun niveau administrateur n'est déployé. Par défaut : `"first-wins"`. Nécessite Claude Code v2.1.133 ou ultérieur | `"merge"` |282| `parentSettingsBehavior` | {/* min-version: 2.1.133 */}(Paramètres gérés uniquement) Contrôle si les paramètres gérés fournis programmatiquement par un processus hôte d'intégration, tel que l'Agent SDK ou une extension IDE, s'appliquent quand un niveau géré déployé par l'administrateur est également présent. `"first-wins"` : les paramètres fournis par le parent sont supprimés et seul le niveau administrateur s'applique. `"merge"` : les paramètres fournis par le parent s'appliquent sous le niveau administrateur, filtrés pour qu'ils puissent resserrer la politique mais pas l'assouplir. N'a aucun effet quand aucun niveau administrateur n'est déployé. Par défaut : `"first-wins"`. Nécessite Claude Code v2.1.133 ou ultérieur | `"merge"` |

245| `permissions` | Voir le tableau ci-dessous pour la structure des permissions. | |283| `permissions` | Voir le tableau ci-dessous pour la structure des permissions. | |

246| `plansDirectory` | Personnalisez où les fichiers de plan sont stockés. Le chemin est relatif à la racine du projet. Par défaut : `~/.claude/plans` | `"./plans"` |284| `plansDirectory` | Personnalisez où les fichiers de plan sont stockés. Le chemin est relatif à la racine du projet. Par défaut : `~/.claude/plans` | `"./plans"` |

247| `pluginSuggestionMarketplaces` | (Paramètres gérés uniquement) Noms de marketplace dont les plugins peuvent apparaître comme suggestions d'installation contextuelle, en plus de la marketplace officielle. Les suggestions proviennent de la déclaration `relevance` de chaque plugin dans son entrée de marketplace. Un nom ne prend effet que quand la marketplace est enregistrée sur la machine et sa source enregistrée est également déclarée dans les paramètres gérés, soit comme entrée `extraKnownMarketplaces` pour ce nom, soit comme entrée de `strictKnownMarketplaces`. Une marketplace enregistrée à partir d'une source différente sous un nom autorisé est ignorée. | `["acme-corp-plugins"]` |285| `pluginSuggestionMarketplaces` | (Paramètres gérés uniquement) Noms de marketplace dont les plugins peuvent apparaître comme suggestions d'installation contextuelle. Aucune suggestion déclarée par marketplace ne s'affiche sans cette liste blanche ; le conseil intégré de conception frontend de première partie n'est pas affecté. Les suggestions proviennent de la déclaration `relevance` de chaque plugin dans son entrée de marketplace. Un nom ne prend effet que quand la marketplace est enregistrée sur la machine et sa source enregistrée est également déclarée dans les paramètres gérés, soit comme entrée `extraKnownMarketplaces` pour ce nom, soit comme entrée de `strictKnownMarketplaces`. Une marketplace enregistrée à partir d'une source différente sous un nom autorisé est ignorée. La marketplace officielle est exempte de l'exigence de source : autoriser son nom seul suffit, car ce nom ne peut s'enregistrer que depuis la source Anthropic officielle. | `["acme-corp-plugins"]` |

248| `pluginTrustMessage` | (Paramètres gérés uniquement) Message personnalisé ajouté à l'avertissement de confiance du plugin affiché avant l'installation. Utilisez ceci pour ajouter du contexte spécifique à l'organisation, par exemple pour confirmer que les plugins de votre marketplace interne sont vérifiés. | `"All plugins from our marketplace are approved by IT"` |286| `pluginTrustMessage` | (Paramètres gérés uniquement) Message personnalisé ajouté à l'avertissement de confiance du plugin affiché avant l'installation. Utilisez ceci pour ajouter du contexte spécifique à l'organisation, par exemple pour confirmer que les plugins de votre marketplace interne sont vérifiés. | `"All plugins from our marketplace are approved by IT"` |

249| `policyHelper` | {/* min-version: 2.1.136 */}Exécutable déployé par l'administrateur qui calcule les paramètres gérés dynamiquement au démarrage. Honoré uniquement à partir de MDM ou d'un fichier `managed-settings.json` système. Voir [Calculer les paramètres gérés avec un assistant de politique](#compute-managed-settings-with-a-policy-helper). Nécessite Claude Code v2.1.136 ou ultérieur | `{"path": "/usr/local/bin/claude-policy"}` |287| `policyHelper` | {/* min-version: 2.1.136 */}Exécutable déployé par l'administrateur qui calcule les paramètres gérés dynamiquement au démarrage. Honoré uniquement à partir de MDM ou d'un fichier `managed-settings.json` système. Voir [Calculer les paramètres gérés avec un assistant de politique](#compute-managed-settings-with-a-policy-helper). Nécessite Claude Code v2.1.136 ou ultérieur | `{"path": "/usr/local/bin/claude-policy"}` |

250| `preferredNotifChannel` | Méthode pour les notifications de tâche terminée et d'invite de permission : `"auto"`, `"terminal_bell"`, `"iterm2"`, `"iterm2_with_bell"`, `"kitty"`, `"ghostty"`, ou `"notifications_disabled"`. Par défaut : `"auto"`, qui envoie une notification de bureau dans iTerm2, Ghostty, et Kitty et ne fait rien dans les autres terminaux. Définir à `"terminal_bell"` pour sonner le caractère de cloche dans n'importe quel terminal. Apparaît dans `/config` comme **Notifications**. Voir [Obtenir une cloche de terminal ou une notification](/fr/terminal-config#get-a-terminal-bell-or-notification) | `"terminal_bell"` |288| `preferredNotifChannel` | Méthode pour les notifications de tâche terminée et d'invite de permission : `"auto"`, `"terminal_bell"`, `"iterm2"`, `"iterm2_with_bell"`, `"kitty"`, `"ghostty"`, ou `"notifications_disabled"`. Par défaut : `"auto"`, qui envoie une notification de bureau dans iTerm2, Ghostty, et Kitty et ne fait rien dans les autres terminaux. Définir à `"terminal_bell"` pour sonner le caractère de cloche dans n'importe quel terminal. Apparaît dans `/config` comme **Notifications**. Voir [Obtenir une cloche de terminal ou une notification](/fr/terminal-config#get-a-terminal-bell-or-notification) | `"terminal_bell"` |

251| `prefersReducedMotion` | Réduire ou désactiver les animations de l'interface utilisateur (spinners, shimmer, effets flash) pour l'accessibilité | `true` |289| `prefersReducedMotion` | Réduire ou désactiver les animations de l'interface utilisateur (spinners, shimmer, effets flash) pour l'accessibilité | `true` |

252| `prUrlTemplate` | Modèle d'URL pour le badge PR affiché dans le pied de page et dans les résumés de résultats d'outils. Substitue `{host}`, `{owner}`, `{repo}`, `{number}`, et `{url}` à partir de l'URL PR rapportée par `gh`. Utilisez pour pointer les liens PR vers un outil d'examen de code interne au lieu de `github.com`. N'affecte pas les autolinks `#123` dans la prose de Claude | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |290| `prUrlTemplate` | Modèle d'URL pour le badge PR affiché dans le pied de page et dans les résumés de résultats d'outils. Substitue `{host}`, `{owner}`, `{repo}`, `{number}`, et `{url}` à partir de l'URL PR rapportée par `gh`. Utilisez pour pointer les liens PR vers un outil d'examen de code interne au lieu de `github.com`. N'affecte pas les autolinks `#123` dans la prose de Claude | `"https://reviews.example.com/{owner}/{repo}/pull/{number}"` |

291| `requiredMaximumVersion` | Paramètres gérés uniquement. Version maximale de Claude Code autorisée à démarrer. Si la version en cours d'exécution est plus récente, Claude Code se termine au démarrage et demande à l'utilisateur d'installer une version approuvée via la méthode approuvée de l'organisation ; `claude install <version>` peut également fonctionner. Les auto-mises à jour de fond et `claude update` ignorent les versions au-dessus du plafond, donc une installation dans la plage reste dans la plage. `claude update`, `claude install`, et `claude doctor` continuent de fonctionner au-dessus du plafond pour que les utilisateurs puissent récupérer. Les versions antérieures à ce paramètre l'ignorent | `"2.1.150"` |

292| `requiredMinimumVersion` | Paramètres gérés uniquement. Version minimale de Claude Code requise pour démarrer. Si la version en cours d'exécution est plus ancienne, Claude Code se termine au démarrage et demande à l'utilisateur de mettre à jour via la méthode approuvée de l'organisation. `claude update`, `claude install`, et `claude doctor` continuent de fonctionner en dessous du plancher pour que les utilisateurs puissent récupérer. Diffère de `minimumVersion`, qui empêche les rétrograds mais ne bloque jamais le démarrage. Les versions antérieures à ce paramètre l'ignorent | `"2.1.150"` |

253| `respectGitignore` | Contrôler si le sélecteur de fichier `@` respecte les modèles `.gitignore`. Quand `true` (par défaut), les fichiers correspondant aux modèles `.gitignore` sont exclus des suggestions | `false` |293| `respectGitignore` | Contrôler si le sélecteur de fichier `@` respecte les modèles `.gitignore`. Quand `true` (par défaut), les fichiers correspondant aux modèles `.gitignore` sont exclus des suggestions | `false` |

254| `showClearContextOnPlanAccept` | Afficher l'option « effacer le contexte » sur l'écran d'acceptation du plan. Par défaut : `false`. Définir à `true` pour restaurer l'option | `true` |294| `showClearContextOnPlanAccept` | Afficher l'option « effacer le contexte » sur l'écran d'acceptation du plan. Par défaut : `false`. Définir à `true` pour restaurer l'option | `true` |

255| `showThinkingSummaries` | Afficher les résumés de [réflexion étendue](/fr/model-config#extended-thinking) dans les sessions interactives. Quand non défini ou `false` (par défaut en mode interactif), les blocs de réflexion sont redactés par l'API et affichés comme un stub réduit. La redaction change uniquement ce que vous voyez, pas ce que le modèle génère : pour réduire les dépenses de réflexion, [réduisez le budget ou désactivez la réflexion](/fr/model-config#extended-thinking) à la place. Ce paramètre n'a aucun effet en mode non interactif (`-p`), l'Agent SDK, ou les extensions IDE telles que VS Code | `true` |295| `showThinkingSummaries` | Afficher les résumés de [réflexion étendue](/fr/model-config#extended-thinking) dans les sessions interactives. Quand non défini ou `false` (par défaut en mode interactif), les blocs de réflexion sont redactés par l'API et affichés comme un stub réduit. La redaction change uniquement ce que vous voyez, pas ce que le modèle génère : pour réduire les dépenses de réflexion, [réduisez le budget ou désactivez la réflexion](/fr/model-config#extended-thinking) à la place. Ce paramètre n'a aucun effet en mode non interactif (`-p`), l'Agent SDK, ou les extensions IDE telles que VS Code | `true` |


265| `strictKnownMarketplaces` | (Paramètres gérés uniquement) Liste blanche des sources de marketplace de plugins. Non défini = pas de restrictions, tableau vide = verrouillage. Appliquée lors de l'ajout de marketplace et lors de l'installation, la mise à jour, l'actualisation et la mise à jour automatique du plugin, donc une marketplace ajoutée avant que la politique soit définie ne peut pas être utilisée pour récupérer les plugins. Voir [Restrictions de marketplace gérées](/fr/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |305| `strictKnownMarketplaces` | (Paramètres gérés uniquement) Liste blanche des sources de marketplace de plugins. Non défini = pas de restrictions, tableau vide = verrouillage. Appliquée lors de l'ajout de marketplace et lors de l'installation, la mise à jour, l'actualisation et la mise à jour automatique du plugin, donc une marketplace ajoutée avant que la politique soit définie ne peut pas être utilisée pour récupérer les plugins. Voir [Restrictions de marketplace gérées](/fr/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

266| `strictPluginOnlyCustomization` | (Paramètres gérés uniquement) Bloquer les skills, agents, hooks, et MCP servers à partir des sources utilisateur et projet, pour qu'ils ne puissent provenir que des plugins ou des paramètres gérés. `true` verrouille les quatre surfaces ; un tableau verrouille uniquement les nommés. Voir [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |306| `strictPluginOnlyCustomization` | (Paramètres gérés uniquement) Bloquer les skills, agents, hooks, et MCP servers à partir des sources utilisateur et projet, pour qu'ils ne puissent provenir que des plugins ou des paramètres gérés. `true` verrouille les quatre surfaces ; un tableau verrouille uniquement les nommés. Voir [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |

267| `syntaxHighlightingDisabled` | Désactiver la coloration syntaxique dans les diffs, les blocs de code, et les aperçus de fichiers | `true` |307| `syntaxHighlightingDisabled` | Désactiver la coloration syntaxique dans les diffs, les blocs de code, et les aperçus de fichiers | `true` |

268| `teammateMode` | Comment les coéquipiers de l'[équipe d'agents](/fr/agent-teams) s'affichent : `auto` (choisit les volets divisés dans tmux ou iTerm2, en processus sinon), `in-process`, ou `tmux`. `--teammate-mode` remplace ceci pour une session. Voir [choisir un mode d'affichage](/fr/agent-teams#choose-a-display-mode) | `"in-process"` |308| `teammateMode` | Comment les coéquipiers de l'[équipe d'agents](/fr/agent-teams) s'affichent : `auto` (choisit les volets divisés dans tmux ou iTerm2, en processus sinon), `in-process`, ou `tmux` (volets divisés utilisant tmux ou iTerm2, détectés à partir de votre terminal). `--teammate-mode` remplace ceci pour une session. Voir [choisir un mode d'affichage](/fr/agent-teams#choose-a-display-mode) | `"in-process"` |

269| `terminalProgressBarEnabled` | Afficher la barre de progression du terminal dans les terminaux supportés : ConEmu, Ghostty 1.2.0+, et iTerm2 3.6.6+. Par défaut : `true`. Apparaît dans `/config` comme **Terminal progress bar** | `false` |309| `terminalProgressBarEnabled` | Afficher la barre de progression du terminal dans les terminaux supportés : ConEmu, Ghostty 1.2.0+, et iTerm2 3.6.6+. Par défaut : `true`. Apparaît dans `/config` comme **Terminal progress bar** | `false` |

270| `tui` | Moteur de rendu de l'interface utilisateur du terminal. Utilisez `"fullscreen"` pour le moteur de rendu [alt-screen](/fr/fullscreen) sans scintillement avec défilement virtualisé. Utilisez `"default"` pour le moteur de rendu classique d'écran principal. Définir via `/tui`. Vous pouvez également définir la variable d'environnement [`CLAUDE_CODE_NO_FLICKER`](/fr/env-vars) | `"fullscreen"` |310| `theme` | {/* min-version: 2.1.119 */}Thème de couleur pour l'interface : `"auto"`, `"dark"`, `"light"`, `"dark-daltonized"`, `"light-daltonized"`, `"dark-ansi"`, `"light-ansi"`, ou une référence de thème personnalisé tel que `"custom:<slug>"` ou `"custom:<plugin-name>:<slug>"`. Par défaut : `"dark"`. Voir [Créer un thème personnalisé](/fr/terminal-config#create-a-custom-theme). Apparaît dans `/config` comme **Theme** | `"dark"` |

311| `tui` | Moteur de rendu de l'interface utilisateur du terminal. Utilisez `"fullscreen"` pour le moteur de rendu [alt-screen](/fr/fullscreen) sans scintillement avec défilement virtualisé. Utilisez `"default"` pour le moteur de rendu classique d'écran principal. Définir via `/tui`. Vous pouvez également définir la variable d'environnement [`CLAUDE_CODE_NO_FLICKER`](/fr/env-vars). Les sessions de fond ouvertes à partir de la [vue d'agent](/fr/agent-view) utilisent toujours le moteur de rendu fullscreen indépendamment de ce paramètre | `"fullscreen"` |

271| `ultracode` | Activer [ultracode](/fr/workflows#let-claude-decide-with-ultracode) pour la session. Session uniquement et non lu à partir de `settings.json`. Définir via `/effort ultracode`, `--settings`, ou une demande de contrôle Agent SDK | `true` |312| `ultracode` | Activer [ultracode](/fr/workflows#let-claude-decide-with-ultracode) pour la session. Session uniquement et non lu à partir de `settings.json`. Définir via `/effort ultracode`, `--settings`, ou une demande de contrôle Agent SDK | `true` |

272| `useAutoModeDuringPlan` | Si le mode plan utilise la sémantique du mode auto quand le mode auto est disponible. Par défaut : `true`. Non lu à partir des paramètres de projet partagés. Apparaît dans `/config` comme « Utiliser le mode auto pendant le plan » | `false` |313| `useAutoModeDuringPlan` | Si le mode plan utilise la sémantique du mode auto quand le mode auto est disponible. Par défaut : `true`. Non lu à partir des paramètres de projet partagés. Apparaît dans `/config` comme « Utiliser le mode auto pendant le plan » | `false` |

314| `verbose` | {/* min-version: 2.1.119 */}Afficher la sortie complète de l'outil au lieu des résumés tronqués. Par défaut : `false`. Apparaît dans `/config` comme **Verbose output**. L'indicateur `--verbose` remplace ceci pour une session | `true` |

273| `viewMode` | Mode d'affichage de transcript par défaut au démarrage : `"default"`, `"verbose"`, ou `"focus"`. Remplace la sélection sticky `/focus` quand défini. L'indicateur `--verbose` remplace ceci pour une session | `"verbose"` |315| `viewMode` | Mode d'affichage de transcript par défaut au démarrage : `"default"`, `"verbose"`, ou `"focus"`. Remplace la sélection sticky `/focus` quand défini. L'indicateur `--verbose` remplace ceci pour une session | `"verbose"` |

274| `voice` | Paramètres de [dictée vocale](/fr/voice-dictation) : `enabled` active la dictée, `mode` sélectionne `"hold"` ou `"tap"`, et `autoSubmit` envoie l'invite à la libération de la touche en mode hold. Écrit automatiquement quand vous exécutez `/voice`. Nécessite un compte Claude.ai | `{ "enabled": true, "mode": "tap" }` |316| `voice` | Paramètres de [dictée vocale](/fr/voice-dictation) : `enabled` active la dictée, `mode` sélectionne `"hold"` ou `"tap"`, et `autoSubmit` envoie l'invite à la libération de la touche en mode hold. Écrit automatiquement quand vous exécutez `/voice`. Nécessite un compte Claude.ai | `{ "enabled": true, "mode": "tap" }` |

275| `voiceEnabled` | Alias hérité pour `voice.enabled`. Préférez l'objet `voice` | `true` |317| `voiceEnabled` | Alias hérité pour `voice.enabled`. Préférez l'objet `voice` | `true` |

318| `wheelScrollAccelerationEnabled` | {/* min-version: 2.1.174 */}Dans le [rendu fullscreen](/fr/fullscreen#mouse-wheel-scrolling), accélérer la vitesse de défilement à la molette pendant les défilements rapides. Par défaut : `true`. Définir à `false` pour un taux de défilement constant par cran de molette. Nécessite Claude Code v2.1.174 ou ultérieur | `false` |

276| `workflowKeywordTriggerEnabled` | {/* min-version: 2.1.157 */}Si le mot-clé `ultracode` dans une invite déclenche un [workflow dynamique](/fr/workflows#ask-for-a-workflow-in-your-prompt). Définir à `false` pour taper le mot sans en déclencher un. Le paramètre d'effort ultracode, `/workflows`, et les commandes de workflow enregistrées ne sont pas affectés. Par défaut : `true`. Apparaît dans `/config` comme **Ultracode keyword trigger**. Ajouté dans v2.1.157 ; avant v2.1.160 le mot-clé de déclenchement était `workflow` | `false` |319| `workflowKeywordTriggerEnabled` | {/* min-version: 2.1.157 */}Si le mot-clé `ultracode` dans une invite déclenche un [workflow dynamique](/fr/workflows#ask-for-a-workflow-in-your-prompt). Définir à `false` pour taper le mot sans en déclencher un. Le paramètre d'effort ultracode, `/workflows`, et les commandes de workflow enregistrées ne sont pas affectés. Par défaut : `true`. Apparaît dans `/config` comme **Ultracode keyword trigger**. Ajouté dans v2.1.157 ; avant v2.1.160 le mot-clé de déclenchement était `workflow` | `false` |

277| `wslInheritsWindowsSettings` | (Paramètres gérés Windows uniquement) Quand `true`, Claude Code sur WSL lit les paramètres gérés à partir de la chaîne de politique Windows en plus de `/etc/claude-code`, avec les sources Windows ayant la priorité. Honoré uniquement quand défini dans la clé de registre HKLM ou `C:\Program Files\ClaudeCode\managed-settings.json`, qui nécessitent tous deux l'administrateur Windows pour écrire. Pour que la politique HKCU s'applique également sur WSL, l'indicateur doit également être défini dans HKCU lui-même. N'a aucun effet sur Windows natif | `true` |320| `wslInheritsWindowsSettings` | (Paramètres gérés Windows uniquement) Quand `true`, Claude Code sur WSL lit les paramètres gérés à partir de la chaîne de politique Windows en plus de `/etc/claude-code`, avec les sources Windows ayant la priorité. Honoré uniquement quand défini dans la clé de registre HKLM ou `C:\Program Files\ClaudeCode\managed-settings.json`, qui nécessitent tous deux l'administrateur Windows pour écrire. Pour que la politique HKCU s'applique également sur WSL, l'indicateur doit également être défini dans HKCU lui-même. N'a aucun effet sur Windows natif | `true` |

278 321 


283Ces paramètres sont stockés dans `~/.claude.json` plutôt que dans `settings.json`. Les ajouter à `settings.json` déclenchera une erreur de validation de schéma.326Ces paramètres sont stockés dans `~/.claude.json` plutôt que dans `settings.json`. Les ajouter à `settings.json` déclenchera une erreur de validation de schéma.

284 327 

285<Note>328<Note>

286 Les versions antérieures à v2.1.119 stockent également `autoScrollEnabled`, `editorMode`, `showTurnDuration`, `teammateMode`, et `terminalProgressBarEnabled` ici au lieu de dans `settings.json`.329 Les versions antérieures à v2.1.119 stockent également un certain nombre de clés de préférence `/config` ici au lieu de dans `settings.json`, y compris `theme`, `verbose`, `editorMode`, `autoCompactEnabled`, et `preferredNotifChannel`.

287</Note>330</Note>

288 331 

289| Clé | Description | Exemple |332| Clé | Description | Exemple |


314 357 

315| Clés | Description | Exemple |358| Clés | Description | Exemple |

316| :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------- |359| :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------- |

317| `allow` | Tableau de règles de permission pour autoriser l'utilisation d'outils. Voir [Syntaxe de règle de permission](#permission-rule-syntax) ci-dessous pour les détails de correspondance de modèle | `[ "Bash(git diff *)" ]` |360| `allow` | Tableau de règles de permission pour autoriser l'utilisation d'outils. Les globs de nom d'outil ne sont supportés que dans la position d'outil après un préfixe littéral `mcp__<server>__`, tel que `mcp__github__get_*` ; le segment du serveur doit être sans glob. Voir [Syntaxe de règle de permission](#permission-rule-syntax) ci-dessous pour les détails de correspondance de modèle | `[ "Bash(git diff *)" ]` |

318| `ask` | Tableau de règles de permission pour demander une confirmation lors de l'utilisation d'outils. Voir [Syntaxe de règle de permission](#permission-rule-syntax) ci-dessous | `[ "Bash(git push *)" ]` |361| `ask` | Tableau de règles de permission pour demander une confirmation lors de l'utilisation d'outils. Voir [Syntaxe de règle de permission](#permission-rule-syntax) ci-dessous | `[ "Bash(git push *)" ]` |

319| `deny` | Tableau de règles de permission pour refuser l'utilisation d'outils. Utilisez ceci pour exclure les fichiers sensibles de l'accès de Claude Code. Voir [Syntaxe de règle de permission](#permission-rule-syntax) et [Limitations de permission Bash](/fr/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |362| `deny` | Tableau de règles de permission pour refuser l'utilisation d'outils. Utilisez ceci pour exclure les fichiers sensibles de l'accès de Claude Code. Les noms d'outils acceptent les modèles glob : `"*"` refuse chaque outil et `"mcp__*"` refuse tous les outils MCP. Voir [Syntaxe de règle de permission](#permission-rule-syntax) et [Limitations de permission Bash](/fr/permissions#tool-specific-permission-rules) | `[ "WebFetch", "Bash(curl *)", "Read(./.env)", "Read(./secrets/**)" ]` |

320| `additionalDirectories` | [Répertoires de travail](/fr/permissions#working-directories) supplémentaires pour l'accès aux fichiers. La plupart de la configuration `.claude/` n'est [pas découverte](/fr/permissions#additional-directories-grant-file-access-not-configuration) à partir de ces répertoires | `[ "../docs/" ]` |363| `additionalDirectories` | [Répertoires de travail](/fr/permissions#working-directories) supplémentaires pour l'accès aux fichiers. La plupart de la configuration `.claude/` n'est [pas découverte](/fr/permissions#additional-directories-grant-file-access-not-configuration) à partir de ces répertoires | `[ "../docs/" ]` |

321| `defaultMode` | [Mode de permission](/fr/permission-modes) par défaut lors de l'ouverture de Claude Code. Valeurs valides : `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`. {/* min-version: 2.1.142 */}À partir de Claude Code v2.1.142, `auto` est ignoré quand défini dans les paramètres de projet ou locaux (`.claude/settings.json`, `.claude/settings.local.json`) pour qu'un référentiel ne puisse pas se donner le mode auto. Définissez-le dans `~/.claude/settings.json` à la place. L'indicateur CLI `--permission-mode` remplace ce paramètre pour une seule session | `"acceptEdits"` |364| `defaultMode` | [Mode de permission](/fr/permission-modes) par défaut lors de l'ouverture de Claude Code. Valeurs valides : `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`. {/* min-version: 2.1.142 */}À partir de Claude Code v2.1.142, `auto` est ignoré quand défini dans les paramètres de projet ou locaux (`.claude/settings.json`, `.claude/settings.local.json`) pour qu'un référentiel ne puisse pas se donner le mode auto. Définissez-le dans `~/.claude/settings.json` à la place. L'indicateur CLI `--permission-mode` remplace ce paramètre pour une seule session | `"acceptEdits"` |

322| `disableBypassPermissionsMode` | Définir à `"disable"` pour empêcher l'activation du mode `bypassPermissions`. Ceci désactive l'indicateur de ligne de commande `--dangerously-skip-permissions`. Généralement placé dans les [paramètres gérés](/fr/permissions#managed-settings) pour appliquer la politique organisationnelle, mais fonctionne à partir de n'importe quelle portée | `"disable"` |365| `disableBypassPermissionsMode` | Définir à `"disable"` pour empêcher l'activation du mode `bypassPermissions`. Ceci désactive l'indicateur de ligne de commande `--dangerously-skip-permissions`. Généralement placé dans les [paramètres gérés](/fr/permissions#managed-settings) pour appliquer la politique organisationnelle, mais fonctionne à partir de n'importe quelle portée | `"disable"` |


326 Syntaxe de règle de permission369 Syntaxe de règle de permission

327</h3>370</h3>

328 371 

329Les règles de permission suivent le format `Tool` ou `Tool(specifier)`. Les règles sont évaluées dans l'ordre : d'abord les règles de refus, puis de demande, puis d'autorisation. La première règle correspondante gagne.372Les règles de permission suivent le format `Tool` ou `Tool(specifier)`. Les règles sont évaluées dans l'ordre : d'abord les règles de refus, puis de demande, puis d'autorisation. La première règle correspondante gagne indépendamment de la spécificité de la règle. Voir [l'ordre d'évaluation des règles de permission](/fr/permissions#manage-permissions) pour les détails.

330 373 

331Exemples rapides :374Exemples rapides :

332 375 


431**Attribution de commit par défaut :**474**Attribution de commit par défaut :**

432 475 

433```text theme={null}476```text theme={null}

434🤖 Generated with [Claude Code](https://claude.com/claude-code)477Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

435 

436 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

437```478```

438 479 

480Le nom du modèle dans le trailer reflète le modèle actif pour la session.

481 

439**Attribution de pull request par défaut :**482**Attribution de pull request par défaut :**

440 483 

441```text theme={null}484```text theme={null}


491```bash theme={null}534```bash theme={null}

492#!/bin/bash535#!/bin/bash

493query=$(cat | jq -r '.query')536query=$(cat | jq -r '.query')

537# Replace your-repo-file-index with your own file search command

494your-repo-file-index --query "$query" | head -20538your-repo-file-index --query "$query" | head -20

495```539```

496 540 

541<h3 id="footer-link-badges">

542 Badges de lien de pied de page

543</h3>

544 

545Le paramètre `footerLinksRegexes` rend des badges cliquables supplémentaires dans le pied de page sous la boîte d'entrée. Utilisez-le pour transformer les ID imprimés par les CLI de projet, tels que les outils d'examen et les suivi de problèmes, en liens de session.

546 

547Chaque regex `pattern` d'entrée est mise en correspondance avec la sortie du tour : les résultats d'outils, y compris les contenus de fichiers et les pages récupérées, et les réponses de Claude lui-même. Les espaces réservés `{name}` dans `url` et `label` sont remplis à partir de groupes de capture nommés dans le modèle.

548 

549L'exemple suivant rend un badge chaque fois qu'une clé de problème comme `PROJ-1234` apparaît dans la sortie du tour. Le groupe nommé `(?<key>...)` capture la clé, et `{key}` la substitue dans l'URL et l'étiquette :

550 

551```json ~/.claude/settings.json theme={null}

552{

553 "footerLinksRegexes": [

554 {

555 "type": "regex",

556 "pattern": "\\b(?<key>PROJ-\\d+)\\b",

557 "url": "https://issues.example.com/browse/{key}",

558 "label": "{key}"

559 }

560 ]

561}

562```

563 

564Avec ceci configuré, quand `PROJ-1234` apparaît dans un résultat d'outil ou dans la réponse de Claude, une puce `PROJ-1234` apparaît dans le pied de page liant à `https://issues.example.com/browse/PROJ-1234`.

565 

566Les contraintes suivantes s'appliquent à chaque entrée :

567 

568| Contrainte | Comportement |

569| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

570| Origine d'URL | Les valeurs capturées sont codées en URL et l'URL construite doit partager l'origine littérale du modèle. Une capture peut remplir un segment de chemin ou une valeur de requête mais ne peut pas changer où le lien pointe |

571| Longueur d'URL | Les URL construites plus longues que 2048 caractères sont supprimées |

572| Schéma d'URL | Doit être `https`, `http`, ou un schéma de lien profond d'éditeur ou d'espace de travail reconnu : `vscode`, `vscode-insiders`, `cursor`, `windsurf`, `zed`, `jetbrains`, `idea`, `slack`, `linear`, `notion`, `figma` |

573| Étiquette | Par défaut au texte correspondant et est tronquée à 28 colonnes d'affichage |

574| Nombre de badges | Au maximum 5 badges s'affichent. Le plus ancien est remplacé par les correspondances plus récentes et `/clear` les supprime |

575| Portée des paramètres | Lus à partir des paramètres utilisateur, du drapeau `--settings`, et des paramètres gérés uniquement. Ignorés dans `.claude/settings.json` et `.claude/settings.local.json` du projet |

576 

577Quand un tour se termine, Claude Code met en correspondance chaque regex `pattern` d'entrée avec la sortie du tour sur le thread principal, donc une regex lente bloque l'interface utilisateur jusqu'à ce qu'elle se termine. Les quantificateurs imbriqués tels que `(a+)+$` peuvent prendre exponentiellement longtemps contre certaines entrées et geler la session, donc gardez chaque `pattern` linéaire et évitez d'imbriquer `+` ou `*`.

578 

579Les badges de pied de page s'affichent aux côtés d'une [ligne d'état personnalisée](/fr/statusline) quand une est configurée ; ni l'une ni l'autre ne remplace l'autre. Utilisez une ligne d'état pour une ligne pilotée par script qui calcule son propre contenu à partir des données de session, et les badges de pied de page pour transformer les ID de la conversation en liens sans script.

580 

497<h3 id="hook-configuration">581<h3 id="hook-configuration">

498 Configuration des hooks582 Configuration des hooks

499</h3>583</h3>


564 * Politiques déployées par l'IT via la livraison par serveur, les profils de configuration MDM, les politiques de registre, ou les fichiers de paramètres gérés648 * Politiques déployées par l'IT via la livraison par serveur, les profils de configuration MDM, les politiques de registre, ou les fichiers de paramètres gérés

565 * Ne peuvent pas être contournés par aucun autre niveau, y compris les arguments de ligne de commande649 * Ne peuvent pas être contournés par aucun autre niveau, y compris les arguments de ligne de commande

566 * Au sein du niveau géré, la précédence est : gérés par le serveur > politiques MDM/au niveau du système d'exploitation > fichiers (`managed-settings.d/*.json` + `managed-settings.json`) > registre HKCU (Windows uniquement). Une seule source gérée est utilisée ; les sources ne fusionnent pas entre les niveaux. Au sein du niveau basé sur fichier, les fichiers drop-in et le fichier de base sont fusionnés ensemble.650 * Au sein du niveau géré, la précédence est : gérés par le serveur > politiques MDM/au niveau du système d'exploitation > fichiers (`managed-settings.d/*.json` + `managed-settings.json`) > registre HKCU (Windows uniquement). Une seule source gérée est utilisée ; les sources ne fusionnent pas entre les niveaux. Au sein du niveau basé sur fichier, les fichiers drop-in et le fichier de base sont fusionnés ensemble.

651 * Les hôtes d'intégration tels que Claude Desktop peuvent fournir une politique via l'option SDK `managedSettings`. Par défaut, ceci est ignoré quand n'importe quel niveau géré est présent. Les administrateurs peuvent opter en définissant [`parentSettingsBehavior`](#available-settings) à `"merge"`. Les valeurs de l'intégrateur sont filtrées pour qu'elles puissent resserrer la politique gérée mais pas l'assouplir.

567 652 

5682. **Arguments de ligne de commande**6532. **Arguments de ligne de commande**

569 * Remplacements temporaires pour une session spécifique. JSON passé via `--settings <file-or-json>` fusionne avec les paramètres basés sur fichier en utilisant les mêmes règles que les autres couches : une clé définie ici remplace la même clé dans les paramètres locaux, de projet ou utilisateur, et omettre une clé laisse la valeur de couche inférieure en place654 * Remplacements temporaires pour une session spécifique. JSON passé via `--settings <file-or-json>` fusionne avec les paramètres basés sur fichier en utilisant les mêmes règles que les autres couches : une clé définie ici remplace la même clé dans les paramètres locaux, de projet ou utilisateur, et omettre une clé laisse la valeur de couche inférieure en place


582Par exemple, si vos paramètres utilisateur définissent `permissions.defaultMode` à `acceptEdits` et que les paramètres partagés d'un projet le définissent à `default`, la valeur du projet s'applique. L'exemple ci-dessous couvre comment les paramètres avec valeur de tableau tels que les règles de permission se combinent à la place.667Par exemple, si vos paramètres utilisateur définissent `permissions.defaultMode` à `acceptEdits` et que les paramètres partagés d'un projet le définissent à `default`, la valeur du projet s'applique. L'exemple ci-dessous couvre comment les paramètres avec valeur de tableau tels que les règles de permission se combinent à la place.

583 668 

584<Note>669<Note>

585 **Les paramètres de tableau fusionnent entre les portées.** Quand le même paramètre avec valeur de tableau (tel que `sandbox.filesystem.allowWrite` ou `permissions.allow`) apparaît dans plusieurs portées, les tableaux sont **concaténés et dédupliqués**, non remplacés. Cela signifie que les portées de priorité inférieure peuvent ajouter des entrées sans remplacer celles définies par les portées de priorité supérieure, et vice versa. Par exemple, si les paramètres gérés définissent `allowWrite` à `["/opt/company-tools"]` et qu'un utilisateur ajoute `["~/.kube"]`, les deux chemins sont inclus dans la configuration finale.670 **Les paramètres de tableau fusionnent entre les portées.** Quand le même paramètre avec valeur de tableau (tel que `sandbox.filesystem.allowWrite` ou `permissions.allow`) apparaît dans plusieurs portées, les tableaux sont **concaténés et dédupliqués**, non remplacés. Cela signifie que les portées de priorité inférieure peuvent ajouter des entrées sans remplacer celles définies par les portées de priorité supérieure, et vice versa. Par exemple, si les paramètres gérés définissent `allowWrite` à `["/opt/company-tools"]` et qu'un utilisateur ajoute `["~/.kube"]`, les deux chemins sont inclus dans la configuration finale. Deux exceptions : [`fallbackModel`](#available-settings), une chaîne ordonnée où la position porte du sens : le fichier de priorité la plus élevée qui la définit fournit la valeur entière, et {/* min-version: 2.1.175 */}à partir de v2.1.175, [`availableModels`](#available-settings), où une valeur gérée ou de politique remplace les entrées de priorité inférieure entièrement. Voir [Comportement de fusion](/fr/model-config#merge-behavior).

586</Note>671</Note>

587 672 

588<h3 id="verify-active-settings">673<h3 id="verify-active-settings">

589 Vérifier les paramètres actifs674 Vérifier les paramètres actifs

590</h3>675</h3>

591 676 

592Exécutez `/status` dans Claude Code pour voir quelles sources de paramètres sont actives. L'onglet Status inclut une ligne `Setting sources` qui énumère chaque couche que Claude Code a chargée pour la session actuelle, telle que `User settings` ou `Project local settings`. Quand les [paramètres gérés](/fr/managed-settings) sont en vigueur, l'entrée affiche le canal de livraison entre parenthèses, par exemple `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, ou `(file)`. Une couche n'apparaît dans la liste que quand cette source est chargée avec au moins une clé, donc une liste vide signifie qu'aucune source de paramètres n'a été trouvée.677Exécutez `/status` à l'intérieur de Claude Code pour voir quelles sources de paramètres sont actives. À l'intérieur du menu, l'onglet **Status** inclut une ligne `Setting sources` qui énumère chaque couche Claude Code a chargée pour la session actuelle, telle que `User settings` ou `Project local settings`. Quand les [paramètres gérés](/fr/admin-setup#decide-how-settings-reach-devices) sont en vigueur, l'entrée affiche le canal de livraison entre parenthèses, par exemple `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, ou `(file)`. Une couche apparaît dans la liste uniquement quand cette source est chargée avec au moins une clé, donc une liste vide signifie qu'aucune source de paramètres n'a été trouvée.

678 

679La ligne `Setting sources` confirme quels fichiers sont en cours de lecture. Elle n'affiche pas quelle couche a fourni chaque clé individuelle. L'onglet **Config** dans le même dialogue est un éditeur pour un ensemble fixe de bascules telles que le thème et la sortie détaillée, pas une vue de vos contenus `settings.json`.

593 680 

594La ligne `Setting sources` confirme quelles sources sont lues. Elle n'affiche pas quelle couche a fourni chaque clé individuelle. L'onglet Config dans le même dialogue est un éditeur pour un ensemble fixe de bascules telles que le thème et la sortie détaillée, pas une vue du contenu de votre `settings.json`. Si un fichier de paramètres contient des erreurs, telles que du JSON invalide ou une valeur qui échoue la validation, `/status` signale le problème pour que vous puissiez le corriger.681Si un fichier de paramètres contient des erreurs, telles que du JSON invalide ou une valeur qui échoue la validation, Claude Code affiche un avis de problèmes de configuration au démarrage et `/status` énumère les fichiers affectés. Exécutez `/doctor` pour voir les détails de chaque erreur.

595 682 

596<h3 id="key-points-about-the-configuration-system">683<h3 id="key-points-about-the-configuration-system">

597 Points clés du système de configuration684 Points clés du système de configuration


602* **Skills** : Invites personnalisées qui peuvent être invoquées avec `/skill-name` ou chargées automatiquement par Claude689* **Skills** : Invites personnalisées qui peuvent être invoquées avec `/skill-name` ou chargées automatiquement par Claude

603* **MCP servers** : Étendez Claude Code avec des outils et des intégrations supplémentaires690* **MCP servers** : Étendez Claude Code avec des outils et des intégrations supplémentaires

604* **Précédence** : Les configurations de niveau supérieur (Managed) remplacent celles de niveau inférieur (User/Project)691* **Précédence** : Les configurations de niveau supérieur (Managed) remplacent celles de niveau inférieur (User/Project)

605* **Héritage** : Les paramètres sont fusionnés, avec les paramètres plus spécifiques s'ajoutant à ou remplaçant les paramètres plus larges692* **Héritage** : Les paramètres fusionnent entre les portées ; les valeurs scalaires des portées de priorité supérieure remplacent, et les tableaux se concatènent. Exceptions : `fallbackModel` est une chaîne ordonnée où la portée de priorité la plus élevée fournit la chaîne entière, et à partir de v2.1.175, `availableModels` où une valeur gérée ou de politique remplace les entrées de priorité inférieure

606 693 

607<h3 id="system-prompt">694<h3 id="system-prompt">

608 Invite système695 Invite système


683 770 

684* **Paramètres utilisateur** (`~/.claude/settings.json`) : Préférences personnelles de plugin771* **Paramètres utilisateur** (`~/.claude/settings.json`) : Préférences personnelles de plugin

685* **Paramètres de projet** (`.claude/settings.json`) : Plugins spécifiques au projet partagés avec l'équipe772* **Paramètres de projet** (`.claude/settings.json`) : Plugins spécifiques au projet partagés avec l'équipe

686* **Paramètres locaux** (`.claude/settings.local.json`) : Remplacements par machine (non commités)773* **Paramètres locaux** (`.claude/settings.local.json`) : Remplacements par machine, ignorés par git quand Claude Code les crée

687* **Paramètres gérés** (`managed-settings.json`) : Remplacements de politique au niveau de l'organisation qui bloquent l'installation à toutes les portées et masquent le plugin de la marketplace774* **Paramètres gérés** (`managed-settings.json`) : Remplacements de politique au niveau de l'organisation qui bloquent l'installation à toutes les portées et masquent le plugin de la marketplace

688 775 

689<Note>776<Note>

setup.md +26 −4

Details

258 258 

259Dans les [paramètres gérés](/fr/permissions#managed-settings), cela applique un minimum à l'échelle de l'organisation que les paramètres utilisateur et projet ne peuvent pas remplacer.259Dans les [paramètres gérés](/fr/permissions#managed-settings), cela applique un minimum à l'échelle de l'organisation que les paramètres utilisateur et projet ne peuvent pas remplacer.

260 260 

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

262 

261<h3 id="disable-auto-updates">263<h3 id="disable-auto-updates">

262 Désactiver les mises à jour automatiques264 Désactiver les mises à jour automatiques

263</h3>265</h3>


366 Installer avec les gestionnaires de paquets Linux368 Installer avec les gestionnaires de paquets Linux

367</h3>369</h3>

368 370 

369Claude Code publie des dépôts apt, dnf et apk signés. Remplacez `stable` par `latest` pour le canal de roulement. Les installations du gestionnaire de paquets ne se mettent pas à jour automatiquement via Claude Code ; les mises à jour arrivent via votre flux de mise à niveau système normal.371Claude Code publie des dépôts apt, dnf et apk signés. Chaque dépôt offre deux canaux : `stable` fournit une version généralement une semaine ancienne, en ignorant les versions avec des régressions majeures, et `latest` fournit chaque version dès qu'elle est publiée. Les commandes ci-dessous configurent le canal `stable`, qui convient à la plupart des utilisateurs ; chaque onglet affiche également l'URL du dépôt `latest`. Les installations du gestionnaire de paquets ne se mettent pas à jour automatiquement via Claude Code ; les mises à jour arrivent via votre flux de mise à niveau système normal.

370 372 

371Tous les dépôts sont signés avec la [clé de signature de version Claude Code](#binary-integrity-and-code-signing). Avant de faire confiance à la clé, vérifiez-la comme décrit dans chaque onglet.373Tous les dépôts sont signés avec la [clé de signature de version Claude Code](#binary-integrity-and-code-signing). Avant de faire confiance à la clé, vérifiez-la comme décrit dans chaque onglet.

372 374 

373<Tabs>375<Tabs>

374 <Tab title="apt">376 <Tab title="apt">

375 Pour Debian et Ubuntu. Pour utiliser le canal de roulement, modifiez les deux occurrences de `stable` dans la ligne `deb` : le chemin d'URL et le nom de la suite.377 Pour Debian et Ubuntu. Les commandes suivantes configurent le canal `stable` :

376 378 

377 ```bash theme={null}379 ```bash theme={null}

378 sudo install -d -m 0755 /etc/apt/keyrings380 sudo install -d -m 0755 /etc/apt/keyrings


384 sudo apt install claude-code386 sudo apt install claude-code

385 ```387 ```

386 388 

389 Pour utiliser le canal `latest` à la place, le chemin d'URL et le nom de la suite changent tous les deux. Utilisez cette ligne `deb` :

390 

391 ```bash theme={null}

392 echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/latest latest main" \

393 | sudo tee /etc/apt/sources.list.d/claude-code.list

394 ```

395 

387 Vérifiez l'empreinte digitale de la clé GPG avant de lui faire confiance : `gpg --show-keys /etc/apt/keyrings/claude-code.asc` devrait signaler `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`.396 Vérifiez l'empreinte digitale de la clé GPG avant de lui faire confiance : `gpg --show-keys /etc/apt/keyrings/claude-code.asc` devrait signaler `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`.

388 397 

389 Pour mettre à jour ultérieurement, exécutez `sudo apt update && sudo apt upgrade claude-code`.398 Pour mettre à jour ultérieurement, exécutez `sudo apt update && sudo apt upgrade claude-code`.

390 </Tab>399 </Tab>

391 400 

392 <Tab title="dnf">401 <Tab title="dnf">

393 Pour Fedora et RHEL :402 Pour Fedora et RHEL. Les commandes suivantes configurent le canal `stable` :

394 403 

395 ```bash theme={null}404 ```bash theme={null}

396 sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'405 sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'


404 sudo dnf install claude-code413 sudo dnf install claude-code

405 ```414 ```

406 415 

416 Pour utiliser le canal `latest` à la place, définissez `baseurl` sur le dépôt `latest` :

417 

418 ```ini theme={null}

419 baseurl=https://downloads.claude.ai/claude-code/rpm/latest

420 ```

421 

407 dnf télécharge la clé lors de la première installation et vous demande de confirmer l'empreinte digitale. Vérifiez qu'elle correspond à `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` avant d'accepter.422 dnf télécharge la clé lors de la première installation et vous demande de confirmer l'empreinte digitale. Vérifiez qu'elle correspond à `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` avant d'accepter.

408 423 

409 Pour mettre à jour ultérieurement, exécutez `sudo dnf upgrade claude-code`.424 Pour mettre à jour ultérieurement, exécutez `sudo dnf upgrade claude-code`.

410 </Tab>425 </Tab>

411 426 

412 <Tab title="apk">427 <Tab title="apk">

413 Pour Alpine Linux :428 Pour Alpine Linux. Les commandes suivantes configurent le canal `stable` :

414 429 

415 ```sh theme={null}430 ```sh theme={null}

416 wget -O /etc/apk/keys/claude-code.rsa.pub \431 wget -O /etc/apk/keys/claude-code.rsa.pub \


419 apk add claude-code434 apk add claude-code

420 ```435 ```

421 436 

437 Pour basculer vers le canal `latest`, supprimez la ligne du dépôt `stable` et ajoutez le dépôt `latest` :

438 

439 ```sh theme={null}

440 sed -i '\|downloads.claude.ai/claude-code/apk/stable|d' /etc/apk/repositories

441 echo "https://downloads.claude.ai/claude-code/apk/latest" >> /etc/apk/repositories

442 ```

443 

422 Vérifiez la clé téléchargée avec `sha256sum /etc/apk/keys/claude-code.rsa.pub`, qui devrait signaler `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`.444 Vérifiez la clé téléchargée avec `sha256sum /etc/apk/keys/claude-code.rsa.pub`, qui devrait signaler `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`.

423 445 

424 Pour mettre à jour ultérieurement, exécutez `apk update && apk upgrade claude-code`.446 Pour mettre à jour ultérieurement, exécutez `apk update && apk upgrade claude-code`.

skills.md +19 −6

Details

22 Skills groupées22 Skills groupées

23</h2>23</h2>

24 24 

25Claude Code inclut un ensemble de skills groupées qui sont disponibles dans chaque session, notamment `/code-review`, `/batch`, `/debug`, `/loop` et `/claude-api`. Contrairement à la plupart des commandes intégrées, qui exécutent une logique fixe directement, les skills groupées sont basées sur des prompts : elles donnent à Claude des instructions détaillées et le laissent orchestrer le travail en utilisant ses outils. Vous les invoquez de la même manière que n'importe quelle autre skill, en tapant `/` suivi du nom de la skill.25Claude Code inclut un ensemble de skills groupées qui sont disponibles dans chaque session sauf si elles sont désactivées avec le paramètre [`disableBundledSkills`](/fr/settings#available-settings), notamment `/code-review`, `/batch`, `/debug`, `/loop` et `/claude-api`. Contrairement à la plupart des commandes intégrées, qui exécutent une logique fixe directement, les skills groupées sont basées sur des prompts : elles donnent à Claude des instructions détaillées et le laissent orchestrer le travail en utilisant ses outils. Vous les invoquez de la même manière que n'importe quelle autre skill, en tapant `/` suivi du nom de la skill.

26 26 

27Les skills groupées sont listées aux côtés des commandes intégrées dans la [référence des commandes](/fr/commands), marquées **Skill** dans la colonne Objectif.27Les skills groupées sont listées aux côtés des commandes intégrées dans la [référence des commandes](/fr/commands), marquées **Skill** dans la colonne Objectif.

28 28 


117| Projet | `.claude/skills/<skill-name>/SKILL.md` | Ce projet uniquement |117| Projet | `.claude/skills/<skill-name>/SKILL.md` | Ce projet uniquement |

118| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Où le plugin est activé |118| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Où le plugin est activé |

119 119 

120Quand les skills partagent le même nom à différents niveaux, l'entreprise remplace le personnel, et le personnel remplace le projet. Les skills de plugin utilisent un espace de noms `plugin-name:skill-name`, donc elles ne peuvent pas entrer en conflit avec d'autres niveaux. Si vous avez des fichiers dans `.claude/commands/`, ils fonctionnent de la même manière, mais si une skill et une commande partagent le même nom, la skill a la priorité.120Quand les skills partagent le même nom à différents niveaux, l'entreprise remplace le personnel, et le personnel remplace le projet. Une skill à n'importe quel niveau remplace également une skill groupée portant le même nom. Par exemple, une skill `code-review` dans le `.claude/skills/` de votre projet remplace la skill groupée `/code-review`. Les skills de plugin utilisent un espace de noms `plugin-name:skill-name`, donc elles ne peuvent pas entrer en conflit avec d'autres niveaux. Si vous avez des fichiers dans `.claude/commands/`, ils fonctionnent de la même manière, mais si une skill et une commande partagent le même nom, la skill a la priorité.

121 

122Les skills se chargent également à partir de répertoires `.claude/skills/` imbriqués en dessous de votre répertoire de travail. Quand Claude lit ou modifie un fichier dans un sous-répertoire, les skills du `.claude/skills/` de ce sous-répertoire deviennent disponibles. Cela permet à un package monorepo de fournir ses propres skills qui s'appliquent quand vous travaillez sur ce package, même si la session a commencé à la racine du référentiel.

123 

124Si une skill imbriquée partage un nom avec une autre skill, les deux restent disponibles. Par exemple, avec une skill `deploy` à la racine du projet et une autre dans `apps/web/.claude/skills/` :

125 

126* La skill imbriquée apparaît sous un nom qualifié par répertoire, `apps/web:deploy`.

127* Sa description indique quel répertoire elle s'applique à.

128* Claude choisit la variante qui correspond aux fichiers sur lesquels il travaille.

129 

130Taper `/deploy` exécute la skill de la racine du projet. Tapez le nom qualifié `/apps/web:deploy` pour exécuter la variante imbriquée explicitement.

121 131 

122<Note>132<Note>

123 Ajoutez un `.claude-plugin/plugin.json` à un dossier de skill et il se charge comme un [plugin](/fr/plugins-reference#skills-directory-plugins) nommé `<name>@skills-dir`, de sorte qu'il peut regrouper des agents, des hooks et des serveurs MCP. Dans un `.claude/skills/` de projet, cela nécessite d'accepter d'abord la boîte de dialogue de confiance de l'espace de travail.133 Ajoutez un `.claude-plugin/plugin.json` à un dossier de skill et il se charge comme un [plugin](/fr/plugins-reference#skills-directory-plugins) nommé `<name>@skills-dir`, de sorte qu'il peut regrouper des agents, des hooks et des serveurs MCP. Dans un `.claude/skills/` de projet, cela nécessite d'accepter d'abord la boîte de dialogue de confiance de l'espace de travail.


262Le tableau ci-dessous montre d'où provient le nom de commande pour chaque disposition :272Le tableau ci-dessous montre d'où provient le nom de commande pour chaque disposition :

263 273 

264| Emplacement de la skill | Source du nom de commande | Exemple |274| Emplacement de la skill | Source du nom de commande | Exemple |

265| :---------------------------------------------------------------- | :-------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |275| :-------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- |

266| Répertoire de skill sous `~/.claude/skills/` ou `.claude/skills/` | Nom du répertoire | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |276| Répertoire de skill sous `~/.claude/skills/` ou `.claude/skills/` | Nom du répertoire | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |

277| [Répertoire `.claude/skills/` imbriqué](#where-skills-live), quand le nom entre en conflit avec une autre skill | Chemin du sous-répertoire relatif au répertoire de travail, puis le nom du répertoire de skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

267| Fichier sous `.claude/commands/` | Nom du fichier sans extension | `.claude/commands/deploy.md` → `/deploy` |278| Fichier sous `.claude/commands/` | Nom du fichier sans extension | `.claude/commands/deploy.md` → `/deploy` |

268| Sous-répertoire `skills/` du plugin | Nom du répertoire, préfixé par le plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review` |279| Sous-répertoire `skills/` du plugin | Nom du répertoire, préfixé par le plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review` |

269| `SKILL.md` à la racine du plugin | Frontmatter `name`, avec le nom du répertoire du plugin comme secours | `my-plugin/SKILL.md` avec `name: review` → `/my-plugin:review`. Voir [Règles de comportement du chemin](/fr/plugins-reference#path-behavior-rules) |280| `SKILL.md` à la racine du plugin | Frontmatter `name`, avec le nom du répertoire du plugin comme secours | `my-plugin/SKILL.md` avec `name: review` → `/my-plugin:review`. Voir [Règles de comportement du chemin](/fr/plugins-reference#path-behavior-rules) |


288 299 

289Les arguments indexés utilisent le guillemettage de style shell, donc enveloppez les valeurs multi-mots entre guillemets pour les passer comme un seul argument. Par exemple, `/my-skill "hello world" second` fait que `$0` se développe en `hello world` et `$1` en `second`. L'espace réservé `$ARGUMENTS` se développe toujours en la chaîne d'argument complète telle que tapée.300Les arguments indexés utilisent le guillemettage de style shell, donc enveloppez les valeurs multi-mots entre guillemets pour les passer comme un seul argument. Par exemple, `/my-skill "hello world" second` fait que `$0` se développe en `hello world` et `$1` en `second`. L'espace réservé `$ARGUMENTS` se développe toujours en la chaîne d'argument complète telle que tapée.

290 301 

302Pour inclure un `$` littéral avant un chiffre, `ARGUMENTS`, ou un nom d'argument déclaré, comme `$1.00` en prose, échappez-le avec une barre oblique inverse : `\$1.00`. Une barre oblique inverse avant tout autre `$` est laissée inchangée. Seule une barre oblique inverse directement avant le token l'échappe. Une barre oblique inverse doublée comme `\\$1` laisse les deux barres obliques inverses en place, et `$1` se développe toujours en la valeur de l'argument.

303 

291**Exemple utilisant les substitutions :**304**Exemple utilisant les substitutions :**

292 305 

293```yaml theme={null}306```yaml theme={null}


395---408---

396```409```

397 410 

398Pour bloquer une skill d'utiliser certains outils, ajoutez plutôt des règles de refus dans vos [paramètres de permission](/fr/permissions).411Pour supprimer les outils du pool d'outils disponibles de Claude tandis qu'une skill est active, listez-les dans `disallowed-tools` dans le frontmatter de la skill. La restriction s'efface quand vous envoyez votre prochain message. Pour bloquer les outils dans toutes les skills et tous les prompts, ajoutez des règles de refus dans vos [paramètres de permission](/fr/permissions).

399 412 

400<h3 id="pass-arguments-to-skills">413<h3 id="pass-arguments-to-skills">

401 Passer des arguments aux skills414 Passer des arguments aux skills


557 570 

558Le champ `agent` spécifie quelle configuration de subagent utiliser. Les options incluent les agents intégrés (`Explore`, `Plan`, `general-purpose`) ou n'importe quel subagent personnalisé de `.claude/agents/`. S'il est omis, utilise `general-purpose`.571Le champ `agent` spécifie quelle configuration de subagent utiliser. Les options incluent les agents intégrés (`Explore`, `Plan`, `general-purpose`) ou n'importe quel subagent personnalisé de `.claude/agents/`. S'il est omis, utilise `general-purpose`.

559 572 

560<h3 id="restrict-claude-s-skill-access">573<h3 id="restrict-claudes-skill-access">

561 Restreindre l'accès aux skills de Claude574 Restreindre l'accès aux skills de Claude

562</h3>575</h3>

563 576 


850 Les descriptions de skills sont coupées court863 Les descriptions de skills sont coupées court

851</h3>864</h3>

852 865 

853Les descriptions de skills sont chargées dans le contexte pour que Claude sache ce qui est disponible. Tous les noms de skills sont toujours inclus, mais si vous avez beaucoup de skills, les descriptions sont raccourcies pour tenir dans le budget de caractères, ce qui peut supprimer les mots-clés dont Claude a besoin pour correspondre à votre demande. Le budget s'adapte à 1 % de la fenêtre de contexte du modèle. Quand il déborde, les descriptions des skills que vous invoquez le moins sont supprimées en premier, de sorte que les skills que vous utilisez réellement conservent leur texte complet. Exécutez `/doctor` pour voir si le budget déborde et quelles skills sont affectées.866Les descriptions de skills sont chargées dans le contexte pour que Claude sache ce qui est disponible. Tous les noms de skills sont toujours inclus, mais si vous avez beaucoup de skills, les descriptions sont raccourcies pour tenir dans le budget de caractères, ce qui peut supprimer les mots-clés dont Claude a besoin pour correspondre à votre demande. Le budget s'adapte à 1 % de la fenêtre de contexte du modèle. Quand il déborde, les descriptions des skills que vous invoquez le moins sont supprimées en premier, de sorte que les skills que vous utilisez réellement conservent leur texte complet. Exécutez `/doctor` pour voir combien de descriptions de skills sont raccourcies ou supprimées et quelles skills sont affectées.

854 867 

855Pour augmenter le budget, définissez le paramètre [`skillListingBudgetFraction`](/fr/settings#available-settings) (par exemple `0.02` = 2 %) ou la variable d'environnement `SLASH_COMMAND_TOOL_CHAR_BUDGET` à un nombre de caractères fixe. Pour libérer du budget pour d'autres skills, définissez les entrées de faible priorité sur `"name-only"` dans [`skillOverrides`](#override-skill-visibility-from-settings) afin qu'elles s'affichent sans description. Vous pouvez également réduire le texte `description` et `when_to_use` à la source : mettez en avant le cas d'utilisation clé, puisque le texte combiné de chaque entrée est limité à 1 536 caractères indépendamment du budget. Le plafond est configurable avec [`maxSkillDescriptionChars`](/fr/settings#available-settings).868Pour augmenter le budget, définissez le paramètre [`skillListingBudgetFraction`](/fr/settings#available-settings) (par exemple `0.02` = 2 %) ou la variable d'environnement `SLASH_COMMAND_TOOL_CHAR_BUDGET` à un nombre de caractères fixe. Pour libérer du budget pour d'autres skills, définissez les entrées de faible priorité sur `"name-only"` dans [`skillOverrides`](#override-skill-visibility-from-settings) afin qu'elles s'affichent sans description. Vous pouvez également réduire le texte `description` et `when_to_use` à la source : mettez en avant le cas d'utilisation clé, puisque le texte combiné de chaque entrée est limité à 1 536 caractères indépendamment du budget. Le plafond est configurable avec [`maxSkillDescriptionChars`](/fr/settings#available-settings).

856 869 

slack.md +1 −1

Details

182 182 

183Ce modèle basé sur les canaux permet aux équipes de restreindre l'utilisation de Claude Code à des canaux spécifiques, fournissant une couche supplémentaire de contrôle d'accès au-delà des permissions au niveau de l'espace de travail.183Ce modèle basé sur les canaux permet aux équipes de restreindre l'utilisation de Claude Code à des canaux spécifiques, fournissant une couche supplémentaire de contrôle d'accès au-delà des permissions au niveau de l'espace de travail.

184 184 

185<h2 id="what-s-accessible-where">185<h2 id="whats-accessible-where">

186 Ce qui est accessible où186 Ce qui est accessible où

187</h2>187</h2>

188 188 

statusline.md +2 −0

Details

15* Travaillez sur plusieurs sessions et avez besoin de les distinguer15* Travaillez sur plusieurs sessions et avez besoin de les distinguer

16* Voulez que la branche git et l'état soient toujours visibles16* Voulez que la branche git et l'état soient toujours visibles

17 17 

18Claude Code peut également afficher des [badges de lien de pied de page](/fr/settings#footer-link-badges) : des puces cliquables qui apparaissent dans le pied de page quand une expression régulière configurée correspond à du texte dans la conversation. Ceux-ci sont indépendants de la barre de statut et n'interagissent pas avec votre script ; configurez-les avec le paramètre [`footerLinksRegexes`](/fr/settings#footer-link-badges) à la place.

19 

18Voici un exemple d'une [barre de statut multi-lignes](#display-multiple-lines) qui affiche les informations git sur la première ligne et une barre de contexte codée par couleur sur la deuxième.20Voici un exemple d'une [barre de statut multi-lignes](#display-multiple-lines) qui affiche les informations git sur la première ligne et une barre de contexte codée par couleur sur la deuxième.

19 21 

20<Frame>22<Frame>

sub-agents.md +49 −19

Details

61 * **Outils** : Outils en lecture seule (accès refusé aux outils Write et Edit)61 * **Outils** : Outils en lecture seule (accès refusé aux outils Write et Edit)

62 * **Objectif** : Recherche de base de code pour la planification62 * **Objectif** : Recherche de base de code pour la planification

63 63 

64 Lorsque vous êtes en mode plan et que Claude doit comprendre votre base de code, il délègue la recherche au sous-agent Plan. Cela empêche l'imbrication infinie (les sous-agents ne peuvent pas générer d'autres sous-agents) tout en rassemblant le contexte nécessaire.64 Lorsque vous êtes en mode plan et que Claude doit comprendre votre base de code, il délègue la recherche au sous-agent Plan afin que la sortie d'exploration reste dans une fenêtre de contexte séparée tandis que la conversation principale reste en lecture seule.

65 </Tab>65 </Tab>

66 66 

67 <Tab title="General-purpose">67 <Tab title="General-purpose">


84 </Tab>84 </Tab>

85</Tabs>85</Tabs>

86 86 

87Les sous-agents intégrés sont toujours enregistrés dans les sessions interactives. Pour bloquer un type intégré spécifique, ajoutez-le à `permissions.deny` comme indiqué dans [Désactiver des sous-agents spécifiques](#disable-specific-subagents). Pour empêcher Claude de déléguer à un sous-agent, refusez l'outil `Agent` lui-même avec [`permissions.deny`](/fr/permissions#tool-specific-permission-rules). En [mode non-interactif](/fr/headless) et le [SDK Agent](/fr/agent-sdk/overview), définissez [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/fr/env-vars) pour supprimer tous les types intégrés et fournir uniquement les vôtres.

88 

87Au-delà de ces sous-agents intégrés, vous pouvez créer les vôtres avec des invites personnalisées, des restrictions d'outils, des modes de permission, des hooks et des skills. Les sections suivantes montrent comment commencer et personnaliser les sous-agents.89Au-delà de ces sous-agents intégrés, vous pouvez créer les vôtres avec des invites personnalisées, des restrictions d'outils, des modes de permission, des hooks et des skills. Les sections suivantes montrent comment commencer et personnaliser les sous-agents.

88 90 

89<h2 id="quickstart-create-your-first-subagent">91<h2 id="quickstart-create-your-first-subagent">


158 Utiliser la commande /agents160 Utiliser la commande /agents

159</h3>161</h3>

160 162 

161La commande `/agents` ouvre une interface à onglets pour gérer les sous-agents. L'onglet **Running** affiche les sous-agents en direct et vous permet de les ouvrir ou de les arrêter. L'onglet **Library** vous permet de :163La commande `/agents` ouvre une interface à onglets pour gérer les sous-agents. L'onglet **Running** affiche les sous-agents en direct et récemment terminés et vous permet de les ouvrir ou de les arrêter. L'onglet **Library** vous permet de :

162 164 

163* Afficher tous les sous-agents disponibles (intégrés, utilisateur, projet et plugin)165* Afficher tous les sous-agents disponibles (intégrés, utilisateur, projet et plugin)

164* Créer de nouveaux sous-agents avec une configuration guidée ou une génération Claude166* Créer de nouveaux sous-agents avec une configuration guidée ou une génération Claude


184 186 

185**Les sous-agents de projet** (`.claude/agents/`) sont idéaux pour les sous-agents spécifiques à une base de code. Enregistrez-les dans le contrôle de version pour que votre équipe puisse les utiliser et les améliorer de manière collaborative.187**Les sous-agents de projet** (`.claude/agents/`) sont idéaux pour les sous-agents spécifiques à une base de code. Enregistrez-les dans le contrôle de version pour que votre équipe puisse les utiliser et les améliorer de manière collaborative.

186 188 

187Les sous-agents de projet sont découverts en remontant à partir du répertoire de travail actuel. Les répertoires ajoutés avec `--add-dir` [accordent uniquement l'accès aux fichiers](/fr/permissions#additional-directories-grant-file-access-not-configuration) et ne sont pas analysés pour les sous-agents. Pour partager les sous-agents entre les projets, utilisez `~/.claude/agents/` ou un [plugin](/fr/plugins).189Les sous-agents de projet sont découverts en remontant à partir du répertoire de travail actuel, donc chaque `.claude/agents/` entre celui-ci et la racine du référentiel est analysé. {/* min-version: 2.1.178 */}À partir de la v2.1.178, lorsque plusieurs de ces répertoires imbriqués définissent le même `name`, Claude Code utilise la définition la plus proche du répertoire de travail.

190 

191Les répertoires ajoutés avec `--add-dir` sont également analysés : un dossier `.claude/agents/` à l'intérieur d'un répertoire ajouté se charge aux côtés des sous-agents de projet. Consultez [Répertoires supplémentaires](/fr/permissions#additional-directories-grant-file-access-not-configuration) pour voir quels autres types de configuration se chargent à partir de `--add-dir`. Pour partager les sous-agents entre les projets sans `--add-dir`, utilisez `~/.claude/agents/` ou un [plugin](/fr/plugins).

188 192 

189**Les sous-agents utilisateur** (`~/.claude/agents/`) sont des sous-agents personnels disponibles dans tous vos projets.193**Les sous-agents utilisateur** (`~/.claude/agents/`) sont des sous-agents personnels disponibles dans tous vos projets.

190 194 


282| `description` | Oui | Quand Claude doit déléguer à ce sous-agent |286| `description` | Oui | Quand Claude doit déléguer à ce sous-agent |

283| `tools` | Non | [Outils](#available-tools) que le sous-agent peut utiliser. Hérite de tous les outils s'il est omis. Pour précharger les Skills dans le contexte, utilisez le champ `skills` plutôt que de lister `Skill` ici |287| `tools` | Non | [Outils](#available-tools) que le sous-agent peut utiliser. Hérite de tous les outils s'il est omis. Pour précharger les Skills dans le contexte, utilisez le champ `skills` plutôt que de lister `Skill` ici |

284| `disallowedTools` | Non | Outils à refuser, supprimés de la liste héritée ou spécifiée |288| `disallowedTools` | Non | Outils à refuser, supprimés de la liste héritée ou spécifiée |

285| `model` | Non | [Modèle](#choose-a-model) à utiliser : `sonnet`, `opus`, `haiku`, un ID de modèle complet (par exemple, `claude-opus-4-8`), ou `inherit`. Par défaut `inherit` |289| `model` | Non | [Modèle](#choose-a-model) à utiliser : `sonnet`, `opus`, `haiku`, `fable`, un ID de modèle complet (par exemple, `claude-opus-4-8`), ou `inherit`. Par défaut `inherit` |

286| `permissionMode` | Non | [Mode de permission](#permission-modes) : `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions` ou `plan`. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |290| `permissionMode` | Non | [Mode de permission](#permission-modes) : `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions` ou `plan`. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |

287| `maxTurns` | Non | Nombre maximum de tours d'agent avant que le sous-agent s'arrête |291| `maxTurns` | Non | Nombre maximum de tours d'agent avant que le sous-agent s'arrête |

288| `skills` | Non | [Skills](/fr/skills) à précharger dans le contexte du sous-agent au démarrage. Le contenu complet de la skill est injecté, pas seulement la description. Les sous-agents peuvent toujours invoquer les skills de projet, utilisateur et plugin non listées via l'outil Skill |292| `skills` | Non | [Skills](/fr/skills) à précharger dans le contexte du sous-agent au démarrage. Le contenu complet de la skill est injecté, pas seulement la description. Les sous-agents peuvent toujours invoquer les skills de projet, utilisateur et plugin non listées via l'outil Skill |


301 305 

302Le champ `model` contrôle quel [modèle IA](/fr/model-config) le sous-agent utilise :306Le champ `model` contrôle quel [modèle IA](/fr/model-config) le sous-agent utilise :

303 307 

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

305* **ID de modèle complet** : Utilisez un ID de modèle complet tel que `claude-opus-4-8` ou `claude-sonnet-4-6`. Accepte les mêmes valeurs que le drapeau `--model`309* **ID de modèle complet** : Utilisez un ID de modèle complet tel que `claude-opus-4-8` ou `claude-sonnet-4-6`. Accepte les mêmes valeurs que le drapeau `--model`

306* **inherit** : Utilisez le même modèle que la conversation principale310* **inherit** : Utilisez le même modèle que la conversation principale

307* **Omis** : S'il n'est pas spécifié, par défaut `inherit` (utilise le même modèle que la conversation principale)311* **Omis** : S'il n'est pas spécifié, par défaut `inherit` (utilise le même modèle que la conversation principale)


325 329 

326Les sous-agents héritent des [outils internes](/fr/tools-reference) et des outils MCP disponibles dans la conversation principale par défaut. Les outils suivants dépendent de l'interface utilisateur ou de l'état de session de la conversation principale et ne sont pas disponibles pour les sous-agents, même s'ils sont listés dans le champ `tools` :330Les sous-agents héritent des [outils internes](/fr/tools-reference) et des outils MCP disponibles dans la conversation principale par défaut. Les outils suivants dépendent de l'interface utilisateur ou de l'état de session de la conversation principale et ne sont pas disponibles pour les sous-agents, même s'ils sont listés dans le champ `tools` :

327 331 

328* `Agent`

329* `AskUserQuestion`332* `AskUserQuestion`

330* `EnterPlanMode`333* `EnterPlanMode`

331* `ExitPlanMode`, sauf si le [`permissionMode`](#permission-modes) du sous-agent est `plan`334* `ExitPlanMode`, sauf si le [`permissionMode`](#permission-modes) du sous-agent est `plan`


354 357 

355Si les deux sont définis, `disallowedTools` est appliqué en premier, puis `tools` est résolu par rapport au pool restant. Un outil listé dans les deux est supprimé.358Si les deux sont définis, `disallowedTools` est appliqué en premier, puis `tools` est résolu par rapport au pool restant. Un outil listé dans les deux est supprimé.

356 359 

360Les deux champs acceptent des modèles au niveau du serveur MCP en plus des noms d'outils exacts : `mcp__<server>` ou `mcp__<server>__*` accorde ou supprime tous les outils du serveur nommé. Dans `disallowedTools`, `mcp__*` supprime également tous les outils MCP de n'importe quel serveur. Cet exemple supprime tous les outils du serveur MCP `github` tout en conservant les outils d'autres serveurs et tous les outils intégrés :

361 

362```yaml theme={null}

363---

364name: local-only

365description: Inherits every tool except those from the github MCP server

366disallowedTools: mcp__github

367---

368```

369 

357<h4 id="restrict-which-subagents-can-be-spawned">370<h4 id="restrict-which-subagents-can-be-spawned">

358 Restreindre les sous-agents qui peuvent être générés371 Restreindre les sous-agents qui peuvent être générés

359</h4>372</h4>


378tools: Agent, Read, Bash391tools: Agent, Read, Bash

379```392```

380 393 

381Si `Agent` est complètement omis de la liste `tools`, l'agent ne peut générer aucun sous-agent. Cette restriction s'applique uniquement aux agents s'exécutant en tant que thread principal avec `claude --agent`. Les sous-agents ne peuvent pas générer d'autres sous-agents, donc `Agent(agent_type)` n'a aucun effet dans les définitions de sous-agent.394Si `Agent` est complètement omis de la liste `tools`, l'agent ne peut générer aucun sous-agent.

395 

396L'outil `Agent(agent_type)` avec syntaxe de liste blanche s'applique uniquement à un agent s'exécutant en tant que thread principal avec `claude --agent`. Dans une définition de sous-agent, lister `Agent` dans `tools` permet à ce sous-agent de [générer des sous-agents imbriqués](#spawn-nested-subagents), mais toute liste de types à l'intérieur des parenthèses est ignorée.

382 397 

383<h4 id="scope-mcp-servers-to-a-subagent">398<h4 id="scope-mcp-servers-to-a-subagent">

384 Limiter les serveurs MCP à un sous-agent399 Limiter les serveurs MCP à un sous-agent


444| `plan` | Mode plan (exploration en lecture seule) |459| `plan` | Mode plan (exploration en lecture seule) |

445 460 

446<Warning>461<Warning>

447 Utilisez `bypassPermissions` avec prudence. Il ignore les invites de permission, permettant au sous-agent d'exécuter des opérations sans approbation, y compris les écritures dans `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` et `.mvn`. Les suppressions du répertoire racine et du répertoire personnel comme `rm -rf /` demandent toujours une confirmation en tant que disjoncteur. Consultez [modes de permission](/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) pour plus de détails.462 Utilisez `bypassPermissions` avec prudence. Il ignore les invites de permission, permettant au sous-agent d'exécuter des opérations sans approbation, y compris les écritures dans `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` et `.mvn`. Les règles [`ask`](/fr/permissions#manage-permissions) explicites et les suppressions du répertoire racine et du répertoire personnel comme `rm -rf /` demandent toujours une confirmation en tant que disjoncteur. Consultez [modes de permission](/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) pour plus de détails.

448</Warning>463</Warning>

449 464 

450Si le parent utilise `bypassPermissions` ou `acceptEdits`, cela prend précédence et ne peut pas être remplacé. Si le parent utilise le [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode), le sous-agent hérite du mode auto et tout `permissionMode` dans son frontmatter est ignoré : le classificateur évalue les appels d'outils du sous-agent avec les mêmes règles de blocage et d'autorisation que la session parent.465Si le parent utilise `bypassPermissions` ou `acceptEdits`, cela prend précédence et ne peut pas être remplacé. Si le parent utilise le [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode), le sous-agent hérite du mode auto et tout `permissionMode` dans son frontmatter est ignoré : le classificateur évalue les appels d'outils du sous-agent avec les mêmes règles de blocage et d'autorisation que la session parent.


761 776 

762Pour désactiver toute la fonctionnalité de tâche en arrière-plan, définissez la variable d'environnement `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` sur `1`. Consultez [Variables d'environnement](/fr/env-vars).777Pour désactiver toute la fonctionnalité de tâche en arrière-plan, définissez la variable d'environnement `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` sur `1`. Consultez [Variables d'environnement](/fr/env-vars).

763 778 

764Lorsque [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) est défini, chaque génération de sous-agent s'exécute en arrière-plan indépendamment du champ `background`. Les forks affichent toujours les invites de permission dans votre terminal au fur et à mesure qu'elles se produisent ; les sous-agents nommés auto-refusent tout ce qui sinon demanderait une permission, comme décrit ci-dessus.779Lorsque [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) est défini sur `1`, chaque génération de sous-agent s'exécute en arrière-plan indépendamment du champ `background`. Les forks affichent toujours les invites de permission dans votre terminal au fur et à mesure qu'elles se produisent ; les sous-agents nommés auto-refusent tout ce qui sinon demanderait une permission, comme décrit ci-dessus.

765 780 

766<h3 id="common-patterns">781<h3 id="common-patterns">

767 Modèles courants782 Modèles courants


826 841 

827Pour une question rapide sur quelque chose déjà dans votre conversation, utilisez [`/btw`](/fr/interactive-mode#side-questions-with-%2Fbtw) au lieu d'un sous-agent. Il voit votre contexte complet mais n'a pas d'accès aux outils, et la réponse est ignorée plutôt que d'être ajoutée à l'historique.842Pour une question rapide sur quelque chose déjà dans votre conversation, utilisez [`/btw`](/fr/interactive-mode#side-questions-with-%2Fbtw) au lieu d'un sous-agent. Il voit votre contexte complet mais n'a pas d'accès aux outils, et la réponse est ignorée plutôt que d'être ajoutée à l'historique.

828 843 

829<Note>844<h3 id="spawn-nested-subagents">

830 Les sous-agents ne peuvent pas générer d'autres sous-agents. Si votre workflow nécessite une délégation imbriquée, utilisez les [Skills](/fr/skills) ou [chaînez les sous-agents](#chain-subagents) à partir de la conversation principale.845 Générer des sous-agents imbriqués

831</Note>846</h3>

847 

848{/* min-version: 2.1.172 */}À partir de Claude Code v2.1.172, un sous-agent peut générer ses propres sous-agents. Utilisez ceci lorsqu'une tâche déléguée se divise elle-même en sous-tâches parallèles, comme un sous-agent examinateur qui envoie un vérificateur par résultat, de sorte que la sortie intermédiaire n'atteint jamais votre conversation principale. Seul le résumé du sous-agent de niveau supérieur vous revient.

849 

850Un sous-agent imbriqué est configuré de la même manière qu'un sous-agent de niveau supérieur et se résout à partir des mêmes [portées](#choose-the-subagent-scope). Le panneau de sous-agent sous l'entrée d'invite affiche l'arborescence complète : chaque ligne affiche un nombre `(+N)` de descendants, et l'ouverture d'une ligne affiche les enfants directs de ce sous-agent avec un chemin de retour à `main`. L'onglet En cours d'exécution dans [`/agents`](#use-the-%2Fagents-command) répertorie les sous-agents en cours d'exécution sous forme de liste plate.

851 

852La profondeur est comptée comme le nombre de niveaux de sous-agent en dessous de la conversation principale, indépendamment du fait que chaque niveau s'exécute en [premier plan ou en arrière-plan](#run-subagents-in-foreground-or-background) :

853 

854* **Sous-agents au premier plan** : peuvent générer à n'importe quelle profondeur. Chaque niveau bloque son parent jusqu'à ce qu'il revienne, donc la chaîne s'auto-limite : la conversation principale attend la chaîne entière.

855* **Sous-agents en arrière-plan** : un sous-agent en arrière-plan à la profondeur cinq ne reçoit pas l'outil Agent et ne peut pas générer d'autres. La limite est fixe et non configurable, et existe pour éviter les arbres concurrents incontrôlés.

856 

857Pour empêcher un sous-agent spécifique de générer d'autres, omettez `Agent` de sa liste [`tools`](#available-tools) ou ajoutez-le à `disallowedTools`.

858 

859Un [fork](#fork-the-current-conversation) ne peut toujours pas générer un autre fork. Il peut générer d'autres types de sous-agents, et ceux-ci comptent vers la limite de profondeur.

832 860 

833<h3 id="manage-subagent-context">861<h3 id="manage-subagent-context">

834 Gérer le contexte du sous-agent862 Gérer le contexte du sous-agent


860 888 

861Les sous-agents repris conservent leur historique de conversation complet, y compris tous les appels d'outils précédents, les résultats et le raisonnement. Le sous-agent reprend exactement où il s'était arrêté plutôt que de recommencer à zéro.889Les sous-agents repris conservent leur historique de conversation complet, y compris tous les appels d'outils précédents, les résultats et le raisonnement. Le sous-agent reprend exactement où il s'était arrêté plutôt que de recommencer à zéro.

862 890 

863Lorsqu'un sous-agent se termine, Claude reçoit son ID d'agent. Claude utilise l'outil `SendMessage` avec l'ID de l'agent comme champ `to` pour le reprendre. L'outil `SendMessage` n'est disponible que lorsque les [équipes d'agents](/fr/agent-teams) sont activées via `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`.891Lorsqu'un sous-agent se termine, Claude reçoit son ID d'agent. Les agents Explore et Plan intégrés sont ponctuels et ne retournent pas d'ID d'agent, donc ils ne peuvent pas être repris ; utilisez `general-purpose` ou un sous-agent personnalisé lorsque vous avez besoin de continuer le travail. Claude utilise l'outil `SendMessage` avec l'ID de l'agent comme champ `to` pour le reprendre. L'outil `SendMessage` n'est disponible que lorsque les [équipes d'agents](/fr/agent-teams) sont activées via `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`.

864 892 

865Pour reprendre un sous-agent, demandez à Claude de continuer le travail précédent :893Pour reprendre un sous-agent, demandez à Claude de continuer le travail précédent :

866 894 


886 Auto-compaction914 Auto-compaction

887</h4>915</h4>

888 916 

889Les sous-agents prennent en charge la compaction automatique en utilisant la même logique que la conversation principale. Par défaut, la compaction automatique se déclenche à environ 95 % de capacité. Pour déclencher la compaction plus tôt, définissez `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` sur un pourcentage inférieur (par exemple, `50`). Consultez [variables d'environnement](/fr/env-vars) pour plus de détails.917Les sous-agents prennent en charge la compaction automatique en utilisant la même logique que la conversation principale. La compaction se déclenche dans les mêmes conditions, et `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` s'applique également aux sous-agents. Consultez [variables d'environnement](/fr/env-vars) pour savoir quand le remplacement prend effet.

890 918 

891Les événements de compaction sont enregistrés dans les fichiers de transcription de sous-agent :919Les événements de compaction sont enregistrés dans les fichiers de transcription de sous-agent :

892 920 


908</h2>936</h2>

909 937 

910<Note>938<Note>

911 Les sous-agents dupliqués nécessitent Claude Code v2.1.117 ou version ultérieure. {/* min-version: 2.1.161 */}À partir de v2.1.161, la commande `/fork` est activée par défaut ; sur les versions antérieures, elle nécessite de définir la variable d'environnement [`CLAUDE_CODE_FORK_SUBAGENT`](/fr/env-vars) sur `1`. Faire des forks le comportement de génération *par défaut* du modèle est expérimental et peut changer dans les versions futures ; activez-le en définissant la même variable. La variable est honorée en mode interactif et via le SDK ou `claude -p`.939 Les sous-agents dupliqués nécessitent Claude Code v2.1.117 ou version ultérieure. {/* min-version: 2.1.161 */}À partir de v2.1.161, la commande `/fork` est activée par défaut ; sur les versions antérieures, elle nécessite de définir la variable d'environnement [`CLAUDE_CODE_FORK_SUBAGENT`](/fr/env-vars) sur `1`. Laisser Claude lui-même générer des forks est expérimental et peut changer dans les versions futures. Cette capacité peut également être activée dans les sessions interactives dans le cadre d'un déploiement progressif.

912</Note>940</Note>

913 941 

914Un fork est un sous-agent qui hérite de l'intégralité de la conversation jusqu'à présent au lieu de commencer à zéro. Cela supprime l'isolation d'entrée que les sous-agents fournissent autrement : un fork voit la même invite système, les mêmes outils, le même modèle et l'historique des messages que la session principale, vous pouvez donc lui confier une tâche secondaire sans réexpliquer la situation. Les appels d'outils du fork restent en dehors de votre conversation et seul son résultat final revient, donc votre fenêtre de contexte principal reste propre. Utilisez un fork lorsqu'un sous-agent nommé aurait besoin de trop de contexte pour être utile, ou lorsque vous souhaitez essayer plusieurs approches en parallèle à partir du même point de départ.942Un fork est un sous-agent qui hérite de l'intégralité de la conversation jusqu'à présent au lieu de commencer à zéro. Cela supprime l'isolation d'entrée que les sous-agents fournissent autrement : un fork voit la même invite système, les mêmes outils, le même modèle et l'historique des messages que la session principale, vous pouvez donc lui confier une tâche secondaire sans réexpliquer la situation. Les appels d'outils du fork restent en dehors de votre conversation et seul son résultat final revient, donc votre fenêtre de contexte principal reste propre. Utilisez un fork lorsqu'un sous-agent nommé aurait besoin de trop de contexte pour être utile, ou lorsque vous souhaitez essayer plusieurs approches en parallèle à partir du même point de départ.

915 943 

916La définition de `CLAUDE_CODE_FORK_SUBAGENT` change Claude Code de deux façons :944Pour contrôler le mode fork indépendamment du déploiement progressif, définissez [`CLAUDE_CODE_FORK_SUBAGENT`](/fr/env-vars) sur `1` pour l'activer explicitement ou sur `0` pour le désactiver. La variable est honorée en mode interactif et via le SDK ou `claude -p`.

945 

946L'activation du mode fork change Claude Code de deux façons :

917 947 

918* Claude génère un fork chaque fois qu'il utiliserait autrement le sous-agent [general-purpose](#built-in-subagents). Les sous-agents nommés tels que Explore se génèrent comme avant.948* Claude peut générer un fork en demandant explicitement le type de sous-agent `fork`. Les générations sans type de sous-agent utilisent toujours le sous-agent [general-purpose](#built-in-subagents), et les sous-agents nommés tels que Explore se génèrent comme avant.

919* Chaque génération de sous-agent s'exécute en [arrière-plan](#run-subagents-in-foreground-or-background), qu'il s'agisse d'un fork ou d'un sous-agent nommé. Définissez `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` sur `1` pour garder les générations synchrones.949* Chaque génération de sous-agent s'exécute en [arrière-plan](#run-subagents-in-foreground-or-background), qu'il s'agisse d'un fork ou d'un sous-agent nommé. Définissez `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` sur `1` pour garder les générations synchrones.

920 950 

921Vous pouvez démarrer un fork vous-même avec `/fork` suivi d'une directive, avec ou sans la variable définie. Claude Code nomme le fork à partir des premiers mots de la directive. L'exemple suivant duplique la conversation pour rédiger des cas de test pendant que vous continuez avec l'implémentation dans la session principale :951Vous pouvez démarrer un fork vous-même avec `/fork` suivi d'une directive, avec ou sans la variable définie. Claude Code nomme le fork à partir des premiers mots de la directive. L'exemple suivant duplique la conversation pour rédiger des cas de test pendant que vous continuez avec l'implémentation dans la session principale :


953| Permissions | Les invites s'affichent dans votre terminal | [Auto-refusées](#run-subagents-in-foreground-or-background) lors de l'exécution en arrière-plan |983| Permissions | Les invites s'affichent dans votre terminal | [Auto-refusées](#run-subagents-in-foreground-or-background) lors de l'exécution en arrière-plan |

954| Cache d'invite | Partagé avec la session principale | Cache séparé |984| Cache d'invite | Partagé avec la session principale | Cache séparé |

955 985 

956Parce que l'invite système d'un fork et les définitions d'outils sont identiques au parent, sa première demande réutilise le cache d'invite du parent. Cela rend le forking moins cher que la génération d'un sous-agent frais pour les tâches qui ont besoin du même contexte.986Parce que l'invite système d'un fork et les définitions d'outils sont identiques au parent, sa première demande réutilise le [cache d'invite](/fr/prompt-caching#subagents-and-the-cache) du parent. Cela rend le forking moins cher que la génération d'un sous-agent frais pour les tâches qui ont besoin du même contexte.

957 987 

958Lorsque Claude génère un fork via l'outil Agent, il peut passer `isolation: "worktree"` pour que les modifications de fichiers du fork soient écrites dans un git worktree séparé au lieu de votre extraction.988Lorsque Claude génère un fork via l'outil Agent, il peut passer `isolation: "worktree"` pour que les modifications de fichiers du fork soient écrites dans un git worktree séparé au lieu de votre extraction.

959 989 


961 Limitations991 Limitations

962</h3>992</h3>

963 993 

964Le paramètre `CLAUDE_CODE_FORK_SUBAGENT=1` active le mode fork dans les sessions interactives, le [mode non-interactif](/fr/headless), et le SDK Agent. Un fork ne peut pas générer d'autres forks.994Le paramètre `CLAUDE_CODE_FORK_SUBAGENT=1` active le mode fork dans les sessions interactives, le [mode non-interactif](/fr/headless), et le SDK Agent ; le paramètre `0` désactive le mode fork partout, y compris tout déploiement côté serveur. Un fork ne peut pas générer d'autres forks.

965 995 

966<h2 id="example-subagents">996<h2 id="example-subagents">

967 Exemples de sous-agents997 Exemples de sous-agents

Details

6 6 

7> Découvrez comment Claude Code peut s'intégrer à divers services tiers et infrastructures pour répondre aux exigences de déploiement en entreprise.7> Découvrez comment Claude Code peut s'intégrer à divers services tiers et infrastructures pour répondre aux exigences de déploiement en entreprise.

8 8 

9export const ContactSalesCard = ({surface}) => {

10 const utm = content => `utm_source=claude_code&utm_medium=docs&utm_content=${surface}_${content}`;

11 const iconArrowRight = (size = 13) => <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">

12 <line x1="5" y1="12" x2="19" y2="12" />

13 <polyline points="12 5 19 12 12 19" />

14 </svg>;

15 const STYLES = `

16.cc-cs {

17 --cs-slate: #141413;

18 --cs-clay: #d97757;

19 --cs-clay-deep: #c6613f;

20 --cs-gray-000: #ffffff;

21 --cs-gray-700: #3d3d3a;

22 --cs-border-default: rgba(31, 30, 29, 0.15);

23 font-family: inherit;

24}

25.dark .cc-cs {

26 --cs-slate: #f0eee6;

27 --cs-gray-000: #262624;

28 --cs-gray-700: #bfbdb4;

29 --cs-border-default: rgba(240, 238, 230, 0.14);

30}

31.cc-cs-card {

32 display: flex; align-items: center; justify-content: space-between;

33 gap: 16px; padding: 14px 16px; margin: 0;

34 background: var(--cs-gray-000); border: 0.5px solid var(--cs-border-default);

35 border-radius: 8px; flex-wrap: wrap;

36}

37.cc-cs-text { font-size: 13px; color: var(--cs-gray-700); line-height: 1.5; flex: 1; min-width: 240px; }

38.cc-cs-text strong { font-weight: 550; color: var(--cs-slate); }

39.cc-cs-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }

40.cc-cs-btn-clay {

41 display: inline-flex; align-items: center; gap: 8px;

42 background: var(--cs-clay-deep); color: #fff; border: none;

43 border-radius: 8px; padding: 8px 14px;

44 font-size: 13px; font-weight: 500;

45 transition: background-color 0.15s; white-space: nowrap;

46}

47.cc-cs-btn-clay:hover { background: var(--cs-clay); }

48.cc-cs-btn-ghost {

49 display: inline-flex; align-items: center; gap: 8px;

50 background: transparent; color: var(--cs-gray-700);

51 border: 0.5px solid var(--cs-border-default);

52 border-radius: 8px; padding: 8px 14px;

53 font-size: 13px; font-weight: 500;

54}

55.cc-cs-btn-ghost:hover { background: rgba(0, 0, 0, 0.04); }

56.dark .cc-cs-btn-ghost:hover { background: rgba(255, 255, 255, 0.04); }

57@media (max-width: 720px) {

58 .cc-cs-actions { width: 100%; }

59}

60`;

61 return <div className="cc-cs not-prose">

62 <style>{STYLES}</style>

63 <div className="cc-cs-card">

64 <div className="cc-cs-text">

65 <strong>Deploying Claude Code across your organization?</strong> Talk to sales about enterprise plans, SSO, and centralized billing.

66 </div>

67 <div className="cc-cs-actions">

68 <a href={`https://claude.com/pricing?${utm('view_plans')}#plans-business`} className="cc-cs-btn-ghost">

69 View plans

70 </a>

71 <a href={`https://claude.com/contact-sales?${utm('contact_sales')}`} className="cc-cs-btn-clay">

72 Contact sales {iconArrowRight()}

73 </a>

74 </div>

75 </div>

76 </div>;

77};

78 

9Les organisations peuvent déployer Claude Code directement via Anthropic ou via un fournisseur de cloud. Cette page vous aide à choisir la bonne configuration.79Les organisations peuvent déployer Claude Code directement via Anthropic ou via un fournisseur de cloud. Cette page vous aide à choisir la bonne configuration.

10 80 

81<ContactSalesCard surface="third_party_overview" />

82 

11<h2 id="compare-deployment-options">83<h2 id="compare-deployment-options">

12 Comparer les options de déploiement84 Comparer les options de déploiement

13</h2>85</h2>


271 Épingler les versions de modèle pour les fournisseurs de cloud343 Épingler les versions de modèle pour les fournisseurs de cloud

272</h3>344</h3>

273 345 

274Si vous déployez via [Bedrock](/fr/amazon-bedrock), [Vertex AI](/fr/google-vertex-ai), [Foundry](/fr/microsoft-foundry) ou [Claude Platform on AWS](/fr/claude-platform-on-aws), épinglez les versions de modèle spécifiques en utilisant `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` et `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Sans épinglage, les alias de modèle se résolvent à la dernière version, ce qui peut ne pas encore être activé dans votre compte lorsqu'Anthropic publie une mise à jour. L'épinglage vous permet de contrôler quand vos utilisateurs passent à un nouveau modèle. Voir [Configuration du modèle](/fr/model-config#pin-models-for-third-party-deployments) pour ce que chaque fournisseur fait lorsque la dernière version n'est pas disponible.346Si vous déployez via [Bedrock](/fr/amazon-bedrock), [Vertex AI](/fr/google-vertex-ai), [Foundry](/fr/microsoft-foundry) ou [Claude Platform on AWS](/fr/claude-platform-on-aws), épinglez les versions de modèle spécifiques en utilisant `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` et `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Sans épinglage, les alias de modèle se résolvent à la valeur par défaut intégrée de Claude Code pour ce fournisseur, ce qui peut être en retard par rapport à la version la plus récente et peut ne pas encore être activé dans votre compte. L'épinglage vous permet de contrôler quand vos utilisateurs passent à un nouveau modèle. Voir [Configuration du modèle](/fr/model-config#pin-models-for-third-party-deployments) pour ce que chaque fournisseur fait lorsque la valeur par défaut n'est pas disponible.

275 347 

276<h3 id="configure-security-policies">348<h3 id="configure-security-policies">

277 Configurer les politiques de sécurité349 Configurer les politiques de sécurité

Details

44| `TaskOutput` | (Obsolète) Récupère la sortie d'une tâche en arrière-plan. Préférez `Read` sur le chemin du fichier de sortie de la tâche | Non |44| `TaskOutput` | (Obsolète) Récupère la sortie d'une tâche en arrière-plan. Préférez `Read` sur le chemin du fichier de sortie de la tâche | Non |

45| `TaskStop` | Arrête une tâche en arrière-plan en cours d'exécution par ID | Non |45| `TaskStop` | Arrête une tâche en arrière-plan en cours d'exécution par ID | Non |

46| `TaskUpdate` | Met à jour le statut de la tâche, les dépendances, les détails, ou supprime les tâches | Non |46| `TaskUpdate` | Met à jour le statut de la tâche, les dépendances, les détails, ou supprime les tâches | Non |

47| `TeamCreate` | Crée une [équipe d'agents](/fr/agent-teams) avec plusieurs coéquipiers. Disponible uniquement quand `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` est défini | Non |

48| `TeamDelete` | Dissout une équipe d'agents et nettoie les processus des coéquipiers. Disponible uniquement quand `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` est défini | Non |

49| `TodoWrite` | {/* min-version: 2.1.142 */}Gère la liste de contrôle des tâches de la session. Désactivé par défaut à partir de v2.1.142 en faveur de `TaskCreate`, `TaskGet`, `TaskList`, et `TaskUpdate`. Définissez `CLAUDE_CODE_ENABLE_TASKS=0` pour réactiver | Non |47| `TodoWrite` | {/* min-version: 2.1.142 */}Gère la liste de contrôle des tâches de la session. Désactivé par défaut à partir de v2.1.142 en faveur de `TaskCreate`, `TaskGet`, `TaskList`, et `TaskUpdate`. Définissez `CLAUDE_CODE_ENABLE_TASKS=0` pour réactiver | Non |

50| `ToolSearch` | Recherche et charge les outils différés quand la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) est activée | Non |48| `ToolSearch` | Recherche et charge les outils différés quand la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) est activée | Non |

51| `WaitForMcpServers` | {/* min-version: 2.1.142 */}Attend un ou plusieurs [serveurs MCP](/fr/mcp) qui se connectent toujours en arrière-plan, afin qu'une demande puisse utiliser leurs outils sans redémarrer la session. Claude l'appelle quand un serveur nécessaire n'est pas encore connecté. N'apparaît que quand la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) est désactivée, puisque `ToolSearch` gère l'attente quand elle est activée | Non |49| `WaitForMcpServers` | {/* min-version: 2.1.142 */}Attend un ou plusieurs [serveurs MCP](/fr/mcp) qui se connectent toujours en arrière-plan, afin qu'une demande puisse utiliser leurs outils sans redémarrer la session. Claude l'appelle quand un serveur nécessaire n'est pas encore connecté. N'apparaît que quand la [recherche d'outils](/fr/mcp#scale-with-mcp-tool-search) est désactivée, puisque `ToolSearch` gère l'attente quand elle est activée | Non |


70Tous ces éléments acceptent le même format de règle, `ToolName(specifier)`. Le spécificateur dépend de l'outil, et plusieurs outils partagent un format :68Tous ces éléments acceptent le même format de règle, `ToolName(specifier)`. Le spécificateur dépend de l'outil, et plusieurs outils partagent un format :

71 69 

72| Format de règle | S'applique à | Détails |70| Format de règle | S'applique à | Détails |

73| :----------------------------- | :------------------------ | :-------------------------------------------------------------------------- |71| :----------------------------- | :------------------------ | :---------------------------------------------------------------------------------- |

74| `Bash(npm run *)` | Bash, Monitor | [Correspondance de motif de commande](/fr/permissions#bash) |72| `Bash(npm run *)` | Bash, Monitor | [Correspondance de motif de commande](/fr/permissions#bash) |

75| `PowerShell(Get-ChildItem *)` | PowerShell | [Correspondance de motif de commande](/fr/permissions#powershell) |73| `PowerShell(Get-ChildItem *)` | PowerShell | [Correspondance de motif de commande](/fr/permissions#powershell) |

76| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Correspondance de motif de chemin](/fr/permissions#read-and-edit) |74| `Read(~/secrets/**)` | Read, Grep, Glob, LSP | [Correspondance de motif de chemin](/fr/permissions#read-and-edit) |

77| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Correspondance de motif de chemin](/fr/permissions#read-and-edit) |75| `Edit(/src/**)` | Edit, Write, NotebookEdit | [Correspondance de motif de chemin](/fr/permissions#read-and-edit) |

78| `Skill(deploy *)` | Skill | [Correspondance de nom de skill](/fr/skills#restrict-claude's-skill-access) |76| `Skill(deploy *)` | Skill | [Correspondance de nom de skill](/fr/skills#restrict-claude%E2%80%99s-skill-access) |

79| `Agent(Explore)` | Agent | [Correspondance de type de subagent](/fr/permissions#agent-subagents) |77| `Agent(Explore)` | Agent | [Correspondance de type de subagent](/fr/permissions#agent-subagents) |

80| `WebFetch(domain:example.com)` | WebFetch | [Correspondance de domaine](/fr/permissions#webfetch) |78| `WebFetch(domain:example.com)` | WebFetch | [Correspondance de domaine](/fr/permissions#webfetch) |

81| `WebSearch` | WebSearch | Pas de spécificateur ; autoriser ou refuser l'outil dans son ensemble |79| `WebSearch` | WebSearch | Pas de spécificateur ; autoriser ou refuser l'outil dans son ensemble |


186* Accéder à la définition d'un symbole184* Accéder à la définition d'un symbole

187* Trouver toutes les références à un symbole185* Trouver toutes les références à un symbole

188* Obtenir les informations de type à une position186* Obtenir les informations de type à une position

189* Lister les symboles dans un fichier ou un espace de travail187* Lister les symboles dans un fichier

188* Rechercher un symbole par nom dans l'espace de travail

190* Trouver les implémentations d'une interface189* Trouver les implémentations d'une interface

191* Tracer les hiérarchies d'appels190* Tracer les hiérarchies d'appels

192 191 


305* Les réponses sont mises en cache pendant 15 minutes, donc les récupérations répétées de la même URL retournent rapidement.304* Les réponses sont mises en cache pendant 15 minutes, donc les récupérations répétées de la même URL retournent rapidement.

306* Quand une URL redirige vers un hôte différent, WebFetch retourne un résultat textuel qui nomme l'URL d'origine et la cible de redirection au lieu de la suivre. Claude récupère ensuite la nouvelle URL avec un deuxième appel WebFetch.305* Quand une URL redirige vers un hôte différent, WebFetch retourne un résultat textuel qui nomme l'URL d'origine et la cible de redirection au lieu de la suivre. Claude récupère ensuite la nouvelle URL avec un deuxième appel WebFetch.

307 306 

308Dans les modes de permission par défaut et `acceptEdits`, WebFetch demande la première fois qu'il atteint un nouveau domaine. Pour autoriser un domaine à l'avance sans demande, ajoutez une règle de permission comme `WebFetch(domain:example.com)`. Les modes de permission `auto` et `bypassPermissions` [permission modes](/fr/permissions#permission-modes) ignorent complètement la demande.307Dans les modes de permission par défaut et `acceptEdits`, WebFetch demande la première fois qu'il atteint un nouveau domaine, sauf pour un ensemble intégré de domaines de documentation préapprouvés qui récupèrent sans demande. Pour autoriser un autre domaine à l'avance sans demande, ajoutez une règle de permission comme `WebFetch(domain:example.com)`. Les modes de permission `auto` et `bypassPermissions` [permission modes](/fr/permissions#permission-modes) ignorent complètement la demande.

308 

309Une règle explicite `WebFetch(domain:...)` en mode `deny`, `ask` ou `allow` prend la priorité sur l'ensemble préapprouvé, donc vous pouvez bloquer un domaine préapprouvé ou exiger une demande pour celui-ci.

309 310 

310WebFetch définit un en-tête `User-Agent` commençant par `Claude-User`, et un en-tête `Accept` qui préfère Markdown à HTML afin que les serveurs qui supportent la négociation de contenu puissent retourner Markdown directement. Les [règles de réseau Sandbox](/fr/sandboxing) sont configurées séparément, donc un domaine que vous voulez qu'un processus sandboxé atteigne a toujours besoin d'une règle de permission sandbox explicite.311WebFetch définit un en-tête `User-Agent` commençant par `Claude-User`, et un en-tête `Accept` qui préfère Markdown à HTML afin que les serveurs qui supportent la négociation de contenu puissent retourner Markdown directement. Les [règles de réseau Sandbox](/fr/sandboxing) sont configurées séparément, donc un domaine que vous voulez qu'un processus sandboxé atteigne a toujours besoin d'une règle de permission sandbox explicite.

311 312 


313 Comportement de l'outil WebSearch314 Comportement de l'outil WebSearch

314</h2>315</h2>

315 316 

316WebSearch exécute une requête contre le backend de [recherche web](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) d'Anthropic et retourne les titres et URLs des résultats. Il ne récupère pas les pages de résultats. Pour lire une page que Claude trouve dans les résultats de recherche, il suit avec [WebFetch](#webfetch-tool-behavior).317WebSearch exécute une requête contre le backend de [recherche web](https://platform.claude.com/docs/fr/agents-and-tools/tool-use/web-search-tool) d'Anthropic et retourne les titres et URLs des résultats. Il ne récupère pas les pages de résultats. Pour lire une page que Claude trouve dans les résultats de recherche, il suit avec [WebFetch](#webfetch-tool-behavior).

317 318 

318L'outil peut émettre jusqu'à huit recherches backend par appel, affinage de la recherche en interne avant de retourner les résultats. Claude peut limiter les résultats avec `allowed_domains` pour inclure uniquement certains hôtes, ou `blocked_domains` pour les exclure. Les deux listes ne peuvent pas être combinées dans un seul appel.319L'outil peut émettre jusqu'à huit recherches backend par appel, affinage de la recherche en interne avant de retourner les résultats. Claude peut limiter les résultats avec `allowed_domains` pour inclure uniquement certains hôtes, ou `blocked_domains` pour les exclure. Les deux listes ne peuvent pas être combinées dans un seul appel.

319 320 


349 350 

350Claude donne un résumé conversationnel. Pour les noms d'outils MCP exacts, exécutez `/mcp`.351Claude donne un résumé conversationnel. Pour les noms d'outils MCP exacts, exécutez `/mcp`.

351 352 

353<Note>

354 L'[outil advisor](/fr/advisor) est un [outil serveur](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool) que l'API exécute, plutôt qu'un outil que Claude Code implémente. Il n'a pas de nom que vous pouvez référencer dans les règles de permission ou les correspondances de hook.

355</Note>

356 

352<h2 id="see-also">357<h2 id="see-also">

353 Voir aussi358 Voir aussi

354</h2>359</h2>

Details

24| `TLS connect error` ou `SSL/TLS secure channel` | [Mettez à jour les certificats CA](#tls-or-ssl-connection-errors) |24| `TLS connect error` ou `SSL/TLS secure channel` | [Mettez à jour les certificats CA](#tls-or-ssl-connection-errors) |

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

26| `irm is not recognized` ou `&& is not valid` | [Utilisez la bonne commande pour votre shell](#wrong-install-command-on-windows) |26| `irm is not recognized` ou `&& is not valid` | [Utilisez la bonne commande pour votre shell](#wrong-install-command-on-windows) |

27| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Mettez à jour Homebrew](#homebrew-cask-unavailable-or-outdated) |

27| `'bash' is not recognized as the name of a cmdlet` | [Utilisez la commande du programme d'installation Windows](#wrong-install-command-on-windows) |28| `'bash' is not recognized as the name of a cmdlet` | [Utilisez la commande du programme d'installation Windows](#wrong-install-command-on-windows) |

28| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Installez un shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |29| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Installez un shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |

29| `Claude Code does not support 32-bit Windows` | [Ouvrez Windows PowerShell, pas l'entrée x86](#claude-code-does-not-support-32-bit-windows) |30| `Claude Code does not support 32-bit Windows` | [Ouvrez Windows PowerShell, pas l'entrée x86](#claude-code-does-not-support-32-bit-windows) |


61curl -sI https://downloads.claude.ai/claude-code-releases/latest62curl -sI https://downloads.claude.ai/claude-code-releases/latest

62```63```

63 64 

65Dans PowerShell, exécutez `curl.exe -sI` à la place. PowerShell crée un alias `curl` vers `Invoke-WebRequest`, qui rejette les drapeaux `-sI`.

66 

64Une ligne `HTTP/2 200` signifie que vous avez atteint le serveur. Si 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 :67Une ligne `HTTP/2 200` signifie que vous avez atteint le serveur. Si 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 :

65 68 

66* Les pare-feu d'entreprise ou les proxies bloquant `downloads.claude.ai`69* Les pare-feu d'entreprise ou les proxies bloquant `downloads.claude.ai`


95 98 

96Si l'installation a réussi mais que vous obtenez une erreur `command not found` ou `not recognized` lors de l'exécution de `claude`, le répertoire d'installation n'est pas dans votre PATH. Votre shell recherche les programmes dans les répertoires listés dans PATH, et le programme d'installation place `claude` à `~/.local/bin/claude` sur macOS/Linux ou `%USERPROFILE%\.local\bin\claude.exe` sur Windows.99Si l'installation a réussi mais que vous obtenez une erreur `command not found` ou `not recognized` lors de l'exécution de `claude`, le répertoire d'installation n'est pas dans votre PATH. Votre shell recherche les programmes dans les répertoires listés dans PATH, et le programme d'installation place `claude` à `~/.local/bin/claude` sur macOS/Linux ou `%USERPROFILE%\.local\bin\claude.exe` sur Windows.

97 100 

101<Note>

102 L'[extension VS Code](/fr/vs-code) ne place pas `claude` à cet emplacement. Elle regroupe une copie privée de la CLI à l'intérieur du répertoire d'extension pour son propre panneau de chat et ne l'ajoute pas à PATH. Si vous avez uniquement installé l'extension, `~/.local/bin/claude` n'existera pas. Exécutez l'[installation autonome](/fr/setup) pour utiliser `claude` à partir d'un terminal, puis continuez ci-dessous.

103</Note>

104 

98Vérifiez si le répertoire d'installation est dans votre PATH en listant vos entrées PATH et en filtrant pour `local/bin` :105Vérifiez si le répertoire d'installation est dans votre PATH en listant vos entrées PATH et en filtrant pour `local/bin` :

99 106 

100<Tabs>107<Tabs>


188 ls -la ~/.local/bin/claude195 ls -la ~/.local/bin/claude

189 ```196 ```

190 197 

198 Si l'une ou l'autre commande `ls` affiche `No such file or directory`, ce n'est pas une erreur. Cela signifie que rien n'est installé à cet emplacement, alors passez à la vérification suivante.

199 

191 ```bash theme={null}200 ```bash theme={null}

192 ls -la ~/.claude/local/201 ls -la ~/.claude/local/

193 ```202 ```


390 winget install Anthropic.ClaudeCode399 winget install Anthropic.ClaudeCode

391 ```400 ```

392 401 

402<h3 id="homebrew-cask-unavailable-or-outdated">

403 Cask Homebrew indisponible ou obsolète

404</h3>

405 

406Homebrew signale `Error: Cask 'claude-code' is unavailable: No Cask with this name exists` lorsque votre copie locale de l'index cask Homebrew est antérieure à la publication du cask. Actualisez l'index et réessayez :

407 

408```bash theme={null}

409brew update

410brew install --cask claude-code

411```

412 

413Si Homebrew installe une version de Claude Code plus ancienne que celle que vous attendez, le même index obsolète en est généralement la cause. Le cask `claude-code` suit le canal stable et est généralement environ une semaine en retard sur la dernière version ; pour la version la plus récente, exécutez `brew install --cask claude-code@latest` à la place. Consultez [Configurer le canal de version](/fr/setup#configure-release-channel) pour la différence entre les deux casks.

414 

393<h3 id="tls-or-ssl-connection-errors">415<h3 id="tls-or-ssl-connection-errors">

394 Erreurs de connexion TLS ou SSL416 Erreurs de connexion TLS ou SSL

395</h3>417</h3>


578 600 

579**Si PowerShell manque de votre PATH**, son emplacement par défaut est `C:\Windows\System32\WindowsPowerShell\v1.0\`. Ajoutez ce répertoire à votre `PATH`, ou installez [PowerShell 7](https://aka.ms/powershell), qui fournit `pwsh`.601**Si PowerShell manque de votre PATH**, son emplacement par défaut est `C:\Windows\System32\WindowsPowerShell\v1.0\`. Ajoutez ce répertoire à votre `PATH`, ou installez [PowerShell 7](https://aka.ms/powershell), qui fournit `pwsh`.

580 602 

581**Pour installer Git pour Windows à la place**, téléchargez-le depuis [git-scm.com/downloads/win](https://git-scm.com/downloads/win). Pendant la configuration, sélectionnez « Add to PATH ». Redémarrez votre terminal après l'installation. L'installer l'active l'outil Bash, utile lorsque vous travaillez avec des scripts et des outils basés sur Bash.603**Pour installer Git pour Windows à la place**, téléchargez-le depuis [git-scm.com/downloads/win](https://git-scm.com/downloads/win). Pendant la configuration, sélectionnez « Add to PATH ». Redémarrez votre terminal après l'installation. L'installation active l'outil Bash, utile lorsque vous travaillez avec des scripts et des outils basés sur Bash.

582 604 

583**Si Git est déjà installé** mais que Claude Code ne peut pas le trouver, définissez le chemin dans votre [fichier settings.json](/fr/settings) :605**Si Git est déjà installé** mais que Claude Code ne peut pas le trouver, définissez le chemin dans votre [fichier settings.json](/fr/settings) :

584 606 


592 614 

593Si votre Git est installé ailleurs, trouvez le chemin en exécutant `where.exe git` dans PowerShell et utilisez le chemin `bin\bash.exe` de ce répertoire.615Si votre Git est installé ailleurs, trouvez le chemin en exécutant `where.exe git` dans PowerShell et utilisez le chemin `bin\bash.exe` de ce répertoire.

594 616 

617**Si le chemin est correct et le fichier existe** mais que Claude Code signale toujours qu'il n'est pas trouvé, un logiciel de sécurité des points de terminaison tel que AppLocker, les stratégies de restriction logicielle de la stratégie de groupe ou les agents EDR peuvent interférer. Sur les versions antérieures à v2.1.116, Claude Code générait un processus enfant (`cmd.exe`) pour vérifier le chemin, que ces stratégies peuvent bloquer — un signal courant est que `cmd.exe /c dir "C:\Program Files\Git\bin\bash.exe"` fonctionne lorsque vous l'exécutez directement dans PowerShell mais échoue silencieusement lorsqu'il est lancé par `claude.exe`.

618 

619Claude Code v2.1.116 et versions ultérieures vérifient le système de fichiers directement, donc mettez à jour d'abord. Si l'erreur persiste sur une version actuelle, demandez à votre équipe informatique de mettre en liste blanche `claude.exe` et les processus qu'il génère, y compris `cmd.exe` et `bash.exe`, dans votre stratégie de protection des points de terminaison.

620 

595<h3 id="claude-code-does-not-support-32-bit-windows">621<h3 id="claude-code-does-not-support-32-bit-windows">

596 Claude Code ne supporte pas Windows 32 bits622 Claude Code ne supporte pas Windows 32 bits

597</h3>623</h3>

Details

14| Boucles de connexion, erreurs OAuth, `403 Forbidden`, « organisation désactivée », identifiants Bedrock/Vertex/Foundry | [Dépanner l'installation et la connexion](/fr/troubleshoot-install#login-and-authentication) |14| Boucles de connexion, erreurs OAuth, `403 Forbidden`, « organisation désactivée », identifiants Bedrock/Vertex/Foundry | [Dépanner l'installation et la connexion](/fr/troubleshoot-install#login-and-authentication) |

15| Les paramètres ne s'appliquent pas, les hooks ne se déclenchent pas, les serveurs MCP ne se chargent pas | [Déboguer votre configuration](/fr/debug-your-config) |15| Les paramètres ne s'appliquent pas, les hooks ne se déclenchent pas, les serveurs MCP ne se chargent pas | [Déboguer votre configuration](/fr/debug-your-config) |

16| `API Error: 5xx`, `529 Overloaded`, `429`, erreurs de validation de requête | [Référence des erreurs](/fr/errors) |16| `API Error: 5xx`, `529 Overloaded`, `429`, erreurs de validation de requête | [Référence des erreurs](/fr/errors) |

17| `model not found` ou `you may not have access to it` | [Référence des erreurs](/fr/errors#theres-an-issue-with-the-selected-model) |17| `model not found` ou `you may not have access to it` | [Référence des erreurs](/fr/errors#there%E2%80%99s-an-issue-with-the-selected-model) |

18| L'extension VS Code ne se connecte pas ou ne détecte pas Claude | [Intégration VS Code](/fr/vs-code#fix-common-issues) |18| L'extension VS Code ne se connecte pas ou ne détecte pas Claude | [Intégration VS Code](/fr/vs-code#fix-common-issues) |

19| Le plugin JetBrains ou l'IDE n'est pas détecté | [Intégration JetBrains](/fr/jetbrains#troubleshooting) |19| Le plugin JetBrains ou l'IDE n'est pas détecté | [Intégration JetBrains](/fr/jetbrains#troubleshooting) |

20| Utilisation élevée du CPU ou de la mémoire, réponses lentes, blocages, la recherche ne trouve pas les fichiers | [Performance et stabilité](#performance-and-stability) ci-dessous |20| Utilisation élevée du CPU ou de la mémoire, réponses lentes, blocages, la recherche ne trouve pas les fichiers | [Performance et stabilité](#performance-and-stability) ci-dessous |


361. Utilisez `/compact` régulièrement pour réduire la taille du contexte361. Utilisez `/compact` régulièrement pour réduire la taille du contexte

372. Fermez et redémarrez Claude Code entre les tâches majeures372. Fermez et redémarrez Claude Code entre les tâches majeures

383. Envisagez d'ajouter les grands répertoires de construction à votre fichier `.gitignore`383. Envisagez d'ajouter les grands répertoires de construction à votre fichier `.gitignore`

394. Redémarrez avec [`claude --safe-mode`](/fr/cli-reference#cli-flags) pour vérifier si un plugin, un serveur MCP ou un hook est la source. Cela désactive toutes les personnalisations pour la session ; si l'utilisation diminue, consultez [Déboguer votre configuration](/fr/debug-your-config#test-against-a-clean-configuration) pour trouver lequel

39 40 

40Si l'utilisation de la mémoire reste élevée après ces étapes, exécutez `/heapdump` pour écrire un snapshot de tas JavaScript et une ventilation de la mémoire sur `~/Desktop`. Sur Linux sans dossier Desktop, les fichiers sont écrits dans votre répertoire personnel.41Si l'utilisation de la mémoire reste élevée après ces étapes, exécutez `/heapdump` pour écrire un snapshot de tas JavaScript et une ventilation de la mémoire sur `~/Desktop`. Sur Linux sans dossier Desktop, les fichiers sont écrits dans votre répertoire personnel.

41 42 


65 66 

66Le redémarrage ne perd pas votre conversation. Exécutez `claude --resume` dans le même répertoire pour reprendre la session.67Le redémarrage ne perd pas votre conversation. Exécutez `claude --resume` dans le même répertoire pour reprendre la session.

67 68 

68<h3 id="garbled-or-corrupted-text-in-an-editor-s-integrated-terminal">69<h3 id="garbled-or-corrupted-text-in-an-editors-integrated-terminal">

69 Texte garbled ou corrompu dans le terminal intégré d'un éditeur70 Texte garbled ou corrompu dans le terminal intégré d'un éditeur

70</h3>71</h3>

71 72 

vs-code.md +34 −8

Details

19Avant d'installer, assurez-vous que vous avez :19Avant d'installer, assurez-vous que vous avez :

20 20 

21* VS Code 1.98.0 ou supérieur21* VS Code 1.98.0 ou supérieur

22* Un compte Anthropic (vous vous connecterez lors de la première ouverture de l'extension). Si vous utilisez un fournisseur tiers comme Amazon Bedrock ou Google Vertex AI, consultez plutôt [Utiliser des fournisseurs tiers](#use-third-party-providers).22* Un compte Anthropic : tout abonnement Claude payant (Pro, Max, Team ou Enterprise) ou un compte Claude Console fonctionne, et aucune clé API n'est requise. Vous vous [connecterez](/fr/authentication#log-in-to-claude-code) avec ce compte lors de la première ouverture de l'extension. Si vous accédez à Claude par l'intermédiaire d'un fournisseur tiers comme Amazon Bedrock ou Google Vertex AI, consultez [Utiliser des fournisseurs tiers](#use-third-party-providers) pour les instructions de configuration.

23 23 

24<Tip>24<Tip>

25 L'extension inclut le CLI (interface de ligne de commande), auquel vous pouvez accéder à partir du terminal intégré de VS Code pour les fonctionnalités avancées. Consultez [Extension VS Code vs. CLI Claude Code](#vs-code-extension-vs-claude-code-cli) pour plus de détails.25 L'extension inclut sa propre copie du CLI (interface de ligne de commande) pour le panneau de chat. Pour exécuter `claude` dans le terminal intégré de VS Code, vous avez également besoin de l'[installation CLI autonome](/fr/setup). Consultez [Extension VS Code vs. CLI Claude Code](#vs-code-extension-vs-claude-code-cli) pour plus de détails.

26</Tip>26</Tip>

27 27 

28<h2 id="install-the-extension">28<h2 id="install-the-extension">


36 36 

37Ou dans VS Code, appuyez sur `Cmd+Shift+X` (Mac) ou `Ctrl+Shift+X` (Windows/Linux) pour ouvrir la vue Extensions, recherchez « Claude Code » et cliquez sur **Installer**.37Ou dans VS Code, appuyez sur `Cmd+Shift+X` (Mac) ou `Ctrl+Shift+X` (Windows/Linux) pour ouvrir la vue Extensions, recherchez « Claude Code » et cliquez sur **Installer**.

38 38 

39L'extension s'installe également dans d'autres forks de VS Code comme Devin Desktop ou Kiro. Recherchez « Claude Code » dans la vue Extensions de l'éditeur, ou installez à partir du [registre Open VSX](https://open-vsx.org/extension/Anthropic/claude-code). Si votre éditeur ne peut pas installer l'extension, exécutez `claude` dans son terminal intégré à la place. L'[interface CLI](/fr/quickstart) fonctionne dans n'importe quel terminal.39L'extension s'installe également dans d'autres forks de VS Code comme Devin Desktop ou Kiro. Recherchez « Claude Code » dans la vue Extensions de l'éditeur, ou installez à partir du [registre Open VSX](https://open-vsx.org/extension/Anthropic/claude-code). Si votre éditeur ne peut pas installer l'extension, [installez l'interface CLI](/fr/quickstart) et exécutez `claude` dans son terminal intégré à la place. L'interface CLI fonctionne dans n'importe quel terminal.

40 40 

41<Note>Si l'extension n'apparaît pas après l'installation, redémarrez VS Code ou exécutez « Developer: Reload Window » à partir de la Palette de commandes.</Note>41<Note>Si l'extension n'apparaît pas après l'installation, redémarrez VS Code ou exécutez « Developer: Reload Window » à partir de la Palette de commandes.</Note>

42 42 


131 131 

132Cliquez sur le bouton **Historique des sessions** en haut du panneau Claude Code pour accéder à votre historique de conversations. Vous pouvez rechercher par mot-clé ou parcourir par heure (Aujourd'hui, Hier, 7 derniers jours, etc.). Cliquez sur n'importe quelle conversation pour la reprendre avec l'historique complet des messages. Les nouvelles sessions reçoivent des titres générés par l'IA en fonction de votre premier message. Survolez une session pour révéler les actions de renommage et de suppression : renommez pour lui donner un titre descriptif, ou supprimez pour la supprimer de la liste. Pour plus d'informations sur la reprise des sessions, consultez [Gérer les sessions](/fr/sessions).132Cliquez sur le bouton **Historique des sessions** en haut du panneau Claude Code pour accéder à votre historique de conversations. Vous pouvez rechercher par mot-clé ou parcourir par heure (Aujourd'hui, Hier, 7 derniers jours, etc.). Cliquez sur n'importe quelle conversation pour la reprendre avec l'historique complet des messages. Les nouvelles sessions reçoivent des titres générés par l'IA en fonction de votre premier message. Survolez une session pour révéler les actions de renommage et de suppression : renommez pour lui donner un titre descriptif, ou supprimez pour la supprimer de la liste. Pour plus d'informations sur la reprise des sessions, consultez [Gérer les sessions](/fr/sessions).

133 133 

134<h3 id="resume-remote-sessions-from-claude-ai">134<h3 id="resume-cloud-sessions-from-claude-ai">

135 Reprendre les sessions distantes de Claude.ai135 Reprendre les sessions distantes de Claude.ai

136</h3>136</h3>

137 137 


155 Seules les sessions web démarrées avec un référentiel GitHub apparaissent dans l'onglet Distant. La reprise charge l'historique de la conversation localement ; les modifications ne sont pas resynchronisées vers claude.ai.155 Seules les sessions web démarrées avec un référentiel GitHub apparaissent dans l'onglet Distant. La reprise charge l'historique de la conversation localement ; les modifications ne sont pas resynchronisées vers claude.ai.

156</Note>156</Note>

157 157 

158<h3 id="check-account-and-usage">

159 Vérifier le compte et l'utilisation

160</h3>

161 

162Exécutez `/usage` à partir du menu de commandes pour ouvrir le dialogue Compte et utilisation. Il affiche votre compte connecté, votre plan et les barres d'utilisation pour la session actuelle et la semaine avec le temps restant avant que chaque limite ne soit réinitialisée.

163 

164Le dialogue détaille également ce qui contribue à vos limites de plan. Il signale les comportements qui représentent 10 % ou plus de l'utilisation récente, tels que les défauts de cache, le contexte long et les sessions lourdes en sous-agents ou hautement parallèles, chacun avec un conseil pour le réduire. Les tableaux d'attribution montrent la quantité d'utilisation provenant de chaque skill, sous-agent, plugin et serveur MCP. Nécessite Claude Code v2.1.174 ou version ultérieure.

165 

166Utilisez le bouton bascule Jour et Semaine pour basculer entre les 24 dernières heures et les 7 derniers jours. Les chiffres sont approximatifs et calculés à partir des sessions locales sur cette machine, donc l'utilisation d'autres appareils ou de claude.ai n'est pas incluse. Pour plus d'informations sur le suivi et la réduction de l'utilisation, consultez [Suivre vos coûts](/fr/costs#track-your-costs).

167 

158<h2 id="customize-your-workflow">168<h2 id="customize-your-workflow">

159 Personnaliser votre flux de travail169 Personnaliser votre flux de travail

160</h2>170</h2>


366 Extension VS Code vs. CLI Claude Code376 Extension VS Code vs. CLI Claude Code

367</h2>377</h2>

368 378 

369Claude Code est disponible à la fois en tant qu'extension VS Code (panneau graphique) et en tant que CLI (interface de ligne de commande dans le terminal). Certaines fonctionnalités ne sont disponibles que dans le CLI. Si vous avez besoin d'une fonctionnalité CLI uniquement, exécutez `claude` dans le terminal intégré de VS Code.379Claude Code est disponible à la fois en tant qu'extension VS Code (panneau graphique) et en tant que CLI (interface de ligne de commande dans le terminal). Certaines fonctionnalités ne sont disponibles que dans le CLI. Si vous avez besoin d'une fonctionnalité CLI uniquement, exécutez `claude` dans le terminal intégré de VS Code. Cela nécessite l'[installation CLI autonome](/fr/setup) : l'extension n'ajoute pas `claude` à votre PATH. Voir [Exécuter le CLI dans VS Code](#run-cli-in-vs-code).

370 380 

371| Fonctionnalité | CLI | Extension VS Code |381| Fonctionnalité | CLI | Extension VS Code |

372| ---------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------- |382| ---------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------- |


394 404 

395Pour utiliser le CLI tout en restant dans VS Code, ouvrez le terminal intégré (`` Ctrl+` `` sur Windows/Linux ou `` Cmd+` `` sur Mac) et exécutez `claude`. Le CLI s'intègre automatiquement à votre IDE pour des fonctionnalités comme l'affichage des diffs et le partage des diagnostics.405Pour utiliser le CLI tout en restant dans VS Code, ouvrez le terminal intégré (`` Ctrl+` `` sur Windows/Linux ou `` Cmd+` `` sur Mac) et exécutez `claude`. Le CLI s'intègre automatiquement à votre IDE pour des fonctionnalités comme l'affichage des diffs et le partage des diagnostics.

396 406 

407L'installation de l'extension ne place pas `claude` sur votre PATH shell. L'extension regroupe une copie privée du CLI pour son panneau de chat, mais taper `claude` dans un terminal nécessite l'[installation CLI autonome](/fr/setup). Exécutez l'installation une fois et les commandes de cette page, y compris `claude mcp add` et `claude --resume`, fonctionnent dans n'importe quel terminal. Si `claude` n'est toujours pas trouvé après l'installation, [vérifiez votre PATH](/fr/troubleshoot-install#verify-your-path).

408 

397Si vous utilisez un terminal externe, exécutez `/ide` dans Claude Code pour le connecter à VS Code.409Si vous utilisez un terminal externe, exécutez `/ide` dans Claude Code pour le connecter à VS Code.

398 410 

399<h3 id="switch-between-extension-and-cli">411<h3 id="switch-between-extension-and-cli">


530 Corriger les problèmes courants542 Corriger les problèmes courants

531</h2>543</h2>

532 544 

533<h3 id="extension-won-t-install">545<h3 id="extension-wont-install">

534 L'extension ne s'installe pas546 L'extension ne s'installe pas

535</h3>547</h3>

536 548 


5862. Recherchez « Claude Code »5982. Recherchez « Claude Code »

5873. Cliquez sur **Désinstaller**5993. Cliquez sur **Désinstaller**

588 600 

589Pour également supprimer les données d'extension et réinitialiser tous les paramètres :601Pour également supprimer les données d'extension et réinitialiser tous les paramètres, supprimez le répertoire de stockage de l'extension pour votre plateforme.

602 

603Sur macOS :

590 604 

591```bash theme={null}605```bash theme={null}

592rm -rf ~/.vscode/globalStorage/anthropic.claude-code606rm -rf ~/Library/"Application Support"/Code/User/globalStorage/anthropic.claude-code

607```

608 

609Sur Linux :

610 

611```bash theme={null}

612rm -rf ~/.config/Code/User/globalStorage/anthropic.claude-code

613```

614 

615Sur Windows, dans PowerShell :

616 

617```powershell theme={null}

618Remove-Item -Recurse -Force "$env:APPDATA\Code\User\globalStorage\anthropic.claude-code"

593```619```

594 620 

595Pour une aide supplémentaire, consultez le [guide de dépannage](/fr/troubleshooting).621Pour une aide supplémentaire, consultez le [guide de dépannage](/fr/troubleshooting).

Details

49| **Utilise votre configuration locale** | Non, référentiel uniquement | Oui | Oui | Oui pour local, non pour cloud |49| **Utilise votre configuration locale** | Non, référentiel uniquement | Oui | Oui | Oui pour local, non pour cloud |

50| **Nécessite GitHub** | Oui, ou [regroupez un référentiel local](/fr/claude-code-on-the-web#send-local-repositories-without-github) via `--remote` | Non | Non | Uniquement pour les sessions cloud |50| **Nécessite GitHub** | Oui, ou [regroupez un référentiel local](/fr/claude-code-on-the-web#send-local-repositories-without-github) via `--remote` | Non | Non | Uniquement pour les sessions cloud |

51| **Continue de s'exécuter si vous vous déconnectez** | Oui | Tant que le terminal reste ouvert | Non | Dépend du type de session |51| **Continue de s'exécuter si vous vous déconnectez** | Oui | Tant que le terminal reste ouvert | Non | Dépend du type de session |

52| **[Modes de permission](/fr/permission-modes)** | Accepter automatiquement les modifications, Plan | Demander, Accepter automatiquement les modifications, Plan | Tous les modes | Dépend du type de session |52| **[Modes de permission](/fr/permission-modes)** | Accepter les modifications, Plan, Auto | Demander, Accepter automatiquement les modifications, Plan | Tous les modes | Dépend du type de session |

53| **Accès réseau** | Configurable par environnement | Réseau de votre machine | Réseau de votre machine | Dépend du type de session |53| **Accès réseau** | Configurable par environnement | Réseau de votre machine | Réseau de votre machine | Dépend du type de session |

54 54 

55Consultez la [documentation du démarrage rapide du terminal](/fr/quickstart), [Application Desktop](/fr/desktop) ou [Remote Control](/fr/remote-control) pour les configurer.55Consultez la [documentation du démarrage rapide du terminal](/fr/quickstart), [Application Desktop](/fr/desktop) ou [Remote Control](/fr/remote-control) pour les configurer.


129 </Step>129 </Step>

130 130 

131 <Step title="Choisissez un mode de permission">131 <Step title="Choisissez un mode de permission">

132 Le menu déroulant du mode à côté de l'entrée par défaut est **Accepter automatiquement les modifications**, où Claude effectue des modifications et pousse une branche sans s'arrêter pour approbation. Basculez vers **Plan mode** si vous voulez que Claude propose une approche et attende votre feu vert avant de modifier les fichiers. Les sessions cloud n'offrent pas les permissions Ask, Auto mode ou Bypass permissions. Consultez [Modes de permission](/fr/permission-modes) pour la liste complète.132 Le menu déroulant du mode à côté de l'entrée par défaut est **Accepter automatiquement les modifications**, où Claude effectue des modifications et pousse une branche sans s'arrêter pour approbation. Basculez vers **Plan Mode** si vous voulez que Claude propose une approche et attende votre feu vert avant de modifier les fichiers. Les sessions cloud n'offrent pas les permissions Ask ou Bypass permissions. Consultez [Modes de permission](/fr/permission-modes) pour la liste complète.

133 </Step>133 </Step>

134 134 

135 <Step title="Décrivez la tâche et soumettez">135 <Step title="Décrivez la tâche et soumettez">

whats-new.md +16 −0

Details

8 8 

9Le digest hebdomadaire pour développeurs met en évidence les fonctionnalités les plus susceptibles de changer votre façon de travailler. Chaque entrée inclut du code exécutable, une courte démo et un lien vers la documentation complète. Pour chaque correction de bug et amélioration mineure, consultez le [changelog](/fr/changelog).9Le digest hebdomadaire pour développeurs met en évidence les fonctionnalités les plus susceptibles de changer votre façon de travailler. Chaque entrée inclut du code exécutable, une courte démo et un lien vers la documentation complète. Pour chaque correction de bug et amélioration mineure, consultez le [changelog](/fr/changelog).

10 10 

11<Update label="Week 24" description="8–12 juin 2026" tags={["v2.1.166–v2.1.176"]}>

12 **`/cd`** : déplacez la session actuelle vers un nouveau répertoire de travail en milieu de conversation sans reconstruire le cache de prompt.

13 

14 Également cette semaine : **les sous-agents peuvent générer leurs propres sous-agents** (les chaînes d'arrière-plan sont limitées à cinq niveaux de profondeur) ; **`--safe-mode`** démarre Claude Code avec toutes les personnalisations désactivées pour le dépannage ; et **`fallbackModel`** configure jusqu'à trois modèles de secours essayés dans l'ordre.

15 

16 [Lire le digest de la Week 24 →](/fr/whats-new/2026-w24)

17</Update>

18 

19<Update label="Week 23" description="1er–5 juin 2026" tags={["v2.1.158–v2.1.165"]}>

20 **Auto mode sur Bedrock, Vertex et Foundry** : auto mode est maintenant disponible sur les fournisseurs tiers pour Opus 4.7 et Opus 4.8, remplaçant les invites de permission par des vérifications de sécurité en arrière-plan.

21 

22 Également cette semaine : **les modifications automatiques plus sûres** demandent une confirmation avant d'écrire des fichiers qui peuvent exécuter du code en mode `acceptEdits` ; **`/plugin list`** affiche vos plugins installés en ligne ; et les **exigences de version** permettent aux déploiements gérés d'exiger une plage de version Claude Code approuvée.

23 

24 [Lire le digest de la Week 23 →](/fr/whats-new/2026-w23)

25</Update>

26 

11<Update label="Week 22" description="25–29 mai 2026" tags={["v2.1.150–v2.1.157"]}>27<Update label="Week 22" description="25–29 mai 2026" tags={["v2.1.150–v2.1.157"]}>

12 **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.28 **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.

13 29 

whats-new/2026-w23.md +100 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Semaine 23 · 1er–5 juin 2026

6 

7> Exécutez le mode auto sur Bedrock, Vertex et Foundry, demandez une confirmation avant d'écrire des fichiers pouvant exécuter du code en mode acceptEdits, listez les plugins installés avec /plugin list, et exigez une plage de version approuvée pour les déploiements gérés.

8 

9<div className="digest-meta">

10 <span>Versions <a href="/fr/changelog#2-1-158">v2.1.158 → v2.1.165</a></span>

11 <span>4 fonctionnalités · 1er–5 juin</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Mode auto sur Bedrock, Vertex et Foundry</span>

17 <span className="digest-feature-pill">v2.1.158</span>

18 </div>

19 

20 <p className="digest-feature-lede">Le mode auto est désormais disponible sur Bedrock, Vertex et Foundry pour Opus 4.7 et Opus 4.8, remplaçant les invites de permission par des vérifications de sécurité en arrière-plan sur les fournisseurs tiers. Activez-le en définissant <code>CLAUDE\_CODE\_ENABLE\_AUTO\_MODE=1</code>.</p>

21 

22 <p className="digest-feature-try">Activez-le sur un fournisseur tiers, puis basculez vers le mode auto avec Maj+Tab :</p>

23 

24 ```bash terminal theme={null}

25 export CLAUDE_CODE_ENABLE_AUTO_MODE=1

26 ```

27 

28 <a className="digest-feature-link" href="/fr/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry">Activez le mode auto sur les fournisseurs tiers</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">Modifications automatiques plus sûres</span>

34 <span className="digest-feature-pill">v2.1.160</span>

35 </div>

36 

37 <p className="digest-feature-lede">Claude Code demande désormais une confirmation avant d'écrire des fichiers pouvant exécuter du code, même en mode <code>acceptEdits</code>. L'ensemble protégé couvre les fichiers de démarrage du shell tels que <code>.zshenv</code> et <code>.bash\_login</code>, la configuration git sous <code>\~/.config/git/</code>, et les configurations d'outils de compilation telles que <code>.npmrc</code>, <code>.bazelrc</code> et <code>.pre-commit-config.yaml</code>. Ces écritures ne sont jamais approuvées automatiquement dans aucun mode sauf <code>bypassPermissions</code>.</p>

38 

39 <p className="digest-feature-try">Travaillez en mode acceptEdits ; Claude fait maintenant une pause avant d'écrire ces fichiers :</p>

40 

41 ```bash terminal theme={null}

42 claude --permission-mode acceptEdits

43 ```

44 

45 <a className="digest-feature-link" href="/fr/permission-modes#protected-paths">Chemins protégés</a>

46</div>

47 

48<div className="digest-feature">

49 <div className="digest-feature-header">

50 <span className="digest-feature-title">Listez les plugins installés avec /plugin list</span>

51 <span className="digest-feature-pill">v2.1.163</span>

52 </div>

53 

54 <p className="digest-feature-lede">La nouvelle commande <code>/plugin list</code> affiche vos plugins installés en ligne, sans ouvrir le menu <code>/plugin</code>, et est également disponible sous la forme <code>claude plugin list</code> depuis le shell. Dans la forme interactive, ajoutez `--enabled` ou `--disabled` pour afficher uniquement les plugins dans cet état.</p>

55 

56 <p className="digest-feature-try">Listez les plugins actuellement activés :</p>

57 

58 ```text Claude Code theme={null}

59 > /plugin list --enabled

60 ```

61 

62 <a className="digest-feature-link" href="/fr/plugins-reference#plugin-list">Commandes de plugins</a>

63</div>

64 

65<div className="digest-feature">

66 <div className="digest-feature-header">

67 <span className="digest-feature-title">Exigences de version pour les déploiements gérés</span>

68 <span className="digest-feature-pill">v2.1.163</span>

69 </div>

70 

71 <p className="digest-feature-lede">Deux paramètres gérés, <code>requiredMinimumVersion</code> et <code>requiredMaximumVersion</code>, permettent à votre organisation d'exiger une plage de version Claude Code approuvée. Un client en dehors de la plage se ferme au démarrage et indique à l'utilisateur de mettre à jour via la méthode de l'organisation. <code>claude update</code>, <code>claude install</code> et <code>claude doctor</code> continuent de fonctionner pour que les utilisateurs puissent toujours se rétablir.</p>

72 

73 <p className="digest-feature-try">Ajoutez un plancher à vos paramètres gérés pour que les anciens clients refusent de démarrer :</p>

74 

75 ```json managed-settings.json theme={null}

76 "requiredMinimumVersion": "2.1.163"

77 ```

78 

79 <a className="digest-feature-link" href="/fr/admin-setup#decide-what-to-enforce">Décidez ce qu'il faut appliquer</a>

80</div>

81 

82<div className="digest-wins">

83 <p className="digest-wins-title">Autres améliorations</p>

84 

85 <div className="digest-wins-grid">

86 <div>Le mot-clé déclencheur pour les <a href="/fr/workflows">workflows dynamiques</a> est passé de <code>workflow</code> à <code>ultracode</code> ; demander un workflow avec vos propres mots fonctionne toujours, et le mot-clé est mis en évidence en violet dans l'invite</div>

87 <div>Les hooks <a href="/fr/hooks">Stop et SubagentStop</a> peuvent retourner <code>hookSpecificOutput.additionalContext</code> pour donner un retour à Claude et continuer le tour au lieu d'être traité comme une erreur</div>

88 <div><code>claude mcp</code> list, get et add n'impriment plus les secrets : les références de variables d'environnement ne sont pas développées, et les en-têtes d'authentification et les secrets d'URL sont masqués</div>

89 <div>Une commande Bash échouée dans un lot d'outils parallèles n'annule plus les autres ; chaque outil retourne son propre résultat indépendamment</div>

90 <div>L'édition d'un fichier n'a plus besoin d'une lecture séparée en premier lorsque vous l'avez visualisé avec un seul fichier <code>grep</code>, <code>egrep</code> ou <code>fgrep</code></div>

91 <div>Cliquer sur une commande dans le menu d'autocomplétion la remplit maintenant dans votre invite au lieu de l'exécuter immédiatement ; appuyez sur Entrée pour l'exécuter</div>

92 <div>Lister <code>Grep</code> ou <code>Glob</code> dans `--tools` fournit maintenant les outils de recherche dédiés sur les builds natifs avec recherche intégrée, au lieu d'ignorer silencieusement ces noms</div>

93 <div><code>/effort</code> confirme maintenant quand votre niveau choisi persistera comme valeur par défaut pour les nouvelles sessions</div>

94 <div>Les valeurs <code>OTEL\_RESOURCE\_ATTRIBUTES</code> sont maintenant attachées en tant qu'étiquettes sur les points de données de métriques, afin que vous puissiez découper les métriques d'utilisation par dimensions personnalisées comme l'équipe ou le référentiel</div>

95 <div>Windsurf est renommé en Devin Desktop dans <code>/ide</code>, <code>/terminal-setup</code> et <code>/scroll-speed</code>, suivant la réorganisation de marque de l'éditeur</div>

96 <div><code>/btw</code> gagne un raccourci <code>c to copy</code> qui copie la réponse markdown brute dans le presse-papiers</div>

97 </div>

98</div>

99 

100[Journal des modifications complet pour v2.1.158–v2.1.165 →](/fr/changelog#2-1-158)

whats-new/2026-w24.md +84 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Semaine 24 · 8–12 juin 2026

6 

7> Déplacez une session vers un nouveau répertoire avec /cd, laissez les sous-agents créer leurs propres sous-agents, et dépannez une configuration cassée avec le mode sécurisé.

8 

9<div className="digest-meta">

10 <span>Versions <a href="/fr/changelog#2-1-166">v2.1.166 → v2.1.176</a></span>

11 <span>3 fonctionnalités · 8–12 juin</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Déplacer une session avec /cd</span>

17 <span className="digest-feature-pill">v2.1.169</span>

18 </div>

19 

20 <p className="digest-feature-lede">La nouvelle commande <code>/cd</code> déplace la session actuelle vers un répertoire de travail différent sans reconstruire le cache de prompt : le fichier <code>CLAUDE.md</code> du nouveau répertoire est ajouté en tant que message au lieu de remplacer le prompt système. La session se relocalise dans le stockage de projet du nouveau répertoire, donc `--resume` et `--continue` la trouvent là. Claude vous demande de faire confiance au répertoire si vous n'y avez pas travaillé auparavant.</p>

21 

22 <p className="digest-feature-try">Déplacez la session vers un autre projet sans redémarrer :</p>

23 

24 ```text Claude Code theme={null}

25 > /cd ../other-project

26 ```

27 

28 <a className="digest-feature-link" href="/fr/commands#all-commands">Référence des commandes</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">Les sous-agents peuvent créer des sous-agents</span>

34 <span className="digest-feature-pill">v2.1.172</span>

35 </div>

36 

37 <p className="digest-feature-lede">Les sous-agents peuvent maintenant créer leurs propres sous-agents. Le panneau des sous-agents en dessous du prompt affiche l'arborescence complète : chaque ligne porte un compte de ses descendants et un chemin de retour vers <code>main</code>. Les sous-agents en arrière-plan sont limités à cinq niveaux de profondeur pour éviter les arbres concurrents incontrôlés ; les chaînes au premier plan peuvent créer à n'importe quelle profondeur et s'auto-limitent.</p>

38 

39 <p className="digest-feature-try">Ouvrez la vue des agents pour regarder l'arborescence imbriquée se déployer :</p>

40 

41 ```text Claude Code theme={null}

42 > /agents

43 ```

44 

45 <a className="digest-feature-link" href="/fr/sub-agents#spawn-nested-subagents">Créer des sous-agents imbriqués</a>

46</div>

47 

48<div className="digest-feature">

49 <div className="digest-feature-header">

50 <span className="digest-feature-title">Dépanner avec le mode sécurisé</span>

51 <span className="digest-feature-pill">v2.1.169</span>

52 </div>

53 

54 <p className="digest-feature-lede">Lancez Claude Code avec `--safe-mode`, ou définissez <code>CLAUDE\_CODE\_SAFE\_MODE</code>, pour démarrer avec toutes les personnalisations désactivées : <code>CLAUDE.md</code>, les skills, les plugins, les hooks, les serveurs MCP, et les commandes et agents personnalisés ne se chargent pas. L'authentification, la sélection du modèle, les outils intégrés et les permissions fonctionnent toujours. Si un problème disparaît en mode sécurisé, l'une de ces surfaces en est la cause.</p>

55 

56 <p className="digest-feature-try">Lancez une session propre pour isoler une configuration cassée :</p>

57 

58 ```bash terminal theme={null}

59 claude --safe-mode

60 ```

61 

62 <a className="digest-feature-link" href="/fr/debug-your-config#test-against-a-clean-configuration">Tester par rapport à une configuration propre</a>

63</div>

64 

65<div className="digest-wins">

66 <p className="digest-wins-title">Autres améliorations</p>

67 

68 <div className="digest-wins-grid">

69 <div><a href="/fr/model-config#fallback-model-chains"><code>fallbackModel</code></a> configure jusqu'à trois modèles de secours essayés dans l'ordre lorsque le modèle principal est surchargé ou indisponible, et `--fallback-model` s'applique maintenant aussi aux sessions interactives</div>

70 <div>Les titres de session sont maintenant générés dans la langue de votre conversation ; épinglez un titre spécifique avec le paramètre <code>language</code></div>

71 <div>`claude agents --json` ajoute `--all` pour inclure les sessions terminées plus les nouveaux champs <code>id</code> et <code>state</code>, et n'omet plus les sessions bloquées ou nouvellement distribuées</div>

72 <div>La navigation dans les plugins d'une marketplace dans <code>/plugin</code> dispose maintenant d'une barre de recherche</div>

73 <div>Nouveau paramètre <code>disableBundledSkills</code> et <code>CLAUDE\_CODE\_DISABLE\_BUNDLED\_SKILLS</code> masquent les skills groupés, les workflows et les commandes intégrées du modèle</div>

74 <div>Les règles de refus acceptent un glob dans la position du nom d'outil, donc <code>"\*"</code> refuse tous les outils, et les noms d'outils inconnus dans les règles de refus avertissent maintenant au démarrage</div>

75 <div>La messagerie inter-sessions est renforcée : les messages relayés via <code>SendMessage</code> à partir d'autres sessions ne portent plus l'autorité de l'utilisateur, et le mode auto les bloque</div>

76 <div>Amazon Bedrock lit la région AWS à partir des fichiers de configuration `~/.aws` lorsque <code>AWS\_REGION</code> n'est pas défini, et `/status` affiche d'où provient la région</div>

77 <div>Nouveau paramètre géré <code>enforceAvailableModels</code> qui fait que la liste d'autorisation <code>availableModels</code> contraint également le modèle par défaut</div>

78 <div>Claude dans les outils du navigateur Chrome se charge maintenant en un seul appel par lot au lieu d'un par outil</div>

79 <div><code>claude update</code> annonce la version cible avant de télécharger au lieu de rester silencieux</div>

80 <div>Nouveau paramètre <code>footerLinksRegexes</code> ajoute des badges de lien correspondant à des expressions régulières à la ligne de pied de page</div>

81 </div>

82</div>

83 

84[Journal des modifications complet pour v2.1.166–v2.1.176 →](/fr/changelog#2-1-166)

workflows.md +3 −1

Details

9{/* plan-availability: feature=workflows plans=pro,max,team,enterprise providers=all */}9{/* plan-availability: feature=workflows plans=pro,max,team,enterprise providers=all */}

10 10 

11<Note>11<Note>

12 Les workflows dynamiques sont en aperçu de recherche. Ils nécessitent Claude Code v2.1.154 ou version ultérieure et sont disponibles sur tous les plans payants, avec accès à l'API Anthropic, et sur Amazon Bedrock, Google Cloud Vertex AI et Microsoft Foundry. Sur Pro, activez-les à partir de la ligne Dynamic workflows dans `/config`.12 Les workflows dynamiques nécessitent Claude Code v2.1.154 ou version ultérieure et sont disponibles sur tous les plans payants, avec accès à l'API Anthropic, et sur Amazon Bedrock, Google Cloud Vertex AI et Microsoft Foundry. Sur Pro, activez-les à partir de la ligne Dynamic workflows dans `/config`.

13</Note>13</Note>

14 14 

15Un workflow dynamique est un script JavaScript qui orchestre des [sous-agents](/fr/sub-agents) à grande échelle. Claude écrit le script pour la tâche que vous décrivez, et un runtime l'exécute en arrière-plan tandis que votre session reste réactive.15Un workflow dynamique est un script JavaScript qui orchestre des [sous-agents](/fr/sub-agents) à grande échelle. Claude écrit le script pour la tâche que vous décrivez, et un runtime l'exécute en arrière-plan tandis que votre session reste réactive.


198 198 

199Appuyez sur Entrée pour enregistrer. Le workflow s'exécute comme `/<name>` dans les futures sessions à partir de l'un ou l'autre emplacement.199Appuyez sur Entrée pour enregistrer. Le workflow s'exécute comme `/<name>` dans les futures sessions à partir de l'un ou l'autre emplacement.

200 200 

201{/* min-version: 2.1.178 */}À partir de la v2.1.178, l'enregistrement à l'emplacement du projet écrit dans le répertoire `.claude/workflows/` le plus proche qui existe déjà entre votre répertoire de travail et la racine du référentiel, ou à la racine du référentiel s'il n'en existe pas encore. Les workflows de projet se chargent également à partir de chaque `.claude/workflows/` le long de ce chemin, et quand plus d'un définit le même nom, Claude Code exécute celui le plus proche du répertoire de travail.

202 

201Si un workflow de projet et un workflow personnel partagent un nom, celui du projet s'exécute.203Si un workflow de projet et un workflow personnel partagent un nom, celui du projet s'exécute.

202 204 

203<h3 id="pass-input-to-a-saved-workflow">205<h3 id="pass-input-to-a-saved-workflow">

worktrees.md +3 −1

Details

36 36 

37Vous pouvez également demander à Claude de « travailler dans un worktree » pendant une session, et il en créera un avec l'outil [`EnterWorktree`](/fr/tools-reference). Une fois dans un worktree, Claude peut basculer directement vers un autre sous `.claude/worktrees/` en appelant `EnterWorktree` avec le chemin cible. Le worktree précédent reste sur le disque intact.37Vous pouvez également demander à Claude de « travailler dans un worktree » pendant une session, et il en créera un avec l'outil [`EnterWorktree`](/fr/tools-reference). Une fois dans un worktree, Claude peut basculer directement vers un autre sous `.claude/worktrees/` en appelant `EnterWorktree` avec le chemin cible. Le worktree précédent reste sur le disque intact.

38 38 

39Avant d'utiliser `--worktree` dans un répertoire pour la première fois, acceptez la boîte de dialogue de confiance de l'espace de travail en exécutant `claude` une fois dans ce répertoire. Si la confiance n'a pas encore été acceptée, `--worktree` se termine avec une erreur et vous invite à exécuter `claude` dans le répertoire en premier, y compris lorsqu'il est combiné avec `-p`.39Avant d'utiliser `--worktree` de manière interactive dans un répertoire pour la première fois, acceptez la boîte de dialogue de confiance de l'espace de travail en exécutant `claude` une fois dans ce répertoire. Si la confiance n'a pas encore été acceptée, `--worktree` se termine avec une erreur et vous invite à exécuter `claude` dans le répertoire en premier. Les exécutions non interactives avec `-p` ignorent la [vérification de confiance](/fr/security), donc `claude -p --worktree` procède sans elle.

40 40 

41<Tip>41<Tip>

42 Ajoutez `.claude/worktrees/` à votre `.gitignore` pour que le contenu des worktrees n'apparaisse pas comme des fichiers non suivis dans votre extraction principale.42 Ajoutez `.claude/worktrees/` à votre `.gitignore` pour que le contenu des worktrees n'apparaisse pas comme des fichiers non suivis dans votre extraction principale.


102 102 

103Les worktrees que Claude a créés pour les subagents et les [sessions en arrière-plan](/fr/agent-view#how-file-edits-are-isolated) sont supprimés automatiquement une fois qu'ils sont plus anciens que votre paramètre [`cleanupPeriodDays`](/fr/settings#available-settings), à condition qu'ils n'aient pas de modifications non validées, pas de fichiers non suivis et pas de commits non poussés. Les worktrees que vous créez avec `--worktree` ne sont jamais supprimés par ce balayage.103Les worktrees que Claude a créés pour les subagents et les [sessions en arrière-plan](/fr/agent-view#how-file-edits-are-isolated) sont supprimés automatiquement une fois qu'ils sont plus anciens que votre paramètre [`cleanupPeriodDays`](/fr/settings#available-settings), à condition qu'ils n'aient pas de modifications non validées, pas de fichiers non suivis et pas de commits non poussés. Les worktrees que vous créez avec `--worktree` ne sont jamais supprimés par ce balayage.

104 104 

105Pendant qu'un agent s'exécute, Claude exécute `git worktree lock` sur son worktree pour que le nettoyage concurrent ne puisse pas le supprimer. Le verrou est libéré quand l'agent se termine. Pour nettoyer un worktree que le balayage conserve, exécutez `git worktree remove`, en ajoutant `--force` si le worktree a des modifications non validées ou des fichiers non suivis.

106 

105<h2 id="manage-worktrees-manually">107<h2 id="manage-worktrees-manually">

106 Gérer les worktrees manuellement108 Gérer les worktrees manuellement

107</h2>109</h2>

Details

4 4 

5# Zéro conservation des données5# Zéro conservation des données

6 6 

7> Découvrez la conservation zéro des données (ZDR) pour Claude Code sur Claude for Enterprise, y compris la portée, les fonctionnalités désactivées et comment demander l'activation.7> Découvrez la conservation zéro des données (ZDR) pour Claude Code, disponible pour les comptes qualifiés sur Claude for Enterprise, y compris la portée, les fonctionnalités désactivées et comment demander l'activation.

8 8 

9La conservation zéro des données (ZDR) est disponible pour Claude Code lorsqu'il est utilisé via Claude for Enterprise. Lorsque ZDR est activée, les invites et les réponses du modèle générées lors des sessions Claude Code sont traitées en temps réel et ne sont pas conservées par Anthropic après le retour de la réponse, sauf si nécessaire pour se conformer à la loi ou combattre les abus.9La conservation zéro des données (ZDR) pour Claude Code est disponible pour les comptes qualifiés sur Claude for Enterprise. Lorsque ZDR est activée, les invites et les réponses du modèle générées lors des sessions Claude Code sont traitées en temps réel et ne sont pas conservées par Anthropic après le retour de la réponse, sauf si nécessaire pour se conformer à la loi ou combattre les abus.

10 

11<Note>

12 ZDR n'est pas inclus dans le plan standard Claude for Enterprise et ne peut pas être activé à partir de vos paramètres d'administration. Il est disponible pour les comptes qualifiés et nécessite une activation distincte par Anthropic. Si votre organisation nécessite ZDR, [contactez l'équipe commerciale](https://www.anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=zero_data_retention_request) ou votre équipe de compte Anthropic pour confirmer l'admissibilité.

13</Note>

10 14 

11ZDR sur Claude for Enterprise donne aux clients d'entreprise la possibilité d'utiliser Claude Code avec zéro conservation des données et d'accéder aux capacités administratives :15ZDR sur Claude for Enterprise donne aux clients d'entreprise la possibilité d'utiliser Claude Code avec zéro conservation des données et d'accéder aux capacités administratives :

12 16 


31 Ce que ZDR couvre35 Ce que ZDR couvre

32</h3>36</h3>

33 37 

34ZDR couvre les appels d'inférence du modèle effectués via Claude Code sur Claude for Enterprise. Lorsque vous utilisez Claude Code dans votre terminal, les invites que vous envoyez et les réponses que Claude génère ne sont pas conservées par Anthropic. Cela s'applique quel que soit le modèle Claude utilisé.38ZDR couvre les appels d'inférence du modèle effectués via Claude Code sur Claude for Enterprise. Lorsque vous utilisez Claude Code dans votre terminal, les invites que vous envoyez et les réponses que Claude génère ne sont pas conservées par Anthropic. Cela s'applique à chaque modèle disponible pour les organisations ZDR. Certains modèles nécessitent la conservation des données et ne sont pas disponibles sous ZDR ; voir [Disponibilité des modèles sous ZDR](#model-availability-under-zdr).

35 39 

36<h3 id="what-zdr-does-not-cover">40<h3 id="what-zdr-does-not-cover">

37 Ce que ZDR ne couvre pas41 Ce que ZDR ne couvre pas


54Lorsque ZDR est activée pour une organisation Claude Code sur Claude for Enterprise, certaines fonctionnalités qui nécessitent de stocker les invites ou les complétions sont automatiquement désactivées au niveau du backend :58Lorsque ZDR est activée pour une organisation Claude Code sur Claude for Enterprise, certaines fonctionnalités qui nécessitent de stocker les invites ou les complétions sont automatiquement désactivées au niveau du backend :

55 59 

56| Fonctionnalité | Raison |60| Fonctionnalité | Raison |

57| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |61| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |

58| [Claude Code sur le Web](/fr/claude-code-on-the-web) | Nécessite le stockage côté serveur de l'historique des conversations. |62| [Claude Code sur le Web](/fr/claude-code-on-the-web) | Nécessite le stockage côté serveur de l'historique des conversations. |

59| [Sessions distantes](/fr/desktop#remote-sessions) de l'application Desktop | Nécessite des données de session persistantes qui incluent les invites et les complétions. |63| [Sessions distantes](/fr/desktop#cloud-sessions) de l'application Desktop | Nécessite des données de session persistantes qui incluent les invites et les complétions. |

60| Soumission de commentaires (`/feedback`) | La soumission de commentaires envoie les données de conversation à Anthropic. |64| Soumission de commentaires (`/feedback`) | La soumission de commentaires envoie les données de conversation à Anthropic. |

61 65 

62Ces fonctionnalités sont bloquées au niveau du backend quel que soit l'affichage côté client. Si vous voyez une fonctionnalité désactivée dans le terminal Claude Code au démarrage, toute tentative d'utilisation retourne une erreur indiquant que les politiques de l'organisation ne permettent pas cette action.66Ces fonctionnalités sont bloquées au niveau du backend quel que soit l'affichage côté client. Si vous voyez une fonctionnalité désactivée dans le terminal Claude Code au démarrage, toute tentative d'utilisation retourne une erreur indiquant que les politiques de l'organisation ne permettent pas cette action.

63 67 

64Les futures fonctionnalités peuvent également être désactivées si elles nécessitent de stocker les invites ou les complétions.68Les futures fonctionnalités peuvent également être désactivées si elles nécessitent de stocker les invites ou les complétions.

65 69 

70<h3 id="model-availability-under-zdr">

71 Disponibilité des modèles sous ZDR

72</h3>

73 

74Claude Fable 5 n'est pas disponible pour les organisations avec la rétention zéro donnée activée. Cette classe de modèle [nécessite la rétention de données](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements), donc les demandes des organisations ZDR ne peuvent pas être traitées par celui-ci. Le modèle est soit absent du sélecteur `/model` pour les organisations ZDR, soit affiché comme désactivé avec un avis indiquant que la désactivation de ZDR est requise, et le serveur rejette les demandes pour celui-ci quel que soit la configuration du client.

75 

76Les autres modèles restent disponibles sous ZDR. Fable 5 n'est pas le modèle par défaut, et l'alias `best`, qui se résout en Fable 5 où il est disponible, se résout en Opus pour les organisations où il ne l'est pas, y compris les organisations ZDR.

77 

66<h2 id="data-retention-for-policy-violations">78<h2 id="data-retention-for-policy-violations">

67 Conservation des données pour les violations de politique79 Conservation des données pour les violations de politique

68</h2>80</h2>