.claude/settings.json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|MultiEdit|Write",
"hooks": [
{
"type": "command",
"command": "npm run lint",
"timeout": 120
}
]
}
]
}
}
使用 Claude Code Hooks Generator 生成专门的 settings JSON,用于生命周期自动化。Hooks 适合确定性的检查、通知和防护栏,而不是依赖模型记住某一步。
先生成什么
从一个快速 hook 开始,例如编辑后运行 lint、Notification 事件发送提醒,或在 PreToolUse 中阻止受保护命令。命令必须容易手动复现。
Claude Code 官方引用
Anthropic 的 Claude Code 文档说明了 hook 事件、settings JSON、输入输出格式、timeout、异步 hooks 和安全注意事项。
常见错误
避免过宽 matcher、破坏性命令、每次 tool call 都跑长测试、隐藏网络调用,以及未经权限审查就共享 settings JSON。
常见问题
Claude Code hooks 放在哪里?
Hooks 配置在 Claude Code settings JSON 中,常见范围包括 user、project、local 或 managed settings。
Hooks 应该自动跑测试吗?
先使用快速定向检查。长测试套件通常更适合作为显式命令或发布门禁。
Hooks 能阻止危险操作吗?
可以,但行为必须可见,并在团队文档中解释清楚。