Permissions & settings.json

Permissions: three levels

1Allow(no asking)2Ask(every time)3Deny(never)

Permissions decide "which actions need no question". Below is a conservative example: read-type actions allowed; commit/push/remote commands need confirmation; dangerous actions and key files forbidden.

.claude/settings.example.json Download
{
  "permissions": {
    "allow": [
      "Bash(git status:*)",
      "Bash(git diff:*)",
      "Bash(git log:*)",
      "Bash(ls:*)",
      "Bash(wc:*)",
      "Bash(node --check:*)",
      "Bash(python -m py_compile:*)",
      "Read",
      "Glob",
      "Grep"
    ],
    "ask": [
      "Bash(git commit:*)",
      "Bash(git push:*)",
      "Bash(scp:*)",
      "Bash(ssh:*)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(git reset --hard:*)",
      "Read(./.env)",
      "Read(./secrets/**)"
    ]
  }
}
The install script does not touch your settings.json; it only creates settings.kit-example.json, which you compare and merge yourself.

Permissions

Before Claude Code runs a command or edits a file it checks the permission settings. They live in settings.json, in several layers; the higher one wins:

LayerLocation
Managed by a companymanaged-settings.json etc.
Start-up flag for this runclaude --settings
Project local (personal, not checked in).claude/settings.local.json
Project shared.claude/settings.json
User global~/.claude/settings.json (Windows: C:\Users\UserName\.claude\settings.json)
{
  "permissions": {
    "allow": ["Bash(git status:*)", "Bash(npm run build)"],
    "deny":  ["Bash(rm -rf:*)"]
  }
}

Entries in allow are not asked about again, entries in deny are refused outright, everything else follows the current "mode". Common modes from strict to loose: ask every time (default) → auto-accept edits (acceptEdits) → auto (auto, with a background review) → list only (dontAsk) → plan mode (plan, look but do not change) → skip all checks (bypassPermissions, the official advice is to use it only in isolated environments). Press Shift+Tab to switch modes during a conversation. Official pages: settings, permissions.

T00's experience: do not turn every check off just to save clicks. A better way is to add the fixed commands you repeat every day to the allow list one by one.