claude-code-toolkit

Error / Message

A configured hook isn't running

A hook defined in settings.json isn't firing when expected — almost always a mismatch between the event name, matcher, or an executable permission issue.

The event name has to match exactly what Claude Code actually fires (like PreToolUse or Stop) — a small typo means the hook is technically configured but never triggered, since nothing matches it.

If the hook points at a script file, that file needs execute permission on the filesystem; a hook config that looks correct but references a non-executable script fails silently rather than with an obvious error.

A matcher that's too narrow (targeting a specific tool name that doesn't match how it's actually invoked) is the other common cause — broadening it temporarily is a fast way to confirm whether the matcher itself is the problem.

Check the hook's event name, matcher, and that any script file has execute permission

Frequently asked questions

What does "A configured hook isn't running" mean in Claude Code?

A hook defined in settings.json isn't firing when expected — almost always a mismatch between the event name, matcher, or an executable permission issue.

How do I fix it?

Try: Check the hook's event name, matcher, and that any script file has execute permission

Is this something to worry about?

A matcher that's too narrow (targeting a specific tool name that doesn't match how it's actually invoked) is the other common cause — broadening it temporarily is a fast way to confirm whether the matcher itself is the problem.

Is this covered in the Claude Code Toolkit?

Yes — A configured hook isn't running 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

← See everything in Explore