主题
8种 Hook 类型详解
PreToolUse
触发时机: 工具使用前 用途: 预处理、验证、准备数据 返回值: 可以阻止工具执行
javascript
// 示例: 自动添加文件头
if (tool.name === 'Write') {
// 添加文件头注释
const header = `// Auto-generated by Claude Code\n`;
// 修改文件内容...
}PostToolUse
触发时机: 工具执行后 用途: 后处理、日志记录、通知
javascript
// 示例: 记录操作日志
if (tool.name === 'Edit') {
console.log(`[Claude Code] 修改了 ${tool.path}`);
}Notification
触发时机: 收到消息前 用途: 过滤、修改通知内容
javascript
// 示例: 过滤敏感信息
if (message.includes('password')) {
return message.replace(/password\s*=\s*\S+/g, 'password = ***');
}Stop
触发时机: 任务停止时 用途: 清理资源、保存状态
javascript
// 示例: 保存会话状态
function onStop() {
saveSessionState();
}下一节: 实战应用