VS Code extension: thinking blocks render without expand chevron
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Summary
In the VS Code extension chat panel, extended thinking blocks render with their status label (e.g., Thinking..., Imagining...) but without the disclosure chevron / twisty that previously allowed expanding them to view the reasoning content. Both click-to-expand and the documented Ctrl+O shortcut fail because there is no clickable disclosure target in the rendered DOM.
This was working previously in the same install. The regression appeared without any deliberate configuration change on my side.
Expected behavior
Per the VS Code extension docs:
Claude's reasoning appears in the conversation as collapsed blocks: click a block to read it, or press Ctrl+O to expand or collapse every thinking block in the session.
A disclosure chevron should render to the left of the status label, and clicking the block should expand it to reveal the reasoning content.
Actual behavior
The Thinking... and Imagining... status labels render as plain text only. No chevron, no disclosure triangle, no clickable affordance. Clicking the label does nothing. The reasoning content is not reachable from the UI. Screenshot attached.
Steps to reproduce
- Open a Claude Code session in the VS Code extension chat panel
- Ask a prompt that exercises extended thinking (a non-trivial design or reasoning task)
- Observe:
Thinking.../Imagining...indicators render but have no expand control
Environment
- Claude Code extension: 2.1.123 (win32-x64)
- VS Code: 1.115.0 (user setup), commit
41dd792b5e - OS: Windows 11 Pro (10.0.26200)
- Model: Claude Opus 4.7 (1M context)
What I already tried
- Restarting VS Code — no change (regression first observed after a routine restart)
- Command Palette →
Developer: Reload Window— no change - Searched
claudeCode.*and.claude/settings.jsonfor a thinking-display toggle — none exists in the extension
Additional context
The regression appears to be extension-side rendering — the model continues to produce thinking content (the status indicators advance through phases like Thinking... → Imagining...), but the UI has stopped rendering the disclosure control around it. Likely candidate causes: a recent extension release that touched chat panel rendering, or an interaction with Opus 4.7's interleaved thinking format. Older obsolete versions on disk include 2.1.109, 2.1.114, 2.1.116, 2.1.117, 2.1.119, 2.1.120 — bisecting against those should isolate the regression.
What Should Happen?
A disclosure chevron / twisty should render to the right of the Thinking... status label, making the block expandable. Clicking the block (or pressing Ctrl+O) should expand it to show the reasoning content, per the VS Code extension docs which say: "click a block to read it, or press Ctrl+O to expand or collapse every thinking block in the session."
Error Messages/Logs
Steps to Reproduce
- Open a Claude Code session in the VS Code extension chat panel
- Ask a prompt that exercises extended thinking (a non-trivial design or reasoning task)
- Observe: Thinking... / Imagining... indicators render but have no expand control
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.123 (win32-x64)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
VS Code integrated terminal
Additional Information
<img width="578" height="71" alt="Image" src="https://github.com/user-attachments/assets/b7f35be2-e0d0-4e41-b0b4-8a5f94052abb" />
5 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Don't close
---
Confirming this on Windows + VS Code panel, with an environment fingerprint and a tested regression range below.
The post-turn
Thought for Xslabel renders, but has no visible affordance — no chevron, no underline, no hover state, no button-like cursor — and does not respond to left click. There is no rendered way to reveal the model's reasoning from the panel UI.Secondary observation:
Ctrl+O, which toggles the detailed-transcript view in the integrated terminalclaudeCLI, has no effect when the panel webview is focused. I note up front that the terminalCtrl+Otoggles the transcript view (status-bar hint:Showing detailed transcript · ctrl+o to toggle · ctrl+e to show all) — I do not have proof that this is the same affordance as a thinking-block expand in the panel; I mention it only because it is the closest user-visible analogue and was the keyboard fallback I tried.The model is producing thinking tokens (the live
Thinking… · N tokenscounter increments during generation), so the issue is presentation, not generation.Environment
8761a5560cfd65fdd19ce7e2bd18dab5c0a4d84e), stable, x64anthropic.claude-code2.1.158 (also reproduced on 2.1.157)claudeCode.preferredLocation: "panel")"extensions.autoUpdate": false,"extensions.autoCheckUpdates": falseThought for Xslabel reproduces it).ANTHROPIC_API_KEYenv var).Settings that gate the thinking UI (
~/.claude/settings.json):Other keys in my
settings.json(effortLevel,ultracode,fastMode,enableWorkflows) appear to be local/experimental and I cannot confirm whether the shipped 2.1.158 build recognises them — listed only for completeness; removing them does not change the behaviour. No project-level.claude/settings*.jsonoverrides for thinking-related keys.MAX_THINKING_TOKENSnot set.Steps to Reproduce
anthropic.claude-code2.1.158 in VS Code 1.122.1 on Windows 11."claudeCode.preferredLocation": "panel"and open the Claude Code panel.~/.claude/settings.json, set onlyalwaysThinkingEnabled: trueandshowThinkingSummaries: true(minimum required to surface the label).Thinking… · N tokensduring generation; after completion observe theThought for Xslabel above the assistant response.Ctrl+Owith the panel focused.Actual Behavior
Thought for Xslabel renders but has no visible affordance — no chevron, no underline, no hover state, no button-like cursor.Ctrl+Owhile panel focused: no effect. Removing the global VS CodeFile: Openbinding forCtrl+Oinkeybindings.jsondoes not change anything, so the webview is not receiving the shortcut as a routed VS Code command either.Churned for 1sappears on trivial prompts in place ofThought for Xs. I have not confirmed in DevTools whether this is the same DOM node in an idle state or a separate component; I mention it only so the maintainer is not surprised by the alternate copy.Workaround
Use the integrated terminal CLI instead of the GUI panel:
The terminal client exposes
Showing detailed transcript · ctrl+o to toggle · ctrl+e to show allin its status bar, andCtrl+Otoggles a detailed transcript that includes the reasoning. Same account, same model, same~/.claude/settings.json. (As noted above, I am not asserting this is the exact same affordance as the panel's intended thinking expand — only that it is a usable substitute today.)Diagnostic Evidence
Thinking… · N tokenscounter increments during generation — model is producing thinking tokens; the regression is in the panel's presentation of them.claudeon identical config/account/model exposes reasoning via the transcript toggle.Ctrl+O→workbench.action.files.openFileFolderbinding inkeybindings.jsondoes not unblock the panel — the webview is not handling the shortcut internally either, or is not gaining focus.~/.claude/settings.jsonparses as valid JSON.Gaps I acknowledge (and will add if asked):
Developer: Open Webview Developer Toolson the Claude panel to inspect theThought for Xselement's tag/classes/data-*/aria-*, its Event Listeners pane, or console errors / CSP warnings during a turn. This is the single most useful artifact for a "click does nothing" bug and I will attach it on request.data-testid, role) — without DevTools I cannot give the maintainer a grep target into the bundledextension.js.claudeCode.preferredLocation: "panel". I have not yet tried"sidebar"or"editor"to confirm whether the regression is panel-specific or webview-wide.Regression Range
Tested via
code --install-extension anthropic.claude-code@<v> --forcefollowed by a window reload:| Version | Live
Thinking…counter |Thought for Xslabel | Click /Ctrl+Oexpands ||---|---|---|---|
| 2.1.145 | not observed | not observed | n/a |
| 2.1.152 | not observed | not observed | n/a |
| 2.1.157 | present | present | broken |
| 2.1.158 (current) | present | present | broken |
Both 2.1.152 and 2.1.158 are installed side-by-side on disk:
Caveats: I have not bisected 2.1.153 / .154 / .155 / .156. The "first broken" version is therefore somewhere in 2.1.153–2.1.157 inclusive. I can bisect on request — same install command per version.
Additional Notes
From
extension/package.jsonof the 2.1.158 install on disk:claudeVSCodePanel), sidebar, and secondary sidebar.think,verbose,transcript,expand,reason, ortoggle.CHANGELOG.mdshipped in the extension directory.Implication for triage: there is no contributed VS Code command for the user to rebind, so any keyboard handling for expand must live inside the webview. Combined with the panel's lack of a visible chevron, the most likely fix surfaces are (a) a missing
onClick/onKeyDownon the summary node, (b) a missingrole="button"/tabindexpreventing focus + keyboard activation, or (c) a CSP / inline-handler block — all of which a webview DevTools dump would disambiguate immediately. I will provide that dump on request.Still reproducing this on a much newer version:
Claude Code extension: 2.1.197 (win32-x64)
VS Code: 1.127.0
OS: Windows 11
Model: Sonnet 5
No chevron/toggle appears on any Thinking... block, confirmed even after /config thinking=true and a full window reload.
Also tried the documented Ctrl+O shortcut to expand/collapse thinking blocks — it doesn't get intercepted by the extension at all; it falls through to VS Code's default "Open Folder" dialog instead. So the keybinding doesn't appear to be registered, not just the chevron missing.
Also tracked as a duplicate here: #73736 (macOS, native chat panel, extension 2.1.199). Still fully reproducing as of 2026-07-07, no chevron/toggle and no way to view thinking content in the panel UI. Bumping since this has been open since April with no maintainer response — this is a meaningful regression for anyone relying on reasoning visibility.