Claude Code Permissions Kit: settings.json Presets, Rule Simulator and Policy Tests

Stop clicking Yes 200 times a day without handing Claude Code the keys to your machine.

Claude Code Permissions Kit: settings.json Presets, Rule Simulator and Policy Tests product illustration

What it does

Stop clicking "Yes" 200 times a day without handing Claude Code the keys to your machine. Eight tested settings.json presets, eleven allow/deny packs, an installer that merges into the settings you already have, a simulator that tells you exactly which rule allows, asks or denies a command, and policy tests you can run in CI.

Offline. Python 3.9+, no dependencies, no account, no network. Rules checked against the Claude Code permissions docs (November 2026).

60-second demo

./tools/demo.sh                                                     # tour: simulate, policy tests, lint, dry-run install
python3 tools/install.py --list                                     # presets and packs
python3 tools/install.py /path/to/repo --preset safe-default --pack node --dry-run
python3 tools/install.py /path/to/repo --preset safe-default --pack node   # writes .claude/settings.json (backup first)
python3 tools/simulate.py --project /path/to/repo "Bash: npm run build && git push origin main"

What's inside

Preset (presets/)ModeFor
safe-defaultdefaultdaily driver: git + npm/pnpm/pytest/uv run free; push/publish/deploy ask; secrets + destructive commands denied
tdd-accept-editsacceptEditsfast test-edit loops (Node, Python, Go, Rust); CI workflows and settings stay protected
auto-mode-guardedautolet the classifier drive, with your hard deny/ask rules on top
sandboxed-no-promptsacceptEdits + sandboxthe safer alternative to --dangerously-skip-permissions
ci-headlessdontAskclaude -p in CI: anything not pre-approved is denied instead of hanging
read-only-reviewerplanreview and Q&A sessions that can't edit or commit
monorepo-teamdefaultshared .claude/settings.json with /packages + /apps editable, /infra asking
enterprise-managed(managed)managed-settings.json: bypass disabled, sandbox required, secrets + exfil denied

Packs (packs/): secrets-deny, destructive-deny, publish-ask, git-safe, node, python, go, rust, docker-readonly, gh-readonly, docs-fetch. Combine them with any preset: --pack go --pack docker-readonly.

Tools (tools/):

  • install.py merges a preset/packs into project, local or user settings: adds and de-duplicates rules, keeps your other keys, only sets defaultMode if you have none, writes a timestamped backup, lints the result.
  • simulate.py answers "allow, ask or deny - and which rule, from which file?" for Bash, Read, Edit, WebFetch and MCP calls, across managed/local/project/user scopes. --tests runs policy tests (JSON) and exits 1 on any failure.
  • cc_lint.py flags rules that never match or are skipped (Write(path), mcp__x(...), Bash(git:* push), pipes in rules), over-broad allows (Bash(git *)), allows a deny always beats, bad modes and typo'd keys. Also free on its own as the Claude Code Settings Checker.

Docs (docs/): allowed-tools-syntax.md (cheat sheet), modes.md (auto vs acceptEdits vs bypass, and alternatives to skipping permissions), teams.md (scopes, managed settings, CI), limits.md.

Write your own policy tests

{"preset": "presets/safe-default.json", "cwd": "/work/repo", "home": "/home/dev",
 "tests": [{"call": "Bash: git push origin main", "expect": "ask"},
           {"call": "Read: config/.env.production", "expect": "deny"}]}

python3 tools/simulate.py --tests my-policy.tests.json - point preset at your own .claude/settings.json.

How it was tested

./run_tests.sh: unit tests for the rule engine (wildcards, compound commands, wrappers, env prefixes, path anchors, WebFetch, MCP), all 45 policy tests, lint-clean presets, and installer merge/backup/dry-run behaviour, on Python 3.13 and 3.10 from a fresh download.

Honest limits

The simulator models the documented rules; it isn't Claude Code (no hooks, mods, classifier or session approvals, see docs/limits.md). Bash rules match text, not programs, so deny packs are guard rails: use the sandbox preset when a boundary must hold. Not affiliated with Anthropic.

Format and license

Zip, 40 KB, v1.0, 42 files. You may use and modify this kit for your own work and for clients you serve, including paid client work. Not affiliated with Anthropic.

FAQ

Will it overwrite my settings.json?
No. The installer adds and de-duplicates rules, keeps your other keys, only sets defaultMode if you have none, and writes a timestamped backup first. --dry-run shows the result without writing.
Is this an alternative to --dangerously-skip-permissions?
Yes: the sandboxed-no-prompts preset runs shell commands without prompts inside Claude Code's OS sandbox while push/publish still ask and secrets stay denied; auto-mode-guarded is the other option.
Does the simulator run Claude Code?
No. It's an offline model of the documented rules (scopes, wildcards, compound commands, wrappers, path anchors, WebFetch, MCP, modes), good for reviewing and testing rules; hooks, mods and the auto-mode classifier aren't modelled.
How do I get the files?
Pay by card right here on youraitools.co: your download links appear on this page the moment the payment goes through (claim window: 72 hours, up to 5 downloads per 7 days). Need the files re-sent later? Email hello@youraitools.co.
Refunds?
Email hello@youraitools.co within 14 days if it doesn’t work and we can’t fix it.
Can I pay with crypto?
Yes. Pay the same price in USDC or USDT on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana from the "Pay with crypto" button, with no account or KYC. We check the payment on-chain and show your download links as soon as it confirms.

Get Claude Code Permissions Kit: settings.json Presets, Rule Simulator and Policy Tests

8 tested Claude Code settings.json permission presets, allow/deny packs, a rule simulator that explains every decision, policy tests and a linter. $19.

Pairs well with

Related

1 email a week: new x402 + MCP tools and free kits.

Short weekly digest of new x402 + MCP tools and free kits, including the MCP OAuth Checker. No spam, unsubscribe any time.