Free Claude Code permissions builder
Claude Code asks before it runs most shell commands, edits files or fetches web pages. Permission rules in settings.json change that: allow rules run without asking, ask rules always prompt, and deny rules block. Tick what you want below, add your own rules, and copy the result. The tester at the bottom shows which rule would decide a given command.
Everything runs in your browser. Nothing you type is sent anywhere.
Your settings.json
If the file already exists, merge the permissions block into it rather than replacing the file, so you keep your hooks, status line and other settings.
Rule check
Test a command
Type a shell command to see which of your rules decides it. Deny is checked first, then ask, then allow; the first match wins and a more specific allow can't override a broader deny.
The tester is a simplified model of Claude Code's matching: it splits on &&, ||, ; and |, strips timeout, time, nice and nohup, and applies the * rules. Claude Code also auto-runs a built-in set of read-only commands such as ls, cat and git status, which this tester marks separately.
How the rules match
- Put the
*after the subcommand.Bash(git log *)allows onlygit log;Bash(git *)allows every git command, includinggit push. - The space matters.
Bash(ls *)matcheslsandls -labut notlsof;Bash(ls*)matches all three.Bash(ls:*)is the same asBash(ls *). - Compound commands are split. An allow rule has to match every part of
a && b; a deny or ask rule only has to match one part. - Deny rules match what Claude types, not the program.
Bash(curl *)doesn't stop/usr/bin/curlorsh -c 'curl ...'. Use sandboxing or a PreToolUse hook when it has to hold. - File rules use
Read(...)andEdit(...)only. A path rule onWriteis accepted but never checked. AReaddeny also blocks Edit and Write on that path. - One leading slash is not the filesystem root.
/src/**is relative to the project (or to~/.claudein user settings). Use//for an absolute path and~/for your home folder. - Project allow rules wait for trust. Allow rules in a project's
.claude/settings.jsonapply only after you accept that folder's trust dialog.
Still getting prompts you thought you approved? Read Claude Code keeps asking for permission: how to stop the prompts safely.
Rules spread across several files? Paste your user, project, local and managed settings into the settings precedence checker to see the merged allow, ask and deny lists and which file each rule comes from. A setting that seems ignored? See Claude Code settings not applying: 12 causes and fixes.
Rule syntax on this page follows the official permissions docs. Need a rule that inspects the full command before it runs? Build a PreToolUse hook with the hooks generator. Writing a subagent with its own tool list? Use the subagent builder.
Made by Solo Stack Kits. If you'd rather start from finished examples, the free 3-skill sample has ready-made skills for client follow-ups and meeting notes, and the Solo Consultant Kit adds the full set.