多智能体编排 · 收录于 2026-08-29 · 适用 1 工具 ○ 未实测

钩子未执行(hook 不触发 / Windows hook 报错)

已验证 2026-08-29hook 不触发/Windows hook 报错——最常见是缺执行权限:find ~/.claude/hooks -name '*.sh' -exec chmod +x {} +。

快速修复

# 一键:补执行权限(最常见修复)
find ~/.claude/hooks -name '*.sh' -exec chmod +x {} +

你会遇到什么

Agent 会话里 OMC 的 hook 不触发;Windows 上安装后报 UserPromptSubmit/Stop hook error(Issue #30 场景)。配置了却没生效。

本文路径:快速修复(30 秒一段命令)→ 一步步排查(可跳读)→ 原理与变体(症状/原因/证据)。赶时间直接跳到「快速修复」。

为什么会这样

原因说明
hook 脚本无执行权限~/.claude/hooks/**/*.sh 缺 +x
Windows shell 差异路径/转义差异导致 hook 调用失败
插件重装残留旧 hook 残留与新安装冲突

hook 的触发是一条前置链,三个条件缺一不可:Claude Code 在事件发生时(提交提示词/会话停止)按配置找到 hook 脚本 → 脚本必须有执行权限(+x,否则 exec 直接拒绝)→ 脚本的 shebang 解释器要能跑起来(Windows 上 shebang 通常是 #!/bin/bash,原生 cmd 环境没有 bash,必须 Git Bash/WSL;

CRLF 行尾还会让 shebang 解析失败)。

任何一个前置不满足,表现都是"配置了却没触发"或"hook error"。所以排查顺序固定:先权限、再解释器环境、最后才怀疑残留——多数情况第一步就解决了。

一步步来

1. 补执行权限 — 必做

find ~/.claude/hooks -name '*.sh' -exec chmod +x {} +

2. Windows:兼容环境 + LF 行尾 — 必做

用 Git Bash/WSL 兼容环境跑 hook;确认脚本行尾为 LF(避免 CRLF 执行错误)。

3. 重装插件后还报错:先移除再重装 — 必做

/plugin remove oh-my-claudecode

然后再重装。

怎么确认修好了

hook 正常触发(预期形态):

Agent 会话提交/停止 → hook 日志正常输出,无 UserPromptSubmit/Stop hook error

其它环境的表现

环境说明
权限chmod +x 后恢复(CSDN 2026-03 案例)
WindowsGit Bash/WSL 兼容环境 + LF 行尾(Issue #30)
重装残留先 remove 再装
未实测项Claude Code 插件形态本市场未实测(无登录态)

症状

Agent 会话里 OMC 的 hook 不触发;Windows 上安装后报 UserPromptSubmit/Stop hook error(Issue #30 场景)。

原因

  1. hook 脚本无执行权限(~/.claude/hooks/**/*.sh 缺 +x);
  2. Windows 下 shell 路径/转义差异,hook 脚本调用失败;
  3. 插件重装后旧 hook 残留。

解法

  1. 补执行权限:chmod +x ~/.claude/hooks/**/*.sh(find ~/.claude/hooks -name '*.sh' -exec chmod +x {} +)。
  2. Windows:用 Git Bash/WSL 兼容环境跑 hook;确认脚本行尾为 LF(避免 CRLF 执行错误)。
  3. 重装插件后如果还报错,先 /plugin remove oh-my-claudecode 再重装。
验证证据
  • 网页案例:CSDN(钩子未执行 → chmod +x hooks,2026-03);GitHub Issue #30(Windows hook error)。
  • 本市场未实测 Claude Code 插件形态(无登录态),如实标注。

适用工具 (1)

本问题方案已挂到下列工具的方案页——从工具页也能回到这里,双向可达。

oh-my-claudecode

来源与证据

收录 验证 ○ 未实测适用 1 工具
方案含本地实测或来源可复核的解法;未实测项已在文中如实标注。

← 多智能体编排 问题域 | 问题货架 | 遇到其它问题?去 问题空间 提交求助卡