SpyBara
Go Premium

Documentation 2026-10-01 23:59 UTC to 2026-10-02 02:02 UTC

36 files changed +1,105 −768. View all changes and history on the product overview
2026
Fri 2 03:00 Thu 1 23:59

accessibility.md +11 −5

Details

44| [`CLAUDE_AX_SCREEN_READER`](/docs/fr/env-vars#variables) | Variable d'environnement | Mode lecteur d'écran pour les sessions démarrées à partir du shell où vous l'avez définie. |44| [`CLAUDE_AX_SCREEN_READER`](/docs/fr/env-vars#variables) | Variable d'environnement | Mode lecteur d'écran pour les sessions démarrées à partir du shell où vous l'avez définie. |

45| [`axScreenReader`](/docs/fr/settings-reference#axscreenreader) | Paramètre | Mode lecteur d'écran pour chaque session lorsque `true`. |45| [`axScreenReader`](/docs/fr/settings-reference#axscreenreader) | Paramètre | Mode lecteur d'écran pour chaque session lorsque `true`. |

46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/fr/env-vars#variables) | Variable d'environnement | Durée pendant laquelle Claude Code attend après la ligne de confirmation avant de dessiner la première invite en mode lecteur d'écran. Nécessite Claude Code v2.1.217 ou version ultérieure. |46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/fr/env-vars#variables) | Variable d'environnement | Durée pendant laquelle Claude Code attend après la ligne de confirmation avant de dessiner la première invite en mode lecteur d'écran. Nécessite Claude Code v2.1.217 ou version ultérieure. |

47| [`CLAUDE_AX_PREPARK_MS`](/docs/fr/env-vars#variables) | Variable d'environnement | Durée pendant laquelle Claude Code attend, avec le curseur au début de la ligne, avant d'écrire une ligne nouvelle ou modifiée en mode lecteur d'écran. Nécessite Claude Code v2.1.233 ou version ultérieure. |47| [`CLAUDE_AX_PREPARK_MS`](/docs/fr/env-vars#variables) | Variable d'environnement | Lorsque vous la définissez, nombre de millisecondes pendant lesquelles Claude Code maintient le curseur du terminal au début de la ligne actuelle avant d'écrire une ligne nouvelle ou modifiée en mode lecteur d'écran. Nécessite Claude Code v2.1.233 ou version ultérieure. |

48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/fr/env-vars#variables) | Variable d'environnement | Un curseur de terminal qui reste visible pour les loupes d'écran telles que macOS Zoom lorsque vous le définissez sur `1`. Le curseur suit le curseur d'entrée et, sur Claude Code v2.1.218 ou version ultérieure, la ligne en surbrillance dans les menus et les panneaux tels que `/config` et `/plugin`. |48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/fr/env-vars#variables) | Variable d'environnement | Un curseur de terminal qui reste visible pour les loupes d'écran telles que macOS Zoom lorsque vous le définissez sur `1`. Le curseur suit le curseur d'entrée et, sur Claude Code v2.1.218 ou version ultérieure, la ligne en surbrillance dans les menus et les panneaux tels que `/config` et `/plugin`. |

49| [`prefersReducedMotion`](/docs/fr/settings-reference#prefersreducedmotion) | Paramètre | Réduction ou absence de barres de chargement, scintillement et autres animations lorsque `true`. |49| [`prefersReducedMotion`](/docs/fr/settings-reference#prefersreducedmotion) | Paramètre | Réduction ou absence de barres de chargement, scintillement et autres animations lorsque `true`. |

50| [`theme`](/docs/fr/settings-reference#theme) | Paramètre | Les couleurs de l'interface, y compris les thèmes `dark-daltonized` et `light-daltonized` adaptés aux daltoniens. Vous pouvez également en choisir un avec [`/theme`](/docs/fr/commands#all-commands). |50| [`theme`](/docs/fr/settings-reference#theme) | Paramètre | Les couleurs de l'interface, y compris les thèmes `dark-daltonized` et `light-daltonized` adaptés aux daltoniens. Vous pouvez également en choisir un avec [`/theme`](/docs/fr/commands#all-commands). |


60* Pas d'indices basés sur la couleur uniquement60* Pas d'indices basés sur la couleur uniquement

61* Pas de redessins du contenu qui n'a pas changé. Les barres de progression s'affichent sous forme de texte statique61* Pas de redessins du contenu qui n'a pas changé. Les barres de progression s'affichent sous forme de texte statique

62* Les tableaux dans les réponses de Claude se lisent comme des phrases `En-tête : valeur` au lieu d'une grille de caractères de boîte62* Les tableaux dans les réponses de Claude se lisent comme des phrases `En-tête : valeur` au lieu d'une grille de caractères de boîte

63* Les diffs se lisent comme du texte brut, ligne par ligne, avec `+` et `-` marquant les lignes ajoutées et supprimées, afin que vous puissiez entendre la modification proposée dans une demande d'approbation de modification de fichier avant d'y répondre

63 64 

64Claude Code laisse tout ce qu'il imprime dans l'historique de votre terminal, afin que vous puissiez relire les tours précédents avec les commandes de révision de votre lecteur d'écran ou la recherche de votre terminal. Claude Code ignore le paramètre [`tui`](/docs/fr/settings-reference#tui) en mode lecteur d'écran. À part les sessions d'arrière-plan attachées listées sous [Limitations connues](#known-limitations), il imprime du texte défilant au lieu du [rendu en plein écran](/docs/fr/fullscreen).65Claude Code laisse tout ce qu'il imprime dans l'historique de votre terminal, afin que vous puissiez relire les tours précédents avec les commandes de révision de votre lecteur d'écran ou la recherche de votre terminal. Claude Code ignore le paramètre [`tui`](/docs/fr/settings-reference#tui) en mode lecteur d'écran. À part les sessions d'arrière-plan attachées listées sous [Limitations connues](#known-limitations), il imprime du texte défilant au lieu du [rendu en plein écran](/docs/fr/fullscreen).

65 66 

66Claude Code attend également à deux points pour que votre lecteur d'écran puisse suivre :67Après que Claude Code imprime la [ligne de confirmation](#turn-on-screen-reader-mode) au démarrage, il attend 3 secondes avant de dessiner l'invite, afin que votre lecteur d'écran puisse terminer la ligne. Appuyez sur n'importe quelle touche pour terminer l'attente. Pour modifier la durée de l'attente, définissez [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/fr/env-vars#variables).

67 

68* Après que Claude Code imprime la ligne de confirmation, il attend 3 secondes avant de dessiner l'invite, afin que votre lecteur d'écran puisse terminer la ligne. Appuyez sur n'importe quelle touche pour terminer l'attente. Pour modifier la durée de l'attente, définissez [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/fr/env-vars#variables).

69* Avant que Claude Code écrive une ligne nouvelle ou modifiée, comme un indice ou plus de la réponse de Claude, il déplace le curseur au début de la ligne et attend 50 millisecondes. Votre lecteur d'écran lit alors la ligne à partir de son premier caractère. Les caractères que vous tapez ou supprimez à la fin de la ligne d'entrée apparaissent immédiatement. Pour modifier la durée de l'attente, définissez [`CLAUDE_AX_PREPARK_MS`](/docs/fr/env-vars#variables).

70 68 

71Chaque message dans la transcription commence par une étiquette que votre lecteur d'écran annonce, nommant ce qu'il est : vos messages, les réponses et la réflexion de Claude, l'activité des outils, les erreurs et les avertissements, et les invites. Les étiquettes sont également consultables, afin que vous puissiez sauter entre les sections de la transcription en recherchant l'historique de votre terminal :69Chaque message dans la transcription commence par une étiquette que votre lecteur d'écran annonce, nommant ce qu'il est : vos messages, les réponses et la réflexion de Claude, l'activité des outils, les erreurs et les avertissements, et les invites. Les étiquettes sont également consultables, afin que vous puissiez sauter entre les sections de la transcription en recherchant l'historique de votre terminal :

72 70 


94 92 

95Lorsque vous parcourez les [modes d'autorisation](/docs/fr/permission-modes) avec `Shift+Tab`, Claude Code annonce le mode d'autorisation sur lequel vous atterrissez, comme `[plan mode on]` ou `[accept edits on]`. Claude Code imprime l'annonce une fois et ne la répète pas lors des redessins ultérieurs.93Lorsque vous parcourez les [modes d'autorisation](/docs/fr/permission-modes) avec `Shift+Tab`, Claude Code annonce le mode d'autorisation sur lequel vous atterrissez, comme `[plan mode on]` ou `[accept edits on]`. Claude Code imprime l'annonce une fois et ne la répète pas lors des redessins ultérieurs.

96 94 

95<h3 id="read-earlier-output-without-losing-your-place">

96 Lire la sortie précédente sans perdre votre position

97</h3>

98 

99Si votre lecteur d'écran revient à l'invite pendant que vous lisez une sortie précédente, c'est qu'il suit le curseur du terminal. Claude Code ramène le curseur du terminal à l'invite chaque fois qu'il écrit du nouveau texte.

100 

101Pour conserver votre position pendant la lecture, empêchez votre lecteur d'écran de suivre le curseur du terminal. Dans NVDA, appuyez sur `NVDA+6` pour empêcher le curseur de revue de suivre le curseur du terminal. Appuyez à nouveau sur `NVDA+6` pour réactiver le suivi.

102 

97<h3 id="jump-between-turns">103<h3 id="jump-between-turns">

98 Sauter entre les tours104 Sauter entre les tours

99</h3>105</h3>

Details

325 325 

326Quelques stratégies pour les agents de longue durée :326Quelques stratégies pour les agents de longue durée :

327 327 

328* **Utilisez des sous-agents pour les sous-tâches.** Chaque sous-agent commence avec une conversation fraîche (pas d'historique de messages antérieurs, bien qu'il charge son propre prompt système et le contexte au niveau du projet comme CLAUDE.md). Il ne voit pas les tours du parent, et seule sa réponse finale retourne au parent comme résultat d'outil. Le contexte de l'agent principal croît par ce résumé, pas par la transcription complète de la sous-tâche. Voir [Ce que les sous-agents héritent](/docs/fr/agent-sdk/subagents#what-subagents-inherit) pour les détails.328* **Utilisez des sous-agents pour les sous-tâches.** Chaque sous-agent commence avec une conversation fraîche (pas d'historique de messages antérieurs, bien qu'il charge son propre prompt système et le contexte au niveau du projet comme CLAUDE.md). Il ne voit pas les tours du parent, et seule sa réponse finale retourne au parent. Le contexte de l'agent principal croît par ce résumé, pas par la transcription complète de la sous-tâche. Voir [Ce que les sous-agents héritent](/docs/fr/agent-sdk/subagents#what-subagents-inherit) pour les détails.

329* **Soyez sélectif avec les outils.** Chaque définition d'outil prend de l'espace de contexte. Utilisez le champ `tools` sur [`AgentDefinition`](/docs/fr/agent-sdk/subagents#agentdefinition-configuration) pour délimiter les sous-agents à l'ensemble minimum dont ils ont besoin.329* **Soyez sélectif avec les outils.** Chaque définition d'outil prend de l'espace de contexte. Utilisez le champ `tools` sur [`AgentDefinition`](/docs/fr/agent-sdk/subagents#agentdefinition-configuration) pour délimiter les sous-agents à l'ensemble minimum dont ils ont besoin.

330* **Surveillez les coûts des serveurs MCP.** La [recherche d'outils MCP](/docs/fr/agent-sdk/mcp#mcp-tool-search) diffère les schémas d'outils MCP par défaut et les charge à la demande. Lorsque la recherche d'outils est désactivée ou a basculé vers le chargement initial, chaque serveur MCP ajoute tous ses schémas d'outils à chaque requête, donc quelques serveurs avec de nombreux outils peuvent consommer un contexte significatif avant que l'agent ne fasse aucun travail. Voir [Configurer la recherche d'outils](/docs/fr/agent-sdk/tool-search#configure-tool-search) pour les configurations où le basculement s'applique.330* **Surveillez les coûts des serveurs MCP.** La [recherche d'outils MCP](/docs/fr/agent-sdk/mcp#mcp-tool-search) diffère les schémas d'outils MCP par défaut et les charge à la demande. Lorsque la recherche d'outils est désactivée ou a basculé vers le chargement initial, chaque serveur MCP ajoute tous ses schémas d'outils à chaque requête, donc quelques serveurs avec de nombreux outils peuvent consommer un contexte significatif avant que l'agent ne fasse aucun travail. Voir [Configurer la recherche d'outils](/docs/fr/agent-sdk/tool-search#configure-tool-search) pour les configurations où le basculement s'applique.

331* **Utilisez un effort inférieur pour les tâches de routine.** Définissez [effort](#effort-level) à `"low"` pour les agents qui n'ont besoin que de lire des fichiers ou de lister des répertoires. Cela réduit l'utilisation des tokens et le coût.331* **Utilisez un effort inférieur pour les tâches de routine.** Définissez [effort](#effort-level) à `"low"` pour les agents qui n'ont besoin que de lire des fichiers ou de lister des répertoires. Cela réduit l'utilisation des tokens et le coût.

Details

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

1489 1489 

1490<Warning>1490<Warning>

1491 La bêta `context-1m-2025-08-07` est retirée à partir du 30 avril 2026. Passer cet en-tête avec Claude Sonnet 4.5 ou Sonnet 4 n'a aucun effet, et les requêtes qui dépassent la fenêtre de contexte standard de 200k tokens retournent une erreur. Pour utiliser une fenêtre de contexte de 1M tokens, migrez vers [Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, ou Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), qui incluent 1M de contexte à tarification standard sans en-tête bêta requis.1491 Sur l'API Claude, la bêta `context-1m-2025-08-07` est retirée pour Claude Sonnet 4.5 et Claude Sonnet 4. Si vous la passez encore avec l'un de ces modèles, les requêtes qui dépassent la fenêtre de contexte standard de 200K tokens retournent une erreur ; supprimez-la donc de `betas`. Pour exécuter une session avec une fenêtre de contexte de 1M tokens, définissez `model` sur un modèle qui [utilise la fenêtre de 1M par défaut](/docs/fr/model-config#extended-context), tel que `claude-sonnet-5-5` ou `claude-opus-5-5`. Pour un modèle qui n'atteint 1M que via sa variante `[1m]`, ajoutez le suffixe à l'ID du modèle, comme dans `claude-opus-4-6[1m]`.

1492</Warning>1492</Warning>

1493 1493 

1494<h3 id="mcpsdkserverconfig">1494<h3 id="mcpsdkserverconfig">

Details

166 166 

167Lorsque vous exécutez l'exemple, la version TypeScript imprime chaque réponse au fur et à mesure qu'elle se termine. La boucle `receive_response()` de la version Python se termine au premier message de résultat, elle imprime donc l'analyse de sécurité ; pour lire les deux réponses, utilisez une paire `query()` et `receive_response()` par message comme indiqué dans l'[exemple de la référence Python pour continuer une conversation](/docs/fr/agent-sdk/python#example-continuing-a-conversation).167Lorsque vous exécutez l'exemple, la version TypeScript imprime chaque réponse au fur et à mesure qu'elle se termine. La boucle `receive_response()` de la version Python se termine au premier message de résultat, elle imprime donc l'analyse de sécurité ; pour lire les deux réponses, utilisez une paire `query()` et `receive_response()` par message comme indiqué dans l'[exemple de la référence Python pour continuer une conversation](/docs/fr/agent-sdk/python#example-continuing-a-conversation).

168 168 

169Si la `source` d'un bloc d'image est manquante ou n'est pas un objet, le SDK ne signale pas d'erreur. Claude Code envoie à Claude une note textuelle à la place de l'image, telle que `[Image could not be processed: image block has no source object]`, et la session se poursuit.

170 

169<Note>171<Note>

170 Dans le SDK TypeScript, si votre générateur de messages lève une exception, par exemple lorsqu'un fichier qu'il lit est manquant, le flux se termine par une erreur qui lit « Claude Code process aborted by user » au lieu de l'erreur d'origine, donc vérifiez d'abord le code à l'intérieur de votre générateur lorsque vous voyez ce message. L'erreur peut également être précédée par une longue ligne minifiée du code source du SDK groupé, donc lisez jusqu'à la fin de la sortie pour le texte d'erreur.172 Dans le SDK TypeScript, si votre générateur de messages lève une exception, par exemple lorsqu'un fichier qu'il lit est manquant, le flux se termine par une erreur qui lit « Claude Code process aborted by user » au lieu de l'erreur d'origine, donc vérifiez d'abord le code à l'intérieur de votre générateur lorsque vous voyez ce message. L'erreur peut également être précédée par une longue ligne minifiée du code source du SDK groupé, donc lisez jusqu'à la fin de la sortie pour le texte d'erreur.

171 173 

Details

204| Définitions d'outils (héritées du parent ou du sous-ensemble dans `tools`, [filtrées pour les exécutions en arrière-plan](/docs/fr/sub-agents#available-tools)) | Le prompt système du parent |204| Définitions d'outils (héritées du parent ou du sous-ensemble dans `tools`, [filtrées pour les exécutions en arrière-plan](/docs/fr/sub-agents#available-tools)) | Le prompt système du parent |

205 205 

206<Note>206<Note>

207 Le parent reçoit le message final du sous-agent comme résultat de l'outil Agent, mais peut le résumer dans sa propre réponse. Pour préserver la sortie du sous-agent textuellement dans la réponse visible par l'utilisateur, incluez une instruction pour le faire dans le prompt ou l'option `systemPrompt` que vous transmettez à l'appel `query()` principal.207 Le parent reçoit le rapport final du sous-agent, mais peut le résumer dans sa propre réponse. Pour préserver la sortie du sous-agent textuellement dans la réponse visible par l'utilisateur, incluez une instruction pour le faire dans le prompt ou l'option `systemPrompt` que vous transmettez à l'appel `query()` principal.

208 208 

209 Dans la v2.1.210 et versions ultérieures, Claude Code [analyse le message final pour détecter des motifs ressemblant à des instructions](/docs/fr/sub-agents#subagent-output-scanning) avant que le parent ne le lise. L'analyse traite trois types de motifs différemment :209 Dans la v2.1.210 et versions ultérieures, Claude Code [analyse le message final pour détecter des motifs ressemblant à des instructions](/docs/fr/sub-agents#subagent-output-scanning) avant que le parent ne le lise. L'analyse traite trois types de motifs différemment :

210 210 

Details

1596 1596 

1597Sur un message qui porte un bloc `tool_result`, `tool_use_result` est l'objet de sortie structuré de l'outil plutôt que le texte envoyé au modèle. Sa forme dépend de l'outil nommé par le bloc `tool_use` correspondant, donc le champ est typé `unknown` ; les formes intégrées sont listées sous [Types de sortie d'outil](#tool-output-types).1597Sur un message qui porte un bloc `tool_result`, `tool_use_result` est l'objet de sortie structuré de l'outil plutôt que le texte envoyé au modèle. Sa forme dépend de l'outil nommé par le bloc `tool_use` correspondant, donc le champ est typé `unknown` ; les formes intégrées sont listées sous [Types de sortie d'outil](#tool-output-types).

1598 1598 

1599Pour l'outil `Agent`, `tool_use_result` est [`AgentOutput`](#agent-2). Sur un résultat `completed`, `content` contient le rapport du sous-agent sans l'ID d'agent et la remorque d'utilisation que Claude Code ajoute au texte `tool_result`, donc rendez à partir de `tool_use_result` au lieu d'analyser ce texte.1599Pour l'outil `Agent`, `tool_use_result` est [`AgentOutput`](#agent-2). Effectuez le rendu à partir de celui-ci plutôt que d'analyser le texte `tool_result`. Le `content` d'un résultat `completed` contient le rapport du sous-agent ou, pour un sous-agent dont le rapport passe par un appel d'outil `SubagentHandback`, une courte note sur cette remise à la place du rapport. En [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) sur Claude Code v2.1.271 ou ultérieur, chaque sous-agent qui produit un résultat `completed` remet son rapport de cette façon, sauf s'il s'agit d'un [fork](/docs/fr/sub-agents#fork-the-current-conversation), et Claude reçoit le rapport comme un message distinct de la part du sous-agent.

1600 1600 

1601Pour un outil MCP dont le résultat contient des blocs `resource_link`, `tool_use_result` est un objet avec un tableau `resourceLinks` d'entrées [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude reçoit chaque lien comme une ligne de texte dans le bloc `tool_result`, donc lisez `resourceLinks` pour rendre les fichiers que le serveur a retournés au lieu d'analyser ce texte. Claude Code omet `resourceLinks` quand le résultat n'a pas de liens et sur les résultats des sous-agents, conserve au maximum 50 liens par résultat, et arrête d'ajouter des liens une fois que le tableau atteint 64 KiB de JSON sérialisé. `resourceLinks` nécessite Agent SDK v0.3.257 ou ultérieur.1601Pour un outil MCP dont le résultat contient des blocs `resource_link`, `tool_use_result` est un objet avec un tableau `resourceLinks` d'entrées [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude reçoit chaque lien comme une ligne de texte dans le bloc `tool_result`, donc lisez `resourceLinks` pour rendre les fichiers que le serveur a retournés au lieu d'analyser ce texte. Claude Code omet `resourceLinks` quand le résultat n'a pas de liens et sur les résultats des sous-agents, conserve au maximum 50 liens par résultat, et arrête d'ajouter des liens une fois que le tableau atteint 64 KiB de JSON sérialisé. `resourceLinks` nécessite Agent SDK v0.3.257 ou ultérieur.

1602 1602 

Details

526 526 

527Si votre organisation fournit les en-têtes du garde-fou via une politique de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), ils comptent comme des [paramètres nécessitant une approbation](/docs/fr/server-managed-settings#environment-variables-and-the-approval-dialog).527Si votre organisation fournit les en-têtes du garde-fou via une politique de [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), ils comptent comme des [paramètres nécessitant une approbation](/docs/fr/server-managed-settings#environment-variables-and-the-approval-dialog).

528 528 

529Lorsque le garde-fou bloque une réponse en cours de route, le texte déjà diffusé est conservé et la réponse se termine par le message configuré sur le garde-fou pour les réponses bloquées.

530 

529<h2 id="use-the-mantle-endpoint">531<h2 id="use-the-mantle-endpoint">

530 Utiliser le point de terminaison Mantle532 Utiliser le point de terminaison Mantle

531</h2>533</h2>

Details

4 4 

5# Déployer la passerelle Claude apps sur Google Cloud5# Déployer la passerelle Claude apps sur Google Cloud

6 6 

7> Un exemple concret d'exécution de la passerelle Claude apps sur Google Cloud : Cloud Run ou GKE, Cloud SQL pour PostgreSQL, Secret Manager et authentification par compte de service vers Agent Platform.7> Un exemple concret d'exécution de la passerelle Claude apps sur Google Cloud : Cloud Run ou GKE, Cloud SQL pour PostgreSQL, Secret Manager et authentification par compte de service vers Agent Platform de Google Cloud.

8 8 

9<Note>9<Note>

10 Cette page vous guide à travers une façon d'exécuter la passerelle Claude apps sur Google Cloud. La configuration est un exemple fonctionnel pour une infrastructure gérée par le client plutôt qu'un déploiement de production pris en charge ; utilisez-la pour voir comment les éléments s'assemblent avant de l'adapter à votre propre environnement. Pour les exigences indépendantes de la plateforme, consultez le [guide de déploiement](/docs/fr/claude-apps-gateway-deploy).10 Cette page vous guide à travers une façon d'exécuter la passerelle Claude apps sur Google Cloud. La configuration est un exemple fonctionnel pour une infrastructure gérée par le client plutôt qu'un déploiement de production pris en charge ; utilisez-la pour voir comment les éléments s'assemblent avant de l'adapter à votre propre environnement. Pour les exigences indépendantes de la plateforme, consultez le [guide de déploiement](/docs/fr/claude-apps-gateway-deploy).


17</h2>17</h2>

18 18 

19<Frame>19<Frame>

20 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/claude-gateway-gcp-architecture.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=cb705151c69128ac0da235852d5600ab" alt="Diagramme de la passerelle Claude apps sur Google Cloud : les clients Claude Code se connectent via HTTPS à la passerelle (Cloud Run ou GKE), qui s'exécute à l'intérieur d'un VPC aux côtés d'une base de données Cloud SQL avec IP privée pour l'état de session. La passerelle connecte les utilisateurs via OIDC contre Google Workspace, lit la configuration et les secrets de Secret Manager, transfère les demandes de modèle à Agent Platform et récupère son image d'Artifact Registry au déploiement." width="760" height="400" data-path="images/claude-gateway-gcp-architecture.svg" />20 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/claude-gateway-gcp-architecture.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=cb705151c69128ac0da235852d5600ab" alt="Diagramme de la passerelle Claude apps sur Google Cloud : les clients Claude Code se connectent via HTTPS à la passerelle (Cloud Run ou GKE), qui s'exécute à l'intérieur d'un VPC aux côtés d'une base de données Cloud SQL avec IP privée pour l'état de session. La passerelle connecte les utilisateurs via OIDC contre Google Workspace, lit la configuration et les secrets de Secret Manager, transfère les requêtes de modèle à l'Agent Platform de Google Cloud et récupère son image d'Artifact Registry au déploiement." width="760" height="400" data-path="images/claude-gateway-gcp-architecture.svg" />

21</Frame>21</Frame>

22 22 

23La configuration de référence provisionne :23Le déploiement comprend :

24 24 

25* Un service **Cloud Run** ou un **déploiement GKE** exécutant le conteneur de la passerelle25* Un service **Cloud Run** ou un **déploiement GKE** exécutant le conteneur de la passerelle

26* Un référentiel **Artifact Registry** pour l'image de la passerelle26* Un dépôt **Artifact Registry** pour l'image de la passerelle

27* Une instance **Cloud SQL pour PostgreSQL**, IP privée uniquement, pour le [store](/docs/fr/claude-apps-gateway-config#store) de la passerelle27* Une instance **Cloud SQL pour PostgreSQL**, IP privée uniquement, pour le [store](/docs/fr/claude-apps-gateway-config#store) de la passerelle

28* Des secrets **Secret Manager** pour `gateway.yaml`, la clé de signature JWT, le secret client OIDC et l'URL Postgres28* Des secrets **Secret Manager** pour `gateway.yaml`, la clé de signature JWT, le secret client OIDC et l'URL Postgres

29* Un **compte de service** avec `roles/aiplatform.user`, attaché directement sur Cloud Run ou lié via Workload Identity sur GKE29* Un **compte de service** avec `roles/aiplatform.user`, attaché directement sur Cloud Run ou lié via Workload Identity sur GKE

30* Un **équilibreur de charge d'application interne** sur Cloud Run, ou un **GKE Ingress** interne de classe `gce-internal` sur GKE, pour HTTPS30* Un **front end HTTPS** que vous fournissez : un équilibreur de charge d'application interne devant Cloud Run, pour lequel ce guide configure la passerelle sans le créer, ou un **GKE Ingress** interne de classe `gce-internal` sur GKE

31 31 

32<h2 id="prerequisites">32<h2 id="prerequisites">

33 Prérequis33 Prérequis


80 </Step>80 </Step>

81 81 

82 <Step title="Créer le compte de service et accorder l'IAM">82 <Step title="Créer le compte de service et accorder l'IAM">

83 La passerelle s'exécute en tant que compte de service dédié avec permission d'appeler Agent Platform. Elle atteint Cloud SQL sur le VPC avec un utilisateur de mot de passe, donc aucun rôle IAM Cloud SQL n'est requis :83 La passerelle s'exécute en tant que compte de service dédié avec permission d'appeler l'Agent Platform de Google Cloud. Elle atteint Cloud SQL sur le VPC avec un utilisateur de mot de passe, donc aucun rôle IAM Cloud SQL n'est requis :

84 84 

85 ```bash theme={null}85 ```bash theme={null}

86 gcloud iam service-accounts create claude-gateway --display-name="Claude apps gateway"86 gcloud iam service-accounts create claude-gateway --display-name="Claude apps gateway"


141 </Step>141 </Step>

142 142 

143 <Step title="Écrire gateway.yaml">143 <Step title="Écrire gateway.yaml">

144 Le bloc `upstreams` pointe vers Agent Platform avec `auth: {}`, donc la passerelle s'authentifie via Application Default Credentials du compte de service du runtime. Consultez la [référence de configuration](/docs/fr/claude-apps-gateway-config) pour chaque champ.144 Le bloc `upstreams` pointe vers l'Agent Platform de Google Cloud avec `auth: {}`, donc la passerelle s'authentifie via Application Default Credentials du compte de service du runtime. Consultez la [référence de configuration](/docs/fr/claude-apps-gateway-config) pour chaque champ.

145 145 

146 Deux champs `listen` dépendent de ce qui se trouve devant la passerelle :146 Deux champs `listen` décrivent ce qui se trouve devant la passerelle :

147 147 

148 * `public_url` : requis derrière Cloud Run ou un GKE Ingress. La passerelle construit le `redirect_uri` IdP et son document de découverte uniquement à partir de cette valeur, jamais à partir des en-têtes `X-Forwarded-*`.148 * `public_url` : l'origine `https://` externe, requise pour toute liaison autre que loopback ; consultez la [référence `listen`](/docs/fr/claude-apps-gateway-config#listen). La passerelle construit le `redirect_uri` IdP et son document de découverte uniquement à partir de cette valeur, jamais à partir des en-têtes `X-Forwarded-*`.

149 * `trusted_proxies` : les plages source du front-end. La passerelle honore `X-Forwarded-For` uniquement lorsque le pair TCP se trouve dans cette liste, puis parcourt la chaîne au-delà des sauts de confiance, donc les limites de taux de connexion par IP et les événements d'audit enregistrent les IP des développeurs au lieu de celle de l'équilibreur de charge.149 * `trusted_proxies` : les plages source du front-end. La passerelle honore `X-Forwarded-For` uniquement lorsque le pair TCP se trouve dans cette liste, puis parcourt la chaîne au-delà des sauts de confiance, donc les limites de débit de connexion par IP et les événements d'audit enregistrent les IP des développeurs au lieu de celle de l'équilibreur de charge.

150 150 

151 Définissez `trusted_proxies` pour correspondre à votre front-end. Un GKE Ingress externe de classe `gce` n'est pas listé : il provisionne une adresse de règle de transfert publique, que la vérification [réseau privé](/docs/fr/claude-apps-gateway#prerequisites) de `/login` rejette.151 Définissez `trusted_proxies` pour correspondre à votre front-end. Un GKE Ingress externe de classe `gce` n'est pas listé : il provisionne une adresse de règle de transfert publique, que la vérification [réseau privé](/docs/fr/claude-apps-gateway#prerequisites) de `/login` rejette.

152 152 


179 179 

180 store:180 store:

181 postgres_url: ${GATEWAY_POSTGRES_URL} # GKE: ${file:/secrets/postgres-url}181 postgres_url: ${GATEWAY_POSTGRES_URL} # GKE: ${file:/secrets/postgres-url}

182 # readiness_grace_seconds: 300 # keep passing the readiness probe

183 # through a Cloud SQL failover

182 184 

183 upstreams:185 upstreams:

184 - provider: vertex186 - provider: vertex


219 --region="$REGION" \221 --region="$REGION" \

220 --service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \222 --service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

221 --min-instances=1 \223 --min-instances=1 \

224 --max-instances=8 \

222 --timeout=3600 \225 --timeout=3600 \

223 --ingress=internal-and-cloud-load-balancing \226 --ingress=internal \

224 --network="$VPC" --subnet=cc-gateway-subnet --vpc-egress=private-ranges-only \227 --network="$VPC" --subnet=cc-gateway-subnet --vpc-egress=private-ranges-only \

225 --set-secrets=/etc/claude/gateway.yaml=gateway-config:latest,GATEWAY_JWT_SECRET=gateway-jwt-secret:latest,OIDC_CLIENT_SECRET=gateway-oidc-client-secret:latest,GATEWAY_POSTGRES_URL=gateway-postgres-url:latest \228 --set-secrets=/etc/claude/gateway.yaml=gateway-config:latest,GATEWAY_JWT_SECRET=gateway-jwt-secret:latest,OIDC_CLIENT_SECRET=gateway-oidc-client-secret:latest,GATEWAY_POSTGRES_URL=gateway-postgres-url:latest \

226 --no-invoker-iam-check229 --no-invoker-iam-check

227 ```230 ```

228 231 

229 L'accès VPC direct, via `--network`, `--subnet` et `--vpc-egress=private-ranges-only`, permet au service d'atteindre l'IP privée Cloud SQL directement. L'accès public aux points de terminaison Agent Platform et `accounts.google.com` va directement sur Internet plutôt que via le VPC, donc aucun Cloud NAT n'est nécessaire.232 L'accès VPC direct, via `--network`, `--subnet` et `--vpc-egress=private-ranges-only`, permet au service d'atteindre l'IP privée Cloud SQL directement. Chaque instance détient jusqu'à [`store.max_connections`](/docs/fr/claude-apps-gateway-config#store) connexions Postgres, cinq par défaut, donc maintenez le nombre maximal d'instances × `store.max_connections` en dessous de la limite de connexions de votre niveau Cloud SQL ; les [actifs de référence](#terraform-reference) plafonnent les instances à 8 pour le niveau `db-g1-small` pour cette raison. L'accès public aux endpoints de l'Agent Platform de Google Cloud et à `accounts.google.com` va directement sur Internet plutôt que via le VPC, donc aucun Cloud NAT n'est nécessaire.

230 233 

231 La vérification IAM de l'invocateur doit être ouverte ou désactivée. La passerelle exécute son propre OIDC et ses clients ne portent aucun jeton GCP, donc la vérification de l'invocateur de Cloud Run doit admettre les demandes non authentifiées. L'authentification OIDC de la passerelle authentifie la demande une fois qu'elle atteint le conteneur, avec `allowed_email_domains` contrôlant les domaines autorisés à se connecter.234 La vérification IAM de l'invocateur doit être ouverte ou désactivée. La passerelle exécute son propre OIDC et ses clients ne portent aucun jeton GCP, donc la vérification de l'invocateur de Cloud Run doit admettre les requêtes non authentifiées. L'authentification OIDC de la passerelle authentifie la requête une fois qu'elle atteint le conteneur, avec `allowed_email_domains` contrôlant les domaines autorisés à se connecter.

232 235 

233 Deux drapeaux admettent les demandes non authentifiées :236 Deux flags admettent les requêtes non authentifiées :

234 237 

235 * `--no-invoker-iam-check` : désactive la vérification sans liaison `allUsers` à gérer, et fonctionne sous Domain Restricted Sharing238 * `--no-invoker-iam-check` : désactive la vérification sans liaison `allUsers` à gérer, et fonctionne sous Domain Restricted Sharing

236 * `--allow-unauthenticated` : accorde à `allUsers` le rôle `run.invoker` ; utilisez-le si votre organisation n'autorise pas `--no-invoker-iam-check`239 * `--allow-unauthenticated` : accorde à `allUsers` le rôle `run.invoker` ; utilisez-le si votre organisation n'autorise pas `--no-invoker-iam-check`


239 242 

240 Par défaut, l'URL Cloud Run `*.run.app` se résout en une adresse publique, que la vérification [réseau privé](/docs/fr/claude-apps-gateway#prerequisites) de `/login` rejette. Deux topologies donnent aux développeurs un nom d'hôte résoluble en privé, et Cloud Run ne provisionne ni l'une ni l'autre pour vous :243 Par défaut, l'URL Cloud Run `*.run.app` se résout en une adresse publique, que la vérification [réseau privé](/docs/fr/claude-apps-gateway#prerequisites) de `/login` rejette. Deux topologies donnent aux développeurs un nom d'hôte résoluble en privé, et Cloud Run ne provisionne ni l'une ni l'autre pour vous :

241 244 

242 * **Équilibreur de charge d'application interne**, la topologie que la commande de déploiement ci-dessus suppose : déployez avec `--ingress=internal-and-cloud-load-balancing`, provisionnez un équilibreur de charge d'application interne devant le service avec un nom DNS interne et un certificat, et définissez `listen.public_url` sur ce nom d'hôte.245 * **Équilibreur de charge d'application interne**, la topologie que le `gateway.yaml` de cette page suppose : provisionnez un équilibreur de charge d'application interne devant le service avec un nom DNS interne et un certificat, et définissez `listen.public_url` sur ce nom d'hôte. Le paramètre d'accès `internal` admet déjà le trafic provenant des équilibreurs de charge d'application internes ; `internal-and-cloud-load-balancing` admet en plus les équilibreurs de charge d'application externes, dont la vérification réseau privé de `/login` rejette les adresses publiques, donc aucune topologie de cette page n'en a besoin.

243 * **Accès interne uniquement sans équilibreur de charge** : déployez avec `--ingress=internal` et laissez `listen.public_url` comme l'URL `*.run.app`, la valeur par défaut dans les [actifs de référence](#terraform-reference) ci-dessous. Pour que `*.run.app` se résolve en privé, votre équipe réseau doit déjà exploiter un point de terminaison Private Service Connect pour les API Google, une zone privée Cloud DNS résolvant `*.run.app` vers celui-ci, et un routage sur site vers ce point de terminaison.246 * **Accès interne uniquement sans équilibreur de charge** : conservez la commande de déploiement telle quelle et laissez `listen.public_url` comme l'URL `*.run.app`, la valeur par défaut dans les [actifs de référence](#terraform-reference) ci-dessous. Pour que `*.run.app` se résolve en privé, votre équipe réseau doit déjà exploiter un endpoint Private Service Connect pour les API Google, une zone privée Cloud DNS résolvant `*.run.app` vers celui-ci, et un routage sur site vers cet endpoint.

244 247 

245 Le [guide de mise en réseau privée de Google pour Cloud Run](https://cloud.google.com/run/docs/securing/private-networking) couvre l'infrastructure que les deux options nécessitent. Vérifiez la connexion une fois que la passerelle est servie sur un nom d'hôte privé ; jusqu'à ce moment, confirmez que le conteneur a démarré à partir de ses journaux dans Cloud Run.248 Le [guide de mise en réseau privée de Google pour Cloud Run](https://cloud.google.com/run/docs/securing/private-networking) couvre l'infrastructure que les deux options nécessitent. Vérifiez la connexion une fois que la passerelle est servie sur un nom d'hôte privé ; jusqu'à ce moment, confirmez que le conteneur a démarré à partir de ses journaux dans Cloud Run.

246 249 


278 * le pilote CSI Secret Manager montant les secrets à `/secrets`281 * le pilote CSI Secret Manager montant les secrets à `/secrets`

279 * la sonde de disponibilité pointée vers `GET /readyz`282 * la sonde de disponibilité pointée vers `GET /readyz`

280 283 

281 Attachez un BackendConfig avec un `timeoutSec` augmenté au Service de la passerelle : le service backend de l'équilibreur de charge derrière GKE Ingress par défaut à un délai d'expiration de 30 secondes, ce qui coupe les réponses de streaming longues.284 Attachez un BackendConfig avec un `timeoutSec` augmenté au Service de la passerelle : le service backend de l'équilibreur de charge derrière GKE Ingress utilise par défaut un délai d'expiration de 30 secondes, ce qui coupe les réponses de streaming longues.

282 285 

283 N'appliquez pas une NetworkPolicy d'accès sortant qui bloque `169.254.169.254` sur un cluster Workload Identity ; le pod doit atteindre le serveur de métadonnées pour les identifiants. La [garde SSRF](/docs/fr/claude-apps-gateway-deploy#threat-model-summary) intégrée de la passerelle est la défense là.286 N'appliquez pas une NetworkPolicy d'accès sortant qui bloque `169.254.169.254` sur un cluster Workload Identity ; le pod doit atteindre le serveur de métadonnées pour les identifiants. La [garde SSRF](/docs/fr/claude-apps-gateway-deploy#threat-model-summary) intégrée de la passerelle est la défense là.

284 287 

285 La passerelle enregistre un avertissement de démarrage que le point de terminaison des métadonnées est accessible et suggère d'appliquer une NetworkPolicy d'accès sortant. Sous Workload Identity, cet avertissement est attendu, car le pod a besoin du point de terminaison.288 La passerelle journalise un avertissement de démarrage indiquant que l'endpoint des métadonnées est accessible et suggère d'appliquer une NetworkPolicy d'accès sortant. Sous Workload Identity, cet avertissement est attendu, car le pod a besoin de l'endpoint.

286 </Tab>289 </Tab>

287 </Tabs>290 </Tabs>

288 </Step>291 </Step>

289 292 

290 <Step title="Pousser l'URL de la passerelle vers les machines des développeurs">293 <Step title="Pousser l'URL de la passerelle vers les machines des développeurs">

291 La passerelle s'exécute maintenant, mais les développeurs ne peuvent pas la atteindre à partir de `/login` jusqu'à ce que l'URL de la passerelle soit sur leurs machines. Définissez `forceLoginMethod` et `forceLoginGatewayUrl` dans le [fichier de paramètres gérés](/docs/fr/claude-apps-gateway#set-the-gateway-url) que vous déployez sur chaque appareil via MDM. Il n'y a pas d'option de passerelle dans le sélecteur de connexion pour qu'un développeur sélectionne manuellement.294 La passerelle s'exécute maintenant, mais les développeurs ne peuvent pas l'atteindre à partir de `/login` jusqu'à ce que l'URL de la passerelle soit sur leurs machines. Déployez l'[extrait de paramètres gérés](/docs/fr/claude-apps-gateway#set-the-gateway-url) complet, avec `forceLoginMethod`, `forceLoginGatewayUrl` et l'activation `parentSettingsBehavior: "merge"`, sur chaque appareil via MDM. Il n'y a pas d'option de passerelle dans le sélecteur de connexion pour qu'un développeur sélectionne manuellement.

292 </Step>295 </Step>

293</Steps>296</Steps>

294 297 


302* `terraform/` : le même déploiement en tant qu'infrastructure en tant que code, pour un déploiement sur terrain vierge : une application ciblée pour créer le référentiel Artifact Registry, puis construire et pousser l'image, puis une application complète305* `terraform/` : le même déploiement en tant qu'infrastructure en tant que code, pour un déploiement sur terrain vierge : une application ciblée pour créer le référentiel Artifact Registry, puis construire et pousser l'image, puis une application complète

303* `gateway.yaml.example` et un `Dockerfile` pour l'image de runtime distroless306* `gateway.yaml.example` et un `Dockerfile` pour l'image de runtime distroless

304 307 

305Les artefacts par défaut Cloud Run ingress à `internal`, donc aucun équilibreur de charge n'est requis. Pour correspondre au déploiement de production derrière un ALB de cette page, exécutez `setup.sh` avec `INGRESS=internal-and-cloud-load-balancing`, ou définissez la variable Terraform `ingress` à `INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER`. Les artefacts définissent également par défaut la couche d'invocateur à une concession `allUsers` `run.invoker` plutôt qu'à `--no-invoker-iam-check`, l'inverse de la procédure pas à pas de cette page ; l'un ou l'autre fonctionne, et le choix dépend des contraintes de politique de votre organisation.308Les artefacts définissent par défaut l'ingress Cloud Run à `internal`, ce qui correspond à la commande de déploiement de cette page ; ce paramètre fonctionne avec ou sans un Application Load Balancer interne devant le service, et les artefacts ne créent pas non plus l'équilibreur de charge. Les artefacts définissent également par défaut la couche d'invocateur à une concession `allUsers` `run.invoker` plutôt qu'à `--no-invoker-iam-check`, l'inverse de la procédure pas à pas de cette page ; l'un ou l'autre fonctionne, et le choix dépend des contraintes de politique de votre organisation.

306 309 

307Les actifs sont fournis en tant qu'exemples fonctionnels, non en tant qu'artefact de production pris en charge ; examinez-les et adaptez-les à votre environnement.310Les actifs sont fournis en tant qu'exemples fonctionnels, non en tant qu'artefact de production pris en charge ; examinez-les et adaptez-les à votre environnement.

308 311 


317| Cloud Run retourne `403 Forbidden` avant d'atteindre le conteneur | La vérification IAM de l'invocateur est toujours activée | Déployez avec `--no-invoker-iam-check`, ou accordez à `allUsers` le rôle `run.invoker` avec `--allow-unauthenticated` |320| Cloud Run retourne `403 Forbidden` avant d'atteindre le conteneur | La vérification IAM de l'invocateur est toujours activée | Déployez avec `--no-invoker-iam-check`, ou accordez à `allUsers` le rôle `run.invoker` avec `--allow-unauthenticated` |

318| `--no-invoker-iam-check` rejeté avec `invoker_iam_disabled is not currently available` | Bloqué par `constraints/run.managed.requireInvokerIam` | Utilisez `--allow-unauthenticated`. Si Domain Restricted Sharing via `constraints/iam.allowedPolicyMemberDomains` bloque également cela, utilisez la piste GKE, qui expose la passerelle au niveau du réseau sans liaison `allUsers`. |321| `--no-invoker-iam-check` rejeté avec `invoker_iam_disabled is not currently available` | Bloqué par `constraints/run.managed.requireInvokerIam` | Utilisez `--allow-unauthenticated`. Si Domain Restricted Sharing via `constraints/iam.allowedPolicyMemberDomains` bloque également cela, utilisez la piste GKE, qui expose la passerelle au niveau du réseau sans liaison `allUsers`. |

319| `Container manifest type … must support amd64/linux` au déploiement | L'image a été construite sur un hôte non-amd64, ou buildx a émis un index d'image OCI | Construisez avec `--platform=linux/amd64 --provenance=false` |322| `Container manifest type … must support amd64/linux` au déploiement | L'image a été construite sur un hôte non-amd64, ou buildx a émis un index d'image OCI | Construisez avec `--platform=linux/amd64 --provenance=false` |

320| Le démarrage de la passerelle se termine avec une erreur de délai d'expiration de connexion Postgres sur Cloud Run | Le service n'est pas attaché au VPC, ou Cloud SQL n'a pas d'IP privée sur ce VPC ; le store arrête d'attendre après 5 secondes | Déployez avec `--network` et `--subnet` pour l'accès VPC direct, et créez l'instance Cloud SQL avec `--no-assign-ip` et `--network` pointant vers le même VPC |323| Le démarrage de la passerelle se termine avec une erreur de délai d'expiration de connexion Postgres sur Cloud Run | Le service n'est pas attaché au VPC, ou Cloud SQL n'a pas d'IP privée sur ce VPC | Déployez avec `--network` et `--subnet` pour l'accès VPC direct, et créez l'instance Cloud SQL avec `--no-assign-ip` et `--network` pointant vers le même VPC |

321| Les demandes Agent Platform retournent `403 PERMISSION_DENIED` | Le runtime n'utilise pas le compte de service `claude-gateway`, ou le modèle n'est pas activé dans Model Garden pour le projet | Définissez `--service-account` sur Cloud Run ou liez Workload Identity sur GKE, et activez chaque modèle Claude dans Model Garden pour la région cible |324| Les requêtes vers Agent Platform de Google Cloud retournent `403 PERMISSION_DENIED` | Le runtime n'utilise pas le compte de service `claude-gateway`, ou le modèle n'est pas activé dans Model Garden pour le projet | Définissez `--service-account` sur Cloud Run ou liez Workload Identity sur GKE, et activez chaque modèle Claude dans Model Garden pour la région cible |

322| Les réponses de streaming se coupent après une durée fixe | Délai d'expiration de la demande du front-end : le service backend de l'équilibreur de charge derrière GKE Ingress par défaut à 30 secondes et Cloud Run à 300 secondes | Attachez un BackendConfig avec un `timeoutSec` augmenté sur GKE, ou déployez avec `--timeout=3600` sur Cloud Run |325| Les réponses de streaming se coupent après une durée fixe | Délai d'expiration de la demande du front-end : le service backend de l'équilibreur de charge derrière GKE Ingress par défaut à 30 secondes et Cloud Run à 300 secondes | Attachez un BackendConfig avec un `timeoutSec` augmenté sur GKE, ou déployez avec `--timeout=3600` sur Cloud Run |

323 326 

324<h2 id="next-steps">327<h2 id="next-steps">

cli-reference.md +20 −12

Details

15| Commande | Description | Exemple |15| Commande | Description | Exemple |

16| :- | :- | :- |16| :- | :- | :- |

17| `claude` | Démarrer une session interactive | `claude` |17| `claude` | Démarrer une session interactive | `claude` |

18| `claude "query"` | Démarrer une session interactive avec une invite initiale | `claude "explain this project"` |18| `claude "query"` | Démarrer une session interactive avec un prompt initial | `claude "explain this project"` |

19| `claude -p "query"` | Interroger via SDK, puis quitter | `claude -p "explain this function"` |19| `claude -p "query"` | Interroger via SDK, puis quitter | `claude -p "explain this function"` |

20| `cat file \| claude -p "query"` | Traiter le contenu canalisé | `cat logs.txt \| claude -p "explain"` |20| `cat file \| claude -p "query"` | Traiter le contenu canalisé | `cat logs.txt \| claude -p "explain"` |

21| `claude -c` | Continuer la conversation la plus récente dans le répertoire courant | `claude -c` |21| `claude -c` | Continuer la conversation la plus récente dans le répertoire courant | `claude -c` |


26| `claude install [version]` | Installer ou réinstaller le binaire natif. Accepte une version comme `2.1.118`, ou `stable` ou `latest`. Voir [Installer une version spécifique](/docs/fr/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | Installer ou réinstaller le binaire natif. Accepte une version comme `2.1.118`, ou `stable` ou `latest`. Voir [Installer une version spécifique](/docs/fr/setup#install-a-specific-version) | `claude install stable` |

27| `claude auth login` | Se connecter à votre compte Anthropic. Utilisez `--email` pour pré-remplir votre adresse e-mail, `--sso` pour forcer l'authentification SSO, et `--console` pour vous connecter avec Anthropic Console pour la facturation de l'utilisation de l'API au lieu d'un abonnement Claude | `claude auth login --console` |27| `claude auth login` | Se connecter à votre compte Anthropic. Utilisez `--email` pour pré-remplir votre adresse e-mail, `--sso` pour forcer l'authentification SSO, et `--console` pour vous connecter avec Anthropic Console pour la facturation de l'utilisation de l'API au lieu d'un abonnement Claude | `claude auth login --console` |

28| `claude auth logout` | Se déconnecter de votre compte Anthropic | `claude auth logout` |28| `claude auth logout` | Se déconnecter de votre compte Anthropic | `claude auth logout` |

29| `claude auth status` | Afficher l'état d'authentification en JSON. Utilisez `--text` pour une sortie lisible par l'homme. Quitte avec le code 0 si connecté, 1 sinon. Le JSON inclut un champ `configDirectory` nommant le [répertoire de configuration](/docs/fr/claude-directory) que l'interface de ligne de commande utilise. Le champ nécessite Claude Code v2.1.268 ou ultérieur | `claude auth status` |29| `claude auth status` | Afficher l'état d'authentification en JSON. Utilisez `--text` pour une sortie lisible par l'homme. Quitte avec le code 0 si connecté, 1 sinon. Le JSON inclut un champ `configDirectory` nommant le [répertoire de configuration](/docs/fr/claude-directory) que l'interface de ligne de commande utilise. Le champ nécessite Claude Code v2.1.268 ou ultérieur. Le champ `authMethod` du JSON prend l'une des valeurs `none`, `claude.ai`, `oauth_token`, `api_key`, `api_key_helper` ou `third_party` | `claude auth status` |

30| `claude agents` | Ouvrir la [vue agent](/docs/fr/agent-view) pour surveiller et dispatcher les sessions d'arrière-plan parallèles. Utilisez `--cwd <path>` pour afficher uniquement les sessions démarrées sous ce répertoire, ou `--json` pour imprimer les sessions actives en tant que tableau JSON pour les scripts (`--json --all` inclut également les sessions d'arrière-plan terminées). Passez `--permission-mode`, `--model`, `--effort`, ou `--agent` pour définir les [valeurs par défaut pour les sessions dispatched](/docs/fr/agent-view#permission-mode-model-and-effort). Accepte `--settings`, `--add-dir`, `--plugin-dir`, et `--mcp-config` comme la commande `claude` de niveau supérieur. L'ouverture de la vue agent nécessite un terminal interactif | `claude agents --json` |30| `claude agents` | Ouvrir la [vue agent](/docs/fr/agent-view) pour surveiller et dispatcher les sessions d'arrière-plan parallèles. Utilisez `--cwd <path>` pour afficher uniquement les sessions démarrées sous ce répertoire, ou `--json` pour imprimer les sessions actives en tant que tableau JSON pour les scripts (`--json --all` inclut également les sessions d'arrière-plan terminées). Passez `--permission-mode`, `--model`, `--effort`, ou `--agent` pour définir les [valeurs par défaut pour les sessions dispatched](/docs/fr/agent-view#permission-mode-model-and-effort). Accepte `--settings`, `--add-dir`, `--plugin-dir`, et `--mcp-config` comme la commande `claude` de niveau supérieur. L'ouverture de la vue agent nécessite un terminal interactif | `claude agents --json` |

31| `claude attach <id>` | Attacher à une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal | `claude attach 7c5dcf5d` |31| `claude attach <id>` | Attacher à une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Imprimer les règles du classificateur [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) intégrées en JSON. Utilisez `claude auto-mode config` pour voir votre configuration effective avec les paramètres appliqués. `--label <prefix>` imprime uniquement les règles dont l'étiquette commence par ce préfixe, correspondance insensible à la casse. Nécessite Claude Code v2.1.208 ou ultérieur | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Imprimer les règles du classificateur [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) intégrées en JSON. Utilisez `claude auto-mode config` pour voir votre configuration effective avec les paramètres appliqués. `--label <prefix>` imprime uniquement les règles dont l'étiquette commence par ce préfixe, correspondance insensible à la casse. Nécessite Claude Code v2.1.208 ou ultérieur | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | Restaurer la configuration [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) par défaut en supprimant la section `autoMode` de votre fichier de paramètres utilisateur. Demande une confirmation avant d'écrire ; passez `-y`/`--yes` pour ignorer l'invite. Les règles des [paramètres gérés](/docs/fr/server-managed-settings) ou du drapeau `--settings` s'appliquent toujours. Nécessite Claude Code v2.1.212 ou ultérieur. Voir [Inspecter les valeurs par défaut et votre configuration effective](/docs/fr/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | Restaurer la configuration [mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) par défaut en supprimant la section `autoMode` de votre fichier de paramètres utilisateur. Demande une confirmation avant d'écrire ; passez `-y`/`--yes` pour ignorer la demande. Les règles des [paramètres gérés](/docs/fr/server-managed-settings) ou du flag `--settings` s'appliquent toujours. Nécessite Claude Code v2.1.212 ou ultérieur. Voir [Inspecter les valeurs par défaut et votre configuration effective](/docs/fr/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon status` | Imprimer l'état du [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan, la version, le répertoire socket, et le nombre de workers pour les diagnostics. Quitte avec 1 si le superviseur n'est pas en cours d'exécution | `claude daemon status` |34| `claude daemon status` | Imprimer l'état du [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan, la version, le répertoire socket, et le nombre de workers pour les diagnostics. Quitte avec 1 si le superviseur n'est pas en cours d'exécution | `claude daemon status` |

35| `claude daemon stop --any` | Arrêter le [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan et les sessions qu'il héberge. Passez `--keep-workers` pour laisser les sessions d'arrière-plan en cours d'exécution afin que le superviseur suivant se reconnecte à elles. `--any` confirme l'arrêt d'un superviseur à la demande, qui est la valeur par défaut. Utilisez ceci pour récupérer d'un [superviseur qui ne répond pas](/docs/fr/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |35| `claude daemon stop --any` | Arrêter le [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan et les sessions qu'il héberge. Passez `--keep-workers` pour laisser les sessions d'arrière-plan en cours d'exécution afin que le superviseur suivant se reconnecte à elles. `--any` confirme l'arrêt d'un superviseur à la demande, qui est la valeur par défaut. Utilisez ceci pour récupérer d'un [superviseur qui ne répond pas](/docs/fr/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |

36| `claude doctor` | Imprimer les diagnostics d'installation et de paramètres en lecture seule depuis le terminal sans démarrer une session, y compris la vérification de la santé de l'installation, les erreurs de validation du fichier de paramètres, et l'éligibilité au contrôle à distance. Pour la vérification de configuration en session qui peut également appliquer des correctifs, exécutez [`/doctor`](/docs/fr/commands#all-commands) | `claude doctor` |36| `claude doctor` | Imprimer les diagnostics d'installation et de paramètres en lecture seule depuis le terminal sans démarrer une session, y compris la vérification de la santé de l'installation, les erreurs de validation du fichier de paramètres, et l'éligibilité à Remote Control. Pour la vérification de configuration en session qui peut également appliquer des correctifs, exécutez [`/doctor`](/docs/fr/commands#all-commands) | `claude doctor` |

37| `claude import [source]` | Démarrer une session interactive qui exécute [`/import`](/docs/fr/commands#all-commands) pour apporter la configuration d'autres agents de codage dans Claude Code. Accepte les mêmes options `--dry-run` et `--yes` que la commande. Non disponible sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou Claude Platform sur AWS. Également indisponible quand vous désactivez [la récupération des drapeaux de fonctionnalité](/docs/fr/env-vars#features-that-need-feature-flag-fetching). Nécessite Claude Code v2.1.213 ou ultérieur | `claude import codex --dry-run` |37| `claude import [source]` | Démarrer une session interactive qui exécute [`/import`](/docs/fr/commands#all-commands) pour apporter la configuration d'autres agents de codage dans Claude Code. Accepte les mêmes options `--dry-run` et `--yes` que la commande. Non disponible sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou Claude Platform sur AWS. Également indisponible quand vous désactivez [la récupération des feature flags](/docs/fr/env-vars#features-that-need-feature-flag-fetching). Nécessite Claude Code v2.1.213 ou ultérieur | `claude import codex --dry-run` |

38| `claude logs <id>` | Imprimer la sortie récente d'une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |38| `claude logs <id>` | Imprimer la sortie récente d'une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |

39| `claude mcp` | Configurer les serveurs Model Context Protocol (MCP) | Voir la [documentation Claude Code MCP](/docs/fr/mcp). |39| `claude mcp` | Configurer les serveurs Model Context Protocol (MCP) | Voir la [documentation Claude Code MCP](/docs/fr/mcp). |

40| `claude mcp login <name>` | Exécuter le flux OAuth d'un serveur MCP configuré sans ouvrir le panneau interactif `/mcp`. Fonctionne pour les serveurs HTTP, SSE et claude.ai connector. Ajoutez `--no-browser` sur SSH pour imprimer l'URL d'autorisation au lieu d'ouvrir un navigateur, puis collez l'URL de redirection à l'invite. Voir [S'authentifier à partir de la ligne de commande](/docs/fr/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Exécuter le flux OAuth d'un serveur MCP configuré sans ouvrir le panneau interactif `/mcp`. Fonctionne pour les serveurs HTTP, SSE et les connecteurs claude.ai. Ajoutez `--no-browser` sur SSH pour imprimer l'URL d'autorisation au lieu d'ouvrir un navigateur, puis collez l'URL de redirection à l'invite. Voir [S'authentifier à partir de la ligne de commande](/docs/fr/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | Effacer les identifiants OAuth stockés pour un serveur MCP | `claude mcp logout sentry` |41| `claude mcp logout <name>` | Effacer les identifiants OAuth stockés pour un serveur MCP | `claude mcp logout sentry` |

42| `claude plugin` | Gérer les [plugins](/docs/fr/plugins/overview) Claude Code. Alias : `claude plugins`. Voir la [référence des plugins](/docs/fr/plugins/cli-reference#claude-plugin-commands) pour les sous-commandes | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Gérer les [plugins](/docs/fr/plugins/overview) Claude Code. Alias : `claude plugins`. Voir la [référence des plugins](/docs/fr/plugins/cli-reference#claude-plugin-commands) pour les sous-commandes | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | Supprimer tout l'état local de Claude Code pour un projet : transcriptions, listes de tâches, journaux de débogage, historique des modifications de fichiers, lignes d'historique des invites, et l'entrée du projet dans `~/.claude.json`. Omettez `[path]` pour choisir dans une liste interactive. Drapeaux : `--dry-run` pour prévisualiser, `-y`/`--yes` pour ignorer la confirmation, `-i`/`--interactive` pour confirmer chaque élément, `--all` pour chaque projet. Voir [Effacer les données locales](/docs/fr/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude project purge [path]` | Supprimer tout l'état local de Claude Code pour un projet : transcriptions, listes de tâches, journaux de débogage, historique des modifications de fichiers, lignes d'historique des prompts, et l'entrée du projet dans `~/.claude.json`. Omettez `[path]` pour choisir dans une liste interactive. Flags : `--dry-run` pour prévisualiser, `-y`/`--yes` pour ignorer la confirmation, `-i`/`--interactive` pour confirmer chaque élément, `--all` pour chaque projet. Voir [Effacer les données locales](/docs/fr/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |

44| `claude remote-control` | Démarrer un serveur [Remote Control](/docs/fr/remote-control) pour contrôler Claude Code depuis Claude.ai ou l'application Claude. S'exécute en mode serveur (pas de session interactive locale). Voir [Drapeaux du mode serveur](/docs/fr/remote-control#start-a-remote-control-session). Après avoir arrêté le serveur, vous pouvez ramener les sessions qu'il servait. Voir [Reprendre les sessions après l'arrêt du serveur](/docs/fr/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Démarrer un serveur [Remote Control](/docs/fr/remote-control) pour contrôler Claude Code depuis Claude.ai ou l'application Claude. S'exécute en mode serveur (pas de session interactive locale). Voir [Flags du mode serveur](/docs/fr/remote-control#start-a-remote-control-session). Après avoir arrêté le serveur, vous pouvez ramener les sessions qu'il servait. Voir [Reprendre les sessions après l'arrêt du serveur](/docs/fr/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Redémarrer une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell), en cours d'exécution ou arrêtée, avec sa conversation intacte. Utilisez `--all` pour redémarrer chaque session en cours d'exécution, par exemple pour récupérer un binaire Claude Code mis à jour | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Redémarrer une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell), en cours d'exécution ou arrêtée, avec sa conversation intacte. Utilisez `--all` pour redémarrer chaque session en cours d'exécution, par exemple pour récupérer un binaire Claude Code mis à jour | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | Supprimer une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) de la liste. Quand la suppression est [refusée sur le worktree de la session](/docs/fr/agent-view#what-deleting-a-session-removes) et une deuxième `claude rm` peut la résoudre, le refus imprime le drapeau exact et la valeur à passer : `--discard-unpushed <commit>@<worktree-id>` abandonne un worktree qui a des commits non poussés ainsi que ces commits, et `--force-remove-worktree <worktree-id>` supprime un répertoire worktree que git ou le hook `WorktreeRemove` n'a pas pu supprimer. `--discard-unpushed` nécessite Claude Code v2.1.260 ou ultérieur, et `--force-remove-worktree` nécessite v2.1.268 ou ultérieur. La transcription de la conversation reste sur votre machine locale, disponible via `claude --resume` | `claude rm 7c5dcf5d` |46| `claude rm <id>` | Supprimer une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) de la liste. Quand la suppression est [refusée sur le worktree de la session](/docs/fr/agent-view#what-deleting-a-session-removes) et qu'une deuxième `claude rm` peut la résoudre, le refus imprime le flag exact et la valeur à passer : `--discard-unpushed <commit>@<worktree-id>` abandonne un worktree qui a des commits non poussés ainsi que ces commits, et `--force-remove-worktree <worktree-id>` supprime un répertoire worktree que git ou le hook `WorktreeRemove` n'a pas pu supprimer. `--discard-unpushed` nécessite Claude Code v2.1.260 ou ultérieur, et `--force-remove-worktree` nécessite v2.1.268 ou ultérieur. La transcription de la conversation reste sur votre machine locale, disponible via `claude --resume` | `claude rm 7c5dcf5d` |

47| `claude self-hosted-runner` | Démarrer un processus runner qui enregistre cette machine ou ce conteneur auprès d'un [environnement auto-hébergé](/docs/fr/self-hosted-environments) et héberge les sessions cloud Claude Code sur votre infrastructure. Exécutez `claude self-hosted-runner setup` pour une procédure pas à pas guidée de l'opérateur, `claude self-hosted-runner doctor` pour [diagnostiquer un runner déployé](/docs/fr/self-hosted-environments-deploy#troubleshooting), et `claude self-hosted-runner orchestrator` pour générer des [runners à la demande](/docs/fr/self-hosted-environments-configuration#on-demand-runners). Nécessite Claude Code v2.1.224 ou ultérieur | `claude self-hosted-runner setup` |47| `claude self-hosted-runner` | Démarrer un processus runner qui enregistre cette machine ou ce conteneur auprès d'un [environnement auto-hébergé](/docs/fr/self-hosted-environments) et héberge les sessions cloud Claude Code sur votre infrastructure. Exécutez `claude self-hosted-runner setup` pour une procédure pas à pas guidée de l'opérateur, `claude self-hosted-runner doctor` pour [diagnostiquer un runner déployé](/docs/fr/self-hosted-environments-deploy#troubleshooting), et `claude self-hosted-runner orchestrator` pour générer des [runners à la demande](/docs/fr/self-hosted-environments-configuration#on-demand-runners). Nécessite Claude Code v2.1.224 ou ultérieur | `claude self-hosted-runner setup` |

48| `claude setup-token` | Générer un jeton OAuth de longue durée pour CI et les scripts. Imprime le jeton sur le terminal sans l'enregistrer. Nécessite un abonnement Claude. Voir [Générer un jeton de longue durée](/docs/fr/authentication#generate-a-long-lived-token) | `claude setup-token` |48| `claude setup-token` | Générer un jeton OAuth de longue durée pour CI et les scripts. Imprime le jeton sur le terminal sans l'enregistrer. Nécessite un abonnement Claude. Voir [Générer un jeton de longue durée](/docs/fr/authentication#generate-a-long-lived-token) | `claude setup-token` |

49| `claude stop <id>` | Arrêter une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell). Accepte également `claude kill` | `claude stop 7c5dcf5d` |49| `claude stop <id>` | Arrêter une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell). Accepte également `claude kill` | `claude stop 7c5dcf5d` |

50| `claude ultrareview [target]` | Exécuter [ultrareview](/docs/fr/ultrareview#run-ultrareview-non-interactively) de manière non interactive. Imprime les résultats sur stdout et quitte avec 0 en cas de succès ou 1 en cas d'échec. Utilisez `--json` pour la charge utile brute et `--timeout <minutes>` pour remplacer la valeur par défaut de 45 minutes. Utilisez `--post` sur une cible de demande de tirage `github.com` pour publier les résultats terminés sur la PR en tant qu'un seul commentaire simple depuis votre compte GitHub. `--no-post` est la valeur par défaut. `--post` et `--no-post` nécessitent Claude Code v2.1.227 ou ultérieur. Voir [Publier les résultats sur la demande de tirage](/docs/fr/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` |50| `claude ultrareview [target]` | Exécuter [ultrareview](/docs/fr/ultrareview#run-ultrareview-non-interactively) de manière non interactive. Imprime les résultats sur stdout et quitte avec 0 en cas de succès ou 1 en cas d'échec. Utilisez `--json` pour le payload brut et `--timeout <minutes>` pour remplacer la valeur par défaut de 45 minutes. Utilisez `--post` sur une cible de pull request `github.com` pour publier les résultats terminés sur la PR en tant qu'un seul commentaire simple depuis votre compte GitHub. `--no-post` est la valeur par défaut. `--post` et `--no-post` nécessitent Claude Code v2.1.227 ou ultérieur. Voir [Publier les résultats sur la pull request](/docs/fr/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` |

51 51 

52Si vous tapez mal une sous-commande, Claude Code suggère la correspondance la plus proche et quitte sans démarrer une session. Par exemple, `claude udpate` imprime `Did you mean claude update?`.52Si vous tapez mal une sous-commande, Claude Code suggère la correspondance la plus proche et quitte sans démarrer une session. Par exemple, `claude udpate` imprime `Did you mean claude update?`.

53 53 

54À partir de v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` exécute la sous-commande `daemon`. Les versions antérieures traitaient `daemon <subcommand>` comme l'invite pour une nouvelle session interactive, donc la sous-commande ne s'exécutait jamais quand le drapeau venait en premier, une configuration courante quand `claude` est aliasé pour inclure le drapeau. Seul un `--dangerously-skip-permissions` ou `--allow-dangerously-skip-permissions` en tête achemine vers `daemon` de cette façon ; tout autre drapeau en tête démarre toujours une session interactive.54À partir de v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` exécute la sous-commande `daemon`. Les versions antérieures traitaient `daemon <subcommand>` comme le prompt d'une nouvelle session interactive, donc la sous-commande ne s'exécutait jamais quand le flag venait en premier, une configuration courante quand `claude` est aliasé pour inclure le flag. Seul un `--dangerously-skip-permissions` ou `--allow-dangerously-skip-permissions` en tête achemine vers `daemon` de cette façon ; tout autre flag en tête démarre toujours une session interactive.

55 55 

56<h2 id="cli-flags">56<h2 id="cli-flags">

57 Drapeaux CLI57 Drapeaux CLI


156| `--append-system-prompt-file` | Ajoute le contenu du fichier à l'invite système par défaut | `claude --append-system-prompt-file ./style-rules.txt` |156| `--append-system-prompt-file` | Ajoute le contenu du fichier à l'invite système par défaut | `claude --append-system-prompt-file ./style-rules.txt` |

157| `--system-prompt-snapshot` | Avec `off`, reconstruit l'invite à chaque requête. Avec `on`, la valeur par défaut, réutilise une invite enregistrée où [l'enregistrement s'applique](#system-prompt-flags-in-resumed-conversations) | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |157| `--system-prompt-snapshot` | Avec `off`, reconstruit l'invite à chaque requête. Avec `on`, la valeur par défaut, réutilise une invite enregistrée où [l'enregistrement s'applique](#system-prompt-flags-in-resumed-conversations) | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |

158 158 

159`--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.159Vous pouvez combiner ces flags. Pour remplacer le prompt par défaut tout en ajoutant votre propre texte, passez `--append-system-prompt` ou `--append-system-prompt-file` avec `--system-prompt` ou `--system-prompt-file`. Avec Claude Code v2.1.283 ou ultérieur, vous pouvez également passer un flag avec sa propre forme fichier, comme `--append-system-prompt` avec `--append-system-prompt-file`, et Claude Code utilise les deux.

160 

161Par exemple, exécutez la commande suivante dans votre shell pour ajouter à la fois un guide de style depuis un fichier et une instruction supplémentaire :

162 

163```bash theme={null}

164claude -p --append-system-prompt-file ./style.md --append-system-prompt "Always reply in French" "Summarize README.md"

165```

166 

167Claude reçoit le prompt système par défaut suivi du contenu de `style.md`, d'une ligne vide, puis de `Always reply in French`. Le contenu du fichier vient en premier même si vous passez `--append-system-prompt` avant `--append-system-prompt-file`.

160 168 

161Lorsque le texte de remplacement combine des instructions qui sont les mêmes à chaque exécution avec un contexte qui change par exécution, ajoutez une ligne contenant uniquement `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` entre les instructions et le contexte. Claude Code divise l'invite à la première telle ligne et supprime cette ligne, de sorte que la partie au-dessus reste mise en cache tandis que la partie au-dessous change. Nécessite Claude Code v2.1.275 ou ultérieur. [Mettre en cache la partie statique d'une invite personnalisée](/docs/fr/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt) répertorie les configurations où la division s'applique.169Lorsque le texte de remplacement combine des instructions qui sont les mêmes à chaque exécution avec un contexte qui change par exécution, ajoutez une ligne contenant uniquement `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` entre les instructions et le contexte. Claude Code divise l'invite à la première telle ligne et supprime cette ligne, de sorte que la partie au-dessus reste mise en cache tandis que la partie au-dessous change. Nécessite Claude Code v2.1.275 ou ultérieur. [Mettre en cache la partie statique d'une invite personnalisée](/docs/fr/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt) répertorie les configurations où la division s'applique.

162 170 

commands.md +1 −1

Details

99| `/goal [condition\|clear]` | Définir un [objectif](/docs/fr/goal) : Claude continue de travailler entre les tours jusqu'à ce que la condition soit remplie ou l'objectif [s'efface pour une autre raison](/docs/fr/goal#how-evaluation-works). Sans argument, affiche l'objectif actuel ou le plus récemment atteint. `clear`, `stop`, `off`, `reset`, `none`, ou `cancel` supprime un objectif actif tôt |99| `/goal [condition\|clear]` | Définir un [objectif](/docs/fr/goal) : Claude continue de travailler entre les tours jusqu'à ce que la condition soit remplie ou l'objectif [s'efface pour une autre raison](/docs/fr/goal#how-evaluation-works). Sans argument, affiche l'objectif actuel ou le plus récemment atteint. `clear`, `stop`, `off`, `reset`, `none`, ou `cancel` supprime un objectif actif tôt |

100| `/heapdump` | Écrire un instantané de tas JavaScript et une ventilation de la mémoire vers `~/Desktop`, ou votre répertoire personnel sur Linux sans dossier Desktop, pour diagnostiquer une utilisation élevée de la mémoire. Joignez uniquement le fichier `-diagnostics.json` lors de la signalisation d'un problème de mémoire ; le `.heapsnapshot` contient votre conversation complète et vos identifiants, donc ne le partagez pas. [Masqué du menu de commande](#how-the-command-menu-matches-what-you-type) ; tapez-le en entier. Consultez [ce qu'il faut faire avec la sortie](/docs/fr/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | Écrire un instantané de tas JavaScript et une ventilation de la mémoire vers `~/Desktop`, ou votre répertoire personnel sur Linux sans dossier Desktop, pour diagnostiquer une utilisation élevée de la mémoire. Joignez uniquement le fichier `-diagnostics.json` lors de la signalisation d'un problème de mémoire ; le `.heapsnapshot` contient votre conversation complète et vos identifiants, donc ne le partagez pas. [Masqué du menu de commande](#how-the-command-menu-matches-what-you-type) ; tapez-le en entier. Consultez [ce qu'il faut faire avec la sortie](/docs/fr/troubleshooting#high-cpu-or-memory-usage) |

101| `/help` | Afficher l'aide et les commandes disponibles |101| `/help` | Afficher l'aide et les commandes disponibles |

102| `/hooks` | Afficher les configurations de [hook](/docs/fr/hooks) pour les événements d'outils |102| `/hooks` | Afficher les configurations de [hook](/docs/fr/hooks#the-%2Fhooks-menu) |

103| `/ide` | Gérer les intégrations IDE et afficher l'état |103| `/ide` | Gérer les intégrations IDE et afficher l'état |

104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Apporter la configuration d'OpenAI Codex, Google Gemini CLI, ou Cursor sur votre machine dans Claude Code, y compris les fichiers d'instruction, les serveurs MCP, les commandes, les sous-agents et les compétences. En [mode non interactif](/docs/fr/headless) avec `-p`, `/import` répertorie ce qu'il a trouvé et vous donne la commande qui confirme l'importation. Ajoutez `--dry-run` pour prévisualiser sans rien écrire, ou `--yes` pour ignorer le sélecteur interactif. Non disponible sur Amazon Bedrock, la plateforme d'agents de Google Cloud, Microsoft Foundry ou Claude Platform sur AWS, ou via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway#availability-and-limitations). Également indisponible lorsque vous désactivez la [récupération des drapeaux de fonctionnalité](/docs/fr/env-vars#features-that-need-feature-flag-fetching). Nécessite Claude Code v2.1.213 ou ultérieur. L'importation à partir de Cursor nécessite la v2.1.265 ou ultérieur |104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Apporter la configuration d'OpenAI Codex, Google Gemini CLI, ou Cursor sur votre machine dans Claude Code, y compris les fichiers d'instruction, les serveurs MCP, les commandes, les sous-agents et les compétences. En [mode non interactif](/docs/fr/headless) avec `-p`, `/import` répertorie ce qu'il a trouvé et vous donne la commande qui confirme l'importation. Ajoutez `--dry-run` pour prévisualiser sans rien écrire, ou `--yes` pour ignorer le sélecteur interactif. Non disponible sur Amazon Bedrock, la plateforme d'agents de Google Cloud, Microsoft Foundry ou Claude Platform sur AWS, ou via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway#availability-and-limitations). Également indisponible lorsque vous désactivez la [récupération des drapeaux de fonctionnalité](/docs/fr/env-vars#features-that-need-feature-flag-fetching). Nécessite Claude Code v2.1.213 ou ultérieur. L'importation à partir de Cursor nécessite la v2.1.265 ou ultérieur |

105| `/init` | Initialiser le projet avec un guide `CLAUDE.md`. Définissez `CLAUDE_CODE_NEW_INIT=1` pour un flux interactif qui vous guide également à travers les compétences, les hooks et les fichiers de mémoire personnels. Si `/init` trouve une configuration OpenAI Codex ou Google Gemini CLI, il offre de la transférer avec `/import` |105| `/init` | Initialiser le projet avec un guide `CLAUDE.md`. Définissez `CLAUDE_CODE_NEW_INIT=1` pour un flux interactif qui vous guide également à travers les compétences, les hooks et les fichiers de mémoire personnels. Si `/init` trouve une configuration OpenAI Codex ou Google Gemini CLI, il offre de la transférer avec `/import` |

Details

65 Vérifier les hooks65 Vérifier les hooks

66</h2>66</h2>

67 67 

68Exécutez `/hooks` pour lister chaque hook enregistré pour la session actuelle, groupé par événement. Si un hook que vous avez défini n'apparaît pas, il n'est pas en cours de lecture : les hooks vont sous la clé `"hooks"` dans un fichier de paramètres, pas dans un fichier autonome.68Exécutez `/hooks` pour lister chaque hook enregistré pour la session actuelle, groupé par événement. Si un hook que vous avez défini n'apparaît pas, Claude Code ne l'a pas chargé. Vérifiez les causes suivantes :

69 

70* Le hook est défini dans un fichier autonome. Les hooks vont sous la clé `"hooks"` dans un [fichier de paramètres](/docs/fr/settings#settings-files).

71* La valeur `matcher` est un tableau au lieu d'une chaîne unique. Claude Code liste l'entrée comme un paramètre invalide lorsque vous démarrez une session interactive et dans `claude doctor`. Si le tableau se trouve sous `PreToolUse` ou `PermissionRequest`, aucun des autres hooks de ce fichier ne se charge non plus.

69 72 

70Si le hook apparaît mais ne se déclenche pas, le matcher est la cause habituelle. Vérifiez-le pour ces erreurs :73Si le hook apparaît mais ne se déclenche pas, le matcher est la cause habituelle. Vérifiez-le pour ces erreurs :

71 74 

72* Le champ `matcher` est une chaîne unique qui utilise `|` pour correspondre à plusieurs noms d'outils, par exemple `"Edit|Write"`. Un séparateur `,` est équivalent, donc `"Edit,Write"` correspond aux mêmes outils. Avant v2.1.191, une virgule passait à l'évaluation regex et le matcher ne correspondait jamais, donc utilisez `|` si vous n'êtes pas sur v2.1.191 encore.75* Le champ `matcher` est une chaîne unique qui utilise `|` pour correspondre à plusieurs noms d'outils, par exemple `"Edit|Write"`. Un séparateur `,` est équivalent, donc `"Edit,Write"` correspond aux mêmes outils. Avant v2.1.191, une virgule passait à l'évaluation regex et le matcher ne correspondait jamais, donc utilisez `|` si vous n'êtes pas sur v2.1.191 encore.

73* Un nom d'outil mal orthographié produit un matcher qui ne correspond à rien, donc le hook échoue silencieusement.76* Un nom d'outil mal orthographié produit un matcher qui ne correspond à rien, donc le hook échoue silencieusement.

74* Une valeur de tableau est une erreur de schéma : Claude Code affiche un avis d'erreur de paramètres et rejette l'intégralité du fichier de paramètres utilisateur, projet ou local, `claude doctor` signale l'échec de validation, et aucun hook de ce fichier n'apparaît dans `/hooks`. Dans les [paramètres gérés](/docs/fr/managed-settings), Claude Code supprime la clé `hooks` entière du fichier qui contient le tableau, donc aucun des hooks de ce fichier ne s'applique. Les autres paramètres du fichier s'appliquent toujours, et `claude doctor` liste la clé supprimée.

75 77 

76Lorsque vous modifiez `settings.json`, la modification prend effet dans la session en cours après un bref délai de stabilité du fichier, même si vous créez le fichier ou le dossier `.claude/` du projet lui-même après le démarrage de la session. Vous n'avez pas besoin de redémarrer. Avant v2.1.257, Claude Code ne détectait pas les modifications dans un dossier `.claude/` créé après le démarrage de la session.78Lorsque vous modifiez `settings.json`, la modification prend effet dans la session en cours après un bref délai de stabilité du fichier, même si vous créez le fichier ou le dossier `.claude/` du projet lui-même après le démarrage de la session. Vous n'avez pas besoin de redémarrer. Avant v2.1.257, Claude Code ne détectait pas les modifications dans un dossier `.claude/` créé après le démarrage de la session.

77 79 

env-vars.md +2 −1

Details

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Délai d'expiration de stagnation en millisecondes pour les sous-agents. Par défaut `600000` (10 minutes) ; si vous augmentez `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tandis que le chien de garde de flux est activé, la valeur par défaut augmente avec lui, comme [Gérer les réponses API lentes ou bloquées](/docs/fr/agent-sdk/typescript#handle-slow-or-stalled-api-responses) le décrit. Le minuteur se réinitialise à chaque événement de progression en continu ; si aucune progression n'arrive dans la fenêtre, Claude Code interrompt le sous-agent et signale la stagnation au parent |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Délai d'expiration de stagnation en millisecondes pour les sous-agents. Par défaut `600000` (10 minutes) ; si vous augmentez `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tandis que le chien de garde de flux est activé, la valeur par défaut augmente avec lui, comme [Gérer les réponses API lentes ou bloquées](/docs/fr/agent-sdk/typescript#handle-slow-or-stalled-api-responses) le décrit. Le minuteur se réinitialise à chaque événement de progression en continu ; si aucune progression n'arrive dans la fenêtre, Claude Code interrompt le sous-agent et signale la stagnation au parent |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Définissez le pourcentage (1-100) de la fenêtre de compaction automatique auquel la compaction automatique se déclenche. Utilisez des valeurs plus basses comme `50` pour compacter plus tôt ; la variable ne peut pas augmenter le seuil, donc les valeurs au-dessus du pourcentage par défaut sont ignorées. Elle s'applique uniquement aux sessions qui [compactent avant la limite de contexte du modèle](/docs/fr/model-config#context-window-and-auto-compaction). S'applique aux conversations principales et aux sous-agents |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Définissez le pourcentage (1-100) de la fenêtre de compaction automatique auquel la compaction automatique se déclenche. Utilisez des valeurs plus basses comme `50` pour compacter plus tôt ; la variable ne peut pas augmenter le seuil, donc les valeurs au-dessus du pourcentage par défaut sont ignorées. Elle s'applique uniquement aux sessions qui [compactent avant la limite de contexte du modèle](/docs/fr/model-config#context-window-and-auto-compaction). S'applique aux conversations principales et aux sous-agents |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Définissez sur `1` pour forcer l'activation de la mise en arrière-plan automatique des tâches d'agent longues. Lorsqu'elle est activée, les sous-agents sont déplacés en arrière-plan après environ deux minutes d'exécution. Active également [la mise en arrière-plan automatique des appels d'outils MCP longs](/docs/fr/mcp#automatic-backgrounding-of-long-tool-calls) en mode non interactif sur Claude Code v2.1.212 ou ultérieur |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Définissez sur `1` pour forcer l'activation de la mise en arrière-plan automatique des tâches d'agent longues. Lorsqu'elle est activée, les sous-agents sont déplacés en arrière-plan après environ deux minutes d'exécution. Active également [la mise en arrière-plan automatique des appels d'outils MCP longs](/docs/fr/mcp#automatic-backgrounding-of-long-tool-calls) en mode non interactif sur Claude Code v2.1.212 ou ultérieur |

208| `CLAUDE_AX_PREPARK_MS` | En [mode lecteur d'écran](/docs/fr/accessibility#what-your-screen-reader-hears), combien de millisecondes Claude Code attend, avec le curseur au début de la ligne, avant d'écrire une ligne nouvelle ou modifiée. Par défaut `50`. Définissez `0` pour écrire immédiatement. Claude Code limite l'attente à `5000`. Nécessite Claude Code v2.1.233 ou ultérieur |208| `CLAUDE_AX_PREPARK_MS` | En [mode lecteur d'écran](/docs/fr/accessibility), nombre de millisecondes que Claude Code attend avant d'écrire une ligne nouvelle ou modifiée. Par défaut `0`, donc Claude Code n'attend pas. Avant la v2.1.287, la valeur par défaut était `50`. Claude Code plafonne l'attente à `5000`. Nécessite Claude Code v2.1.233 ou ultérieur |

209| `CLAUDE_AX_SCREEN_READER` | Définissez sur `1` pour afficher une sortie conviviale pour les lecteurs d'écran : texte plat sans bordures décoratives ni animations. Définissez sur `0` pour forcer le mode lecteur d'écran désactivé même lorsque [`axScreenReader`](/docs/fr/settings-reference#axscreenreader) est `true`. Le [drapeau `--ax-screen-reader`](/docs/fr/cli-reference#cli-flags) a la priorité. Nécessite Claude Code v2.1.181 ou ultérieur |209| `CLAUDE_AX_SCREEN_READER` | Définissez sur `1` pour afficher une sortie conviviale pour les lecteurs d'écran : texte plat sans bordures décoratives ni animations. Définissez sur `0` pour forcer le mode lecteur d'écran désactivé même lorsque [`axScreenReader`](/docs/fr/settings-reference#axscreenreader) est `true`. Le [drapeau `--ax-screen-reader`](/docs/fr/cli-reference#cli-flags) a la priorité. Nécessite Claude Code v2.1.181 ou ultérieur |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | En [mode lecteur d'écran](/docs/fr/accessibility), combien de millisecondes Claude Code maintient le premier rendu d'interface après la ligne de confirmation de démarrage, afin que votre lecteur d'écran puisse prononcer la ligne en entier avant que la nouvelle sortie ne l'interrompe. Par défaut `3000`. Définissez `0` pour afficher immédiatement. Claude Code limite la tenue à `600000` (10 minutes). Votre première frappe termine la tenue plus tôt. Nécessite Claude Code v2.1.217 ou ultérieur |210| `CLAUDE_AX_STARTUP_QUIET_MS` | En [mode lecteur d'écran](/docs/fr/accessibility), combien de millisecondes Claude Code maintient le premier rendu d'interface après la ligne de confirmation de démarrage, afin que votre lecteur d'écran puisse prononcer la ligne en entier avant que la nouvelle sortie ne l'interrompe. Par défaut `3000`. Définissez `0` pour afficher immédiatement. Claude Code limite la tenue à `600000` (10 minutes). Votre première frappe termine la tenue plus tôt. Nécessite Claude Code v2.1.217 ou ultérieur |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Retournez au répertoire de travail d'origine après chaque commande Bash ou PowerShell dans la session principale |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Retournez au répertoire de travail d'origine après chaque commande Bash ou PowerShell dans la session principale |


245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Définissez sur `1` pour désactiver le [rendu plein écran](/docs/fr/fullscreen) et utiliser le rendu d'écran principal classique. La conversation reste dans le défilement natif de votre terminal afin que `Cmd+f` et le mode copie tmux fonctionnent comme d'habitude. A la priorité sur `CLAUDE_CODE_NO_FLICKER` et le paramètre [`tui`](/docs/fr/settings-reference#tui). Vous pouvez également basculer avec `/tui default`. Ne s'applique pas aux sessions d'arrière-plan ouvertes à partir de [la vue agent](/docs/fr/agent-view), qui utilisent toujours le rendu plein écran |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Définissez sur `1` pour désactiver le [rendu plein écran](/docs/fr/fullscreen) et utiliser le rendu d'écran principal classique. La conversation reste dans le défilement natif de votre terminal afin que `Cmd+f` et le mode copie tmux fonctionnent comme d'habitude. A la priorité sur `CLAUDE_CODE_NO_FLICKER` et le paramètre [`tui`](/docs/fr/settings-reference#tui). Vous pouvez également basculer avec `/tui default`. Ne s'applique pas aux sessions d'arrière-plan ouvertes à partir de [la vue agent](/docs/fr/agent-view), qui utilisent toujours le rendu plein écran |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Définissez sur `1` pour désactiver l'outil [Artifact](/docs/fr/artifacts), qui publie la sortie de session en tant que page web privée sur claude.ai. Une fois que vous le définissez, aucun fichier de paramètres n'active l'outil. Pour désactiver l'outil à partir d'un fichier de paramètres à la place, définissez [`enableArtifact`](/docs/fr/settings-reference#enableartifact) sur `false` ; la clé [`disableArtifact`](/docs/fr/settings-reference#disableartifact) dépréciée le désactive également |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Définissez sur `1` pour désactiver l'outil [Artifact](/docs/fr/artifacts), qui publie la sortie de session en tant que page web privée sur claude.ai. Une fois que vous le définissez, aucun fichier de paramètres n'active l'outil. Pour désactiver l'outil à partir d'un fichier de paramètres à la place, définissez [`enableArtifact`](/docs/fr/settings-reference#enableartifact) sur `false` ; la clé [`disableArtifact`](/docs/fr/settings-reference#disableartifact) dépréciée le désactive également |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Définissez sur `1` pour désactiver le traitement des pièces jointes. Les mentions de fichiers avec la syntaxe `@` sont envoyées en tant que texte simple au lieu d'être développées dans le contenu du fichier |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Définissez sur `1` pour désactiver le traitement des pièces jointes. Les mentions de fichiers avec la syntaxe `@` sont envoyées en tant que texte simple au lieu d'être développées dans le contenu du fichier |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Définissez sur `1` pour qu'un processus Claude Code exécute lui-même sa commande [`gcpAuthRefresh`](/docs/fr/settings-reference#gcpauthrefresh) ou [`awsAuthRefresh`](/docs/fr/settings-reference#awsauthrefresh) au lieu d'attendre qu'un autre processus l'exécute. Nécessite Claude Code v2.1.286 ou ultérieur |

248| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Définissez sur `1` pour désactiver la [mémoire automatique](/docs/fr/memory#auto-memory). Définissez sur `0` pour forcer la mémoire automatique activée même lorsque le mode `--bare` ou [`autoMemoryEnabled: false`](/docs/fr/settings-reference#automemoryenabled) la désactiverait autrement. Lorsqu'elle est désactivée, Claude ne crée ni ne charge les fichiers de mémoire automatique |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Définissez sur `1` pour désactiver la [mémoire automatique](/docs/fr/memory#auto-memory). Définissez sur `0` pour forcer la mémoire automatique activée même lorsque le mode `--bare` ou [`autoMemoryEnabled: false`](/docs/fr/settings-reference#automemoryenabled) la désactiverait autrement. Lorsqu'elle est désactivée, Claude ne crée ni ne charge les fichiers de mémoire automatique |

249| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Définissez sur `1` pour désactiver toute la fonctionnalité de tâche d'arrière-plan, y compris le paramètre `run_in_background` sur les outils Bash et sous-agent, la mise en arrière-plan automatique et le raccourci Ctrl+B |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Définissez sur `1` pour désactiver toute la fonctionnalité de tâche d'arrière-plan, y compris le paramètre `run_in_background` sur les outils Bash et sous-agent, la mise en arrière-plan automatique et le raccourci Ctrl+B |

250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Définissez sur `1` pour empêcher Claude Code de traiter une réponse en continu [Amazon Bedrock](/docs/fr/amazon-bedrock) avec un en-tête `Content-Type` manquant ou vide comme le flux d'événements binaires d'Amazon Bedrock. Par défaut, Claude Code suppose qu'une passerelle a supprimé l'en-tête d'une réponse autrement inmodifiée, afin que le décodage du corps et le flux continu fonctionnent. Définissez ceci uniquement pour une passerelle qui réemet également le flux en tant qu'événements envoyés par le serveur ; Claude Code lit alors le corps sans en-tête en tant qu'événements envoyés par le serveur à la place. Nécessite Claude Code v2.1.239 ou ultérieur |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Définissez sur `1` pour empêcher Claude Code de traiter une réponse en continu [Amazon Bedrock](/docs/fr/amazon-bedrock) avec un en-tête `Content-Type` manquant ou vide comme le flux d'événements binaires d'Amazon Bedrock. Par défaut, Claude Code suppose qu'une passerelle a supprimé l'en-tête d'une réponse autrement inmodifiée, afin que le décodage du corps et le flux continu fonctionnent. Définissez ceci uniquement pour une passerelle qui réemet également le flux en tant qu'événements envoyés par le serveur ; Claude Code lit alors le corps sans en-tête en tant qu'événements envoyés par le serveur à la place. Nécessite Claude Code v2.1.239 ou ultérieur |

errors.md +631 −606

Details

186| `The connection dropped while downloading the update` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) |186| `The connection dropped while downloading the update` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) |

187| `Download timed out: exceeded the total deadline` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) |187| `Download timed out: exceeded the total deadline` | [Erreurs d'installation](#the-connection-dropped-while-downloading-the-update) |

188| `--bg and --print conflict` | [Erreurs de ligne de commande](#conflict-between-bg-and-print) |188| `--bg and --print conflict` | [Erreurs de ligne de commande](#conflict-between-bg-and-print) |

189| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Erreurs de ligne de commande](#conflict-between-a-system-prompt-flag-and-its-file-form) |

189| `Cloud sessions cannot be created from a --restricted session` | [Erreurs de ligne de commande](#cloud-sessions-cannot-be-created-from-a-restricted-session) |190| `Cloud sessions cannot be created from a --restricted session` | [Erreurs de ligne de commande](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

190| `Cloud sessions are disabled by your organization's policy` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) |191| `Cloud sessions are disabled by your organization's policy` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) |

191| `Couldn't verify your organization's policy for cloud sessions` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) |192| `Couldn't verify your organization's policy for cloud sessions` | [Erreurs de ligne de commande](#cloud-sessions-are-disabled-by-your-organizations-policy) |


250| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Erreurs de plugin](#plugin-command-references-user-config) |251| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Erreurs de plugin](#plugin-command-references-user-config) |

251| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Erreurs de plugin](#plugin-command-references-user-config) |252| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Erreurs de plugin](#plugin-command-references-user-config) |

252| `Plugin archive integrity check failed` | [Erreurs de plugin](#plugin-archive-integrity-check-failed) |253| `Plugin archive integrity check failed` | [Erreurs de plugin](#plugin-archive-integrity-check-failed) |

254| `An npm plugin source must name a registry package` | [Dépannage des plugins](/docs/fr/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |

253| `path escapes plugin directory` | [Erreurs de plugin](#path-escapes-plugin-directory) |255| `path escapes plugin directory` | [Erreurs de plugin](#path-escapes-plugin-directory) |

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

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


418 Erreurs serveur420 Erreurs serveur

419</h2>421</h2>

420 422 

421La plupart de ces erreurs proviennent du fournisseur d'inférence : le service Anthropic sur l'API Anthropic, et le service derrière le point de terminaison de ce fournisseur sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou une passerelle personnalisée. [Le mode auto ne peut pas déterminer la sécurité d'une action](#auto-mode-cannot-determine-the-safety-of-an-action) et [L'agent s'est arrêté prématurément en raison d'une erreur API](#agent-terminated-early-due-to-an-api-error) couvrent également les causes de votre côté, comme un compte Amazon Bedrock qui ne peut pas invoquer le modèle de classification ou un sous-agent qui a atteint une limite d'utilisation.423La plupart de ces erreurs proviennent du fournisseur d'inférence : le service Anthropic sur l'API Anthropic, et le service derrière l'endpoint de ce fournisseur sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou une passerelle personnalisée. [Le mode auto ne peut pas déterminer la sécurité d'une action](#auto-mode-cannot-determine-the-safety-of-an-action) et [L'agent s'est arrêté prématurément en raison d'une erreur API](#agent-terminated-early-due-to-an-api-error) couvrent également les causes de votre côté, comme un compte Amazon Bedrock qui ne peut pas invoquer le modèle du classifieur ou un sous-agent qui a atteint une limite d'utilisation.

422 424 

423<h3 id="api-error-500-internal-server-error">425<h3 id="api-error-500-internal-server-error">

424 Erreur API : 500 Erreur serveur interne426 Erreur API : 500 Erreur serveur interne


495Claude Code définit le délai d'attente des en-têtes de réponse de la première tentative et le délai d'attente de la tentative de réessai séparément :497Claude Code définit le délai d'attente des en-têtes de réponse de la première tentative et le délai d'attente de la tentative de réessai séparément :

496 498 

497* **Première tentative** : [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/fr/env-vars) quand vous le définissez à 1 ou plus, limité entre 10 secondes et 30 minutes. Sinon, Claude Code utilise le délai d'attente du watchdog au niveau des octets listé dans [Watchdogs d'inactivité de streaming](/docs/fr/network-config#streaming-idle-watchdogs), donc les variables qui changent ce délai d'attente changent aussi cette attente. De toute façon, Claude Code ajoute une seconde pour chaque 32 Ko de corps de demande.499* **Première tentative** : [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/fr/env-vars) quand vous le définissez à 1 ou plus, limité entre 10 secondes et 30 minutes. Sinon, Claude Code utilise le délai d'attente du watchdog au niveau des octets listé dans [Watchdogs d'inactivité de streaming](/docs/fr/network-config#streaming-idle-watchdogs), donc les variables qui changent ce délai d'attente changent aussi cette attente. De toute façon, Claude Code ajoute une seconde pour chaque 32 Ko de corps de demande.

498* **Tentative de réessai** : une seconde de moins que `API_TIMEOUT_MS`, juste sous 10 minutes par défaut, afin que la tentative de réessai puisse dépasser une passerelle qui retient la réponse jusqu'à ce que la génération soit terminée. Sur Amazon Bedrock, la tentative de réessai utilise la même date limite que la première tentative, et le message affiche une durée au lieu de deux.500* **Tentative de réessai** : une seconde de moins que `API_TIMEOUT_MS`, juste sous 10 minutes par défaut, afin que la tentative de réessai puisse dépasser un proxy ou une passerelle qui retient la réponse jusqu'à ce que la génération soit terminée. Sur Amazon Bedrock, la tentative de réessai utilise la même date limite que la première tentative, et le message affiche une durée au lieu de deux.

499 501 

500Aucune attente ne dépasse une seconde de moins qu'un `API_TIMEOUT_MS` positif, et un `API_TIMEOUT_MS` positif inférieur à 11 secondes désactive la date limite. Le watchdog au niveau des octets ne démarre qu'une fois les en-têtes de réponse arrivés, donc une réponse qui arrête d'envoyer des octets après cela suit les [règles de flux interrompu](#automatic-retries) au lieu de cette date limite.502Aucune attente ne dépasse une seconde de moins qu'un `API_TIMEOUT_MS` positif, et un `API_TIMEOUT_MS` positif inférieur à 11 secondes désactive la date limite. Le watchdog au niveau des octets ne démarre qu'une fois les en-têtes de réponse arrivés, donc une réponse qui arrête d'envoyer des octets après cela suit les [règles de flux interrompu](#automatic-retries) au lieu de cette date limite.

501 503 


527* `Connection lost mid-response` : la connexion a été interrompue. Vous voyez également cette variante quand un proxy ou une passerelle termine le corps de la réponse proprement avant que la réponse soit terminée.529* `Connection lost mid-response` : la connexion a été interrompue. Vous voyez également cette variante quand un proxy ou une passerelle termine le corps de la réponse proprement avant que la réponse soit terminée.

528* `Your computer went to sleep mid-response` : Claude Code a détecté que votre ordinateur s'est endormi pendant que la réponse était en streaming. Une fois que votre ordinateur se réveille, Claude Code traite la connexion comme cassée et arrête de la lire.530* `Your computer went to sleep mid-response` : Claude Code a détecté que votre ordinateur s'est endormi pendant que la réponse était en streaming. Une fois que votre ordinateur se réveille, Claude Code traite la connexion comme cassée et arrête de la lire.

529* `Part of the response never arrived` : un événement de flux a été supprimé entre l'API et Claude Code, donc un événement ultérieur référençait du contenu qui n'est jamais arrivé. Avant v2.1.281, ce cas terminait le tour avec `API Error: Content block not found`.531* `Part of the response never arrived` : un événement de flux a été supprimé entre l'API et Claude Code, donc un événement ultérieur référençait du contenu qui n'est jamais arrivé. Avant v2.1.281, ce cas terminait le tour avec `API Error: Content block not found`.

530* `The response stream was malformed` : un événement est arrivé pour un bloc de contenu qui avait déjà terminé, ou un événement est arrivé endommagé. Un événement endommagé est un événement dont les données ne sont pas du JSON valide, dont le contenu est manquant, ou dont le contenu ne correspond pas au type d'événement. Avant v2.1.284, l'erreur brute du parseur, comme une commençant par `API Error: JSON Parse error`, apparaissait à la place quand un événement avec du JSON invalide arrivait après que Claude ait terminé sa réflexion, un bloc de texte ou un appel d'outil.532* `The response stream was malformed` : un événement est arrivé pour un bloc de contenu qui avait déjà terminé, ou un événement est arrivé endommagé. Un événement endommagé est un événement dont les données ne sont pas du JSON valide, dont le contenu est manquant, ou dont le contenu ne correspond pas au type d'événement. Avant v2.1.284, l'erreur brute du parseur, comme une commençant par `API Error: JSON Parse error`, apparaissait à la place quand un événement avec du JSON invalide arrivait après que Claude ait terminé sa réflexion, un bloc de texte ou un appel d'outil. Avant v2.1.287, quand un [garde-fou Amazon Bedrock](/docs/fr/amazon-bedrock#aws-guardrails) bloquait une réponse qui avait déjà envoyé en flux la réflexion et une partie du texte, cette variante apparaissait à la place du message du garde-fou.

531* `The response stopped arriving` : la connexion est restée ouverte mais a arrêté de livrer des données, donc le watchdog d'inactivité de streaming l'a annulée. Avant v2.1.222, Claude Code pouvait également signaler cet échec sur les connexions de [passerelle](/docs/fr/gateways) atteintes via `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL` tandis que les pings de maintien de connexion du serveur arrivaient toujours, car il ne comptait que les événements de réponse analysés là ; la mise à niveau arrête ces faux positifs sur ces routes. Les passerelles atteintes via une URL de base de fournisseur telle que `ANTHROPIC_BEDROCK_BASE_URL` ne sont pas enveloppées par le watchdog d'octet ; voir [Watchdogs d'inactivité de streaming](/docs/fr/network-config#streaming-idle-watchdogs).533* `The response stopped arriving` : la connexion est restée ouverte mais a arrêté de livrer des données, donc le watchdog d'inactivité de streaming l'a annulée. Avant v2.1.222, Claude Code pouvait également signaler cet échec sur les connexions de [passerelle](/docs/fr/gateways) atteintes via `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL` tandis que les pings de maintien de connexion du serveur arrivaient toujours, car il ne comptait que les événements de réponse analysés là ; la mise à niveau arrête ces faux positifs sur ces routes. Les passerelles atteintes via une URL de base de fournisseur telle que `ANTHROPIC_BEDROCK_BASE_URL` ne sont pas enveloppées par le watchdog d'octet ; voir [Watchdogs d'inactivité de streaming](/docs/fr/network-config#streaming-idle-watchdogs).

532 534 

533Avant v2.1.227, `Connection lost mid-response` lisait `Connection closed mid-response` et `The response stopped arriving` lisait `Response stalled mid-stream`.535Avant v2.1.227, `Connection lost mid-response` lisait `Connection closed mid-response` et `The response stopped arriving` lisait `Response stalled mid-stream`.


541 543 

542* Plus tôt dans la réponse, Claude Code réessaie l'échec ou termine le tour avec une erreur différente. Voir [Tentatives automatiques](#automatic-retries).544* Plus tôt dans la réponse, Claude Code réessaie l'échec ou termine le tour avec une erreur différente. Voir [Tentatives automatiques](#automatic-retries).

543* Quand l'un de ces échecs arrive après que Claude ait terminé la réponse, Claude Code conserve la réponse complète et termine le tour normalement, sans cet avis. Avant v2.1.222, Claude Code affichait cet avis quand la connexion était interrompue ou bloquée après la fin de la réponse, et signalait le tour comme une erreur même si la réponse était complète.545* Quand l'un de ces échecs arrive après que Claude ait terminé la réponse, Claude Code conserve la réponse complète et termine le tour normalement, sans cet avis. Avant v2.1.222, Claude Code affichait cet avis quand la connexion était interrompue ou bloquée après la fin de la réponse, et signalait le tour comme une erreur même si la réponse était complète.

544* Dans une [session non-interactive](/docs/fr/headless), comme une exécution `-p`, une exécution [Agent SDK](/docs/fr/agent-sdk/overview), ou une [session cloud](/docs/fr/claude-code-on-the-web), vous n'avez pas à envoyer `continue` vous-même quand la réponse coupée est dans la conversation principale et contient du texte mais pas d'appels d'outil : Claude Code conserve la sortie partielle et invite Claude à continuer à partir d'où il s'est arrêté, jusqu'à trois fois de suite. Vous voyez cet avis pour une telle réponse seulement une fois que Claude Code a épuisé ces continuations. Avant v2.1.246, Claude Code terminait un tour non-interactif avec cet avis à la première coupure.546* Dans une [session non interactive](/docs/fr/headless), comme une exécution `-p`, une exécution [Agent SDK](/docs/fr/agent-sdk/overview), ou une [session cloud](/docs/fr/claude-code-on-the-web), vous n'avez pas à envoyer `continue` vous-même quand la réponse coupée est dans la conversation principale et contient du texte mais pas d'appels d'outil : Claude Code conserve la sortie partielle et invite Claude à continuer à partir d'où il s'est arrêté, jusqu'à trois fois de suite. Vous voyez cet avis pour une telle réponse seulement une fois que Claude Code a épuisé ces continuations. Avant v2.1.246, Claude Code terminait un tour non interactif avec cet avis à la première coupure.

545* Dans un [sous-agent](/docs/fr/sub-agents#api-errors-in-subagents), que la session soit interactive ou non : quand sa réponse coupée contient du texte mais pas d'appels d'outil, Claude Code invite le sous-agent à continuer. L'avis devient le dernier message du sous-agent seulement une fois que ces continuations sont épuisées. Avant v2.1.257, un sous-agent affichait cet avis à la première coupure.547* Dans un [sous-agent](/docs/fr/sub-agents#api-errors-in-subagents), que la session soit interactive ou non : quand sa réponse coupée contient du texte mais pas d'appels d'outil, Claude Code invite le sous-agent à continuer. L'avis devient le dernier message du sous-agent seulement une fois que ces continuations sont épuisées. Avant v2.1.257, un sous-agent affichait cet avis à la première coupure.

546 548 

547**Que faire :**549**Que faire :**

548 550 

549* Dans une session interactive, lisez la réponse qui reste à l'écran : Claude Code conserve chaque bloc que Claude a terminé avant l'erreur, mais rejette un bloc final interrompu quand le tour se termine, donc les dernières phrases ou appels d'outil peuvent manquer. Répondez avec `continue` pour que Claude reprenne à partir de son dernier bloc terminé.551* Dans une session interactive, lisez la réponse qui reste à l'écran : Claude Code conserve chaque bloc que Claude a terminé avant l'erreur, mais rejette un bloc final interrompu quand le tour se termine, donc les dernières phrases ou appels d'outil peuvent manquer. Répondez avec `continue` pour que Claude reprenne à partir de son dernier bloc terminé.

550* En [mode non-interactif](/docs/fr/headless) (`-p`) :552* En [mode non interactif](/docs/fr/headless) (`-p`) :

551 * Avec la sortie texte par défaut, Claude Code imprime le dernier bloc de texte terminé qu'il détient toujours du début du tour, suivi de ce message. Quand il n'en détient aucun, Claude Code imprime ce message seul, par exemple parce que Claude Code a compacté la conversation en milieu de tour et a effacé ce texte. Avant v2.1.219, Claude Code n'imprimait que ce message dans la sortie texte `-p` et rejetait la réponse qu'il avait déjà produite.553 * Avec la sortie texte par défaut, Claude Code imprime le dernier bloc de texte terminé qu'il détient toujours du début du tour, suivi de ce message. Quand il n'en détient aucun, Claude Code imprime ce message seul, par exemple parce que Claude Code a compacté la conversation en milieu de tour et a effacé ce texte. Avant v2.1.219, Claude Code n'imprimait que ce message dans la sortie texte `-p` et rejetait la réponse qu'il avait déjà produite.

552 * Avec `--output-format json` ou `stream-json`, Claude Code signale ce message dans le champ `result`.554 * Avec `--output-format json` ou `stream-json`, Claude Code signale ce message dans le champ `result`.

553 * Pour continuer le tour une fois la connexion stable, reprenez la session et envoyez `continue` comme décrit dans [Continuer les conversations](/docs/fr/headless#continue-conversations).555 * Pour continuer le tour une fois la connexion stable, reprenez la session et envoyez `continue` comme décrit dans [Continuer les conversations](/docs/fr/headless#continue-conversations).


560 562 

561Les lectures, recherches et modifications à l'intérieur de votre répertoire de travail ignorent le classificateur, donc elles continuent à fonctionner dans tous ces cas.563Les lectures, recherches et modifications à l'intérieur de votre répertoire de travail ignorent le classificateur, donc elles continuent à fonctionner dans tous ces cas.

562 564 

563Quand le modèle de classification est indisponible :565Quand le modèle du classificateur est indisponible :

564 566 

565```text theme={null}567```text theme={null}

566<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.568<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.


568 570 

569Quand Claude Code peut déterminer la catégorie d'échec, il nomme la catégorie entre parenthèses après `temporarily unavailable`, par exemple `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Les catégories sont `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)`, et `(connection failed)`. Si `(timed out)` ou `(connection failed)` se répète, vérifiez votre connexion ; voir [Impossible de se connecter à l'API](#unable-to-connect-to-api). Avant v2.1.229, le message ne nommait jamais une catégorie et lisait `Wait briefly and then try this action again`.571Quand Claude Code peut déterminer la catégorie d'échec, il nomme la catégorie entre parenthèses après `temporarily unavailable`, par exemple `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Les catégories sont `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)`, et `(connection failed)`. Si `(timed out)` ou `(connection failed)` se répète, vérifiez votre connexion ; voir [Impossible de se connecter à l'API](#unable-to-connect-to-api). Avant v2.1.229, le message ne nommait jamais une catégorie et lisait `Wait briefly and then try this action again`.

570 572 

571Quand aucune catégorie ne convient, le message apparaît sans catégorie entre parenthèses ; plus d'un échec produit cette forme. Sur [Amazon Bedrock](/docs/fr/amazon-bedrock), y compris le [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint), il apparaît également quand votre compte AWS ne peut pas invoquer le modèle nommé dans le message, et cet échec se répète à chaque tentative jusqu'à ce que votre compte soit autorisé à accéder au modèle.573Quand aucune catégorie ne convient, le message apparaît sans catégorie entre parenthèses ; plus d'un échec produit cette forme. Sur [Amazon Bedrock](/docs/fr/amazon-bedrock), y compris l'[endpoint Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint), il apparaît également quand votre compte AWS ne peut pas invoquer le modèle nommé dans le message, et cet échec se répète à chaque tentative jusqu'à ce que votre compte soit autorisé à accéder au modèle.

572 574 

573**Que faire :**575**Que faire :**

574 576 


576* Si les tentatives continuent à échouer, continuez avec les tâches en lecture seule et revenez à l'action bloquée plus tard578* Si les tentatives continuent à échouer, continuez avec les tâches en lecture seule et revenez à l'action bloquée plus tard

577* Sur Amazon Bedrock, si le message revient à chaque tentative, vérifiez que votre compte peut invoquer le modèle qu'il nomme : pour les modèles Amazon Bedrock standard, confirmez que votre [politique IAM](/docs/fr/amazon-bedrock#iam-configuration) permet de l'invoquer ; pour les ID de modèle Mantle, [contactez votre équipe de compte AWS](/docs/fr/amazon-bedrock#mantle-endpoint-errors)579* Sur Amazon Bedrock, si le message revient à chaque tentative, vérifiez que votre compte peut invoquer le modèle qu'il nomme : pour les modèles Amazon Bedrock standard, confirmez que votre [politique IAM](/docs/fr/amazon-bedrock#iam-configuration) permet de l'invoquer ; pour les ID de modèle Mantle, [contactez votre équipe de compte AWS](/docs/fr/amazon-bedrock#mantle-endpoint-errors)

578 580 

579Quand une demande de classificateur échoue parce que votre jeton OAuth a expiré ou a été pivoté par une autre session, Claude Code actualise le jeton et réessaie la demande une fois, donc une expiration de jeton de routine ne fait pas surface comme ce message. Avant v2.1.216, un jeton expiré ou pivoté échouait à chaque demande de classificateur, et le mode auto refusait chaque action vérifiée avec ce message jusqu'à ce que le jeton soit actualisé.581Quand une demande de classificateur échoue parce que votre jeton OAuth a expiré ou a été pivoté par une autre session, Claude Code actualise le jeton et réessaie la demande une fois, donc une expiration de jeton courante ne fait pas surface comme ce message. Avant v2.1.216, un jeton expiré ou pivoté échouait à chaque demande de classificateur, et le mode auto refusait chaque action vérifiée avec ce message jusqu'à ce que le jeton soit actualisé.

580 582 

581Quand le classificateur a retourné une réponse non analysable :583Quand le classificateur a retourné une réponse non analysable :

582 584 


595Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details597Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details

596```598```

597 599 

598Claude Code refuse l'action mais dit à Claude que ce n'est pas un jugement que l'action est dangereuse, et de continuer avec d'autres tâches plutôt que de réessayer. Ces refus ne comptent pas vers les [seuils de pause du mode auto](/docs/fr/permission-modes#when-auto-mode-falls-back). Dans une exécution `-p` [non-interactive](/docs/fr/headless), Claude Code n'arrête pas l'exécution. Ce que Claude reçoit dépend de l'endroit où il a demandé l'action :600Claude Code refuse l'action mais dit à Claude que ce n'est pas un jugement que l'action est dangereuse, et de continuer avec d'autres tâches plutôt que de réessayer. Ces refus ne comptent pas vers les [seuils de pause du mode auto](/docs/fr/permission-modes#when-auto-mode-falls-back). Dans une exécution `-p` [non interactive](/docs/fr/headless), Claude Code n'arrête pas l'exécution. Ce que Claude reçoit dépend de l'endroit où il a demandé l'action :

599 601 

600* À un [sous-agent en arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background) dans une exécution `-p` sans `--input-format stream-json`, Claude Code retourne un résultat d'erreur contenant `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode`602* À un [sous-agent en arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background) dans une exécution `-p` sans `--input-format stream-json`, Claude Code retourne un résultat d'erreur contenant `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode`

601* Partout ailleurs, y compris les sessions interactives et la conversation principale d'une exécution `-p`, Claude Code retourne ce refus à Claude603* Partout ailleurs, y compris les sessions interactives et la conversation principale d'une exécution `-p`, Claude Code retourne ce refus à Claude


617 619 

618Ce qui se passe à l'action dépend de l'endroit où Claude l'a demandée :620Ce qui se passe à l'action dépend de l'endroit où Claude l'a demandée :

619 621 

620* Dans une session interactive, le mode auto revient à une invite de permission normale pour cette action afin que vous puissiez l'approuver ou la refuser manuellement622* Dans une session interactive, le mode auto bascule sur une demande de permission normale pour cette action afin que vous puissiez l'approuver ou la refuser manuellement

621* À un [sous-agent en arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background) dans une exécution `-p` [non-interactive](/docs/fr/headless) sans `--input-format stream-json`, Claude Code retourne un résultat d'erreur contenant `Agent aborted: auto mode classifier transcript exceeded context window in headless mode`, et l'exécution continue623* À un [sous-agent en arrière-plan](/docs/fr/sub-agents#run-subagents-in-foreground-or-background) dans une exécution `-p` [non interactive](/docs/fr/headless) sans `--input-format stream-json`, Claude Code retourne un résultat d'erreur contenant `Agent aborted: auto mode classifier transcript exceeded context window in headless mode`, et l'exécution continue

622* Ailleurs dans une exécution `-p` sans [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags), il n'y a pas d'invite pour revenir, donc l'action ne s'exécute pas et l'exécution continue624* Ailleurs dans une exécution `-p` sans [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags), il n'y a pas de demande de permission sur laquelle se rabattre, donc l'action ne s'exécute pas et l'exécution continue

623 625 

624**Que faire :**626**Que faire :**

625 627 

626* Dans une session interactive, approuvez ou refusez l'action dans l'invite qui apparaît628* Dans une session interactive, approuvez ou refusez l'action dans la demande qui apparaît

627* Dans une session interactive, exécutez `/compact` pour réduire la taille de la conversation afin que les actions suivantes s'adaptent à nouveau à la fenêtre du classificateur629* Dans une session interactive, exécutez `/compact` pour réduire la taille de la conversation afin que les actions suivantes s'adaptent à nouveau à la fenêtre du classificateur

628 630 

629<h3 id="the-server-returned-no-safety-verdict">631<h3 id="the-server-returned-no-safety-verdict">


647Le message d'arrêt apparaît à un endroit différent dans chaque type de session :649Le message d'arrêt apparaît à un endroit différent dans chaque type de session :

648 650 

649* Dans une session interactive, le message apparaît comme un avertissement dans la transcription et le tour se termine651* Dans une session interactive, le message apparaît comme un avertissement dans la transcription et le tour se termine

650* Dans une exécution `-p` [non-interactive](/docs/fr/headless), l'exécution se termine et signale une erreur d'exécution. Avec la sortie texte par défaut, le message s'imprime sur stderr.652* Dans une exécution `-p` [non interactive](/docs/fr/headless), l'exécution se termine et signale une erreur d'exécution. Avec la sortie texte par défaut, le message s'imprime sur stderr.

651* Quand un [sous-agent](/docs/fr/sub-agents) a atteint la limite, le sous-agent s'arrête avant de terminer, et Claude reçoit ce qu'il a produit avec une note que le mode auto l'a arrêté653* Quand un [sous-agent](/docs/fr/sub-agents) a atteint la limite, le sous-agent s'arrête avant de terminer, et Claude reçoit ce qu'il a produit avec une note que le mode auto l'a arrêté

652 654 

653**Que faire :**655**Que faire :**


885 Erreurs d'authentification887 Erreurs d'authentification

886</h2>888</h2>

887 889 

888Ces erreurs signifient que Claude Code ne peut pas prouver votre identité à l'API. Exécutez `/status` à tout moment pour voir quelle credential est actuellement active.890Ces erreurs signifient que Claude Code ne parvient pas à prouver votre identité auprès de l'API. Exécutez `/status` à tout moment pour voir quels identifiants sont actuellement actifs.

889 891 

890<h3 id="not-logged-in">892<h3 id="not-logged-in">

891 Non connecté893 Non connecté

892</h3>894</h3>

893 895 

894Aucune credential valide n'est disponible pour cette session.896Aucun identifiant valide n'est disponible pour cette session.

895 897 

896```text theme={null}898```text theme={null}

897Not logged in · Please run /login899Not logged in · Please run /login

898```900```

899 901 

900Dans une session que l'application Claude Desktop exécute, comme l'onglet Code ou Cowork, le message se lit `Authentication required · Sign in again to continue`, et vous vous reconnectez à partir de l'application.902Dans une session exécutée par l'application Claude Desktop, comme l'onglet Code ou Cowork, le message indique `Authentication required · Sign in again to continue`, et vous vous reconnectez depuis l'application.

901 903 

902**À faire :**904Si vous vous connectez avec votre compte claude.ai dans une autre fenêtre Claude Code qui utilise le même [répertoire de configuration](/docs/fr/claude-directory), une session interactive affichant ce message commence d'elle-même à utiliser cette connexion. Vous n'avez pas besoin de la redémarrer.

905 

906Avant la v2.1.286 sur macOS, la session pouvait continuer à afficher le message après votre connexion depuis une autre fenêtre. Sur ces versions, redémarrez la session qui affiche le message.

907 

908**Que faire :**

903 909 

904* Exécutez `/login` pour vous authentifier avec votre abonnement Claude ou votre compte Console910* Exécutez `/login` pour vous authentifier avec votre abonnement Claude ou votre compte Console

905* Si vous vous attendiez à ce qu'une variable d'environnement vous authentifie, confirmez que `ANTHROPIC_API_KEY` est définie et exportée dans le shell où vous avez lancé `claude`911* Si vous vous attendiez à ce qu'une variable d'environnement vous authentifie, vérifiez que `ANTHROPIC_API_KEY` est définie et exportée dans le shell à partir duquel vous avez lancé `claude`

906* Pour l'intégration continue ou l'automatisation où la connexion interactive n'est pas possible, configurez un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) qui récupère une clé au démarrage912* Pour la CI ou l'automatisation où la connexion interactive n'est pas possible, configurez un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) qui récupère une clé au démarrage

907* Consultez [Précédence d'authentification](/docs/fr/authentication#authentication-precedence) pour comprendre quelle credential Claude Code utilise quand plusieurs sont présentes913* Consultez [Priorité d'authentification](/docs/fr/authentication#authentication-precedence) pour comprendre quels identifiants Claude Code utilise lorsque plusieurs sont présents

908 914 

909Si vous êtes invité à vous connecter à plusieurs reprises, consultez [Non connecté ou token expiré](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired) pour les vérifications de l'horloge système et les étapes de récupération du stockage des credentials macOS.915Si vous êtes invité à vous connecter à plusieurs reprises, consultez [Non connecté ou jeton expiré](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired) pour les vérifications de l'horloge système et les étapes de récupération du stockage des identifiants sur macOS.

910 916 

911<h3 id="could-not-resolve-authentication-method">917<h3 id="could-not-resolve-authentication-method">

912 Impossible de résoudre la méthode d'authentification918 Impossible de déterminer la méthode d'authentification

913</h3>919</h3>

914 920 

915La session a atteint le client API sans aucune credential. Les [sessions en arrière-plan](/docs/fr/agent-view) et les sessions cloud affichent ce message quand le worker démarre sans credential. Les exécutions interactives, `-p` et Agent SDK signalent la même condition que [Non connecté](#not-logged-in) et écrivent cette chaîne uniquement dans leur journal de débogage, donc si vous l'avez trouvée là, suivez cette entrée à la place.921La session a atteint le client API sans aucun identifiant. Les [sessions en arrière-plan](/docs/fr/agent-view) et les sessions cloud affichent ce message lorsque le worker démarre sans identifiants. Les exécutions interactives, `-p` et Agent SDK signalent la même condition sous la forme [Non connecté](#not-logged-in) et n'écrivent cette chaîne que dans leur log de débogage ; si c'est là que vous l'avez trouvée, suivez plutôt cette entrée.

916 922 

917```text theme={null}923```text theme={null}

918Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted924Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

919```925```

920 926 

921Sur les versions actuelles, l'erreur signifie qu'aucune credential n'était disponible pour le processus worker. Avant v2.1.174, une session en arrière-plan assignée à un worker pré-initialisé inactif pouvait échouer de cette façon même quand des credentials valides étaient configurées. Avant v2.1.176, une session cloud qui restait inactive avant d'être réclamée pouvait aussi. Mettez à jour pour récupérer.927Sur les versions actuelles, l'erreur signifie qu'aucun identifiant n'était disponible pour le processus worker. Avant la v2.1.174, une session en arrière-plan attribuée à un worker pré-initialisé inactif pouvait échouer de cette manière même lorsque des identifiants valides étaient configurés. Avant la v2.1.176, une session cloud restée inactive avant d'être prise en charge le pouvait aussi. Mettez à jour pour résoudre le problème.

922 928 

923**À faire :**929**Que faire :**

924 930 

925* Mettez à jour vers v2.1.176 ou ultérieur si cela apparaît dans une session en arrière-plan ou cloud et que vos credentials sont déjà configurées931* Passez à la v2.1.176 ou une version ultérieure si ce message apparaît dans une session en arrière-plan ou cloud et que vos identifiants sont déjà configurés

926* Confirmez que `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN` ou vos credentials du fournisseur cloud sont définis dans l'environnement qui lance le worker, pas seulement dans votre shell interactif932* Vérifiez que `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN` ou les identifiants de votre fournisseur cloud sont définis dans l'environnement qui lance le worker, et pas seulement dans votre shell interactif

927* Pour l'Agent SDK, consultez [configuration de l'authentification dans le guide de démarrage](/docs/fr/agent-sdk/quickstart#setup)933* Pour l'Agent SDK, consultez [la configuration de l'authentification dans le démarrage rapide](/docs/fr/agent-sdk/quickstart#setup)

928* Exécutez `/status` dans une session interactive dans le même environnement pour confirmer quelle source de credential se résout934* Exécutez `/status` dans une session interactive dans le même environnement pour confirmer quelle source d'identifiants est résolue

929 935 

930<h3 id="invalid-api-key">936<h3 id="invalid-api-key">

931 Clé API invalide937 Clé API invalide

932</h3>938</h3>

933 939 

934La variable d'environnement `ANTHROPIC_API_KEY` ou le script `apiKeyHelper` a renvoyé une clé que l'API a rejetée, ou Claude Code a bloqué une clé de `ANTHROPIC_API_KEY` avant de l'envoyer.940La variable d'environnement `ANTHROPIC_API_KEY` ou le script `apiKeyHelper` a renvoyé une clé que l'API a rejetée, ou Claude Code a bloqué une clé provenant de `ANTHROPIC_API_KEY` avant de l'envoyer.

935 941 

936```text theme={null}942```text theme={null}

937Invalid API key · Fix external API key943Invalid API key · Fix external API key

938```944```

939 945 

940Quand le message continue après `Fix external API key` avec une description telle que `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`, l'API n'a jamais vu la clé. Claude Code a trouvé un caractère que les en-têtes HTTP ne peuvent pas transporter et a arrêté la requête avant de l'envoyer. Consultez [Valeur d'en-tête de requête invalide](#invalid-request-header-value) pour savoir comment lire la description et corriger la valeur.946Lorsque le message se poursuit après `Fix external API key` avec une description telle que `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`, l'API n'a jamais vu la clé. Claude Code a trouvé un caractère que les en-têtes HTTP ne peuvent pas transporter et a arrêté la requête avant de l'envoyer. Consultez [Valeur d'en-tête de requête invalide](#invalid-request-header-value) pour savoir comment lire la description et corriger la valeur.

941 947 

942**À faire :**948**Que faire :**

943 949 

944* Vérifiez les fautes de frappe et confirmez que la clé n'a pas été révoquée dans la [Console](https://platform.claude.com/settings/keys)950* Vérifiez les fautes de frappe et confirmez que la clé n'a pas été révoquée dans la [Console](https://platform.claude.com/settings/keys)

945* Dans le même shell, exécutez `env | grep ANTHROPIC`, ou dans PowerShell `Get-ChildItem Env:ANTHROPIC*`. Des outils comme direnv, les plugins dotenv shell et les terminaux IDE peuvent charger une clé obsolète à partir d'un fichier `.env` dans votre projet sans que vous la définissiez explicitement.951* Dans le même shell, exécutez `env | grep ANTHROPIC`, ou dans PowerShell `Get-ChildItem Env:ANTHROPIC*`. Des outils comme direnv, les plugins shell dotenv et les terminaux d'IDE peuvent charger une clé obsolète depuis un fichier `.env` de votre projet sans que vous l'ayez définie explicitement.

946* Déconfigurez `ANTHROPIC_API_KEY` et exécutez `/login` pour utiliser l'authentification par abonnement à la place952* Supprimez `ANTHROPIC_API_KEY` et exécutez `/login` pour utiliser plutôt l'authentification par abonnement

947* Si la clé provient d'un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper), exécutez le script directement pour confirmer qu'il imprime une clé valide sur stdout953* Si la clé provient d'un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper), exécutez directement le script pour confirmer qu'il affiche une clé valide sur stdout

948* Exécutez `/status` pour confirmer quelle source de credential Claude Code utilise réellement954* Exécutez `/status` pour confirmer quelle source d'identifiants Claude Code utilise réellement

949 955 

950<h3 id="your-apikeyhelper-script-is-failing">956<h3 id="your-apikeyhelper-script-is-failing">

951 Votre script apiKeyHelper échoue957 Votre script apiKeyHelper échoue

952</h3>958</h3>

953 959 

954Claude Code a exécuté la commande dans votre paramètre [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) et n'a pas obtenu de clé en retour. Sans une, la requête atteint l'API avec une credential d'espace réservé, et l'API la rejette avec `401`. Le panneau `Authentication` dans le terminal affiche lequel de ces événements s'est produit :960Claude Code a exécuté la commande de votre paramètre [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) et n'a pas obtenu de clé en retour. Sans clé, la requête atteint l'API avec un identifiant factice, et l'API la rejette avec une erreur `401`. Le panneau `Authentication` du terminal indique lequel de ces cas s'est produit :

955 961 

956* La commande s'est terminée avec une erreur ou a expiré962* La commande s'est terminée avec une erreur ou a expiré

957* La commande n'a rien imprimé sur stdout963* La commande n'a rien affiché sur stdout

958* La commande a imprimé quelque chose d'autre que la clé, comme une bannière de connexion ou une ligne de journal. Le panneau affiche `returned output that cannot be used as an API key` et indique ce qui ne va pas, sans répéter la sortie. Avant v2.1.227, Claude Code envoyait tout ce que la commande imprimait, après suppression des espaces blancs environnants.964* La commande a affiché autre chose que la clé, comme une bannière de connexion ou une ligne de log. Le panneau affiche `returned output that cannot be used as an API key` et indique ce qui ne va pas, sans répéter la sortie. Avant la v2.1.227, Claude Code envoyait tout ce que la commande affichait, après suppression des espaces environnants.

959 965 

960```text theme={null}966```text theme={null}

961Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output967Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output

962```968```

963 969 

964En [mode non-interactif](/docs/fr/headless), stderr porte également la raison spécifique, préfixée par `apiKeyHelper failed:`.970En [mode non interactif](/docs/fr/headless), stderr contient également la raison précise, préfixée par `apiKeyHelper failed:`.

965 971 

966Claude Code réexécute le script et réessaie la requête jusqu'à deux fois de plus avant d'afficher ce message, donc l'échec apparaît dans les trois tentatives. Avant v2.1.208, Claude Code dépensait le [budget de retry](#automatic-retries) complet en renvoyant la requête avec la credential d'espace réservé, puis signalait une erreur d'authentification générique `401` au lieu de l'échec du script.972Claude Code réexécute le script et réessaie la requête jusqu'à deux fois de plus avant d'afficher ce message, de sorte que l'échec apparaît en trois tentatives au maximum. Avant la v2.1.208, Claude Code épuisait tout le [budget de nouvelles tentatives](#automatic-retries) en renvoyant la requête avec l'identifiant factice, puis signalait une erreur d'authentification `401` générique au lieu de l'échec du script.

967 973 

968L'exécution de `/login` n'aide pas ici : la sortie du helper [prend la priorité](/docs/fr/authentication#authentication-precedence) sur une connexion enregistrée tant que le paramètre est présent.974Exécuter `/login` n'aide pas ici : la sortie du helper [a priorité](/docs/fr/authentication#authentication-precedence) sur une connexion enregistrée tant que le paramètre est présent.

969 975 

970**À faire :**976**Que faire :**

971 977 

972* Exécutez la commande configurée dans `apiKeyHelper` directement dans votre shell pour reproduire l'échec978* Exécutez directement dans votre shell la commande configurée dans `apiKeyHelper` pour reproduire l'échec

973* Si la commande signale une session expirée, réauthentifiez-vous auprès de votre fournisseur de credentials, par exemple en vous reconnectant à votre SSO ou à votre coffre-fort de secrets979* Si la commande signale une session expirée, authentifiez-vous à nouveau auprès de votre fournisseur d'identifiants, par exemple en vous reconnectant à votre SSO ou à votre coffre de secrets

974* Corrigez la commande pour qu'elle imprime uniquement la clé sur stdout, en tant que jeton unique d'ASCII imprimable jusqu'à 16 384 caractères, et se termine avec le code 0. Consultez [rotation des credentials avec apiKeyHelper](/docs/fr/llm-gateway-connect#rotate-credentials-with-apikeyhelper) pour une configuration fonctionnelle.980* Corrigez la commande pour qu'elle n'affiche que la clé sur stdout, sous la forme d'un seul token d'ASCII imprimable de 16 384 caractères au maximum, et se termine avec le code 0. Consultez [renouveler les identifiants avec apiKeyHelper](/docs/fr/llm-gateway-connect#rotate-credentials-with-apikeyhelper) pour une configuration fonctionnelle.

975* Exécutez `/status` pour voir l'échec et confirmez que `apiKeyHelper` est la source de credential active. La ligne `apiKeyHelper` affiche `Failing` avec le détail du dernier échec, comme le code de sortie et la sortie d'erreur de la commande, et disparaît après la prochaine exécution réussie. Avant v2.1.274, `/status` affichait uniquement la source de credential, pas l'échec.981* Exécutez `/status` pour voir l'échec et confirmer que `apiKeyHelper` est la source d'identifiants active. La ligne `apiKeyHelper` affiche `Failing` avec le détail du dernier échec, comme le code de sortie et la sortie d'erreur de la commande, et disparaît après la prochaine exécution réussie. Avant la v2.1.274, `/status` n'affichait que la source d'identifiants, pas l'échec.

976* Chaque fois que la commande échoue, son code de sortie et sa sortie d'erreur apparaissent également dans un panneau `Authentication` dans le terminal. Avant v2.1.212, le panneau était intitulé `Cloud authentication`.982* Chaque fois que la commande échoue, son code de sortie et sa sortie d'erreur apparaissent également dans un panneau `Authentication` du terminal. Avant la v2.1.212, le panneau s'intitulait `Cloud authentication`.

977 983 

978<h3 id="invalid-request-header-value">984<h3 id="invalid-request-header-value">

979 Valeur d'en-tête de requête invalide985 Valeur d'en-tête de requête invalide

980</h3>986</h3>

981 987 

982Une valeur que Claude Code s'apprêtait à envoyer en tant qu'en-tête de requête contient un caractère que les en-têtes HTTP ne peuvent pas transporter : un saut de ligne, un octet NUL ou un caractère au-dessus de `U+00FF`, comme un guillemet courbe ou un espace de largeur zéro. Claude Code arrête la requête avant que quoi que ce soit ne soit envoyé et nomme la variable ou le paramètre à corriger. La cause habituelle est une credential collée à partir d'un document ou d'une conversation qui portait un caractère invisible ou un saut de ligne égaré.988Une valeur que Claude Code s'apprêtait à envoyer comme en-tête de requête contient un caractère que les en-têtes HTTP ne peuvent pas transporter : un saut de ligne, un octet NUL ou un caractère au-delà de `U+00FF`, comme un guillemet typographique ou une espace de largeur nulle. Claude Code arrête la requête avant tout envoi et nomme la variable ou le paramètre à corriger. La cause habituelle est un identifiant collé depuis un document ou un chat qui contenait un caractère invisible ou un saut de ligne parasite.

983 989 

984Claude Code exécute cette vérification quand il envoie des requêtes à l'API Claude directement ou via une [passerelle LLM](/docs/fr/llm-gateway). Sur un fournisseur cloud tiers comme [Amazon Bedrock](/docs/fr/amazon-bedrock), Claude Code ne l'exécute pas avant d'envoyer.990Claude Code effectue cette vérification lorsqu'il envoie des requêtes à l'API Claude directement ou via une [passerelle LLM](/docs/fr/llm-gateway). Sur un fournisseur cloud tiers comme [Amazon Bedrock](/docs/fr/amazon-bedrock), Claude Code ne l'effectue pas avant l'envoi.

985 991 

986```text theme={null}992```text theme={null}

987Invalid auth token · Fix external auth token993Invalid auth token · Fix external auth token


989Invalid request header from the environment · Fix the environment variable995Invalid request header from the environment · Fix the environment variable

990```996```

991 997 

992La première partie du message dépend de la provenance de la mauvaise valeur :998La première partie du message dépend de l'origine de la valeur incorrecte :

993 999 

994* `Invalid auth token` : un jeton bearer de [`ANTHROPIC_AUTH_TOKEN`](/docs/fr/env-vars) ou [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/fr/env-vars)1000* `Invalid auth token` : un jeton bearer provenant de [`ANTHROPIC_AUTH_TOKEN`](/docs/fr/env-vars) ou de [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/fr/env-vars)

995* `Invalid ANTHROPIC_CUSTOM_HEADERS` : un nom ou une valeur d'en-tête que vous avez défini dans [`ANTHROPIC_CUSTOM_HEADERS`](/docs/fr/env-vars). La description compte quelle paire `Name: Value` est en faute, comme `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`, sans répéter le nom ou la valeur, puisque vous avez choisi les deux.1001* `Invalid ANTHROPIC_CUSTOM_HEADERS` : un nom ou une valeur d'en-tête que vous avez défini dans [`ANTHROPIC_CUSTOM_HEADERS`](/docs/fr/env-vars). La description indique le rang de la paire `Name: Value` en cause, par exemple `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`, sans répéter le nom ni la valeur, puisque c'est vous qui les avez choisis.

996* `Invalid request header from the environment` : une valeur que Claude Code copie dans un en-tête de requête à partir d'une autre variable d'environnement, comme `CLAUDE_AGENT_SDK_CLIENT_APP`. La description nomme la variable à corriger.1002* `Invalid request header from the environment` : une valeur que Claude Code copie dans un en-tête de requête depuis une autre variable d'environnement, comme `CLAUDE_AGENT_SDK_CLIENT_APP`. La description nomme la variable à corriger.

997 1003 

998Claude Code signale une mauvaise `ANTHROPIC_API_KEY` capturée par cette vérification comme [Clé API invalide](#invalid-api-key), avec la même description de fin. Il signale une mauvaise credential `/login` enregistrée comme [Non connecté](#not-logged-in) à la place ; exécutez `/login` pour en enregistrer une nouvelle. La sortie d'un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) n'atteint jamais cette vérification : Claude Code la valide quand le script s'exécute, et la sortie qu'un en-tête HTTP ne peut pas transporter échoue avec [Votre script apiKeyHelper échoue](#your-apikeyhelper-script-is-failing).1004Claude Code signale une `ANTHROPIC_API_KEY` incorrecte détectée par cette vérification sous la forme [Clé API invalide](#invalid-api-key), avec la même description finale. Il signale un identifiant `/login` enregistré incorrect sous la forme [Non connecté](#not-logged-in) ; exécutez `/login` pour en enregistrer un nouveau. La sortie d'un script [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) n'atteint jamais cette vérification : Claude Code la valide lors de l'exécution du script, et une sortie qu'un en-tête HTTP ne peut pas transporter échoue avec [Votre script apiKeyHelper échoue](#your-apikeyhelper-script-is-failing).

999 1005 

1000Après le deuxième `·`, le message décrit le problème, comme dans cet exemple complet :1006Après le second `·`, le message décrit le problème, comme dans cet exemple complet :

1001 1007 

1002```text theme={null}1008```text theme={null}

1003Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).1009Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).

1004```1010```

1005 1011 

1006Les positions comptent les caractères en commençant par un. La description est construite à partir de phrases fixes et de comptages de caractères, donc elle n'inclut jamais la valeur elle-même. Elle nomme le caractère offensant uniquement quand il s'agit d'un caractère invisible ou typographique bien connu, comme une marque d'ordre des octets, un espace de largeur zéro ou un guillemet courbe, et signale tout le reste comme `a non-ASCII character`.1012Les positions comptent les caractères à partir de un. La description est construite à partir de phrases fixes et de nombres de caractères, elle n'inclut donc jamais la valeur elle-même. Elle ne nomme le caractère fautif que lorsqu'il s'agit d'un caractère invisible ou typographique bien connu, comme une marque d'ordre d'octets, une espace de largeur nulle ou un guillemet typographique, et signale tout autre caractère comme `a non-ASCII character`.

1007 1013 

1008**À faire :**1014**Que faire :**

1009 1015 

1010* Redéfinissez la variable ou le paramètre que le message nomme, en retapant les caractères autour de la position signalée plutôt que de coller à partir de la même source1016* Redéfinissez la variable ou le paramètre nommé dans le message, en retapant les caractères autour de la position signalée plutôt qu'en collant à nouveau depuis la même source

1011* Pour `ANTHROPIC_CUSTOM_HEADERS`, conservez une paire `Name: Value` par ligne et réécrivez la paire que le message compte1017* Pour `ANTHROPIC_CUSTOM_HEADERS`, conservez une seule paire `Name: Value` par ligne et réécrivez la paire indiquée par le message

1012* Exécutez `/status` pour confirmer quelle source de credential est active1018* Exécutez `/status` pour confirmer quelle source d'identifiants est active

1013 1019 

1014<h3 id="this-organization-has-been-disabled">1020<h3 id="this-organization-has-been-disabled">

1015 Cette organisation a été désactivée1021 Cette organisation a été désactivée

1016</h3>1022</h3>

1017 1023 

1018Claude Code utilise une `ANTHROPIC_API_KEY` obsolète d'une organisation Console désactivée. Quand vous avez une connexion d'abonnement enregistrée, la clé la remplace.1024Claude Code utilise une `ANTHROPIC_API_KEY` obsolète provenant d'une organisation Console désactivée. Lorsque vous disposez d'une connexion par abonnement enregistrée, la clé la remplace.

1019 1025 

1020```text theme={null}1026```text theme={null}

1021Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead1027Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead


1023API Error: 400 ... This organization has been disabled.1029API Error: 400 ... This organization has been disabled.

1024```1030```

1025 1031 

1026L'indice après le `·` dépend de vos credentials enregistrées : la première forme apparaît quand une `/login` enregistrée peut prendre le relais après que vous ayez déconfiguré la clé, et la deuxième quand la clé est votre seule credential.1032L'indication après le `·` dépend de vos identifiants enregistrés : la première forme apparaît lorsqu'une connexion `/login` enregistrée peut prendre le relais après la suppression de la clé, et la seconde lorsque la clé est votre seul identifiant.

1027 1033 

1028Les variables d'environnement prennent la priorité sur `/login`, donc une clé exportée dans votre profil shell ou chargée à partir d'un fichier `.env` est utilisée même quand vous avez un abonnement Pro ou Max fonctionnant. En mode non-interactif (`-p`), la clé est toujours utilisée quand elle est présente.1034Les variables d'environnement ont priorité sur `/login`, de sorte qu'une clé exportée dans votre profil shell ou chargée depuis un fichier `.env` est utilisée même lorsque vous disposez d'un abonnement Pro ou Max fonctionnel. En mode non interactif (`-p`), la clé est toujours utilisée lorsqu'elle est présente.

1029 1035 

1030**À faire :**1036**Que faire :**

1031 1037 

1032* Déconfigurez `ANTHROPIC_API_KEY` dans le shell actuel et supprimez-la de votre profil shell, puis relancez `claude`1038* Supprimez `ANTHROPIC_API_KEY` dans le shell actuel et retirez-la de votre profil shell, puis relancez `claude`

1033* Si le message dit `Update or unset`, vous n'avez pas de connexion enregistrée sur laquelle vous rabattre. Déconfigurez la clé et exécutez `/login`, ou remplacez la clé par une d'une organisation Console active.1039* Si le message indique `Update or unset`, vous n'avez aucune connexion enregistrée de repli. Supprimez la clé et exécutez `/login`, ou remplacez la clé par une clé provenant d'une organisation Console active.

1034* Exécutez `/status` après pour confirmer que la credential active est votre abonnement1040* Exécutez ensuite `/status` pour confirmer que l'identifiant actif est votre abonnement

1035* Si aucune variable d'environnement n'est définie et l'erreur persiste, contactez le support ou connectez-vous avec un compte différent.1041* Si aucune variable d'environnement n'est définie et que l'erreur persiste, contactez le support ou connectez-vous avec un autre compte.

1036 1042 

1037<h3 id="your-organization-has-disabled-api-key-authentication">1043<h3 id="your-organization-has-disabled-api-key-authentication">

1038 Votre organisation a désactivé l'authentification par clé API1044 Votre organisation a désactivé l'authentification par clé API

1039</h3>1045</h3>

1040 1046 

1041Ce message nécessite Claude Code v2.1.169 ou ultérieur. L'administrateur de votre organisation Console a désactivé l'authentification par clé API, donc l'API rejette la clé que Claude Code envoie. L'indice de récupération après le `·` varie selon la provenance de la clé :1047Ce message nécessite Claude Code v2.1.169 ou une version ultérieure. L'administrateur de votre organisation Console a désactivé l'authentification par clé API, l'API rejette donc la clé envoyée par Claude Code. L'indication de récupération après le `·` varie selon l'origine de la clé :

1042 1048 

1043```text theme={null}1049```text theme={null}

1044Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account1050Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account


1048Your organization has disabled API key authentication · Sign in again with your claude.ai account1054Your organization has disabled API key authentication · Sign in again with your claude.ai account

1049```1055```

1050 1056 

1051La dernière forme apparaît dans une session que l'application Claude Desktop exécute, comme l'onglet Code ou Cowork, où vous vous reconnectez à partir de l'application.1057La dernière forme apparaît dans une session exécutée par l'application Claude Desktop, comme l'onglet Code ou Cowork, où vous vous reconnectez depuis l'application.

1052 1058 

1053Les variables d'environnement et `apiKeyHelper` prennent la priorité sur `/login`, donc exécuter `/login` seul n'aide pas tant que l'un ou l'autre fournit toujours une clé. Consultez [Précédence d'authentification](/docs/fr/authentication#authentication-precedence).1059Les variables d'environnement et `apiKeyHelper` ont priorité sur `/login`, donc exécuter `/login` seul n'aide pas tant que l'un d'eux fournit encore une clé. Consultez [Priorité d'authentification](/docs/fr/authentication#authentication-precedence).

1054 1060 

1055**À faire :**1061**Que faire :**

1056 1062 

1057* Si le message nomme `ANTHROPIC_API_KEY`, déconfigurez-la dans le shell actuel et supprimez-la de votre profil shell ou fichier `.env`, puis relancez `claude`1063* Si le message nomme `ANTHROPIC_API_KEY`, supprimez-la dans le shell actuel et retirez-la de votre profil shell ou de votre fichier `.env`, puis relancez `claude`

1058* Si le message nomme `apiKeyHelper`, supprimez le paramètre [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) de votre `settings.json`1064* Si le message nomme `apiKeyHelper`, retirez le paramètre [`apiKeyHelper`](/docs/fr/settings-reference#apikeyhelper) de votre `settings.json`

1059* Exécutez `/login` pour vous connecter avec votre compte claude.ai1065* Exécutez `/login` pour vous connecter avec votre compte claude.ai

1060* Exécutez `/status` après pour confirmer que la credential active est votre abonnement plutôt qu'une clé API1066* Exécutez ensuite `/status` pour confirmer que l'identifiant actif est votre abonnement et non une clé API

1061* Si vous avez besoin de l'authentification par clé API pour l'automatisation, demandez à l'administrateur de votre organisation de la réactiver dans la Console1067* Si vous avez besoin de l'authentification par clé API pour l'automatisation, demandez à l'administrateur de votre organisation de la réactiver dans la Console

1062 1068 

1063<h3 id="your-organization-has-disabled-claude-subscription-access">1069<h3 id="your-organization-has-disabled-claude-subscription-access">

1064 Votre organisation a désactivé l'accès à l'abonnement Claude1070 Votre organisation a désactivé l'accès par abonnement Claude

1065</h3>1071</h3>

1066 1072 

1067Votre organisation Claude ne permet pas de se connecter à Claude Code avec une connexion d'abonnement. L'exécution de `/login` à nouveau avec le même compte retourne la même erreur.1073Votre organisation Claude n'autorise pas la connexion à Claude Code avec une connexion par abonnement. Exécuter à nouveau `/login` avec le même compte renvoie la même erreur.

1068 1074 

1069```text theme={null}1075```text theme={null}

1070Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access1076Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

1071```1077```

1072 1078 

1073C'est un paramètre d'organisation côté serveur, donc il ne peut pas être remplacé à partir des paramètres locaux, des variables d'environnement ou des drapeaux CLI.1079Il s'agit d'un paramètre d'organisation côté serveur, il ne peut donc pas être remplacé par des paramètres locaux, des variables d'environnement ou des flags CLI.

1074 1080 

1075L'Agent SDK et le mode non-interactif `-p` présentent cela comme le code d'erreur `oauth_org_not_allowed`.1081L'Agent SDK et le mode non interactif `-p` le signalent avec le code d'erreur `oauth_org_not_allowed`.

1076 1082 

1077**À faire :**1083**Que faire :**

1078 1084 

1079* Demandez à votre administrateur d'activer l'accès à Claude Code pour votre organisation1085* Demandez à votre administrateur d'activer l'accès à Claude Code pour votre organisation

1080* Authentifiez-vous avec une clé API Console au lieu de votre abonnement. Consultez [Authentification Claude Console](/docs/fr/authentication#claude-console-authentication) pour la configuration.1086* Authentifiez-vous avec une clé API Console au lieu de votre abonnement. Consultez [Authentification Claude Console](/docs/fr/authentication#claude-console-authentication) pour la configuration.


1084 Les routines sont désactivées par la politique de votre organisation1090 Les routines sont désactivées par la politique de votre organisation

1085</h3>1091</h3>

1086 1092 

1087Un propriétaire de votre organisation Team ou Enterprise a désactivé les routines au niveau de l'organisation. L'erreur apparaît quand vous essayez de créer ou d'exécuter une routine, par exemple à partir de l'interface utilisateur [Routines](/docs/fr/routines) sur claude.ai/code. Sur Claude Code v2.1.227 ou ultérieur, le même paramètre [masque également `/schedule`](/docs/fr/routines#troubleshooting) dans le CLI.1093Un Owner de votre organisation Team ou Enterprise a désactivé les routines au niveau de l'organisation. L'erreur apparaît lorsque vous essayez de créer ou d'exécuter une routine, par exemple depuis l'interface [Routines](/docs/fr/routines) sur claude.ai/code. Sur Claude Code v2.1.227 ou une version ultérieure, le même paramètre [masque également `/schedule`](/docs/fr/routines#troubleshooting) dans la CLI.

1088 1094 

1089```text theme={null}1095```text theme={null}

1090Routines are disabled by your organization's policy.1096Routines are disabled by your organization's policy.

1091```1097```

1092 1098 

1093C'est un paramètre côté serveur, donc il ne peut pas être remplacé à partir des paramètres locaux, des variables d'environnement ou des drapeaux CLI.1099Il s'agit d'un paramètre côté serveur, il ne peut donc pas être remplacé par des paramètres locaux, des variables d'environnement ou des flags CLI.

1094 1100 

1095**À faire :**1101**Que faire :**

1096 1102 

1097* Demandez à un propriétaire de votre organisation d'activer le bouton bascule **Routines** sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)1103* Demandez à un Owner de votre organisation d'activer l'option **Routines** sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

1098* Pour un travail ponctuel programmé qui ne nécessite pas de routines au niveau de l'organisation, consultez [tâches programmées](/docs/fr/scheduled-tasks)1104* Pour un travail planifié ponctuel qui ne nécessite pas de routines au niveau de l'organisation, consultez [tâches planifiées](/docs/fr/scheduled-tasks)

1099 1105 

1100<h3 id="remote-control-requires-the-anthropic-api">1106<h3 id="remote-control-requires-the-anthropic-api">

1101 Remote Control nécessite l'API Anthropic1107 Remote Control nécessite l'API Anthropic

1102</h3>1108</h3>

1103 1109 

1104La session ne parle pas directement à l'API Anthropic, ce que [Remote Control](/docs/fr/remote-control) nécessite.1110La session ne communique pas directement avec l'API Anthropic, ce que [Remote Control](/docs/fr/remote-control) exige.

1105 1111 

1106```text theme={null}1112```text theme={null}

1107Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.1113Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.

1108```1114```

1109 1115 

1110Une deuxième phrase explique ce qui a acheminé la session loin de l'API Anthropic ; avant v2.1.219, le message était la première phrase seule. Selon la cause, le message nomme :1116Une seconde phrase explique ce qui a détourné la session de l'API Anthropic ; avant la v2.1.219, le message se limitait à la première phrase. Selon la cause, le message nomme :

1111 1117 

1112* Une variable de fournisseur `CLAUDE_CODE_USE_*`, comme `CLAUDE_CODE_USE_BEDROCK` pour [Amazon Bedrock](/docs/fr/amazon-bedrock) ou `CLAUDE_CODE_USE_VERTEX` pour [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai)1118* Une variable de fournisseur `CLAUDE_CODE_USE_*`, comme `CLAUDE_CODE_USE_BEDROCK` pour [Amazon Bedrock](/docs/fr/amazon-bedrock) ou `CLAUDE_CODE_USE_VERTEX` pour [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai)

1113* [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) pointant vers un hôte autre que `api.anthropic.com`, comme une [passerelle LLM](/docs/fr/llm-gateway) ou un proxy, même quand vous vous connectez avec claude.ai ; avant v2.1.196, une URL de base personnalisée ne bloquait pas Remote Control1119* [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) pointant vers un hôte autre que `api.anthropic.com`, comme une [passerelle LLM](/docs/fr/llm-gateway) ou un proxy, même lorsque vous vous connectez avec claude.ai ; avant la v2.1.196, une URL de base personnalisée ne bloquait pas Remote Control

1114* `ANTHROPIC_UNIX_SOCKET` défini, donc la session envoie ses requêtes via un socket local plutôt qu'à `api.anthropic.com`1120* `ANTHROPIC_UNIX_SOCKET` définie, de sorte que la session envoie ses requêtes via un socket local plutôt qu'à `api.anthropic.com`

1115* Une connexion [passerelle cloud](/docs/fr/claude-apps-gateway) d'entreprise effectuée via `/login`, qui ne supporte pas Remote Control et n'a pas de variable à déconfigurez1121* Une connexion à une [passerelle cloud](/docs/fr/claude-apps-gateway) d'entreprise effectuée via `/login`, qui ne prend pas en charge Remote Control et n'a aucune variable à supprimer

1116 1122 

1117**À faire :**1123**Que faire :**

1118 1124 

1119* Déconfigurez la variable que le message nomme, comme `CLAUDE_CODE_USE_BEDROCK` ou `ANTHROPIC_BASE_URL`, et redémarrez la session, ou démarrez Remote Control à partir d'une session qui parle directement à l'API Anthropic1125* Supprimez la variable nommée dans le message, comme `CLAUDE_CODE_USE_BEDROCK` ou `ANTHROPIC_BASE_URL`, et redémarrez la session, ou démarrez Remote Control depuis une session qui communique directement avec l'API Anthropic

1120* Si la variable n'est pas définie dans votre shell, vérifiez la clé `env` dans vos [fichiers de paramètres](/docs/fr/settings#where-settings-live), qui applique les variables d'environnement à chaque session1126* Si la variable n'est pas définie dans votre shell, vérifiez la clé `env` dans vos [fichiers de paramètres](/docs/fr/settings#where-settings-live), qui applique des variables d'environnement à chaque session

1121* Pour ce message et les autres messages de démarrage de Remote Control, consultez [Dépannage de Remote Control](/docs/fr/remote-control#troubleshooting)1127* Pour ce message et les autres messages de démarrage de Remote Control, consultez [Dépannage de Remote Control](/docs/fr/remote-control#troubleshooting)

1122 1128 

1123<h3 id="remote-control-couldnt-refresh-your-login">1129<h3 id="remote-control-couldnt-refresh-your-login">

1124 Remote Control n'a pas pu rafraîchir votre connexion1130 Remote Control n'a pas pu actualiser votre connexion

1125</h3>1131</h3>

1126 1132 

1127Claude Code exécute une connexion [Remote Control](/docs/fr/remote-control) en direct sur des credentials de courte durée qu'il obtient et renouvelle en utilisant votre connexion claude.ai enregistrée. Quand claude.ai arrête d'accepter cette connexion, ou que Claude Code n'a plus de connexion enregistrée, Claude Code arrête Remote Control et vous demande de vous reconnecter. L'une ou l'autre défaillance peut se produire pendant que Claude Code se connecte toujours ou plus tard, quand il renouvelle les credentials.1133Claude Code fait fonctionner une connexion [Remote Control](/docs/fr/remote-control) active à l'aide d'identifiants de courte durée qu'il obtient et renouvelle grâce à votre connexion claude.ai enregistrée. Lorsque claude.ai cesse d'accepter cette connexion, ou que Claude Code n'a plus de connexion enregistrée, Claude Code arrête Remote Control et vous demande de vous reconnecter. L'un ou l'autre échec peut se produire alors que Claude Code est encore en train de se connecter ou plus tard, lorsqu'il renouvelle les identifiants.

1128 1134 

1129Quand Claude Code demande au service de connexion de rafraîchir votre connexion enregistrée et n'obtient pas de réponse, il garde Remote Control en cours d'exécution et réessaie le rafraîchissement pendant que la credential actuelle de la connexion est toujours valide. Un rafraîchissement n'obtient pas de réponse quand Claude Code ne peut pas atteindre le service de connexion, la requête expire, ou le service échoue sans rejeter votre connexion. Si le service de connexion ne répond toujours pas quand cette credential expire, Claude Code arrête Remote Control et signale `OAuth token refresh failed`.1135Lorsque Claude Code demande au service de connexion d'actualiser votre connexion enregistrée et n'obtient aucune réponse, il maintient Remote Control en fonctionnement et réessaie l'actualisation tant que l'identifiant actuel de la connexion est encore valide. Une actualisation reste sans réponse lorsque Claude Code ne peut pas joindre le service de connexion, que la requête expire ou que le service échoue sans rejeter votre connexion. Si le service de connexion ne répond toujours pas lorsque cet identifiant expire, Claude Code arrête Remote Control et signale `OAuth token refresh failed`.

1130 1136 

1131Quand Claude Code arrête Remote Control, il affiche la raison dans un avertissement et dans une ligne de transcription qui commence par `Remote Control disconnected`. Votre session locale continue de s'exécuter sans Remote Control. Cette section couvre ces lignes :1137Lorsque Claude Code arrête Remote Control, il en indique la raison dans un avertissement et dans une ligne de transcription commençant par `Remote Control disconnected`. Votre session locale continue de fonctionner sans Remote Control. Cette section couvre ces lignes :

1132 1138 

1133```text theme={null}1139```text theme={null}

1134Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control1140Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control


1142 1148 

1143Claude Code nomme la cause au milieu du message :1149Claude Code nomme la cause au milieu du message :

1144 1150 

1145* ` Claude.ai login expired` et `Claude.ai login was rejected` : claude.ai n'accepte plus votre jeton de connexion enregistré, car il a expiré ou a été révoqué1151* `Claude.ai login expired` et `Claude.ai login was rejected` : claude.ai n'accepte plus votre jeton de connexion enregistré, parce qu'il a expiré ou a été révoqué

1146* ` OAuth token unavailable` : Claude Code n'avait pas de jeton de connexion enregistré quand la credential de la connexion était due pour le renouvellement1152* `OAuth token unavailable` : Claude Code n'avait aucun jeton de connexion enregistré lorsque l'identifiant de la connexion devait être renouvelé

1147* `OAuth token refresh failed` : claude.ai a rejeté votre jeton de connexion enregistré pendant que Claude Code se reconnectait, et le rafraîchissement du jeton n'en a produit aucun nouveau1153* `OAuth token refresh failed` : claude.ai a rejeté votre jeton de connexion enregistré pendant que Claude Code se reconnectait, et l'actualisation du jeton n'en a pas produit de nouveau

1148* `JWT refresh failed: no OAuth token` : Claude Code n'a trouvé aucun jeton de connexion enregistré pour renouveler avec1154* `JWT refresh failed: no OAuth token` : Claude Code n'a trouvé aucun jeton de connexion enregistré avec lequel renouveler

1149* ` Signed out of Claude` : vous vous êtes déconnecté sur cette machine, par exemple en exécutant `/logout` dans un autre terminal, donc Claude Code n'a pas de connexion enregistrée pour renouveler la connexion avec1155* `Signed out of Claude` : vous vous êtes déconnecté sur cette machine, par exemple en exécutant `/logout` dans un autre terminal, de sorte que Claude Code n'a plus de connexion enregistrée pour renouveler la connexion

1150 1156 

1151**À faire :**1157**Que faire :**

1152 1158 

1153* Exécutez `/login` pour vous reconnecter1159* Exécutez `/login` pour vous reconnecter

1154* Exécutez `/remote-control` pour reconnecter la session. Les messages se terminant par `run /login to restore Remote Control` n'ont pas besoin de cette étape : Claude Code se reconnecte automatiquement une fois que vous vous êtes connecté.1160* Exécutez `/remote-control` pour reconnecter la session. Les messages se terminant par `run /login to restore Remote Control` ne nécessitent pas cette étape : Claude Code se reconnecte de lui-même une fois que vous vous êtes connecté.

1155 1161 

1156Avant v2.1.224, `OAuth token refresh failed — run /login to re-authenticate` lisait `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`, et `JWT refresh failed: no OAuth token — run /login` lisait `no OAuth token available for recovery (code <N>)`. Les messages `Claude.ai login expired`, `Claude.ai login was rejected` et `OAuth token unavailable` ont été ajoutés dans v2.1.225.1162Avant la v2.1.224, `OAuth token refresh failed — run /login to re-authenticate` s'affichait sous la forme `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`, et `JWT refresh failed: no OAuth token — run /login` sous la forme `no OAuth token available for recovery (code <N>)`. Les messages `Claude.ai login expired`, `Claude.ai login was rejected` et `OAuth token unavailable` ont été ajoutés dans la v2.1.225.

1157 1163 

1158Avant v2.1.238, Claude Code signalait les cas qui disent maintenant `Signed out of Claude` comme `JWT refresh failed: no OAuth token — run /login`, et arrêtait Remote Control avec `Claude.ai login expired — run /login to restore Remote Control` dès qu'un rafraîchissement de connexion n'obtenait pas de réponse.1164Avant la v2.1.238, Claude Code signalait les cas qui indiquent désormais `Signed out of Claude` sous la forme `JWT refresh failed: no OAuth token — run /login`, et arrêtait Remote Control avec `Claude.ai login expired — run /login to restore Remote Control` dès qu'une actualisation de connexion restait sans réponse.

1159 1165 

1160<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1166<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1161 Remote Control s'est arrêté car le compte connecté a changé1167 Remote Control s'est arrêté parce que le compte connecté a changé

1162</h3>1168</h3>

1163 1169 

1164Claude Code affiche cette ligne pendant une session [Remote Control](/docs/fr/remote-control) quand vous vous connectez à un compte ou une organisation claude.ai différent sur cette machine. Vous avez effectué le changement en dehors de la session Claude Code, par exemple en exécutant `/login` dans un autre terminal.1170Claude Code affiche cette ligne pendant une session [Remote Control](/docs/fr/remote-control) lorsque vous vous connectez à un autre compte ou une autre organisation claude.ai sur cette machine. Vous avez effectué ce changement en dehors de la session Claude Code, par exemple en exécutant `/login` dans un autre terminal.

1165 1171 

1166Une session Remote Control que vous avez démarrée alors que vous étiez connecté via `/login` appartient au compte et à l'organisation claude.ai qui étaient connectés à ce moment-là.1172Une session Remote Control que vous avez démarrée alors que vous étiez connecté via `/login` appartient au compte et à l'organisation claude.ai connectés à ce moment-là.

1167 1173 

1168```text theme={null}1174```text theme={null}

1169Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control1175Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control

1170```1176```

1171 1177 

1172Claude Code arrête la session Remote Control dès que claude.ai confirme que le compte ou l'organisation a changé. Votre session locale continue de s'exécuter sans Remote Control.1178Claude Code arrête la session Remote Control dès que claude.ai confirme que le compte ou l'organisation a changé. Votre session locale continue de fonctionner sans Remote Control.

1173 1179 

1174**À faire :**1180**Que faire :**

1175 1181 

1176* Exécutez `/remote-control` pour démarrer une nouvelle session Remote Control sous le compte ou l'organisation actuel1182* Exécutez `/remote-control` pour démarrer une nouvelle session Remote Control avec le compte ou l'organisation actuel

1177* Pour revenir en arrière, exécutez `/login` et reconnectez-vous au compte ou à l'organisation précédent. Puis exécutez `/remote-control`.1183* Pour revenir en arrière, exécutez `/login` et reconnectez-vous au compte ou à l'organisation précédent. Exécutez ensuite `/remote-control`.

1178 1184 

1179Avant v2.1.234, Claude Code ne remarquait pas quand vous basculiez vers un compte ou une organisation différent en dehors de la session Claude Code. Claude Code gardait la session Remote Control connectée jusqu'à ce qu'une requête ultérieure au serveur Remote Control échoue avec `Remote Control server rejected the request (HTTP 404)`. Cet échec pouvait survenir des heures après le changement.1185Avant la v2.1.234, Claude Code ne détectait pas le passage à un autre compte ou une autre organisation effectué en dehors de la session Claude Code. Claude Code maintenait la session Remote Control connectée jusqu'à ce qu'une requête ultérieure au serveur Remote Control échoue avec `Remote Control server rejected the request (HTTP 404)`. Cet échec pouvait survenir des heures après le changement.

1180 1186 

1181<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">1187<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">

1182 Remote Control s'est arrêté car l'application exécutant la session s'est déconnectée ou a changé de compte1188 Remote Control s'est arrêté parce que l'application exécutant la session s'est déconnectée ou a changé de compte

1183</h3>1189</h3>

1184 1190 

1185Quand l'application de bureau Claude ou un IDE héberge votre session, Claude Code obtient son jeton de connexion de cette application plutôt que de `/login`. Quand claude.ai rejette ce jeton, Claude Code demande à l'application un nouveau. Si l'application répond qu'elle est déconnectée, ou qu'elle est maintenant connectée à un compte Claude différent, Claude Code termine la session [Remote Control](/docs/fr/remote-control) et envoie à l'application l'une de ces lignes :1191Lorsque l'application de bureau Claude ou un IDE héberge votre session, Claude Code obtient son jeton de connexion auprès de cette application plutôt que via `/login`. Lorsque claude.ai rejette ce jeton, Claude Code en demande un nouveau à l'application. Si l'application répond qu'elle est déconnectée, ou qu'elle est désormais connectée à un autre compte Claude, Claude Code met fin à la session [Remote Control](/docs/fr/remote-control) et envoie à l'application l'une de ces lignes :

1186 1192 

1187```text theme={null}1193```text theme={null}

1188Remote Control stopped — the app running this session is now signed in to a different Claude account1194Remote Control stopped — the app running this session is now signed in to a different Claude account

1189Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on1195Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on

1190```1196```

1191 1197 

1192Votre session locale continue de s'exécuter sans Remote Control.1198Votre session locale continue de fonctionner sans Remote Control.

1193 1199 

1194**À faire :**1200**Que faire :**

1195 1201 

1196* Si l'application est déconnectée, reconnectez-vous à celle-ci, puis réactivez Remote Control dans l'application1202* Si l'application est déconnectée, reconnectez-vous-y, puis réactivez Remote Control dans l'application

1197* Si l'application a changé de compte, Claude Code ne peut pas continuer la session terminée sous le nouveau compte. Démarrez une nouvelle session Remote Control sous ce compte.1203* Si l'application a changé de compte, Claude Code ne peut pas poursuivre la session terminée sous le nouveau compte. Démarrez une nouvelle session Remote Control sous ce compte.

1198 1204 

1199Avant v2.1.238, Claude Code envoyait à l'application les messages `/login` listés sous [Remote Control n'a pas pu rafraîchir votre connexion](#remote-control-couldnt-refresh-your-login) dans les deux cas.1205Avant la v2.1.238, Claude Code envoyait à l'application, dans les deux cas, les messages `run /login` répertoriés sous [Remote Control n'a pas pu actualiser votre connexion](#remote-control-couldnt-refresh-your-login).

1200 1206 

1201<h3 id="oauth-token-revoked-or-expired">1207<h3 id="oauth-token-revoked-or-expired">

1202 Jeton OAuth révoqué ou expiré1208 Jeton OAuth révoqué ou expiré

1203</h3>1209</h3>

1204 1210 

1205Votre connexion enregistrée n'est plus valide. Un jeton révoqué signifie que vous vous êtes déconnecté partout ou qu'un administrateur a supprimé l'accès ; un jeton expiré signifie que le rafraîchissement automatique a échoué en cours de session.1211Votre connexion enregistrée n'est plus valide. Un jeton révoqué signifie que vous vous êtes déconnecté partout ou qu'un administrateur a supprimé votre accès ; un jeton expiré signifie que l'actualisation automatique a échoué en cours de session.

1206 1212 

1207Les deux messages signalent un rejet que l'API a retourné pour une requête que Claude Code a envoyée. Quand la connexion enregistrée a déjà été effacée après un rafraîchissement échoué, vous voyez [Connexion expirée](#login-expired) à la place. Si vous vous authentifiez avec un jeton de longue durée dans [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/fr/env-vars), vous voyez les mêmes messages quand ce jeton expire ou est révoqué.1213Les deux messages signalent un rejet renvoyé par l'API pour une requête envoyée par Claude Code. Lorsque la connexion enregistrée a déjà été effacée après un échec d'actualisation, vous voyez plutôt [Connexion expirée](#login-expired). Si vous vous authentifiez avec un jeton de longue durée dans [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/fr/env-vars), vous voyez les mêmes messages lorsque ce jeton expire ou est révoqué.

1208 1214 

1209```text theme={null}1215```text theme={null}

1210OAuth token revoked · Please run /login1216OAuth token revoked · Please run /login

1211Please run /login · API Error: 401 OAuth token has expired ...1217Please run /login · API Error: 401 OAuth token has expired ...

1212```1218```

1213 1219 

1214**À faire :**1220**Que faire :**

1215 1221 

1216* Exécutez `/login` pour vous reconnecter1222* Exécutez `/login` pour vous reconnecter

1217* Si vous vous authentifiez avec la variable d'environnement `CLAUDE_CODE_OAUTH_TOKEN`, Claude Code continue d'envoyer la valeur que vous avez définie après l'échec d'une requête avec un 401, plutôt que de basculer vers le jeton d'une connexion enregistrée. [`/status`](/docs/fr/commands) affiche cette credential comme une ligne `Auth token` lisant `CLAUDE_CODE_OAUTH_TOKEN`. Générez un jeton frais avec [`claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token) et redémarrez avec, ou déconfigurez la variable et exécutez `/login`. Avant v2.1.225, Claude Code pouvait remplacer la valeur de la variable en cours de session par le jeton d'accès de courte durée d'une connexion enregistrée, et la session échouait à nouveau avec des erreurs 401 une fois ce jeton expiré.1223* Si vous vous authentifiez avec la variable d'environnement `CLAUDE_CODE_OAUTH_TOKEN`, Claude Code continue d'envoyer la valeur que vous avez définie après l'échec d'une requête avec une erreur 401, plutôt que de basculer vers le jeton d'une connexion enregistrée. [`/status`](/docs/fr/commands) affiche cet identifiant sous la forme d'une ligne `Auth token` indiquant `CLAUDE_CODE_OAUTH_TOKEN`. Générez un nouveau jeton avec [`claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token) et redémarrez avec celui-ci, ou supprimez la variable et exécutez `/login`. Avant la v2.1.225, Claude Code pouvait remplacer la valeur de la variable en cours de session par le jeton d'accès de courte durée d'une connexion enregistrée, et la session échouait à nouveau avec des erreurs 401 une fois ce jeton expiré.

1218* Pour les invites répétées de connexion entre les lancements, consultez les vérifications de l'horloge système et les étapes de récupération du stockage des credentials macOS dans [Dépannage](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired)1224* Pour les demandes de connexion répétées d'un lancement à l'autre, consultez les vérifications de l'horloge système et les étapes de récupération du stockage des identifiants sur macOS dans [Dépannage](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired)

1219* Pour les autres défaillances incluant `403 Forbidden` et les problèmes du navigateur OAuth, consultez [Connexion et authentification](/docs/fr/troubleshoot-install#login-and-authentication)1225* Pour d'autres échecs, notamment `403 Forbidden` et les problèmes de navigateur OAuth, consultez [Connexion et authentification](/docs/fr/troubleshoot-install#login-and-authentication)

1220 1226 

1221<h3 id="api-error-401-invalid-authentication-credentials">1227<h3 id="api-error-401-invalid-authentication-credentials">

1222 Erreur API : 401 Credentials d'authentification invalides1228 API Error: 401 Invalid authentication credentials

1223</h3>1229</h3>

1224 1230 

1225L'API a reconnu le format de votre credential mais a rejeté le compte ou l'organisation derrière. Anthropic retourne ce message quand une credential a été récemment révoquée, quand une organisation a été désactivée ou a supprimé votre accès, ou quand le compte lui-même a été désactivé, donc un jeton expiré n'est pas la cause. La credential peut être votre connexion enregistrée ou une `ANTHROPIC_API_KEY` approuvée, et la correction diffère, donc commencez par exécuter `/status` pour voir laquelle est active.1231L'API a reconnu le format de votre identifiant mais a rejeté le compte ou l'organisation associé. Anthropic renvoie ce message lorsqu'un identifiant a été récemment révoqué, lorsqu'une organisation a été désactivée ou a supprimé votre accès, ou lorsque le compte lui-même a été désactivé ; un jeton expiré n'en est donc pas la cause. L'identifiant peut être votre connexion enregistrée ou une `ANTHROPIC_API_KEY` approuvée, et la solution diffère ; commencez donc par exécuter `/status` pour voir lequel est actif.

1226 1232 

1227```text theme={null}1233```text theme={null}

1228Please run /login · API Error: 401 Invalid authentication credentials1234Please run /login · API Error: 401 Invalid authentication credentials

1229```1235```

1230 1236 

1231**À faire :**1237**Que faire :**

1232 1238 

1233* Si `/status` affiche une ligne `API key` qui n'est pas marquée comme non utilisée, une [`ANTHROPIC_API_KEY`](/docs/fr/authentication#authentication-precedence) approuvée est la credential active et prend la priorité sur votre connexion, donc `/login` ne la remplace pas. Faites tourner la clé dans la Console Claude, ou revenez à votre abonnement en exécutant `unset ANTHROPIC_API_KEY`, ou dans PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`.1239* Si `/status` affiche une ligne `API key` qui n'est pas marquée comme non utilisée, une [`ANTHROPIC_API_KEY`](/docs/fr/authentication#authentication-precedence) approuvée est l'identifiant actif et a priorité sur votre connexion, donc `/login` ne la remplace pas. Renouvelez la clé dans la Claude Console, ou revenez à votre abonnement en exécutant `unset ANTHROPIC_API_KEY`, ou dans PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`.

1234* Si `/status` affiche uniquement votre connexion, exécutez `/login` une fois. Si la credential a été révoquée, une connexion fraîche la remplace.1240* Si `/status` n'affiche que votre connexion, exécutez `/login` une fois. Si l'identifiant a été révoqué, une nouvelle connexion le remplace.

1235* Si le même message revient pour le même compte de connexion, le compte ou l'organisation n'est plus actif. Vérifiez le compte et l'organisation que `/status` signale, et demandez à l'administrateur de votre organisation de restaurer l'accès.1241* Si le même message revient pour le même compte de connexion, le compte ou l'organisation n'est plus actif. Vérifiez le compte et l'organisation indiqués par `/status`, et demandez à l'administrateur de votre organisation de rétablir l'accès.

1236* Si [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) pointe vers une [passerelle LLM](/docs/fr/llm-gateway), le texte après `401` est le message de votre passerelle plutôt que celui d'Anthropic, et `/login` ne le change pas. Corrigez plutôt la credential que votre passerelle attend.1242* Si [`ANTHROPIC_BASE_URL`](/docs/fr/env-vars) pointe vers une [passerelle LLM](/docs/fr/llm-gateway), le texte après `401` est le message de votre passerelle et non celui d'Anthropic, et `/login` ne le modifie pas. Corrigez plutôt l'identifiant attendu par votre passerelle.

1237 1243 

1238<h3 id="login-expired">1244<h3 id="login-expired">

1239 Connexion expirée1245 Connexion expirée

1240</h3>1246</h3>

1241 1247 

1242Claude Code a essayé de renouveler votre connexion claude.ai enregistrée et le service OAuth a rejeté le jeton d'actualisation enregistré, donc Claude Code a effacé les credentials enregistrées. Après cela, chaque requête de modèle s'arrête localement avec ce message avant d'atteindre l'API, car seul `/login` peut créer de nouvelles credentials.1248Claude Code a tenté de renouveler votre connexion claude.ai enregistrée et le service OAuth a rejeté le jeton d'actualisation stocké ; Claude Code a donc effacé les identifiants enregistrés. Ensuite, chaque requête au modèle s'arrête localement avec ce message avant d'atteindre l'API, car seul `/login` peut créer de nouveaux identifiants.

1243 1249 

1244Avant v2.1.206, Claude Code envoyait quand même la requête de modèle avec quelle que soit la credential restante dans l'environnement, et chaque modèle échouait alors avec [Il y a un problème avec le modèle sélectionné](#theres-an-issue-with-the-selected-model) ou un 401 au lieu d'une invite de connexion.1250Avant la v2.1.206, Claude Code envoyait quand même la requête au modèle avec l'identifiant restant dans l'environnement, et chaque modèle échouait alors avec [Il y a un problème avec le modèle sélectionné](#theres-an-issue-with-the-selected-model) ou une erreur 401 au lieu d'une invitation à se connecter.

1245 1251 

1246```text theme={null}1252```text theme={null}

1247Login expired · Please run /login1253Login expired · Please run /login

1248```1254```

1249 1255 

1250En [mode non-interactif](/docs/fr/headless) (`-p`) et l'[Agent SDK](/docs/fr/agent-sdk/overview), le message se lit comme suit, et le code d'erreur structuré est `authentication_failed` :1256En [mode non interactif](/docs/fr/headless) (`-p`) et dans l'[Agent SDK](/docs/fr/agent-sdk/overview), le message se lit comme suit, et le code d'erreur structuré est `authentication_failed` :

1251 1257 

1252```text theme={null}1258```text theme={null}

1253Failed to authenticate: OAuth session expired and could not be refreshed1259Failed to authenticate: OAuth session expired and could not be refreshed

1254```1260```

1255 1261 

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

1257 1263 

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

1259 1265 

1260Vous pouvez vérifier cet état avant l'échec d'une requête : [`/status`](/docs/fr/commands) affiche une ligne `Login` lisant `Expired — log in again`, plus l'organisation et l'e-mail qu'il a enregistrés pour la connexion expirée. La ligne n'apparaît que quand la connexion enregistrée est votre credential active et ne peut plus être rafraîchie. Les sessions authentifiées d'une autre manière n'affichent pas la ligne, même si une connexion expirée reste enregistrée. Avant v2.1.210, `/status` ne donnait aucune indication dans cet état qu'une connexion avait jamais existé, car la credential effacée n'avait rien à signaler.1266Vous pouvez détecter cet état avant l'échec d'une requête : [`/status`](/docs/fr/commands) affiche une ligne `Login` indiquant `Expired — log in again`, ainsi que l'organisation et l'adresse e-mail enregistrées pour la connexion expirée. La ligne n'apparaît que lorsque la connexion enregistrée est votre identifiant actif et ne peut plus être actualisée. Les sessions authentifiées d'une autre manière n'affichent pas la ligne, même si une connexion expirée reste enregistrée. Avant la v2.1.210, `/status` n'indiquait pas dans cet état qu'une connexion avait jamais existé, car l'identifiant effacé ne lui laissait rien à signaler.

1261 1267 

1262**À faire :**1268**Que faire :**

1263 1269 

1264* Exécutez `/login` pour vous reconnecter. Réessayer sans vous connecter affiche le même message à chaque requête.1270* Exécutez `/login` pour vous reconnecter. Réessayer sans vous connecter affiche le même message à chaque requête.

1265* En mode non-interactif, exécutez `claude` dans le même environnement, complétez `/login`, puis réexécutez votre commande. Pour l'automatisation qui ne peut pas se connecter de manière interactive, authentifiez-vous avec `ANTHROPIC_API_KEY` ou [générez un jeton de longue durée avec `claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token).1271* Si vous vous connectez avec votre compte claude.ai dans une autre fenêtre Claude Code, consultez [Non connecté](#not-logged-in) pour savoir quand cette session commence d'elle-même à utiliser cette connexion.

1272* En mode non interactif, exécutez `claude` dans le même environnement, effectuez `/login`, puis relancez votre commande. Pour une automatisation qui ne peut pas se connecter de manière interactive, authentifiez-vous avec `ANTHROPIC_API_KEY` ou [générez un jeton de longue durée avec `claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token).

1266* Si la connexion continue d'échouer, consultez [Connexion et authentification](/docs/fr/troubleshoot-install#login-and-authentication)1273* Si la connexion continue d'échouer, consultez [Connexion et authentification](/docs/fr/troubleshoot-install#login-and-authentication)

1267 1274 

1268<h3 id="could-not-refresh-your-login">1275<h3 id="could-not-refresh-your-login">

1269 Impossible de rafraîchir votre connexion car un autre processus Claude Code la rafraîchit1276 Impossible d'actualiser votre connexion car un autre processus Claude Code est en train de l'actualiser

1270</h3>1277</h3>

1271 1278 

1272Ce message ne signifie pas que votre connexion a été rejetée. Votre connexion claude.ai enregistrée avait expiré et devait être renouvelée. Un autre processus Claude Code sur la même machine tenait le verrou de rafraîchissement partagé, ou s'est terminé et l'a laissé derrière, et le rafraîchissement n'a fait aucun progrès pendant que cette session attendait. Claude Code arrête la requête avant de l'envoyer :1279Ce message ne signifie pas que votre connexion a été rejetée. Votre connexion claude.ai enregistrée avait expiré et devait être renouvelée. Un autre processus Claude Code sur la même machine détenait le verrou d'actualisation partagé, ou s'est terminé en le laissant en place, et l'actualisation n'a pas progressé pendant que cette session attendait. Claude Code arrête la requête avant de l'envoyer :

1273 1280 

1274```text theme={null}1281```text theme={null}

1275Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login1282Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login

1276```1283```

1277 1284 

1278En [mode non-interactif](/docs/fr/headless) (`-p`) et l'[Agent SDK](/docs/fr/agent-sdk/overview), le message se lit comme suit, et le code d'erreur structuré est `server_error` :1285En [mode non interactif](/docs/fr/headless) (`-p`) et dans l'[Agent SDK](/docs/fr/agent-sdk/overview), le message se lit comme suit, et le code d'erreur structuré est `server_error` :

1279 1286 

1280```text theme={null}1287```text theme={null}

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


1283 1290 

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

1285 1292 

1286**À faire :**1293**Que faire :**

1287 1294 

1288* Réessayez dans une minute. Si un autre processus complète le rafraîchissement en premier, cette session utilise la connexion renouvelée.1295* Réessayez dans une minute. Si un autre processus termine l'actualisation en premier, cette session utilise la connexion renouvelée.

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

1290* S'il revient sans aucun autre processus Claude Code en cours d'exécution, exécutez `/login`. Se connecter à nouveau n'attend pas le verrou de rafraîchissement.1297* S'il revient alors qu'aucun autre processus Claude Code n'est en cours d'exécution, exécutez `/login`. Se reconnecter n'attend pas le verrou d'actualisation.

1291 1298 

1292<h3 id="couldnt-save-your-login">1299<h3 id="couldnt-save-your-login">

1293 Impossible d'enregistrer votre connexion1300 Impossible d'enregistrer votre connexion

1294</h3>1301</h3>

1295 1302 

1296Vous vous êtes connecté avec claude.ai, mais Claude Code n'a pas pu enregistrer la connexion dans son magasin de credentials, donc la connexion n'a pas été complétée. Sur macOS, cela peut se produire quand le trousseau de connexion se verrouille, par exemple au sommeil ou à l'inactivité, après que Claude Code ait déjà lu ou enregistré des credentials dedans pendant la même session.1303Vous vous êtes connecté avec claude.ai, mais Claude Code n'a pas pu enregistrer la connexion dans son stockage d'identifiants, la connexion n'a donc pas abouti. Sur macOS, cela peut se produire lorsque le trousseau de session se verrouille, par exemple en veille ou après une période d'inactivité, alors que Claude Code y a déjà lu ou enregistré des identifiants au cours de la même session.

1297 1304 

1298```text theme={null}1305```text theme={null}

1299Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.1306Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.

1300Couldn't save your login. Try logging in again.1307Couldn't save your login. Try logging in again.

1301```1308```

1302 1309 

1303La première forme apparaît sur macOS et la deuxième partout ailleurs. Une défaillance transitoire du magasin de credentials, comme un délai d'expiration ou un magasin illisible, produit le même message.1310La première forme apparaît sur macOS et la seconde partout ailleurs. Un échec temporaire du stockage des identifiants, comme un délai d'expiration ou un stockage illisible, produit le même message.

1304 1311 

1305**À faire :**1312**Que faire :**

1306 1313 

1307* Sur macOS, déverrouillez le trousseau de connexion, puis exécutez `/login` à nouveau1314* Sur macOS, déverrouillez le trousseau de session, puis exécutez à nouveau `/login`

1308* Sur d'autres plates-formes, exécutez `/login` à nouveau1315* Sur les autres plateformes, exécutez à nouveau `/login`

1309* Si la connexion ne s'enregistre toujours pas, consultez [Non connecté ou token expiré](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired) pour la commande de déverrouillage du trousseau et d'autres étapes de récupération du stockage des credentials1316* Si la connexion ne s'enregistre toujours pas, consultez [Non connecté ou jeton expiré](/docs/fr/troubleshoot-install#not-logged-in-or-token-expired) pour la commande de déverrouillage du trousseau et d'autres étapes de récupération du stockage des identifiants

1310 1317 

1311<h3 id="failed-to-start-oauth-callback-server">1318<h3 id="failed-to-start-oauth-callback-server">

1312 Impossible de démarrer le serveur de rappel OAuth1319 Échec du démarrage du serveur de callback OAuth

1313</h3>1320</h3>

1314 1321 

1315Quand `/login`, `claude auth login` ou `claude setup-token` vous connecte via le navigateur, Claude Code ouvre un port d'écoute sur `127.0.0.1` pour que votre navigateur puisse retourner le résultat de la connexion. Ce message signifie que Claude Code n'a pas pu ouvrir ce port, et la connexion s'arrête avant qu'une fenêtre de navigateur ou une URL de connexion n'apparaisse :1322Lorsque `/login`, `claude auth login` ou `claude setup-token` vous connecte via le navigateur, Claude Code ouvre un port d'écoute sur `127.0.0.1` afin que votre navigateur puisse lui renvoyer le résultat de la connexion. Ce message signifie que Claude Code n'a pas pu ouvrir ce port, et la connexion s'arrête avant qu'une fenêtre de navigateur ou une URL de connexion n'apparaisse :

1316 1323 

1317```text theme={null}1324```text theme={null}

1318Failed to start OAuth callback server: Failed to start server. Is port 0 in use?1325Failed to start OAuth callback server: Failed to start server. Is port 0 in use?

1319```1326```

1320 1327 

1321Si votre message se termine par `Is port 0 in use?`, la tentative d'écoute sur l'adresse de bouclage IPv4 `127.0.0.1` a échoué directement. Parce que l'échec se produit avant qu'une URL de connexion n'existe, le flux `Paste code here if prompted` n'est pas disponible comme solution de contournement.1328Si votre message se termine par `Is port 0 in use?`, la tentative d'écoute sur l'adresse de loopback IPv4 `127.0.0.1` a purement et simplement échoué. Comme l'échec se produit avant qu'une URL de connexion n'existe, le flux `Paste code here if prompted` n'est pas disponible comme solution de contournement.

1322 1329 

1323**À faire :**1330**Que faire :**

1324 1331 

1325* Pour vous connecter immédiatement sans l'écouteur local : si vous utilisez un abonnement claude.ai, exécutez [`claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token) sur une machine où la connexion fonctionne et définissez le jeton qu'il imprime comme `CLAUDE_CODE_OAUTH_TOKEN` sur cette machine. Sinon, définissez `ANTHROPIC_API_KEY` sur une clé de la [Console Claude](https://platform.claude.com/settings/keys). [Précédence d'authentification](/docs/fr/authentication#authentication-precedence) explique comment Claude Code choisit entre les credentials.1332* Pour vous connecter immédiatement sans l'écouteur local : si vous utilisez un abonnement claude.ai, exécutez [`claude setup-token`](/docs/fr/authentication#generate-a-long-lived-token) sur une machine où la connexion fonctionne et définissez le jeton qu'il affiche comme `CLAUDE_CODE_OAUTH_TOKEN` sur cette machine. Sinon, définissez `ANTHROPIC_API_KEY` avec une clé provenant de la [Claude Console](https://platform.claude.com/settings/keys). [Priorité d'authentification](/docs/fr/authentication#authentication-precedence) explique comment Claude Code choisit entre les identifiants.

1326* Pour utiliser la connexion du navigateur sur cette machine à la place, Claude Code doit pouvoir écouter sur `127.0.0.1`. S'il s'exécute à l'intérieur d'un bac à sable, vérifiez que la politique du bac à sable permet d'écouter sur les ports locaux, puis exécutez `/login` à nouveau. S'il devrait pouvoir et échoue toujours, exécutez `/feedback` pour que le rapport inclue les détails de votre environnement.1333* Pour utiliser plutôt la connexion par navigateur sur cette machine, Claude Code doit pouvoir écouter sur `127.0.0.1`. S'il s'exécute dans un sandbox, vérifiez que la politique du sandbox autorise l'écoute sur les ports locaux, puis exécutez à nouveau `/login`. S'il devrait en être capable et échoue toujours, exécutez `/feedback` afin que le rapport inclue les détails de votre environnement.

1327 1334 

1328<h3 id="claude-login-not-accepted">1335<h3 id="claude-login-not-accepted">

1329 Connexion Claude non acceptée1336 Connexion Claude non acceptée

1330</h3>1337</h3>

1331 1338 

1332Vous avez essayé de démarrer une [session cloud](/docs/fr/claude-code-on-the-web), et le serveur a refusé de la créer avec un 401 : il n'a pas accepté la connexion Claude que cette machine a envoyée, généralement parce que la connexion a expiré ou a été révoquée.1339Vous avez tenté de démarrer une [session cloud](/docs/fr/claude-code-on-the-web), et le serveur a refusé de la créer avec une erreur 401 : il n'a pas accepté la connexion Claude envoyée par cette machine, généralement parce que la connexion a expiré ou a été révoquée.

1333 1340 

1334La première partie de la ligne est la propre raison du serveur quand il en donne une. Sinon, la ligne se lit :1341La première partie de la ligne est la raison fournie par le serveur lui-même lorsqu'il en donne une. Sinon, la ligne indique :

1335 1342 

1336```text theme={null}1343```text theme={null}

1337Claude login not accepted · Run /login, then try again1344Claude login not accepted · Run /login, then try again

1338```1345```

1339 1346 

1340**À faire :**1347**Que faire :**

1341 1348 

1342* Exécutez `/login`, complétez la connexion, puis démarrez la session à nouveau1349* Exécutez `/login`, terminez la connexion, puis redémarrez la session

1343 1350 

1344<h3 id="artifacts-need-a-claude-ai-login">1351<h3 id="artifacts-need-a-claude-ai-login">

1345 Les artefacts ont besoin d'une connexion claude.ai1352 Les artefacts nécessitent une connexion claude.ai

1346</h3>1353</h3>

1347 1354 

1348Claude Code a refusé une publication ou une lecture d'[artefact](/docs/fr/artifacts) car la session n'a pas de connexion claude.ai qu'elle peut utiliser pour les artefacts.1355Claude Code a refusé une publication ou une lecture d'[artefact](/docs/fr/artifacts) parce que la session ne dispose d'aucune connexion claude.ai utilisable pour les artefacts.

1349 1356 

1350Chaque forme du message commence par les mêmes mots, suivis d'un remède qui dépend de la façon dont votre session s'authentifie. Sans credential concurrente, il se lit :1357Toutes les formes du message commencent par les mêmes mots, suivis d'une solution qui dépend de la manière dont votre session s'authentifie. En l'absence d'identifiant concurrent, il se lit :

1351 1358 

1352```text theme={null}1359```text theme={null}

1353Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.1360Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.

1354```1361```

1355 1362 

1356**À faire :**1363**Que faire :**

1357 1364 

1358* Exécutez `/login` et sélectionnez **Claude account with subscription**. L'option **Anthropic Console account** ne fournit pas de credentials claude.ai.1365* Exécutez `/login` et sélectionnez **Claude account with subscription**. L'option **Anthropic Console account** ne fournit pas d'identifiants claude.ai.

1359* Quand le message nomme une credential qui prend la priorité, comme `ANTHROPIC_API_KEY`, un paramètre `apiKeyHelper` ou une clé Console enregistrée par une `/login` précédente, supprimez-la de la façon que le message dit, puis exécutez `/login`1366* Lorsque le message nomme un identifiant prioritaire, comme `ANTHROPIC_API_KEY`, un paramètre `apiKeyHelper` ou une clé Console enregistrée par un `/login` précédent, supprimez-le de la manière indiquée par le message, puis exécutez `/login`

1360* Quand le message dit que cette session distante s'authentifie via la machine qui l'a lancée, connectez-vous à claude.ai sur cette machine, puis reconnectez la session1367* Lorsque le message indique que cette session distante s'authentifie via la machine qui l'a lancée, connectez-vous à claude.ai sur cette machine, puis reconnectez la session

1361* Quand le message dit que la credential est injectée par l'environnement hôte de la session, vous ne pouvez pas la modifier dans cette session ; démarrez une session qui est connectée à claude.ai1368* Lorsque le message indique que l'identifiant est injecté par l'environnement hôte de la session, vous ne pouvez pas le modifier dans cette session ; démarrez une session connectée à claude.ai

1362* Consultez [Disponibilité](/docs/fr/artifacts#availability) pour les autres exigences que les artefacts ont, comme le plan, le fournisseur de modèle et la politique d'organisation1369* Consultez [Disponibilité](/docs/fr/artifacts#availability) pour les autres exigences des artefacts, comme le forfait, le fournisseur de modèle et la politique de l'organisation

1363 1370 

1364<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1371<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1365 La politique de l'administrateur nécessite une connexion à la passerelle Cloud1372 La politique de l'administrateur exige une connexion à la passerelle Cloud

1366</h3>1373</h3>

1367 1374 

1368Un [paramètre géré](/docs/fr/managed-settings) d'un administrateur sur cette machine a défini [`forceLoginMethod`](/docs/fr/settings-reference#forceloginmethod) à `"gateway"` ou a défini [`forceLoginGatewayUrl`](/docs/fr/settings-reference#forcelogingatewayurl). À moins que vous sélectionniez un fournisseur cloud via une variable comme `CLAUDE_CODE_USE_BEDROCK`, Claude Code n'accepte alors que la connexion [passerelle d'applications Claude](/docs/fr/claude-apps-gateway). Vous voyez l'un de deux messages :1375Les [paramètres gérés](/docs/fr/managed-settings) d'un administrateur sur cette machine définissent [`forceLoginMethod`](/docs/fr/settings-reference#forceloginmethod) sur `"gateway"` ou définissent [`forceLoginGatewayUrl`](/docs/fr/settings-reference#forcelogingatewayurl). Sauf si vous sélectionnez un fournisseur cloud via une variable comme `CLAUDE_CODE_USE_BEDROCK`, Claude Code n'accepte alors que la connexion à la [passerelle des applications Claude](/docs/fr/claude-apps-gateway). Vous voyez l'un de ces deux messages :

1369 1376 

1370```text theme={null}1377```text theme={null}

1371Not signed in to the Cloud gateway — run /login.1378Not signed in to the Cloud gateway — run /login.

1372```1379```

1373 1380 

1374Les requêtes de modèle échouent avec ce message quand la session n'a pas de connexion à la passerelle, par exemple parce que vous n'avez pas exécuté `/login` depuis que la politique a atteint la machine.1381Les requêtes au modèle échouent avec ce message lorsque la session n'a aucune connexion à la passerelle, par exemple parce que vous n'avez pas exécuté `/login` depuis que la politique a atteint la machine.

1375 1382 

1376Si vous avez également une credential `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou `apiKeyHelper` configurée et que les paramètres gérés définissent `forceLoginMethod`, Claude Code se termine au démarrage à la place avec un message qui commence par :1383Si la machine détient également un identifiant émis par Anthropic et que les paramètres gérés définissent `forceLoginMethod` ou `forceLoginOrgUUID`, Claude Code se ferme plutôt au démarrage. Cet identifiant peut être une variable `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, un paramètre `apiKeyHelper`, ou une clé API enregistrée par une connexion Claude Console antérieure. Le message commence ainsi :

1377 1384 

1378```text theme={null}1385```text theme={null}

1379Administrator policy requires a Cloud gateway sign-in on this machine; the1386Administrator policy requires a Cloud gateway sign-in on this machine; the


1381ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.1388ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.

1382```1389```

1383 1390 

1384**À faire :**1391**Que faire :**

1385 1392 

1386* Exécutez `/login` et complétez la connexion sur l'écran **Cloud gateway**1393* Exécutez `/login` et terminez la connexion sur l'écran **Cloud gateway**

1387* Pour le message de démarrage, supprimez le paramètre `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou `apiKeyHelper` que vous avez configuré, puis démarrez `claude` et exécutez `/login`1394* Pour le message de démarrage, supprimez le paramètre `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou `apiKeyHelper` que vous avez configuré. Pour supprimer une clé API Console enregistrée, exécutez `claude auth logout`, qui supprime également une connexion claude.ai enregistrée. Si vous sélectionnez un fournisseur cloud avec `CLAUDE_CODE_USE_*`, la session démarre alors sans connexion. Sinon, lancez `claude` et exécutez `/login`

1388* Si vous pensez que la machine ne devrait pas nécessiter la passerelle, demandez à l'administrateur qui la gère de supprimer `forceLoginMethod` et `forceLoginGatewayUrl` de ses paramètres gérés1395* Si vous pensez que la machine ne devrait pas exiger la passerelle, demandez à l'administrateur qui la gère de retirer `forceLoginMethod` et `forceLoginGatewayUrl` de ses paramètres gérés

1389 1396 

1390Sur v2.1.265, une régression a également affiché le premier message dans certaines configurations de passerelle LLM et proxy qui s'authentifient avec une clé API, `apiKeyHelper` ou des en-têtes personnalisés, même sans exigence d'administrateur sur la machine. Mettez à jour vers v2.1.266 ou ultérieur. Vous n'avez pas besoin de modifier votre configuration.1397Sur la v2.1.265, une régression affichait également le premier message dans certaines configurations de passerelle LLM et de proxy qui s'authentifient avec une clé API, `apiKeyHelper` ou des en-têtes personnalisés, même sans exigence d'administrateur sur la machine. Passez à la v2.1.266 ou une version ultérieure. Vous n'avez pas besoin de modifier votre configuration.

1391 1398 

1392Avant v2.1.261, sur les machines qui définissent `forceLoginMethod` à `"gateway"`, Claude Code utilisait une connexion enregistrée restante au lieu d'échouer les requêtes de modèle, et signalait une credential d'environnement configurée avec `This machine's managed settings require a first-party login` au lieu du message de démarrage. Avant v2.1.265, une machine dont les paramètres gérés définissaient uniquement `forceLoginGatewayUrl` ne nécessitait pas la connexion à la passerelle, et Claude Code utilisait une credential restante là.1399Avant la v2.1.261, sur les machines qui définissaient `forceLoginMethod` sur `"gateway"`, Claude Code utilisait une connexion enregistrée résiduelle au lieu de faire échouer les requêtes au modèle, et signalait un identifiant d'environnement configuré avec `This machine's managed settings require a first-party login` au lieu du message de démarrage. Avant la v2.1.265, une machine dont les paramètres gérés ne définissaient que `forceLoginGatewayUrl` n'exigeait pas la connexion à la passerelle, et Claude Code y utilisait un identifiant résiduel.

1393 1400 

1394<h3 id="your-account-is-on-hold">1401<h3 id="your-account-is-on-hold">

1395 Votre compte est en attente1402 Votre compte est suspendu

1396</h3>1403</h3>

1397 1404 

1398Le compte Claude derrière votre connexion a été suspendu. Claude Code affiche le premier message quand il essaie de renouveler votre connexion enregistrée et apprend de la suspension, et le deuxième quand une connexion que vous complétez dans le navigateur la signale :1405Le compte Claude associé à votre connexion a été suspendu. Claude Code affiche le premier message lorsqu'il tente de renouveler votre connexion enregistrée et apprend la suspension, et le second lorsqu'une connexion que vous effectuez dans le navigateur la signale :

1399 1406 

1400```text theme={null}1407```text theme={null}

1401Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted1408Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted

1402Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted1409Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted

1403```1410```

1404 1411 

1405Se reconnecter avec le même compte n'efface pas le message, car la suspension est sur le compte plutôt que sur la connexion. En [mode non-interactif](/docs/fr/headless) (`-p`) et l'[Agent SDK](/docs/fr/agent-sdk/overview), le code d'erreur structuré est `account_on_hold`. Avant v2.1.235, Claude Code signalait un compte suspendu comme [Connexion expirée · Veuillez exécuter /login](#login-expired), dont les étapes de récupération ne peuvent pas effacer une suspension.1412Se reconnecter avec le même compte ne fait pas disparaître le message, car la suspension porte sur le compte et non sur la connexion. En [mode non interactif](/docs/fr/headless) (`-p`) et dans l'[Agent SDK](/docs/fr/agent-sdk/overview), le code d'erreur structuré est `account_on_hold`. Avant la v2.1.235, Claude Code signalait un compte suspendu sous la forme [Login expired · Please run /login](#login-expired), dont les étapes de récupération ne peuvent pas lever une suspension.

1406 1413 

1407**À faire :**1414**Que faire :**

1408 1415 

1409* Ouvrez le lien dans le message pour afficher les détails de la suspension ou l'appeler1416* Ouvrez le lien du message pour consulter les détails de la suspension ou faire appel

1410* Si vous avez un autre compte Claude ou une clé API qui n'est pas affectée par la suspension, vous pouvez continuer à travailler pendant que la suspension est résolue : exécutez `/login` avec ce compte, ou définissez la clé avec `ANTHROPIC_API_KEY`1417* Si vous disposez d'un autre compte Claude ou d'une clé API non concernés par la suspension, vous pouvez continuer à travailler pendant sa résolution : exécutez `/login` avec ce compte, ou définissez la clé avec `ANTHROPIC_API_KEY`

1411 1418 

1412<h3 id="anthropic-profile-login-expired">1419<h3 id="anthropic-profile-login-expired">

1413 Connexion au profil Anthropic expirée1420 Connexion au profil Anthropic expirée

1414</h3>1421</h3>

1415 1422 

1416Claude Code s'authentifie via un profil de credential Anthropic dont la credential de connexion enregistrée a expiré, et le profil ne contient pas de credential d'actualisation que Claude Code peut utiliser pour la renouveler. Claude Code arrête chaque requête localement sans réessayer, car un réessai lirait la même credential expirée.1423Claude Code s'authentifie via un profil d'identifiants Anthropic dont l'identifiant de connexion enregistré a expiré, et le profil ne contient aucun identifiant d'actualisation que Claude Code peut utiliser pour le renouveler. Claude Code arrête chaque requête localement sans réessayer, car une nouvelle tentative lirait le même identifiant expiré.

1417 1424 

1418```text theme={null}1425```text theme={null}

1419Anthropic profile login expired · Re-authenticate your Anthropic profile1426Anthropic profile login expired · Re-authenticate your Anthropic profile

1420Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile1427Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile

1421```1428```

1422 1429 

1423Cela n'apparaît que quand la credential active provient d'un profil de credential Anthropic, un que vous sélectionnez avec la variable d'environnement `ANTHROPIC_PROFILE`, que Claude Code découvre comme le profil actif dans votre répertoire de configuration Anthropic, ou que Claude Code a écrit quand vous [vous êtes connecté sans clé API](/docs/fr/authentication#sign-in-without-an-api-key). Les sessions qui s'authentifient avec une clé API, un jeton bearer comme `ANTHROPIC_AUTH_TOKEN` ou un fournisseur tiers ne voient jamais ce message.1430Ce message n'apparaît que lorsque l'identifiant actif provient d'un profil d'identifiants Anthropic : un profil que vous sélectionnez avec la variable d'environnement `ANTHROPIC_PROFILE`, que Claude Code découvre comme profil actif dans votre répertoire de configuration Anthropic, ou que Claude Code a écrit lorsque vous vous êtes [connecté sans clé API](/docs/fr/authentication#sign-in-without-an-api-key). Les sessions qui s'authentifient avec une clé API, un jeton bearer comme `ANTHROPIC_AUTH_TOKEN` ou un fournisseur tiers ne voient jamais ce message.

1424 1431 

1425Sur une machine qui [offre la connexion sans clé](/docs/fr/authentication#sign-in-without-an-api-key), exécutez `/login`, choisissez le compte Anthropic Console et reconnectez-vous pour renouveler un profil que la connexion Console sans clé ou la CLI Claude Platform `ant auth login` a écrit. Claude Code remplace la credential expirée dans ce profil. Pour un profil de fédération ou un créé par un autre outil, `/login` ne renouvelle pas la credential. La forme que vous voyez dépend de si vous avez sélectionné le profil ou si Claude Code l'a découvert :1432Sur une machine qui [propose la connexion sans clé](/docs/fr/authentication#sign-in-without-an-api-key), exécutez `/login`, choisissez le compte Anthropic Console et reconnectez-vous pour renouveler un profil écrit par la connexion Console sans clé ou par la commande `ant auth login` de la CLI Claude Platform. Claude Code remplace l'identifiant expiré dans ce profil. Pour un profil de fédération ou un profil créé par un autre outil, `/login` ne renouvelle pas l'identifiant. La forme que vous voyez dépend de si vous avez sélectionné le profil ou si Claude Code l'a découvert :

1426 1433 

1427* Quand vous définissez `ANTHROPIC_PROFILE` explicitement, le message se termine par `Re-authenticate your Anthropic profile`.1434* Lorsque vous définissez `ANTHROPIC_PROFILE` explicitement, le message se termine par `Re-authenticate your Anthropic profile`.

1428* Quand Claude Code a découvert le profil à partir de votre répertoire de configuration, le message offre `/login`, car Claude Code donne la priorité à une `/login` fonctionnelle sur le profil découvert et s'authentifie ensuite avec votre compte claude.ai ou Console à la place. Avant v2.1.234, Claude Code affichait la forme `Re-authenticate your Anthropic profile` dans ce cas aussi.1435* Lorsque Claude Code a découvert le profil dans votre répertoire de configuration, le message propose `/login`, car Claude Code donne à un `/login` fonctionnel la priorité sur le profil découvert et s'authentifie alors plutôt avec votre compte claude.ai ou Console. Avant la v2.1.234, Claude Code affichait aussi la forme `Re-authenticate your Anthropic profile` dans ce cas.

1429 1436 

1430**À faire :**1437**Que faire :**

1431 1438 

1432* Reconnectez-vous au profil, puis réessayez : sur une machine qui [offre la connexion sans clé](/docs/fr/authentication#sign-in-without-an-api-key), exécutez `/login` et choisissez le compte Anthropic Console pour un profil que la connexion Console sans clé ou la CLI Claude Platform `ant auth login` a écrit ; pour les autres profils, utilisez l'outil qui les a créés1439* Reconnectez-vous au profil, puis réessayez : sur une machine qui [propose la connexion sans clé](/docs/fr/authentication#sign-in-without-an-api-key), exécutez `/login` et choisissez le compte Anthropic Console pour un profil écrit par la connexion Console sans clé ou par la commande `ant auth login` de la CLI Claude Platform ; pour les autres profils, utilisez l'outil qui les a créés

1433* Si un administrateur a provisionné la credential du profil, demandez-lui d'en émettre une nouvelle1440* Si un administrateur a provisionné l'identifiant du profil, demandez-lui d'en émettre un nouveau

1434* Exécutez `/status` pour confirmer la source de credential active et le nom du profil1441* Exécutez `/status` pour confirmer la source d'identifiants active et le nom du profil

1435* Pour arrêter d'utiliser le profil, déconfigurez `ANTHROPIC_PROFILE` si vous l'avez défini, puis authentifiez-vous d'une autre manière, comme `/login` ou `ANTHROPIC_API_KEY`1442* Pour cesser d'utiliser le profil, supprimez `ANTHROPIC_PROFILE` si vous l'avez définie, puis authentifiez-vous d'une autre manière, par exemple avec `/login` ou `ANTHROPIC_API_KEY`

1436 1443 

1437<h3 id="oauth-scope-requirement">1444<h3 id="oauth-scope-requirement">

1438 Exigence de portée OAuth1445 Exigence de scope OAuth

1439</h3>1446</h3>

1440 1447 

1441Le jeton enregistré est antérieur à une portée de permission qu'une fonctionnalité plus récente nécessite :1448Le jeton stocké est antérieur à un scope de permission dont une fonctionnalité plus récente a besoin :

1442 1449 

1443```text theme={null}1450```text theme={null}

1444OAuth token does not meet scope requirement: user:profile1451OAuth token does not meet scope requirement: user:profile

1445```1452```

1446 1453 

1447**À faire :**1454**Que faire :**

1448 1455 

1449* Exécutez `/login` pour obtenir un nouveau jeton avec les portées actuelles. Vous n'avez pas besoin de vous déconnecter d'abord.1456* Exécutez `/login` pour obtenir un nouveau jeton avec les scopes actuels. Vous n'avez pas besoin de vous déconnecter au préalable.

1450 1457 

1451<h3 id="claude-ai-rejected-the-session-token">1458<h3 id="claude-ai-rejected-the-session-token">

1452 claude.ai a rejeté le jeton de session1459 claude.ai a rejeté le jeton de session

1453</h3>1460</h3>

1454 1461 

1455Une requête de [connecteur claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai) a échoué car claude.ai a rejeté le jeton de votre connexion Claude Code. Le jeton rejeté est votre connexion, pas l'autorisation propre du connecteur dans claude.ai, donc autoriser le connecteur à nouveau ne le résout pas. Dans `/mcp`, le connecteur s'affiche comme `session token rejected` et sa vue de détail se lit :1462Une requête de [connecteur claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai) a échoué parce que claude.ai a rejeté le jeton de votre connexion Claude Code. Le jeton rejeté est votre connexion, et non l'autorisation propre au connecteur dans claude.ai ; autoriser à nouveau le connecteur ne résout donc pas le problème. Dans `/mcp`, le connecteur apparaît comme `session token rejected` et sa vue détaillée indique :

1456 1463 

1457```text theme={null}1464```text theme={null}

1458claude.ai rejected the session token. Run /login, then reconnect.1465claude.ai rejected the session token. Run /login, then reconnect.

1459```1466```

1460 1467 

1461**À faire :**1468**Que faire :**

1462 1469 

1463* Exécutez `/login` pour vous reconnecter1470* Exécutez `/login` pour vous reconnecter

1464* Reconnectez le connecteur à partir de `/mcp`, ou exécutez `/mcp reconnect <server>`. La reconnexion avant de vous reconnecter laisse le connecteur dans le même état. L'option **Reconnect** du panneau `/mcp` signale `your claude.ai session token was rejected` ; la forme `/mcp reconnect <server>` tapée signale une reconnexion réussie même si le jeton est toujours rejeté.1471* Reconnectez le connecteur depuis `/mcp`, ou exécutez `/mcp reconnect <server>`. Se reconnecter avant de vous être reconnecté laisse le connecteur dans le même état. L'option **Reconnect** du panneau `/mcp` signale `your claude.ai session token was rejected` ; la forme saisie `/mcp reconnect <server>` signale une reconnexion réussie même si le jeton est toujours rejeté.

1465 1472 

1466Avant v2.1.222, Claude Code marquait le connecteur comme ayant besoin d'authentification à la place, ce qui vous pointait vers le flux d'autorisation du connecteur même si le compléter ne résolvait pas l'état.1473Avant la v2.1.222, Claude Code marquait plutôt le connecteur comme nécessitant une authentification, ce qui vous orientait vers le flux d'autorisation du connecteur même si le terminer ne résolvait pas l'état.

1467 1474 

1468<h3 id="mcp-server-needs-you-to-sign-in-again">1475<h3 id="mcp-server-needs-you-to-sign-in-again">

1469 Le serveur MCP a besoin que vous vous reconnectiez1476 Le serveur MCP a besoin que vous vous reconnectiez

1470</h3>1477</h3>

1471 1478 

1472Un [serveur MCP](/docs/fr/mcp) distant a rejeté la credential sur un appel d'outil en cours de session, généralement parce qu'une connexion ou un jeton a expiré ou parce que le jeton manque d'une permission que l'outil nécessite. L'appel d'outil échoue, et `/mcp` marque le serveur comme [ayant besoin d'authentification](/docs/fr/mcp#authenticate-with-remote-mcp-servers).1479Un [serveur MCP](/docs/fr/mcp) distant a rejeté l'identifiant lors d'un appel d'outil en cours de session, généralement parce qu'une connexion ou un jeton a expiré ou parce que le jeton ne dispose pas d'une permission dont l'outil a besoin. L'appel d'outil échoue, et `/mcp` marque le serveur comme [nécessitant une authentification](/docs/fr/mcp#authenticate-with-remote-mcp-servers).

1473 1480 

1474Pour un serveur auquel vous vous connectez à partir de Claude Code, y compris un connecteur claude.ai, la connexion a expiré ou a été révoquée :1481Pour un serveur auquel vous vous connectez depuis Claude Code, y compris un connecteur claude.ai, la connexion a expiré ou a été révoquée :

1475 1482 

1476```text theme={null}1483```text theme={null}

1477MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)1484MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)

1478```1485```

1479 1486 

1480Exécutez `/mcp`, sélectionnez le serveur et reconnectez-vous à partir de son menu.1487Exécutez `/mcp`, sélectionnez le serveur et reconnectez-vous depuis son menu.

1481 1488 

1482Pour un serveur configuré avec un script [`headersHelper`](/docs/fr/mcp#use-dynamic-headers-for-custom-authentication), Claude Code a déjà réexécuté le helper et réessayé l'appel une fois avant d'afficher ceci :1489Pour un serveur configuré avec un script [`headersHelper`](/docs/fr/mcp#use-dynamic-headers-for-custom-authentication), Claude Code a déjà réexécuté le helper et réessayé l'appel une fois avant d'afficher ceci :

1483 1490 


1485MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)1492MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)

1486```1493```

1487 1494 

1488Vérifiez que le helper retourne une credential que le serveur accepte, puis reconnectez à partir de `/mcp`, qui réexécute le helper.1495Vérifiez que le helper renvoie un identifiant accepté par le serveur, puis reconnectez-vous depuis `/mcp`, qui réexécute le helper.

1489 1496 

1490Pour un serveur avec un en-tête `Authorization` statique dans sa configuration :1497Pour un serveur avec un en-tête `Authorization` statique dans sa configuration :

1491 1498 


1493MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)1500MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)

1494```1501```

1495 1502 

1496Mettez à jour la valeur d'en-tête où le serveur est configuré, puis reconnectez à partir de `/mcp`.1503Mettez à jour la valeur de l'en-tête là où le serveur est configuré, puis reconnectez-vous depuis `/mcp`.

1497 1504 

1498Avant v2.1.273, les cas de connexion expirée, `headersHelper` et d'en-tête `Authorization` affichaient tous `MCP server "<name>" requires re-authorization (token expired)`.1505Avant la v2.1.273, les cas de connexion expirée, de `headersHelper` et d'en-tête `Authorization` affichaient tous `MCP server "<name>" requires re-authorization (token expired)`.

1499 1506 

1500Un serveur peut également refuser un appel d'outil avec HTTP 403 `insufficient_scope` pour vous demander d'autoriser une portée, parfois une que votre jeton liste déjà. Le message nomme cette portée :1507Un serveur peut également refuser un appel d'outil avec une erreur HTTP 403 `insufficient_scope` pour vous demander d'autoriser un scope, parfois un scope que votre jeton mentionne déjà. Le message nomme ce scope :

1501 1508 

1502```text theme={null}1509```text theme={null}

1503MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate1510MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate

1504```1511```

1505 1512 

1506Exécutez `/mcp`, sélectionnez le serveur et authentifiez-vous à nouveau à partir de son menu.1513Exécutez `/mcp`, sélectionnez le serveur et authentifiez-vous à nouveau depuis son menu.

1507 1514 

1508Quand la configuration du serveur ne définit ni [`oauth.scopes`](/docs/fr/mcp#restrict-oauth-scopes) ni [`authServerMetadataUrl`](/docs/fr/mcp#override-oauth-metadata-discovery), Claude Code demande la portée que le serveur a nommée. Avec l'un ou l'autre paramètre, Claude Code demande plutôt les portées de ce paramètre. Si vous avez épinglé `oauth.scopes`, ajoutez la portée manquante à cette liste avant de vous authentifier à nouveau.1515Lorsque la configuration du serveur ne définit ni [`oauth.scopes`](/docs/fr/mcp#restrict-oauth-scopes) ni [`authServerMetadataUrl`](/docs/fr/mcp#override-oauth-metadata-discovery), Claude Code demande le scope nommé par le serveur. Avec l'un ou l'autre de ces paramètres, Claude Code demande plutôt les scopes de ce paramètre. Si vous avez figé `oauth.scopes`, ajoutez le scope manquant à cette liste avant de vous authentifier à nouveau.

1509 1516 

1510Avant v2.1.274, ce cas affichait le message `needs you to sign in again`, et avant v2.1.273 il affichait `requires re-authorization (token expired)` comme les autres cas.1517Avant la v2.1.274, ce cas affichait le message `needs you to sign in again`, et avant la v2.1.273 il affichait `requires re-authorization (token expired)` comme les autres cas.

1511 1518 

1512<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">1519<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">

1513 URL du serveur MCP manquante ou non valide1520 L'URL du serveur MCP est manquante ou n'est pas une URL valide

1514</h3>1521</h3>

1515 1522 

1516Claude Code a refusé de démarrer une connexion OAuth pour un serveur MCP distant car l'`url` configurée du serveur ne s'analyse pas comme une URL. À moins que Claude Code ait un problème de configuration plus spécifique à signaler pour le serveur, l'exécution de [`claude mcp login <name>`](/docs/fr/mcp#authenticate-from-the-command-line) dans votre shell imprime le refus comme :1523Claude Code a refusé de démarrer une connexion OAuth pour un serveur MCP distant parce que l'`url` configurée du serveur ne peut pas être analysée comme une URL. Sauf si Claude Code a un problème de configuration plus spécifique à signaler pour le serveur, exécuter [`claude mcp login <name>`](/docs/fr/mcp#authenticate-from-the-command-line) dans votre shell affiche le refus ainsi :

1517 1524 

1518```text theme={null}1525```text theme={null}

1519Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.1526Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.

1520```1527```

1521 1528 

1522**À faire :**1529**Que faire :**

1523 1530 

1524* Définissez l'entrée `url` au point de terminaison réel du serveur où le serveur est configuré, ou définissez la variable d'environnement que sa référence [`${VAR}`](/docs/fr/mcp#environment-variable-expansion-in-mcp-json) nomme, puis exécutez la connexion à nouveau.1531* Définissez l'`url` de l'entrée sur l'endpoint réel du serveur là où le serveur est configuré, ou définissez la variable d'environnement nommée par sa [référence `${VAR}`](/docs/fr/mcp#environment-variable-expansion-in-mcp-json), puis relancez la connexion.

1525 1532 

1526<h3 id="issuer-mismatch-in-authorization-response">1533<h3 id="issuer-mismatch-in-authorization-response">

1527 Incompatibilité d'émetteur dans la réponse d'autorisation1534 Incohérence de l'émetteur dans la réponse d'autorisation

1528</h3>1535</h3>

1529 1536 

1530Pendant une [connexion OAuth MCP](/docs/fr/mcp#authenticate-with-remote-mcp-servers), le serveur d'autorisation a redirigé vers Claude Code avec un paramètre `iss` qui ne nomme pas l'émetteur que Claude Code attendait des métadonnées OAuth du serveur. Un mauvais émetteur à cette étape est à quoi ressemble une attaque de mélange de serveur d'autorisation, donc Claude Code échoue la connexion au lieu d'échanger le code d'autorisation. Claude Code affiche l'erreur dans le menu du serveur `/mcp` après la connexion du navigateur :1537Lors d'une [connexion OAuth MCP](/docs/fr/mcp#authenticate-with-remote-mcp-servers), le serveur d'autorisation a redirigé vers Claude Code avec un paramètre `iss` qui ne correspond pas à l'émetteur attendu par Claude Code d'après les métadonnées OAuth du serveur. Un émetteur incorrect à cette étape est la signature d'une attaque par confusion de serveur d'autorisation (mix-up attack) ; Claude Code fait donc échouer la connexion au lieu d'échanger le code d'autorisation. Claude Code affiche l'erreur dans le menu du serveur `/mcp` après la connexion dans le navigateur :

1531 1538 

1532```text theme={null}1539```text theme={null}

1533Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"1540Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"

1534```1541```

1535 1542 

1536`expected` est l'émetteur des métadonnées OAuth du serveur, et `received` est la valeur `iss` que la redirection portait. Une connexion dont la redirection ne porte pas de paramètre `iss` réussit la vérification, à moins que les métadonnées du serveur définissent `authorization_response_iss_parameter_supported`, auquel cas Claude Code échoue la connexion.1543`expected` est l'émetteur issu des métadonnées OAuth du serveur, et `received` est la valeur `iss` transmise par la redirection. Une connexion dont la redirection ne transmet aucun paramètre `iss` passe la vérification, sauf si les métadonnées du serveur définissent `authorization_response_iss_parameter_supported`, auquel cas Claude Code fait échouer la connexion.

1537 1544 

1538**À faire :**1545**Que faire :**

1539 1546 

1540* Réessayez la connexion à partir de `/mcp`1547* Réessayez la connexion depuis `/mcp`

1541* Si l'erreur se répète, signalez-la à l'opérateur du serveur. La correction est côté serveur : le serveur d'autorisation doit retourner le même émetteur dans le paramètre `iss` qu'il annonce dans ses métadonnées1548* Si l'erreur se répète, signalez-la à l'opérateur du serveur. La correction se fait côté serveur : le serveur d'autorisation doit renvoyer dans le paramètre `iss` le même émetteur que celui qu'il annonce dans ses métadonnées

1542* Pour vous connecter pendant que le serveur est en cours de correction, démarrez Claude Code avec [`MCP_SDK_GENERATION=v1`](/docs/fr/env-vars), dont le [runtime](/docs/fr/mcp#mcp-client-runtimes) n'exécute pas cette vérification. Cela supprime une protection contre les attaques de mélange, donc préférez la correction côté serveur1549* Pour vous connecter pendant la correction du serveur, démarrez Claude Code avec [`MCP_SDK_GENERATION=v1`](/docs/fr/env-vars), dont le [runtime](/docs/fr/mcp#mcp-client-runtimes) n'effectue pas cette vérification. Cela supprime une protection contre les attaques par confusion ; privilégiez donc la correction côté serveur

1543 1550 

1544Avant v2.1.232, Claude Code utilisait le runtime v2 uniquement dans un déploiement progressif ou quand vous définissiez `MCP_SDK_GENERATION=v2`.1551Avant la v2.1.232, Claude Code n'utilisait le runtime v2 que dans le cadre d'un déploiement progressif ou lorsque vous définissiez `MCP_SDK_GENERATION=v2`.

1545 1552 

1546<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">1553<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">

1547 Refus d'envoyer des credentials à un point de terminaison de jeton non-https1554 Refus d'envoyer des identifiants à un endpoint de jeton non https

1548</h3>1555</h3>

1549 1556 

1550Sur le [runtime v2](/docs/fr/mcp#mcp-client-runtimes), Claude Code envoie une requête de jeton [OAuth MCP](/docs/fr/mcp#authenticate-with-remote-mcp-servers) uniquement à un point de terminaison de jeton servi via HTTPS ou à `localhost`, `127.0.0.1` ou `::1`. Ce message signifie que le point de terminaison de jeton du serveur n'est ni l'un ni l'autre, donc Claude Code s'est arrêté avant d'envoyer la requête. Cela se produit après la connexion du navigateur, donc l'étape du navigateur réussit d'abord, et à nouveau chaque fois que Claude Code rafraîchit le jeton du serveur.1557Sur le [runtime v2](/docs/fr/mcp#mcp-client-runtimes), Claude Code n'envoie une requête de jeton [OAuth MCP](/docs/fr/mcp#authenticate-with-remote-mcp-servers) qu'à un endpoint de jeton servi en HTTPS ou sur `localhost`, `127.0.0.1` ou `::1`. Ce message signifie que l'endpoint de jeton du serveur ne répond à aucune de ces conditions ; Claude Code s'est donc arrêté avant d'envoyer la requête. Cela se produit après la connexion dans le navigateur, de sorte que l'étape du navigateur réussit d'abord, puis à nouveau chaque fois que Claude Code actualise le jeton du serveur.

1551 1558 

1552Sous sa forme complète, le message provient du SDK MCP et cite le point de terminaison de jeton qu'il a refusé. Dans le journal de débogage, il suit `Error during auth completion:` pour une connexion ou `Token refresh failed:` pour un rafraîchissement. Dans votre shell, `claude mcp login <name>` l'imprime après `Couldn't complete authentication for "<name>":`, et dans une session, `/mcp` l'affiche sous le menu du serveur :1559Dans sa forme complète, le message provient du SDK MCP et cite l'endpoint de jeton refusé. Dans le log de débogage, il suit `Error during auth completion:` pour une connexion ou `Token refresh failed:` pour une actualisation. Dans votre shell, `claude mcp login <name>` l'affiche après `Couldn't complete authentication for "<name>":`, et dans une session, `/mcp` l'affiche sous le menu du serveur :

1553 1560 

1554```text theme={null}1561```text theme={null}

1555Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).1562Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).

1556```1563```

1557 1564 

1558Claude Code traite une URL de serveur qui a une chaîne de requête ou un segment de chemin long et aléatoire comme possiblement secret. Pour un tel serveur, il rédige les erreurs de connexion que le SDK MCP lève avant de les afficher ou de les enregistrer. Cette erreur se lit alors comme un nom court qui peut changer entre les versions, comme `io`, suivi de `from the MCP SDK for` et l'URL du serveur réduite. Les autres erreurs du SDK MCP prennent la même forme là. Le message réduit ne peut être cette erreur que quand le point de terminaison de jeton du serveur est `http://` simple à une adresse autre que `localhost`, `127.0.0.1` ou `::1`.1565Claude Code traite une URL de serveur comportant une chaîne de requête ou un long segment de chemin d'apparence aléatoire comme potentiellement secrète. Pour un tel serveur, il masque les erreurs de connexion levées par le SDK MCP avant de les afficher ou de les journaliser. Cette erreur se présente alors sous la forme d'un nom court susceptible de changer d'une version à l'autre, comme `io`, suivi de `from the MCP SDK for` et de l'URL masquée du serveur. Les autres erreurs du SDK MCP y prennent la même forme. Le message masqué ne peut correspondre à cette erreur que lorsque l'endpoint de jeton du serveur est en `http://` simple à une adresse autre que `localhost`, `127.0.0.1` ou `::1`.

1559 1566 

1560**À faire :**1567**Que faire :**

1561 1568 

1562* Servez ce point de terminaison de jeton via HTTPS, par exemple en mettant le serveur derrière un proxy inverse ou un tunnel qui termine TLS et en configurant le serveur pour annoncer l'adresse `https://`1569* Servez cet endpoint de jeton en HTTPS, par exemple en plaçant le serveur derrière un reverse proxy ou un tunnel qui termine TLS et en configurant le serveur pour annoncer l'adresse `https://`

1563* Pour vous connecter sans modifier le serveur, démarrez Claude Code avec [`MCP_SDK_GENERATION=v1`](/docs/fr/env-vars), dont le [runtime](/docs/fr/mcp#mcp-client-runtimes) n'applique pas cette règle et envoie la requête de jeton via `http://` simple. Ce choix dure jusqu'à ce que vous quittiez et s'applique à chaque serveur. Le runtime v1 ignore également la [vérification d'émetteur](#issuer-mismatch-in-authorization-response), donc préférez servir le point de terminaison via HTTPS1570* Pour vous connecter sans modifier le serveur, démarrez Claude Code avec [`MCP_SDK_GENERATION=v1`](/docs/fr/env-vars), dont le [runtime](/docs/fr/mcp#mcp-client-runtimes) n'applique pas cette règle et envoie la requête de jeton en HTTP simple. Ce choix dure jusqu'à votre sortie et s'applique à tous les serveurs. Le runtime v1 ignore également la [vérification de l'émetteur](#issuer-mismatch-in-authorization-response) ; privilégiez donc le service de l'endpoint en HTTPS

1564 1571 

1565<h3 id="aws-credentials-expired-or-invalid">1572<h3 id="aws-credentials-expired-or-invalid">

1566 Les credentials AWS ont expiré ou sont invalides1573 Identifiants AWS expirés ou invalides

1567</h3>1574</h3>

1568 1575 

1569Votre jeton de session AWS a expiré ou a été rejeté. Ce message apparaît sur un 401 de [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws) ou du [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint), c'est ainsi que ces fournisseurs signalent un jeton de sécurité expiré.1576Votre jeton de session AWS a expiré ou a été rejeté. Ce message apparaît lors d'une erreur 401 de [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) ou de l'[endpoint Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint), qui est la manière dont ces fournisseurs signalent un jeton de sécurité expiré.

1570 1577 

1571L'indice d'action au milieu varie selon votre configuration. La partie stable est le début `AWS credentials expired or invalid` :1578L'indication d'action au milieu varie selon votre configuration. La partie stable est le début `AWS credentials expired or invalid` :

1572 1579 

1573```text theme={null}1580```text theme={null}

1574AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...1581AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...

1575```1582```

1576 1583 

1577Avant v2.1.273, ce message n'apparaissait que quand `awsAuthRefresh` était configuré.1584Avant la v2.1.273, ce message n'apparaissait que lorsque `awsAuthRefresh` était configuré.

1578 1585 

1579**À faire :**1586**Que faire :**

1580 1587 

1581* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur1588* Si l'indication précise que les identifiants sont gérés par cet environnement, l'application qui a lancé Claude Code détient l'identifiant et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur

1582* Si [`awsAuthRefresh`](/docs/fr/amazon-bedrock#advanced-credential-configuration) est défini, exécutez la commande nommée dans le message, comme `aws sso login --profile myprofile`, dans un autre terminal et complétez la connexion du navigateur, puis réessayez. Sinon, rafraîchissez la credential AWS que vous utilisez vous-même : votre connexion SSO, les clés d'accès, la clé API ou le jeton proxy1589* Si [`awsAuthRefresh`](/docs/fr/amazon-bedrock#advanced-credential-configuration) est défini, exécutez la commande nommée dans le message, comme `aws sso login --profile myprofile`, dans un autre terminal et terminez la connexion dans le navigateur, puis réessayez. Sinon, actualisez vous-même l'identifiant AWS que vous utilisez : votre connexion SSO, vos clés d'accès, votre clé API ou votre jeton de proxy

1583* Avec `awsAuthRefresh` défini dans une session interactive, vous pouvez à la place exécuter `/login`, choisir **3rd-party platform**, puis sélectionner **Claude Platform on AWS · refresh credentials** sous **Using 3rd-party platforms** pour exécuter la même commande sans redémarrer Claude Code. Consultez [Configurer les credentials AWS](/docs/fr/claude-platform-on-aws#1-configure-aws-credentials)1590* Avec `awsAuthRefresh` défini dans une session interactive, vous pouvez plutôt exécuter `/login`, choisir **3rd-party platform**, puis sélectionner **Claude Platform on AWS · refresh credentials** sous **Using 3rd-party platforms** pour exécuter la même commande sans redémarrer Claude Code. Consultez [Configurer les identifiants AWS](/docs/fr/claude-platform-on-aws#1-configure-aws-credentials)

1584* Si l'erreur se répète après la réussite de la commande de rafraîchissement, confirmez que l'identité est valide en dehors de Claude Code avec `aws sts get-caller-identity` dans le même shell et profil1591* Si l'erreur se répète après la réussite de la commande d'actualisation, confirmez que l'identité est valide en dehors de Claude Code avec `aws sts get-caller-identity` dans le même shell et le même profil

1585 1592 

1586<h3 id="aws-authentication-failed">1593<h3 id="aws-authentication-failed">

1587 L'authentification AWS a échoué1594 Échec de l'authentification AWS

1588</h3>1595</h3>

1589 1596 

1590Votre fournisseur AWS a retourné un 403, ou [Amazon Bedrock](/docs/fr/amazon-bedrock) a retourné un 401.1597Votre fournisseur AWS a renvoyé une erreur 403, ou [Amazon Bedrock](/docs/fr/amazon-bedrock) a renvoyé une erreur 401.

1591 1598 

1592Amazon Bedrock signale un jeton de sécurité expiré comme un 403, mais un 403 est aussi comment il signale un refus d'autorisation, comme un `AccessDeniedException` d'une permission IAM manquante. Claude Code ne peut pas distinguer ces deux causes.1599Amazon Bedrock signale un jeton de sécurité expiré par une erreur 403, mais une erreur 403 est aussi la manière dont il signale un refus d'autorisation, comme une `AccessDeniedException` due à une permission IAM manquante. Claude Code ne peut pas distinguer ces deux causes.

1593 1600 

1594Un 401 d'Amazon Bedrock atterrit aussi ici plutôt que sous [Les credentials AWS ont expiré ou sont invalides](#aws-credentials-expired-or-invalid), car Amazon Bedrock ne signale pas un jeton expiré comme un 401. Un 401 de ce point de terminaison provient généralement de quelque chose d'autre dans le chemin de la requête, comme un proxy d'entreprise.1601Une erreur 401 d'Amazon Bedrock aboutit également ici plutôt que sous [Identifiants AWS expirés ou invalides](#aws-credentials-expired-or-invalid), car Amazon Bedrock ne signale pas un jeton expiré par une erreur 401. Une erreur 401 provenant de cet endpoint vient généralement d'un autre élément du chemin de la requête, comme un proxy d'entreprise.

1595 1602 

1596Un rafraîchissement de credential corrige un jeton expiré et ne peut pas corriger les autres causes, donc le message offre les deux :1603Une actualisation des identifiants corrige un jeton expiré mais ne peut pas corriger les autres causes ; le message propose donc les deux :

1597 1604 

1598```text theme={null}1605```text theme={null}

1599AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...1606AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...

1600```1607```

1601 1608 

1602L'indice d'action au milieu varie selon votre configuration. La partie stable est le début `AWS authentication failed`.1609L'indication d'action au milieu varie selon votre configuration. La partie stable est le début `AWS authentication failed`.

1603 1610 

1604Quand le 403 est la réponse d'Amazon Bedrock que vous n'avez pas accès au modèle avec l'ID de modèle spécifié, l'indice vous dit plutôt d'activer le modèle pour votre compte et région dans la console Amazon Bedrock.1611Lorsque l'erreur 403 est la réponse d'Amazon Bedrock indiquant que vous n'avez pas accès au modèle avec l'ID de modèle spécifié, l'indication vous demande plutôt d'activer le modèle pour votre compte et votre région dans la console Amazon Bedrock.

1605 1612 

1606Avant v2.1.273, ce message n'apparaissait que quand `awsAuthRefresh` était configuré.1613Avant la v2.1.273, ce message n'apparaissait que lorsque `awsAuthRefresh` était configuré.

1607 1614 

1608**À faire :**1615**Que faire :**

1609 1616 

1610* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur1617* Si l'indication précise que les identifiants sont gérés par cet environnement, l'application qui a lancé Claude Code détient l'identifiant et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur

1611* Rafraîchissez vos credentials AWS au cas où une credential expirée serait la cause : exécutez la commande [`awsAuthRefresh`](/docs/fr/amazon-bedrock#advanced-credential-configuration) nommée dans le message quand une est définie, ou rafraîchissez votre connexion SSO, les clés d'accès, la clé API ou le jeton proxy vous-même1618* Actualisez vos identifiants AWS au cas où un identifiant expiré serait la cause : exécutez la commande [`awsAuthRefresh`](/docs/fr/amazon-bedrock#advanced-credential-configuration) nommée dans le message lorsqu'elle est définie, ou actualisez vous-même votre connexion SSO, vos clés d'accès, votre clé API ou votre jeton de proxy

1612* Si vos credentials sont actuelles, confirmez que les permissions IAM dans [Configuration IAM](/docs/fr/amazon-bedrock#iam-configuration) sont attachées à l'identité que vous utilisez et que le modèle sélectionné est activé pour votre compte et région1619* Si vos identifiants sont à jour, vérifiez que les permissions IAM décrites dans [Configuration IAM](/docs/fr/amazon-bedrock#iam-configuration) sont attachées à l'identité que vous utilisez et que le modèle sélectionné est activé pour votre compte et votre région

1613* Exécutez `aws sts get-caller-identity` pour confirmer quelle identité vos requêtes utilisent1620* Exécutez `aws sts get-caller-identity` pour confirmer quelle identité vos requêtes utilisent

1614 1621 

1615<h3 id="google-cloud-credentials-expired-or-invalid">1622<h3 id="google-cloud-credentials-expired-or-invalid">

1616 Les credentials Google Cloud ont expiré ou sont invalides1623 Identifiants Google Cloud expirés ou invalides

1617</h3>1624</h3>

1618 1625 

1619Vos credentials Google Cloud pour [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai) ont expiré ou ont été rejetées : la requête a retourné un 401, c'est ainsi qu'Agent Platform signale l'expiration des credentials.1626Vos identifiants Google Cloud pour [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai) ont expiré ou ont été rejetés : la requête a renvoyé une erreur 401, qui est la manière dont Agent Platform signale l'expiration des identifiants.

1620 1627 

1621L'indice d'action au milieu varie selon votre configuration. La partie stable est le début `Google Cloud credentials expired or invalid` :1628L'indication d'action au milieu varie selon votre configuration. La partie stable est le début `Google Cloud credentials expired or invalid` :

1622 1629 

1623```text theme={null}1630```text theme={null}

1624Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...1631Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...

1625```1632```

1626 1633 

1627**À faire :**1634**Que faire :**

1628 1635 

1629* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur1636* Si l'indication précise que les identifiants sont gérés par cet environnement, l'application qui a lancé Claude Code détient l'identifiant et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur

1630* Si vous vous authentifiez avec les credentials par défaut de l'application, exécutez la commande [`gcpAuthRefresh`](/docs/fr/google-vertex-ai#advanced-credential-configuration) nommée dans le message, ou `gcloud auth application-default login`, et complétez la connexion, puis réessayez1637* Si vous vous authentifiez avec les identifiants par défaut de l'application, exécutez la commande [`gcpAuthRefresh`](/docs/fr/google-vertex-ai#advanced-credential-configuration) nommée dans le message, ou `gcloud auth application-default login`, et terminez la connexion, puis réessayez

1631* Si vous acheminez via une [passerelle LLM](/docs/fr/llm-gateway) avec `CLAUDE_CODE_SKIP_VERTEX_AUTH` défini, rafraîchissez le jeton de la passerelle dans `ANTHROPIC_AUTH_TOKEN` ou `ANTHROPIC_CUSTOM_HEADERS`, puis réessayez1638* Si vous passez par une [passerelle LLM](/docs/fr/llm-gateway) avec `CLAUDE_CODE_SKIP_VERTEX_AUTH` défini, actualisez le jeton de la passerelle dans `ANTHROPIC_AUTH_TOKEN` ou `ANTHROPIC_CUSTOM_HEADERS`, puis réessayez

1632* Si vous vous authentifiez avec un fichier de clé de compte de service, confirmez que `GOOGLE_APPLICATION_CREDENTIALS` pointe vers une clé valide. Consultez [Configurer les credentials GCP](/docs/fr/google-vertex-ai#3-configure-gcp-credentials)1639* Si vous vous authentifiez avec un fichier de clé de compte de service, vérifiez que `GOOGLE_APPLICATION_CREDENTIALS` pointe vers une clé valide. Consultez [Configurer les identifiants GCP](/docs/fr/google-vertex-ai#3-configure-gcp-credentials)

1633* Si l'erreur se répète après un rafraîchissement, confirmez que l'identité fonctionne en dehors de Claude Code avec `gcloud auth application-default print-access-token` dans le même shell1640* Si l'erreur se répète après une actualisation, confirmez que l'identité fonctionne en dehors de Claude Code avec `gcloud auth application-default print-access-token` dans le même shell

1634 1641 

1635Avant v2.1.273, un 401 d'Agent Platform affichait le message générique `Please run /login` ou `Failed to authenticate` à la place, qui ne peut pas rafraîchir les credentials Google Cloud.1642Avant la v2.1.273, une erreur 401 d'Agent Platform affichait plutôt le message générique `Please run /login` ou `Failed to authenticate`, qui ne permet pas d'actualiser les identifiants Google Cloud.

1636 1643 

1637<h3 id="google-cloud-authentication-failed">1644<h3 id="google-cloud-authentication-failed">

1638 L'authentification Google Cloud a échoué1645 Échec de l'authentification Google Cloud

1639</h3>1646</h3>

1640 1647 

1641[Agent Platform de Google Cloud](/docs/fr/google-vertex-ai) a retourné un 403, qu'il utilise pour les refus d'autorisation plutôt que les credentials expirées. Généralement, l'identité avec laquelle vous vous authentifiez manque d'une permission IAM, ou le modèle n'est pas activé pour votre projet.1648[Agent Platform de Google Cloud](/docs/fr/google-vertex-ai) a renvoyé une erreur 403, qu'il utilise pour les refus d'autorisation plutôt que pour les identifiants expirés. Généralement, il manque une permission IAM à l'identité avec laquelle vous vous authentifiez, ou le modèle n'est pas activé pour votre projet.

1642 1649 

1643L'indice d'action au milieu varie selon votre configuration. La partie stable est le début `Google Cloud authentication failed` :1650L'indication d'action au milieu varie selon votre configuration. La partie stable est le début `Google Cloud authentication failed` :

1644 1651 

1645```text theme={null}1652```text theme={null}

1646Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...1653Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...

1647```1654```

1648 1655 

1649**À faire :**1656**Que faire :**

1650 1657 

1651* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur1658* Si l'indication précise que les identifiants sont gérés par cet environnement, l'application qui a lancé Claude Code détient l'identifiant et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur

1652* Confirmez que les rôles dans [Configuration IAM](/docs/fr/google-vertex-ai#iam-configuration) sont accordés à l'identité avec laquelle vous vous authentifiez1659* Vérifiez que les rôles décrits dans [Configuration IAM](/docs/fr/google-vertex-ai#iam-configuration) sont accordés à l'identité avec laquelle vous vous authentifiez

1653* Confirmez que le modèle est activé pour votre projet. Consultez [Demander l'accès au modèle](/docs/fr/google-vertex-ai#2-request-model-access)1660* Vérifiez que le modèle est activé pour votre projet. Consultez [Demander l'accès au modèle](/docs/fr/google-vertex-ai#2-request-model-access)

1654 1661 

1655Avant v2.1.273, un 403 d'Agent Platform affichait le message générique `Please run /login` ou `Failed to authenticate` à la place, qui ne peut pas rafraîchir les credentials Google Cloud.1662Avant la v2.1.273, une erreur 403 d'Agent Platform affichait plutôt le message générique `Please run /login` ou `Failed to authenticate`, qui ne permet pas d'actualiser les identifiants Google Cloud.

1656 1663 

1657<h3 id="microsoft-foundry-authentication-failed">1664<h3 id="microsoft-foundry-authentication-failed">

1658 L'authentification Microsoft Foundry a échoué1665 Échec de l'authentification Microsoft Foundry

1659</h3>1666</h3>

1660 1667 

1661[Microsoft Foundry](/docs/fr/microsoft-foundry) a retourné un 401 ou 403 : la credential Azure sur la requête a été rejetée, ou l'identité derrière n'a pas accès à la ressource Foundry. `/login` ne peut pas émettre de credentials Azure. L'indice d'action au milieu varie selon votre configuration. La partie stable est le début `Microsoft Foundry authentication failed` :1668[Microsoft Foundry](/docs/fr/microsoft-foundry) a renvoyé une erreur 401 ou 403 : l'identifiant Azure de la requête a été rejeté, ou l'identité qui lui est associée n'a pas accès à la ressource Foundry. `/login` ne peut pas générer d'identifiants Azure. L'indication d'action au milieu varie selon votre configuration. La partie stable est le préfixe `Microsoft Foundry authentication failed` :

1662 1669 

1663```text theme={null}1670```text theme={null}

1664Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...1671Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...

1665```1672```

1666 1673 

1667**À faire :**1674**Que faire :**

1668 1675 

1669* Si l'indice dit que les credentials sont gérées par cet environnement, l'application qui a lancé Claude Code possède la credential et les autres étapes ici ne s'appliquent pas : réessayez, ou contactez votre administrateur1676* Si l'indication précise que les identifiants sont gérés par cet environnement, c'est l'application qui a lancé Claude Code qui détient l'identifiant et les autres étapes ci-dessous ne s'appliquent pas : réessayez, ou contactez votre administrateur

1670* Rafraîchissez la credential que vous avez configurée dans [Configurer les credentials Azure](/docs/fr/microsoft-foundry#2-configure-azure-credentials) : faites tourner `ANTHROPIC_FOUNDRY_API_KEY`, émettez un `ANTHROPIC_FOUNDRY_AUTH_TOKEN` frais, ou exécutez `az login` pour que la chaîne de credential Microsoft Entra par défaut puisse se reconnecter1677* Actualisez l'identifiant que vous avez configuré dans [Configurer les identifiants Azure](/docs/fr/microsoft-foundry#2-configure-azure-credentials) : renouvelez `ANTHROPIC_FOUNDRY_API_KEY`, générez un nouveau `ANTHROPIC_FOUNDRY_AUTH_TOKEN`, ou exécutez `az login` pour que la chaîne d'identifiants Microsoft Entra par défaut puisse se reconnecter

1671* Si la credential est actuelle, confirmez que l'identité a accès à la ressource Foundry. Consultez [Configuration Azure RBAC](/docs/fr/microsoft-foundry#azure-rbac-configuration)1678* Si l'identifiant est à jour, vérifiez que l'identité a accès à la ressource Foundry. Consultez [Configuration Azure RBAC](/docs/fr/microsoft-foundry#azure-rbac-configuration)

1672 1679 

1673Avant v2.1.273, un 401 ou 403 de Microsoft Foundry affichait le message générique `Please run /login` ou `Failed to authenticate` à la place, qui ne peut pas rafraîchir les credentials Azure.1680Avant la v2.1.273, une erreur 401 ou 403 de Microsoft Foundry affichait à la place le message générique `Please run /login` ou `Failed to authenticate`, qui ne permet pas d'actualiser les identifiants Azure.

1674 1681 

1675<h3 id="could-not-load-aws-or-google-cloud-credentials">1682<h3 id="could-not-load-aws-or-google-cloud-credentials">

1676 Impossible de charger les credentials AWS ou Google Cloud1683 Impossible de charger les identifiants AWS ou Google Cloud

1677</h3>1684</h3>

1678 1685 

1679Claude Code n'a pas pu obtenir de credentials utilisables à partir de la chaîne de fournisseur de credentials AWS ou de vos credentials par défaut de l'application Google sur la machine sur laquelle il s'exécute, donc aucune requête n'a atteint votre fournisseur cloud. Claude Code efface ses credentials en cache et réessaie deux fois avant d'afficher ce message. Le détail après le `·` nomme la cause spécifique, comme une session SSO expirée, des credentials par défaut manquantes signalées comme `Could not load the default credentials`, ou une connexion révoquée signalée comme `invalid_grant` :1686Claude Code n'a pas pu obtenir d'identifiants utilisables depuis la chaîne de fournisseurs d'identifiants AWS ou depuis vos identifiants par défaut de l'application Google sur la machine où il s'exécute, si bien qu'aucune requête n'a atteint votre fournisseur cloud. Claude Code vide ses identifiants en cache et réessaie deux fois avant d'afficher ce message. Le détail après le `·` indique la cause précise, comme une session SSO expirée, des identifiants par défaut de l'application manquants signalés par `Could not load the default credentials`, ou une connexion révoquée signalée par `invalid_grant` :

1680 1687 

1681```text theme={null}1688```text theme={null}

1682API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.1689API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.

1683API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.1690API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.

1684```1691```

1685 1692 

1686En [mode non-interactif](/docs/fr/headless) avec `-p` et dans l'[Agent SDK](/docs/fr/agent-sdk/overview), le code d'erreur structuré est `cloud_credential_error`. Avant v2.1.267, le message affichait uniquement le texte de détail après `API Error:`, et le code structuré était `server_error` ou `unknown`.1693En [mode non interactif](/docs/fr/headless) avec `-p` et dans l'[Agent SDK](/docs/fr/agent-sdk/overview), le code d'erreur structuré est `cloud_credential_error`. Avant la v2.1.267, le message n'affichait que le texte de détail après `API Error:`, et le code structuré était `server_error` ou `unknown`.

1687 1694 

1688**À faire :**1695**Que faire :**

1689 1696 

1690* Exécutez la commande de connexion de votre fournisseur, comme `aws sso login --profile myprofile` ou `gcloud auth application-default login`, puis réessayez. [Les credentials Bedrock, Agent Platform ou Foundry ne se chargent pas](/docs/fr/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) montre comment confirmer les credentials en dehors de Claude Code1697* Exécutez la commande de connexion de votre fournisseur, comme `aws sso login --profile myprofile` ou `gcloud auth application-default login`, puis réessayez. [Les identifiants Bedrock, Agent Platform ou Foundry ne se chargent pas](/docs/fr/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) explique comment vérifier les identifiants en dehors de Claude Code

1691* Si le détail se lit `AWS default-chain credential resolve timed out`, la chaîne a bloqué plutôt que d'échouer, donc suivez [Le délai d'expiration de la résolution des credentials de la chaîne par défaut AWS](#aws-default-chain-credential-resolve-timed-out) à la place1698* Si le détail indique `AWS default-chain credential resolve timed out`, la chaîne s'est bloquée plutôt que d'échouer : suivez plutôt [La résolution des identifiants par la chaîne AWS par défaut a expiré](#aws-default-chain-credential-resolve-timed-out)

1692 1699 

1693<h3 id="aws-default-chain-credential-resolve-timed-out">1700<h3 id="aws-default-chain-credential-resolve-timed-out">

1694 Le délai d'expiration de la résolution des credentials de la chaîne par défaut AWS1701 La résolution des identifiants par la chaîne AWS par défaut a expiré

1695</h3>1702</h3>

1696 1703 

1697La chaîne de fournisseur de credentials par défaut AWS n'a pas produit de credentials dans les 60 secondes, donc Claude Code a arrêté la résolution et a échoué la requête. Ce délai d'expiration est une cause de [Impossible de charger les credentials AWS ou Google Cloud](#could-not-load-aws-or-google-cloud-credentials). L'échec est la résolution locale des credentials : la requête n'a jamais atteint [Amazon Bedrock](/docs/fr/amazon-bedrock), [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws) ou le [point de terminaison Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint). Claude Code efface son [cache de credentials](/docs/fr/amazon-bedrock#credential-caching-and-resolution-timeout) et réessaie avant que cette erreur ne fasse surface, donc au moment où vous la voyez, la chaîne s'est bloquée sur des tentatives répétées.1704La chaîne de fournisseurs d'identifiants AWS par défaut n'a pas produit d'identifiants dans un délai de 60 secondes, si bien que Claude Code a interrompu la résolution et fait échouer la requête. Ce délai d'expiration est l'une des causes de [Impossible de charger les identifiants AWS ou Google Cloud](#could-not-load-aws-or-google-cloud-credentials). L'échec concerne la résolution locale des identifiants : la requête n'a jamais atteint [Amazon Bedrock](/docs/fr/amazon-bedrock), [Claude Platform on AWS](/docs/fr/claude-platform-on-aws) ou l'[endpoint Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint). Claude Code vide son [cache d'identifiants](/docs/fr/amazon-bedrock#credential-caching-and-resolution-timeout) et réessaie avant que cette erreur n'apparaisse ; lorsque vous la voyez, la chaîne s'est donc bloquée lors de plusieurs tentatives.

1698 1705 

1699```text theme={null}1706```text theme={null}

1700API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.1707API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.

1701```1708```

1702 1709 

1703Les causes courantes sont une commande `credential_process` dans votre profil AWS qui attend une entrée qu'elle ne peut pas recevoir, et un conteneur ou une VM dont le service de métadonnées d'instance (IMDS) ne répond jamais à la sonde de la chaîne.1710Les causes courantes sont une commande `credential_process` dans votre profil AWS qui attend une saisie qu'elle ne peut pas recevoir, et un conteneur ou une VM dont le service de métadonnées d'instance (IMDS) ne répond jamais à la sonde de la chaîne.

1704 1711 

1705Avant v2.1.267, le message se lisait `API Error: AWS default-chain credential resolve timed out`.1712Avant la v2.1.267, le message était `API Error: AWS default-chain credential resolve timed out`.

1706Avant v2.1.207, une chaîne bloquée laissait la requête attendre indéfiniment au lieu d'échouer.1713Avant la v2.1.207, une chaîne bloquée laissait la requête en attente indéfiniment au lieu de la faire échouer.

1707 1714 

1708**À faire :**1715**Que faire :**

1709 1716 

1710* Exécutez `aws sts get-caller-identity` dans le même shell avec le même `AWS_PROFILE`. S'il bloque aussi, corrigez le profil ; une commande `credential_process` qui demande de manière interactive est une cause courante.1717* Exécutez `aws sts get-caller-identity` dans le même shell avec le même `AWS_PROFILE`. Si la commande se bloque également, corrigez le profil ; une commande `credential_process` qui demande une saisie interactive en est une cause fréquente.

1711* Complétez l'étape de connexion avant de démarrer Claude Code, par exemple `aws sso login --profile myprofile`, pour que la chaîne se résolve à partir du cache SSO local au lieu d'attendre un flux de navigateur1718* Effectuez l'étape de connexion avant de démarrer Claude Code, par exemple `aws sso login --profile myprofile`

1712* Si votre chaîne exécute une connexion interactive qui a légitimement besoin de plus de 60 secondes, comme SSO avec MFA via un wrapper comme `aws-vault`, augmentez la limite en millisecondes avec [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/fr/env-vars)1719* Si votre chaîne exécute une connexion interactive qui nécessite légitimement plus de 60 secondes, comme un SSO avec MFA via un wrapper tel que `aws-vault`, augmentez la limite en millisecondes avec [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/fr/env-vars)

1713 1720 

1714<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">1721<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">

1715 La vérification de la configuration de Bedrock a expiré en attendant AWS1722 La vérification de la configuration Bedrock a expiré en attendant AWS

1716</h3>1723</h3>

1717 1724 

1718Un appel à AWS pendant l'[assistant de configuration de Bedrock](/docs/fr/amazon-bedrock#sign-in-with-bedrock), comme la recherche de credentials ou la vérification d'identité, n'a pas terminé dans la limite de 60 secondes. L'assistant arrête d'attendre et échoue l'étape de vérification :1725Un appel à AWS pendant la vérification des identifiants de l'[assistant de configuration Bedrock](/docs/fr/amazon-bedrock#sign-in-with-bedrock), comme la recherche des identifiants ou la vérification d'identité, ne s'est pas terminé dans la limite de 60 secondes. L'assistant cesse d'attendre et fait échouer l'étape de vérification :

1719 1726 

1720```text theme={null}1727```text theme={null}

1721Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.1728Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.


1723 1730 

1724Le nombre reflète votre limite : 60 secondes par défaut, ou la valeur que vous avez définie dans [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/fr/env-vars).1731Le nombre reflète votre limite : 60 secondes par défaut, ou la valeur que vous avez définie dans [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/fr/env-vars).

1725 1732 

1726Les causes courantes sont un réseau ou un proxy qui bloque les requêtes à AWS, y compris le rafraîchissement du jeton SSO, et un helper de credential qui attend toujours une entrée que vous ne pouvez pas voir. Augmentez la limite uniquement quand l'helper a légitimement besoin de plus de temps.1733Les causes courantes sont un réseau ou un proxy qui bloque les requêtes vers AWS, y compris l'actualisation du jeton SSO, et un assistant d'identifiants qui attend encore une saisie que vous ne voyez pas. N'augmentez la limite que si l'assistant a légitimement besoin de plus de temps.

1727 1734 

1728Une seule requête bloquée à AWS peut aussi échouer sur son propre délai d'expiration par requête, qui affiche un message plus court sur la même étape :1735Une seule requête bloquée vers AWS peut également échouer sur son propre délai d'expiration par requête, ce qui affiche un message plus court à la même étape :

1729 1736 

1730```text theme={null}1737```text theme={null}

1731A request to AWS timed out. Check your network and proxy settings, then try again.1738A request to AWS timed out. Check your network and proxy settings, then try again.

1732```1739```

1733 1740 

1734Quand les mêmes délais d'expiration se produisent sur l'étape d'épinglage de modèle, l'assistant marque un modèle comme `unreachable` au lieu d'afficher l'un ou l'autre message.1741Lorsque les mêmes délais d'expiration surviennent à l'étape d'épinglage du modèle, l'assistant marque un modèle comme `unreachable` au lieu d'afficher l'un de ces messages.

1735 1742 

1736**À faire :**1743**Que faire :**

1737 1744 

1738* Exécutez `aws sts get-caller-identity` dans le même shell. S'il bloque aussi, le blocage est en dehors de Claude Code, dans votre réseau, votre proxy ou l'helper de credential dans votre profil AWS ; corrigez cela d'abord.1745* Exécutez `aws sts get-caller-identity` dans le même shell. Si la commande se bloque également, le blocage se situe en dehors de Claude Code, dans votre réseau, votre proxy ou l'assistant d'identifiants de votre profil AWS ; corrigez d'abord ce point.

1739* Complétez toute connexion interactive avant d'ouvrir l'assistant, par exemple `aws sso login --profile myprofile`1746* Effectuez toute connexion interactive avant d'ouvrir l'assistant, par exemple `aws sso login --profile myprofile`

1740* Si un helper de credential dans votre profil AWS a légitimement besoin de plus de 60 secondes pour vous demander, augmentez la limite en millisecondes avec [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/fr/env-vars)1747* Si un assistant d'identifiants de votre profil AWS a légitimement besoin de plus de 60 secondes pour vous demander une saisie, augmentez la limite en millisecondes avec [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/fr/env-vars)

1741 1748 

1742<h3 id="cloud-gateway-session-expired">1749<h3 id="cloud-gateway-session-expired">

1743 La session de la passerelle cloud a expiré1750 Session de passerelle cloud expirée

1744</h3>1751</h3>

1745 1752 

1746Vous vous êtes connecté via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), et la session de la passerelle enregistrée sur cette machine a expiré et n'a pas pu être renouvelée, ou la passerelle ne l'accepte plus, par exemple après que le [secret JWT de la passerelle soit remplacé](/docs/fr/claude-apps-gateway-deploy#jwt-secret-rotation). Si vous voyez cette ligne quand vous démarrez `claude` de manière interactive, la session s'est ouverte déconnectée de la passerelle :1753Vous vous êtes connecté via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), et la session de passerelle enregistrée sur cette machine a expiré et n'a pas pu être renouvelée, ou la passerelle ne l'accepte plus, par exemple après le [remplacement du secret JWT](/docs/fr/claude-apps-gateway-deploy#jwt-secret-rotation) de la passerelle. Si cette ligne s'affiche lorsque vous démarrez `claude` en mode interactif, la session s'est ouverte déconnectée de la passerelle :

1747 1754 

1748```text theme={null}1755```text theme={null}

1749Cloud gateway session expired — run /login to reconnect.1756Cloud gateway session expired — run /login to reconnect.

1750```1757```

1751 1758 

1752La même ligne peut apparaître en cours de session quand la credential de la passerelle expire et Claude Code ne peut pas la renouveler.1759La même ligne peut apparaître en cours de session lorsque l'identifiant de la passerelle expire et que Claude Code ne peut pas le renouveler.

1753 1760 

1754Dans une exécution [non-interactive](/docs/fr/headless), une session en arrière-plan ou autre sans surveillance, ou une sous-commande `claude` autre que `claude auth`, Claude Code se termine avec ce message à la place quand la passerelle n'accepte plus la session :1761Lors d'une exécution [non interactive](/docs/fr/headless), d'une session en arrière-plan ou d'une autre session sans surveillance, ou d'une sous-commande `claude` autre que `claude auth`, Claude Code quitte avec ce message lorsque la passerelle n'accepte plus la session :

1755 1762 

1756```text theme={null}1763```text theme={null}

1757Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.1764Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.

1758```1765```

1759 1766 

1760**À faire :**1767**Que faire :**

1761 1768 

1762* Exécutez `/login` dans la session et complétez la connexion du navigateur1769* Exécutez `/login` dans la session et terminez la connexion dans le navigateur

1763* Pour un lancement non-interactif, démarrez `claude` dans le même environnement, exécutez `/login`, puis réexécutez votre commande1770* Pour un lancement non interactif, démarrez `claude` dans le même environnement, exécutez `/login`, puis relancez votre commande

1764 1771 

1765<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">1772<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1766 La connexion a expiré en attendant que vous continuiez1773 La connexion a expiré en attendant que vous continuiez

1767</h3>1774</h3>

1768 1775 

1769Pendant une [connexion à la passerelle d'applications Claude](/docs/fr/claude-apps-gateway), la passerelle a nommé le compte qui s'est connecté, et Claude Code vous a demandé de le confirmer avant d'enregistrer la credential. Vous avez laissé la confirmation ouverte au-delà de l'expiration de la connexion elle-même, et la passerelle n'a émis aucun jeton d'actualisation qui pourrait la renouveler, donc Claude Code n'a rien enregistré quand vous avez continué :1776Lors d'une connexion via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), la passerelle a indiqué le compte qui s'est connecté, et Claude Code vous a demandé de le confirmer avant d'enregistrer l'identifiant. Vous avez laissé la confirmation ouverte au-delà de l'expiration de la connexion elle-même, et la passerelle n'a émis aucun jeton d'actualisation permettant de la renouveler ; Claude Code n'a donc rien enregistré lorsque vous avez continué :

1770 1777 

1771```text theme={null}1778```text theme={null}

1772Sign-in timed out while waiting for you to continue. Try again.1779Sign-in timed out while waiting for you to continue. Try again.

1773```1780```

1774 1781 

1775**À faire :**1782**Que faire :**

1776 1783 

1777* Exécutez `/login` à nouveau et confirmez le compte avant que la connexion n'expire1784* Exécutez à nouveau `/login` et confirmez le compte avant l'expiration de la connexion

1778 1785 

1779<h3 id="gateway-refused-the-request">1786<h3 id="gateway-refused-the-request">

1780 La passerelle a refusé la requête1787 La passerelle a refusé la requête

1781</h3>1788</h3>

1782 1789 

1783Vous êtes connecté via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), et une requête a retourné un 403 : la passerelle, ou l'amont derrière, l'a refusée. Se reconnecter ne change pas un refus, donc le message pointe vers votre administrateur de passerelle :1790Vous êtes connecté via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway), et une requête a renvoyé une erreur 403 : la passerelle, ou le service en amont derrière elle, l'a refusée. Se reconnecter ne change rien à un refus ; le message vous oriente donc vers l'administrateur de votre passerelle :

1784 1791 

1785```text theme={null}1792```text theme={null}

1786Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...1793Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...

1787```1794```

1788 1795 

1789**À faire :**1796**Que faire :**

1790 1797 

1791* Demandez à votre administrateur de passerelle de rechercher la requête. La queue `API Error:` porte le refus que la passerelle a retourné1798* Demandez à l'administrateur de votre passerelle d'examiner la requête. La fin du message `API Error:` contient le refus renvoyé par la passerelle

1792* Pour les administrateurs : une [règle de contrôle d'accès](/docs/fr/claude-apps-gateway-config#http-tuning) sur la passerelle retourne un 403 que le [journal d'audit](/docs/fr/claude-apps-gateway-deploy#logs) enregistre avec sa raison, et un refus d'autorisation en amont passe par [Messages d'erreur en amont](/docs/fr/claude-apps-gateway-config#upstream-error-messages)1799* Pour les administrateurs : une [règle de contrôle d'accès](/docs/fr/claude-apps-gateway-config#http-tuning) sur la passerelle renvoie une erreur 403 que le [log d'audit](/docs/fr/claude-apps-gateway-deploy#logs) consigne avec sa raison, et un refus d'autorisation en amont est transmis conformément à [Messages d'erreur en amont](/docs/fr/claude-apps-gateway-config#upstream-error-messages)

1793 1800 

1794Avant v2.1.273, un 403 sur une session de passerelle affichait le message générique `Please run /login` ou `Failed to authenticate` à la place, et se reconnecter ne changeait pas le refus.1801Avant la v2.1.273, une erreur 403 sur une session de passerelle affichait à la place le message générique `Please run /login` ou `Failed to authenticate`, et se reconnecter ne levait pas le refus.

1795 1802 

1796<h2 id="network-and-connection-errors">1803<h2 id="network-and-connection-errors">

1797 Erreurs de réseau et de connexion1804 Erreurs de réseau et de connexion


2852 Erreurs de ligne de commande2859 Erreurs de ligne de commande

2853</h2>2860</h2>

2854 2861 

2855Ces erreurs proviennent de la ligne de commande `claude` et de ses sous-commandes, d'un nom de commande que vous soumettez à l'invite, et de commandes telles que `/security-review` qui rassemblent le contexte en exécutant des commandes shell avant l'exécution de leur invite. Elles proviennent également de `/tui`, qui relance l'interface de ligne de commande.2862Ces erreurs proviennent de la ligne de commande `claude` et de ses sous-commandes, d'un nom de commande que vous soumettez à l'invite, et de commandes telles que `/security-review` qui rassemblent du contexte en exécutant des commandes shell avant l'exécution de leur prompt. Elles proviennent aussi de `/tui`, qui relance la CLI.

2856 2863 

2857<h3 id="conflict-between-bg-and-print">2864<h3 id="conflict-between-bg-and-print">

2858 Conflit entre `--bg` et `--print`2865 Conflit entre `--bg` et `--print`

2859</h3>2866</h3>

2860 2867 

2861Ce message nécessite Claude Code v2.1.198 ou version ultérieure. Vous avez combiné `--bg` avec `-p` ou `--print` dans la même invocation `claude`. `--bg` démarre une [session en arrière-plan](/docs/fr/agent-view#from-your-shell) à laquelle vous vous connectez ultérieurement avec `claude agents`, tandis que `--print` s'exécute [de manière non interactive](/docs/fr/headless) et ne démarre jamais la session interactive à laquelle `claude agents` se connecte. Avant la v2.1.198, cette combinaison créait silencieusement une tâche en arrière-plan qui ne pouvait jamais être attachée.2868Ce message nécessite Claude Code v2.1.198 ou une version ultérieure. Vous avez combiné `--bg` avec `-p` ou `--print` dans la même invocation de `claude`. `--bg` démarre une [session en arrière-plan](/docs/fr/agent-view#from-your-shell) à laquelle vous vous rattachez ensuite avec `claude agents`, tandis que `--print` s'exécute en [mode non interactif](/docs/fr/headless) et ne démarre jamais la session interactive à laquelle `claude agents` se rattache. Avant la v2.1.198, cette combinaison créait silencieusement une tâche en arrière-plan à laquelle il était impossible de se rattacher.

2862 2869 

2863```text theme={null}2870```text theme={null}

2864--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.2871--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.


2866 2873 

2867**Que faire :**2874**Que faire :**

2868 2875 

2869* Supprimez `-p` ou `--print`. `--bg` prend l'invite comme argument positionnel, donc `claude --bg "<task>"` est la commande complète. Voir [Dispatcher de nouveaux agents depuis votre shell](/docs/fr/agent-view#from-your-shell).2876* Supprimez `-p` ou `--print`. `--bg` prend le prompt comme argument positionnel, donc `claude --bg "<task>"` constitue la commande complète. Consultez [Lancer de nouveaux agents depuis votre shell](/docs/fr/agent-view#from-your-shell).

2870* Pour exécuter l'invite de manière non interactive et imprimer le résultat au lieu de créer une session en arrière-plan, supprimez `--bg` et exécutez `claude -p "<task>"`2877* Pour exécuter le prompt en mode non interactif et afficher le résultat au lieu de créer une session en arrière-plan, supprimez `--bg` et exécutez `claude -p "<task>"`

2878 

2879<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

2880 Conflit entre un flag de prompt système et sa forme fichier

2881</h3>

2882 

2883Vous avez passé [`--append-subagent-system-prompt`](/docs/fr/cli-reference#cli-flags) en même temps que `--append-subagent-system-prompt-file` dans une même invocation de `claude`, donc `claude` se termine avec le code 1 au lieu de démarrer la session :

2884 

2885```text theme={null}

2886Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.

2887```

2888 

2889Avant la v2.1.283, `claude` se terminait de la même manière lorsque vous passiez `--system-prompt` avec `--system-prompt-file`, ou `--append-system-prompt` avec `--append-system-prompt-file`, car ces paires entraient en conflit au lieu de [se combiner](/docs/fr/cli-reference#system-prompt-flags). Sur ces versions, le message nomme la paire que vous avez combinée.

2890 

2891**Que faire :**

2892 

2893* Conservez une seule forme du flag et supprimez l'autre. Pour combiner un fichier de prompt fixe avec du texte propre à chaque exécution, fusionnez le texte dans le fichier avant le lancement au lieu de passer les deux flags

2871 2894 

2872<h3 id="invalid-agents-configuration">2895<h3 id="invalid-agents-configuration">

2873 Configuration `--agents` invalide2896 Configuration `--agents` invalide

2874</h3>2897</h3>

2875 2898 

2876La valeur que vous avez transmise à `--agents` est invalide, donc `claude` se termine avec le code 1 au lieu de démarrer la session. Lorsque vous transmettez `--safe-mode` ou définissez [`CLAUDE_CODE_SAFE_MODE`](/docs/fr/env-vars#variables), Claude Code ignore `--agents` entièrement. Avec `--resume` ou `--continue`, une valeur JSON en ligne n'est pas vérifiée et la session démarre ; une valeur lue à partir d'un fichier est vérifiée à chaque lancement. Avant la v2.1.242, Claude Code démarrait la session de toute façon.2899La valeur que vous avez passée à `--agents` est invalide, donc `claude` se termine avec le code 1 au lieu de démarrer la session. Lorsque vous passez `--safe-mode` ou définissez [`CLAUDE_CODE_SAFE_MODE`](/docs/fr/env-vars#variables), Claude Code ignore entièrement `--agents`. Avec `--resume` ou `--continue`, une valeur JSON inline n'est pas vérifiée et la session démarre ; une valeur lue depuis un fichier est vérifiée à chaque lancement. Avant la v2.1.242, Claude Code démarrait quand même la session.

2877 2900 

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

2879Error: Invalid --agents configuration:2902Error: Invalid --agents configuration:

2880<what failed>2903<what failed>

2881```2904```

2882 2905 

2883Ce qui suit la première ligne dépend de la façon dont la valeur a échoué. Claude Code exécute ces vérifications dans l'ordre et s'arrête à la première qui échoue. Si votre valeur a deux types de problème, vous ne voyez le second qu'après avoir corrigé le premier :2906Ce qui suit la première ligne dépend de la manière dont la valeur a échoué. Claude Code exécute ces vérifications dans l'ordre et s'arrête à la première qui échoue. Si votre valeur présente deux types de problèmes, vous ne voyez le second qu'après avoir corrigé le premier :

2884 2907 

28851. Lorsque la valeur commence par `{` mais ne s'analyse pas en JSON, ou le contenu d'un fichier `--agents` ne s'analyse pas, Claude Code imprime une ligne `invalid JSON:` portant le message du parseur JSON lui-même29081. Lorsque la valeur commence par `{` mais ne s'analyse pas comme du JSON, ou que le contenu d'un fichier `--agents` ne s'analyse pas, Claude Code affiche une ligne `invalid JSON:` contenant le message propre au parseur JSON

28862. Lorsqu'elle s'analyse mais qu'une définition d'agent ne correspond pas au schéma pour les [sous-agents définis par CLI](/docs/fr/sub-agents#choose-the-subagent-scope), Claude Code imprime une ligne par problème29092. Lorsqu'elle s'analyse mais qu'une définition d'agent ne correspond pas au schéma des [sous-agents définis par la CLI](/docs/fr/sub-agents#choose-the-subagent-scope), Claude Code affiche une ligne par problème

28873. Lorsqu'un nom d'agent commence par `-`, Claude Code imprime `<name>: agent names must not start with '-'`29103. Lorsqu'un nom d'agent commence par `-`, Claude Code affiche `<name>: agent names must not start with '-'`

2888 2911 

2889Lorsqu'il y a plus de 20 lignes de problème, Claude Code imprime les 20 premières et remplace le reste par `…and N more`.2912Lorsqu'il y a plus de 20 lignes de problèmes, Claude Code affiche les 20 premières et remplace le reste par `…and N more`.

2890 2913 

2891Avec `--print`, `--agents` accepte également [le chemin vers un fichier JSON](/docs/fr/sub-agents#choose-the-subagent-scope) à la place de l'objet en ligne. Avant la v2.1.281, `--agents` acceptait uniquement du JSON en ligne et traitait un chemin de fichier comme du JSON invalide. La forme de fichier a ses propres refus, imprimés à la place de ce message, y compris ceux-ci :2914Avec `--print`, `--agents` accepte aussi [le chemin d'un fichier JSON](/docs/fr/sub-agents#choose-the-subagent-scope) à la place de l'objet inline. Avant la v2.1.281, `--agents` n'acceptait que du JSON inline et traitait un chemin de fichier comme du JSON invalide. La forme fichier a ses propres refus, affichés à la place de ce message, dont ceux-ci :

2892 2915 

2893* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`** : Claude Code a lu la valeur comme un chemin de fichier dans une session interactive. Transmettez les définitions en tant que JSON en ligne, ou ajoutez `-p` pour les lire à partir d'un fichier.2916* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`** : Claude Code a interprété la valeur comme un chemin de fichier dans une session interactive. Passez les définitions en JSON inline, ou ajoutez `-p` pour les lire depuis un fichier.

2894* **`Error: --agents file not found: <path>`** : aucun fichier n'existe à ce chemin. Une valeur qui ne commence pas par `{` et n'est pas du JSON valide est lue comme un chemin, donc du JSON en ligne que votre shell a endommagé peut échouer de cette manière aussi. Vérifiez le chemin ou les guillemets et exécutez la commande à nouveau.2917* **`Error: --agents file not found: <path>`** : aucun fichier n'existe à ce chemin. Une valeur qui ne commence pas par `{` et qui n'est pas du JSON valide est lue comme un chemin, donc du JSON inline altéré par votre shell peut aussi échouer de cette manière. Vérifiez le chemin ou les guillemets, puis exécutez à nouveau la commande.

2895 2918 

2896**Que faire :**2919**Que faire :**

2897 2920 

2898* Corrigez chaque problème que le message énumère, puis exécutez la commande à nouveau. Voir [les champs qu'un sous-agent défini par CLI prend](/docs/fr/sub-agents#choose-the-subagent-scope).2921* Corrigez chaque problème listé par le message, puis exécutez à nouveau la commande. Consultez [les champs qu'accepte un sous-agent défini par la CLI](/docs/fr/sub-agents#choose-the-subagent-scope).

2899 2922 

2900<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">2923<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">

2901 Les sessions cloud ne peuvent pas être créées à partir d'une session `--restricted`2924 Impossible de créer des sessions cloud depuis une session `--restricted`

2902</h3>2925</h3>

2903 2926 

2904Lorsque vous démarrez une session avec [`--restricted`](/docs/fr/cli-reference#cli-flags), Claude Code refuse de créer des [sessions cloud](/docs/fr/claude-code-on-the-web#from-terminal-to-cloud) à partir de celle-ci, car la nouvelle session s'exécuterait en dehors du processus restreint et n'appliquerait pas le mode restreint. Claude Code refuse du côté client, avant de contacter le serveur, donc aucune session cloud n'est créée :2927Lorsque vous démarrez une session avec [`--restricted`](/docs/fr/cli-reference#cli-flags), Claude Code refuse d'y créer des [sessions cloud](/docs/fr/claude-code-on-the-web#from-terminal-to-cloud), car la nouvelle session s'exécuterait en dehors du processus restreint et n'appliquerait pas le mode restreint. Claude Code refuse côté client, avant de contacter le serveur, donc aucune session cloud n'est créée :

2905 2928 

2906```text theme={null}2929```text theme={null}

2907Cloud sessions cannot be created from a --restricted session: they would not enforce it.2930Cloud sessions cannot be created from a --restricted session: they would not enforce it.


2910**Que faire :**2933**Que faire :**

2911 2934 

2912* Exécutez la tâche localement dans la session restreinte2935* Exécutez la tâche localement dans la session restreinte

2913* Si vous contrôlez la façon dont la session a été lancée, démarrez une nouvelle session `claude` sans `--restricted` et créez la session cloud à partir de là2936* Si vous contrôlez la manière dont la session a été lancée, démarrez une nouvelle session `claude` sans `--restricted` et créez la session cloud à partir de celle-ci

2914 2937 

2915Avant la v2.1.248, Claude Code n'avait pas d'indicateur `--restricted` ; les versions antérieures rejettent l'indicateur lui-même avec une erreur d'option inconnue.2938Avant la v2.1.248, Claude Code n'avait pas de flag `--restricted` ; les versions antérieures rejettent le flag lui-même avec une erreur d'option inconnue.

2916 2939 

2917<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">2940<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">

2918 Les sessions cloud sont désactivées par la politique de votre organisation2941 Les sessions cloud sont désactivées par la politique de votre organisation


2924Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.2947Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

2925```2948```

2926 2949 

2927Le message apparaît lorsque vous [créez une session cloud à partir du terminal](/docs/fr/claude-code-on-the-web#from-terminal-to-cloud) et lorsque vous soumettez une commande qui a besoin de sessions cloud, telle que `/teleport`, `/remote-env`, ou `/web-setup`. Avant la v2.1.268, soumettre l'une de ces commandes renvoyait [`Unknown command`](#unknown-command) à la place.2950Le message apparaît lorsque vous [créez une session cloud depuis le terminal](/docs/fr/claude-code-on-the-web#from-terminal-to-cloud) et lorsque vous soumettez une commande qui nécessite des sessions cloud, comme `/teleport`, `/remote-env` ou `/web-setup`. Avant la v2.1.268, la soumission de l'une de ces commandes renvoyait [`Unknown command`](#unknown-command) à la place.

2928 2951 

2929Il s'agit d'une politique d'organisation côté serveur, elle ne peut donc pas être remplacée par des paramètres locaux, des variables d'environnement ou des indicateurs CLI.2952Il s'agit d'une politique d'organisation côté serveur, elle ne peut donc pas être remplacée par des paramètres locaux, des variables d'environnement ou des flags de la CLI.

2930 2953 

2931Si Claude Code n'a pas encore chargé la politique de votre organisation ou ne peut pas la récupérer, ces commandes répondent `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` à la place.2954Si Claude Code n'a pas encore chargé la politique de votre organisation ou ne parvient pas à la récupérer, ces commandes répondent plutôt `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`

2932 2955 

2933**Que faire :**2956**Que faire :**

2934 2957 

2935* Demandez à un [Propriétaire](/docs/fr/server-managed-settings#access-control) de votre organisation d'activer les sessions cloud dans les paramètres d'administration Claude Code à [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)2958* Demandez à un [Owner](/docs/fr/server-managed-settings#access-control) de votre organisation d'activer les sessions cloud dans les paramètres d'administration de Claude Code sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

2936* Si le message indique qu'il n'a pas pu vérifier la politique, vérifiez votre connexion réseau, puis redémarrez Claude Code et réessayez2959* Si le message indique que la politique n'a pas pu être vérifiée, vérifiez votre connexion réseau, puis redémarrez Claude Code et réessayez

2937 2960 

2938<h3 id="the-json-schema-value-is-not-a-valid-json-schema">2961<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

2939 La valeur `--json-schema` n'est pas un schéma JSON valide2962 La valeur de `--json-schema` n'est pas un JSON Schema valide

2940</h3>2963</h3>

2941 2964 

2942Le schéma que vous avez transmis à [`--json-schema`](/docs/fr/cli-reference#cli-flags) en [mode non interactif](/docs/fr/headless#get-structured-output) a échoué la compilation du schéma JSON, donc `claude` se termine avec le code 1 au lieu d'exécuter l'invite. Avant la v2.1.205, un schéma invalide produisait une sortie non structurée sans erreur, et tout schéma utilisant le mot-clé `format` était traité comme invalide.2965Le schéma que vous avez passé à [`--json-schema`](/docs/fr/cli-reference#cli-flags) en [mode non interactif](/docs/fr/headless#get-structured-output) a échoué à la compilation JSON Schema, donc `claude` se termine avec le code 1 au lieu d'exécuter le prompt. Avant la v2.1.205, un schéma invalide produisait une sortie non structurée sans erreur, et tout schéma utilisant le mot-clé `format` était traité comme invalide.

2943 2966 

2944```text theme={null}2967```text theme={null}

2945Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values2968Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values

2946```2969```

2947 2970 

2948Le texte après le deuxième deux-points est le diagnostic du validateur et nomme le mot-clé ou l'emplacement qui a échoué. Les schémas qui utilisent le mot-clé `format`, tels que `"format": "email"`, sont valides : Claude Code accepte `format` comme annotation et ne l'applique pas.2971Le texte après le second deux-points est le diagnostic du validateur et nomme le mot-clé ou l'emplacement qui a échoué. Les schémas qui utilisent le mot-clé `format`, comme `"format": "email"`, sont valides : Claude Code accepte `format` comme annotation et ne l'applique pas.

2949 2972 

2950Claude Code exécute deux vérifications avant la compilation du schéma : il rejette une valeur qui n'est pas analysable en JSON avec `Error: --json-schema is not valid JSON`, et un JSON valide qui n'est pas un objet avec `Error: --json-schema must be a JSON object`.2973Claude Code effectue deux vérifications avant la compilation du schéma : il rejette une valeur qui n'est pas du JSON analysable avec `Error: --json-schema is not valid JSON`, et du JSON valide qui n'est pas un objet avec `Error: --json-schema must be a JSON object`.

2951 2974 

2952**Que faire :**2975**Que faire :**

2953 2976 

2954* Corrigez la partie du schéma que le diagnostic nomme, puis réexécutez la commande2977* Corrigez la partie du schéma nommée par le diagnostic, puis exécutez à nouveau la commande

2955* Voir [Obtenir une sortie structurée](/docs/fr/headless#get-structured-output) pour un schéma et une commande fonctionnels2978* Consultez [Obtenir une sortie structurée](/docs/fr/headless#get-structured-output) pour un schéma et une commande fonctionnels

2956 2979 

2957<h3 id="settings-file-exceeds-the-2mib-limit">2980<h3 id="settings-file-exceeds-the-2mib-limit">

2958 Le fichier de paramètres dépasse la limite de 2 Mio2981 Le fichier de paramètres dépasse la limite de 2 MiB

2959</h3>2982</h3>

2960 2983 

2961Le fichier que vous avez transmis à [`--settings`](/docs/fr/cli-reference#cli-flags) est plus grand que 2 Mio, donc `claude` se termine avec le code 1 au démarrage au lieu de le charger. Avant la v2.1.214, Claude Code lisait le fichier sans vérification de taille, et un fichier de plusieurs gigaoctets ou un fichier de périphérique tel que `/dev/zero` augmentait la mémoire sans limite.2984Le fichier que vous avez passé à [`--settings`](/docs/fr/cli-reference#cli-flags) dépasse 2 MiB, donc `claude` se termine avec le code 1 au démarrage au lieu de le charger. Avant la v2.1.214, Claude Code lisait le fichier sans vérifier sa taille, et un fichier de plusieurs gigaoctets ou un fichier de périphérique tel que `/dev/zero` faisait croître la mémoire sans limite.

2962 2985 

2963```text theme={null}2986```text theme={null}

2964Error: Settings file exceeds the 2MiB limit: /path/to/settings.json2987Error: Settings file exceeds the 2MiB limit: /path/to/settings.json

2965```2988```

2966 2989 

2967Claude Code rejette un chemin `--settings` qui n'est pas un fichier régulier de la même manière : un périphérique, FIFO ou socket signale `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` suivi du chemin, et un répertoire signale une raison `EISDIR`.2990Claude Code rejette de la même manière un chemin `--settings` qui n'est pas un fichier ordinaire : un périphérique, une FIFO ou un socket signale `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` suivi du chemin, et un répertoire signale un motif `EISDIR`.

2968 2991 

2969**Que faire :**2992**Que faire :**

2970 2993 

2971* Pointez `--settings` vers un fichier de paramètres JSON régulier inférieur à 2 Mio. Voir [Paramètres](/docs/fr/settings) pour le format.2994* Faites pointer `--settings` vers un fichier de paramètres JSON ordinaire de moins de 2 MiB. Consultez [Paramètres](/docs/fr/settings) pour le format.

2972 2995 

2973<h3 id="the-current-directory-no-longer-exists">2996<h3 id="the-current-directory-no-longer-exists">

2974 Le répertoire courant n'existe plus2997 Le répertoire courant n'existe plus

2975</h3>2998</h3>

2976 2999 

2977Vous avez démarré `claude` à partir d'un répertoire qui a été supprimé ou déplacé après que votre shell y soit entré, par exemple un worktree ou un répertoire temporaire qu'un autre shell a supprimé. Claude Code ne peut pas lire son répertoire de travail, donc il se termine avec le code 1 avant de démarrer la session, en mode interactif et [non interactif](/docs/fr/headless) également. Avant la v2.1.239, Claude Code s'écrasait avec une source de bundle minifiée et une pile `ENOENT ... uv_cwd` brute sur stderr au lieu de ce message.3000Vous avez démarré `claude` depuis un répertoire qui a été supprimé ou déplacé après que votre shell y est entré, par exemple un worktree ou un répertoire temporaire qu'un autre shell a supprimé. Claude Code ne peut pas lire son répertoire de travail, il se termine donc avec le code 1 avant de démarrer la session, en mode interactif comme en [mode non interactif](/docs/fr/headless). Avant la v2.1.239, Claude Code plantait en affichant le source minifié du bundle et une pile `ENOENT ... uv_cwd` brute sur stderr au lieu de ce message.

2978 3001 

2979```text theme={null}3002```text theme={null}

2980The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.3003The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.

2981error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.3004error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.

2982```3005```

2983 3006 

2984La cause et la correction sont les mêmes pour les deux formes.3007La cause et la solution sont les mêmes pour les deux formes.

2985 3008 

2986Lorsque Claude Code ne peut pas lire le répertoire de travail pour une autre raison, telle qu'un changement de permissions, le message nomme le code d'erreur à la place : `Can't read the current directory (EACCES). Start Claude Code from a different directory.`3009Lorsque Claude Code ne peut pas lire le répertoire de travail pour une autre raison, comme un changement de permissions, le message nomme plutôt le code d'erreur : `Can't read the current directory (EACCES). Start Claude Code from a different directory.`

2987 3010 

2988Sur macOS, `EPERM` pour un répertoire dans `~/Desktop`, `~/Documents`, `~/Downloads`, ou iCloud Drive signifie généralement que macOS bloque votre application terminal de ce dossier. D'autres commandes qui lisent ce dossier échouent de la même manière : `ls` là-bas signale `Operation not permitted`, même avec `sudo`.3011Sur macOS, `EPERM` pour un répertoire situé dans `~/Desktop`, `~/Documents`, `~/Downloads` ou iCloud Drive signifie généralement que macOS empêche votre application de terminal d'accéder à ce dossier. Les autres commandes qui lisent ce dossier échouent de la même manière : `ls` y signale `Operation not permitted`, même avec `sudo`.

2989 3012 

2990**Que faire :**3013**Que faire :**

2991 3014 

2992* Changez vers un répertoire qui existe, tel que votre répertoire personnel ou de projet, puis exécutez `claude` à nouveau3015* Placez-vous dans un répertoire qui existe, comme votre répertoire personnel ou votre répertoire de projet, puis exécutez à nouveau `claude`

2993* Si le répertoire a été recréé au même chemin, votre shell tient toujours le répertoire supprimé. Exécutez `cd "$PWD"` ou quittez et réentrez le répertoire, puis exécutez `claude` à nouveau3016* Si le répertoire a été recréé au même chemin, votre shell conserve toujours celui qui a été supprimé. Exécutez `cd "$PWD"` ou quittez le répertoire puis revenez-y, puis exécutez à nouveau `claude`

2994* Pour `EPERM` sur macOS, quittez votre application terminal avec Cmd+Q, ouvrez-la à nouveau, retournez à ce dossier, et exécutez `claude`. Si `ls` dans ce dossier échoue toujours, ouvrez **Paramètres système > Confidentialité et sécurité > Fichiers et dossiers**, activez le dossier pour votre application terminal, puis rouvrez le terminal3017* Pour `EPERM` sur macOS, quittez votre application de terminal avec Cmd+Q, rouvrez-la, revenez dans ce dossier et exécutez `claude`. Si `ls` échoue toujours dans ce dossier, ouvrez **Réglages Système > Confidentialité et sécurité > Fichiers et dossiers**, activez le dossier pour votre application de terminal, puis rouvrez le terminal

2995 3018 

2996<h3 id="temp-directory-refused-or-cannot-be-created">3019<h3 id="temp-directory-refused-or-cannot-be-created">

2997 Le répertoire temporaire a été refusé ou ne peut pas être créé3020 Répertoire temporaire refusé ou impossible à créer

2998</h3>3021</h3>

2999 3022 

3000Sur macOS et Linux, Claude Code crée un répertoire temporaire privé au démarrage, `claude-<uid>` sous le répertoire temporaire du système ou le remplacement [`CLAUDE_CODE_TMPDIR`](/docs/fr/env-vars). Lorsque le répertoire ne peut pas être créé, ou qu'une entrée existant déjà à ce chemin échoue les vérifications de sécurité, Claude Code imprime l'échec sur stderr et se termine avec le code 1 plutôt que de démarrer la session :3023Sur macOS et Linux, Claude Code crée au démarrage un répertoire temporaire privé, `claude-<uid>`, dans le répertoire temporaire du système ou dans celui défini par le remplacement [`CLAUDE_CODE_TMPDIR`](/docs/fr/env-vars). Lorsque le répertoire ne peut pas être créé, ou qu'une entrée déjà présente à ce chemin échoue aux vérifications de sécurité, Claude Code affiche l'échec sur stderr et se termine avec le code 1 au lieu de démarrer la session :

3001 3024 

3002```text wrap theme={null}3025```text wrap theme={null}

3003ENOSPC: no space left on device, mkdir '/tmp/claude-501'3026ENOSPC: no space left on device, mkdir '/tmp/claude-501'


3012**Que faire :**3035**Que faire :**

3013 3036 

3014* Pour `ENOSPC`, libérez de l'espace disque sur le volume qui contient le répertoire temporaire3037* Pour `ENOSPC`, libérez de l'espace disque sur le volume qui contient le répertoire temporaire

3015* Pour les formes `Refusing to use it`, supprimez l'entrée nommée elle-même, pas ce vers quoi un lien pointe, et démarrez Claude Code à nouveau ; pour la forme `owned by uid`, seul un administrateur ou cet utilisateur peut la supprimer3038* Pour les formes `Refusing to use it`, supprimez l'entrée nommée elle-même, et non la cible d'un lien, puis redémarrez Claude Code ; pour la forme `owned by uid`, seul un administrateur ou cet utilisateur peut la supprimer

3016* Pour `is not readable`, exécutez `chmod 0700` sur le répertoire nommé, ou supprimez-le et redémarrez3039* Pour `is not readable`, exécutez `chmod 0700` sur le répertoire nommé, ou supprimez-le et redémarrez

3017* Dans l'un de ces cas, définissez [`CLAUDE_CODE_TMPDIR`](/docs/fr/env-vars) sur un répertoire que vous contrôlez et démarrez Claude Code à nouveau, en laissant le chemin refusé seul3040* Dans tous ces cas, définissez [`CLAUDE_CODE_TMPDIR`](/docs/fr/env-vars) sur un répertoire que vous contrôlez et redémarrez Claude Code, sans toucher au chemin refusé

3018 3041 

3019<h3 id="directory-couldnt-be-resolved-to-a-real-location">3042<h3 id="directory-couldnt-be-resolved-to-a-real-location">

3020 Le répertoire n'a pas pu être résolu à un emplacement réel3043 Le répertoire n'a pas pu être résolu vers un emplacement réel

3021</h3>3044</h3>

3022 3045 

3023Vous avez exécuté `/add-dir` pour un sous-répertoire de votre répertoire de travail, et Claude Code n'a pas pu résoudre le répertoire à son emplacement réel.3046Vous avez exécuté `/add-dir` pour un sous-répertoire de votre répertoire de travail, et Claude Code n'a pas pu résoudre le répertoire vers son emplacement réel.

3024 3047 

3025Vous avez déjà accès aux fichiers d'un sous-répertoire du répertoire de travail, donc `/add-dir` charge uniquement ses skills, commandes et agents. Avant de les charger, Claude Code vérifie que l'emplacement réel du répertoire, avec tous les liens symboliques résolus, se trouve à l'intérieur du répertoire de travail. Lorsque Claude Code ne peut pas résoudre cet emplacement, il ne charge rien et affiche ce message :3048Vous avez déjà accès aux fichiers d'un sous-répertoire du répertoire de travail, donc `/add-dir` ne charge que ses skills, commandes et agents. Avant de les charger, Claude Code vérifie que l'emplacement réel du répertoire, une fois les liens symboliques résolus, se trouve à l'intérieur du répertoire de travail. Lorsque Claude Code ne peut pas résoudre cet emplacement, il ne charge rien et affiche ce message :

3026 3049 

3027```text theme={null}3050```text theme={null}

3028packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.3051packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.


3030 3053 

3031**Que faire :**3054**Que faire :**

3032 3055 

3033* Vérifiez que le chemin nomme un répertoire réel à l'intérieur du répertoire de travail, puis exécutez `/add-dir` à nouveau3056* Vérifiez que le chemin désigne un répertoire réel à l'intérieur du répertoire de travail, puis exécutez à nouveau `/add-dir`

3034* Le message ne change pas votre accès aux fichiers ; il signale uniquement que le contenu `.claude/` du répertoire n'a pas été chargé3057* Le message ne modifie pas votre accès aux fichiers ; il indique seulement que le contenu `.claude/` du répertoire n'a pas été chargé

3035 3058 

3036Avant la v2.1.261, ce message apparaissait également pour chaque `/add-dir <subdirectory>` lorsque le répertoire de travail était sur un automontage `/net/<host>`, où Claude Code refuse de résoudre les chemins par conception ; le répertoire était correct et réessayer ne pouvait pas aider.3059Avant la v2.1.261, ce message apparaissait aussi pour chaque `/add-dir <subdirectory>` lorsque le répertoire de travail se trouvait sur un montage automatique `/net/<host>`, où Claude Code refuse par conception de résoudre les chemins ; le répertoire était correct et réessayer ne pouvait pas aider.

3037 3060 

3038<h3 id="workspace-not-trusted-when-starting-remote-control">3061<h3 id="workspace-not-trusted-when-starting-remote-control">

3039 Espace de travail non approuvé au démarrage du contrôle à distance3062 Espace de travail non approuvé lors du démarrage de Remote Control

3040</h3>3063</h3>

3041 3064 

3042Vous avez démarré le mode serveur [Contrôle à distance](/docs/fr/remote-control) avec `claude remote-control` ou son alias `claude rc` dans un répertoire que vous n'avez pas approuvé, et la commande n'a pas pu vous demander si vous faites confiance à celui-ci. Par exemple, l'entrée standard ou la sortie standard de la commande n'est pas un terminal parce que l'une d'elles est redirigée ou canalisée. La commande se termine avec le code 1 :3065Vous avez démarré le mode serveur de [Remote Control](/docs/fr/remote-control) avec `claude remote-control` ou son alias `claude rc` dans un répertoire que vous n'avez pas approuvé, et la commande n'a pas pu vous demander si vous souhaitiez l'approuver. Par exemple, l'entrée standard ou la sortie standard de la commande n'est pas un terminal, car l'une d'elles est redirigée ou passée par un pipe. La commande se termine avec le code 1 :

3043 3066 

3044```text theme={null}3067```text theme={null}

3045Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.3068Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

3046```3069```

3047 3070 

3048Deux variantes qui commencent également par `Error: Workspace not trusted.` apparaissent également dans un terminal trop petit pour afficher ce que faire confiance au répertoire active, ou un qui n'a pas signalé sa taille. Agrandissez la fenêtre ou passez à une fenêtre de terminal normale, puis exécutez `claude rc` à nouveau.3071Deux variantes qui commencent également par `Error: Workspace not trusted.` apparaissent dans un terminal trop petit pour afficher ce qu'active l'approbation du répertoire, ou dans un terminal qui n'a pas signalé sa taille. Agrandissez la fenêtre ou passez à une fenêtre de terminal normale, puis exécutez à nouveau `claude rc`.

3049 3072 

3050Dans votre répertoire personnel, le message est différent, car la boîte de dialogue d'approbation de l'espace de travail ne sauvegarde jamais l'approbation pour le répertoire personnel, donc l'accepter là-bas ne peut pas satisfaire cette vérification. Avant la v2.1.214, le répertoire personnel affichait le message ci-dessus, dont les conseils ne peuvent pas réussir là-bas.3073Dans votre répertoire personnel, le message est différent, car la boîte de dialogue d'approbation de l'espace de travail n'enregistre jamais l'approbation pour le répertoire personnel, donc l'accepter à cet endroit ne peut pas satisfaire cette vérification. Avant la v2.1.214, le répertoire personnel affichait le message ci-dessus, dont le conseil ne peut pas aboutir à cet endroit.

3051 3074 

3052```text theme={null}3075```text theme={null}

3053Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).3076Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

3054```3077```

3055 3078 

3056Si vous répondez `n` ou appuyez sur Entrée à la question [`Trust <directory>?`](/docs/fr/remote-control#requirements), la commande imprime un message `Remote Control did not start` qui nomme le répertoire et se termine avec le code 1. Exécutez `claude rc` à nouveau pour répondre `y`.3079Si vous répondez `n` ou appuyez sur Entrée à la [question `Trust <directory>?`](/docs/fr/remote-control#requirements), la commande affiche un message `Remote Control did not start` qui nomme le répertoire et se termine avec le code 1. Exécutez à nouveau `claude rc` pour répondre `y`.

3057 3080 

3058**Que faire :**3081**Que faire :**

3059 3082 

3060* Approuvez le répertoire à partir d'un terminal d'abord : exécutez `claude rc` là-bas et répondez `y`, ou exécutez `claude` là-bas et acceptez la [boîte de dialogue d'approbation de l'espace de travail](/docs/fr/permissions#project-allow-rules-and-workspace-trust), puis exécutez votre commande d'origine à nouveau3083* Approuvez d'abord le répertoire depuis un terminal : exécutez-y `claude rc` et répondez `y`, ou exécutez-y `claude` et acceptez la [boîte de dialogue d'approbation de l'espace de travail](/docs/fr/permissions#project-allow-rules-and-workspace-trust), puis exécutez à nouveau votre commande d'origine

3061* Dans votre répertoire personnel, changez vers un répertoire de projet et démarrez le contrôle à distance là-bas3084* Dans votre répertoire personnel, placez-vous dans un répertoire de projet et démarrez Remote Control à cet endroit

3062 3085 

3063Avant la v2.1.284, la commande ne demandait jamais, même dans un terminal.3086Avant la v2.1.284, la commande ne posait jamais la question, même dans un terminal.

3064 3087 

3065<h3 id="not-carried-over-to-the-sessions-remote-control-starts">3088<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

3066 Non reporté aux sessions que le contrôle à distance démarre3089 Non transmis aux sessions démarrées par Remote Control

3067</h3>3090</h3>

3068 3091 

3069Vous avez démarré [Contrôle à distance](/docs/fr/remote-control) avec un indicateur global `claude` avant le verbe `remote-control`, un qui restreindrait ou configurerait les sessions que le contrôle à distance démarre, tel que `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools`, ou `--mcp-config`. Un indicateur placé avant le verbe n'atteint jamais ces sessions. Claude Code refuse de démarrer à la place, en nommant l'indicateur :3092Vous avez démarré [Remote Control](/docs/fr/remote-control) avec un flag global de `claude` placé avant le verbe `remote-control`, un flag qui restreindrait ou configurerait les sessions démarrées par Remote Control, comme `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` ou `--mcp-config`. Un flag placé avant le verbe n'atteint jamais ces sessions. Claude Code refuse alors de démarrer, en nommant le flag :

3070 3093 

3071```text theme={null}3094```text theme={null}

3072Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3095Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).

3073```3096```

3074 3097 

3075Claude Code ne refuse pas les indicateurs globaux qui sont inoffensifs à supprimer, tels que `--verbose`, `--model`, ou un `--session-id` ou `--plugin-dir` injecté par wrapper : il les ignore et le contrôle à distance démarre.3098Claude Code ne refuse pas les flags globaux qu'il est sans danger d'abandonner, comme `--verbose`, `--model`, ou un `--session-id` ou `--plugin-dir` injecté par un wrapper : il les ignore et Remote Control démarre.

3076 3099 

3077Claude Code refuse également de démarrer pour un indicateur global qu'il ne reconnaît pas encore comme inoffensif, donc un indicateur ajouté dans une version plus récente peut apparaître dans ce message jusqu'à ce qu'une version ultérieure le marque comme inoffensif.3100Claude Code refuse aussi de démarrer pour un flag global qu'il ne reconnaît pas encore comme sans danger, donc un flag ajouté dans une version plus récente peut apparaître dans ce message jusqu'à ce qu'une version ultérieure le marque comme sans danger.

3078 3101 

3079**Que faire :**3102**Que faire :**

3080 3103 

3081* Supprimez l'indicateur avant le verbe et transmettez [les options propres du contrôle à distance](/docs/fr/remote-control#start-a-remote-control-session) après ; `claude remote-control --help` les énumère3104* Retirez le flag placé avant le verbe et passez les [options propres à Remote Control](/docs/fr/remote-control#start-a-remote-control-session) après celui-ci ; `claude remote-control --help` les liste

3082* Lorsque l'indicateur refusé est `--permission-mode`, exécutez `claude remote-control --permission-mode <mode>` pour définir le mode de permission pour les sessions que le contrôle à distance démarre3105* Lorsque le flag refusé est `--permission-mode`, exécutez `claude remote-control --permission-mode <mode>` pour définir le mode de permission des sessions démarrées par Remote Control

3083 3106 

3084Avant la v2.1.248, `claude remote-control` n'acceptait pas ses propres indicateurs lorsqu'un indicateur global venait en premier, et la commande échouait avec une erreur d'option inconnue.3107Avant la v2.1.248, `claude remote-control` n'acceptait pas ses propres flags lorsqu'un flag global venait en premier, et la commande échouait avec une erreur `unknown option`.

3085 3108 

3086<h3 id="claude-import-is-not-yet-available-in-this-build">3109<h3 id="claude-import-is-not-yet-available-in-this-build">

3087 claude import n'est pas encore disponible dans cette version3110 claude import n'est pas encore disponible dans ce build

3088</h3>3111</h3>

3089 3112 

3090Vous avez exécuté [`claude import`](/docs/fr/cli-reference#cli-commands), et Claude Code a trouvé le flux d'importation désactivé, donc la commande se termine avec le code 1 au lieu de démarrer l'importation. Avant la v2.1.222, une version avec le flux d'importation désactivé traitait `import` comme une invite et démarrait une session interactive au lieu d'imprimer ce message.3113Vous avez exécuté [`claude import`](/docs/fr/cli-reference#cli-commands), et Claude Code a constaté que le flux d'importation était désactivé, donc la commande se termine avec le code 1 au lieu de lancer l'importation. Avant la v2.1.222, un build dont le flux d'importation était désactivé traitait `import` comme un prompt et démarrait une session interactive au lieu d'afficher ce message.

3091 3114 

3092```text theme={null}3115```text theme={null}

3093`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.3116`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

3094```3117```

3095 3118 

3096Claude Code active `claude import` via un indicateur de fonctionnalité qu'il récupère auprès d'Anthropic et met en cache sur le disque. Ce message signifie que la valeur mise en cache est désactivée. La cause est généralement l'une des suivantes :3119Claude Code active `claude import` au moyen d'un feature flag qu'il récupère auprès d'Anthropic et met en cache sur le disque. Ce message signifie que la valeur en cache est désactivée. La cause est généralement l'une des suivantes :

3097 3120 

3098* Vous n'avez pas démarré de session depuis l'installation, donc Claude Code n'a pas encore récupéré l'indicateur. Le premier `claude import` peut imprimer ceci même lorsque la fonctionnalité vous est disponible.3121* Vous n'avez pas démarré de session depuis l'installation, donc Claude Code n'a pas encore récupéré le flag. Le premier `claude import` peut afficher ce message même lorsque la fonctionnalité vous est disponible.

3099* Vous utilisez Claude Code via Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou Claude Platform sur AWS, ou via une [passerelle d'applications Claude](/docs/fr/claude-apps-gateway#availability-and-limitations). Claude Code ne récupère pas les indicateurs de fonctionnalité dans ces sessions, donc `claude import` reste indisponible.3122* Vous utilisez Claude Code via Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry ou Claude Platform on AWS, ou via une [passerelle Claude apps](/docs/fr/claude-apps-gateway#availability-and-limitations). Claude Code ne récupère pas les feature flags dans ces sessions, donc `claude import` reste indisponible.

3100* Vous avez défini `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK`, ou [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/fr/env-vars), qui désactivent la récupération des indicateurs de fonctionnalité, donc `claude import` reste indisponible.3123* Vous avez défini `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK` ou [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/fr/env-vars), qui désactivent la récupération des feature flags, donc `claude import` reste indisponible.

3101 3124 

3102**Que faire :**3125**Que faire :**

3103 3126 

3104* Sur une installation nouvelle, démarrez `claude`, attendez que la session se charge, quittez, et exécutez `claude import` à nouveau3127* Sur une nouvelle installation, démarrez `claude`, attendez que la session se charge, quittez, puis exécutez à nouveau `claude import`

3105* Où la récupération des indicateurs de fonctionnalité reste désactivée, configurez la configuration vous-même : ajoutez des serveurs MCP avec [`claude mcp add`](/docs/fr/mcp#installing-mcp-servers), et créez les [fichiers `CLAUDE.md`](/docs/fr/memory#how-claude-md-files-load), [skills et commandes](/docs/fr/skills#where-skills-live), et [sous-agents](/docs/fr/sub-agents#choose-the-subagent-scope) que vous souhaitez reporter. Le message nomme également `~/.claude/settings.json`. De la configuration que `claude import` reporte, ce fichier ne contient que le [mode de permission](/docs/fr/settings-reference#permission-settings) ; Claude Code ne lit pas les serveurs MCP à partir de celui-ci.3128* Lorsque la récupération des feature flags reste désactivée, mettez en place la configuration vous-même : ajoutez des serveurs MCP avec [`claude mcp add`](/docs/fr/mcp#installing-mcp-servers), et créez les [fichiers `CLAUDE.md`](/docs/fr/memory#how-claude-md-files-load), les [skills et commandes](/docs/fr/skills#where-skills-live) et les [sous-agents](/docs/fr/sub-agents#choose-the-subagent-scope) que vous souhaitez reprendre. Le message mentionne aussi `~/.claude/settings.json`. Parmi la configuration que reprend `claude import`, ce fichier ne contient que le [mode de permission](/docs/fr/settings-reference#permission-settings) ; Claude Code n'y lit pas les serveurs MCP.

3106 3129 

3107<h3 id="could-not-read-claude-code-config">3130<h3 id="could-not-read-claude-code-config">

3108 Impossible de lire la configuration Claude Code3131 Impossible de lire la configuration de Claude Code

3109</h3>3132</h3>

3110 3133 

3111Vous avez exécuté [`claude import`](/docs/fr/cli-reference#cli-commands) tandis que Claude Code ne pouvait pas analyser `~/.claude.json`, le fichier où il stocke votre connexion et l'état par projet. La sous-commande lit ce fichier pour vérifier la disponibilité mais n'affiche pas la boîte de dialogue de récupération que la session interactive affiche, elle se termine donc avec le code 1. Avant la v2.1.222, `claude import` avec un fichier de configuration illisible démarrait une session interactive, dont la boîte de dialogue de récupération gérait le fichier.3134Vous avez exécuté [`claude import`](/docs/fr/cli-reference#cli-commands) alors que Claude Code ne parvenait pas à analyser `~/.claude.json`, le fichier où il stocke votre connexion et l'état de chaque projet. La sous-commande lit ce fichier pour vérifier la disponibilité, mais n'affiche pas la boîte de dialogue de récupération qu'affiche la session interactive, elle se termine donc avec le code 1. Avant la v2.1.222, `claude import` avec un fichier de configuration illisible démarrait une session interactive, dont la boîte de dialogue de récupération prenait en charge le fichier.

3112 3135 

3113```text theme={null}3136```text theme={null}

3114Could not read Claude Code config — run `claude` with no arguments to recover it.3137Could not read Claude Code config — run `claude` with no arguments to recover it.


3116 3139 

3117**Que faire :**3140**Que faire :**

3118 3141 

3119* Exécutez `claude` sans arguments. Claude Code détecte le fichier invalide et propose de le réinitialiser. Puis exécutez `claude import` à nouveau.3142* Exécutez `claude` sans arguments. Claude Code détecte le fichier invalide et propose de le réinitialiser. Exécutez ensuite à nouveau `claude import`.

3120* Pour conserver les modifications manuelles que vous avez apportées, corrigez la syntaxe JSON dans `~/.claude.json` dans un éditeur à la place, puis réexécutez `claude import`3143* Pour conserver les modifications manuelles que vous avez apportées, corrigez plutôt la syntaxe JSON de `~/.claude.json` dans un éditeur, puis exécutez à nouveau `claude import`

3121 3144 

3122<h3 id="could-not-import-a-server-from-claude-desktop">3145<h3 id="could-not-import-a-server-from-claude-desktop">

3123 Impossible d'importer un serveur depuis Claude Desktop3146 Impossible d'importer un serveur depuis Claude Desktop

3124</h3>3147</h3>

3125 3148 

3126Claude Code n'a pas pu ajouter l'un des serveurs que vous avez sélectionnés dans `claude mcp add-from-claude-desktop`. La commande importe toujours les autres serveurs sélectionnés et imprime une ligne par serveur qu'elle n'a pas pu ajouter. Avant la v2.1.205, le premier serveur qui a échoué a arrêté l'importation.3149Claude Code n'a pas pu ajouter l'un des serveurs que vous avez sélectionnés dans `claude mcp add-from-claude-desktop`. La commande importe quand même les autres serveurs sélectionnés et affiche une ligne par serveur qu'elle n'a pas pu ajouter. Avant la v2.1.205, le premier serveur en échec arrêtait l'importation.

3127 3150 

3128```text theme={null}3151```text theme={null}

3129Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.3152Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

3130```3153```

3131 3154 

3132Le texte après le nom du serveur est la raison. La plus courante est la vérification du nom : Claude Desktop autorise les caractères dans les noms de serveur, tels que les espaces et les points, que `claude mcp` restreint aux lettres, chiffres, traits d'union et traits de soulignement. D'autres raisons incluent une configuration de serveur qui échoue la validation et un serveur bloqué par la [politique MCP](/docs/fr/managed-mcp) de votre organisation.3155Le texte après le nom du serveur en est la raison. La plus courante est la vérification du nom : Claude Desktop autorise dans les noms de serveurs des caractères, comme les espaces et les points, que `claude mcp` limite aux lettres, chiffres, traits d'union et tirets bas. Les autres raisons incluent une configuration de serveur qui échoue à la validation et un serveur bloqué par la [politique MCP](/docs/fr/managed-mcp) de votre organisation.

3133 3156 

3134**Que faire :**3157**Que faire :**

3135 3158 

3136* Renommez le serveur dans `claude_desktop_config.json` pour utiliser uniquement des lettres, des chiffres, des traits d'union et des traits de soulignement, puis exécutez `claude mcp add-from-claude-desktop` à nouveau3159* Renommez le serveur dans `claude_desktop_config.json` en n'utilisant que des lettres, des chiffres, des traits d'union et des tirets bas, puis exécutez à nouveau `claude mcp add-from-claude-desktop`

3137* Ajoutez ce serveur directement avec `claude mcp add` ou `claude mcp add-json` sous un nom valide. Voir [Importer les serveurs MCP depuis Claude Desktop](/docs/fr/mcp#import-mcp-servers-from-claude-desktop).3160* Ajoutez directement ce serveur avec `claude mcp add` ou `claude mcp add-json` sous un nom valide. Consultez [Importer des serveurs MCP depuis Claude Desktop](/docs/fr/mcp#import-mcp-servers-from-claude-desktop).

3138 3161 

3139<h3 id="cannot-add-mcp-server-to-the-managed-scope">3162<h3 id="cannot-add-mcp-server-to-the-managed-scope">

3140 Impossible d'ajouter un serveur MCP à la portée gérée3163 Impossible d'ajouter un serveur MCP à la portée managed

3141</h3>3164</h3>

3142 3165 

3143Vous avez exécuté `claude mcp add` ou `claude mcp add-json` avec `--scope managed`. Cette portée contient les serveurs que votre organisation fournit via le paramètre géré [`managedMcpServers`](/docs/fr/settings-reference#managedmcpservers). Claude Code les lit à partir des paramètres gérés uniquement, donc la commande ne peut pas écrire un serveur dans cette portée.3166Vous avez exécuté `claude mcp add` ou `claude mcp add-json` avec `--scope managed`. Cette portée contient les serveurs que votre organisation fournit via le paramètre géré [`managedMcpServers`](/docs/fr/settings-reference#managedmcpservers). Claude Code les lit uniquement depuis les paramètres gérés, donc la commande ne peut pas écrire de serveur dans cette portée.

3144 3167 

3145```text theme={null}3168```text theme={null}

3146Cannot add MCP server to scope: managed3169Cannot add MCP server to scope: managed


3148 3171 

3149**Que faire :**3172**Que faire :**

3150 3173 

3151* Ajoutez le serveur à une portée dans laquelle vous pouvez écrire : `local`, `user`, ou `project`. Sans `--scope`, la commande utilise `local`. Voir [Portées d'installation MCP](/docs/fr/mcp#mcp-installation-scopes)3174* Ajoutez le serveur à une portée dans laquelle vous pouvez écrire : `local`, `user` ou `project`. Sans `--scope`, la commande utilise `local`. Consultez [Portées d'installation MCP](/docs/fr/mcp#mcp-installation-scopes)

3152* Pour fournir le serveur à chaque utilisateur de votre organisation, ajoutez-le à [`managedMcpServers`](/docs/fr/settings-reference#managedmcpservers) dans les paramètres gérés que vous déployez3175* Pour fournir le serveur à tous les utilisateurs de votre organisation, ajoutez-le à [`managedMcpServers`](/docs/fr/settings-reference#managedmcpservers) dans les paramètres gérés que vous déployez

3153 3176 

3154<h3 id="cant-read-mcp-json">3177<h3 id="cant-read-mcp-json">

3155 Impossible de lire .mcp.json3178 Impossible de lire .mcp.json

3156</h3>3179</h3>

3157 3180 

3158Une commande qui lit le [`.mcp.json`](/docs/fr/mcp#project-scope) du projet, telle que `claude mcp add` ou `claude mcp add-json` avec `--scope project`, ou `claude mcp remove`, a trouvé que le fichier dans votre répertoire courant n'est pas un fichier régulier ou est plus grand que 2 Mio, elle se termine donc avec cette erreur au lieu de lire le fichier.3181Une commande qui lit le fichier [`.mcp.json`](/docs/fr/mcp#project-scope) du projet, comme `claude mcp add` ou `claude mcp add-json` avec `--scope project`, ou `claude mcp remove`, a constaté que le fichier de votre répertoire courant n'est pas un fichier ordinaire ou dépasse 2 MiB, elle se termine donc avec cette erreur au lieu de lire le fichier.

3159 3182 

3160```text theme={null}3183```text theme={null}

3161Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.3184Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

3162```3185```

3163 3186 

3164Avant la v2.1.257, un FIFO à `.mcp.json` laissait la commande attendre indéfiniment sans sortie, et un lien symbolique vers un fichier de périphérique tel que `/dev/zero` augmentait la mémoire jusqu'à ce que le processus soit tué.3187Avant la v2.1.257, une FIFO à l'emplacement de `.mcp.json` laissait la commande en attente indéfiniment sans aucune sortie, et un lien symbolique vers un fichier de périphérique tel que `/dev/zero` faisait croître la mémoire jusqu'à ce que le processus soit tué.

3165 3188 

3166**Que faire :**3189**Que faire :**

3167 3190 

3168* Vérifiez ce qui se trouve à `.mcp.json` dans votre répertoire courant. Remplacez-le par un fichier JSON ordinaire au [format de portée de projet](/docs/fr/mcp#project-scope), ou supprimez-le, puis exécutez la commande à nouveau.3191* Vérifiez ce qui se trouve à l'emplacement `.mcp.json` dans votre répertoire courant. Remplacez-le par un fichier JSON ordinaire au [format de la portée projet](/docs/fr/mcp#project-scope), ou supprimez-le, puis exécutez à nouveau la commande.

3169 3192 

3170<h3 id="mcp-server-was-not-saved-or-removed">3193<h3 id="mcp-server-was-not-saved-or-removed">

3171 Le serveur MCP n'a pas été enregistré ou supprimé3194 Le serveur MCP n'a pas été enregistré ou supprimé

3172</h3>3195</h3>

3173 3196 

3174Vous avez exécuté `claude mcp add`, `claude mcp add-json`, ou `claude mcp remove` pour un serveur dans la portée `user` ou `local` [scope](/docs/fr/mcp#mcp-installation-scopes). Les deux portées sont stockées dans `~/.claude.json`, et la modification n'est pas dans ce fichier lorsque Claude Code le relit après l'écriture. La commande se termine avec cette erreur au lieu de sa ligne de succès.3197Vous avez exécuté `claude mcp add`, `claude mcp add-json` ou `claude mcp remove` pour un serveur de [portée](/docs/fr/mcp#mcp-installation-scopes) `user` ou `local`. Les deux portées sont stockées dans `~/.claude.json`, et la modification ne figure pas dans ce fichier lorsque Claude Code le relit après l'écriture. La commande se termine avec cette erreur au lieu de sa ligne de succès.

3175 3198 

3176```text theme={null}3199```text theme={null}

3177MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3200MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

3178```3201```

3179 3202 

3180Après une suppression, le message lit `was not removed from` et se termine par `then remove the server again`. Pour un serveur de portée `local`, le chemin est suivi du répertoire du projet auquel l'entrée appartient, comme `(local scope for /path/to/project)`.3203Après une suppression, le message indique `was not removed from` et se termine par `then remove the server again`. Pour un serveur de portée `local`, le chemin est suivi du répertoire de projet auquel appartient l'entrée, sous la forme `(local scope for /path/to/project)`.

3181 3204 

3182Avant la v2.1.283, `claude mcp add`, `claude mcp add-json`, et `claude mcp remove` signalaient le succès même lorsque la modification n'atteignait pas le fichier.3205Avant la v2.1.283, `claude mcp add`, `claude mcp add-json` et `claude mcp remove` signalaient un succès même lorsque la modification n'atteignait pas le fichier.

3183 3206 

3184**Que faire :**3207**Que faire :**

3185 3208 

3186* Rendez le fichier que le message nomme inscriptible, ou exécutez la commande en dehors du sandbox, puis exécutez la même commande d'ajout ou de suppression à nouveau.3209* Rendez accessible en écriture le fichier nommé par le message, ou exécutez la commande en dehors du sandbox, puis exécutez à nouveau la même commande d'ajout ou de suppression.

3187 3210 

3188<h3 id="mcp-server-may-not-have-been-saved-or-removed">3211<h3 id="mcp-server-may-not-have-been-saved-or-removed">

3189 Le serveur MCP peut ne pas avoir été enregistré ou supprimé3212 Le serveur MCP n'a peut-être pas été enregistré ou supprimé

3190</h3>3213</h3>

3191 3214 

3192Vous avez exécuté `claude mcp add`, `claude mcp add-json`, ou `claude mcp remove` pour un serveur dans la portée `user` ou `local` [scope](/docs/fr/mcp#mcp-installation-scopes), et Claude Code n'a pas pu relire `~/.claude.json` pour confirmer la modification. La modification peut ou peut ne pas être sur le disque. Le texte entre parenthèses est l'erreur de cette lecture.3215Vous avez exécuté `claude mcp add`, `claude mcp add-json` ou `claude mcp remove` pour un serveur de [portée](/docs/fr/mcp#mcp-installation-scopes) `user` ou `local`, et Claude Code n'a pas pu relire `~/.claude.json` pour confirmer la modification. La modification peut figurer ou non sur le disque. Le texte entre parenthèses est l'erreur renvoyée par cette lecture.

3193 3216 

3194```text theme={null}3217```text theme={null}

3195MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.3218MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3196```3219```

3197 3220 

3198Après une suppression, le message lit `may not have been removed` et se termine par `then remove the server again if it is still listed`.3221Après une suppression, le message indique `may not have been removed` et se termine par `then remove the server again if it is still listed`.

3199 3222 

3200Avant la v2.1.283, les commandes signalaient le succès même lorsque la modification ne pouvait pas être confirmée.3223Avant la v2.1.283, les commandes signalaient un succès même lorsque la modification ne pouvait pas être confirmée.

3201 3224 

3202**Que faire :**3225**Que faire :**

3203 3226 

3204* Exécutez `claude mcp get <name>` pour vérifier si la modification est sur le disque. Pour un serveur de portée `local`, exécutez-le à partir du répertoire du projet auquel le serveur appartient, car la portée locale est par projet.3227* Exécutez `claude mcp get <name>` pour vérifier si la modification figure sur le disque. Pour un serveur de portée `local`, exécutez-la depuis le répertoire de projet auquel appartient le serveur, car la portée locale est propre à chaque projet.

3205* Si le serveur manque après un ajout, ou est toujours listé après une suppression, exécutez la même commande d'ajout ou de suppression à nouveau.3228* Si le serveur est absent après un ajout, ou toujours listé après une suppression, exécutez à nouveau la même commande d'ajout ou de suppression.

3206 3229 

3207<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3230<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3208 Le serveur est hébergé par Anthropic et ne supporte pas OAuth local3231 Le serveur est hébergé par Anthropic et ne prend pas en charge l'OAuth local

3209</h3>3232</h3>

3210 3233 

3211Vous avez démarré une connexion pour un serveur MCP dont l'URL pointe vers un hôte de connecteur hébergé par Anthropic qui s'authentifie via un fournisseur d'identité tiers. Ces hôtes incluent `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com`, et `gcal.mcp.claude.com`. Claude Code refuse de démarrer son flux OAuth local pour ces hôtes à partir du panneau `/mcp` et de `claude mcp login`, car [leur connexion fonctionne uniquement via claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai).3234Vous avez lancé une connexion pour un serveur MCP dont l'URL pointe vers un hôte de connecteur hébergé par Anthropic qui s'authentifie via un fournisseur d'identité tiers. Ces hôtes incluent `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com` et `gcal.mcp.claude.com`. Claude Code refuse de démarrer son flux OAuth local pour ces hôtes, aussi bien depuis le panneau `/mcp` que depuis `claude mcp login`, car [leur connexion ne fonctionne que via claude.ai](/docs/fr/mcp#use-mcp-servers-from-claude-ai).

3212 3235 

3213```text theme={null}3236```text theme={null}

3214"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.3237"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.


3217**Que faire :**3240**Que faire :**

3218 3241 

3219* Supprimez votre entrée avec `claude mcp remove <name>`, afin qu'elle ne puisse pas masquer le connecteur claude.ai à la même URL3242* Supprimez votre entrée avec `claude mcp remove <name>`, afin qu'elle ne puisse pas masquer le connecteur claude.ai à la même URL

3220* Après l'avoir supprimée, connectez le service à [claude.ai/customize/connectors](https://claude.ai/customize/connectors), tout en étant connecté au compte que vous utilisez dans Claude Code. Une fois connecté, [le connecteur apparaît dans Claude Code automatiquement](/docs/fr/mcp#use-mcp-servers-from-claude-ai) si votre méthode d'authentification active est une connexion d'abonnement claude.ai3243* Après l'avoir supprimée, connectez le service sur [claude.ai/customize/connectors](https://claude.ai/customize/connectors), en étant connecté au compte que vous utilisez dans Claude Code. Une fois la connexion établie, [le connecteur apparaît automatiquement dans Claude Code](/docs/fr/mcp#use-mcp-servers-from-claude-ai) si votre méthode d'authentification active est une connexion avec un abonnement claude.ai

3221 3244 

3222<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">3245<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">

3223 Le serveur a rejeté l'en-tête Authorization créé par le headersHelper configuré3246 Le serveur a rejeté l'en-tête Authorization généré par le headersHelper configuré

3224</h3>3247</h3>

3225 3248 

3226Un serveur MCP dont le [`headersHelper`](/docs/fr/mcp#use-dynamic-headers-for-custom-authentication) fournit l'en-tête `Authorization` a répondu à la connexion avec HTTP 401 ou 403, donc Claude Code signale la connexion comme échouée. Parce que le helper fournit l'en-tête `Authorization`, Claude Code [ne revient pas à OAuth](/docs/fr/mcp#authenticate-with-remote-mcp-servers) pour le serveur :3249Un serveur MCP dont le [`headersHelper`](/docs/fr/mcp#use-dynamic-headers-for-custom-authentication) fournit l'en-tête `Authorization` a répondu à la connexion par un HTTP 401 ou 403, donc Claude Code signale l'échec de la connexion. Comme le helper fournit l'en-tête `Authorization`, Claude Code [ne bascule pas sur OAuth](/docs/fr/mcp#authenticate-with-remote-mcp-servers) pour ce serveur :

3227 3250 

3228```text theme={null}3251```text theme={null}

3229Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.3252Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

3230```3253```

3231 3254 

3232Claude Code réexécute le helper à chaque tentative de connexion, donc une nouvelle tentative après un rejet transitoire, tel qu'une course de rotation de jeton, peut réussir avec une nouvelle credential.3255Claude Code réexécute le helper à chaque tentative de connexion, donc une nouvelle tentative après un rejet transitoire, comme une situation de concurrence lors de la rotation d'un jeton, peut réussir avec des identifiants renouvelés.

3233 3256 

3234**Que faire :**3257**Que faire :**

3235 3258 

3236* Exécutez la commande `headersHelper` vous-même de la façon que Claude Code l'exécute : à partir du [répertoire où Claude Code l'exécute](/docs/fr/mcp#where-the-helper-runs), avec les [variables d'environnement que Claude Code définit pour elle](/docs/fr/mcp#use-dynamic-headers-for-custom-authentication), et sans les [variables de credential que Claude Code supprime](/docs/fr/mcp#which-variables-a-helper-can-read) pour un serveur à partir d'un `.mcp.json` de projet, d'un plugin, ou d'un fichier d'agent de projet. Vérifiez qu'elle imprime une valeur `Authorization` que le point de terminaison du serveur accepte3259* Exécutez vous-même la commande `headersHelper` de la même manière que Claude Code l'exécute : depuis le [répertoire dans lequel Claude Code l'exécute](/docs/fr/mcp#where-the-helper-runs), avec les [variables d'environnement que Claude Code définit pour elle](/docs/fr/mcp#use-dynamic-headers-for-custom-authentication), et sans les [variables d'identifiants que Claude Code supprime](/docs/fr/mcp#which-variables-a-helper-can-read) pour un serveur provenant d'un fichier `.mcp.json` de projet, d'un plugin ou d'un fichier d'agent de projet. Vérifiez qu'elle affiche une valeur `Authorization` acceptée par l'endpoint du serveur

3237* Après avoir corrigé le helper ou sa source de credential, sélectionnez le serveur dans `/mcp` et choisissez **Reconnect**3260* Après avoir corrigé le helper ou la source de ses identifiants, sélectionnez le serveur dans `/mcp` et choisissez **Reconnect**

3238 3261 

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

3240 3263 

3241<h3 id="mcp-permission-prompt-tool-not-found">3264<h3 id="mcp-permission-prompt-tool-not-found">

3242 Outil d'invite de permission MCP non trouvé3265 Outil de demande de permission MCP introuvable

3243</h3>3266</h3>

3244 3267 

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

3246 3269 

3247```text theme={null}3270```text theme={null}

3248Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none3271Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

3249```3272```

3250 3273 

3251La liste après `Available MCP tools:` nomme les outils MCP qui étaient connectés lorsque l'attente s'est terminée.3274La liste après `Available MCP tools:` nomme les outils MCP qui étaient connectés.

3252 3275 

3253**Que faire :**3276**Que faire :**

3254 3277 

3255* Vérifiez que le serveur démarre et reste connecté : exécutez `claude mcp list` dans le même répertoire et confirmez que le serveur est listé comme connecté3278* Vérifiez que le serveur démarre et reste connecté : exécutez `claude mcp list` dans le même répertoire et confirmez que le serveur est listé comme connecté

3256* Confirmez que le nom de l'outil correspond au nom `mcp__<server>__<tool>` que le serveur expose3279* Confirmez que le nom de l'outil correspond au nom `mcp__<server>__<tool>` qu'expose le serveur

3257* Si le serveur a besoin de plus de 30 secondes pour démarrer, augmentez [`MCP_TIMEOUT`](/docs/fr/env-vars)3280* Si le serveur a besoin de plus de 30 secondes pour démarrer, augmentez [`MCP_TIMEOUT`](/docs/fr/env-vars)

3258 3281 

3259<h3 id="oauth-callback-port-is-already-in-use">3282<h3 id="oauth-callback-port-is-already-in-use">

3260 Le port de rappel OAuth est déjà en cours d'utilisation3283 Le port de callback OAuth est déjà utilisé

3261</h3>3284</h3>

3262 3285 

3263Lorsque vous vous connectez à un serveur MCP distant avec OAuth, Claude Code démarre un écouteur local pour recevoir le rappel de connexion. Si le port dont cet écouteur a besoin est détenu par un autre processus, la connexion échoue avec ce message. Cela se produit principalement avec un [port de rappel fixe](/docs/fr/mcp#use-a-fixed-oauth-callback-port) défini via la variable [`MCP_OAUTH_CALLBACK_PORT`](/docs/fr/env-vars) ou `--callback-port`, car sans celui-ci Claude Code choisit un port disponible.3286Lorsque vous vous connectez à un serveur MCP distant avec OAuth, Claude Code démarre un écouteur local pour recevoir le callback de connexion. Si le port dont cet écouteur a besoin est occupé par un autre processus, la connexion échoue avec ce message. Cela se produit surtout avec un [port de callback fixe](/docs/fr/mcp#use-a-fixed-oauth-callback-port) défini via la variable [`MCP_OAUTH_CALLBACK_PORT`](/docs/fr/env-vars) ou `--callback-port`, car sans cela Claude Code choisit un port disponible.

3264 3287 

3265```text theme={null}3288```text theme={null}

3266OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.3289OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.

3267```3290```

3268 3291 

3269Sur Windows, la commande suggérée est `netstat -ano | findstr :<port>` à la place.3292Sur Windows, la commande suggérée est plutôt `netstat -ano | findstr :<port>`.

3270 3293 

3271**Que faire :**3294**Que faire :**

3272 3295 

3273* Exécutez la commande du message pour trouver le processus qui détient le port, et arrêtez-le ou attendez qu'il se termine3296* Exécutez la commande du message pour trouver le processus qui occupe le port, puis arrêtez-le ou attendez qu'il se termine

3274* Si un autre programme a besoin de ce port de manière permanente, enregistrez un URI de redirection différent auprès du serveur et définissez son port avec `MCP_OAUTH_CALLBACK_PORT` ou `--callback-port`, selon celui que vous utilisez3297* Si un autre programme a besoin de ce port en permanence, enregistrez une autre URI de redirection auprès du serveur et définissez son port avec `MCP_OAUTH_CALLBACK_PORT` ou `--callback-port`, selon ce que vous utilisez

3275* Puis démarrez la connexion à nouveau, par exemple en sélectionnant le serveur dans `/mcp`3298* Relancez ensuite la connexion, par exemple en sélectionnant le serveur dans `/mcp`

3276 3299 

3277<h3 id="no-available-ports-for-oauth-redirect">3300<h3 id="no-available-ports-for-oauth-redirect">

3278 Aucun port disponible pour la redirection OAuth3301 Aucun port disponible pour la redirection OAuth

3279</h3>3302</h3>

3280 3303 

3281Lorsque vous vous connectez à un serveur MCP distant avec [OAuth](/docs/fr/mcp#authenticate-with-remote-mcp-servers), Claude Code démarre un écouteur local pour recevoir le rappel de connexion. La connexion échoue avec ce message lorsque Claude Code ne peut pas lier un port local pour cela. Quelque chose sur la machine empêche d'écouter sur `127.0.0.1`, par exemple un logiciel de sécurité ou une politique de sandbox qui refuse les écouteurs locaux.3304Lorsque vous vous connectez à un serveur MCP distant avec [OAuth](/docs/fr/mcp#authenticate-with-remote-mcp-servers), Claude Code démarre un écouteur local pour recevoir le callback de connexion. La connexion échoue avec ce message lorsque Claude Code ne parvient pas à lier un port local pour cet écouteur. Un élément de la machine l'empêche d'écouter sur `127.0.0.1`, par exemple un logiciel de sécurité ou une politique de sandbox qui interdit les écouteurs locaux.

3282 3305 

3283```text theme={null}3306```text theme={null}

3284No available ports for OAuth redirect3307No available ports for OAuth redirect

3285```3308```

3286 3309 

3287Avant la v2.1.268, Claude Code ne revenait pas à un port assigné par le système d'exploitation, donc le message apparaissait également lorsque seuls ses ports auto-sélectionnés ne pouvaient pas être liés. Cela peut se produire sur les hôtes Windows où Hyper-V réserve des plages de ports qui couvrent les ports que Claude Code choisit.3310Avant la v2.1.268, Claude Code ne se rabattait pas sur un port attribué par le système d'exploitation, donc le message apparaissait aussi lorsque seuls les ports qu'il avait lui-même choisis ne pouvaient pas être liés. Cela peut se produire sur les hôtes Windows où Hyper-V réserve des plages de ports couvrant les ports parmi lesquels Claude Code choisit.

3288 3311 

3289**Que faire :**3312**Que faire :**

3290 3313 

3291* Vérifiez si un logiciel de sécurité ou une politique de sandbox bloque les processus d'écoute sur `127.0.0.1`, et autorisez Claude Code à lier un port local3314* Vérifiez si un logiciel de sécurité ou une politique de sandbox empêche les processus d'écouter sur `127.0.0.1`, et autorisez Claude Code à lier un port local

3292* Puis démarrez la connexion à nouveau, par exemple en sélectionnant le serveur dans `/mcp`3315* Relancez ensuite la connexion, par exemple en sélectionnant le serveur dans `/mcp`

3293 3316 

3294<h3 id="security-review-fails-without-origin-head">3317<h3 id="security-review-fails-without-origin-head">

3295 /security-review échoue sans origin/HEAD3318 /security-review échoue sans origin/HEAD

3296</h3>3319</h3>

3297 3320 

3298[`/security-review`](/docs/fr/commands#all-commands) construit son contexte d'examen en comparant votre branche avec `origin/HEAD`, la référence locale qui enregistre quelle branche est la branche par défaut sur votre télécommande `origin`. Lorsque cette référence n'existe pas, les commandes git qui rassemblent la comparaison échouent et l'examen s'arrête avant de commencer.3321[`/security-review`](/docs/fr/commands#all-commands) construit son contexte de revue en calculant le diff de votre branche par rapport à `origin/HEAD`, la référence locale qui enregistre quelle branche est la branche par défaut de votre remote `origin`. Lorsque cette référence n'existe pas, les commandes git qui rassemblent le diff échouent et la revue s'arrête avant de commencer.

3299 3322 

3300```text theme={null}3323```text theme={null}

3301Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3324Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3304'git <command> [<revision>...] -- [<file>...]'3327'git <command> [<revision>...] -- [<file>...]'

3305```3328```

3306 3329 

3307Le message peut citer `git log` ou une `git diff` différente à la place. Git crée `origin/HEAD` uniquement lorsque la télécommande annonce une branche par défaut et que votre refspec de récupération la couvre, ce qu'un `git clone` complet d'une télécommande avec des commits fait. La référence manque dans ces configurations :3330Le message peut citer `git log` ou une autre commande `git diff` à la place. Git ne crée `origin/HEAD` que lorsque le remote annonce une branche par défaut et que votre refspec de fetch la couvre, ce que fait un `git clone` complet d'un remote contenant des commits. La référence est absente dans ces configurations :

3308 3331 

3309* Un checkout à branche unique ou CI, qui récupère un refspec trop étroit3332* Un checkout à branche unique ou de CI, qui récupère un refspec trop restreint

3310* Une télécommande dont le HEAD côté serveur pointe vers une branche que personne n'a poussée3333* Un remote dont le HEAD côté serveur pointe vers une branche que personne n'a poussée

3311* Un référentiel sans télécommande `origin`, ou une que vous n'avez jamais récupérée3334* Un dépôt sans remote `origin`, ou un remote que vous n'avez jamais récupéré

3312 3335 

3313Claude Code affiche la même erreur pour tout skill qui [injecte du contexte dynamique](/docs/fr/skills#when-an-injected-command-fails), et une commande injectée échouée abandonne l'invocation de ce skill. Deux chaînes sœurs se déclenchent avant l'exécution de la commande :3336Claude Code affiche la même erreur pour tout skill qui [injecte du contexte dynamique](/docs/fr/skills#when-an-injected-command-fails), et une commande injectée en échec interrompt l'invocation de ce skill. Deux messages apparentés se déclenchent avant même l'exécution de la commande :

3314 3337 

3315* `Shell command permission check failed for pattern "..."`: la vérification de permission de la commande ne l'a pas autorisée. [Les vérifications de permission sur les commandes injectées](/docs/fr/skills#permission-checks-on-injected-commands) couvrent quels résultats abandonnent dans chaque mode de permission et comment pré-approuver une commande avec `allowed-tools`3338* `Shell command permission check failed for pattern "..."` : la vérification des permissions de la commande ne l'a pas autorisée. [Vérifications des permissions sur les commandes injectées](/docs/fr/skills#permission-checks-on-injected-commands) indique quels résultats provoquent l'interruption dans chaque mode de permission et comment pré-approuver une commande avec `allowed-tools`

3316* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: le frontmatter du skill exige bash sur une machine sans celui-ci. Installez Git pour Windows ou changez le frontmatter en `shell: powershell`. Voir [Comment les commandes injectées s'exécutent](/docs/fr/skills#how-injected-commands-run)3339* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` : le frontmatter du skill exige bash sur une machine qui ne l'a pas. Installez Git for Windows ou modifiez le frontmatter en `shell: powershell`. Consultez [Comment s'exécutent les commandes injectées](/docs/fr/skills#how-injected-commands-run)

3317 3340 

3318**Que faire :**3341**Que faire :**

3319 3342 

3320* Créez la référence en nommant la branche par défaut de votre télécommande : `git remote set-head origin <default-branch>`. Cela fonctionne chaque fois que la référence de suivi locale `origin/<default-branch>` existe. Si ce n'est pas le cas, comme dans les clones à branche unique, récupérez d'abord la branche : exécutez `git remote set-branches --add origin <branch>`, puis `git fetch origin`, puis réexécutez la commande set-head. Réexécutez `/security-review`.3343* Créez la référence en nommant la branche par défaut de votre remote : `git remote set-head origin <default-branch>`. Cela fonctionne dès lors que la référence de suivi locale `origin/<default-branch>` existe. Si ce n'est pas le cas, comme dans les clones à branche unique, récupérez d'abord la branche : exécutez `git remote set-branches --add origin <branch>`, puis `git fetch origin`, puis exécutez à nouveau la commande set-head. Exécutez à nouveau `/security-review`.

3321* Si vous préférez ne pas nommer la branche, exécutez `git fetch origin` puis `git remote set-head origin --auto`, qui demande à la télécommande quelle branche est sa branche par défaut. Elle échoue avec `error: Cannot determine remote HEAD` lorsque la télécommande n'annonce aucune branche par défaut, car elle est vide ou son HEAD pointe vers une branche que personne n'a poussée ; nommez la branche explicitement à la place. Elle échoue avec `error: Not a valid ref` lorsque votre clone ne récupère pas cette branche ; élargissez le refspec comme ci-dessus d'abord.3344* Si vous préférez ne pas nommer la branche, exécutez `git fetch origin` puis `git remote set-head origin --auto`, qui demande au remote quelle est sa branche par défaut. Cela échoue avec `error: Cannot determine remote HEAD` lorsque le remote n'annonce aucune branche par défaut, parce qu'il est vide ou que son HEAD pointe vers une branche que personne n'a poussée ; nommez alors explicitement la branche. Cela échoue avec `error: Not a valid ref` lorsque votre clone ne récupère pas cette branche ; élargissez d'abord le refspec comme indiqué ci-dessus.

3322* Si le référentiel n'a pas de télécommande, ajoutez-en une avec `git remote add origin <url>` et récupérez avant de créer la référence. Si la télécommande est vide, poussez votre branche d'abord avec `git push -u origin HEAD` et nommez cette branche dans la commande set-head ; `origin/HEAD` pointe alors vers la branche que vous venez de pousser, donc `/security-review` voit une comparaison vide jusqu'à ce que la branche diverge de celle-ci.3345* Si le dépôt n'a pas de remote, ajoutez-en un avec `git remote add origin <url>` et effectuez un fetch avant de créer la référence. Si le remote est vide, poussez d'abord votre branche avec `git push -u origin HEAD` et nommez cette branche dans la commande set-head ; `origin/HEAD` pointe alors vers la branche que vous venez de pousser, donc `/security-review` voit un diff vide jusqu'à ce que la branche diverge de celle-ci.

3323 3346 

3324<h3 id="input-must-be-provided-when-using-print">3347<h3 id="input-must-be-provided-when-using-print">

3325 L'entrée doit être fournie lors de l'utilisation de `--print`3348 Une entrée doit être fournie lors de l'utilisation de `--print`

3326</h3>3349</h3>

3327 3350 

3328Le `claude` nu a besoin que stdout soit un terminal pour démarrer l'interface utilisateur interactive. Lorsque stdout est redirigé, ou que la console n'est pas un vrai terminal, tel que PowerShell ISE et certains volets de sortie IDE, `claude` s'exécute [de manière non interactive](/docs/fr/headless) à la place. C'est le même mode que `claude -p`, qui nécessite une invite, donc le message nomme `--print` même si vous n'avez pas transmis l'indicateur. Transmettre `-p`/`--print` sans invite et rien canalisé sur stdin produit la même erreur n'importe où.3351`claude` sans argument a besoin que stdout soit un terminal pour démarrer l'interface interactive. Lorsque stdout est redirigé, ou que la console n'est pas un véritable terminal, comme PowerShell ISE et certains volets de sortie d'IDE, `claude` s'exécute plutôt en [mode non interactif](/docs/fr/headless). C'est le même mode que `claude -p`, qui exige un prompt, donc le message nomme `--print` même si vous n'avez pas passé ce flag. Passer `-p`/`--print` sans prompt et sans rien transmettre par pipe sur stdin produit la même erreur, quel que soit l'environnement.

3329 3352 

3330```text theme={null}3353```text theme={null}

3331Error: Input must be provided either through stdin or as a prompt argument when using --print3354Error: Input must be provided either through stdin or as a prompt argument when using --print


3333 3356 

3334**Que faire :**3357**Que faire :**

3335 3358 

3336* Pour une utilisation interactive, exécutez `claude` dans un vrai terminal : Windows Terminal ou la console PowerShell plutôt que ISE, et le terminal intégré de votre IDE plutôt qu'un volet de sortie3359* Pour une utilisation interactive, exécutez `claude` dans un véritable terminal : Windows Terminal ou la console PowerShell plutôt qu'ISE, et le terminal intégré de votre IDE plutôt qu'un volet de sortie

3337* Pour une utilisation ponctuelle, transmettez l'invite : `claude -p "your question"`, ou canalisez-la avec `echo "your question" | claude -p`3360* Pour une utilisation ponctuelle, passez le prompt : `claude -p "your question"`, ou transmettez-le par pipe avec `echo "your question" | claude -p`

3338 3361 

3339<h3 id="input-contained-only-whitespace">3362<h3 id="input-contained-only-whitespace">

3340 L'entrée contenait uniquement des espaces blancs3363 L'entrée ne contenait que des espaces

3341</h3>3364</h3>

3342 3365 

3343En [mode non interactif](/docs/fr/headless), Claude Code refuse une invite composée entièrement d'espaces, de tabulations ou de sauts de ligne au lieu de l'envoyer, car l'API rejette les messages sans texte visible. Le message que vous voyez dépend de l'endroit d'où provient l'invite vide :3366En [mode non interactif](/docs/fr/headless), Claude Code refuse un prompt composé entièrement d'espaces, de tabulations ou de sauts de ligne au lieu de l'envoyer, car l'API rejette les messages sans texte visible. Le message que vous voyez dépend de la provenance du prompt vide :

3344 3367 

3345* **Argument d'invite ou stdin canalisé pour `claude -p`** : `claude` se termine avec `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`3368* **Argument de prompt ou stdin transmis par pipe à `claude -p`** : `claude` se termine avec `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`

3346* **Message soumis à une session `--input-format stream-json` ou [Agent SDK](/docs/fr/agent-sdk/overview) en cours d'exécution** : Claude Code termine le tour sans appeler le modèle et la session reste utilisable. Le refus arrive comme un message informatif et comme le texte de résultat du tour : `Blank prompt — the message was only whitespace, so nothing was sent to the model.`3369* **Message soumis à une session `--input-format stream-json` ou [Agent SDK](/docs/fr/agent-sdk/overview) en cours** : Claude Code termine le tour sans appeler le modèle et la session reste utilisable. Le refus arrive sous la forme d'un message d'information et du texte de résultat du tour : `Blank prompt — the message was only whitespace, so nothing was sent to the model.`

3347 3370 

3348Avant la v2.1.229, Claude Code envoyait le message contenant uniquement des espaces blancs à l'API, qui rejetait la demande avec une erreur 400.3371Avant la v2.1.229, Claude Code envoyait le message composé uniquement d'espaces à l'API, qui rejetait la requête avec une erreur 400.

3349 3372 

3350**Que faire :**3373**Que faire :**

3351 3374 

3352* Incluez du texte visible dans l'invite. Si un script construit l'invite à partir d'une variable ou d'un fichier, vérifiez que la source n'est pas vide avant d'appeler Claude Code.3375* Incluez du texte visible dans le prompt. Si un script construit le prompt à partir d'une variable ou d'un fichier, vérifiez que la source n'est pas vide avant d'appeler Claude Code.

3353 3376 

3354<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">3377<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">

3355 L'entrée stream-json a porté plus de 256 M caractères sans nouvelle ligne3378 L'entrée stream-json contenait plus de 256M caractères sans saut de ligne

3356</h3>3379</h3>

3357 3380 

3358Votre programme a envoyé plus de 268 435 456 caractères sur stdin sans nouvelle ligne à une exécution `claude -p --input-format stream-json`, donc Claude Code imprime cette erreur sur stderr et se termine avec le code 1 au lieu de mettre en mémoire tampon plus d'entrée. Le message énonce ce budget comme `256M`. Avant la v2.1.257, Claude Code mettait en mémoire tampon une telle entrée sans limite, augmentant la mémoire jusqu'à ce que le processus s'écrase ou soit tué.3381Votre programme a envoyé plus de 268 435 456 caractères sur stdin sans saut de ligne à une exécution `claude -p --input-format stream-json`, donc Claude Code affiche cette erreur sur stderr et se termine avec le code 1 au lieu de mettre davantage d'entrée en mémoire tampon. Le message exprime ce budget sous la forme `256M`. Avant la v2.1.257, Claude Code mettait une telle entrée en mémoire tampon sans limite, faisant croître la mémoire jusqu'à ce que le processus plante ou soit tué.

3359 3382 

3360```text theme={null}3383```text theme={null}

3361Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.3384Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

3362```3385```

3363 3386 

3364Une entrée aussi longue sans nouvelle ligne signifie généralement que le producteur n'est pas du tout un producteur stream-json, tel qu'un fichier binaire ou une sortie de journal ordinaire canalisée par accident. Un seul message dépassant le budget échoue la même vérification.3387Une entrée aussi longue sans saut de ligne signifie généralement que le producteur n'est pas du tout un producteur stream-json, comme un fichier binaire ou une sortie de log en texte brut transmise par pipe par erreur. Un seul message dépassant le budget échoue à la même vérification.

3365 3388 

3366**Que faire :**3389**Que faire :**

3367 3390 

3368* Vérifiez ce qui est canalisé sur stdin. Avec [`--input-format stream-json`](/docs/fr/cli-reference#cli-flags), chaque message doit être une ligne JSON terminée par une nouvelle ligne3391* Vérifiez ce qui est transmis par pipe sur stdin. Avec [`--input-format stream-json`](/docs/fr/cli-reference#cli-flags), chaque message doit être une ligne JSON unique terminée par un saut de ligne

3369* Pour envoyer du texte ordinaire à la place, supprimez `--input-format stream-json` ; `claude -p` lit une invite en texte ordinaire à partir de stdin par défaut3392* Pour envoyer du texte brut à la place, supprimez `--input-format stream-json` ; `claude -p` lit par défaut un prompt en texte brut depuis stdin

3370 3393 

3371<h3 id="unknown-command">3394<h3 id="unknown-command">

3372 Commande inconnue3395 Commande inconnue

3373</h3>3396</h3>

3374 3397 

3375Dans une session de terminal interactive, vous avez soumis un nom `/` qui ne correspond à aucune commande dans cette session, donc Claude Code signale le nom au lieu d'exécuter quoi que ce soit :3398Dans une session de terminal interactive, vous avez soumis un nom `/` qui ne correspond à aucune commande de cette session, donc Claude Code signale le nom au lieu d'exécuter quoi que ce soit :

3376 3399 

3377```text theme={null}3400```text theme={null}

3378Unknown command: /hepl. Did you mean /help?3401Unknown command: /hepl. Did you mean /help?

3379```3402```

3380 3403 

3381Claude Code suggère le nom de commande ou l'alias le plus proche que le menu énumère dans cette session. Lorsque rien n'est proche, le message se termine après le nom. La cause est généralement l'une des suivantes :3404Claude Code suggère le nom de commande ou l'alias le plus proche parmi ceux que le menu liste dans cette session. Lorsque rien n'est proche, le message s'arrête après le nom. La cause est généralement l'une des suivantes :

3382 3405 

3383* Une faute de frappe, telle que `/hepl` pour `/help`. [Comment le menu de commande correspond à ce que vous tapez](/docs/fr/commands#how-the-command-menu-matches-what-you-type) couvre le choix d'une correspondance proche avant de soumettre3406* Une faute de frappe, comme `/hepl` pour `/help`. [Comment le menu des commandes fait correspondre ce que vous tapez](/docs/fr/commands#how-the-command-menu-matches-what-you-type) explique comment choisir une correspondance proche avant de soumettre

3384* Une commande qui existe mais n'est pas disponible dans cette session car une exigence n'est pas satisfaite, telle que votre plateforme, plan ou méthode d'authentification. Les entrées de dépannage pour [`/web-setup`](/docs/fr/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) et [`/schedule`](/docs/fr/routines#schedule-returns-unknown-command) parcourent deux cas courants. Certaines commandes répondent avec leur propre message lorsque la politique de votre organisation les désactive, telles que [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3407* Une commande qui existe mais n'est pas disponible dans cette session parce qu'une condition n'est pas remplie, comme votre plateforme, votre forfait ou votre méthode d'authentification. Les entrées de dépannage pour [`/web-setup`](/docs/fr/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) et [`/schedule`](/docs/fr/routines#schedule-returns-unknown-command) détaillent deux cas courants. Certaines commandes répondent par leur propre message lorsque la politique de votre organisation les désactive, comme [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

3385* Une commande d'un [plugin](/docs/fr/plugins/overview) ou [serveur MCP](/docs/fr/mcp#use-mcp-prompts-as-commands) qui n'est pas installé ou connecté dans cette session3408* Une commande provenant d'un [plugin](/docs/fr/plugins/overview) ou d'un [serveur MCP](/docs/fr/mcp#use-mcp-prompts-as-commands) qui n'est pas installé ou connecté dans cette session

3386 3409 

3387Claude Code répond à un nom `/` non appairé de cette manière uniquement dans une session de terminal interactive. Dans toute autre session, il envoie l'invite à Claude comme un message normal à la place, avec une note que la commande n'a pas s'exécutée et une liste de commandes que Claude peut exécuter dans la session. Ces sessions incluent :3410Claude Code ne répond de cette manière à un nom `/` sans correspondance que dans une session de terminal interactive. Dans toutes les autres sessions, il envoie plutôt le prompt à Claude comme un message normal, accompagné d'une note indiquant que la commande ne s'est pas exécutée et d'une liste des commandes que Claude peut exécuter dans la session. Ces sessions incluent :

3388 3411 

3389* Les exécutions `-p`3412* Les exécutions `-p`

3390* Les applications [Agent SDK](/docs/fr/agent-sdk/overview)3413* Les applications [Agent SDK](/docs/fr/agent-sdk/overview)

3391* L'onglet Code de l'[application Desktop](/docs/fr/desktop)3414* L'onglet Code de l'[application Desktop](/docs/fr/desktop)

3392* Le panneau de chat de l'[extension VS Code](/docs/fr/vs-code)3415* Le panneau de chat de l'[extension VS Code](/docs/fr/vs-code)

3393* Les [sessions cloud](/docs/fr/claude-code-on-the-web) et [routines](/docs/fr/routines)3416* Les [sessions cloud](/docs/fr/claude-code-on-the-web) et les [routines](/docs/fr/routines)

3394 3417 

3395Pour une commande intégrée qui ne peut pas s'exécuter dans l'une de ces sessions, Claude Code répond toujours que la commande n'est pas disponible au lieu de l'envoyer à Claude. Avant la v2.1.274, seules les sessions cloud et les routines envoyaient un nom non appairé à Claude. Avant la v2.1.273, elles répondaient également `Unknown command`.3418Pour une commande intégrée qui ne peut pas s'exécuter dans l'une de ces sessions, Claude Code répond quand même que la commande n'est pas disponible au lieu de l'envoyer à Claude. Avant la v2.1.274, seules les sessions cloud et les routines envoyaient un nom sans correspondance à Claude. Avant la v2.1.273, elles répondaient aussi `Unknown command`.

3396 3419 

3397Claude Code ne traite pas chaque invite qui commence par `/` comme une commande. Il envoie l'invite à Claude comme un message normal lorsque le premier mot après le `/` commence par la ponctuation, telle que le `/--` qui ouvre un commentaire de document Lean, ou est un chemin tel que `/var/log/syslog`.3420Claude Code ne traite pas comme une commande tout prompt commençant par `/`. Il envoie le prompt à Claude comme un message normal lorsque le premier mot après le `/` commence par un signe de ponctuation, comme le `/--` qui ouvre un commentaire de documentation Lean, ou lorsqu'il s'agit d'un chemin tel que `/var/log/syslog`.

3398 3421 

3399Avant la v2.1.236, si vous aviez appuyé sur `Entrée` tandis que le menu de commande énumérait une correspondance proche du nom que vous aviez tapé, Claude Code exécutait cette correspondance, donc une faute de frappe telle que `/hepl` exécutait `/help` au lieu de produire ce message.3422Avant la v2.1.236, si vous appuyiez sur `Enter` alors que le menu des commandes listait une correspondance proche du nom que vous aviez tapé, Claude Code exécutait cette correspondance, donc une faute de frappe telle que `/hepl` exécutait `/help` au lieu de produire ce message.

3400 3423 

3401**Que faire :**3424**Que faire :**

3402 3425 

3403* Exécutez le nom suggéré, ou tapez `/` suivi d'une partie du nom pour voir ce qui est disponible dans cette session3426* Exécutez le nom suggéré, ou tapez `/` suivi d'une partie du nom pour voir ce qui est disponible dans cette session

3404* Si Claude Code signale une commande documentée comme inconnue, vérifiez sa ligne dans la [référence des commandes](/docs/fr/commands) pour l'exigence qu'elle nomme3427* Si Claude Code signale comme inconnue une commande documentée, consultez sa ligne dans la [référence des commandes](/docs/fr/commands) pour connaître la condition qu'elle indique

3405 3428 

3406<h3 id="diff-is-too-large-for-ultrareview">3429<h3 id="diff-is-too-large-for-ultrareview">

3407 La comparaison est trop grande pour ultrareview3430 Le diff est trop volumineux pour ultrareview

3408</h3>3431</h3>

3409 3432 

3410La comparaison entre votre branche et la branche de base, y compris les modifications non validées et mises en scène, dépasse les limites de taille pour un [ultrareview](/docs/fr/ultrareview), donc `/code-review ultra` et la sous-commande `claude ultrareview` refusent l'examen avant le démarrage de la session cloud. Un examen refusé n'utilise pas une exécution gratuite et ne facture pas les crédits d'utilisation. Le message nomme les limites en vigueur, la taille de votre comparaison et les fichiers qui contribuent le plus de lignes modifiées. Avant la v2.1.216, le message affichait uniquement les statistiques de comparaison brutes.3433Le diff entre votre branche et la branche de base, y compris les modifications non commitées et indexées, dépasse les limites de taille d'une [ultrareview](/docs/fr/ultrareview), donc `/code-review ultra` et la sous-commande `claude ultrareview` refusent la revue avant le démarrage de la session cloud. Une revue refusée ne consomme pas d'exécution gratuite et ne facture pas de crédits d'utilisation. Le message nomme les limites en vigueur, la taille de votre diff et les fichiers qui contribuent le plus aux lignes modifiées. Avant la v2.1.216, le message n'affichait que les statistiques brutes du diff.

3411 3434 

3412```text theme={null}3435```text theme={null}

3413Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.3436Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.

3414```3437```

3415 3438 

3416L'examen d'une demande de tirage applique les mêmes limites ; cette forme du message commence par `PR #<N> is too large for ultrareview` et nomme les comptes de fichiers et de lignes de la demande de tirage.3439La revue d'une pull request applique les mêmes limites ; cette forme du message commence par `PR #<N> is too large for ultrareview` et nomme le nombre de fichiers et de lignes de la PR.

3417 3440 

3418**Que faire :**3441**Que faire :**

3419 3442 

3420* Transmettez une branche de base plus proche de votre travail, telle que `/code-review ultra develop`, afin que l'examen couvre uniquement la comparaison par rapport à cette branche3443* Passez une branche de base plus proche de votre travail, comme `/code-review ultra develop`, afin que la revue ne couvre que le diff par rapport à cette branche

3421* Divisez la modification en branches plus petites et examinez chacune. Les fichiers que le message nomme contribuent le plus de lignes modifiées, donc commencez par déplacer ceux-ci vers leur propre branche.3444* Divisez la modification en branches plus petites et faites la revue de chacune. Les fichiers nommés par le message contribuent le plus aux lignes modifiées, commencez donc par les déplacer dans leur propre branche.

3422 3445 

3423<h3 id="could-not-find-merge-base-with-the-base-branch">3446<h3 id="could-not-find-merge-base-with-the-base-branch">

3424 Impossible de trouver la base de fusion avec la branche de base3447 Impossible de trouver la merge-base avec la branche de base

3425</h3>3448</h3>

3426 3449 

3427`/code-review ultra` et la sous-commande `claude ultrareview` examinent la comparaison entre votre branche et une branche de base, ce qui nécessite un commit que les deux partagent. Lorsque `git merge-base` n'en trouve aucun, Claude Code refuse l'examen avant le démarrage de la session cloud. Sur un clone que Claude Code peut vérifier comme complet, avec au moins une branche, il revient à [examiner chaque fichier suivi](/docs/fr/ultrareview#diff-limits-and-fallbacks) au lieu de refuser. Vous voyez ce refus lorsque la branche de base ne peut pas être trouvée du tout, lorsque Claude Code ne peut pas vérifier que votre clone est complet, ou dans le rare référentiel où la comparaison de l'arborescence entière n'est pas possible, telle que le format d'objet SHA-256.3450`/code-review ultra` et la sous-commande `claude ultrareview` font la revue du diff entre votre branche et une branche de base, ce qui nécessite un commit commun aux deux. Lorsque `git merge-base` n'en trouve aucun, Claude Code refuse la revue avant le démarrage de la session cloud. Sur un clone dont Claude Code peut vérifier qu'il est complet, avec au moins une branche, il bascule sur [la revue de tous les fichiers suivis](/docs/fr/ultrareview#diff-limits-and-fallbacks) au lieu de refuser. Vous voyez ce refus lorsque la branche de base est introuvable, lorsque Claude Code ne peut pas vérifier que votre clone est complet, ou dans le rare dépôt où le diff de l'arborescence entière n'est pas possible, comme avec le format d'objet SHA-256.

3428 3451 

3429```text theme={null}3452```text theme={null}

3430Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.3453Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.

3431```3454```

3432 3455 

3433L'indice après la première phrase dépend de ce que Claude Code a observé :3456L'indication après la première phrase dépend de ce que Claude Code a observé :

3434 3457 

3435* **Vous n'avez pas transmis une branche de base** : Claude Code a comparé par rapport à la branche par défaut du référentiel et suggère de transmettre votre base explicitement, comme dans l'exemple ci-dessus3458* **Vous n'avez pas passé de branche de base** : Claude Code a effectué la comparaison avec la branche par défaut du dépôt et suggère de passer explicitement votre branche de base, comme dans l'exemple ci-dessus

3436* **Vous avez transmis une branche de base qui était déjà dans votre clone** : l'indice lit ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3459* **Vous avez passé une branche de base déjà présente dans votre clone** : l'indication est ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3437* **Vous avez transmis une branche de base qui n'était pas dans votre clone** : Claude Code l'a récupérée à partir de origin avant de comparer. L'indice lit ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; lorsque Claude Code ne peut pas dire si votre clone est superficiel, il suggère `git fetch --unshallow origin` à la place. Avant la v2.1.221, l'indice suggérait `git fetch --unshallow origin` pour chaque branche de base récupérée, et sur un clone complet cette commande échoue avec `fatal: --unshallow on a complete repository does not make sense`.3460* **Vous avez passé une branche de base absente de votre clone** : Claude Code l'a récupérée depuis origin avant la comparaison. L'indication est ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)`` ; lorsque Claude Code ne peut pas déterminer si votre clone est superficiel, il suggère plutôt `git fetch --unshallow origin`. Avant la v2.1.221, l'indication suggérait `git fetch --unshallow origin` pour chaque branche de base récupérée, et sur un clone complet cette commande échoue avec `fatal: --unshallow on a complete repository does not make sense`.

3438 3461 

3439**Que faire :**3462**Que faire :**

3440 3463 

3441* Si une autre branche est votre vraie base, transmettez-la explicitement : `/code-review ultra <branch>`3464* Si une autre branche est votre véritable base, passez-la explicitement : `/code-review ultra <branch>`

3442* Si votre clone pourrait ne pas avoir l'historique complet, exécutez `git fetch --unshallow origin` et réexécutez l'examen3465* Si votre clone n'a peut-être pas l'historique complet, exécutez `git fetch --unshallow origin` et relancez la revue

3443 3466 

3444<h3 id="your-checkout-has-no-branches">3467<h3 id="your-checkout-has-no-branches">

3445 Votre checkout n'a pas de branches3468 Votre checkout n'a aucune branche

3446</h3>3469</h3>

3447 3470 

3448Un checkout peut avoir des commits mais pas de branches : si vous exécutez `git init` suivi de `git fetch <url>` et `git checkout FETCH_HEAD`, vous obtenez un HEAD détaché sans références. Claude Code empaquette votre référentiel en tant que bundle git pour le télécharger pour un [ultrareview](/docs/fr/ultrareview), et il ne peut pas empaqueter un référentiel qui n'a pas de branches ou d'autres références, donc `/code-review ultra` et la sous-commande `claude ultrareview` refusent l'examen avant le démarrage de la session cloud.3471Un checkout peut avoir des commits mais aucune branche : si vous exécutez `git init` suivi de `git fetch <url>` et `git checkout FETCH_HEAD`, vous obtenez un HEAD détaché sans aucune référence. Claude Code empaquette votre dépôt sous forme de bundle git pour le téléverser en vue d'une [ultrareview](/docs/fr/ultrareview), et il ne peut pas créer de bundle à partir d'un dépôt sans branches ni autres références, donc `/code-review ultra` et la sous-commande `claude ultrareview` refusent la revue avant le démarrage de la session cloud.

3449 3472 

3450```text theme={null}3473```text theme={null}

3451Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.3474Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.

3452```3475```

3453 3476 

3454Avant la v2.1.221, Claude Code tentait d'examiner chaque fichier suivi dans ce checkout, et le téléchargement échouait.3477Avant la v2.1.221, Claude Code tentait de faire la revue de tous les fichiers suivis de ce checkout, et le téléversement échouait.

3455 3478 

3456**Que faire :**3479**Que faire :**

3457 3480 

3458* Créez une branche à votre commit courant avec `git checkout -b <name>`, puis réexécutez l'examen3481* Créez une branche sur votre commit actuel avec `git checkout -b <name>`, puis relancez la revue

3459 3482 

3460<h3 id="no-github-account-is-connected-to-your-claude-account">3483<h3 id="no-github-account-is-connected-to-your-claude-account">

3461 Aucun compte GitHub n'est connecté à votre compte Claude3484 Aucun compte GitHub n'est connecté à votre compte Claude

3462</h3>3485</h3>

3463 3486 

3464Vous avez exécuté `/code-review ultra <PR#>` ou `claude ultrareview <PR#>`, et avant de créer la session cloud Claude Code demande au serveur si [le compte GitHub connecté à votre compte Claude](/docs/fr/ultrareview#review-a-pull-request) peut atteindre le référentiel de la demande de tirage. Aucun compte n'est connecté, ou la connexion a expiré, donc le clone cloud échouerait et Claude Code refuse le lancement. Claude Code ne dépense pas une exécution gratuite ou ne facture pas les crédits d'utilisation pour un lancement refusé.3487Vous avez exécuté `/code-review ultra <PR#>` ou `claude ultrareview <PR#>`, et avant de créer la session cloud, Claude Code demande au serveur si [le compte GitHub connecté à votre compte Claude](/docs/fr/ultrareview#review-a-pull-request) peut accéder au dépôt de la PR. Aucun compte n'est connecté, ou la connexion a expiré, donc le clonage dans le cloud échouerait et Claude Code refuse le lancement. Claude Code ne consomme pas d'exécution gratuite et ne facture pas de crédits d'utilisation pour un lancement refusé.

3465 3488 

3466```text theme={null}3489```text theme={null}

3467Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).3490Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).

3468```3491```

3469 3492 

3470Lorsque [`/web-setup`](/docs/fr/web-quickstart#connect-from-your-terminal) n'est pas disponible dans votre session, le message nomme uniquement le lien claude.ai.3493Lorsque [`/web-setup`](/docs/fr/web-quickstart#connect-from-your-terminal) n'est pas disponible dans votre session, le message ne mentionne que le lien claude.ai.

3471 3494 

3472**Que faire :**3495**Que faire :**

3473 3496 

3474* Exécutez `/web-setup` pour connecter votre connexion GitHub CLI à votre compte Claude, ou connectez un compte à [claude.ai/connect-github](https://claude.ai/connect-github)3497* Exécutez `/web-setup` pour connecter votre identifiant GitHub CLI à votre compte Claude, ou connectez un compte sur [claude.ai/connect-github](https://claude.ai/connect-github)

3475* Réexécutez l'examen une minute après la connexion3498* Relancez la revue une minute après la connexion

3476 3499 

3477Avant la v2.1.248, Claude Code ne vérifiait pas cela avant le lancement.3500Avant la v2.1.248, Claude Code ne vérifiait pas cela avant le lancement.

3478 3501 

3479<h3 id="your-connected-github-account-cant-see-the-repository">3502<h3 id="your-connected-github-account-cant-see-the-repository">

3480 Votre compte GitHub connecté ne peut pas voir le référentiel3503 Votre compte GitHub connecté ne peut pas voir le dépôt

3481</h3>3504</h3>

3482 3505 

3483Vous avez exécuté `/code-review ultra <PR#>` ou `claude ultrareview <PR#>`, et [le compte GitHub connecté à votre compte Claude](/docs/fr/ultrareview#review-a-pull-request) ne peut pas lire le référentiel de la demande de tirage, donc le clone cloud échouerait et Claude Code refuse le lancement. Claude Code ne dépense pas une exécution gratuite ou ne facture pas les crédits d'utilisation pour un lancement refusé.3506Vous avez exécuté `/code-review ultra <PR#>` ou `claude ultrareview <PR#>`, et [le compte GitHub connecté à votre compte Claude](/docs/fr/ultrareview#review-a-pull-request) ne peut pas lire le dépôt de la PR, donc le clonage dans le cloud échouerait et Claude Code refuse le lancement. Claude Code ne consomme pas d'exécution gratuite et ne facture pas de crédits d'utilisation pour un lancement refusé.

3484 3507 

3485```text theme={null}3508```text theme={null}

3486Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.3509Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.

3487```3510```

3488 3511 

3489Lorsque [`/web-setup`](/docs/fr/web-quickstart#connect-from-your-terminal) n'est pas disponible dans votre session, le message nomme uniquement l'installation de l'application.3512Lorsque [`/web-setup`](/docs/fr/web-quickstart#connect-from-your-terminal) n'est pas disponible dans votre session, le message ne mentionne que l'installation de l'application.

3490 3513 

3491**Que faire :**3514**Que faire :**

3492 3515 

3493* Si votre CLI `gh` local peut lire le référentiel, exécutez `/web-setup` pour connecter cette connexion à votre compte Claude3516* Si votre CLI `gh` locale peut lire le dépôt, exécutez `/web-setup` pour connecter cet identifiant à votre compte Claude

3494* Réexécutez l'examen après la modification3517* Relancez la revue après la modification

3495 3518 

3496Avant la v2.1.248, Claude Code ne vérifiait pas cela avant le lancement.3519Avant la v2.1.248, Claude Code ne vérifiait pas cela avant le lancement.

3497 3520 

3498<h3 id="the-github-app-preflight-failed-transiently">3521<h3 id="the-github-app-preflight-failed-transiently">

3499 La vérification préalable de l'application GitHub a échoué de manière transitoire3522 La vérification préalable de la GitHub App a échoué de manière transitoire

3500</h3>3523</h3>

3501 3524 

3502Vous avez démarré une [session cloud](/docs/fr/claude-code-on-the-web) à partir d'un référentiel local, et deux étapes ont échoué ensemble. Claude Code n'a pas pu construire ou télécharger le bundle de votre référentiel. Avant le téléchargement, il a vérifié si le service cloud peut cloner le référentiel à partir de GitHub, et plutôt qu'une réponse définitive, cette vérification s'est terminée par une erreur qu'une nouvelle tentative pourrait clarifier, telle qu'une erreur réseau, un délai d'expiration ou une erreur serveur temporaire. Le message complet commence par ce qui a arrêté le bundle, par exemple `Could not upload repo bundle (<error>)`, et se termine par la phrase de vérification préalable :3525Vous avez démarré une [session cloud](/docs/fr/claude-code-on-the-web) depuis un dépôt local, et deux étapes ont échoué ensemble. Claude Code n'a pas pu construire ou téléverser le bundle de votre dépôt. Avant le téléversement, il a vérifié si le service cloud pouvait cloner le dépôt depuis GitHub, et au lieu d'une réponse définitive, cette vérification s'est terminée par une erreur qu'une nouvelle tentative pourrait résoudre, comme une erreur réseau, un délai d'expiration ou une erreur temporaire du serveur. Le message complet commence par ce qui a bloqué le bundle, par exemple `Could not upload repo bundle (<error>)`, et se termine par la phrase relative à la vérification préalable :

3503 3526 

3504```text theme={null}3527```text theme={null}

3505Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead3528Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead


3507 3530 

3508**Que faire :**3531**Que faire :**

3509 3532 

3510* Réexécutez la commande après un moment. Lorsque la vérification GitHub réussit, Claude Code peut démarrer la session à partir d'un clone GitHub, donc le téléchargement échoué ne bloque plus le lancement3533* Exécutez à nouveau la commande après un moment. Lorsque la vérification GitHub réussit, Claude Code peut démarrer la session à partir d'un clone GitHub, donc l'échec du téléversement ne bloque plus le lancement

3511* Si les nouvelles tentatives continuent d'échouer, le début du message nomme ce qui a arrêté le téléchargement. Lorsque cette cause est quelque chose que vous pouvez corriger, corrigez-la afin que la session puisse démarrer à partir de votre référentiel local à la place3534* Si les nouvelles tentatives continuent d'échouer, le début du message nomme ce qui a bloqué le téléversement. Lorsque cette cause est quelque chose que vous pouvez corriger, corrigez-la afin que la session puisse plutôt démarrer depuis votre dépôt local

3512 3535 

3513Avant la v2.1.251, Claude Code terminait le message avec `Please set up GitHub on https://claude.ai/code` même lorsque la vérification GitHub a échoué uniquement de manière transitoire, et les conseils de configuration ne peuvent pas clarifier un échec transitoire.3536Avant la v2.1.251, Claude Code terminait le message par `Please set up GitHub on https://claude.ai/code` même lorsque la vérification GitHub n'avait échoué que de manière transitoire, et un conseil de configuration ne peut pas résoudre un échec transitoire.

3514 3537 

3515<h3 id="the-repository-upload-cant-follow-a-git-setting">3538<h3 id="the-repository-upload-cant-follow-a-git-setting">

3516 Le téléchargement du référentiel ne peut pas suivre un paramètre git3539 Le téléversement du dépôt ne peut pas suivre un paramètre git

3517</h3>3540</h3>

3518 3541 

3519Vous avez démarré une [session cloud qui télécharge votre référentiel local](/docs/fr/claude-code-on-the-web#send-local-repositories-without-github), ou un [ultrareview](/docs/fr/ultrareview) d'une branche, et le téléchargement ne peut pas suivre l'un des paramètres git qui décident quelles règles d'attribut s'appliquent à vos fichiers. Si le téléchargement s'était poursuivi et avait manqué une règle, un fichier que git transforme avant de le stocker, tel qu'un fichier qu'un filtre clean chiffre, pourrait atteindre le cloud tel qu'il est sur le disque. Claude Code refuse le téléchargement à la place, et rien n'est téléchargé :3542Vous avez démarré une [session cloud qui téléverse votre dépôt local](/docs/fr/claude-code-on-the-web#send-local-repositories-without-github), ou une [ultrareview](/docs/fr/ultrareview) d'une branche, et le téléversement ne peut pas suivre l'un des paramètres git qui déterminent quelles règles d'attributs s'appliquent à vos fichiers. Si le téléversement avait lieu en manquant une règle, un fichier que git transforme avant de le stocker, comme un fichier chiffré par un filtre clean, pourrait parvenir au cloud tel qu'il est sur le disque. Claude Code refuse donc le téléversement, et rien n'est téléversé :

3520 3543 

3521```text theme={null}3544```text theme={null}

3522Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.3545Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.

3523```3546```

3524 3547 

3525Le message nomme le paramètre et où il est défini, et se termine par la correction pour le cas que vous avez rencontré. Le même refus apparaît pour `core.attributesFile` et `attr.tree`, chacun avec sa propre correction.3548Le message nomme le paramètre et l'endroit où il est défini, et se termine par la correction correspondant à votre cas. Le même refus apparaît pour `core.attributesFile` et `attr.tree`, chacun avec sa propre correction.

3526 3549 

3527Le message peut nommer un fichier de configuration que votre configuration git tire via une directive `include` ou `includeIf`, même lorsque la condition de cette directive ne s'applique pas à ce référentiel.3550Le message peut nommer un fichier de configuration que votre configuration git intègre via une directive `include` ou `includeIf`, même lorsque la condition de cette directive ne s'applique pas à ce dépôt.

3528 3551 

3529**Que faire :**3552**Que faire :**

3530 3553 

3531* Appliquez la correction dans la phrase finale du message3554* Appliquez la correction indiquée dans la dernière phrase du message

3532 3555 

3533<h3 id="github-isnt-connected-to-your-claude-account">3556<h3 id="github-isnt-connected-to-your-claude-account">

3534 GitHub n'est pas connecté à votre compte Claude3557 GitHub n'est pas connecté à votre compte Claude

3535</h3>3558</h3>

3536 3559 

3537Vous avez démarré une [session cloud](/docs/fr/claude-code-on-the-web) à partir de votre référentiel local, par exemple avec `/autofix-pr`. Aucun compte GitHub n'est connecté à votre compte Claude, ou la connexion a expiré, donc Claude Code refuse le lancement :3560Vous avez démarré une [session cloud](/docs/fr/claude-code-on-the-web) depuis votre dépôt local, par exemple avec `/autofix-pr`. Aucun compte GitHub n'est connecté à votre compte Claude, ou la connexion a expiré, donc Claude Code refuse le lancement :

3538 3561 

3539```text theme={null}3562```text theme={null}

3540GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github3563GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github

3541```3564```

3542 3565 

3543Lorsque vous créez une routine avec [`/schedule`](/docs/fr/routines), le même message apparaît comme une note de configuration qui nomme le référentiel ; la note ne bloque pas la création de la routine.3566Lorsque vous créez une routine avec [`/schedule`](/docs/fr/routines), le même message apparaît sous la forme d'une note de configuration qui nomme le dépôt ; la note n'empêche pas la création de la routine.

3544 3567 

3545**Que faire :**3568**Que faire :**

3546 3569 

3547* Exécutez `/web-setup` pour connecter votre connexion GitHub CLI à votre compte Claude, ou connectez un compte à [claude.ai/connect-github](https://claude.ai/connect-github). Voir [Options d'authentification GitHub](/docs/fr/claude-code-on-the-web#github-authentication-options) pour voir comment les deux diffèrent.3570* Exécutez `/web-setup` pour connecter votre identifiant GitHub CLI à votre compte Claude, ou connectez un compte sur [claude.ai/connect-github](https://claude.ai/connect-github). Consultez [Options d'authentification GitHub](/docs/fr/claude-code-on-the-web#github-authentication-options) pour connaître les différences entre les deux.

3548* Réexécutez la commande une minute après la connexion3571* Exécutez à nouveau la commande une minute après la connexion

3549 3572 

3550Avant la v2.1.268, Claude Code signalait ceci comme un échec temporaire de la vérification de l'application GitHub Claude et suggérait de réessayer ou d'installer l'application ; aucun des deux ne connecte un compte GitHub.3573Avant la v2.1.268, Claude Code signalait cela comme un échec temporaire de la vérification de la Claude GitHub App et suggérait de réessayer ou d'installer l'application ; aucune de ces actions ne connecte de compte GitHub.

3551 3574 

3552<h3 id="single-sign-on-authorization-needed">3575<h3 id="single-sign-on-authorization-needed">

3553 Autorisation d'authentification unique requise3576 Autorisation d'authentification unique requise

3554</h3>3577</h3>

3555 3578 

3556Vous avez exécuté [`/install-github-app`](/docs/fr/github-actions#quick-setup) et choisi un référentiel dont l'organisation applique l'authentification unique SAML. Avant la configuration, Claude Code vérifie votre accès au référentiel avec l'interface de ligne de commande GitHub, et GitHub a refusé cette vérification car votre jeton `gh` n'est pas encore autorisé pour l'organisation. L'assistant affiche l'avertissement avec les étapes à suivre :3579Vous avez exécuté [`/install-github-app`](/docs/fr/github-actions#quick-setup) et choisi un dépôt dont l'organisation impose l'authentification unique SAML. Avant la configuration, Claude Code vérifie votre accès au dépôt avec la GitHub CLI, et GitHub a refusé cette vérification car votre jeton `gh` n'est pas encore autorisé pour l'organisation. L'assistant affiche l'avertissement avec les étapes d'autorisation :

3557 3580 

3558```text theme={null}3581```text theme={null}

3559Single sign-on authorization needed3582Single sign-on authorization needed


3562 3585 

3563**Que faire :**3586**Que faire :**

3564 3587 

3565* Réautorisez votre connexion GitHub CLI avec les portées `repo` et `workflow` en exécutant `gh auth refresh -h github.com -s repo,workflow`, et autorisez l'organisation lorsque GitHub vous invite à l'authentification unique3588* Autorisez à nouveau votre connexion GitHub CLI avec les scopes `repo` et `workflow` en exécutant `gh auth refresh -h github.com -s repo,workflow`, et autorisez l'organisation lorsque GitHub vous le demande pour l'authentification unique

3566* Si vous vous authentifiez avec un jeton d'accès personnel dans `GH_TOKEN`, ouvrez [github.com/settings/tokens](https://github.com/settings/tokens), sélectionnez **Configure SSO** sur le jeton, et autorisez l'organisation3589* Si vous vous authentifiez avec un jeton d'accès personnel dans `GH_TOKEN`, ouvrez [github.com/settings/tokens](https://github.com/settings/tokens), sélectionnez **Configure SSO** sur le jeton et autorisez l'organisation

3567* Exécutez `/install-github-app` à nouveau3590* Exécutez à nouveau `/install-github-app`

3568 3591 

3569Avant la v2.1.273, Claude Code affichait l'avertissement `Admin permissions required` pour cette condition à la place.3592Avant la v2.1.273, Claude Code affichait plutôt l'avertissement `Admin permissions required` dans cette situation.

3570 3593 

3571<h3 id="failed-to-resume-the-conversation">3594<h3 id="failed-to-resume-the-conversation">

3572 Impossible de reprendre la conversation3595 Échec de la reprise de la conversation

3573</h3>3596</h3>

3574 3597 

3575Claude Code n'a pas pu lire ou traiter la transcription enregistrée pour la session que vous avez sélectionnée dans le [sélecteur `claude --resume`](/docs/fr/sessions#use-the-session-picker), il termine donc le processus plutôt que de continuer dans un état partiellement chargé. Le message inclut la commande pour réessayer :3598Claude Code n'a pas pu lire ou traiter la transcription enregistrée de la session que vous avez sélectionnée dans le [sélecteur `claude --resume`](/docs/fr/sessions#use-the-session-picker), il met donc fin au processus plutôt que de continuer dans un état partiellement chargé. Le message inclut la commande permettant de réessayer :

3576 3599 

3577```text theme={null}3600```text theme={null}

3578Failed to resume the conversation.3601Failed to resume the conversation.

3579Run claude --resume <session-id> to retry, or claude to start a new session.3602Run claude --resume <session-id> to retry, or claude to start a new session.

3580```3603```

3581 3604 

3582Claude Code se termine avec le code 1 après avoir affiché le message. Le sélecteur `/resume` à l'intérieur d'une session en cours signale `Failed to resume conversation` dans la conversation à la place, et votre session actuelle continue de s'exécuter. Avant la v2.1.216, une reprise échouée du sélecteur `claude --resume` restait sur le spinner `Resuming conversation…` indéfiniment au lieu d'afficher ce message.3605Claude Code se termine avec le code 1 après avoir affiché le message. Le sélecteur `/resume` dans une session en cours signale plutôt `Failed to resume conversation` dans la conversation, et votre session actuelle continue de s'exécuter. Avant la v2.1.216, une reprise en échec depuis le sélecteur `claude --resume` restait indéfiniment sur l'indicateur `Resuming conversation…` au lieu d'afficher ce message.

3583 3606 

3584**Que faire :**3607**Que faire :**

3585 3608 

3586* Exécutez `claude --resume <session-id>` avec l'ID de session du message pour réessayer3609* Exécutez `claude --resume <session-id>` avec l'ID de session indiqué dans le message pour réessayer

3587* Si chaque nouvelle tentative échoue de la même manière, exécutez `claude update` et reprenez à nouveau. Les versions antérieures à v2.1.275 échouent la reprise lorsque la transcription enregistrée contient une entrée qu'elles ne peuvent pas lire.3610* Si chaque nouvelle tentative échoue de la même manière, exécutez `claude update` puis reprenez à nouveau. Les versions antérieures à la v2.1.275 font échouer la reprise lorsque la transcription enregistrée contient une entrée qu'elles ne peuvent pas lire.

3588* Si la nouvelle tentative échoue à nouveau, exécutez `claude` pour démarrer une nouvelle session3611* Si la nouvelle tentative échoue encore, exécutez `claude` pour démarrer une nouvelle session

3589 3612 

3590<h3 id="no-conversation-found-with-the-session-id">3613<h3 id="no-conversation-found-with-the-session-id">

3591 Aucune conversation trouvée avec l'ID de session3614 Aucune conversation trouvée avec l'ID de session

3592</h3>3615</h3>

3593 3616 

3594Vous avez transmis un ID de session à `claude --resume <session-id>` et aucune transcription enregistrée ne l'a appairé :3617Vous avez passé un ID de session à `claude --resume <session-id>` et aucune transcription enregistrée ne lui correspondait :

3595 3618 

3596```text theme={null}3619```text theme={null}

3597No conversation found with session ID: <session-id>3620No conversation found with session ID: <session-id>

3598```3621```

3599 3622 

3600Claude Code se termine avec le code 1 après avoir affiché le message. Claude Code [recherche d'abord le projet courant, puis chaque autre projet sur cette machine](/docs/fr/sessions#resume-a-session) pour l'ID. Avant la v2.1.223, la recherche s'arrêtait au répertoire du projet courant et ses worktrees git, donc reprendre à partir du répertoire où la session a travaillé en dernier.3623Claude Code se termine avec le code 1 après avoir affiché le message. Claude Code [recherche l'ID d'abord dans le projet actuel, puis dans tous les autres projets de cette machine](/docs/fr/sessions#resume-a-session). Avant la v2.1.223, la recherche s'arrêtait au répertoire du projet actuel et à ses worktrees git ; reprenez donc depuis le dernier répertoire dans lequel la session a travaillé.

3601 3624 

3602Les causes courantes :3625Causes courantes :

3603 3626 

3604* **ID mal saisi** : pour une exécution non interactive, l'ID est le champ `session_id` de la sortie [`--output-format json`](/docs/fr/headless#get-structured-output)3627* **ID mal saisi** : pour une exécution en mode non interactif, l'ID est le champ `session_id` de la [sortie `--output-format json`](/docs/fr/headless#get-structured-output)

3605* **Transcription supprimée** : Claude Code supprime les transcriptions après la [période de rétention](/docs/fr/sessions#where-transcripts-are-stored), 30 jours par défaut, suivant les [règles de balayage de rétention](/docs/fr/claude-directory#cleaned-up-automatically)3628* **Transcription supprimée** : Claude Code supprime les transcriptions après la [période de rétention](/docs/fr/sessions#where-transcripts-are-stored), de 30 jours par défaut, conformément aux [règles de nettoyage de la rétention](/docs/fr/claude-directory#cleaned-up-automatically)

3606* **Machine différente** : Claude Code stocke les transcriptions localement, donc reprenez la session sur la machine où elle s'est exécutée3629* **Machine différente** : Claude Code stocke les transcriptions localement, reprenez donc la session sur la machine où elle s'est exécutée

3607* **Copies en double** : si vous avez copié un répertoire de projet sous `~/.claude/projects` afin que deux transcriptions portent le même ID, Claude Code signale ce message plutôt que de reprendre une copie arbitrairement3630* **Copies en double** : si vous avez copié un répertoire de projet sous `~/.claude/projects` de sorte que deux transcriptions portent le même ID, Claude Code affiche ce message plutôt que de reprendre arbitrairement l'une des copies

3608 3631 

3609**Que faire :**3632**Que faire :**

3610 3633 

3611* Pour une session interactive, ouvrez le [sélecteur de session](/docs/fr/sessions#use-the-session-picker) avec `claude --resume` et appuyez sur `Ctrl+A` pour l'élargir à chaque projet sur cette machine, puis sélectionnez la session3634* Pour une session interactive, ouvrez le [sélecteur de sessions](/docs/fr/sessions#use-the-session-picker) avec `claude --resume` et appuyez sur `Ctrl+A` pour l'étendre à tous les projets de cette machine, puis sélectionnez la session

3612* Les sessions créées avec `claude -p` ou le [Agent SDK](/docs/fr/agent-sdk/overview) n'apparaissent pas dans le sélecteur, donc revérifiez l'ID par rapport au `session_id` que votre exécution d'origine a imprimé3635* Les sessions créées avec `claude -p` ou l'[Agent SDK](/docs/fr/agent-sdk/overview) n'apparaissent pas dans le sélecteur, revérifiez donc l'ID par rapport au `session_id` affiché par votre exécution d'origine

3613 3636 

3614<h3 id="windows-reported-an-error-ebadf">3637<h3 id="windows-reported-an-error-ebadf">

3615 Windows a signalé une erreur (EBADF) lorsque Claude Code a lu le fichier de transcription de cette session3638 Windows a signalé une erreur (EBADF) lorsque Claude Code a lu le fichier de transcription de cette session

3616</h3>3639</h3>

3617 3640 

3618Vous avez repris une session sur Windows, son fichier de [transcription](/docs/fr/sessions#where-transcripts-are-stored) enregistré s'est ouvert normalement, et la lecture a échoué avec l'erreur système EBADF. L'erreur système ne dit pas pourquoi la lecture a échoué, donc le message suggère les causes probables et ce qu'il faut essayer :3641Vous avez repris une session sous Windows, son [fichier de transcription](/docs/fr/sessions#where-transcripts-are-stored) enregistré s'est ouvert normalement, puis sa lecture a échoué avec l'erreur système EBADF. L'erreur système n'indique pas pourquoi la lecture a échoué, c'est pourquoi le message suggère des causes probables et des solutions à essayer :

3619 3642 

3620```text theme={null}3643```text theme={null}

3621Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.3644Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3622```3645```

3623 3646 

3624Le message suit la ligne d'échec propre de la commande, telle que `Failed to resume session <session-id>`. Une commande `claude --resume` ou [`claude -p`](/docs/fr/headless) se termine avec le code 1 après l'affichage. Après `/resume` à l'intérieur d'une session, votre session actuelle continue de s'exécuter.3647Le message suit la ligne d'échec propre à la commande, comme `Failed to resume session <session-id>`. Une commande `claude --resume` ou [`claude -p`](/docs/fr/headless) se termine avec le code 1 après l'avoir affiché. Après `/resume` à l'intérieur d'une session, votre session actuelle continue de s'exécuter.

3625 3648 

3626**Que faire :**3649**Que faire :**

3627 3650 

3628* Excluez le dossier qui contient vos transcriptions de session des logiciels qui analysent ou interceptent les lectures de fichiers, tels que les outils de sécurité, de chiffrement ou de gestion des points de terminaison. Les transcriptions vivent sous `%USERPROFILE%\.claude\projects` par défaut, ou sous le répertoire que [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars) nomme3651* Excluez le dossier contenant vos transcriptions de session des logiciels qui analysent ou interceptent les lectures de fichiers, comme les outils de sécurité, de chiffrement ou de gestion des terminaux. Les transcriptions se trouvent par défaut sous `%USERPROFILE%\.claude\projects`, ou sous le répertoire désigné par [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars)

3629* Si vous ne pouvez pas ajouter une exclusion, ajoutez Claude Code aux applications autorisées de ce logiciel à la place3652* Si vous ne pouvez pas ajouter d'exclusion, ajoutez plutôt Claude Code aux applications autorisées de ce logiciel

3630* Reprenez la session à nouveau3653* Reprenez à nouveau la session

3631 3654 

3632Avant la v2.1.282, l'échec n'avait aucune explication : `claude --resume <session-id>` s'est terminé à `Failed to resume session <session-id>`, et une exécution `-p` a imprimé uniquement le texte d'erreur système, tel que `Failed to resume session: EBADF: bad file descriptor, read`.3655Avant la v2.1.282, l'échec survenait sans explication : `claude --resume <session-id>` se terminait sur `Failed to resume session <session-id>`, et une exécution `-p` n'affichait que le texte de l'erreur système, comme `Failed to resume session: EBADF: bad file descriptor, read`.

3633 3656 

3634<h3 id="cannot-switch-renderers-in-this-session">3657<h3 id="cannot-switch-renderers-in-this-session">

3635 Impossible de changer de renderers dans cette session3658 Impossible de changer de moteur de rendu dans cette session

3636</h3>3659</h3>

3637 3660 

3638Lorsque vous changez de renderers, Claude Code redémarre son processus. Vous avez exécuté [`/tui`](/docs/fr/fullscreen#enable-fullscreen-rendering) dans une session que Claude Code refuse de redémarrer, elle ne change donc pas et ne sauvegarde rien. Le message que vous voyez vous indique la cause :3661Lorsque vous changez de moteur de rendu, Claude Code redémarre son processus. Vous avez exécuté [`/tui`](/docs/fr/fullscreen#enable-fullscreen-rendering) dans une session que Claude Code refuse de redémarrer ; il ne change donc pas de moteur et n'enregistre rien. Le message que vous voyez vous indique la cause :

3639 3662 

3640* `Cannot switch renderers while work is running in the background` : vous avez du travail en arrière-plan en cours d'exécution qu'un redémarrage abandonnerait, tel qu'un shell en arrière-plan ou un sous-agent. Attendez que le travail se termine ou arrêtez-le avec [`/tasks`](/docs/fr/commands), puis exécutez `/tui fullscreen` ou `/tui default` à nouveau3663* `Cannot switch renderers while work is running in the background` : du travail s'exécute en arrière-plan et serait abandonné par un redémarrage, comme un shell en arrière-plan ou un sous-agent. Attendez la fin de ce travail ou arrêtez-le avec [`/tasks`](/docs/fr/commands), puis exécutez à nouveau `/tui fullscreen` ou `/tui default`

3641* `Cannot switch renderers in this session` : la session a des restrictions que Claude Code ne peut pas transmettre au processus redémarré. Avant la v2.1.234, Claude Code redémarrait de toute façon et la session relancée s'exécutait sans elles3664* `Cannot switch renderers in this session` : la session comporte des restrictions que Claude Code ne peut pas transmettre au processus redémarré. Avant la v2.1.234, Claude Code redémarrait malgré tout et la session relancée s'exécutait sans elles

3642 3665 

3643Dans le message des restrictions, la partie entre parenthèses nomme les restrictions que Claude Code a trouvées :3666Dans le message relatif aux restrictions, la partie entre parenthèses nomme les restrictions détectées par Claude Code :

3644 3667 

3645```text theme={null}3668```text theme={null}

3646Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.3669Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.


3648 3671 

3649Chaque raison que le message peut afficher entre parenthèses :3672Chaque raison que le message peut afficher entre parenthèses :

3650 3673 

3651* `launch flags: a custom system prompt, a tool allowlist, or restricted settings` : vous avez démarré la session avec un indicateur que Claude Code ne transmet pas au processus redémarré. Ces indicateurs incluent [`--system-prompt`](/docs/fr/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, une liste d'autorisation [`--tools`](/docs/fr/cli-reference#cli-flags), [`--setting-sources`](/docs/fr/cli-reference#cli-flags), et [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags)3674* `launch flags: a custom system prompt, a tool allowlist, or restricted settings` : vous avez démarré la session avec un flag que Claude Code ne retransmet pas au processus redémarré. Ces flags incluent [`--system-prompt`](/docs/fr/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, une liste d'autorisation [`--tools`](/docs/fr/cli-reference#cli-flags), [`--setting-sources`](/docs/fr/cli-reference#cli-flags) et [`--permission-prompt-tool`](/docs/fr/cli-reference#cli-flags)

3652* `permission rules set for this session only` : une [mise à jour de permission](/docs/fr/hooks#permission-update-entries) d'un hook ou d'un appelant SDK a ajouté des règles de refus ou de demande avec la destination `session`. Les règles d'autorisation à portée de session ne déclenchent pas le refus. Un redémarrage les supprime, et Claude Code demande à nouveau à la place3675* `permission rules set for this session only` : une [mise à jour des permissions](/docs/fr/hooks#permission-update-entries) provenant d'un hook ou d'un appelant du SDK a ajouté des règles deny ou ask avec la destination `session`. Les règles allow limitées à la session ne déclenchent pas le refus. Un redémarrage les supprime, et Claude Code vous redemande à la place

3653* `ask-before-running rules with no command-line form` : une mise à jour de permission d'un hook ou d'un appelant SDK a ajouté des règles de demande aux côtés des règles que Claude Code transmet comme `--allowed-tools` et `--disallowed-tools`. Aucun indicateur n'existe pour les règles de demande3676* `ask-before-running rules with no command-line form` : une mise à jour des permissions provenant d'un hook ou d'un appelant du SDK a ajouté des règles ask en plus des règles que Claude Code retransmet sous forme de `--allowed-tools` et `--disallowed-tools`. Aucun flag n'existe pour les règles ask

3654* `permission rules a command line cannot carry intact` et `added directories a command line cannot carry intact` : une mise à jour de permission a ajouté une règle ou un chemin de répertoire en milieu de session. La ligne de commande du processus redémarré ne peut pas porter son texte comme la même valeur3677* `permission rules a command line cannot carry intact` et `added directories a command line cannot carry intact` : une mise à jour des permissions a ajouté une règle ou un chemin de répertoire en cours de session. La ligne de commande du processus redémarré ne peut pas transporter son texte sous la même valeur

3655 3678 

3656**Que faire :**3679**Que faire :**

3657 3680 

3658* Dans une session démarrée sans ces restrictions, exécutez `/tui fullscreen`, ou `/tui default` pour revenir. Claude Code sauvegarde le [paramètre `tui`](/docs/fr/settings-reference#tui) là-bas3681* Dans une session démarrée sans ces restrictions, exécutez `/tui fullscreen`, ou `/tui default` pour revenir en arrière. Claude Code y enregistre le [paramètre `tui`](/docs/fr/settings-reference#tui)

3659 3682 

3660<h3 id="couldnt-open-claude-desktop">3683<h3 id="couldnt-open-claude-desktop">

3661 Impossible d'ouvrir Claude Desktop3684 Impossible d'ouvrir Claude Desktop

3662</h3>3685</h3>

3663 3686 

3664Vous avez exécuté [`/desktop`](/docs/fr/desktop#coming-from-the-cli) ou son alias `/app` dans une session, ou [`claude --desktop`](/docs/fr/cli-reference#cli-flags) dans votre shell, et la commande système que Claude Code utilise pour ouvrir Claude Desktop a échoué. Après `/desktop`, la session reste dans le terminal ; `claude --desktop` imprime le message sans le préfixe `Error:` et se termine avec le statut 1.3687Vous avez exécuté [`/desktop`](/docs/fr/desktop#coming-from-the-cli) ou son alias `/app` dans une session, ou [`claude --desktop`](/docs/fr/cli-reference#cli-flags) dans votre shell, et la commande système utilisée par Claude Code pour ouvrir Claude Desktop a échoué. Après `/desktop`, la session reste dans le terminal ; `claude --desktop` affiche le message sans le préfixe `Error:` et se termine avec le statut 1.

3665 3688 

3666Le texte entre parenthèses nomme la commande qui a échoué, avec son code de sortie et la première ligne de sa sortie d'erreur lorsqu'elle l'a produite. Sur macOS cette commande est `open`, comme dans cet exemple ; sur Windows c'est `rundll32` :3689Le texte entre parenthèses nomme la commande qui a échoué, avec son statut de sortie et la première ligne de sa sortie d'erreur lorsqu'elle les a produits. Sous macOS, cette commande est `open`, comme dans cet exemple ; sous Windows, il s'agit de `rundll32` :

3667 3690 

3668```text theme={null}3691```text theme={null}

3669Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.3692Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.


3671 3694 

3672**Que faire :**3695**Que faire :**

3673 3696 

3674* Ouvrez Claude Desktop vous-même, puis exécutez `/desktop` ou `claude --desktop` à nouveau3697* Ouvrez vous-même Claude Desktop, puis exécutez à nouveau `/desktop` ou `claude --desktop`

3675* Pour lire la sortie d'erreur complète de la commande qui a échoué, activez la journalisation de débogage avec `/debug` et exécutez `/desktop` à nouveau, ou exécutez `claude --desktop --debug-file <path>`, puis vérifiez le journal de débogage3698* Pour lire la sortie d'erreur complète de la commande ayant échoué, activez les logs de débogage avec `/debug` et exécutez à nouveau `/desktop`, ou exécutez `claude --desktop --debug-file <path>`, puis consultez le log de débogage

3676 3699 

3677Avant la v2.1.285, le message se terminait par `Open Claude Desktop and run /desktop again.` Avant la v2.1.275, c'était `Failed to open Claude Desktop. Please try opening it manually.` et ne disait pas ce qui a échoué.3700Avant la v2.1.285, le message se terminait par `Open Claude Desktop and run /desktop again.` Avant la v2.1.275, il s'agissait de `Failed to open Claude Desktop. Please try opening it manually.` et il n'indiquait pas ce qui avait échoué.

3678 3701 

3679<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3702<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3680 /terminal-setup a laissé votre keymap Zed inchangée3703 /terminal-setup a laissé votre keymap Zed inchangée

3681</h3>3704</h3>

3682 3705 

3683Vous avez exécuté [`/terminal-setup`](/docs/fr/terminal-config#enter-multiline-prompts) dans Zed, et Claude Code n'a pas pu terminer la mise à jour de votre Zed `keymap.json`, il a donc laissé le fichier tel qu'il était.3706Vous avez exécuté [`/terminal-setup`](/docs/fr/terminal-config#enter-multiline-prompts) dans Zed, et Claude Code n'a pas pu terminer la mise à jour de votre fichier `keymap.json` de Zed ; il a donc laissé le fichier tel quel.

3684 3707 

3685Chaque message nomme le chemin vers votre keymap et se termine avec le bloc de liaison de clé à ajouter vous-même :3708Chaque message indique le chemin de votre keymap et se termine par le bloc de raccourci clavier à ajouter vous-même :

3686 3709 

3687```text theme={null}3710```text theme={null}

3688Couldn't update your Zed keymap, so it was left unchanged.3711Couldn't update your Zed keymap, so it was left unchanged.


3690{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }3713{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }

3691```3714```

3692 3715 

3693La première ligne du message nomme la cause :3716La première ligne du message indique la cause :

3694 3717 

3695* `Couldn't read your Zed keymap, so it was left unchanged.` : Claude Code n'a pas pu lire le fichier, par exemple en raison de permissions de fichier3718* `Couldn't read your Zed keymap, so it was left unchanged.` : Claude Code n'a pas pu lire le fichier, par exemple en raison des permissions du fichier

3696* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.` : le fichier s'est bien lu mais ne s'analyse pas comme un tableau de blocs de liaison de clé, même avec les commentaires `//` et les virgules finales autorisés3719* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.` : le fichier a été lu correctement mais ne s'analyse pas comme un tableau de blocs de raccourcis clavier, même en autorisant les commentaires `//` et les virgules finales

3697* `Couldn't back up your Zed keymap; not modifying it.` : Claude Code n'a pas pu copier le fichier vers une sauvegarde `.bak` à côté, il n'a donc rien changé3720* `Couldn't back up your Zed keymap; not modifying it.` : Claude Code n'a pas pu copier le fichier dans une sauvegarde `.bak` à côté de celui-ci ; il n'a donc rien modifié

3698* `Couldn't update your Zed keymap, so it was left unchanged.` : le résultat fusionné n'a pas vérifié comme un keymap valide portant la liaison, donc Claude Code l'a rejeté au lieu de l'écrire. Un bloc de liaison de clé avec une clé dupliquée peut causer ceci3721* `Couldn't update your Zed keymap, so it was left unchanged.` : le résultat fusionné n'a pas été validé comme une keymap valide contenant le raccourci ; Claude Code l'a donc abandonné au lieu de l'écrire. Un bloc de raccourci clavier comportant une clé en double peut en être la cause

3699 3722 

3700**Que faire :**3723**Que faire :**

3701 3724 

3702* Copiez le bloc du message dans le tableau de niveau supérieur dans votre `keymap.json` au chemin que le message nomme3725* Copiez le bloc du message dans le tableau de premier niveau de votre `keymap.json`, à l'emplacement indiqué par le message

3703* Pour `isn't a readable list of keybindings`, corrigez l'erreur de syntaxe, ou rendez la valeur de niveau supérieur du fichier un tableau, puis exécutez `/terminal-setup` à nouveau3726* Pour `isn't a readable list of keybindings`, corrigez l'erreur de syntaxe, ou faites de la valeur de premier niveau du fichier un tableau, puis exécutez à nouveau `/terminal-setup`

3704 3727 

3705Avant la v2.1.247, `/terminal-setup` ne pouvait pas analyser un keymap Zed qui utilisait des commentaires `//` ou des virgules finales, et il remplaçait le fichier entier par uniquement sa propre liaison tout en signalant la liaison comme installée. Pour restaurer un keymap qu'une version antérieure a remplacé, utilisez le fichier de sauvegarde `.bak` décrit sous [Entrer des invites multiligne](/docs/fr/terminal-config#enter-multiline-prompts).3728Avant la v2.1.247, `/terminal-setup` ne pouvait pas analyser une keymap Zed utilisant des commentaires `//` ou des virgules finales, et il remplaçait l'intégralité du fichier par son seul raccourci tout en signalant le raccourci comme installé. Pour restaurer une keymap remplacée par une version antérieure, utilisez le fichier de sauvegarde `.bak` décrit dans [Saisir des prompts multilignes](/docs/fr/terminal-config#enter-multiline-prompts).

3706 3729 

3707<h3 id="skill-usage-reports-are-not-available-on-this-connection">3730<h3 id="skill-usage-reports-are-not-available-on-this-connection">

3708 Les rapports d'utilisation des skills ne sont pas disponibles sur cette connexion3731 Les rapports d'utilisation des skills ne sont pas disponibles sur cette connexion

3709</h3>3732</h3>

3710 3733 

3711Vous avez exécuté [`/skill-doctor`](/docs/fr/skills#find-unused-skills) sur [Contrôle à distance](/docs/fr/remote-control), à partir de votre téléphone ou navigateur. Claude Code n'envoie pas le rapport d'utilisation des skills sur le contrôle à distance et répond avec ce message à la place :3734Vous avez exécuté [`/skill-doctor`](/docs/fr/skills#find-unused-skills) via [Remote Control](/docs/fr/remote-control), depuis votre téléphone ou votre navigateur. Claude Code n'envoie pas le rapport d'utilisation des skills via Remote Control et répond à la place par ce message :

3712 3735 

3713```text theme={null}3736```text theme={null}

3714Skill usage reports are not available on this connection.3737Skill usage reports are not available on this connection.


3716 3739 

3717**Que faire :**3740**Que faire :**

3718 3741 

3719* Exécutez `/skill-doctor` dans le terminal sur la machine où la session s'exécute, ou exécutez `claude -p "/skill-doctor"` là-bas3742* Exécutez `/skill-doctor` dans le terminal de la machine sur laquelle la session s'exécute, ou exécutez-y `claude -p "/skill-doctor"`

3720 3743 

3721<h3 id="custom-output-styles-cant-be-selected-over-remote-control">3744<h3 id="custom-output-styles-cant-be-selected-over-remote-control">

3722 Les styles de sortie personnalisés ne peuvent pas être sélectionnés sur le contrôle à distance3745 Les styles de sortie personnalisés ne peuvent pas être sélectionnés via Remote Control

3723</h3>3746</h3>

3724 3747 

3725Vous avez exécuté [`/output-style`](/docs/fr/output-styles#change-your-output-style) à partir de l'application mobile ou web via [Contrôle à distance](/docs/fr/remote-control), ou la commande est arrivée dans un message relayé dans la session. Parce qu'un tel tour peut ne pas provenir du propriétaire du compte, Claude Code énumère et sélectionne uniquement les [styles intégrés](/docs/fr/output-styles#built-in-output-styles) sur celui-ci, et ajoute cet avis chaque fois que la commande énumère les styles ou ne reconnaît pas le nom que vous avez donné. Un nom de [style personnalisé](/docs/fr/output-styles#create-a-custom-output-style) reçoit la même réponse qu'un nom qui n'existe pas :3748Vous avez exécuté [`/output-style`](/docs/fr/output-styles#change-your-output-style) depuis l'application mobile ou le web via [Remote Control](/docs/fr/remote-control), ou la commande est arrivée dans un message relayé dans la session. Comme un tel tour peut ne pas provenir du propriétaire du compte, Claude Code n'y liste et n'y sélectionne que les [styles intégrés](/docs/fr/output-styles#built-in-output-styles), et ajoute cet avis chaque fois que la commande liste les styles ou ne reconnaît pas le nom que vous avez fourni. Un nom de [style personnalisé](/docs/fr/output-styles#create-a-custom-output-style) reçoit la même réponse qu'un nom qui n'existe pas :

3726 3749 

3727```text theme={null}3750```text theme={null}

3728Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.3751Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.


3731**Que faire :**3754**Que faire :**

3732 3755 

3733* Choisissez un style intégré, par exemple `/output-style concise`3756* Choisissez un style intégré, par exemple `/output-style concise`

3734* Pour utiliser un style personnalisé, définissez [`outputStyle`](/docs/fr/settings-reference#outputstyle) dans le `.claude/settings.local.json` du projet, ou exécutez `/output-style <style>` au terminal propre de la session s'il en a un3757* Pour utiliser un style personnalisé, définissez [`outputStyle`](/docs/fr/settings-reference#outputstyle) dans le fichier `.claude/settings.local.json` du projet, ou exécutez `/output-style <style>` dans le terminal propre à la session si elle en possède un

3735 3758 

3736<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">3759<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">

3737 Les styles de sortie sont enregistrés dans les paramètres locaux que cette session ne charge pas3760 Les styles de sortie sont enregistrés dans les paramètres locaux, que cette session ne charge pas

3738</h3>3761</h3>

3739 3762 

3740Vous avez essayé de changer les [styles de sortie](/docs/fr/output-styles) avec `/output-style <style>` ou `/config outputStyle=<style>` dans une session dont les sources de paramètres excluent `local`. Les exemples sont une session [Agent SDK](/docs/fr/agent-sdk/typescript) dont [`settingSources`](/docs/fr/agent-sdk/typescript#options) laisse de côté `"local"` et une session CLI démarrée avec une valeur [`--setting-sources`](/docs/fr/cli-reference#cli-flags) qui laisse de côté `local`. Les deux commandes enregistrent le style dans `.claude/settings.local.json`, un fichier qu'une telle session ne relit jamais, donc Claude Code refuse au lieu d'écrire un paramètre qui n'aurait aucun effet :3763Vous avez tenté de changer de [style de sortie](/docs/fr/output-styles) avec `/output-style <style>` ou `/config outputStyle=<style>` dans une session dont les sources de paramètres excluent `local`. Par exemple, une session de l'[Agent SDK](/docs/fr/agent-sdk/typescript) dont les [`settingSources`](/docs/fr/agent-sdk/typescript#options) omettent `"local"`, ou une session CLI démarrée avec une valeur [`--setting-sources`](/docs/fr/cli-reference#cli-flags) qui omet `local`. Les deux commandes enregistrent le style dans `.claude/settings.local.json`, un fichier qu'une telle session ne relit jamais ; Claude Code refuse donc au lieu d'écrire un paramètre qui n'aurait aucun effet :

3741 3764 

3742```text theme={null}3765```text theme={null}

3743Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.3766Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.


3745 3768 

3746**Que faire :**3769**Que faire :**

3747 3770 

3748* Ajoutez `local` aux sources de paramètres de la session et changez à nouveau3771* Ajoutez `local` aux sources de paramètres de la session et changez à nouveau de style

3749* Définissez la clé [`outputStyle`](/docs/fr/settings-reference#outputstyle) dans un fichier de paramètres que la session charge, tel que `.claude/settings.json` dans le projet ou `~/.claude/settings.json`. Dans le SDK TypeScript, définissez `outputStyle` à l'intérieur de l'objet `settings` en ligne à la place ; voir [Activer un style de sortie](/docs/fr/agent-sdk/modifying-system-prompts#activate-an-output-style)3772* Définissez la clé [`outputStyle`](/docs/fr/settings-reference#outputstyle) dans un fichier de paramètres que la session charge, comme `.claude/settings.json` dans le projet ou `~/.claude/settings.json`. Dans le SDK TypeScript, définissez plutôt `outputStyle` dans l'objet `settings` inline ; consultez [Activer un style de sortie](/docs/fr/agent-sdk/modifying-system-prompts#activate-an-output-style)

3750 3773 

3751<h2 id="plugin-errors">3774<h2 id="plugin-errors">

3752 Erreurs de plugin3775 Erreurs de plugin


4510**Ce qu'il faut faire :**4533**Ce qu'il faut faire :**

4511 4534 

4512* Généralement rien : le message complet va à Claude comme une erreur d'outil, et Claude réessaye avec le chemin direct qu'il nomme. Pour une édition de fichier bloquée, la vue de conversation affiche uniquement une courte ligne `Error editing file` ; le message complet apparaît dans la vue de transcription, que vous ouvrez avec `Ctrl+O`. Une commande bloquée l'imprime dans sa sortie de commande.4535* Généralement rien : le message complet va à Claude comme une erreur d'outil, et Claude réessaye avec le chemin direct qu'il nomme. Pour une édition de fichier bloquée, la vue de conversation affiche uniquement une courte ligne `Error editing file` ; le message complet apparaît dans la vue de transcription, que vous ouvrez avec `Ctrl+O`. Une commande bloquée l'imprime dans sa sortie de commande.

4513* Si le bloc se répète sur le même fichier, le chemin passe probablement par un lien symbolique commis dont la cible contient `..`, tel que `docs/current -> ../README.md` ; demandez à Claude d'éditer le fichier cible par son chemin réel au lieu de passer par le lien4536* Si le blocage se répète sur le même fichier, le chemin passe probablement par un lien symbolique commité dont la cible contient `..`, tel que `docs/current -> ../README.md` ; demandez à Claude d'éditer le fichier cible par son chemin réel au lieu de passer par le lien

4514 4537 

4515<h3 id="write-or-command-blocked-because-the-path-names-a-network-location">4538<h3 id="write-or-command-blocked-because-the-path-names-a-network-location">

4516 Écriture ou commande bloquée car le chemin nomme un emplacement réseau4539 Écriture ou commande bloquée car le chemin nomme un emplacement réseau

4517</h3>4540</h3>

4518 4541 

4519Claude a adressé un fichier ou un répertoire de travail par un chemin qui nomme un lecteur qui n'est pas sur votre machine, un partage UNC tel que `\\server\share\file` ou un chemin d'automontage `/net`, tandis que le checkout de la session est sur un disque local. La même [garde d'isolation worktree](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) ne peut pas vérifier qu'un tel chemin reste en dehors du checkout partagé, de sorte qu'elle bloque l'opération. L'isolation de la session dans un worktree ne lève pas le bloc. Le message nomme la forme de chemin à utiliser à la place :4542Claude a adressé un fichier ou un répertoire de travail par un chemin qui nomme un lecteur qui n'est pas sur votre machine, un partage UNC tel que `\\server\share\file` ou un chemin d'automontage `/net`, tandis que le checkout de la session est sur un disque local. La même [garde d'isolation worktree](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) ne peut pas vérifier qu'un tel chemin reste en dehors du checkout partagé, de sorte qu'elle bloque l'opération. L'isolation de la session dans un worktree ne lève pas le blocage. Le message nomme la forme de chemin à utiliser à la place :

4520 4543 

4521```text theme={null}4544```text theme={null}

4522This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.4545This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.


4559This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.4582This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.

4560```4583```

4561 4584 

4562L'ouverture de la même ligne de session dans la [vue agent](/docs/fr/agent-view) affiche `Press enter again to restart this session fresh` sous la liste à la place, et une deuxième `Entrée` sur la ligne redémarre la session avec une conversation vide. Avant v2.1.212, l'ouverture de la session arrêtée affichait le message de refus sans aucun moyen de redémarrer à partir de la vue agent. Avant v2.1.211, l'ouverture de la session arrêtée démarrait silencieusement cette conversation vierge et pouvait réexécuter l'invite originale de la session.4585L'ouverture de la même ligne de session dans la [vue agent](/docs/fr/agent-view) affiche `Press enter again to restart this session fresh` sous la liste à la place, et une deuxième `Entrée` sur la ligne redémarre la session avec une conversation vide. Avant v2.1.212, l'ouverture de la ligne affichait le message de refus sans aucun moyen de redémarrer à partir de la vue agent. Avant v2.1.211, l'ouverture de la session arrêtée démarrait silencieusement cette conversation vierge et pouvait réexécuter le prompt original de la session.

4563 4586 

4564**Ce qu'il faut faire :**4587**Ce qu'il faut faire :**

4565 4588 


4581* **`running in another terminal`** : un terminal détient la conversation, par exemple celui où vous l'avez reprise avec `claude --resume` ou `/resume`. La ligne affiche également `Open in a terminal`.4604* **`running in another terminal`** : un terminal détient la conversation, par exemple celui où vous l'avez reprise avec `claude --resume` ou `/resume`. La ligne affiche également `Open in a terminal`.

4582* **`already open in another running Claude session`** : un autre processus Claude Code non interactif la détient, par exemple un processus de [session en arrière-plan](/docs/fr/agent-view#the-supervisor-process) pour la même conversation qui n'a pas encore quitté.4605* **`already open in another running Claude session`** : un autre processus Claude Code non interactif la détient, par exemple un processus de [session en arrière-plan](/docs/fr/agent-view#the-supervisor-process) pour la même conversation qui n'a pas encore quitté.

4583 4606 

4584Claude Code enregistre une réponse que vous avez tapée lors de l'ouverture de la ligne et l'envoie comme l'invite suivante de la session lorsque la session démarre ensuite.4607Claude Code enregistre une réponse que vous avez tapée lors de l'ouverture de la ligne et l'envoie comme le prompt suivant de la session lorsque la session démarre ensuite.

4585 4608 

4586**Ce qu'il faut faire :**4609**Ce qu'il faut faire :**

4587 4610 


4593 La conversation enregistrée de cette session n'est plus sur le disque4616 La conversation enregistrée de cette session n'est plus sur le disque

4594</h3>4617</h3>

4595 4618 

4596Vous avez ouvert une [session en arrière-plan](/docs/fr/agent-view) qui s'est terminée alors que le service en arrière-plan était arrêté, et le [nettoyage de transcription](/docs/fr/settings-reference#cleanupperioddays) a depuis supprimé sa conversation enregistrée, par exemple après que la machine ait été éteinte pendant des semaines. L'ouverture d'une telle ligne [reprend normalement sa conversation enregistrée](/docs/fr/agent-view#sessions-show-as-failed-after-shutdown). Sans rien à reprendre, Claude Code refuse plutôt que de réexécuter l'invite originale de la session sans demander :4619Vous avez ouvert une [session en arrière-plan](/docs/fr/agent-view) qui s'est terminée alors que le service en arrière-plan était arrêté, et le [nettoyage de transcription](/docs/fr/settings-reference#cleanupperioddays) a depuis supprimé sa conversation enregistrée, par exemple après que la machine a été éteinte pendant des semaines. L'ouverture d'une telle ligne [reprend normalement sa conversation enregistrée](/docs/fr/agent-view#sessions-show-as-failed-after-shutdown). Sans rien à reprendre, Claude Code refuse plutôt que de réexécuter le prompt original de la session sans demander :

4597 4620 

4598```text theme={null}4621```text theme={null}

4599This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.4622This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.


4604**Ce qu'il faut faire :**4627**Ce qu'il faut faire :**

4605 4628 

4606* Exécutez `claude rm <id>` pour supprimer la ligne. Lorsque l'un des [cas conservés](/docs/fr/agent-view#what-deleting-a-session-removes) s'applique, `claude rm` conserve la ligne et le worktree à la place et nomme la raison4629* Exécutez `claude rm <id>` pour supprimer la ligne. Lorsque l'un des [cas conservés](/docs/fr/agent-view#what-deleting-a-session-removes) s'applique, `claude rm` conserve la ligne et le worktree à la place et nomme la raison

4607* Pour exécuter à nouveau l'invite originale de la session en tant que conversation nouvelle, exécutez `claude respawn <id>`4630* Pour exécuter à nouveau le prompt original de la session en tant que nouvelle conversation, exécutez `claude respawn <id>`

4608 4631 

4609Avant v2.1.248, l'ouverture d'une telle ligne réexécutait l'invite originale de la session au lieu de refuser, ramenant une tâche vieille de plusieurs semaines au premier plan.4632Avant v2.1.248, l'ouverture d'une telle ligne réexécutait le prompt original de la session au lieu de refuser, ramenant une tâche vieille de plusieurs semaines au premier plan.

4610 4633 

4611<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">4634<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">

4612 Le worktree a des commits qui ne sont poussés nulle part4635 Le worktree a des commits qui ne sont poussés nulle part

4613</h3>4636</h3>

4614 4637 

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

4616 4639 

4617```text theme={null}4640```text theme={null}

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

4619 2 unpushed commits on "claude/fix-login": a1b2c3d "Fix login flow" and 1 more. They exist on no remote, so deleting the worktree would lose them.4642 2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them.

4620 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef4643 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

4621```4644```

4622 4645 

4623Lorsque Claude Code ne peut pas résumer les commits, la ligne de détail lit `The worktree has unpushed commits` à la place. Dans la [vue agent](/docs/fr/agent-view), la ligne de la session affiche `not deleted` avec la même raison.4646Lorsque Claude Code ne peut pas résumer les commits, la ligne de détail indique `The worktree has unpushed commits` à la place. Dans la [vue agent](/docs/fr/agent-view), la ligne de la session affiche `not deleted` avec la même raison.

4624 4647 

4625Les commits sur une télécommande ne bloquent pas la suppression. Non plus les commits sur la copie locale de la branche par défaut de votre télécommande `origin`, tant que cette branche est extraite dans votre checkout principal, le répertoire du référentiel lui-même plutôt qu'un worktree.4648Les commits sur un dépôt distant ne bloquent pas la suppression. Les commits sur la copie locale de la branche par défaut de votre dépôt distant `origin` non plus, tant que cette branche est extraite dans votre checkout principal, le répertoire du dépôt lui-même plutôt qu'un worktree.

4626 4649 

4627**Ce qu'il faut faire :**4650**Ce qu'il faut faire :**

4628 4651 

4629* Pour conserver les commits, poussez la branche du worktree, ou fusionnez-la dans la branche par défaut extraite dans votre checkout principal, puis supprimez la session à nouveau4652* Pour conserver les commits, poussez la branche du worktree, ou fusionnez-la dans la branche par défaut extraite dans votre checkout principal, puis supprimez la session à nouveau

4630* Pour abandonner les commits, exécutez la commande `claude rm <id> --discard-unpushed` que le message a imprimée, ou appuyez deux fois sur `Ctrl+X` sur la ligne de la session dans la vue agent à nouveau. Cela supprime la session et le worktree ainsi que sa branche, les commits non poussés et les modifications non validées. Si le worktree a gagné un commit depuis le refus, Claude Code le conserve à nouveau et affiche l'état mis à jour4653* Pour abandonner les commits, exécutez la commande `claude rm <id> --discard-unpushed` que le message a imprimée, ou appuyez deux fois sur `Ctrl+X` sur la ligne de la session dans la vue agent à nouveau. Cela supprime la session et le worktree ainsi que sa branche, les commits non poussés et les modifications non commitées. Si le worktree a gagné un commit depuis le refus, Claude Code le conserve à nouveau et affiche l'état mis à jour

4631* Lorsque le message dit que le worktree est également enregistré par une autre session terminée, la suppression à nouveau ne le supprime pas : poussez les commits, puis supprimez la session à nouveau4654* Lorsque le message dit que le worktree est également enregistré par une autre session terminée, la suppression à nouveau ne le supprime pas : poussez les commits, puis supprimez la session à nouveau

4632 4655 

4633Avant v2.1.268, `claude rm` mettait le résumé du commit sur la ligne `kept` elle-même. Lorsque `claude rm` ne pouvait pas résumer les commits, la ligne `kept` lisait `worktree has commits that are not pushed anywhere` à la place du résumé.4656Avant v2.1.268, `claude rm` mettait le résumé du commit sur la ligne `kept` elle-même. Lorsque `claude rm` ne pouvait pas résumer les commits, la ligne `kept` indiquait `worktree has commits that are not pushed anywhere` à la place du résumé.

4634 4657 

4635Avant v2.1.260, le message ne nommait pas la branche ou les commits, et la suppression à nouveau était refusée de la même manière : supprimer la session sans pousser signifiait supprimer le worktree vous-même avec `git worktree remove --force <path>`, puis exécuter `claude rm <id>` à nouveau.4658Avant v2.1.260, le message ne nommait pas la branche ou les commits, et la suppression à nouveau était refusée de la même manière : supprimer la session sans pousser signifiait supprimer le worktree vous-même avec `git worktree remove --force <path>`, puis exécuter `claude rm <id>` à nouveau.

4636 4659 

4637Avant v2.1.248, la branche par défaut extraite dans votre checkout principal ne comptait pas : une branche que vous aviez déjà fusionnée là-bas déclenchait toujours ce refus jusqu'à ce que ses commits atteignent une télécommande.4660Avant v2.1.248, la branche par défaut extraite dans votre checkout principal ne comptait pas : une branche que vous aviez déjà fusionnée là-bas déclenchait toujours ce refus jusqu'à ce que ses commits atteignent un dépôt distant.

4638 4661 

4639<h3 id="terminal-host-process-died">4662<h3 id="terminal-host-process-died">

4640 Le processus hôte du terminal est mort4663 Le processus hôte du terminal est mort


4660 4683 

4661**Ce qu'il faut faire :**4684**Ce qu'il faut faire :**

4662 4685 

4663* Dans la vue agent, appuyez sur `Entrée` sur la ligne échouée ; la session redémarre sur un processus hôte nouveau et la conversation reprend4686* Dans la vue agent, appuyez sur `Entrée` sur la ligne échouée ; la session redémarre sur un nouveau processus hôte et la conversation reprend

4664* À partir du shell, exécutez `claude attach <id>` à nouveau. Claude Code imprime `Session <id>'s terminal host died — restarting it on a fresh one…` et rouvre la session4687* À partir du shell, exécutez `claude attach <id>` à nouveau. Claude Code imprime `Session <id>'s terminal host died — restarting it on a fresh one…` et rouvre la session

4665* Vous ne pouvez pas redémarrer une ligne de commande shell de cette manière ; envoyez la commande à nouveau pour la réexécuter4688* Vous ne pouvez pas redémarrer une ligne de commande shell de cette manière ; envoyez la commande à nouveau pour la réexécuter

4666 4689 

4667Avant v2.1.247, un processus hôte mort pouvait passer chaque vérification de vivacité que le service en arrière-plan exécutait, de sorte que l'ouverture de la session affichait `opening… · esc to cancel` indéfiniment et `claude attach <id>` attendait sans signaler une erreur.4690Avant v2.1.247, un processus hôte mort pouvait passer chaque vérification de vivacité que le service en arrière-plan exécutait, de sorte que l'ouverture de la session affichait `opening… · esc to cancel` indéfiniment et `claude attach <id>` attendait sans signaler d'erreur.

4668 4691 

4669<h3 id="session-isnt-responding">4692<h3 id="session-isnt-responding">

4670 La session ne répond pas4693 La session ne répond pas


4702Session <id> was stopped while the respawn was in flight4725Session <id> was stopped while the respawn was in flight

4703```4726```

4704 4727 

4705L'ouverture d'une session que vous venez de dispatcher, tandis que son processus démarre toujours, attend le processus à la place. Avant v2.1.246, l'ouverture à ce moment-là pouvait l'arrêter et afficher ce message.4728L'ouverture d'une session que vous venez d'envoyer, tandis que son processus démarre toujours, attend le processus à la place. Avant v2.1.246, l'ouverture à ce moment-là pouvait l'arrêter et afficher ce message.

4706 4729 

4707**Ce qu'il faut faire :**4730**Ce qu'il faut faire :**

4708 4731 


4721 4744 

4722L'avertissement nomme uniquement les répertoires que Claude Code a recherchés, et il apparaît dans la conversation reprise que vous réveilliez une [session en arrière-plan](/docs/fr/agent-view), exécutiez `/resume` ou `claude --resume`, ou repreniez en [mode non interactif](/docs/fr/headless), où il va également à stderr. Les sessions utilisant `--input-format stream-json` ne l'affichent pas, car le SDK Agent fournit les agents après le démarrage.4745L'avertissement nomme uniquement les répertoires que Claude Code a recherchés, et il apparaît dans la conversation reprise que vous réveilliez une [session en arrière-plan](/docs/fr/agent-view), exécutiez `/resume` ou `claude --resume`, ou repreniez en [mode non interactif](/docs/fr/headless), où il va également à stderr. Les sessions utilisant `--input-format stream-json` ne l'affichent pas, car le SDK Agent fournit les agents après le démarrage.

4723 4746 

4724Claude Code n'enregistre pas le repli à la session, de sorte que l'avertissement se répète à chaque reprise jusqu'à ce que vous agissiez. L'agent `claude` intégré ne déclenche pas l'avertissement, puisque le repli à l'ensemble d'outils par défaut ne change rien pour lui. Avant v2.1.216, Claude Code continuait silencieusement en tant qu'agent par défaut, et la recherche couvrait uniquement le répertoire à partir duquel vous repreniez, de sorte qu'un agent limité au projet était perdu à chaque reprise à partir d'un autre répertoire.4747Claude Code n'enregistre pas la solution de repli dans la session, de sorte que l'avertissement se répète à chaque reprise jusqu'à ce que vous agissiez. L'agent `claude` intégré ne déclenche pas l'avertissement, puisque se rabattre sur l'ensemble d'outils par défaut ne change rien pour lui. Avant v2.1.216, Claude Code continuait silencieusement en tant qu'agent par défaut, et la recherche couvrait uniquement le répertoire à partir duquel vous repreniez, de sorte qu'un agent limité au projet était perdu à chaque reprise à partir d'un autre répertoire.

4725 4748 

4726**Ce qu'il faut faire :**4749**Ce qu'il faut faire :**

4727 4750 


4739CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file4762CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file

4740```4763```

4741 4764 

4742Un lanceur qui démarre mais quitte sans se remplacer par Claude Code échoue la session qu'il démarrait, et la ligne de la session dans la vue agent rapporte que le lanceur `must exec, not daemonize`, suivi de tout ce que le lanceur a imprimé. Une session qui ne peut pas démarrer ou atteindre le service en arrière-plan à cause du lanceur rapporte le problème du lanceur comme la raison à l'intérieur de `Couldn't reach the background service (...)`.4765Un lanceur qui démarre mais quitte sans se remplacer par Claude Code fait échouer la session qu'il démarrait, et la ligne de la session dans la vue agent rapporte que le lanceur `must exec, not daemonize`, suivi de tout ce que le lanceur a imprimé. Une session qui ne peut pas démarrer ou atteindre le service en arrière-plan à cause du lanceur rapporte le problème du lanceur comme la raison à l'intérieur de `Couldn't reach the background service (...)`.

4743 4766 

4744**Ce qu'il faut faire :**4767**Ce qu'il faut faire :**

4745 4768 


4767 4790 

4768**Ce qu'il faut faire :**4791**Ce qu'il faut faire :**

4769 4792 

4770* Si le message lit `Couldn't start the session`, mettez à jour vers v2.1.212 ou ultérieur. Sur les versions antérieures, vous pouvez également exécuter `claude daemon run` dans un terminal séparé en premier, puis démarrer la session en arrière-plan à nouveau. Cette commande exécute le service en arrière-plan au premier plan du terminal, de sorte que le service dure uniquement tant que ce terminal reste ouvert.4793* Si le message indique `Couldn't start the session`, mettez à jour vers v2.1.212 ou ultérieur. Sur les versions antérieures, vous pouvez également exécuter `claude daemon run` dans un terminal séparé en premier, puis démarrer la session en arrière-plan à nouveau. Cette commande exécute le service en arrière-plan au premier plan du terminal, de sorte que le service dure uniquement tant que ce terminal reste ouvert.

4771* Si une installation npm remplaçait le binaire, attendez qu'elle se termine, puis démarrez la session en arrière-plan à nouveau4794* Si une installation npm remplaçait le binaire, attendez qu'elle se termine, puis démarrez la session en arrière-plan à nouveau

4772* Si l'erreur apparaît sur v2.1.212 ou ultérieur tandis qu'aucune installation npm n'est en cours, demandez à votre administrateur Windows d'autoriser l'exécutable Claude Code dans la politique de restriction4795* Si l'erreur apparaît sur v2.1.212 ou ultérieur tandis qu'aucune installation npm n'est en cours, vérifiez auprès de votre administrateur Windows si une politique de restriction bloque l'exécutable Claude Code

4773* Si le service en arrière-plan s'arrête lorsque vous fermez le terminal, Claude Code l'a démarré sans PowerShell. Installez PowerShell 7, ou demandez à votre administrateur de débloquer PowerShell, de sorte que le service puisse survivre au terminal.4796* Si le service en arrière-plan s'arrête lorsque vous fermez le terminal, Claude Code l'a démarré sans PowerShell. Installez PowerShell 7, ou demandez à votre administrateur de débloquer PowerShell, de sorte que le service puisse survivre au terminal.

4774 4797 

4775<h3 id="eacces-when-starting-a-background-session">4798<h3 id="eacces-when-starting-a-background-session">


4825 Le répertoire de travail n'existe plus au démarrage d'une session en arrière-plan4848 Le répertoire de travail n'existe plus au démarrage d'une session en arrière-plan

4826</h3>4849</h3>

4827 4850 

4828Le répertoire dans lequel vous avez essayé de démarrer une [session en arrière-plan](/docs/fr/agent-view) a été supprimé tandis que la session démarrait. Claude Code ne démarre pas la session, et le message nomme le répertoire manquant :4851Le répertoire dans lequel vous avez démarré une [session en arrière-plan](/docs/fr/agent-view) a été supprimé tandis que la session démarrait. Claude Code ne démarre pas la session, et le message nomme le répertoire manquant :

4829 4852 

4830```text theme={null}4853```text theme={null}

4831Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)4854Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)


4849Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.4872Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.

4850```4873```

4851 4874 

4852À partir d'un terminal dans le répertoire de la session lui-même, la même commande affiche le dialogue de confiance à la place et démarre la session une fois que vous acceptez. Ce message apparaît où aucun dialogue ne peut, tel que dans un script, ou lorsque vous redémarrez une session à partir d'un répertoire autre que le sien.4875À partir d'un terminal dans le répertoire de la session lui-même, la même commande affiche le dialogue de confiance à la place et démarre la session une fois que vous acceptez. Ce message apparaît là où aucun dialogue ne peut apparaître, comme dans un script, ou lorsque vous redémarrez une session à partir d'un répertoire autre que le sien.

4853 4876 

4854Deux variantes nomment une cause différente :4877Deux variantes nomment une cause différente :

4855 4878 

4856* **`The home directory is trusted one session at a time`** : le répertoire de la session est votre répertoire personnel. Claude Code ne sauvegarde jamais la confiance pour le répertoire personnel, de sorte que l'acceptation du dialogue là-bas dans une session antérieure ne compte pas.4879* **`The home directory is trusted one session at a time`** : le répertoire de la session est votre répertoire personnel. Claude Code ne sauvegarde jamais la confiance pour le répertoire personnel, de sorte que l'acceptation du dialogue là-bas dans une session antérieure ne compte pas.

4857* **`<path> could not be resolved on disk`** : Claude Code n'a pas pu trouver le répertoire de la session sur le disque.4880* **`<path> could not be resolved on disk`** : Claude Code n'a pas pu trouver le répertoire de la session sur le disque.

4858 4881 

4882Avant v2.1.286, sur Windows, ce message pouvait également apparaître dans un répertoire que vous aviez déjà approuvé, si son enregistrement de confiance avait été sauvegardé avec le chemin dans une casse différente. Mettez à jour vers v2.1.286 ou ultérieur.

4883 

4859**Ce qu'il faut faire :**4884**Ce qu'il faut faire :**

4860 4885 

4861* Exécutez `claude` dans le répertoire que le message nomme et acceptez le dialogue de confiance, puis exécutez la commande à nouveau4886* Exécutez `claude` dans le répertoire que le message nomme et acceptez le dialogue de confiance, puis exécutez la commande à nouveau

hooks.md +4 −10

Details

731 Le menu `/hooks`731 Le menu `/hooks`

732</h3>732</h3>

733 733 

734Tapez `/hooks` dans Claude Code pour ouvrir un navigateur en lecture seule pour vos hooks configurés. Le menu affiche chaque événement de hook avec un nombre de hooks configurés, vous permet d'explorer les matchers et affiche les détails complets de chaque gestionnaire de hook. Utilisez-le pour vérifier la configuration, vérifier à partir de quel fichier de paramètres un hook provient ou inspecter la commande, le prompt ou l'URL d'un hook.734Tapez `/hooks` dans Claude Code pour ouvrir un navigateur en lecture seule pour vos hooks configurés. La liste étiquette chaque hook avec sa provenance, comme les paramètres utilisateur, les paramètres du projet, les paramètres locaux, un plugin ou la session actuelle.

735 735 

736Le menu affiche les cinq types de hooks : `command`, `prompt`, `agent`, `http` et `mcp_tool`. Chaque hook est étiqueté avec un préfixe `[type]` et une source indiquant où il a été défini :736Sélectionnez un hook pour voir le texte complet de ce qu'il exécute et l'endroit où il est défini, comme le chemin de son fichier de paramètres ou le nom de son plugin.

737 737 

738* `User Settings` : de `~/.claude/settings.json`738Pour parcourir tous les événements de hook, y compris ceux pour lesquels aucun hook n'est configuré, sélectionnez `All events` à la fin de la liste.

739* `Project Settings` : de `.claude/settings.json`

740* `Local Settings` : de `.claude/settings.local.json`

741* `Plugin Hooks` : du `hooks/hooks.json` d'un plugin

742* `Session Hooks` : enregistré en mémoire pour la session actuelle

743 

744Sélectionner un hook ouvre une vue détaillée affichant son événement, son matcher, son type, son fichier source et la commande, le prompt ou l'URL complet. Le menu est en lecture seule : pour ajouter, modifier ou supprimer des hooks, éditez directement le JSON des paramètres ou demandez à Claude de faire la modification.

745 739 

746<h3 id="disable-or-remove-hooks">740<h3 id="disable-or-remove-hooks">

747 Désactiver ou supprimer les hooks741 Désactiver ou supprimer les hooks

748</h3>742</h3>

749 743 

750Pour supprimer un hook, supprimez son entrée du fichier de paramètres JSON.744Pour supprimer un hook défini dans un fichier de paramètres, supprimez son entrée de ce fichier.

751 745 

752Pour désactiver temporairement tous les hooks sans les supprimer, définissez `"disableAllHooks": true` dans votre fichier de paramètres. Claude Code lit la valeur restante après que la [précédence des paramètres](/docs/fr/settings#settings-precedence) s'applique, donc un `"disableAllHooks": false` dans le `.claude/settings.json` d'un projet remplace un `true` dans vos paramètres utilisateur. Pour désactiver les hooks pour une exécution quelle que soit la configuration du projet, passez `--settings '{"disableAllHooks": true}'`, qui prend la précédence sur les paramètres du projet et locaux. Il n'y a aucun moyen de désactiver un hook individuel tout en le gardant dans la configuration.746Pour désactiver temporairement tous les hooks sans les supprimer, définissez `"disableAllHooks": true` dans votre fichier de paramètres. Claude Code lit la valeur restante après que la [précédence des paramètres](/docs/fr/settings#settings-precedence) s'applique, donc un `"disableAllHooks": false` dans le `.claude/settings.json` d'un projet remplace un `true` dans vos paramètres utilisateur. Pour désactiver les hooks pour une exécution quelle que soit la configuration du projet, passez `--settings '{"disableAllHooks": true}'`, qui prend la précédence sur les paramètres du projet et locaux. Il n'y a aucun moyen de désactiver un hook individuel tout en le gardant dans la configuration.

753 747 

hooks-guide.md +12 −9

Details

69 </Step>69 </Step>

70 70 

71 <Step title="Vérifier la configuration">71 <Step title="Vérifier la configuration">

72 Tapez `/hooks` pour ouvrir le navigateur des hooks. Vous verrez une liste de tous les événements de hook disponibles, avec un nombre à côté de chaque événement qui a des hooks configurés. Sélectionnez `Notification` pour confirmer que votre nouveau hook apparaît dans la liste. La sélection du hook affiche ses détails : l'événement, le matcher, le type, le fichier source et la commande.72 Tapez `/hooks` dans le prompt de Claude Code pour ouvrir le navigateur des hooks. Votre nouveau hook apparaît dans la liste sous `Notification`.

73 </Step>73 </Step>

74 74 

75 <Step title="Tester le hook">75 <Step title="Tester le hook">


77 </Step>77 </Step>

78</Steps>78</Steps>

79 79 

80<Tip>

81 Le menu `/hooks` est en lecture seule. Pour ajouter, modifier ou supprimer des hooks, modifiez votre JSON de paramètres directement ou demandez à Claude de faire la modification.

82</Tip>

83 

84<h2 id="what-you-can-automate">80<h2 id="what-you-can-automate">

85 Ce que vous pouvez automatiser81 Ce que vous pouvez automatiser

86</h2>82</h2>


97 93 

98Recevez une notification de bureau chaque fois que Claude termine son travail et a besoin de votre entrée, afin que vous puissiez passer à d'autres tâches sans vérifier le terminal.94Recevez une notification de bureau chaque fois que Claude termine son travail et a besoin de votre entrée, afin que vous puissiez passer à d'autres tâches sans vérifier le terminal.

99 95 

100Ce hook utilise l'événement `Notification`, qui se déclenche lorsque Claude attend une entrée ou une permission. Consultez [quand chaque type de notification se déclenche](/docs/fr/hooks#notification) pour le timing exact. Chaque onglet ci-dessous utilise la commande de notification native de la plateforme. Ajoutez ceci à `~/.claude/settings.json` :96Ce hook utilise l'événement `Notification`, que Claude Code déclenche lorsque Claude attend une entrée ou une permission. Consultez [quand chaque type de notification se déclenche](/docs/fr/hooks#notification) pour le timing exact.

97 

98Chaque onglet ci-dessous utilise la commande de notification native de la plateforme. Ajoutez ceci à `~/.claude/settings.json` :

101 99 

102<Tabs>100<Tabs>

103 <Tab title="macOS">101 <Tab title="macOS">


120 ```118 ```

121 119 

122 <Accordion title="Si aucune notification n'apparaît">120 <Accordion title="Si aucune notification n'apparaît">

123 `osascript` achemine les notifications via l'application Script Editor intégrée. Si Script Editor n'a pas la permission de notification, la commande échoue silencieusement, et macOS ne vous demandera pas de l'accorder. Exécutez ceci dans Terminal une fois pour que Script Editor apparaisse dans vos paramètres de notification :121 `osascript` achemine les notifications via l'application Script Editor intégrée. Si Script Editor n'a pas la permission de notification, la commande échoue silencieusement, et macOS ne vous demandera pas de l'accorder.

122 

123 Exécutez ceci dans Terminal une fois pour que Script Editor apparaisse dans vos paramètres de notification :

124 124 

125 ```bash theme={null}125 ```bash theme={null}

126 osascript -e 'display notification "test"'126 osascript -e 'display notification "test"'


180 ```180 ```

181 181 

182 <Accordion title="Si aucune boîte de dialogue n'apparaît">182 <Accordion title="Si aucune boîte de dialogue n'apparaît">

183 Cette commande ouvre une boîte de dialogue plutôt qu'une notification dans le coin de votre écran, la boîte de dialogue peut donc s'ouvrir derrière votre fenêtre de terminal. Testez d'abord la commande directement dans PowerShell. Si vous exécutez Claude Code dans WSL, `powershell.exe` doit être disponible sur votre `PATH` via l'interopérabilité Windows.183 Cette commande ouvre une boîte de dialogue plutôt qu'une notification dans le coin de votre écran, la boîte de dialogue peut donc s'ouvrir derrière votre fenêtre de terminal. Testez d'abord la commande directement dans PowerShell.

184 

185 Si vous exécutez Claude Code dans WSL, `powershell.exe` doit être disponible sur votre `PATH` via l'interopérabilité Windows.

184 </Accordion>186 </Accordion>

185 </Tab>187 </Tab>

186</Tabs>188</Tabs>


212 214 

213`agent_needs_input` pour une question de configuration de terminal d'un coéquipier nécessite Claude Code v2.1.248 ou version ultérieure.215`agent_needs_input` pour une question de configuration de terminal d'un coéquipier nécessite Claude Code v2.1.248 ou version ultérieure.

214 216 

215Tapez `/hooks` et sélectionnez `Notification` pour confirmer que le hook est enregistré. Pour le schéma d'événement complet, consultez la [référence Notification](/docs/fr/hooks#notification).217Tapez `/hooks` dans l'invite de Claude Code et vérifiez que le hook apparaît sous `Notification`.

216 218 

217<h3 id="auto-format-code-after-edits">219<h3 id="auto-format-code-after-edits">

218 Formater automatiquement le code après les modifications220 Formater automatiquement le code après les modifications


1055* Les modifications de fichiers sont normalement récupérées automatiquement. Si elles n'ont pas apparues après quelques secondes, l'observateur de fichiers peut avoir manqué la modification : redémarrez votre session pour forcer un rechargement.1057* Les modifications de fichiers sont normalement récupérées automatiquement. Si elles n'ont pas apparues après quelques secondes, l'observateur de fichiers peut avoir manqué la modification : redémarrez votre session pour forcer un rechargement.

1056* Vérifiez que votre JSON est valide : les virgules finales et les commentaires ne sont pas autorisés1058* Vérifiez que votre JSON est valide : les virgules finales et les commentaires ne sont pas autorisés

1057* Confirmez que le fichier de paramètres est au bon emplacement : `.claude/settings.json` pour les hooks de projet, `~/.claude/settings.json` pour les hooks globaux1059* Confirmez que le fichier de paramètres est au bon emplacement : `.claude/settings.json` pour les hooks de projet, `~/.claude/settings.json` pour les hooks globaux

1060* Si le menu affiche `Only hooks from managed settings run here`, votre organisation a défini [`allowManagedHooksOnly`](/docs/fr/settings-reference#allowmanagedhooksonly). Les hooks de vos fichiers de paramètres utilisateur, de projet et locaux ne s'exécutent pas et ne sont pas répertoriés

1058 1061 

1059<h3 id="stop-hook-hits-the-block-cap">1062<h3 id="stop-hook-hits-the-block-cap">

1060 Le hook Stop atteint le plafond de blocage1063 Le hook Stop atteint le plafond de blocage

Details

73 73 

74Diffusez les réponses d'inférence en continu. Claude Code lit le flux au fur et à mesure de son arrivée, donc si votre passerelle met en mémoire tampon les réponses complètes avant de les relayer, Claude Code s'arrête.74Diffusez les réponses d'inférence en continu. Claude Code lit le flux au fur et à mesure de son arrivée, donc si votre passerelle met en mémoire tampon les réponses complètes avant de les relayer, Claude Code s'arrête.

75 75 

76Livrez la séquence d'événements complète de chaque réponse sans supprimer, dupliquer ou réordonner les événements. Quand un événement référence un bloc de contenu dont le `content_block_start` n'est jamais arrivé, ou un bloc dont le `content_block_stop` est déjà arrivé, Claude Code arrête de lire le flux à cet événement au lieu de l'appliquer, donc un `content_block_stop` dupliqué ne peut pas exécuter le même appel d'outil deux fois. [La réponse ci-dessus peut être incomplète](/docs/fr/errors#the-response-above-may-be-incomplete) décrit ce que l'utilisateur voit, selon les variantes `Part of the response never arrived` et `The response stream was malformed`.76Livrez la séquence d'événements complète de chaque réponse sans supprimer, dupliquer ou réordonner les événements. Quand un garde-fou Amazon Bedrock bloque une réponse, transférez les événements qu'il envoie sans modification, même quand ils référencent un bloc de contenu dont le `content_block_stop` est déjà arrivé. [AWS Guardrails](/docs/fr/amazon-bedrock#aws-guardrails) décrit comment cette réponse se termine. Quand tout autre événement référence un bloc de contenu dont le `content_block_start` n'est jamais arrivé, ou un bloc dont le `content_block_stop` est déjà arrivé, Claude Code arrête de lire le flux à cet événement au lieu de l'appliquer, donc un `content_block_stop` dupliqué ne peut pas exécuter le même appel d'outil deux fois. [La réponse ci-dessus peut être incomplète](/docs/fr/errors#the-response-above-may-be-incomplete) décrit ce que l'utilisateur voit, selon les variantes `Part of the response never arrived` et `The response stream was malformed`.

77 77 

78Relayez chaque réponse via ses événements finaux `message_delta` et `message_stop` avant de terminer le corps. Un corps qui se termine après un `message_delta` portant un `stop_reason`, sans bloc de contenu encore ouvert et sans événement de bloc de contenu après cette trame, compte comme complet même quand `message_stop` est manquant. Un corps que votre passerelle termine proprement plus tôt, une fois qu'un bloc de contenu a commencé, est traité de la même manière qu'une connexion interrompue : [Tentatives automatiques](/docs/fr/errors#automatic-retries) indique quand Claude Code réédite la requête, et [La réponse ci-dessus peut être incomplète](/docs/fr/errors#the-response-above-may-be-incomplete) couvre ce qu'il conserve une fois que le contenu visible est arrivé. Claude Code conserve le `stop_reason` qu'un `message_delta` livre, donc un `message_delta` ultérieur contenant uniquement l'utilisation dont le `delta` a `stop_reason: null` ou aucune clé `stop_reason` ne l'efface pas.78Relayez chaque réponse via ses événements finaux `message_delta` et `message_stop` avant de terminer le corps. Un corps qui se termine après un `message_delta` portant un `stop_reason`, sans bloc de contenu encore ouvert et sans événement de bloc de contenu après cette trame, compte comme complet même quand `message_stop` est manquant. Un corps que votre passerelle termine proprement plus tôt, une fois qu'un bloc de contenu a commencé, est traité de la même manière qu'une connexion interrompue : [Tentatives automatiques](/docs/fr/errors#automatic-retries) indique quand Claude Code réédite la requête, et [La réponse ci-dessus peut être incomplète](/docs/fr/errors#the-response-above-may-be-incomplete) couvre ce qu'il conserve une fois que le contenu visible est arrivé. Claude Code conserve le `stop_reason` qu'un `message_delta` livre, donc un `message_delta` ultérieur contenant uniquement l'utilisation dont le `delta` a `stop_reason: null` ou aucune clé `stop_reason` ne l'efface pas.

79 79 

memory.md +39 −37

Details

41 Fichiers CLAUDE.md41 Fichiers CLAUDE.md

42</h2>42</h2>

43 43 

44Les fichiers CLAUDE.md sont des fichiers markdown qui donnent à Claude des instructions persistantes pour un projet, votre flux de travail personnel ou toute votre organisation. Vous écrivez ces fichiers en texte brut ; Claude les lit au début de chaque session. Si votre référentiel utilise `AGENTS.md` à la place, consultez [AGENTS.md](#agents-md).44Les fichiers CLAUDE.md sont des fichiers markdown qui donnent à Claude des instructions persistantes pour un projet, votre workflow personnel ou toute votre organisation. Vous écrivez ces fichiers en texte brut ; Claude les lit au début de chaque session. Si votre dépôt utilise `AGENTS.md` à la place, consultez [AGENTS.md](#agents-md).

45 45 

46<h3 id="when-to-add-to-claude-md">46<h3 id="when-to-add-to-claude-md">

47 Quand ajouter à CLAUDE.md47 Quand ajouter à CLAUDE.md


54* Vous tapez la même correction ou clarification dans le chat que vous aviez tapée la session précédente54* Vous tapez la même correction ou clarification dans le chat que vous aviez tapée la session précédente

55* Un nouveau coéquipier aurait besoin du même contexte pour être productif55* Un nouveau coéquipier aurait besoin du même contexte pour être productif

56 56 

57Limitez-vous aux faits que Claude doit retenir à chaque session : commandes de compilation, conventions, disposition du projet, règles « toujours faire X ». Si une entrée est une procédure multi-étapes ou ne concerne qu'une partie de la base de code, déplacez-la vers une [compétence](/docs/fr/skills) ou une [règle scoped par chemin](#organize-rules-with-claude/rules/) à la place. L'[aperçu des extensions](/docs/fr/features-overview#build-your-setup-over-time) couvre quand utiliser chaque mécanisme.57Limitez-vous aux faits que Claude doit retenir à chaque session : commandes de build, conventions, disposition du projet, règles « toujours faire X ». Si une entrée est une procédure multi-étapes ou ne concerne qu'une partie de la base de code, déplacez-la vers un [skill](/docs/fr/skills) ou une [règle limitée à des chemins](#organize-rules-with-claude/rules/) à la place. L'[aperçu des extensions](/docs/fr/features-overview#build-your-setup-over-time) couvre quand utiliser chaque mécanisme.

58 58 

59<h3 id="choose-where-to-put-claude-md-files">59<h3 id="choose-where-to-put-claude-md-files">

60 Choisir où placer les fichiers CLAUDE.md60 Choisir où placer les fichiers CLAUDE.md


66| - | - | - | - | - |66| - | - | - | - | - |

67| **Politique gérée** | • macOS : `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux et WSL : `/etc/claude-code/CLAUDE.md`<br />• Windows : `C:\Program Files\ClaudeCode\CLAUDE.md` | Instructions à l'échelle de l'organisation gérées par l'informatique/DevOps | Normes de codage de l'entreprise, politiques de sécurité, exigences de conformité | Tous les utilisateurs de l'organisation |67| **Politique gérée** | • macOS : `/Library/Application Support/ClaudeCode/CLAUDE.md`<br />• Linux et WSL : `/etc/claude-code/CLAUDE.md`<br />• Windows : `C:\Program Files\ClaudeCode\CLAUDE.md` | Instructions à l'échelle de l'organisation gérées par l'informatique/DevOps | Normes de codage de l'entreprise, politiques de sécurité, exigences de conformité | Tous les utilisateurs de l'organisation |

68| **Instructions utilisateur** | `~/.claude/CLAUDE.md` | Préférences personnelles pour tous les projets | Préférences de style de code, raccourcis d'outils personnels | Juste vous (tous les projets) |68| **Instructions utilisateur** | `~/.claude/CLAUDE.md` | Préférences personnelles pour tous les projets | Préférences de style de code, raccourcis d'outils personnels | Juste vous (tous les projets) |

69| **Instructions de projet** | `./CLAUDE.md` ou `./.claude/CLAUDE.md`. Consultez [AGENTS.md](#agents-md) pour savoir quand `./AGENTS.md` se charge à la place ou aux côtés de ceux-ci | Instructions partagées par l'équipe pour le projet | Architecture du projet, normes de codage, flux de travail courants | Membres de l'équipe via le contrôle de source |69| **Instructions de projet** | `./CLAUDE.md` ou `./.claude/CLAUDE.md`. Consultez [AGENTS.md](#agents-md) pour savoir quand `./AGENTS.md` se charge à la place ou aux côtés de ceux-ci | Instructions partagées par l'équipe pour le projet | Architecture du projet, normes de codage, workflows courants | Membres de l'équipe via le contrôle de source |

70| **Instructions locales** | `./CLAUDE.local.md` | Préférences personnelles spécifiques au projet ; ajouter à `.gitignore` | Vos URL de sandbox, données de test préférées | Juste vous (projet actuel) |70| **Instructions locales** | `./CLAUDE.local.md` | Préférences personnelles spécifiques au projet ; ajouter à `.gitignore` | Vos URL de sandbox, données de test préférées | Juste vous (projet actuel) |

71 71 

72Les fichiers CLAUDE.md et CLAUDE.local.md dans la hiérarchie de répertoires au-dessus du répertoire de travail sont chargés au lancement. Les fichiers dans les sous-répertoires se chargent à la demande quand Claude lit les fichiers de ces répertoires. Consultez [Comment les fichiers CLAUDE.md se chargent](#how-claude-md-files-load) pour l'ordre de résolution complet.72Les fichiers CLAUDE.md et CLAUDE.local.md dans la hiérarchie de répertoires au-dessus du répertoire de travail sont chargés au lancement. Les fichiers dans les sous-répertoires se chargent à la demande quand Claude lit les fichiers de ces répertoires. Consultez [Comment les fichiers CLAUDE.md se chargent](#how-claude-md-files-load) pour l'ordre de résolution complet.


77 Configurer un CLAUDE.md de projet77 Configurer un CLAUDE.md de projet

78</h3>78</h3>

79 79 

80Un CLAUDE.md de projet peut être stocké dans `./CLAUDE.md` ou `./.claude/CLAUDE.md`. Créez ce fichier et ajoutez des instructions qui s'appliquent à quiconque travaille sur le projet : commandes de compilation et de test, normes de codage, décisions architecturales, conventions de nommage et flux de travail courants. Ces instructions sont partagées avec votre équipe via le contrôle de source, donc concentrez-vous sur les normes au niveau du projet plutôt que sur les préférences personnelles. Pour confirmer que le fichier a été chargé, exécutez `/context` dans une session et vérifiez la liste sous **Fichiers de mémoire**.80Un CLAUDE.md de projet peut être stocké dans `./CLAUDE.md` ou `./.claude/CLAUDE.md`. Créez ce fichier et ajoutez des instructions qui s'appliquent à quiconque travaille sur le projet : commandes de build et de test, normes de codage, décisions architecturales, conventions de nommage et workflows courants. Ces instructions sont partagées avec votre équipe via le contrôle de source, donc concentrez-vous sur les normes au niveau du projet plutôt que sur les préférences personnelles. Pour confirmer que le fichier a été chargé, exécutez `/context` dans une session et vérifiez la liste sous **Memory files**.

81 81 

82<Tip>82<Tip>

83 Exécutez `/init` pour générer automatiquement un CLAUDE.md de démarrage. Claude analyse votre base de code et crée un fichier avec les commandes de compilation, les instructions de test et les conventions de projet qu'il découvre. Si un CLAUDE.md existe déjà, `/init` suggère des améliorations plutôt que de le remplacer. Affinez-le à partir de là avec des instructions que Claude ne découvrirait pas de lui-même.83 Exécutez `/init` pour générer automatiquement un CLAUDE.md de démarrage. Claude analyse votre base de code et crée un fichier avec les commandes de build, les instructions de test et les conventions de projet qu'il découvre. Si un CLAUDE.md existe déjà, `/init` suggère des améliorations plutôt que de le remplacer. Affinez-le à partir de là avec des instructions que Claude ne découvrirait pas de lui-même.

84 84 

85 Pour un flux interactif multi-phases à la place, définissez la variable d'environnement `CLAUDE_CODE_NEW_INIT` à `1` avant d'exécuter `/init`. Définissez-la dans votre shell ou dans le bloc `env` d'un fichier de paramètres, comme indiqué dans [Définir les variables d'environnement](/docs/fr/env-vars#set-environment-variables). Avec elle définie, `/init` demande quels artefacts configurer : fichiers CLAUDE.md, compétences et hooks. Il explore ensuite votre base de code avec un sous-agent, comble les lacunes via des questions de suivi et présente une proposition vérifiable avant d'écrire des fichiers. La variable ne change que la façon dont `/init` s'exécute, de sorte que vous pouvez la laisser définie.85 Pour un flux interactif multi-phases à la place, définissez la variable d'environnement `CLAUDE_CODE_NEW_INIT` à `1` avant d'exécuter `/init`. Définissez-la dans votre shell ou dans le bloc `env` d'un fichier de paramètres, comme indiqué dans [Définir les variables d'environnement](/docs/fr/env-vars#set-environment-variables). Avec elle définie, `/init` demande quels artefacts configurer : fichiers CLAUDE.md, skills et hooks. Il explore ensuite votre base de code avec un sous-agent, comble les lacunes via des questions de suivi et présente une proposition vérifiable avant d'écrire des fichiers. La variable ne change que la façon dont `/init` s'exécute, de sorte que vous pouvez la laisser définie.

86</Tip>86</Tip>

87 87 

88<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">


92Claude traite les fichiers CLAUDE.md comme du contexte, pas comme une configuration appliquée, donc la façon dont vous écrivez les instructions affecte la fiabilité avec laquelle Claude les suit. Écrivez des instructions suffisamment concrètes pour être vérifiables :92Claude traite les fichiers CLAUDE.md comme du contexte, pas comme une configuration appliquée, donc la façon dont vous écrivez les instructions affecte la fiabilité avec laquelle Claude les suit. Écrivez des instructions suffisamment concrètes pour être vérifiables :

93 93 

94* « Utiliser l'indentation à 2 espaces » au lieu de « Formater le code correctement »94* « Utiliser l'indentation à 2 espaces » au lieu de « Formater le code correctement »

95* « Exécuter `npm test` avant de valider » au lieu de « Testez vos modifications »95* « Exécuter `npm test` avant de commiter » au lieu de « Testez vos modifications »

96* « Les gestionnaires d'API se trouvent dans `src/api/handlers/` » au lieu de « Gardez les fichiers organisés »96* « Les gestionnaires d'API se trouvent dans `src/api/handlers/` » au lieu de « Gardez les fichiers organisés »

97 97 

98Gardez vos fichiers courts, organisés et cohérents :98Gardez vos fichiers courts, organisés et cohérents :

99 99 

100* **Taille** : visez moins de 200 lignes par fichier CLAUDE.md. Les fichiers plus longs consomment plus de contexte et réduisent l'adhérence. Déplacez les instructions qui ne concernent qu'une partie de la base de code vers [les règles scoped par chemin](#path-specific-rules), qui ne se chargent que quand Claude travaille avec des fichiers correspondants. Les [imports](#import-additional-files) vous aident à organiser un fichier long mais ne réduisent pas son coût de contexte, car les fichiers importés se chargent également au lancement.100* **Taille** : visez moins de 200 lignes par fichier CLAUDE.md. Les fichiers plus longs consomment plus de contexte et réduisent l'adhérence. Déplacez les instructions qui ne concernent qu'une partie de la base de code vers [les règles limitées à des chemins](#path-specific-rules), qui ne se chargent que quand Claude travaille avec des fichiers correspondants. Les [imports](#import-additional-files) vous aident à organiser un fichier long mais ne réduisent pas son coût de contexte, car les fichiers importés se chargent également au lancement.

101* **Structure** : regroupez les instructions connexes sous des en-têtes markdown et des puces. Les sections organisées sont plus faciles à suivre pour Claude que les paragraphes denses.101* **Structure** : regroupez les instructions connexes sous des en-têtes markdown et des puces. Les sections organisées sont plus faciles à suivre pour Claude que les paragraphes denses.

102* **Cohérence** : si deux instructions se contredisent, Claude peut en choisir une arbitrairement. Examinez régulièrement vos fichiers CLAUDE.md, les fichiers CLAUDE.md imbriqués dans les sous-répertoires et [`.claude/rules/`](#organize-rules-with-claude/rules/) pour supprimer les instructions obsolètes ou conflictuelles. Pour que Claude les trouve pour vous, [exécutez un audit d'invite](#audit-your-instruction-files).102* **Cohérence** : si deux instructions se contredisent, Claude peut en choisir une arbitrairement. Examinez régulièrement vos fichiers CLAUDE.md, les fichiers CLAUDE.md imbriqués dans les sous-répertoires et [`.claude/rules/`](#organize-rules-with-claude/rules/) pour supprimer les instructions obsolètes ou conflictuelles. Pour que Claude les trouve pour vous, [exécutez un audit de prompt](#audit-your-instruction-files).

103 103 

104<h4 id="audit-your-instruction-files">104<h4 id="audit-your-instruction-files">

105 Auditer vos fichiers d'instructions105 Auditer vos fichiers d'instructions


107 107 

108Pour que Claude vérifie vos fichiers d'instructions pour les contenus obsolètes ou conflictuels, exécutez `/doctor prompt-audit` dans une session. Claude recherche des problèmes tels que les instructions écrites pour les anciens modèles, les références à des fichiers ou des commandes qui n'existent pas, et les fichiers qui se contredisent. Vous obtenez un rapport des résultats avec les modifications proposées, et rien dans vos fichiers ne change jusqu'à ce que vous demandiez à Claude de les appliquer.108Pour que Claude vérifie vos fichiers d'instructions pour les contenus obsolètes ou conflictuels, exécutez `/doctor prompt-audit` dans une session. Claude recherche des problèmes tels que les instructions écrites pour les anciens modèles, les références à des fichiers ou des commandes qui n'existent pas, et les fichiers qui se contredisent. Vous obtenez un rapport des résultats avec les modifications proposées, et rien dans vos fichiers ne change jusqu'à ce que vous demandiez à Claude de les appliquer.

109 109 

110Par défaut, l'audit couvre vos fichiers CLAUDE.md, CLAUDE.local.md et AGENTS.md, plus les règles, compétences, commandes, sous-agents et styles de sortie sous `.claude/` et `~/.claude/`. Pour auditer un fichier ou un répertoire à la place, passez son chemin, par exemple `/doctor prompt-audit .claude/skills/deploy`.110Par défaut, l'audit couvre vos fichiers CLAUDE.md, CLAUDE.local.md et AGENTS.md, plus les règles, skills, commandes, sous-agents et styles de sortie sous `.claude/` et `~/.claude/`. Pour auditer un fichier ou un répertoire à la place, passez son chemin, par exemple `/doctor prompt-audit .claude/skills/deploy`.

111 111 

112L'audit s'exécute via la compétence `/claude-api` groupée. Elle n'est pas disponible quand cette compétence est désactivée dans [`skillOverrides`](/docs/fr/skills#override-skill-visibility-from-settings) ou avec [`disableBundledSkills`](/docs/fr/settings-reference#disablebundledskills). `/doctor prompt-audit` nécessite Claude Code v2.1.283 ou ultérieur.112L'audit s'exécute via le skill `/claude-api` intégré. Il n'est pas disponible quand ce skill est désactivé dans [`skillOverrides`](/docs/fr/skills#override-skill-visibility-from-settings) ou avec [`disableBundledSkills`](/docs/fr/settings-reference#disablebundledskills). `/doctor prompt-audit` nécessite Claude Code v2.1.283 ou ultérieur.

113 113 

114<h3 id="import-additional-files">114<h3 id="import-additional-files">

115 Importer des fichiers supplémentaires115 Importer des fichiers supplémentaires


127 127 

128L'analyse d'import ignore les étendues de code Markdown et les blocs de code clôturés. Pour mentionner un chemin dans votre CLAUDE.md sans l'importer, enveloppez-le dans des backticks : écrire `` `@README` `` garde le texte littéral, tandis que `@README` en dehors des backticks importe le fichier.128L'analyse d'import ignore les étendues de code Markdown et les blocs de code clôturés. Pour mentionner un chemin dans votre CLAUDE.md sans l'importer, enveloppez-le dans des backticks : écrire `` `@README` `` garde le texte littéral, tandis que `@README` en dehors des backticks importe le fichier.

129 129 

130Pour intégrer un README, package.json et un guide de flux de travail, référencez-les avec la syntaxe `@` n'importe où dans votre CLAUDE.md :130Pour intégrer un README, package.json et un guide de workflow, référencez-les avec la syntaxe `@` n'importe où dans votre CLAUDE.md :

131 131 

132```text theme={null}132```text theme={null}

133Consultez @README pour un aperçu du projet et @package.json pour les commandes npm disponibles pour ce projet.133Consultez @README pour un aperçu du projet et @package.json pour les commandes npm disponibles pour ce projet.

134 134 

135# Instructions supplémentaires135# Instructions supplémentaires

136- flux de travail git @docs/git-instructions.md136- workflow git @docs/git-instructions.md

137```137```

138 138 

139Pour les préférences personnelles privées par projet qui ne doivent pas être validées dans le contrôle de source, créez un `CLAUDE.local.md` à la racine du projet. Il se charge aux côtés de `CLAUDE.md` et est traité de la même manière. Ajoutez `CLAUDE.local.md` à votre `.gitignore` pour qu'il ne soit pas validé. Avec `CLAUDE_CODE_NEW_INIT=1` défini, l'exécution de `/init` et le choix de l'option personnelle le font pour vous.139Pour les préférences personnelles privées par projet qui ne doivent pas être enregistrées dans le contrôle de source, créez un `CLAUDE.local.md` à la racine du projet. Il se charge aux côtés de `CLAUDE.md` et est traité de la même manière. Ajoutez `CLAUDE.local.md` à votre `.gitignore` pour qu'il ne fasse pas l'objet d'un commit. Avec `CLAUDE_CODE_NEW_INIT=1` défini, l'exécution de `/init` et le choix de l'option personnelle le font pour vous.

140 140 

141Si vous travaillez sur plusieurs git worktrees du même référentiel, un `CLAUDE.local.md` ignoré par git n'existe que dans le worktree où vous l'avez créé. Pour partager des instructions personnelles entre worktrees, importez plutôt un fichier de votre répertoire personnel :141Si vous travaillez sur plusieurs git worktrees du même dépôt, un `CLAUDE.local.md` ignoré par git n'existe que dans le worktree où vous l'avez créé. Pour partager des instructions personnelles entre worktrees, importez plutôt un fichier de votre répertoire personnel :

142 142 

143```text theme={null}143```text theme={null}

144# Préférences individuelles144# Préférences individuelles


148<Warning>148<Warning>

149 Un import dans un fichier de mémoire au niveau du projet est externe quand son chemin se résout en dehors de votre répertoire de travail, comme l'import du répertoire personnel ci-dessus. La première fois que Claude Code rencontre des imports externes dans un projet, il affiche une boîte de dialogue d'approbation listant les fichiers. Si vous refusez, les imports restent désactivés et la boîte de dialogue n'apparaît plus.149 Un import dans un fichier de mémoire au niveau du projet est externe quand son chemin se résout en dehors de votre répertoire de travail, comme l'import du répertoire personnel ci-dessus. La première fois que Claude Code rencontre des imports externes dans un projet, il affiche une boîte de dialogue d'approbation listant les fichiers. Si vous refusez, les imports restent désactivés et la boîte de dialogue n'apparaît plus.

150 150 

151 Claude Code affiche la boîte de dialogue pour vous protéger des fichiers que d'autres personnes valident dans un projet partagé. Les fichiers de mémoire au niveau utilisateur, tels que `~/.claude/CLAUDE.md` et `~/.claude/rules/`, sont des fichiers que vous avez écrit vous-même. Sauf dans les sessions [Cowork](https://claude.com/product/cowork) sur votre bureau, Claude Code charge leurs imports sans la boîte de dialogue et les fait confiance comme le reste de votre configuration personnelle.151 Claude Code affiche la boîte de dialogue pour vous protéger des fichiers que d'autres personnes commitent dans un projet partagé. Les fichiers de mémoire au niveau utilisateur, tels que `~/.claude/CLAUDE.md` et `~/.claude/rules/`, sont des fichiers que vous avez écrits vous-même. Sauf dans les sessions [Cowork](https://claude.com/product/cowork) sur votre bureau, Claude Code charge leurs imports sans la boîte de dialogue et leur fait confiance comme au reste de votre configuration personnelle.

152 152 

153 Dans les sessions Cowork sur votre bureau, Claude Code ignore tout import dans un fichier au niveau utilisateur qui se résout en un chemin en dehors du répertoire de travail de la session et charge le reste du fichier. Dans ces sessions, il ignore également un `~/.claude/CLAUDE.md` qui est lui-même un lien symbolique ou un lien physique, et un répertoire `~/.claude/rules/` symlinké ou un fichier de règle qui pointe en dehors du répertoire de travail.153 Dans les sessions Cowork sur votre bureau, Claude Code ignore tout import dans un fichier au niveau utilisateur qui se résout en un chemin en dehors du répertoire de travail de la session et charge le reste du fichier. Dans ces sessions, il ignore également un `~/.claude/CLAUDE.md` qui est lui-même un lien symbolique ou un lien physique, ainsi qu'un répertoire `~/.claude/rules/` ou un fichier de règle qui est un lien symbolique pointant en dehors du répertoire de travail.

154</Warning>154</Warning>

155 155 

156<h3 id="how-claude-md-files-load">156<h3 id="how-claude-md-files-load">


161 161 

162Tous les fichiers découverts sont concaténés en contexte plutôt que de se remplacer les uns les autres. Dans l'arborescence des répertoires, le contenu est ordonné de la racine du système de fichiers jusqu'à votre répertoire de travail. Pour l'exemple `foo/bar/`, `foo/CLAUDE.md` apparaît en contexte avant `foo/bar/CLAUDE.md`, de sorte que les instructions plus proches de l'endroit où vous avez lancé Claude sont lues en dernier. Dans chaque répertoire, `CLAUDE.local.md` est ajouté après `CLAUDE.md`, de sorte que vos notes personnelles sont la dernière chose que Claude lit à ce niveau.162Tous les fichiers découverts sont concaténés en contexte plutôt que de se remplacer les uns les autres. Dans l'arborescence des répertoires, le contenu est ordonné de la racine du système de fichiers jusqu'à votre répertoire de travail. Pour l'exemple `foo/bar/`, `foo/CLAUDE.md` apparaît en contexte avant `foo/bar/CLAUDE.md`, de sorte que les instructions plus proches de l'endroit où vous avez lancé Claude sont lues en dernier. Dans chaque répertoire, `CLAUDE.local.md` est ajouté après `CLAUDE.md`, de sorte que vos notes personnelles sont la dernière chose que Claude lit à ce niveau.

163 163 

164Claude découvre également les fichiers `CLAUDE.md` et `CLAUDE.local.md` dans les sous-répertoires sous votre répertoire de travail actuel. Au lieu de les charger au lancement, ils sont inclus quand Claude lit les fichiers de ces sous-répertoires.164Claude découvre également les fichiers `CLAUDE.md` et `CLAUDE.local.md` dans les sous-répertoires sous votre répertoire de travail actuel. Au lieu de les charger au lancement, ils sont inclus quand Claude lit les fichiers de ces sous-répertoires. Pour les fichiers situés dans un worktree sous `.claude/worktrees/`, consultez [Isoler les sous-agents avec des worktrees](/docs/fr/worktrees#isolate-subagents-with-worktrees).

165 165 

166Si vous travaillez dans un grand monorepo où les fichiers CLAUDE.md d'autres équipes sont détectés, utilisez [`claudeMdExcludes`](#exclude-specific-claude-md-files) pour les ignorer. Pour la disposition complète des fichiers CLAUDE.md racine et par répertoire et des règles, consultez [Monorepos et grands référentiels](/docs/fr/large-codebases).166Si vous travaillez dans un grand monorepo où les fichiers CLAUDE.md d'autres équipes sont détectés, utilisez [`claudeMdExcludes`](#exclude-specific-claude-md-files) pour les ignorer. Pour la disposition complète des fichiers CLAUDE.md racine et par répertoire et des règles, consultez [Monorepos et grands dépôts](/docs/fr/large-codebases).

167 167 

168Les commentaires HTML au niveau des blocs (`<!-- maintainer notes -->`) dans les fichiers CLAUDE.md sont supprimés avant que le contenu ne soit injecté dans le contexte de Claude. Utilisez-les pour laisser des notes aux responsables humains sans dépenser de jetons de contexte. Les commentaires à l'intérieur des blocs de code sont conservés. Quand vous ouvrez un fichier CLAUDE.md directement avec l'outil Read, les commentaires restent visibles.168Les commentaires HTML au niveau des blocs (`<!-- maintainer notes -->`) dans les fichiers CLAUDE.md sont supprimés avant que le contenu ne soit injecté dans le contexte de Claude. Utilisez-les pour laisser des notes aux responsables humains sans dépenser de tokens de contexte. Les commentaires à l'intérieur des blocs de code sont conservés. Quand vous ouvrez un fichier CLAUDE.md directement avec l'outil Read, les commentaires restent visibles.

169 169 

170<h4 id="load-from-additional-directories">170<h4 id="load-from-additional-directories">

171 Charger à partir de répertoires supplémentaires171 Charger à partir de répertoires supplémentaires

172</h4>172</h4>

173 173 

174Le drapeau `--add-dir` donne à Claude accès à des répertoires supplémentaires en dehors de votre répertoire de travail principal. Par défaut, les fichiers CLAUDE.md de ces répertoires ne sont pas chargés.174Le flag `--add-dir` donne à Claude accès à des répertoires supplémentaires en dehors de votre répertoire de travail principal. Par défaut, les fichiers CLAUDE.md de ces répertoires ne sont pas chargés.

175 175 

176Pour charger également les fichiers de mémoire à partir de répertoires supplémentaires, définissez la variable d'environnement `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` :176Pour charger également les fichiers de mémoire à partir de répertoires supplémentaires, définissez la variable d'environnement `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` :

177 177 


187 Organiser les règles avec `.claude/rules/`187 Organiser les règles avec `.claude/rules/`

188</h3>188</h3>

189 189 

190Pour les projets plus importants, vous pouvez organiser les instructions en plusieurs fichiers en utilisant le répertoire `.claude/rules/`. Cela garde les instructions modulaires et plus faciles à maintenir pour les équipes. Les règles peuvent également être [scoped à des chemins de fichiers spécifiques](#path-specific-rules), de sorte qu'elles ne se chargent en contexte que quand Claude travaille avec des fichiers correspondants, réduisant le bruit et économisant l'espace de contexte.190Pour les projets plus importants, vous pouvez organiser les instructions en plusieurs fichiers en utilisant le répertoire `.claude/rules/`. Cela garde les instructions modulaires et plus faciles à maintenir pour les équipes. Les règles peuvent également être [limitées à des chemins de fichiers spécifiques](#path-specific-rules), de sorte qu'elles ne se chargent en contexte que quand Claude travaille avec des fichiers correspondants, réduisant le bruit et économisant l'espace de contexte.

191 191 

192<Note>192<Note>

193 Les règles se chargent en contexte à chaque session ou quand des fichiers correspondants sont ouverts. Pour les instructions spécifiques à une tâche qui n'ont pas besoin d'être en contexte tout le temps, utilisez plutôt les [compétences](/docs/fr/skills), qui ne se chargent que quand vous les invoquez ou quand Claude détermine qu'elles sont pertinentes pour votre invite.193 Les règles se chargent en contexte à chaque session ou quand des fichiers correspondants sont ouverts. Pour les instructions spécifiques à une tâche qui n'ont pas besoin d'être en contexte tout le temps, utilisez plutôt les [skills](/docs/fr/skills), qui ne se chargent que quand vous les invoquez ou quand Claude détermine qu'ils sont pertinents pour votre prompt.

194</Note>194</Note>

195 195 

196<h4 id="set-up-rules">196<h4 id="set-up-rules">


211 211 

212Les règles sans [frontmatter `paths`](#path-specific-rules) sont chargées au lancement avec la même priorité que `.claude/CLAUDE.md`.212Les règles sans [frontmatter `paths`](#path-specific-rules) sont chargées au lancement avec la même priorité que `.claude/CLAUDE.md`.

213 213 

214Les règles de projet sont ignorées si vous excluez `project` de [`--setting-sources`](/docs/fr/cli-reference). Avant v2.1.211, les règles qui se chargent à la demande, y compris les règles scoped par chemin et les règles dans les répertoires `.claude/rules/` imbriqués, se chargeaient même quand `project` était exclu.214Les règles de projet sont ignorées si vous excluez `project` de [`--setting-sources`](/docs/fr/cli-reference). Avant v2.1.211, les règles qui se chargent à la demande, y compris les règles limitées à des chemins et les règles dans les répertoires `.claude/rules/` imbriqués, se chargeaient même quand `project` était exclu.

215 215 

216<h4 id="path-specific-rules">216<h4 id="path-specific-rules">

217 Règles spécifiques au chemin217 Règles spécifiques au chemin

218</h4>218</h4>

219 219 

220Les règles peuvent être scoped à des fichiers spécifiques en utilisant le frontmatter YAML avec le champ `paths`. Ces règles conditionnelles ne s'appliquent que quand Claude travaille avec des fichiers correspondant aux modèles spécifiés.220Les règles peuvent être limitées à des fichiers spécifiques en utilisant le frontmatter YAML avec le champ `paths`. Ces règles conditionnelles ne s'appliquent que quand Claude travaille avec des fichiers correspondant aux modèles spécifiés.

221 221 

222```markdown theme={null}222```markdown theme={null}

223---223---


227 227 

228# Règles de développement d'API228# Règles de développement d'API

229 229 

230- Tous les points de terminaison d'API doivent inclure la validation des entrées230- Tous les endpoints d'API doivent inclure la validation des entrées

231- Utiliser le format de réponse d'erreur standard231- Utiliser le format de réponse d'erreur standard

232- Inclure les commentaires de documentation OpenAPI232- Inclure les commentaires de documentation OpenAPI

233```233```

234 234 

235Les règles sans champ `paths` sont chargées sans condition et s'appliquent à tous les fichiers. Les règles scoped par chemin se déclenchent quand Claude lit les fichiers correspondant au modèle, pas à chaque utilisation d'outil. À partir de v2.1.198, la correspondance fonctionne également quand Claude atteint un fichier via un chemin symlinké vers le répertoire du projet, par exemple dans un checkout symlinké.235Les règles sans champ `paths` sont chargées sans condition et s'appliquent à tous les fichiers. Les règles limitées à des chemins se déclenchent quand Claude lit les fichiers correspondant au modèle, pas à chaque utilisation d'outil. La correspondance fonctionne également quand Claude atteint un fichier via un chemin passant par un lien symbolique vers le répertoire du projet, par exemple dans un checkout accessible via un lien symbolique.

236 236 

237Utilisez les modèles glob dans le champ `paths` pour faire correspondre les fichiers par extension, répertoire ou toute combinaison :237Utilisez les modèles glob dans le champ `paths` pour faire correspondre les fichiers par extension, répertoire ou toute combinaison :

238 238 


268 268 

269| Champ | Requis | Description |269| Champ | Requis | Description |

270| :- | :- | :- |270| :- | :- | :- |

271| `paths` | Non | Modèles glob qui [scoped la règle aux fichiers correspondants](#path-specific-rules). Accepte une liste YAML ou une chaîne séparée par des virgules |271| `paths` | Non | Modèles glob qui [limitent la règle aux fichiers correspondants](#path-specific-rules). Accepte une liste YAML ou une chaîne séparée par des virgules |

272 272 

273Si le YAML entre les marqueurs ne s'analyse pas, Claude Code ignore le frontmatter et charge la règle comme si elle n'avait pas de `paths`. Exécutez `claude --debug` pour voir l'erreur d'analyse.273Si le YAML entre les marqueurs ne s'analyse pas, Claude Code ignore le frontmatter et charge la règle comme si elle n'avait pas de `paths`. Exécutez `claude --debug` pour voir l'erreur d'analyse.

274 274 

275<h4 id="share-rules-across-projects-with-symlinks">275<h4 id="share-rules-across-projects-with-symlinks">

276 Partager les règles entre les projets avec des symlinks276 Partager les règles entre les projets avec des liens symboliques

277</h4>277</h4>

278 278 

279Le répertoire `.claude/rules/` supporte les symlinks, de sorte que vous pouvez maintenir un ensemble partagé de règles et les lier dans plusieurs projets. Les symlinks circulaires sont détectés et gérés correctement.279Le répertoire `.claude/rules/` prend en charge les liens symboliques, de sorte que vous pouvez maintenir un ensemble partagé de règles et les lier dans plusieurs projets. Les liens symboliques circulaires sont détectés et gérés correctement.

280 280 

281Claude Code traite un symlink dont la cible se trouve en dehors de votre répertoire de travail comme un [import externe](#import-additional-files). Les règles liées ne se chargent pas jusqu'à ce que vous approuviez les imports externes pour le projet, et après cela seulement celles sans champ [`paths`](#path-specific-rules) se chargent. Claude Code demande cette approbation uniquement quand un fichier de mémoire de projet importe un fichier en dehors du répertoire de travail avec `@path`, pas pour les symlinks seuls. Pour charger les règles partagées sans cette approbation, gardez-les dans [`~/.claude/rules/`](#user-level-rules), où elles s'appliquent à chaque projet sur votre machine.281Claude Code traite un lien symbolique dont la cible se trouve en dehors de votre répertoire de travail comme un [import externe](#import-additional-files). Les règles liées ne se chargent pas jusqu'à ce que vous approuviez les imports externes pour le projet, et après cela seulement celles sans champ [`paths`](#path-specific-rules) se chargent. Claude Code demande cette approbation uniquement quand un fichier de mémoire de projet importe un fichier en dehors du répertoire de travail avec `@path`, pas pour les liens symboliques seuls. Pour charger les règles partagées sans cette approbation, gardez-les dans [`~/.claude/rules/`](#user-level-rules), où elles s'appliquent à chaque projet sur votre machine.

282 282 

283Cet exemple lie à la fois un répertoire partagé et un fichier individuel :283Cet exemple lie à la fois un répertoire partagé et un fichier individuel :

284 284 


287ln -s ~/company-standards/security.md .claude/rules/security.md287ln -s ~/company-standards/security.md .claude/rules/security.md

288```288```

289 289 

290Si vous pointez un symlink `.claude/rules/` ou `CLAUDE.md` vers un chemin réseau tel que le partage UNC `\\server\share` ou un chemin sous `/net` ou `/Network`, les instructions liées ne se chargent pas. Claude Code ne suit pas le lien, car la recherche d'un tel chemin peut contacter l'hôte qu'il nomme. Les chemins `\\wsl$` ne comptent pas comme des chemins réseau.290Si vous pointez un lien symbolique `.claude/rules/` ou `CLAUDE.md` vers un chemin réseau tel que le partage UNC `\\server\share` ou un chemin sous `/net` ou `/Network`, les instructions liées ne se chargent pas. Claude Code ne suit pas le lien, car la recherche d'un tel chemin peut contacter l'hôte qu'il nomme. Les chemins `\\wsl$` ne comptent pas comme des chemins réseau.

291 291 

292<h4 id="user-level-rules">292<h4 id="user-level-rules">

293 Règles au niveau utilisateur293 Règles au niveau utilisateur


298```text theme={null}298```text theme={null}

299~/.claude/rules/299~/.claude/rules/

300├── preferences.md # Vos préférences de codage personnelles300├── preferences.md # Vos préférences de codage personnelles

301└── workflows.md # Vos flux de travail préférés301└── workflows.md # Vos workflows préférés

302```302```

303 303 

304Claude Code charge les règles au niveau utilisateur avant les règles de projet, de sorte qu'une règle de projet apparaît plus tard dans le contexte de Claude qu'une règle utilisateur. Aucun ensemble ne remplace l'autre : si une règle utilisateur et une règle de projet entrent en conflit, Claude peut suivre l'une ou l'autre, donc gardez les deux cohérentes.304Claude Code charge les règles au niveau utilisateur avant les règles de projet, de sorte qu'une règle de projet apparaît plus tard dans le contexte de Claude qu'une règle utilisateur. Aucun ensemble ne remplace l'autre : si une règle utilisateur et une règle de projet entrent en conflit, Claude peut suivre l'une ou l'autre, donc gardez les deux cohérentes.


329 329 

330La 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é.330La 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é.

331 331 

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

333 333 

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

335 335 

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

337 337 


376 376 

377Les modèles sont mis en correspondance avec les chemins de fichiers absolus en utilisant la syntaxe glob. Vous pouvez configurer `claudeMdExcludes` à n'importe quelle [couche de paramètres](/docs/fr/settings#where-settings-live) : utilisateur, projet, local ou politique gérée. Les tableaux fusionnent entre les couches.377Les modèles sont mis en correspondance avec les chemins de fichiers absolus en utilisant la syntaxe glob. Vous pouvez configurer `claudeMdExcludes` à n'importe quelle [couche de paramètres](/docs/fr/settings#where-settings-live) : utilisateur, projet, local ou politique gérée. Les tableaux fusionnent entre les couches.

378 378 

379Pour exclure un fichier de règles que vous atteignez via un [symlink](#share-rules-across-projects-with-symlinks), que le fichier ou son répertoire soit le lien, écrivez le modèle par rapport à l'un ou l'autre chemin : le chemin du fichier sous `.claude/rules/` ou sa cible de lien. Un modèle qui correspond à l'un ou l'autre chemin exclut le fichier. Avant v2.1.239, seul un modèle qui correspondait à la cible du lien excluait le fichier.379Pour exclure un fichier de règles que vous atteignez via un [lien symbolique](#share-rules-across-projects-with-symlinks), que le fichier ou son répertoire soit le lien, écrivez le modèle par rapport à l'un ou l'autre chemin : le chemin du fichier sous `.claude/rules/` ou sa cible de lien. Un modèle qui correspond à l'un ou l'autre chemin exclut le fichier. Avant v2.1.239, seul un modèle qui correspondait à la cible du lien excluait le fichier.

380 380 

381Les fichiers CLAUDE.md de politique gérée ne peuvent pas être exclus. Cela garantit que les instructions à l'échelle de l'organisation s'appliquent toujours indépendamment des paramètres individuels.381Les fichiers CLAUDE.md de politique gérée ne peuvent pas être exclus. Cela garantit que les instructions à l'échelle de l'organisation s'appliquent toujours indépendamment des paramètres individuels.

382 382 


538 Activer ou désactiver la mémoire automatique538 Activer ou désactiver la mémoire automatique

539</h3>539</h3>

540 540 

541La mémoire automatique est activée par défaut. Pour la basculer, ouvrez `/memory` dans une session et utilisez le bouton bascule de mémoire automatique, qui enregistre `autoMemoryEnabled` dans vos paramètres utilisateur à `~/.claude/settings.json`. Pour la désactiver pour un seul projet, définissez `autoMemoryEnabled` dans les paramètres de ce projet :541La mémoire automatique est activée par défaut dans les sessions locales. En dehors des sessions [Claude Tag](https://claude.com/docs/claude-tag/overview), une session dans un [environnement auto-hébergé](/docs/fr/self-hosted-environments-configuration#how-each-session’s-config-is-assembled) s'exécute par défaut avec la mémoire automatique désactivée.

542 

543Pour la basculer, ouvrez `/memory` dans une session et utilisez le bouton bascule de mémoire automatique, qui enregistre `autoMemoryEnabled` dans vos paramètres utilisateur à `~/.claude/settings.json`. Pour la désactiver pour un seul projet, définissez `autoMemoryEnabled` dans les paramètres de ce projet :

542 544 

543```json theme={null}545```json theme={null}

544{546{

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# Les marketplaces d'Anthropic

6 

7> Les marketplaces de plugins officielle, communautaire et de démonstration d'Anthropic pour Claude Code : leurs noms, leurs dépôts, comment ajouter chacune d'elles et où parcourir leurs plugins.

8 

9Anthropic publie trois marketplaces de plugins généralistes pour Claude Code : [officielle](https://github.com/anthropics/claude-plugins-official), [communautaire](https://github.com/anthropics/claude-plugins-community) et [de démonstration](https://github.com/anthropics/claude-code). Chacune est un catalogue de plugins hébergé dans son propre dépôt GitHub. Lorsque vous installez un plugin depuis l'une d'elles dans une session Claude Code, vous saisissez le nom de la marketplace après `@`, comme dans `/plugin install commit-commands@claude-plugins-official`.

10 

11Utilisez cette page pour distinguer les trois marketplaces et pour savoir où vérifier si la marketplace officielle contient un plugin donné.

12 

13<Note>

14 Ces cas sont traités sur d'autres pages :

15 

16 * **Comment installer un plugin** : consultez [Installer des plugins](/docs/fr/plugins/install)

17 * **Une installation qui a échoué** : consultez [Dépannage des plugins](/docs/fr/plugins/troubleshooting)

18</Note>

19 

20Accédez à la partie de la page dont vous avez besoin :

21 

22* Pour distinguer les trois marketplaces par dépôt, nom de marketplace et façon de les obtenir, consultez [Les marketplaces d'Anthropic](#anthropic’s-marketplaces).

23* Pour trouver un plugin dans la marketplace officielle, consultez [Trouver des plugins dans la marketplace officielle](#find-plugins-in-the-official-marketplace).

24 

25<h2 id="anthropic’s-marketplaces">

26 Les marketplaces d'Anthropic

27</h2>

28 

29Une marketplace est un catalogue de plugins qu'un dépôt définit dans son fichier `.claude-plugin/marketplace.json`. Les marketplaces officielle, communautaire et de démonstration proviennent chacune de leur propre dépôt GitHub. Anthropic publie également des marketplaces thématiques, comme `anthropics/skills` et `anthropics/knowledge-work-plugins`, que vous ajoutez dans une session Claude Code avec `/plugin marketplace add <owner>/<repo>`.

30 

31Ce tableau indique le dépôt et le nom de chaque marketplace, c'est-à-dire ce que vous saisissez après `@` lorsque vous installez un plugin depuis cette marketplace. Le nom de la marketplace communautaire est `claude-community`, et non le nom de son dépôt.

32 

33| | Officielle | Communautaire | Démonstration |

34| :- | :- | :- | :- |

35| Dépôt | [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) | [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) | [`anthropics/claude-code`](https://github.com/anthropics/claude-code/tree/main/plugins) |

36| Nom de la marketplace | `claude-plugins-official` | `claude-community` | `claude-code-plugins` |

37| Contenu | Des plugins maintenus par Anthropic, ainsi que des plugins de partenaires et d'autres auteurs | Des plugins tiers que leurs auteurs ont soumis à Anthropic | Un petit ensemble de plugins d'exemple qui montrent ce qu'un plugin peut contenir |

38| Comment l'obtenir | Claude Code l'ajoute la première fois que vous démarrez une session interactive dans le terminal, sauf si une [politique gérée](/docs/fr/plugins/org#allow-the-official-marketplace-and-your-own) ou `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` la bloque. Consultez [Marketplace `claude-plugins-official` introuvable](/docs/fr/plugins/troubleshooting#marketplace-claude-plugins-official-not-found) si elle est absente | Vous l'ajoutez dans une session Claude Code avec `/plugin marketplace add anthropics/claude-plugins-community` | Vous l'ajoutez dans une session Claude Code avec `/plugin marketplace add anthropics/claude-code` |

39 

40Si vous avez écrit un plugin et souhaitez que d'autres personnes l'installent, consultez [Publier un plugin](/docs/fr/plugins/publish), qui traite de votre propre marketplace et de la soumission à l'annuaire d'Anthropic.

41 

42<h3 id="the-demo-marketplace-in-anthropics/claude-code">

43 La marketplace de démonstration dans `anthropics/claude-code`

44</h3>

45 

46Si un tutoriel ou d'anciennes instructions vous demandent d'exécuter `/plugin marketplace add anthropics/claude-code`, cette commande ajoute la marketplace de démonstration, nommée `claude-code-plugins`. Il ne s'agit pas de la marketplace officielle.

47 

48La plupart des plugins de la marketplace de démonstration figurent également dans la marketplace officielle sous les mêmes noms. Par exemple, `code-review`, `feature-dev`, `commit-commands` et `security-guidance` sont présents dans les deux. Installez-les depuis `claude-plugins-official` afin de ne pas avoir deux copies installées.

49 

50<h2 id="find-plugins-in-the-official-marketplace">

51 Trouver des plugins dans la marketplace officielle

52</h2>

53 

54Par défaut, Claude Code ajoute pour vous la marketplace officielle, `claude-plugins-official`. La majeure partie de son contenu provient de partenaires et d'autres auteurs plutôt que d'Anthropic : des éditeurs d'outils publient des plugins qui connectent Claude Code à leurs services, et Anthropic maintient un ensemble plus restreint de plugins, comme `commit-commands`, `code-review`, `feature-dev` et les [plugins de serveur de langage](/docs/fr/plugins/code-intelligence). Le catalogue change souvent, c'est pourquoi cette page ne le répertorie pas.

55 

56Pour voir ce qu'il contient, utilisez l'onglet **Discover** de `/plugin` dans une session Claude Code, dans lequel vous pouvez effectuer une recherche, ou parcourez [Claude Marketplace](https://claude.com/marketplace/plugins) sur le web.

57 

58<h2 id="browse-and-install-from-anthropic’s-marketplaces">

59 Parcourir les marketplaces d'Anthropic et installer depuis celles-ci

60</h2>

61 

62Vous pouvez rechercher un plugin dans les marketplaces d'Anthropic depuis Claude Code, sur le web ou sur GitHub :

63 

64* **Dans Claude Code, en parcourant** : exécutez `/plugin` dans une session interactive. Son onglet **Discover** répertorie les plugins de vos marketplaces.

65* **Dans Claude Code, par nom** : exécutez `/plugin install <name>` dans une session, ce qui recherche le nom dans vos marketplaces. Si le plugin se trouve dans l'une d'elles, ses détails s'ouvrent dans le panneau `/plugin`, et rien n'est installé tant que vous n'avez pas choisi une [portée d'installation](/docs/fr/plugins/install#install-a-plugin) et confirmé à cet endroit. Dans le cas contraire, vous voyez `Plugin "<name>" not found in any marketplace`.

66* **Sur le web** : recherchez dans le catalogue complet sur [Claude Marketplace](https://claude.com/marketplace/plugins), qui affiche le nombre d'installations et marque certains plugins comme **Anthropic verified**.

67* **Sur GitHub** : ouvrez `.claude-plugin/marketplace.json` dans le dépôt de la marketplace, par exemple [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official). Ce fichier constitue le catalogue lui-même.

68 

69L'annuaire d'Anthropic est distinct de ces marketplaces. L'annuaire est le catalogue présent sur claude.ai. Un plugin que vous ajoutez depuis l'annuaire sur claude.ai parvient à Claude Code grâce à la [synchronisation du compte](/docs/fr/plugins/loading#synced-plugins). Pour y référencer votre propre plugin, consultez [Soumettre à l'annuaire d'Anthropic](/docs/fr/plugins/publish#submit-to-anthropics-directory).

70 

71Pour installer depuis l'application de bureau ou depuis un script, ou pour voir ce qu'une session cloud charge, consultez [Installer des plugins](/docs/fr/plugins/install).

72 

73<h3 id="add-the-community-or-demo-marketplace">

74 Ajouter la marketplace communautaire ou de démonstration

75</h3>

76 

77Les marketplaces communautaire et de démonstration ne sont pas enregistrées tant que vous ne les avez pas ajoutées dans une session Claude Code :

78 

79* **Communautaire** : exécutez `/plugin marketplace add anthropics/claude-plugins-community`, puis installez avec le suffixe `@claude-community`.

80* **Démonstration** : exécutez `/plugin marketplace add anthropics/claude-code`, puis installez avec le suffixe `@claude-code-plugins`.

81 

82Si `claude-plugins-official` n'apparaît pas dans l'onglet **Marketplaces** de `/plugin`, ajoutez-la de la même manière avec `/plugin marketplace add anthropics/claude-plugins-official`.

83 

84Pour les erreurs `not found` et les marketplaces qui refusent de s'ajouter, consultez [Dépannage des plugins](/docs/fr/plugins/troubleshooting#install-a-plugin).

85 

86<h2 id="third-party-marketplaces">

87 Marketplaces tierces

88</h2>

89 

90De nombreux plugins populaires ne figurent dans aucune marketplace d'Anthropic. Ils se trouvent dans les propres marketplaces de leurs auteurs, généralement un dépôt GitHub contenant un fichier `.claude-plugin/marketplace.json` à sa racine.

91 

92Anthropic n'examine pas les marketplaces tierces : lisez donc [Sécurité et confiance des plugins](/docs/fr/plugins/security) avant d'en ajouter une.

93 

94Pour utiliser une marketplace tierce, ajoutez son dépôt dans une session Claude Code avec `/plugin marketplace add <owner>/<repo>`, puis installez avec `/plugin install <plugin>@<marketplace-name>`. Le nom de la marketplace correspond au champ `name` de ce fichier `marketplace.json`, et Claude Code l'affiche une fois la marketplace ajoutée.

95 

96Pour d'autres façons d'ajouter une marketplace, consultez [Ajouter une marketplace](/docs/fr/plugins/install#add-a-marketplace).

97 

98<h2 id="next-steps">

99 Étapes suivantes

100</h2>

101 

102* [Installer et gérer des plugins](/docs/fr/plugins/install) : installer un plugin depuis l'une de ces marketplaces et choisir une portée

103* [Sécurité et confiance des plugins](/docs/fr/plugins/security) : ce qu'un plugin peut faire sur votre machine et comment l'examiner avant de l'installer

104* [Plugins d'intelligence de code](/docs/fr/plugins/code-intelligence) : installer l'un des plugins de serveur de langage de la marketplace officielle

105* [Créer une marketplace](/docs/fr/plugins/create-marketplace) : gérer votre propre marketplace en parallèle de celles d'Anthropic

Details

571* La balise existe déjà571* La balise existe déjà

572* L'arbre de travail est sale572* L'arbre de travail est sale

573 573 

574<h3 id="plugin-test">

575 plugin test

576</h3>

577 

578Exécutez les tests d'un [mod](/docs/fr/plugins/mods/overview), un plugin dont le code enregistre des gestionnaires d'événements. La commande ne nécessite ni session, ni connexion, ni réseau. Pour savoir comment écrire un test, voir [Tester un mod](/docs/fr/plugins/mods/test).

579 

580```bash theme={null}

581claude plugin test [directory]

582```

583 

584Le `[directory]` est le répertoire du mod, par défaut le répertoire courant. La commande exécute chaque fichier qu'il contient dont le nom se termine par `.test.ts` ou `.test.tsx`, et quitte avec le statut 1 quand un test échoue.

585 

586Exécutez les tests d'un mod dans `./first-mod` :

587 

588```bash theme={null}

589claude plugin test ./first-mod

590```

591 

574<h3 id="plugin-validate">592<h3 id="plugin-validate">

575 plugin validate593 plugin validate

576</h3>594</h3>


804 822 

805Un `<plugin>` est un `name` de plugin ou `name@marketplace`.823Un `<plugin>` est un `name` de plugin ou `name@marketplace`.

806 824 

807Le tableau ci-dessous liste chaque forme de session. Les sous-commandes shell `init`, `update`, `details`, `prune`, `eval`, et `eval init` n'ont pas de forme de session.825Le tableau ci-dessous liste chaque forme de session. Les sous-commandes shell `init`, `update`, `details`, `prune`, `eval`, `eval init`, et `test` n'ont pas de forme de session.

808 826 

809| Commande | Alias | Ce qu'elle fait |827| Commande | Alias | Ce qu'elle fait |

810| :- | :- | :- |828| :- | :- | :- |

plugins/loading.md +20 −14

Details

244 Quand l'installation de dépendance s'exécute244 Quand l'installation de dépendance s'exécute

245</h4>245</h4>

246 246 

247Claude Code exécute l'installation à l'intérieur du répertoire de version copié chaque fois qu'il en crée un :247Claude Code installe les dépendances dans le répertoire de version copié chaque fois qu'il en crée un :

248 248 

249* Quand vous installez un plugin249* Quand vous installez un plugin

250* Quand Claude Code met à jour un plugin vers une nouvelle version250* Quand Claude Code met à jour un plugin vers une nouvelle version


252 252 

253Pour un plugin de chemin relatif [chargé en place](#in-place-and-copied-plugins) à partir d'un marché de répertoire local, Claude Code n'installe pas les dépendances dans le répertoire source. Installez-les là vous-même, ou à partir d'un hook dans [`${CLAUDE_PLUGIN_DATA}`](/docs/fr/plugins/components#path-variables-and-persistent-data).253Pour un plugin de chemin relatif [chargé en place](#in-place-and-copied-plugins) à partir d'un marché de répertoire local, Claude Code n'installe pas les dépendances dans le répertoire source. Installez-les là vous-même, ou à partir d'un hook dans [`${CLAUDE_PLUGIN_DATA}`](/docs/fr/plugins/components#path-variables-and-persistent-data).

254 254 

255L'installation s'exécute uniquement quand le répertoire racine du plugin contient à la fois un `package.json` et un fichier de verrouillage pris en charge. Le fichier de verrouillage décide quelle commande Claude Code exécute :255L'installation s'exécute uniquement quand le répertoire racine du plugin contient à la fois un `package.json` et un fichier de verrouillage pris en charge.

256 256 

257| Fichier de verrouillage | Commande |257Le fichier de verrouillage décide quel gestionnaire de packages Claude Code exécute :

258 

259| Fichier de verrouillage | Gestionnaire de packages |

258| :- | :- |260| :- | :- |

259| `bun.lock` ou `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |261| `bun.lock` | Bun |

260| `npm-shrinkwrap.json` ou `package-lock.json` | `npm ci --ignore-scripts` |262| `npm-shrinkwrap.json` ou `package-lock.json` | npm |

261 263 

262Si un plugin contient plus d'un de ces fichiers de verrouillage, Claude Code utilise la première correspondance, en vérifiant dans l'ordre : `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.264Si un plugin contient plus d'un de ces fichiers de verrouillage, Claude Code utilise la première correspondance, en vérifiant dans l'ordre : `bun.lock`, `npm-shrinkwrap.json`, `package-lock.json`.

263 265 

264Claude Code ignore l'installation pour les fichiers de verrouillage Yarn et pnpm et pour un `bunfig.toml` à côté du fichier de verrouillage Bun :266Claude Code ignore l'installation dans ces cas de fichier de verrouillage :

265 267 

266* Si votre plugin n'a qu'un `yarn.lock` ou `pnpm-lock.yaml`, remplacez-le par un fichier de verrouillage npm268* **`bun.lockb`** : le fichier de verrouillage binaire de Bun ne peut pas être vérifié. Fournissez plutôt un `bun.lock` texte ou un fichier de verrouillage npm

267* Si un `bunfig.toml` est dans le même répertoire que le fichier de verrouillage Bun, supprimez le `bunfig.toml`, ou remplacez le fichier de verrouillage Bun par un fichier de verrouillage npm269* **`yarn.lock` ou `pnpm-lock.yaml`** : remplacez-le par un fichier de verrouillage npm

270* **Un fichier de verrouillage dans un format que Claude Code ne lit pas** : un fichier de verrouillage npm nécessite un `lockfileVersion` de `2` ou `3`, qu'écrit npm 7 ou ultérieur, et un `bun.lock` nécessite un `lockfileVersion` ne dépassant pas `2`

268 271 

269Incluez un fichier de verrouillage npm pour atteindre le plus d'utilisateurs. Claude Code exécute le gestionnaire de packages du fichier de verrouillage correspondant à partir du PATH de l'utilisateur et n'essaie pas l'autre fichier de verrouillage à la place si ce gestionnaire de packages manque.272Incluez un fichier de verrouillage npm pour atteindre le plus d'utilisateurs. Claude Code exécute le gestionnaire de packages du fichier de verrouillage correspondant à partir du PATH de l'utilisateur et n'essaie pas l'autre fichier de verrouillage à la place si ce gestionnaire de packages manque.

270 273 


276 279 

277Claude Code contraint cette installation de dépendance de sorte qu'aucun code du plugin ou de ses packages ne s'exécute pendant celle-ci, et limite combien de temps elle peut s'exécuter :280Claude Code contraint cette installation de dépendance de sorte qu'aucun code du plugin ou de ses packages ne s'exécute pendant celle-ci, et limite combien de temps elle peut s'exécuter :

278 281 

279* **Résolution gelée** : Bun et npm installent exactement ce que le fichier de verrouillage épingle, et échouent plutôt que de re-résoudre les versions quand `package.json` et le fichier de verrouillage ne sont pas d'accord282* **Packages de registre uniquement** : chaque dépendance doit être un package de registre épinglé dans le fichier de verrouillage à une version exacte. Un plugin avec une dépendance git, GitHub, de dossier, d'espace de travail ou liée n'obtient aucune installation.

283* **Téléchargements `https`** : un lien de téléchargement dans le fichier de verrouillage doit utiliser `https`, sauf s'il pointe vers le registre npm par défaut de l'utilisateur qui effectue l'installation.

284* **Un dossier d'installation séparé** : le gestionnaire de packages s'exécute dans un dossier qui lui est propre et qui ne contient qu'une copie de la liste de dépendances vérifiée, de sorte que npm et Bun ne lisent pas le `.npmrc`, le `.env` ou le `bunfig.toml` du plugin. Quand l'installation réussit, Claude Code déplace le `node_modules` résultant dans le plugin.

285* **Résolution gelée** : l'installation utilise exactement les versions que le fichier de verrouillage épingle, et Claude Code l'ignore quand `package.json` et le fichier de verrouillage ne listent pas les mêmes dépendances

280* **Pas de scripts de cycle de vie** : `--ignore-scripts` empêche les scripts `preinstall`, `install`, et `postinstall` de s'exécuter, donc les dépendances qui construisent des modules natifs dans ces scripts téléchargent mais ne compilent pas pendant cette installation286* **Pas de scripts de cycle de vie** : `--ignore-scripts` empêche les scripts `preinstall`, `install`, et `postinstall` de s'exécuter, donc les dépendances qui construisent des modules natifs dans ces scripts téléchargent mais ne compilent pas pendant cette installation

287* **Pas de remplacements ni de correctifs** : un plugin dont le `package.json` définit des `overrides` npm n'obtient aucune installation à partir d'un fichier de verrouillage npm, et un plugin qui définit des `patchedDependencies` Bun n'obtient aucune installation à partir de `bun.lock`

281* **Délai d'expiration de 60 secondes** : Claude Code arrête une installation qui s'exécute plus longtemps et la traite comme échouée288* **Délai d'expiration de 60 secondes** : Claude Code arrête une installation qui s'exécute plus longtemps et la traite comme échouée

282 289 

283Claude Code récupère un plugin de source npm avant cette installation de dépendance, et aucun des scripts d'installation propres du package ne s'exécute pendant la récupération. Voir [source de plugin npm](/docs/fr/plugins/marketplace-reference#npm-plugin-source).290Claude Code récupère un plugin de source npm avant cette installation de dépendance, et aucun des scripts d'installation propres du package ne s'exécute pendant la récupération. Voir [source de plugin npm](/docs/fr/plugins/marketplace-reference#npm-plugin-source).


290 Quand l'installation de dépendance échoue ou est ignorée297 Quand l'installation de dépendance échoue ou est ignorée

291</h4>298</h4>

292 299 

293Une installation échouée ou ignorée ne bloque jamais le plugin, et chaque cas laisse un signe différent :300Une installation échouée ou ignorée ne bloque jamais le plugin, qui se charge alors sans les dépendances. Chaque cas laisse un signe différent :

294 301 

295* Une installation échouée, ou une ignorée à cause d'un fichier de verrouillage Yarn ou pnpm ou un `bunfig.toml`, apparaît comme un avertissement dans la sortie `claude --debug`302* Une installation échouée, ou une ignorée à cause de son fichier de verrouillage ou de l'une des [limites sur l'installation](#limits-on-the-dependency-install), apparaît dans la sortie `claude --debug` comme une ligne `Plugin dependency install warning` qui indique la raison

296* Un plugin avec un `package.json` et aucun fichier de verrouillage est ignoré sans entrée de journal303* Un plugin avec un `package.json` et aucun fichier de verrouillage est ignoré sans entrée de journal

297* Une installation expirée peut laisser un arbre `node_modules` partiel dans la copie en cache

298 304 

299Quand l'installation automatique ne peut pas fournir une dépendance, installez-la à partir d'un hook dans le [répertoire de données persistantes](/docs/fr/plugins/components#path-variables-and-persistent-data). Cela inclut les packages qui ont besoin de leurs scripts de cycle de vie pour construire, les dépendances Python, et les plugins verrouillés avec Yarn ou pnpm.305Quand l'installation automatique ne peut pas fournir une dépendance, installez-la à partir d'un hook dans le [répertoire de données persistantes](/docs/fr/plugins/components#path-variables-and-persistent-data). Cela inclut les packages qui ont besoin de leurs scripts de cycle de vie pour compiler, les dépendances Python, les plugins verrouillés avec Yarn ou pnpm, et les dépendances qui ne sont pas des packages de registre, comme les dépendances git.

300 306 

301<h2 id="versions-and-updates">307<h2 id="versions-and-updates">

302 Versions et mises à jour308 Versions et mises à jour

Details

155| `github` | `repo`, `ref`, `sha` | Référentiel GitHub sous la forme `owner/repo` |155| `github` | `repo`, `ref`, `sha` | Référentiel GitHub sous la forme `owner/repo` |

156| `url` | `url`, `ref`, `sha` | Tout référentiel git par URL |156| `url` | `url`, `ref`, `sha` | Tout référentiel git par URL |

157| `git-subdir` | `url`, `path`, `ref`, `sha` | Un sous-répertoire d'un référentiel git, récupéré avec un clone partiel clairsemé |157| `git-subdir` | `url`, `path`, `ref`, `sha` | Un sous-répertoire d'un référentiel git, récupéré avec un clone partiel clairsemé |

158| `npm` | `package`, `version`, `registry` | Package npm, récupéré avec votre client npm et décompressé sans exécuter les scripts d'installation |158| `npm` | `package`, `version`, `registry` | Package du registre npm ou lien vers un tarball, récupéré avec votre client npm et décompressé sans exécuter les scripts d'installation |

159| `archive` | `url`, `sha256` | Archive Zip sur HTTPS. Nécessite Claude Code v2.1.224 ou ultérieure |159| `archive` | `url`, `sha256` | Archive Zip sur HTTPS. Nécessite Claude Code v2.1.224 ou ultérieure |

160| `command` | `command`, `timeout`, `mode` | Répertoire imprimé par une commande que Claude Code exécute sur la machine de l'utilisateur. Nécessite Claude Code v2.1.229 ou ultérieure |160| `command` | `command`, `timeout`, `mode` | Répertoire imprimé par une commande que Claude Code exécute sur la machine de l'utilisateur. Nécessite Claude Code v2.1.229 ou ultérieure |

161 161 


258 258 

259Une source `npm` prend ces champs :259Une source `npm` prend ces champs :

260 260 

261* `package` : un nom de package, ou un nom scopé tel que `@your-org/formatter`261* `package` : un nom de package du registre tel que `@your-org/formatter`, un nom suivi d'une version tel que `@your-org/formatter@2.0.0`, ou un lien `https` vers le fichier tarball du package

262* `version` : une version ou une plage262* `version` : une version, une plage semver ou un dist-tag, utilisé lorsque `package` est un nom de package sans version ajoutée. Omettez-le pour récupérer `latest`

263* `registry` : une URL de registre pour un package qui n'est pas sur le registre par défaut263* `registry` : une URL de registre pour un package qui n'est pas sur le registre par défaut

264 264 

265Claude Code récupère le package avec votre client npm. Les scripts d'installation du package, tels que `preinstall` ou `postinstall`, ne s'exécutent jamais, et ses dépendances ne sont pas installées lors de la récupération. Si le package a un fichier de verrouillage supporté à côté de son `package.json`, Claude Code installe ces [dépendances de package Node.js](/docs/fr/plugins/loading#node-js-package-dependencies) dans une étape séparée, également avec les scripts désactivés.265Claude Code récupère le package avec votre client npm. Les scripts d'installation du package, tels que `preinstall` ou `postinstall`, ne s'exécutent jamais, et ses dépendances ne sont pas installées lors de la récupération. Si le package a un fichier de verrouillage supporté à côté de son `package.json`, Claude Code installe ces [dépendances de package Node.js](/docs/fr/plugins/loading#node-js-package-dependencies) dans une étape séparée, également avec les scripts désactivés.

266 266 

267Claude Code vérifie la valeur `package` avant de récupérer quoi que ce soit. Une valeur refusée fait échouer l'installation avec un message qui nomme la valeur et la raison. Les valeurs refusées incluent :

268 

269* **Une adresse git, un dossier ou un chemin `file:`, ou un alias `npm:`** : utilisez une [source `github`, `url` ou `git-subdir`](#plugin-sources) pour un dépôt git, un chemin relatif pour un dossier dans la marketplace, et le nom propre du package pour un alias

270* **Un lien tarball sur github.com, gist.github.com, gitlab.com, bitbucket.org ou git.sr.ht** : refusé même lorsque le lien est un téléchargement de release GitHub, sauf s'il s'agit d'un lien vers le registre npm GitLab sous `gitlab.com/api/v4/`

271* **Un lien tarball via `http`** : refusé sauf s'il pointe vers le registre npm par défaut de l'utilisateur qui effectue l'installation

272 

273L'URL `registry` doit utiliser `https`, sauf s'il s'agit du registre npm par défaut de l'utilisateur qui effectue l'installation. Avec tout autre registre `http`, l'installation échoue avant que npm ne le contacte.

274 

267```json theme={null}275```json theme={null}

268{276{

269 "name": "formatter",277 "name": "formatter",

Details

167 167 

168Un utilisateur dont le mod ne s'est pas chargé trouve la raison dans son journal de débogage. [Messages de refus](/docs/fr/plugins/mods/troubleshoot#refusal-messages) liste les lignes pour `allowManagedHooksOnly` et `disableAllHooks`, et [Messages de la garde intégrée](/docs/fr/plugins/mods/troubleshoot#messages-from-the-built-in-guard) a la ligne pour `allowManagedModsOnly`.168Un utilisateur dont le mod ne s'est pas chargé trouve la raison dans son journal de débogage. [Messages de refus](/docs/fr/plugins/mods/troubleshoot#refusal-messages) liste les lignes pour `allowManagedHooksOnly` et `disableAllHooks`, et [Messages de la garde intégrée](/docs/fr/plugins/mods/troubleshoot#messages-from-the-built-in-guard) a la ligne pour `allowManagedModsOnly`.

169 169 

170<h3 id="allow-only-your-organization’s-mods">

171 Autoriser uniquement les mods de votre organisation

172</h3>

173 

174Pour exécuter les mods de votre organisation et bloquer ceux qu'apportent les utilisateurs, déployez les paramètres de la ligne **Uniquement les mods de votre organisation** du [tableau des politiques](#choose-how-much-to-allow), plus `disableSideloadFlags`. Avec ce fichier `managed-settings.json` complet, Claude Code refuse les mods propres des utilisateurs, de sorte qu'aucun de leurs hooks ne s'exécute, et votre mod de politique s'exécute avant les autres mods :

175 

176```json managed-settings.json theme={null}

177{

178 "extraKnownMarketplaces": {

179 "acme-tools": {

180 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

181 }

182 },

183 "enabledPlugins": { "acme-guard@acme-tools": true },

184 "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"],

185 "pluginConfigs": {

186 "cc-plugin-sec-default@builtin": {

187 "options": { "allowManagedModsOnly": true }

188 }

189 },

190 "disableSideloadFlags": true

191}

192```

193 

194Chaque groupe de clés remplit une fonction :

195 

196* **`extraKnownMarketplaces`, `enabledPlugins` et `prependPlugins`** : installent votre mod pour qu'il compte comme le vôtre, et l'exécutent en premier avec la garde après lui. [Installer les mods de votre organisation et définir l'ordre](#install-your-organizations-mods) couvre le répertoire vers lequel pointent ces clés.

197* **`pluginConfigs`** : définit l'option `allowManagedModsOnly` de la garde, pour que Claude Code refuse les mods propres des utilisateurs. Leurs hooks de paramètres, barres de statut et `/goal` continuent de fonctionner.

198* **`disableSideloadFlags`** : consultez [`disableSideloadFlags`](/docs/fr/settings-reference#disablesideloadflags) pour les flags qu'il rejette au démarrage

199 

200Pour confirmer la politique sur une machine de test, démarrez dans votre shell une session avec `claude --debug` et lisez le journal de débogage :

201 

202* **Votre mod** : sa ligne `hooks module` contient `tier prepend`

203* **Un mod installé par l'utilisateur** : une ligne indique `refused by cc-plugin-sec-default: mods are limited to your organization's by policy (allowManagedModsOnly)`. Une ligne antérieure indique que le module de hooks de ce mod est `loaded`, donc cherchez le refus.

204* **Un répertoire de plugin** : `claude --plugin-dir ./any-mod` se termine avec un message qui commence par `--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)`

205 

206Pour limiter aussi les marketplaces que les utilisateurs peuvent ajouter, combinez ce fichier avec vos [restrictions de marketplace](/docs/fr/plugins/org#restrict-what-users-can-install).

207 

208<h3 id="apply-your-plugin-controls-to-mods">

209 Appliquer vos contrôles de plugins aux mods

210</h3>

211 

212Un mod est un plugin, donc les façons dont vous [gérez les plugins pour votre organisation](/docs/fr/plugins/org) s'appliquent aussi à un plugin qui contient un mod :

213 

214* **Voir quels plugins se chargent sur l'ensemble de votre parc** : [Auditer et examiner](/docs/fr/plugins/org#audit-and-review)

215* **Décider quand un plugin que vous avez examiné peut se mettre à jour** : [Définir la politique de mise à jour](/docs/fr/plugins/org#set-update-policy)

216* **Donner à un groupe une politique différente, comme un pilote** : [Prévoir ce que les paramètres gérés ne peuvent pas imposer](/docs/fr/plugins/org#plan-for-what-managed-settings-can’t-enforce)

217* **Vérifier quelles applications et quels types de session appliquent les clés de plugin** : [Quand chaque surface applique les clés de plugin](/docs/fr/plugins/org#when-each-surface-applies-the-plugin-keys)

218* **Configurer la CI et les conteneurs** : [Préparer les conteneurs et la CI](/docs/fr/plugins/org#seed-containers-and-ci)

219* **Proposer des mods que vos utilisateurs peuvent installer** : [Héberger une marketplace](/docs/fr/plugins/host-marketplace). Un mod que Claude Code copie depuis une source GitHub, git, URL ou npm compte comme celui d'un utilisateur, et non comme [celui de votre organisation](#install-your-organizations-mods).

220 

170<h3 id="set-options-on-the-built-in-guard">221<h3 id="set-options-on-the-built-in-guard">

171 Définir les options sur la garde intégrée222 Définir les options sur la garde intégrée

172</h3>223</h3>

Details

190 190 

191Gardez l'attente à l'intérieur d'un appel API mods comme `$.ui.ask`, car ce temps ne compte pas contre la [limite de temps de 10 secondes](/docs/fr/plugins/mods/reference#limits) du hook. Le temps passé à attendre une promesse de votre propre compte. Claude Code saute un hook qui expire, donc la commande tenue s'exécuterait.191Gardez l'attente à l'intérieur d'un appel API mods comme `$.ui.ask`, car ce temps ne compte pas contre la [limite de temps de 10 secondes](/docs/fr/plugins/mods/reference#limits) du hook. Le temps passé à attendre une promesse de votre propre compte. Claude Code saute un hook qui expire, donc la commande tenue s'exécuterait.

192 192 

193<h4 id="approve-or-refuse-a-tool-call-before-the-user-is-asked">

194 Approuver ou refuser un appel d'outil avant que l'utilisateur ne soit sollicité

195</h4>

196 

197Pour décider si un appel d'outil peut s'exécuter, gérez [`tool.check`](/docs/fr/plugins/mods/reference#tools), l'événement où Claude Code prend cette décision. Il se déclenche après que les règles de permission et les hooks des paramètres ont décidé, et `next(e)` se résout en leur décision : `allow`, `ask` ou `deny`. Votre hook retourne cette décision ou une autre. `e.input` contient les arguments de l'outil, comme `command` pour Bash.

198 

199Pour une commande ou un chemin fixe, utilisez une [règle de permission](/docs/fr/permissions#permission-rule-syntax) comme `Bash(npm test)`, qui ne nécessite aucun code. Gérez `tool.check` lorsque la décision dépend de ce qui est vrai à ce moment-là, comme la branche Git actuelle ou une valeur qu'un autre hook a enregistrée.

200 

201Ce hook refuse `git push` tant que la branche actuelle est `main` :

202 

203```javascript theme={null}

204on('tool.check', { tool: 'Bash' }, async ($, e, next) => {

205 // Ce que les règles de permission et les hooks des paramètres ont décidé : 'allow', 'ask' ou 'deny'

206 const decided = await next(e)

207 if (!e.input.command.includes('git push')) return decided

208 const branch = await $.process.run(['git', 'branch', '--show-current'])

209 if (branch.stdout.trim() !== 'main') return decided

210 return { decision: 'deny', reason: 'Push from a branch other than main' }

211})

212```

213 

214Sur `main`, le hook retourne `deny`, même lorsqu'une règle autorise `git push`. Sur une autre branche, et pour les autres commandes, l'appel obtient la décision qu'il obtiendrait sans le mod.

215 

216Le hook compare le texte de la commande, traitez-le donc comme un rappel pour Claude. Pour bloquer les push vers `main` pour tout le monde, protégez la branche sur votre hébergeur Git.

217 

218Un hook peut retourner n'importe laquelle des trois décisions, il peut donc aussi approuver un appel qu'un hook `PreToolUse` en dehors des paramètres gérés a bloqué. [Étendre les permissions avec des hooks](/docs/fr/permissions#extend-permissions-with-hooks) indique quelles décisions prévalent sur un mod.

219 

193<h3 id="rewrite-or-add-to-a-prompt">220<h3 id="rewrite-or-add-to-a-prompt">

194 Réécrire ou ajouter à une invite221 Réécrire ou ajouter à une invite

195</h3>222</h3>


301* **Hooks `PreToolUse` des paramètres gérés** : s'exécutent avant le hook `tool.call` du premier mod, et un bloc de l'un d'eux est final, donc aucun mod ne voit l'appel.328* **Hooks `PreToolUse` des paramètres gérés** : s'exécutent avant le hook `tool.call` du premier mod, et un bloc de l'un d'eux est final, donc aucun mod ne voit l'appel.

302* **Hooks `PreToolUse` de chaque autre fichier de paramètres et des `hooks/hooks.json` des plugins** : s'exécutent après que le dernier mod appelle `next`, comme partie du comportement propre de Claude Code. Un mod qui répond à `tool.call` sans appeler `next` les empêche de s'exécuter, et un mod qui appelle `next` voit leur décision dans le résultat qu'il retourne.329* **Hooks `PreToolUse` de chaque autre fichier de paramètres et des `hooks/hooks.json` des plugins** : s'exécutent après que le dernier mod appelle `next`, comme partie du comportement propre de Claude Code. Un mod qui répond à `tool.call` sans appeler `next` les empêche de s'exécuter, et un mod qui appelle `next` voit leur décision dans le résultat qu'il retourne.

303 330 

304[`tool.check`](/docs/fr/plugins/mods/reference#tools) est l'événement où Claude Code décide si un appel d'outil peut s'exécuter. Il se déclenche après ces hooks et les règles de permission ont décidé, et `next(e)` se résout à leur décision. Un hook sur `tool.check` peut retourner une décision différente, comme `{ decision: 'allow' }`, il peut donc approuver un appel qu'un hook du deuxième groupe a bloqué. [Étendre les permissions avec des hooks](/docs/fr/permissions#extend-permissions-with-hooks) énumère quelles décisions tiennent sur un mod.331[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) se déclenche une fois que ces hooks et les règles de permission ont décidé, de sorte qu'un hook sur cet événement peut approuver un appel qu'un hook du deuxième groupe a bloqué.

305 332 

306<h3 id="handle-a-hook-that-fails">333<h3 id="handle-a-hook-that-fails">

307 Gérer un hook qui échoue334 Gérer un hook qui échoue

Details

407 ```407 ```

408 408 

409 ```text theme={null}409 ```text theme={null}

410 Note: Type a note and press Enter ⏎ add410 Note: Type a note and press Enter

411 ```411 ```

412 </Tab>412 </Tab>

413</Tabs>413</Tabs>

414 414 

415Ce tableau liste chaque élément :415La [galerie d'interfaces](/docs/fr/plugins/mods/gallery) contient des exemples et des captures d'écran de la plupart des éléments. Ce tableau liste chaque élément :

416 416 

417| Élément | Ce qu'il dessine | Où |417| Élément | Ce qu'il dessine | Où |

418| :- | :- | :- |418| :- | :- | :- |

Details

72* **Agir sans vous demander** : approuver un appel d'outil avant que vous ne soyez invité72* **Agir sans vous demander** : approuver un appel d'outil avant que vous ne soyez invité

73* **Dépenser votre utilisation** : appeler un modèle sur votre plan ou clé API73* **Dépenser votre utilisation** : appeler un modèle sur votre plan ou clé API

74 74 

75Les mods ne sont pas isolés dans un sandbox. Si vous activez le [sandboxing](/docs/fr/sandboxing), le sandbox isole les commandes Bash que Claude exécute, et un processus qu'un mod démarre s'exécute en dehors de celui-ci.

76 

75Un mod qui approuve les appels d'outils peut approuver un appel qu'une règle `ask` demanderait, ou qu'un de vos propres hooks `PreToolUse` a bloqué. [Étendre les permissions avec les hooks](/docs/fr/permissions#extend-permissions-with-hooks) énumère ce qu'un tel mod peut approuver, y compris quand il peut approuver un appel qu'une règle `deny` refuse.77Un mod qui approuve les appels d'outils peut approuver un appel qu'une règle `ask` demanderait, ou qu'un de vos propres hooks `PreToolUse` a bloqué. [Étendre les permissions avec les hooks](/docs/fr/permissions#extend-permissions-with-hooks) énumère ce qu'un tel mod peut approuver, y compris quand il peut approuver un appel qu'une règle `deny` refuse.

76 78 

77Un mod peut remodeler une grande partie de l'interface de Claude Code, mais pas l'invite de permission. Il ne peut pas modifier ce qu'une invite vous montre.79Un mod peut remodeler une grande partie de l'interface de Claude Code, mais pas l'invite de permission. Il ne peut pas modifier ce qu'une invite vous montre.


102 104 

103Si vous utilisez Claude Code via une organisation, un administrateur peut également limiter les mods qui se chargent. Les administrateurs commencent à [Empêcher les mods installés par l'utilisateur de se charger](/docs/fr/plugins/mods/admin#stop-user-installed-mods-from-loading).105Si vous utilisez Claude Code via une organisation, un administrateur peut également limiter les mods qui se chargent. Les administrateurs commencent à [Empêcher les mods installés par l'utilisateur de se charger](/docs/fr/plugins/mods/admin#stop-user-installed-mods-from-loading).

104 106 

107`disableAllHooks` et `allowManagedModsOnly` de votre organisation arrêtent un mod et laissent le reste de son plugin en place : le plugin reste installé, et ses skills, commandes, agents et serveurs MCP se chargent. D'autres paramètres et flags vont plus loin. [`disableAllHooks`](/docs/fr/settings-reference#disableallhooks) et [Ce qui s'exécute sous `allowManagedHooksOnly`](/docs/fr/settings-reference#what-runs-under-allowmanagedhooksonly) indiquent l'effet de chacun sur un plugin et ses settings hooks.

108 

105Pour savoir si les mods peuvent se charger pour vous, voir [Vérifier si les mods peuvent se charger](/docs/fr/plugins/mods/troubleshoot#check-whether-mods-can-load).109Pour savoir si les mods peuvent se charger pour vous, voir [Vérifier si les mods peuvent se charger](/docs/fr/plugins/mods/troubleshoot#check-whether-mods-can-load).

106 110 

107<Note>111<Note>

Details

56 56 

57Lisez la raison après les deux points. La section [messages de refus](#refusal-messages) énumère chacun d'eux. Si le journal n'a pas de telle ligne, parcourez les autres entrées de ce groupe.57Lisez la raison après les deux points. La section [messages de refus](#refusal-messages) énumère chacun d'eux. Si le journal n'a pas de telle ligne, parcourez les autres entrées de ce groupe.

58 58 

59Certains paramètres arrêtent un mod et laissent le reste de son plugin fonctionner. [Activer ou désactiver les mods](/docs/fr/plugins/mods/overview#turn-mods-on-or-off) les nomme.

60 

59<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">61<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">

60 Une exécution `claude -p` affiche `hooks module not loaded`62 Une exécution `claude -p` affiche `hooks module not loaded`

61</h3>63</h3>

Details

37 37 

38Les [règles de permission](/docs/fr/permissions) et le [sandbox](/docs/fr/sandboxing) de Claude Code couvrent les appels d'outils que Claude fait, pas le code qu'un plugin exécute par lui-même :38Les [règles de permission](/docs/fr/permissions) et le [sandbox](/docs/fr/sandboxing) de Claude Code couvrent les appels d'outils que Claude fait, pas le code qu'un plugin exécute par lui-même :

39 39 

40* **Hooks et processus serveur** : les hooks de commande exécutent des commandes shell avec vos permissions utilisateur complètes. Claude Code exécute les hooks et les serveurs MCP en dehors du sandbox.40* **Hooks et processus serveur** : les hooks de commande exécutent des commandes shell avec vos permissions utilisateur complètes. Claude Code exécute les hooks, les serveurs MCP et les processus qu'un [mod](/docs/fr/plugins/mods/overview#what-a-mod-can-reach) démarre en dehors du sandbox.

41* **Appels d'outils de Claude** : un appel à l'un des outils MCP du plugin, et une commande Bash qui exécute un exécutable du `bin/` du plugin, sont des appels d'outils, donc vos règles de permission s'y appliquent. Pour ce qu'un mod peut faire à un appel d'outil, voir [Décider si vous devez faire confiance à un mod](/docs/fr/plugins/mods/overview#decide-whether-to-trust-a-mod).41* **Appels d'outils de Claude** : un appel à l'un des outils MCP du plugin, et une commande Bash qui exécute un exécutable du `bin/` du plugin, sont des appels d'outils, donc vos règles de permission s'y appliquent. Pour ce qu'un mod peut faire à un appel d'outil, voir [Décider si vous devez faire confiance à un mod](/docs/fr/plugins/mods/overview#decide-whether-to-trust-a-mod).

42 42 

43L'installation d'un plugin l'active également, sauf si son manifeste ou son entrée de marketplace définit [`defaultEnabled: false`](/docs/fr/plugins/install#choose-an-install-scope) et que vous ne l'avez pas activé vous-même.43L'installation d'un plugin l'active également, sauf si son manifeste ou son entrée de marketplace définit [`defaultEnabled: false`](/docs/fr/plugins/install#choose-an-install-scope) et que vous ne l'avez pas activé vous-même.

Details

460* **Vous publiez le plugin** : recalculez le digest du fichier exact que l'URL sert et mettez à jour le `sha256` dans l'entrée de marketplace. Utilisez `shasum -a 256 my-plugin.zip`, ou `Get-FileHash -Algorithm SHA256 my-plugin.zip` dans PowerShell460* **Vous publiez le plugin** : recalculez le digest du fichier exact que l'URL sert et mettez à jour le `sha256` dans l'entrée de marketplace. Utilisez `shasum -a 256 my-plugin.zip`, ou `Get-FileHash -Algorithm SHA256 my-plugin.zip` dans PowerShell

461* **Vous installez le plugin** : exécutez `/plugin marketplace update <name>` dans une session pour actualiser le catalogue au cas où l'entrée aurait été corrigée, puis réessayez l'installation. Si les digests ne correspondent toujours pas après l'actualisation, demandez au propriétaire de la marketplace quel fichier ils ont épinglé avant d'installer461* **Vous installez le plugin** : exécutez `/plugin marketplace update <name>` dans une session pour actualiser le catalogue au cas où l'entrée aurait été corrigée, puis réessayez l'installation. Si les digests ne correspondent toujours pas après l'actualisation, demandez au propriétaire de la marketplace quel fichier ils ont épinglé avant d'installer

462 462 

463<h3 id="an-npm-plugin-source-must-name-a-registry-package">

464 `An npm plugin source must name a registry package`

465</h3>

466 

467Un plugin dont l'entrée de marketplace utilise une [source `npm`](/docs/fr/plugins/marketplace-reference#npm-plugin-source) n'a pas pu être installé, mis à jour ou chargé, et le message inclut cette phrase. Claude Code a vérifié la valeur `package` de l'entrée avant de récupérer quoi que ce soit et l'a refusée. Le message nomme la valeur et la raison :

468 

469```text theme={null}

470"github:acme/formatter" was not installed: it is not an http or https link. An npm plugin source must name a registry package (name or name@version) or link to a tarball file. For a plugin in a git repository, use a "github", "url" or "git-subdir" source.

471```

472 

473Le propriétaire de la marketplace doit modifier l'entrée :

474 

475* **Si c'est vous** : remplacez `package` par une valeur que la [référence de la source de plugin npm](/docs/fr/plugins/marketplace-reference#npm-plugin-source) accepte, ou basculez l'entrée vers une source `github`, `url` ou `git-subdir`

476* **Si ce n'est pas vous** : signalez le message au propriétaire de la marketplace

477 

463<h3 id="marketplace-is-registered-from-an-untrusted-source">478<h3 id="marketplace-is-registered-from-an-untrusted-source">

464 `Marketplace "<name>" is registered from an untrusted source`479 `Marketplace "<name>" is registered from an untrusted source`

465</h3>480</h3>

Details

220 220 

221Ces commandes fonctionnent pendant environ quatre heures après l'arrêt du serveur. Après cela, exécutez `claude remote-control` pour démarrer une nouvelle session. Si vous avez archivé une session entre-temps, `--continue` et `--session-id` la désarchive sur Claude Code v2.1.228 ou version ultérieure.221Ces commandes fonctionnent pendant environ quatre heures après l'arrêt du serveur. Après cela, exécutez `claude remote-control` pour démarrer une nouvelle session. Si vous avez archivé une session entre-temps, `--continue` et `--session-id` la désarchive sur Claude Code v2.1.228 ou version ultérieure.

222 222 

223Pour ramener une session que vous avez démarrée avec `claude --remote-control` ou `/remote-control`, reprenez la conversation avec `claude --continue` ou `claude --resume`. Si Remote Control ne se reconnecte pas, voir [Couldn't reconnect to your Remote Control session](#couldnt-reconnect-to-your-remote-control-session).223Pour ramener une session que vous avez démarrée avec `claude --remote-control` ou `/remote-control`, reprenez la conversation avec `claude --continue` ou `claude --resume`. Pour le mode de permission dans lequel démarre la conversation reprise, voir [mode de permission lors de la reprise](/docs/fr/sessions#permission-mode-on-resume). Si Remote Control ne se reconnecte pas, voir [Couldn't reconnect to your Remote Control session](#couldnt-reconnect-to-your-remote-control-session).

224 224 

225Si vous reprenez la conversation dans un deuxième terminal tandis que le premier a toujours Remote Control activé, Claude Code affiche un avis `Remote Control not started here` dans le deuxième terminal et laisse Remote Control désactivé à la place de prendre la session au premier. Exécutez `/remote-control` dans le deuxième terminal pour déplacer Remote Control vers celui-ci.225Si vous reprenez la conversation dans un deuxième terminal tandis que le premier a toujours Remote Control activé, Claude Code affiche un avis `Remote Control not started here` dans le deuxième terminal et laisse Remote Control désactivé à la place de prendre la session au premier. Exécutez `/remote-control` dans le deuxième terminal pour déplacer Remote Control vers celui-ci.

226 226 

Details

107 107 

108* Votre répertoire de projet.108* Votre répertoire de projet.

109* Les chemins de configuration de Claude Code `~/.claude` et `~/.claude.json`.109* Les chemins de configuration de Claude Code `~/.claude` et `~/.claude.json`.

110* `/tmp`, où Claude Code écrit les fichiers runtime.110* Le répertoire où Claude Code écrit les fichiers runtime. Sauf si vous définissez [`CLAUDE_CODE_TMPDIR`](/docs/fr/env-vars), ce répertoire est :

111 * **Linux et WSL2** : `/tmp`

112 * **macOS** : `/private/tmp`. `/tmp` est un lien symbolique vers ce répertoire, et Seatbelt vérifie le chemin résolu.

111 113 

112Autorisez les domaines réseau dont votre session a besoin :114Autorisez les domaines réseau dont votre session a besoin :

113 115 

sandboxing.md +3 −2

Details

773 Limitations de sécurité773 Limitations de sécurité

774</h3>774</h3>

775 775 

776* **Filtrage réseau** : le sandbox restreint les domaines auxquels les processus peuvent se connecter. Par défaut, le proxy intégré ne termine pas ou n'inspecte pas TLS sur le trafic sortant, le contenu des connexions chiffrées n'est donc pas examiné. Le paramètre expérimental [`network.tlsTerminate`](/docs/fr/settings-reference#sandbox-network-tlsterminate) termine TLS au proxy pour la [substitution de credentials `mask`](#mask-credentials) mais n'ajoute pas de filtrage de contenu. Vous êtes responsable de vous assurer que seuls les domaines de confiance sont autorisés dans votre politique.776* **Filtrage réseau** : le sandbox restreint les domaines auxquels les processus peuvent se connecter. Par défaut, le proxy intégré ne termine pas ou n'inspecte pas TLS sur le trafic sortant, le contenu des connexions chiffrées n'est donc pas examiné. Le paramètre expérimental [`network.tlsTerminate`](/docs/fr/settings-reference#sandbox-network-tlsterminate) termine TLS au proxy pour la [substitution d'identifiants `mask`](#mask-credentials) mais n'ajoute pas de filtrage de contenu. Vous êtes responsable de vous assurer que seuls les domaines de confiance sont autorisés dans votre politique.

777 777 

778<Warning>778<Warning>

779 Autoriser des domaines larges tels que `github.com` peut créer des chemins pour l'exfiltration de données. Parce que le proxy prend sa décision d'autorisation à partir du nom d'hôte fourni par le client sans inspecter TLS, le code s'exécutant à l'intérieur du sandbox peut potentiellement utiliser [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) ou des techniques similaires pour atteindre des hôtes en dehors de la liste d'autorisation. Si votre modèle de menace nécessite des garanties plus fortes, configurez un [proxy personnalisé](#custom-proxy-configuration) qui termine TLS et inspecte le trafic, et installez son certificat CA à l'intérieur du sandbox. L'isolation réseau plus forte consciente de TLS est un domaine actif de développement.779 Autoriser des domaines larges tels que `github.com` peut créer des chemins pour l'exfiltration de données. Parce que le proxy prend sa décision d'autorisation à partir du nom d'hôte fourni par le client sans inspecter TLS, le code s'exécutant à l'intérieur du sandbox peut potentiellement utiliser [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) ou des techniques similaires pour atteindre des hôtes en dehors de la liste d'autorisation. Si votre modèle de menace nécessite des garanties plus fortes, configurez un [proxy personnalisé](#custom-proxy-configuration) qui termine TLS et inspecte le trafic, et installez son certificat CA à l'intérieur du sandbox. L'isolation réseau plus forte consciente de TLS est un domaine actif de développement.

780</Warning>780</Warning>

781 781 

782* **Escalade de privilèges via les sockets de domaine Unix** : la configuration `allowUnixSockets` peut accorder involontairement l'accès à des services système qui pourraient entraîner des contournements du sandbox. Par exemple, autoriser l'accès à `/var/run/docker.sock` accorde effectivement l'accès au système hôte via le socket Docker. Considérez attentivement tous les sockets Unix que vous autorisez via le sandbox.782* **Escalade de privilèges via les sockets Unix** : la configuration `allowUnixSockets` peut accorder involontairement l'accès à des services système qui pourraient entraîner des contournements du sandbox. Par exemple, autoriser l'accès à `/var/run/docker.sock` accorde effectivement l'accès au système hôte via le socket Docker. Considérez attentivement tous les sockets Unix que vous autorisez via le sandbox.

783* **Escalade de permissions du système de fichiers** : les permissions d'écriture du système de fichiers trop larges peuvent permettre des attaques d'escalade de privilèges. Autoriser les écritures dans les répertoires contenant des exécutables dans `$PATH`, les répertoires de configuration système ou les fichiers de configuration shell utilisateur tels que `.bashrc` ou `.zshrc` peut entraîner l'exécution de code dans différents contextes de sécurité lorsque d'autres utilisateurs ou processus système accèdent à ces fichiers.783* **Escalade de permissions du système de fichiers** : les permissions d'écriture du système de fichiers trop larges peuvent permettre des attaques d'escalade de privilèges. Autoriser les écritures dans les répertoires contenant des exécutables dans `$PATH`, les répertoires de configuration système ou les fichiers de configuration shell utilisateur tels que `.bashrc` ou `.zshrc` peut entraîner l'exécution de code dans différents contextes de sécurité lorsque d'autres utilisateurs ou processus système accèdent à ces fichiers.

784* **Force du sandbox Linux** : l'implémentation Linux fournit une isolation forte du système de fichiers et du réseau mais inclut un mode `enableWeakerNestedSandbox` qui lui permet de fonctionner à l'intérieur des environnements Docker sans espaces de noms privilégiés, ou sur les hôtes Linux où les espaces de noms utilisateur sans privilèges sont désactivés par sysctl. Cette option affaiblit considérablement la sécurité et ne doit être utilisée que lorsqu'une isolation supplémentaire est autrement appliquée.784* **Force du sandbox Linux** : l'implémentation Linux fournit une isolation forte du système de fichiers et du réseau mais inclut un mode `enableWeakerNestedSandbox` qui lui permet de fonctionner à l'intérieur des environnements Docker sans espaces de noms privilégiés, ou sur les hôtes Linux où les espaces de noms utilisateur sans privilèges sont désactivés par sysctl. Cette option affaiblit considérablement la sécurité et ne doit être utilisée que lorsqu'une isolation supplémentaire est autrement appliquée.

785* **Apple Events sur macOS** : le sandbox macOS bloque les Apple Events par défaut. Le paramètre `allowAppleEvents` lève cette restriction afin que les outils tels que `open` et `osascript` fonctionnent, mais il supprime l'isolation de l'exécution du code : les commandes sandboxées peuvent lancer d'autres applications sans sandbox sans invite utilisateur, et peuvent envoyer des commandes AppleScript aux applications en cours d'exécution, sous réserve de l'invite de consentement à l'automatisation macOS par application (TCC). Il n'est honoré que par les paramètres utilisateur, gérés ou CLI. Les paramètres de projet ne peuvent pas l'activer.785* **Apple Events sur macOS** : le sandbox macOS bloque les Apple Events par défaut. Le paramètre `allowAppleEvents` lève cette restriction afin que les outils tels que `open` et `osascript` fonctionnent, mais il supprime l'isolation de l'exécution du code : les commandes sandboxées peuvent lancer d'autres applications sans sandbox sans invite utilisateur, et peuvent envoyer des commandes AppleScript aux applications en cours d'exécution, sous réserve de l'invite de consentement à l'automatisation macOS par application (TCC). Il n'est honoré que par les paramètres utilisateur, gérés ou CLI. Les paramètres de projet ne peuvent pas l'activer.


802* **Utilisation de l'ordinateur** : lorsque Claude ouvre des applications et contrôle votre écran, il s'exécute sur votre bureau réel plutôt que dans un environnement isolé. Les invites de permission par application contrôlent chaque application. Consultez [utilisation de l'ordinateur dans la CLI](/docs/fr/computer-use) ou [utilisation de l'ordinateur dans Desktop](/docs/fr/desktop#let-claude-use-your-computer).802* **Utilisation de l'ordinateur** : lorsque Claude ouvre des applications et contrôle votre écran, il s'exécute sur votre bureau réel plutôt que dans un environnement isolé. Les invites de permission par application contrôlent chaque application. Consultez [utilisation de l'ordinateur dans la CLI](/docs/fr/computer-use) ou [utilisation de l'ordinateur dans Desktop](/docs/fr/desktop#let-claude-use-your-computer).

803* **Variables d'environnement** : les commandes Bash sandboxées héritent de l'environnement du processus parent par défaut, y compris les identifiants définis là-bas. Utilisez [`sandbox.credentials`](#protect-credentials) pour supprimer ou masquer les variables spécifiques pour les commandes sandboxées, ou définissez [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/fr/env-vars) pour supprimer les identifiants de tous les sous-processus.803* **Variables d'environnement** : les commandes Bash sandboxées héritent de l'environnement du processus parent par défaut, y compris les identifiants définis là-bas. Utilisez [`sandbox.credentials`](#protect-credentials) pour supprimer ou masquer les variables spécifiques pour les commandes sandboxées, ou définissez [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/fr/env-vars) pour supprimer les identifiants de tous les sous-processus.

804* **Sous-agents** : les [sous-agents](/docs/fr/sub-agents) s'exécutent dans le même processus que la session parent et utilisent la même configuration de sandbox. Les commandes Bash à l'intérieur d'un sous-agent sont sandboxées lorsque le sandboxing est activé dans la session parent.804* **Sous-agents** : les [sous-agents](/docs/fr/sub-agents) s'exécutent dans le même processus que la session parent et utilisent la même configuration de sandbox. Les commandes Bash à l'intérieur d'un sous-agent sont sandboxées lorsque le sandboxing est activé dans la session parent.

805* **Mods** : un [mod](/docs/fr/plugins/mods/overview) est un plugin qui exécute son propre code à l'intérieur de Claude Code, et un processus lancé par un mod s'exécute en dehors du sandbox. Consultez [Ce qu'un mod peut atteindre](/docs/fr/plugins/mods/overview#what-a-mod-can-reach).

805 806 

806<Warning>807<Warning>

807 Un sandboxing efficace nécessite à la fois l'isolation du système de fichiers et du réseau. Sans isolation réseau, un agent compromis pourrait exfiltrer des fichiers sensibles comme les clés SSH. Sans isolation du système de fichiers, qu'elle provienne d'une politique permissive ou de la [désactivation de la couche système de fichiers](#disable-filesystem-isolation), un agent compromis pourrait installer une porte dérobée sur les ressources système pour accéder au réseau. Lorsque vous élargissez les valeurs par défaut, vérifiez qu'un chemin `allowWrite`, une entrée `allowedDomains` large ou une exception `excludedCommands` ne défait pas une restriction de l'autre côté.808 Un sandboxing efficace nécessite à la fois l'isolation du système de fichiers et du réseau. Sans isolation réseau, un agent compromis pourrait exfiltrer des fichiers sensibles comme les clés SSH. Sans isolation du système de fichiers, qu'elle provienne d'une politique permissive ou de la [désactivation de la couche système de fichiers](#disable-filesystem-isolation), un agent compromis pourrait installer une porte dérobée sur les ressources système pour accéder au réseau. Lorsque vous élargissez les valeurs par défaut, vérifiez qu'un chemin `allowWrite`, une entrée `allowedDomains` large ou une exception `excludedCommands` ne défait pas une restriction de l'autre côté.

Details

61 61 

62Ne fermez pas ou ne réutilisez pas le descripteur de fichier 3 dans le wrapper. Rediriger stdout et stderr de l'enfant est correct.62Ne fermez pas ou ne réutilisez pas le descripteur de fichier 3 dans le wrapper. Rediriger stdout et stderr de l'enfant est correct.

63 63 

64<h3 id="pass-the-system-prompt-flags-through">

65 Transmettre les flags de prompt système

66</h3>

67 

68Le prompt système et le prompt système ajouté que le plan de contrôle d'Anthropic envoie pour une session parviennent à votre wrapper sous forme de chemins de fichiers, et non de texte en ligne. Le runner écrit chaque prompt dans un fichier du répertoire de configuration de la session, `CLAUDE_CONFIG_DIR`, et transmet son chemin dans les arguments que reçoit votre wrapper, sous la forme [`--system-prompt-file <path>` ou `--append-system-prompt-file <path>`](/docs/fr/cli-reference#system-prompt-flags).

69 

70Les runners sur Claude Code v2.1.281 ou ultérieur livrent les prompts sous forme de fichiers. Avant la v2.1.281, le runner les transmettait sous la forme `--system-prompt <text>` et `--append-system-prompt <text>`.

71 

72Dans votre script wrapper ou votre [hook `command`](#command), gérez ces flags comme suit :

73 

74* **Transmettez-les** : terminez le wrapper avec `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"`, qui transmet les flags de fichier avec tous les autres arguments. Ne les supprimez pas et ne les réécrivez pas. Si une session perd un flag de fichier de prompt, elle s'exécute sans les instructions que le plan de contrôle lui a envoyées.

75* **Sur un runner en v2.1.281 ou ultérieur, un flag de fichier que vous ajoutez remplace celui du serveur, sans jamais s'y ajouter** : chaque flag de fichier de prompt n'accepte qu'une seule valeur et Claude Code conserve la dernière occurrence, donc si vous ajoutez `--append-system-prompt-file <path>` après `"$@"`, le contenu de votre fichier remplace les instructions ajoutées par le serveur. Pour ajouter des instructions en plus de celles du serveur, placez-les dans le `CLAUDE.md` de l'image du runner, que le runner [injecte dans la configuration de niveau utilisateur de chaque session](#how-each-session’s-config-is-assembled).

76 

64<h3 id="provision-credentials-scoped-to-the-session-creator">77<h3 id="provision-credentials-scoped-to-the-session-creator">

65 Provisionner les identifiants limités au créateur de la session78 Provisionner les identifiants limités au créateur de la session

66</h3>79</h3>


454* **Qui les crée** : le plan de contrôle remplit les scripts à partir de constantes fixes dans son propre déploiement, jamais à partir d'entrées par session ou tierces.467* **Qui les crée** : le plan de contrôle remplit les scripts à partir de constantes fixes dans son propre déploiement, jamais à partir d'entrées par session ou tierces.

455* **Ce qui les gouverne toujours** : les hooks livrés via `--settings` entrent dans la configuration de hook fusionnée ordinaire, pas le niveau géré, donc vos paramètres gérés s'appliquent toujours. `disableAllHooks` les désactive, et ils ne font pas partie des catégories que [`allowManagedHooksOnly`](/docs/fr/settings-reference#allowmanagedhooksonly) garde chargées.468* **Ce qui les gouverne toujours** : les hooks livrés via `--settings` entrent dans la configuration de hook fusionnée ordinaire, pas le niveau géré, donc vos paramètres gérés s'appliquent toujours. `disableAllHooks` les désactive, et ils ne font pas partie des catégories que [`allowManagedHooksOnly`](/docs/fr/settings-reference#allowmanagedhooksonly) garde chargées.

456 469 

470En dehors des sessions [Claude Tag](https://claude.com/docs/claude-tag/overview), une session dans un environnement auto-hébergé s'exécute avec la [mémoire automatique](/docs/fr/memory#auto-memory) désactivée par défaut. Pour les instructions qui doivent persister d'une session à l'autre, utilisez le `CLAUDE.md` de votre image runner ou du dépôt.

471 

472L'instantané du `~/.claude/` de l'hôte pris par le runner exclut le répertoire `projects/`. L'emplacement de stockage par défaut de la mémoire automatique se trouve sous ce répertoire. Si vous y placez des fichiers de mémoire, le runner ne les sème pas dans les sessions, et ils n'activent pas la mémoire automatique.

473 

457<h3 id="repository-committed-permission-rules">474<h3 id="repository-committed-permission-rules">

458 Règles de permission validées dans le référentiel475 Règles de permission validées dans le référentiel

459</h3>476</h3>

Details

1958* Une substitution de commande, un sous-shell ou un bloc de contrôle de flux tel que `if` ou `for`1958* Une substitution de commande, un sous-shell ou un bloc de contrôle de flux tel que `if` ou `for`

1959* Une redirection, comme `docker build . > build.log`, autre qu'une qui duplique uniquement un descripteur de fichier, comme `2>&1` le fait1959* Une redirection, comme `docker build . > build.log`, autre qu'une qui duplique uniquement un descripteur de fichier, comme `2>&1` le fait

1960* Un nom de commande qui provient d'une variable1960* Un nom de commande qui provient d'une variable

1961* Un `git clone`, `git init`, `git worktree add`, `git worktree move` ou `git bundle create` avec un argument de chemin qui est absolu, commence par `~` ou contient un segment `..`

1961 1962 

1962Par exemple, `cd build && docker compose up` reste en sandbox sous une entrée `docker *`, et ajouter une entrée `cd` ne change pas cela.1963Par exemple, `cd build && docker compose up` reste en sandbox sous une entrée `docker *`, et ajouter une entrée `cd` ne change pas cela. Sous une entrée `git *`, `git clone <url> vendor/lib` s'exécute en dehors du sandbox, mais `git clone <url> ~/tools` reste en sandbox. Un clone écrit toute une arborescence de fichiers, éventuellement exécutables, à l'endroit où pointe son chemin de destination.

1963 1964 

1964Les commandes exclues passent toujours par le flux de permission régulier. L'exclusion est une commodité, pas une limite de sécurité : préférez [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) lorsqu'un outil ne doit écrire que quelque part de spécifique. Claude Code fusionne les entrées dans chaque portée de paramètres que la session charge, et il n'y a pas de verrou réservé aux paramètres gérés pour cette liste, donc gardez une liste gérée étroite.1965Les commandes exclues passent toujours par le flux de permission régulier. L'exclusion est une commodité, pas une limite de sécurité : préférez [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) lorsqu'un outil ne doit écrire que quelque part de spécifique. Claude Code fusionne les entrées dans chaque portée de paramètres que la session charge, et il n'y a pas de verrou réservé aux paramètres gérés pour cette liste, donc gardez une liste gérée étroite.

1965 1966 


4312* **Tout le reste est bloqué** : les hooks utilisateur, projet et local, les hooks et mods d'autres plugins installés, et les hooks déclarés dans le frontmatter de l'agent. Les [mods intégrés à Claude Code](/docs/fr/plugins/mods/overview#mods-built-into-claude-code) continuent de s'exécuter. Pour bloquer uniquement les mods des utilisateurs, définissez [`allowManagedModsOnly`](/docs/fr/plugins/mods/admin#set-options-on-the-built-in-guard) à la place.4313* **Tout le reste est bloqué** : les hooks utilisateur, projet et local, les hooks et mods d'autres plugins installés, et les hooks déclarés dans le frontmatter de l'agent. Les [mods intégrés à Claude Code](/docs/fr/plugins/mods/overview#mods-built-into-claude-code) continuent de s'exécuter. Pour bloquer uniquement les mods des utilisateurs, définissez [`allowManagedModsOnly`](/docs/fr/plugins/mods/admin#set-options-on-the-built-in-guard) à la place.

4313* **Les plugins sourced par commande sont désactivés** : Claude Code désactive également les plugins avec une [`command` source](/docs/fr/plugins/marketplace-reference#command-plugin-source), y compris les plugins force-enabled dans les `enabledPlugins` gérés, sauf si vous définissez [`disableCommandPluginSources`](#disablecommandpluginsources) explicitement à `false`4314* **Les plugins sourced par commande sont désactivés** : Claude Code désactive également les plugins avec une [`command` source](/docs/fr/plugins/marketplace-reference#command-plugin-source), y compris les plugins force-enabled dans les `enabledPlugins` gérés, sauf si vous définissez [`disableCommandPluginSources`](#disablecommandpluginsources) explicitement à `false`

4314* **Les commandes `headersHelper` de la marketplace sont bloquées** : Claude Code bloque également les commandes [`headersHelper`](/docs/fr/plugins/host-marketplace#authenticate-archive-downloads) de la marketplace sauf si [`disableCommandPluginSources`](#disablecommandpluginsources) est explicitement défini à `false`, sauf pour une marketplace que les paramètres gérés eux-mêmes déclarent. Nécessite Claude Code v2.1.238 ou ultérieur4315* **Les commandes `headersHelper` de la marketplace sont bloquées** : Claude Code bloque également les commandes [`headersHelper`](/docs/fr/plugins/host-marketplace#authenticate-archive-downloads) de la marketplace sauf si [`disableCommandPluginSources`](#disablecommandpluginsources) est explicitement défini à `false`, sauf pour une marketplace que les paramètres gérés eux-mêmes déclarent. Nécessite Claude Code v2.1.238 ou ultérieur

4315* **La ligne d'état et la suggestion de fichier se limitent aux paramètres gérés** : Claude Code lit [`statusLine`](/docs/fr/statusline), [`fileSuggestion`](#filesuggestion) et [`subagentStatusLine`](/docs/fr/statusline#subagent-status-lines) uniquement à partir des paramètres gérés, en suivant les [portes de ligne d'état et de suggestion de fichier](#status-line-and-file-suggestion-gates)4316* **La barre de statut et la suggestion de fichier se limitent aux paramètres gérés** : Claude Code lit [`statusLine`](/docs/fr/statusline), [`fileSuggestion`](#filesuggestion) et [`subagentStatusLine`](/docs/fr/statusline#subagent-status-lines) uniquement à partir des paramètres gérés, en suivant les [portes de barre de statut et de suggestion de fichier](#status-line-and-file-suggestion-gates)

4316 4317 

4317La commande [`/goal`](/docs/fr/goal) ne peut pas s'exécuter tant que cette clé est définie, car elle dépend des hooks.4318La commande [`/goal`](/docs/fr/goal) ne peut pas s'exécuter tant que cette clé est définie, car elle dépend des hooks.

4318 4319 


4320 `disableAllHooks`4321 `disableAllHooks`

4321</h3>4322</h3>

4322 4323 

4323Désactivez les [hooks](/docs/fr/hooks#disable-or-remove-hooks), toute [ligne d'état](/docs/fr/statusline) personnalisée et toute commande [suggestion de fichier](#filesuggestion) personnalisée. Utilisez-la pour désactiver tous ces éléments temporairement sans les supprimer de vos paramètres.4324Désactivez les [hooks](/docs/fr/hooks#disable-or-remove-hooks), toute [barre de statut](/docs/fr/statusline) personnalisée et toute commande [suggestion de fichier](#filesuggestion) personnalisée. Utilisez-la pour désactiver tous ces éléments temporairement sans les supprimer de vos paramètres.

4324 4325 

4325* **Portée** : [`Any file`](#scopes). Seuls les paramètres gérés peuvent désactiver les hooks gérés.4326* **Portée** : [`Any file`](#scopes). Seuls les paramètres gérés peuvent désactiver les hooks gérés.

4326* **Type** : Booléen4327* **Type** : Booléen

4327 * `true` : Claude Code désactive les hooks, toute ligne d'état personnalisée et toute commande de suggestion de fichier personnalisée4328 * `true` : Claude Code désactive les hooks, toute barre de statut personnalisée et toute commande de suggestion de fichier personnalisée

4328 * `false` : les hooks, la ligne d'état et la commande de suggestion de fichier s'exécutent4329 * `false` : les hooks, la barre de statut et la commande de suggestion de fichier s'exécutent

4329* **Valeur par défaut** : non défini, donc les hooks s'exécutent4330* **Valeur par défaut** : non défini, donc les hooks s'exécutent

4330 4331 

4331```json settings.json theme={null}4332```json settings.json theme={null}


4339* **Dans les paramètres gérés** : Claude Code désactive tous les hooks configurés, y compris les hooks gérés, et continue d'exécuter les hooks que l'[Agent SDK](/docs/fr/agent-sdk/overview) enregistre en processus4340* **Dans les paramètres gérés** : Claude Code désactive tous les hooks configurés, y compris les hooks gérés, et continue d'exécuter les hooks que l'[Agent SDK](/docs/fr/agent-sdk/overview) enregistre en processus

4340* **Dans tout autre fichier de paramètres** : Claude Code désactive les hooks utilisateur, projet, local et plugin ; les hooks gérés, les hooks Agent SDK et les hooks des plugins force-enabled dans les [`enabledPlugins`](#enabledplugins) gérés continuent de s'exécuter4341* **Dans tout autre fichier de paramètres** : Claude Code désactive les hooks utilisateur, projet, local et plugin ; les hooks gérés, les hooks Agent SDK et les hooks des plugins force-enabled dans les [`enabledPlugins`](#enabledplugins) gérés continuent de s'exécuter

4341 4342 

4343La clé arrête également les [mods](/docs/fr/plugins/mods/overview), qui sont des plugins dont le code enregistre des hooks :

4344 

4345* **Dans les paramètres gérés** : les mods de chaque plugin installé s'arrêtent, y compris ceux de votre organisation

4346* **Dans tout autre fichier de paramètres** : les mods que vous avez installés s'arrêtent, et [les mods de votre organisation](/docs/fr/plugins/mods/admin#install-your-organizations-mods) continuent de s'exécuter

4347 

4348Les mods intégrés à Claude Code continuent de s'exécuter dans les deux cas. Chacun dispose de [son propre interrupteur](/docs/fr/plugins/mods/overview#mods-built-into-claude-code).

4349 

4342Garder les hooks Agent SDK en cours d'exécution lorsque les paramètres gérés définissent cette clé nécessite Claude Code v2.1.242 ou ultérieur.4350Garder les hooks Agent SDK en cours d'exécution lorsque les paramètres gérés définissent cette clé nécessite Claude Code v2.1.242 ou ultérieur.

4343 4351 

4344La commande [`/goal`](/docs/fr/goal) ne peut pas s'exécuter tant que les hooks sont désactivés, et le menu `/hooks` affiche un avis au lieu de vos hooks.4352La commande [`/goal`](/docs/fr/goal) ne peut pas s'exécuter tant que les hooks sont désactivés, et le menu `/hooks` affiche un avis au lieu de vos hooks.

4345 4353 

4346<h4 id="status-line-and-file-suggestion-gates">4354<h4 id="status-line-and-file-suggestion-gates">

4347 Portes de ligne d'état et de suggestion de fichier4355 Portes de barre de statut et de suggestion de fichier

4348</h4>4356</h4>

4349 4357 

4350Claude Code prend deux décisions pour `statusLine`, `fileSuggestion` et `subagentStatusLine`, dans cet ordre :4358Claude Code prend deux décisions pour `statusLine`, `fileSuggestion` et `subagentStatusLine`, dans cet ordre :

4351 4359 

4352* **Désactivé entièrement** : lorsque les paramètres gérés définissent `disableAllHooks`, ou lorsque le dossier n'est pas approuvé selon la même [règle de confiance d'espace de travail que les hooks dans les fichiers de paramètres](/docs/fr/permissions#what-runs-before-you-trust-a-folder)4360* **Désactivé entièrement** : lorsque les paramètres gérés définissent `disableAllHooks`, ou lorsque le dossier n'est pas approuvé selon la même [règle de confiance d'espace de travail que les hooks dans les fichiers de paramètres](/docs/fr/permissions#what-runs-before-you-trust-a-folder)

4353* **Limité aux paramètres gérés** : lorsque [`allowManagedHooksOnly`](#allowmanagedhooksonly) est défini, lorsque `disableAllHooks` est `true` en dehors des paramètres gérés après l'application de la [précédence des paramètres](/docs/fr/hooks#disable-or-remove-hooks), ou lorsque vous démarrez Claude Code avec `--safe-mode`4361* **Limité aux paramètres gérés** : lorsque [`allowManagedHooksOnly`](#allowmanagedhooksonly) est défini, lorsque `disableAllHooks` est `true` en dehors des paramètres gérés après l'application de la [priorité des paramètres](/docs/fr/hooks#disable-or-remove-hooks), ou lorsque vous démarrez Claude Code avec `--safe-mode`

4354 4362 

4355Sous limitation, Claude Code exécute une valeur gérée si une est déployée. Sinon, il ignore votre valeur sans avertissement : la ligne d'état est désactivée et l'autocomplétion `@` revient à la suggestion de fichier intégrée.4363Sous limitation, Claude Code exécute une valeur gérée si une est déployée. Sinon, il ignore votre valeur sans avertissement : la barre de statut est désactivée et l'autocomplétion `@` revient à la suggestion de fichier intégrée.

4356 4364 

4357<h3 id="disableworkflows">4365<h3 id="disableworkflows">

4358 `disableWorkflows`4366 `disableWorkflows`


4398 `hooks`4406 `hooks`

4399</h3>4407</h3>

4400 4408 

4401Exécutez vos propres commandes, invites, agents, requêtes HTTP ou outils MCP en tant que [hooks](/docs/fr/hooks) à des points du cycle de vie de Claude Code, comme avant un appel d'outil ou au démarrage d'une session ; la [référence des hooks](/docs/fr/hooks#hook-events) répertorie tous les événements, leur charge utile et leurs codes de sortie. Chaque événement correspond à une liste de groupes de correspondance, et chaque groupe répertorie les gestionnaires à exécuter lorsque la correspondance s'applique.4409Exécutez vos propres commandes, prompts, agents, requêtes HTTP ou outils MCP en tant que [hooks](/docs/fr/hooks) à des points du cycle de vie de Claude Code, comme avant un appel d'outil ou au démarrage d'une session ; la [référence des hooks](/docs/fr/hooks#hook-events) répertorie tous les événements, leur charge utile et leurs codes de sortie. Chaque événement correspond à une liste de groupes de matchers, et chaque groupe répertorie les gestionnaires à exécuter lorsque le matcher s'applique.

4402 4410 

4403* **Portée** : [`Any file`](#scopes). Les hooks fusionnent dans les fichiers plutôt que de se remplacer les uns les autres, et les hooks des paramètres gérés ne peuvent pas être supprimés d'autres fichiers.4411* **Portée** : [`Any file`](#scopes). Les hooks fusionnent dans les fichiers plutôt que de se remplacer les uns les autres, et les hooks des paramètres gérés ne peuvent pas être supprimés d'autres fichiers.

4404* **Type** : objet indexé par [événement hook](/docs/fr/hooks#hook-events) ; chaque valeur est un tableau de groupes `{ "matcher", "hooks" }` dont les entrées `hooks` ont un `type` de `"command"`, `"prompt"`, `"agent"`, `"http"` ou `"mcp_tool"`4412* **Type** : objet indexé par [événement hook](/docs/fr/hooks#hook-events) ; chaque valeur est un tableau de groupes `{ "matcher", "hooks" }` dont les entrées `hooks` ont un `type` de `"command"`, `"prompt"`, `"agent"`, `"http"` ou `"mcp_tool"`


4421}4429}

4422```4430```

4423 4431 

4424Pour chaque événement, modèle de correspondance et champ de gestionnaire, consultez la [référence des hooks](/docs/fr/hooks#configuration). Pour désactiver les hooks, consultez [`disableAllHooks`](#disableallhooks) ; pour limiter les hooks à ceux que votre organisation déploie, consultez [`allowManagedHooksOnly`](#allowmanagedhooksonly).4432Pour chaque événement, modèle de matcher et champ de gestionnaire, consultez la [référence des hooks](/docs/fr/hooks#configuration). Pour désactiver les hooks, consultez [`disableAllHooks`](#disableallhooks) ; pour limiter les hooks à ceux que votre organisation déploie, consultez [`allowManagedHooksOnly`](#allowmanagedhooksonly).

4425 4433 

4426<h3 id="httphookallowedenvvars">4434<h3 id="httphookallowedenvvars">

4427 `httpHookAllowedEnvVars`4435 `httpHookAllowedEnvVars`


4447 `workflowKeywordTriggerEnabled`4455 `workflowKeywordTriggerEnabled`

4448</h3>4456</h3>

4449 4457 

4450Choisissez si taper le mot-clé `ultracode` dans une invite déclenche un [workflow dynamique](/docs/fr/workflows#ask-for-a-workflow-in-your-prompt). Définissez-le à `false` pour taper le mot sans en déclencher un.4458Choisissez si taper le mot-clé `ultracode` dans un prompt déclenche un [workflow dynamique](/docs/fr/workflows#ask-for-a-workflow-in-your-prompt). Définissez-le à `false` pour taper le mot sans en déclencher un.

4451 4459 

4452* **Portée** : [`Any file`](#scopes). Apparaît dans `/config` comme **Ultracode keyword trigger**.4460* **Portée** : [`Any file`](#scopes). Apparaît dans `/config` comme **Ultracode keyword trigger**.

4453* **Type** : Booléen4461* **Type** : Booléen

4454 * `true` : taper `ultracode` dans une invite déclenche un workflow dynamique4462 * `true` : taper `ultracode` dans un prompt déclenche un workflow dynamique

4455 * `false` : vous pouvez taper le mot sans en déclencher un4463 * `false` : vous pouvez taper le mot sans en déclencher un

4456* **Valeur par défaut** : `true`4464* **Valeur par défaut** : `true`

4457 4465 


5938 * `"vertex"` : [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai), anciennement Vertex AI5946 * `"vertex"` : [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai), anciennement Vertex AI

5939 * `"foundry"` : [Microsoft Foundry](/docs/fr/microsoft-foundry)5947 * `"foundry"` : [Microsoft Foundry](/docs/fr/microsoft-foundry)

5940 * `"anthropicAws"` : [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws)5948 * `"anthropicAws"` : [Claude Platform sur AWS](/docs/fr/claude-platform-on-aws)

5941 * `"mantle"` : le point de terminaison Amazon Bedrock [Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint). Une session qui [exécute Mantle aux côtés de l'API Invoke](/docs/fr/amazon-bedrock#run-mantle-alongside-the-invoke-api) utilise les deux fournisseurs, donc listez `"bedrock"` et `"mantle"` ensemble pour cela5949 * `"mantle"` : l'[endpoint Mantle](/docs/fr/amazon-bedrock#use-the-mantle-endpoint) d'Amazon Bedrock. Une session qui [exécute Mantle aux côtés de l'API Invoke](/docs/fr/amazon-bedrock#run-mantle-alongside-the-invoke-api) utilise les deux fournisseurs, donc listez `"bedrock"` et `"mantle"` ensemble pour cela

5942 * `"customEndpoint"` : l'API Anthropic ou l'API d'un fournisseur cloud envoyée à un autre serveur, tel qu'une [passerelle LLM](/docs/fr/llm-gateway) nommée par `ANTHROPIC_BASE_URL`, une variable `ANTHROPIC_*_BASE_URL` du fournisseur, ou une valeur `ANTHROPIC_FOUNDRY_RESOURCE` qui n'est pas un nom de ressource nu. Claude Code l'admet uniquement pour la valeur exacte qu'un bloc [`env`](#env) géré épingle5950 * `"customEndpoint"` : l'API Anthropic ou l'API d'un fournisseur cloud envoyée à un autre serveur, tel qu'une [passerelle LLM](/docs/fr/llm-gateway) nommée par `ANTHROPIC_BASE_URL`, une variable `ANTHROPIC_*_BASE_URL` du fournisseur, ou une valeur `ANTHROPIC_FOUNDRY_RESOURCE` qui n'est pas un nom de ressource nu. Claude Code l'admet uniquement pour la valeur exacte qu'un bloc [`env`](#env) géré épingle

5943 * `"gateway"` : une connexion [passerelle Cloud](/docs/fr/claude-apps-gateway)5951 * `"gateway"` : une connexion [passerelle Cloud](/docs/fr/claude-apps-gateway)

5944* **Défaut** : non défini, donc n'importe quel fournisseur peut être utilisé5952* **Défaut** : non défini, donc n'importe quel fournisseur peut être utilisé


5949}5957}

5950```5958```

5951 5959 

5952L'entrée de chaque fournisseur cloud signifie le propre service de ce fournisseur, y compris ses points de terminaison régionaux, FIPS et privés.5960L'entrée de chaque fournisseur cloud signifie le propre service de ce fournisseur, y compris ses endpoints régionaux, FIPS et privés.

5953 5961 

5954Une entrée que Claude Code ne reconnaît pas comme un nom de fournisseur est supprimée et signalée, et le reste de la liste reste appliqué. Avec une liste vide, ou une dont chaque entrée n'est pas reconnue, Claude Code refuse chaque fournisseur et ne démarre pas sur la machine.5962Une entrée que Claude Code ne reconnaît pas comme un nom de fournisseur est supprimée et signalée, et le reste de la liste reste appliqué. Avec une liste vide, ou une dont chaque entrée n'est pas reconnue, Claude Code refuse chaque fournisseur et ne démarre pas sur la machine.

5955 5963 

5956<h4 id="endpoints-that-need-a-pin-in-managed-env">5964<h4 id="endpoints-that-need-a-pin-in-managed-env">

5957 Points de terminaison qui nécessitent une épingle dans `env` géré5965 Endpoints qui nécessitent une épingle dans `env` géré

5958</h4>5966</h4>

5959 5967 

5960Une épingle est la valeur d'une variable de point de terminaison définie dans un bloc [`env`](#env) géré. Lorsqu'une session envoie le trafic d'un fournisseur ailleurs que vers le propre service de ce fournisseur, Claude Code l'admet uniquement si la valeur de la session est la même que l'épingle. Ces points de terminaison en ont besoin :5968Une épingle est la valeur d'une variable d'endpoint définie dans un bloc [`env`](#env) géré. Lorsqu'une session envoie le trafic d'un fournisseur ailleurs que vers le propre service de ce fournisseur, Claude Code l'admet uniquement si la valeur de la session est la même que l'épingle. Ces endpoints en ont besoin :

5961 5969 

5962* **Sessions `"customEndpoint"`** : la variable qui nomme l'hôte, telle que `ANTHROPIC_BASE_URL`5970* **Sessions `"customEndpoint"`** : la variable qui nomme l'hôte, telle que `ANTHROPIC_BASE_URL`

5963* **Amazon Bedrock** : les variables `AWS_ENDPOINT_URL`, `AWS_ENDPOINT_URL_BEDROCK` et `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` du SDK AWS lorsqu'elles pointent en dehors du propre service de Bedrock. La session reste sous `"bedrock"` plutôt que sous `"customEndpoint"`5971* **Amazon Bedrock** : les variables `AWS_ENDPOINT_URL`, `AWS_ENDPOINT_URL_BEDROCK` et `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` du SDK AWS lorsqu'elles pointent en dehors du propre service de Bedrock. La session reste sous `"bedrock"` plutôt que sous `"customEndpoint"`


5968* **Une source d'administrateur sur la machine définit une liste** : seuls les blocs `env` des sources d'administrateur de la machine comptent5976* **Une source d'administrateur sur la machine définit une liste** : seuls les blocs `env` des sources d'administrateur de la machine comptent

5969* **Seuls les paramètres gérés par le serveur définissent une liste** : une valeur `env` dans ces paramètres gérés par le serveur compte également5977* **Seuls les paramètres gérés par le serveur définissent une liste** : une valeur `env` dans ces paramètres gérés par le serveur compte également

5970 5978 

5971La liste ne juge pas les variables de credential et de tenancy d'un fournisseur cloud ou le chemin réseau, tels que `HTTPS_PROXY` et les paramètres de certificat. Définissez-les pour la flotte dans le bloc `env` géré.5979La liste ne juge pas les variables d'identifiants et de tenancy d'un fournisseur cloud ou le chemin réseau, tels que `HTTPS_PROXY` et les paramètres de certificat. Définissez-les pour la flotte dans le bloc `env` géré.

5972 5980 

5973<h3 id="apikeyhelper">5981<h3 id="apikeyhelper">

5974 `apiKeyHelper`5982 `apiKeyHelper`

5975</h3>5983</h3>

5976 5984 

5977Exécutez votre propre commande pour produire l'identifiant que Claude Code envoie avec les demandes de modèle. Claude Code exécute la commande via le shell système, `/bin/sh` sur macOS et Linux et `cmd` sur Windows, et envoie sa sortie comme en-têtes `X-Api-Key` et `Authorization: Bearer`. Utilisez-la pour les identifiants dynamiques ou rotatifs, tels que les jetons de courte durée récupérés d'un coffre.5985Exécutez votre propre commande pour produire l'identifiant que Claude Code envoie avec les requêtes de modèle. Claude Code exécute la commande via le shell système, `/bin/sh` sur macOS et Linux et `cmd` sur Windows, et envoie sa sortie comme en-têtes `X-Api-Key` et `Authorization: Bearer`. Utilisez-la pour les identifiants dynamiques ou rotatifs, tels que les jetons de courte durée récupérés d'un coffre.

5978 5986 

5979* **Portée** : [`Any file`](#scopes)5987* **Portée** : [`Any file`](#scopes)

5980* **Type** : chaîne, une ligne de commande shell5988* **Type** : chaîne, une ligne de commande shell


5989Claude Code met en cache la valeur et réexécute la commande dans ces cas :5997Claude Code met en cache la valeur et réexécute la commande dans ces cas :

5990 5998 

5991* Après la durée de vie du cache, cinq minutes par défaut ou l'intervalle que vous définissez avec [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/docs/fr/env-vars).5999* Après la durée de vie du cache, cinq minutes par défaut ou l'intervalle que vous définissez avec [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/docs/fr/env-vars).

5992* Lorsqu'une demande à l'API Anthropic, directement ou via une [passerelle LLM](/docs/fr/llm-gateway), échoue avec `401` ou `403`.6000* Lorsqu'une requête à l'API Anthropic, directement ou via une [passerelle LLM](/docs/fr/llm-gateway), échoue avec `401` ou `403`.

5993* Avant d'envoyer une demande à l'API Anthropic, directement ou via une passerelle LLM, lorsque la sortie mise en cache est un JWT qui a expiré après que l'aide l'ait produit. Nécessite Claude Code v2.1.246 ou ultérieur.6001* Avant d'envoyer une requête à l'API Anthropic, directement ou via une passerelle LLM, lorsque la sortie mise en cache est un JWT qui a expiré après que l'aide l'a produit. Nécessite Claude Code v2.1.246 ou ultérieur.

5994 6002 

5995Les deux derniers cas s'appliquent uniquement lorsque la sortie de l'aide est l'identifiant que Claude Code envoie et que `ANTHROPIC_AUTH_TOKEN` n'est pas défini.6003Les deux derniers cas s'appliquent uniquement lorsque la sortie de l'aide est l'identifiant que Claude Code envoie et que `ANTHROPIC_AUTH_TOKEN` n'est pas défini.

5996 6004 


6002 6010 

6003Exécutez votre propre commande, telle que `aws sso login`, pour actualiser les identifiants dans votre répertoire `.aws` lorsque ceux que Claude Code a pour [Amazon Bedrock](/docs/fr/amazon-bedrock) cessent de fonctionner. Claude Code vérifie d'abord les identifiants actuels par rapport à STS et n'exécute la commande que lorsque cette vérification échoue, puis lit le répertoire `.aws` actualisé.6011Exécutez votre propre commande, telle que `aws sso login`, pour actualiser les identifiants dans votre répertoire `.aws` lorsque ceux que Claude Code a pour [Amazon Bedrock](/docs/fr/amazon-bedrock) cessent de fonctionner. Claude Code vérifie d'abord les identifiants actuels par rapport à STS et n'exécute la commande que lorsque cette vérification échoue, puis lit le répertoire `.aws` actualisé.

6004 6012 

6013Lorsque la vérification échoue au même moment dans plusieurs processus Claude Code qui utilisent la même commande et les mêmes identifiants, tels que des terminaux ou des fenêtres d'IDE distincts, un seul processus exécute la commande et les autres attendent cette exécution au lieu de lancer la leur. Un processus qui a attendu 60 secondes avec une requête en attente exécute lui-même la commande. Pour désactiver ce comportement, définissez [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/fr/env-vars) sur `1`.

6014 

6005* **Portée** : [`Any file`](#scopes)6015* **Portée** : [`Any file`](#scopes)

6006* **Type** : chaîne, une ligne de commande shell6016* **Type** : chaîne, une ligne de commande shell

6007* **Défaut** : non défini, donc Claude Code n'actualise pas les identifiants AWS pour vous6017* **Défaut** : non défini, donc Claude Code n'actualise pas les identifiants AWS pour vous


6061 6071 

6062Définissez l'URL de la passerelle à laquelle l'écran `/login` Cloud gateway se connecte, afin que les gens atteignent votre [passerelle cloud](/docs/fr/claude-apps-gateway) sans taper son adresse. L'écran n'a pas de champ URL : avec cette clé définie, il affiche l'URL de votre passerelle et se connecte lorsque la personne appuie sur Entrée ; sans elle, il leur dit de contacter leur administrateur IT.6072Définissez l'URL de la passerelle à laquelle l'écran `/login` Cloud gateway se connecte, afin que les gens atteignent votre [passerelle cloud](/docs/fr/claude-apps-gateway) sans taper son adresse. L'écran n'a pas de champ URL : avec cette clé définie, il affiche l'URL de votre passerelle et se connecte lorsque la personne appuie sur Entrée ; sans elle, il leur dit de contacter leur administrateur IT.

6063 6073 

6064L'une ou l'autre de ces clés ou `forceLoginMethod: "gateway"` rend la machine réservée à la passerelle, sauf pour les sessions qui sélectionnent un fournisseur cloud avec `CLAUDE_CODE_USE_*`. `/login` s'ouvre alors sur l'écran Cloud gateway sans sélecteur de méthode de connexion. Voir [La politique de l'administrateur nécessite une connexion à la passerelle Cloud](/docs/fr/errors#administrator-policy-requires-a-cloud-gateway-sign-in) pour ce qui se passe avec une connexion propriétaire restante ou une clé API. Définissez les deux clés afin que l'écran se connecte au lieu d'afficher une erreur.6074Cette clé ou `forceLoginMethod: "gateway"` rend la machine réservée à la passerelle, sauf pour les sessions qui sélectionnent un fournisseur cloud avec `CLAUDE_CODE_USE_*`. `/login` s'ouvre alors sur l'écran Cloud gateway sans sélecteur de méthode de connexion. Voir [La politique de l'administrateur nécessite une connexion à la passerelle Cloud](/docs/fr/errors#administrator-policy-requires-a-cloud-gateway-sign-in) pour ce qui se passe avec une connexion propriétaire restante ou une clé API. Définissez les deux clés afin que l'écran se connecte au lieu d'afficher une erreur.

6065 6075 

6066* **Portée** : [`Managed`](#scopes). Lisez uniquement à partir d'une source sur la machine : `managed-settings.json`, le plist macOS ou le registre HKLM Windows, ou un aide de politique. Claude Code l'ignore dans les paramètres HKCU et gérés par le serveur.6076* **Portée** : [`Managed`](#scopes). Lu uniquement à partir d'une source sur la machine : `managed-settings.json`, le plist macOS ou le registre HKLM Windows, ou un aide de politique. Claude Code l'ignore dans les paramètres HKCU et gérés par le serveur.

6067* **Type** : chaîne, une URL complète incluant le schéma6077* **Type** : chaîne, une URL complète incluant le schéma

6068* **Défaut** : non défini, donc l'écran Cloud gateway affiche une erreur indiquant aux gens de contacter leur administrateur IT6078* **Défaut** : non défini, donc l'écran Cloud gateway affiche une erreur indiquant aux gens de contacter leur administrateur IT

6069 6079 


6105 6115 

6106Sans cette clé, `/login` se connecte à n'importe quelle passerelle sur une adresse privée et rien d'autre. Avec elle, `/login` accepte également une passerelle à l'intérieur d'un bloc listé, sur une connexion directe uniquement. L'adresse propre de la machine sur cette connexion doit également être à l'intérieur du même bloc.6116Sans cette clé, `/login` se connecte à n'importe quelle passerelle sur une adresse privée et rien d'autre. Avec elle, `/login` accepte également une passerelle à l'intérieur d'un bloc listé, sur une connexion directe uniquement. L'adresse propre de la machine sur cette connexion doit également être à l'intérieur du même bloc.

6107 6117 

6108* **Portée** : [`Managed`](#scopes). Lisez uniquement à partir d'une source sur la machine : `managed-settings.json`, le plist macOS ou le registre HKLM Windows, ou un aide de politique. Claude Code l'ignore dans les paramètres HKCU et gérés par le serveur.6118* **Portée** : [`Managed`](#scopes). Lu uniquement à partir d'une source sur la machine : `managed-settings.json`, le plist macOS ou le registre HKLM Windows, ou un aide de politique. Claude Code l'ignore dans les paramètres HKCU et gérés par le serveur.

6109* **Type** : tableau de chaînes, au maximum quatre blocs IPv4 CIDR, chacun `/8` à `/32`, ne se chevauchant pas les uns les autres, et aucun ne chevauchant l'espace privé.6119* **Type** : tableau de chaînes, au maximum quatre blocs IPv4 CIDR, chacun `/8` à `/32`, ne se chevauchant pas les uns les autres, et aucun ne chevauchant l'espace privé.

6110* **Défaut** : non défini, donc `/login` accepte uniquement les passerelles sur des adresses privées6120* **Défaut** : non défini, donc `/login` accepte uniquement les passerelles sur des adresses privées

6111 6121 


6117 6127 

6118Remplacez la plage de documentation dans l'exemple par votre propre bloc. Claude Code refuse les plages de documentation, les plages que les clients VPN et NAT64 utilisent localement, et l'espace réservé à partir duquel aucun réseau n'est numéroté, tel que la multidiffusion.6128Remplacez la plage de documentation dans l'exemple par votre propre bloc. Claude Code refuse les plages de documentation, les plages que les clients VPN et NAT64 utilisent localement, et l'espace réservé à partir duquel aucun réseau n'est numéroté, tel que la multidiffusion.

6119 6129 

6120Si une entrée est invalide, ou la valeur n'est pas une liste de chaînes, `/login` nomme le problème et refuse chaque nouvelle connexion à la passerelle cloud sur la machine jusqu'à ce que vous corrigiez la valeur. Les connexions existantes continuent de fonctionner. Voir [Autoriser une passerelle sur l'espace d'adresses publiques que vous possédez](/docs/fr/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) pour les règles complètes et ce que les développeurs voient.6130Si une entrée est invalide, ou la valeur n'est pas une liste de chaînes, `/login` nomme le problème et refuse chaque nouvelle connexion à la passerelle sur la machine jusqu'à ce que vous corrigiez la valeur. Les connexions existantes continuent de fonctionner. Voir [Autoriser une passerelle sur l'espace d'adresses publiques que vous possédez](/docs/fr/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) pour les règles complètes et ce que les développeurs voient.

6121 6131 

6122<h3 id="gcpauthrefresh">6132<h3 id="gcpauthrefresh">

6123 `gcpAuthRefresh`6133 `gcpAuthRefresh`

6124</h3>6134</h3>

6125 6135 

6126Exécutez votre propre commande pour actualiser les identifiants Google Cloud Application Default lorsque Claude Code découvre qu'ils ont expiré ou ne peuvent pas être chargés, afin que les demandes [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai) continuent de fonctionner sans que vous vous réauthentifiiez à la main.6136Exécutez votre propre commande pour actualiser les identifiants Google Cloud Application Default lorsque Claude Code découvre qu'ils ont expiré ou ne peuvent pas être chargés, afin que les requêtes [Agent Platform de Google Cloud](/docs/fr/google-vertex-ai) continuent de fonctionner sans que vous vous réauthentifiiez à la main.

6137 

6138Lorsque plusieurs processus Claude Code qui utilisent la même commande et les mêmes identifiants, tels que des terminaux ou des fenêtres d'IDE distincts, constatent au même moment que ceux-ci ont expiré, un seul processus exécute la commande et les autres attendent cette exécution au lieu de lancer la leur. Un processus qui a attendu 60 secondes avec une requête en attente exécute lui-même la commande. Pour désactiver ce comportement, définissez [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/fr/env-vars) sur `1`.

6127 6139 

6128* **Portée** : [`Any file`](#scopes)6140* **Portée** : [`Any file`](#scopes)

6129* **Type** : chaîne, une ligne de commande shell6141* **Type** : chaîne, une ligne de commande shell

Details

22| `curl: (23)` ou `curl: (56) Failure writing output to destination` | [Vérifiez la connectivité ou utilisez un programme d'installation alternatif](#curl-56-failure-writing-output-to-destination) |22| `curl: (23)` ou `curl: (56) Failure writing output to destination` | [Vérifiez la connectivité ou utilisez un programme d'installation alternatif](#curl-56-failure-writing-output-to-destination) |

23| `Killed` pendant l'installation sur Linux, ou `Installation was killed before it could finish (exit code 137)` | [Libérez de la mémoire ou ajoutez de l'espace d'échange](#install-killed-on-low-memory-linux-servers) |23| `Killed` pendant l'installation sur Linux, ou `Installation was killed before it could finish (exit code 137)` | [Libérez de la mémoire ou ajoutez de l'espace d'échange](#install-killed-on-low-memory-linux-servers) |

24| `Raw mode is not supported` pendant l'installation | [Réexécutez le programme d'installation](#raw-mode-is-not-supported-during-install) |24| `Raw mode is not supported` pendant l'installation | [Réexécutez le programme d'installation](#raw-mode-is-not-supported-during-install) |

25| `EACCES: permission denied` pendant l'installation | [Corrigez les permissions du répertoire d'installation](#permission-errors-during-installation) |

25| `TLS connect error` ou `SSL/TLS secure channel` | [Mettez à jour les certificats CA](#tls-or-ssl-connection-errors) |26| `TLS connect error` ou `SSL/TLS secure channel` | [Mettez à jour les certificats CA](#tls-or-ssl-connection-errors) |

26| `Failed to fetch version` ou impossible d'atteindre le serveur de téléchargement | [Vérifiez les paramètres réseau et proxy](#check-network-connectivity) |27| `Failed to fetch version` ou impossible d'atteindre le serveur de téléchargement | [Vérifiez les paramètres réseau et proxy](#check-network-connectivity) |

27| `irm is not recognized` ou `The token '&&' is not a valid statement separator` | [Utilisez la bonne commande pour votre shell](#wrong-install-command-on-windows) |28| `irm is not recognized` ou `The token '&&' is not a valid statement separator` | [Utilisez la bonne commande pour votre shell](#wrong-install-command-on-windows) |


295 Vérifiez les permissions des répertoires296 Vérifiez les permissions des répertoires

296</h3>297</h3>

297 298 

298Le programme d'installation a besoin d'accès en écriture à `~/.local/bin/` et `~/.claude/` sur macOS et Linux. Sur Windows, l'emplacement d'installation est sous `%USERPROFILE%`, qui est accessible en écriture par votre utilisateur par défaut, donc cette section s'applique rarement là.299Une installation qui échoue en raison des permissions indique le chemin qu'elle n'a pas pu créer ou dans lequel elle n'a pas pu écrire. Sur Windows, l'installation écrit sous `%USERPROFILE%`, qui est accessible en écriture par votre utilisateur par défaut, donc cette section s'applique rarement là.

300 

301Sur macOS et Linux, l'installation écrit dans ces emplacements :

302 

303* `~/.claude/downloads/` : où la commande d'installation place le binaire téléchargé

304* `~/.local/bin/` : le lanceur `claude`

305* `~/.local/share/claude/` : chaque version qu'elle télécharge

306* `~/.local/state/claude/` : ses fichiers de verrouillage

307* `~/.cache/claude/` : les téléchargements intermédiaires

308* [`~/.claude.json`](/docs/fr/claude-directory) : votre fichier de configuration globale, où le programme d'installation enregistre la méthode d'installation

309 

310Si vous définissez `XDG_DATA_HOME`, `XDG_STATE_HOME` ou `XDG_CACHE_HOME`, l'installation les utilise à la place de `~/.local/share`, `~/.local/state` et `~/.cache`. Si vous définissez [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars), le fichier de configuration globale se trouve dans ce répertoire au lieu de votre répertoire personnel.

299 311 

300Vérifiez si les répertoires sont accessibles en écriture :312Vérifiez si les répertoires sont accessibles en écriture :

301 313 


1026 1038 

1027* **Utilisateurs Claude Pro/Max** : vérifiez que votre abonnement est actif sur [claude.ai/settings](https://claude.ai/settings)1039* **Utilisateurs Claude Pro/Max** : vérifiez que votre abonnement est actif sur [claude.ai/settings](https://claude.ai/settings)

1028* **Utilisateurs Anthropic Console** : confirmez que votre compte a le rôle « Claude Code » ou « Developer ». Les administrateurs l'attribuent dans la console Anthropic sous Paramètres → Membres.1040* **Utilisateurs Anthropic Console** : confirmez que votre compte a le rôle « Claude Code » ou « Developer ». Les administrateurs l'attribuent dans la console Anthropic sous Paramètres → Membres.

1029* **Derrière un proxy** : les proxies d'entreprise peuvent interférer avec les demandes API. Consultez [configuration réseau](/docs/fr/network-config) pour la configuration du proxy.1041* **Derrière un proxy** : les proxys d'entreprise peuvent interférer avec les requêtes API. Consultez [configuration réseau](/docs/fr/network-config) pour la configuration du proxy.

1030 1042 

1031<h3 id="claude-code-access-has-not-been-granted-for-this-account">1043<h3 id="claude-code-access-has-not-been-granted-for-this-account">

1032 L'accès à Claude Code n'a pas été accordé pour ce compte1044 L'accès à Claude Code n'a pas été accordé pour ce compte


1043 Cette organisation a été désactivée avec un abonnement actif1055 Cette organisation a été désactivée avec un abonnement actif

1044</h3>1056</h3>

1045 1057 

1046Si vous voyez `API Error: 400 ... "This organization has been disabled"` malgré un abonnement Claude actif, une variable d'environnement `ANTHROPIC_API_KEY` remplace vos identifiants OAuth d'abonnement. Cela se produit couramment lorsqu'une ancienne clé API d'un employeur ou d'un projet précédent est toujours définie dans votre profil shell.1058Si vous voyez `API Error: 400 ... "This organization has been disabled"` malgré un abonnement Claude actif, une variable d'environnement `ANTHROPIC_API_KEY` remplace votre abonnement. Cela se produit couramment lorsqu'une ancienne clé API d'un employeur ou d'un projet précédent est toujours définie dans votre profil shell.

1047 1059 

1048Lorsque `ANTHROPIC_API_KEY` est présente et que vous l'avez approuvée, Claude Code utilise cette clé au lieu des identifiants OAuth de votre abonnement. En mode non interactif avec le drapeau `-p`, la clé est toujours utilisée lorsqu'elle est présente. Consultez [précédence d'authentification](/docs/fr/authentication#authentication-precedence) pour l'ordre de résolution complet.1060Lorsque `ANTHROPIC_API_KEY` est présente et que vous l'avez approuvée, Claude Code utilise cette clé au lieu des identifiants OAuth de votre abonnement. En mode non interactif avec le flag `-p`, la clé est toujours utilisée lorsqu'elle est présente. Consultez [priorité d'authentification](/docs/fr/authentication#authentication-precedence) pour l'ordre de résolution complet.

1049 1061 

1050Pour utiliser votre abonnement à la place, défiez la variable d'environnement et supprimez-la de votre profil shell :1062Pour utiliser votre abonnement à la place, supprimez la définition de la variable d'environnement et retirez-la de votre profil shell :

1051 1063 

1052<Tabs>1064<Tabs>

1053 <Tab title="macOS/Linux">1065 <Tab title="macOS/Linux">


1088claude auth login1100claude auth login

1089```1101```

1090 1102 

1091Ce secours s'applique également sur Windows natif ou tout terminal où coller le code dans l'invite interactive échoue.1103Cette solution de repli s'applique également sur Windows natif ou tout terminal où coller le code dans l'invite interactive échoue.

1092 1104 

1093<h3 id="not-logged-in-or-token-expired">1105<h3 id="not-logged-in-or-token-expired">

1094 Non connecté ou jeton expiré1106 Non connecté ou jeton expiré


1098 1110 

1099Exécutez `/login` pour vous ré-authentifier. Si cela se produit fréquemment, vérifiez que votre horloge système est exacte, car la validation du jeton dépend des horodatages corrects.1111Exécutez `/login` pour vous ré-authentifier. Si cela se produit fréquemment, vérifiez que votre horloge système est exacte, car la validation du jeton dépend des horodatages corrects.

1100 1112 

1101Les sessions parallèles sur une machine partagent une connexion enregistrée et coordonnent son renouvellement afin qu'un seul processus actualise le jeton à la fois. Avant la v2.1.211, le réveil de la machine du sommeil pouvait faire que deux sessions se renouvellent avec le même jeton, ce qui révoquait la connexion enregistrée et invitait chaque session ouverte à se connecter à nouveau à la fois.1113Les sessions parallèles sur une machine partagent une connexion enregistrée et coordonnent son renouvellement afin qu'un seul processus actualise le jeton à la fois. Pour savoir ce que font les autres sessions après que vous vous êtes reconnecté dans l'une d'elles, consultez [Non connecté](/docs/fr/errors#not-logged-in).

1114 

1115Avant la v2.1.211, le réveil de la machine du sommeil pouvait faire que deux sessions se renouvellent avec le même jeton, ce qui révoquait la connexion enregistrée et invitait chaque session ouverte à se connecter à nouveau à la fois.

1102 1116 

1103Sur macOS, Claude Code enregistre les identifiants dans le Keychain de connexion. Lorsque le Keychain rejette l'écriture, par exemple lorsqu'il est verrouillé dans une session SSH ou que son mot de passe est désynchronisé avec votre mot de passe de compte, Claude Code enregistre votre connexion dans le fichier en texte brut `~/.claude/.credentials.json` à la place. Une connexion Console qui crée une clé API échoue jusqu'à ce que le Keychain soit à nouveau accessible en écriture.1117Sur macOS, Claude Code enregistre les identifiants dans le Keychain de connexion. Lorsque le Keychain rejette l'écriture, par exemple lorsqu'il est verrouillé dans une session SSH ou que son mot de passe est désynchronisé avec votre mot de passe de compte, Claude Code enregistre votre connexion dans le fichier en texte brut `~/.claude/.credentials.json` à la place. Une connexion Console qui crée une clé API échoue jusqu'à ce que le Keychain soit à nouveau accessible en écriture.

1104 1118 

Details

803. Déplacez le travail sur fichier volumineux vers un [sous-agent](/docs/fr/sub-agents) pour qu'il s'exécute dans une fenêtre de contexte séparée803. Déplacez le travail sur fichier volumineux vers un [sous-agent](/docs/fr/sub-agents) pour qu'il s'exécute dans une fenêtre de contexte séparée

814. Exécutez `/clear` si la conversation antérieure n'est plus nécessaire814. Exécutez `/clear` si la conversation antérieure n'est plus nécessaire

82 82 

83Si l'erreur revient après un `/clear`, exécutez [`/context`](/docs/fr/debug-your-config) et comparez la ligne `Messages` aux lignes situées au-dessus :

84 

85* **`Messages` est la ligne la plus grande** : un fichier ou une sortie d'outil dans la nouvelle conversation remplit à nouveau la fenêtre, reprenez donc les étapes 1 à 3

86* **Les autres lignes réunies sont plus grandes** : ce qui se charge au démarrage de la session laisse trop peu de place pour travailler, [réduisez donc ce qui se charge au démarrage](/docs/fr/errors#prompt-is-too-long)

87 

83<h3 id="command-hangs-or-freezes">88<h3 id="command-hangs-or-freezes">

84 Les commandes se figent ou se gèlent89 Les commandes se figent ou se gèlent

85</h3>90</h3>

worktrees.md +2 −0

Details

131 131 

132Les worktrees des subagents utilisent la même [branche de base](#choose-the-base-branch) que `--worktree`, donc ils se ramifient à partir de la branche par défaut de votre dépôt sauf si `worktree.baseRef` est défini sur `"head"`.132Les worktrees des subagents utilisent la même [branche de base](#choose-the-base-branch) que `--worktree`, donc ils se ramifient à partir de la branche par défaut de votre dépôt sauf si `worktree.baseRef` est défini sur `"head"`.

133 133 

134Un sous-agent dans son propre worktree reprend les fichiers d'instructions avec lesquels il [démarre](/docs/fr/sub-agents#what-loads-at-startup) depuis votre conversation principale, et non depuis son worktree. Lorsque ce worktree se trouve à l'emplacement par défaut sous `.claude/worktrees/`, le sous-agent ne charge pas non plus le fichier `CLAUDE.md` ni le répertoire `.claude/rules/` situés à la racine du worktree lorsqu'il y lit des fichiers, même si ceux-ci diffèrent sur la branche du worktree.

135 

134<h3 id="clean-up-subagent-and-background-session-worktrees">136<h3 id="clean-up-subagent-and-background-session-worktrees">

135 Nettoyer les worktrees des subagents et des sessions en arrière-plan137 Nettoyer les worktrees des subagents et des sessions en arrière-plan

136</h3>138</h3>