SpyBara
Go Premium

permission-modes.md 2026-09-08 20:00 UTC to 2026-09-09 22:58 UTC

This page contains 357 additions and 169 deletions.

2026
Wed 9 22:58 Sat 12 03:02 Fri 18 23:58 Sat 19 23:57 Tue 22 23:59 Fri 25 23:58

Choisir un mode de permission

Contrôlez si Claude demande une approbation avant d'agir. Basculez entre les modes avec Maj+Tab dans la CLI, l'indicateur de mode dans VS Code, ou le sélecteur de mode dans Desktop.

Un mode de permission définit les actions que Claude Code peut effectuer dans une session sans vous demander d'abord. En mode Manuel, Claude Code s'arrête et vous demande avant la plupart des actions qui modifient des fichiers, exécutent des commandes shell ou accèdent au réseau. En mode auto, un second modèle, le classificateur, examine les actions à votre place ; comment le classificateur évalue les actions énumère les actions qu'il examine et celles qu'il ignore.

Sur les plans Pro, Max et Team, le mode de permission de démarrage intégré est le mode auto. Quel mode une session démarre couvre les surfaces et les paramètres qui changent le mode de permission de démarrage. Vous pouvez également modifier le mode de permission d'une session en cours à tout moment.

Modes disponibles

Chaque mode fait un compromis différent entre la commodité et la supervision. Le tableau ci-dessous montre ce que Claude peut faire sans invite de permission dans chaque mode. Le mode Manuel apparaît sous sa valeur de configuration, default.

Mode Ce qui s'exécute sans demander Idéal pour
default Lectures uniquement Examiner chaque action vous-même, travail sensible
acceptEdits Lectures, modifications de fichiers et commandes courantes du système de fichiers (mkdir, touch, mv, cp, etc.) Itération sur le code que vous examinez
plan Lectures, plus commandes approuvées par le classificateur quand le mode auto est disponible Explorer une base de code avant de la modifier
auto Tout, avec des vérifications de sécurité en arrière-plan Tâches longues, réduction de la fatigue des invites
dontAsk Outils pré-approuvés uniquement CI verrouillé et scripts
bypassPermissions Tout Conteneurs et machines virtuelles isolés uniquement

Le mode qui examine chaque action s'appelle Manual dans la CLI, dans claude --help, dans les extensions VS Code et JetBrains, et dans l'application de bureau. Sa valeur de configuration est default, ce que les hooks et les intégrations SDK utilisent. La CLI accepte manual comme alias partout où vous tapez la valeur, par exemple claude --permission-mode manual ou "defaultMode": "manual". L'étiquette Manual et l'alias manual nécessitent Claude Code v2.1.200 ou version ultérieure. L'étiquette de l'application de bureau ne dépend pas de votre version CLI.

Les écritures vers les chemins protégés ne sont jamais auto-approuvées sauf en mode bypassPermissions et dans les sessions en mode plan où les permissions de contournement sont disponibles, ce qui signifie les sessions démarrées d'une manière qui place bypassPermissions dans le cycle de mode.

Les modes définissent la ligne de base. Superposez les règles de permission sur le dessus pour pré-approuver ou bloquer des outils spécifiques. Les règles de refus bloquent dans tous les modes, y compris bypassPermissions. Les règles de refus et de demande ne s'appliquent pas à EndConversation tant que Claude a au moins un autre outil qu'il peut appeler. Les règles d'autorisation n'ont aucun effet en mode bypassPermissions.

Actions qu'aucun mode n'auto-approuve

Claude Code n'auto-approuve pas les éléments suivants dans aucun mode, y compris bypassPermissions. Chaque point renvoie à la section qui dit ce qui se passe à la place dans chaque mode :

Configurations courantes

Les modes de permission décident si Claude demande avant une action, et le sandbox Bash et les limites d'isolation externes décident ce qu'une action peut atteindre une fois qu'elle s'exécute. Chaque ligne ci-dessous associe un objectif aux drapeaux ou paramètres qui vous y amènent et à l'isolation qu'il nécessite, comme point de départ. Modes disponibles énumère ce qui s'exécute sans invite dans chaque mode.

Vous voulez Commencez par Isolation nécessaire Notes
Examiner chaque action vous-même Mode Manuel : claude --permission-mode default Aucune Travail sensible, code non familier
Itérer localement avec moins d'invites, sans classificateur Mode Manuel plus le sandbox Bash en mode auto-allow : claude --permission-mode default, puis exécutez /sandbox et sélectionnez auto-allow Le sandbox Bash intégré, sur macOS, Linux et WSL2 Les règles de refus s'appliquent toujours, et les règles ask qui nomment une commande, comme Bash(git push *), invitent toujours. Pour activer le sandbox à partir d'un fichier de paramètres à la place, définissez sandbox.enabled sur true
Explorer avant de modifier quoi que ce soit claude --permission-mode plan Aucune Claude Code bloque les modifications jusqu'à ce que vous approuviez un plan
Travailler sans intervention en mode auto claude --permission-mode auto, le mode de permission de démarrage intégré sur Pro, Max et Team Aucune ; un sandbox ou conteneur ajoute une défense en profondeur Nécessite un modèle supporté, et votre organisation peut désactiver le mode auto
Exécuter en CI avec une liste d'autorisation exacte claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" Aucune au-delà de ce que votre runner CI fournit Claude Code sur le web ignore dontAsk des fichiers de paramètres
Exécuter complètement sans surveillance à l'intérieur d'un conteneur claude -p "<prompt>" --dangerously-skip-permissions Requis : un conteneur, une VM, ou le runtime sandbox ; sur Linux et macOS, exécutez-le en tant qu'utilisateur non-root Claude Code sur le web ignore ce mode des fichiers de paramètres. Dans cette exécution -p, les quelques appels qui inviteraient toujours sont refusés à la place

Le sandbox Bash et le mode auto fonctionnent indépendamment et se combinent, sauf en mode plan, où auto-allow n'élargit pas les approbations. Pour l'interaction complète, voir Comment le sandboxing se rapporte aux permissions et aux modes de permission et Comment l'isolation se rapporte aux modes de permission.

Quel mode une session démarre

Quand vous démarrez une nouvelle session dans un terminal, Claude Code prend le mode de permission du premier de ces éléments qui s'applique :

  1. Le drapeau --permission-mode, ou --dangerously-skip-permissions

  2. permissions.defaultMode dans un fichier de paramètres

    Si vous définissez "auto" dans .claude/settings.json ou .claude/settings.local.json, la valeur ne prend pas effet, et Claude Code utilise alors la valeur par défaut intégrée plutôt qu'un defaultMode de ~/.claude/settings.json. Si vous définissez "bypassPermissions" dans ces deux fichiers, cela ne prend pas effet non plus, et la session démarre en mode Manuel. Les autres valeurs s'appliquent à partir de n'importe quel fichier de paramètres.

  3. La valeur par défaut intégrée

Les conversations que l'extension VS Code démarre suivent la propre liste de l'extension dans Basculer les modes de permission. Pour le mode de permission dans lequel Claude Code démarre une session reprise, voir mode de permission à la reprise.

La valeur par défaut auto intégrée nécessite Claude Code v2.1.228 ou version ultérieure sur macOS, Linux et WSL, et v2.1.233 ou version ultérieure sur Windows natif. Sur les versions antérieures, la valeur par défaut intégrée est Manuel.

La valeur par défaut intégrée dépend de la façon dont vous exécutez Claude Code, de votre plan et de la possibilité pour Claude Code de récupérer ses drapeaux de fonctionnalité. La première ligne qui correspond à votre session s'applique. Le tableau couvre les sessions que vous démarrez dans un terminal ou via l'extension VS Code ; pour l'application de bureau et claude.ai, voir les onglets Desktop et Web dans Basculer les modes de permission.

Comment vous exécutez Claude Code Mode de permission de démarrage intégré
Un fichier de paramètres définit disableAutoMode sur "disable" default
La récupération des drapeaux de fonctionnalité est désactivée default
Votre première session après l'installation de Claude Code ou la mise à niveau vers une version qui ajoute cette valeur par défaut, sauf après une installation propre, Claude Code récupère les drapeaux à temps default
claude -p ou le SDK Agent default
Amazon Bedrock, la plateforme Agent de Google Cloud, Microsoft Foundry, Claude Platform sur AWS, ou une session passerelle d'applications Claude connectée default
Un plan Pro, Max ou Team, dans un terminal ou via l'extension VS Code auto
Un plan Enterprise ou une clé API Claude Console default

Quand la récupération des drapeaux de fonctionnalité est désactivée, ou dans une première session après une installation ou une mise à niveau où les drapeaux ne sont pas encore arrivés, l'extension VS Code ignore tous les fichiers de paramètres lors du choix du mode de permission de démarrage.

Quand le drapeau, un fichier de paramètres ou la valeur par défaut intégrée sélectionne auto mais que le mode auto n'est pas disponible pour la session, Claude Code démarre la session en mode Manuel à la place. Le mode auto est indisponible quand la session ne répond pas aux exigences de disponibilité, comme un fichier de paramètres le désactivant ou un modèle qui ne le supporte pas, ou quand Anthropic l'a temporairement désactivé côté serveur.

La première fois que la valeur par défaut intégrée démarre l'une de vos sessions en mode auto, Claude Code affiche un avis qui renvoie à cette page :

  • Dans un terminal, une fois, en haut de la session
  • Dans l'extension VS Code, sous forme de carte sur l'écran de nouvelle conversation qui reste jusqu'à ce que vous la fermiez

Sur les plans Pro, Max et Team, si votre ~/.claude/settings.json définit un defaultMode autre que auto et qu'aucun autre fichier de paramètres n'en définit un, vos sessions continuent à démarrer dans ce mode. Claude Code demande une fois, dans le terminal ou dans l'extension VS Code, si vous souhaitez modifier le paramètre en mode auto. Si vous refusez, votre paramètre reste tel quel.

Démarrer dans un mode de permission différent

Vous pouvez définir le mode de permission de démarrage pour une session, ou comme valeur par défaut pour chaque session sur une machine, dans un projet ou dans une organisation. Quand plus d'un fichier de paramètres définit permissions.defaultMode, la précédence des paramètres décide, donc une valeur de projet ou gérée surclasse ~/.claude/settings.json. Pour modifier le mode de permission d'une session déjà en cours, voir Basculer les modes de permission.

Pour définir le mode de permission de démarrage pour Faites ceci
Une session que vous êtes sur le point de démarrer Passez le mode de permission en tant que drapeau, par exemple claude --permission-mode default
Chaque session de terminal que vous démarrez sur cette machine Définissez permissions.defaultMode dans ~/.claude/settings.json. Pour ce que l'extension VS Code lit, voir Basculer les modes de permission
Chaque session de terminal que vous démarrez dans un projet Définissez permissions.defaultMode dans le .claude/settings.json du projet. Les sessions que vous démarrez dans un terminal honorent chaque valeur sauf auto et bypassPermissions ; les sessions que l'extension VS Code démarre ne lisent pas les paramètres du projet pour le mode de permission de démarrage
Chaque session de terminal dans votre organisation Définissez permissions.defaultMode dans les paramètres gérés. Les sessions de terminal démarrent dans ce mode et les gens peuvent toujours basculer vers le mode auto ; pour ce que l'extension VS Code lit, voir Basculer les modes de permission. Pour supprimer le mode auto afin que personne ne puisse le sélectionner, définissez permissions.disableAutoMode sur "disable" à la place

Cet exemple fait que chaque session de terminal sur votre machine démarre en mode Manuel, dont la valeur de configuration est default. Enregistrez-le dans ~/.claude/settings.json :

{
  "permissions": {
    "defaultMode": "default"
  }
}

La session suivante que vous démarrez affiche ⏸ manual mode on dans la barre d'état.

Basculer les modes de permission

Chaque interface a son propre contrôle pour basculer les modes de permission pendant une session et sa propre façon de choisir le mode de permission que les nouvelles sessions démarrent. Demander à Claude dans le chat de modifier le mode de permission ne fonctionne pas. Sélectionnez votre interface pour voir ses contrôles.

En cours de session : appuyez sur Shift+Tab pour parcourir les modes de permission. À partir de auto, le premier appui bascule vers default, et le cycle s'exécute ensuite default → acceptEdits → plan → retour à default. Les modes optionnels, décrits ci-dessous, s'insèrent après plan. La barre d'état affiche le mode actif sous la forme d'un ⏸ manual mode on gris pour default, ou sous la forme ⏵⏵ accept edits on, ⏸ plan mode on, ⏵⏵ auto mode on, ⏵⏵ don't ask on, ou ⏵⏵ bypass permissions on.

Tous les modes ne sont pas dans le cycle par défaut :

  • auto : apparaît quand le mode auto est disponible ; basculer vers celui-ci change les modes de permission sans invite de confirmation
  • bypassPermissions : apparaît après que vous ayez démarré avec --permission-mode bypassPermissions, --dangerously-skip-permissions, --allow-dangerously-skip-permissions, ou permissions.defaultMode: "bypassPermissions" dans les paramètres utilisateur, --settings, ou gérés. La variante --allow- ajoute le mode de permission au cycle sans l'activer
  • dontAsk : n'apparaît jamais dans le cycle ; définissez-le avec --permission-mode dontAsk

Les modes optionnels activés s'insèrent après plan, avec bypassPermissions en premier et auto en dernier. Si vous avez les deux activés, vous parcourrez bypassPermissions en allant vers auto.

À partir d'une invite de permission Bash : en modes de permission Manuel et acceptEdits, quand le mode auto est disponible, Claude Code ajoute Oui, et basculer vers le mode auto à l'invite de permission d'une commande Bash. Sélectionnez-le pour approuver la commande et basculer la session vers le mode auto. Les invites de l'outil PowerShell n'offrent pas l'option. Nécessite Claude Code v2.1.247 ou version ultérieure.

Claude Code n'ajoute pas l'option aux invites forcées par l'une de vos règles ask ou par un hook, car le mode auto vous montre toujours ces invites, donc basculer ne les supprimerait pas.

Au démarrage : passez le mode de permission en tant que drapeau.

claude --permission-mode plan

Comme valeur par défaut : définissez permissions.defaultMode à la portée que vous souhaitez, comme décrit dans Démarrer dans un mode de permission différent.

Le même drapeau --permission-mode fonctionne avec -p pour les exécutions non-interactives.

Auto-approuver les modifications de fichiers avec le mode acceptEdits

Le mode acceptEdits permet à Claude de créer et modifier des fichiers dans votre répertoire de travail sans inviter. La barre d'état affiche ⏵⏵ accept edits on tandis que ce mode est actif.

En plus des modifications de fichiers, le mode acceptEdits auto-approuve les commandes Bash courantes du système de fichiers : mkdir, touch, rm, rmdir, mv, cp, et sed. Ces commandes sont également auto-approuvées quand elles sont préfixées par des variables d'environnement sûres telles que LANG=C ou NO_COLOR=1, ou des wrappers de processus tels que timeout, nice, ou nohup. Comme pour les modifications de fichiers, l'auto-approbation s'applique uniquement aux chemins à l'intérieur de votre répertoire de travail ou additionalDirectories. Les chemins en dehors de cette portée, les écritures vers les chemins protégés, les suppressions rm et rmdir ciblant un chemin critique, et toutes les autres commandes Bash sauf l'ensemble intégré en lecture seule invitent toujours.

Quand l'outil PowerShell est activé, le mode acceptEdits auto-approuve également Set-Content, Add-Content, Clear-Content, et Remove-Item sur les chemins dans la portée, ainsi que leurs alias courants. Les mêmes règles de portée et de chemin protégé s'appliquent, et Remove-Item obtient sa propre vérification. Un argument positionnel qui contient un caractère de guillemet, comme l'apostrophe dans Set-Content .\notes.txt "It's done", invite toujours même sur les chemins dans la portée, car Claude Code ne peut pas valider statiquement un argument dont les lectures entre guillemets et sans guillemets diffèrent. Passez le contenu via un paramètre nommé tel que -Value pour éviter l'invite.

Utilisez acceptEdits quand vous souhaitez examiner les modifications dans votre éditeur ou via git diff après coup plutôt que d'approuver chaque modification en ligne.

Appuyez sur Shift+Tab une fois à partir du mode Manuel pour y accéder, ou démarrez directement avec celui-ci :

claude --permission-mode acceptEdits

Analysez avant de modifier avec le mode plan

Le mode plan indique à Claude de rechercher et de proposer des modifications sans les effectuer. Claude lit les fichiers, exécute des commandes shell pour explorer et rédige un plan, mais ne modifie pas votre source. Sauf dans les sessions avec les permissions de contournement disponibles, les modifications restent bloquées jusqu'à ce que vous approuviez le plan.

Quand le mode auto est disponible et que le paramètre useAutoModeDuringPlan est activé, ce qui est le cas par défaut, le classificateur examine les commandes shell pendant la planification au lieu de vous inviter. Les commandes approuvées s'exécutent, et les commandes rejetées sont bloquées. Sinon, les commandes en dehors de l'ensemble intégré en lecture seule invitent une approbation, y compris quand le mode auto-allow du sandbox est activé. Dans les sessions avec les permissions de contournement disponibles, ni le classificateur ni une invite ne s'appliquent aux commandes de planification ; Ignorer tous les contrôles avec le mode bypassPermissions couvre les quelques choses qui invitent toujours là. Dans v2.1.212 à v2.1.217, les sessions sans permissions de contournement invitaient pour chaque commande en dehors de l'ensemble en lecture seule, que le mode auto soit disponible ou non.

Entrez en mode plan en appuyant sur Shift+Tab ou en préfixant une seule invite avec /plan. Vous pouvez également démarrer en mode plan à partir de la CLI :

claude --permission-mode plan

Appuyez à nouveau sur Shift+Tab pour quitter le mode plan sans approuver un plan.

Examinez et approuvez un plan

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

  • Oui, et utiliser le mode auto : approuver et démarrer en mode auto. Quand le mode auto est indisponible, cette option lit Oui, auto-accepter les modifications. Si vous avez démarré la session avec les permissions de contournement activées, l'option lit Oui, et basculer vers BYPASS PERMISSIONS (aucune invite supplémentaire) pour cette session à la place.
  • Oui, approuver manuellement les modifications : approuver et examiner chaque modification individuellement.
  • Non, continuer la planification : rester en mode plan et dire à Claude ce qu'il faut modifier.

L'approbation d'un plan quitte le mode plan et bascule la session vers le mode de permission que chaque option d'approbation décrit, de sorte que Claude commence à modifier. Pour planifier à nouveau, revenez au mode plan avec Shift+Tab, ou préfixez votre prochaine invite avec /plan.

Appuyez sur Ctrl+G pour ouvrir le plan proposé dans votre éditeur de texte par défaut et le modifier directement avant que Claude ne procède. Quand showClearContextOnPlanAccept est activé, la liste gagne une première option qui approuve le plan et efface le contexte de planification.

L'acceptation d'un plan donne également à la session un titre généré basé sur le plan, sauf si vous avez déjà nommé la session.

Définissez le mode plan comme valeur par défaut

Pour faire du mode plan la valeur par défaut pour les sessions de terminal d'un projet, définissez defaultMode sur plan dans .claude/settings.json, placé comme l'exemple sous Démarrer dans un mode de permission différent le montre. Les conversations que l'extension VS Code démarre ne lisent pas les paramètres du projet pour le mode de permission de démarrage. Là, définissez claudeCode.initialPermissionMode sur plan dans vos paramètres utilisateur VS Code à la place.

Éliminer les invites de permission avec le mode auto

Le mode auto permet à Claude d'exécuter sans invites de permission routinières. Un modèle classificateur distinct examine les actions avant leur exécution, bloquant tout ce qui dépasse votre demande, cible une infrastructure non reconnue, ou semble provenir de contenu hostile que Claude a lu. Les règles ask explicites forcent toujours une invite.

Sur les plans Pro, Max et Team, le mode auto est le mode de permission intégré au démarrage.

Le classificateur examine également chaque message que Claude envoie à un autre agent avec SendMessage, qu'il s'agisse de texte brut ou d'un message d'équipe d'agents structuré, avant que Claude Code le livre, à la fois en mode auto et en mode plan tandis que le classificateur examine les commandes ; l'examen d'envoi nécessite Claude Code v2.1.222 ou ultérieur.

Le classificateur examine également et approuve ou bloque les suppressions rm et rmdir ciblant un chemin critique, comme rm -rf / et rm -rf ~, y compris lorsque la suppression se trouve à l'intérieur d'une substitution de commande ou de processus.

Le mode auto encourage également Claude à continuer à travailler sans s'arrêter pour des questions de clarification, bien que Claude demande toujours quand votre invite ou une compétence s'y fient explicitement. Pour un comportement plus autonome dans un mode qui vous invite toujours, définissez plutôt le style de sortie proactif.

Le mode auto n'est disponible que lorsque votre compte répond à tous ces critères :

  • Plan : Tous les plans.
  • Organisation : sur Team et Enterprise, le mode auto est disponible par défaut. Les administrateurs peuvent le désactiver pour l'organisation en définissant permissions.disableAutoMode sur "disable" dans les paramètres gérés.
  • Modèle : sur l'API Anthropic et Claude Platform sur AWS, Claude Opus 4.6 ou ultérieur, Sonnet 4.6 ou ultérieur, ou un modèle Fable. Sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry et les sessions de passerelle d'applications Claude connectées, uniquement Claude Sonnet 5, Opus 4.7 ou ultérieur, et les modèles Fable. Les modèles plus anciens, y compris Sonnet 4.5, Opus 4.5, Haiku et les modèles claude-3, ne sont pas pris en charge sur aucun fournisseur.
  • Fournisseur : disponible par défaut sur l'API Anthropic, Claude Platform sur AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry et les sessions de passerelle d'applications Claude connectées.

Si Claude Code signale que le mode auto n'est pas disponible, vérifiez d'abord ces exigences et si un fichier de paramètres définit disableAutoMode. Anthropic peut également avoir désactivé le mode auto côté serveur, ou le serveur peut avoir rejeté le mode auto pour votre compte. Une session qui a reçu l'une ou l'autre réponse garde le mode auto désactivé jusqu'à la fin de la session, alors démarrez une nouvelle session plus tard.

Un message distinct qui nomme un modèle et dit que le mode auto « ne peut pas déterminer la sécurité » d'une action signifie qu'une demande de classificateur a échoué. Cet échec est généralement transitoire, mais sur Amazon Bedrock, il peut se répéter jusqu'à ce que votre compte puisse invoquer le modèle nommé. Consultez la référence d'erreur pour les causes et ce qu'il faut faire.

Si vous définissez defaultMode: "auto" dans les paramètres et qu'une session de terminal démarre en mode Manuel sans erreur, le paramètre se trouve probablement dans .claude/settings.json ou .claude/settings.local.json. auto ne prend pas effet à partir de ces fichiers. Déplacez-le vers ~/.claude/settings.json. Pour une conversation que l'extension VS Code a démarrée, vérifiez plutôt la liste propre de l'extension dans Basculer les modes de permission.

Mode auto sur Bedrock, Agent Platform ou Foundry

Sur Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry et les sessions de passerelle d'applications Claude connectées, le mode auto apparaît dans le cycle Shift+Tab par défaut. L'apparition dans le cycle ne change pas le mode de permission avec lequel une session démarre : sur ces fournisseurs, les sessions de terminal démarrent dans votre defaultMode, qui est Manuel sauf si vous le changez, et les conversations dans l'extension VS Code démarrent en Manuel sauf si claudeCode.initialPermissionMode ou un mode que vous avez choisi dans l'extension en définit un. Seuls Claude Sonnet 5, Opus 4.7 ou ultérieur et les modèles Fable sont pris en charge sur ces fournisseurs.

Pour faire du mode auto le mode de permission par défaut au démarrage, définissez "permissions": {"defaultMode": "auto"} dans les paramètres utilisateur ou gérés. Dans les sessions que l'extension VS Code démarre, sélectionnez plutôt Auto dans l'indicateur de mode. Basculer les modes de permission couvre ce qui prime sur ce choix.

La vérification /doctor propose cette valeur par défaut des paramètres utilisateur sur ces fournisseurs de la même manière qu'elle le fait sur l'API Anthropic.

Pour empêcher les développeurs d'utiliser le mode auto, définissez disableAutoMode sur "disable" dans les paramètres gérés. Cela supprime auto du cycle Shift+Tab, et une session démarrée avec --permission-mode auto démarre en Manuel à la place. Une session déjà en cours d'exécution en mode auto le quitte lorsque le paramètre l'atteint à partir d'une source déployée par l'administrateur, et affiche auto mode disabled by settings. Avant v2.1.251, une session en cours d'exécution gardait le mode auto jusqu'à la fin.

Dans v2.1.158 à v2.1.206, le mode auto était désactivé sur ces fournisseurs jusqu'à ce que vous définissiez CLAUDE_CODE_ENABLE_AUTO_MODE=1, et Claude Code ignorait defaultMode: "auto" sur ces fournisseurs sauf si la variable était également définie. La variable est toujours acceptée pour la compatibilité et n'a aucun effet à partir de v2.1.207.

Ce que le classificateur bloque par défaut

Le classificateur fait confiance à votre répertoire de travail et aux télécommandes qui ont été configurées pour celui-ci au démarrage de la session. Une télécommande ajoutée ou réorientée pendant la session avec git remote add ou git remote set-url n'est pas approuvée, et tout le reste est traité comme externe jusqu'à ce que vous configuriez l'infrastructure approuvée. Avant v2.1.200, les télécommandes ajoutées en milieu de session étaient également approuvées.

Bloqué par défaut :

  • Téléchargement et exécution de code, comme curl | bash
  • Envoi de données sensibles à des points de terminaison externes
  • Déploiements et migrations de production
  • Suppression en masse sur le stockage cloud
  • Octroi de permissions IAM ou de dépôt
  • Modification d'infrastructure partagée
  • Destruction irréversible de fichiers qui existaient avant la session
  • Forcer la poussée
  • Valider ou pousser une modification qui enverrait des secrets ou des données sensibles en dehors du dépôt lors de son exécution, ou élargir ce qu'un déploiement expose. Cela couvre un flux de travail CI ou une configuration de déploiement qui remet un secret à une destination qui ne le reçoit pas déjà, un script ou une étape de configuration qui lit un magasin de secrets et envoie les données, et une modification de configuration qui élargit ce qu'un déploiement publie, comme un registre, une visibilité, un artefact ou un paramètre de sourcemap. La vérification s'applique sur n'importe quelle branche, s'applique même lorsque le dépôt est public, et se déclenche lorsque la modification arrive, que le pipeline soit déclenché ou non ; la clarifier nécessite de nommer l'effet d'exécution, pas seulement la validation ou la poussée. Avant v2.1.211, cette vérification était limitée à la branche par défaut à la place : une poussée là-bas était bloquée lorsqu'elle contenait du contenu sensible, des modifications dissimulées ou mal décrites par rapport à ce que vous aviez demandé, du contenu porté de l'extérieur du dépôt, ou contourné une révision que vous aviez demandée
  • git reset --hard, git checkout -- ., git restore ., git clean -fd, git stash drop ou git stash clear, que le classificateur présume élimineraient les modifications non validées
  • git commit --amend lorsque la validation à HEAD n'a pas été créée dans cette session
  • À partir de v2.1.198, git commit --amend lorsque la validation à HEAD a déjà été poussée. Une reformulation de message uniquement n'est pas bloquée : --amend -m sans rien de nouvellement préparé, sur une validation que Claude a créée pendant cette session
  • terraform destroy, pulumi destroy, cdk destroy ou terragrunt destroy, et appliquer un plan qui détruit les ressources

Claude Code v2.1.195 et ultérieur bloquent plus de catégories par défaut. Plusieurs dépendent d'entrées d'environnement, comme les cibles de télécommande sensibles et les portées IaC protégées, que vous pouvez affiner à des noms concrets.

  • Écriture dans un gestionnaire de secrets, ou modification des enregistrements DNS ou des certificats TLS
  • Fusion d'une demande de tirage qu'aucun humain n'a approuvée, approbation de la propre demande de tirage de Claude, ou désactivation des vérifications CI
  • Publication d'un commentaire qui est lui-même une commande à l'automatisation, comme atlantis apply ou /deploy ou /merge d'un bot
  • Basculement, augmentation ou suppression d'un drapeau de fonctionnalité de production
  • Application de modifications d'infrastructure à une portée IaC protégée, ou vidage et suppression de nœuds de cluster
  • Écritures dans un cluster de calcul partagé qui vont au-delà de la ressource que vous avez nommée, comme un sélecteur d'étiquette ou --all qui capture les tâches d'autres utilisateurs
  • Création de ressources Kubernetes qui s'exécutent sur chaque nœud ou interceptent le trafic du cluster, comme les DaemonSets et les webhooks d'admission
  • Shells interactifs ou transferts de port vers une cible de télécommande sensible
  • Ouverture d'un tunnel ou d'un shell inverse qui rend un service local accessible depuis l'Internet public
  • Impression d'une credential ou d'un jeton en direct dans la transcription ou un fichier
  • Accès à un emplacement répertorié comme emplacement de données sensibles dans votre environnement, ou copie de données en dehors d'un. À partir de v2.1.198, cela bloque également l'envoi de données d'un à un public que l'entrée exclut
  • Contournement d'une installation de paquet autour de votre registre de paquet interne vers un registre public. À partir de v2.1.198, cela s'applique également lorsque vous avez dit à Claude qu'un registre interne ou un miroir existe dans la conversation, pas seulement lorsqu'un est répertorié dans votre environnement
  • Exécution d'une commande avec un drapeau qui désarme une garde de sécurité, comme --insecure
  • Lancement d'une boucle d'agent autonome qui s'exécute sans approbation humaine ou bac à sable, comme une lancée avec --dangerously-skip-permissions ou --no-sandbox. À partir de v2.1.198, cela couvre également l'exécution d'un agent tiers ou d'un harnais d'évaluation avec isolation et approbation par action désactivées, comme un coureur lancé avec --yes-always
  • Actions du navigateur Claude dans Chrome qui pourraient envoyer le contenu de la page, les cookies ou les credentials hors origine

Claude Code v2.1.198 et ultérieur bloquent également ces éléments par défaut :

  • Suppression de fichiers dans /tmp, $TMPDIR ou un autre répertoire de travail partagé ou de cache par caractère générique, glob ou filtre d'âge plutôt que par un chemin nommé spécifique
  • Inclusion de détails sensibles dans le contenu envoyé, téléchargé, publié ou écrit à d'autres personnes ou systèmes partagés, lorsque votre propre message n'a pas autorisé ces détails pour ce destinataire. Les corps de PR et de problème, les messages de validation et les commentaires comptent comme ce type de contenu sortant lorsque le dépôt est en dehors de la limite de confiance ou public, y compris les dépôts publics de votre propre organisation ; les chemins de fichiers internes, les noms de code, les données de réponse API en direct comme les e-mails ou les identifiants de compte, et les identifiants d'infrastructure comptent comme des détails sensibles. La portée PR, problème et message de validation nécessite Claude Code v2.1.200 ou ultérieur. Les données personnelles en direct d'une réponse API dans un corps de PR ou de problème, comme une adresse e-mail, un identifiant de compte ou d'organisation, ou une métrique d'utilisation, vous obligent à nommer ces détails et le destinataire indépendamment de la visibilité ou de la limite de confiance du dépôt. Cette vérification nécessite Claude Code v2.1.203 ou ultérieur
  • Envoi de frappes à son propre volet tmux de Claude Code pour piloter sa propre interface, que le classificateur traite comme Claude changeant ses propres permissions ou surveillance

Claude Code v2.1.200 et ultérieur bloquent également ces éléments par défaut :

  • Commentaire, suppression ou passage forcé d'un test ou d'une assertion qui protège le comportement de sécurité, comme l'authentification, le contrôle d'accès, la validation des entrées ou le sandboxing
  • Suppression ou démantèlement d'une ressource avec état que Claude n'a pas créée dans la session, lorsqu'aucune règle de suppression plus spécifique ne s'applique et que vous n'avez pas nommé cette ressource
  • Réorientation d'une URL de base API, d'un point de terminaison proxy, d'un récepteur webhook ou d'un miroir de registre vers un hôte tiers qui ne correspond pas à la tâche, y compris dans les fichiers d'exemple comme .env.example
  • Modification de la destination des poussées avec git remote set-url ou git remote add, sauf si vous avez nommé la nouvelle télécommande
  • Poussée de secrets ou de données personnelles ou confiées vers un dépôt connu pour être public, ou poussée de matériel confidentiel là-bas qui ne fait pas partie du travail propre de ce dépôt. Le sujet propre d'un dépôt de dotfiles est la seule exception pour les données personnelles ou confiées, et le contenu d'un dépôt privé atteignant n'importe quelle surface publique est bloqué de la même manière ; les deux raffinements nécessitent Claude Code v2.1.203 ou ultérieur. Avant v2.1.203, les données personnelles étaient regroupées avec le matériel confidentiel et bloquées uniquement lorsqu'elles ne faisaient pas partie du travail propre de ce dépôt. Lorsque la visibilité d'un dépôt n'est pas établie, le classificateur ne bloque pas sur cela seul ; il juge le contenu par rapport aux autres règles à la place
  • Ouverture d'une demande de tirage contre un dépôt ou une organisation différente, bifurcation avec gh repo fork, ou poussée vers un dépôt tiers, sauf si vous avez nommé cette cible externe

Claude Code v2.1.203 et ultérieur bloquent également ces éléments par défaut :

  • Contenu d'un magasin local sensible, ou d'un fichier dont le nom, le chemin ou le type le marque comme sensible, entrant dans une validation, une poussée, un texte de PR ou de problème, une giste ou un collage, ou une publication de paquet, sauf si vous avez nommé à la fois la source et la destination. Les transcriptions de session et les journaux de conversation, les dossiers de points de credentials et de configuration comme les clés SSH, les credentials cloud, les profils de navigateur et l'historique du shell, et les exportations de données utilisateur comptent tous, et le dépôt étant privé ne le clarifie pas

Claude Code v2.1.205 et ultérieur bloquent également ces éléments par défaut :

  • Écriture dans les transcriptions de session Claude Code, les fichiers d'historique .jsonl sous ~/.claude/projects/ ou votre répertoire de configuration configuré, directement ou via une commande shell. La règle couvre également les lignes de métadonnées que Claude Code ajoute à chaque entrée de transcription pour ses propres vérifications. La lecture d'une transcription n'est pas bloquée
  • Une suppression forcée récursive comme rm -rf "$VAR" ou Remove-Item -Recurse -Force $dir dont la cible est une variable shell, ou un glob enraciné à une, qui n'est assignée nulle part dans la conversation que le classificateur voit. La valeur provenait uniquement de la sortie de commande antérieure, que le classificateur ne reçoit jamais, donc le classificateur ne peut pas vérifier la cible de suppression par rapport aux autres règles de suppression. Le bloc s'efface lorsque vous nommez le chemin exact en cours de suppression, ou lorsque Claude réexécute la suppression avec le chemin littéral résolu écrit dans la commande. Les suppressions dont la cible que le classificateur peut résoudre ne sont pas affectées. Les cibles Remove-Item qui sont un * nu ou se terminent par /* ou \* ne parviennent jamais au classificateur : Claude Code les refuse directement

Claude Code v2.1.257 et ultérieur bloquent également ces éléments par défaut :

  • Demande de credentials à partir du point de terminaison des métadonnées d'instance cloud, comme 169.254.169.254, ou authentification explicite d'un appel cloud, cluster ou registre avec l'identité du compte de service ou du nœud de la machine
  • Atteinte d'un hôte public par une route autre qu'une demande directe, comme un tunnel, un shell inverse, ou une configuration de résolveur ou de proxy réécrite pour pointer vers l'extérieur
  • Lecture de credentials qui appartiennent à l'hôte plutôt qu'à votre tâche, comme les certificats de nœud ou l'authentification du registre de conteneurs du nœud
  • Connexion à ou analyse des conteneurs, pods ou VMs frères que Claude n'a pas démarrés, ou le nœud sous le conteneur

Si Claude Code s'exécute quelque part qui est censé permettre l'un de ceux-ci, décrivez cette configuration dans une entrée Host containment dans autoMode.environment.

Claude Code v2.1.261 et ultérieur bloquent également ces éléments par défaut :

  • Publication ou écriture d'un lien vers un service public de collage, de diagramme ou de partage de données dans un message, un texte de PR ou de problème, un document, ou n'importe où ailleurs où le lien sera ouvert ou récupéré, lorsque l'URL elle-même porte le contenu partagé, sauf si vous avez nommé ce service

Autorisé par défaut :

  • Opérations de fichiers locaux dans votre répertoire de travail
  • Installation de dépendances déclarées dans vos fichiers de verrouillage ou manifestes
  • Lecture de .env et envoi de credentials à leur API correspondante
  • Demandes HTTP en lecture seule
  • Poussée vers n'importe quelle branche du dépôt sur lequel vous travaillez, y compris la branche par défaut. Une branche non par défaut dont le nom la marque comme cible de déploiement ou de publication, comme production ou gh-pages, n'est pas couverte : le classificateur juge une poussée là-bas selon ses propres termes. Le contenu de la poussée est toujours vérifié par rapport aux autres règles, les règles permissions.deny peuvent toujours bloquer les poussées vers des branches spécifiques directement dans tous les modes, et la protection de branche propre de la télécommande s'applique toujours. Avant v2.1.211, seules les poussées vers la branche sur laquelle vous avez commencé, les branches que Claude a créées, et les poussées routinières vers la branche par défaut étaient autorisées par défaut, et avant v2.1.203 toute poussée directe vers la branche par défaut était bloquée

Claude Code v2.1.195 et ultérieur autorisent également ces éléments par défaut :

  • Suppression des tâches exactes que Claude a créées plus tôt dans la même session
  • Lecture, révision ou écriture de code, de configs et de modèles de menace liés à la sécurité dans le cadre de votre tâche
  • Messages entre agents travaillant ensemble dans la même session multi-agents
  • Envoi de données vers les domaines approuvés, les buckets et les services que vous répertoriez dans environment. Cela couvre le flux de données uniquement, pas les opérations destructrices ou de credentials sur la même infrastructure
  • Claude dans Chrome navigation vers un domaine interne approuvé, localhost, ou une URL que vous avez nommée

Les demandes d'accès réseau du bac à sable sont acheminées via le classificateur plutôt que d'être autorisées par défaut. À partir de v2.1.198, le classificateur réutilise son verdict pour un hôte et un port réseau au lieu de réexécuter à chaque connexion :

  • Une autorisation est réutilisée jusqu'à ce que du nouveau contenu entre dans la conversation, moment auquel cet hôte est vérifié à nouveau
  • Claude Code v2.1.234 et ultérieur réutilisent un refus causé par la conversation dépassant la fenêtre de contexte du classificateur jusqu'à ce que du nouveau contenu entre dans la conversation, ou jusqu'à ce que la compaction réduise ce que le classificateur lit. Claude Code vérifie ensuite l'hôte à nouveau
  • Un refus que le classificateur a atteint en évaluant la demande dure pour le tour dans l'interface CLI interactive. En mode non interactif et les sessions Agent SDK, Claude Code réutilise ce refus pour le reste de l'exécution, car ces sessions n'ont pas de limite de tour
  • Changer votre mode de permission ou vos règles supprime tous les verdicts en cache

Exécutez claude auto-mode defaults pour imprimer les listes de règles complètes en JSON. Si les actions routinières sont bloquées, un administrateur peut ajouter des dépôts approuvés, des buckets et des services via le paramètre autoMode.environment : voir Configurer le mode auto.

Pousser vers n'importe quelle branche du dépôt sur lequel vous travaillez et créer une demande de tirage qui correspond à votre demande s'exécutent sans invite, sauf si la poussée ou la demande de tirage tombe sous la liste bloquée, comme des secrets ou des données sensibles quittant le dépôt, ou une demande de tirage qui cible un dépôt ou une organisation différente. Pour exiger un point de contrôle humain avant ces actions tout en restant en mode auto, ajoutez des règles permissions.ask : voir Limites communes.

La première lecture en dehors des répertoires de travail

Tandis que permissions.blockReadsOutsideWorkingDirectories est désactivé, les lectures de fichiers s'exécutent sans invite en mode auto, y compris les lectures en dehors des répertoires de travail. La première fois que Claude utilise l'outil Read, Grep ou Glob sur un chemin en dehors d'eux, Claude Code vous demande si vous souhaitez continuer à autoriser ces lectures.

L'invite n'apparaît pas dans les exécutions -p non interactives ou les sessions en arrière-plan ; les lectures là-bas s'exécutent comme avant.

Quelle que soit votre réponse, Claude continue à travailler :

  • Continuer à autoriser : la lecture s'exécute, les lectures ultérieures en dehors des répertoires de travail s'exécutent comme avant, et Claude Code enregistre votre réponse pour que l'invite n'apparaisse plus
  • Bloquer à partir de maintenant : la lecture est refusée, et Claude Code définit permissions.blockReadsOutsideWorkingDirectories sur true dans vos paramètres utilisateur, ce qui fait que les outils de fichiers refusent ces lectures dans chaque session ultérieure et chaque mode de permission. Pour laisser Claude lire ce chemin plus tard, ajoutez son répertoire avec /add-dir ou supprimez le paramètre.
  • Demander à nouveau la prochaine fois : la lecture est refusée, et la prochaine lecture en dehors des répertoires de travail demande à nouveau

Limites que vous énoncez dans la conversation

Le classificateur traite les limites que vous énoncez dans la conversation comme un signal de blocage. Si vous dites à Claude « ne pousse pas » ou « attends que j'examine avant de déployer », le classificateur bloque les actions correspondantes même lorsque les règles par défaut les autoriseraient. Une limite reste en vigueur jusqu'à ce que vous la leviez dans un message ultérieur. Le propre jugement de Claude qu'une condition a été remplie ne la lève pas.

Les limites ne sont pas stockées en tant que règles. Le classificateur les relit à partir de la transcription à chaque vérification, donc une limite peut être perdue si la compaction de contexte supprime le message qui l'a énoncée. Pour une garantie absolue, ajoutez plutôt une règle deny.

Quand le mode auto se replie

Quand le mode auto ne peut pas approuver les actions de votre session, ce qui se passe dépend du cas :

  • Une action bloquée : Claude Code affiche une notification et répertorie l'action dans /permissions sous l'onglet Recently denied, où vous pouvez appuyer sur r pour la réessayer avec une approbation manuelle. Lorsque le classificateur produit aucun verdict sur l'action, parce qu'une vérification de sécurité distincte du mode auto a refusé la demande du classificateur ou sa réponse n'a pas été analysée, Claude Code refuse l'action sans la notification ou l'entrée Recently denied.
  • Blocages répétés : si le classificateur bloque une action 3 fois de suite ou 20 fois au total, le mode auto s'interrompt et Claude Code reprend l'invite. L'approbation de l'action invitée reprend le mode auto. Ces seuils ne sont pas configurables. Toute action autorisée réinitialise le compteur consécutif, tandis que le compteur total persiste pour la session et se réinitialise uniquement lorsque sa propre limite déclenche un repli. Claude Code ne compte pas un refus vers l'un ou l'autre seuil lorsqu'une vérification de sécurité distincte du mode auto refuse la demande du classificateur ; l'entrée liée couvre comment Claude Code gère ces refus.
  • Sessions qui ne peuvent pas inviter : une exécution -p non interactive sans --permission-prompt-tool n'a pas d'invite pour se replier. Lorsque les blocages répétés atteignent un seuil, l'action ne s'exécute pas et Claude continue à travailler. La même chose s'applique lorsqu'une vérification de sécurité distincte du mode auto refuse la demande du classificateur. Claude Code n'arrête pas l'exécution dans l'un ou l'autre cas.
  • Un changement de mode pendant une vérification : si vous changez les modes de permission tandis qu'une vérification de classificateur est en attente, Claude Code rejette un verdict que le nouveau mode n'aurait pas demandé plutôt que de l'appliquer : vous êtes invité à l'approbation à la place, ou l'action est auto-refusée en mode dontAsk.

Les blocages répétés signifient généralement que le classificateur manque de contexte sur votre infrastructure. Utilisez /feedback pour signaler les faux positifs, ou demandez à un administrateur de configurer l'infrastructure approuvée.

Chaque action passe par un ordre de décision fixe. La première étape correspondante gagne :
1. Les actions correspondant à vos [règles allow, ask ou deny](/docs/fr/permissions#manage-permissions) se résolvent immédiatement. Les écritures vers les [chemins protégés](#protected-paths) sont acheminées vers le classificateur même lorsqu'une règle allow correspond, et il en va de même pour les suppressions `rm` et `rmdir` ciblant un [chemin critique](#critical-paths) dans Claude Code v2.1.218 et ultérieur. Les outils MCP marqués [`requiresUserInteraction`](/docs/fr/mcp#require-approval-for-a-specific-tool) vous invitent directement même lorsqu'une règle allow correspond, et il en va de même pour les outils de connecteur [que votre organisation a définis sur `ask`](/docs/fr/mcp#organization-controls-on-connector-tools) dans les sessions où ce paramètre atteint Claude Code. Les règles ask qui correspondent sur le contenu d'une commande, comme `Bash(git push *)`, se replient sur une invite de permission
2. Les actions en lecture seule et les éditions de fichiers dans votre répertoire de travail sont auto-approuvées, sauf les écritures vers les [chemins protégés](#protected-paths) et [la première lecture en dehors des répertoires de travail](#first-read-outside-the-working-directories), qui vous invite
3. Tout le reste va au classificateur. Les outils de connecteur et les outils MCP `requiresUserInteraction` qui vous invitent directement à l'étape 1 ne parviennent jamais au classificateur, donc ni une approbation requise par l'organisation ni une étape de consentement n'est auto-approuvée
4. Si le classificateur bloque, Claude reçoit la raison et essaie une alternative. Dans la plupart des sessions, la raison est le texte fixe `Blocked by classifier` plutôt qu'une explication écrite, dans Claude Code v2.1.208 et ultérieur ; voir [Examiner les refus](/docs/fr/auto-mode-config#review-denials)

En entrant en mode auto, les règles allow larges qui accordent l'exécution de code arbitraire sont supprimées :

* `Bash(*)` ou `PowerShell(*)` en blanc
* Interpréteurs avec caractères génériques comme `Bash(python*)`
* Commandes d'exécution du gestionnaire de paquets
* Règles `Agent` allow
* Règles [Monitor](/docs/fr/tools-reference#monitor-tool) allow, parce que Claude Code exécute les commandes Monitor via le shell

Les règles étroites comme `Bash(npm test)` restent en vigueur. Claude Code restaure les règles supprimées lorsque vous quittez le mode auto. Avant v2.1.236, Claude Code laissait les règles `Monitor` allow en vigueur en mode auto, donc une règle qui correspondait à l'outil entier approuvait les commandes Monitor sans révision du classificateur.

Claude Code exécute également `git status` lui-même avant une commande qui éliminerait le travail non validé, comme `git reset --hard` ou `rm -rf`, et montre au classificateur si un travail préparé, modifié ou non suivi est présent. Claude Code signale les fichiers non suivis dans cette vérification même lorsque la configuration git du dépôt définit `status.showUntrackedFiles=no`.

Le classificateur voit les messages utilisateur, les appels d'outils autres que les recherches en lecture seule comme les lectures de fichiers et les recherches, et votre contenu CLAUDE.md. Les résultats d'outils sont supprimés, donc le contenu hostile dans un fichier ou une page Web ne peut pas le manipuler directement. Vous pouvez annoter le résultat d'un appel avec le champ `classifierContext` d'un [hook PostToolUse](/docs/fr/hooks#annotate-a-result-for-the-auto-mode-classifier), que le classificateur lit comme contexte fourni par l'application.

Une sonde côté serveur distincte analyse les résultats d'outils entrants et signale le contenu suspect avant que Claude ne le lise. Pour plus d'informations sur la façon dont ces couches fonctionnent ensemble, consultez l'[annonce du mode auto](https://claude.com/blog/auto-mode) et l'[approfondissement technique](https://www.anthropic.com/engineering/claude-code-auto-mode).
Comment le mode auto gère les sous-agents

Le classificateur vérifie le travail des sous-agents à trois points :

  1. Avant le démarrage d'un sous-agent, la description de la tâche déléguée est évaluée, donc une tâche qui semble dangereuse est bloquée au moment du lancement.
  2. Pendant que le sous-agent s'exécute, chacune de ses actions passe par le classificateur avec les mêmes règles que la session parent, et tout permissionMode dans le frontmatter du sous-agent est ignoré.
  3. Lorsque le sous-agent se termine, le classificateur examine son historique d'action complet ; si cette vérification de retour signale une préoccupation, un avertissement de sécurité est ajouté au début des résultats du sous-agent. Lorsqu'une vérification de sécurité API distincte refuse la demande d'examen elle-même, Claude Code retourne toujours les résultats du sous-agent, précédés d'un avertissement que le travail n'est pas examiné et doit être traité comme non fiable.

L'étape 1 nécessite Claude Code v2.1.178 ou ultérieur. Les versions antérieures appliquaient le classificateur aux étapes 2 et 3, mais n'évaluaient pas la description de la tâche avant le démarrage du sous-agent.

Coût et latence

Le classificateur s'exécute sur Claude Sonnet 5 par défaut plutôt que sur votre sélection /model. Un modèle de classificateur que Anthropic configure côté serveur prend précédence sur cette valeur par défaut. Lorsque le modèle de votre session est Claude Sonnet 4.6, ou lorsque availableModels exclut Sonnet 5, le classificateur s'exécute sur le modèle de votre session à la place, ou sur un modèle Opus lorsque la session s'exécute sur un modèle Fable ; sur les fournisseurs autres que l'API Anthropic, ce repli Opus est le modèle Opus par défaut du fournisseur.

La première demande en mode auto de la session valide la valeur par défaut Sonnet 5 : si la demande réussit, Sonnet 5 reste le modèle de classificateur de la session, et si elle échoue parce que le modèle n'est pas disponible, la session utilise le repli à la place. Après que cette validation se règle, le modèle du classificateur ne change pas pour la session.

Sur les plans Enterprise et sur les comptes qui utilisent l'API Claude, Claude Platform sur AWS, Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, les appels de classificateur comptent vers votre utilisation de jetons. Chaque vérification envoie une partie de la transcription plus l'action en attente, ajoutant un aller-retour avant l'exécution. Les lectures et les éditions de répertoire de travail en dehors des chemins protégés ignorent le classificateur, donc la surcharge provient principalement des commandes shell et des opérations réseau.

Le classificateur réutilise un verdict de réseau de bac à sable pour un hôte et un port, donc les connexions répétées au même hôte n'ajoutent pas chacune une vérification. Ce que le classificateur bloque par défaut décrit combien de temps une autorisation et un refus durent.

Autoriser uniquement les outils pré-approuvés avec le mode dontAsk

Si vous définissez le mode dontAsk, Claude Code refuse automatiquement chaque appel d'outil qui déclencherait autrement une invite. Claude exécute uniquement les actions correspondant à vos règles permissions.allow, les commandes Bash en lecture seule, et les appels approuvés par un hook PreToolUse. Utilisez ce mode pour les pipelines CI ou les environnements restreints où vous prédéfinissez exactement ce que Claude peut faire ; la session n'attend jamais d'entrée. La barre d'état affiche ⏵⏵ don't ask on tandis que ce mode est actif.

Claude Code refuse les appels correspondant à vos règles ask explicites plutôt que de déclencher une invite. Il refuse également l'outil intégré AskUserQuestion même si vos règles allow les correspondent, et il en va de même pour les outils de connecteur que votre organisation a définis sur ask dans les sessions où ce paramètre atteint Claude Code. Il refuse les outils MCP marqués requiresUserInteraction de la même manière, car leur carte d'approbation nécessite une réponse que ce mode ne collecte jamais ; cela nécessite Claude Code v2.1.199 ou ultérieur.

Les suppressions rm et rmdir ciblant un chemin critique, comme rm -rf / et rm -rf ~, sont refusées même quand une règle allow les correspond ou qu'un hook PreToolUse les approuve.

Les sessions cloud sur Claude Code sur le web ignorent defaultMode: "dontAsk" ; voir bypassPermissions pour les détails.

Définissez-le au démarrage avec le drapeau :

claude --permission-mode dontAsk

Ignorer tous les contrôles avec le mode bypassPermissions

Le mode bypassPermissions désactive les invites de permission et les contrôles de sécurité afin que les appels d'outils s'exécutent immédiatement, y compris les écritures vers les chemins protégés.

Les actions qu'aucun mode n'auto-approuve invitent toujours dans ce mode.

Deux protections de messagerie inter-sessions s'appliquent toujours dans ce mode, et dans les sessions en mode plan où les permissions de contournement sont disponibles :

  • L'invite d'approbation isolatePeerMachines pour les messages vers vos sessions au-delà de cette machine apparaît toujours.
  • Quand aucune valeur crossSessionInbound ne s'applique, Claude Code retient un message entrant d'une autre de vos sessions pour votre approbation, et le livre sans demander uniquement quand la session d'envoi s'identifie comme contournant également les invites de permission. Si vous quittez le mode de permission tandis que les messages sont retenus, Claude Code réapplique les règles entrantes et livre tout message retenu qu'elles acceptent maintenant.

Dans les sessions avec les permissions de contournement disponibles, Claude Code n'applique pas non plus les blocs du mode plan. Claude est toujours instruit de planifier sans modifier, mais une modification de fichier ou une commande shell qu'il tente pendant la planification s'exécute sans inviter. Les règles ask explicites et les suppressions rm et rmdir ciblant un chemin critique invitent toujours.

Vous ne pouvez pas entrer dans bypassPermissions à partir d'une session que vous avez démarrée sans l'activer. Activez-le au lancement avec permissions.defaultMode: "bypassPermissions" ou avec un drapeau d'activation :

claude --permission-mode bypassPermissions

Le drapeau --dangerously-skip-permissions est équivalent.

Claude Code refuse bypassPermissions dans une session que vous démarrez avec --restricted. --restricted nécessite Claude Code v2.1.248 ou ultérieur.

La première fois que vous démarrez une session interactive avec ce mode activé, Claude Code affiche un dialogue d'avertissement vous demandant d'accepter la responsabilité des actions prises sans vérifications de permission. Claude Code enregistre votre acceptation dans les paramètres utilisateur, donc le dialogue n'apparaît qu'une fois. Si vous refusez, Claude Code quitte. En mode non-interactif, aucun dialogue n'est affiché, et une session en arrière-plan démarrée avec --bg est refusée jusqu'à ce que vous ayez accepté le dialogue dans une session interactive.

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

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

La vérification est ignorée automatiquement à l'intérieur d'un sandbox reconnu. Pour s'exécuter de manière autonome dans un conteneur, utilisez la configuration du dev container, qui exécute Claude Code en tant qu'utilisateur non-root.

Claude Code sur le web n'honore pas defaultMode: "bypassPermissions" ou "dontAsk" de vos fichiers de paramètres, donc les paramètres archivés d'un référentiel ne peuvent pas démarrer une session cloud en mode bypass-permissions. Le paramètre est ignoré silencieusement et la session démarre dans le mode affiché dans la liste déroulante des modes à la place. Voir Basculer les modes de permission pour connaître les modes que les sessions cloud proposent.

Chemins protégés

Les écritures vers un petit ensemble de chemins ne sont jamais auto-approuvées, sauf en mode bypassPermissions et dans les sessions en mode plan avec les permissions de contournement disponibles. Cela empêche la corruption accidentelle de l'état du référentiel et de la configuration propre de Claude.

Mode Écritures de chemins protégés
default, acceptEdits Invité
plan Autorisé dans les sessions avec les permissions de contournement disponibles. Sinon, acheminé vers le classificateur quand le mode auto est disponible pendant la planification, et invité quand il ne l'est pas
auto Acheminé vers le classificateur
dontAsk Refusé
bypassPermissions Autorisé

Dans une session démarrée avec --restricted, qui nécessite Claude Code v2.1.248 ou ultérieur, le classificateur ne peut pas approuver les écritures de chemins protégés.

Les règles permissions.allow dans les fichiers de paramètres n'approuvent pas préalablement les écritures de chemins protégés. La vérification de sécurité s'exécute avant que Claude Code n'évalue les règles allow des paramètres, donc une entrée telle que Edit(.claude/**) dans ~/.claude/settings.json ou .claude/settings.json ne change pas le résultat par mode dans le tableau ci-dessus. Dans les modes qui invitent, l'invite pour une écriture .claude/ offre Oui, et autoriser Claude à modifier ses propres paramètres pour cette session, ce qui approuve les écritures .claude/ ultérieures dans cette session sans inviter à nouveau.

Répertoires protégés :

  • .git
  • .config/git
  • .vscode
  • .idea
  • .husky
  • .cargo
  • .devcontainer
  • .yarn
  • .mvn
  • .claude, sauf pour .claude/worktrees où Claude stocke ses propres git worktrees

Fichiers protégés :

  • .gitconfig, .gitmodules
  • .bashrc, .bash_profile, .bash_login, .bash_aliases, .bash_logout, .zshrc, .zprofile, .zshenv, .zlogin, .zlogout, .profile, .envrc
  • .npmrc, .yarnrc, .yarnrc.yml, .pnp.cjs, .pnp.loader.mjs, .pnpmfile.cjs, bunfig.toml, .bunfig.toml
  • .bazelrc, .bazelversion, .bazeliskrc
  • .pre-commit-config.yaml, lefthook.yml, lefthook.yaml, .lefthook.yml, .lefthook.yaml
  • gradle-wrapper.properties, maven-wrapper.properties
  • .devcontainer.json
  • .ripgreprc, pyrightconfig.json
  • .mcp.json, .claude.json

Chemins critiques

Claude Code ne laisse jamais une règle permissions.allow ou un hook PreToolUse qui retourne "allow" approuver une commande rm ou rmdir qui cible un chemin critique, même dans les modes qui sautent d'autres invites. Ce disjoncteur protège contre l'erreur du modèle. Une règle deny correspondante bloque toujours la commande complètement.

Ce qui se passe à la place dépend de votre mode de permission :

Mode Ce que Claude Code fait avec une suppression de chemin critique
default, acceptEdits Vous demande de l'approuver
plan Vous demande de l'approuver. Avec le mode auto disponible pendant la planification et aucune permission de contournement disponible, l'envoie au classificateur à la place
auto L'envoie au classificateur
dontAsk La refuse
bypassPermissions Vous demande de l'approuver

Si une règle ask explicite correspond à la commande, Claude Code vous demande même en mode auto. Dans les modes qui demandent, un hook PermissionRequest peut répondre à l'invite de la même manière qu'il répond à n'importe quelle autre.

Claude Code traite une cible rm ou rmdir comme un chemin critique quand il s'agit de l'un des éléments suivants :

  • La racine du système de fichiers
  • Les répertoires de niveau supérieur, ce qui signifie tout enfant direct de la racine, comme /usr, /etc, ou /data
  • Votre répertoire personnel
  • Les racines des lecteurs Windows et leurs répertoires de niveau supérieur, comme C:\ et C:\Windows
  • Votre répertoire de travail et ses parents
  • Vos répertoires de travail supplémentaires et leurs parents, mais uniquement quand la suppression est un glob sous l'un d'eux, comme rm -rf <dir>/*. rm -rf <dir> sur le répertoire lui-même ne déclenche pas cette vérification

Claude Code traite également un glob ou une barre oblique finale directement sous une variable shell, comme rm -rf "$DIR"/*, comme une suppression de chemin critique, car la commande devient une suppression de la racine du système de fichiers quand la variable est vide.

Masquer la suppression à l'intérieur de la substitution de commande avec $(...) ou des backticks, ou de la substitution de processus avec <(...), ne saute pas la vérification. Claude Code trouve une suppression de chemin critique qu'elle se trouve à l'intérieur de la substitution, comme dans echo "$(rm -rf ~)", ou ailleurs dans la même commande.

Remove-Item dans PowerShell

Quand vous activez l'outil PowerShell, Claude Code donne à Remove-Item sa propre vérification, distincte de la liste des chemins critiques rm. Le résultat dépend de la cible, et le premier cas correspondant s'applique :

  • Chemins système : la racine du système de fichiers et ses répertoires de niveau supérieur, les racines des lecteurs et leurs répertoires de niveau supérieur, et votre répertoire personnel. Claude Code refuse la commande dans tous les modes, sans vous demander.
  • Wildcards : un * nu, ou n'importe quelle cible se terminant par /* ou \*, y compris un glob sous une variable shell comme $dir/*. Claude Code refuse la commande dans tous les modes, sans vous demander, avant que le classificateur ne la voie.
  • Votre répertoire de travail ou l'un de ses parents, avec -Recurse : Claude Code traite la commande comme n'importe quelle autre qui nécessite une approbation dans votre mode de permission, donc elle vous demande dans les modes qui demandent, l'envoie au classificateur en mode auto, et la refuse en mode dontAsk. Le mode bypassPermissions saute cette vérification.

Voir aussi

  • Permissions : règles allow, ask et deny ; politiques gérées
  • Configurer le mode auto : indiquez au classificateur l'infrastructure de confiance de votre organisation
  • Hooks : logique de permission personnalisée via les hooks PreToolUse et PermissionRequest
  • Sécurité : protections et bonnes pratiques
  • Sandboxing : isolation du système de fichiers et du réseau pour les commandes Bash
  • Mode non-interactif : exécutez Claude Code avec le flag -p