记录一个 Windows 下 Claude Code 插件 Hook 报错的原因
Aaalice
·
2026-05-02
·
via LINUX DO - 最新话题
最近安装 claude-notifications-go 这个 Claude Code 通知插件时,一直遇到 Stop Hook 报错。 一开始我以为是插件问题,但查了插件的 issue 和 PR 后发现,作者很早之前就修复过相关 Hook 兼容问题。反复测试后,我怀疑问题可能出在 Claude Code 自身的 Hook 执行逻辑上。 我的环境是 Windows + PowerShell 7 启动 Claude Code,同时启用了 WSL,也安装了 Git Bash。虽然我在 settings.json 里设置了: { "env": { "CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe" } } 但触发插件内置的 .sh Hook 时,Claude Code 似乎仍然可能调用裸 bash ,而不是上面配置的 Git Bash。 我这边执行: where.exe bash 结果是: C:\Windows\System32\bash.exe C:\Program Files\Git\bin\bash.exe C:\Program Files\Git\usr\bin\bash.exe 也就是说,如果 Claude Code 调用的是裸 bash ,就会优先命中 WSL 的 bash,而不是 Git Bash。 最后我禁用了 WSL,再重新测试, claude-notifications-go 的 Stop Hook 就恢复正常了。 所以目前看起来,这更像是 Claude Code 在 Windows 下执行插件 Hook 时,没有稳定遵守 CLAUDE_CODE_GIT_BASH_PATH ,导致 .sh Hook 被 WSL bash 接管。 1 个帖子 - 1 位参与者 阅读完整话题
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。