VS Code extension: diff tab auto-opens in addition to the in-chat click-to-view diff

Status Open
Maintainer reply None cached
Activity 3 comments · opened Aug 6, 2026

When Claude Code proposes a file edit in the VS Code extension, the diff appears twice:

  1. Automatically opens as a separate VS Code diff tab, unprompted.
  2. Also appears inline in the chat panel, where clicking it opens the same native diff on demand.

Only #2 is wanted — #1 is redundant and disruptive when working across multiple files/sessions. Requesting a setting to disable the automatic tab-open while keeping the in-chat click-to-open behavior.

Separately: Claude (the model) doesn't have reliable, current knowledge of the VS Code extension's own settings surface, so it can't reliably tell a user which setting controls this, or confirm whether one exists at all. Worth considering whether Claude Code could be given accurate, current self-knowledge of its own product surface (settings, feature availability) rather than relying on training-data-era familiarity.

View original on GitHub ↗

3 Comments

Himavanth-Perni · 1 month ago

Reproduced on the current native panel UI (v2.1.270/2.1.272), with a few details that make this worse in practice than the original report:

  1. This happens even when the session's permission mode is set to Edit automatically or Auto, not just Manual. Those modes apply edits "without asking," but the diff tab still opens regardless — only the blocking approval step is skipped, not the tab itself. #85077 looks like a plausible contributing root cause: if a tab's resolved permission mode can silently revert to undefined, an unrelated diff-tab-per-edit behavior would look identical to what's reported here even on a tab the user believes is in Edit automatically.
  1. This compounds badly with subagents and multiple concurrent chats. Subagents inherit the main session's permission mode per the docs, but their edits still open their own tabs. Running several chats across different repos at once means every one of them can pop tabs at the same time, with no way to tell which tab corresponds to which chat, repo, or file.
  1. A second-order effect: accidentally closing one of these tabs with Cmd+W appears to register as a rejection of the pending edit rather than just closing a window, silently failing that step of the agent's work.

+1 on the request: either render the diff inline in the chat panel only, or at minimum suppress the separate tab entirely whenever the edit doesn't require an approval prompt in the first place.

tofu76 · 25 days ago

+1 — hitting the same issue. In my case the diff sometimes opens as a fully separate editor tab (e.g. titled "[Claude Code] <filename>"), detached from the chat panel, while other times it stays inline next to the chat as expected. Same ask as above: either keep it inline-only, or add a setting to force inline display.

kevins-learners-permit · 15 days ago

+1 — hit this today during a bulk-cleanup session (30+ file edits in one turn). Each edit opens a new diff tab, resulting in a cascade of tabs that need dismissing. In-chat click-to-view is enough; the auto-open makes bulk work noisy.

Also confirming the observation about Claude not knowing its own extension settings — checked contributes.configuration.properties in the extension package.json (v2.1.140), no setting exposed that maps to this behavior. So the fix needs to happen upstream: either add the setting, or default the auto-open to false with an opt-in.

Workaround I ended up using for the rest of the session: switch file edits to shell heredocs (python3 << 'PYEOF' writing to files), which bypass the Write/Edit tools entirely and don't trigger the diff-tab open. Not ideal but works.