Claude in Chrome: native host crashes on Windows — ERR_INVALID_ARG_TYPE binding named pipe (claude.exe 2.1.143 / Bun 1.3.14)
Summary
Every mcp__claude-in-chrome__* tool call fails with Browser extension is not connected. Root cause is that claude.exe --chrome-native-host crashes immediately on startup when Chrome's extension spawns it, before any handshake. The extension is wired correctly and installed in the active Chrome profile.
Environment
- Claude Code: 2.1.143
- Runtime: Bun v1.3.14 (Windows x64 baseline)
- OS: Windows 11 Home 10.0.26200
- Chrome: Stable, active profile = "Profile 2"
- Claude in Chrome extension:
fcoeoabgfenejglbffodgkkbkcdhcgfnversion 1.0.70_0 (installed in active profile)
Reproduction
- Have Claude in Chrome extension installed in the active Chrome profile.
- From a Claude Code session, call any
mcp__claude-in-chrome__*tool (e.g.tabs_context_mcp). - Receive:
Browser extension is not connected. Please ensure the Claude browser extension is installed and running ... - Run
claude.exe --chrome-native-hostdirectly from a terminal to observe the underlying crash.
Observed behavior
claude.exe --chrome-native-host exits immediately. Stderr (Windows username replaced with <user>):
[Claude Chrome Native Host] Initializing...
[Claude Chrome Native Host] Creating socket listener: \.\pipe\claude-mcp-browser-bridge-<user>
[Claude Chrome Native Host] Socket server error: 9106 | ... <large minified source dump> ...
TypeError: Failed to listen at \.\pipe\claude-mcp-browser-bridge-<user>
code: "ERR_INVALID_ARG_TYPE"
at listen (unknown:1:1)
at node:net:1339:30
at listenInCluster (node:net:1423:24)
at listen (node:net:1331:20)
at B:/~BUN/root/src/entrypoints/cli.js:9111:1166
at Promise (unknown:1:11)
at start (B:/~BUN/root/src/entrypoints/cli.js:9111:1139)
Bun v1.3.14 (Windows x64 baseline)
The pipe path \.\pipe\claude-mcp-browser-bridge-<username> looks well-formed, so this appears to be a Bun-on-Windows regression in how net.Server.listen() validates Windows named-pipe paths. Suggest checking the argument shape passed to listen() for the named-pipe code path, or pinning a Bun version where this works on Windows.
Wiring verified intact
To save triage time, the native messaging plumbing is confirmed correct:
- Registry key
HKCU\Software\Google\Chrome\NativeMessagingHosts\com.anthropic.claude_code_browser_extensionexists and points to a valid manifest path. - Manifest at
%APPDATA%\Claude Code\ChromeNativeHost\com.anthropic.claude_code_browser_extension.jsonexists, nameschrome-native-host.bat, and includes the extension's origin (fcoeoabgfenejglbffodgkkbkcdhcgfn) inallowed_origins. ~\.claude\chrome\chrome-native-host.batexists and shells out toclaude.exe --chrome-native-host.claude.exeruns fine for normal CLI use (claude --version→ 2.1.143).- Extension is installed in the active Chrome profile.
The failure is fully inside claude.exe --chrome-native-host, before any IPC.
Impact
Claude in Chrome is unusable on Windows in this version. There is no workaround from the user side — the native host binary itself crashes.
Suggested next step
Repro on a Windows machine with claude.exe --chrome-native-host from a shell. The crash is deterministic and instant; no Chrome needed to reproduce.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗