Skip to content

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();
}

下一节: 实战应用

最近更新