Tiny macOS 14+ menu bar app that keeps AI coding-provider limits visible and shows when each window resets. Codex, OpenAI, Claude, Cursor, Gemini, Copilot, Grok, GroqCloud, ElevenLabs, Deepgram, z.ai, MiniMax, Kiro, Vertex AI, Augment, OpenRouter, LiteLLM, LLM Proxy, Codebuff, Command Code, AWS Bedrock, and many newer coding providers. One status item per provider, or Merge Icons mode with a provider switcher. No Dock icon, minimal UI, dynamic bar icons.
Why
Plan around resets. Per-provider session, weekly, and monthly windows with countdowns to the next reset — stop guessing whether to start that long task.
Credits, spend, and cost scans. Credit balances, Admin API spend dashboards, provider billing summaries, and local cost scans where the source exposes enough detail.
Live status. Provider status polling surfaces incident badges in the menu and an indicator overlay on the bar icon.
Privacy-first. Reuses existing provider sessions — OAuth, device flow, API keys, browser cookies, local files — so no passwords are stored.
Open Settings → Providers and enable what you use.
Install/sign in to the provider sources you rely on: CLIs, browser sessions, OAuth/device flow, API keys, local app files, or provider apps depending on the provider.
Optional: Settings → Providers → Codex → OpenAI cookies (Automatic or Manual) to add dashboard extras.
Set API keys from the CLI
Provider toggles and API keys live in ~/.codexbar/config.json. You can script the same provider list that Settings → Providers uses:
set-api-key trims the piped value, stores it with restrictive config-file permissions, and enables the provider by default. Use --no-enable to only save the key, or --api-key <key> for one-off local scripts where shell history is not a concern.
See CLI configuration for the full flow.
Providers
Codex — OAuth API or local Codex CLI, plus optional OpenAI web dashboard extras.
OpenAI — Admin API key usage/cost graphs with legacy credit-balance fallback.
Claude — OAuth API, browser cookies, or CLI PTY fallback; session and weekly usage where available.
Cursor — Browser session cookies for plan + usage + billing resets.
OpenCode — Browser cookies for workspace subscription usage.
OpenCode Go — Browser cookies for Go usage windows.
Bundled CLI (codexbar) for scripts and CI (including codexbar cost --provider codex, claude, or both for local cost usage); macOS and Linux CLI builds available.
WidgetKit widgets for supported providers.
Localized app and website with a shared 21-language catalog, automatic website detection, persistent pickers, and RTL support.
Optional session quota notifications and weekly-reset confetti.
Privacy-first: on-device parsing by default; browser cookies are opt-in and reused (no passwords stored).
Privacy note
Wondering if CodexBar scans your disk? It doesn’t crawl your filesystem; it reads a small set of known locations (browser cookies/local storage, provider config files, local JSONL logs) when the related features are enabled. Provider tokens and token-account settings live in ~/.codexbar/config.json with restrictive file permissions. See the discussion and audit notes in issue #12.
macOS permissions (why they’re needed)
Full Disk Access (optional): only required to read Safari cookies/local storage for web-based providers. If you don’t grant it, use another supported browser, manual cookies/API keys, OAuth, or CLI/local sources where that provider supports them.
Keychain access (prompted by macOS):
Chromium cookie import needs the browser “Safe Storage” key to decrypt cookies.
Claude OAuth bootstrap may read the Claude CLI Keychain item when CodexBar has no usable cached credentials.
CodexBar may use Keychain for browser cookie decryption, cached cookie headers, and OAuth/device-flow credentials where those sources require it.
How do I prevent those keychain alerts?
Open Keychain Access.app → login keychain → search the prompted item (for Claude OAuth, usually “Claude Code-credentials”).
Open the item → Access Control → add CodexBar.app under “Always allow access by these applications”.
Prefer adding just CodexBar (avoid “Allow all applications” unless you want it wide open).
Open the item → Access Control → add CodexBar.app under “Always allow access by these applications”.
This removes the prompt when CodexBar decrypts cookies for that browser.
Last resort — stop all Keychain reads entirely: if "Always Allow" doesn't stick (e.g., macOS resets the ACL after a Chromium update or a partition_id reset), open CodexBar → Settings → Advanced → Keychain access and enable Disable Keychain access. CodexBar will no longer touch the Keychain. Browser-cookie-based providers will be skipped, but Claude/Codex OAuth via the CLI still works (it reads ~/.codex / ~/.claude config files, not the Keychain).
Files & Folders prompts (folder/volume access): CodexBar launches provider CLIs and local probes for some providers. If those helpers read a project directory or external drive, macOS may ask CodexBar for that folder/volume (e.g., Desktop or an external volume). This is driven by the helper’s working directory, not background disk scanning.
What we do not request in the background: no Screen Recording or Accessibility permissions; user-triggered helper actions may ask macOS for Automation permission to open Terminal. No passwords are stored (browser cookies are reused when you opt in).
Clone the repo and open it in Xcode or run the scripts directly.
Launch once, then toggle providers in Settings → Providers.
Install/sign in to provider sources you rely on (CLIs, browser cookies, OAuth/device flow, API keys, or local app/config files).
Optional: set OpenAI cookies (Automatic or Manual) for Codex dashboard extras.
Build from source
Requires macOS 14+ and Swift 6.2+.
hljs language-bash
./Scripts/package_app.sh # builds CodexBar.app in-place
CODEXBAR_SIGNING=adhoc ./Scripts/package_app.sh # ad-hoc signing (no Apple Developer account)
open CodexBar.app
Dev loop:
hljs language-bash
./Scripts/compile_and_run.sh
./Scripts/compile_and_run.sh --test# also run the sharded test suite before packaging/relaunching
make check # SwiftFormat + SwiftLint
make docs-list # list docs with frontmatter summaries
CLI install:
hljs language-bash
# after installing CodexBar.app in /Applications
./bin/install-codexbar-cli.sh
Related
✂️ Trimmy — “Paste once, run once.” Flatten multi-line shell snippets so they paste and run.
🧳 MCPorter — TypeScript toolkit + CLI for Model Context Protocol servers.
🧿 oracle — Ask the oracle when you're stuck. Invoke GPT-5 Pro with a custom context and files.