Skip to content

CodexBar Web Content spikes CPU and respawns after quitting menu bar UI #1217

@petrinigiuseppe

Description

@petrinigiuseppe

Title: CodexBar Web Content spikes CPU and respawns after quitting menu bar UI

Summary

CodexBar 0.31.0 / build 73 can spawn a WebKit process named CodexBar Web Content that consumes very high CPU and memory. In one observed run the process reached over 150% CPU and about 1.3 GB RSS. After the original process calmed down, another CodexBar Web Content process spawned and continued consuming CPU.

This caused noticeable heat and performance load on an Apple Silicon Mac even though the main CodexBar menu bar process itself was only using low single-digit CPU.

Environment

  • App: CodexBar
  • Version: 0.31.0
  • Build: 73
  • Commit: 56261df4
  • Build timestamp: 2026-05-28T22:05:05Z
  • Bundle ID: com.steipete.codexbar
  • macOS: Version 26.4, build 25E246
  • Hardware: Apple Silicon / M2 Pro
  • Sparkle auto-update enabled
  • Refresh frequency preference: oneMinute
  • Launch at login: enabled

Evidence

Example process snapshot:

PID    CPU     MEM/RSS       PROCESS
87613  156.8%  ~1.3 GB RSS   CodexBar Web Content / com.apple.WebKit.WebContent
59827  3.3%    ~84 MB RSS    /Applications/CodexBar.app/Contents/MacOS/CodexBar

LaunchServices identified the hot WebKit process as:

CodexBar Web Content
bundleID="com.apple.WebKit.WebContent"
parentASN="CodexBar Networking"

After the first hot WebKit process dropped, another WebKit content process appeared:

88118  35.4%  ~630 MB RSS  /System/Library/Frameworks/WebKit.framework/.../com.apple.WebKit.WebContent

The high CPU stopped after quitting/killing CodexBar and its WebKit content processes.

Related Context

This machine also previously had a long-running git clone zombie under a Claude/plugin cache workflow that appeared to have been triggered indirectly around CodexBar/Claude usage probing. I cannot prove causality, but it suggests CodexBar may be triggering provider/plugin/background refresh paths that can become expensive or stuck.

Expected Behavior

CodexBar should not keep a WebKit content process spinning at high CPU while running passively in the menu bar. Background provider refresh should be bounded, cancellable, and observable.

Actual Behavior

CodexBar Web Content spawned under CodexBar Networking, consumed very high CPU and memory, and contributed to heat/performance load. Quitting CodexBar stopped the spike.

Suggested Diagnostics / Fixes

  • Add logging around WebKit usage/provider refresh tasks so the active provider or URL/action can be identified.
  • Add a timeout/cancellation boundary for WebKit-driven refresh/probing.
  • Consider exposing a low-power mode or disabling WebKit refresh when the menu is closed.
  • Consider reducing default refresh frequency or backing off if WebKit CPU remains high.
  • Consider separating Claude/Codex provider probes from menu rendering so a stuck provider cannot spin a WebKit content process indefinitely.

Workaround

Quit CodexBar when heat appears, or disable launch-at-login until the WebKit refresh path is bounded.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions