Spirit Agent
下载

Hooks

在会话、工具和子智能体事件上跑脚本。可以允许、拒绝或询问。

Hooks 是 Spirit 在固定节点跑的脚本。它们可以允许工具、拒绝工具,或强制弹出审批(ask)。

事件

  • sessionStart
  • sessionEnd
  • submitPrompt
  • preToolUse
  • postToolUse
  • subagentStart
  • subagentEnd

preToolUse 返回 ask 时,即使开了自动审批或绕过也会问你。

放在哪里

范围配置脚本
用户{spiritDataDir}/hooks.json{spiritDataDir}/hooks/
工作区{workspace}/.spirit/hooks.json{workspace}/.spirit/hooks/

同一事件上,用户条目与工作区条目会按顺序拼接,不是互相覆盖。

设置 → Hooks 管理。CLI 用 spirit hooks listspirit hooks validate 校验。内置 Skill create-hook 可以起草。

文件字段

根对象必须包含 versionhooksversion 目前只接受 1

参数说明
version必填。必须为 1
hooks必填。对象。键是事件名,值是该事件下的 hook 数组

每条 hook

参数说明
command必填。脚本路径。相对路径相对于配置所在目录,不能越出该目录
timeout可选。超时(秒)。必须为正数,默认 30
failClosed可选。脚本崩溃、超时或 stdout 不是合法 JSON 时是否拦截。默认不拦截
matcher可选。非空正则。preToolUse / postToolUse 匹配工具名;subagentStart / subagentEnd 匹配子智能体类型

示例

{
  "version": 1,
  "hooks": {
    "preToolUse": [
      {
        "command": "hooks/guard.sh",
        "timeout": 10,
        "failClosed": true,
        "matcher": "^shell$"
      }
    ],
    "sessionEnd": [
      {
        "command": "hooks/log.sh"
      }
    ]
  }
}