Claude Code asks permission before it does basically anything, and if you’ve been using it for a while you’ve probably wondered if there’s a way to skip that. There is: a flag called --dangerously-skip-permissions. But there’s also a middle ground between approving everything one by one and turning off permissions entirely.

HOW PERMISSIONS WORK IN CLAUDE CODE

Claude Code has a set of tools it uses to work on your project. Some of them are already approved by default, and some ask you first.

These run without asking:

ToolWhat it does
ReadLooking at a file to understand your code
GlobSearching for files by name
GrepSearching for text inside files

These ask every time:

ToolWhat it does
EditChanging part of an existing file
WriteCreating or overwriting a file
BashRunning a terminal command (npm run dev, git status, mkdir, etc.)

So the friction you’re actually feeling is file edits and terminal commands. That’s where the permission prompts come from, and that’s what you’re deciding whether to loosen up. The read-only stuff is already out of your way.

WHAT THE SKIP FLAG DOES

claude --dangerously-skip-permissions removes every checkpoint. Claude reads, writes, deletes, and runs commands without asking. The “dangerously” in the name is intentional, not marketing. You’re giving Claude full autonomy over your project.

You’ll see people online swearing by it, and for a focused task where you know what you’re asking for, it works fine. The risk is more subtle than you’d expect though. It’s not that Claude does something malicious, it’s that it “helpfully” modifies files outside the scope of what you asked, or cleans up something it assumed was temporary but wasn’t. One person wrote about Claude overwriting their config file during a test run because it decided to write directly into the live file instead of creating a new one.

For most of us building blogs, side projects, and apps we’re learning on, the skip flag is overkill. There’s a better path.

THE MIDDLE GROUND

There are a few options between “approve everything” and “skip everything,” and they layer on top of each other. I’d start at the top and go further only if you feel like you need to.

acceptEdits mode — If you only do one thing from this article, do this. It auto-approves file edits but still asks before running terminal commands:

Turn on acceptEdits mode

This is what I’d recommend for most people. The majority of permission prompts you’re hitting are Claude asking to edit a file you literally just asked it to work on. This gets rid of those while keeping a checkpoint on bash commands, which is where the riskier stuff happens. It’s a good default.

Allowlists — If you’re still getting interrupted too much after acceptEdits, you can also pre-approve specific terminal commands. Things like git status, npm run dev, mkdir, the stuff you’d always say yes to anyway:

Open my Claude Code settings and allowlist common commands
I'm comfortable with, like git status, npm run dev, and mkdir.
Keep asking me about anything destructive.

You probably don’t need this right away. Try acceptEdits for a while first and see if the remaining prompts actually bother you.

THE DENY LIST You can also explicitly block commands you never want Claude to run, like rm -rf. Deny rules always win, even if you later use the skip flag. Think of it as a floor that can’t be overridden.

Checking what you’ve set up — Type /permissions inside Claude Code to see all your current rules, where they came from, and manage them. You don’t need to go find a JSON file somewhere.

SO WHAT SHOULD YOU ACTUALLY DO

If you’re new to Claude Code, leave everything as-is for a bit. The prompts are annoying but they’re also showing you what Claude does when you give it a task, and that awareness is worth building early on.

Once you’re comfortable and the edit prompts start feeling pointless, turn on acceptEdits. That one change will make your sessions feel noticeably smoother, and it’s what I’d tell most vibers to do.

If you want to go further, add allowlists for the bash commands you’re tired of approving. You can also set up different rules per project, so a throwaway side project can be loose while your main thing stays locked down.

The skip flag is there if you want it, but honestly, acceptEdits plus a few allowlisted commands gets you 90% of the way there without giving up the safety net entirely. And if you want to take safety a step further, hooks let you set up rules that block Claude from doing specific things no matter what, like committing API keys or running destructive commands.