[Bug] Thinking summaries not displayed when `showThinkingSummaries` enabled in settings.json
Open 💬 21 comments Opened Apr 14, 2026 by varungodbole
Bug Description
CC doesn't respect the "showThinkingSummaries": true in settings.json. I'm using CC now and it doesn't show any thinking summaries despite how long the model has been thinking at max effort.
Environment Info
- Platform: darwin
- Terminal: Apple_Terminal
- Version: 2.1.96
- Feedback ID: ace07b37-15cc-4b60-a5b1-2f486cb6000e
Errors
[]
21 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
I don't seem to have permissions to update the bug, but it should be version 2.1.96. It updated when I opened a new CC terminal to file the bug.
Actually, it seems that the thinking summaries do show up sometimes in 2.1.96. Just not all the time. I don't know how to reliably reproduce this for you. But I'd be very surprised if the model isn't producing thinking tokens under the hood given how long it seems to think for and how long the responses are.
Nah bro, is a feature, not a bug https://code.claude.com/docs/en/settings#available-settings :
showThinkingSummaries 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. Redaction only changes what you see, not what the model generates: to reduce thinking spend, lower the budget or disable thinking instead. Non-interactive mode (-p) and SDK callers always receive summaries regardless of this setting true
A few weeks ago, the undocumented
showThinkingSummariesfinally brought back the thinking blocks for me -- at least for the most recent messages in the session -- after I had lost complete access to that feature for several months.This morning I updated to Claude Code v2.1.112 (to get access to the Opus 4.7), and now poof, the thinking blocks seem to be completely gone again...
I checked
~/.claude/settings.json, and"showThinkingSummaries": trueis still there.not seeing the thinking is driving me nuts and the setting does not work.
Confirming this reproduces on Linux, Claude Code 2.1.114, Opus 4.7 — 18 point-releases past the original 2.1.96 report and still broken.
Settings (
~/.claude/settings.json):Both keys match the official docs at https://code.claude.com/docs/en/settings exactly. The
showThinkingSummariesentry there explicitly describes the expected behavior: "When unset orfalse(default in interactive mode), thinking blocks are redacted by the API and shown as a collapsed stub." Setting it totrueis the documented way to expand those stubs. @vicenzomasat — the docs you quoted are the reason people enable this setting; the bug is that Claude Code is not honoring it.Symptom: every thinking block renders as a collapsed one-liner like:
Weighing a few approaches…Untangling some thoughts…This one needs a moment……never expanding into actual summary content, regardless of model effort level (tested with Opus 4.7 at
xhigh). Restarting Claude Code after the settings change does not help.Corroborating reports on the same bug:
Asks:
showThinkingSummaries-specific break.Reproducing on:
uname -r6.8.0-1042-aws · CLI 2.1.114 · Opus 4.7 · terminal: tmux/alacritty · settings confirmed vianode -e 'console.log(require("~/.claude/settings.json").showThinkingSummaries)'→true.Confirming this bug on v2.1.114 on macOS —
"showThinkingSummaries": truein~/.claude/settings.jsonhas no effect, no gray thinking summaries appear even on heavy reasoning tasks witheffortLevel: "high".Workaround (not a fix, but useful in the meantime): instruct Claude via
CLAUDE.mdto emit reasoning in square-bracketed[thinking]...[/thinking]blocks instead of the standard angle-bracketed ones. These aren't parsed as special by the TUI, so the content renders as normal visible text inline — giving you back visibility into the model's reasoning process until the setting is fixed.Example
CLAUDE.mdentry:Here's how it looks in practice:
<img width="642" height="448" alt="Image" src="https://github.com/user-attachments/assets/0f638e0a-09c8-40a7-95f6-733628c04ba3" />
Caveat: this isn't extended thinking in the API sense — it's just regular output text that's stylistically separated. But for users who want visibility into the model's chain of thought during a session, it's a serviceable stopgap.
_(By the way, thinking blocks are no longer shown in the extension version either -- previously they were even when the CLI ones were gone.)_
Reproduces on Windows 11, Claude Code 2.1.77, Opus 4.7 (1M context), medium effort.
Settings (
~/.claude/settings.json):Transcript view toggled via
Ctrl+Oto bothThinkingandVerbose— neither renders any thinking content. Unlike @therajvira's report of collapsed one-liner stubs, on my end the thinking section is completely absent from the UI — no stub, no placeholder, nothing between the prompt and the final answer.Confirmed the model IS generating thinking (long latency, rich structured answers that clearly required reasoning). Restarting Claude Code after the settings change did not help.
Adding a Windows + 2.1.77 data point to the existing Linux reports (2.1.96 → 2.1.114). The bug spans multiple OSes and at least 37 point-releases.
Glad to report it's back (at least for me) in 2.1.117!
After some testing, the "show thoughts" mode does not work with Opus 4.7 (2.1.117), but it does work with other models.
For Opus, the latest working version is 2.1.109 with Opus 4.6
"showThinkingSummaries": true did not change anything.
Platform: Windows
Reproduces on macOS, Claude Code VSCode extension v2.1.116, Opus 4.7 (1M context), effortLevel: max.
Settings (
~/.claude/settings.json):\
\\json\{
"showThinkingSummaries": true,
"alwaysThinkingEnabled": true,
"effortLevel": "max"
}
\
\Symptom: "Thought for Ns" pills render after each response but are not interactive — clicking does nothing, and \
Ctrl+O\(transcript toggle) does not surface any thinking content. No collapsed stubs, no expandable section, no text between prompt and answer. Restarting the session does not help.This corroborates @chmv's 2026-04-22 report that the bug is Opus-4.7-specific: v2.1.117 fixed thinking display for other models, but the same regression persists for Opus 4.7 on v2.1.116 here. Adds a macOS + VSCode extension data point to the existing Linux/Windows CLI reports — confirms the bug is not terminal-renderer-specific and spans both the CLI and the VSCode extension runtime.
+1 on Opus 4.7 via VS Code extension. The setting is currently a no-op on 4.7 because the harness doesn't send
display: "summarized"to the API - see #49268 for the likely root cause. Worth fixing either the harness behavior or the setting's documented contract so users aren't configuring something that can't do anything.Thinking seems to be fixed with the new release, I am on v2.1.119, I can see the thinking verbose output back again even with Opus 4.7.
Update — still broken on v2.1.120, macOS, VSCode extension, Opus 4.7.
Updated past @therajvira's reported fix point (v2.1.119 → v2.1.120), reloaded the VSCode window, confirmed extension version in the Extensions panel, opened a fresh chat. Reproduced the exact same symptom across two independent fresh sessions: "Thought for Ns" pills are non-interactive, \
Ctrl+O\does nothing, no thinking content surfaces anywhere in the UI.Settings unchanged from my prior comment (\
showThinkingSummaries: true\, \alwaysThinkingEnabled: true\, \effortLevel: max\).Possibilities:
Either way, the macOS + VSCode extension + Opus 4.7 path is still completely broken on the latest release.
@nikitazhylkin VS Code MacOS, v2.1.120 the same issue.
I did roll back to the latest working v2.1.109 (Opus 4.6) and it's back.
For some reason Opus 4.6 still looks better than Opus 4.7 in daily work
Same bug on Windows / VS Code extension 2.1.x with Opus 4.7. Not macOS-specific.
Root cause is now public (credit to the workaround in #8477 (comment)): Opus 4.7 changed the API default for thinking blocks from
display: "summarized"todisplay: "omitted". The blocks are still in the response stream, but thethinkingfield is empty unless the caller passesdisplay: "summarized"explicitly. Documented in Anthropic's own migration guide: https://platform.claude.com/docs/en/about-claude/models/migration-guide#migrating-to-claude-opus-4-7Net effect:
showThinkingSummaries,alwaysThinkingEnabled, andviewMode: "verbose"have nothing to render, because Claude Code does not passdisplay: "summarized"when calling the Opus 4.7 API.showThinkingSummariesis the documented, official way to surface thinking in the VS Code extension, and it is silently broken on Opus 4.7. The settings surface never caught up to the API change.Two undocumented workarounds (from the same comment):
~/.claude/settings.json:``
json
``{
"env": {
"CLAUDE_CODE_EXTRA_BODY": "{\"thinking\":{\"type\":\"adaptive\",\"display\":\"summarized\"}}"
}
}
--thinking-display summarizedThe env var approach works for the VS Code extension since it delegates to the CLI.
Why this is high-priority, not a cosmetic regression:
Visible real-time thinking was load-bearing for the steering loop. With it visible, you could stop the model going down a wrong branch before it spent N turns of token budget on a wrong premise; you could verify it had internalized constraints from CLAUDE.md / memory rather than hallucinated them; and you could audit assumptions before committing to a plan.
With it hidden behind an unexpandable pill, you cannot tell whether a wrong final answer came from a wrong premise or a wrong execution of a right premise. Silent assumption drift becomes invisible until after the wrong action is taken. "Thought for 376s" is a duration, not a signal. It tells you nothing actionable. This is a regression in the developer's ability to supervise the agent.
On the user side: this is a paid product. Pro at $20/month, Max at $100–$200/month. Paying customers should not have to monkey-patch
cli.js, reverse-engineer an undocumentedCLAUDE_CODE_EXTRA_BODYenv var, or scrape issue threads to recover functionality that worked in the previous release of the same product. The workaround being undocumented is itself a bug. The gap between what the API supports and what Claude Code exposes as a first-class setting keeps widening with every model bump.Related open issues, same root problem:
display: "summarized"for Opus 4.7 (same root cause, named explicitly)What would actually resolve this:
display: "summarized"by default for Opus 4.7+ whenshowThinkingSummariesandalwaysThinkingEnabledare on. Or expose a first-classthinkingDisplaysetting alongside the existingthinkingEnabledandeffortLevel.showThinkingSummariesactually shows summaries when the data is present.showThinkingSummariessemantics on Opus 4.7+ instead of describing behavior that no longer applies.<img width="464" height="103" alt="Image" src="https://github.com/user-attachments/assets/584e5e67-0600-4a16-ba43-422ce012569b" /> VsCode Extension version 2.1.139 now shows the thinking done.
<img width="245" height="90" alt="Image" src="https://github.com/user-attachments/assets/00307f80-dbcb-4599-8265-320ea26ef164" /> but in the same windows other chat didn't show thinking.
Confirming that updating the VSCode Extension fixed the thinking for me! (2.1.140)
Note that I do also have
``
"CLAUDE_CODE_EXTRA_BODY": "{\"thinking\":{\"type\":\"adaptive\",\"display\":\"summarized\"}}"``with
``
"showThinkingSummaries": true,`settings.json`, not sure if they are still required or not.in my
I saw this thing, where in if the claude code CLI has an existing session going and you switch to VSCode, you would see the thinking in expandable mode, but not the case when it is fresh session from extension. Please confirm if that is the same with someone else too.