--dangerously-skip-permissions is the only safe mode | Granola--dangerously-skip-permissions is the only safe mode<br>Jim Fisher
May 11
Claude Code has a flag called --dangerously-skip-permissions.<br>Despite the name, I'm more nervous about engineers who don't use it.<br>If you run the default "permissions" mode, your Claude setup is probably unsafe.
--dangerously-skip-permissions lets the agent do anything it wants on your machine.<br>Sounds dangerous.<br>Claude could do real damage with the DATABASE_URL in your env files.
By default, Claude asks permission before it acts:<br>run a script, delete a file, make a network request.<br>Sounds sensible.<br>The human stays in the loop.
Now watch what happens after a few minutes.
Claude asks to write a script.<br>Writing files is safe.<br>Approve.<br>Claude asks to run the script.<br>The script looks safe.<br>Approve.<br>The script has a bug.<br>Claude edits it and asks to re-run.<br>Read the diff, approve.
After a handful of these, it starts to feel like real work, and the last ten were fine.<br>Probably fine. Approve.
I'm now effectively in --dangerously-skip-permissions mode,<br>except I have to sit at the keyboard to skip the permissions.<br>This is approval fatigue,<br>and it's why the default mode is worse than --dangerously-skip-permissions.
If approval doesn't work, what does?<br>Auth.
This is how we handle the same problem for humans at work.<br>Bob gets an access token.<br>He makes requests like "give me this file",<br>and the service authorizes him against a policy like "Bob owns this file".
Bob's permissions balance two things:<br>he needs access to be productive,<br>but he can also make mistakes, turn disgruntled, or lose his laptop.
Bob writes and runs any scripts he likes on his machine.<br>No human reads or approves them.<br>The auth policy is enforced by the services his scripts talk to.<br>Auth policies don't get tired.
Agents have the same shape.<br>They can be helpful. They can also turn stupid or malicious or both.<br>And we can't post a human behind every action.
So the equivalent of auth for Claude Code is auth.<br>Give him credentials. Let him run whatever scripts he wants with them.
Suppose you have two colleagues.<br>Bob runs Claude in regular permissions mode.<br>Alice runs Claude with --dangerously-skip-permissions.<br>Who is more likely to cause a production incident?
Bob makes me more nervous.<br>His discomfort with --dangerously-skip-permissions<br>means he knows his machine holds credentials he doesn't trust Claude with.<br>He's trying to verify every action, and eventually he will slip.
That's why --dangerously-skip-permissions is the safer mode.<br>It forces you to give your agent a working permissions system:<br>auth, not approval.
Jim Fisher, Founding Engineer
Share