[Bug] Plugin hook stdout not surfaced to Claude in system messages
Resolved 💬 3 comments Opened Jan 1, 2026 by nqh-packages Closed Jan 5, 2026
Bug Description
Bug: Plugin hooks don't surface stdout/systemMessage to Claude
Plugin hooks in hooks/hooks.json execute successfully but their output is not visible to Claude, unlike user hooks in ~/.claude/settings.json.
Repro:
- Create plugin with SessionStart command hook that outputs text
- Install plugin, restart Claude Code
- Hook shows "Success" instead of actual stdout
Expected: Plugin hook stdout appears as system-reminder (like user hooks)
Actual: Only "Success" shown, content lost
Affected: All plugin hook types (command + prompt), all events tested (SessionStart, PreCompact, UserPromptSubmit, PreToolUse)
Workaround: Move hooks to user settings.json
Environment Info
- Platform: darwin
- Terminal: Apple_Terminal
- Version: 2.0.76
- Feedback ID: 608ba1d3-8b77-4d8e-af95-82156ce6cf25
Errors
[{"error":"Error: NON-FATAL: Lock acquisition failed for /Users/huy/.local/share/claude/versions/2.0.76 (expected in multi-process scenarios)\n at XZR (/$bunfs/root/claude:2430:2165)\n at fUA (/$bunfs/root/claude:2430:1885)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-01T16:15:49.696Z"},{"error":"SyntaxError: JSON Parse error: Property name must be a string literal\n at <parse> (:0)\n at parse (unknown)\n at <anonymous> (/$bunfs/root/claude:78:751)\n at A (/$bunfs/root/claude:11:6978)\n at v31 (/$bunfs/root/claude:2563:26855)\n at async mPB (/$bunfs/root/claude:2563:29641)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-01T16:15:50.973Z"},{"error":"Error: Request was aborted.\n at _createMessage (/$bunfs/root/claude:458:3157)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-01T16:16:24.272Z"},{"error":"Error: Request was aborted.\n at makeRequest (/$bunfs/root/claude:801:3940)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-01T16:19:46.761Z"},{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"prompt is too long: 216437 tokens > 200000 maximum\"},\"request_id\":\"req_011CWgyBWpDWp7QB7qAtijFt\"}\n at generate (/$bunfs/root/claude:454:11098)\n at makeRequest (/$bunfs/root/claude:801:5435)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-01T16:25:11.805Z"},{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"prompt is too long: 216437 tokens > 200000 maximum\"},\"request_id\":\"req_011CWgyBrdaNxxXs1soJ7kSV\"}\n at generate (/$bunfs/root/claude:454:11098)\n at makeRequest (/$bunfs/root/claude:801:5435)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-01T16:25:16.320Z"},{"error":"Error: 400 {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"prompt is too long: 216437 tokens > 200000 maximum\"},\"request_id\":\"req_011CWgyC5UkAouqKdiHgWNcR\"}\n at generate (/$bunfs/root/claude:454:11098)\n at makeRequest (/$bunfs/root/claude:801:5435)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-01T16:25:19.349Z"}]This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗