跳过正文

Wsl

Claude Code WSL 通知与 WezTerm 窗口聚焦

·399 字·2 分钟
在 WSL 中运行 Claude Code 时,很容易错过它等待输入的时刻——尤其是当你切换到其他窗口的时候。本文记录了我搭建的通知系统:当 Claude 停止响应或请求权限时,会弹出 Windows 气泡通知,点击通知可直接聚焦到对应的 WezTerm 面板。 工作原理 # Claude Code 在 ~/.claude/settings.json 中提供了钩子(hooks)系统,其中两个事件特别有用: Stop — Claude 完成一次响应、等待用户输入时触发。钩子载荷包含 last_assistant_message、cwd 和 transcript_path。 PermissionRequest — Claude 需要批准才能运行某个工具(Bash 命令、文件写入等)时触发。载荷包含 tool_name 和 tool_input。 两个钩子均以异步方式(async: true)运行 shell 命令,不会阻塞 Claude。 1 2 3 4 5 6 { "hooks": { "PermissionRequest": [{ "hooks": [{ "type": "command", "command": "bash ~/.claude/notify-permission.sh", "async": true }] }], "Stop": [{ "hooks": [{ "type": "command", "command": "bash ~/.claude/notify-stop.sh", "async": true }] }] } } 脚本说明 # ~/.claude/notify-stop.sh # 从钩子的标准输入 JSON 中提取标题、消息正文和 cwd,然后启动 PowerShell 发送通知: