claude-code - 💡(How to fix) Fix Hook stdout shown + suppressOutput:true ignored in 2.1.158 (regressed from 2.1.157)

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…

After updating to 2.1.158, successful hook output is now printed above the prompt in the default (non---verbose) TUI, and suppressOutput: true in a hook's JSON response no longer hides it. This did not happen on 2.1.157. It affects every hook event, so any hook that logs to stdout/stderr (even routine debug chatter) now clutters the terminal.

Root Cause

After updating to 2.1.158, successful hook output is now printed above the prompt in the default (non---verbose) TUI, and suppressOutput: true in a hook's JSON response no longer hides it. This did not happen on 2.1.157. It affects every hook event, so any hook that logs to stdout/stderr (even routine debug chatter) now clutters the terminal.

Fix Action

Workaround

Pinning to 2.1.157 + DISABLE_AUTOUPDATER=1.

Code Example

SessionStart:startup hook success: {"continue":true,"suppressOutput":true,"status":"ready"}
SessionStart:startup hook success: 2026-05-31 [debug] Processing hook event from stdin
[warning] TMUX_PANE not set, cannot determine window
RAW_BUFFERClick to expand / collapse

Summary

After updating to 2.1.158, successful hook output is now printed above the prompt in the default (non---verbose) TUI, and suppressOutput: true in a hook's JSON response no longer hides it. This did not happen on 2.1.157. It affects every hook event, so any hook that logs to stdout/stderr (even routine debug chatter) now clutters the terminal.

Environment

  • Claude Code: 2.1.158 (native installer, ~/.local/share/claude/versions/)
  • OS: Ubuntu 24.04.4 LTS (x86_64), zsh login shell
  • Auth: subscription (OAuth), not API key
  • verbose is not set in ~/.claude/settings.json (confirmed jq .verbose → null)

What I see

On SessionStart (and Stop), lines like these appear above the prompt:

SessionStart:startup hook success: {"continue":true,"suppressOutput":true,"status":"ready"}
SessionStart:startup hook success: 2026-05-31 [debug] Processing hook event from stdin
[warning] TMUX_PANE not set, cannot determine window

The first line is from a hook that returns {"continue":true,"suppressOutput":true} on stdout — yet it is displayed. The other lines are a different hook's stdout/stderr debug output. Multiple independent hooks are affected, so it is not specific to one hook implementation.

Expected

Per the hooks docs, with suppressOutput: true the hook's stdout should be hidden from the transcript (still visible under --debug). On a successful hook with no actionable output, nothing should be printed in the default view — which was the behavior on 2.1.157 and earlier.

Actual

  • Successful-hook stdout/stderr is surfaced in the default view.
  • suppressOutput: true appears to be ignored on the success path.

Reproduction

  1. Configure any SessionStart (or Stop) hook whose command writes to stdout/stderr, e.g. a script that prints a debug line and emits {"continue":true,"suppressOutput":true}.
  2. Start a session on 2.1.158 → the hook's output prints above the prompt.
  3. Downgrade to 2.1.157 (ln -sf ~/.local/share/claude/versions/2.1.157 ~/.local/bin/claude) → output no longer appears.

Regression range

  • 2.1.157: clean (no hook output on success).
  • 2.1.158: output shown + suppressOutput:true ignored.

The 2.1.158 changelog entry I can find ("Auto mode on Bedrock/Vertex/Foundry") doesn't mention hooks, so this looks unintentional.

Workaround

Pinning to 2.1.157 + DISABLE_AUTOUPDATER=1.

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 Hook stdout shown + suppressOutput:true ignored in 2.1.158 (regressed from 2.1.157)