Skip to content

Rule scopes

Rules are stored in settings files at different scopes. Higher scopes override lower ones.

ScopeFileWho it affectsCan be overridden
ManagedServer-managed settings, plist/registry, managed-settings.jsonAll users on the machineNo. Takes absolute precedence.
Project (shared).claude/settings.json (committed to git)All collaborators on this repositoryYes, by local or user settings.
Project (local).claude/settings.local.json (gitignored)You, in this repository onlyYes, by user settings (rarely).
User~/.claude/settings.jsonYou, across all projectsYes, by project or managed settings.
SessionRuntime (/permissions command, auto-mode decisions)This session onlyYes, by managed settings and explicit user action.

Precedence (highest to lowest):

  1. Managed settings
  2. Local project settings (.claude/settings.local.json)
  3. Shared project settings (.claude/settings.json)
  4. User settings (~/.claude/settings.json)
  5. Session rules (temporary)
  6. Default mode fallback

If a tool is denied at any level, no lower level can allow it. Example: a managed deny of Bash(curl) cannot be overridden by a project allow.


← Back to Permissions/README.md