CodexBar 🎚️ — May your tokens never run out.
Every AI coding limit, in your menu bar.
Tiny macOS 14+ menu bar app that keeps AI coding-provider limits visible and shows when each window resets. See the supported providers below. One status item per provider, or Merge Icons mode with a provider switcher. No Dock icon, minimal UI, dynamic bar icons.
Also available as a Linux desktop app with usage and spending windows, separate settings, desktop notifications, and an optional tray icon. On Omarchy, a native bar widget shares the desktop app’s data and follows your theme.
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.
Install
macOS app
Requires macOS 14+ (Sonoma). Download from GitHub Releases, or install with Homebrew:
brew install --cask codexbar
Linux desktop and Omarchy
The Qt 6 desktop app supports Wayland and X11, with an optional Omarchy widget. Published desktop archives target x86_64 and ARM64 and require glibc 2.39+, Qt 6.4+, and a separately installed CodexBar CLI. Python 3 runs the per-user installer.
Follow the Linux installation guide for Arch/Omarchy, Fedora, and Debian/Ubuntu runtime packages, verified release downloads, and upgrades. It keeps the CLI's resource bundle beside its executable and installs a launcher and optional login startup. Open Settings to choose providers, then authenticate through the provider's CLI or configure its API key. GNOME may need a tray extension; the app's windows work without a tray.
See the macOS feature comparison for supported features and remaining gaps.
CLI Tarballs (macOS/Linux)
Homebrew formula (Linux today):brew install steipete/tap/codexbar
Arch Linux AUR package:
yay -S codexbar-cli
Or download release tarballs from GitHub Releases:
- macOS:
CodexBarCLI-v,-macos-arm64.tar.gz CodexBarCLI-v-macos-x86_64.tar.gz - Linux (glibc):
CodexBarCLI-v,-linux-aarch64.tar.gz CodexBarCLI-v-linux-x86_64.tar.gz - Linux (static musl):
CodexBarCLI-v,-linux-musl-aarch64.tar.gz CodexBarCLI-v-linux-musl-x86_64.tar.gz
macOS first run
- 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 the resolved CodexBar config file. New installs use~/.config/codexbar/config.json; existing ~/.codexbar/config.json installs still load from the legacy path. You can
script the same provider list that Settings → Providers uses:
codexbar config providers
codexbar config enable --provider grok
codexbar config disable --provider cursor
For API-key providers, store a key without opening Settings:
printf '%s' "$ELEVENLABS_API_KEY" | codexbar config set-api-key --provider elevenlabs --stdin
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 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.
- Azure OpenAI — API key, endpoint, and deployment validation probe.
- Claude — OAuth API, browser cookies, or CLI PTY fallback; session and weekly usage where available.
- ClinePass — API key for five-hour, weekly, and monthly subscription limits.
- Cursor — Browser session cookies for plan + usage + billing resets.
- OpenCode — Browser cookies for workspace subscription usage.
- OpenCode Go — Usage API, browser fallback, and local SQLite cost history.
- Alibaba Coding Plan — Web cookies or API key for coding-plan quotas.
- Alibaba Token Plan — Bailian browser/manual cookies for token-plan credits.
- Qwen Cloud — 5-hour and weekly individual Token Plan usage via browser/manual cookies.
- Gemini — OAuth-backed quota API using Gemini CLI credentials (no browser cookies).
- Antigravity — Local language server probe,
agyCLI HTTPS source, and Google OAuth fallback (experimental). - Droid — Browser cookies + WorkOS token flows for Factory usage + billing.
- Copilot — GitHub device flow + Copilot internal usage API.
- Devin — Chrome localStorage session or manual Bearer token for daily and weekly quotas.
- z.ai — API token for personal/team quota, MCP, 5-hour, and hourly usage windows.
- Manus — Browser
session_idauth for credit balance, monthly credits, and daily refresh tracking. - MiniMax — API token, cookie header, or browser cookies for coding-plan usage.
- T3 Chat — Browser cookies capture for Base and Overage usage buckets.
- ZoomMate — Chrome cookie auto-import or manual cURL capture for credits usage.
- Kimi — Auth token (JWT from
kimi-authcookie) for weekly quota + 5‑hour rate limit. - Kilo — API token with CLI-auth fallback for Kilo Pass usage.
- Kiro — CLI-based usage; monthly credits + bonus credits.
- Vertex AI — Google Cloud gcloud OAuth with token cost tracking from local Claude logs.
- Augment — Augment CLI or browser cookies for credits tracking and usage monitoring.
- Amp — Browser cookie-based authentication with Amp Free usage tracking.
- Ollama — API key access plus browser cookies for Ollama Cloud usage windows.
- llmman — Local daemon memory used by loaded models, with an optional API key.
- Synthetic — API key quota endpoint for rolling five-hour, weekly token, and search-hourly usage.
- JetBrains AI — Local XML-based quota from JetBrains IDE configuration; monthly credits tracking.
- Warp — API token for GraphQL request limits and monthly credits.
- ElevenLabs — API key for character credits and voice slot usage.
- OpenRouter — API token for credit-based usage tracking across multiple AI providers.
- Windsurf — Browser localStorage session import or local SQLite cache for plan usage.
- Zed — Zed editor Keychain session for plan, edit-prediction quota, billing cycle, and overdue invoices.
- Perplexity — Account usage credits from Perplexity usage data.
- Xiaomi MiMo — Browser cookies for balance and token-plan usage.
- Doubao — API key for Volcengine Ark request-limit probes.
- Sakana AI — Manual Cookie header for 5-hour and weekly quota windows.
- Abacus AI — Browser cookie auth for ChatLLM/RouteLLM compute credit tracking.
- Mistral — Browser cookies for API spend, credit balance, and monthly-plan usage.
- DeepSeek — API key for credit balance tracking (paid vs. granted breakdown).
- Fireworks — API key + account slug for 30-day spend from the billing summary API.
- Charm Hyper — Bundled plugin for native Hypercredit balance, using Chrome/manual sessions with API-key fallback.
- DeepInfra — API key for prepaid balance, current-month spend, and spending-limit tracking.
- Moonshot / Kimi API — API key for Moonshot/Kimi API account balance tracking.
- Venice — API key for DIEM or USD balance tracking.
- Codebuff — API token (or
~/.config/manicode/credentials.json) for credit balance + weekly rate limit. - Command Code — Browser or manual cookies for monthly USD credits from Command Code billing.
- Qoder — Browser or manual cookies for Qoder big model credit usage.
- StepFun — Username + password login for Step Plan rate limits (5‑hour + weekly windows) and subscription plan name.
- AWS Bedrock — AWS access keys or a named AWS profile (SSO/assume-role via the AWS CLI) for Cost Explorer spend, monthly budgets, and optional CloudWatch Claude activity.
- Grok — Grok CLI billing RPC plus grok.com browser-session fallback.
- Groq — Browser session for console spend and usage, with an Enterprise Prometheus API-key fallback.
- LLM Proxy — API key + base URL for aggregate proxy quota stats and provider breakdowns.
- ClawRouter — API key for monthly budget, spend, requests, tokens, and routed-provider usage.
- sub2api — Self-hosted gateway key quota, subscription limits, wallet balance, and per-key usage.
- Wayfinder — Local router gateway polling for health, per-route breakdown, savings, and decision latency.
- LiteLLM — Virtual key + proxy URL for personal and team budget/spend tracking.
- Bifrost — Virtual key + self-hosted gateway URL for budgets, rate limits, and model spend.
- Aixy — API key for key-scoped spend, tokens, and applicable personal/shared budgets.
- Deepgram — API key usage summaries across speech, agent, token, and TTS metrics.
- Poe — API key for current point balance and recent points history.
- Chutes — API key for subscription usage, rolling and monthly quota windows, and pay-as-you-go quotas.
- Neuralwatt — API key for subscription kWh usage and prepaid credit balance.
- Helmcode — Cloud and NaN Builders dashboard sessions for per-model quotas and Cloud prepaid balance.
- ZenMux — Management API key for rolling five-hour and seven-day quota windows plus PAYG balance.
- xAI — Management API key + team ID for prepaid credit balance and daily platform spend.
- IBM Bob — API key for monthly Bobcoin budget and usage across subscription teams.
- LongCat — Browser or manual cookies for token-pack quota and fuel-pack balances.
- ai& — API key for 30-day organization spend from request logs.
- Notion AI — Browser or manual cookies for rolling and monthly workspace allowances.
- Nous Portal — Existing Hermes OAuth login for monthly credits and purchased top-ups.
- Muse Code — Existing Muse CLI login for subscription quotas, plus local token history.
- Muse (muse.ai) — Browser or manual muse.ai session for the Free, Power, or Maximum weekly allowance.
- CodeRabbit — Local CLI usage report for review counts, billing state, and period resets.
- Replicate — Browser or manual cookies for monthly spend and optional prepaid credits.
- Hugging Face — Access token for Inference Providers charges and optional ZeroGPU quota.
- Raycast — Chrome or manual website session for monthly AI credits and renewal.
- Pi — Local Pi/OMP transcripts for token history and API-rate cost estimates.
- v0 — Platform API key for billing and on-demand balances, plus rate limits.
- TypeSafe — Browser or manual console cookies for billing spend, balance, and credit expirations.
- GitKraken AI — Account access token for personal weekly credits, reset time, and organization pool sharing.
- DevPass — API key for plan credits, premium weekly allowances, and key-scoped spending.
- Atlas Cloud — API key for the account's available USD balance.
- Vercel AI Gateway — API key for the team's USD balance and lifetime spend.
- xKiro — API key for daily free-token usage, remaining allowance, and the midnight UTC reset.
- Open to new providers: provider authoring guide.
- Langdock — Selected Edge, Chrome, or Safari profile → personal included session and weekly limits (
web, macOS). - X API — Chrome or manual console.x.com cookies for prepaid and free credits, including negative balances.
- LithosAI — Chrome or manual console cookies for prepaid USD balance and optional UTC spend.
- WorkBuddy — Chrome or manual www.workbuddy.cn cookies for the monthly credits allowance, plan name, and cycle reset.
- Tavily — API key for account-plan, per-key, and pay-as-you-go credit totals.
- Linkup — API key for the current prepaid USD credit balance.
- TinyApi — Chrome or manual session cookies for aggregate available credits.
- Exa — Team Management service key plus an explicit API key ID for month-to-date USD spend.
- Cosmic AI — Explicit Personal Access Token and Project ID for separate project AI input/output counters and allowances.
- Aerostack — Explicit account JWT for monthly AI tokens used and the observed account allowance.
- Sail Research — API key for organization credit balance and combined inference/Sailbox spend.
- Sofya — API key for separate account plan and purchased credit balances, eligibility, and the reported monthly reset.
- fal — API key with billing read access for the current account credit balance.
- FLORA — API key with billing permission plus a workspace ID for the available USD balance and month-to-date spend.
Icon & Screenshot
The menu bar icon is a tiny usage meter. Bar meaning is provider-specific, and errors/stale data can dim the icon or show an incident indicator.Features
- Multi-provider menu bar with per-provider toggles (Settings → Providers).
- Provider-specific usage meters with reset countdowns.
- Optional Codex web dashboard enrichments (code review remaining, usage breakdown, credits history).
- Inline spend and usage charts for API-backed providers such as OpenAI, Claude Admin API, OpenRouter, LiteLLM, z.ai, MiniMax, Mistral, and AWS Bedrock.
- Codex and Claude Plan Usage menus show a quota burndown from recorded snapshots, with the capture time and an even-use guide. The existing utilization history remains below it, and the line fills in as the app collects samples.
- Configurable cost-usage scans for Codex + Claude, plus reused chart UI for supported provider histories. Codex history uses a WAL-enabled SQLite store capped at 25,000 retained session entries and 256 MiB.
- A persistent Settings → Usage & Spend view for local estimates, grouped by native currency and provider. Each provider shows its accounts or history sources alongside its model breakdown; project/session views and daily/hourly trends share compact selectors. Incomplete history stays labeled, and source, privacy, export, and sharing controls remain available.
- Provider status polling with incident badges in the menu and icon overlay.
- Merge Icons mode to combine providers into one status item + switcher. With Icon + Percent and two enabled built-in providers, choose Stacked to show their first layout lines together. Automatic rows follow provider order and reserve explicit choices; disabling a selected provider uses a fallback and restores the saved choice when re-enabled. The dropdown menu stays available, and each provider keeps its own layout settings.
- Display controls for provider icons, labels, bars, reset-time style, and highest-usage auto-selection.
- Fresh installs default to Adaptive refresh. Existing users keep every valid stored choice, while legacy unset or
- Bundled CLI (
codexbar) for scripts and CI (includingcodexbar cost --provider codex,claude, orbothfor local cost usage); macOS and Linux CLI builds available. - WidgetKit widgets for supported providers.
- Localized app and website with a shared 23-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. Plain Adaptive refresh never inspects local agent activity. The separate Adaptive (agent-aware) option asks before inspecting the running-process list (including command lines) to identify Codex/Claude and reading bounded known-session metadata. Declining returns to plain Adaptive. When allowed with Agent Sessions hidden, CodexBar retains only the latest activity time and discards session paths and identities. Provider tokens and token-account settings live in the CodexBar config file 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):
- 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).
Docs
- Providers overview: docs/providers.md
- Provider authoring: docs/provider.md
- Issue labeling guide: docs/ISSUE_LABELING.md
- UI & icon notes: docs/ui.md
- CLI reference: docs/cli.md
- Configuration: docs/configuration.md
- Keychain prompts: docs/keychain-prompts.md
- CLI configuration: docs/cli-configuration.md
- Widgets: docs/widgets.md
- Architecture: docs/architecture.md
- Refresh loop: docs/refresh-loop.md
- Status polling: docs/status.md
- Sparkle updates: docs/sparkle.md
- Packaging: docs/packaging.md
- Development: docs/DEVELOPMENT.md
- Release checklist: docs/RELEASING.md
- Changelog: CHANGELOG.md
Getting started (dev)
- 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+../Scripts/package_app.sh # builds CodexBar.app in-place with ad-hoc signing
open CodexBar.app
Dev loop:
./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:
# 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.
Looking for a Windows version?
- Win-CodexBar
- CodexBar for Windows — Native Windows tray app powered by the original CodexBar CLI through WSL2; x64 and ARM64 installers.
Linux desktop integration?
- Linux desktop app — x86_64/ARM64 release archives with an installer; Qt 6 usage and spending windows, separate settings, optional system tray, and desktop notifications using the Linux CLI.
- Omarchy native widget — Compact Quickshell usage popup sharing the Linux desktop app’s backend.
- codexbar-waybar — Waybar custom module + GTK4 popover for Hyprland / Sway / other Wayland compositors, built on top of the bundled Linux CLI.
- codexbar-cosmic-applet — Native COSMIC (System76) desktop panel applet with a tab per provider, pace projections, and cost/token stats, built on top of the bundled Linux CLI.
- Codexbar GNOME — GNOME Shell extension that brings CodexBar usage into the desktop panel.
- codexbar-cinnamon-applet — Linux Mint Cinnamon panel applet powered by CodexBar's JSON output.
- noctalia-codex-usage — Noctalia/Quickshell plugin that shows Codex 5-hour and weekly usage limits, built on top of the bundled Linux CLI.
- KodexBar — KDE Plasma widget that shows CodexBar usage in the Plasma panel, built on top of the bundled Linux CLI.
- codexbar-plasmoid — KDE Plasma 6 widget for CodexBar's meter icon, provider switcher, quota windows, pace, credits, local cost, and status, powered by the bundled Linux CLI.
- CodexBar Plasma — KDE Plasma 6 widget with multi-provider views, account selection, cost history, notifications, configurable providers, and installable
.plasmoidreleases, powered by the bundled Linux CLI. - codexbar-kde — KDE Plasma 6 widget with usage meters, agent-session search, terminal focus, and kitty session restoration, powered by the bundled Linux CLI.
- CodexBar Meter — Noctalia v5 bar widget and panel showing every enabled provider's quota windows, credits, and pace, installable from Noctalia's plugin store, built on the bundled Linux CLI.
Desk display
- AI Monitor — ESP32 desk display (Cheap Yellow Display) plus a macOS companion app that shows Claude, ChatGPT, Gemini, Copilot, Cursor and Antigravity limits as rings or bars, fed over USB by the bundled CLI. No Wi-Fi on the device, 3D-printable case.
- TokenTV — Python host that shows Claude and Codex 5-hour and weekly limits on compatible 240×240 Wi-Fi desk clocks (GeekMagic SmallTV style), using the bundled CLI or
codexbar serve. It uploads rendered screens to the clock's stock photo album without changing its firmware.
Status bar & terminal integration
- showy-quota — always-on AI plan quota strips for SketchyBar, tmux, and Zellij (standalone WASM plugin), built on
codexbar serve/ the bundled CLI. - AI Usage Limits — Elgato Stream Deck integration for macOS: shows a selected CodexBar provider, account, and configurable quota or payload metrics on keys and Stream Deck+ dials, using local
codexbar serve.
Phone & web
- Starbridge — Community-maintained Android and web app that displays quota windows from the CodexBar CLI on macOS and Linux, with optional quota alerts.
