You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SessionStart always-on hook can't run without Node, but Node is no longer a Claude Code dependency #221
On a machine where Claude Code is installed without Node available anywhere (e.g. a native-binary install rather than an npm one), the always-on SessionStart hook fails on every session start with:
SessionStart:startup hook error
Failed with non-blocking status code: /bin/sh: node: command not found
(not a PATH/desktop-app issue — Node is genuinely absent)
This leads ADHD mode to never activate, only giving this oneline hook error which is easy to miss.
History
Saw that in issue #66 it was switched from node-based to a POSIX sh script, then reverted back to node in #71 after #70 found the sh version broke on Windows (no sh on PATH under PowerShell). #71's reasoning was that "Node ships with Claude Code on all platforms"
But that's not actually true anymore: Anthropic's native installer (curl -fsSL claude.ai/install.sh | bash, now the recommended default) ships a standalone binary without Node dependency, and even the npm install path just downloads the same native binary and doesn't invoke Node at runtime.
Repro
which -a node finds nothing, no install anywhere on disk (checked Homebrew, nvm, volta, fnm, asdf), claude itself is a native Mach-O binary. Flag file at ~/.claude/.i-have-adhd-always is present and correct, so the hook is genuinely never firing, not a config issue.
Precedent
The hook's own logic (read a flag file, strip YAML frontmatter, print a banner) doesn't need Node — hooks/always-on.sh and hooks/always-on.ps1 already exist in the repo as equivalents, they're just never dispatched to from hooks.json.
There's also #129 (open) showing a second, different way the current Node hook fails silently — CLAUDE_PLUGIN_ROOT isn't exported on the desktop app, so even when Node is present it can no-op with zero error.
Activity