Claude in Chrome extension causes constant 65% CPU usage (service worker loop)

Resolved 💬 2 comments Opened Mar 22, 2026 by LimpmeBR Closed Apr 20, 2026

Bug Report

Extension: Claude in Chrome (Beta) v1.0.63
Chrome: 146.0.7680.81 (arm64)
OS: macOS Darwin 25.3.0 (Apple Silicon)

Problem

The Claude in Chrome extension's service worker (service-worker.ts-Cx-yMGFD.js) consumes ~65% CPU constantly, even when not actively being used. The --extension-process renderer process stays at 65% CPU indefinitely. This drains MacBook battery from 10+ hours to ~3 hours.

Reproduction

  1. Install Claude in Chrome extension v1.0.63
  2. Open Chrome with any tabs (doesn't need to be claude.ai)
  3. Monitor CPU: ps axo pid,pcpu,comm -r | head 5
  4. Observe the Google Chrome Helper (Renderer) process with --extension-process flag at 65% CPU
  5. Killing the process causes it to respawn at 65% immediately
  6. Disabling the Claude extension drops CPU to 0% instantly
  7. Re-enabling the extension immediately brings CPU back to 65%

Evidence

  • Confirmed by process elimination: disabled all other extensions one by one — only Claude causes the spike
  • The extension has <all_urls> host permissions and content scripts (accessibility-tree.js, agent-visual-indicator.js) that run on every tab
  • Service worker permissions include debugger, nativeMessaging, scripting — any of these could cause the loop
  • Having multiple Claude Code CLI sessions running (via nativeMessaging) may worsen the issue but is not the root cause — CPU stays at 65% even with a single session

Impact

  • Battery drain: MacBook Pro goes from 10h → ~3h battery life
  • Thermal: MacBook gets hot even with lid closed
  • The extension also triggers PreventUserIdleSystemSleep assertions (possibly related to debugger API)

Expected Behavior

Service worker should be idle when not actively performing browser automation tasks.

Workaround

None that preserves functionality. Disabling the extension resolves CPU usage but removes all Claude in Chrome features.

View original on GitHub ↗

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