plugins/plugin-creator/skills/permissions/SKILL.md
Configure Claude Code permissions — tool approval rules, permission modes, managed policies, and sandboxing. Use when setting up permission rules, configuring allow/deny/ask policies, debugging permission prompts, deploying managed settings for organizations, or controlling Bash/Read/Edit/WebFetch/MCP/Agent tool access.
npx skillsauth add jamie-bitflight/claude_skills permissionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Claude Code uses a tiered permission system to balance capability and safety. Permissions control which tools Claude can use and what resources they can access.
| Tool Type | Examples | Approval Required | "Don't ask again" Scope | |-----------|----------|-------------------|------------------------| | Read-only | File reads, Grep, Glob | No | N/A | | Bash commands | Shell execution | Yes | Permanent per project + command | | File modification | Edit, Write | Yes | Until session end |
Rules evaluate in order: deny → ask → allow. First match wins. Deny rules always take precedence.
flowchart TD
Start([Tool call requested]) --> Deny{Matches a deny rule?}
Deny -->|Yes| Blocked[BLOCKED — tool cannot run]
Deny -->|No| Ask{Matches an ask rule?}
Ask -->|Yes| Prompt[Prompt user for approval]
Ask -->|No| Allow{Matches an allow rule?}
Allow -->|Yes| Approved[APPROVED — tool runs]
Allow -->|No| Default[Default behavior for tool type]
Set defaultMode in settings files:
| Mode | Behavior |
|------|----------|
| default | Prompts for permission on first use of each tool |
| acceptEdits | Auto-accepts file edit permissions for session |
| plan | Read-only — cannot modify files or execute commands |
| delegate | Coordination-only for team leads (requires active agent team) |
| dontAsk | Auto-denies tools unless pre-approved via /permissions or permissions.allow |
| bypassPermissions | Skips all permission prompts (containers/VMs only) |
WARNING: bypassPermissions disables all checks. Only use in isolated environments. Administrators can prevent it with disableBypassPermissionsMode: "disable" in managed settings.
Rules follow the format Tool or Tool(specifier).
Use tool name without parentheses:
Bash — matches all Bash commandsWebFetch — matches all web fetch requestsRead — matches all file readsBash(*) is equivalent to Bash.
* matches at any position. Space before * enforces word boundary.
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(git commit *)",
"Bash(git * main)",
"Bash(* --version)",
"Bash(* --help *)"
],
"deny": [
"Bash(git push *)"
]
}
}
Word boundary behavior:
Bash(ls *) — matches ls -la but NOT lsof (space enforces boundary)Bash(ls*) — matches both ls -la AND lsof (no boundary)Shell operator awareness: Claude Code recognizes shell operators (&&, |, ;). A rule like Bash(safe-cmd *) will NOT approve safe-cmd && other-cmd.
Caveat: Bash argument constraint patterns are fragile. For reliable URL filtering, deny curl/wget and use WebFetch(domain:...) instead, or use PreToolUse hooks.
Follow gitignore specification:
| Pattern | Meaning | Example |
|---------|---------|---------|
| //path | Absolute path from filesystem root | Read(//Users/alice/secrets/**) |
| ~/path | Path from home directory | Read(~/Documents/*.pdf) |
| /path | Relative to settings file | Edit(/src/**/*.ts) |
| path or ./path | Relative to current directory | Read(*.env) |
IMPORTANT: /Users/alice/file is NOT absolute. It is relative to the settings file. Use //Users/alice/file for absolute paths.
Glob behavior: * matches files in a single directory. ** matches recursively across directories.
WebFetch(domain:example.com) — matches requests to example.commcp__puppeteer — all tools from the puppeteer servermcp__puppeteer__* — wildcard, same effectmcp__puppeteer__puppeteer_navigate — specific toolAgent(Explore) — matches Explore subagentAgent(Plan) — matches Plan subagentAgent(my-custom-agent) — matches custom agentDeny specific agents:
{
"permissions": {
"deny": ["Agent(Explore)"]
}
}
Administrators deploy managed-settings.json to system directories. These cannot be overridden by user or project settings.
Locations:
/Library/Application Support/ClaudeCode/managed-settings.json/etc/claude-code/managed-settings.jsonC:\Program Files\ClaudeCode\managed-settings.jsonThese are system-wide paths (not user home directories) requiring administrator privileges.
| Setting | Effect |
|---------|--------|
| disableBypassPermissionsMode | Set "disable" to prevent bypassPermissions mode |
| allowManagedPermissionRulesOnly | When true, only managed settings can define allow/ask/deny rules |
| allowManagedHooksOnly | When true, only managed and SDK hooks are allowed |
| strictKnownMarketplaces | Controls which plugin marketplaces users can add |
Highest to lowest priority:
.claude/settings.local.json).claude/settings.json)~/.claude/settings.json)A permission allowed in user settings but denied in project settings is blocked.
By default, Claude has access to files in the launch directory. Extend access:
claude --add-dir <path>/add-diradditionalDirectories in settingsAdditional directories follow the same permission rules as the original working directory.
Permissions and sandboxing are complementary security layers:
Use both for defense-in-depth:
allowedDomainsUse /permissions during a session to view and manage all permission rules and their source settings files.
For comprehensive rule examples, Bash pattern edge cases, and hook-based permission extension, see references/permissions-reference.md.
SOURCE: Claude Code Permissions Documentation (accessed 2026-02-17)
development
When an application needs to store config, data, cache, or state files. When designing where user-specific files should live. When code writes to ~/.appname or hardcoded home paths. When implementing cross-platform file storage with platformdirs.
testing
Enforce mandatory pre-action verification checkpoints to prevent pattern-matching from overriding explicit reasoning. Use this skill when about to execute implementation actions (Bash, Write, Edit) to verify hypothesis-action alignment. Blocks execution when hypothesis unverified or action targets different system than hypothesis identified. Critical for preventing cognitive dissonance where correct diagnosis leads to wrong implementation.
tools
Reference guide for the Twelve-Factor App methodology — 15 principles (12 original + 3 modern extensions) for building portable, resilient, cloud-native applications. Use when evaluating application architecture, designing cloud-native services, reviewing codebases for methodology compliance, advising on configuration, scaling, observability, security, and deployment patterns. Incorporates the 2025 open-source community evolution and cloud-native reinterpretations of each factor.
tools
Converts user-facing documentation (how-to guides, tutorials, API references, examples) in any format — Markdown, PDF, DOCX, PPTX, XLSX, AsciiDoc, RST, HTML, Jupyter notebooks, man pages, TOML/YAML/JSON configs, and plain text — into Claude Code skill directories with SKILL.md plus thematically grouped references/*.md files. Use when given a docs directory or mixed-format documentation to transform into an AI skill. Uses MCP file-reader server for binary formats.