`claude --chrome` CLI never connects to healthy native host socket (browser extension stays disconnected)

Resolved 💬 3 comments Opened Apr 17, 2026 by wowkaw Closed Apr 18, 2026

Summary

On macOS, claude --chrome CLI fails to connect to the /tmp/claude-mcp-browser-bridge-$USER/{pid}.sock even when a healthy native host is listening. Result: mcp__claude-in-chrome__* tools always return Browser extension is not connected.

The root cause is CLI-side, not Chrome-side. Restarting claude --chrome, toggling the extension, reloading Chrome, and clearing stale sockets do not help.

Environment

  • Claude Code: 2.1.113 (also reproduced on 2.1.112)
  • macOS Darwin 23.6.0
  • Chrome extension: com.anthropic.claude_browser_extension manifest present and valid

Reproduction

  1. Run claude --chrome
  2. Open Chrome; extension is installed and enabled
  3. In the CLI session, call any mcp__claude-in-chrome__* tool

Result: Browser extension is not connected.

Diagnostic evidence

Native host is healthy and listening:

$ pgrep -fl chrome-native-host
34267 /Users/.../.local/share/claude/versions/2.1.113 --chrome-native-host

$ ls -la /tmp/claude-mcp-browser-bridge-$USER/
srw-------  1 user  wheel  0  34267.sock

$ lsof -p 34267 | grep sock
2.1.113  34267  user  4u  unix  ...  /tmp/claude-mcp-browser-bridge-$USER/34267.sock

$ echo ping | nc -U -w 1 /tmp/claude-mcp-browser-bridge-$USER/34267.sock
(connects cleanly — socket is alive)

CLI never opens a connection to the bridge socket:

$ lsof -U -p <claude --chrome PID> | grep bridge
(empty — CLI has NO socket to bridge directory)

Tested with two separately-launched claude --chrome processes:

  • PID A started before native host socket existed → did not connect (retry/scan never happened)
  • PID B started after socket was already live → still did not connect

Neither CLI ever issued a connect() to the bridge socket, verified by lsof.

Expected

claude --chrome should either (a) scan /tmp/claude-mcp-browser-bridge-$USER/ for existing *.sock files on startup, or (b) periodically retry connecting after the extension spawns a native host.

Actual

CLI never attempts the connection, leaving the bridge permanently unusable within the session.

Workaround

Use Playwright MCP instead of claude --chrome.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗