CodexBar README

The project's README from github.com/steipete/CodexBar. As one markdown file: README.md.

CodexBar 🎚️ — May your tokens never run out.

Every AI coding limit, in your menu bar.

Latest release macOS 14+ Homebrew AUR License: MIT Site

CodexBar — every AI coding limit in your menu bar. 69 providers.

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, Zed, Vertex AI, Augment, OpenRouter, LiteLLM, LLM Proxy, Codebuff, Command Code, ClinePass, 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.

CodexBar menu popover with provider tiles, usage bars, and reset countdowns

Why

Install

Requirements

GitHub Releases

Download: https://github.com/steipete/CodexBar/releases

Homebrew

brew install --cask codexbar

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:

First run

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 <key> for one-off local scripts where shell history is not a concern. See CLI configuration for the full flow.

Providers

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

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)

Docs

Getting started (dev)

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

Looking for a Windows version?

Linux desktop integration?

Status bar & terminal integration

CodexBar (steipete/CodexBar)

cost-tracking
Searching Database…

22.6K ·GitHub
What is this?CodexBar is a tiny macOS 14+ menu bar app that keeps AI coding-provider usage limits visible and shows when each usage window resets, so you can plan long tasks instead of guessing whether you have quota left.
Is this a full app, or something I run in the terminal?It is a native macOS menu bar app with no Dock icon — one status item per provider, or a merged single icon with a switcher — and it also bundles a codexbar CLI for scripts and CI, with macOS and Linux builds.
How do I install it and get it running?Download the release archive from GitHub Releases (macOS 14+ Sonoma required), then open Settings → Providers and enable the providers you use; API keys can also be stored from the CLI into ~/.config/codexbar/config.json.
Do I have to hand over my passwords or create new logins?No — it reuses the sessions you already have: OAuth or device flow, API keys, browser cookies, provider CLIs, and local app files. No passwords are stored.
What macOS permissions will it ask me for?Full Disk Access is optional (only for Safari-cookie providers); Keychain prompts appear for Chromium cookie import, and folder prompts when provider CLI helpers read project dirs. Background paths fail or skip instead of asking.
Does it work on Windows or Linux?The menu bar app itself is macOS 14+ only, but the bundled codexbar CLI ships for Linux too, as glibc and static musl builds for arm64 and x86_64.
Does it crawl my disk or send my data anywhere?No — parsing is on-device by default and it only reads a small set of known locations (cookies, config files, JSONL logs) when related features are enabled; tokens live in a local config file with restrictive permissions.
What does the menu bar icon actually show?A tiny usage meter — the bar meaning is provider-specific, errors or stale data dim it, and incidents add an overlay indicator. You can toggle icons, labels, bars, and reset-time style, or merge all providers into one status item with a switcher.
Can it show spending, not just quotas?Yes — credit balances, Admin API spend dashboards, provider billing summaries, and local cost scans where the source exposes enough detail, plus a persistent Usage & Spend view with local 7/30-day estimates.
How often does it refresh my usage?Fresh installs default to Adaptive refresh; fixed 1, 2, 5, 15, and 30 minute intervals plus manual refresh remain available, and existing users keep whatever valid choice they stored.
Does it do anything beyond showing stats?Yes — provider status polling with incident badges, optional session quota notifications, weekly-reset confetti, WidgetKit widgets, and an app and website localized into 21 languages with RTL support.
Creator
steipete
Size
282 MB
Stars
22.6K
Age
11mo
Commits · 90 Days