Claude Code now supports Hooks
10 months ago
- #Hooks
- #Claude Code
- #Automation
- Claude Code hooks allow users to customize and extend behavior by registering shell commands that execute at various lifecycle points.
- Hooks provide deterministic control, ensuring actions always happen without relying on LLM choices.
- Example use cases include notifications, automatic formatting, logging, feedback, and custom permissions.
- Hooks execute with full user permissions; users are responsible for safety and security.
- Configuration involves adding matchers and hooks via the `/hooks` command and settings files.
- Hook events include `PreToolUse`, `PostToolUse`, `Notification`, and `Stop`, each with specific behaviors.
- Hooks receive JSON input via stdin and can return output via exit codes or structured JSON.
- MCP tools follow a naming pattern (`mcp__<server>__<tool>`) and can be targeted by hooks.
- Security considerations emphasize validating inputs, using absolute paths, and avoiding sensitive files.
- Debugging hooks involves checking configurations, testing commands, and reviewing outputs.