Tutorial
将您的 Dev 工作流程与 Claude 代码钩自动化
当克洛德代码采取特定行动时,Hooks让你运行自定义 shell命令. 保存上的自动格式, 屏蔽危险的编辑, 或自动输入上下文 .
克劳德代码 Hooks是针对事件自动执行的 shell 命令. 当克劳德代码编辑一个文件,运行一个命令,或者开始一个会话时,你的钩子会起火. 这使得您可以建立护栏, 执行标准, 并自动化的重复设置 不进行人工干预.
什么钩子事件?
| 活动 | 当它起火时 | 常见使用例 |
|---|---|---|
| 工具预用 | 在克劳德执行工具之前 | 阻断危险作业,验证投入 |
| 后图 使用 | 克劳德执行工具后 | 自动格式编辑文件, 运行 linters |
| 通知 | 当克洛德发出通知时 | 要文件的日志, 发送到 Slack |
| 会话开始 | 当新的会话开始时 | 插入上下文, 检查环境 |
| 配置变化 | 当设置发生变化时 | 验证配置 |
如何造出钩来?
使用交互式菜单或编辑设置。 json 直接 :
# Interactive hook setup
claude /hooks
# Or edit settings.json directly
# Project: .claude/settings.json
# Global: ~/.claude/settings.json这里有一个设置。 配置了钩子的 json :
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "npx prettier --write "$CLAUDE_FILE_PATH"",
"description": "Auto-format edited files with Prettier"
}
],
"PreToolUse": [
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -q \.env && echo 'BLOCKED: Cannot edit .env files' && exit 1 || exit 0",
"description": "Block edits to .env files"
}
],
"SessionStart": [
{
"command": "cat .claude/context-injection.md",
"description": "Inject additional context at session start"
}
]
}
}什么是最有用的钩子?
1. 联合国 编辑时自动格式
运行 Pretier, Black, 或 gofmt 每次 Claude Code 编辑文件时:
// PostToolUse hook
{
"matcher": "Edit|Write",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}2. 联合国 块敏感文件编辑
预防克洛德 修改环境文件、秘密或关键配置的代码 :
// PreToolUse hook
{
"matcher": "Edit|Write",
"command": "echo $CLAUDE_FILE_PATH | grep -qE \"\.env|\.secret|credentials\" && exit 1 || exit 0"
}3个 压缩后重新输入上下文
当克洛德代码压缩其上下文窗口时,重要细节可能会丢失. 钩可以重新输入关键信息:
// PostToolUse hook for compaction
{
"matcher": "Compact",
"command": "cat .claude/critical-context.md"
}