6 6
7> Contrôlez comment votre agent utilise les outils avec les modes de permission, les hooks et les règles déclaratives d'autorisation/refus.7> Contrôlez comment votre agent utilise les outils avec les modes de permission, les hooks et les règles déclaratives d'autorisation/refus.
8 8
9Le Claude Agent SDK fournit des contrôles de permission pour gérer la façon dont Claude utilise les outils. Utilisez les modes de permission et les règles pour définir ce qui est autorisé automatiquement, et le callback [`canUseTool`](/docs/fr/agent-sdk/user-input) pour gérer tout le reste à l'exécution.9Le Claude Agent SDK fournit des contrôles de permission pour gérer la façon dont Claude utilise les outils. Utilisez les modes de permission et les règles pour définir ce qui est autorisé automatiquement, et le callback [`canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input) pour gérer tout le reste à l'exécution.
10 10
11## Comment les permissions sont évaluées11## Comment les permissions sont évaluées
12 12
14 14
15**1. Hooks**15**1. Hooks**
16 16
17Exécutez d'abord les [hooks](/docs/fr/agent-sdk/hooks.md). Un hook peut refuser l'appel catégoriquement ou le transmettre. Un hook qui retourne `allow` ne contourne pas les règles de refus et de demande ci-dessous ; celles-ci sont évaluées indépendamment du résultat du hook.17Exécutez d'abord les [hooks](https://code.claude.com/docs/fr/agent-sdk/hooks.md). Un hook peut refuser l'appel catégoriquement ou le transmettre. Un hook qui retourne `allow` ne contourne pas les règles de refus et de demande ci-dessous ; celles-ci sont évaluées indépendamment du résultat du hook.
18 18
19Un hook `PreToolUse` qui retourne `allow` ne peut pas non plus approuver une commande `rm` ou `rmdir` dont Claude Code reconnaît la cible comme un [chemin critique](/docs/fr/permission-modes.md#critical-paths), par exemple `rm -rf ~`. Pour savoir ce que fait ce `allow` en mode plan, consultez [Approbations par hook en mode plan](/docs/fr/permissions.md#hook-approvals-in-plan-mode).19Un hook `PreToolUse` qui retourne `allow` ne peut pas non plus approuver une commande `rm` ou `rmdir` dont Claude Code reconnaît la cible comme un [chemin critique](https://code.claude.com/docs/fr/permission-modes.md#critical-paths), par exemple `rm -rf ~`. Pour savoir ce que fait ce `allow` en mode plan, consultez [Approbations par hook en mode plan](https://code.claude.com/docs/fr/permissions.md#hook-approvals-in-plan-mode).
20 20
21**2. Règles de refus**21**2. Règles de refus**
22 22
23Vérifiez les règles `deny` (à partir de `disallowed_tools` et [settings.json](/docs/fr/settings-reference.md#permission-settings)). Si une règle de refus correspond, l'outil est bloqué, même en mode `bypassPermissions`. Les règles de refus sans nom comme `Bash` suppriment l'outil du contexte de Claude avant que cette évaluation ne commence, donc seules les règles délimitées comme `Bash(rm *)` sont vérifiées à cette étape.23Vérifiez les règles `deny` (à partir de `disallowed_tools` et [settings.json](https://code.claude.com/docs/fr/settings-reference.md#permission-settings)). Si une règle de refus correspond, l'outil est bloqué, même en mode `bypassPermissions`. Les règles de refus sans nom comme `Bash` suppriment l'outil du contexte de Claude avant que cette évaluation ne commence, donc seules les règles délimitées comme `Bash(rm *)` sont vérifiées à cette étape.
24 24
25**3. Règles de demande**25**3. Règles de demande**
26 26
27Vérifiez les règles `ask` à partir de [settings.json](/docs/fr/settings-reference.md#permission-settings). Si une règle de demande correspond, l'appel passe à votre callback [`canUseTool`](/docs/fr/agent-sdk/user-input) pour confirmation, même en mode `bypassPermissions`.27Vérifiez les règles `ask` à partir de [settings.json](https://code.claude.com/docs/fr/settings-reference.md#permission-settings). Si une règle de demande correspond, l'appel passe à votre callback [`canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input) pour confirmation, même en mode `bypassPermissions`.
28 28
29Les outils qui nécessitent une interaction utilisateur se comportent de la même manière : `AskUserQuestion` et les outils MCP dont le serveur définit [`_meta["anthropic/requiresUserInteraction"]`](/docs/fr/mcp#require-approval-for-a-specific-tool) passent toujours au callback, même lorsqu'une règle allow correspond. En mode `dontAsk`, les deux cas sont refusés à la place, car ce mode ne demande jamais. L'annotation MCP nécessite Claude Code v2.1.199 ou ultérieur.29Les outils qui nécessitent une interaction utilisateur se comportent de la même manière : `AskUserQuestion` et les outils MCP dont le serveur définit [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool) passent toujours au callback, même lorsqu'une règle allow correspond. En mode `dontAsk`, les deux cas sont refusés à la place, car ce mode ne demande jamais. L'annotation MCP nécessite Claude Code v2.1.199 ou ultérieur.
30 30
31Les outils du connecteur [claude.ai](/docs/fr/mcp.md#organization-controls-on-connector-tools) que votre organisation a définis sur `ask` quittent également le flux à cette étape. Chaque appel passe au callback, même en mode `bypassPermissions` et même lorsqu'une règle allow correspond. Le callback reçoit la raison `Your organization requires approval for this tool`. En mode `dontAsk`, l'appel est refusé à la place, car ce mode ne demande jamais.31Les outils du connecteur [claude.ai](https://code.claude.com/docs/fr/mcp.md#organization-controls-on-connector-tools) que votre organisation a définis sur `ask` quittent également le flux à cette étape. Chaque appel passe au callback, même en mode `bypassPermissions` et même lorsqu'une règle allow correspond. Le callback reçoit la raison `Your organization requires approval for this tool`. En mode `dontAsk`, l'appel est refusé à la place, car ce mode ne demande jamais.
32 32
33**4. Mode de permission**33**4. Mode de permission**
34 34
35Appliquez le [mode de permission](#permission-modes) actif :35Appliquez le [mode de permission](#permission-modes) actif :
36 36
37* En mode `bypassPermissions`, Claude Code approuve tout ce qui atteint cette étape sauf les [suppressions de chemins critiques](/docs/fr/permission-modes.md#critical-paths) reconnues, qui passent à la place.37* En mode `bypassPermissions`, Claude Code approuve tout ce qui atteint cette étape sauf les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues, qui passent à la place.
38* En mode `acceptEdits`, Claude Code approuve les opérations de fichier listées sous [Mode Accept edits](#accept-edits-mode-acceptedits).38* En mode `acceptEdits`, Claude Code approuve les opérations de fichier listées sous [Mode Accept edits](#accept-edits-mode-acceptedits).
39* En mode `plan`, Claude Code envoie les outils de modification de fichier et d'écriture shell à votre callback `canUseTool` indépendamment des règles allow, afin que les opérations d'écriture ne puissent pas être approuvées automatiquement lors de la planification.39* En mode `plan`, Claude Code envoie les outils de modification de fichier et d'écriture shell à votre callback `canUseTool` indépendamment des règles allow, afin que les opérations d'écriture ne puissent pas être approuvées automatiquement lors de la planification.
40* Dans les autres modes, la demande passe.40* Dans les autres modes, la demande passe.
41 41
42**5. Règles d'autorisation**42**5. Règles d'autorisation**
43 43
44Vérifiez les règles `allow` (à partir de `allowed_tools` et settings.json). Si une règle correspond, l'outil est approuvé. Un appel que l'outil approuve de lui-même est résolu à cette étape aussi, sans règle nécessaire : par exemple une lecture de fichier dans vos répertoires de travail ou une [commande Bash en lecture seule](/docs/fr/permissions.md#read-only-commands).44Vérifiez les règles `allow` (à partir de `allowed_tools` et settings.json). Si une règle correspond, l'outil est approuvé. Un appel que l'outil approuve de lui-même est résolu à cette étape aussi, sans règle nécessaire : par exemple une lecture de fichier dans vos répertoires de travail ou une [commande Bash en lecture seule](https://code.claude.com/docs/fr/permissions.md#read-only-commands).
45 45
46Les [suppressions de chemins critiques](/docs/fr/permission-modes.md#critical-paths) reconnues ne sont pas approuvées par une règle allow. Qu'elles atteignent ensuite votre callback dépend du mode de permission : dans une session Agent SDK en mode `auto`, par exemple, Claude Code les refuse par défaut sans l'appeler. Le [tableau des modes pour les chemins critiques](/docs/fr/permission-modes.md#critical-path-removals-in-each-permission-mode) liste ce que chaque mode fait avec elles.46Les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues ne sont pas approuvées par une règle allow. Qu'elles atteignent ensuite votre callback dépend du mode de permission : dans une session Agent SDK en mode `auto`, par exemple, Claude Code les refuse par défaut sans l'appeler. Le [tableau des modes pour les chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-path-removals-in-each-permission-mode) liste ce que chaque mode fait avec elles.
47 47
48Une règle allow n'approuve pas une lecture depuis un [chemin réseau](/docs/fr/permissions.md#network-paths).48Une règle allow n'approuve pas une lecture depuis un [chemin réseau](https://code.claude.com/docs/fr/permissions.md#network-paths).
49 49
50**6. Callback canUseTool**50**6. Callback canUseTool**
51 51
52Si aucune des étapes ci-dessus ne l'a résolu, appelez votre callback [`canUseTool`](/docs/fr/agent-sdk/user-input) pour une décision. En mode `dontAsk`, cette étape est ignorée et l'outil est refusé, bien qu'un [mod](/docs/fr/plugins/mods/overview.md) que vous avez installé puisse toujours approuver [certains de ces appels](/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).52Si aucune des étapes ci-dessus ne l'a résolu, appelez votre callback [`canUseTool`](https://code.claude.com/docs/fr/agent-sdk/user-input) pour une décision. En mode `dontAsk`, cette étape est ignorée et l'outil est refusé, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse toujours approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).
53 53
54Dans le SDK TypeScript, si vous définissez [`permissionPrompts: 'none'`](/docs/fr/agent-sdk/typescript#options), votre callback n'est pas appelé à cette étape. Un hook [`PermissionRequest`](/docs/fr/hooks#permissionrequest) a toujours une chance de décider, et s'il ne le fait pas, Claude Code refuse l'appel. L'option nécessite Claude Code v2.1.259 ou ultérieur.54Dans le SDK TypeScript, si vous définissez [`permissionPrompts: 'none'`](https://code.claude.com/docs/fr/agent-sdk/typescript#options), votre callback n'est pas appelé à cette étape. Un hook [`PermissionRequest`](https://code.claude.com/docs/fr/hooks#permissionrequest) a toujours une chance de décider, et s'il ne le fait pas, Claude Code refuse l'appel. L'option nécessite Claude Code v2.1.259 ou ultérieur.
55 55
5656
57 57
58Si vous transmettez un callback `canUseTool` dans une configuration où le SDK TypeScript s'attend à ce que l'ordre d'évaluation approuve automatiquement les appels avant que le callback ne soit consulté, le SDK émet un avertissement de processus Node.js une fois lorsque la requête est construite. Le code de l'avertissement est `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Deux configurations le déclenchent :58Si vous transmettez un callback `canUseTool` dans une configuration où le SDK TypeScript s'attend à ce que l'ordre d'évaluation approuve automatiquement les appels avant que le callback ne soit consulté, le SDK émet un avertissement de processus Node.js une fois lorsque la requête est construite. Le code de l'avertissement est `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Deux configurations le déclenchent :
59 59
60* `permissionMode: 'bypassPermissions'`, qui approuve automatiquement chaque appel qui atteint l'étape du mode de permission à l'exception des [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes.md#actions-no-mode-auto-approves)60* `permissionMode: 'bypassPermissions'`, qui approuve automatiquement chaque appel qui atteint l'étape du mode de permission à l'exception des [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves)
61* Chaque entrée `allowedTools` sans nom comme `"Read"`, qui approuve automatiquement cet outil entier avant que le callback ne soit consulté, à l'exception des [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et des [lectures depuis des chemins réseau](/docs/fr/permissions.md#network-paths)61* Chaque entrée `allowedTools` sans nom comme `"Read"`, qui approuve automatiquement cet outil entier avant que le callback ne soit consulté, à l'exception des [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et des [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths)
62 62
63Les entrées avec un spécificateur comme `Bash(ls *)` et le mode `acceptEdits` ne le déclenchent pas, et les règles d'autorisation provenant de fichiers de paramètres ne sont pas visibles pour la vérification.63Les entrées avec un spécificateur comme `Bash(ls *)` et le mode `acceptEdits` ne le déclenchent pas, et les règles d'autorisation provenant de fichiers de paramètres ne sont pas visibles pour la vérification.
64 64
65Écoutez avec `process.on('warning', ...)` et faites correspondre le code pour le journaliser ou le supprimer. Pour contrôler chaque appel d'outil indépendamment du mode et des règles, utilisez plutôt un [hook `PreToolUse`](/docs/fr/agent-sdk/hooks).65Écoutez avec `process.on('warning', ...)` et faites correspondre le code pour le journaliser ou le supprimer. Pour contrôler chaque appel d'outil indépendamment du mode et des règles, utilisez plutôt un [hook `PreToolUse`](https://code.claude.com/docs/fr/agent-sdk/hooks).
66 66
67Cette page se concentre sur les **règles d'autorisation et de refus** et les **modes de permission**. Pour les autres étapes :67Cette page se concentre sur les **règles d'autorisation et de refus** et les **modes de permission**. Pour les autres étapes :
68 68
69* **Hooks :** exécutez du code personnalisé pour autoriser, refuser ou modifier les demandes d'outils. Voir [Contrôler l'exécution avec les hooks](/docs/fr/agent-sdk/hooks.md).69* **Hooks :** exécutez du code personnalisé pour autoriser, refuser ou modifier les demandes d'outils. Voir [Contrôler l'exécution avec les hooks](https://code.claude.com/docs/fr/agent-sdk/hooks.md).
70* **Callback canUseTool :** invitez les utilisateurs à approuver au moment de l'exécution, lorsqu'aucune étape antérieure ne résout l'appel. Voir [Gérer les approbations et l'entrée utilisateur](/docs/fr/agent-sdk/user-input.md).70* **Callback canUseTool :** invitez les utilisateurs à approuver au moment de l'exécution, lorsqu'aucune étape antérieure ne résout l'appel. Voir [Gérer les approbations et l'entrée utilisateur](https://code.claude.com/docs/fr/agent-sdk/user-input.md).
71 71
72## Règles d'autorisation et de refus72## Règles d'autorisation et de refus
73 73
74`allowed_tools` et `disallowed_tools` (TypeScript : `allowedTools` / `disallowedTools`) ajoutent des entrées aux listes de règles d'autorisation et de refus dans le flux d'évaluation ci-dessus. Si vous nommez l'un des [outils de suivi des tâches](/docs/fr/agent-sdk/todo-tracking.md#model-availability) dans `allowed_tools`, Claude Code active également ces outils pour la session. Tout autre outil non listé dans `allowed_tools` reste disponible pour Claude, et un appel à celui-ci qui nécessite une approbation tombe dans le mode de permission. Les règles de refus se comportent différemment selon qu'elles nomment un outil ou délimitent un motif au sein de celui-ci.74`allowed_tools` et `disallowed_tools` (TypeScript : `allowedTools` / `disallowedTools`) ajoutent des entrées aux listes de règles d'autorisation et de refus dans le flux d'évaluation ci-dessus. Si vous nommez l'un des [outils de suivi des tâches](https://code.claude.com/docs/fr/agent-sdk/todo-tracking.md#model-availability) dans `allowed_tools`, Claude Code active également ces outils pour la session. Tout autre outil non listé dans `allowed_tools` reste disponible pour Claude, et un appel à celui-ci qui nécessite une approbation tombe dans le mode de permission. Les règles de refus se comportent différemment selon qu'elles nomment un outil ou délimitent un motif au sein de celui-ci.
75 75
76| Option | Effet |76| Option | Effet |
77| :- | :- |77| :- | :- |
78| `allowed_tools=["Read", "Grep"]` | `Read` et `Grep` sont approuvés automatiquement, à l'exception des [lectures depuis des chemins réseau](/docs/fr/permissions.md#network-paths). Les autres outils non listés ici existent toujours, et les appels à ceux-ci qui nécessitent une approbation tombent dans le mode de permission et `canUseTool`. |78| `allowed_tools=["Read", "Grep"]` | `Read` et `Grep` sont approuvés automatiquement, à l'exception des [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths). Les autres outils non listés ici existent toujours, et les appels à ceux-ci qui nécessitent une approbation tombent dans le mode de permission et `canUseTool`. |
79| `disallowed_tools=["Bash"]` | La définition de l'outil `Bash` est supprimée de la requête. Claude ne voit pas l'outil et ne peut pas le tenter. |79| `disallowed_tools=["Bash"]` | La définition de l'outil `Bash` est supprimée de la requête. Claude ne voit pas l'outil et ne peut pas le tenter. |
80| `disallowed_tools=["Bash(rm *)"]` | `Bash` reste disponible. Les appels correspondant à `rm *` [tel qu'écrit](/docs/fr/permissions.md#bash-rule-limits) sont refusés dans tous les modes de permission, y compris `bypassPermissions`. Les autres appels `Bash`, y compris `/bin/rm`, tombent dans le mode de permission. |80| `disallowed_tools=["Bash(rm *)"]` | `Bash` reste disponible. Les appels correspondant à `rm *` [tel qu'écrit](https://code.claude.com/docs/fr/permissions.md#bash-rule-limits) sont refusés dans tous les modes de permission, y compris `bypassPermissions`. Les autres appels `Bash`, y compris `/bin/rm`, tombent dans le mode de permission. |
81| `disallowed_tools=["*"]` | Chaque définition d'outil est supprimée de la requête. Les globs de noms d'outils sont pris en charge dans les règles de refus : `"*"` correspond à chaque outil et `"mcp__*"` correspond à chaque outil MCP sur tous les serveurs. |81| `disallowed_tools=["*"]` | Chaque définition d'outil est supprimée de la requête. Les globs de noms d'outils sont pris en charge dans les règles de refus : `"*"` correspond à chaque outil et `"mcp__*"` correspond à chaque outil MCP sur tous les serveurs. |
82 82
83Les règles d'autorisation acceptent les globs de noms d'outils uniquement après un préfixe littéral `mcp__<server>__`. Le segment serveur doit être sans glob afin que la règle nomme un serveur spécifique que vous avez configuré : `mcp__puppeteer__*` correspond à chaque outil du serveur `puppeteer`, et `mcp__github__get_*` correspond à ses outils `get_`. Une entrée non ancrée comme `allowed_tools=["*"]` ou `allowed_tools=["mcp__*"]` est ignorée et n'approuve automatiquement rien.83Les règles d'autorisation acceptent les globs de noms d'outils uniquement après un préfixe littéral `mcp__<server>__`. Le segment serveur doit être sans glob afin que la règle nomme un serveur spécifique que vous avez configuré : `mcp__puppeteer__*` correspond à chaque outil du serveur `puppeteer`, et `mcp__github__get_*` correspond à ses outils `get_`. Une entrée non ancrée comme `allowed_tools=["*"]` ou `allowed_tools=["mcp__*"]` est ignorée et n'approuve automatiquement rien.
84 84
85Les règles délimitées pour `Read` et `Edit` prennent un motif de chemin. Les règles `Edit(path)` régissent tous les outils intégrés qui écrivent des fichiers, y compris `Write` et `NotebookEdit` ; une règle `Write(path)` n'est jamais mise en correspondance par les vérifications de permission de fichier.85Les règles délimitées pour `Read` et `Edit` prennent un motif de chemin. Les règles `Edit(path)` régissent tous les outils intégrés qui écrivent des fichiers, y compris `Write` et `NotebookEdit` ; une règle `Write(path)` n'est jamais mise en correspondance par les vérifications de permission de fichier.
86 86
87Utilisez `//path` pour un chemin du système de fichiers absolu : une règle de refus de `Edit(//secrets/**)` bloque les écritures n'importe où sous `/secrets` sur le disque. Avec une seule barre oblique, `Edit(/secrets/**)` s'ancre à la source de la règle à la place. Pour les règles transmises via `allowed_tools` ou `disallowed_tools`, cela signifie le répertoire de travail de la session, donc la règle ne bloque pas `/secrets` sur le disque. Voir [Règles Read et Edit](/docs/fr/permissions.md#read-and-edit) pour les quatre formes d'ancrage et comment les règles des fichiers de paramètres se résolvent.87Utilisez `//path` pour un chemin du système de fichiers absolu : une règle de refus de `Edit(//secrets/**)` bloque les écritures n'importe où sous `/secrets` sur le disque. Avec une seule barre oblique, `Edit(/secrets/**)` s'ancre à la source de la règle à la place. Pour les règles transmises via `allowed_tools` ou `disallowed_tools`, cela signifie le répertoire de travail de la session, donc la règle ne bloque pas `/secrets` sur le disque. Voir [Règles Read et Edit](https://code.claude.com/docs/fr/permissions.md#read-and-edit) pour les quatre formes d'ancrage et comment les règles des fichiers de paramètres se résolvent.
88 88
89> [!WARNING]89> [!WARNING]
90>90>
91> **Les outils approuvés automatiquement n'atteignent jamais `canUseTool`.** Un appel d'outil approuvé à n'importe quelle étape antérieure, par `acceptEdits` ou `bypassPermissions`, ou par une règle d'autorisation, ignore votre rappel `canUseTool`, donc les vérifications de permission que vous y mettez sont silencieusement contournées pour cet outil.91> **Les outils approuvés automatiquement n'atteignent jamais `canUseTool`.** Un appel d'outil approuvé à n'importe quelle étape antérieure, par `acceptEdits` ou `bypassPermissions`, ou par une règle d'autorisation, ignore votre rappel `canUseTool`, donc les vérifications de permission que vous y mettez sont silencieusement contournées pour cet outil.
92>92>
93> Une règle d'autorisation n'approuve jamais automatiquement `AskUserQuestion`, les outils MCP marqués [`_meta["anthropic/requiresUserInteraction"]`](/docs/fr/mcp#require-approval-for-a-specific-tool), les outils connecteur [que votre organisation a définis sur `ask`](/docs/fr/mcp#organization-controls-on-connector-tools), ou les [suppressions de chemins critiques](/docs/fr/permission-modes.md#critical-paths) `rm` et `rmdir` reconnues. En mode `dontAsk`, Claude Code refuse ces appels sans invoquer le rappel. Dans les autres modes, les trois premiers atteignent le rappel. Le [tableau des modes pour les chemins critiques](/docs/fr/permission-modes.md#critical-path-removals-in-each-permission-mode) indique ce que fait chaque mode d'une suppression de chemin critique. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](/docs/fr/permission-modes.md#critical-paths).93> Une règle d'autorisation n'approuve jamais automatiquement `AskUserQuestion`, les outils MCP marqués [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/fr/mcp#require-approval-for-a-specific-tool), les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), ou les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) `rm` et `rmdir` reconnues. En mode `dontAsk`, Claude Code refuse ces appels sans invoquer le rappel. Dans les autres modes, les trois premiers atteignent le rappel. Le [tableau des modes pour les chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-path-removals-in-each-permission-mode) indique ce que fait chaque mode d'une suppression de chemin critique. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](https://code.claude.com/docs/fr/permission-modes.md#critical-paths).
94>94>
95> La couverture dépend de la forme de l'entrée : un nom nu comme `Read` ou `mcp__github__get_issue` approuve automatiquement chaque appel à cet outil en dehors de ces exceptions et des [lectures depuis des chemins réseau](/docs/fr/permissions.md#network-paths), tandis qu'une règle délimitée comme `Bash(npm test *)` approuve automatiquement uniquement les appels correspondants, et les autres appels `Bash` qui nécessitent une approbation tombent toujours dans le rappel. Pour les vérifications qui doivent s'exécuter sur chaque appel d'outil, utilisez un [hook `PreToolUse`](/docs/fr/agent-sdk/hooks) : les hooks s'exécutent avant chaque autre étape, et un refus de hook s'applique même en mode `bypassPermissions`.95> La couverture dépend de la forme de l'entrée : un nom nu comme `Read` ou `mcp__github__get_issue` approuve automatiquement chaque appel à cet outil en dehors de ces exceptions et des [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths), tandis qu'une règle délimitée comme `Bash(npm test *)` approuve automatiquement uniquement les appels correspondants, et les autres appels `Bash` qui nécessitent une approbation tombent toujours dans le rappel. Pour les vérifications qui doivent s'exécuter sur chaque appel d'outil, utilisez un [hook `PreToolUse`](https://code.claude.com/docs/fr/agent-sdk/hooks) : les hooks s'exécutent avant chaque autre étape, et un refus de hook s'applique même en mode `bypassPermissions`.
96 96
97Pour un agent verrouillé, associez `allowedTools` avec `permissionMode: "dontAsk"` :97Pour un agent verrouillé, associez `allowedTools` avec `permissionMode: "dontAsk"` :
98 98
103};103};
104```104```
105 105
106Les outils listés sont approuvés, en dehors des [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et des [lectures depuis des chemins réseau](/docs/fr/permissions.md#network-paths). Chaque autre appel qui déclencherait une demande est refusé à la place, bien qu'un [mod](/docs/fr/plugins/mods/overview.md) que vous avez installé puisse toujours approuver [certains de ces appels](/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).106Les outils listés sont approuvés, en dehors des [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) et des [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths). Chaque autre appel qui déclencherait une demande est refusé à la place, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse toujours approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods).
107 107
108Les appels qui ne nécessitent aucune approbation en mode `default` s'exécutent que vous les listiez ou non. Ils incluent les [commandes Bash en lecture seule](/docs/fr/permissions.md#read-only-commands), les outils comme `Agent` qui ne demandent pas avant d'exécuter, et les lectures de fichiers dans vos répertoires de travail. Pour supprimer entièrement un outil de la requête, ajoutez son nom nu à `disallowedTools`.108Les appels qui ne nécessitent aucune approbation en mode `default` s'exécutent que vous les listiez ou non. Ils incluent les [commandes Bash en lecture seule](https://code.claude.com/docs/fr/permissions.md#read-only-commands), les outils comme `Agent` qui ne demandent pas avant d'exécuter, et les lectures de fichiers dans vos répertoires de travail. Pour supprimer entièrement un outil de la requête, ajoutez son nom nu à `disallowedTools`.
109 109
110> [!WARNING]110> [!WARNING]
111>111>
112> **`allowed_tools` ne contraint pas `bypassPermissions`.** `allowed_tools` pré-approuve les outils que vous listez. Les autres outils non listés ne sont pas mis en correspondance par aucune règle d'autorisation et tombent dans le mode de permission, où `bypassPermissions` les approuve. Définir `allowed_tools=["Read"]` aux côtés de `permission_mode="bypassPermissions"` approuve toujours chaque outil, y compris `Bash`, `Write`, et `Edit`. Si vous avez besoin de `bypassPermissions` mais que vous voulez que des outils spécifiques soient bloqués, utilisez `disallowed_tools`.112> **`allowed_tools` ne contraint pas `bypassPermissions`.** `allowed_tools` pré-approuve les outils que vous listez. Les autres outils non listés ne sont pas mis en correspondance par aucune règle d'autorisation et tombent dans le mode de permission, où `bypassPermissions` les approuve. Définir `allowed_tools=["Read"]` aux côtés de `permission_mode="bypassPermissions"` approuve toujours chaque outil, y compris `Bash`, `Write`, et `Edit`. Si vous avez besoin de `bypassPermissions` mais que vous voulez que des outils spécifiques soient bloqués, utilisez `disallowed_tools`.
113 113
114Vous pouvez également configurer les règles d'autorisation, de refus et de demande de manière déclarative dans `.claude/settings.json`. Ces règles sont lues lorsque la source de paramètre `project` est activée, ce qu'elle est pour les options `query()` par défaut. Si vous définissez `setting_sources` (TypeScript : `settingSources`) explicitement, incluez `"project"` pour qu'elles s'appliquent. Voir [Paramètres de permission](/docs/fr/settings-reference.md#permission-settings) pour la syntaxe des règles.114Vous pouvez également configurer les règles d'autorisation, de refus et de demande de manière déclarative dans `.claude/settings.json`. Ces règles sont lues lorsque la source de paramètre `project` est activée, ce qu'elle est pour les options `query()` par défaut. Si vous définissez `setting_sources` (TypeScript : `settingSources`) explicitement, incluez `"project"` pour qu'elles s'appliquent. Voir [Paramètres de permission](https://code.claude.com/docs/fr/settings-reference.md#permission-settings) pour la syntaxe des règles.
115 115
116## Modes de permission116## Modes de permission
117 117
118Les modes de permission offrent un contrôle global sur la façon dont Claude utilise les outils. Vous pouvez définir le mode de permission lors de l'appel de `query()` ou le modifier dynamiquement pendant les sessions de streaming.118Les modes de permission offrent un contrôle global sur la façon dont Claude utilise les outils. Vous pouvez définir le mode de permission lors de l'appel de `query()` ou le modifier dynamiquement pendant les sessions de streaming.
119 119
120Avec Claude Code v2.1.302 ou ultérieur, votre application démarre en mode `default`, sauf si vous définissez un mode de permission ou si elle en obtient un via [`permissions.defaultMode`](/docs/fr/settings-reference#permissions-defaultmode) dans ses fichiers de paramètres. En mode `default`, Claude Code refuse tout appel d'outil nécessitant une approbation, sauf si vous l'approuvez via une règle d'autorisation, un hook, un rappel `canUseTool` ou un outil de demande de permission. Si des appels d'outils sont refusés, consultez [Appels d'outils refusés dans `claude -p` et les exécutions de l'Agent SDK](/docs/fr/permission-modes#which-mode-a-non-interactive-run-starts-in).120Avec Claude Code v2.1.302 ou ultérieur, votre application démarre en mode `default`, sauf si vous définissez un mode de permission ou si elle en obtient un via [`permissions.defaultMode`](https://code.claude.com/docs/fr/settings-reference#permissions-defaultmode) dans ses fichiers de paramètres. En mode `default`, Claude Code refuse tout appel d'outil nécessitant une approbation, sauf si vous l'approuvez via une règle d'autorisation, un hook, un rappel `canUseTool` ou un outil de demande de permission. Si des appels d'outils sont refusés, consultez [Appels d'outils refusés dans `claude -p` et les exécutions de l'Agent SDK](https://code.claude.com/docs/fr/permission-modes#which-mode-a-non-interactive-run-starts-in).
121 121
122### Modes disponibles122### Modes disponibles
123 123
126| Mode | Description | Comportement des outils |126| Mode | Description | Comportement des outils |
127| :- | :- | :- |127| :- | :- | :- |
128| `default` | Comportement de permission standard | Pas d'approbations automatiques basées sur le mode ; les appels qui nécessitent une approbation et ne correspondent à aucune règle d'autorisation déclenchent votre rappel `canUseTool` |128| `default` | Comportement de permission standard | Pas d'approbations automatiques basées sur le mode ; les appels qui nécessitent une approbation et ne correspondent à aucune règle d'autorisation déclenchent votre rappel `canUseTool` |
129| `dontAsk` | Refuser au lieu de demander | Tout appel qui déclencherait autrement une demande est refusé sans appeler `canUseTool`, bien qu'un [mod](/docs/fr/plugins/mods/overview.md) que vous avez installé puisse encore approuver [certains de ces appels](/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Les appels approuvés par `allowed_tools` ou par les règles d'autorisation de `settings.json` s'exécutent, tout comme les appels qui ne nécessitent pas d'approbation en mode `default`. Certains appels, tels que les [lectures depuis des chemins réseau](/docs/fr/permissions.md#network-paths), sont refusés même lorsque `allowed_tools` ou une règle d'autorisation leur correspond. Pour la liste, consultez [Mode ne pas demander](#don’t-ask-mode-dontask) |129| `dontAsk` | Refuser au lieu de demander | Tout appel qui déclencherait autrement une demande est refusé sans appeler `canUseTool`, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse encore approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Les appels approuvés par `allowed_tools` ou par les règles d'autorisation de `settings.json` s'exécutent, tout comme les appels qui ne nécessitent pas d'approbation en mode `default`. Certains appels, tels que les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths), sont refusés même lorsque `allowed_tools` ou une règle d'autorisation leur correspond. Pour la liste, consultez [Mode ne pas demander](#don’t-ask-mode-dontask) |
130| `acceptEdits` | Accepter automatiquement les modifications de fichiers | Les modifications de fichiers et les [opérations du système de fichiers](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, etc.) sont automatiquement approuvées |130| `acceptEdits` | Accepter automatiquement les modifications de fichiers | Les modifications de fichiers et les [opérations du système de fichiers](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv`, etc.) sont automatiquement approuvées |
131| `bypassPermissions` | Contourner les vérifications de permission | Les outils s'exécutent sans invites de permission, sauf pour les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes.md#actions-no-mode-auto-approves). À utiliser avec prudence |131| `bypassPermissions` | Contourner les vérifications de permission | Les outils s'exécutent sans invites de permission, sauf pour les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves). À utiliser avec prudence |
132| `plan` | Mode de planification | Claude explore et planifie sans modifier vos fichiers source ; les modifications de fichiers ne sont jamais approuvées automatiquement et demandent via votre rappel `canUseTool` |132| `plan` | Mode de planification | Claude explore et planifie sans modifier vos fichiers source ; les modifications de fichiers ne sont jamais approuvées automatiquement et demandent via votre rappel `canUseTool` |
133| `auto` | Approbations classées par le modèle | Un classificateur de modèle examine les actions telles que les commandes shell et les demandes réseau, en approuvant ou en bloquant chacune qu'il examine. Voir [Mode Auto](/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) pour la disponibilité et l'ordre de décision |133| `auto` | Approbations classées par le modèle | Un classificateur de modèle examine les actions telles que les commandes shell et les demandes réseau, en approuvant ou en bloquant chacune qu'il examine. Voir [Mode Auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) pour la disponibilité et l'ordre de décision |
134 134
135> [!WARNING]135> [!WARNING]
136>136>
137> **Héritage des sous-agents :** Un sous-agent s'exécute dans le mode de permission de la session parent sauf si vous définissez `permissionMode` sur son [`AgentDefinition`](/docs/fr/agent-sdk/typescript#agentdefinition) et que la session parent est en mode `default`, `dontAsk` ou `plan`. Même dans ce cas, Claude Code n'applique jamais une valeur `"bypassPermissions"`, et n'applique une valeur `"auto"` que lorsque le [mode auto est disponible](/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) pour ce sous-agent. Un sous-agent s'exécute en mode `bypassPermissions` uniquement lorsque la session parent elle-même le fait. L'exception `bypassPermissions` nécessite Claude Code v2.1.267 ou ultérieur.137> **Héritage des sous-agents :** Si votre session principale est en [mode plan](https://code.claude.com/docs/fr/permission-modes.md#analyze-before-you-edit-with-plan-mode), un sous-agent dont l'[`AgentDefinition`](https://code.claude.com/docs/fr/agent-sdk/typescript#agentdefinition) définit `permissionMode: "acceptEdits"` s'exécute tout de même en mode plan. Les appels `Edit` et `Write` de ce sous-agent sur vos fichiers source sont toujours transmis à votre rappel `canUseTool`. Le mode plan s'applique également aux sous-agents que vous définissez, de sorte que confier du travail à l'un d'eux ne permet pas de contourner la revue préalable du plan.
138>138>
139> Les sous-agents peuvent avoir des invites système différentes et un comportement moins contraint que votre agent principal, donc hériter de `bypassPermissions` leur accorde un accès système complet et autonome. Les [actions qu'aucun mode n'approuve automatiquement](/docs/fr/permission-modes.md#actions-no-mode-auto-approves) s'appliquent toujours.139> Le sous-agent hérite de `plan`, `acceptEdits`, `auto` ou `bypassPermissions` de la session principale, et sous une session principale en mode `default` ou `dontAsk`, il s'exécute dans le mode que vous définissez. Même dans ce cas, Claude Code n'applique jamais une valeur `"bypassPermissions"`, et n'applique une valeur `"auto"` que lorsque le [mode auto est disponible](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode) pour ce sous-agent. L'exception `bypassPermissions` nécessite Claude Code v2.1.267 ou ultérieur.
140>
141> Les sous-agents peuvent avoir des invites système différentes et un comportement moins contraint que votre agent principal, donc hériter de `bypassPermissions` leur accorde un accès système complet et autonome. Les [actions qu'aucun mode n'approuve automatiquement](https://code.claude.com/docs/fr/permission-modes.md#actions-no-mode-auto-approves) s'appliquent toujours.
140 142
141### Définir le mode de permission143### Définir le mode de permission
142 144
253 255
254* Travaille sur un chemin en dehors de cette portée256* Travaille sur un chemin en dehors de cette portée
255* Écrit dans un chemin protégé257* Écrit dans un chemin protégé
256* Supprime avec `rm` ou `rmdir` un chemin que Claude Code reconnaît comme un [chemin critique](/docs/fr/permission-modes.md#critical-paths)258* Supprime avec `rm` ou `rmdir` un chemin que Claude Code reconnaît comme un [chemin critique](https://code.claude.com/docs/fr/permission-modes.md#critical-paths)
257 259
258**À utiliser quand :** vous faites confiance aux modifications de Claude et souhaitez une itération plus rapide, par exemple lors du prototypage ou lorsque vous travaillez dans un répertoire isolé.260**À utiliser quand :** vous faites confiance aux modifications de Claude et souhaitez une itération plus rapide, par exemple lors du prototypage ou lorsque vous travaillez dans un répertoire isolé.
259 261
260#### Mode ne pas demander (`dontAsk`)262#### Mode ne pas demander (`dontAsk`)
261 263
262Convertit toute demande de permission en refus, sans appeler `canUseTool`, bien qu'un [mod](/docs/fr/plugins/mods/overview.md) que vous avez installé puisse encore approuver [certains de ces appels](/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Les outils pré-approuvés par `allowed_tools`, les règles d'autorisation `settings.json` ou un hook s'exécutent normalement. Les appels qui ne nécessitent pas d'approbation en mode `default` s'exécutent également, tels que les lectures de fichiers dans vos répertoires de travail et les appels à `Agent`.264Convertit toute demande de permission en refus, sans appeler `canUseTool`, bien qu'un [mod](https://code.claude.com/docs/fr/plugins/mods/overview.md) que vous avez installé puisse encore approuver [certains de ces appels](https://code.claude.com/docs/fr/permissions.md#precedence-among-rules-hooks-and-mods). Les outils pré-approuvés par `allowed_tools`, les règles d'autorisation `settings.json` ou un hook s'exécutent normalement. Les appels qui ne nécessitent pas d'approbation en mode `default` s'exécutent également, tels que les lectures de fichiers dans vos répertoires de travail et les appels à `Agent`.
263 265
264Les outils connecteur [que votre organisation a définis sur `ask`](/docs/fr/mcp#organization-controls-on-connector-tools), les outils qui nécessitent une interaction utilisateur, les [lectures depuis des chemins réseau](/docs/fr/permissions.md#network-paths) et les [suppressions de chemins critiques](/docs/fr/permission-modes.md#critical-paths) reconnues sont refusés même lorsqu'une règle d'autorisation correspond. Une autorisation par un hook `PreToolUse` ne lève pas non plus le blocage d'une suppression de chemin critique reconnue ni d'une lecture depuis un chemin réseau. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](/docs/fr/permission-modes.md#critical-paths).266Les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), les outils qui nécessitent une interaction utilisateur, les [lectures depuis des chemins réseau](https://code.claude.com/docs/fr/permissions.md#network-paths) et les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues sont refusés même lorsqu'une règle d'autorisation correspond. Une autorisation par un hook `PreToolUse` ne lève pas non plus le blocage d'une suppression de chemin critique reconnue ni d'une lecture depuis un chemin réseau. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](https://code.claude.com/docs/fr/permission-modes.md#critical-paths).
265 267
266**À utiliser quand :** vous souhaitez une surface d'outils fixe et explicite pour un agent sans interface et préférez un refus catégorique à une dépendance silencieuse à l'absence de `canUseTool`.268**À utiliser quand :** vous souhaitez une surface d'outils fixe et explicite pour un agent sans interface et préférez un refus catégorique à une dépendance silencieuse à l'absence de `canUseTool`.
267 269
268#### Mode contournement des permissions (`bypassPermissions`)270#### Mode contournement des permissions (`bypassPermissions`)
269 271
270Approuve automatiquement les utilisations d'outils sans demander, sauf les cas énumérés dans l'avertissement ci-dessous. Les hooks s'exécutent toujours et peuvent bloquer les opérations si nécessaire. Sur Linux et macOS, Claude Code refuse de démarrer dans ce mode en tant que root ou sous `sudo` en dehors d'un [bac à sable reconnu](/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), et la requête échoue avant le premier tour.272Approuve automatiquement les utilisations d'outils sans demander, sauf les cas énumérés dans l'avertissement ci-dessous. Les hooks s'exécutent toujours et peuvent bloquer les opérations si nécessaire. Sur Linux et macOS, Claude Code refuse de démarrer dans ce mode en tant que root ou sous `sudo` en dehors d'un [bac à sable reconnu](https://code.claude.com/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode), et la requête échoue avant le premier tour.
271 273
272> [!WARNING]274> [!WARNING]
273>275>
276> `allowed_tools` ne contraint pas ce mode. Chaque outil est approuvé, pas seulement ceux que vous avez énumérés. Ces contrôles s'appliquent toujours :278> `allowed_tools` ne contraint pas ce mode. Chaque outil est approuvé, pas seulement ceux que vous avez énumérés. Ces contrôles s'appliquent toujours :
277>279>
278> * Les règles de refus, les règles explicites `ask` et les hooks sont évalués avant la vérification du mode et peuvent toujours bloquer un outil.280> * Les règles de refus, les règles explicites `ask` et les hooks sont évalués avant la vérification du mode et peuvent toujours bloquer un outil.
279> * Les outils connecteur [que votre organisation a définis sur `ask`](/docs/fr/mcp#organization-controls-on-connector-tools), les outils qui nécessitent une interaction utilisateur et les [suppressions de chemins critiques](/docs/fr/permission-modes.md#critical-paths) reconnues reviennent toujours à votre rappel `canUseTool`. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](/docs/fr/permission-modes.md#critical-paths).281> * Les outils connecteur [que votre organisation a définis sur `ask`](https://code.claude.com/docs/fr/mcp#organization-controls-on-connector-tools), les outils qui nécessitent une interaction utilisateur et les [suppressions de chemins critiques](https://code.claude.com/docs/fr/permission-modes.md#critical-paths) reconnues reviennent toujours à votre rappel `canUseTool`. La vérification qui reconnaît ces suppressions [peut manquer certaines commandes](https://code.claude.com/docs/fr/permission-modes.md#critical-paths).
280> * Les [protections de messagerie inter-sessions](/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) s'appliquent toujours.282> * Les [protections de messagerie inter-sessions](https://code.claude.com/docs/fr/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) s'appliquent toujours.
281 283
282#### Mode de planification (`plan`)284#### Mode de planification (`plan`)
283 285
287 289
288Dans le SDK TypeScript, si vous définissez `allowDangerouslySkipPermissions: true` aux côtés de `permissionMode: 'plan'`, les modifications de fichiers et les commandes shell qui modifient les fichiers atteignent toujours votre rappel `canUseTool`. L'option vous permet de passer à `bypassPermissions` plus tard avec `setPermissionMode()`.290Dans le SDK TypeScript, si vous définissez `allowDangerouslySkipPermissions: true` aux côtés de `permissionMode: 'plan'`, les modifications de fichiers et les commandes shell qui modifient les fichiers atteignent toujours votre rappel `canUseTool`. L'option vous permet de passer à `bypassPermissions` plus tard avec `setPermissionMode()`.
289 291
290Claude peut utiliser `AskUserQuestion` pour clarifier les exigences avant de finaliser le plan. Voir [Gérer les approbations et les entrées utilisateur](/docs/fr/agent-sdk/user-input.md#handle-clarifying-questions) pour gérer ces invites.292Claude peut utiliser `AskUserQuestion` pour clarifier les exigences avant de finaliser le plan. Voir [Gérer les approbations et les entrées utilisateur](https://code.claude.com/docs/fr/agent-sdk/user-input.md#handle-clarifying-questions) pour gérer ces invites.
291 293
292**À utiliser quand :** vous souhaitez que Claude propose des modifications sans les exécuter, par exemple lors d'une révision de code ou lorsque vous devez approuver les modifications avant qu'elles ne soient apportées.294**À utiliser quand :** vous souhaitez que Claude propose des modifications sans les exécuter, par exemple lors d'une révision de code ou lorsque vous devez approuver les modifications avant qu'elles ne soient apportées.
293 295
294#### Mode auto (`auto`)296#### Mode auto (`auto`)
295 297
296Un modèle classifieur examine les actions telles que les commandes shell et les requêtes réseau avant leur exécution, et autorise ou bloque chacune de celles qu'il examine. Pour connaître les modèles et les fournisseurs requis par le mode auto ainsi que l'ordre dans lequel il évalue les actions, consultez [Éliminer les demandes de permission avec le mode auto](/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode).298Un modèle classifieur examine les actions telles que les commandes shell et les requêtes réseau avant leur exécution, et autorise ou bloque chacune de celles qu'il examine. Pour connaître les modèles et les fournisseurs requis par le mode auto ainsi que l'ordre dans lequel il évalue les actions, consultez [Éliminer les demandes de permission avec le mode auto](https://code.claude.com/docs/fr/permission-modes.md#eliminate-prompts-with-auto-mode).
297 299
298Si vous basculez une session en mode auto vers un modèle que le mode auto ne prend pas en charge, à l'aide de [`set_model()`](/docs/fr/agent-sdk/python#claudesdkclient), [`setModel()`](/docs/fr/agent-sdk/typescript#query-object) ou [`applyFlagSettings()`](/docs/fr/agent-sdk/typescript#applyflagsettings), la session passe en mode `default` :300Si vous basculez une session en mode auto vers un modèle que le mode auto ne prend pas en charge, à l'aide de [`set_model()`](https://code.claude.com/docs/fr/agent-sdk/python#claudesdkclient), [`setModel()`](https://code.claude.com/docs/fr/agent-sdk/typescript#query-object) ou [`applyFlagSettings()`](https://code.claude.com/docs/fr/agent-sdk/typescript#applyflagsettings), la session passe en mode `default` :
299 301
300* **Ce que vous voyez** : un message `system` avec le sous-type `status` et `permissionMode` défini sur `"default"`, que le SDK TypeScript type comme [`SDKStatusMessage`](/docs/fr/agent-sdk/typescript#sdkstatusmessage). À partir de là, les appels qui nécessitent une approbation et ne correspondent à aucune règle d'autorisation atteignent votre rappel `canUseTool`.302* **Ce que vous voyez** : un message `system` avec le sous-type `status` et `permissionMode` défini sur `"default"`, que le SDK TypeScript type comme [`SDKStatusMessage`](https://code.claude.com/docs/fr/agent-sdk/typescript#sdkstatusmessage). À partir de là, les appels qui nécessitent une approbation et ne correspondent à aucune règle d'autorisation atteignent votre rappel `canUseTool`.
301* **Pour revenir au mode auto** : passez à un modèle pris en charge, puis appelez `set_permission_mode("auto")` ou `setPermissionMode("auto")`. Si vous revenez au modèle précédent sans effectuer cet appel, la session reste en mode `default`. Tant que le modèle non pris en charge est actif, l'appel échoue avec `Cannot set permission mode to auto: auto mode unavailable for this model`.303* **Pour revenir au mode auto** : passez à un modèle pris en charge, puis appelez `set_permission_mode("auto")` ou `setPermissionMode("auto")`. Si vous revenez au modèle précédent sans effectuer cet appel, la session reste en mode `default`. Tant que le modèle non pris en charge est actif, l'appel échoue avec `Cannot set permission mode to auto: auto mode unavailable for this model`.
302 304
303Le passage au mode `default` après un appel à `set_model()`, `setModel()` ou `applyFlagSettings()` nécessite Claude Code v2.1.299 ou ultérieur.305Le passage au mode `default` après un appel à `set_model()`, `setModel()` ou `applyFlagSettings()` nécessite Claude Code v2.1.299 ou ultérieur.
306 308
307Pour les autres étapes du flux d'évaluation des permissions :309Pour les autres étapes du flux d'évaluation des permissions :
308 310
309* [Gérer les approbations et les entrées utilisateur](/docs/fr/agent-sdk/user-input.md) : invites d'approbation interactives et questions de clarification311* [Gérer les approbations et les entrées utilisateur](https://code.claude.com/docs/fr/agent-sdk/user-input.md) : invites d'approbation interactives et questions de clarification
310* [Guide des hooks](/docs/fr/agent-sdk/hooks.md) : exécuter du code personnalisé aux points clés du cycle de vie de l'agent312* [Guide des hooks](https://code.claude.com/docs/fr/agent-sdk/hooks.md) : exécuter du code personnalisé aux points clés du cycle de vie de l'agent
311* [Règles de permission](/docs/fr/settings-reference.md#permission-settings) : règles déclaratives d'autorisation/refus dans `settings.json`313* [Règles de permission](https://code.claude.com/docs/fr/settings-reference.md#permission-settings) : règles déclaratives d'autorisation/refus dans `settings.json`