Do You Need --dangerously-skip-permissions for Claude Code Subagents and Teams?

Posted by Michael S. on February 11, 2026

I kept seeing this question pop up in discussions about Claude Code's multi-agent features: "Do I need to pass --dangerously-skip-permissions to use subagents or Agent Teams?"

Short answer: no.

But I get why people ask. The flag has "dangerously" right in the name, the docs are spread across multiple pages, and when you're trying to get a 12-agent orchestration system running, you'll try anything that sounds like it might remove friction. I know because I did exactly that before actually reading how the permission system works.

Here's what I found.


Subagents (the Task Tool)

When you spawn a subagent via the Task tool, each one can have its own permission mode. You set it with the mode parameter, and you've got five options:

Mode What It Does
default Standard permission prompts — asks you before doing anything sensitive
acceptEdits Auto-accepts file edits, still prompts for other stuff
plan Read-only — can explore but can't touch anything
dontAsk Auto-denies all prompts (but allowed tools still work)
bypassPermissions Skips all permission checks — use with caution

The thing that tripped me up: there's a difference between foreground and background subagents.

Foreground subagents just use interactive prompts. They pop up, ask you stuff, you approve or deny, life goes on.

Background subagents are smarter about it. Claude Code prompts you upfront for all the permissions the agent will need, then grants them automatically so the agent can run unattended. It's basically asking "hey, this agent is going to need to do X, Y, and Z — cool?" before it starts, rather than interrupting you seventeen times while you're trying to read something else.


Agent Teams

This one's even simpler. Teammates inherit the lead agent's permission settings.

If you're running the lead in normal interactive mode, all teammates get normal interactive mode. If the lead uses --dangerously-skip-permissions, every teammate inherits that too.

No separate configuration. No per-teammate overrides. Whatever the lead has, they all get.


Custom Agents

Here's where it gets slightly more nuanced.

If you've defined custom agents in ~/.claude/agents/ (which I have — twelve of them), each one has a permissionMode in its frontmatter. My builder agent uses acceptEdits, my architect uses plan, and so on.

These settings apply regardless of whether the parent process is running with --dangerously-skip-permissions or not. The agent's own frontmatter takes precedence for its permission behavior.

This is actually a good design decision. It means my architect agent stays read-only even if I accidentally launch the whole system in skip-permissions mode. Defense in depth.


So Why Does the Flag Exist?

--dangerously-skip-permissions removes the interactive approval prompts entirely. Every tool call just goes through. No questions asked.

It's useful for CI/CD pipelines, automated scripts, or when you're running Claude Squad in YOLO mode and you trust your agents not to rm -rf / your home directory.

For normal development? You don't need it. The permission modes on individual agents give you fine-grained control without turning off the safety net completely.


The TL;DR

  • Subagents: Set mode per-agent. Foreground agents prompt interactively. Background agents batch permissions upfront.
  • Agent Teams: Teammates inherit the lead's settings. No extra config needed.
  • Custom agents: Their permissionMode frontmatter applies regardless of the parent's mode.
  • Normal interactive mode works fine. Skip-permissions is optional and just removes the approval prompts.

I spent an embarrassing amount of time assuming I needed the flag before I just... tried without it. Everything worked. Subagents spawned. Teams coordinated. Agents wrote code. Nobody asked for permissions I hadn't already configured.

Sometimes the answer really is "just don't overthink it."


Enjoyed this post?

Get notified when I publish something new. No spam, unsubscribe anytime.