Error / Message
Permission denied / tool call blocked
A tool call was stopped by a permission rule or hook, rather than by Claude itself deciding not to run it.
This shows up when a command falls outside what's currently allowed — a shell command not on the auto-approved list, an edit outside the project directory, or a rule enforced by a hook (like the toolkit's pre-commit lint hook blocking a commit until lint passes).
Check /permissions first to see the current rule set; if a hook is involved, the specific hook's own message usually explains what it's enforcing and why.
If the block is legitimately unwanted — a false positive on a command that's actually safe — that's the moment to adjust the specific rule, rather than loosening permissions broadly to make the friction go away.
Check /permissions, or the specific hook config, for the rule that firedFrequently asked questions
What does "Permission denied / tool call blocked" mean in Claude Code?
A tool call was stopped by a permission rule or hook, rather than by Claude itself deciding not to run it.
How do I fix it?
Try: Check /permissions, or the specific hook config, for the rule that fired
Is this something to worry about?
If the block is legitimately unwanted — a false positive on a command that's actually safe — that's the moment to adjust the specific rule, rather than loosening permissions broadly to make the friction go away.
Is this covered in the Claude Code Toolkit?
Yes — Permission denied / tool call blocked and patterns like it are part of the full command, hook, and template pack included with a Claude Code Toolkit subscription.
Want the full command, hook, and template pack?
This is one pattern out of the full Claude Code Toolkit — subscribe for the complete set, plus everything we add going forward.
Subscribe to the toolkit — $79/mo