[Bug] Chrome Extension (claude-in-chrome) broken on Windows since v2.1.20 - Named Pipe path missing in getSocketPaths

Status Fixed / completed
Reported on v2.1.20
Maintainer reply None cached
Activity 4 comments · opened Feb 2, 2026 · closed Feb 4, 2026

Title: [Bug] Chrome Extension (claude-in-chrome) broken on Windows since v2.1.20 - Named Pipe path missing in getSocketPaths

---

Describe the bug

Since v2.1.20, the Chrome Extension MCP (claude-in-chrome) no longer connects on Windows. The extension sidebar shows "Waiting for Claude Code..." indefinitely. All browser automation tools (tabs_context_mcp, navigate, read_page, etc.) fail.

To reproduce

  1. Install Claude Code 2.1.20+ on Windows
  2. Install the Chrome Extension "Claude in Chrome"
  3. Run claude --chrome
  4. Try tabs_context_mcp → fails, extension never connects

Root cause found

The function xQ4() (getSocketPaths) in cli.js returns socket paths for the MCP Socket Pool to search. On Windows, it only returns Unix-style paths:

  • C:\Users\<user>\AppData\Local\Temp\claude-mcp-browser-bridge-<username>
  • /tmp/claude-mcp-browser-bridge-<username>

But the native host (Rj6()) creates a Windows Named Pipe at:

  • \\.\pipe\claude-mcp-browser-bridge-<username>

The Named Pipe path is never added to the search list, so the Socket Pool can never find it.

Why it worked in v2.1.19: socketPath was resolved directly (via _Z6(context)), not through the Socket Pool. The migration to the Socket Pool (gKq via QKq) broke Windows.

Fix

Add the Windows Named Pipe path to xQ4():

// Add before "return A" in xQ4():
if(TNY()==="win32"){let w=`\\\\.\\pipe\\${K}`;if(!A.includes(w))A.push(w)}

TNY() is the already-available minified os.platform(). This adds \\.\pipe\claude-mcp-browser-bridge-<username> to the socket search list on Windows only.

Full patch details in this gist: https://gist.github.com/alex2zimmermann-ux/c4532b4f8b94640c6cde81c7f7552d8e

Expected behavior

Chrome Extension should connect and browser automation tools should work on Windows.

Environment

  • OS: Windows 10/11
  • Claude Code version: 2.1.20+ (broken), 2.1.19 (worked)
  • Shell: Git Bash / PowerShell
  • Chrome Extension: Claude in Chrome (latest)

Additional context

The fix is minimal (one line) and only affects Windows. Unix/macOS paths remain unchanged. Verified working after applying the patch.

View original on GitHub ↗

4 Comments

github-actions[bot] · 8 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/21337
  2. https://github.com/anthropics/claude-code/issues/21420
  3. https://github.com/anthropics/claude-code/issues/22413

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

alex2zimmermann-ux · 8 months ago

Closing as duplicate of #21337. Fix and workaround posted there.

alex2zimmermann-ux · 8 months ago

Update: Original Named Pipe fix is in v2.1.38, but new issue found

The getSocketPaths() fix described in this issue has been merged into v2.1.38. The function now correctly returns the Windows Named Pipe path with an early return on win32.

But Chrome is still broken on v2.1.38 due to a new issue: the tengu_copper_bridge feature flag (set server-side via GrowthBook) forces the bridge to use a cloud WebSocket (wss://bridge.claudeusercontent.com) instead of the local Named Pipe. The cloud bridge fails on Windows, bypassing the perfectly working local pipe.

Workaround: Set "tengu_copper_bridge": false in ~/.claude.json and restart. Full details in my comment on #21337.

github-actions[bot] · 7 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.