[BUG] claude --chrome on macOS: native host launches and socket exists, but terminal claude never connects to bridge socket
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?
mcp__claude-in-chrome__tabs_context_mcp (and all other mcp__claude-in-chrome__* tools) always return "Browser extension is not connected. Please ensure the Claude browser extension is installed and running..." — even though every layer of the integration is verifiably alive.
Decisive evidence: lsof -p <terminal-claude-pid> shows no open socket and no connection attempt to the bridge socket, even with the --chrome flag and a healthy native host running. So the terminal claude --chrome process never even tries to attach to the bridge socket created by the native host.
This appears to be the same root cause as #41879 (stalled ~5 weeks with no engineer engagement). Filing fresh on the latest version with cleaner diagnostic data.
What Should Happen?
claude --chrome should connect to the running chrome-native-host bridge socket on startup, and mcp__claude-in-chrome__* tools should return real data (tab context, navigate, etc.) against the running Chrome instance.
Error Messages/Logs
$ # Native host is running and socket exists
$ pgrep -fl chrome-native-host
10544 .../claude.exe --chrome-native-host
$ ls /tmp/claude-mcp-browser-bridge-<user>/
10544.sock
$ lsof -p 10544 | grep sock
claude.ex 10544 <user> 4u unix ... /tmp/claude-mcp-browser-bridge-<user>/10544.sock
$ # But terminal claude (PID 9597, started with --chrome) never opens it
$ lsof -p 9597 | grep -E "sock |browser-bridge"
(no output)
$ # MCP tool result
mcp__claude-in-chrome__tabs_context_mcp
→ "Browser extension is not connected. Please ensure the Claude browser extension is installed and running (https://claude.ai/chrome), and that you are logged into claude.ai with the same account as Claude Code..."
$ # /chrome slash command produces no visible output
/chrome → (no content)
Steps to Reproduce
- Install Claude in Chrome extension (ID
fcoeoabgfenejglbffodgkkbkcdhcgfn); sign into claude.ai with the same account as Claude Code. - Verify native messaging host config at
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.jsonpoints to~/.claude/chrome/chrome-native-hostandallowed_originscontains the extension ID. - Start
claude --chromefrom terminal (also testedclaude --continue --chrome; same result). - Click the extension icon in Chrome →
pgrep -fl chrome-native-hostshows the spawned process;/tmp/claude-mcp-browser-bridge-<user>/<pid>.sockexists;lsofconfirms the native host has it open. - In the claude session, call any
mcp__claude-in-chrome__*tool → always returns "not connected". lsof -p <terminal-claude-pid>confirms terminal claude has not opened the socket.
Things tried that did not fix it:
- Reinstalling the Chrome extension
- Removing
~/.claude/chrome/and letting claude regenerate the host binary - Full Chrome quit + restart, multiple cycles
claude --chromewithout--continue- Disabling the orphan Claude Desktop host file
com.anthropic.claude_browser_extension.json(Claude Desktop is not installed on this machine)
Claude Model
Not sure / Multiple models
Is this a regression?
Not sure
Last Working Version
_No response_
Claude Code Version
2.1.133
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
fish (Ghostty terminal)
Additional Information
- Verified
emailAddressin~/.claude.jsonmatches the claude.ai account signed into the extension. - Native messaging host config:
``json``
{
"name": "com.anthropic.claude_code_browser_extension",
"description": "Claude Code Browser Extension Native Host",
"path": "/Users/<user>/.claude/chrome/chrome-native-host",
"type": "stdio",
"allowed_origins": [
"chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/"
]
}
- Chrome 147.0.7727.138 (stable), macOS Darwin 25.2.0 (arm64).
- Install method: volta (global npm package).
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗