"Opened changes in VS Code" prints even when current process does not own the IDE websocket (multi-session scenarios)
Resolved 💬 2 comments Opened May 21, 2026 by BartCorremansM Closed Jun 20, 2026
Summary
When multiple Claude Code sessions run concurrently against the same VS Code instance, all sessions print "Opened changes in VS Code" after an edit, but only one session's diff actually opens — the one that won the WebSocket connection to the IDE extension. Other sessions print the message but nothing happens.
Repro
- Open VS Code with the Claude Code extension active.
- Start two or more
claudesessions in separate terminals against the same workspace. - From each session, propose an edit and accept it.
- Observe: all sessions display "Opened changes in VS Code", but the diff only appears for one of them.
Diagnosis from my environment
~/.claude/ide/57000.lockexists with the workspace + auth token (single shared lock).- VS Code Helper listens on
127.0.0.1:57000(single port). lsofshows only oneclaudePID has an established connection to that port:
````
Code Helper 57246 TCP 127.0.0.1:57000 (LISTEN)
Code Helper 57246 TCP 127.0.0.1:57000->127.0.0.1:62653 (ESTABLISHED)
claude 85242 TCP 127.0.0.1:62653->127.0.0.1:57000 (ESTABLISHED)
- Other concurrent
claudePIDs have zero connections to :57000, yet still print the "Opened changes in VS Code" message after edits.
Expected
Either:
- The message only prints when the current process actually holds the IDE socket, or
- The IDE extension supports concurrent client connections (preferred), or
- The message indicates which session/window the diff was sent to.
Environment
- claude-code 2.1.146 (also 2.1.144/2.1.145 present from older sessions)
- macOS Darwin 25.5.0
- VS Code with Claude Code extension
- Terminal: cmux (pre-warms
claudeprocesses via--bg-spare/--bg-pty-host, which likely amplifies the multi-session count, but the root cause is independent of cmux)
Workaround
Close other claude sessions so only one remains, then VS Code routes correctly.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗