Skip to content

Claude Code Permissions Configuration Memo

Source: Notion | Last edited: 2025-07-08 | ID: 22a2d2dc-3ef...


Claude Code uses a hierarchical permission system with multiple configuration levels. Settings are applied in order of priority, with higher levels overriding lower ones.

Permission Hierarchy (Highest to Lowest Priority)

Section titled “Permission Hierarchy (Highest to Lowest Priority)”
  • Location:
    • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
    • Linux/Windows: /etc/claude-code/managed-settings.json
  • Purpose: Organization-wide policies that cannot be overridden
  • Managed by: IT administrators
  • Current Status: None configured
  • Examples: -dangerously-skip-permissions, -permission-mode
  • Purpose: Session-specific overrides
  • Scope: Current session only
  • Usage: claude --dangerously-skip-permissions
  • Location: .claude/settings.local.json
  • Purpose: Personal project-specific settings
  • Scope: Current project only
  • Git Status: Not tracked (personal)
  • Current: /Users/terryli/eon/gasab/.claude/settings.local.json ✅ ACTIVE
  • Location: .claude/settings.json
  • Purpose: Team-shared project settings
  • Scope: Current project for all team members
  • Git Status: Tracked and shared
  • Current Status: None configured
  • Location: ~/.claude/settings.json
  • Purpose: Personal global settings
  • Scope: All Claude Code sessions for the user
  • Current Status: None configured

Active Configuration: Local Project Settings Only

  • File: /Users/terryli/eon/gasab/.claude/settings.local.json
  • Permissions: Allows specific bash commands and docs.anthropic.com web fetching
{
"permissions": {
"allow": [
"Bash(grep:*)",
"Bash(python:*)",
"Bash(ls:*)",
"Bash(find:*)",
"Bash(git add:*)",
"Bash(git commit:*)",
"WebFetch(domain:docs.anthropic.com)"
],
"deny": []
}
}
{
"permissions": {
"allow": ["Bash(*)", "WebFetch(*)"],
"deny": ["Bash(rm:*)", "Bash(sudo:*)"]
},
"dangerouslySkipPermissions": true,
"defaultPermissionMode": "acceptEdits"
}

Edit: /Users/terryli/eon/gasab/.claude/settings.local.json

Create: ~/.claude/settings.json

Create: /Users/terryli/eon/gasab/.claude/settings.json

Terminal window
claude --dangerously-skip-permissions
Terminal window
claude --permission-mode acceptEdits
Terminal window
mkdir -p ~/.claude
echo '{"dangerouslySkipPermissions": true}' > ~/.claude/settings.json
  • dangerouslySkipPermissions bypasses safety guardrails
  • Use specific allowlists rather than broad permissions
  • Local project settings are personal and not shared
  • Enterprise policies cannot be overridden by users
  1. Current: You have project-specific permissions configured
  2. Consider: Creating user-level defaults in ~/.claude/settings.json
  3. Team: Add shared project settings if working with others
  4. Security: Review and tighten permissions as needed

Created: Tuesday 2025-07-08 15:18:08 Vancouver GMT-07:00

Purpose: Reference for Claude Code permission configuration