Claude-in-Chrome: macOS screen recording indicator stays on with multiple sessions

Resolved 💬 2 comments Opened Apr 1, 2026 by moreshop07 Closed May 7, 2026

Bug Description

When running multiple claude --chrome sessions simultaneously, the macOS screen recording indicator (red dot in menu bar) stays on permanently and cannot be dismissed even after killing the VideoCaptureService process — it respawns immediately.

Root Cause

In mcpPermissions-zxU6uxCu.js (extension v1.0.64), the extension uses chrome.debugger.attach + Page.startScreencast on active tabs. There is a 20-second detach delay (zt = 2e4), but when multiple Claude Code sessions are connected via --chrome, the debugger gets continuously re-attached before the detach timer fires, so detachDebugger() never actually runs.

Relevant code pattern:

// Attach + start screencast on every operation
await this.sendCommand(e, "Page.startScreencast", {
  format: "jpeg", quality: 10, maxWidth: 100, maxHeight: 100, everyNthFrame: 30
})

// Detach has 20s delay, but re-attach from another session cancels it
const zt = 2e4; // 20 seconds

Steps to Reproduce

  1. Open multiple terminal tabs
  2. Run claude --chrome in each (e.g., 3-6 sessions)
  3. Use browser automation tools in any session
  4. Observe: macOS red recording dot appears and never goes away
  5. Killing Chrome's VideoCaptureService process doesn't help — it respawns immediately

Expected Behavior

  • The recording indicator should disappear when no browser automation tool is actively running
  • Multiple sessions should coordinate debugger attach/detach properly
  • Ideally, avoid Page.startScreencast when not needed (it triggers macOS recording indicator)

Comparison

Other Chrome automation tools (e.g., Typeless) do not trigger the macOS recording indicator, suggesting alternative approaches exist.

Environment

  • macOS 15.6.1 (Sequoia)
  • Chrome 146.0.7680.165
  • Claude Code 2.1.89
  • Claude-in-Chrome extension v1.0.64
  • 6 concurrent claude --chrome sessions

🤖 Generated with Claude Code

View original on GitHub ↗

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