Der Permission-Modus von Claude Code legt fest, welche Aktionen ohne Nachfrage laufen. default (angezeigt als Manual) fragt vor Änderungen und Shell-Befehlen. acceptEdits lässt zusätzlich Dateiänderungen und gängige Dateibefehle durch. plan lässt Claude lesen und einen Plan vorschlagen, aber nichts ändern. Bei auto genehmigt ein Classifier im Hintergrund Aktionen statt dir. dontAsk lehnt alles ab, was eine Nachfrage auslösen würde. bypassPermissions, das du mit --dangerously-skip-permissions aktivierst, überspringt Nachfragen fast komplett und ist nur für isolierte Container oder VMs gedacht. Mit Shift+Tab wechselst du durch die Modi, oder du startest mit claude --permission-mode <mode>.
Dieser Guide basiert auf der Dokumentation zu Permission-Modi von Anthropic. Claude Code ändert sich oft, schau also dort für deine Version nach.
01Die sechs Modi im Überblick
default (Manual)Nur LesezugriffeJede Aktion prüfen, sensible ArbeitacceptEditsLesezugriffe, Dateiänderungen und gängige Dateisystem-Befehle wie mkdir, touch, mv und cp im ArbeitsverzeichnisIteratives Arbeiten an Code, den du im Blick hastplanLesezugriffe; Änderungen sind blockiert, bis du den Plan freigibstErst erkunden, dann ändernautoAlles, wobei ein Classifier jede Aktion vorab prüftLange Tasks mit weniger PromptsdontAskLesezugriffe in den Arbeitsverzeichnissen und vorab freigegebene Tools; alles andere wird abgelehntCI und abgeschottete SkriptebypassPermissionsAlles, mit wenigen AusnahmenNur isolierte Container und VMsdefault ist der Name in Settings, Hooks und beim Flag --permission-mode. CLI, IDE-Extensions und Desktop-App nennen ihn Manual, und die CLI akzeptiert manual als Alias.
02So wechselst du den Modus
Drück im Terminal Shift+Tab. Die Reihenfolge ist default, acceptEdits, plan, danach alle optionalen Modi, die deine Session erlaubt. dontAsk taucht dabei nie auf; den setzt du nur per Flag.
So startest du eine Session in einem bestimmten Modus:
claude --permission-mode plan
Um einen Modus als Standard festzulegen, trag ihn in ~/.claude/settings.json ein:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
Das Flag hat Vorrang vor der Setting, und die Setting vor dem eingebauten Standard. Eine Einschränkung solltest du kennen: auto und bypassPermissions greifen nicht, wenn sie in der .claude/settings.json oder .claude/settings.local.json eines Projekts stehen. Ein Repository kann dich also nicht heimlich in den Bypass-Modus schalten. Setz diese beiden in deinen User-Settings oder per Flag.
In welchem Modus eine neue Session startet
Neuere Versionen von Claude Code (ab v2.1.283) starten interaktive Terminal- und VS Code-Sessions in auto, sofern der Auto-Modus verfügbar ist und deine Settings nichts anderes vorgeben. claude -p und Agent-SDK-Läufe starten in default. Falls du nie einen Modus gewählt hast und dich über so wenige Prompts wunderst: Das ist der Grund.
03Die Modi im Detail
default (Manual)
Claude darf Dateien ohne Nachfrage lesen. Für Änderungen, Shell-Befehle und Netzwerkzugriffe kommt jeweils ein Prompt. Bei einem Bash-Prompt speichert „Yes, and don't ask again“ eine Allow-Regel in .claude/settings.local.json, damit dieser Befehl in diesem Repository nicht mehr nachfragt. Freigaben für Dateiänderungen gelten bis zum Ende der Session.
acceptEdits
Änderungen und einfache Dateibefehle (mkdir, touch, rm, rmdir, mv, cp, sed) im Arbeitsverzeichnis laufen ohne Prompt. Andere Shell-Befehle fragen weiterhin nach. Ein guter Mittelweg, wenn du den Diff live verfolgst.
plan
Claude erkundet per Lesezugriff und Read-only-Befehlen und legt dir dann einen Plan vor. An deinem Code wird nichts geändert, bevor du ihn freigibst. Ideal für unbekannten Code oder riskante Änderungen.
auto
Ein separates Modell prüft jede Aktion vor der Ausführung und blockiert alles, was über deine Anfrage hinausgeht, auf unbekannte Infrastruktur zielt oder von feindseligen Inhalten gesteuert wirkt. Explizite ask-Regeln fragen weiterhin nach. Blockiert der Classifier drei Aktionen hintereinander oder zwanzig in einer Session, pausiert der Auto-Modus und die normalen Prompts kommen zurück. Anthropic selbst sagt dazu, der Auto-Modus „reduces permission prompts but does not guarantee safety.“
dontAsk
Alles, was einen Prompt auslösen würde, wird abgelehnt. Es laufen nur Allow-Regeln und Aktionen, die nie eine Freigabe brauchen. Gedacht für Skripte und CI, wo niemand antworten kann.
bypassPermissions und --dangerously-skip-permissions
--dangerously-skip-permissions entspricht --permission-mode bypassPermissions. Prompts werden übersprungen, auch bei Schreibzugriffen auf geschützte Pfade wie .git und .claude. Ein paar Dinge fragen in jedem Modus nach oder werden abgelehnt, etwa explizite ask-Regeln, AskUserQuestion und manche gefährlichen rm-Befehle. Deny-Regeln blockieren weiterhin.
Anthropic empfiehlt, ihn nur in Containern, VMs oder Dev-Containern ohne Internetzugang zu nutzen. Auf Mac und Linux verweigert Claude Code den Start in diesem Modus als root oder unter sudo außerhalb einer erkannten Sandbox. Wenn du Bypass nur verfügbar, aber nicht aktiv haben willst, fügt --allow-dangerously-skip-permissions ihn zum Shift+Tab-Zyklus hinzu, ohne dorthin zu wechseln.
04Regeln liegen über den Modi
Modi legen die Basis fest. Permission-Regeln in den Settings verfeinern sie:
{
"permissions": {
"allow": ["Bash(npm run test *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"]
}
}
Regeln werden in der Reihenfolge deny, ask, allow geprüft, und der erste Treffer entscheidet. Deny-Regeln blockieren in jedem Modus, auch in bypassPermissions. Allow-Regeln wirken in bypassPermissions nicht, weil dort ohnehin alles erlaubt ist. Mit /permissions siehst du alle Regeln und die Datei, aus der sie stammen.
Auch Hooks können mitspielen. Ein PreToolUse-Hook kann einen Tool-Aufruf in jedem Modus blockieren. Ein PermissionRequest-Hook kann einen Prompt für dich beantworten, aber keine Deny-Regel aushebeln. Wie das geht, zeigt der PermissionRequest-Guide.
05Den richtigen Modus wählen, wenn du nicht am Rechner bist
Meistens greift man zu --dangerously-skip-permissions, weil man Claude laufen lassen will, ohne später zu einer Session zurückzukommen, die an einem Prompt hängt. Das Problem ist real, aber der Bypass-Modus löst es, indem er deine Kontrolle komplett abschaltet – und zwar auf deinem eigenen Rechner.
Ein paar sicherere Kombinationen:
- Allow-Regeln für die langweiligen Befehle. Trag deine Test-, Lint- und Build-Befehle in
allowein, lassaskfürgit pushund Deploys aktiv und bleib indefaultoderacceptEdits. - Auto-Modus für lange Tasks, bei denen du bei Routineaktionen dem Urteil eines Classifiers vertraust.
- Hol dir den Prompt dorthin, wo du gerade bist. Bleib in einem Modus, der nachfragt, und beantworte die wenigen wichtigen Prompts auf dem Handy.
Genau das macht Claude Code Notifier. Es ist ein unabhängiges Tool und stammt nicht von Anthropic. Das Kommandozeilentool ccn läuft als Claude Code-Hooks auf Mac, Windows und Linux. Wenn Claude Code gleich um Erlaubnis fragen will und du nicht an der Tastatur bist, landet die Anfrage auf deinem gekoppelten iPhone oder Android-Handy. Dort kannst du einmal erlauben, für die Session erlauben oder ablehnen. Es sieht nur Prompts, die Claude Code sowieso angezeigt hätte – was nachgefragt wird, bestimmen also weiterhin der Modus und deine Regeln. Im auto-Modus bekommst du weniger Anfragen, in bypassPermissions gar keine; Benachrichtigungen wie „Claude ist fertig“ und Rückfragen kommen aber trotzdem an. Die Einrichtung erklärt die Anleitung zur Freigabe per Handy, die Risiken behandelt Ist die Freigabe per Handy sicher?.
06FAQ
Was ist der Unterschied zwischen default und acceptEdits?
default fragt vor jeder Dateiänderung und jedem Shell-Befehl nach. acceptEdits lässt Dateiänderungen und gängige Dateibefehle wie mkdir, mv und cp im Arbeitsverzeichnis ohne Nachfrage laufen. Bei anderen Shell-Befehlen kommt in beiden Modi weiterhin ein Prompt.
Ist --dangerously-skip-permissions dasselbe wie bypassPermissions?
Ja. Das Flag entspricht --permission-mode bypassPermissions. Anthropic empfiehlt es nur in isolierten Containern oder VMs, idealerweise ohne Internetzugang.
Wie sorge ich dafür, dass Claude Code bei einem bestimmten Befehl nicht mehr nachfragt?
Wähl im Prompt „Yes, and don't ask again“ oder füg in deinen Settings unter permissions.allow eine Allow-Regel wie "Bash(npm test)" hinzu. Das ist sicherer, als den ganzen Modus zu ändern.
Können die Settings eines Projekts mich in den bypassPermissions-Modus versetzen?
Nein. bypassPermissions und auto in .claude/settings.json oder .claude/settings.local.json haben keine Wirkung. Sie greifen nur aus User- oder Managed-Settings oder über das Kommandozeilen-Flag.
Laufen Hooks auch im bypassPermissions-Modus?
Ja. Hooks laufen in jedem Modus, und ein PreToolUse-Hook, der einen Tool-Aufruf ablehnt, blockiert ihn selbst in bypassPermissions. Ein PermissionRequest-Hook läuft nur, wenn es einen Prompt zu beantworten gibt, im Bypass-Modus also kaum.