Hooks FAQ

Where are the hooks the plugin actually runs?

Under attune/hooks/scripts/ (e.g. security_guard, worktree_path_guard, lessons_reminder), wired via the plugin's hooks.json.

How does a hook block a tool?

A PreToolUse script exits 2 to block and 0 to allow.

Is there a Python API to register hooks in-process?

No — that engine was removed in v13.0.0. Attune ships hook scripts and lets Claude Code fire them.

What happens on malformed input?

Scripts fail open (exit 0) so a hook bug never blocks a real tool call.