Claude-in-Chrome native host rejected by Gatekeeper (syspolicyd security_exception -67062/-67002) — macOS only, works fine on Windows
Claude Code CLI 2.1.283 (macOS, Homebrew Cask install at /opt/homebrew/Caskroom/claude-code@latest/2.1.283/), Claude in Chrome extension 1.0.94. tabs_context_mcp / any mcp__claude-in-chrome__* call consistently returns "Browser extension is not connected". Same account works fine on Windows.
Ruled out:
- Wrong claude.ai account — confirmed same account (
auth statusmatches Chrome login) - Extension disabled — confirmed enabled, correct ID (
fcoeoabgfenejglbffodgkkbkcdhcgfn), service worker active, no console errors - VPN/proxy interference — none active
- Fresh/isolated Chrome profile — same result
- Conflicting Claude Desktop native-messaging manifest (
com.anthropic.claude_browser_extension.json) — disabled it + full Chrome restart, no change com.apple.quarantineon theclaudebinary — removed, no change- Homebrew Cask vs. native installer (
curl -fsSL https://claude.ai/install.sh) — installed native build side by side, repointed the wrapper script to it, no change
Root cause found via /usr/bin/log show, captured at the exact moment of a connection attempt:
syspolicyd[512:8526] [com.apple.securityd:security_exception] MacOS error: -67062
syspolicyd[512:8526] [com.apple.securityd:gk] temporarySigning type=1 matchFlags=0x0 path=/Users/zmojzes/.claude/chrome/chrome-native-host
syspolicyd[512:8526] [com.apple.securityd:security_exception] MacOS error: -67062
syspolicyd[512:8526] [com.apple.securityd:security_exception] MacOS error: -67002
~/.claude/chrome/chrome-native-host is an unsigned #!/bin/sh wrapper script (auto-generated, "do not edit manually") that execs the actual claude binary. Gatekeeper evaluates the wrapper script itself (not the binary it execs) and logs a security exception for it every time Chrome tries to launch it as a native messaging host — this looks like why it silently fails specifically on macOS, and would explain why the same setup works on Windows (no Gatekeeper equivalent there).
🤖 Generated with Claude Code
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗