Context Panel is a native macOS app and WidgetKit extension for seeing AI usage limits across providers at a glance, with read-only iPhone, iPad, Vision Pro, Apple Watch, and Apple TV companions. It supports OpenAI, Anthropic, and Google.
The product goal is a small, native Mac utility that can answer the everyday question before you prompt: which accounts and models are still available, which limits are close, and when each allowance resets.
See the Director's overall DIRECTION.md and AGENTS.md for direction and repository guidance, and the release procedure for release operations.
- Native macOS first, with WidgetKit as the primary glanceable surface.
- The Mac app for account setup, provider connection health, and deeper usage detail.
- Multiple logins per provider, because friends, work accounts, personal accounts, and team accounts all need to coexist.
- Provider-neutral usage state for OpenAI, Anthropic, and Google.
- Local-first handling of account credentials and usage snapshots.
- Beautiful compact charts and state widgets that emphasize remaining capacity, reset time, and trend instead of billing-dashboard noise.
- Small enough to share with friends without setup becoming a project.
The accepted Horizon design makes the account the unit on every surface. Account rows show remaining capacity, observed burn, when an account runs out, and how much it has to spare at its reset.
Clicking the widget should open the native app. The app is the place for account setup, provider-specific status, refresh history, raw limit details, charts over time, and troubleshooting when a provider changes behavior.
swift build
swift test --filter '{test_filter}'Test rules and test lanes explain
focused local selection and the complete CI sequence in .github/github.json.
Useful entry points:
ContextPanel.xcodeproj is generated from project.yml and is not committed.
Change targets, settings, and schemes in project.yml, then follow the canonical
local native build instructions.
Runtime checks and signed-build protections are maintained in Validation, and the release route in the release procedure.
The package retains development-only probes that never print secrets and the read-only saved-account snapshot command:
swift run CodexRateLimitProbe --auth ~/.codex/auth.json
swift run CodexRateLimitProbe --auth "/path/to/account-home/auth.json"
swift run SnapshotStoreProbe --codex-auth "/path/to/account-home/auth.json"
swift run ContextPanelAccountSnapshotSnapshotStoreProbe writes and reloads a snapshot in the app/widget cache format
in a temporary directory by default (--output selects another directory).
The canonical contracts, installed-app snapshot route, Google Antigravity connector setup, and current provider behavior are maintained in Provider Usage Access. The historical OpenAI visible-limit probe design and redaction boundaries are documented in Local Limit Probe Design. Shell probes do not prove signed-runtime behavior.