Claude Code CLI never connects to its own bridge socket after Chrome extension reconnect (macOS, v2.1.119)
Summary
After cleanly setting up Claude in Chrome on macOS, the chrome-native-host helper
spawns correctly and listens on a bridge socket, but no Claude Code CLI session
ever connects to that socket as an MCP client. Every chrome MCP tool call
returns `No Chrome extension connected`.
Environment
- macOS Darwin 24.5.0
- Claude Code v2.1.119 (build 2026-04-23, git 6f68554)
- Chrome with the official Claude extension `
fcoeoabgfenejglbffodgkkbkcdhcgfn`
Verified state (everything looks correct)
- Manifest: `
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json` present, allowed_origin matches the extension ID - Wrapper: `
~/.claude/chrome/chrome-native-hostexec'sclaude --chrome-native-host` - Helper: `
claude --chrome-native-host(parent = Google Chrome) running, FD0/FD1 are pipes to Chrome, FD4 is the listening unix socket at/tmp/claude-mcp-browser-bridge-\$USER/\$PID.sock` - `
~/.claude.json:cachedChromeExtensionInstalled=true,claudeInChromeDefaultEnabled=true,hasCompletedClaudeInChromeOnboarding=true` - `
/chrome` UI shows the integration enabled by default; pressing "Reconnect extension" respawns the helper cleanly
Symptom
- `
lsofon every runningclaudeCLI process: no FD opened against/tmp/claude-mcp-browser-bridge-\$USER/*.sock` - Helper log never reaches `
Accepted new MCP connection` for the current PID - All `
mcp__claude-in-chrome__*tool calls fail withNo Chrome extension connected`
What I tried (none worked)
- Restarting the CLI session entirely (fresh `
claude` process) - `
/chrome` → "Reconnect extension" multiple times - `
kill` on stale helper, removing orphan sockets, full removal of bridge dir - Removing/regenerating manifest + wrapper via `
/chrome` - Toggling extension off/on in `
chrome://extensions`
Background context that may matter
On systems where the Claude desktop app is also installed, two native-messaging
manifests share the same `allowed_origins (fcoeoabgfenejglbffodgkkbkcdhcgfn`):
- `
com.anthropic.claude_browser_extension(desktop,/Applications/Claude.app/Contents/Helpers/chrome-native-host`) - `
com.anthropic.claude_code_browser_extension(CLI,~/.claude/chrome/chrome-native-host`)
The extension always picks the desktop host name when both manifests are present.
Even after uninstalling the desktop app and removing the desktop manifest, the
CLI side does not auto-pair: the helper spawns and listens, but the CLI process
never opens a client connection to the bridge socket.
Expected behavior
After `/chrome → "Reconnect extension", any active Claude Code CLI session
should establish an MCP client connection to the freshly-spawned helper's bridge
socket, so that mcp__claude-in-chrome__*` tools work.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗