Same assistant response rendered 16 times in terminal for a single user message

Resolved 💬 3 comments Opened Apr 25, 2026 by kjon-life Closed May 29, 2026

Environment

  • Claude Code version: 2.1.119
  • Platform: macOS Darwin 24.6.0
  • Shell: zsh in macOS Terminal (not iTerm2, not tmux — confirmed neither was running)
  • Model: claude-sonnet-4-6 (1M context)

What happened

During a normal session, a single user message produced one assistant turn that was rendered 16 times in the terminal. The repeated block included tool output (a large grep result across a docs directory) followed by the assistant's analysis.

The turn that repeated was triggered by this Bash tool call:

\\\
grep -rn "christacarmen-ai" /Users/trust/Dev/tessera/CLAUDE.md /Users/trust/Dev/tessera/_docs/
\
\\

That command produced approximately 40 lines of output across many files. Immediately after, the assistant composed a multi-paragraph categorized response. That entire block — tool output + response — appeared 16 times.

Relevant configuration

Two superpowers plugins were loaded simultaneously, both registering a SessionStart hook with "matcher": "startup|resume|clear|compact":

  • superpowers@superpowers-marketplace v4.3.1 (since removed)
  • superpowers@claude-plugins-official v5.0.7

Global settings at the time:

  • "verbose": true
  • "alwaysThinkingEnabled": true

Hypothesis

The large grep output may have triggered a context compaction event. Both plugins registered on the compact matcher and fired simultaneously. It is unknown whether the 16x repetition is a display/rendering bug (one API call, output shown 16 times) or 16 actual API calls — the raw stream log was not captured.

Impact

  • Unpredictable token usage (16x for that turn)
  • No way for the user to distinguish rendering artifact from actual repeated inference

Steps to reproduce

Not yet reproducible on demand. Likely requires:

  1. Two plugins with SessionStart hooks registered on compact
  2. A large Bash tool result (40+ lines) triggering compaction
  3. verbose: true

The duplicate plugin has been removed. A session log capture strategy (claude 2>&1 | tee /tmp/claude-session.log) has been suggested to isolate whether this is rendering or inference repetition if it recurs.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗