← terug naar artikelen

Claude Code draait bij mij standaard in auto mode

Ik draai Claude Code niet meer in de normale permission-mode, maar standaard in auto mode. Ik hoef het zo niet per sessie aan te zetten, want het staat als default in mijn ~/.claude/settings.json. Elke nieuwe sessie start meteen in auto mode. En dat scheelt een hoop geklik op ‘yes’.

"permissions": {
  "defaultMode": "auto"
}

Die defaultMode kent een handvol standen, en auto is er maar één van. default is de normale stand die overal om akkoord vraagt. acceptEdits accepteert je file-edits en een paar veilige filesystem-commando’s vanzelf. plan is read-only: Claude verkent je code, maar raakt ‘m niet aan. dontAsk doet juist het omgekeerde en keurt alles af wat je niet vooraf hebt toegestaan. En bypassPermissions is de stand achter --dangerously-skip-permissions, die slaat zo’n beetje alles over. Goed om te weten: auto is nu nog een research preview, dus er kan nog aan geschaafd worden.

In de default mode vraagt Claude bij zo’n beetje elke file-write en elk bash-commando om akkoord. Veilig, maar je kunt geen grote taak starten en even weglopen, want na een minuut staat ie alweer te wachten op een “ja”. Het andere uiterste dat er eerder was is --dangerously-skip-permissions, waardoor alles mag, zonder vangnet. Dat werkt lekker snel, maar kan wel gevaarlijk zijn doordat bijvoorbeeld ook rm en git push --force toegankelijk zijn.

Auto mode zit daartussen. Voor elke tool-call kijkt een aparte classifier mee, een Sonnet-model: is dit veilig of niet? Veilige dingen gaan automatisch door. Dat zijn reads en search, edits binnen je project, en de patterns die je zelf in je allowlist zet. Risicovolle acties worden wel nog geblokkeerd of teruggekaatst.

Een paar voorbeelden van ‘risicovol’ die Anthropic zelf noemt: een force-push naar main, een deploy naar productie, of een agent die na een auth-error je environment-variabelen en config-files begint te greppen op zoek naar een andere API-key.

Onder de motorkap zit het in twee trappen. Trap één is een snelle yes/no die expres streng staat: liever te vaak blokkeren dan te weinig. Pas als die iets verdacht vindt, gaat trap twee er met chain-of-thought overheen om te checken of het echt mis is. Zo blijven de meeste acties goedkoop en wordt alleen het twijfelgeval duur.

Ik vertrouw die classifier niet blind. Bovenop auto mode heb ik in dezelfde settings.json een eigen deny-lijst staan met dingen die ik nooit automatisch wil laten gebeuren:

"deny": [
  "Bash(git reset --hard*)",
  "Bash(git push --force*)",
  "Bash(docker rm*)",
  "Read(.env*)"
]

Dat is mijn eigen vangnet, met daarnaast hooks die echt destructieve dingen blokkeren. Wat in de deny list staat wordt altijd geblokkeerd, of de classifier het nou spannend vindt of niet. Zo heb je het gemak van auto mode, met een paar harde grenzen die je zelf trekt.

Maar dat is wel de deal: het kost iets meer tokens en wat latency per gecheckte actie. Je betaalt dus een beetje voor die classifier. Voor mij is dat het waard. Ik laat veel langere taken in één keer lopen en hoef niet meer om de haverklap “ja” te tikken, en zo kun je veel beter parallel met meerdere agents werken.

De --dangerously-skip-permissions vond ik altijd te spannend, maar met auto mode heb ik nu een modus gevonden waardoor 90% van mijn werk lekker door kan lopen, zonder dat ik me druk maak om breaking changes.

Als ik jou was, zou ik hem als default zetten, en voor meer instellingen kun je in de officiële docs kijken.