Le mode de permission de Claude Code détermine quelles actions s'exécutent sans te demander. default (affiché comme Manual) demande avant les modifications et les commandes shell. acceptEdits laisse aussi passer les modifications de fichiers et les commandes de fichiers courantes. plan permet à Claude de lire et de proposer un plan, sans rien modifier. auto confie l'approbation des actions à un classifieur en arrière-plan plutôt qu'à toi. dontAsk refuse tout ce qui déclencherait une demande. bypassPermissions, activé par --dangerously-skip-permissions, saute presque toutes les demandes et n'est prévu que pour des conteneurs ou VM isolés. Appuie sur Shift+Tab pour passer d'un mode à l'autre, ou démarre avec claude --permission-mode <mode>.
Ce guide s'appuie sur la documentation des modes de permission d'Anthropic. Claude Code évolue souvent, donc vérifie-la pour ta version.
01Les six modes en un coup d'œil
default (Manual)Lectures uniquementValider chaque action, travail sensibleacceptEditsLectures, modifications de fichiers et commandes courantes du système de fichiers comme mkdir, touch, mv et cp dans le répertoire de travailItérer sur du code que tu surveillesplanLectures ; les modifications sont bloquées jusqu'à ce que tu approuves le planExplorer avant de toucher à quoi que ce soitautoTout, avec un classifieur qui vérifie chaque action au préalableTâches longues avec moins de promptsdontAskLectures dans les répertoires de travail et outils pré-approuvés ; tout le reste est refuséCI et scripts verrouillésbypassPermissionsTout, à quelques exceptions prèsUniquement conteneurs et VM isolésdefault est le nom utilisé dans les settings, les hooks et le flag --permission-mode. La CLI, les extensions IDE et l'app desktop l'affichent sous le nom Manual, et la CLI accepte manual comme alias.
02Changer de mode
Dans le terminal, appuie sur Shift+Tab. Le cycle passe par default, acceptEdits, plan, puis les modes optionnels autorisés dans ta session. dontAsk n'apparaît jamais dans le cycle ; tu ne peux l'activer qu'avec le flag.
Pour démarrer une session dans un mode donné :
claude --permission-mode plan
Pour définir un mode par défaut, ajoute-le dans ~/.claude/settings.json :
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
Le flag l'emporte sur le setting, et le setting l'emporte sur la valeur par défaut intégrée. Une restriction à connaître : auto et bypassPermissions ne sont pas pris en compte depuis le .claude/settings.json ou le .claude/settings.local.json d'un projet. Un dépôt ne peut donc pas te passer discrètement en mode bypass. Définis ces deux-là dans tes settings utilisateur, ou passe le flag.
Le mode de démarrage d'une nouvelle session
Les versions récentes de Claude Code (v2.1.283 ou plus) démarrent les sessions interactives dans le terminal et VS Code en auto quand le mode auto est disponible, sauf si tes settings disent autre chose. claude -p et les exécutions de l'Agent SDK démarrent en default. Si tu n'as jamais choisi de mode et que tu te demandes pourquoi tu vois si peu de prompts, voilà pourquoi.
03Les modes en détail
default (Manual)
Claude peut lire les fichiers sans demander. Les modifications, les commandes shell et l'accès réseau affichent chacun un prompt. Sur un prompt Bash, « Yes, and don't ask again » enregistre une règle allow dans .claude/settings.local.json, pour que cette commande ne redemande plus dans ce dépôt. Les approbations de modification de fichiers durent jusqu'à la fin de la session.
acceptEdits
Les modifications et les commandes de fichiers simples (mkdir, touch, rm, rmdir, mv, cp, sed) dans ton répertoire de travail s'exécutent sans prompt. Les autres commandes shell demandent toujours. Un bon compromis quand tu suis le diff en direct.
plan
Claude explore avec des lectures et des commandes en lecture seule, puis te présente un plan. Rien n'est modifié dans ton code tant que tu ne l'as pas approuvé. À utiliser sur du code que tu ne connais pas ou pour des changements risqués.
auto
Un modèle distinct examine chaque action avant son exécution et bloque celles qui dépassent ta demande, ciblent une infrastructure qu'il ne reconnaît pas ou semblent pilotées par du contenu malveillant. Les règles ask explicites affichent toujours un prompt. Si le classifieur bloque trois actions d'affilée ou vingt dans une session, le mode auto se met en pause et les prompts normaux reprennent. Selon Anthropic elle-même, le mode auto « réduit les prompts de permission mais ne garantit pas la sécurité ».
dontAsk
Tout ce qui déclencherait un prompt est refusé. Seules les règles allow et les actions qui ne demandent jamais d'approbation s'exécutent. Ce mode est fait pour les scripts et la CI, où personne n'est là pour répondre.
bypassPermissions et --dangerously-skip-permissions
--dangerously-skip-permissions équivaut à --permission-mode bypassPermissions. Les prompts sont ignorés, y compris pour les écritures dans des chemins protégés comme .git et .claude. Quelques éléments déclenchent quand même un prompt ou sont refusés dans tous les modes, notamment les règles ask explicites, AskUserQuestion et certaines commandes rm dangereuses. Les règles deny bloquent toujours.
Anthropic recommande de ne l'utiliser que dans des conteneurs, des VM ou des dev containers sans accès à internet. Sur Mac et Linux, Claude Code refuse de démarrer dans ce mode en root ou via sudo en dehors d'une sandbox reconnue. Si tu veux juste que le bypass soit disponible sans l'activer, --allow-dangerously-skip-permissions l'ajoute au cycle Shift+Tab sans basculer dessus.
04Les règles s'ajoutent aux modes
Les modes définissent la base. Les règles de permission dans les settings permettent de l'affiner :
{
"permissions": {
"allow": ["Bash(npm run test *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"]
}
}
Les règles sont évaluées dans l'ordre deny, puis ask, puis allow, et la première qui correspond l'emporte. Les règles deny bloquent dans tous les modes, y compris bypassPermissions. Les règles allow n'ont aucun effet en bypassPermissions, puisque tout y est déjà autorisé. Lance /permissions pour voir toutes les règles et le fichier d'où elles viennent.
Les hooks peuvent aussi intervenir. Un hook PreToolUse peut bloquer un appel d'outil dans n'importe quel mode. Un hook PermissionRequest peut répondre à un prompt à ta place, mais ne peut pas outrepasser une règle deny. Le guide PermissionRequest explique comment faire.
05Choisir un mode quand tu t'absentes
Si on se tourne vers --dangerously-skip-permissions, c'est en général pour laisser Claude tourner sans retrouver une session bloquée sur un prompt. Le problème est réel, mais le mode bypass le règle en supprimant totalement ton contrôle, sur ta propre machine.
Quelques combinaisons plus sûres :
- Des règles allow pour les commandes sans risque. Ajoute tes commandes de test, de lint et de build à
allow, gardeasksurgit pushet les déploiements, et reste endefaultouacceptEdits. - Le mode auto pour les tâches longues, si tu acceptes qu'un classifieur juge les actions de routine.
- Recevoir le prompt là où tu es. Garde un mode qui demande, et réponds depuis ton téléphone aux quelques prompts qui comptent.
C'est ce que fait Claude Code Notifier, la dernière option. C'est un outil indépendant, non développé par Anthropic. Son outil en ligne de commande, ccn, tourne sous forme de hooks Claude Code sur Mac, Windows et Linux. Quand Claude Code s'apprête à demander une permission et que tu n'es pas devant ton clavier, la demande part sur ton iPhone ou ton téléphone Android associé, où tu peux autoriser une fois, autoriser pour la session ou refuser. Il ne voit que les prompts que Claude Code allait afficher de toute façon : c'est donc toujours le mode et tes règles qui décident de ce qui doit être demandé. En mode auto, tu reçois moins de demandes ; en bypassPermissions, aucune, même si les alertes « Claude a terminé » et les questions arrivent toujours. Le guide d'approbation depuis le téléphone explique la configuration, et Est-ce sûr d'approuver depuis ton téléphone ? détaille les risques.
06FAQ
Quelle est la différence entre default et acceptEdits ?
default demande avant chaque modification de fichier et chaque commande shell. acceptEdits laisse passer sans demander les modifications de fichiers et les commandes de fichiers courantes comme mkdir, mv et cp dans le répertoire de travail. Les autres commandes shell déclenchent toujours un prompt dans les deux modes.
--dangerously-skip-permissions, c'est la même chose que bypassPermissions ?
Oui. Le flag équivaut à --permission-mode bypassPermissions. Anthropic ne le recommande que dans des conteneurs ou des VM isolés, idéalement sans accès à Internet.
Comment empêcher Claude Code de demander la permission pour une commande précise ?
Choisis « Yes, and don't ask again » sur le prompt, ou ajoute une règle allow comme "Bash(npm test)" sous permissions.allow dans tes réglages. C'est plus sûr que de changer tout le mode.
Les réglages d'un projet peuvent-ils me mettre en mode bypassPermissions ?
Non. bypassPermissions et auto dans .claude/settings.json ou .claude/settings.local.json n'ont aucun effet. Ils ne s'appliquent que depuis les réglages utilisateur ou gérés, ou via le flag en ligne de commande.
Les hooks tournent-ils encore en mode bypassPermissions ?
Oui. Les hooks tournent dans tous les modes, et un hook PreToolUse qui refuse un appel d'outil le bloque même en bypassPermissions. Un hook PermissionRequest ne s'exécute que lorsqu'il y a un prompt auquel répondre, donc en mode bypass il se déclenche rarement.