claude-code - 💡(How to fix) Fix [Bug] Stop hooks fail with "node: command not found" and missing plugin directories

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

⎿  Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found ⎿  export PATH="$($SHELL -lc 'echo $_C="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"; _E="${CLAUDE_PLUGIN_ROOT:-${PLUGIN_ROOT:-}}"; _P=[ -n "$_E" ] && printf '%s\n' "$_E";edotmack/claude-mem"/[0-9]*/ 2>/dev/null; printf '%s\n' "$_C/plugins/marketplaces/thedotmack/plugin"; } | while IFS= rea-r _R; do _R="${_R%/}"; [ -d "$_R/plugin" || _Q="$_R"; [ -f"$_Q/scripts/bun-runner.js" ] && [ -f "$_Q/scripts/worker-service.cjs" ] && { printf '%s\n'"$_Q"; break; }; done); [ -n "$_P" ]n scripts not found" >&2;exit 1; }; command -v cygpath >/dev/null 2>&1 && { _W=$(cygpath -w "$_P" 2>/dev/null); [ -n"$_W" ] && _P="$_W"; }; node "$_P/scipts/worker-service.cjs" hook claude-code summarize ⎿  Stop hook error: Failed with non-: node: command not found

RAW_BUFFERClick to expand / collapse

Bug Description ❯ What am I doing wrong in this command flow? zsh: command not found: z danny@MacBook-Pro-M5-Pro ~ % .fseventsd FORGE claude-opus-4-7 HIGH zsh: command not found: .fseventsd danny@MacBook-Pro-M5-Pro ~ % cat .fseventsd FORGE claude-opus-4-7 HIGH cat: .fseventsd: No such file or directory danny@MacBook-Pro-M5-Pro ~ % .fseven Async hook SessionStart completed h non-blocking status code: /bin/sh:node: command not found

A few things are going wrong:

  1. z isn't installed. z is a directory-jumper (zoxide or the original z.sh). It's not a built-in. Install one:
  • brew install zoxide then add eval "$(zoxide init zsh)" to ~/.zshrc (and optionally alias z=__zoxide_z — modern zoxide uses z
  • Or brew install z for the classic version, then source $(brew --prefix)/etc/profile.d/z.sh in ~/.zshrc.
  1. .fseventsd isn't a command — it's a macOS system directory at /.fseventsd (filesystem events log). Typing it at the prompt asks zsh to fseventsd in your home directory,which is why cat .fseventsd failed.
  2. Even with zoxide installed, z onl already cd'd into. A fresh installhas an empty database — z weird glitches won't find anything until you've visited that folder at least once.

Also: the FORGE claude-opus-4-7 HIGHlooks like a right-side prompt(RPROMPT) from your zsh theme bleeding into the command line on paste/wrap. Cosmetic, not the cause of the errors.

Quickest path forward: brew install ~/.zshrc, source ~/.zshrc, then cdinto the "Weird Glitches" folder once so zoxide learns it.

⏺ Ran 3 stop hooks ⎿  bash "${CLAUDE_PLUGIN_ROOT}/hooks ⎿  bash "${CLAUDE_PLUGIN_ROOT}/hooks/sg-python.sh" "${CLAUDE_PLUGIN_ROOT}/hooks/securit ⎿  export PATH="$($SHELL -lc 'echo $PATH' 2>/dev/null):$PATH"; _C="${CLAUDE_CONFIG_DIR:-$HOME/.clauT:-${PLUGIN_ROOT:-}}"; _P=$({ [ -n "$_E" ] && printf '%s\n' "$_E"; ls -dt "$_C/plugins/cache/thedotmack/claude-mem"/[0-9]*/ 2>/dev/null; printf '%s\n' "$_C/pluglugin"; } | while IFS= read-r _R; do _R="${_R%/}"; [ -d "$_R/plugin/scripts" ] && _Q="$_R/plugin" || _Q="$_R"; [ -f "$_Q/scripts/bun-runner.js" ] && [ -.cjs" ] && { printf '%s\n'"$_Q"; break; }; done); [ -n "$_P" ] || { echo "claude-mem: plugin scripts not found" >&2; exit 1; }; command -v cygpath >/dev/w "$_P" 2>/dev/null); [ -n"$_W" ] && _P="$_W"; }; node "$_P/scripts/bun-runner.js" "$_P/scripts/worker-service.cjs" hook claude-code summarize ⎿  Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found

✻ Cooked for 14s

❯ your stop hook, cut u off h non-blocking status code: /bin/sh:node: command not found

Short version:

  1. z isn't installed — brew install zoxide, then add eval "$(zoxide init zsh)" to ~/.zshrc and source ~/.zshrc.
  2. .fseventsd is a macOS system dir at /.fseventsd, not a command and not in ~.
  3. zoxide only jumps to dirs you've ird Glitches" once first.
  4. The FORGE claude-opus-4-7 HIGH trailing text is your RPROMPT wrapping into the command line — cosmetic.

⏺ Ran 3 stop hooks ⎿  bash "${CLAUDE_PLUGIN_ROOT}/hooks/stop-hook.sh" ⎿  bash "${CLAUDE_PLUGIN_ROOT}/hooks"${CLAUDE_PLUGIN_ROOT}/hooks/security_reminder_hook.py" ⎿  export PATH="$($SHELL -lc 'echo $_C="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"; _E="${CLAUDE_PLUGIN_ROOT:-${PLUGIN_ROOT:-}}"; _P=[ -n "$_E" ] && printf '%s\n' "$_E";edotmack/claude-mem"/[0-9]*/ 2>/dev/null; printf '%s\n' "$_C/plugins/marketplaces/thedotmack/plugin"; } | while IFS= rea-r _R; do _R="${_R%/}"; [ -d "$_R/plugin" || _Q="$_R"; [ -f"$_Q/scripts/bun-runner.js" ] && [ -f "$_Q/scripts/worker-service.cjs" ] && { printf '%s\n'"$_Q"; break; }; done); [ -n "$_P" ]n scripts not found" >&2;exit 1; }; command -v cygpath >/dev/null 2>&1 && { _W=$(cygpath -w "$_P" 2>/dev/null); [ -n"$_W" ] && _P="$_W"; }; node "$_P/scipts/worker-service.cjs" hook claude-code summarize ⎿  Stop hook error: Failed with non-: node: command not found … Note: Content was truncated.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix [Bug] Stop hooks fail with "node: command not found" and missing plugin directories