Claude Code Hooks Mastery
A teaching repository by disler (IndyDevDan) that implements every one of Claude Code's 13 hook events as standalone, single-file UV Python scripts. Covers all hook types — UserPromptSubmit, PreToolUse, PostToolUse, Stop, SubagentStart/Stop, SessionStart/End, PermissionRequest, PreCompact, PostToolUseFailure, and Setup — plus 9 custom status line variants, 8 output styles, team-based builder/validator agents, and a meta-agent that generates new agents.
View on GitHubWhat it does
- UserPromptSubmit hook
Fires before Claude sees a prompt; can log, validate for dangerous patterns, block the prompt (exit 2), or inject project context.
- PreToolUse hook
Intercepts every tool call before execution; blocks dangerous commands (rm -rf, .env access) via exit code 2 with a stderr message to Claude.
- PostToolUse hook
Runs after a tool returns; captures output for logging, TTS alerts, and JSONL transcript conversion.
- Stop hook
Intercepts when Claude finishes responding; can block stoppage (exit 2) to force task completion, or generate TTS completion messages.
- meta-agent
Generates new properly-formatted Claude Code agent files from plain-English descriptions, pulling latest docs automatically.
- status_line_v6.py
Displays a visual context window usage bar with percentage and tokens remaining in the terminal status line.
- /plan_w_team
Meta-prompt command that generates a team plan, spawns builder and validator subagents in parallel, and self-validates output via embedded stop hooks.