见微知著 · TheSignalwise

记录每一道灵光的信号,洞见背后的深刻逻辑。 在这里,我分享硬核而有趣的技术实践、天马行空的创意想法,以及点滴生活瞬间——让微小的信号汇聚成启发未来的智慧。

今天我们绝大多数编程的体验已经发生了很大的变化,其中最大的变化就是当我们使用AI编程软件的时候,提交给大模型任务由他去执行,但我们并不知道他什么时候完成。通常在大模型执行的时候,我们可能在做别的事情,等他们完成的时候,我们没办法第一时间发现。由此浪费了大量的时间。

好在Claude Code现在提供了Hook功能,你可以在任务完成或者需要人工确认时执行特定的程序。由此,可以设置一个声音提醒。

以macOS为例,我们在项目目录下,编辑文件.claude/settings.local.json,增加hooks参数,并配置“Stop”节点的命令,就可以在任务完成后进行语音播报啦。

注意,编辑完配置文件后,重启启动Claude Code程序。你可以在Claude命令行中使用`/hook`手工设置。每一次设置应用后,都需要重启程序才能生效。

{
  "hooks": {
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "afplay /System/Library/Sounds/Glass.aiff && say \"Claude Code 任务完成\""
          }
        ]
      }
    ]
  }
}

ps:根据实际测试,有时候并没有执行或者执行但是没有播放声音。

最后,Claude Code官方对Hook的介绍材料:https://docs.anthropic.com/en/docs/claude-code/hooks#hook-execution-details

有多个参数可以选择,可以根据实际情况发挥。

Hook EventBehavior
PreToolUseBlocks the tool call, shows error to Claude
PostToolUseShows error to Claude (tool already ran)
NotificationN/A, shows stderr to user only
StopBlocks stoppage, shows error to Claude
SubagentStopBlocks stoppage, shows error to Claude subagent
PreCompactN/A, shows stderr to user only
Posted in

留下评论