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_origins include 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

  1. Verified extension installed in active Chrome profile
  2. Checked service worker console — completely empty
  3. Verified native messaging host configs and binary
  4. Manually tested native host process (works, creates socket)
  5. Killed stale native host process (PID 1902), removed socket, retried — new process spawns (PID 2495) but extension still doesn't connect
  6. Toggled extension off/on
  7. Restarted Chrome multiple times
  8. Tried claude --chrome flag
  9. Tried switch_browser MCP 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.

View original on GitHub ↗

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