SpyBara
Go Premium

Documentation 2026-05-11 23:00 UTC to 2026-05-12 22:57 UTC

32 files changed +957 −336. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

agent-sdk/hooks.md +10 −10

Details

24 </Step>24 </Step>

25 25 

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

27 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#setting-source) ou [`setting_sources`](/fr/agent-sdk/python#setting-source) correspondante est activée, ce qui est le cas pour les options `query()` par défaut.27 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.

28 </Step>28 </Step>

29 29 

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


225 225 

226Chaque rappel hook reçoit trois arguments :226Chaque rappel hook reçoit trois arguments :

227 227 

228* **Données d'entrée :** un objet typé contenant les détails de l'événement. Chaque type de hook a sa propre forme d'entrée (par exemple, `PreToolUseHookInput` inclut `tool_name` et `tool_input`, tandis que `NotificationHookInput` inclut `message`). Consultez les définitions de type complètes dans les références du SDK [TypeScript](/fr/agent-sdk/typescript#hook-input) et [Python](/fr/agent-sdk/python#hook-input).228* **Données d'entrée :** un objet typé contenant les détails de l'événement. Chaque type de hook a sa propre forme d'entrée (par exemple, `PreToolUseHookInput` inclut `tool_name` et `tool_input`, tandis que `NotificationHookInput` inclut `message`). Consultez les définitions de type complètes dans les références du SDK [TypeScript](/fr/agent-sdk/typescript#hookinput) et [Python](/fr/agent-sdk/python#hookinput).

229 * Toutes les entrées de hook partagent `session_id`, `cwd` et `hook_event_name`.229 * Toutes les entrées de hook partagent `session_id`, `cwd` et `hook_event_name`.

230 * `agent_id` et `agent_type` sont remplis lorsque le hook se déclenche à l'intérieur d'un sous-agent. En TypeScript, ceux-ci se trouvent sur l'entrée de hook de base et sont disponibles pour tous les types de hook. En Python, ils se trouvent uniquement sur `PreToolUse`, `PostToolUse` et `PostToolUseFailure`.230 * `agent_id` et `agent_type` sont remplis lorsque le hook se déclenche à l'intérieur d'un sous-agent. En TypeScript, ceux-ci se trouvent sur l'entrée de hook de base et sont disponibles pour tous les types de hook. En Python, ils se trouvent uniquement sur `PreToolUse`, `PostToolUse` et `PostToolUseFailure`.

231* **ID d'utilisation d'outil** (`str | None` / `string | undefined`) : met en corrélation les événements `PreToolUse` et `PostToolUse` pour le même appel d'outil.231* **ID d'utilisation d'outil** (`str | None` / `string | undefined`) : met en corrélation les événements `PreToolUse` et `PostToolUse` pour le même appel d'outil.


236Votre rappel retourne un objet avec deux catégories de champs :236Votre rappel retourne un objet avec deux catégories de champs :

237 237 

238* **Champs de niveau supérieur** contrôlent la conversation : `systemMessage` injecte un message dans la conversation visible au modèle, et `continue` (`continue_` en Python) détermine si l'agent continue à s'exécuter après ce hook.238* **Champs de niveau supérieur** contrôlent la conversation : `systemMessage` injecte un message dans la conversation visible au modèle, et `continue` (`continue_` en Python) détermine si l'agent continue à s'exécuter après ce hook.

239* **`hookSpecificOutput`** contrôle l'opération actuelle. Les champs à l'intérieur dépendent du type d'événement hook. Pour les hooks `PreToolUse`, c'est là que vous définissez `permissionDecision` (`"allow"`, `"deny"` ou `"ask"`), `permissionDecisionReason` et `updatedInput`. Dans le SDK TypeScript, `permissionDecision` accepte également `"defer"` pour terminer la requête et [reprendre plus tard](/fr/hooks#defer-a-tool-call-for-later) ; cette valeur n'est pas disponible dans le SDK Python. Pour les hooks `PostToolUse`, vous pouvez définir `additionalContext` pour ajouter des informations au résultat de l'outil, ou `updatedToolOutput` pour remplacer entièrement la sortie de l'outil avant que Claude ne la voie.239* **`hookSpecificOutput`** contrôle l'opération actuelle. Les champs à l'intérieur dépendent du type d'événement hook. Pour les hooks `PreToolUse`, c'est là que vous définissez `permissionDecision` (`"allow"`, `"deny"`, `"ask"` ou `"defer"`), `permissionDecisionReason` et `updatedInput`. Retourner `"defer"` termine la requête pour que vous puissiez [la reprendre plus tard](/fr/hooks#defer-a-tool-call-for-later). Pour les hooks `PostToolUse`, vous pouvez définir `additionalContext` pour ajouter des informations au résultat de l'outil, ou `updatedToolOutput` pour remplacer entièrement la sortie de l'outil avant que Claude ne la voie.

240 240 

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

242 242 

243<Note>243<Note>

244 Lorsque plusieurs hooks ou règles de permission s'appliquent, **deny** a priorité sur **defer**, qui a priorité sur **ask**, qui a priorité sur **allow**. Si un hook retourne `deny`, l'opération est bloquée indépendamment des autres hooks.244 Lorsque plusieurs hooks ou règles de permission s'appliquent, **deny** a priorité sur **defer**, qui a priorité sur **ask**, qui a priorité sur **allow**. Si un hook retourne `deny`, l'opération est bloquée indépendamment des autres hooks.


326</CodeGroup>326</CodeGroup>

327 327 

328<Note>328<Note>

329 Lors de l'utilisation de `updatedInput`, vous devez également inclure `permissionDecision: 'allow'`. Retournez toujours un nouvel objet plutôt que de muter le `tool_input` original.329 Lors de l'utilisation de `updatedInput`, vous devez également inclure `permissionDecision: 'allow'` pour approuver automatiquement l'entrée modifiée ou `permissionDecision: 'ask'` pour la montrer à l'utilisateur. Avec `'defer'`, `updatedInput` est ignoré. Retournez toujours un nouvel objet plutôt que de muter le `tool_input` original.

330</Note>330</Note>

331 331 

332### Ajouter du contexte et bloquer un outil332### Ajouter du contexte et bloquer un outil


489 489 

490### Suivre l'activité des sous-agents490### Suivre l'activité des sous-agents

491 491 

492Utilisez les hooks `SubagentStop` pour surveiller quand les sous-agents terminent leur travail. Consultez le type d'entrée complet dans les références du SDK [TypeScript](/fr/agent-sdk/typescript#hook-input) et [Python](/fr/agent-sdk/python#hook-input). Cet exemple enregistre un résumé chaque fois qu'un sous-agent se termine :492Utilisez les hooks `SubagentStop` pour surveiller quand les sous-agents terminent leur travail. Consultez le type d'entrée complet dans les références du SDK [TypeScript](/fr/agent-sdk/typescript#hookinput) et [Python](/fr/agent-sdk/python#hookinput). Cet exemple enregistre un résumé chaque fois qu'un sous-agent se termine :

493 493 

494<CodeGroup>494<CodeGroup>

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


621 621 

622### Transférer les notifications à Slack622### Transférer les notifications à Slack

623 623 

624Utilisez les hooks `Notification` pour recevoir les notifications système de l'agent et les transférer vers des services externes. Les notifications se déclenchent pour des types d'événements spécifiques : `permission_prompt` (Claude a besoin d'une permission), `idle_prompt` (Claude attend une entrée), `auth_success` (authentification terminée) et `elicitation_dialog` (Claude invite l'utilisateur). Chaque notification inclut un champ `message` avec une description lisible par l'homme et optionnellement un `title`.624Utilisez les hooks `Notification` pour recevoir les notifications système de l'agent et les transférer vers des services externes. Les notifications se déclenchent pour des types d'événements spécifiques : `permission_prompt` (Claude a besoin d'une permission), `idle_prompt` (Claude attend une entrée), `auth_success` (authentification terminée), `elicitation_dialog` (Claude invite l'utilisateur), `elicitation_response` (l'utilisateur a répondu à une élicitation), et `elicitation_complete` (une élicitation s'est fermée). Chaque notification inclut un champ `message` avec une description lisible par l'homme et optionnellement un `title`.

625 625 

626Cet exemple transfère chaque notification à un canal Slack. Il nécessite une [URL de webhook entrant Slack](https://api.slack.com/messaging/webhooks), que vous créez en ajoutant une application à votre espace de travail Slack et en activant les webhooks entrants :626Cet exemple transfère chaque notification à un canal Slack. Il nécessite une [URL de webhook entrant Slack](https://api.slack.com/messaging/webhooks), que vous créez en ajoutant une application à votre espace de travail Slack et en activant les webhooks entrants :

627 627 


727* Vérifiez que votre motif matcher correspond exactement au nom de l'outil727* Vérifiez que votre motif matcher correspond exactement au nom de l'outil

728* Assurez-vous que le hook se trouve sous le type d'événement correct dans `options.hooks`728* Assurez-vous que le hook se trouve sous le type d'événement correct dans `options.hooks`

729* Pour les hooks non basés sur les outils comme `Stop` et `SubagentStop`, les matchers correspondent à des champs différents (consultez [motifs matcher](/fr/hooks#matcher-patterns))729* Pour les hooks non basés sur les outils comme `Stop` et `SubagentStop`, les matchers correspondent à des champs différents (consultez [motifs matcher](/fr/hooks#matcher-patterns))

730* Les hooks peuvent ne pas se déclencher lorsque l'agent atteint la limite [`max_turns`](/fr/agent-sdk/python#claude-agent-options) car la session se termine avant que les hooks puissent s'exécuter730* Les hooks peuvent ne pas se déclencher lorsque l'agent atteint la limite [`max_turns`](/fr/agent-sdk/python#claudeagentoptions) car la session se termine avant que les hooks puissent s'exécuter

731 731 

732### Matcher ne filtre pas comme prévu732### Matcher ne filtre pas comme prévu

733 733 


769 };769 };

770 ```770 ```

771 771 

772* Vous devez également retourner `permissionDecision: 'allow'` pour que la modification d'entrée prenne effet772* Vous devez également retourner `permissionDecision: 'allow'` ou `'ask'` pour que la modification d'entrée prenne effet

773 773 

774* Incluez `hookEventName` dans `hookSpecificOutput` pour identifier le type de hook pour lequel la sortie est destinée774* Incluez `hookEventName` dans `hookSpecificOutput` pour identifier le type de hook pour lequel la sortie est destinée

775 775 

776### Hooks de session non disponibles en Python776### Hooks de session non disponibles en Python

777 777 

778`SessionStart` et `SessionEnd` peuvent être enregistrés en tant que hooks de rappel du SDK en TypeScript, mais ne sont pas disponibles dans le SDK Python (`HookEvent` les omet). En Python, ils ne sont disponibles que comme [hooks de commande shell](/fr/hooks#hook-events) définis dans les fichiers de paramètres (par exemple, `.claude/settings.json`). Pour charger les hooks de commande shell à partir de votre application SDK, incluez la source de paramètre appropriée avec [`setting_sources`](/fr/agent-sdk/python#setting-source) ou [`settingSources`](/fr/agent-sdk/typescript#setting-source) :778`SessionStart` et `SessionEnd` peuvent être enregistrés en tant que hooks de rappel du SDK en TypeScript, mais ne sont pas disponibles dans le SDK Python (`HookEvent` les omet). En Python, ils ne sont disponibles que comme [hooks de commande shell](/fr/hooks#hook-events) définis dans les fichiers de paramètres (par exemple, `.claude/settings.json`). Pour charger les hooks de commande shell à partir de votre application SDK, incluez la source de paramètre appropriée avec [`setting_sources`](/fr/agent-sdk/python#settingsource) ou [`settingSources`](/fr/agent-sdk/typescript#settingsource) :

779 779 

780<CodeGroup>780<CodeGroup>

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

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# Modification des invites système

6 

7> Choisissez entre le préréglage `claude_code` et une invite système personnalisée, et personnalisez le comportement avec CLAUDE.md, les styles de sortie, append, ou une invite entièrement personnalisée.

8 

9Les invites système définissent le comportement, les capacités et le style de réponse de Claude. Commencez par le préréglage `claude_code` pour les outils de codage de type CLI ou IDE où un humain observe et dirige le travail. Écrivez votre propre invite pour les agents ayant une surface, une identité ou un modèle de permissions différents.

10 

11Cette page couvre :

12 

13* [Fonctionnement des invites système](#how-system-prompts-work), avec un tableau de décision pour choisir entre le préréglage, le préréglage avec `append`, et une invite personnalisée

14* [Personnaliser le comportement de l'agent](#customize-agent-behavior) avec des fichiers CLAUDE.md, des styles de sortie, `append`, ou une chaîne personnalisée

15* [Comparer les quatre approches](#compare-the-four-approaches) par persistance, portée, et ce qu'elles préservent

16* [Combiner les approches](#combine-approaches) pour superposer les méthodes de personnalisation

17 

18## Fonctionnement des invites système

19 

20Une invite système est l'ensemble initial d'instructions qui façonne le comportement de Claude tout au long d'une conversation. Le SDK Agent dispose de trois points de départ pour celle-ci :

21 

22* **Défaut minimal** : lorsque vous ne définissez pas `systemPrompt` en TypeScript ou `system_prompt` en Python, le SDK utilise une invite minimale qui couvre l'appel d'outils mais omet les directives de codage de Claude Code, le style de réponse et le contexte du projet. Cela diffère de `claude -p`, qui utilise l'invite complète de Claude Code par défaut. Si vous migrez depuis la CLI et souhaitez un comportement correspondant, définissez le préréglage `claude_code`.

23* **Préréglage `claude_code`** : l'invite système complète que la CLI Claude Code utilise, avec les instructions d'utilisation des outils, les directives de style et de formatage du code, les règles de ton et de verbosité des réponses, les instructions de sécurité et de sûreté, et le contexte du répertoire de travail et de l'environnement. Définissez `systemPrompt: { type: "preset", preset: "claude_code" }` en TypeScript ou `system_prompt={"type": "preset", "preset": "claude_code"}` en Python, éventuellement avec `append` pour ajouter vos propres instructions à la fin.

24* **Chaîne personnalisée** : une invite que vous écrivez vous-même. Le SDK envoie uniquement ce que vous fournissez.

25 

26### Décider d'un point de départ

27 

28Le facteur décisif est la proximité de votre agent avec Claude Code : un agent de codage opérant dans un référentiel, avec un humain regardant la sortie en continu et dirigeant le travail. Plus votre produit s'éloigne de cela, plus vous voudrez écrire votre propre invite.

29 

30| Vous construisez | Utiliser | Ce que vous obtenez |

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

32| Un outil de codage de type CLI ou IDE où un humain regarde et dirige, et les valeurs par défaut de Claude Code sont ce que vous voulez | Préréglage `claude_code` | L'invite complète de Claude Code : guidance des outils, règles de sécurité, réponses adaptées au terminal, sensibilisation aux conventions du référentiel |

33| Le même type d'outil, plus des règles spécifiques au produit comme les normes de codage, le format de sortie ou le contexte du domaine | Préréglage `claude_code` avec `append` | Tout ce qui précède, avec vos instructions ajoutées après le préréglage. Rien n'est supprimé, donc c'est la personnalisation à risque le plus faible |

34| Un agent avec une surface, une identité ou un modèle de permission différent, ou un agent non-codage | Chaîne d'invite personnalisée | Uniquement ce que vous écrivez. Vous êtes responsable du remplacement de la guidance des outils et des instructions de sécurité dont votre agent a toujours besoin |

35| Une boucle d'appel d'outils mince sans persona d'agent, où vous fournissez tout le comportement dans l'invite utilisateur | Pas d'option `systemPrompt` | Le défaut minimal : support d'appel d'outils et rien d'autre |

36 

37« Différent de Claude Code » signifie généralement l'un des éléments suivants :

38 

39* **Surface différente** : la sortie n'est pas lue dans un terminal par la personne qui l'a déclenchée. Les interfaces de chat, les consommateurs de sortie structurée et l'automatisation non-codage ont chacun besoin d'une invite qui correspond à la façon dont leur sortie est rendue et examinée. L'automatisation de codage sans surveillance, comme un travail CI qui corrige les erreurs de lint ou examine les diffs, s'adapte toujours au préréglage car le travail lui-même est ce pour lequel le préréglage est écrit.

40* **Identité différente** : l'agent ne devrait pas se présenter comme Claude Code. Un bot d'assistance, un assistant d'analyse de données ou tout agent spécifique à un domaine a besoin de son propre nom, portée et persona.

41* **Modèle de permission différent** : l'agent s'exécute de manière autonome sans qu'un humain n'approuve chaque étape, ou opère sur un ensemble étroit de ressources. L'invite de Claude Code suppose qu'un humain est dans la boucle avec accès à un ensemble complet d'outils.

42* **Tâches non-codage** : la plupart de l'invite de Claude Code est une guidance de codage. Pour les agents de recherche, de contenu ou d'opérations, cette guidance entre en concurrence avec les instructions dont vous avez réellement besoin.

43 

44Le [tableau de comparaison](#compare-the-four-approaches) montre ce que chaque méthode de personnalisation préserve.

45 

46## Personnaliser le comportement de l'agent

47 

48Les styles de sortie, `append`, et une chaîne d'invite personnalisée modifient chacun directement l'invite système. CLAUDE.md emprunte un chemin différent : le SDK le lit et injecte son contenu dans la conversation en tant que contexte du projet, non dans l'invite système, donc il façonne le comportement aux côtés de n'importe quelle configuration d'invite système que vous choisissez. Les [Skills](/fr/agent-sdk/skills), les [hooks](/fr/agent-sdk/hooks), et les [permissions](/fr/agent-sdk/permissions) façonnent également le comportement en dehors de l'invite système et sont couverts sur leurs propres pages.

49 

50### Fichiers CLAUDE.md pour les instructions au niveau du projet

51 

52Les fichiers CLAUDE.md donnent à Claude un contexte et des instructions persistants au niveau du projet. Le SDK injecte leur contenu dans la conversation, non dans l'invite système, donc ils fonctionnent avec n'importe quelle configuration d'invite système. Pour savoir quoi mettre dans CLAUDE.md, où le placer, et comment écrire des instructions efficaces, consultez [Comment Claude se souvient de votre projet](/fr/memory). Cette section couvre ce qui est spécifique au SDK : comment CLAUDE.md se charge.

53 

54Le SDK lit CLAUDE.md lorsque la source de paramètre correspondante est activée : `'project'` charge `CLAUDE.md` ou `.claude/CLAUDE.md` à partir du répertoire de travail, et `'user'` charge `~/.claude/CLAUDE.md`. Les options `query()` par défaut activent les deux sources, donc CLAUDE.md se charge automatiquement. Si vous définissez `settingSources` en TypeScript ou `setting_sources` en Python explicitement, incluez les sources dont vous avez besoin. Le chargement de CLAUDE.md est contrôlé par les sources de paramètres, non par le préréglage `claude_code`.

55 

56#### Charger CLAUDE.md avec le SDK

57 

58Pour charger CLAUDE.md, définissez `settingSources` pour inclure le niveau où votre CLAUDE.md se trouve. L'exemple ci-dessous charge un CLAUDE.md au niveau du projet aux côtés du préréglage `claude_code`, donc Claude a à la fois l'invite complète de l'agent de codage et les conventions de votre projet :

59 

60<CodeGroup>

61 ```typescript TypeScript theme={null}

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

63 

64 const messages = [];

65 

66 for await (const message of query({

67 prompt: "Add a new React component for user profiles",

68 options: {

69 systemPrompt: {

70 type: "preset",

71 preset: "claude_code" // Use Claude Code's system prompt

72 },

73 settingSources: ["project"] // Loads CLAUDE.md from project

74 }

75 })) {

76 messages.push(message);

77 }

78 

79 // Now Claude has access to your project guidelines from CLAUDE.md

80 ```

81 

82 ```python Python theme={null}

83 from claude_agent_sdk import query, ClaudeAgentOptions

84 

85 messages = []

86 

87 async for message in query(

88 prompt="Add a new React component for user profiles",

89 options=ClaudeAgentOptions(

90 system_prompt={

91 "type": "preset",

92 "preset": "claude_code", # Use Claude Code's system prompt

93 },

94 setting_sources=["project"], # Loads CLAUDE.md from project

95 ),

96 ):

97 messages.append(message)

98 

99 # Now Claude has access to your project guidelines from CLAUDE.md

100 ```

101</CodeGroup>

102 

103CLAUDE.md est persistant dans toutes les sessions d'un projet, partagé avec votre équipe via git, et découvert automatiquement sans modifications de code. Il n'est pas chargé si vous passez un tableau `settingSources` vide.

104 

105### Styles de sortie pour les configurations persistantes

106 

107Les styles de sortie sont des configurations enregistrées qui modifient l'invite système de Claude. Ils sont stockés sous forme de fichiers markdown et peuvent être réutilisés dans les sessions et les projets.

108 

109#### Créer un style de sortie

110 

111Un style de sortie est un fichier markdown avec un `name` et une `description` dans son frontmatter, suivi du contenu de l'invite. Enregistrez-le dans `~/.claude/output-styles/` pour un style au niveau de l'utilisateur disponible dans chaque projet, ou `.claude/output-styles/` dans votre référentiel pour un style au niveau du projet que vous pouvez valider et partager avec votre équipe.

112 

113L'exemple ci-dessous définit une persona d'examen de code. Enregistrez-le sous `~/.claude/output-styles/code-reviewer.md` pour le rendre disponible dans tous les projets :

114 

115```markdown ~/.claude/output-styles/code-reviewer.md theme={null}

116---

117name: Code Reviewer

118description: Thorough code review assistant

119---

120 

121You are an expert code reviewer.

122 

123For every code submission:

1241. Check for bugs and security issues

1252. Evaluate performance

1263. Suggest improvements

1274. Rate code quality (1-10)

128```

129 

130#### Activer un style de sortie

131 

132Une fois créés, activez les styles de sortie via :

133 

134* **CLI** : exécutez `/config` et sélectionnez un style de sortie

135* **Paramètres** : définissez `outputStyle` dans `.claude/settings.local.json`

136* **SDK TypeScript** : définissez `options.outputStyle` sur le nom du style

137 

138Le SDK Python n'a pas d'option pour sélectionner un style de sortie par programmation. Pour les déploiements basés sur le code où vous ne pouvez pas écrire dans `.claude/settings.local.json`, utilisez `append` ou une chaîne d'invite personnalisée à la place.

139 

140**Remarque pour les utilisateurs du SDK :** Les styles de sortie sont chargés lorsque vous incluez `settingSources: ['user']` ou `settingSources: ['project']` (TypeScript) / `setting_sources=["user"]` ou `setting_sources=["project"]` (Python) dans vos options.

141 

142### Ajouter au préréglage `claude_code`

143 

144Vous pouvez utiliser le préréglage Claude Code avec une propriété `append` pour ajouter vos instructions personnalisées tout en préservant toutes les fonctionnalités intégrées.

145 

146<CodeGroup>

147 ```typescript TypeScript theme={null}

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

149 

150 const messages = [];

151 

152 for await (const message of query({

153 prompt: "Help me write a Python function to calculate fibonacci numbers",

154 options: {

155 systemPrompt: {

156 type: "preset",

157 preset: "claude_code",

158 append: "Always include detailed docstrings and type hints in Python code."

159 }

160 }

161 })) {

162 messages.push(message);

163 if (message.type === "assistant") {

164 console.log(message.message.content);

165 }

166 }

167 ```

168 

169 ```python Python theme={null}

170 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage

171 

172 messages = []

173 

174 async for message in query(

175 prompt="Help me write a Python function to calculate fibonacci numbers",

176 options=ClaudeAgentOptions(

177 system_prompt={

178 "type": "preset",

179 "preset": "claude_code",

180 "append": "Always include detailed docstrings and type hints in Python code.",

181 }

182 ),

183 ):

184 messages.append(message)

185 if isinstance(message, AssistantMessage):

186 print(message.content)

187 ```

188</CodeGroup>

189 

190#### Améliorer la mise en cache des invites entre les utilisateurs et les machines

191 

192Par défaut, deux sessions qui utilisent le même préréglage `claude_code` et le même texte `append` ne peuvent toujours pas partager une entrée de cache d'invite si elles s'exécutent à partir de répertoires de travail différents. C'est parce que le préréglage intègre le contexte par session dans l'invite système avant votre texte `append` : le répertoire de travail, qu'il s'agisse d'un référentiel git, la plateforme, le shell actif, la version du système d'exploitation, et les chemins de mémoire automatique. Toute différence dans ce contexte produit une invite système différente et un cache miss. Le contenu de CLAUDE.md n'affecte pas le cache d'invite système car le SDK l'injecte dans la conversation, non dans l'invite système.

193 

194Pour rendre l'invite système identique dans les sessions, définissez `excludeDynamicSections: true` en TypeScript ou `"exclude_dynamic_sections": True` en Python. Le contexte par session se déplace dans le premier message utilisateur, laissant uniquement le préréglage statique et votre texte `append` dans l'invite système afin que les configurations identiques partagent une entrée de cache dans les utilisateurs et les machines.

195 

196<Note>

197 `excludeDynamicSections` nécessite `@anthropic-ai/claude-agent-sdk` v0.2.98 ou ultérieur, ou `claude-agent-sdk` v0.1.58 ou ultérieur pour Python. Il s'applique uniquement à la forme d'objet préréglé et n'a aucun effet lorsque `systemPrompt` est une chaîne.

198</Note>

199 

200L'exemple suivant associe un bloc `append` partagé avec `excludeDynamicSections` afin qu'une flotte d'agents s'exécutant à partir de répertoires différents puisse réutiliser la même invite système mise en cache :

201 

202<CodeGroup>

203 ```typescript TypeScript theme={null}

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

205 

206 for await (const message of query({

207 prompt: "Triage the open issues in this repo",

208 options: {

209 systemPrompt: {

210 type: "preset",

211 preset: "claude_code",

212 append: "You operate Acme's internal triage workflow. Label issues by component and severity.",

213 excludeDynamicSections: true

214 }

215 }

216 })) {

217 // ...

218 }

219 ```

220 

221 ```python Python theme={null}

222 from claude_agent_sdk import query, ClaudeAgentOptions

223 

224 async for message in query(

225 prompt="Triage the open issues in this repo",

226 options=ClaudeAgentOptions(

227 system_prompt={

228 "type": "preset",

229 "preset": "claude_code",

230 "append": "You operate Acme's internal triage workflow. Label issues by component and severity.",

231 "exclude_dynamic_sections": True,

232 },

233 ),

234 ):

235 ...

236 ```

237</CodeGroup>

238 

239**Compromis :** le répertoire de travail, l'indicateur de référentiel git, la plateforme, le shell actif, la version du système d'exploitation, et les chemins de mémoire automatique atteignent toujours Claude, mais comme faisant partie du premier message utilisateur plutôt que de l'invite système. Les instructions dans le message utilisateur ont un poids légèrement inférieur au même texte dans l'invite système, donc Claude peut s'y fier moins fortement lorsqu'il raisonne sur le répertoire actuel ou les chemins de mémoire automatique. Activez cette option lorsque la réutilisation du cache entre sessions est plus importante que le contexte d'environnement maximalement autoritaire.

240 

241Pour l'indicateur équivalent en mode CLI non interactif, consultez [`--exclude-dynamic-system-prompt-sections`](/fr/cli-reference).

242 

243### Invites système personnalisées

244 

245Vous pouvez fournir une chaîne personnalisée comme `systemPrompt` pour remplacer entièrement la valeur par défaut par vos propres instructions.

246 

247<CodeGroup>

248 ```typescript TypeScript theme={null}

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

250 

251 const customPrompt = `You are a Python coding specialist.

252 Follow these guidelines:

253 - Write clean, well-documented code

254 - Use type hints for all functions

255 - Include comprehensive docstrings

256 - Prefer functional programming patterns when appropriate

257 - Always explain your code choices`;

258 

259 const messages = [];

260 

261 for await (const message of query({

262 prompt: "Create a data processing pipeline",

263 options: {

264 systemPrompt: customPrompt

265 }

266 })) {

267 messages.push(message);

268 if (message.type === "assistant") {

269 console.log(message.message.content);

270 }

271 }

272 ```

273 

274 ```python Python theme={null}

275 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage

276 

277 custom_prompt = """You are a Python coding specialist.

278 Follow these guidelines:

279 - Write clean, well-documented code

280 - Use type hints for all functions

281 - Include comprehensive docstrings

282 - Prefer functional programming patterns when appropriate

283 - Always explain your code choices"""

284 

285 messages = []

286 

287 async for message in query(

288 prompt="Create a data processing pipeline",

289 options=ClaudeAgentOptions(system_prompt=custom_prompt),

290 ):

291 messages.append(message)

292 if isinstance(message, AssistantMessage):

293 print(message.content)

294 ```

295</CodeGroup>

296 

297## Comparaison des quatre approches

298 

299Les quatre méthodes de personnalisation diffèrent par leur emplacement, la façon dont elles sont partagées et ce qu'elles préservent de la présélection `claude_code`.

300 

301| Fonctionnalité | CLAUDE.md | Styles de sortie | `systemPrompt` avec append | `systemPrompt` personnalisé |

302| ------------------------------ | -------------------------- | --------------------------------- | -------------------------- | ------------------------------- |

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

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

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

306| **Outils par défaut** | Préservés | Préservés | Préservés | Perdus (sauf s'ils sont inclus) |

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

308| **Contexte d'environnement** | Automatique | Automatique | Automatique | Doit être fourni |

309| **Niveau de personnalisation** | Ajouts uniquement | Remplacer la valeur par défaut | Ajouts uniquement | Contrôle complet |

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

311| **Portée** | Spécifique au projet | Utilisateur ou projet | Session de code | Session de code |

312 

313« Avec append » signifie utiliser `systemPrompt: { type: "preset", preset: "claude_code", append: "..." }` en TypeScript ou `system_prompt={"type": "preset", "preset": "claude_code", "append": "..."}` en Python. CLAUDE.md ne modifie pas le message système lui-même : le SDK injecte son contenu dans la conversation en tant que contexte du projet.

314 

315## Cas d'utilisation et meilleures pratiques

316 

317### Quand utiliser CLAUDE.md

318 

319Utilisez CLAUDE.md pour les instructions qui doivent s'appliquer à chaque session dans un projet, indépendamment du système prompt utilisé par la session : normes de codage, commandes courantes, contexte d'architecture et conventions d'équipe. CLAUDE.md est validé dans votre référentiel, il reste donc synchronisé avec le code qu'il décrit. Consultez [Quand ajouter à CLAUDE.md](/fr/memory#when-to-add-to-claude-md) pour des conseils complets.

320 

321Les fichiers CLAUDE.md se chargent 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 explicitement `settingSources` en TypeScript ou `setting_sources` en Python, incluez `'project'` pour continuer à charger CLAUDE.md au niveau du projet.

322 

323### Quand utiliser les styles de sortie

324 

325Les styles de sortie sont destinés aux personas que vous souhaitez réutiliser dans l'interface de ligne de commande et le SDK sans modifier le code de l'application. Comme ils résident sous forme de fichiers dans `.claude/output-styles`, le même persona est disponible à partir de `/config` dans l'interface de ligne de commande et à partir de toute session SDK qui charge la source de paramètre correspondante.

326 

327**Idéal pour :**

328 

329* Les modifications de comportement persistantes dans les sessions

330* Les configurations partagées par l'équipe

331* Les assistants spécialisés comme un examinateur de code, un data scientist ou un assistant DevOps

332* Les modifications d'invite complexes qui nécessitent une gestion de version

333 

334**Exemples :**

335 

336* Créer un assistant dédié d'optimisation SQL

337* Construire un examinateur de code axé sur la sécurité

338* Développer un assistant pédagogique avec une pédagogie spécifique

339 

340### Quand utiliser `systemPrompt` avec append

341 

342Utilisez `append` lorsque le préréglage `claude_code` convient déjà à votre produit et que vous avez seulement besoin d'ajouter des instructions supplémentaires. Vous conservez les conseils d'outils du préréglage, les règles de sécurité et les conventions de codage sans les réimplémenter.

343 

344**Idéal pour :**

345 

346* Ajouter des normes ou des préférences de codage spécifiques

347* Personnaliser le formatage de la sortie

348* Ajouter des connaissances spécifiques au domaine

349* Modifier la verbosité des réponses

350* Améliorer le comportement par défaut de Claude Code sans perdre les instructions des outils

351 

352### Quand utiliser `systemPrompt` personnalisé

353 

354Utilisez une invite personnalisée lorsque la surface, l'identité ou le modèle de permission de votre agent diffère de celui de Claude Code, comme décrit dans [Décider d'un point de départ](#decide-on-a-starting-point). Vous définissez l'ensemble complet des instructions, y compris tout conseil d'outils et toute règle de sécurité dont votre agent a besoin.

355 

356**Idéal pour :**

357 

358* Contrôle complet du comportement de Claude

359* Les tâches spécialisées d'une seule session

360* Tester de nouvelles stratégies d'invite

361* Les situations où les outils par défaut ne sont pas nécessaires

362* Construire des agents spécialisés avec un comportement unique

363 

364## Combiner les approches

365 

366Ces méthodes se composent. Un style de sortie persistant ou CLAUDE.md définit le comportement à long terme, et `append` superpose les instructions spécifiques à la session sans modifier la configuration enregistrée.

367 

368### Combiner un style de sortie avec des ajouts spécifiques à la session

369 

370L'exemple ci-dessous suppose qu'un style de sortie Code Reviewer est déjà actif. Le bloc `append` superpose les domaines de focus spécifiques à la session sur la persona, de sorte qu'une seule session de révision peut prioriser OAuth et le stockage des tokens sans modifier le style de sortie enregistré :

371 

372<CodeGroup>

373 ```typescript TypeScript theme={null}

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

375 

376 // Assuming "Code Reviewer" output style is active (via /config or settings)

377 // Add session-specific focus areas

378 const messages = [];

379 

380 for await (const message of query({

381 prompt: "Review this authentication module",

382 options: {

383 systemPrompt: {

384 type: "preset",

385 preset: "claude_code",

386 append: `

387 For this review, prioritize:

388 - OAuth 2.0 compliance

389 - Token storage security

390 - Session management

391 `

392 }

393 }

394 })) {

395 messages.push(message);

396 }

397 ```

398 

399 ```python Python theme={null}

400 from claude_agent_sdk import query, ClaudeAgentOptions

401 

402 # Assuming "Code Reviewer" output style is active (via /config or settings)

403 # Add session-specific focus areas

404 messages = []

405 

406 async for message in query(

407 prompt="Review this authentication module",

408 options=ClaudeAgentOptions(

409 system_prompt={

410 "type": "preset",

411 "preset": "claude_code",

412 "append": """

413 For this review, prioritize:

414 - OAuth 2.0 compliance

415 - Token storage security

416 - Session management

417 """,

418 }

419 ),

420 ):

421 messages.append(message)

422 ```

423</CodeGroup>

424 

425## Voir aussi

426 

427* [Styles de sortie](/fr/output-styles) : créer, gérer et partager les styles de sortie pour la CLI, y compris le format de fichier et les emplacements de stockage

428* [Comment Claude se souvient de votre projet](/fr/memory) : ce qu'il faut mettre dans CLAUDE.md, où le placer et comment rédiger des instructions de projet efficaces

429* [Référence du SDK TypeScript](/fr/agent-sdk/typescript) : le type `Options` complet, y compris `systemPrompt`, `settingSources` et `outputStyle`

430* [Référence du SDK Python](/fr/agent-sdk/python) : le type `ClaudeAgentOptions` complet, y compris `system_prompt` et `setting_sources`

431* [Paramètres](/fr/settings) : la référence `settings.json`, y compris où les styles de sortie et autres configurations sont stockés

Details

396| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurations de serveur MCP |396| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Configurations de serveur MCP |

397| `model` | `string` | Par défaut de CLI | Modèle Claude à utiliser |397| `model` | `string` | Par défaut de CLI | Modèle Claude à utiliser |

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

399| `outputStyle` | `string` | `undefined` | Nom d'un [style de sortie](/fr/output-styles) à activer pour la session. Le style doit exister dans un emplacement `settingSources` chargé, tel que `.claude/output-styles/`. Voir [Activer un style de sortie](/fr/agent-sdk/modifying-system-prompts#activate-an-output-style) |

399| `pathToClaudeCodeExecutable` | `string` | Résolu automatiquement à partir du binaire natif groupé | Chemin vers l'exécutable Claude Code. Nécessaire uniquement si les dépendances optionnelles ont été ignorées lors de l'installation ou si votre plateforme ne figure pas dans l'ensemble pris en charge |400| `pathToClaudeCodeExecutable` | `string` | Résolu automatiquement à partir du binaire natif groupé | Chemin vers l'exécutable Claude Code. Nécessaire uniquement si les dépendances optionnelles ont été ignorées lors de l'installation ou si votre plateforme ne figure pas dans l'ensemble pris en charge |

400| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Mode de permission pour la session |401| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | Mode de permission pour la session |

401| `permissionPromptToolName` | `string` | `undefined` | Nom de l'outil MCP pour les invites de permission |402| `permissionPromptToolName` | `string` | `undefined` | Nom de l'outil MCP pour les invites de permission |

Details

12 12 

13Pour les questions de clarification, Claude génère les questions et les options. Votre rôle est de les présenter aux utilisateurs et de retourner leurs sélections. Vous ne pouvez pas ajouter vos propres questions à ce flux ; si vous avez besoin de poser une question aux utilisateurs vous-même, faites-le séparément dans votre logique d'application.13Pour les questions de clarification, Claude génère les questions et les options. Votre rôle est de les présenter aux utilisateurs et de retourner leurs sélections. Vous ne pouvez pas ajouter vos propres questions à ce flux ; si vous avez besoin de poser une question aux utilisateurs vous-même, faites-le séparément dans votre logique d'application.

14 14 

15Le callback peut rester en attente indéfiniment. L'exécution reste en pause jusqu'à ce que votre callback retourne, et le SDK n'annule l'attente que lorsque la requête elle-même est annulée. Si un utilisateur pourrait prendre plus de temps pour répondre que votre processus ne peut raisonnablement rester en cours d'exécution, le SDK TypeScript supporte le [hook `defer` decision](/fr/hooks#defer-a-tool-call-for-later), qui permet au processus de quitter et de reprendre plus tard à partir de la session persistante ; cette option n'est pas disponible dans le SDK Python.15Le callback peut rester en attente indéfiniment. L'exécution reste en pause jusqu'à ce que votre callback retourne, et le SDK n'annule l'attente que lorsque la requête elle-même est annulée. Si un utilisateur pourrait prendre plus de temps pour répondre que votre processus ne peut raisonnablement rester en cours d'exécution, retournez la décision du [hook `defer`](/fr/hooks#defer-a-tool-call-for-later), qui permet au processus de quitter et de reprendre plus tard à partir de la session persistante.

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 


232 232 

233* **Approuver** : laisser l'outil s'exécuter comme Claude l'a demandé233* **Approuver** : laisser l'outil s'exécuter comme Claude l'a demandé

234* **Approuver avec des modifications** : modifier l'entrée avant l'exécution (par exemple, nettoyer les chemins, ajouter des contraintes)234* **Approuver avec des modifications** : modifier l'entrée avant l'exécution (par exemple, nettoyer les chemins, ajouter des contraintes)

235* **Approuver et mémoriser** : renvoyer une règle de permission suggérée pour que les appels correspondants ignorent l'invite la prochaine fois

235* **Rejeter** : bloquer l'outil et dire à Claude pourquoi236* **Rejeter** : bloquer l'outil et dire à Claude pourquoi

236* **Suggérer une alternative** : bloquer mais guider Claude vers ce que l'utilisateur veut à la place237* **Suggérer une alternative** : bloquer mais guider Claude vers ce que l'utilisateur veut à la place

237* **Rediriger entièrement** : utiliser [streaming input](/fr/agent-sdk/streaming-vs-single-mode) pour envoyer à Claude une instruction complètement nouvelle238* **Rediriger entièrement** : utiliser [streaming input](/fr/agent-sdk/streaming-vs-single-mode) pour envoyer à Claude une instruction complètement nouvelle


297 </CodeGroup>298 </CodeGroup>

298 </Tab>299 </Tab>

299 300 

301 <Tab title="Approuver et mémoriser">

302 L'utilisateur approuve et ne veut pas être invité à nouveau pour ce type d'appel. Le troisième argument du callback porte `suggestions`, un tableau d'entrées [`PermissionUpdate`](/fr/agent-sdk/typescript#permissionupdate) prêtes à l'emploi. Renvoyez-en une dans `updatedPermissions` pour l'appliquer. Une suggestion avec la destination `localSettings` écrit la règle dans `.claude/settings.local.json` afin que les futures sessions ignorent l'invite pour les appels correspondants.

303 

304 L'exemple Python nécessite `claude-agent-sdk` 0.1.80 ou ultérieur.

305 

306 <CodeGroup>

307 ```python Python theme={null}

308 async def can_use_tool(tool_name, input_data, context):

309 choice = await ask_user(f"Allow {tool_name}?", ["once", "always", "no"])

310 

311 if choice == "always":

312 persist = [

313 s for s in context.suggestions if s.destination == "localSettings"

314 ]

315 return PermissionResultAllow(

316 updated_input=input_data, updated_permissions=persist

317 )

318 if choice == "once":

319 return PermissionResultAllow(updated_input=input_data)

320 return PermissionResultDeny(message="User declined")

321 ```

322 

323 ```typescript TypeScript theme={null}

324 canUseTool: async (toolName, input, { suggestions = [] }) => {

325 const choice = await askUser(`Allow ${toolName}?`, ["once", "always", "no"]);

326 

327 if (choice === "always") {

328 const persist = suggestions.filter(

329 (s) => s.destination === "localSettings"

330 );

331 return {

332 behavior: "allow",

333 updatedInput: input,

334 updatedPermissions: persist

335 };

336 }

337 if (choice === "once") {

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

339 }

340 return { behavior: "deny", message: "User declined" };

341 };

342 ```

343 </CodeGroup>

344 </Tab>

345 

300 <Tab title="Rejeter">346 <Tab title="Rejeter">

301 L'utilisateur ne veut pas que cette action se produise. Bloquez l'outil et fournissez un message expliquant pourquoi. Claude voit ce message et peut essayer une approche différente.347 L'utilisateur ne veut pas que cette action se produise. Bloquez l'outil et fournissez un message expliquant pourquoi. Claude voit ce message et peut essayer une approche différente.

302 348 

agent-teams.md +3 −1

Details

129Utilisez Sonnet pour chaque coéquipier.129Utilisez Sonnet pour chaque coéquipier.

130```130```

131 131 

132Les coéquipiers n'héritent pas de la sélection `/model` du chef par défaut. Pour modifier le modèle utilisé lorsque l'invite ne spécifie pas un, définissez **Modèle de coéquipier par défaut** dans `/config`. Choisissez **Par défaut (modèle du chef)** pour que les coéquipiers suivent le modèle actuel du chef.

133 

132### Exiger l'approbation du plan pour les coéquipiers134### Exiger l'approbation du plan pour les coéquipiers

133 135 

134Pour les tâches complexes ou risquées, vous pouvez exiger que les coéquipiers planifient avant de mettre en œuvre. Le coéquipier travaille en mode plan en lecture seule jusqu'à ce que le chef approuve son approche :136Pour les tâches complexes ou risquées, vous pouvez exiger que les coéquipiers planifient avant de mettre en œuvre. Le coéquipier travaille en mode plan en lecture seule jusqu'à ce que le chef approuve son approche :


140 142 

141Lorsqu'un coéquipier termine la planification, il envoie une demande d'approbation du plan au chef. Le chef examine le plan et l'approuve ou le rejette avec des commentaires. S'il est rejeté, le coéquipier reste en mode plan, révise en fonction des commentaires et resoumis. Une fois approuvé, le coéquipier quitte le mode plan et commence la mise en œuvre.143Lorsqu'un coéquipier termine la planification, il envoie une demande d'approbation du plan au chef. Le chef examine le plan et l'approuve ou le rejette avec des commentaires. S'il est rejeté, le coéquipier reste en mode plan, révise en fonction des commentaires et resoumis. Une fois approuvé, le coéquipier quitte le mode plan et commence la mise en œuvre.

142 144 

143Le chef prend les décisions d'approbation de manière autonome. Pour influencer le jugement du chef, donnez-lui des critères dans votre prompt, tels que « n'approuvez que les plans qui incluent la couverture de test » ou « rejetez les plans qui modifient le schéma de base de données ».145Le chef prend les décisions d'approbation de manière autonome. Pour influencer le jugement du chef, donnez-lui des critères dans votre invite, tels que « n'approuvez que les plans qui incluent la couverture de test » ou « rejetez les plans qui modifient le schéma de base de données ».

144 146 

145### Parler directement aux coéquipiers147### Parler directement aux coéquipiers

146 148 

agent-view.md +39 −20

Details

38 </Step>38 </Step>

39 39 

40 <Step title="Lancer une session">40 <Step title="Lancer une session">

41 Tapez une invite dans l'entrée et appuyez sur `Entrée`. Une nouvelle session démarre et apparaît sous forme de ligne indiquant si elle fonctionne, attend votre intervention, ou est terminée. Répétez pour exécuter autant de sessions en parallèle que vous le souhaitez.41 Tapez une invite dans l'entrée et appuyez sur `Entrée`. Une nouvelle session démarre et apparaît sous forme de ligne indiquant si elle fonctionne, attend votre intervention, ou est terminée. Répétez pour exécuter plusieurs sessions en parallèle. Chacune utilise votre quota d'abonnement indépendamment, consultez donc [Limitations](#limitations) avant de lancer plusieurs sessions à la fois.

42 </Step>42 </Step>

43 43 

44 <Step title="Aperçu et réponse">44 <Step title="Aperçu et réponse">


58 58 

59Exécutez `claude agents` pour ouvrir la vue agent. Elle prend le contrôle du terminal complet et répertorie chaque session groupée par état, avec les sessions épinglées et celles qui ont besoin de vous en haut. Chaque ligne affiche le nom de la session, l'activité actuelle, et depuis combien de temps elle a changé pour la dernière fois.59Exécutez `claude agents` pour ouvrir la vue agent. Elle prend le contrôle du terminal complet et répertorie chaque session groupée par état, avec les sessions épinglées et celles qui ont besoin de vous en haut. Chaque ligne affiche le nom de la session, l'activité actuelle, et depuis combien de temps elle a changé pour la dernière fois.

60 60 

61La liste est globale à votre machine et inclut chaque session en arrière-plan quel que soit le projet ou la worktree sur laquelle elle travaille. Les sessions interactives que vous avez ouvertes dans d'autres terminaux n'apparaissent pas jusqu'à ce que vous les [mettiez en arrière-plan](#from-inside-a-session), et les [sous-agents](/fr/sub-agents) s'exécutant à l'intérieur d'une session ne sont pas répertoriés comme des lignes séparées.61La liste couvre chaque session en arrière-plan sous votre [répertoire de configuration](#how-background-sessions-are-hosted), quel que soit le projet ou la worktree sur laquelle elle travaille, donc une session démarrée dans un référentiel et une autre démarrée dans une worktree différente apparaissent ensemble. Les sessions interactives que vous avez ouvertes dans d'autres terminaux n'apparaissent pas jusqu'à ce que vous les [mettiez en arrière-plan](#from-inside-a-session), et les [sous-agents](/fr/sub-agents) s'exécutant à l'intérieur d'une session ne sont pas répertoriés comme des lignes séparées.

62 62 

63```text theme={null}63```text theme={null}

64Épinglées64Épinglées

65 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m65 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m

66 66 

67Prêtes pour examen67Prêtes pour examen

68 ∙ jump physics github.com/anthropics/example/pull/2048 2h68 ∙ jump physics github.com/anthropics/example/pull/20482h

69 69 

70Nécessite une intervention70Nécessite une intervention

71 ✻ power-up design needs input: double jump or wall climb? 1m71 ✻ power-up design needs input: double jump or wall climb? 1m


80 … 6 more80 … 6 more

81```81```

82 82 

83L'icône vous indique l'état de la session :83L'icône de chaque ligne porte deux signaux. L'indicateur vous indique l'état de la session, et la forme de l'icône vous indique si le processus sous-jacent s'exécute toujours. Les états sont :

84 84 

85| Icône | État | Ce que cela signifie |85| Indicateur | État | Ce que cela signifie |

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

87| Animée | En cours | Claude exécute activement des outils ou génère une réponse |87| Animé | En cours | Claude exécute activement des outils ou génère une réponse |

88| Jaune | Nécessite une intervention | Claude attend votre intervention, généralement une décision de permission ou une réponse |88| Jaune | Nécessite une intervention | Claude attend votre intervention, généralement une décision de permission ou une réponse |

89| Estompée | Inactif | La session attend une intervention mais n'est pas bloquée sur une question spécifique |89| Estompé | Inactif | La session attend une intervention mais n'est pas bloquée sur une question spécifique |

90| Verte | Terminée | La tâche s'est terminée avec succès |90| Vert | Terminée | La tâche s'est terminée avec succès |

91| Rouge | Échouée | La tâche s'est terminée avec une erreur |91| Rouge | Échouée | La tâche s'est terminée avec une erreur |

92| Grise | Arrêtée | La session a été arrêtée avec `Ctrl+X` ou `claude stop` |92| Gris | Arrêtée | La session a été arrêtée avec `Ctrl+X` ou `claude stop` |

93 93 

94La forme de l'icône vous indique si le processus sous-jacent s'exécute toujours. Un `✻`, ou un `✽` animé pendant que Claude travaille, signifie que la session est active et vous pouvez lui répondre immédiatement. Un `∙` signifie que le processus a quitté, mais vous pouvez toujours apercevoir, répondre, ou vous attacher : Claude redémarre la session à partir de là où elle s'était arrêtée. Un `✢` est une session [`/loop`](/fr/commands) dormant entre les itérations, la ligne affichant son nombre d'exécutions et un compte à rebours jusqu'à la prochaine itération.94La forme de l'icône vous indique si le processus sous-jacent s'exécute toujours. Un `✻`, ou un `✽` animé pendant que Claude travaille, signifie que la session est active et vous pouvez lui répondre immédiatement. Un `∙` signifie que le processus a quitté, mais vous pouvez toujours apercevoir, répondre, ou vous attacher : Claude redémarre la session à partir de là où elle s'était arrêtée. Un `✢` est une session [`/loop`](/fr/commands) dormant entre les itérations, la ligne affichant son nombre d'exécutions et un compte à rebours jusqu'à la prochaine itération.

95 95 


97 97 

98Les sessions persistent sur le disque : fermer votre terminal ou une mise à jour automatique ne les perd pas, et rouvrir `claude agents` les affiche toutes. Si votre machine se met en veille ou s'éteint, les sessions en cours s'arrêtent ; redémarrez-les avec `claude respawn --all`.98Les sessions persistent sur le disque : fermer votre terminal ou une mise à jour automatique ne les perd pas, et rouvrir `claude agents` les affiche toutes. Si votre machine se met en veille ou s'éteint, les sessions en cours s'arrêtent ; redémarrez-les avec `claude respawn --all`.

99 99 

100Le résumé d'une ligne dans chaque ligne est généré par votre [modèle de classe Haiku](/fr/model-config) configuré 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. Chaque résumé 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.100Le résumé d'une ligne dans chaque ligne est généré par votre [modèle de classe Haiku](/fr/model-config) configuré 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. Chaque 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.

101 101 

102Quand une session ouvre une pull request, la ligne affiche le lien PR et un indicateur d'état pour ses vérifications CI. Pour la plupart des tâches, cette ligne est comment vous collectez le travail : examinez et fusionnez la pull request quand ses vérifications réussissent.102Quand une session ouvre une pull request, un point d'état apparaît au bord droit de la ligne, lié à la pull request dans les terminaux qui supportent les hyperliens. Quand la session a ouvert plus d'une pull request, le nombre apparaît avant le point et la couleur reflète celle qui a le plus besoin d'attention.

103 

104| Couleur du point | Statut de la pull request |

105| :--------------- | :----------------------------------------------------------------------- |

106| Jaune | En attente de vérifications ou d'examen, ou les vérifications ont échoué |

107| Vert | Les vérifications ont réussi et aucun examen ne bloque |

108| Violet | Fusionnée |

109| Gris | Brouillon ou fermée |

110 

111Pour la plupart des tâches, cette ligne est l'endroit où vous collectez le résultat : examinez et fusionnez la pull request quand le point devient vert.

103 112 

104### Aperçu et réponse113### Aperçu et réponse

105 114 


119 128 

120Se détacher n'arrête jamais une session en arrière-plan : `←`, `Ctrl+C`, `Ctrl+D`, `Ctrl+Z`, et `/exit` la laissent toutes s'exécuter. Pour terminer une session depuis l'intérieur, exécutez `/stop`.129Se détacher n'arrête jamais une session en arrière-plan : `←`, `Ctrl+C`, `Ctrl+D`, `Ctrl+Z`, et `/exit` la laissent toutes s'exécuter. Pour terminer une session depuis l'intérieur, exécutez `/stop`.

121 130 

122Une fois que vous avez utilisé la vue agent, appuyer sur `←` sur une invite vide fonctionne à partir de n'importe quelle session Claude Code, pas seulement celles auxquelles vous vous êtes attaché. Elle ouvre la vue agent avec votre session actuelle pré-sélectionnée, vous pouvez donc basculer entre les sessions sans quitter le terminal.131Une fois que vous avez lancé ou mis en arrière-plan une session, appuyer sur `←` sur une invite vide fonctionne à partir de n'importe quelle session Claude Code, pas seulement celles auxquelles vous vous êtes attaché à partir de la vue agent. Elle met en arrière-plan la session actuelle et ouvre la vue agent avec cette session pré-sélectionnée, vous pouvez donc basculer entre les sessions sans quitter le terminal. Vous pouvez désactiver ce raccourci dans `/config`.

123 132 

124### Organiser la liste133### Organiser la liste

125 134 


181 190 

182Tapez `/` pour lancer un [skill](/fr/skills). Empaqueter une tâche récurrente comme un skill vous permet de démarrer le même workflow plusieurs fois à partir de la vue agent sans retaper l'invite. Appuyez sur `Tab` sur une entrée vide pour parcourir chaque sous-agent dispatchable, ou pour appliquer la suggestion en surbrillance quand les suggestions s'affichent.191Tapez `/` pour lancer un [skill](/fr/skills). Empaqueter une tâche récurrente comme un skill vous permet de démarrer le même workflow plusieurs fois à partir de la vue agent sans retaper l'invite. Appuyez sur `Tab` sur une entrée vide pour parcourir chaque sous-agent dispatchable, ou pour appliquer la suggestion en surbrillance quand les suggestions s'affichent.

183 192 

193Quand le même `@name` correspond à la fois à un sous-agent et à un référentiel frère, le sous-agent prend la priorité. La forme du premier mot sans `@` s'applique également à n'importe quel nom de sous-agent, donc une invite qui commence par un mot correspondant à l'un de vos noms de sous-agent lance ce sous-agent. Utilisez la forme `@` quand vous voulez être explicite.

194 

184#### Lancer vers un répertoire spécifique195#### Lancer vers un répertoire spécifique

185 196 

186Une nouvelle session s'exécute dans le répertoire à partir duquel vous avez ouvert la vue agent. Pour cibler un répertoire différent :197Une nouvelle session s'exécute dans le répertoire à partir duquel vous avez ouvert la vue agent. Pour cibler un répertoire différent :


191 202 

192Quand la vue agent est groupée par répertoire, le répertoire de la ligne en surbrillance devient la cible de lancement, vous pouvez donc faire défiler jusqu'à un groupe et lancer dedans sans retaper le chemin.203Quand la vue agent est groupée par répertoire, le répertoire de la ligne en surbrillance devient la cible de lancement, vous pouvez donc faire défiler jusqu'à un groupe et lancer dedans sans retaper le chemin.

193 204 

194#### Isoler les modifications de fichiers dans une worktree

195 

196Les sessions lancées à partir de la vue agent partagent votre répertoire de travail par défaut, donc deux agents modifiant les mêmes fichiers peuvent entrer en conflit. Pour éviter cela, Claude Code bloque une session lancée à partir de la vue agent d'écrire des fichiers jusqu'à ce qu'elle se déplace dans une [git worktree](/fr/worktrees) isolée. Claude gère cela automatiquement quand il a besoin de modifier des fichiers. La worktree est créée sous `.claude/worktrees/` à l'intérieur du répertoire du projet et supprimée quand vous supprimez la session. Supprimer une session supprime aussi sa worktree, donc fusionnez ou poussez les modifications que vous voulez conserver avant de supprimer.

197 

198Pour faire en sorte qu'un sous-agent s'exécute toujours dans sa propre worktree quel que soit le mode de démarrage, définissez [`isolation: worktree`](/fr/sub-agents#supported-frontmatter-fields) dans son frontmatter.

199 

200### À partir d'une session205### À partir d'une session

201 206 

202Exécutez `/background` ou son alias `/bg` pour détacher la conversation actuelle et la laisser s'exécuter. Passez une invite comme `/bg run the test suite and fix any failures` pour envoyer une instruction supplémentaire avant de détacher.207Exécutez `/background` ou son alias `/bg` pour détacher la conversation actuelle et la laisser s'exécuter. Passez une invite comme `/bg run the test suite and fix any failures` pour envoyer une instruction supplémentaire avant de détacher.


225 claude stop 7c5dcf5d stop this session230 claude stop 7c5dcf5d stop this session

226```231```

227 232 

233### Comment les modifications de fichiers sont isolées

234 

235Chaque session en arrière-plan, qu'elle soit démarrée à partir de la vue agent, `/bg`, ou `claude --bg`, démarre dans votre répertoire de travail mais est bloquée d'écrire des fichiers là. Quand la session a besoin de modifier des fichiers, Claude la déplace automatiquement dans une [git worktree](/fr/worktrees) isolée sous `.claude/worktrees/`, afin que les sessions parallèles puissent lire le même checkout mais chacune écrit dans la sienne. Le blocage ne s'applique pas quand la session est déjà à l'intérieur d'une worktree, quand le répertoire de travail n'est pas un référentiel git, ou aux écritures en dehors du répertoire de travail.

236 

237La worktree est supprimée quand vous supprimez la session, donc fusionnez ou poussez les modifications que vous voulez conserver avant de supprimer. Pour trouver le chemin de la worktree d'une session, jetez un œil à la session ou attachez-vous et vérifiez son répertoire de travail.

238 

239Pour faire en sorte qu'un sous-agent s'exécute toujours dans sa propre worktree quel que soit le mode de démarrage, définissez [`isolation: worktree`](/fr/sub-agents#supported-frontmatter-fields) dans son frontmatter.

240 

241### Mode de permission et paramètres

242 

243Une session lancée lit ses [paramètres](/fr/settings) et son [mode de permission](/fr/permissions) à partir du répertoire dans lequel elle s'exécute, de la même manière que si vous aviez démarré `claude` là. Lancer à partir de l'entrée de la vue agent ne transmet pas un mode de permission, donc la session utilise le `defaultMode` à partir des paramètres de ce répertoire ou le `permissionMode` à partir du [frontmatter du sous-agent](/fr/sub-agents#supported-frontmatter-fields) lancé.

244 

245Pour définir le mode à partir du shell, passez `--permission-mode` avec `claude --bg`. Utiliser `bypassPermissions` ou `auto` de cette manière est refusé jusqu'à ce que vous ayez accepté ce mode en exécutant `claude` avec lui une fois de manière interactive, puisque ces modes permettent à une session que vous ne regardez pas d'agir sans approbation.

246 

228## Gérer les sessions depuis le shell247## Gérer les sessions depuis le shell

229 248 

230Chaque session en arrière-plan a un ID court que vous pouvez utiliser depuis le shell. Ces commandes sont utiles pour les scripts ou quand vous ne voulez pas ouvrir la vue agent.249Chaque session en arrière-plan a un ID court que vous pouvez utiliser depuis le shell. Ces commandes sont utiles pour les scripts ou quand vous ne voulez pas ouvrir la vue agent.


279 298 

280La vue agent est un aperçu de recherche. Les limitations actuelles à connaître :299La vue agent est un aperçu de recherche. Les limitations actuelles à connaître :

281 300 

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

283* **Les sessions sont locales** : les sessions en arrière-plan s'exécutent sur votre machine et s'arrêtent si elle se met en veille ou s'éteint.302* **Les sessions sont locales** : les sessions en arrière-plan s'exécutent sur votre machine et s'arrêtent si elle se met en veille ou s'éteint.

284* **Les worktrees sont supprimées avec la session** : fusionnez ou poussez les modifications avant de supprimer une session qui a modifié des fichiers dans sa propre worktree.303* **Les worktrees sont supprimées avec la session** : fusionnez ou poussez les modifications avant de supprimer une session qui a modifié des fichiers dans sa propre worktree.

285 304 

Details

1465Cliquez sur un nom de fichier pour ouvrir ce nœud dans l'explorateur ci-dessus.1465Cliquez sur un nom de fichier pour ouvrir ce nœud dans l'explorateur ci-dessus.

1466 1466 

1467| Fichier | Portée | Valider | Ce qu'il fait | Référence |1467| Fichier | Portée | Valider | Ce qu'il fait | Référence |

1468| --------------------------------------------------- | ----------------- | ------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |1468| --------------------------------------------------- | ----------------- | ------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |

1469| [`CLAUDE.md`](#ce-claude-md) | Projet et global | ✓ | Instructions chargées à chaque session | [Mémoire](/fr/memory) |1469| [`CLAUDE.md`](#ce-claude-md) | Projet et global | ✓ | Instructions chargées à chaque session | [Mémoire](/fr/memory) |

1470| [`rules/*.md`](#ce-rules) | Projet et global | ✓ | Instructions limitées à un sujet, optionnellement limitées par chemin | [Rules](/fr/memory#organize-rules-with-claude/rules/) |1470| [`rules/*.md`](#ce-rules) | Projet et global | ✓ | Instructions limitées à un sujet, optionnellement limitées par chemin | [Rules](/fr/memory#organize-rules-with-claude/rules/) |

1471| [`settings.json`](#ce-settings-json) | Projet et global | ✓ | Permissions, hooks, variables d'environnement, paramètres par défaut du modèle | [Paramètres](/fr/settings) |1471| [`settings.json`](#ce-settings-json) | Projet et global | ✓ | Permissions, hooks, variables d'environnement, paramètres par défaut du modèle | [Paramètres](/fr/settings) |

1472| [`settings.local.json`](#ce-settings-local-json) | Projet uniquement | | Vos remplacements personnels, auto-gitignorés | [Portées des paramètres](/fr/settings#settings-files) |1472| [`settings.local.json`](#ce-settings-local-json) | Projet uniquement | | Vos remplacements personnels, auto-gitignorés | [Portées des paramètres](/fr/settings#settings-files) |

1473| [`.mcp.json`](#ce-mcp-json) | Projet uniquement | ✓ | Serveurs MCP partagés par l'équipe | [Portées MCP](/fr/mcp#mcp-installation-scopes) |1473| [`.mcp.json`](#ce-mcp-json) | Projet uniquement | ✓ | Serveurs MCP partagés par l'équipe | [Portées MCP](/fr/mcp#mcp-installation-scopes) |

1474| [`.worktreeinclude`](#ce-worktreeinclude) | Projet uniquement | ✓ | Fichiers gitignorés à copier dans les nouveaux worktrees | [Worktrees](/fr/common-workflows#copy-gitignored-files-to-worktrees) |1474| [`.worktreeinclude`](#ce-worktreeinclude) | Projet uniquement | ✓ | Fichiers gitignorés à copier dans les nouveaux worktrees | [Worktrees](/fr/worktrees#copy-gitignored-files-into-worktrees) |

1475| [`skills/<name>/SKILL.md`](#ce-skills) | Projet et global | ✓ | Invites réutilisables invoquées avec `/name` ou auto-invoquées | [Skills](/fr/skills) |1475| [`skills/<name>/SKILL.md`](#ce-skills) | Projet et global | ✓ | Invites réutilisables invoquées avec `/name` ou auto-invoquées | [Skills](/fr/skills) |

1476| [`commands/*.md`](#ce-commands) | Projet et global | ✓ | Invites sur un seul fichier ; même mécanisme que les skills | [Skills](/fr/skills) |1476| [`commands/*.md`](#ce-commands) | Projet et global | ✓ | Invites sur un seul fichier ; même mécanisme que les skills | [Skills](/fr/skills) |

1477| [`output-styles/*.md`](#ce-output-styles) | Projet et global | ✓ | Sections de système-prompt personnalisées | [Styles de sortie](/fr/output-styles) |1477| [`output-styles/*.md`](#ce-output-styles) | Projet et global | ✓ | Sections de système-prompt personnalisées | [Styles de sortie](/fr/output-styles) |


1497| Chemin sous `~/.claude/` | Contenu |1497| Chemin sous `~/.claude/` | Contenu |

1498| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |1498| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |

1499| `projects/<project>/<session>.jsonl` | Transcription complète de la conversation : chaque message, appel d'outil et résultat d'outil |1499| `projects/<project>/<session>.jsonl` | Transcription complète de la conversation : chaque message, appel d'outil et résultat d'outil |

1500| `projects/<project>/<session>/subagents/` | Transcriptions de conversation des [sous-agents](/fr/sub-agents), supprimées avec la transcription de session parente lorsqu'elle expire |

1500| `projects/<project>/<session>/tool-results/` | Les grandes sorties d'outils sont versées dans des fichiers séparés |1501| `projects/<project>/<session>/tool-results/` | Les grandes sorties d'outils sont versées dans des fichiers séparés |

1501| `file-history/<session>/` | Instantanés pré-édition des fichiers que Claude a modifiés, utilisés pour [restauration de checkpoint](/fr/checkpointing) |1502| `file-history/<session>/` | Instantanés pré-édition des fichiers que Claude a modifiés, utilisés pour [restauration de checkpoint](/fr/checkpointing) |

1502| `plans/` | Fichiers de plan écrits pendant le [mode plan](/fr/permission-modes#analyze-before-you-edit-with-plan-mode) |1503| `plans/` | Fichiers de plan écrits pendant le [mode plan](/fr/permission-modes#analyze-before-you-edit-with-plan-mode) |


1512Les chemins suivants ne sont pas couverts par le nettoyage automatique et persistent indéfiniment.1513Les chemins suivants ne sont pas couverts par le nettoyage automatique et persistent indéfiniment.

1513 1514 

1514| Chemin sous `~/.claude/` | Contenu |1515| Chemin sous `~/.claude/` | Contenu |

1515| ------------------------ | ------------------------------------------------------------------------------------------------------------------------- |1516| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1516| `history.jsonl` | Chaque invite que vous avez tapée, avec horodatage et chemin du projet. Utilisé pour le rappel de la flèche vers le haut. |1517| `history.jsonl` | Chaque invite que vous avez tapée, avec horodatage et chemin du projet. Utilisé pour le rappel de la flèche vers le haut. |

1517| `stats-cache.json` | Nombres de tokens et de coûts agrégés affichés par `/cost` |1518| `stats-cache.json` | Nombres de tokens et de coûts agrégés affichés par `/usage` |

1519| `remote-settings.json` | Copie en cache des [paramètres gérés par le serveur](/fr/server-managed-settings) pour votre organisation. Présent uniquement lorsque votre organisation les a configurés. Actualisé à chaque lancement. |

1518| `todos/` | Listes de tâches par session héritées. Ne sont plus écrites par les versions actuelles ; sûr à supprimer. |1520| `todos/` | Listes de tâches par session héritées. Ne sont plus écrites par les versions actuelles ; sûr à supprimer. |

1519 1521 

1520D'autres petits fichiers de cache et de verrouillage apparaissent selon les fonctionnalités que vous utilisez et peuvent être supprimés en toute sécurité.1522D'autres petits fichiers de cache et de verrouillage apparaissent selon les fonctionnalités que vous utilisez et peuvent être supprimés en toute sécurité.


1569| `~/.claude/projects/` | Reprendre, continuer et rembobiner pour les sessions passées |1571| `~/.claude/projects/` | Reprendre, continuer et rembobiner pour les sessions passées |

1570| `~/.claude/history.jsonl` | Rappel d'invite de la flèche vers le haut |1572| `~/.claude/history.jsonl` | Rappel d'invite de la flèche vers le haut |

1571| `~/.claude/file-history/` | Restauration de checkpoint pour les sessions passées |1573| `~/.claude/file-history/` | Restauration de checkpoint pour les sessions passées |

1572| `~/.claude/stats-cache.json` | Totaux historiques affichés par `/cost` |1574| `~/.claude/stats-cache.json` | Totaux historiques affichés par `/usage` |

1575| `~/.claude/remote-settings.json` | Rien. Récupéré à nouveau au prochain lancement. |

1573| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/paste-cache/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/tasks/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Rien d'orienté utilisateur |1576| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/paste-cache/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/tasks/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Rien d'orienté utilisateur |

1574| `~/.claude/todos/` | Rien. Répertoire hérité non écrit par les versions actuelles. |1577| `~/.claude/todos/` | Rien. Répertoire hérité non écrit par les versions actuelles. |

1575 1578 

Details

124 124 

125`--system-prompt` et `--system-prompt-file` s'excluent mutuellement. Les drapeaux d'ajout peuvent être combinés avec l'un ou l'autre drapeau de remplacement.125`--system-prompt` et `--system-prompt-file` s'excluent mutuellement. Les drapeaux d'ajout peuvent être combinés avec l'un ou l'autre drapeau de remplacement.

126 126 

127Pour la plupart des cas d'utilisation, utilisez un drapeau d'ajout. L'ajout préserve les capacités intégrées de Claude Code tout en ajoutant vos exigences. Utilisez un drapeau de remplacement uniquement lorsque vous avez besoin d'un contrôle complet sur l'invite système.127Choisissez en fonction de la question de savoir si l'identité par défaut de Claude Code convient toujours à votre tâche. Utilisez un drapeau d'ajout lorsque Claude doit rester un assistant de codage qui suit également vos règles supplémentaires : instructions par invocation, formatage de sortie, ou contexte de domaine pour un script `-p`. L'ajout préserve les conseils d'outils par défaut, les instructions de sécurité et les conventions de codage, vous ne fournissez donc que ce qui diffère. Utilisez un drapeau de remplacement lorsque la surface, l'identité ou le modèle de permission diffère de celui de Claude Code, comme un agent non-codage dans un pipeline qu'aucun humain ne regarde. Le remplacement supprime l'intégralité de l'invite par défaut, y compris les conseils d'outils et les instructions de sécurité, vous êtes donc responsable de tout ce que votre tâche nécessite toujours.

128 

129Ces drapeaux s'appliquent uniquement à l'invocation actuelle. Pour les personas persistants que vous pouvez basculer et partager dans un projet, utilisez les [styles de sortie](/fr/output-styles). Pour les conventions de projet que Claude doit toujours suivre, utilisez [CLAUDE.md](/fr/memory). Le [guide du SDK Agent sur les invites système](/fr/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) couvre la même décision plus en profondeur.

128 130 

129## Voir aussi131## Voir aussi

130 132 

commands.md +1 −0

Details

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

105| `/sandbox` | Activer/désactiver le [mode sandbox](/fr/sandboxing). Disponible sur les plateformes supportées uniquement |105| `/sandbox` | Activer/désactiver le [mode sandbox](/fr/sandboxing). Disponible sur les plateformes supportées uniquement |

106| `/schedule [description]` | Créer, mettre à jour, lister ou exécuter des [routines](/fr/routines), qui s'exécutent sur l'infrastructure cloud gérée par Anthropic. Claude vous guide à travers la configuration de manière conversationnelle. Alias : `/routines` |106| `/schedule [description]` | Créer, mettre à jour, lister ou exécuter des [routines](/fr/routines), qui s'exécutent sur l'infrastructure cloud gérée par Anthropic. Claude vous guide à travers la configuration de manière conversationnelle. Alias : `/routines` |

107| `/scroll-speed` | Ajuster la [vitesse de défilement](/fr/fullscreen#mouse-wheel-scrolling) de la molette de la souris de manière interactive, avec une règle que vous pouvez faire défiler pendant que la boîte de dialogue est ouverte pour prévisualiser le changement. Disponible uniquement dans le [rendu en plein écran](/fr/fullscreen) et non dans le terminal de l'IDE JetBrains |

107| `/security-review` | Analyser les modifications en attente sur la branche actuelle pour les vulnérabilités de sécurité. Examine le diff git et identifie les risques comme l'injection, les problèmes d'authentification et l'exposition de données |108| `/security-review` | Analyser les modifications en attente sur la branche actuelle pour les vulnérabilités de sécurité. Examine le diff git et identifie les risques comme l'injection, les problèmes d'authentification et l'exposition de données |

108| `/setup-bedrock` | Configurer l'authentification [Amazon Bedrock](/fr/amazon-bedrock), la région et les épingles de modèle via un assistant interactif. Visible uniquement lorsque `CLAUDE_CODE_USE_BEDROCK=1` est défini. Les utilisateurs de Bedrock pour la première fois peuvent également accéder à cet assistant à partir de l'écran de connexion |109| `/setup-bedrock` | Configurer l'authentification [Amazon Bedrock](/fr/amazon-bedrock), la région et les épingles de modèle via un assistant interactif. Visible uniquement lorsque `CLAUDE_CODE_USE_BEDROCK=1` est défini. Les utilisateurs de Bedrock pour la première fois peuvent également accéder à cet assistant à partir de l'écran de connexion |

109| `/setup-vertex` | Configurer l'authentification [Google Vertex AI](/fr/google-vertex-ai), le projet, la région et les épingles de modèle via un assistant interactif. Visible uniquement lorsque `CLAUDE_CODE_USE_VERTEX=1` est défini. Les utilisateurs de Vertex AI pour la première fois peuvent également accéder à cet assistant à partir de l'écran de connexion |110| `/setup-vertex` | Configurer l'authentification [Google Vertex AI](/fr/google-vertex-ai), le projet, la région et les épingles de modèle via un assistant interactif. Visible uniquement lorsque `CLAUDE_CODE_USE_VERTEX=1` est défini. Les utilisateurs de Vertex AI pour la première fois peuvent également accéder à cet assistant à partir de l'écran de connexion |

data-usage.md +2 −2

Details

33* **Non** : refuse sans rien envoyer33* **Non** : refuse sans rien envoyer

34* **Ne plus demander** : refuse et arrête cette question de suivi d'apparaître dans les futures sessions34* **Ne plus demander** : refuse et arrête cette question de suivi d'apparaître dans les futures sessions

35 35 

36Rien n'est téléchargé à moins que vous ne sélectionniez explicitement **Oui**. Les organisations avec [conservation zéro des données](/fr/zero-data-retention), ou où les retours d'information sur les produits sont désactivés par la politique de l'organisation, ne voient jamais cette question de suivi. Vos réponses à ce sondage, y compris les transcriptions de session soumises après l'invite de notation, n'affectent pas vos préférences de formation aux données et ne peuvent pas être utilisées pour former nos modèles d'IA.36Rien n'est téléchargé à moins que vous ne sélectionniez explicitement **Oui**. Les organisations avec [conservation zéro des données](/fr/zero-data-retention), ou où les retours d'information sur les produits sont désactivés par la politique de l'organisation, ou où `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` est défini, ne voient jamais cette question de suivi. Vos réponses à ce sondage, y compris les transcriptions de session soumises après l'invite de notation, n'affectent pas vos préférences de formation aux données et ne peuvent pas être utilisées pour former nos modèles d'IA.

37 37 

38Pour désactiver ces sondages, définissez `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`. Le sondage est également désactivé lorsque `DISABLE_TELEMETRY` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` est défini. Pour contrôler la fréquence au lieu de désactiver, définissez [`feedbackSurveyRate`](/fr/settings#available-settings) dans votre fichier de paramètres sur une probabilité entre `0` et `1`.38Pour désactiver ces sondages, définissez `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`. Le sondage est également désactivé lorsque `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` est défini. Les organisations qui bloquent le trafic non essentiel mais capturent les réponses aux sondages via leur propre [collecteur OpenTelemetry](/fr/monitoring-usage) peuvent réactiver le sondage en définissant `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1`. Le sondage enregistre alors les notes uniquement au collecteur configuré. La question de suivi de partage de transcription et tout autre trafic de retours d'information lié à Anthropic restent désactivés. Pour contrôler la fréquence au lieu de désactiver, définissez [`feedbackSurveyRate`](/fr/settings#available-settings) dans votre fichier de paramètres sur une probabilité entre `0` et `1`.

39 39 

40### Conservation des données40### Conservation des données

41 41 

env-vars.md +5 −2

Details

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

82| `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. |82| `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. |

83| `CLAUDE_CODE_DISABLE_FAST_MODE` | Définissez sur `1` pour désactiver le [mode rapide](/fr/fast-mode) |83| `CLAUDE_CODE_DISABLE_FAST_MODE` | Définissez sur `1` pour désactiver le [mode rapide](/fr/fast-mode) |

84| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Définissez sur `1` pour désactiver les sondages de qualité de session « Comment Claude se débrouille-t-il ? ». Les sondages sont également désactivés lorsque `DISABLE_TELEMETRY` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` est défini. Pour définir un taux d'échantillonnage au lieu de désactiver complètement, utilisez le paramètre [`feedbackSurveyRate`](/fr/settings#available-settings). Voir [Sondages de qualité de session](/fr/data-usage#session-quality-surveys) |84| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Définissez sur `1` pour désactiver les sondages de qualité de session « Comment Claude se débrouille-t-il ? ». Les sondages sont également désactivés lorsque `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` est défini, sauf si `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` participe à nouveau. Pour définir un taux d'échantillonnage au lieu de désactiver complètement, utilisez le paramètre [`feedbackSurveyRate`](/fr/settings#available-settings). Voir [Sondages de qualité de session](/fr/data-usage#session-quality-surveys) |

85| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Définissez sur `1` pour désactiver le [checkpointing](/fr/checkpointing) de fichier. La commande `/rewind` ne pourra pas restaurer les modifications de code |85| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Définissez sur `1` pour désactiver le [checkpointing](/fr/checkpointing) de fichier. La commande `/rewind` ne pourra pas restaurer les modifications de code |

86| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Définissez sur `1` pour supprimer les instructions de flux de travail de commit et PR intégrées et l'instantané du statut git de l'invite système de Claude. Utile lors de l'utilisation de vos propres skills de flux de travail git. Prend la priorité sur le paramètre [`includeGitInstructions`](/fr/settings#available-settings) lorsqu'il est défini |86| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Définissez sur `1` pour supprimer les instructions de flux de travail de commit et PR intégrées et l'instantané du statut git de l'invite système de Claude. Utile lors de l'utilisation de vos propres skills de flux de travail git. Prend la priorité sur le paramètre [`includeGitInstructions`](/fr/settings#available-settings) lorsqu'il est défini |

87| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Définissez sur `1` pour empêcher le remappage automatique d'Opus 4.0 et 4.1 à la version Opus actuelle sur l'API Anthropic. À utiliser lorsque vous souhaitez intentionnellement épingler une version plus ancienne du modèle. Le remappage ne s'exécute pas sur Bedrock, Vertex ou Foundry |87| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Définissez sur `1` pour empêcher le remappage automatique d'Opus 4.0 et 4.1 à la version Opus actuelle sur l'API Anthropic. À utiliser lorsque vous souhaitez intentionnellement épingler une version plus ancienne du modèle. Le remappage ne s'exécute pas sur Bedrock, Vertex ou Foundry |


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

97| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Remplacer la disponibilité du [récapitulatif de session](/fr/interactive-mode#session-recap). Définissez sur `0` pour forcer les récapitulatifs désactivés indépendamment du bouton bascule `/config`. Définissez sur `1` pour forcer les récapitulatifs activés lorsque [`awaySummaryEnabled`](/fr/settings#available-settings) est `false`. Prend la priorité sur le paramètre et le bouton bascule `/config` |97| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Remplacer la disponibilité du [récapitulatif de session](/fr/interactive-mode#session-recap). Définissez sur `0` pour forcer les récapitulatifs désactivés indépendamment du bouton bascule `/config`. Définissez sur `1` pour forcer les récapitulatifs activés lorsque [`awaySummaryEnabled`](/fr/settings#available-settings) est `false`. Prend la priorité sur le paramètre et le bouton bascule `/config` |

98| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Définissez sur `1` pour actualiser l'état du plugin aux limites de tour en [mode non interactif](/fr/headless) après la fin d'une installation en arrière-plan. Désactivé par défaut car l'actualisation modifie l'invite système en milieu de session, ce qui invalide la [mise en cache des invites](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) pour ce tour |98| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Définissez sur `1` pour actualiser l'état du plugin aux limites de tour en [mode non interactif](/fr/headless) après la fin d'une installation en arrière-plan. Désactivé par défaut car l'actualisation modifie l'invite système en milieu de session, ce qui invalide la [mise en cache des invites](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) pour ce tour |

99| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Définissez sur `1` pour acheminer le sondage de qualité de session « Comment Claude se débrouille-t-il ? » vers votre propre [collecteur OpenTelemetry](/fr/monitoring-usage) lorsque le trafic non essentiel lié à Anthropic est bloqué. Les évaluations du sondage sont émises uniquement en tant qu'événements OTEL vers votre collecteur configuré. Aucune donnée de sondage n'est envoyée à Anthropic dans ce mode. S'applique lorsque `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` ou `DO_NOT_TRACK` est défini, et n'a aucun effet autrement. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` et la politique de rétroaction produit de l'organisation prennent la priorité |

99| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Contrôle si les entrées d'appel d'outil se transmettent en continu depuis l'API au fur et à mesure que Claude les génère. Avec ceci désactivé, une grande entrée d'outil telle qu'une longue écriture de fichier n'arrive qu'après que Claude ait terminé de la générer, ce qui peut sembler qu'il se bloque. Activé par défaut sur l'API Anthropic. Sur Bedrock et Vertex, activé par modèle où le conteneur déployé le prend en charge. Définissez sur `0` pour refuser. Définissez sur `1` pour forcer l'activation lors du routage via un proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` ou `ANTHROPIC_BEDROCK_BASE_URL`. Désactivé par défaut sur Foundry et les connexions [gateway](/fr/llm-gateway) |100| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Contrôle si les entrées d'appel d'outil se transmettent en continu depuis l'API au fur et à mesure que Claude les génère. Avec ceci désactivé, une grande entrée d'outil telle qu'une longue écriture de fichier n'arrive qu'après que Claude ait terminé de la générer, ce qui peut sembler qu'il se bloque. Activé par défaut sur l'API Anthropic. Sur Bedrock et Vertex, activé par modèle où le conteneur déployé le prend en charge. Définissez sur `0` pour refuser. Définissez sur `1` pour forcer l'activation lors du routage via un proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` ou `ANTHROPIC_BEDROCK_BASE_URL`. Désactivé par défaut sur Foundry et les connexions [gateway](/fr/llm-gateway) |

100| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Définissez sur `1` pour remplir le sélecteur `/model` à partir du point de terminaison `/v1/models` de votre passerelle lorsque `ANTHROPIC_BASE_URL` pointe vers une passerelle compatible Anthropic telle que LiteLLM, Kong ou un proxy interne. Désactivé par défaut car les passerelles soutenues par une clé API partagée afficheraient autrement à chaque utilisateur chaque modèle auquel la clé peut accéder. Les modèles découverts sont toujours filtrés par la liste d'autorisation [`availableModels`](/fr/settings#available-settings) |101| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Définissez sur `1` pour remplir le sélecteur `/model` à partir du point de terminaison `/v1/models` de votre passerelle lorsque `ANTHROPIC_BASE_URL` pointe vers une passerelle compatible Anthropic telle que LiteLLM, Kong ou un proxy interne. Désactivé par défaut car les passerelles soutenues par une clé API partagée afficheraient autrement à chaque utilisateur chaque modèle auquel la clé peut accéder. Les modèles découverts sont toujours filtrés par la liste d'autorisation [`availableModels`](/fr/settings#available-settings) |

102| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Définissez sur `1` pour exécuter le [mode rapide](/fr/fast-mode) sur Claude Opus 4.7 au lieu d'Opus 4.6. Avec la variable définie, `/fast` bascule vers Opus 4.7 ; sans elle, `/fast` continue à utiliser Opus 4.6 |

101| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Définissez sur `false` pour désactiver les suggestions d'invite (le bouton bascule « Suggestions d'invite » dans `/config`). Ce sont les prédictions grisées qui apparaissent dans votre entrée d'invite après que Claude répond. Voir [Suggestions d'invite](/fr/interactive-mode#prompt-suggestions) |103| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Définissez sur `false` pour désactiver les suggestions d'invite (le bouton bascule « Suggestions d'invite » dans `/config`). Ce sont les prédictions grisées qui apparaissent dans votre entrée d'invite après que Claude répond. Voir [Suggestions d'invite](/fr/interactive-mode#prompt-suggestions) |

102| `CLAUDE_CODE_ENABLE_TASKS` | Définissez sur `1` pour activer le système de suivi des tâches en mode non interactif (l'indicateur `-p`). Les tâches sont activées par défaut en mode interactif. Voir [Liste des tâches](/fr/interactive-mode#task-list) |104| `CLAUDE_CODE_ENABLE_TASKS` | Définissez sur `1` pour activer le système de suivi des tâches en mode non interactif (l'indicateur `-p`). Les tâches sont activées par défaut en mode interactif. Voir [Liste des tâches](/fr/interactive-mode#task-list) |

103| `CLAUDE_CODE_ENABLE_TELEMETRY` | Définissez sur `1` pour activer la collecte de données OpenTelemetry pour les métriques et la journalisation. Requis avant de configurer les exportateurs OTel. Voir [Surveillance](/fr/monitoring-usage) |105| `CLAUDE_CODE_ENABLE_TELEMETRY` | Définissez sur `1` pour activer la collecte de données OpenTelemetry pour les métriques et la journalisation. Requis avant de configurer les exportateurs OTel. Voir [Surveillance](/fr/monitoring-usage) |


119| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Définissez le nombre maximal de tokens de sortie pour la plupart des requêtes. Les valeurs par défaut et les plafonds varient selon le modèle ; voir [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). L'augmentation de cette valeur réduit la fenêtre de contexte effective disponible avant que le [compactage automatique](/fr/costs#reduce-token-usage) ne se déclenche. |121| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Définissez le nombre maximal de tokens de sortie pour la plupart des requêtes. Les valeurs par défaut et les plafonds varient selon le modèle ; voir [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). L'augmentation de cette valeur réduit la fenêtre de contexte effective disponible avant que le [compactage automatique](/fr/costs#reduce-token-usage) ne se déclenche. |

120| `CLAUDE_CODE_MAX_RETRIES` | Remplacer le nombre de fois pour réessayer les requêtes API échouées (par défaut : 10) |122| `CLAUDE_CODE_MAX_RETRIES` | Remplacer le nombre de fois pour réessayer les requêtes API échouées (par défaut : 10) |

121| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Nombre maximal d'outils en lecture seule et de subagents qui peuvent s'exécuter en parallèle (par défaut : 10). Les valeurs plus élevées augmentent le parallélisme mais consomment plus de ressources |123| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Nombre maximal d'outils en lecture seule et de subagents qui peuvent s'exécuter en parallèle (par défaut : 10). Les valeurs plus élevées augmentent le parallélisme mais consomment plus de ressources |

124| `CLAUDE_CODE_MAX_TURNS` | Plafonner le nombre de tours d'agent lorsqu'aucune limite explicite n'est transmise. Équivalent à la transmission de [`--max-turns`](/fr/cli-reference#cli-flags), qui prend la priorité lorsque les deux sont définis. Une valeur qui n'est pas un entier positif est rejetée au démarrage avec une erreur plutôt que traitée comme aucun plafond |

122| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Définissez sur `1` pour générer les serveurs MCP stdio avec uniquement un environnement de base sûr plus l'`env` configuré du serveur, au lieu d'hériter de votre environnement shell |125| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Définissez sur `1` pour générer les serveurs MCP stdio avec uniquement un environnement de base sûr plus l'`env` configuré du serveur, au lieu d'hériter de votre environnement shell |

123| `CLAUDE_CODE_NATIVE_CURSOR` | Définissez sur `1` pour afficher le curseur propre du terminal au curseur d'entrée au lieu d'un bloc dessiné. Le curseur respecte les paramètres de clignotement, de forme et de focus du terminal |126| `CLAUDE_CODE_NATIVE_CURSOR` | Définissez sur `1` pour afficher le curseur propre du terminal au curseur d'entrée au lieu d'un bloc dessiné. Le curseur respecte les paramètres de clignotement, de forme et de focus du terminal |

124| `CLAUDE_CODE_NEW_INIT` | Définissez sur `1` pour faire exécuter `/init` un flux de configuration interactif. Le flux demande quels fichiers générer, y compris CLAUDE.md, skills et hooks, avant d'explorer la base de code et de les écrire. Sans cette variable, `/init` génère un CLAUDE.md automatiquement sans demander. |127| `CLAUDE_CODE_NEW_INIT` | Définissez sur `1` pour faire exécuter `/init` un flux de configuration interactif. Le flux demande quels fichiers générer, y compris CLAUDE.md, skills et hooks, avant d'explorer la base de code et de les écrire. Sans cette variable, `/init` génère un CLAUDE.md automatiquement sans demander. |


202| `ENABLE_CLAUDEAI_MCP_SERVERS` | Définissez sur `false` pour désactiver les [serveurs MCP claude.ai](/fr/mcp#use-mcp-servers-from-claude-ai) dans Claude Code. Activé par défaut pour les utilisateurs connectés |205| `ENABLE_CLAUDEAI_MCP_SERVERS` | Définissez sur `false` pour désactiver les [serveurs MCP claude.ai](/fr/mcp#use-mcp-servers-from-claude-ai) dans Claude Code. Activé par défaut pour les utilisateurs connectés |

203| `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é |206| `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é |

204| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Déprécié. Utilisez `ENABLE_PROMPT_CACHING_1H` à la place |207| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Déprécié. Utilisez `ENABLE_PROMPT_CACHING_1H` à la place |

205| `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 y compris les proxies et Vertex AI), `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) |208| `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 Vertex AI ou 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) |

206| `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 |209| `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 |

207| `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` |210| `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` |

208| `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` |211| `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` |

fast-mode.md +47 −14

Details

4 4 

5# Accélérez les réponses avec le mode rapide5# Accélérez les réponses avec le mode rapide

6 6 

7> Obtenez des réponses Opus 4.6 plus rapides dans Claude Code en activant le mode rapide.7> Obtenez des réponses Opus plus rapides dans Claude Code en activant le mode rapide.

8 8 

9<Note>9<Note>

10 Le mode rapide est en [aperçu de recherche](#research-preview). La fonctionnalité, la tarification et la disponibilité peuvent changer en fonction des commentaires.10 Le mode rapide est en [aperçu de recherche](#research-preview). La fonctionnalité, la tarification et la disponibilité peuvent changer en fonction des commentaires.

11</Note>11</Note>

12 12 

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

14 14 

15Le mode rapide n'est pas un modèle différent. Il utilise le même Opus 4.6 avec une configuration API différente qui priorise la vitesse plutôt que l'efficacité des coûts. Vous obtenez une qualité et des capacités identiques, juste des réponses plus rapides.15Le mode rapide n'est pas un modèle différent. Il utilise Claude Opus avec une configuration API différente qui priorise la vitesse plutôt que l'efficacité des coûts. Vous obtenez une qualité et des capacités identiques, juste des réponses plus rapides. Le mode rapide est pris en charge sur Opus 4.6 et Opus 4.7. Il n'est pas disponible sur Sonnet, Haiku ou d'autres modèles.

16 16 

17<Note>17<Note>

18 Le mode rapide nécessite Claude Code v2.1.36 ou ultérieur. Vérifiez votre version avec `claude --version`.18 Le mode rapide nécessite Claude Code v2.1.36 ou ultérieur. Vérifiez votre version avec `claude --version`.


21Ce qu'il faut savoir :21Ce qu'il faut savoir :

22 22 

23* Utilisez `/fast` pour activer/désactiver le mode rapide dans Claude Code CLI. Également disponible via `/fast` dans l'extension Claude Code VS Code.23* Utilisez `/fast` pour activer/désactiver le mode rapide dans Claude Code CLI. Également disponible via `/fast` dans l'extension Claude Code VS Code.

24* La tarification du mode rapide pour Opus 4.6 commence à 30 \$/150 MTok. Le mode rapide est disponible avec une réduction de 50 % pour tous les plans jusqu'à 23 h 59 PT le 16 février.24* Par défaut, `/fast` s'exécute sur Opus 4.6. Pour exécuter le mode rapide sur Opus 4.7 à la place, définissez la variable d'environnement [`CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE`](#use-fast-mode-on-opus-4-7).

25* La tarification du mode rapide est de 30 \$/150 MTok sur Opus 4.6 et Opus 4.7.

25* Disponible pour tous les utilisateurs de Claude Code sur les plans d'abonnement (Pro/Max/Team/Enterprise) et Claude Console.26* Disponible pour tous les utilisateurs de Claude Code sur les plans d'abonnement (Pro/Max/Team/Enterprise) et Claude Console.

26* Pour les utilisateurs de Claude Code sur les plans d'abonnement (Pro/Max/Team/Enterprise), le mode rapide est disponible via l'utilisation supplémentaire uniquement et n'est pas inclus dans les limites de taux d'utilisation de l'abonnement.27* Pour les utilisateurs de Claude Code sur les plans d'abonnement (Pro/Max/Team/Enterprise), le mode rapide est disponible via l'utilisation supplémentaire uniquement et n'est pas inclus dans les limites de taux d'utilisation de l'abonnement.

27 28 

28Cette page couvre comment [activer le mode rapide](#toggle-fast-mode), son [compromis de coût](#understand-the-cost-tradeoff), [quand l'utiliser](#decide-when-to-use-fast-mode), les [exigences](#requirements), l'[opt-in par session](#require-per-session-opt-in), et le [comportement des limites de taux](#handle-rate-limits).29Cette page couvre comment [activer le mode rapide](#toggle-fast-mode), [utiliser le mode rapide sur Opus 4.7](#use-fast-mode-on-opus-4-7), le [compromis de coût](#understand-the-cost-tradeoff), [quand l'utiliser](#decide-when-to-use-fast-mode), les [exigences](#requirements), l'[opt-in par session](#require-per-session-opt-in), et le [comportement des limites de taux](#handle-rate-limits).

29 30 

30## Activer le mode rapide31## Activer le mode rapide

31 32 


40 41 

41Quand vous activez le mode rapide :42Quand vous activez le mode rapide :

42 43 

43* Si vous êtes sur un modèle différent, Claude Code bascule automatiquement vers Opus 4.644* Si vous êtes sur un modèle différent, Claude Code bascule automatiquement vers le modèle du mode rapide : Opus 4.6 par défaut, ou Opus 4.7 quand [`CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE`](#use-fast-mode-on-opus-4-7) est défini.

44* Vous verrez un message de confirmation : « Mode rapide ACTIVÉ »45* Vous verrez un message de confirmation : « Mode rapide ACTIVÉ »

45* Une petite icône `↯` apparaît à côté de l'invite pendant que le mode rapide est actif46* Une petite icône `↯` apparaît à côté de l'invite pendant que le mode rapide est actif

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

47 48 

48Quand vous désactivez le mode rapide avec `/fast` à nouveau, vous restez sur Opus 4.6. Le modèle ne revient pas à votre modèle précédent. Pour basculer vers un modèle différent, utilisez `/model`.49Quand vous désactivez le mode rapide avec `/fast` à nouveau, vous restez sur la même version d'Opus que celle sur laquelle le mode rapide s'exécutait. Le modèle ne revient pas à votre modèle précédent. Pour basculer vers un modèle différent, utilisez `/model`.

50 

51## Utiliser le mode rapide sur Opus 4.7

52 

53<Note>

54 Le mode rapide sur Opus 4.7 nécessite Claude Code v2.1.139 ou ultérieur.

55</Note>

56 

57Le mode rapide pour Claude Opus 4.7 est en aperçu de recherche. Il s'exécute à la même vitesse 2,5x et au même prix que le mode rapide pour Opus 4.6, sans autres changements de comportement.

58 

59<Note>

60 Le 14 mai 2026, Opus 4.7 devient le modèle du mode rapide par défaut. Jusqu'à présent, optez en définissant `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE=1`.

61</Note>

62 

63Pour opter, définissez `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE=1` avant de lancer Claude Code. Avec la variable définie, `/fast` s'exécute sur Opus 4.7. Sans elle, `/fast` continue à s'exécuter sur Opus 4.6.

64 

65Vous pouvez définir la variable comme une exportation shell :

66 

67```bash theme={null}

68export CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE=1

69```

70 

71Ou dans n'importe quel [fichier de paramètres](/fr/settings#settings-files) de Claude Code, y compris les paramètres utilisateur, projet et gérés, pour délimiter l'opt-in :

72 

73```json theme={null}

74{

75 "env": {

76 "CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE": "1"

77 }

78}

79```

80 

81Le mode rapide pour Opus 4.6 reste disponible aux côtés d'Opus 4.7. Les deux partagent le même pool de limites de taux du mode rapide : l'utilisation sur l'un ou l'autre modèle puise dans les mêmes limites.

49 82 

50## Comprendre le compromis de coût83## Comprendre le compromis de coût

51 84 

52Le mode rapide a une tarification par jeton plus élevée que l'Opus 4.6 standard :85Le mode rapide a une tarification par jeton plus élevée que l'Opus standard :

53 86 

54| Mode | Entrée (MTok) | Sortie (MTok) |87| Mode | Entrée (MTok) | Sortie (MTok) |

55| --------------------------------- | ------------- | ------------- |88| ------------------------ | ------------- | ------------- |

56| Mode rapide sur Opus 4.6 (\<200K) | 30 \$ | 150 \$ |89| Mode rapide sur Opus 4.6 | 30 \$ | 150 \$ |

57| Mode rapide sur Opus 4.6 (>200K) | 60 \$ | 225 \$ |90| Mode rapide sur Opus 4.7 | 30 \$ | 150 \$ |

58 91 

59Le mode rapide est compatible avec la fenêtre de contexte étendue de 1 million de jetons.92La tarification du mode rapide est plate sur toute la fenêtre de contexte de 1 million de jetons.

60 93 

61Quand vous basculez en mode rapide en milieu de conversation, vous payez le prix complet du jeton d'entrée non mis en cache du mode rapide pour tout le contexte de la conversation. Cela coûte plus cher que si vous aviez activé le mode rapide dès le départ.94Quand vous basculez en mode rapide en milieu de conversation, vous payez le prix complet du jeton d'entrée non mis en cache du mode rapide pour tout le contexte de la conversation. Cela coûte plus cher que si vous aviez activé le mode rapide dès le départ.

62 95 


125 158 

126## Gérer les limites de taux159## Gérer les limites de taux

127 160 

128Le mode rapide a des limites de taux séparées de l'Opus 4.6 standard. Quand vous atteignez la limite de taux du mode rapide ou que vous manquez de crédits d'utilisation supplémentaire :161Le mode rapide a des limites de taux séparées de l'Opus standard. Le mode rapide pour Opus 4.6 et Opus 4.7 partagent le même pool de limites de taux : l'utilisation sur l'un ou l'autre modèle puise dans les mêmes limites. Quand vous atteignez la limite de taux du mode rapide ou que vous manquez d'utilisation supplémentaire :

129 162 

1301. Le mode rapide bascule automatiquement vers l'Opus 4.6 standard1631. Le mode rapide bascule automatiquement vers la vitesse standard sur la même version d'Opus

1312. L'icône `↯` devient grise pour indiquer le refroidissement1642. L'icône `↯` devient grise pour indiquer le refroidissement

1323. Vous continuez à travailler à la vitesse et à la tarification standard1653. Vous continuez à travailler à la vitesse et à la tarification standard

1334. Quand le refroidissement expire, le mode rapide se réactive automatiquement1664. Quand le refroidissement expire, le mode rapide se réactive automatiquement

fullscreen.md +2 −0

Details

93 93 

94Une valeur de `3` correspond à la valeur par défaut dans `vim` et les applications similaires. Le paramètre accepte les valeurs de 1 à 20.94Une valeur de `3` correspond à la valeur par défaut dans `vim` et les applications similaires. Le paramètre accepte les valeurs de 1 à 20.

95 95 

96Pour 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.

97 

96### Défilement dans le terminal de l'IDE JetBrains98### Défilement dans le terminal de l'IDE JetBrains

97 99 

98Dans le terminal de l'IDE JetBrains, Claude Code applique sa propre gestion du défilement et ignore `CLAUDE_CODE_SCROLL_SPEED`. Le terminal envoie les événements de défilement à un taux beaucoup plus élevé que les autres émulateurs, donc un multiplicateur accordé ailleurs dépasse la limite ici.100Dans le terminal de l'IDE JetBrains, Claude Code applique sa propre gestion du défilement et ignore `CLAUDE_CODE_SCROLL_SPEED`. Le terminal envoie les événements de défilement à un taux beaucoup plus élevé que les autres émulateurs, donc un multiplicateur accordé ailleurs dépasse la limite ici.

glossary.md +1 −1

Details

174 174 

175### Output style175### Output style

176 176 

177Une configuration qui modifie l'invite système de Claude pour modifier le comportement, le ton ou le format de la réponse. Les output styles désactivent les parties spécifiques à l'ingénierie logicielle de l'invite système par défaut, contrairement à [CLAUDE.md](#claude-md) qui est livré en tant que message utilisateur suivant l'invite système. Les styles intégrés incluent Default, Explanatory et Learning.177Une configuration qui modifie l'invite système de Claude pour modifier le comportement, le ton ou le format de la réponse. Les output styles désactivent les parties spécifiques à l'ingénierie logicielle de l'invite système par défaut, contrairement à [CLAUDE.md](#claude-md) qui est livré en tant que message utilisateur suivant l'invite système. Les styles intégrés incluent Default, Proactive, Explanatory et Learning.

178 178 

179En savoir plus : [Output styles](/fr/output-styles)179En savoir plus : [Output styles](/fr/output-styles)

180 180 

hooks.md +84 −22

Details

70 {70 {

71 "type": "command",71 "type": "command",

72 "if": "Bash(rm *)",72 "if": "Bash(rm *)",

73 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-rm.sh"73 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-rm.sh",

74 "args": []

74 }75 }

75 ]76 ]

76 }77 }


307En plus des [champs communs](#common-fields), les hooks de commande acceptent ces champs :308En plus des [champs communs](#common-fields), les hooks de commande acceptent ces champs :

308 309 

309| Champ | Requis | Description |310| Champ | Requis | Description |

310| :------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |311| :------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

311| `command` | oui | Commande shell à exécuter |312| `command` | oui | Commande shell à exécuter. Avec `args`, l'exécutable à lancer directement. Consultez [Forme exec et forme shell](#exec-form-and-shell-form) |

313| `args` | non | Liste d'arguments. Lorsqu'elle est présente, `command` est résolu comme un exécutable et lancé directement avec `args` comme vecteur d'arguments, sans shell. Consultez [Forme exec et forme shell](#exec-form-and-shell-form) |

312| `async` | non | Si `true`, s'exécute en arrière-plan sans bloquer. Consultez [Exécuter les hooks en arrière-plan](#run-hooks-in-the-background) |314| `async` | non | Si `true`, s'exécute en arrière-plan sans bloquer. Consultez [Exécuter les hooks en arrière-plan](#run-hooks-in-the-background) |

313| `asyncRewake` | non | Si `true`, s'exécute en arrière-plan et réveille Claude au code de sortie 2. Implique `async`. Le stderr du hook, ou stdout s'il est vide, est affiché à Claude comme un rappel système afin qu'il puisse réagir à un échec en arrière-plan de longue durée |315| `asyncRewake` | non | Si `true`, s'exécute en arrière-plan et réveille Claude au code de sortie 2. Implique `async`. Le stderr du hook, ou stdout s'il est vide, est affiché à Claude comme un rappel système afin qu'il puisse réagir à un échec en arrière-plan de longue durée |

314| `shell` | non | Shell à utiliser pour ce hook. Accepte `"bash"` (par défaut) ou `"powershell"`. Définir `"powershell"` exécute la commande via PowerShell sur Windows. Ne nécessite pas `CLAUDE_CODE_USE_POWERSHELL_TOOL` puisque les hooks lancent PowerShell directement |316| `shell` | non | Shell à utiliser pour ce hook. Accepte `"bash"` (par défaut) ou `"powershell"`. Définir `"powershell"` exécute la commande via PowerShell sur Windows. Ne nécessite pas `CLAUDE_CODE_USE_POWERSHELL_TOOL` puisque les hooks lancent PowerShell directement. Ignoré lorsque `args` est défini |

317 

318<a id="exec-form-and-shell-form" />

319 

320##### Forme exec et forme shell

321 

322Un hook de commande s'exécute en forme exec lorsque `args` est défini, et en forme shell lorsque `args` est omis. Définissez `args` chaque fois que le hook référence un [placeholder de chemin](#reference-scripts-by-path), puisque chaque élément est passé comme un argument sans guillemets. Omettez `args` lorsque vous avez besoin de fonctionnalités shell comme les pipes ou `&&`, ou lorsqu'aucune de ces préoccupations ne s'applique.

323 

324**Forme exec** s'exécute lorsque `args` est présent. Claude Code résout `command` comme un exécutable sur `PATH` et le lance directement avec `args` comme vecteur d'arguments. Il n'y a pas de shell, donc chaque élément `args` est un argument exactement tel qu'écrit, et les placeholders de chemin comme `${CLAUDE_PLUGIN_ROOT}` sont substitués dans `command` et dans chaque élément `args` comme des chaînes brutes. Les caractères spéciaux tels que les apostrophes, `$` et les backticks passent verbatim car il n'y a pas de shell pour les interpréter. Aucune tokenisation shell ne se produit sur aucune plateforme.

325 

326**Forme shell** s'exécute lorsque `args` est absent. La chaîne `command` est passée à un shell : `sh -c` sur macOS et Linux, Git Bash sur Windows, ou PowerShell lorsque Git Bash n'est pas installé. Définissez le champ `shell` pour choisir explicitement. Le shell tokenise la chaîne, développe les variables et interprète les pipes, `&&`, les redirections et les globs.

327 

328<Note>

329 Sur Windows, la forme exec nécessite que `command` se résolve en un véritable exécutable tel qu'un `.exe`. Les shims `.cmd` et `.bat` que npm, npx, eslint et d'autres outils installent dans `node_modules/.bin` ne sont pas des exécutables et ne peuvent pas être lancés sans un shell. Pour les exécuter en forme exec, invoquez le script sous-jacent avec `node` directement, par exemple `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`. Le modèle `node` plus chemin de script fonctionne sur chaque plateforme car `node.exe` est un vrai binaire. Pour exécuter un shim `.cmd` ou `.bat` par nom, utilisez la forme shell.

330</Note>

331 

332Cet exemple exécute un script Node fourni avec un plugin. La forme exec passe le chemin du script résolu comme un argument sans guillemets :

333 

334```json theme={null}

335{

336 "type": "command",

337 "command": "node",

338 "args": ["${CLAUDE_PLUGIN_ROOT}/scripts/format.js", "--fix"]

339}

340```

341 

342La forme shell équivalente a besoin de guillemets pour gérer les chemins avec des espaces ou des caractères spéciaux :

343 

344```json theme={null}

345{

346 "type": "command",

347 "command": "node \"${CLAUDE_PLUGIN_ROOT}\"/scripts/format.js --fix"

348}

349```

350 

351Les deux formes supportent les mêmes [placeholders de chemin](#reference-scripts-by-path), et les deux les exportent comme variables d'environnement `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT` et `CLAUDE_PLUGIN_DATA` sur le processus lancé, donc un script peut lire `process.env.CLAUDE_PLUGIN_ROOT` indépendamment de la façon dont il a été lancé. Les hooks de plugin substituent également les valeurs `${user_config.*}` ; consultez [Configuration utilisateur](/fr/plugins-reference#user-configuration).

352 

353<Note>

354 En forme exec, `command` est uniquement le nom ou le chemin de l'exécutable. Si `command` est un nom nu sans séparateur de chemin et contient des espaces aux côtés de `args`, Claude Code enregistre un avertissement car le lancement échouera : il n'y a pas d'exécutable nommé `node script.js`. Déplacez les tokens supplémentaires dans `args`. Les chemins absolus avec des espaces, tels que `C:\Program Files\nodejs\node.exe`, sont un seul exécutable valide et ne déclenchent pas l'avertissement.

355</Note>

315 356 

316#### Champs des hooks HTTP357#### Champs des hooks HTTP

317 358 


397| `prompt` | oui | Texte du prompt à envoyer au modèle. Utilisez `$ARGUMENTS` comme placeholder pour l'entrée JSON du hook |438| `prompt` | oui | Texte du prompt à envoyer au modèle. Utilisez `$ARGUMENTS` comme placeholder pour l'entrée JSON du hook |

398| `model` | non | Modèle à utiliser pour l'évaluation. Par défaut un modèle rapide |439| `model` | non | Modèle à utiliser pour l'évaluation. Par défaut un modèle rapide |

399 440 

400Tous 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 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.441Tous 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.

401 442 

402### Référencer les scripts par chemin443### Référencer les scripts par chemin

403 444 

404Utilisez les variables d'environnement pour référencer les scripts de hook par rapport à la racine du projet ou du plugin, indépendamment du répertoire de travail lorsque le hook s'exécute :445Utilisez ces placeholders pour référencer les scripts de hook par rapport à la racine du projet ou du plugin, indépendamment du répertoire de travail lorsque le hook s'exécute :

405 446 

406* `$CLAUDE_PROJECT_DIR` : la racine du projet. Enveloppez entre guillemets pour gérer les chemins avec des espaces.447* `${CLAUDE_PROJECT_DIR}` : la racine du projet.

407* `${CLAUDE_PLUGIN_ROOT}` : le répertoire racine du plugin, pour les scripts fournis avec un [plugin](/fr/plugins). Change à chaque mise à jour du plugin.448* `${CLAUDE_PLUGIN_ROOT}` : le répertoire d'installation du plugin, pour les scripts fournis avec un [plugin](/fr/plugins). Change à chaque mise à jour du plugin.

408* `${CLAUDE_PLUGIN_DATA}` : le [répertoire de données persistantes](/fr/plugins-reference#persistent-data-directory) du plugin, pour les dépendances et l'état qui doivent survivre aux mises à jour du plugin.449* `${CLAUDE_PLUGIN_DATA}` : le [répertoire de données persistantes](/fr/plugins-reference#persistent-data-directory) du plugin, pour les dépendances et l'état qui doivent survivre aux mises à jour du plugin.

409 450 

451Préférez la [forme exec](#exec-form-and-shell-form) pour tout hook qui référence un placeholder de chemin. La forme exec passe chaque élément `args` comme un argument sans tokenisation shell, donc les chemins avec des espaces ou des caractères spéciaux n'ont besoin d'aucun guillemet. En forme shell, enveloppez chaque placeholder entre guillemets doubles.

452 

410<Tabs>453<Tabs>

411 <Tab title="Scripts de projet">454 <Tab title="Scripts de projet">

412 Cet exemple utilise `$CLAUDE_PROJECT_DIR` pour exécuter un vérificateur de style à partir du répertoire `.claude/hooks/` du projet après tout appel d'outil `Write` ou `Edit` :455 Cet exemple utilise `${CLAUDE_PROJECT_DIR}` pour exécuter un vérificateur de style à partir du répertoire `.claude/hooks/` du projet après tout appel d'outil `Write` ou `Edit` :

413 456 

414 ```json theme={null}457 ```json theme={null}

415 {458 {


420 "hooks": [463 "hooks": [

421 {464 {

422 "type": "command",465 "type": "command",

423 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/check-style.sh"466 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh",

467 "args": []

424 }468 }

425 ]469 ]

426 }470 }


446 {490 {

447 "type": "command",491 "type": "command",

448 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh",492 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh",

493 "args": [],

449 "timeout": 30494 "timeout": 30

450 }495 }

451 ]496 ]


529Lors de l'exécution avec `--agent` ou à l'intérieur d'un subagent, deux champs supplémentaires sont inclus :574Lors de l'exécution avec `--agent` ou à l'intérieur d'un subagent, deux champs supplémentaires sont inclus :

530 575 

531| Champ | Description |576| Champ | Description |

532| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |577| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

533| `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. |578| `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. |

534| `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. |579| `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. |

580 

581Seuls 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.

535 582 

536Par exemple, un hook `PreToolUse` pour une commande Bash reçoit ceci sur stdin :583Par exemple, un hook `PreToolUse` pour une commande Bash reçoit ceci sur stdin :

537 584 


1153| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Questions à présenter, chacune avec une chaîne `question`, un court `header`, un tableau `options` et un drapeau optionnel `multiSelect` |1200| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Questions à présenter, chacune avec une chaîne `question`, un court `header`, un tableau `options` et un drapeau optionnel `multiSelect` |

1154| `answers` | object | `{"Which framework?": "React"}` | Optionnel. Mappe le texte de la question à l'étiquette de l'option sélectionnée. Les réponses multi-sélection joignent les étiquettes avec des virgules. Claude ne définit pas ce champ ; fournissez-le via `updatedInput` pour répondre par programmation |1201| `answers` | object | `{"Which framework?": "React"}` | Optionnel. Mappe le texte de la question à l'étiquette de l'option sélectionnée. Les réponses multi-sélection joignent les étiquettes avec des virgules. Claude ne définit pas ce champ ; fournissez-le via `updatedInput` pour répondre par programmation |

1155 1202 

1203##### ExitPlanMode

1204 

1205Présente un plan et demande à l'utilisateur de l'approuver avant que Claude ne quitte le [mode plan](/fr/permission-modes#analyze-before-you-edit-with-plan-mode). Claude écrit le plan dans un fichier sur le disque avant d'appeler l'outil, donc l'`tool_input` littéral du modèle ne porte que `allowedPrompts`. Claude Code injecte le contenu du plan et le chemin du fichier avant de transmettre l'entrée aux hooks.

1206 

1207| Champ | Type | Exemple | Description |

1208| :--------------- | :----- | :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1209| `plan` | string | `"## Refactor auth\n1. Extract..."` | Contenu du plan en Markdown. Injecté à partir du fichier de plan sur le disque |

1210| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Chemin vers le fichier de plan. Injecté |

1211| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Optionnel. Permissions basées sur les prompts que Claude demande pour implémenter le plan, chacune avec un nom `tool` et un `prompt` décrivant la catégorie d'action |

1212 

1213Dans `PostToolUse`, `tool_response` est un objet avec les champs `plan` et `filePath` contenant le plan approuvé, plus les drapeaux d'état internes. Lisez `tool_response.plan` pour le contenu du plan plutôt que de relire le fichier depuis le disque.

1214 

1156#### Contrôle de décision PreToolUse1215#### Contrôle de décision PreToolUse

1157 1216 

1158Les hooks `PreToolUse` peuvent contrôler si un appel d'outil procède. Contrairement aux autres hooks qui utilisent un champ `decision` au niveau supérieur, PreToolUse retourne sa décision à l'intérieur d'un objet `hookSpecificOutput`. Cela lui donne un contrôle plus riche : quatre résultats (autoriser, refuser, demander ou différer) plus la capacité de modifier l'entrée de l'outil avant l'exécution.1217Les hooks `PreToolUse` peuvent contrôler si un appel d'outil procède. Contrairement aux autres hooks qui utilisent un champ `decision` au niveau supérieur, PreToolUse retourne sa décision à l'intérieur d'un objet `hookSpecificOutput`. Cela lui donne un contrôle plus riche : quatre résultats (autoriser, refuser, demander ou différer) plus la capacité de modifier l'entrée de l'outil avant l'exécution.


1596 1655 

1597### SubagentStart1656### SubagentStart

1598 1657 

1599S'exécute lorsqu'un subagent Claude Code est lancé via l'outil Agent. Supporte les matchers pour filtrer par nom de type d'agent (agents intégrés comme `general-purpose`, `Explore`, `Plan` ou noms d'agents personnalisés de `.claude/agents/`).1658S'exécute lorsqu'un subagent Claude Code est lancé via l'outil Agent. Supporte les matchers pour filtrer par nom de type d'agent. Pour les agents intégrés, c'est le nom de l'agent comme `general-purpose`, `Explore` ou `Plan`. Pour les [subagents personnalisés](/fr/sub-agents), c'est le champ `name` du frontmatter de l'agent, pas le nom du fichier.

1600 1659 

1601#### Entrée SubagentStart1660#### Entrée SubagentStart

1602 1661 


1651}1710}

1652```1711```

1653 1712 

1654Les hooks SubagentStop utilisent le même format de contrôle de décision que les [hooks Stop](#stop-decision-control).1713Les 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.

1655 1714 

1656### TaskCreated1715### TaskCreated

1657 1716 


1905 "hooks": [1964 "hooks": [

1906 {1965 {

1907 "type": "command",1966 "type": "command",

1908 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/audit-config-change.sh"1967 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/audit-config-change.sh"

1909 }1968 }

1910 ]1969 ]

1911 }1970 }


2394```2453```

2395 2454 

2396| Champ | Requis | Description |2455| Champ | Requis | Description |

2397| :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |2456| :---------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

2398| `type` | oui | Doit être `"prompt"` |2457| `type` | oui | Doit être `"prompt"` |

2399| `prompt` | oui | Le texte du prompt à envoyer au LLM. Utilisez `$ARGUMENTS` comme placeholder pour l'entrée JSON du hook. Si `$ARGUMENTS` n'est pas présent, l'entrée JSON est ajoutée au prompt |2458| `prompt` | oui | Le texte du prompt à envoyer au LLM. Utilisez `$ARGUMENTS` comme placeholder pour l'entrée JSON du hook. Si `$ARGUMENTS` n'est pas présent, l'entrée JSON est ajoutée au prompt |

2400| `model` | non | Modèle à utiliser pour l'évaluation. Par défaut un modèle rapide |2459| `model` | non | Modèle à utiliser pour l'évaluation. Par défaut un modèle rapide |

2401| `timeout` | non | Délai d'expiration en secondes. Par défaut : 30 |2460| `timeout` | non | Délai d'expiration en secondes. Par défaut : 30 |

2461| `continueOnBlock` | non | Lorsque le prompt retourne `ok: false`, renvoyer la raison à Claude et continuer le tour au lieu de s'arrêter. Par défaut : `false`. Implémenté comme `continue: true` sur la `decision: "block"` résultante. Voir [Schéma de réponse](#response-schema) pour le comportement par événement |

2402 2462 

2403### Schéma de réponse2463### Schéma de réponse

2404 2464 


2412```2472```

2413 2473 

2414| Champ | Description |2474| Champ | Description |

2415| :------- | :----------------------------------------------------------------------------------------- |2475| :------- | :------------------------------------------------------------------------------------------------------------ |

2416| `ok` | `true` autorise l'action, `false` l'empêche. Voir le comportement par événement ci-dessous |2476| `ok` | `true` pour autoriser. `false` produit une `decision: "block"`. Voir le comportement par événement ci-dessous |

2417| `reason` | Requis lorsque `ok` est `false`. Explication pour la décision |2477| `reason` | Requis lorsque `ok` est `false`. Utilisé comme raison du blocage |

2418 2478 

2419Ce qui se passe sur `ok: false` dépend de l'événement :2479Ce qui se passe sur `ok: false` dépend de l'événement :

2420 2480 

2421* `Stop` et `SubagentStop` : la raison est renvoyée à Claude comme sa prochaine instruction et le tour continue2481* `Stop` et `SubagentStop` : la raison est renvoyée à Claude comme sa prochaine instruction et le tour continue

2422* `PreToolUse` : l'appel d'outil est refusé et la raison est retournée à Claude comme l'erreur de l'outil, équivalent à un hook de commande avec `permissionDecision: "deny"`2482* `PreToolUse` : l'appel d'outil est refusé et la raison est retournée à Claude comme l'erreur de l'outil, équivalent à un hook de commande avec `permissionDecision: "deny"`

2423* `PostToolUse`, `PostToolBatch`, `UserPromptSubmit` et `UserPromptExpansion` : le tour se termine et la raison apparaît dans le chat comme une ligne d'avertissement, équivalent à retourner `"continue": false` d'un hook de commande2483* `PostToolUse` : par défaut le tour se termine et la raison apparaît dans le chat comme une ligne d'avertissement. Définissez `continueOnBlock: true` pour renvoyer la raison à Claude et continuer le tour à la place

2484* `PostToolBatch`, `UserPromptSubmit` et `UserPromptExpansion` : le tour se termine et la raison apparaît comme une ligne d'avertissement. Ces événements terminent le tour sur `decision: "block"` indépendamment de `continue`

2424* `PostToolUseFailure`, `TaskCreated` et `TaskCompleted` : la raison est retournée à Claude comme une erreur d'outil, similaire à `PreToolUse`2485* `PostToolUseFailure`, `TaskCreated` et `TaskCompleted` : la raison est retournée à Claude comme une erreur d'outil, similaire à `PreToolUse`

2425* `PermissionRequest` : `ok: false` n'a aucun effet. Pour refuser une approbation d'un hook, utilisez un [hook de commande](#command-hook-fields) retournant `hookSpecificOutput.decision.behavior: "deny"`2486* `PermissionRequest` : `ok: false` n'a aucun effet. Pour refuser une approbation d'un hook, utilisez un [hook de commande](#command-hook-fields) retournant `hookSpecificOutput.decision.behavior: "deny"`

2426 2487 


2579 "hooks": [2640 "hooks": [

2580 {2641 {

2581 "type": "command",2642 "type": "command",

2582 "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/run-tests-async.sh",2643 "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/run-tests-async.sh",

2644 "args": [],

2583 "async": true,2645 "async": true,

2584 "timeout": 3002646 "timeout": 300

2585 }2647 }


2616* **Validez et nettoyez les entrées** : ne faites jamais confiance aux données d'entrée aveuglément2678* **Validez et nettoyez les entrées** : ne faites jamais confiance aux données d'entrée aveuglément

2617* **Citez toujours les variables shell** : utilisez `"$VAR"` pas `$VAR`2679* **Citez toujours les variables shell** : utilisez `"$VAR"` pas `$VAR`

2618* **Bloquez la traversée de répertoires** : vérifiez les `..` dans les chemins de fichiers2680* **Bloquez la traversée de répertoires** : vérifiez les `..` dans les chemins de fichiers

2619* **Utilisez les chemins absolus** : spécifiez les chemins complets pour les scripts, en utilisant `"$CLAUDE_PROJECT_DIR"` pour la racine du projet2681* **Utilisez les chemins absolus** : spécifiez les chemins complets pour les scripts. En forme exec, utilisez `${CLAUDE_PROJECT_DIR}` et le chemin n'a pas besoin de guillemets. En forme shell, enveloppez-le dans des guillemets doubles

2620* **Ignorez les fichiers sensibles** : évitez `.env`, `.git/`, les clés, etc.2682* **Ignorez les fichiers sensibles** : évitez `.env`, `.git/`, les clés, etc.

2621 2683 

2622## Outil PowerShell sur Windows2684## Outil PowerShell sur Windows

hooks-guide.md +3 −3

Details

864 864 

865### Limitations865### Limitations

866 866 

867* Les hooks de commande communiquent uniquement via stdout, stderr et les codes de sortie. Ils ne peuvent pas déclencher directement des commandes `/` ou des appels d'outils. Le texte retourné via `additionalContext` est injecté comme un rappel système que Claude lit en tant que texte brut. Les hooks HTTP communiquent via le corps de la réponse à la place.867* Les hooks de commande communiquent uniquement via stdout, stderr et les codes de sortie. Ils ne peuvent pas déclencher des commandes `/` ou des appels d'outils. Le texte retourné via `additionalContext` est injecté comme un rappel système que Claude lit en tant que texte brut. Les hooks HTTP communiquent via le corps de la réponse à la place.

868* Le délai d'expiration du hook est de 10 minutes par défaut, configurable par hook avec le champ `timeout` (en secondes).868* Le délai d'expiration du hook est de 10 minutes par défaut, configurable par hook avec le champ `timeout` (en secondes).

869* Les hooks `PostToolUse` ne peuvent pas annuler les actions puisque l'outil a déjà été exécuté.869* Les hooks `PostToolUse` ne peuvent pas annuler les actions puisque l'outil a déjà été exécuté.

870* Les hooks `PermissionRequest` ne se déclenchent pas en [mode non-interactif](/fr/headless) (`-p`). Utilisez les hooks `PreToolUse` pour les décisions de permission automatisées.870* Les hooks `PermissionRequest` ne se déclenchent pas en [mode non-interactif](/fr/headless) (`-p`). Utilisez les hooks `PreToolUse` pour les décisions de permission automatisées.


895 echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh895 echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | ./my-hook.sh

896 echo $? # Check the exit code896 echo $? # Check the exit code

897 ```897 ```

898* Si vous voyez « command not found », utilisez des chemins absolus ou `$CLAUDE_PROJECT_DIR` pour référencer les scripts898* Si vous voyez « command not found », utilisez des chemins absolus ou `${CLAUDE_PROJECT_DIR}` pour référencer les scripts. Pour éviter complètement les guillemets du shell, ajoutez `"args": []` pour basculer vers la [forme exec](/fr/hooks#exec-form-and-shell-form), qui génère le script directement sans shell

899* Si vous voyez « jq: command not found », installez `jq` ou utilisez Python/Node.js pour l'analyse JSON899* Si vous voyez « jq: command not found », installez `jq` ou utilisez Python/Node.js pour l'analyse JSON

900* Si le script ne s'exécute pas du tout, rendez-le exécutable : `chmod +x ./my-hook.sh`900* Si le script ne s'exécute pas du tout, rendez-le exécutable : `chmod +x ./my-hook.sh`

901 901 


926 926 

927Claude Code affiche une erreur d'analyse JSON même si votre script de hook produit du JSON valide.927Claude Code affiche une erreur d'analyse JSON même si votre script de hook produit du JSON valide.

928 928 

929Lorsque Claude Code exécute un hook, il génère un shell qui source votre profil (`~/.zshrc` ou `~/.bashrc`). Si votre profil contient des instructions `echo` inconditionnelles, cette sortie est ajoutée au début de votre JSON du hook :929Lorsque Claude Code exécute un hook de commande sous forme de shell (un sans `args`), il génère `sh -c` sur macOS et Linux ou Git Bash sur Windows par défaut. Ce shell est non-interactif, mais Git Bash et certaines configurations (comme `BASH_ENV` pointant vers `~/.bashrc`) sourcent toujours votre profil. Si ce profil contient des instructions `echo` inconditionnelles, la sortie est ajoutée au début de votre JSON du hook :

930 930 

931```text theme={null}931```text theme={null}

932Shell ready on arm64932Shell ready on arm64

Details

9## Raccourcis clavier9## Raccourcis clavier

10 10 

11<Note>11<Note>

12 Les raccourcis clavier peuvent varier selon la plateforme et le terminal. Appuyez sur `?` pour voir les raccourcis disponibles pour votre environnement.12 Les raccourcis clavier peuvent varier selon la plateforme et le terminal. En [rendu plein écran](/fr/fullscreen), appuyez sur `?` dans la visionneuse de transcription pour voir les raccourcis disponibles là-bas.

13 13 

14 **Utilisateurs macOS** : Les raccourcis de la touche Option/Alt (`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`) nécessitent de configurer Option en tant que Meta dans votre terminal :14 **Utilisateurs macOS** : Les raccourcis de la touche Option/Alt (`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`) nécessitent de configurer Option en tant que Meta dans votre terminal :

15 15 


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

37| `Flèches gauche/droite` | Parcourir les onglets de dialogue | Naviguez entre les onglets dans les dialogues de permission et les menus |37| `Flèches gauche/droite` | Parcourir les onglets de dialogue | Naviguez entre les onglets dans les dialogues de permission et les menus |

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

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

39| `Esc` + `Esc` | Rembobiner ou résumer | Restaurer le code et/ou la conversation à un point antérieur, ou résumer à partir d'un message sélectionné |40| `Esc` + `Esc` | Rembobiner ou résumer | Restaurer le code et/ou la conversation à un point antérieur, ou résumer à partir d'un message sélectionné |

40| `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). |41| `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). |

41| `Option+P` (macOS) ou `Alt+P` (Windows/Linux) | Changer de modèle | Changez de modèles sans effacer votre invite |42| `Option+P` (macOS) ou `Alt+P` (Windows/Linux) | Changer de modèle | Changez de modèles sans effacer votre invite |


86 87 

87### Visionneuse de transcription88### Visionneuse de transcription

88 89 

89Lorsque la visionneuse de transcription est ouverte (basculée avec `Ctrl+O`), ces raccourcis sont disponibles. `Ctrl+E` peut être réaffecté via [`transcript:toggleShowAll`](/fr/keybindings).90Lorsque la visionneuse de transcription est ouverte (basculée avec `Ctrl+O`), ces raccourcis sont disponibles. En [rendu plein écran](/fr/fullscreen), appuyez sur `?` pour afficher le panneau de référence complet des raccourcis clavier à l'intérieur de la visionneuse. `Ctrl+E` peut être réaffecté via [`transcript:toggleShowAll`](/fr/keybindings).

90 91 

91| Raccourci | Description |92| Raccourci | Description |

92| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |93| :------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

94| `?` | Basculer le panneau d'aide des raccourcis clavier. Nécessite le [rendu plein écran](/fr/fullscreen) |

95| `{` / `}` | Accéder à l'invite utilisateur précédente ou suivante, comme le mouvement de paragraphe vim. Nécessite le [rendu plein écran](/fr/fullscreen) |

93| `Ctrl+E` | Basculer afficher tout le contenu |96| `Ctrl+E` | Basculer afficher tout le contenu |

94| `[` | Écrire la conversation complète dans le scrollback natif de votre terminal afin que `Cmd+F`, le mode copie tmux et d'autres outils natifs puissent la rechercher. Nécessite le [rendu plein écran](/fr/fullscreen#search-and-review-the-conversation) |97| `[` | Écrire la conversation complète dans le scrollback natif de votre terminal afin que `Cmd+F`, le mode copie tmux et d'autres outils natifs puissent la rechercher. Nécessite le [rendu plein écran](/fr/fullscreen#search-and-review-the-conversation) |

95| `v` | Écrire la conversation dans un fichier temporaire et l'ouvrir dans `$VISUAL` ou `$EDITOR`. Nécessite le [rendu plein écran](/fr/fullscreen) |98| `v` | Écrire la conversation dans un fichier temporaire et l'ouvrir dans `$VISUAL` ou `$EDITOR`. Nécessite le [rendu plein écran](/fr/fullscreen) |

llm-gateway.md +6 −2

Details

39 39 

40**En-têtes de requête**40**En-têtes de requête**

41 41 

42Claude Code inclut les en-têtes suivants sur chaque requête API :42Claude Code inclut les en-têtes suivants sur les requêtes API :

43 43 

44| En-tête | Description |44| En-tête | Description |

45| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |45| :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

46| `X-Claude-Code-Session-Id` | Un identifiant unique pour la session Claude Code actuelle. Les proxies peuvent utiliser ceci pour agréger toutes les requêtes API d'une seule session sans analyser le corps de la requête. |46| `X-Claude-Code-Session-Id` | Un identifiant unique pour la session Claude Code actuelle. Les proxies peuvent utiliser ceci pour agréger toutes les requêtes API d'une seule session sans analyser le corps de la requête. |

47| `X-Claude-Code-Agent-Id` | Identifiant du sous-agent ou du coéquipier qui a émis la requête. Votre proxy peut utiliser ceci pour attribuer le coût API aux sous-agents parallèles individuels au sein d'une session, sans analyser le corps de la requête. Présent uniquement pour les requêtes émises par un sous-agent ou un coéquipier en cours de traitement. |

48| `X-Claude-Code-Parent-Agent-Id` | Identifiant de l'agent qui a généré l'agent effectuant la requête. Utilisez ceci avec `X-Claude-Code-Agent-Id` pour attribuer les coûts API entre les agents imbriqués dans votre proxy. Présent uniquement lorsque l'agent demandeur a lui-même été généré par un autre agent. |

49 

50Les deux en-têtes d'identifiant d'agent sont des identifiants éphémères par génération, et non des identifiants persistants d'utilisateur ou d'appareil.

47 51 

48Claude Code ajoute également un court bloc d'attribution au début de l'invite système contenant la version du client et une empreinte dérivée de la conversation. L'API Anthropic supprime ce bloc avant le traitement, il n'affecte donc pas la mise en cache des invites de première partie. Si votre passerelle implémente son propre cache d'invite basé sur le corps complet de la requête, définissez [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/fr/env-vars) pour l'omettre.52Claude Code ajoute également un court bloc d'attribution au début de l'invite système contenant la version du client et une empreinte dérivée de la conversation. L'API Anthropic supprime ce bloc avant le traitement, il n'affecte donc pas la mise en cache des invites de première partie. Si votre passerelle implémente son propre cache d'invite basé sur le corps complet de la requête, définissez [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/fr/env-vars) pour l'omettre.

49 53 

mcp.md +35 −221

Details

6 6 

7> Découvrez comment connecter Claude Code à vos outils avec le Model Context Protocol.7> Découvrez comment connecter Claude Code à vos outils avec le Model Context Protocol.

8 8 

9export const MCPServersTable = ({platform = "all"}) => {

10 const ifYouAreAnAiAgentReadingThisYouShouldInsteadFetch = 'https://api.anthropic.com/mcp-registry/docs';

11 const [servers, setServers] = useState([]);

12 const [loading, setLoading] = useState(true);

13 const [error, setError] = useState(null);

14 useEffect(() => {

15 const fetchServers = async () => {

16 try {

17 setLoading(true);

18 const allServers = [];

19 let cursor = null;

20 do {

21 const url = new URL('https://api.anthropic.com/mcp-registry/v0/servers');

22 url.searchParams.set('version', 'latest');

23 url.searchParams.set('visibility', 'commercial');

24 url.searchParams.set('limit', '100');

25 if (cursor) {

26 url.searchParams.set('cursor', cursor);

27 }

28 const response = await fetch(url);

29 if (!response.ok) {

30 throw new Error(`Failed to fetch MCP registry: ${response.status}`);

31 }

32 const data = await response.json();

33 allServers.push(...data.servers);

34 cursor = data.metadata?.nextCursor || null;

35 } while (cursor);

36 const transformedServers = allServers.map(item => {

37 const server = item.server;

38 const meta = item._meta?.['com.anthropic.api/mcp-registry'] || ({});

39 const worksWith = meta.worksWith || [];

40 const availability = {

41 claudeCode: worksWith.includes('claude-code'),

42 mcpConnector: worksWith.includes('claude-api'),

43 claudeDesktop: worksWith.includes('claude-desktop')

44 };

45 const remotes = server.remotes || [];

46 const httpRemote = remotes.find(r => r.type === 'streamable-http');

47 const sseRemote = remotes.find(r => r.type === 'sse');

48 const preferredRemote = httpRemote || sseRemote;

49 const remoteUrl = preferredRemote?.url || meta.url;

50 const remoteType = preferredRemote?.type;

51 const isTemplatedUrl = remoteUrl?.includes('{');

52 let setupUrl;

53 if (isTemplatedUrl && meta.requiredFields) {

54 const urlField = meta.requiredFields.find(f => f.field === 'url');

55 setupUrl = urlField?.sourceUrl || meta.documentation;

56 }

57 const urls = {};

58 if (!isTemplatedUrl) {

59 if (remoteType === 'streamable-http') {

60 urls.http = remoteUrl;

61 } else if (remoteType === 'sse') {

62 urls.sse = remoteUrl;

63 }

64 }

65 let envVars = [];

66 if (server.packages && server.packages.length > 0) {

67 const npmPackage = server.packages.find(p => p.registryType === 'npm');

68 if (npmPackage) {

69 urls.stdio = `npx -y ${npmPackage.identifier}`;

70 if (npmPackage.environmentVariables) {

71 envVars = npmPackage.environmentVariables;

72 }

73 }

74 }

75 return {

76 name: meta.displayName || server.title || server.name,

77 description: meta.oneLiner || server.description,

78 documentation: meta.documentation,

79 urls: urls,

80 envVars: envVars,

81 availability: availability,

82 customCommands: meta.claudeCodeCopyText ? {

83 claudeCode: meta.claudeCodeCopyText

84 } : undefined,

85 setupUrl: setupUrl

86 };

87 });

88 setServers(transformedServers);

89 setError(null);

90 } catch (err) {

91 setError(err.message);

92 console.error('Error fetching MCP registry:', err);

93 } finally {

94 setLoading(false);

95 }

96 };

97 fetchServers();

98 }, []);

99 const generateClaudeCodeCommand = server => {

100 if (server.customCommands && server.customCommands.claudeCode) {

101 return server.customCommands.claudeCode.replace('--transport streamable-http', '--transport http');

102 }

103 const serverSlug = server.name.toLowerCase().replace(/[^a-z0-9]/g, '-');

104 if (server.urls.http) {

105 return `claude mcp add ${serverSlug} --transport http ${server.urls.http}`;

106 }

107 if (server.urls.sse) {

108 return `claude mcp add ${serverSlug} --transport sse ${server.urls.sse}`;

109 }

110 if (server.urls.stdio) {

111 const envFlags = server.envVars && server.envVars.length > 0 ? server.envVars.map(v => `--env ${v.name}=YOUR_${v.name}`).join(' ') : '';

112 const baseCommand = `claude mcp add ${serverSlug} --transport stdio`;

113 return envFlags ? `${baseCommand} ${envFlags} -- ${server.urls.stdio}` : `${baseCommand} -- ${server.urls.stdio}`;

114 }

115 return null;

116 };

117 if (loading) {

118 return <div>Loading MCP servers...</div>;

119 }

120 if (error) {

121 return <div>Error loading MCP servers: {error}</div>;

122 }

123 const filteredServers = servers.filter(server => {

124 if (platform === "claudeCode") {

125 return server.availability.claudeCode;

126 } else if (platform === "mcpConnector") {

127 return server.availability.mcpConnector;

128 } else if (platform === "claudeDesktop") {

129 return server.availability.claudeDesktop;

130 } else if (platform === "all") {

131 return true;

132 } else {

133 throw new Error(`Unknown platform: ${platform}`);

134 }

135 });

136 return <>

137 <style jsx>{`

138 .cards-container {

139 display: grid;

140 gap: 1rem;

141 margin-bottom: 2rem;

142 }

143 .server-card {

144 border: 1px solid var(--border-color, #e5e7eb);

145 border-radius: 6px;

146 padding: 1rem;

147 }

148 .command-row {

149 display: flex;

150 align-items: center;

151 gap: 0.25rem;

152 }

153 .command-row code {

154 font-size: 0.75rem;

155 overflow-x: auto;

156 }

157 `}</style>

158 

159 <div className="cards-container">

160 {filteredServers.map(server => {

161 const claudeCodeCommand = generateClaudeCodeCommand(server);

162 const mcpUrl = server.urls.http || server.urls.sse;

163 const commandToShow = platform === "claudeCode" ? claudeCodeCommand : mcpUrl;

164 return <div key={server.name} className="server-card">

165 <div>

166 {server.documentation ? <a href={server.documentation}>

167 <strong>{server.name}</strong>

168 </a> : <strong>{server.name}</strong>}

169 </div>

170 

171 <p style={{

172 margin: '0.5rem 0',

173 fontSize: '0.9rem'

174 }}>

175 {server.description}

176 </p>

177 

178 {server.setupUrl && <p style={{

179 margin: '0.25rem 0',

180 fontSize: '0.8rem',

181 fontStyle: 'italic',

182 opacity: 0.7

183 }}>

184 Requires user-specific URL.{' '}

185 <a href={server.setupUrl} style={{

186 textDecoration: 'underline'

187 }}>

188 Get your URL here

189 </a>.

190 </p>}

191 

192 {commandToShow && !server.setupUrl && <>

193 <p style={{

194 display: 'block',

195 fontSize: '0.75rem',

196 fontWeight: 500,

197 minWidth: 'fit-content',

198 marginTop: '0.5rem',

199 marginBottom: 0

200 }}>

201 {platform === "claudeCode" ? "Command" : "URL"}

202 </p>

203 <div className="command-row">

204 <code>

205 {commandToShow}

206 </code>

207 </div>

208 </>}

209 </div>;

210 })}

211 </div>

212 </>;

213};

214 

215Claude Code peut se connecter à des centaines d'outils externes et de sources de données via le [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), une norme open source pour les intégrations IA-outils. Les serveurs MCP donnent à Claude Code accès à vos outils, bases de données et API.9Claude Code peut se connecter à des centaines d'outils externes et de sources de données via le [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction), une norme open source pour les intégrations IA-outils. Les serveurs MCP donnent à Claude Code accès à vos outils, bases de données et API.

216 10 

217Connectez un serveur lorsque vous vous trouvez à copier des données dans le chat à partir d'un autre outil, comme un suivi de problèmes ou un tableau de bord de surveillance. Une fois connecté, Claude peut lire et agir sur ce système directement au lieu de travailler à partir de ce que vous collez.11Connectez un serveur lorsque vous vous trouvez à copier des données dans le chat à partir d'un autre outil, comme un suivi de problèmes ou un tableau de bord de surveillance. Une fois connecté, Claude peut lire et agir sur ce système directement au lieu de travailler à partir de ce que vous collez.


227* **Automatiser les flux de travail** : « Créer des brouillons Gmail invitant ces 10 utilisateurs à une session de rétroaction sur la nouvelle fonctionnalité. »21* **Automatiser les flux de travail** : « Créer des brouillons Gmail invitant ces 10 utilisateurs à une session de rétroaction sur la nouvelle fonctionnalité. »

228* **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.22* **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.

229 23 

230## Serveurs MCP populaires24## Trouver et créer des serveurs MCP

231 25 

232Voici quelques serveurs MCP couramment utilisés que vous pouvez connecter à Claude Code :26Parcourez 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`.

233 27 

234<Warning>28<Warning>

235 Utilisez les serveurs MCP tiers à vos propres risques - Anthropic n'a pas vérifié29 Vérifiez que vous faites confiance à chaque serveur avant de le connecter. Les serveurs qui récupèrent du contenu externe peuvent vous exposer à un [risque d'injection de prompt](/fr/security#protect-against-prompt-injection).

236 l'exactitude ou la sécurité de tous ces serveurs.

237 Assurez-vous que vous faites confiance aux serveurs MCP que vous installez.

238 Soyez particulièrement prudent lors de l'utilisation de serveurs MCP qui pourraient récupérer du contenu non approuvé,

239 car ceux-ci peuvent vous exposer à un risque d'injection de prompt.

240</Warning>30</Warning>

241 31 

242<MCPServersTable platform="claudeCode" />32Pour créer votre propre serveur, consultez le [guide du serveur MCP](https://modelcontextprotocol.io/docs/develop/build-server) pour les principes fondamentaux du protocole et la [documentation de création de connecteurs Claude](https://claude.com/docs/connectors/building) pour l'authentification, les tests et la soumission au répertoire.

243 33 

244<Note>34Vous pouvez également faire en sorte que Claude crée un serveur pour vous avec le plugin officiel [`mcp-server-dev`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/mcp-server-dev).

245 **Besoin d'une intégration spécifique ?** [Trouvez des centaines d'autres serveurs MCP sur GitHub](https://github.com/modelcontextprotocol/servers), ou créez le vôtre en utilisant le [MCP SDK](https://modelcontextprotocol.io/quickstart/server).35 

246</Note>36<Steps>

37 <Step title="Installer le plugin">

38 Dans une session Claude Code, exécutez :

39 

40 ```

41 /plugin install mcp-server-dev@claude-plugins-official

42 ```

43 

44 Ensuite, exécutez `/reload-plugins` pour l'activer dans la session actuelle.

45 </Step>

46 

47 <Step title="Exécuter la compétence de création">

48 ```

49 /mcp-server-dev:build-mcp-server

50 ```

51 

52 Claude vous pose des questions sur votre cas d'usage et crée un serveur HTTP distant ou un serveur stdio local.

53 </Step>

54</Steps>

247 55 

248## Installation des serveurs MCP56## Installation des serveurs MCP

249 57 


289 97 

290Les 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.98Les 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.

291 99 

100Claude Code définit `CLAUDE_PROJECT_DIR` dans l'environnement du serveur généré à la racine du projet, afin que votre serveur puisse résoudre les chemins relatifs au projet sans dépendre du répertoire de travail. C'est le même répertoire que les hooks reçoivent dans leur variable `CLAUDE_PROJECT_DIR`. Lisez-le depuis l'intérieur de votre processus serveur, par exemple `process.env.CLAUDE_PROJECT_DIR` en Node ou `os.environ["CLAUDE_PROJECT_DIR"]` en Python. Votre serveur peut également appeler la demande MCP `roots/list`, qui retourne le répertoire à partir duquel Claude Code a été lancé.

101 

102Cette variable est définie dans l'environnement du serveur, pas dans l'environnement propre de Claude Code, donc la référencer via l'expansion `${VAR}` dans un fichier `.mcp.json` de portée projet ou utilisateur `command` ou `args` nécessite une valeur par défaut telle que `${CLAUDE_PROJECT_DIR:-.}`. Les configurations MCP fournies par les plugins remplacent `${CLAUDE_PROJECT_DIR}` directement et n'ont pas besoin de la valeur par défaut.

103 

292```bash theme={null}104```bash theme={null}

293# Syntaxe de base105# Syntaxe de base

294claude mcp add [options] <name> -- <command> [args...]106claude mcp add [options] <name> -- <command> [args...]


406**Fonctionnalités MCP du plugin** :218**Fonctionnalités MCP du plugin** :

407 219 

408* **Cycle de vie automatique** : Au démarrage de la session, les serveurs des plugins activés se connectent automatiquement. Si vous activez ou désactivez un plugin pendant une session, exécutez `/reload-plugins` pour connecter ou déconnecter ses serveurs MCP220* **Cycle de vie automatique** : Au démarrage de la session, les serveurs des plugins activés se connectent automatiquement. Si vous activez ou désactivez un plugin pendant une session, exécutez `/reload-plugins` pour connecter ou déconnecter ses serveurs MCP

409* **Variables d'environnement** : utilisez `${CLAUDE_PLUGIN_ROOT}` pour les fichiers du plugin groupés et `${CLAUDE_PLUGIN_DATA}` pour l'[état persistant](/fr/plugins-reference#persistent-data-directory) qui survit aux mises à jour du plugin221* **Variables d'environnement** : utilisez `${CLAUDE_PLUGIN_ROOT}` pour les fichiers du plugin groupés, `${CLAUDE_PLUGIN_DATA}` pour l'[état persistant](/fr/plugins-reference#persistent-data-directory) qui survit aux mises à jour du plugin, et `${CLAUDE_PROJECT_DIR}` pour la racine du projet stable

410* **Accès aux variables d'environnement utilisateur** : Accès aux mêmes variables d'environnement que les serveurs configurés manuellement222* **Accès aux variables d'environnement utilisateur** : Accès aux mêmes variables d'environnement que les serveurs configurés manuellement

411* **Types de transport multiples** : Support des transports stdio, SSE et HTTP (le support des transports peut varier selon le serveur)223* **Types de transport multiples** : Support des transports stdio, SSE et HTTP (le support des transports peut varier selon le serveur)

412 224 


646 458 

647De nombreux serveurs MCP basés sur le cloud nécessitent une authentification. Claude Code supporte OAuth 2.0 pour les connexions sécurisées.459De nombreux serveurs MCP basés sur le cloud nécessitent une authentification. Claude Code supporte OAuth 2.0 pour les connexions sécurisées.

648 460 

461Claude Code marque un serveur distant comme nécessitant une authentification lorsque le serveur répond avec `401 Unauthorized` et un en-tête `WWW-Authenticate` pointant vers son serveur d'autorisation. Tout serveur personnalisé qui retourne cette réponse obtient le même flux d'authentification `/mcp` que tout autre serveur distant.

462 

649<Steps>463<Steps>

650 <Step title="Ajouter le serveur qui nécessite une authentification">464 <Step title="Ajouter le serveur qui nécessite une authentification">

651 Par exemple :465 Par exemple :


1139 953 

1140### Configurer la recherche d'outils954### Configurer la recherche d'outils

1141 955 

1142La recherche d'outils est activée par défaut : les outils MCP sont différés et découverts à la demande. Elle est désactivée par défaut sur Vertex AI, qui n'accepte pas l'en-tête bêta de recherche d'outils, et 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 opter pour. Cette fonctionnalité nécessite des modèles qui supportent les blocs `tool_reference` : Sonnet 4 et ultérieur, ou Opus 4 et ultérieur. Les modèles Haiku ne supportent pas la recherche d'outils.956La recherche d'outils est activée par défaut : les outils MCP sont différés et découverts à la demande. Elle est désactivée par défaut sur Vertex AI, qui n'accepte pas l'en-tête bêta de recherche d'outils, et 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`. Si votre proxy transfère les blocs `tool_reference`, définissez `ENABLE_TOOL_SEARCH` explicitement pour opter pour. Cette fonctionnalité nécessite des modèles qui supportent les blocs `tool_reference` : Sonnet 4 et ultérieur, ou Opus 4 et ultérieur. Les modèles Haiku ne supportent pas la recherche d'outils.

1143 957 

1144Contrôlez le comportement de la recherche d'outils avec la variable d'environnement `ENABLE_TOOL_SEARCH` :958Contrôlez le comportement de la recherche d'outils avec la variable d'environnement `ENABLE_TOOL_SEARCH` :

1145 959 

1146| Valeur | Comportement |960| Valeur | Comportement |

1147| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- |961| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1148| (non défini) | Tous les outils MCP différés et chargés à la demande. Revient au chargement à l'avance sur Vertex AI ou lorsque `ANTHROPIC_BASE_URL` est un hôte non-propriétaire |962| (non défini) | Tous les outils MCP différés et chargés à la demande. Revient au chargement à l'avance sur Vertex AI ou lorsque `ANTHROPIC_BASE_URL` est un hôte non-propriétaire |

1149| `true` | Tous les outils MCP différés, y compris sur Vertex AI et pour `ANTHROPIC_BASE_URL` non-propriétaire |963| `true` | Tous les outils MCP différés. Claude Code envoie l'en-tête bêta même sur Vertex AI et via les proxies. Les demandes échouent si le backend ne supporte pas les blocs `tool_reference` |

1150| `auto` | Mode seuil : les outils se chargent à l'avance s'ils s'ajustent dans 10 % de la fenêtre de contexte, différés sinon |964| `auto` | Mode seuil : les outils se chargent à l'avance s'ils s'ajustent dans 10 % de la fenêtre de contexte, différés sinon |

1151| `auto:<N>` | Mode seuil avec un pourcentage personnalisé, où `<N>` est 0-100 (par exemple, `auto:5` pour 5 %) |965| `auto:<N>` | Mode seuil avec un pourcentage personnalisé, où `<N>` est 0-100 (par exemple, `auto:5` pour 5 %) |

1152| `false` | Tous les outils MCP chargés à l'avance, pas de différé |966| `false` | Tous les outils MCP chargés à l'avance, pas de différé |

memory.md +16 −0

Details

272 </Step>272 </Step>

273</Steps>273</Steps>

274 274 

275La clé `claudeMd` vous permet de placer le contenu CLAUDE.md géré directement dans `managed-settings.json` au lieu de déployer un fichier séparé.

276 

277**Portée** : chaque session Claude Code sur la machine, dans chaque référentiel. Pour des conseils spécifiques au référentiel, validez plutôt un CLAUDE.md de projet.

278 

279**Précédence** : identique à un fichier CLAUDE.md géré. Se charge avant CLAUDE.md utilisateur et projet.

280 

281**Où c'est respecté** : paramètres gérés et politiques uniquement. Définir `claudeMd` dans les paramètres utilisateur, projet ou locaux n'a aucun effet.

282 

283L'exemple ci-dessous ajoute des instructions comportementales directement dans un fichier de paramètres gérés :

284 

285```json theme={null}

286{

287 "claudeMd": "Exécutez toujours `make lint` avant de valider.\nNe poussez jamais directement vers main."

288}

289```

290 

275Un CLAUDE.md géré et les [paramètres gérés](/fr/settings#settings-files) servent des objectifs différents. Utilisez les paramètres pour l'application technique et CLAUDE.md pour les conseils comportementaux :291Un CLAUDE.md géré et les [paramètres gérés](/fr/settings#settings-files) servent des objectifs différents. Utilisez les paramètres pour l'application technique et CLAUDE.md pour les conseils comportementaux :

276 292 

277| Préoccupation | Configurer dans |293| Préoccupation | Configurer dans |

model-config.md +2 −0

Details

55 55 

56Votre sélection `/model` est enregistrée dans les paramètres utilisateur et persiste entre les redémarrages. À partir de la v2.1.117, si le fichier `.claude/settings.json` du projet épingle un modèle différent, Claude Code écrit également votre choix dans `.claude/settings.local.json` afin qu'il continue à s'appliquer dans ce projet après un redémarrage. Les paramètres gérés ont la priorité et se réappliquent au prochain lancement.56Votre sélection `/model` est enregistrée dans les paramètres utilisateur et persiste entre les redémarrages. À partir de la v2.1.117, si le fichier `.claude/settings.json` du projet épingle un modèle différent, Claude Code écrit également votre choix dans `.claude/settings.local.json` afin qu'il continue à s'appliquer dans ce projet après un redémarrage. Les paramètres gérés ont la priorité et se réappliquent au prochain lancement.

57 57 

58L'indicateur `--model` et la variable d'environnement `ANTHROPIC_MODEL` s'appliquent uniquement à la session que vous lancez avec eux et ne sont pas enregistrés. Pour exécuter différents modèles dans différents terminaux en même temps, lancez chacun avec son propre indicateur `--model` plutôt que de basculer avec `/model`.

59 

58Lorsque le modèle actif au démarrage provient des paramètres du projet ou gérés plutôt que de votre propre sélection, l'en-tête de démarrage indique quel fichier de paramètres l'a défini. Exécutez `/model` pour remplacer la sélection pour la session actuelle.60Lorsque le modèle actif au démarrage provient des paramètres du projet ou gérés plutôt que de votre propre sélection, l'en-tête de démarrage indique quel fichier de paramètres l'a défini. Exécutez `/model` pour remplacer la sélection pour la session actuelle.

59 61 

60Exemple d'utilisation :62Exemple d'utilisation :

Details

166**`claude_code.llm_request`**166**`claude_code.llm_request`**

167 167 

168| Attribut | Description | Contrôlé par |168| Attribut | Description | Contrôlé par |

169| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------------ |169| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |

170| `model` | Identifiant du modèle | |170| `model` | Identifiant du modèle | |

171| `gen_ai.system` | Toujours `anthropic`. Convention sémantique GenAI OpenTelemetry | |171| `gen_ai.system` | Toujours `anthropic`. Convention sémantique GenAI OpenTelemetry | |

172| `gen_ai.request.model` | Même valeur que `model`. Convention sémantique GenAI OpenTelemetry | |172| `gen_ai.request.model` | Même valeur que `model`. Convention sémantique GenAI OpenTelemetry | |

173| `query_source` | Sous-système qui a émis la demande, tel que `repl_main_thread` ou un nom de sous-agent | |173| `query_source` | Sous-système qui a émis la demande, tel que `repl_main_thread` ou un nom de sous-agent | |

174| `agent_id` | Identifiant du sous-agent ou du coéquipier qui a émis la demande. Absent dans la session principale | |

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

174| `speed` | `fast` ou `normal` | |176| `speed` | `fast` ou `normal` | |

175| `llm_request.context` | `interaction`, `tool`, ou `standalone` selon l'intervalle parent | |177| `llm_request.context` | `interaction`, `tool`, ou `standalone` selon l'intervalle parent | |

176| `duration_ms` | Durée murale incluant les tentatives | |178| `duration_ms` | Durée murale incluant les tentatives | |


421 423 

422#### Compteur de demandes de tirage424#### Compteur de demandes de tirage

423 425 

424Incrémenté lors de la création de demandes de tirage via Claude Code.426Incrémenté lors de la création de demandes de tirage ou de demandes de fusion via une commande shell ou un outil MCP.

425 427 

426**Attributs** :428**Attributs** :

427 429 


446* `query_source` : Catégorie du sous-système qui a émis la demande. L'un de `"main"`, `"subagent"`, ou `"auxiliary"`448* `query_source` : Catégorie du sous-système qui a émis la demande. L'un de `"main"`, `"subagent"`, ou `"auxiliary"`

447* `speed` : `"fast"` lorsque la demande a utilisé le mode rapide. Absent sinon449* `speed` : `"fast"` lorsque la demande a utilisé le mode rapide. Absent sinon

448* `effort` : [Niveau d'effort](/fr/model-config#adjust-effort-level) appliqué à la demande : `"low"`, `"medium"`, `"high"`, `"xhigh"`, ou `"max"`. Absent lorsque le modèle ne supporte pas l'effort.450* `effort` : [Niveau d'effort](/fr/model-config#adjust-effort-level) appliqué à la demande : `"low"`, `"medium"`, `"high"`, `"xhigh"`, ou `"max"`. Absent lorsque le modèle ne supporte pas l'effort.

451* `agent.name` : Type de sous-agent qui a émis la demande. Les noms d'agents intégrés et les agents des plugins de la place de marché officielle apparaissent textuellement. Les autres noms d'agents définis par l'utilisateur sont remplacés par `"custom"`. Absent lorsque la demande n'a pas été émise par un type de sous-agent nommé.

452* `skill.name` : Compétence active pour la demande, définie par l'outil Skill, une commande `/`, ou héritée par un sous-agent généré. Les noms de compétences intégrées, groupées, définies par l'utilisateur et de plugin de place de marché officielle apparaissent textuellement. Les noms de compétences de plugin tiers sont remplacés par `"third-party"`. Absent lorsqu'aucune compétence n'est active.

453* `plugin.name` : Plugin propriétaire lorsque la compétence active ou le sous-agent est fourni par un plugin. Les noms de plugins de place de marché officielle apparaissent textuellement. Les noms de plugins tiers sont remplacés par `"third-party"`. Absent lorsque ni la compétence ni le sous-agent n'a de plugin propriétaire.

454* `marketplace.name` : Place de marché à partir de laquelle le plugin propriétaire a été installé. Émis uniquement pour les plugins de place de marché officielle. Absent sinon.

449 455 

450#### Compteur de jetons456#### Compteur de jetons

451 457 


459* `query_source` : Catégorie du sous-système qui a émis la demande. L'un de `"main"`, `"subagent"`, ou `"auxiliary"`465* `query_source` : Catégorie du sous-système qui a émis la demande. L'un de `"main"`, `"subagent"`, ou `"auxiliary"`

460* `speed` : `"fast"` lorsque la demande a utilisé le mode rapide. Absent sinon466* `speed` : `"fast"` lorsque la demande a utilisé le mode rapide. Absent sinon

461* `effort` : [Niveau d'effort](/fr/model-config#adjust-effort-level) appliqué à la demande. Voir [Compteur de coûts](#cost-counter) pour les détails.467* `effort` : [Niveau d'effort](/fr/model-config#adjust-effort-level) appliqué à la demande. Voir [Compteur de coûts](#cost-counter) pour les détails.

468* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name` : Attribution de compétence, plugin et agent pour la demande. Voir [Compteur de coûts](#cost-counter) pour les définitions et le comportement de masquage.

462 469 

463#### Compteur de décisions de l'outil d'édition de code470#### Compteur de décisions de l'outil d'édition de code

464 471 


647* `tool_use_id` : Identifiant unique pour cette invocation d'outil. Correspond au `tool_use_id` passé aux hooks, permettant la corrélation entre les événements OTel et les données capturées par les hooks.654* `tool_use_id` : Identifiant unique pour cette invocation d'outil. Correspond au `tool_use_id` passé aux hooks, permettant la corrélation entre les événements OTel et les données capturées par les hooks.

648* `decision` : Soit `"accept"` soit `"reject"`655* `decision` : Soit `"accept"` soit `"reject"`

649* `source` : Source de la décision :656* `source` : Source de la décision :

650 * `"config"` : Décidé automatiquement sans invite, basé sur les paramètres du projet, la politique gérée par l'entreprise, les drapeaux `--allowedTools` ou `--disallowedTools`, le mode de permission actif, ou parce que l'outil est intrinsèquement sûr.657 * `"config"` : Décidé automatiquement sans invite, basé sur les paramètres du projet, les règles d'autorisation dans les paramètres personnels de l'utilisateur, la politique gérée par l'entreprise, les drapeaux `--allowedTools` ou `--disallowedTools`, le mode de permission actif, une autorisation limitée à la session d'une invite antérieure dans la même session CLI interactive, ou parce que l'outil est intrinsèquement sûr. L'événement n'indique pas laquelle de ces sources a correspondu.

651 * `"hook"` : Un hook `PreToolUse` ou `PermissionRequest` a retourné la décision.658 * `"hook"` : Un hook `PreToolUse` ou `PermissionRequest` a retourné la décision.

652 * `"user_permanent"` : Émis lorsque l'utilisateur a choisi « Toujours autoriser » lorsqu'il a été invité, en enregistrant une règle dans ses paramètres personnels. Également émis pour les appels ultérieurs qui correspondent à cette règle enregistrée. Traité comme une acceptation.659 * `"user_permanent"` : Émis lorsque l'utilisateur a choisi « Oui, et ne me demande plus pour ... » à une invite de permission, ce qui enregistre une règle d'autorisation dans ses paramètres personnels. Dans la CLI interactive, ceci est émis uniquement pour ce choix lui-même ; les appels ultérieurs qui correspondent à la règle enregistrée émettent `"config"` à la place. Dans le SDK Agent ou les sessions `-p` non-interactives, à la fois le choix initial et les correspondances de règles ultérieures émettent `"user_permanent"`. Traité comme une acceptation.

653 * `"user_temporary"` : Émis lorsque l'utilisateur a choisi « Oui » ou « Oui, pour cette session » lorsqu'il a été invité, sans enregistrer une règle. Également émis pour les appels ultérieurs dans la même session qui correspondent à cette autorisation limitée à la session. Traité comme une acceptation.660 * `"user_temporary"` : Émis lorsque l'utilisateur a choisi « Oui » à une invite de permission pour une approbation unique, ou a choisi l'une des options « ... pendant cette session » sur une invite d'édition ou de lecture de fichier. Dans la CLI interactive, ceci est émis uniquement pour le choix lui-même ; les appels ultérieurs autorisés par cette autorisation limitée à la session émettent `"config"` à la place. Dans le SDK Agent ou les sessions `-p` non-interactives, à la fois le choix et les correspondances ultérieures émettent `"user_temporary"`. Traité comme une acceptation.

654 * `"user_abort"` : Émis lorsque l'utilisateur a fermé l'invite de permission sans répondre. Traité comme un rejet.661 * `"user_abort"` : Émis lorsque l'utilisateur a fermé l'invite de permission sans répondre. Traité comme un rejet.

655 * `"user_reject"` : Émis lorsque l'utilisateur a choisi « Non » lorsqu'il a été invité, ou un appel a correspondu à une règle de refus dans ses paramètres personnels. Traité comme un rejet.662 * `"user_reject"` : Émis lorsque l'utilisateur a choisi « Non » lorsqu'il a été invité, ou un appel a correspondu à une règle de refus dans ses paramètres personnels. Traité comme un rejet.

656 663 


741* `plugin.version` : Version du plugin lorsqu'elle est déclarée dans l'entrée de la place de marché. Pour les places de marché tierces, ceci est inclus uniquement lorsque `OTEL_LOG_TOOL_DETAILS=1`748* `plugin.version` : Version du plugin lorsqu'elle est déclarée dans l'entrée de la place de marché. Pour les places de marché tierces, ceci est inclus uniquement lorsque `OTEL_LOG_TOOL_DETAILS=1`

742* `marketplace.name` : Place de marché à partir de laquelle le plugin a été installé. Pour les places de marché tierces, ceci est inclus uniquement lorsque `OTEL_LOG_TOOL_DETAILS=1`749* `marketplace.name` : Place de marché à partir de laquelle le plugin a été installé. Pour les places de marché tierces, ceci est inclus uniquement lorsque `OTEL_LOG_TOOL_DETAILS=1`

743 750 

751#### Événement de plugin chargé

752 

753Enregistré une fois par plugin activé au démarrage de la session. Utilisez cet événement pour inventorier les plugins actifs dans votre flotte, en complément de `plugin_installed` qui enregistre l'action d'installation elle-même.

754 

755**Nom de l'événement** : `claude_code.plugin_loaded`

756 

757**Attributs** :

758 

759* Tous les [attributs standard](#standard-attributes)

760* `event.name` : `"plugin_loaded"`

761* `event.timestamp` : Horodatage ISO 8601

762* `event.sequence` : Compteur monotone croissant pour ordonner les événements au sein d'une session

763* `plugin.name` : nom du plugin. 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`

764* `marketplace.name` : place de marché à partir de laquelle le plugin a été installé, lorsqu'elle est connue. Masquée à `"third-party"` sous la même condition que `plugin.name`

765* `plugin.version` : version du manifeste du plugin. Inclus uniquement lorsque le nom n'est pas masqué et que le manifeste déclare une version

766* `plugin.scope` : catégorie de provenance du plugin : `"official"`, `"org"`, `"user-local"`, ou `"default-bundle"`

767* `enabled_via` : comment le plugin en est venu à être activé : `"default-enable"`, `"org-policy"`, `"seed-mount"`, ou `"user-install"`

768* `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

769* `has_hooks` : si le plugin contribue des hooks

770* `has_mcp` : si le plugin contribue des serveurs MCP

771* `skill_path_count` : nombre de répertoires de compétences que le plugin déclare

772* `command_path_count` : nombre de répertoires de commandes que le plugin déclare

773* `agent_path_count` : nombre de répertoires d'agents que le plugin déclare

774 

744#### Événement de compétence activée775#### Événement de compétence activée

745 776 

746Enregistré lorsqu'une compétence est invoquée, que Claude l'appelle via l'outil Skill ou que vous l'exécutiez en tant que commande `/`.777Enregistré lorsqu'une compétence est invoquée, que Claude l'appelle via l'outil Skill ou que vous l'exécutiez en tant que commande `/`.


793* `total_retry_duration_ms` : Temps mural total sur toutes les tentatives824* `total_retry_duration_ms` : Temps mural total sur toutes les tentatives

794* `speed` : `"fast"` ou `"normal"`825* `speed` : `"fast"` ou `"normal"`

795 826 

827#### Événement de hook enregistré

828 

829Enregistré une fois par hook configuré au démarrage de la session. Utilisez cet événement pour inventorier les hooks actifs dans votre flotte, en complément des événements `hook_execution_start` et `hook_execution_complete` par exécution.

830 

831**Nom de l'événement** : `claude_code.hook_registered`

832 

833**Attributs** :

834 

835* Tous les [attributs standard](#standard-attributes)

836* `event.name` : `"hook_registered"`

837* `event.timestamp` : Horodatage ISO 8601

838* `event.sequence` : Compteur monotone croissant pour ordonner les événements au sein d'une session

839* `hook_event` : type d'événement hook, tel que `"PreToolUse"` ou `"PostToolUse"`

840* `hook_type` : type d'implémentation du hook : `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, ou `"agent"`

841* `hook_source` : où le hook est défini : `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, ou `"pluginHook"`

842* `hook_matcher` (lorsque `OTEL_LOG_TOOL_DETAILS=1`) : la chaîne matcher de la configuration du hook, lorsqu'elle est définie

843* `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`

844* `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

845 

796#### Événement de démarrage d'exécution de hook846#### Événement de démarrage d'exécution de hook

797 847 

798Enregistré lorsqu'un ou plusieurs hooks commencent à s'exécuter pour un événement de hook.848Enregistré lorsqu'un ou plusieurs hooks commencent à s'exécuter pour un événement de hook.


855* `post_tokens` : Nombre approximatif de jetons après la compaction905* `post_tokens` : Nombre approximatif de jetons après la compaction

856* `error` : Message d'erreur lorsque la compaction a échoué906* `error` : Message d'erreur lorsque la compaction a échoué

857 907 

908#### Événement de sondage de rétroaction

909 

910Enregistré lorsqu'un sondage de qualité de session est affiché ou auquel il est répondu. Voir [Sondages de qualité de session](/fr/data-usage#session-quality-surveys) pour savoir ce que les sondages collectent et comment les contrôler.

911 

912**Nom de l'événement** : `claude_code.feedback_survey`

913 

914**Attributs** :

915 

916* Tous les [attributs standard](#standard-attributes)

917* `event.name` : `"feedback_survey"`

918* `event.timestamp` : Horodatage ISO 8601

919* `event.sequence` : Compteur monotone croissant pour ordonner les événements au sein d'une session

920* `event_type` : Événement du cycle de vie du sondage, par exemple `"appeared"`, `"responded"`, ou `"transcript_prompt_appeared"`

921* `appearance_id` : ID unique liant les événements émis pour une instance de sondage

922* `survey_type` : Quel sondage a produit l'événement. `"session"` est l'invite d'évaluation « Comment Claude se débrouille-t-il ? »

923* `response` : La sélection de l'utilisateur sur les événements `responded`

924* `enabled_via_override` : `true` lorsque [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/fr/env-vars) est défini. Émis en tant que booléen, pas une chaîne. Présent sur les événements de sondage `session`. Filtrez sur cet attribut pour confirmer que le remplacement est appliqué dans votre flotte

925 

858## Interpréter les données de métriques et d'événements926## Interpréter les données de métriques et d'événements

859 927 

860Les métriques et événements exportés prennent en charge une gamme d'analyses :928Les métriques et événements exportés prennent en charge une gamme d'analyses :


862### Surveillance de l'utilisation930### Surveillance de l'utilisation

863 931 

864| Métrique | Opportunité d'analyse |932| Métrique | Opportunité d'analyse |

865| ------------------------------------------------------------- | ------------------------------------------------------------------ |933| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |

866| `claude_code.token.usage` | Ventiler par `type` (entrée/sortie), utilisateur, équipe ou modèle |934| `claude_code.token.usage` | Ventiler par `type` (entrée/sortie), utilisateur, équipe, modèle, `skill.name`, `plugin.name`, ou `agent.name` |

867| `claude_code.session.count` | Suivre l'adoption et l'engagement au fil du temps |935| `claude_code.session.count` | Suivre l'adoption et l'engagement au fil du temps |

868| `claude_code.lines_of_code.count` | Mesurer la productivité en suivant les ajouts/suppressions de code |936| `claude_code.lines_of_code.count` | Mesurer la productivité en suivant les ajouts/suppressions de code |

869| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendre l'impact sur les flux de travail de développement |937| `claude_code.commit.count` & `claude_code.pull_request.count` | Comprendre l'impact sur les flux de travail de développement |


874 942 

875* Suivre les tendances d'utilisation entre les équipes ou les individus943* Suivre les tendances d'utilisation entre les équipes ou les individus

876* Identifier les sessions à utilisation élevée pour l'optimisation944* Identifier les sessions à utilisation élevée pour l'optimisation

945* Attribuer les dépenses à des compétences, des plugins ou des types de sous-agents spécifiques via les attributs `skill.name`, `plugin.name`, et `agent.name`

877 946 

878<Note>947<Note>

879 Les métriques de coûts sont des approximations. Pour les données de facturation officielles, consultez votre fournisseur d'API (Claude Console, Amazon Bedrock ou Google Cloud Vertex).948 Les métriques de coûts sont des approximations. Pour les données de facturation officielles, consultez votre fournisseur d'API (Claude Console, Amazon Bedrock ou Google Cloud Vertex).

Details

14 14 

15Le style de sortie **Default** de Claude Code est l'invite système existante, conçue pour vous aider à accomplir efficacement les tâches d'ingénierie logicielle.15Le style de sortie **Default** de Claude Code est l'invite système existante, conçue pour vous aider à accomplir efficacement les tâches d'ingénierie logicielle.

16 16 

17Il existe deux styles de sortie intégrés supplémentaires axés sur vous enseigner la base de code et le fonctionnement de Claude :17Il existe trois styles de sortie intégrés supplémentaires :

18 

19* **Proactive** : Claude s'exécute immédiatement, fait des hypothèses raisonnables au lieu de s'arrêter pour les décisions courantes, et préfère l'action à la planification. Cela applique les mêmes conseils que le [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) sans modifier votre mode de permission, vous voyez donc toujours les invites de permission avant l'exécution des outils.

18 20 

19* **Explanatory** : Fournit des « Insights » éducatifs entre les tâches d'ingénierie logicielle pour vous aider à les accomplir. Vous aide à comprendre les choix d'implémentation et les modèles de base de code.21* **Explanatory** : Fournit des « Insights » éducatifs entre les tâches d'ingénierie logicielle pour vous aider à les accomplir. Vous aide à comprendre les choix d'implémentation et les modèles de base de code.

20 22 


88 90 

89### Styles de sortie vs. CLAUDE.md vs. --append-system-prompt91### Styles de sortie vs. CLAUDE.md vs. --append-system-prompt

90 92 

91Les styles de sortie « désactivent » complètement les parties de l'invite système par défaut de Claude Code spécifiques à l'ingénierie logicielle. Ni CLAUDE.md ni `--append-system-prompt` ne modifient l'invite système par défaut de Claude Code. CLAUDE.md ajoute le contenu en tant que message utilisateur *suivant* l'invite système par défaut de Claude Code. `--append-system-prompt` ajoute le contenu à l'invite système.93Choisissez en fonction de si Claude doit cesser d'agir comme assistant de codage ou conserver son rôle par défaut et en apprendre davantage. Les styles de sortie remplacent les parties liées à l'ingénierie logicielle de l'invite système de Claude Code par votre propre rôle et voix, donc utilisez-en un quand Claude doit adopter une identité différente, comme un éditeur d'écriture ou un assistant d'analyse de données. CLAUDE.md et `--append-system-prompt` conservent tous deux l'identité par défaut de Claude Code et y ajoutent du contenu, donc utilisez-les quand Claude doit rester un assistant de codage qui suit également vos conventions de projet ou des instructions supplémentaires.

94 

95Les mécanismes diffèrent également. Les styles de sortie modifient directement l'invite système. CLAUDE.md ajoute son contenu en tant que message utilisateur après l'invite système. `--append-system-prompt` ajoute du contenu à la fin de l'invite système sans rien supprimer.

92 96 

93### Styles de sortie vs. [Agents](/fr/sub-agents)97### Styles de sortie vs. [Agents](/fr/sub-agents)

94 98 

95Les styles de sortie affectent directement la boucle d'agent principal et n'affectent que l'invite système. Les agents sont invoqués pour gérer des tâches spécifiques et peuvent inclure des paramètres supplémentaires tels que le modèle à utiliser, les outils disponibles et un contexte sur le moment d'utiliser l'agent.99Utilisez un style de sortie pour modifier la façon dont la conversation principale répond dans chaque session. Utilisez un [sous-agent](/fr/sub-agents) quand vous voulez un assistant à portée séparée auquel la conversation principale délègue. Les styles de sortie affectent uniquement l'invite système de la boucle d'agent principal. Les agents gèrent des tâches spécifiques et peuvent avoir leur propre modèle, outils et contexte sur le moment de les invoquer.

96 100 

97### Styles de sortie vs. [Skills](/fr/skills)101### Styles de sortie vs. [Skills](/fr/skills)

98 102 

99Les styles de sortie modifient la façon dont Claude répond (formatage, ton, structure) et sont toujours actifs une fois sélectionnés. Les skills sont des invites spécifiques à une tâche que vous invoquez avec `/skill-name` ou que Claude charge automatiquement si pertinent. Utilisez les styles de sortie pour les préférences de formatage cohérentes ; utilisez les skills pour les flux de travail et les tâches réutilisables.103Les styles de sortie modifient la façon dont Claude répond (formatage, ton, structure) et sont toujours actifs une fois sélectionnés. Les skills sont des invites spécifiques à une tâche que vous invoquez avec `/skill-name` ou que Claude charge automatiquement quand pertinent. Utilisez les styles de sortie pour les préférences de formatage cohérentes ; utilisez les skills pour les flux de travail et les tâches réutilisables.

Details

128 128 

129Appuyez sur `Maj+Tab` à nouveau pour quitter le mode de planification sans approuver un plan.129Appuyez sur `Maj+Tab` à nouveau pour quitter le mode de planification sans approuver un plan.

130 130 

131### Examiner et approuver un plan

132 

131Quand le plan est prêt, Claude le présente et demande comment procéder. À partir de cette invite, vous pouvez :133Quand le plan est prêt, Claude le présente et demande comment procéder. À partir de cette invite, vous pouvez :

132 134 

133* Approuver et démarrer en mode auto135* Approuver et démarrer en mode auto


136* Continuer la planification avec des commentaires138* Continuer la planification avec des commentaires

137* Affiner avec [Ultraplan](/fr/ultraplan) pour un examen basé sur le navigateur139* Affiner avec [Ultraplan](/fr/ultraplan) pour un examen basé sur le navigateur

138 140 

139Chaque option d'approbation offre également d'effacer le contexte de planification en premier.141Approuver un plan quitte le mode de planification et bascule la session vers le mode de permission que chaque option d'approbation décrit, de sorte que Claude commence à modifier. Pour planifier à nouveau, revenez au mode de planification avec `Maj+Tab`, ou préfixez votre prochaine invite avec `/plan`.

142 

143Appuyez sur `Ctrl+G` pour ouvrir le plan proposé dans votre éditeur de texte par défaut et le modifier directement avant que Claude ne procède. Quand [`showClearContextOnPlanAccept`](/fr/settings#available-settings) est activé, chaque option d'approbation offre également d'effacer le contexte de planification en premier.

144 

145Accepter un plan nomme également la session à partir du contenu du plan automatiquement, sauf si vous avez déjà défini un nom avec `--name` ou `/rename`.

146 

147### Définir le mode de planification comme valeur par défaut

148 

149Pour faire du mode de planification la valeur par défaut pour un projet, définissez `defaultMode` dans `.claude/settings.json` :

150 

151```json theme={null}

152{

153 "permissions": {

154 "defaultMode": "plan"

155 }

156}

157```

140 158 

141## Éliminer les invites avec le mode auto159## Éliminer les invites avec le mode auto

142 160 


146 164 

147Le 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.165Le 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.

148 166 

167Le mode auto instruit également Claude d'exécuter immédiatement et de minimiser les questions de clarification. Pour obtenir ce comportement tout en conservant les invites de permission, définissez plutôt le [style de sortie proactif](/fr/output-styles).

168 

149<Warning>169<Warning>

150 Le mode auto est un aperçu de recherche. Il réduit les invites mais ne garantit pas la sécurité. Utilisez-le pour les tâches où vous faites confiance à la direction générale, pas comme remplacement de l'examen sur les opérations sensibles.170 Le mode auto est un aperçu de recherche. Il réduit les invites mais ne garantit pas la sécurité. Utilisez-le pour les tâches où vous faites confiance à la direction générale, pas comme remplacement de l'examen sur les opérations sensibles.

151</Warning>171</Warning>


256 276 

257Le drapeau `--dangerously-skip-permissions` est équivalent.277Le drapeau `--dangerously-skip-permissions` est équivalent.

258 278 

279Sur Linux et macOS, Claude Code refuse de démarrer dans ce mode lors de l'exécution en tant que root ou sous `sudo` :

280 

281```text theme={null}

282--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

283```

284 

285La 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.

286 

259<Warning>287<Warning>

260 `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).288 `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).

261</Warning>289</Warning>

permissions.md +5 −1

Details

28 28 

29Les 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é.29Les 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é.

30 30 

31<Note>

32 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).

33</Note>

34 

31## Modes d'autorisation35## Modes d'autorisation

32 36 

33Claude 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) :37Claude 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) :


153 157 

154 * **Restreindre les outils réseau Bash** : utilisez les règles de refus pour bloquer `curl`, `wget` et les commandes similaires, puis utilisez l'outil WebFetch avec l'autorisation `WebFetch(domain:github.com)` pour les domaines autorisés158 * **Restreindre les outils réseau Bash** : utilisez les règles de refus pour bloquer `curl`, `wget` et les commandes similaires, puis utilisez l'outil WebFetch avec l'autorisation `WebFetch(domain:github.com)` pour les domaines autorisés

155 * **Utiliser les hooks PreToolUse** : implémentez un hook qui valide les URL dans les commandes Bash et bloque les domaines non autorisés159 * **Utiliser les hooks PreToolUse** : implémentez un hook qui valide les URL dans les commandes Bash et bloque les domaines non autorisés

156 * Instruire Claude Code sur vos modèles curl autorisés via CLAUDE.md160 * **Ajouter des conseils CLAUDE.md** : décrivez vos modèles curl autorisés dans `CLAUDE.md`. Cela façonne ce que Claude essaie mais n'applique pas une limite, donc associez-le à l'une des options ci-dessus

157 161 

158 Notez que l'utilisation de WebFetch seul n'empêche pas l'accès au réseau. Si Bash est autorisé, Claude peut toujours utiliser `curl`, `wget` ou d'autres outils pour atteindre n'importe quelle URL.162 Notez que l'utilisation de WebFetch seul n'empêche pas l'accès au réseau. Si Bash est autorisé, Claude peut toujours utiliser `curl`, `wget` ou d'autres outils pour atteindre n'importe quelle URL.

159</Warning>163</Warning>

plugins.md +6 −0

Details

299claude --plugin-dir ./my-plugin299claude --plugin-dir ./my-plugin

300```300```

301 301 

302Le drapeau accepte également une archive `.zip` du répertoire du plugin, qui nécessite Claude Code v2.1.128 ou ultérieur.

303 

304```bash theme={null}

305claude --plugin-dir ./my-plugin.zip

306```

307 

302Quand un plugin `--plugin-dir` a le même nom qu'un plugin marketplace installé, la copie locale prend la priorité pour cette session. Cela vous permet de tester les modifications d'un plugin que vous avez déjà installé sans le désinstaller d'abord. Les plugins marketplace forcément activés par les paramètres gérés sont la seule exception et ne peuvent pas être remplacés.308Quand un plugin `--plugin-dir` a le même nom qu'un plugin marketplace installé, la copie locale prend la priorité pour cette session. Cela vous permet de tester les modifications d'un plugin que vous avez déjà installé sans le désinstaller d'abord. Les plugins marketplace forcément activés par les paramètres gérés sont la seule exception et ne peuvent pas être remplacés.

303 309 

304À mesure que vous apportez des modifications à votre plugin, exécutez `/reload-plugins` pour récupérer les mises à jour sans redémarrer. Cela recharge les plugins, les skills, les agents, les hooks, les serveurs MCP du plugin et les serveurs LSP du plugin. Testez vos composants de plugin :310À mesure que vous apportez des modifications à votre plugin, exécutez `/reload-plugins` pour récupérer les mises à jour sans redémarrer. Cela recharge les plugins, les skills, les agents, les hooks, les serveurs MCP du plugin et les serveurs LSP du plugin. Testez vos composants de plugin :

Details

97 "hooks": [97 "hooks": [

98 {98 {

99 "type": "command",99 "type": "command",

100 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format-code.sh"100 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format-code.sh"

101 }101 }

102 ]102 ]

103 }103 }


289[289[

290 {290 {

291 "name": "deploy-status",291 "name": "deploy-status",

292 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/poll-deploy.sh ${user_config.api_endpoint}",292 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh ${user_config.api_endpoint}",

293 "description": "Changements de statut de déploiement"293 "description": "Changements de statut de déploiement"

294 },294 },

295 {295 {


317| :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |317| :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

318| `when` | Contrôle quand le moniteur démarre. `"always"` le démarre au démarrage de la session et au rechargement du plugin, et est la valeur par défaut. `"on-skill-invoke:<skill-name>"` le démarre la première fois que la skill nommée dans ce plugin est envoyée |318| `when` | Contrôle quand le moniteur démarre. `"always"` le démarre au démarrage de la session et au rechargement du plugin, et est la valeur par défaut. `"on-skill-invoke:<skill-name>"` le démarre la première fois que la skill nommée dans ce plugin est envoyée |

319 319 

320La valeur `command` prend en charge les mêmes [substitutions de variables](#environment-variables) que les configurations des serveurs MCP et LSP : `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}`, `${user_config.*}` et tout `${ENV_VAR}` de l'environnement. Préfixez la commande avec `cd "${CLAUDE_PLUGIN_ROOT}" && ` si le script doit s'exécuter à partir du répertoire du plugin lui-même.320La valeur `command` prend en charge les mêmes [substitutions de variables](#environment-variables) que les configurations des serveurs MCP et LSP : `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}`, `${CLAUDE_PROJECT_DIR}`, `${user_config.*}` et tout `${ENV_VAR}` de l'environnement. Préfixez la commande avec `cd "${CLAUDE_PLUGIN_ROOT}" && ` si le script doit s'exécuter à partir du répertoire du plugin lui-même.

321 321 

322La désactivation d'un plugin en cours de session n'arrête pas les moniteurs qui sont déjà en cours d'exécution. Ils s'arrêtent quand la session se termine.322La désactivation d'un plugin en cours de session n'arrête pas les moniteurs qui sont déjà en cours d'exécution. Ils s'arrêtent quand la session se termine.

323 323 


510 510 

511### Règles de comportement des chemins511### Règles de comportement des chemins

512 512 

513Qu'un chemin personnalisé remplace ou étend le répertoire par défaut du plugin dépend du champ :513Qu'un chemin personnalisé remplace ou étende le répertoire par défaut du plugin dépend du champ :

514 514 

515* **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/"]`515* **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/"]`

516* **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 lui516* **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


540 540 

541### Variables d'environnement541### Variables d'environnement

542 542 

543Claude Code fournit deux variables pour référencer les chemins des plugins. Les deux sont substituées en ligne partout où elles apparaissent dans le contenu des skills, le contenu des agents, les commandes de hook, les commandes de moniteur, et les configurations des serveurs MCP ou LSP. Les deux sont également exportées en tant que variables d'environnement vers les processus de hook et les sous-processus des serveurs MCP ou LSP.543Claude Code fournit trois variables pour référencer les chemins. Les trois sont substituées en ligne partout où elles apparaissent dans le contenu des skills, le contenu des agents, les commandes de hook, les commandes de moniteur, et les configurations des serveurs MCP ou LSP. Les trois sont également exportées en tant que variables d'environnement vers les processus de hook et les sous-processus des serveurs MCP ou LSP.

544 544 

545**`${CLAUDE_PLUGIN_ROOT}`** : le chemin absolu du répertoire d'installation de votre plugin. Utilisez ceci pour référencer les scripts, les binaires et les fichiers de configuration fournis avec le plugin. Ce chemin change quand le plugin se met à jour. Le répertoire de la version précédente reste sur le disque pendant environ sept jours après une mise à jour avant le nettoyage, mais traitez-le comme éphémère et n'écrivez pas d'état ici.545**`${CLAUDE_PLUGIN_ROOT}`** : le chemin absolu du répertoire d'installation de votre plugin. Utilisez ceci pour référencer les scripts, les binaires et les fichiers de configuration fournis avec le plugin. Dans les commandes de hook, utilisez la [forme exec](/fr/hooks#exec-form-and-shell-form) avec `args` pour que le chemin soit passé comme un seul argument sans guillemets. Dans les hooks de forme shell et les commandes de moniteur, enveloppez-le entre guillemets doubles, comme dans `"${CLAUDE_PLUGIN_ROOT}"`. Ce chemin change quand le plugin se met à jour. Le répertoire de la version précédente reste sur le disque pendant environ sept jours après une mise à jour avant le nettoyage, mais traitez-le comme éphémère et n'écrivez pas d'état ici.

546 546 

547Quand un plugin se met à jour en cours de session, les commandes de hook, les moniteurs, les serveurs MCP et les serveurs LSP continuent d'utiliser le chemin de la version précédente. Exécutez `/reload-plugins` pour basculer les hooks, les serveurs MCP et les serveurs LSP vers le nouveau chemin ; les moniteurs nécessitent un redémarrage de session.547Quand un plugin se met à jour en cours de session, les commandes de hook, les moniteurs, les serveurs MCP et les serveurs LSP continuent d'utiliser le chemin de la version précédente. Exécutez `/reload-plugins` pour basculer les hooks, les serveurs MCP et les serveurs LSP vers le nouveau chemin ; les moniteurs nécessitent un redémarrage de session.

548 548 

549**`${CLAUDE_PLUGIN_DATA}`** : un répertoire persistant pour l'état du plugin qui survit aux mises à jour. Utilisez ceci pour les dépendances installées telles que `node_modules` ou les environnements virtuels Python, le code généré, les caches et tous les autres fichiers qui doivent persister entre les versions du plugin. Le répertoire est créé automatiquement la première fois que cette variable est référencée.549**`${CLAUDE_PLUGIN_DATA}`** : un répertoire persistant pour l'état du plugin qui survit aux mises à jour. Utilisez ceci pour les dépendances installées telles que `node_modules` ou les environnements virtuels Python, le code généré, les caches et tous les autres fichiers qui doivent persister entre les versions du plugin. Le répertoire est créé automatiquement la première fois que cette variable est référencée.

550 550 

551**`${CLAUDE_PROJECT_DIR}`** : la racine du projet. C'est le même répertoire que les hooks reçoivent dans leur variable `CLAUDE_PROJECT_DIR`. Utilisez ceci pour référencer les scripts ou fichiers de configuration locaux au projet. Enveloppez entre guillemets pour gérer les chemins avec des espaces, par exemple `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`. Les serveurs MCP peuvent également appeler la requête MCP `roots/list`, qui retourne le répertoire à partir duquel Claude Code a été lancé.

552 

551```json theme={null}553```json theme={null}

552{554{

553 "hooks": {555 "hooks": {


556 "hooks": [558 "hooks": [

557 {559 {

558 "type": "command",560 "type": "command",

559 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/process.sh"561 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

560 }562 }

561 ]563 ]

562 }564 }


629 631 

630Les plugins installés ne peuvent pas référencer des fichiers en dehors de leur répertoire. Les chemins qui traversent en dehors de la racine du plugin (comme `../shared-utils`) ne fonctionneront pas après l'installation car ces fichiers externes ne sont pas copiés dans le cache.632Les plugins installés ne peuvent pas référencer des fichiers en dehors de leur répertoire. Les chemins qui traversent en dehors de la racine du plugin (comme `../shared-utils`) ne fonctionneront pas après l'installation car ces fichiers externes ne sont pas copiés dans le cache.

631 633 

632### Travail avec les dépendances externes634### Partager des fichiers au sein d'une marketplace avec des liens symboliques

635 

636Si votre plugin doit partager des fichiers avec d'autres parties de la même marketplace, vous pouvez créer des liens symboliques à l'intérieur de votre répertoire de plugin. La façon dont un lien symbolique est traité quand le plugin est copié dans le cache dépend de l'endroit où sa cible se résout :

637 

638* **Au sein du répertoire propre du plugin :** le lien symbolique est préservé en tant que lien symbolique relatif dans le cache, donc il continue de se résoudre à la cible copiée au moment de l'exécution.

639* **Ailleurs au sein de la même marketplace :** le lien symbolique est déréférencé. Le contenu de la cible est copié dans le cache à sa place. Cela permet au répertoire `skills/` d'un meta-plugin de créer un lien vers les skills définis par d'autres plugins de la marketplace.

640* **En dehors de la marketplace :** le lien symbolique est ignoré pour des raisons de sécurité. Cela empêche les plugins de récupérer des fichiers hôtes arbitraires tels que les chemins système dans le cache.

633 641 

634Si votre plugin doit accéder à des fichiers en dehors de son répertoire, vous pouvez créer des liens symboliques vers des fichiers externes dans votre répertoire de plugin. Les liens symboliques sont préservés dans le cache plutôt que d'être déréférencés, et ils se résolvent à leur cible au moment de l'exécution. La commande suivante crée un lien à partir de l'intérieur de votre répertoire de plugin vers un emplacement d'utilitaires partagés :642Pour les plugins installés avec `--plugin-dir` ou à partir d'un chemin local, seuls les liens symboliques qui se résolvent au sein du répertoire propre du plugin sont préservés. Tous les autres sont ignorés.

643 

644La commande suivante crée un lien à partir de l'intérieur d'un plugin de marketplace vers une skill partagée définie par un plugin frère. Sur Windows, utilisez `mklink /D` à partir d'une invite de commandes élevée ou activez le Mode développeur :

635 645 

636```bash theme={null}646```bash theme={null}

637ln -s /path/to/shared-utils ./shared-utils647ln -s ../../shared-plugin/skills/foo ./skills/foo

638```648```

639 649 

640Cela offre de la flexibilité tout en maintenant les avantages de sécurité du système de mise en cache.650Cela offre de la flexibilité tout en maintenant les avantages de sécurité du système de mise en cache.


875| `--available` | Inclure les plugins disponibles des marketplaces. Nécessite `--json` | |885| `--available` | Inclure les plugins disponibles des marketplaces. Nécessite `--json` | |

876| `-h, --help` | Afficher l'aide pour la commande | |886| `-h, --help` | Afficher l'aide pour la commande | |

877 887 

888### plugin details

889 

890Afficher l'inventaire des composants d'un plugin et le coût en tokens projeté. La sortie liste tous les composants que le plugin contribue, regroupés en tant que Skills (compétences et commandes), Agents, Hooks, et serveurs MCP, ainsi qu'une estimation du nombre de tokens qu'il ajoute à chaque session.

891 

892```bash theme={null}

893claude plugin details <name>

894```

895 

896**Arguments :**

897 

898* `<name>` : Nom du plugin ou `plugin-name@marketplace-name`

899 

900**Options :**

901 

902| Option | Description | Par défaut |

903| :----------- | :------------------------------- | :--------- |

904| `-h, --help` | Afficher l'aide pour la commande | |

905 

906La sortie affiche deux chiffres de coût pour chaque composant :

907 

908* **Always-on :** tokens ajoutés à chaque session par le texte de liste du plugin, comme les descriptions de compétences, les descriptions d'agents et les noms de commandes, indépendamment du fait qu'un composant se déclenche ou non.

909* **On-invoke :** tokens qu'un composant coûte quand il se déclenche. Affiché par composant, pas comme un total de plugin, car une session typique n'invoque qu'un sous-ensemble de composants.

910 

911Cet exemple montre à quoi ressemble la sortie pour un plugin avec deux compétences :

912 

913```

914security-guidance 1.2.0

915 Real-time security analysis for Claude Code sessions

916 Source: security-guidance@claude-code-marketplace

917 

918Component inventory

919 Skills (2) scan-dependencies, review-changes

920 Agents (0)

921 Hooks (1) (harness-only — no model context cost)

922 MCP servers (0)

923 

924Projected token cost

925 Always-on: ~180 tok added to every session

926 

927Per-component (rounded)

928 component always-on on-invoke

929 scan-dependencies ~100 ~2400

930 review-changes ~80 ~1800

931 

932 On-invoke cost is paid each time a skill or agent fires.

933 Token counts are estimates and may differ from actual usage.

934```

935 

936Le total always-on est calculé via l'API `count_tokens` pour votre modèle actif. Les nombres par composant sont proportionnellement mis à l'échelle à partir de ce total. Si l'API est inaccessible, la commande revient à une estimation basée sur les caractères.

937 

878### plugin tag938### plugin tag

879 939 

880Créez une balise de version git pour le plugin dans le répertoire actuel. Exécutez depuis l'intérieur du dossier du plugin. Voir [Baliser les versions des plugins](/fr/plugin-dependencies#tag-plugin-releases-for-version-resolution).940Créez une balise de version git pour le plugin dans le répertoire actuel. Exécutez depuis l'intérieur du dossier du plugin. Voir [Baliser les versions des plugins](/fr/plugin-dependencies#tag-plugin-releases-for-version-resolution).

quickstart.md +2 −2

Details

307 </Accordion>307 </Accordion>

308 308 

309 <Accordion title="Gagnez du temps avec les raccourcis">309 <Accordion title="Gagnez du temps avec les raccourcis">

310 * Appuyez sur `?` pour voir tous les raccourcis clavier disponibles310 * Tapez `/` pour voir toutes les commandes et skills

311 * Utilisez Tab pour la complétion des commandes311 * Utilisez Tab pour la complétion des commandes

312 * Appuyez sur ↑ pour l'historique des commandes312 * Appuyez sur ↑ pour l'historique des commandes

313 * Tapez `/` pour voir toutes les commandes et skills313 * Appuyez sur `Shift+Tab` pour parcourir les modes de permission

314 </Accordion>314 </Accordion>

315</AccordionGroup>315</AccordionGroup>

316 316 

routines.md +2 −0

Details

318 318 

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

320 320 

321Les connecteurs sont les [intégrations claude.ai](/fr/mcp#use-mcp-servers-from-claude-ai) sur votre compte. Les serveurs MCP que vous avez ajoutés localement dans la CLI avec `claude mcp add` sont stockés sur votre machine plutôt que sur votre compte claude.ai, donc ils n'apparaissent pas dans la liste des connecteurs. Pour utiliser l'un de ces serveurs dans une routine, ajoutez-le en tant que connecteur sur [claude.ai/customize/connectors](https://claude.ai/customize/connectors), ou déclarez-le dans un [`.mcp.json`](/fr/mcp#project-scope) engagé afin qu'il fasse partie du référentiel cloné.

322 

321Lorsque vous créez une routine, tous vos connecteurs actuellement connectés sont inclus par défaut. Supprimez tous ceux qui ne sont pas nécessaires pour limiter les outils auxquels Claude a accès pendant l'exécution. Vous pouvez également ajouter des connecteurs directement à partir du formulaire de routine.323Lorsque vous créez une routine, tous vos connecteurs actuellement connectés sont inclus par défaut. Supprimez tous ceux qui ne sont pas nécessaires pour limiter les outils auxquels Claude a accès pendant l'exécution. Vous pouvez également ajouter des connecteurs directement à partir du formulaire de routine.

322 324 

323Pour 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.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.

security.md +1 −1

Details

87 87 

88Claude Code permet aux utilisateurs de configurer les serveurs Model Context Protocol (MCP). La liste des serveurs MCP autorisés est configurée dans votre code source, dans le cadre des paramètres Claude Code que les ingénieurs enregistrent dans le contrôle de source.88Claude Code permet aux utilisateurs de configurer les serveurs Model Context Protocol (MCP). La liste des serveurs MCP autorisés est configurée dans votre code source, dans le cadre des paramètres Claude Code que les ingénieurs enregistrent dans le contrôle de source.

89 89 

90Nous vous encourageons à écrire vos propres serveurs MCP ou à utiliser des serveurs MCP de fournisseurs en qui vous avez confiance. Vous pouvez configurer les permissions Claude Code pour les serveurs MCP. Anthropic ne gère ni n'audite aucun serveur MCP.90Nous vous encourageons à écrire vos propres serveurs MCP ou à utiliser des serveurs MCP de fournisseurs en qui vous avez confiance. Vous pouvez configurer les permissions Claude Code pour les serveurs MCP. Anthropic examine les connecteurs par rapport à ses [critères d'examen](https://claude.com/docs/connectors/building/review-criteria) avant de les ajouter au [Répertoire Anthropic](https://claude.ai/directory), mais n'effectue pas d'audit de sécurité ni ne gère aucun serveur MCP.

91 91 

92## Sécurité IDE92## Sécurité IDE

93 93 

settings.md +3 −1

Details

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

179| `blockedMarketplaces` | (Paramètres gérés uniquement) Liste noire des sources de marketplace. 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. Les sources bloquées sont vérifiées avant le téléchargement, donc elles ne touchent jamais le système de fichiers. Voir [Restrictions de marketplace gérées](/fr/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |179| `blockedMarketplaces` | (Paramètres gérés uniquement) Liste noire des sources de marketplace. 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. Les sources bloquées sont vérifiées avant le téléchargement, donc elles ne touchent jamais le système de fichiers. Voir [Restrictions de marketplace gérées](/fr/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |

180| `channelsEnabled` | (Paramètres gérés uniquement) Autoriser les [channels](/fr/channels) pour l'organisation. Sur les plans Claude.ai Team et Enterprise, les channels sont bloqués quand ceci est non défini ou `false`. Pour les comptes [Anthropic Console](/fr/authentication#claude-console-authentication) utilisant l'authentification par clé API, les channels sont autorisés par défaut sauf si votre organisation déploie des paramètres gérés, auquel cas cette clé doit être définie à `true` | `true` |180| `channelsEnabled` | (Paramètres gérés uniquement) Autoriser les [channels](/fr/channels) pour l'organisation. Sur les plans Claude.ai Team et Enterprise, les channels sont bloqués quand ceci est non défini ou `false`. Pour les comptes [Anthropic Console](/fr/authentication#claude-console-authentication) utilisant l'authentification par clé API, les channels sont autorisés par défaut sauf si votre organisation déploie des paramètres gérés, auquel cas cette clé doit être définie à `true` | `true` |

181| `claudeMd` | (Paramètres gérés uniquement) Instructions de style CLAUDE.md injectées comme mémoire gérée par l'organisation. Honoré uniquement quand défini dans les paramètres gérés ou de politique et ignoré dans les paramètres utilisateur, projet et locaux. Voir [CLAUDE.md à l'échelle de l'organisation](/fr/memory#deploy-organization-wide-claude-md) | `"Always run make lint before committing."` |

181| `claudeMdExcludes` | Modèles Glob ou chemins absolus des fichiers `CLAUDE.md` à ignorer lors du chargement de la [mémoire](/fr/memory). Les modèles correspondent aux chemins de fichier absolus. S'applique uniquement à la mémoire utilisateur, projet et locale ; les fichiers de politique gérée ne peuvent pas être exclus | `["**/vendor/**/CLAUDE.md"]` |182| `claudeMdExcludes` | Modèles Glob ou chemins absolus des fichiers `CLAUDE.md` à ignorer lors du chargement de la [mémoire](/fr/memory). Les modèles correspondent aux chemins de fichier absolus. S'applique uniquement à la mémoire utilisateur, projet et locale ; les fichiers de politique gérée ne peuvent pas être exclus | `["**/vendor/**/CLAUDE.md"]` |

182| `cleanupPeriodDays` | Les sessions inactives pendant plus longtemps que cette période sont supprimées au démarrage (par défaut : 30 jours, minimum 1). Définir à `0` est rejeté avec une erreur de validation. Contrôle également le seuil d'âge pour la suppression automatique des [worktrees de subagent orphelins](/fr/worktrees#clean-up-worktrees) au démarrage. Pour désactiver complètement les écritures de transcript, définissez la variable d'environnement [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/fr/env-vars), ou en mode non interactif (`-p`) utilisez l'indicateur `--no-session-persistence` ou l'option SDK `persistSession: false`. | `20` |183| `cleanupPeriodDays` | Les sessions inactives pendant plus longtemps que cette période sont supprimées au démarrage (par défaut : 30 jours, minimum 1). Définir à `0` est rejeté avec une erreur de validation. Contrôle également le seuil d'âge pour la suppression automatique des [worktrees de subagent orphelins](/fr/worktrees#clean-up-worktrees) au démarrage. Pour désactiver complètement les écritures de transcript, définissez la variable d'environnement [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/fr/env-vars), ou en mode non interactif (`-p`) utilisez l'indicateur `--no-session-persistence` ou l'option SDK `persistSession: false`. | `20` |

183| `companyAnnouncements` | Annonce à afficher aux utilisateurs au démarrage. Si plusieurs annonces sont fournies, elles seront affichées aléatoirement. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |184| `companyAnnouncements` | Annonce à afficher aux utilisateurs au démarrage. Si plusieurs annonces sont fournies, elles seront affichées aléatoirement. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |


253</Note>254</Note>

254 255 

255| Clé | Description | Exemple |256| Clé | Description | Exemple |

256| :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |257| :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |

257| `autoConnectIde` | Se connecter automatiquement à un IDE en cours d'exécution quand Claude Code démarre à partir d'un terminal externe. Par défaut : `false`. Apparaît dans `/config` comme **Auto-connect to IDE (external terminal)** lors de l'exécution en dehors d'un terminal VS Code ou JetBrains. La variable d'environnement [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/fr/env-vars) remplace ceci quand elle est définie | `true` |258| `autoConnectIde` | Se connecter automatiquement à un IDE en cours d'exécution quand Claude Code démarre à partir d'un terminal externe. Par défaut : `false`. Apparaît dans `/config` comme **Auto-connect to IDE (external terminal)** lors de l'exécution en dehors d'un terminal VS Code ou JetBrains. La variable d'environnement [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/fr/env-vars) remplace ceci quand elle est définie | `true` |

258| `autoInstallIdeExtension` | Installer automatiquement l'extension Claude Code IDE lors de l'exécution à partir d'un terminal VS Code. Par défaut : `true`. Apparaît dans `/config` comme **Auto-install IDE extension** lors de l'exécution dans un terminal VS Code ou JetBrains. Vous pouvez également définir la variable d'environnement [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/fr/env-vars) | `false` |259| `autoInstallIdeExtension` | Installer automatiquement l'extension Claude Code IDE lors de l'exécution à partir d'un terminal VS Code. Par défaut : `true`. Apparaît dans `/config` comme **Auto-install IDE extension** lors de l'exécution dans un terminal VS Code ou JetBrains. Vous pouvez également définir la variable d'environnement [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/fr/env-vars) | `false` |

259| `externalEditorContext` | Ajouter la réponse précédente de Claude comme contexte commenté avec `#` quand vous ouvrez l'éditeur externe avec `Ctrl+G`. Par défaut : `false`. Apparaît dans `/config` comme **Show last response in external editor** | `true` |260| `externalEditorContext` | Ajouter la réponse précédente de Claude comme contexte commenté avec `#` quand vous ouvrez l'éditeur externe avec `Ctrl+G`. Par défaut : `false`. Apparaît dans `/config` comme **Show last response in external editor** | `true` |

261| `teammateDefaultModel` | Modèle par défaut pour les coéquipiers de l'[équipe d'agents](/fr/agent-teams) quand l'invite de génération ne spécifie pas un. Définir à un alias de modèle tel que `"sonnet"`, ou `null` pour hériter de la sélection `/model` actuelle du leader. Apparaît dans `/config` comme **Default teammate model** | `"sonnet"` |

260 262 

261### Paramètres de worktree263### Paramètres de worktree

262 264 

vs-code.md +4 −2

Details

233</Note>233</Note>

234 234 

235| Commande | Raccourci | Description |235| Commande | Raccourci | Description |

236| -------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |236| -------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

237| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | Basculer le focus entre l'éditeur et Claude |237| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | Basculer le focus entre l'éditeur et Claude |

238| Open in Side Bar | - | Ouvrir Claude dans la barre latérale gauche |238| Open in Side Bar | - | Ouvrir Claude dans la barre latérale gauche |

239| Open in Terminal | - | Ouvrir Claude en mode terminal |239| Open in Terminal | - | Ouvrir Claude en mode terminal |

240| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | Ouvrir une nouvelle conversation en tant qu'onglet d'éditeur |240| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | Ouvrir une nouvelle conversation en tant qu'onglet d'éditeur |

241| Open in New Window | - | Ouvrir une nouvelle conversation dans une fenêtre séparée |241| Open in New Window | - | Ouvrir une nouvelle conversation dans une fenêtre séparée |

242| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | Démarrer une nouvelle conversation. Nécessite que Claude soit actif et `enableNewConversationShortcut` défini sur `true` |242| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | Démarrer une nouvelle conversation. Nécessite que Claude soit actif et `enableNewConversationShortcut` défini sur `true` |

243| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | Rouvrir l'onglet de session Claude fermé le plus récemment. Bascule vers la réouverture normale d'éditeur fermé de VS Code lorsque le dernier onglet fermé n'était pas une session Claude. Désactiver avec `enableReopenClosedSessionShortcut` |

243| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Insérer une référence au fichier actuel et à la sélection (nécessite que l'éditeur soit actif) |244| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Insérer une référence au fichier actuel et à la sélection (nécessite que l'éditeur soit actif) |

244| Show Logs | - | Afficher les journaux de débogage de l'extension |245| Show Logs | - | Afficher les journaux de débogage de l'extension |

245| Logout | - | Se déconnecter de votre compte Anthropic |246| Logout | - | Se déconnecter de votre compte Anthropic |


307### Paramètres d'extension308### Paramètres d'extension

308 309 

309| Paramètre | Par défaut | Description |310| Paramètre | Par défaut | Description |

310| --------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |311| ----------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

311| `useTerminal` | `false` | Lancer Claude en mode terminal au lieu du panneau graphique |312| `useTerminal` | `false` | Lancer Claude en mode terminal au lieu du panneau graphique |

312| `initialPermissionMode` | `default` | Contrôle les invites d'approbation pour les nouvelles conversations : `default`, `plan`, `acceptEdits` ou `bypassPermissions`. Consultez [modes de permission](/fr/permission-modes). |313| `initialPermissionMode` | `default` | Contrôle les invites d'approbation pour les nouvelles conversations : `default`, `plan`, `acceptEdits` ou `bypassPermissions`. Consultez [modes de permission](/fr/permission-modes). |

313| `preferredLocation` | `panel` | Où Claude s'ouvre : `sidebar` (droite) ou `panel` (nouvel onglet) |314| `preferredLocation` | `panel` | Où Claude s'ouvre : `sidebar` (droite) ou `panel` (nouvel onglet) |

314| `autosave` | `true` | Enregistrement automatique des fichiers avant que Claude ne les lise ou ne les écrive |315| `autosave` | `true` | Enregistrement automatique des fichiers avant que Claude ne les lise ou ne les écrive |

315| `useCtrlEnterToSend` | `false` | Utiliser Ctrl/Cmd+Entrée au lieu d'Entrée pour envoyer les invites |316| `useCtrlEnterToSend` | `false` | Utiliser Ctrl/Cmd+Entrée au lieu d'Entrée pour envoyer les invites |

316| `enableNewConversationShortcut` | `false` | Activer Cmd/Ctrl+N pour démarrer une nouvelle conversation |317| `enableNewConversationShortcut` | `false` | Activer Cmd/Ctrl+N pour démarrer une nouvelle conversation |

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

317| `hideOnboarding` | `false` | Masquer la liste de contrôle d'intégration (icône de chapeau de graduation) |319| `hideOnboarding` | `false` | Masquer la liste de contrôle d'intégration (icône de chapeau de graduation) |

318| `respectGitIgnore` | `true` | Exclure les modèles .gitignore des recherches de fichiers |320| `respectGitIgnore` | `true` | Exclure les modèles .gitignore des recherches de fichiers |

319| `usePythonEnvironment` | `true` | Activer l'environnement Python de l'espace de travail lors de l'exécution de Claude. Nécessite l'extension Python. |321| `usePythonEnvironment` | `true` | Activer l'environnement Python de l'espace de travail lors de l'exécution de Claude. Nécessite l'extension Python. |