Codex and Claude, side by side
Account-level limits for OpenAI Codex and Claude Code in one panel. Hide either provider and UReport stops collecting, polling, and alerting for it entirely.
Menu bar // macOS
UReport reads your OpenAI Codex and Claude Code plan limits and keeps them in your menu bar — how much of the window you have spent, and when it resets. It runs entirely on your Mac.
macOS 14 or newer · Apple Silicon · Free
Account-level limits for OpenAI Codex and Claude Code in one panel. Hide either provider and UReport stops collecting, polling, and alerting for it entirely.
Claude's five-hour and seven-day limits with reset countdowns. Model-specific windows are parsed forward-compatibly, so new ones appear as Anthropic adds them.
Snapshots stay on your Mac. UReport reuses your provider CLI's existing authentication and never reads or stores access tokens, prompts, or transcripts.
Every snapshot is archived on disk for 90 days and charted in the dashboard, so you can see the shape of a week before it runs out on you.
Choose the percentage that counts as high and get one notification when a limit crosses it — once per window, not once per refresh.
Small and medium widgets for the desktop and Notification Center, launch at login, an optional Dock icon, and a rebindable global shortcut on ⌃⌥⌘U.
The panel
REPRESENTATIVE_PREVIEW // FIGURES ARE ILLUSTRATIVE
How it works
Codex limits come from the Codex app-server adapter — the copy bundled with ChatGPT first, then Conductor, then a standalone CLI. Claude limits come from Claude Code's documented status-line payload, through a reversible integration that backs up and restores whatever status-line command you already had.
If that payload goes stale past five minutes, UReport opens Claude's own /usage screen in a hidden pseudo-terminal, reads only the labelled plan-limit blocks, and closes it again. That catches usage through Conductor and other non-terminal clients, and the result is marked FALLBACK in the UI.
Limits land in the menu-bar panel, the dashboard, and native widgets, with a notification when one crosses your threshold. Every snapshot is archived locally for ninety days.
Privacy
UReport reuses the authentication your provider CLI already holds. It does not read or store access tokens, and it never touches the content of a conversation.
There is no UReport account and no UReport server. Usage snapshots are written to disk on your Mac and read back by the app — that is the whole data path.
Connecting Claude backs up your existing status-line command before replacing it, and restores it when you disconnect. Hiding a provider stops collection for it outright.
Updates are EdDSA-signed and delivered through Sparkle. UReport asks before installing one; nothing lands silently.
Install
Unzip, drag UReport to Applications, and connect whichever of Codex or Claude Code you already use. It picks up their existing sign-in.