功能介绍
Hooks 是用户定义的 shell 命令、LLM 指令,在 Hawa Code 生命周期中的特定钩子自动执行。使用此参考查找事件架构、配置选项、JSON 输入/输出格式以及异步 hooks 等高级功能。
Hook 生命周期
Hooks 在 Hawa Code 会话期间的特钩子点触发。当事件触发且匹配器匹配时,Hawa Code 会将关于该事件的 JSON 上下文传递给您的 hook 处理程序。对于命令 hooks,输入通过 stdin 到达。您的处理程序随后可以检查输入、采取行动并可选地返回决定。某些事件每个会话触发一次,而其他事件在代理循环内重复触发
- Stop - Hawa code 对话结束时触发
- SubagentStop - Subagent 对话结束时触发
- SubagentStart - Subagent 开始执行前触发
- PreToolUse - 工具执行前触发,可以阻止工具执行
- PostToolUse - 工具成功执行后触发
- PostToolUseFailure - 工具执行失败时触发
- SessionStart - 会话启动时或者会话恢复时候触发
- SessionEnd - 会话终止时触发
Hooks 配置
- 项目级别:
{项目路径}/.hcode/settings.json - 用户级别:
~/.hcode/settings.json
Matcher
当前 Hook 支持 Matcher,用于匹配工具名称或 Subagent 名称。匹配规则如下:
- 单一匹配:匹配单个属性,例如
"Edit"。 - 多个匹配:使用竖线
|分隔多个属性,例如"Edit|Write"。 - 通配符匹配:使用
*进行通配匹配,例如"mcp__memory__.*"、"mcp__.*__write.*"、"mcp__.*__write.*|Edit"。