SpyBara
Go Premium

Documentation 2026-10-06 23:59 UTC to 2026-10-07 07:00 UTC

22 files changed +96 −57. View all changes and history on the product overview
2026
Wed 7 07:00 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

717| `accountInfo()` | Renvoie les informations du compte |717| `accountInfo()` | Renvoie les informations du compte |

718| `reconnectMcpServer(serverName)` | Reconnecter un serveur MCP par son nom. Si le nom correspond également à une entrée d'un fichier de paramètres tel que `.mcp.json` ou `~/.claude.json`, Claude Code reconnecte le serveur que vous avez configuré via [`mcpServers`](#options) ou `setMcpServers()`, et non l'entrée du fichier de paramètres. Cet ordre de résolution nécessite Claude Code v2.1.257 ou ultérieure |718| `reconnectMcpServer(serverName)` | Reconnecter un serveur MCP par son nom. Si le nom correspond également à une entrée d'un fichier de paramètres tel que `.mcp.json` ou `~/.claude.json`, Claude Code reconnecte le serveur que vous avez configuré via [`mcpServers`](#options) ou `setMcpServers()`, et non l'entrée du fichier de paramètres. Cet ordre de résolution nécessite Claude Code v2.1.257 ou ultérieure |

719| `toggleMcpServer(serverName, enabled)` | Activer ou désactiver un serveur MCP par son nom, avec la même résolution de nom que `reconnectMcpServer()`. La désactivation d'un serveur le déconnecte et retire ses outils. Consultez [`toggleMcpServer()`](#togglemcpserver) pour connaître la version de Claude Code requise pour chaque type de serveur |719| `toggleMcpServer(serverName, enabled)` | Activer ou désactiver un serveur MCP par son nom, avec la même résolution de nom que `reconnectMcpServer()`. La désactivation d'un serveur le déconnecte et retire ses outils. Consultez [`toggleMcpServer()`](#togglemcpserver) pour connaître la version de Claude Code requise pour chaque type de serveur |

720| `setMcpServers(servers)` | Remplacer dynamiquement l'ensemble des serveurs MCP de cette session. Se résout avec un [`McpSetServersResult`](#mcpsetserversresult) indiquant quels serveurs ont été ajoutés et retirés, ainsi que les éventuelles erreurs |720| `setMcpServers(servers)` | Remplacer les serveurs MCP gérés par cette méthode : les serveurs ajoutés par son intermédiaire et les [serveurs SDK in-process](#createsdkmcpserver). Se résout avec un [`McpSetServersResult`](#mcpsetserversresult) indiquant les serveurs ajoutés et retirés, ainsi que les éventuelles erreurs ; cette section précise quels autres serveurs restent connectés |

721| `readMcpResource(serverName, uri)` | *Alpha.* Lit une ressource MCP Apps `ui://` depuis un serveur MCP connecté afin que votre application puisse afficher le widget d'un outil. Se résout avec un [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse). Nécessite l'Agent SDK TypeScript v0.3.280 ou ultérieure |721| `readMcpResource(serverName, uri)` | *Alpha.* Lit une ressource MCP Apps `ui://` depuis un serveur MCP connecté afin que votre application puisse afficher le widget d'un outil. Se résout avec un [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse). Nécessite l'Agent SDK TypeScript v0.3.280 ou ultérieure |

722| `streamInput(stream)` | Envoyer en flux des messages d'entrée à la requête pour les conversations multi-tours |722| `streamInput(stream)` | Envoyer en flux des messages d'entrée à la requête pour les conversations multi-tours |

723| `stopTask(taskId)` | Arrêter une tâche en arrière-plan en cours d'exécution par son identifiant |723| `stopTask(taskId)` | Arrêter une tâche en arrière-plan en cours d'exécution par son identifiant |


1337| `mcpServer` | `{ name: string; source: string }` | Pour un outil `mcp__*`, le serveur MCP qui le fournit et l'origine de la définition de ce serveur, avec les champs de [`McpServerProvenance`](#mcpserverprovenance). Absent pour les autres outils. Nécessite Agent SDK v0.3.274 ou ultérieur |1337| `mcpServer` | `{ name: string; source: string }` | Pour un outil `mcp__*`, le serveur MCP qui le fournit et l'origine de la définition de ce serveur, avec les champs de [`McpServerProvenance`](#mcpserverprovenance). Absent pour les autres outils. Nécessite Agent SDK v0.3.274 ou ultérieur |

1338| `decisionReason` | `string` | Explique pourquoi cette demande de permission a été déclenchée |1338| `decisionReason` | `string` | Explique pourquoi cette demande de permission a été déclenchée |

1339| `defaultToNo` | `boolean` | Lorsque `true`, une seule frappe accidentelle ne doit pas approuver cette demande : ouvrez votre demande sur son option de refus, ne présélectionnez pas l'approbation et ne proposez aucun raccourci d'approbation à une touche. Nécessite Agent SDK v0.3.268 ou ultérieur |1339| `defaultToNo` | `boolean` | Lorsque `true`, une seule frappe accidentelle ne doit pas approuver cette demande : ouvrez votre demande sur son option de refus, ne présélectionnez pas l'approbation et ne proposez aucun raccourci d'approbation à une touche. Nécessite Agent SDK v0.3.268 ou ultérieur |

1340| `suppressAlwaysAllowRule` | `boolean` | Lorsque `true`, ne proposez pas de choix persistant « toujours autoriser » pour cette demande, car la règle qu'il écrirait accorderait davantage que l'action propre à la demande. Nécessite Agent SDK v0.3.268 ou ultérieur |1340| `suppressAlwaysAllowRule` | `boolean` | Lorsque `true`, ne proposez pas de choix « toujours autoriser » persistant pour cette demande. Nécessite Agent SDK v0.3.268 ou une version ultérieure |

1341| `toolUseID` | `string` | Identifiant unique de cet appel d'outil spécifique dans le message de l'assistant |1341| `toolUseID` | `string` | Identifiant unique de cet appel d'outil spécifique dans le message de l'assistant |

1342| `agentID` | `string` | Si l'exécution a lieu dans un sous-agent, l'ID du sous-agent |1342| `agentID` | `string` | Si l'exécution a lieu dans un sous-agent, l'ID du sous-agent |

1343| `requestId` | `string` | Le `request_id` de l'enveloppe `control_request`. Une `control_response` que votre application envoie en dehors du SDK, comme un HTTP POST signé, doit renvoyer cette valeur afin que le processus Claude Code puisse associer la réponse à la requête |1343| `requestId` | `string` | Le `request_id` de l'enveloppe `control_request`. Une `control_response` que votre application envoie en dehors du SDK, comme un HTTP POST signé, doit renvoyer cette valeur afin que le processus Claude Code puisse associer la réponse à la requête |


5532 5532 

5533Lorsque vous appelez `setMcpServers()`, Claude Code applique ces règles :5533Lorsque vous appelez `setMcpServers()`, Claude Code applique ces règles :

5534 5534 

5535* **Serveurs que l'appel ne nomme pas** : Claude Code maintient les serveurs fournis par plugin en cours d'exécution. Nécessite Agent SDK v0.3.210 ou version ultérieure.5535* **Serveurs que l'appel ne nomme pas** : en dehors d'une [session cloud](/docs/fr/claude-code-on-the-web), Claude Code déconnecte les serveurs qu'un appel `setMcpServers()` antérieur a ajoutés ainsi que les serveurs SDK en processus, et les liste dans `removed`. Les autres serveurs continuent de s'exécuter et ne sont pas listés dans `removed`, parmi lesquels les serveurs stdio, HTTP et SSE de l'option [`mcpServers`](#options), les serveurs des fichiers de paramètres et les serveurs fournis par plugin.

5536* **Serveurs que l'appel nomme** : à l'exception des serveurs intégrés que l'interface de ligne de commande a démarrés au démarrage, Claude Code remplace un serveur en cours d'exécution uniquement lorsque sa configuration diffère de celle que vous avez transmise.5536* **Serveurs que l'appel nomme** : Claude Code remplace un serveur stdio, HTTP ou SSE qu'un appel `setMcpServers()` antérieur a ajouté uniquement lorsque sa configuration diffère de celle que vous avez transmise. Un serveur SDK en processus déjà enregistré sous ce nom reste tel quel ; pour en remplacer un, omettez-le d'un appel et ajoutez-le dans le suivant.

5537* **Serveurs intégrés que l'interface de ligne de commande a démarrés au démarrage** : si l'appel en nomme un, Claude Code supprime cette entrée et la signale dans `errors`.5537* **Serveurs intégrés que l'interface de ligne de commande a démarrés au démarrage** : si l'appel en nomme un, Claude Code supprime cette entrée et la signale dans `errors`.

5538 5538 

5539La promesse se résout après que les serveurs stdio, HTTP et SSE nouvellement ajoutés se connectent ou échouent, donc les outils des serveurs qui se sont connectés sont disponibles au tour suivant.5539La promesse se résout après que les serveurs stdio, HTTP et SSE nouvellement ajoutés se connectent ou échouent, donc les outils des serveurs qui se sont connectés sont disponibles au tour suivant.

agent-view.md +1 −0

Details

819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Supprimer une session dont la suppression a été refusée en raison de commits non poussés, en supprimant la worktree ainsi que sa branche et ses commits. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.260 ou ultérieur |819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Supprimer une session dont la suppression a été refusée en raison de commits non poussés, en supprimant la worktree ainsi que sa branche et ses commits. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.260 ou ultérieur |

820| `claude rm <id> --force-remove-worktree <worktree-id>` | Supprimer une session dont la suppression a été refusée parce que git ou le hook `WorktreeRemove` n'a pas pu supprimer sa worktree, en supprimant le répertoire worktree de toute façon et en laissant sa branche dans le dépôt. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.268 ou ultérieur |820| `claude rm <id> --force-remove-worktree <worktree-id>` | Supprimer une session dont la suppression a été refusée parce que git ou le hook `WorktreeRemove` n'a pas pu supprimer sa worktree, en supprimant le répertoire worktree de toute façon et en laissant sa branche dans le dépôt. Passez la valeur exacte que le refus a affichée ; voir [Ce que la suppression d'une session supprime](#what-deleting-a-session-removes). Nécessite v2.1.268 ou ultérieur |

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

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

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

823 824 

824`claude attach` et `claude logs` peuvent prendre une partie du nom d'une session en cours d'exécution à la place de l'ID, comme dans `claude logs "auth refactor"`. Passer un nom nécessite Claude Code v2.1.290 ou ultérieur.825`claude attach` et `claude logs` peuvent prendre une partie du nom d'une session en cours d'exécution à la place de l'ID, comme dans `claude logs "auth refactor"`. Passer un nom nécessite Claude Code v2.1.290 ou ultérieur.

agents.md +1 −1

Details

20 20 

21Trois autres outils soutiennent ce travail sans être une façon d'exécuter des agents eux-mêmes :21Trois autres outils soutiennent ce travail sans être une façon d'exécuter des agents eux-mêmes :

22 22 

23* [Les worktrees](/docs/fr/worktrees) donnent à chaque session un checkout git séparé, de sorte que les sessions parallèles ne modifient jamais les mêmes fichiers. Utilisez-les pour les sessions que vous exécutez vous-même. Une session que vous dispatchez depuis la vue agent [se déplace dans son propre worktree avant qu'elle ne modifie les fichiers](/docs/fr/agent-view#how-file-edits-are-isolated), et les sous-agents que vous générez peuvent chacun en obtenir un aussi.23* [Les worktrees](/docs/fr/worktrees) donnent à chaque session un checkout git séparé, de sorte que les sessions parallèles modifient chacune leur propre copie des fichiers. Utilisez-les pour les sessions que vous exécutez vous-même. Une session que vous dispatchez depuis la vue agent [se déplace dans son propre worktree avant qu'elle ne modifie les fichiers](/docs/fr/agent-view#how-file-edits-are-isolated), et les sous-agents que vous générez peuvent chacun en obtenir un aussi.

24* [La messagerie inter-sessions](/docs/fr/cross-session-messaging) permet à Claude de lister et de communiquer avec vos autres sessions Claude Code sur cette machine, sur une autre machine ou [dans le cloud](/docs/fr/claude-code-on-the-web), de sorte que les sessions que vous exécutez vous-même peuvent transmettre les résultats et l'état entre elles.24* [La messagerie inter-sessions](/docs/fr/cross-session-messaging) permet à Claude de lister et de communiquer avec vos autres sessions Claude Code sur cette machine, sur une autre machine ou [dans le cloud](/docs/fr/claude-code-on-the-web), de sorte que les sessions que vous exécutez vous-même peuvent transmettre les résultats et l'état entre elles.

25* [`/batch`](/docs/fr/commands) est une [compétence](/docs/fr/skills) qui a Claude diviser un grand changement en 5 à 30 sous-agents isolés par worktree. C'est une utilisation packagée de sous-agents et de worktrees, pas un style de coordination séparé.25* [`/batch`](/docs/fr/commands) est une [compétence](/docs/fr/skills) qui a Claude diviser un grand changement en 5 à 30 sous-agents isolés par worktree. C'est une utilisation packagée de sous-agents et de worktrees, pas un style de coordination séparé.

26 26 

Details

75| - | - |75| - | - |

76| Claude Code v2.1.195 ou ultérieur | La sous-commande `claude gateway` et le flux de connexion de la passerelle sont livrés dans v2.1.195. Les versions publiques antérieures ne les incluent pas. La machine exécutant le serveur de passerelle et la machine de chaque développeur doivent être sur v2.1.195 ou ultérieur ; exécutez `claude update` pour obtenir la dernière version. L'[amont Claude Platform on AWS](/docs/fr/claude-apps-gateway-config#claude-platform-on-aws) nécessite Claude Code v2.1.198 ou ultérieur sur le serveur de passerelle. |76| Claude Code v2.1.195 ou ultérieur | La sous-commande `claude gateway` et le flux de connexion de la passerelle sont livrés dans v2.1.195. Les versions publiques antérieures ne les incluent pas. La machine exécutant le serveur de passerelle et la machine de chaque développeur doivent être sur v2.1.195 ou ultérieur ; exécutez `claude update` pour obtenir la dernière version. L'[amont Claude Platform on AWS](/docs/fr/claude-apps-gateway-config#claude-platform-on-aws) nécessite Claude Code v2.1.198 ou ultérieur sur le serveur de passerelle. |

77| Fournisseur d'identité OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, ou Dex, ou tout autre IdP conforme à OIDC comme PingFederate. La passerelle exécute la découverte OIDC standard et le flux de code d'autorisation contre elle. SAML et LDAP ne sont pas supportés. |77| Fournisseur d'identité OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, ou Dex, ou tout autre IdP conforme à OIDC comme PingFederate. La passerelle exécute la découverte OIDC standard et le flux de code d'autorisation contre elle. SAML et LDAP ne sont pas supportés. |

78| PostgreSQL 14 ou ultérieur | Soutient le flux de connexion d'appareil, où le rappel du navigateur écrit et l'interface de ligne de commande d'interrogation lit, plus les compteurs de limite de débit. Tout Postgres géré fonctionne, y compris le plus petit niveau. Sans limites de dépenses configurées, la passerelle stocke quelques Ko d'état d'authentification de courte durée ; avec les [limites de dépenses](/docs/fr/claude-apps-gateway-spend-limits), elle détient également des tables de dépenses durables, d'audit et d'identité qui doivent être sauvegardées. TLS via `?sslmode=require` est recommandé. |78| PostgreSQL 11 ou ultérieur | Soutient le flux de connexion d'appareil et les compteurs de limite de débit. Un service PostgreSQL géré fonctionne, y compris le plus petit niveau ; voir [quelles bases de données sont prises en charge](/docs/fr/claude-apps-gateway-deploy#postgres). Avec les [limites de dépenses](/docs/fr/claude-apps-gateway-spend-limits), la base de données détient également des tables de dépenses durables, d'audit et d'identité qui doivent être sauvegardées. TLS via `?sslmode=require` est recommandé. PostgreSQL 11, 12 et 13 nécessitent Claude Code v2.1.290 ou ultérieur sur le serveur de passerelle. Le projet PostgreSQL ne maintient plus ces versions ; utilisez donc une version plus récente lorsque c'est possible. |

79| Amont du modèle | Identifiants Amazon Bedrock, identifiants Claude Platform on AWS, identifiants Google Cloud, une ressource Microsoft Foundry, ou une clé API Anthropic. Plusieurs ammonts sont supportés avec basculement. |79| Amont du modèle | Identifiants Amazon Bedrock, identifiants Claude Platform on AWS, identifiants Google Cloud, une ressource Microsoft Foundry, ou une clé API Anthropic. Plusieurs ammonts sont supportés avec basculement. |

80| HTTPS | La passerelle doit être accessible via `https://` à partir des ordinateurs portables des développeurs et de tout navigateur utilisé pour la connexion ; la passerelle sert la page de vérification d'appareil sur le même écouteur. Fournissez un certificat TLS via `listen.tls` ou exécutez derrière un ingress qui termine TLS, et définissez `listen.public_url` à l'origine externe dans les deux cas. À `/login`, Claude Code accepte une origine `http://` simple uniquement quand l'hôte de la passerelle est une boucle locale : `localhost`, `127.0.0.1`, ou `::1`. |80| HTTPS | La passerelle doit être accessible via `https://` à partir des ordinateurs portables des développeurs et de tout navigateur utilisé pour la connexion ; la passerelle sert la page de vérification d'appareil sur le même écouteur. Fournissez un certificat TLS via `listen.tls` ou exécutez derrière un ingress qui termine TLS, et définissez `listen.public_url` à l'origine externe dans les deux cas. À `/login`, Claude Code accepte une origine `http://` simple uniquement quand l'hôte de la passerelle est une boucle locale : `localhost`, `127.0.0.1`, ou `::1`. |

81| Adresse de réseau privé | À `/login`, Claude Code exige que le nom d'hôte ou l'adresse IP de la passerelle ne se résolve qu'à des adresses privées : RFC 1918, link-local, CGNAT `100.64.0.0/10`, ULA IPv6 `fc00::/7`, ou boucle locale. Pour une passerelle que vous hébergez, toute adresse publique en dehors d'un bloc que vous déclarez est rejetée ; voir le [modèle de menace](/docs/fr/claude-apps-gateway-deploy#threat-model-summary) dans le guide de déploiement. Si les machines des développeurs acheminent HTTPS via un proxy d'entreprise, la connexion exige également que l'hôte proxy se résolve à des adresses privées ; s'il ne le fait pas, ajoutez l'hôte de la passerelle à `NO_PROXY` pour que l'interface de ligne de commande se connecte directement. Si votre réseau interne est numéroté à partir d'un espace IPv4 public que votre organisation possède, [déclarez ces blocs](#allow-a-gateway-on-public-address-space-you-own) pour que `/login` accepte une passerelle là-bas. |81| Adresse de réseau privé | À `/login`, Claude Code exige que le nom d'hôte ou l'adresse IP de la passerelle ne se résolve qu'à des adresses privées : RFC 1918, link-local, CGNAT `100.64.0.0/10`, ULA IPv6 `fc00::/7`, ou boucle locale. Pour une passerelle que vous hébergez, toute adresse publique en dehors d'un bloc que vous déclarez est rejetée ; voir le [modèle de menace](/docs/fr/claude-apps-gateway-deploy#threat-model-summary) dans le guide de déploiement. Si les machines des développeurs acheminent HTTPS via un proxy d'entreprise, la connexion exige également que l'hôte proxy se résolve à des adresses privées ; s'il ne le fait pas, ajoutez l'hôte de la passerelle à `NO_PROXY` pour que l'interface de ligne de commande se connecte directement. Si votre réseau interne est numéroté à partir d'un espace IPv4 public que votre organisation possède, [déclarez ces blocs](#allow-a-gateway-on-public-address-space-you-own) pour que `/login` accepte une passerelle là-bas. |


91 </Step>91 </Step>

92 92 

93 <Step title="Provisionner une base de données PostgreSQL">93 <Step title="Provisionner une base de données PostgreSQL">

94 Tout Postgres 14 ou ultérieur fonctionne, y compris le plus petit niveau géré. La passerelle exécute ses propres migrations de schéma au démarrage, donc le rôle de la base de données a besoin de droits pour créer et modifier les tables ; voir [`store`](/docs/fr/claude-apps-gateway-config#store).94 Utilisez PostgreSQL 11 ou ultérieur. Le plus petit niveau géré suffit. La passerelle exécute ses propres migrations de schéma au démarrage, donc le rôle de la base de données a besoin de droits pour créer et modifier les tables ; voir [`store`](/docs/fr/claude-apps-gateway-config#store).

95 </Step>95 </Step>

96 96 

97 <Step title="Écrivez gateway.yaml">97 <Step title="Écrivez gateway.yaml">

Details

158La passerelle lit la clé et le certificat une seule fois au démarrage, donc un fichier modifié ne prend effet qu'après un redémarrage. Effectuez la rotation dans cet ordre afin qu'aucune requête de jeton ne présente un certificat dont le fournisseur d'identité ne dispose pas :158La passerelle lit la clé et le certificat une seule fois au démarrage, donc un fichier modifié ne prend effet qu'après un redémarrage. Effectuez la rotation dans cet ordre afin qu'aucune requête de jeton ne présente un certificat dont le fournisseur d'identité ne dispose pas :

159 159 

1601. Téléversez le nouveau certificat vers le fournisseur d'identité à côté de l'ancien.1601. Téléversez le nouveau certificat vers le fournisseur d'identité à côté de l'ancien.

1612. Remplacez les fichiers de clé et de certificat que `gateway.yaml` charge, puis redémarrez la passerelle.1612. Remplacez les fichiers de clé et de certificat que `gateway.yaml` charge, puis redémarrez la passerelle. Si vous exécutez plusieurs répliques, un [redémarrage progressif](/docs/fr/claude-apps-gateway-deploy#upgrades) fonctionne, car le fournisseur d'identité dispose des deux certificats jusqu'à ce que vous supprimiez l'ancien.

1623. Supprimez l'ancien certificat du fournisseur d'identité.1623. Une fois que chaque réplique a redémarré, supprimez l'ancien certificat du fournisseur d'identité.

163 163 

164<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

165 Demandes du fournisseur d'identité via un proxy avant165 Demandes du fournisseur d'identité via un proxy avant


227 227 

228| Champ | Obligatoire | Description |228| Champ | Obligatoire | Description |

229| - | - | - |229| - | - | - |

230| `postgres_url` | Oui | URL `postgres://` ou `postgresql://`. Obligatoire : le rendez-vous de subvention d'appareil, où le rappel du navigateur écrit et le CLI d'interrogation lit, a besoin d'un état entre répliques. La passerelle exécute ses propres migrations de schéma au démarrage et à la mise à niveau, donc le rôle a besoin de droits pour créer et modifier les tables sur le schéma cible. Voir [Mises à niveau](/docs/fr/claude-apps-gateway-deploy#upgrades) et [Postgres](/docs/fr/claude-apps-gateway-deploy#postgres). |230| `postgres_url` | Oui | URL `postgres://` ou `postgresql://` avec un seul hôte, et non une liste séparée par des virgules. La passerelle exécute ses propres migrations de schéma au démarrage et à la mise à niveau, donc le rôle a besoin de droits pour créer et modifier les tables sur le schéma cible. Voir [Mises à niveau](/docs/fr/claude-apps-gateway-deploy#upgrades) et [Postgres](/docs/fr/claude-apps-gateway-deploy#postgres). |

231| `username` | Non | Remplace l'utilisateur dans `postgres_url` |231| `username` | Non | Remplace l'utilisateur dans `postgres_url` |

232| `password` | Non | Identifiant de base de données. Définissez-le ici plutôt que dans `postgres_url` pour que l'identifiant reste hors de l'URL. Accepte n'importe quel caractère et a priorité sur les identifiants d'URL. |232| `password` | Non | Identifiant de base de données. Définissez-le ici plutôt que dans `postgres_url` pour que l'identifiant reste hors de l'URL. Accepte n'importe quel caractère et a priorité sur les identifiants d'URL. |

233| `max_connections` | Non | Taille du pool de connexions Postgres par réplique. Par défaut `5`, ce qui est conservateur et convivial pour les bases de données partagées. Avec les [limites de dépenses](#admin) activées, le chemin chaud effectue quelques opérations par demande d'inférence, donc augmentez-le pour une base de données dédiée sous charge, et gardez répliques × ceci en dessous du `max_connections` de la base de données. |233| `max_connections` | Non | Taille du pool de connexions Postgres par réplique. Par défaut `5`, ce qui est conservateur et convivial pour les bases de données partagées. Avec les [limites de dépenses](#admin) activées, le chemin chaud effectue quelques opérations par demande d'inférence, donc augmentez-le pour une base de données dédiée sous charge, et gardez répliques × ceci en dessous du `max_connections` de la base de données. |

Details

249 Postgres249 Postgres

250</h3>250</h3>

251 251 

252La passerelle stocke son état dans une base de données PostgreSQL :

253 

254* **Base de données** : PostgreSQL lui-même, auto-hébergé ou managé, en [version minimale](/docs/fr/claude-apps-gateway#prerequisites) ou ultérieure. Les bases de données qui implémentent uniquement le protocole Postgres, comme les bases de données SQL distribuées, ne sont pas prises en charge.

255* **Adresse** : `store.postgres_url` accepte un seul hôte. Si la base de données comporte plusieurs nœuds, utilisez l'adresse placée devant eux, comme l'endpoint de votre service managé, un équilibreur de charge ou une IP virtuelle. Définissez une [période de grâce de disponibilité](#readiness-grace-period) plus longue que la durée d'un basculement.

256 

252La passerelle détient cinq tables de données plus une table `_migrations`, toutes créées par ses migrations au démarrage :257La passerelle détient cinq tables de données plus une table `_migrations`, toutes créées par ses migrations au démarrage :

253 258 

254| Table | Contenu | Rétention |259| Table | Contenu | Rétention |


396| CLI `/login` : `Could not resolve the configured HTTP proxy` | Le nom d'hôte dans `HTTPS_PROXY` ou `HTTP_PROXY` ne se résout pas à partir de la machine du développeur, généralement parce qu'il n'est pas connecté au réseau d'entreprise | Demandez au développeur de se connecter à votre réseau ou VPN et de réessayer, ou corrigez l'URL du proxy |401| CLI `/login` : `Could not resolve the configured HTTP proxy` | Le nom d'hôte dans `HTTPS_PROXY` ou `HTTP_PROXY` ne se résout pas à partir de la machine du développeur, généralement parce qu'il n'est pas connecté au réseau d'entreprise | Demandez au développeur de se connecter à votre réseau ou VPN et de réessayer, ou corrigez l'URL du proxy |

397| CLI `/login` : `Could not resolve gateway host <host>` | La machine ne peut pas résoudre le nom DNS interne de la passerelle, généralement parce qu'elle n'est pas sur le réseau d'entreprise | Demandez au développeur de se connecter à votre réseau ou VPN, puis de réessayer `/login` |402| CLI `/login` : `Could not resolve gateway host <host>` | La machine ne peut pas résoudre le nom DNS interne de la passerelle, généralement parce qu'elle n'est pas sur le réseau d'entreprise | Demandez au développeur de se connecter à votre réseau ou VPN, puis de réessayer `/login` |

398| Le démarrage se termine avec une erreur de validation de configuration nommant `store.postgres_url` | Aucun Postgres configuré ; la passerelle nécessite Postgres | Définissez `store.postgres_url`. Pour le développement local, utilisez un conteneur jetable : `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |403| Le démarrage se termine avec une erreur de validation de configuration nommant `store.postgres_url` | Aucun Postgres configuré ; la passerelle nécessite Postgres | Définissez `store.postgres_url`. Pour le développement local, utilisez un conteneur jetable : `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

404| Le démarrage se termine : `store.postgres_url in <path> is not a URL the gateway can read`, ou avant v2.1.290 un simple `Invalid URL` ou `URI error` | L'URL ne peut pas être analysée, par exemple parce qu'elle liste plus d'un hôte ou que son mot de passe contient un `/`, `?`, `#` ou `%` non encodé | Nommez [un seul hôte](#postgres), et déplacez le mot de passe dans [`store.password`](/docs/fr/claude-apps-gateway-config#store) |

399| Le démarrage se termine : `requires the native binary` | Exécution sous Node au lieu du binaire natif | Installez Claude Code avec l'une des [méthodes d'installation autonome](/docs/fr/setup) |405| Le démarrage se termine : `requires the native binary` | Exécution sous Node au lieu du binaire natif | Installez Claude Code avec l'une des [méthodes d'installation autonome](/docs/fr/setup) |

400| Le démarrage se termine avec une erreur de découverte OIDC après `config.load` | `oidc.issuer` inaccessible, ou chaîne TLS non approuvée | Vérifiez que l'émetteur est accessible à partir du pod et sert `/.well-known/openid-configuration`. Définissez `ca_cert_pem` pour l'infrastructure à clé publique privée. Si le pod atteint l'IdP uniquement via un proxy de transfert, définissez [`oidc.use_proxy: true`](/docs/fr/claude-apps-gateway-config#idp-requests-through-a-forward-proxy) ; sur les versions antérieures à v2.1.227, donnez au pod une route directe vers chacun des endpoints de l'IdP à la place. Si le pod ne peut pas non plus résoudre le nom d'hôte de l'IdP, ou le proxy refuse `CONNECT` à une adresse IP, voir [Sortie proxy uniquement](/docs/fr/claude-apps-gateway-config#proxy-only-egress), qui nécessite v2.1.277 ou ultérieur. |406| Le démarrage se termine avec une erreur de découverte OIDC après `config.load` | `oidc.issuer` inaccessible, ou chaîne TLS non approuvée | Vérifiez que l'émetteur est accessible à partir du pod et sert `/.well-known/openid-configuration`. Définissez `ca_cert_pem` pour l'infrastructure à clé publique privée. Si le pod atteint l'IdP uniquement via un proxy de transfert, définissez [`oidc.use_proxy: true`](/docs/fr/claude-apps-gateway-config#idp-requests-through-a-forward-proxy) ; sur les versions antérieures à v2.1.227, donnez au pod une route directe vers chacun des endpoints de l'IdP à la place. Si le pod ne peut pas non plus résoudre le nom d'hôte de l'IdP, ou le proxy refuse `CONNECT` à une adresse IP, voir [Sortie proxy uniquement](/docs/fr/claude-apps-gateway-config#proxy-only-egress), qui nécessite v2.1.277 ou ultérieur. |

401| Le démarrage se termine avec une erreur de permission Postgres | Le rôle de base de données manque de droits DDL sur son schéma | Accordez au rôle `CREATE` sur le schéma de la passerelle pour qu'il puisse créer et modifier ses tables au démarrage |407| Le démarrage se termine avec une erreur de permission Postgres | Le rôle de base de données manque de droits DDL sur son schéma | Accordez au rôle `CREATE` sur le schéma de la passerelle pour qu'il puisse créer et modifier ses tables au démarrage |

402| Journal : `could not connect to Postgres at boot, attempt 1 of 3` | La base de données n'était pas accessible lorsque la passerelle a démarré, par exemple sur une instance froide dont le réseau est encore en cours de configuration | Si la passerelle termine ensuite le démarrage, aucune action n'est nécessaire. Lorsque la base de données n'est pas accessible, la passerelle essaie la connexion trois fois, deux secondes d'intervalle, avant de se terminer. Si elle se termine avec `could not connect to Postgres`, vérifiez `store.postgres_url` et le chemin réseau vers la base de données. Si les tentatives expirent plutôt que d'être refusées, augmentez [`store.connect_timeout_seconds`](/docs/fr/claude-apps-gateway-config#store) pour donner à chacune plus de temps. |408| Journal : `could not connect to Postgres at boot, attempt 1 of 3` | La base de données n'était pas accessible lorsque la passerelle a démarré, par exemple sur une instance froide dont le réseau est encore en cours de configuration | Si la passerelle termine ensuite le démarrage, aucune action n'est nécessaire. Lorsque la base de données n'est pas accessible, la passerelle essaie la connexion trois fois, deux secondes d'intervalle, avant de se terminer. Si elle se termine avec `could not connect to Postgres`, vérifiez `store.postgres_url`, notamment qu'elle nomme un seul hôte, ainsi que le chemin réseau vers la base de données. Si les tentatives expirent plutôt que d'être refusées, augmentez [`store.connect_timeout_seconds`](/docs/fr/claude-apps-gateway-config#store) pour donner à chacune plus de temps. |

403| `/oauth/callback` affiche « Sign-in could not be completed » | Domaine de courrier électronique rejeté, validation id\_token échouée, ou `email_verified` est explicitement `false`, que la passerelle rejette toujours sans remplacement | Vérifiez `allowed_email_domains` et que l'IdP renvoie une réclamation `email` vérifiée. Pour `email_verified: false`, corrigez la vérification côté IdP. Si votre IdP émet le courrier électronique sous un nom de réclamation différent, définissez `oidc.email_claim`. |409| `/oauth/callback` affiche « Sign-in could not be completed » | Domaine de courrier électronique rejeté, validation id\_token échouée, ou `email_verified` est explicitement `false`, que la passerelle rejette toujours sans remplacement | Vérifiez `allowed_email_domains` et que l'IdP renvoie une réclamation `email` vérifiée. Pour `email_verified: false`, corrigez la vérification côté IdP. Si votre IdP émet le courrier électronique sous un nom de réclamation différent, définissez `oidc.email_claim`. |

404| Journal : `token exchange failed request_id=<id>: id_token missing email claim` | L'IdP n'inclut pas `email` dans l'id\_token par défaut. Ce rejet ne se déclenche que lorsque `allowed_email_domains` est défini ; sans lui, un courrier électronique manquant crée une session sans courrier électronique | Configurez l'IdP pour émettre `email` dans l'id\_token. Okta : ajoutez `email` aux réclamations de jeton d'ID d'un serveur d'autorisation personnalisé. Entra : ajoutez `email` comme réclamation facultative sur l'enregistrement de l'application. PingFederate : activez une politique OpenID Connect qui émet `email`. Si l'IdP sert `email` à partir de l'endpoint userinfo mais ne l'inclura pas dans l'id\_token, comme le serveur d'autorisation org Okta, définissez `oidc.userinfo_fallback: true`. |410| Journal : `token exchange failed request_id=<id>: id_token missing email claim` | L'IdP n'inclut pas `email` dans l'id\_token par défaut. Ce rejet ne se déclenche que lorsque `allowed_email_domains` est défini ; sans lui, un courrier électronique manquant crée une session sans courrier électronique | Configurez l'IdP pour émettre `email` dans l'id\_token. Okta : ajoutez `email` aux réclamations de jeton d'ID d'un serveur d'autorisation personnalisé. Entra : ajoutez `email` comme réclamation facultative sur l'enregistrement de l'application. PingFederate : activez une politique OpenID Connect qui émet `email`. Si l'IdP sert `email` à partir de l'endpoint userinfo mais ne l'inclura pas dans l'id\_token, comme le serveur d'autorisation org Okta, définissez `oidc.userinfo_fallback: true`. |

405| Journal : `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, et les développeurs voient `Cloud gateway session expired` tous les `session.ttl_hours` | L'IdP a accepté le jeton d'actualisation mais n'a renvoyé aucun id\_token avec lui, donc la passerelle a demandé à l'endpoint userinfo de l'IdP les réclamations de l'utilisateur. L'IdP a rejeté le jeton d'accès actualisé là. La passerelle répond `temporarily_unavailable`, donc Claude Code conserve le jeton d'actualisation mais ne peut pas renouveler la session. Les versions de passerelle antérieures à v2.1.260 enregistrent la même ligne sans le détail `(at …)`. | Définissez [`oidc.scope_on_refresh: true`](/docs/fr/claude-apps-gateway-config#oidc), disponible dans la passerelle v2.1.260 ou ultérieure, pour que la demande d'actualisation demande à nouveau `openid`. Certains IdP, comme Okta, renvoient un id\_token lors de l'actualisation uniquement lorsqu'on le demande. Sur PingFederate, activez **Return ID Token On Refresh Grant** sous **Applications > OAuth > OpenID Connect Policy Management** à la place. La clé ne change pas le comportement de PingFederate. Pour les autres IdP qui l'omettent toujours, vérifiez si l'endpoint userinfo accepte les jetons d'accès émis par une actualisation. En tant que solution temporaire, augmentez [`session.ttl_hours`](/docs/fr/claude-apps-gateway-config#session). Voir [Configuration du fournisseur d'identité](#identity-provider-setup) pour le compromis de déprovisionnement. |411| Journal : `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, et les développeurs voient `Cloud gateway session expired` tous les `session.ttl_hours` | L'IdP a accepté le jeton d'actualisation mais n'a renvoyé aucun id\_token avec lui, donc la passerelle a demandé à l'endpoint userinfo de l'IdP les réclamations de l'utilisateur. L'IdP a rejeté le jeton d'accès actualisé là. La passerelle répond `temporarily_unavailable`, donc Claude Code conserve le jeton d'actualisation mais ne peut pas renouveler la session. Les versions de passerelle antérieures à v2.1.260 enregistrent la même ligne sans le détail `(at …)`. | Définissez [`oidc.scope_on_refresh: true`](/docs/fr/claude-apps-gateway-config#oidc), disponible dans la passerelle v2.1.260 ou ultérieure, pour que la demande d'actualisation demande à nouveau `openid`. Certains IdP, comme Okta, renvoient un id\_token lors de l'actualisation uniquement lorsqu'on le demande. Sur PingFederate, activez **Return ID Token On Refresh Grant** sous **Applications > OAuth > OpenID Connect Policy Management** à la place. La clé ne change pas le comportement de PingFederate. Pour les autres IdP qui l'omettent toujours, vérifiez si l'endpoint userinfo accepte les jetons d'accès émis par une actualisation. En tant que solution temporaire, augmentez [`session.ttl_hours`](/docs/fr/claude-apps-gateway-config#session). Voir [Configuration du fournisseur d'identité](#identity-provider-setup) pour le compromis de déprovisionnement. |

Details

169 </Step>169 </Step>

170 170 

171 <Step title="Provisionner Amazon RDS pour PostgreSQL">171 <Step title="Provisionner Amazon RDS pour PostgreSQL">

172 L'instance s'exécute dans les sous-réseaux privés sans adresse publique et avec le chiffrement du stockage activé. La version du moteur est épinglée à Postgres 16, ce qui satisfait le plancher pris en charge de PostgreSQL 14 de la passerelle et garantit que la famille du groupe de paramètres ci-dessous correspond à l'instance.172 L'instance exécute Postgres 16 dans les sous-réseaux privés, sans adresse publique et avec le chiffrement du stockage activé.

173 173 

174 Tout d'abord, créez le groupe de sous-réseaux qui place la base de données dans les sous-réseaux privés, et un groupe de paramètres avec `rds.force_ssl=1` pour que le serveur rejette les connexions en texte brut. La version du moteur est épinglée une fois car la famille du groupe de paramètres doit correspondre à la version majeure du moteur que l'instance exécute :174 Tout d'abord, créez le groupe de sous-réseaux qui place la base de données dans les sous-réseaux privés, et un groupe de paramètres avec `rds.force_ssl=1` pour que le serveur rejette les connexions en texte brut. La version du moteur est épinglée une fois car la famille du groupe de paramètres doit correspondre à la version majeure du moteur que l'instance exécute :

175 175 


203 203 

204 L'argument littéral `--master-user-password` est visible dans la table des processus et dans les journaux d'audit/EDR pendant l'exécution de la commande, la même exposition que celle couverte par la note de l'étape des secrets. Sur un hôte partagé ou surveillé, passez le mot de passe via `--cli-input-json` à partir d'un fichier `0600` à la place, de la même façon que le `setup.sh` du bundle.204 L'argument littéral `--master-user-password` est visible dans la table des processus et dans les journaux d'audit/EDR pendant l'exécution de la commande, la même exposition que celle couverte par la note de l'étape des secrets. Sur un hôte partagé ou surveillé, passez le mot de passe via `--cli-input-json` à partir d'un fichier `0600` à la place, de la même façon que le `setup.sh` du bundle.

205 205 

206 Attendez que l'instance soit opérationnelle, ce qui peut prendre plusieurs minutes, puis lisez son point de terminaison privé et assemblez la chaîne de connexion que la passerelle utilisera :206 Attendez que l'instance soit opérationnelle, ce qui peut prendre plusieurs minutes, puis lisez son endpoint privé et assemblez la chaîne de connexion que la passerelle utilisera :

207 207 

208 ```bash theme={null}208 ```bash theme={null}

209 aws rds wait db-instance-available --db-instance-identifier claude-gateway-db209 aws rds wait db-instance-available --db-instance-identifier claude-gateway-db


212 GATEWAY_POSTGRES_URL="postgres://gateway:${PGPASS}@${DB_HOST}:5432/claude_gateway?sslmode=verify-full"212 GATEWAY_POSTGRES_URL="postgres://gateway:${PGPASS}@${DB_HOST}:5432/claude_gateway?sslmode=verify-full"

213 ```213 ```

214 214 

215 `sslmode=verify-full` fait que la passerelle vérifie la chaîne du certificat du serveur RDS et le nom d'hôte, pas seulement le chiffrement. L'ancre de confiance est le [bundle de certificats AWS RDS](https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem), que l'étape de construction d'image ci-dessous copie à `/etc/claude/rds-global-bundle.pem` et approuve via `NODE_EXTRA_CA_CERTS`. N'ajoutez pas de paramètre `sslrootcert=` de style libpq à l'URL : le pilote de la passerelle lit uniquement `sslmode` à partir de la chaîne de requête et transmettrait `sslrootcert` à Postgres en tant que paramètre de démarrage, que le serveur rejette.215 `sslmode=verify-full` fait que la passerelle vérifie la chaîne du certificat du serveur RDS et le nom d'hôte, pas seulement le chiffrement. L'ancre de confiance est le [bundle de certificats AWS RDS](https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem), que l'étape de build d'image ci-dessous copie à `/etc/claude/rds-global-bundle.pem` et approuve via `NODE_EXTRA_CA_CERTS`. N'ajoutez pas de paramètre `sslrootcert=` de style libpq à l'URL : le pilote de la passerelle lit uniquement `sslmode` à partir de la chaîne de requête et transmettrait `sslrootcert` à Postgres en tant que paramètre de démarrage, que le serveur rejette.

216 216 

217 Le service ECS ou les pods EKS doivent s'exécuter dans ce VPC pour pouvoir atteindre le point de terminaison privé de l'instance, et le groupe de sécurité `claude-gateway-db` n'admet que le groupe de sécurité de la passerelle.217 Le service ECS ou les pods EKS doivent s'exécuter dans ce VPC pour pouvoir atteindre l'endpoint privé de l'instance, et le groupe de sécurité `claude-gateway-db` n'admet que le groupe de sécurité de la passerelle.

218 </Step>218 </Step>

219 219 

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

221 Le bloc `upstreams` pointe vers Bedrock avec `auth: {}`, donc la passerelle s'authentifie via la chaîne de credentials par défaut d'AWS à partir du rôle de tâche sur ECS ou du rôle IRSA sur EKS. Consultez la [référence de configuration](/docs/fr/claude-apps-gateway-config) pour chaque champ.221 Le bloc `upstreams` pointe vers Bedrock avec `auth: {}`, donc la passerelle s'authentifie via la chaîne d'identifiants par défaut d'AWS à partir du rôle de tâche sur ECS ou du rôle IRSA sur EKS. Consultez la [référence de configuration](/docs/fr/claude-apps-gateway-config) pour chaque champ.

222 222 

223 Deux champs `listen` décrivent ce qui est en face de la passerelle :223 Deux champs `listen` décrivent ce qui est en face de la passerelle :

224 224 

225 * `public_url` : l'origine `https://` externe, requise pour tout bind non-loopback ; consultez la [référence `listen`](/docs/fr/claude-apps-gateway-config#listen). La passerelle construit l'`redirect_uri` de l'IdP et son document de découverte uniquement à partir de cette valeur, jamais à partir des en-têtes `X-Forwarded-*`.225 * `public_url` : l'origine `https://` externe, requise pour tout bind non-loopback ; consultez la [référence `listen`](/docs/fr/claude-apps-gateway-config#listen). La passerelle construit l'`redirect_uri` de l'IdP et son document de découverte uniquement à partir de cette valeur, jamais à partir des en-têtes `X-Forwarded-*`.

226 * `trusted_proxies` : les plages source du frontal. La passerelle honore `X-Forwarded-For` uniquement lorsque le pair TCP est 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 adresses IP des développeurs au lieu de celle de l'équilibreur de charge.226 * `trusted_proxies` : les plages source du frontal. La passerelle honore `X-Forwarded-For` uniquement lorsque le pair TCP est 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 adresses IP des développeurs au lieu de celle de l'équilibreur de charge.

227 227 

228 Sur les deux pistes, le frontal est un ALB interne, qu'il soit créé directement ou par le contrôleur AWS Load Balancer, et les nœuds d'un ALB prennent des adresses à partir des sous-réseaux auxquels il est attaché, donc définissez `trusted_proxies` sur les CIDR de ces sous-réseaux. Cela approuve chaque hôte de ces sous-réseaux en tant que proxy. Gardez la source d'entrée de l'ALB, votre CIDR d'entreprise, de ne pas chevaucher, et ne partagez pas les sous-réseaux avec des charges de travail non fiables qui pourraient usurper les adresses IP des clients via `X-Forwarded-For`.228 Sur les deux pistes, le frontal est un ALB interne, qu'il soit créé directement ou par le contrôleur AWS Load Balancer, et les nœuds d'un ALB prennent des adresses à partir des sous-réseaux auxquels il est attaché, donc définissez `trusted_proxies` sur les CIDR de ces sous-réseaux. Cela approuve chaque hôte de ces sous-réseaux en tant que proxy. Veillez à ce que la source d'entrée de l'ALB, votre CIDR d'entreprise, ne les chevauche pas, et ne partagez pas les sous-réseaux avec des charges de travail non fiables qui pourraient usurper les adresses IP des clients via `X-Forwarded-For`.

229 229 

230 L'attribut de préservation du port client de l'ALB, `routing.http.xff_client_port.enabled`, peut rester à l'un ou l'autre paramètre : avec lui activé, l'ALB écrit le client comme `203.0.113.7:54321` ou `[2001:db8::1]:54321`, et la passerelle lit les deux avec le port supprimé.230 L'attribut de préservation du port client de l'ALB, `routing.http.xff_client_port.enabled`, peut rester à l'un ou l'autre paramètre : avec lui activé, l'ALB écrit le client comme `203.0.113.7:54321` ou `[2001:db8::1]:54321`, et la passerelle lit les deux avec le port supprimé.

231 231 


244 # Le serveur d'autorisation org Okta retourne un id_token mince qui omet244 # Le serveur d'autorisation org Okta retourne un id_token mince qui omet

245 # l'email et les groupes ; la passerelle les remplit à partir de /userinfo.245 # l'email et les groupes ; la passerelle les remplit à partir de /userinfo.

246 userinfo_fallback: true246 userinfo_fallback: true

247 # Okta émet des groupes uniquement lorsque la portée `groups` est demandée et que247 # Okta émet des groupes uniquement lorsque le scope `groups` est demandé et que

248 # le filtre de revendication de groupes de l'application les autorise.248 # le filtre de revendication de groupes de l'application les autorise.

249 scopes: [openid, profile, email, offline_access, groups]249 scopes: [openid, profile, email, offline_access, groups]

250 250 


262 - provider: bedrock262 - provider: bedrock

263 region: <your-region> # correspondre à $AWS_REGION pour que les ARN de la politique IAM263 region: <your-region> # correspondre à $AWS_REGION pour que les ARN de la politique IAM

264 # le couvrent264 # le couvrent

265 auth: {} # chaîne de credentials par défaut d'AWS :265 auth: {} # chaîne d'identifiants par défaut d'AWS :

266 # rôle de tâche ECS, ou IRSA sur EKS266 # rôle de tâche ECS, ou IRSA sur EKS

267 ```267 ```

268 268 

269 <Note>269 <Note>

270 Seul le bloc `oidc` est spécifique à Okta. Pour utiliser Microsoft Entra ID à la place, définissez `issuer` sur `https://login.microsoftonline.com/<tenant-id>/v2.0`, supprimez `userinfo_fallback` et la portée `groups`, et notez qu'Entra émet des ID d'objet de groupe plutôt que des noms, donc [`managed.policies`](/docs/fr/claude-apps-gateway-config#managed) doit correspondre sur les GUID, ou sur les rôles d'application avec `oidc.groups_claim: roles`. Consultez [Configuration du fournisseur d'identité](/docs/fr/claude-apps-gateway-deploy#identity-provider-setup).270 Seul le bloc `oidc` est spécifique à Okta. Pour utiliser Microsoft Entra ID à la place, définissez `issuer` sur `https://login.microsoftonline.com/<tenant-id>/v2.0`, supprimez `userinfo_fallback` et le scope `groups`, et notez qu'Entra émet des ID d'objet de groupe plutôt que des noms, donc [`managed.policies`](/docs/fr/claude-apps-gateway-config#managed) doit correspondre sur les GUID, ou sur les rôles d'application avec `oidc.groups_claim: roles`. Consultez [Configuration du fournisseur d'identité](/docs/fr/claude-apps-gateway-deploy#identity-provider-setup).

271 </Note>271 </Note>

272 </Step>272 </Step>

273 273 


289 Les arguments littéraux `--secret-string` sont visibles dans la table des processus et dans les journaux d'audit/EDR pendant l'exécution de chaque commande. Sur un hôte partagé ou surveillé, mettez la valeur dans un fichier `0600` et passez `--secret-string file://<path>` à la place. Le `setup.sh` du bundle garde les valeurs secrètes hors de l'argv du processus de la même façon, en passant des fichiers temporaires `0600` à `--cli-input-json`.289 Les arguments littéraux `--secret-string` sont visibles dans la table des processus et dans les journaux d'audit/EDR pendant l'exécution de chaque commande. Sur un hôte partagé ou surveillé, mettez la valeur dans un fichier `0600` et passez `--secret-string file://<path>` à la place. Le `setup.sh` du bundle garde les valeurs secrètes hors de l'argv du processus de la même façon, en passant des fichiers temporaires `0600` à `--cli-input-json`.

290 </Note>290 </Note>

291 291 

292 Contrairement aux secrets, `gateway.yaml` lui-même ne contient aucune valeur secrète, car chaque credential se résout au démarrage via l'expansion [`${VAR}` ou `${file:...}`](/docs/fr/claude-apps-gateway-config#secret-expansion). La façon dont tout atteint le conteneur diffère selon la piste :292 Contrairement aux secrets, `gateway.yaml` lui-même ne contient aucune valeur secrète, car tous les identifiants se résolvent au démarrage via l'expansion [`${VAR}` ou `${file:...}`](/docs/fr/claude-apps-gateway-config#secret-expansion). La façon dont tout atteint le conteneur diffère selon la piste :

293 293 

294 * Sur ECS, l'étape de construction suivante copie `gateway.yaml` dans l'image à `/etc/claude/gateway.yaml`, et la définition de tâche injecte les trois secrets en tant que variables d'environnement via son champ `secrets`, donc le YAML référence `${GATEWAY_JWT_SECRET}`, `${OIDC_CLIENT_SECRET}` et `${GATEWAY_POSTGRES_URL}`.294 * Sur ECS, l'étape de build suivante copie `gateway.yaml` dans l'image à `/etc/claude/gateway.yaml`, et la définition de tâche injecte les trois secrets en tant que variables d'environnement via son champ `secrets`, donc le YAML référence `${GATEWAY_JWT_SECRET}`, `${OIDC_CLIENT_SECRET}` et `${GATEWAY_POSTGRES_URL}`.

295 * Sur EKS, montez `gateway.yaml` à partir d'une ConfigMap et les secrets en tant que fichiers à `/secrets`, référencés comme `${file:/secrets/...}`. Sourcez les secrets Kubernetes à partir de Secrets Manager avec External Secrets Operator ou le pilote AWS du pilote CSI Secrets Store, ou créez-les directement avec `kubectl`.295 * Sur EKS, montez `gateway.yaml` à partir d'une ConfigMap et les secrets en tant que fichiers à `/secrets`, référencés comme `${file:/secrets/...}`. Sourcez les secrets Kubernetes à partir de Secrets Manager avec External Secrets Operator ou le fournisseur AWS du pilote CSI Secrets Store, ou créez-les directement avec `kubectl`.

296 </Step>296 </Step>

297 297 

298 <Step title="Construire et pousser l'image vers Amazon ECR">298 <Step title="Construire et pousser l'image vers Amazon ECR">

299 Construisez l'image selon les [exigences d'image de conteneur](/docs/fr/claude-apps-gateway-deploy#container-image), en plaçant le binaire glibc `linux-x64` à `./claude` dans le contexte de construction. Écrivez votre propre Dockerfile selon ces exigences ou commencez par le [`Dockerfile`](https://github.com/anthropics/claude-code/blob/main/examples/gateway/aws/Dockerfile) du bundle, qui copie le `gateway.yaml` rempli des étapes précédentes dans l'image à `/etc/claude/gateway.yaml`. Sur ECS, cette copie intégrée est la façon dont la configuration atteint le conteneur, c'est pourquoi la construction vient après l'écriture du fichier. La piste EKS monte plutôt `gateway.yaml` à partir d'une ConfigMap au déploiement, donc la copie intégrée n'est pas utilisée là.299 Construisez l'image selon les [exigences d'image de conteneur](/docs/fr/claude-apps-gateway-deploy#container-image), en plaçant le binaire glibc `linux-x64` à `./claude` dans le contexte de build. Écrivez votre propre Dockerfile selon ces exigences ou commencez par le [`Dockerfile`](https://github.com/anthropics/claude-code/blob/main/examples/gateway/aws/Dockerfile) du bundle, qui copie le `gateway.yaml` rempli des étapes précédentes dans l'image à `/etc/claude/gateway.yaml`. Sur ECS, cette copie intégrée est la façon dont la configuration atteint le conteneur, c'est pourquoi le build vient après l'écriture du fichier. La piste EKS monte plutôt `gateway.yaml` à partir d'une ConfigMap au déploiement, donc la copie intégrée n'est pas utilisée là.

300 300 

301 L'image porte également le bundle de certificats AWS RDS comme ancre de confiance pour la chaîne de connexion `sslmode=verify-full`, donc téléchargez-le d'abord dans le contexte de construction. AWS fait tourner le bundle (les nouvelles autorités de certification régionales sont ajoutées), donc téléchargez-le par construction plutôt que d'épingler une somme de contrôle ou de le valider :301 L'image porte également le bundle de certificats AWS RDS comme ancre de confiance pour la chaîne de connexion `sslmode=verify-full`, donc téléchargez-le d'abord dans le contexte de build. AWS fait tourner le bundle (les nouvelles autorités de certification régionales sont ajoutées), donc téléchargez-le à chaque build plutôt que d'épingler une somme de contrôle ou de le valider :

302 302 

303 ```bash theme={null}303 ```bash theme={null}

304 curl -fL --proto '=https' -o rds-global-bundle.pem \304 curl -fL --proto '=https' -o rds-global-bundle.pem \

305 https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem305 https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem

306 ```306 ```

307 307 

308 Les exigences d'image de conteneur ne couvrent pas le bundle, donc si vous écrivez votre propre Dockerfile, ajoutez les deux lignes qui le copient et le font confiance ; le Dockerfile du bundle les inclut déjà :308 Les exigences d'image de conteneur ne couvrent pas le bundle, donc si vous écrivez votre propre Dockerfile, ajoutez les deux lignes qui le copient et le font confiance ; le `Dockerfile` du bundle les inclut déjà :

309 309 

310 ```dockerfile theme={null}310 ```dockerfile theme={null}

311 COPY rds-global-bundle.pem /etc/claude/rds-global-bundle.pem311 COPY rds-global-bundle.pem /etc/claude/rds-global-bundle.pem

312 ENV NODE_EXTRA_CA_CERTS=/etc/claude/rds-global-bundle.pem312 ENV NODE_EXTRA_CA_CERTS=/etc/claude/rds-global-bundle.pem

313 ```313 ```

314 314 

315 Créez le référentiel ECR et connectez Docker à celui-ci. Les balises immuables signifient que la balise `<version>` que l'étape de déploiement épingle ne peut pas être ultérieurement silencieusement réorientée vers une image différente :315 Créez le dépôt ECR et connectez Docker à celui-ci. Les balises immuables signifient que la balise `<version>` que l'étape de déploiement épingle ne peut pas être ultérieurement silencieusement réorientée vers une image différente :

316 316 

317 ```bash theme={null}317 ```bash theme={null}

318 aws ecr create-repository --repository-name claude-gateway \318 aws ecr create-repository --repository-name claude-gateway \


425 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"425 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"

426 ```426 ```

427 427 

428 La période de grâce de 60 secondes donne à une tâche froide le temps de tirer l'image, de se connecter au store et de répondre à sa première vérification de santé avant qu'ECS ne commence à compter les défaillances par rapport au déploiement. La vérification de santé du groupe cible sur `GET /readyz` vérifie que le store est accessible, donc une tâche qui ne peut pas atteindre Postgres n'entre jamais en rotation. Pour garder les tâches passant la vérification lors d'une courte panne de base de données telle qu'un basculement RDS, définissez `store.readiness_grace_seconds` comme décrit dans [Comportement en cas de panne](/docs/fr/claude-apps-gateway-deploy#outage-behavior), qui couvre également l'alternative `/healthz`.428 La période de grâce de 60 secondes donne à une tâche froide le temps de tirer l'image, de se connecter au store et de répondre à sa première vérification de santé avant qu'ECS ne commence à compter les défaillances par rapport au déploiement.

429 429 

430 Les tâches s'exécutent dans des sous-réseaux privés sans IP publique, donc tout le trafic sortant (vers Bedrock, votre IdP, Secrets Manager, ECR et CloudWatch Logs) passe par la passerelle NAT. Pour garder le trafic Bedrock hors du chemin public, créez un point de terminaison VPC d'interface `bedrock-runtime` et pointez l'`base_url` upstream vers celui-ci, comme indiqué dans la [référence upstream Bedrock](/docs/fr/claude-apps-gateway-config#amazon-bedrock) ; l'IdP a toujours besoin d'une sortie Internet.430 La vérification de santé du groupe cible sur `GET /readyz` vérifie que le store est accessible, donc une tâche qui ne peut pas atteindre Postgres n'entre jamais en rotation. Pour garder les tâches passant la vérification lors d'une courte panne de base de données telle qu'un basculement RDS, définissez `store.readiness_grace_seconds` comme décrit dans [Comportement en cas de panne](/docs/fr/claude-apps-gateway-deploy#outage-behavior), qui couvre également l'alternative `/healthz`.

431 

432 Les tâches s'exécutent dans des sous-réseaux privés sans IP publique, donc tout le trafic sortant (vers Bedrock, votre IdP, Secrets Manager, ECR et CloudWatch Logs) passe par la passerelle NAT. Pour garder le trafic Bedrock hors du chemin public, créez un endpoint VPC d'interface `bedrock-runtime` et pointez l'`base_url` upstream vers celui-ci, comme indiqué dans la [référence upstream Bedrock](/docs/fr/claude-apps-gateway-config#amazon-bedrock) ; l'IdP a toujours besoin d'une sortie Internet.

431 433 

432 Terminez en donnant aux développeurs un nom d'hôte privé résolvable : dans une zone hébergée privée Route 53, aliasez le nom DNS interne de la passerelle à l'ALB, et définissez `listen.public_url` sur ce nom d'hôte. Le nom `*.elb.amazonaws.com` propre de l'ALB se résout en adresses privées sur un ALB interne, mais il ne peut pas porter votre certificat ACM, donc utilisez votre propre nom.434 Terminez en donnant aux développeurs un nom d'hôte privé résolvable : dans une zone hébergée privée Route 53, aliasez le nom DNS interne de la passerelle à l'ALB, et définissez `listen.public_url` sur ce nom d'hôte. Le nom `*.elb.amazonaws.com` propre de l'ALB se résout en adresses privées sur un ALB interne, mais il ne peut pas porter votre certificat ACM, donc utilisez votre propre nom.

433 435 


435 </Tab>437 </Tab>

436 438 

437 <Tab title="EKS">439 <Tab title="EKS">

438 Cette piste a besoin de `kubectl` et `eksctl` installés localement, et d'un cluster EKS existant avec un fournisseur OIDC IAM et le contrôleur AWS Load Balancer installé. Le cluster doit être sur `$VPC_ID` pour que les pods puissent atteindre le point de terminaison privé RDS, et le groupe de sécurité `claude-gateway-db` doit admettre le groupe de sécurité du pod ou du nœud du cluster à la place de `$GW_SG`.440 Cette piste a besoin de `kubectl` et `eksctl` installés localement, et d'un cluster EKS existant avec un fournisseur OIDC IAM et le contrôleur AWS Load Balancer installé. Le cluster doit être sur `$VPC_ID` pour que les pods puissent atteindre l'endpoint privé RDS, et le groupe de sécurité `claude-gateway-db` doit admettre le groupe de sécurité du pod ou du nœud du cluster à la place de `$GW_SG`.

439 441 

440 Sur EKS, la passerelle obtient ses credentials Bedrock via IRSA plutôt que les rôles ECS. La politique de confiance `ecs-tasks.amazonaws.com` de l'étape IAM ne s'applique pas ici ; IRSA a besoin d'un rôle dont la politique de confiance fédère sur le fournisseur OIDC du cluster, limité à `system:serviceaccount:claude-gateway:gateway`. `eksctl create iamserviceaccount` crée ce rôle, attache les politiques et annote le compte de service Kubernetes avec l'ARN du rôle en une seule étape. Transformez les deux documents de politique de l'étape IAM en politiques gérées qu'il peut attacher :442 Sur EKS, la passerelle obtient ses identifiants Bedrock via IRSA plutôt que les rôles ECS. La politique de confiance `ecs-tasks.amazonaws.com` de l'étape IAM ne s'applique pas ici ; IRSA a besoin d'un rôle dont la politique de confiance fédère sur le fournisseur OIDC du cluster, limité à `system:serviceaccount:claude-gateway:gateway`. `eksctl create iamserviceaccount` crée ce rôle, attache les politiques et annote le compte de service Kubernetes avec l'ARN du rôle en une seule étape. Transformez les deux documents de politique de l'étape IAM en politiques gérées qu'il peut attacher :

441 443 

442 ```bash theme={null}444 ```bash theme={null}

443 BEDROCK_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-bedrock-invoke \445 BEDROCK_POLICY_ARN="$(aws iam create-policy --policy-name claude-gateway-bedrock-invoke \


453 --approve455 --approve

454 ```456 ```

455 457 

456 La politique des secrets n'est nécessaire que lorsque les pods lisent eux-mêmes Secrets Manager, comme le fait le pilote AWS du pilote CSI Secrets Store en utilisant le compte de service du pod de montage ; supprimez-la si vous créez les secrets Kubernetes d'une autre façon. Le fournisseur a besoin des deux actions de la politique : il appelle `DescribeSecret` lorsqu'il réconcilie les secrets rotatés, donc une subvention `GetSecretValue`-uniquement monte au premier déploiement mais arrête de récupérer les rotations.458 La politique des secrets n'est nécessaire que lorsque les pods lisent eux-mêmes Secrets Manager, comme le fait le fournisseur AWS du pilote CSI Secrets Store en utilisant le compte de service du pod de montage ; supprimez-la si vous créez les secrets Kubernetes d'une autre façon. Le fournisseur a besoin des deux actions de la politique : il appelle `DescribeSecret` lorsqu'il réconcilie les secrets ayant fait l'objet d'une rotation, donc une autorisation limitée à `GetSecretValue` permet le montage au premier déploiement mais cesse de récupérer les rotations.

457 459 

458 Déployez la passerelle en tant que Deployment standard plus un Service et un Ingress, comme décrit dans [Déploiement Kubernetes](/docs/fr/claude-apps-gateway-deploy#kubernetes), avec :460 Déployez la passerelle en tant que Deployment standard plus un Service et un Ingress, comme décrit dans [Déploiement Kubernetes](/docs/fr/claude-apps-gateway-deploy#kubernetes), avec :

459 461 


476 </Step>478 </Step>

477 479 

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

479 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.481 La passerelle s'exécute maintenant, mais les développeurs ne peuvent pas l'atteindre à partir de `/login` tant que l'URL de la passerelle n'est pas 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.

480 </Step>482 </Step>

481</Steps>483</Steps>

482 484 

Details

442`claude --cloud` et `claude --teleport` nécessitent une connexion avec un compte claude.ai. Si vous vous authentifiez avec une clé API, ou si vos détails de compte stockés sont obsolètes, vous voyez l'un des messages suivants :442`claude --cloud` et `claude --teleport` nécessitent une connexion avec un compte claude.ai. Si vous vous authentifiez avec une clé API, ou si vos détails de compte stockés sont obsolètes, vous voyez l'un des messages suivants :

443 443 

444* `Unable to get organization UUID`444* `Unable to get organization UUID`

445* Un message indiquant que l'authentification par clé API n'est pas suffisante445* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

446* `Error loading Claude Code sessions` dans le sélecteur de session, lorsque vous exécutez `claude --teleport` sans ID de session446* `Error loading Claude Code sessions` dans le sélecteur de session, lorsque vous exécutez `claude --teleport` sans ID de session

447 447 

448Exécutez `/login` pour vous connecter avec votre compte claude.ai, puis réessayez la commande. Si l'erreur nomme votre fournisseur à la place, consultez le [tableau d'erreurs](#errors-when-sending-to-a-cloud-session) : les sessions cloud ne sont pas disponibles via les fournisseurs tiers.448Exécutez [`claude auth login`](/docs/fr/cli-reference#cli-commands) dans votre shell pour vous connecter avec votre compte claude.ai, puis réessayez la commande. Dans une session en cours, `/login` fait de même. Si l'erreur nomme votre fournisseur à la place, consultez le [tableau d'erreurs](#errors-when-sending-to-a-cloud-session) : les sessions cloud ne sont pas disponibles via les fournisseurs tiers.

449 

450De la v2.1.274 à la v2.1.289, le message de connexion était `Claude Code cloud sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.`

449 451 

450<h3 id="remote-control-session-expired-or-access-denied">452<h3 id="remote-control-session-expired-or-access-denied">

451 Session Remote Control expirée ou accès refusé453 Session Remote Control expirée ou accès refusé

Details

31| `claude attach <id\|name>` | Attacher à une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal. Passer une partie du nom d'une session en cours d'exécution à la place de l'ID nécessite Claude Code v2.1.290 ou ultérieur | `claude attach 7c5dcf5d` |31| `claude attach <id\|name>` | Attacher à une [session d'arrière-plan](/docs/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal. Passer une partie du nom d'une session en cours d'exécution à la place de l'ID nécessite Claude Code v2.1.290 ou ultérieur | `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 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` |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 logs` | Suivre le fichier de log du [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan, `~/.claude/daemon.log`, en imprimant les nouvelles lignes à mesure qu'elles arrivent jusqu'à ce que vous appuyiez sur `Ctrl+C` | `claude daemon logs` |

35| `claude daemon run` | Exécuter le [superviseur](/docs/fr/agent-view#the-supervisor-process) de session d'arrière-plan au premier plan de ce terminal, en imprimant son log | `claude daemon run` |

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` |36| `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` |37| `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é à 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` |38| `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` |

desktop.md +1 −1

Details

1092Pour voir quelle version de l'application de bureau vous exécutez :1092Pour voir quelle version de l'application de bureau vous exécutez :

1093 1093 

1094* **macOS** : cliquez sur **Claude** dans la barre de menu, puis **À propos de Claude**1094* **macOS** : cliquez sur **Claude** dans la barre de menu, puis **À propos de Claude**

1095* **Windows** : cliquez sur **Aide**, puis **À propos**1095* **Windows** : cliquez sur **Aide**, puis **À propos de Claude**

1096 1096 

1097Cliquez sur le numéro de version pour le copier dans votre presse-papiers.1097Cliquez sur le numéro de version pour le copier dans votre presse-papiers.

1098 1098 

Details

92* Enregistrer une capture d'écran avec **Cmd+S** ou un enregistrement d'écran avec **Cmd+R**, en utilisant les boutons de capture du volet ou les raccourcis ; les fichiers sont enregistrés sur votre Bureau92* Enregistrer une capture d'écran avec **Cmd+S** ou un enregistrement d'écran avec **Cmd+R**, en utilisant les boutons de capture du volet ou les raccourcis ; les fichiers sont enregistrés sur votre Bureau

93* Arrêter la diffusion en continu d'un appareil sans l'arrêter en cliquant sur **Detach simulator**, ce qui ramène le volet à son état **Attach simulator**93* Arrêter la diffusion en continu d'un appareil sans l'arrêter en cliquant sur **Detach simulator**, ce qui ramène le volet à son état **Attach simulator**

94 94 

95Pour régler le flux vidéo du simulateur, ouvrez le menu **Display** du volet. Réduisez la **Frame rate** ou la **Resolution** si le volet surcharge votre Mac. Ces deux paramètres modifient la façon dont le volet affiche l'appareil, pas la façon dont l'application s'exécute.95Si le volet affiche un menu **Display**, utilisez-le pour régler le flux vidéo du simulateur. Réduisez la **Frame rate** ou la **Resolution** si le volet surcharge votre Mac. Ces deux paramètres modifient la façon dont le volet affiche l'appareil, pas la façon dont l'application s'exécute.

96 96 

97Vous et Claude pilotez le même appareil, donc vos appuis modifient l'état de l'application que Claude voit. Pour que Claude vérifie un écran spécifique, accédez-y en appuyant, puis demandez. Pendant que Claude pilote l'appareil, le volet affiche un badge **Claude is using this device** au-dessus de l'écran ; attendez avant d'appuyer jusqu'à ce que le badge disparaisse, afin que le résultat reflète l'application plutôt que votre entrée.97Vous et Claude pilotez le même appareil, donc vos appuis modifient l'état de l'application que Claude voit. Pour que Claude vérifie un écran spécifique, accédez-y en appuyant, puis demandez. Pendant que Claude pilote l'appareil, le volet affiche un badge **Claude is using this device** au-dessus de l'écran ; attendez avant d'appuyer jusqu'à ce que le badge disparaisse, afin que le résultat reflète l'application plutôt que votre entrée.

98 98 

env-vars.md +1 −0

Details

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

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

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

357| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Contrôle si Claude Code recharge un [mod](/docs/fr/plugins/mods/overview) lorsque les fichiers du mod changent. Le rechargement s'applique à un mod que vous chargez depuis un répertoire avec `--plugin-dir`, et il est activé par défaut dans les sessions interactives. Définissez sur `1` pour l'activer également dans les sessions non interactives, ou sur `0` pour le désactiver dans toutes les sessions. Requiert Claude Code v2.1.287 ou ultérieur. Voir [paramètres et variables d'environnement des mods](/docs/fr/plugins/mods/reference#settings-and-environment-variables) |

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

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

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

errors.md +2 −3

Details

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

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

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

200| `Cloud sessions need a claude.ai sign-in` | [Impossible d'obtenir l'UUID de l'organisation](/docs/fr/claude-code-on-the-web#unable-to-get-organization-uuid) |

200| `Error: --json-schema is not a valid JSON Schema` | [Erreurs de ligne de commande](#the-json-schema-value-is-not-a-valid-json-schema) |201| `Error: --json-schema is not a valid JSON Schema` | [Erreurs de ligne de commande](#the-json-schema-value-is-not-a-valid-json-schema) |

201| `Error: Invalid --agents configuration:` | [Erreurs de ligne de commande](#invalid-agents-configuration) |202| `Error: Invalid --agents configuration:` | [Erreurs de ligne de commande](#invalid-agents-configuration) |

202| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Erreurs de ligne de commande](#invalid-agents-configuration) |203| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Erreurs de ligne de commande](#invalid-agents-configuration) |


387* Une connexion que Claude Code détecte comme ayant été interrompue par votre ordinateur qui s'endort au milieu d'une requête. Claude Code la compte comme une connexion interrompue selon les règles ci-dessus ; une fois que l'étiquette de tentative nomme la raison spécifique, elle lit `Connection lost while your computer was asleep`, et si le tour se termine après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, le message lit `Your computer went to sleep before a response was produced`.388* Une connexion que Claude Code détecte comme ayant été interrompue par votre ordinateur qui s'endort au milieu d'une requête. Claude Code la compte comme une connexion interrompue selon les règles ci-dessus ; une fois que l'étiquette de tentative nomme la raison spécifique, elle lit `Connection lost while your computer was asleep`, et si le tour se termine après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, le message lit `Your computer went to sleep before a response was produced`.

388* Un flux de réponse bloqué, lorsque les en-têtes de réponse sont arrivés mais aucune partie de la réponse de Claude n'est arrivée, ou lorsque Claude a terminé sa réflexion mais n'a pas commencé un texte ou un appel d'outil : Claude Code abandonne la connexion bloquée et renvoie la requête au maximum une fois, en dehors du budget de 10 tentatives ci-dessus. Si la réponse se bloque une deuxième fois après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, Claude Code termine le tour avec `The response stalled before a response was produced`.389* Un flux de réponse bloqué, lorsque les en-têtes de réponse sont arrivés mais aucune partie de la réponse de Claude n'est arrivée, ou lorsque Claude a terminé sa réflexion mais n'a pas commencé un texte ou un appel d'outil : Claude Code abandonne la connexion bloquée et renvoie la requête au maximum une fois, en dehors du budget de 10 tentatives ci-dessus. Si la réponse se bloque une deuxième fois après que Claude a terminé sa réflexion mais avant un texte ou un appel d'outil, Claude Code termine le tour avec `The response stalled before a response was produced`.

389* Une requête en streaming à laquelle l'API ne répond jamais avec des en-têtes de réponse, sur une connexion où le [délai de premier octet s'exécute](/docs/fr/network-config#streaming-idle-watchdogs) : Claude Code l'abandonne à la date limite et la renvoie au maximum une fois par requête de modèle, dans le budget de tentatives, puis termine le tour avec [No response from API](#no-response-from-api) si cette tentative reste sans réponse aussi. Sur d'autres connexions, la requête attend `API_TIMEOUT_MS`. Lorsque vous définissez `CLAUDE_CODE_RETRY_WATCHDOG`, le plafond d'une tentative ne s'applique pas.390* Une requête en streaming à laquelle l'API ne répond jamais avec des en-têtes de réponse, sur une connexion où le [délai de premier octet s'exécute](/docs/fr/network-config#streaming-idle-watchdogs) : Claude Code l'abandonne à la date limite et la renvoie au maximum une fois par requête de modèle, dans le budget de tentatives, puis termine le tour avec [No response from API](#no-response-from-api) si cette tentative reste sans réponse aussi. Sur d'autres connexions, la requête attend `API_TIMEOUT_MS`. Lorsque vous définissez `CLAUDE_CODE_RETRY_WATCHDOG`, le plafond d'une tentative ne s'applique pas.

391* Une réponse en streaming que le filtre de contenu de sortie de l'API arrête avant que Claude n'ait terminé sa réflexion ou commencé un texte ou un appel d'outil. Claude Code renvoie la requête une fois, dans le budget de tentatives, et affiche [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) si le filtre arrête également la deuxième réponse.

390* Les throttles 429 temporaires, mais pas le `429` de limite de dépenses d'une passerelle, qui n'est pas un throttle ; voir [Spend limit reached](#spend-limit-reached).392* Les throttles 429 temporaires, mais pas le `429` de limite de dépenses d'une passerelle, qui n'est pas un throttle ; voir [Spend limit reached](#spend-limit-reached).

391 * Lorsque vous êtes connecté avec un abonnement claude.ai, cela inclut les throttles 429 qui ne portent pas les en-têtes de quota de votre plan. Avant v2.1.199, Claude Code ne réessayait ces throttles que pour les connexions par clé API et Enterprise.393 * Lorsque vous êtes connecté avec un abonnement claude.ai, cela inclut les throttles 429 qui ne portent pas les en-têtes de quota de votre plan. Avant v2.1.199, Claude Code ne réessayait ces throttles que pour les connexions par clé API et Enterprise.

392* Une requête rejetée parce que l'entrée plus `max_tokens` dépasse la limite de contexte. La renvoyer inchangée échouerait de la même manière, donc Claude Code réessaie avec un `max_tokens` réduit, et arrête de réessayer et compacte à la place dans deux cas :394* Une requête rejetée parce que l'entrée plus `max_tokens` dépasse la limite de contexte. La renvoyer inchangée échouerait de la même manière, donc Claude Code réessaie avec un `max_tokens` réduit, et arrête de réessayer et compacte à la place dans deux cas :


405* Une [réponse en streaming Amazon Bedrock avec un type de contenu inattendu](#bedrock-streaming-response-has-an-unexpected-content-type), parce que la passerelle ou le proxy réécrivant la réponse réécrirait la nouvelle tentative de la même manière. Nécessite Claude Code v2.1.208 ou ultérieur.407* Une [réponse en streaming Amazon Bedrock avec un type de contenu inattendu](#bedrock-streaming-response-has-an-unexpected-content-type), parce que la passerelle ou le proxy réécrivant la réponse réécrirait la nouvelle tentative de la même manière. Nécessite Claude Code v2.1.208 ou ultérieur.

406* Une nouvelle tentative sans streaming d'une requête en streaming défaillante qui obtient un statut de succès mais [aucun message API Claude dans le corps](#api-returned-an-empty-or-malformed-response). Claude Code termine le tour avec cette erreur.408* Une nouvelle tentative sans streaming d'une requête en streaming défaillante qui obtient un statut de succès mais [aucun message API Claude dans le corps](#api-returned-an-empty-or-malformed-response). Claude Code termine le tour avec cette erreur.

407* Une requête que la vérification de politique de votre organisation a refusée, qui apparaît comme une ligne `API Error:` portant le message de refus. Les administrateurs de votre organisation configurent la vérification avec [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), une fonctionnalité Claude Enterprise, et le message se termine par les instructions qu'ils ont configurées, ou par défaut vous dit de les contacter. Claude Code ne renvoie pas la requête refusée au même modèle ou à un [modèle de secours](/docs/fr/model-config#fallback-model-chains), parce que le refus concerne le contenu de la requête plutôt que le modèle. Avant v2.1.239, Claude Code pouvait renvoyer une requête refusée, sans streaming ou sur un modèle de secours configuré, avant de vous afficher le refus.409* Une requête que la vérification de politique de votre organisation a refusée, qui apparaît comme une ligne `API Error:` portant le message de refus. Les administrateurs de votre organisation configurent la vérification avec [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), une fonctionnalité Claude Enterprise, et le message se termine par les instructions qu'ils ont configurées, ou par défaut vous dit de les contacter. Claude Code ne renvoie pas la requête refusée au même modèle ou à un [modèle de secours](/docs/fr/model-config#fallback-model-chains), parce que le refus concerne le contenu de la requête plutôt que le modèle. Avant v2.1.239, Claude Code pouvait renvoyer une requête refusée, sans streaming ou sur un modèle de secours configuré, avant de vous afficher le refus.

408* Une réponse que le filtre de contenu de sortie de l'API a bloquée. Claude Code affiche immédiatement [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) et ne réessaie pas ni ne renvoie cette requête.

409 410 

410<h3 id="what-you-see-while-claude-code-retries-or-waits">411<h3 id="what-you-see-while-claude-code-retries-or-waits">

411 Ce que vous voyez pendant que Claude Code réessaie ou attend412 Ce que vous voyez pendant que Claude Code réessaie ou attend


2905API Error: Output blocked by content filtering policy2906API Error: Output blocked by content filtering policy

2906```2907```

2907 2908 

2908Claude Code affiche l'erreur dès que le blocage arrive et termine la requête à ce moment-là. Il ne réessaie pas la requête, ne la renvoie pas sans streaming et ne bascule pas vers un [modèle de secours](/docs/fr/model-config#fallback-model-chains). Avant v2.1.285, Claude Code pouvait renvoyer et réessayer une requête bloquée, parfois pendant plusieurs minutes, avant de vous afficher l'erreur.

2909 

2910**Que faire :**2909**Que faire :**

2911 2910 

2912* Reformulez votre dernier message ou adoptez une approche différente2911* Reformulez votre dernier message ou adoptez une approche différente

Details

733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

734```734```

735 735 

736Cet agent est nommé `my-plugin:security-reviewer`, et l'utilisateur peut l'[invoquer explicitement](/docs/fr/sub-agents#invoke-subagents-explicitly) avec `@agent-my-plugin:security-reviewer`. La forme du nom est `<plugin>:<name>`, où `<name>` provient du frontmatter, ou du nom du fichier quand il n'y en a pas.736Cet agent est nommé `my-plugin:security-reviewer`, et l'utilisateur peut l'[invoquer explicitement](/docs/fr/sub-agents#invoke-subagents-explicitly) avec `@agent-my-plugin:security-reviewer`. La forme du nom est `<plugin>:<name>`, où `<name>` provient du champ `name` du frontmatter, ou du nom du fichier quand ce champ est absent.

737 737 

738La clé de manifeste `agents` remplace le scan `agents/`.738La clé de manifeste `agents` remplace le scan `agents/`.

739 739 

Details

428 428 

429| Élément | Ce qu'il dessine | Où |429| Élément | Ce qu'il dessine | Où |

430| :- | :- | :- |430| :- | :- | :- |

431| `Box` | Un conteneur flex. Prend des props de mise en page comme `flexDirection`, `columnGap`, `padding`, `borderStyle`, et `width`. | Partout |431| `Box` | Un conteneur flex. Prend des props de mise en page comme `flexDirection`, `columnGap`, `padding`, [`borderStyle`](/docs/fr/plugins/mods/reference#box-border-styles), et `width`. | Partout |

432| `Text` | Texte stylisé. Prend `color`, `bold`, `dimColor`, `italic`, et `wrap`. Une `color` est une clé de thème ou une couleur comme `'red'`. Un `wrap` est `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'`, ou `'truncate-end'`. | Partout |432| `Text` | Texte stylisé. Prend `color`, `bold`, `dimColor`, `italic`, et `wrap`. Une `color` est une clé de thème ou une couleur comme `'red'`. Un `wrap` est `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'`, ou `'truncate-end'`. | Partout |

433| `Button` | Un contrôle qui appelle `onPress` | Partout |433| `Button` | Un contrôle qui appelle `onPress` | Partout |

434| `Link`, `Code`, `Markdown` | Un lien avec `href` et une `label` optionnelle, un bloc de code, et du texte formaté comme les réponses de Claude. `Markdown` prend son contenu dans une prop `text`, pas dans `children`, et a besoin d'une `key` quand vous passez `onLinkPress`. | Partout |434| `Link`, `Code`, `Markdown` | Un lien avec `href` et une `label` optionnelle, un bloc de code, et du texte formaté comme les réponses de Claude. `Markdown` prend son contenu dans une prop `text`, pas dans `children`, et a besoin d'une `key` quand vous passez `onLinkPress`. | Partout |


563De nombreux volets sont un champ de texte avec une liste en dessous. L'exemple de cette section est un volet de notes : vous tapez une note et appuyez sur Entrée pour l'ajouter, et chaque note a un bouton `x` qui la supprime. Avec deux notes ajoutées, le terminal dessine le volet de cette façon :563De nombreux volets sont un champ de texte avec une liste en dessous. L'exemple de cette section est un volet de notes : vous tapez une note et appuyez sur Entrée pour l'ajouter, et chaque note a un bouton `x` qui la supprime. Avec deux notes ajoutées, le terminal dessine le volet de cette façon :

564 564 

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

566╭──────────────────────────────────────────────────────────╮566╭────────────────────────────────────────────────────────✕─╮

567│ Note: Type a note and press Enter ⏎ add ✕ │567│ Note: Type a note and press Enter ⏎ add │

568│ x buy milk │568│ x buy milk │

569│ x call bob │569│ x call bob │

570╰──────────────────────────────────────────────────────────╯570╰──────────────────────────────────────────────────────────╯

571```571```

572 572 

573Le `✕` sur la bordure supérieure est la marque propre à Claude Code pour fermer le volet.

574 

573L'exemple utilise ces techniques :575L'exemple utilise ces techniques :

574 576 

575* **Prendre l'entrée tapée** : un `Input` appelle `onSubmit(value)` avec le texte du champ quand l'utilisateur appuie sur Entrée, et `onInput(value)` à chaque changement577* **Prendre l'entrée tapée** : un `Input` appelle `onSubmit(value)` avec le texte du champ quand l'utilisateur appuie sur Entrée, et `onInput(value)` à chaque changement

Details

242Pour adapter un arbre à son point de rendu, lisez ces props dans le hook :242Pour adapter un arbre à son point de rendu, lisez ces props dans le hook :

243 243 

244* **Largeur d'un `Pane` ou du bandeau** : dessinez selon `e.props.bodyColumns`244* **Largeur d'un `Pane` ou du bandeau** : dessinez selon `e.props.bodyColumns`

245* **Hauteur d'un `Pane` à côté de la transcription** : lorsque `e.props.placement` vaut `'dock'`, `e.props.scroll.bodyRows` est le nombre de lignes dont dispose le volet245* **Hauteur d'un `Pane` à côté de la transcription** : lorsque `e.props.placement` vaut `'dock'`, `e.props.scroll.bodyRows` est le nombre de lignes dont dispose le volet pour votre arbre

246* **Hauteur d'un `Pane` au-dessus du prompt** : lorsque `e.props.placement` vaut `'inline'`, le volet s'agrandit avec votre arbre jusqu'à une limite, et `bodyRows` correspond à cette limite. Le [champ `rows` de `$.ui.open`](/docs/fr/plugins/mods/interface#open-a-pane-at-the-right-time) permet de demander une limite différente.246* **Hauteur d'un `Pane` au-dessus du prompt** : lorsque `e.props.placement` vaut `'inline'`, le volet s'agrandit avec votre arbre jusqu'à une limite, et `bodyRows` correspond à cette limite. Le [champ `rows` de `$.ui.open`](/docs/fr/plugins/mods/interface#open-a-pane-at-the-right-time) permet de demander une limite différente.

247 247 

248Un arbre plus haut que le volet défile d'un seul bloc.248Un arbre plus haut que le volet défile d'un seul bloc.


255 255 

256| Élément | Props principales | Terminal | Desktop |256| Élément | Props principales | Terminal | Desktop |

257| :- | :- | :-: | :-: |257| :- | :- | :-: | :-: |

258| [`Box`](/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `key`, disposition flex, `gap`, `padding`, `margin`, `width`, `height`, `borderStyle`, `backgroundColor`, `position`, `hover` | ✓ | ✓ |258| [`Box`](/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `key`, disposition flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |

259| [`Text`](/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |259| [`Text`](/docs/fr/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |

260| [`Button`](/docs/fr/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |260| [`Button`](/docs/fr/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |

261| `Link` | `href`, `label` | ✓ | ✓ |261| `Link` | `href`, `label` | ✓ | ✓ |


270 270 

271Autres règles pour `Button` : `action` nomme l'une des propres [actions de raccourci clavier](/docs/fr/keybindings) de Claude Code, et le raccourci de l'utilisateur pour cette action presse le bouton lorsque ce raccourci est une combinaison de touches ou une touche avec modificateur. Un `hotkey` numérique sur un bouton du bandeau se déclenche aussi lorsque l'utilisateur tape ce seul chiffre dans un prompt vide puis marque une pause. Lorsque deux boutons d'un même dessin désignent le même `hotkey`, c'est le dernier qui l'obtient. `autoFocus` n'accepte que `true` sur tout contrôle : omettez donc la prop pour le désactiver.271Autres règles pour `Button` : `action` nomme l'une des propres [actions de raccourci clavier](/docs/fr/keybindings) de Claude Code, et le raccourci de l'utilisateur pour cette action presse le bouton lorsque ce raccourci est une combinaison de touches ou une touche avec modificateur. Un `hotkey` numérique sur un bouton du bandeau se déclenche aussi lorsque l'utilisateur tape ce seul chiffre dans un prompt vide puis marque une pause. Lorsque deux boutons d'un même dessin désignent le même `hotkey`, c'est le dernier qui l'obtient. `autoFocus` n'accepte que `true` sur tout contrôle : omettez donc la prop pour le désactiver.

272 272 

273<h3 id="box-border-styles">

274 Styles de bordure de `Box`

275</h3>

276 

277Pour dessiner une bordure autour d'une `Box`, définissez sa prop `borderStyle` sur l'un de ces noms, comme dans `borderStyle: 'round'`. Chaque ligne indique ce que le terminal dessine pour ce nom et montre le bord supérieur de la bordure.

278 

279| `borderStyle` | Ce que dessine le terminal | Bord supérieur |

280| :- | :- | :- |

281| `'single'` | Traits fins avec des coins carrés | `┌──┐` |

282| `'double'` | Traits doubles | `╔══╗` |

283| `'round'` | Traits fins avec des coins arrondis | `╭──╮` |

284| `'bold'` | Traits épais | `┏━━┓` |

285| `'singleDouble'` | Traits fins en haut et en bas, traits doubles sur les côtés | `╓──╖` |

286| `'doubleSingle'` | Traits doubles en haut et en bas, traits fins sur les côtés | `╒══╕` |

287| `'classic'` | Les caractères ASCII `+`, `-` et `\|` | `+--+` |

288| `'arrow'` | Des flèches qui pointent vers l'intérieur de la `Box` | `↘↓↓↙` |

289| `'dashed'` | Traits en pointillés avec des coins vides | `╌╌` |

290| `'quote'` | Une barre, `▎`, le long du côté gauche et des cellules vides sur les trois autres côtés | Vide |

291 

292Une `Box` dont la prop `borderStyle` désigne tout autre nom, comme `'rounded'`, est dessinée sans bordure.

293 

273<h2 id="limits">294<h2 id="limits">

274 Limites295 Limites

275</h2>296</h2>

Details

15<Note>15<Note>

16 Ces cas sont couverts sur d'autres pages :16 Ces cas sont couverts sur d'autres pages :

17 17 

18 * **Pourquoi les portées, le cache et la précédence se comportent de cette façon** : lisez [Référence du chargement des plugins](/docs/fr/plugins/loading)18 * **Pourquoi les portées, le cache et la priorité se comportent de cette façon** : lisez [Référence du chargement des plugins](/docs/fr/plugins/loading)

19 * **Recherche d'un drapeau, d'un champ ou d'une commande** : utilisez la [référence des commandes de plugin](/docs/fr/plugins/cli-reference), la [référence du manifeste](/docs/fr/plugins/manifest-reference) ou la [référence de la marketplace](/docs/fr/plugins/marketplace-reference)19 * **Recherche d'un flag, d'un champ ou d'une commande** : utilisez la [référence des commandes de plugin](/docs/fr/plugins/cli-reference), la [référence du manifeste](/docs/fr/plugins/manifest-reference) ou la [référence de la marketplace](/docs/fr/plugins/marketplace-reference)

20 * **Un message `hooks module not loaded` ou `hooks module did not load`** : le plugin est un [mod](/docs/fr/plugins/mods/overview), lisez donc [Le mod ne se charge pas](/docs/fr/plugins/mods/troubleshoot#the-mod-doesn’t-load)

20</Note>21</Note>

21 22 

22Recherchez le message exact que vous avez vu. Chaque message est répertorié sous l'étape qui le produit, ce qui n'est pas toujours la commande que vous avez exécutée. Par exemple, une installation peut échouer parce qu'une marketplace est manquante, donc ce message se trouve sous [Ajouter une marketplace](#add-a-marketplace).23Recherchez le message exact que vous avez vu. Chaque message est répertorié sous l'étape qui le produit, ce qui n'est pas toujours la commande que vous avez exécutée. Par exemple, une installation peut échouer parce qu'une marketplace est manquante, donc ce message se trouve sous [Ajouter une marketplace](#add-a-marketplace).

Details

43 <Step title="Ouvrir la console d'administration">43 <Step title="Ouvrir la console d'administration">

44 Dans la console claude.ai, accédez à [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).44 Dans la console claude.ai, accédez à [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).

45 45 

46 Si le lien vous redirige vers une page Organization settings différente au lieu de la page Claude Code, votre compte n'a pas le rôle requis. Les rôles Admin et autres rôles non-Propriétaire ne peuvent pas afficher ou modifier les paramètres gérés, donc demandez à un Propriétaire ou Propriétaire principal de votre organisation de faire la modification. Consultez [Contrôle d'accès](#access-control).46 Dans une organisation Team ou Enterprise, si la page indique que vous n'avez pas accès, demandez à un [Propriétaire ou Propriétaire principal](#access-control) d'effectuer la modification.

47 </Step>47 </Step>

48 48 

49 <Step title="Définir vos paramètres">49 <Step title="Définir vos paramètres">

sessions.md +3 −3

Details

83* Terminal : `claude --continue`, `claude --resume <session-id>` ou `claude --resume <name>` lorsque le nom correspond à une session, sans `-p`. Claude Code restaure le mode de permission dans lequel se trouvait la session, sauf dans les cas du tableau. Passez `--permission-mode` ou `--dangerously-skip-permissions` pour remplacer le mode restauré.83* Terminal : `claude --continue`, `claude --resume <session-id>` ou `claude --resume <name>` lorsque le nom correspond à une session, sans `-p`. Claude Code restaure le mode de permission dans lequel se trouvait la session, sauf dans les cas du tableau. Passez `--permission-mode` ou `--dangerously-skip-permissions` pour remplacer le mode restauré.

84* Non-interactif : `claude -p --resume` ou `claude -p --continue`. Claude Code démarre l'exécution dans le mode de permission qu'une nouvelle exécution `claude -p` démarrerait, sauf qu'une session qui s'est terminée en mode plan reprend en mode plan selon les [conditions ci-dessous](#resume-in-plan-mode-with-p).84* Non-interactif : `claude -p --resume` ou `claude -p --continue`. Claude Code démarre l'exécution dans le mode de permission qu'une nouvelle exécution `claude -p` démarrerait, sauf qu'une session qui s'est terminée en mode plan reprend en mode plan selon les [conditions ci-dessous](#resume-in-plan-mode-with-p).

85* VS Code : le panneau de conversation de l'extension. Le tableau couvre uniquement une conversation qui s'est terminée en mode plan ; pour le reste, voir [reprendre les conversations passées](/docs/fr/vs-code#resume-past-conversations).85* VS Code : le panneau de conversation de l'extension. Le tableau couvre uniquement une conversation qui s'est terminée en mode plan ; pour le reste, voir [reprendre les conversations passées](/docs/fr/vs-code#resume-past-conversations).

86* Sélecteur de sessions au lancement : une session que vous sélectionnez dans le [sélecteur de sessions](#use-the-session-picker), que vous l'ayez ouvert avec `claude --resume` seul, `claude --from-pr` ou un nom qui correspond à plus d'une session. Claude Code ne restaure pas le mode de permission stocké. Il démarre la session dans le mode de permission qu'il démarrerait une nouvelle session depuis la même ligne de commande.86* Sélecteur de sessions au lancement : une session que vous sélectionnez dans le [sélecteur de sessions](#use-the-session-picker), que vous l'ayez ouvert avec `claude --resume` seul, `claude --from-pr` ou un nom qui correspond à plus d'une session. Claude Code démarre la session dans le mode de permission dans lequel il démarrerait une nouvelle session depuis la même ligne de commande, sauf qu'une session qui s'est terminée en mode plan reprend en mode plan, à moins que vous ne passiez `--permission-mode`, `--dangerously-skip-permissions` ou `--fork-session`. Aucun autre mode de permission stocké n'est restauré.

87* `/resume` à l'intérieur d'une session, avec ou sans argument : Claude Code ne restaure pas le mode de permission stocké. La conversation vers laquelle vous basculez continue dans le mode de permission dans lequel se trouve votre session actuelle.87* `/resume` à l'intérieur d'une session, avec ou sans argument : la conversation vers laquelle vous basculez continue dans le mode de permission dans lequel se trouve votre session actuelle, sauf qu'une conversation qui s'est terminée en mode plan reprend en mode plan, même si vous avez lancé Claude Code avec `--permission-mode` ou `--dangerously-skip-permissions`. Si cette conversation était déjà ouverte plus tôt dans cette exécution de Claude Code, comme la conversation dans laquelle vous avez commencé ou une conversation que vous avez quittée avec `/clear` ou `/resume`, elle continue plutôt dans votre mode de permission actuel.

88 88 

89La restauration du mode plan sur les chemins non-interactif et VS Code nécessite Claude Code v2.1.246 ou ultérieur. Chaque ligne nomme le mode de permission dans lequel la session s'est terminée, lequel des chemins terminal, non-interactif et VS Code vous la reprenez par, et le mode de permission dans lequel Claude Code démarre la session reprise.89La restauration du mode plan sur les chemins non-interactif et VS Code nécessite Claude Code v2.1.246 ou ultérieur. Chaque ligne nomme le mode de permission dans lequel la session s'est terminée, lequel des chemins terminal, non-interactif et VS Code vous la reprenez par, et le mode de permission dans lequel Claude Code démarre la session reprise.

90 90 

91| Session terminée en | Comment vous la reprenez | Mode de permission après la reprise |91| Session terminée en | Comment vous la reprenez | Mode de permission après la reprise |

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

93| `bypassPermissions` | Terminal | Le mode de permission qu'une nouvelle session démarrerait. Pour [contourner les permissions](/docs/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) à nouveau, activez-le au lancement avec l'un de ses drapeaux de lancement ou `permissions.defaultMode: "bypassPermissions"` dans les [paramètres utilisateur, `--settings` ou gérés](/docs/fr/settings-reference#permissions-defaultmode) |93| `bypassPermissions` | Terminal | Le mode de permission qu'une nouvelle session démarrerait. Pour [contourner les permissions](/docs/fr/permission-modes#skip-all-checks-with-bypasspermissions-mode) à nouveau, activez-le au lancement avec l'un de ses drapeaux de lancement ou `permissions.defaultMode: "bypassPermissions"` dans les [paramètres utilisateur, `--settings` ou gérés](/docs/fr/settings-reference#permissions-defaultmode) |

94| `plan` | Terminal | Le mode de permission qu'une nouvelle session démarrerait |94| `plan` | Terminal | Mode plan. Avec `--fork-session`, le mode de permission dans lequel une nouvelle session démarrerait |

95| `auto` | Terminal | `auto`, uniquement lorsque votre compte répond toujours aux [exigences du mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) |95| `auto` | Terminal | `auto`, uniquement lorsque votre compte répond toujours aux [exigences du mode auto](/docs/fr/permission-modes#eliminate-prompts-with-auto-mode) |

96| Manuel | Terminal | Manuel lorsqu'une nouvelle session démarrerait en mode auto à partir de la [valeur par défaut intégrée](/docs/fr/permission-modes#which-mode-a-session-starts-in). Lorsqu'un `defaultMode` d'un fichier de paramètres [prend effet](/docs/fr/permission-modes#which-mode-a-session-starts-in), Claude Code démarre la session reprise dans ce mode à la place |96| Manuel | Terminal | Manuel lorsqu'une nouvelle session démarrerait en mode auto à partir de la [valeur par défaut intégrée](/docs/fr/permission-modes#which-mode-a-session-starts-in). Lorsqu'un `defaultMode` d'un fichier de paramètres [prend effet](/docs/fr/permission-modes#which-mode-a-session-starts-in), Claude Code démarre la session reprise dans ce mode à la place |

97| `plan` | Non-interactif, selon les [conditions ci-dessous](#resume-in-plan-mode-with-p) | Mode plan |97| `plan` | Non-interactif, selon les [conditions ci-dessous](#resume-in-plan-mode-with-p) | Mode plan |

sub-agents.md +2 −2

Details

310 310 

311| Champ | Obligatoire | Description |311| Champ | Obligatoire | Description |

312| :- | :- | :- |312| :- | :- | :- |

313| `name` | Oui | Identifiant unique, tel que `code-reviewer` ou `reviewer-v2`. Les [hooks](/docs/fr/hooks#subagentstart) reçoivent cette valeur comme `agent_type`. Le nom du fichier n'a pas besoin de correspondre. Les noms ne peuvent pas contenir `:`, qui est réservé aux [identifiants limités au plugin](/docs/fr/plugins/overview) tels que `my-plugin:reviewer`. Claude Code ne charge pas un fichier dont le nom en contient un et enregistre une erreur dans le journal de débogage. Avant la v2.1.218, de tels noms étaient acceptés |313| `name` | Oui | Identifiant unique d'au plus 256 caractères, tel que `code-reviewer` ou `reviewer-v2`. Les [hooks](/docs/fr/hooks#subagentstart) reçoivent cette valeur comme `agent_type`. Le nom du fichier n'a pas besoin de correspondre. Les noms ne peuvent pas contenir `:`, qui est réservé aux [identifiants limités au plugin](/docs/fr/plugins/overview) tels que `my-plugin:reviewer` |

314| `description` | Oui | Quand Claude doit déléguer à ce sous-agent |314| `description` | Oui | Quand Claude doit déléguer à ce sous-agent |

315| `tools` | Non | [Outils](#available-tools) que le sous-agent peut utiliser, sous forme de chaîne séparée par des virgules telle que `Read, Grep, Bash` ou une liste YAML. Hérite de tous les outils disponibles pour les sous-agents s'il est omis. Si aucune entrée de la liste ne se résout en un outil, le sous-agent échoue généralement au [lancement](/docs/fr/errors#agent-would-be-spawned-with-zero-tools) avec une erreur nommant les entrées. Pour précharger les Skills dans le contexte, utilisez le champ `skills` plutôt que de lister `Skill` ici |315| `tools` | Non | [Outils](#available-tools) que le sous-agent peut utiliser, sous forme de chaîne séparée par des virgules telle que `Read, Grep, Bash` ou une liste YAML. Hérite de tous les outils disponibles pour les sous-agents s'il est omis. Si aucune entrée de la liste ne se résout en un outil, le sous-agent échoue généralement au [lancement](/docs/fr/errors#agent-would-be-spawned-with-zero-tools) avec une erreur nommant les entrées. Pour précharger les Skills dans le contexte, utilisez le champ `skills` plutôt que de lister `Skill` ici |

316| `disallowedTools` | Non | Outils à refuser, supprimés de la liste héritée ou spécifiée. Même format que `tools`. Une entrée avec un spécificateur, tel que `Bash(git push *)`, supprime toujours l'[outil entier](#available-tools) |316| `disallowedTools` | Non | Outils à refuser, supprimés de la liste héritée ou spécifiée. Même format que `tools`. Une entrée avec un spécificateur, tel que `Bash(git push *)`, supprime toujours l'[outil entier](#available-tools) |


348 348 

349* **Pas de `name`** : Claude Code traite le fichier comme de la documentation conservée à côté de vos agents.349* **Pas de `name`** : Claude Code traite le fichier comme de la documentation conservée à côté de vos agents.

350* **Un `---` d'ouverture qui n'est pas la première ligne du fichier** : Claude Code lit le fichier comme n'ayant pas de frontmatter et le traite comme de la documentation.350* **Un `---` d'ouverture qui n'est pas la première ligne du fichier** : Claude Code lit le fichier comme n'ayant pas de frontmatter et le traite comme de la documentation.

351* **Un `name` qui commence par `-` ou contient `:`** : Claude Code ignore le fichier et écrit une erreur dans le journal de débogage. Consultez la ligne `name` dans le tableau ci-dessus.351* **Un `name` qui commence par `-`, contient `:` ou dépasse 256 caractères** : Claude Code ignore le fichier et écrit une erreur dans le journal de débogage.

352* **Un `name` mais pas de `description`** : Claude Code ignore le fichier et écrit la raison dans le journal de débogage.352* **Un `name` mais pas de `description`** : Claude Code ignore le fichier et écrit la raison dans le journal de débogage.

353* **YAML qui ne s'analyse pas** : Claude Code ne lit aucun champ du fichier, l'ignore et écrit l'erreur d'analyse dans le journal de débogage.353* **YAML qui ne s'analyse pas** : Claude Code ne lit aucun champ du fichier, l'ignore et écrit l'erreur d'analyse dans le journal de débogage.

354 354 

vs-code.md +1 −1

Details

606| `environmentVariables` | `[]` | Définissez les variables d'environnement pour le processus Claude. Utilisez plutôt les paramètres Claude Code pour la configuration partagée. Une entrée [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars) ne s'applique que si sa valeur est un chemin absolu ; l'extension ne développe pas `~` et ignore une valeur relative. |606| `environmentVariables` | `[]` | Définissez les variables d'environnement pour le processus Claude. Utilisez plutôt les paramètres Claude Code pour la configuration partagée. Une entrée [`CLAUDE_CONFIG_DIR`](/docs/fr/env-vars) ne s'applique que si sa valeur est un chemin absolu ; l'extension ne développe pas `~` et ignore une valeur relative. |

607| `disableLoginPrompt` | `false` | Ignorez les invites d'authentification (pour les configurations de fournisseur tiers) |607| `disableLoginPrompt` | `false` | Ignorez les invites d'authentification (pour les configurations de fournisseur tiers) |

608| `allowDangerouslySkipPermissions` | `false` | Ajoute Bypass permissions au sélecteur de mode. Utilisez-le uniquement dans les sandboxes sans accès à Internet. |608| `allowDangerouslySkipPermissions` | `false` | Ajoute Bypass permissions au sélecteur de mode. Utilisez-le uniquement dans les sandboxes sans accès à Internet. |

609| `claudeProcessWrapper` | - | Exécutable utilisé pour lancer le processus Claude. Le chemin binaire fourni est transmis en tant qu'argument lorsqu'il est présent. Définissez-le sur un binaire `claude` installé séparément si la version de l'extension n'en inclut pas un pour votre plateforme. Dans une configuration encapsulée, les conversations commencent en mode Manual sauf si vous définissez `initialPermissionMode` ou avez choisi Manual, Edit automatically ou Auto dans une conversation antérieure, car l'extension ignore les paramètres et les étapes par défaut intégrées là ; voir [Switch permission modes](/docs/fr/permission-modes#switch-permission-modes). Une erreur « Unsupported platform » à l'activation signifie qu'aucun binaire n'est fourni pour votre plateforme ; voir [which platforms have prebuilt binaries](/docs/fr/troubleshoot-install#native-binary-not-found-after-npm-install). |609| `claudeProcessWrapper` | - | Exécutable utilisé pour lancer le processus Claude. Le chemin binaire fourni est transmis en tant qu'argument lorsqu'il est présent. Définissez-le sur un binaire `claude` installé séparément si la version de l'extension n'en inclut pas un pour votre plateforme. |

610 610 

611<h2 id="use-a-screen-reader">611<h2 id="use-a-screen-reader">

612 Utiliser un lecteur d'écran612 Utiliser un lecteur d'écran

worktrees.md +3 −1

Details

6 6 

7> Isolez les sessions Claude Code parallèles dans des git worktrees séparés pour que les modifications ne se heurtent pas. Couvre le flag `--worktree`, l'isolation des subagents, `.worktreeinclude`, le nettoyage et les hooks VCS non-git.7> Isolez les sessions Claude Code parallèles dans des git worktrees séparés pour que les modifications ne se heurtent pas. Couvre le flag `--worktree`, l'isolation des subagents, `.worktreeinclude`, le nettoyage et les hooks VCS non-git.

8 8 

9Un [git worktree](https://git-scm.com/docs/git-worktree) est un répertoire de travail séparé avec ses propres fichiers et branche, partageant le même historique de dépôt et la même télécommande que votre extraction principale. Exécuter chaque session Claude Code dans son propre worktree signifie que les modifications dans une session ne touchent jamais les fichiers d'une autre, vous pouvez donc avoir Claude construisant une fonctionnalité dans un terminal tout en corrigeant un bug dans un second.9Un [git worktree](https://git-scm.com/docs/git-worktree) est un répertoire de travail séparé avec ses propres fichiers et branche, partageant le même historique de dépôt et le même dépôt distant que votre extraction principale. Exécuter chaque session Claude Code dans son propre worktree lui donne une copie séparée des fichiers à modifier, de sorte qu'une session peut développer une fonctionnalité pendant qu'une seconde corrige un bug.

10 10 

11<Note>11<Note>

12 Les worktrees nécessitent un dépôt git ; pour les autres systèmes de contrôle de version, [configurez des hooks pour remplacer la logique git](#non-git-version-control). Dans l'[application de bureau](/docs/fr/desktop#work-in-parallel-with-sessions), sélectionnez l'option **worktree** quand vous démarrez une session pour lui donner son propre worktree.12 Les worktrees nécessitent un dépôt git ; pour les autres systèmes de contrôle de version, [configurez des hooks pour remplacer la logique git](#non-git-version-control). Dans l'[application de bureau](/docs/fr/desktop#work-in-parallel-with-sessions), sélectionnez l'option **worktree** quand vous démarrez une session pour lui donner son propre worktree.


104* **Redirections Git** : Claude Code bloque une commande Bash ou Monitor qui redirige git vers l'extraction principale. La redirection peut provenir de `git -C`, `--git-dir`, une variable `GIT_DIR` ou `GIT_WORK_TREE`, ou un `cd` dans l'extraction principale avant d'exécuter git.104* **Redirections Git** : Claude Code bloque une commande Bash ou Monitor qui redirige git vers l'extraction principale. La redirection peut provenir de `git -C`, `--git-dir`, une variable `GIT_DIR` ou `GIT_WORK_TREE`, ou un `cd` dans l'extraction principale avant d'exécuter git.

105* **Forme de la commande** : Claude Code bloque une commande Bash ou Monitor quand il ne peut pas vérifier à partir du texte de la commande que tout git que la commande exécute reste à l'intérieur du worktree. Cela se produit, par exemple, quand le nom de la commande est calculé à l'exécution, quand la syntaxe ne peut pas être analysée, ou quand une expansion telle que `${!name}` ou `${ command; }` pourrait exécuter une commande que le texte ne précise pas. Claude Code indique à Claude comment réécrire la commande refusée, par exemple en la divisant en commandes simples et séparées. Vous ne pouvez pas désactiver cette vérification.105* **Forme de la commande** : Claude Code bloque une commande Bash ou Monitor quand il ne peut pas vérifier à partir du texte de la commande que tout git que la commande exécute reste à l'intérieur du worktree. Cela se produit, par exemple, quand le nom de la commande est calculé à l'exécution, quand la syntaxe ne peut pas être analysée, ou quand une expansion telle que `${!name}` ou `${ command; }` pourrait exécuter une commande que le texte ne précise pas. Claude Code indique à Claude comment réécrire la commande refusée, par exemple en la divisant en commandes simples et séparées. Vous ne pouvez pas désactiver cette vérification.

106 106 

107Ces vérifications lisent le chemin ciblé par une modification, le répertoire dans lequel une commande s'exécute et le texte de la commande. Aucune d'elles ne suit les fichiers qu'une commande shell écrit, de sorte qu'une commande qui écrit dans l'extraction principale sans y exécuter git, comme `cp` ou une redirection shell, n'est pas refusée par celles-ci. Claude Code traite cette commande comme n'importe quelle autre commande shell : le fait qu'elle s'exécute ou qu'elle vous demande une permission dépend donc de votre [mode de permission](/docs/fr/permission-modes) et de vos règles.

108 

107Les vérifications s'appliquent au dépôt à partir duquel vous avez lancé Claude Code. Elles couvrent également l'extraction principale à laquelle un worktree lié est lié. Pour les commandes PowerShell, Claude Code applique uniquement la vérification du répertoire de travail.109Les vérifications s'appliquent au dépôt à partir duquel vous avez lancé Claude Code. Elles couvrent également l'extraction principale à laquelle un worktree lié est lié. Pour les commandes PowerShell, Claude Code applique uniquement la vérification du répertoire de travail.

108 110 

109Claude voit chaque refus comme une erreur d'outil qui nomme le worktree et dit comment procéder. Pour une commande refusée, consultez [ce que le message de refus signifie et comment le résoudre](/docs/fr/errors#command-blocked-by-the-worktree-isolation-checks).111Claude voit chaque refus comme une erreur d'outil qui nomme le worktree et dit comment procéder. Pour une commande refusée, consultez [ce que le message de refus signifie et comment le résoudre](/docs/fr/errors#command-blocked-by-the-worktree-isolation-checks).