Skip to content

Guide · Permission modes · Read before you pass the flag

claude --dangerously-skip-permissions: what it removes

It switches off the permission prompts and the protected-path checks, and puts nothing in their place. Here is exactly what the flag removes, why hooks are not a safety net there, and the setups to run instead.

by: myrmitis LLC

Updated 2026-09-25

claude --dangerously-skip-permissions starts Claude Code in bypassPermissions mode, the one people call YOLO mode. Almost every tool call runs the moment the model makes it: no permission prompt, no protected-path check, nothing in their place. Anthropic’s docs say to use it only inside an isolated container or VM. Hooks are not a dependable net there either: the docs say a hook’s deny still blocks, but a public bug report describes a command finishing before the deny arrived. For fewer prompts, run auto mode, or Manual mode with the sandbox, and add deterministic rules.

What --dangerously-skip-permissions removes

The flag is equivalent to --permission-mode bypassPermissions. In Anthropic’s words, the mode “disables permission prompts and safety checks so tool calls execute immediately, including writes to protected paths.” Protected paths are the files Claude Code otherwise never auto-approves: .git, .claude, .husky, shell profiles such as .bashrc and .zshrc, .npmrc, .mcp.json and more. Under this flag those writes go straight through.

A few checks survive. It is worth knowing exactly which ones, because they are all you have left:

Bulkheadwhat the flag removes

claude --dangerously-skip-permissions
permission modebypassPermissions
docs checked2026-09-25

Removed
Permission promptsOFF
Protected-path checksOFF
.git .claude .bashrc .npmrc .mcp.json …
Plan-mode edit blockOFF
in interactive terminal sessions

Still enforced
Permission deny rulesAPPLY
Explicit ask rulesPROMPT
rm of / ~ or the project dirPROMPT
“critical paths”
Starting as root or sudoREFUSED
Linux and macOS

Hooks
PreToolUse deny, per the docsBLOCKS
PreToolUse deny, per #20946TOO LATE
git commit landed; deny came 37 s later

What replaces the promptNOTHING
Itemised from Anthropic’s permission-mode, sandboxing and hooks docs and issue #20946. “Nothing” is the sandboxing docs’ own answer. The stamp is ours: bypass mode is not a configuration Bulkhead supports.

The bottom line on that receipt is a quote. The sandboxing docs list what replaces the permission prompt under this flag: “Nothing.” The permission-mode docs add that bypass mode “offers no protection against prompt injection or unintended actions.” Anthropic’s auto mode announcement is blunter still: skipping permissions “can result in dangerous and destructive outcomes and should not be used outside of isolated environments.”

Why hooks are not a safety net in bypass mode

A PreToolUse hook is a program Claude Code runs before each tool call. It can answer “deny”, and the call doesn’t happen. Anthropic’s hooks guide says these hooks fire before any permission-mode check and that a deny “blocks the tool even in bypassPermissions mode or with --dangerously-skip-permissions.”

A public bug report says it didn’t. In anthropics/claude-code#20946, “PreToolUse hooks don’t block command execution in bypass mode” (opened January 2026), a hook returned exit code 2 to block a git commit. The denial arrived 37 seconds after the command was issued; the commit already existed. The issue was closed as not planned. It is one report, and we have not reproduced it on the current release. But “the docs say it holds” is not the same as “we checked”, and a guardrail you can’t verify is a guess.

So Bulkhead does not support bypass mode. If you run it there, its hooks still install and still try; we just won’t tell you they hold. The same goes for any hook-based guard, including the ones in our Claude Code hooks guide.

Every mode, and what decides each call

Permission modes · Claude Code docs, checked 2026-09-30
Mode or flagWhat decides each callBulkhead
default (Manual)--permission-mode defaultYou, at a prompt. Reads run without asking.Supported
acceptEdits--permission-mode acceptEditsYou, at a prompt, except reads plus file edits and common filesystem commands (mkdir, touch, rm, mv, cp, sed) inside your working directory. Protected paths still prompt.Supported
auto--permission-mode autoA classifier model reviews each action beyond reads and edits in your working directory. The built-in starting mode for terminal and VS Code sessions from Claude Code v2.1.283.Supported
bypassPermissions--dangerously-skip-permissionsNothing. Calls run immediately.Not supported
--bareclaude --bare -p "…"Skips auto-discovery of hooks, skills, plugins, MCP servers and CLAUDE.md.No hooks run

What to run instead

Pick by how much you’ll be watching. Each setup below gives the prompt’s job to something (a classifier, an operating-system boundary, a rule) instead of to nothing.

Under every one of themDeterministic rules in your repoSame answer every time, whatever the mode decides: permission deny rules, your own hooks, or Bulkhead.

1. At your desk, fewer prompts: auto mode

A separate classifier model reviews each action before it runs and, by default, blocks things like curl | bash, production deploys, mass deletion on cloud storage and force pushes. Anthropic’s own framing: auto mode “reduces risk compared to --dangerously-skip-permissions but doesn’t eliminate it entirely.” Our auto mode guide covers where a classifier and a fixed rule disagree.

Terminal
claude --permission-mode auto

2. At your desk, no classifier: Manual mode plus the sandbox

Run /sandbox and pick auto-allow. Shell commands that stay inside the sandbox’s filesystem and network limits run without a prompt, and the operating system enforces the boundary. Deny rules still apply and a critical-path rm still prompts. The Bash sandbox covers shell commands only; Claude Code’s file tools, MCP servers and hooks still run on your host.

Terminal
claude --permission-mode default
# then, inside the session:
/sandbox

3. Unattended: a real boundary first

For overnight or CI runs, put the whole Claude Code process inside a boundary: Anthropic’s dev container (with its default-deny firewall), your own container, a VM, Docker Sandboxes, or the @anthropic-ai/sandbox-runtime wrapper, run as a non-root user. Anthropic’s sandbox environment docs call that boundary required for bypass mode. If you do skip permissions inside the box, the box is your control, not your hooks. We would still run auto mode in there, so each action keeps a reviewer and the rule layer below keeps working.

Inside the container, as a non-root user
claude -p "port the billing tests to vitest" --permission-mode auto

Then put a floor under all three

Whichever mode you pick, the lines that must hold the same way every time belong in code, not in a model’s judgment or in CLAUDE.md. That is what Bulkhead is: PreToolUse, PostToolUse and Stop hooks plus a bulkhead.yaml you own. It denies dangerous commands such as terraform destroy, an unscoped DELETE or a force-push to main, sends the agent back to work when it says “all tests pass” after a failed run, pauses at a dollar cap, and keeps a hash-chained receipt of the session. It works in Manual, acceptEdits and auto mode; add --preset strict for unattended runs.

dangerous calls denied in the open corpus
26/26
more denied with --preset strict
+6
known misses, listed on purpose
5
default session cap ($20 a day)
$5
In your repo
npx @bulkheadtools/cli init

What it doesn’t do: it is not a sandbox, it can’t see inside python3 -c or a script the agent wrote a minute earlier, and it doesn’t stop prompt injection. The proof shows the 5 known misses next to the denials, and sandbox vs guardrails covers how the two layers fit.

Questions

Is --dangerously-skip-permissions the same as YOLO mode?

Yes. “YOLO mode” is the community’s name for starting Claude Code with --dangerously-skip-permissions, which is equivalent to --permission-mode bypassPermissions. Tool calls run without permission prompts and without protected-path checks, and nothing takes the prompt’s place.

Can hooks make --dangerously-skip-permissions safe to use on my laptop?

Not in a way we would rely on. Anthropic’s hooks guide says a PreToolUse deny blocks even in bypass mode, but a public bug report (anthropics/claude-code#20946, closed as not planned) describes a git commit that completed before the hook’s deny arrived. Until that is verified on the release you run, treat hooks in bypass mode as unverified and let an isolation boundary do the protecting.

Where does Anthropic say bypass mode is appropriate?

Only in isolated environments — containers, VMs, or dev containers without internet access, where Claude Code cannot damage your host system. Claude Code refuses to start in this mode as root or under sudo on Linux and macOS, and administrators can remove it with the managed setting permissions.disableBypassPermissionsMode.

What is the difference between bypass mode and auto mode?

Both remove routine prompts. Bypass mode replaces them with nothing. Auto mode replaces them with a classifier model that reviews each action before it runs and blocks ones that look destructive or out of scope. Anthropic says auto mode reduces risk compared to --dangerously-skip-permissions but doesn’t eliminate it.

Does Bulkhead work with --dangerously-skip-permissions?

It is not a supported configuration. The hooks install and run the same way, but we do not claim they block reliably in bypass mode. Run Bulkhead in Manual (default), acceptEdits or auto mode, and put unattended runs inside a container or VM.

Let it cook. Keep the receipts.

One command installs the hooks and a policy file you own. Want to watch it refuse something first? The demo runs the incident corpus through the real hook in a throwaway repo.

Rather have a person read your setup? Book a Policy Review ($490). Opens Stripe checkout. After you pay, a person emails you the intake questions.

Your copy
npx @bulkheadtools/cli init

Or watch it refuse first:npx @bulkheadtools/cli demo