claude-code - 💡(How to fix) Fix [BUG] Opus 4.7: thinking content empty despite `showThinkingSummaries: true` — live reasoning visibility lost [1 comments, 2 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#49708Fetched 2026-04-17 08:33:39
View on GitHub
Comments
1
Participants
2
Timeline
8
Reactions
0
Author
Participants
Timeline (top)
labeled ×4cross-referenced ×2commented ×1unlabeled ×1

On Opus 4.7, extended thinking content is not streamed to the client even when showThinkingSummaries: true is set in ~/.claude/settings.json. The thinking block header (token counter, elapsed time) appears, but the expand toggle reveals empty content. Ctrl+O has no effect. This regresses a core capability — live, course-correctable reasoning visibility — that worked correctly on Opus 4.6 and every prior Claude model.

Error Message

Error Messages/Logs

Root Cause

On Opus 4.7, extended thinking content is not streamed to the client even when showThinkingSummaries: true is set in ~/.claude/settings.json. The thinking block header (token counter, elapsed time) appears, but the expand toggle reveals empty content. Ctrl+O has no effect. This regresses a core capability — live, course-correctable reasoning visibility — that worked correctly on Opus 4.6 and every prior Claude model.

Code Example



---

{
     "effortLevel": "xhigh",
     "showThinkingSummaries": true,
     "alwaysThinkingEnabled": true
   }

---

{
  "effortLevel": "xhigh",
  "showThinkingSummaries": true,
  "alwaysThinkingEnabled": true
}
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Summary

On Opus 4.7, extended thinking content is not streamed to the client even when showThinkingSummaries: true is set in ~/.claude/settings.json. The thinking block header (token counter, elapsed time) appears, but the expand toggle reveals empty content. Ctrl+O has no effect. This regresses a core capability — live, course-correctable reasoning visibility — that worked correctly on Opus 4.6 and every prior Claude model.

Actual behavior

showThinkingSummaries: true appears not to trigger the client to send display: "summarized" when targeting Opus 4.7. Since the Opus 4.7 breaking changes flipped the API default for display from "summarized" to "omitted", the client now receives empty thinking blocks and has nothing to render. The client-side setting never overrides the server-side default for Opus 4.7.

Impact

Live visibility into model reasoning is a primary reason developers enable extended thinking. It is essential for:

  • Course-correcting the model mid-reasoning when it heads down a wrong path
  • Debugging why the model made a specific decision
  • Building trust in long-horizon agentic runs where the model thinks for minutes at a time
  • Research workflows where the reasoning trace is the output, not the final answer

Losing live thinking on the flagship model reduces Opus 4.7 to effectively a black box for these workflows, making it less usable than 4.6 for anyone whose loop depends on observable reasoning.

What Should Happen?

Per the official Claude Code settings docs: "Show extended thinking summaries in interactive sessions. When unset or false (default in interactive mode), thinking blocks are redacted by the API and shown as a collapsed stub."

Setting showThinkingSummaries: true should cause the client to send display: "summarized" on the API request so thinking content is transmitted and rendered — producing live, streaming summarized thinking in the transcript, just as it did on Opus 4.6 and every prior model.

Error Messages/Logs

Steps to Reproduce

  1. Ensure ~/.claude/settings.json contains:
    {
      "effortLevel": "xhigh",
      "showThinkingSummaries": true,
      "alwaysThinkingEnabled": true
    }
  2. Verify via /config in an interactive claude session — all three are read as set.
  3. On Opus 4.7 (default for Max subscription), run claude in PowerShell or VS Code terminal.
  4. Submit a prompt that triggers thinking:

    Think step by step about the tradeoffs between a B-tree and an LSM-tree for a write-heavy workload. Be thorough.

  5. Observe: thinking header streams (e.g., Nesting... (25s · ↓ 722 tokens)), but the ▸ expand toggle reveals an empty block. Ctrl+O does not expose content. After response completes, no thinking text is visible anywhere in the transcript.
  6. Switch to Opus 4.6 with /model claude-opus-4-6 and repeat — live streaming summarized thinking returns immediately, exactly as it worked yesterday.

Reproduced in all of: external PowerShell claude CLI, VS Code integrated terminal claude CLI, and VS Code graphical panel.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.112

Claude Code Version

2.1.112

Platform

Other

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

Environment

  • Claude Code version: 2.1.112
  • OS: Windows 11 Pro
  • Auth: Claude Max subscription (no ANTHROPIC_API_KEY)
  • Effort level: xhigh
  • Model: claude-opus-4-7 (regression does not occur on claude-opus-4-6)
  • Platform: Claude Code CLI + VS Code extension, authenticated via Claude Max subscription
  • Reproduced in: external PowerShell claude CLI, VS Code integrated terminal claude CLI, and VS Code graphical panel

Note on "Last Working Version": Same Claude Code version (2.1.112) works correctly on Opus 4.6; the regression is model-specific, not client-version-specific.

Settings that should (per docs) enable thinking visibility

In ~/.claude/settings.json:

{
  "effortLevel": "xhigh",
  "showThinkingSummaries": true,
  "alwaysThinkingEnabled": true
}

Verified via /config in an interactive claude session — all three are read as set.

Suggested fix

When showThinkingSummaries: true is set (or alwaysThinkingEnabled: true), Claude Code should explicitly send "display": "summarized" in the thinking object on requests targeting Opus 4.7 and any future model whose API default is omitted. This preserves existing user expectations without requiring Anthropic to reverse the API-level default.

References

  • What's new in Opus 4.7 — "Thinking content omitted by default"
  • Building with extended thinking — display field semantics
  • Claude Code settings — showThinkingSummaries
  • Related: #43071 (thinking redacted despite the setting), #31489 (VS Code extension parity gap), #8477 (feature request: always show thinking)

extent analysis

TL;DR

To fix the issue, Claude Code should explicitly send "display": "summarized" in the thinking object on requests targeting Opus 4.7 when showThinkingSummaries: true is set.

Guidance

  • Verify that the ~/.claude/settings.json file contains the correct settings: "showThinkingSummaries": true and "alwaysThinkingEnabled": true.
  • Check the API request sent to Opus 4.7 to ensure it includes the "display": "summarized" field when showThinkingSummaries: true is set.
  • Test the fix by running the claude command with the same prompt and verifying that the thinking content is streamed to the client.
  • If the issue persists, try switching to Opus 4.6 using /model claude-opus-4-6 to confirm that the regression is model-specific.

Example

No code snippet is provided as the issue is related to the API request and settings configuration.

Notes

The suggested fix is model-specific and only applies to Opus 4.7 and future models with the same API default. The fix preserves existing user expectations without requiring Anthropic to reverse the API-level default.

Recommendation

Apply the workaround by modifying the Claude Code to explicitly send "display": "summarized" in the thinking object on requests targeting Opus 4.7 when showThinkingSummaries: true is set. This will restore the live thinking visibility feature for Opus 4.7.

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