Vraagt Claude Code steeds om toestemming? Los het op zonder --dangerously-skip-permissions
Voor de veertigste keer npm test goedkeuren is gewoon ruis. Claude Code heeft alles in huis om de saaie prompts het zwijgen op te leggen en de gevaarlijke te behouden. Het is alleen verspreid over drie bestanden en zes modi.
KORT ANTWOORD
Zet de commando’s die je altijd goedkeurt in permissions.allow (bijvoorbeeld Bash(npm run *)), de commando’s die altijd moeten stoppen in ask of deny, en kies een machtigingsmodus die bij de taak past: acceptEdits voor veel bewerkingen, auto voor routinewerk, plan om te lezen. Regels worden gecontroleerd in de volgorde deny → ask → allow, dus een deny kan nooit worden overschreven. Gebruik /permissions om te zien waar elke regel vandaan komt. Bewaar --dangerously-skip-permissions voor wegwerpcontainers.
Waarom Claude Code zo vaak vraagt
In de standaardmodus (in de CLI Manual genoemd) vraagt Claude Code om toestemming de eerste keer dat het een tool gebruikt, en opnieuw voor elk shellcommando dat het nog niet mag uitvoeren. De prompt is het moment waarop je een verkeerde rm of een onbedoelde git push kunt tegenhouden, dus hij is het bewaren waard. Het probleem is dat hij ook verschijnt voor de honderd onschuldige dingen die een agent in een sessie doet.
Drie dingen bepalen of je een prompt ziet: de regels in je instellingenbestanden, de machtigingsmodus waarin je zit, en de antwoorden die je eerder gaf met “Yes, and don’t ask again”. Wil je van de ruis af, dan moet je alle drie afstellen.
Claude Code v2.1.283 en later start interactieve terminal- en VS Code-sessies in de modus auto, op elk abonnement en bij elke provider. In auto-modus controleert een classifier op de achtergrond commando’s en netwerkverzoeken aan de hand van wat je hebt gevraagd, in plaats van te vragen om routinehandelingen. Zie je nog steeds overal een prompt, kijk dan in de statusbalk: “⏸ manual mode on” betekent dat je in de standaardmodus zit.
Allow-, ask- en deny-regels
Regels staan onder permissions in een instellingenbestand. Dit voorbeeld komt rechtstreeks uit de instellingenreferentie van Anthropic:
allow: wordt uitgevoerd zonder te vragen.ask: vraagt altijd, ook in modi die het anders zouden goedkeuren.deny: wordt nooit uitgevoerd.
De volgorde is het belangrijkste: eerst deny, dan ask, dan allow. De eerste match wint, en specificiteit verandert de volgorde niet. Een allow-regel kan geen uitzondering maken op een deny-regel, en als een tool op enig niveau wordt geweigerd, kan geen ander niveau hem toestaan. Regels worden afgedwongen door Claude Code zelf, niet door het model, dus “nooit pushen” in CLAUDE.md schrijven doet niet hetzelfde als een deny-regel.
Een regel schrijven
| Regel | Waar het op matcht |
|---|---|
Bash(npm run *) | npm run build, npm run test --watch, maar niet npm install |
Bash(git log *) | Alleen git log …. Vergelijk met Bash(git *), dat elk git-commando toestaat. |
Bash(ls:*) | Hetzelfde als Bash(ls *): :* is een andere schrijfwijze voor een wildcard aan het eind |
Read(./.env) | Dat bestand lezen. Read- en Edit-regels gebruiken gitignore-patronen |
Edit(//Users/alice/notes/**) | Een absoluut pad. Eén / aan het begin is relatief ten opzichte van het instellingenbestand, dus absolute paden hebben // nodig |
WebFetch(domain:example.com) | Alleen example.com. Voeg WebFetch(domain:*.example.com) toe voor subdomeinen |
mcp__github__* | Elke tool van de MCP-server github. Regels met haakjes na mcp__ worden overgeslagen |
Op Windows hebben PowerShell-regels dezelfde vorm als Bash-regels.
Welk instellingenbestand je moet gebruiken
| Bereik | Bestand | Gebruik het voor |
|---|---|---|
| Gebruiker | ~/.claude/settings.json (Windows: %USERPROFILE%\.claude\settings.json) | Je eigen gewoonten, in elk project |
| Project, gedeeld | .claude/settings.json | Regels die het hele team moet krijgen (commit het bestand) |
| Project, lokaal | .claude/settings.local.json | Je persoonlijke regels voor één repo (niet gecommit) |
| Beheerd | managed-settings.json en andere beheerde bronnen | Bedrijfsbeleid; niets kan dit overschrijven |
Prioriteit, hoogste eerst: beheerd, opdrachtregel, project lokaal, gedeeld project, gebruiker. Lijstsleutels zoals permissions.allow worden over bestanden heen samengevoegd, niet vervangen. Twee details zetten mensen vaak op het verkeerde been:
- Instellingenbestanden zijn strikte JSON: een
//-opmerking of een komma aan het eind is een syntaxfout, en dan wordt het hele bestand genegeerd. - Allow-regels in een gedeeld projectbestand gelden pas nadat elke teamgenoot de map vertrouwt. Deny- en ask-regels gelden meteen.
De meeste wijzigingen gelden voor de lopende sessie zonder herstart, ook permissions en hooks. Om te zien wat er echt is geladen, voer je /status uit (de vermelding Setting sources) of /permissions, dat elke regel toont met het bestand waar hij vandaan komt.
Wat “Yes, and don’t ask again” echt opslaat
Als je een prompt beantwoordt met “don’t ask again”, schrijft Claude Code een regel voor je in .claude/settings.local.json in de root van de git-repository. Hoe lang die geldt, hangt af van de tool:
| Tool | Onthouden |
|---|---|
| Bash-commando’s | Permanent, per repository en commando |
| Bestandsbewerkingen | Tot de sessie eindigt |
| WebFetch | Permanent, per repository en domein |
Blijft Claude dus elke nieuwe sessie vragen om bestanden te bewerken, dan is dat zo bedoeld: goedkeuringen voor bestandsbewerkingen gelden per sessie. Gebruik in plaats daarvan de modus acceptEdits of een allow-regel Edit(...). En blijft een commando vragen, zelfs na “don’t ask again”, zoek dan naar een ask-regel in een project- of beheerd bestand. Een allow-regel in je lokale bestand gaat daar niet boven.
Machtigingsmodi, en wanneer je welke gebruikt
| Modus | Wat het doet | Geschikt voor |
|---|---|---|
default (Manual) | Vraagt bij het eerste gebruik van elke tool | Onbekende repo’s, riskant werk |
acceptEdits | Accepteert bestandsbewerkingen zonder te vragen | Lange refactors die je in git gaat reviewen |
plan | Leest en plant, verandert niets | Een codebase verkennen, een wijziging ontwerpen |
auto | Geen routineprompts; een classifier controleert eerst commando’s en netwerkverzoeken | Dagelijks werk |
dontAsk | Vraagt niets | Scripts en automatisering |
bypassPermissions | Slaat prompts over, ook voor schrijfacties naar .git en .claude | Alleen geïsoleerde containers of VM’s |
Druk op Shift+Tab om door de modi te bladeren. Vanuit auto gaat de eerste druk naar default, daarna default → acceptEdits → plan. Stel een startmodus in met permissions.defaultMode; let op: auto en bypassPermissions werken alleen vanuit gebruikers- of beheerde instellingen, niet vanuit een projectbestand.
Sommige dingen vragen altijd, in elke modus inclusief bypass: expliciete ask-regels, vragen die Claude jou stelt, en onder andere rm op kritieke paden. Beheerders kunnen de riskante modi uitschakelen door permissions.disableBypassPermissionsMode of permissions.disableAutoMode op "disable" te zetten.
Over --dangerously-skip-permissions
--dangerously-skip-permissions is hetzelfde als --permission-mode bypassPermissions. De documentatie van Anthropic is daar duidelijk over: gebruik het alleen in geïsoleerde omgevingen zoals containers, VM’s of dev containers zonder internettoegang. Het weigert als root te draaien op Linux en macOS, en zodra je de waarschuwing accepteert, zet het skipDangerousModePermissionPrompt in je gebruikersinstellingen.
Als je eigenlijk wilt dat het “stopt met vragen over saaie dingen”, kom je daar met auto-modus plus een paar allow-regels, zonder de prompts op te geven die ertoe doen.
De sandbox: minder prompts met een vangnet
Claude Code kan shellcommando’s in een sandbox uitvoeren. Dat staat standaard uit; zet het aan met /sandbox of sandbox.enabled: true. De ene sandboxmodus keurt commando’s in de sandbox automatisch goed, de andere vraagt nog steeds. De sandbox geldt alleen voor shellcommando’s: bestandstools, MCP-servers en hooks draaien erbuiten.
Hij werkt op macOS, Linux en WSL2. Op native Windows werkt de sandbox niet, en commando’s draaien zonder sandbox. Dat is nog een reden om daar een korte ask-lijst aan te houden.
Een configuratie die werkt
Dit is een redelijk startpunt voor een JavaScript-project. Pas de commando’s aan je stack aan:
- Begin met een allow-lijst van alleen-lezen- en testcommando’s.
- Zet alles wat je machine verlaat (push, publish, deploy) in
ask. - Weiger toegang tot geheimen volledig.
- Werk in auto of acceptEdits, en schakel naar plan-modus als je aan het verkennen bent.
- Open om de paar dagen
.claude/settings.local.jsonen ruim de regels op die “don’t ask again” heeft toegevoegd.
Als de overgebleven prompts op de verkeerde plek staan
Na het afstellen zou je alleen nog vragen moeten krijgen over dingen die een beslissing verdienen. Het resterende probleem is waar de vraag verschijnt: in een terminaltabblad achter je browser, waar de agent twintig minuten kan wachten voordat je het merkt.
Pet Island verplaatst die vragen naar een klein eiland bovenaan je scherm. Als Claude Code toestemming nodig heeft, verschijnt het verzoek daar met het commando of de diff, en sta je het toe, weiger je het of sta je het altijd toe zonder van venster te wisselen. Ook de vragen en plannen van Claude Code werken vanaf het eiland, en als het eiland gesloten is, valt Claude Code gewoon terug op vragen in de terminal.
VEELGESTELDE VRAGEN
Hoe zorg ik dat Claude Code niet voor elk commando om toestemming vraagt?
Voeg de commando’s die je vertrouwt toe aan permissions.allow in ~/.claude/settings.json, bijvoorbeeld "Bash(npm run *)", en gebruik de modus auto of acceptEdits. Houd riskante commando’s in permissions.ask zodat ze nog steeds stoppen.
Waarom vraagt Claude Code opnieuw om bestandsbewerkingen nadat ik don’t ask again heb gekozen?
Goedkeuringen voor bestandsbewerkingen gelden alleen tot de sessie eindigt. Gebruik de modus acceptEdits of een allow-regel Edit(...) als je bewerkingen over sessies heen wilt goedkeuren.
Kan een allow-regel een deny-regel overschrijven?
Nee. Regels worden gecontroleerd in de volgorde deny, ask, allow, en de eerste match wint. Een tool die op enig niveau wordt geweigerd, kan nergens anders worden toegestaan.
Is --dangerously-skip-permissions veilig?
Anthropic raadt het alleen aan in geïsoleerde omgevingen zoals containers of VM’s zonder internettoegang. Het slaat ook prompts over voor schrijfacties naar .git en .claude.
Waar slaat “Yes, and don’t ask again” de regel op?
In .claude/settings.local.json in de root van de git-repository.
Werkt de sandbox van Claude Code op Windows?
Niet op native Windows; daar draaien commando’s zonder sandbox. Hij werkt op macOS, Linux en WSL2.
Bronnen
Elke instelling en elk gedrag op deze pagina is op 26 oktober 2026 gecontroleerd aan de hand van deze pagina’s. Agents veranderen snel; klopt er iets niet meer, dan geldt de officiële pagina.
- Claude Code-documentatie: Configure permissions
- Claude Code-documentatie: Permission modes
- Claude Code-documentatie: Settings
- Claude Code-documentatie: Settings reference
- Claude Code-documentatie: Sandboxing