Claude in Chrome extension never initiates native messaging connection
Resolved 💬 3 comments Opened Mar 16, 2026 by Superdesk-app Closed Mar 20, 2026
Environment
- Claude Code version: 2.1.76
- Chrome extension version: 1.0.62
- OS: macOS Darwin 24.6.0
- Terminal: Ghostty (not VS Code)
- Chrome: Multiple profiles, extension installed in 3 profiles
- Claude desktop app: Not currently installed (was previously, same issue)
Problem
The Chrome extension's service worker is completely silent — it never initiates a native messaging connection to Claude Code. The tabs_context_mcp tool always returns "Browser extension is not connected."
What works
- Native messaging host configs are correctly installed at:
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json- Both point to
~/.claude/chrome/chrome-native-host(exists, executable) - The native host script correctly references the Claude Code binary at
~/.local/share/claude/versions/2.1.76 - Running the native host manually works — it creates a socket at
/tmp/claude-mcp-browser-bridge-{user}/{pid}.sock - The
allowed_originsinclude the correct extension ID (fcoeoabgfenejglbffodgkkbkcdhcgfn) - Extension is enabled in Chrome, service worker is active
- Logged into claude.ai in the same Chrome profile
What doesn't work
- The extension's service worker DevTools console shows zero messages — no errors, no logs, nothing
- The extension never attempts to connect to the native messaging host
- Toggling the extension off/on doesn't trigger a connection
- Restarting Chrome doesn't help
- Killing stale native host processes and cleaning up sockets doesn't help
- Clicking the extension icon doesn't help
- Previously had Claude desktop app installed — same issue
Debugging steps tried
- Verified extension installed in active Chrome profile
- Checked service worker console — completely empty
- Verified native messaging host configs and binary
- Manually tested native host process (works, creates socket)
- Killed stale native host process (PID 1902), removed socket, retried — new process spawns (PID 2495) but extension still doesn't connect
- Toggled extension off/on
- Restarted Chrome multiple times
- Tried
claude --chromeflag - Tried
switch_browserMCP tool
Expected behavior
Extension service worker should initiate a chrome.runtime.connectNative() call to com.anthropic.claude_code_browser_extension on load, establishing the bridge between Chrome and Claude Code.
Actual behavior
Extension loads but sits completely idle. No native messaging connection is attempted.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗