Claude Code hooks fire on lifecycle events (SessionStart, PreToolUse, PostToolUse, Stop) and can block, modify, or observe what the agent is about to do. The most differentiating agent-control artifact in the Claude Code ecosystem.
3 hooks
PreToolUse hook that blocks any Bash tool call matching `git push --force` or `git push -f`. Prevents accidental history rewrite on shared branches.
SessionStart hook that reads CLAUDE.md and injects it into the initial system context. Ensures every new session has project-specific context loaded automatically.
PostToolUse hook that appends every tool call + result to a local audit log. Useful for compliance-heavy environments where you need a paper trail of what the agent did.