Claude-in-Chrome: macOS screen recording indicator stays on with multiple sessions
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
- Open multiple terminal tabs
- Run
claude --chromein each (e.g., 3-6 sessions) - Use browser automation tools in any session
- Observe: macOS red recording dot appears and never goes away
- Killing Chrome's
VideoCaptureServiceprocess 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.startScreencastwhen 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 --chromesessions
🤖 Generated with Claude Code
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗