Codexex app logo Codexex

Codexex.
Codex and Spark quota on Mac, iPhone, and iPad.

Codexex tracks Codex and Spark quota across Apple devices: 5-hour and weekly windows, reset timing, 30-day history, local session burn, and weekly pace forecast.

macOS & iOS Menu bar first iOS companion Session analytics

Capabilities

Quick checks first. Useful depth when you open it.

The menu bar stays small. The popup shows Codex and Spark quota side by side. Session analytics help you understand where time actually goes.

Codex and Spark quota

See 5-hour and weekly Codex usage plus Spark quota in the menu bar, each with independent reset timing.

Session-burn analytics

Local Codex session logs explain project, model, session, cache-read, tool-loop, and model-overkill burn.

30-day history and forecast

Review usage trends in a chart with weekly pace markers and a forecast line.

iOS companion

Same quota, history, and forecast views on iPhone and iPad, with quota reads happening on-device.

ChatGPT device-code sign-in

Sign in through the supported device-code flow in Safari instead of relying on browser scraping or unsupported shortcuts.

Settings controls

Tune refresh cadence, launch at login, menu bar meters, reset display, Spark visibility, history charts, and forecast confidence.

Privacy

Menu bar outside. Local state inside.

In the app, history, preview data, settings, tokens, and usage samples stay on your device. ChatGPT sign-in uses device-code auth; macOS uses a bundled helper behind XPC.

LocalHistory store

SafariDevice-code sign-in

PreviewBuilt-in sample mode

Architecture

SwiftUI and AppKit outside. Rust helper behind XPC.

The menu bar UI is native macOS. Local history analytics stay on device. A bundled Rust helper handles device-code auth and quota reads through an XPC bridge.

Swift

macOS shell

SwiftUI and AppKit drive the status item, compact popup, onboarding flow, and settings window that keep the app fast to check.

Local history

Quota memory

Recent usage, preview data, and popup preferences stay local so the app remains useful even when you are not reloading remote numbers.

XPC bridge

Helper boundary

The app talks to a bundled helper through XPC so auth and quota reads stay outside the UI process.

Rust helper

Auth and quota reads

The bundled Rust helper handles ChatGPT device-code auth and quota fetches, then returns structured snapshot data to the app.