Command Hooks - Claude Code
Run shell scripts on events with environment variable passing.
Command hooks are the simplest hook flavor: on the event, run a shell command, and use its exit code and stdout as the result.
What it does
You declare a command in the hook config. Claude Code runs it when the event fires, passing context via environment variables (tool name, arguments, file paths, etc.). The command's exit code determines allow or deny, and its stdout can contribute messages back to the session. This is the bash-friendly way to wire up quick hooks without learning a new runtime.
When to use it
- Simple side effects like logging, notifications, or external integrations.
- Team hooks written in whatever language the team prefers.
- Reusing existing scripts you already have for policy or automation.
- Fast prototyping before moving to prompt-based or agent-based hooks.
Gotchas
- Shell quoting and escaping is still shell. Test with edge-case arguments.
- Slow scripts delay every matching event. Run long work async.
- Env var names and JSON payload shape matter - check the hooks doc for exact fields.
Official docs: https://code.claude.com/docs/en/hooks.md#command-hook-fields
Technical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools - delivered free every week.
Was this helpful?




