Usage widgets for Übersicht on macOS. Keep an eye on Claude Code, GitHub Copilot CLI, and Codex without leaving your desktop.
- Claude Code — 24-hour activity, active block, plan quota, context use, and an optional status pet.
- GitHub Copilot CLI — today and month activity, AI units, and a monthly budget indicator.
- Codex — token activity, current context, subscription quota windows, and an API-rate-equivalent token estimate.
- Antigravity CLI — 24h prompt activity bars, model in use, session stats, and last prompt preview.
- macOS and Übersicht.
- Node.js and npm for the Claude Code and Codex widgets.
- The CLI and local session data for each widget you install:
- Claude Code, signed in, for
claude. - GitHub Copilot CLI, with
~/.copilot/session-store.db, forcopilot. macOSsqlite3is used to read it. - Codex CLI, signed in, for
codex. A Codex version withapp-serversupport provides the live quota windows; session logs remain the fallback. - Antigravity CLI (
agy), signed in, foragy. Reads~/.gemini/antigravity-clilocal data only.
- Claude Code, signed in, for
Clone the repository, then run the installer from its root:
git clone https://github.com/TonPC64/ai-desktop-widgets.git
cd ai-desktop-widgets
bash scripts/install.sh --widgets allThe installer copies selected widgets to ~/Library/Application Support/Übersicht/widgets and their runtime files to ~/.local/share/ai-desktop-widgets. Start Übersicht and enable the widgets from its menu if they are not already visible.
The native AI Widgets app is an alternative to Übersicht. It has no Dock icon or menu bar, reads the same local Copilot data, and is available in Small, Medium, and Large WidgetKit sizes. Medium and Large show a full color-matched model legend; clicking the monthly usage percentage toggles an estimated AIU value. It is not a GitHub billing total.
It requires full Xcode and macOS 15 or later:
bash native/ai-widgets/scripts/install-local-widget.shThen add Copilot Status from the macOS Widget Gallery. The installer starts a local background helper that runs the existing read-only collector once per minute. It does not install or modify Codex hooks.
Install one widget, a comma-separated selection, or everything:
bash scripts/install.sh --widgets claude
bash scripts/install.sh --widgets copilot
bash scripts/install.sh --widgets codex
bash scripts/install.sh --widgets agy
bash scripts/install.sh --widgets allRun additional commands to install more widgets; existing widgets and runtime files are preserved. --widgets claude,copilot,agy is also supported.
The collectors run locally and read only the local data needed to create aggregate usage displays. They do not upload session logs, prompts, or responses.
- Claude reads local
~/.claudesession data. To show plan quota, it also calls Anthropic's authenticated OAuth usage endpoint using your existing Claude credentials. - Copilot reads
~/.copilot/session-store.dblocally and opens it read-only. IfCOPILOT_BUDGET_ORGis set, it optionally asks GitHub's budget API for that organization;COPILOT_MONTHLY_AIU_LIMITavoids that lookup. - Codex reads bounded local
~/.codexsession-log tails and invokes the localcodex app-server --stdiofor quota when available. It does not copy prompt or response content.
Caches are stored locally under ~/.cache to avoid frequent reads and quota requests.
The Codex widget gets quota windows from the local Codex app server when the installed CLI supports it. If that is unavailable, it can still show token activity from local session logs, but quota windows may be absent or stale.
Its dollar figure is an API-rate-equivalent estimate calculated from logged token counts and the listed model rates. It is not a Codex subscription charge, invoice, or guarantee: subscription allowances, included usage, discounts, model mappings, and actual billing can differ. Unknown models are left unpriced.
- No widget appears: confirm Übersicht is running, then re-run the relevant
--widgetscommand. - Empty data: use the corresponding CLI once and verify its local data exists; the widget returns an empty state when it cannot find it.
- Claude/Codex says Node is unavailable: install Node.js and make it available to desktop applications, then reinstall that widget.
- Codex quota is missing: update/sign in to Codex CLI and confirm
codex app-serveris available; token activity can still work without it. - Copilot budget is wrong: set
COPILOT_MONTHLY_AIU_LIMITto your monthly limit. For an organization lookup, setCOPILOT_BUDGET_ORGand authenticateghwith the required billing permission.
Run the uninstaller from the repository root:
bash scripts/uninstall.shIt removes this project's widget directories, runtime files, LaunchAgent, and Claude hooks. Unrelated Claude hooks in ~/.claude/settings.json and unrelated Übersicht widgets are preserved.
This project is inspired by korrio/claude-status-touch-bar — a Touch Bar + SwiftBar + Übersicht widget that shows live Claude Code usage on MacBook Pro Touch Bars. The widget layout (5H / 7D quota bars, 24-hour activity chart, tamaclaude desk pet, and per-model color coding) originates from that project.
After cloning this repo, run the installer as noted in the Install section. No Xcode build or Touch Bar hardware is needed — this fork targets the Übersicht desktop widget only.
Built with Übersicht, ccusage, Claude Code, GitHub Copilot CLI, and Codex CLI. Inspired by korrio/claude-status-touch-bar (MIT, © korrio). Released under the MIT License.