Codex Desktop (macOS): Chronicle runs continuous background screen-recording summaries every 10 min, draining plan limits; disabling doesn't immediately stop capture

Open 💬 5 comments Opened Jun 30, 2026 by nathanjohnpayne

Component: Codex Desktop app (macOS) — Chronicle / SkyComputerUseService. This is a desktop-app behavior bug, not a model/API issue.

What happened

A Codex Desktop background feature — Chronicle — silently consumed a large share of my plan limits by recording my screen and generating summaries on a timer, with no action from me. In Codex Analytics this shows up as a large "Exec" surface (not "Desktop App"), which made it very hard to attribute — I do not run codex exec or any Codex CLI/CI/cron jobs.

After investigating locally, Chronicle is unambiguously the cause:

  • ~/.codex/memories/extensions/chronicle/resources/ contains 536 files, every one a *-10min-memory-summary.md.
  • Each summary is a ~4 KB vision-model narrative whose ## Citations section references screen-recording frame JPEGs under /var/folders/.../T/chronicle/screen_recording/1min/....
  • So the mechanism is: continuous 1-minute screen recording → a vision-model summary every 10 minutes, indefinitely, as a background "Exec" run.

Why this is a problem

  1. Unattributable usage. Background Chronicle runs are billed under "Exec," indistinguishable in Analytics from intentional CLI use. There is no per-feature breakdown showing "Chronicle consumed N tokens." <img width="1329" height="587" alt="Image" src="https://github.com/user-attachments/assets/e26189e4-1dec-48fb-9d55-c4a4fbd5baf8" />
  2. Volume scales with uptime, not work. Per-day summary counts on my machine:

| Date | Summaries |
|------|-----------|
| Jun 22 | 12 |
| Jun 23 | 108 |
| Jun 24 | 11 |
| Jun 25 | 1 |
| Jun 26 | 6 |
| Jun 27 | 121 |
| Jun 28 | 164 |
| Jun 29 | 113 |

These map directly onto the largest "Exec" spikes in my usage graph. On Jun 28 it ran in bursts (47 summaries in one hour, 45 the next) — well above the 6/hour a clean 10-minute cadence implies — suggesting backfill/catch-up that multiplies cost.

  1. It runs regardless of activity. Several summaries explicitly note "this window did not show coding work" yet still made a full vision-model call — i.e. it bills for idle/personal screen time.
  2. Privacy. Chronicle captures and summarizes all on-screen content (personal browsing, email, password-manager windows, etc.), not just the active project, and stores ~476 MB of screen frames locally in temp.
  3. Disabling chronicle in config did not stop screen capture immediately. After setting [features] chronicle = false in ~/.codex/config.toml (17:30:36 local), screen frames continued to be written for ~18 minutes (last frame 17:48:48) before capture stopped. The SkyComputerUseService helper process remained resident (idle) afterward. The lag plus the lingering process make it unclear to users whether the feature is actually off, and there is no in-app confirmation that capture has ceased. (Observed correlation; I have not isolated whether the config edit, a recording-chunk boundary, or app state is what ultimately stopped it.)

Environment

  • Codex Desktop (macOS), bundle com.openai.codex
  • Codex CLI present at /opt/homebrew/bin/codex (v0.137.0) — not the source; all 189 local sessions report originator: "Codex Desktop", zero CLI sessions
  • ~/.codex/config.toml:
  • model = "gpt-5.3-codex-spark"
  • model_reasoning_effort = "xhigh"
  • [features] chronicle, memories, multi_agent, hooks

Steps to reproduce

  1. Enable Chronicle in Codex Desktop and leave the app running.
  2. Use the machine normally (or leave it idle) for a few hours.
  3. Observe ~/.codex/memories/extensions/chronicle/resources/ filling with 10min-memory-summary files, each citing screen frames.
  4. Check Codex Analytics → "Exec" usage rises with no CLI/CI activity.

Expected behavior

  • Chronicle's token consumption should be visible and attributed (its own line in usage analytics, or a running token/credit counter in the UI).
  • It should be off by default, with an explicit, clearly-labeled opt-in that states it screen-records continuously and makes a model call every 10 minutes.
  • Setting chronicle = false (or toggling it off in the UI) should immediately stop screen capture and the SkyComputerUseService process — not just the summary loop.
  • It should not summarize windows with no project activity, and should respect a do-not-capture / pause control.

Requests

  1. Add per-feature usage attribution (especially Chronicle) to Codex Analytics.
  2. Make Chronicle opt-in with a clear cost/privacy disclosure.
  3. Ensure disabling Chronicle fully stops capture immediately, and document the exact off switch (incl. the macOS Screen Recording permission).
  4. Consider crediting back usage consumed by background Chronicle runs users did not knowingly enable.

I have local evidence (file listings, cadence histograms, a sample summary with frame citations) and can share redacted versions on request.

View original on GitHub ↗

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