claude-code - 💡(How to fix) Fix [FEATURE] Let me keep thinking blocks expanded longer after streaming ends [1 participants]

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…
GitHub stats
anthropics/claude-code#55608Fetched 2026-05-03 04:49:02
View on GitHub
Comments
0
Participants
1
Timeline
3
Reactions
0
Participants
Timeline (top)
labeled ×2renamed ×1

Code Example

// ~/.claude/settings.json
{
  // My ask: keep last turn's thinking readable for 10 min.
  "thinkingDisplayDurationMs": 600000

  // Other reasonable values:
  //   0       collapse immediately
  //   30000   current default behavior (explicit)
  //   omitted preserve current default
}
RAW_BUFFERClick to expand / collapse

What I'm asking for

A setting (e.g. thinkingDisplayDurationMs in settings.json, or an env var) that controls how long an expanded extended-thinking block stays visible after streaming ends, before it collapses to the one-line ∴ Thinking (ctrl+o to expand) indicator.

My typical use case: I'd set this to ~10 minutes so the most recent thinking block stays readable while I review the response and the diffs it produced. 0 would let users who prefer the opposite collapse it immediately. The current behavior would remain the default if the setting is unset.

Behavior I'm seeing

While the model is thinking, the full thinking text streams in and is fully readable. After streaming completes, the block stays expanded for a short window — in my testing about 30 seconds — and then collapses to a single dim line. From that point on the content is only reachable via ctrl+O.

For longer reasoning chains 30 seconds is well below the time it takes me to actually finish reading, especially when I look away to a diff or another window for a moment.

Why I want this

  • Finish reading. Extended thinking on harder turns is several paragraphs. By the time I've read the response and want to scroll back up to recheck the reasoning, it's already gone.
  • Glanceable context while reviewing the answer. Keeping the last turn's thinking visible alongside the response is more useful than having to swap into transcript mode to retrieve it.
  • Catch misunderstandings. A lot of the value of visible thinking is noticing "wait, the model misread my prompt" — but that judgment usually comes after I've read the response, by which point the thinking is already collapsed.

(A symmetric "set it shorter / to zero" use case probably exists too — making the duration configurable handles both ends with one knob.)

What today's options don't cover

  • ctrl+O (transcript mode): opens a separate scrollable view, but in my experience it only un-collapses the most recent thinking block of the current turn — earlier thinking from the same session stays hidden. And switching screens just to re-read what was on screen 40 seconds ago is heavy.
  • --verbose / "verbose": true: keeps all thinking blocks expanded permanently, but it also expands tool-result output (Bash stdout, file reads, grep results, etc.). On longer sessions that becomes a wall of text that buries the thinking I was trying to keep visible — net negative.
  • Click-to-expand on individual messages: works for some message types (collapsed read/search groups, advisor results) but doesn't seem to apply to thinking blocks themselves.
  • showThinkingSummaries: this looks like an API-level control (whether thinking summaries come back from the API at all) rather than a rendering-time control, and there are ongoing reports it doesn't reliably take effect (#48065). Either way, it doesn't change how long an already-rendered thinking block stays expanded.

So there's a real gap between "see thinking briefly" (default, ~30s) and "see everything verbose forever" (--verbose). Letting users dial the duration would land in the middle.

Related, but distinct

  • #30660 — real-time streaming of thinking (largely shipped). Comments there mention "thinking can get lost in the transcript stream" and "sitting blind for 30–50 seconds" — same underlying frustration, but my request is specifically about the post-streaming visibility window, which #30660 doesn't cover.
  • #36006 — collapsed-by-default with a toggle. Today's ∴ Thinking + ctrl+O is roughly that design; this request is about making the toggle's auto-trigger configurable.
  • #48065 — showThinkingSummaries bug. Different layer (API content vs. UI duration); included so it's clear I'm not asking for a duplicate.

Suggested shape (open to alternatives)

// ~/.claude/settings.json
{
  // My ask: keep last turn's thinking readable for 10 min.
  "thinkingDisplayDurationMs": 600000

  // Other reasonable values:
  //   0       collapse immediately
  //   30000   current default behavior (explicit)
  //   omitted preserve current default
}

Equivalently an env var like CLAUDE_THINKING_DISPLAY_MS would work. Naming is bikesheddable; the underlying ask is just a knob.

Thanks!

extent analysis

TL;DR

Implement a configurable setting, such as thinkingDisplayDurationMs in settings.json or an environment variable like CLAUDE_THINKING_DISPLAY_MS, to control how long an expanded thinking block stays visible after streaming ends.

Guidance

  • Introduce a new setting in settings.json with a default value that matches the current behavior (approximately 30 seconds) to provide a baseline for users.
  • Allow users to configure this setting to their preferred duration, such as 10 minutes, to accommodate different use cases.
  • Consider adding an environment variable alternative for users who prefer to configure settings via environment variables.
  • When implementing the setting, ensure it only affects the visibility of thinking blocks after streaming completes and does not impact other types of output or the transcript mode.

Example

{
  "thinkingDisplayDurationMs": 600000
}

This example shows how a user might configure the setting in their settings.json to keep the thinking block visible for 10 minutes.

Notes

The implementation should be mindful of the existing --verbose and showThinkingSummaries settings to avoid unintended interactions or overlaps in functionality.

Recommendation

Apply a workaround by introducing the proposed thinkingDisplayDurationMs setting or environment variable, as it directly addresses the user's need for a configurable duration without altering the existing behavior for users who prefer the default or immediate collapse.

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 [FEATURE] Let me keep thinking blocks expanded longer after streaming ends [1 participants]