[BUG] VSCode extension spawns 3 empty windows on every startup (Windows 11)

Resolved 💬 3 comments Opened Mar 5, 2026 by synergycodelabs Closed Mar 5, 2026

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?

Every time VSCode opens with the Claude Code extension (Anthropic.claude-code v2.1.69) enabled, 3 entirely empty VSCode windows spawn approximately 5-10 seconds after startup. This happens automatically from the extension's onStartupFinished activation — no CLI interaction required.

Environment:

  • OS: Windows 11 Pro 10.0.26200
  • VSCode: 1.96+
  • Extension: Anthropic.claude-code v2.1.69 (win32-x64)

Reproduction steps:

  1. Open VSCode normally (single window, any folder)
  2. Wait 5-10 seconds
  3. Three empty VSCode windows appear (no folder, no file — as if VSCode was launched 3 extra times)

Diagnostics performed:

  • Happens without ever running the claude CLI — pure extension activation triggers it
  • Verified via VSCode logs: extension activates at T+3-5s, empty windows appear at T+8-15s (2-3s apart)
  • Cleaned VSCode storage.json (removed ghost empty window entries) — did NOT fix it (windows are actively created, not restored)
  • Set "window.restoreWindows": "one" — did NOT fix it
  • Uninstalled and reinstalled the extension — did NOT fix it
  • Confirmed root cause: Running code --disable-extension Anthropic.claude-code completely eliminates the extra windows
  • The extension registers registerWebviewPanelSerializer("claudeVSCodePanel", ...) and activates on onStartupFinished and onWebviewPanel:claudeVSCodePanel — the webview panel serializer may be triggering window creation

What Should Happen?

Opening VSCode with the Claude Code extension enabled should NOT spawn any extra VSCode windows. Only the single window the user opened should be present.

Workaround: Launch VSCode with code --disable-extension Anthropic.claude-code to prevent the extra windows from spawning.

Error Messages/Logs

No error messages — the windows open silently.

VSCode Extension Host Log (Claude VSCode.log):
2026-03-04 22:11:53.034 [info] Claude code extension is now active?
2026-03-04 22:11:53.034 [info] MCP Server running on port 12768 (localhost only)

VSCode Main Log shows extension host processes exiting cleanly:
2026-03-04 22:16:02.844 [info] Extension host with pid 27924 exited with code: 0, signal: unknown.
2026-03-04 22:16:03.882 [info] Extension host with pid 30176 exited with code: 0, signal: unknown.
2026-03-04 22:16:04.845 [info] Extension host with pid 14152 exited with code: 0, signal: unknown.

Steps to Reproduce

  1. Install Claude Code VSCode extension (Anthropic.claude-code v2.1.69) on Windows 11
  2. Open VSCode normally (e.g., code . or via Start Menu)
  3. Wait 5-10 seconds after VSCode opens
  4. Observe 3 empty VSCode windows spawning (no folder, no file open)

Note: This happens on every VSCode startup. No need to run the claude CLI or interact with the extension at all — simply having it installed and enabled is enough.

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.69 (VSCode Extension: Anthropic.claude-code v2.1.69 win32-x64)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

  • Survives extension reinstall
  • Survives PC restart
  • Does NOT happen when the extension is disabled: code --disable-extension Anthropic.claude-code
  • The extension activates on onStartupFinished and onWebviewPanel:claudeVSCodePanel
  • The extension registers registerWebviewPanelSerializer("claudeVSCodePanel", ...) which may be involved in window creation
  • Each spawned window gets its own extension host process and MCP server instance
  • IDE lock files at ~/.claude/ide/*.lock show one lock per window (4 total: 1 real + 3 ghost)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗