# Hooks

> Using agent hooks to check, warn about or block an action before it runs.

Web page: https://vinescale.com/blog/tags/hooks/

A hook is a script the agent runs before or after a tool call, and a pre-tool hook can stop the call before it happens. These guides show working hook scripts, how each agent reads their output, and where hooks fall short.

- [How to stop Claude Code from running destructive commands](https://vinescale.com/blog/stop-claude-code-destructive-commands.md) (2026-10-31): Use deny rules, a PreToolUse hook that exits with code 2, the Bash sandbox and least-privilege credentials so Claude Code can't drop tables or delete infrastructure.

## Browse by topic

- [Claude Code](https://vinescale.com/blog/tags/claude-code.md): Running Anthropic's Claude Code safely: hooks, permissions, settings and guardrails.
- [Permissions](https://vinescale.com/blog/tags/permissions.md): Allow lists, deny lists, approval modes and credentials for coding agents.
- [Databases](https://vinescale.com/blog/tags/databases.md): Protecting production databases from destructive queries and unsafe migrations by AI agents.
- [Infrastructure](https://vinescale.com/blog/tags/infrastructure.md): Keeping agents from deleting or changing cloud infrastructure, Terraform state and Kubernetes resources.
- [Incidents](https://vinescale.com/blog/tags/incidents.md): Public incidents where AI coding agents broke something, and what they teach.
- [Guardrails](https://vinescale.com/blog/tags/guardrails.md): The general practice of putting safety checks between an AI agent and the systems it can change.
