版本发布 8
### Added - Codex: add tiered long-context and Fast/Priority pricing to local cost history using local app-server priority traces (#917). Thanks @iam-brain! - Kiro: show account/auth details, plan labels, credit and bonus-credit balances, overage state, and Kiro-specific menu bar display options (#933, fixes #934). Thanks @solnikhil! - Antigravity: add Google OAuth token-account switching with selected-account refresh persistence (#937, fixes #936). Thanks @hhh2210! - OpenRouter: show daily and weekly API key spend from `/api/v1/key` in the menu (#685). Thanks @ThiagoCAltoe! - Display: add a setting to hide quota-warning tick marks on usage bars while keeping quota warning notifications active (#918, fixes #916). Thanks @ThiagoCAltoe! - Menu: add left/right arrow keyboard navigation for the merged provider switcher (#266). - Menu: add an opt-in setting for provider changelog links, starting with Codex, Claude Code, and Gemini CLI (#929, fixes #660). Thanks @ThiagoCAltoe! - AWS Bedrock: add Cost Explorer usage and monthly budget tracking (#897). Thanks @afalk42! - Kilo: add organization selection, scoped organization fetches, and stacked Kilo usage cards (#920). Thanks @NoeFabris! - Moonshot / Kimi API: add API-key balance tracking, CLI support, docs, and menu bar balance copy (#899). Thanks @giuseppebisemi! - z.ai: add an hourly per-model token usage chart in the menu (#913). Thanks @n1majne3! - Localization: add Brazilian Portuguese translations (#902). Thanks @ThiagoCAltoe! - Localization: add Simplified Chinese translations for Claude peak-hour labels (#921). Thanks @whtis! ### Fixed - Codex: show authenticated plan/account rows as "Limits not available" instead of a red no-rate-limit error when Codex reports profile data but no rate-limit windows yet. - Overview: hide provider rows that only contain an error, and avoid showing a one-item Codex System Account submenu. - Menu: disable implicit provider-switcher layer animations and reuse the deferred rebuild path so open menus stay stable under pointer movement (#950). - Menu: defer account-switcher menu rebuilds so switching Codex or token accounts does not send the open menu into a flicker loop (#946, fixes #944). Thanks @kubahasek! - Menu: avoid rebuilding visible menus during background open-menu refreshes so hover submenus stay responsive (#923, fixes #909). Thanks @AmrMohamad! - Codex: scope local cost history to the selected managed account's `CODEX_HOME` and label cost cards as local-log estimates (#910). - Cost history: label local log totals as API-rate estimates in menu cards, charts, and CLI output (#926). Thanks @yashiels! - Cursor: open Add Account in the user's browser and import the resulting browser session instead of trapping login in an embedded web view (#922). - Claude: handle Enterprise and organization spend-limit usage across OAuth/web accounts, including null session quota windows, inline spend-limit usage, `extra_usage`-only responses, and token-account Org ID support (#925, #941, fixes #940). Thanks @clintandrewhall! - OpenCode Go: let automatic cookie import scan all supported browser sources instead of Chrome only (#665). - Copilot: preserve over-quota usage so paid overage can show above 100% instead of clamping to exhausted (#818). - Codex: pause background CLI launches after macOS blocks or quarantines `codex`, avoiding repeated "Malware Blocked" prompts (#942). - Claude: clarify that local cost/token estimates include cache read/write tokens and may differ from Claude Code `/status` (#781, #787). - Updates: make the restart/apply-update menu action use Sparkle's prepared install callback on the first click (#947). Thanks @velvet-shark! - Multi-account menus: keep stacked token-account cards capped to current accounts and ignore stale snapshots from removed accounts (#949). - Droid: accept pasted Factory `Authorization: Bearer` headers and bearer tokens for manual sessions when cookies alone are insufficient (#914). - Menu bar: detect when macOS Tahoe hides CodexBar behind the new Allow in Menu Bar setting and show recovery guidance (#945, fixes #890). Thanks @pdurlej! - CLI: route Claude token-account `--source cli` reads through the selected OAuth/session credential so `--all-accounts` no longer relabels ambient CLI usage (#403). - Codex: route menu account refreshes through the resolved live-vs-managed account source so matched accounts keep using the stable `CODEX_HOME` (#932, fixes #931). Thanks @ThiagoCAltoe! - Gemini: refresh OAuth credentials when the CLI has a refresh token but no cached access token instead of reporting "not logged in" after authentication (#915). - Gemini: label OAuth-backed API fetches as `oauth-api` instead of plain `api` (#930). Thanks @ThiagoCAltoe! - Codex: keep session and weekly quota-warning marker thresholds independent so usage bars do not duplicate marker lines (#938, fixes #927). Thanks @iam-brain! - Codex: coalesce historical pace reset timestamps into 5-minute buckets so dashboard and live reset jitter do not duplicate weekly history windows (#901). Thanks @zhulijin1991! - Menu: middle-truncate long account emails in Codex account controls and keep the Codex account switcher visible during merged-menu refreshes with transient account snapshots. - Settings: apply the selected app language from packaged SwiftPM resources instead of falling back to English when the `.lproj` directory casing differs (#908). - Settings: let stale managed Codex account records be removed even when their stored home path is outside CodexBar's managed-home directory, and keep CLI known-owner tests from writing fixtures into the live app store. - ChatGPT credits: restrict purchase links to real HTTPS `chatgpt.com` settings/usage/billing/credits paths and drop query/fragment data (#903). Thanks @ThiagoCAltoe! - z.ai: show the MCP quota bucket as monthly instead of a misleading 1-minute window (#904). Thanks @ThiagoCAltoe! - Kimi: rebalance provider icon alignment within its viewBox (#912). Thanks @giuseppebisemi! - Release: include macOS platform and architecture in notarized app and dSYM asset names (#164). - Upstream tooling: resolve remote default branches and tolerate missing upstream remotes in review scripts (#906).
### Highlights - Codex: restore OpenAI web dashboard fetching on the new analytics route and tighten hidden WebView reuse/expiry. - Synthetic: parse live quota payloads for five-hour, weekly, and search limits, including continuous reset/regeneration details (#732). Thanks @baanish! - Antigravity: restore account/quota probing across newer localhost endpoint/token layouts and retry paths (#727). Thanks @icey-zhang! - Menu: add standard shortcuts for Refresh, Settings, and Quit while the status menu is open (#737). Thanks @anirudhvee! - Widgets: migrate app-group sharing to the Team-ID-prefixed container and carry widget state across the move (#701). Thanks @ngutman! ### Providers & Usage - Synthetic: parse live five-hour, weekly, and search quota payloads, including continuous reset/regeneration details (#732). Thanks @baanish! - Antigravity: restore localhost probing with async TLS challenge handling, extension-token fallback, and best-effort port selection (#727). Thanks @icey-zhang! - Gemini: discover OAuth config in fnm/Homebrew/bundled CLI layouts so expired-token refresh keeps working (#723). Thanks @Leechael! - Copilot: open the complete device-login verification URL when available so the browser flow carries the user code (#739). Thanks @skhe! - Alibaba: update the China mainland Coding Plan endpoint and browser-cookie domain while keeping older domains as fallbacks (#712). Thanks @hezhongtang! - Codex: restore OpenAI web dashboard fetching on the new analytics route and tighten hidden WebView reuse/expiry. @ratulsarna ### Menu & Settings - Menu: show and handle standard shortcuts for Refresh (⌘R), Settings (⌘,), and Quit (⌘Q) while the status menu is open (#737). Thanks @anirudhvee! - Widgets: migrate app-group sharing to the Team-ID-prefixed container and carry widget state across the move (#701). Thanks @ngutman! - Settings: fix provider-sidebar clipping on macOS Tahoe and resize the Preferences window when switching tabs (#580). Thanks @chadneal! ### Fixes - Keychain cache: preserve cached credentials when macOS temporarily denies keychain UI after wake, avoiding repeated prompts (#594). Thanks @josepe98!
### Highlights - Codex: switch between system accounts/profiles without manually logging out and back in. @ratulsarna - Add Perplexity provider support with recurring, bonus, and purchased-credit tracking, Pro/Max plan detection, browser-cookie auto-import, and manual-cookie fallback (#449). Thanks @BeelixGit! - Add OpenCode Go as a separate provider with 5-hour, weekly, and monthly web usage tracking, widget integration, and browser-cookie support. - Claude: fix token and cost inflation caused by cross-file double counting of subagent JSONL logs, fix streaming chunk deduplication, and add `claude-sonnet-4-6` pricing. Thanks @enzonaute for the investigation! - Cost history: merge supported pi session usage into Codex/Claude provider history (#653). Thanks @ngutman! ### Providers & Usage - Perplexity: add recurring, bonus, and purchased-credit tracking; plan detection for Pro/Max; browser-cookie auto-import; and manual-cookie fallback (#449). Thanks @BeelixGit! - OpenCode Go: add a dedicated provider, parse live authenticated workspace Go usage from the web app, keep monthly optional and honor workspace env overrides. - Codex: add workspace attribution for account labels and same-email multi-workspace accounts. - Codex: reconcile live-system and managed accounts by canonical identity, preserve account-scoped usage/history/dashboard state, allow OAuth CLI fallback, and tighten OpenAI web ownership gating so quota and credits only attach to the matching account. Thanks @monterrr and @Rag30 for the initial effort and ideas! - Codex: normalize weekly-only rate limits across OAuth and CLI/RPC so free-plan accounts render as Weekly instead of a fake Session, preserve unknown single-window payloads in the primary lane, hide the empty Session lane in widgets, and accept weekly-only Codex CLI `/status`/RPC data without failing. @ratulsarna - Codex: refactor the provider end to end into clearer components and better division of responsibilities. - OpenCode: preserve product separation between Zen and Go, improve null/unsupported usage handling, and harden cookie/domain behavior for authenticated web fetches. - Cost history: merge supported pi session usage into Codex/Claude provider history (#653). Thanks @ngutman! ### Menu & Settings - Codex: add UI for switching the system-level Codex account and promoting a managed account into the live system slot. - Codex: hide display-only OpenAI web extras in widgets and fix buy-credits / credits-only presentation regressions. - Claude: enable “Avoid Keychain prompts” by default, remove the experimental label, and preserve user-action cooldown clearing plus startup bootstrap when Security.framework fallback is still needed. - Fix alignment of menu chart hover coordinates on macOS. Thanks @cuidong233!
### Highlights - New providers: OpenCode (web usage), Vertex AI, Kiro, Kimi, Kimi K2, Augment, Amp, Synthetic. - Provider source controls: usage source pickers for Codex/Claude, manual cookie headers, cookie caching with source/timestamp. - Menu bar upgrades: display mode picker (percent/pace/both), auto-select near limit, absolute reset times, pace summary line. - CLI/config revamp: config-backed provider settings, JSON-only errors, config validate/dump. ### Providers - OpenCode: add web usage provider with workspace override + Chrome-first cookie import (#188). Thanks @anthnykr! - OpenCode: refresh provider logo (#190). Thanks @anthnykr! - Vertex AI: add provider with quota-based usage from gcloud ADC. Thanks @bahag-chaurasiak! - Vertex AI: token costs are shown via the Claude provider (same local logs). - Vertex AI: harden quota usage parsing for edge-case responses. - Kiro: add CLI-based usage provider via kiro-cli. Thanks @neror! - Kiro: clean up provider wiring and show plan name in the menu. - Kiro: harden CLI idle handling to avoid partial usage snapshots (#145). Thanks @chadneal! - Kimi: add usage provider with cookie-based API token stored in Keychain (#146). Thanks @rehanchrl! - Kimi K2: add API-key usage provider for credit totals (#147). Thanks @0-CYBERDYNE-SYSTEMS-0! - Augment: add provider with browser-cookie usage tracking. - Augment: prefer Auggie CLI usage with web fallback, plus session refresh + recovery tools (#142). Thanks @bcharleson! - Amp: add provider with Amp Free usage tracking (#167). Thanks @duailibe! - Synthetic: add API-key usage provider with quota snapshots (#171). Thanks @monotykamary! - JetBrains AI: include IDEs missing quota files, expand custom paths, and add Android Studio base paths (#194). Thanks @steipete! - Cursor: support legacy request-based plans and show individual on-demand usage (#125) — thanks @vltansky - Cursor: avoid Intel crash when opening login and harden WebKit teardown. Thanks @meghanto! - Cursor: load stored session cookies before reads to make relaunches deterministic. - z.ai: add BigModel CN region option for API endpoint selection (#140). Thanks @nailuoGG! - MiniMax: add China mainland region option + host overrides (#143). Thanks @nailuoGG! - MiniMax: support API token or cookie auth; API token takes precedence and hides cookie UI (#149). Thanks @aonsyed! - Gemini: prefer loadCodeAssist project IDs for quota fetches (#172). Thanks @lolwierd! - Gemini: honor loadCodeAssist project IDs for quota + support Nix CLI layout (#184). Thanks @HaukeSchnau! - Claude: fix OAuth “Extra usage” spend/limit units when the API returns minor currency units (#97). - Claude: rescale extra usage costs when plan hints are missing and prefer web plan hints for extras (#181). Thanks @jorda0mega! - Usage formatting: fix currency parsing/formatting on non-US locales (e.g., pt-BR). Thanks @mneves75! ### Provider Sources & Security - Providers: cache browser cookies in Keychain (per provider) and show cached source/time in settings. - Codex/Claude/Cursor/Factory/MiniMax: cookie sources now include Manual (paste a Cookie header) in addition to Automatic. - Codex/Claude/Cursor/Factory/MiniMax: skip cookie imports from browsers without usable cookie stores (profile/cookie DB) to avoid unnecessary Keychain prompts. - Providers: suppress repeated Chromium Keychain prompts after access denied and honor disabled Keychain access. ### Preferences & Settings - Preferences: swap provider refresh button and enable toggle order. - Preferences: animate settings width and widen Providers on selection. - Preferences: shrink default settings size and reduce overall height. - Preferences: move “Hide personal information” to Advanced. - Providers: shorten fetch subtitle to relative time only. - Preferences: soften provider sidebar background and stabilize drag reordering. - Preferences: restrict provider drag handle to handle-only. - Preferences: move provider refresh timing to a dedicated second line. - Preferences: tighten provider usage metrics spacing. - Preferences: show refresh timing inline in provider detail subtitle. - Preferences: move “Access OpenAI via web” into Providers → Codex. - Preferences: add usage source pickers for Codex + Claude with auto fallback. - Preferences: add cookie source pickers with contextual helper text for the selected mode. - Preferences: move “Disable Keychain access” to Advanced and require manual cookies when enabled. - Preferences: add per-provider menu bar metric picker (#185) — thanks @HaukeSchnau - Preferences: tighten provider rows (inline pickers, compact layout, inline refresh + auto-source status). - Preferences: remove the “experimental” label from Antigravity. ### Menu & Menu Bar - Menu: add a toggle to show reset times as absolute clock values (instead of countdowns). - Menu: show an “Open Terminal” action when Claude OAuth fails. - Menu: add “Hide personal information” toggle and redact emails in menu UI (#137). Thanks @t3dotgg! - Menu: keep a pace summary line alongside the visual marker (#155). Thanks @antons! - Menu: reduce provider-switch flicker and avoid redundant menu card sizing for faster opens (#132). Thanks @ibehnam! - Menu: keep background refresh on open without forcing token usage (#158). Thanks @weequan93! - Menu: Cursor switcher shows On-Demand remaining when Plan is exhausted in show-remaining mode (#193). Thanks @vltansky! - Menu: avoid single-letter wraps in provider switcher titles. - Menu: widen provider switcher buttons to avoid clipped titles. - Menu bar: rebuild provider status items on reorder so icons update correctly. - Menu bar: optional auto-select provider closest to its rate limit and keep switcher progress visible (#159). Thanks @phillco! - Menu bar: add display mode picker for percent/pace/both in the menu bar icon (#169). Thanks @PhilETaylor! - Menu bar: fix combined loading indicator flicker during loading animation (incl. debug replay). - Menu bar: prevent blink updates from clobbering the loading animation. ### CLI & Config - CLI: respect the reset time display setting. - CLI: add pink accents, usage bars, and weekly pace lines to text output. - CLI: add config-backed provider settings, `--json-only`, and `--source api` for key-based providers. - CLI: add `config validate`/`config dump` commands and per-provider JSON error payloads. - CLI/App: move provider secrets + ordering to `~/.codexbar/config.json` (no Keychain persistence). - Providers: resolve API tokens from config/env only (no Keychain fallback). ### Dev & Tests - Dev: move Chromium profile discovery into SweetCookieKit (adds Helium net.imput.helium). Thanks @hhushhas! - Dev: bump SweetCookieKit to 0.2.0. - Dev: migrate stored Keychain items to reduce rebuild prompts. - Dev: move path debug snapshot off the main thread and debounce refreshes to avoid startup hitches (#131). Thanks @ibehnam! - Tests: expand Kiro CLI coverage. - Tests: stabilize Claude PTY integration cleanup and reset CLI sessions after probes. - Tests: kill leaked codex app-server after tests. - Tests: add regression coverage for merged loading icon layout stability. - Tests: cover config validation and JSON-only CLI errors. - Build: stabilize Swift test runtime.
- Menu bar: optional “percent mode” (provider brand icons + percentage labels) via Advanced toggle. - CLI: add `codexbar cost` to print local cost usage (text/JSON) for Codex + Claude. - Cost: align local cost scanner with ccusage; stabilize parsing/decoding and handle large JSONL lines. - Claude: skip pricing for unknown models (tokens still tracked) to avoid hard-coded legacy prices. - Performance: reduce menu bar CPU usage by caching morph icons, skipping redundant status-item updates, and caching provider enablement/order during animations. - Menu: improve provider switcher hover contrast in light mode. - Icons: refresh Droid + Claude brand assets to better match menu sizing. - CI: avoid interactive login-shell probes to reduce noisy “CLI missing” errors.
- Codex: default to OAuth usage API (ChatGPT backend) with CLI-only override in Debug. - Codex: map OAuth credits balance directly, avoiding web fallback for credits. - Preferences: add optional “Access OpenAI via web” toggle and show blended source labels when web extras are active. - Copilot: replace blocking auth wait dialog with a non-modal sheet to avoid stuck login.
- Copilot: fix device-flow waiting modal to close reliably after auth (and avoid stuck waits). - Packaging: include the KeyboardShortcuts resource bundle to prevent Settings → Keyboard shortcut crashes in packaged builds.
- macOS: CodexBar now supports Intel Macs (x86_64 builds + Sonoma fallbacks). Thanks @epoyraz! - Droid (Factory): new provider with Standard + Premium usage via browser cookies, plus dashboard + status links. Thanks @shashank-factory! - Menu: allow multi-line error messages in the provider subtitle (up to 4 lines). - Menu: fix subtitle sizing for multi-line error states. - Menu: avoid clipping on multi-line error subtitles. - Menu: widen the menu card when 7+ providers are enabled. - Providers: Codex, Claude Code, Cursor, Gemini, Antigravity, z.ai. - Gemini: switch plan detection to loadCodeAssist tier lookup (Paid/Workspace/Free/Legacy). Thanks @381181295! - Codex: OpenAI web dashboard is now the primary source for usage + credits; CLI fallback only when no matching cookies exist. - Claude: prefer OAuth when credentials exist; fall back to web cookies or CLI (thanks @ibehnam). - CLI: replace `--web`/`--claude-source` with `--source` (auto/web/cli/oauth); auto falls back only when cookies are missing. - Homebrew: cask now installs the `codexbar` CLI symlink. Thanks @dalisoft! - Cursor: add new usage provider with browser cookie auth (cursor.com + cursor.sh), on-demand bar support, and dashboard access. - Cursor: keep stored sessions on transient failures; clear only on invalid auth. - z.ai: new provider support with Tokens + MCP usage bars and MCP details submenu; API token now lives in Preferences (stored in Keychain); usage bars respect the show-used toggle. Thanks @uwe-schwarz for the initial work! - Copilot: new GitHub Copilot provider with device flow login plus Premium + Chat usage bars (including CLI support). Thanks @roshan-c! - Preferences: fix Advanced Display checkboxes and move the Quit button to the bottom of General. - Preferences: hide “Augment Claude via web” unless Claude usage source is CLI; rename the cost toggle to “Show cost summary”. - Preferences: add an Advanced toggle to show/hide optional Codex Credits + Claude Extra usage sections (on by default). - Widgets: add a new “CodexBar Switcher” widget that lets you switch providers and remember the selection. - Menu: provider switcher now uses crisp brand icons with equal-width segments and a per-provider usage indicator. - Menu: tighten provider switcher sizing and increase spacing between label and weekly indicator bar. - Menu: provider switcher no longer forces a wider menu when many providers are enabled; segments clamp to the menu width. - Menu: provider switcher now aligns to the same horizontal padding grid as the menu cards when space allows. - Dev: `compile_and_run.sh` now force-kills old instances to avoid launching duplicates. - Dev: `compile_and_run.sh` now waits for slow launches (polling for the process). - Dev: `compile_and_run.sh` now launches a single app instance (no more extra windows). - CI: build/test Linux `CodexBarCLI` (x86_64 + aarch64) and publish release assets as `CodexBarCLI-<tag>-linux-<arch>.tar.gz` (+ `.sha256`). - CLI: add alias fallback for Codex/Claude detection when PATH lookups fail. - Providers: support Arc browser cookies for Factory/Droid (and other Chromium-based cookie imports). - Providers: support ChatGPT Atlas browser data for Chromium cookie imports. - Providers: accept Auth.js secure session cookies for Factory/Droid login detection. - Providers: accept Factory auth session cookies (session/access-token) for Droid. - Droid: surface Factory API errors instead of masking them as missing sessions. - Droid: retry auth without access-token cookies when Factory flags a stale token. - Droid: try all detected browser profiles before giving up. - Droid: fall back to auth.factory.ai endpoints when cookies live on the auth host. - Droid: use WorkOS refresh tokens from browser local storage when cookies fail. - Droid: read WorkOS refresh tokens from Safari local storage. - Droid: try stored/WorkOS tokens before Chrome cookies to reduce Chrome Safe Storage prompts. - Menu: provider switcher bars now track primary quotas (Plan/Tokens/Pro), with Premium shown for Droid. - Menu: avoid duplicate summary blocks when a provider has no action rows. - OpenAI web: ignore cookie sets without session tokens to avoid false-positive dashboard fetches. - Providers: hide z.ai in the menu until an API key is set. - Menu: refresh runs automatically when opening the menu with a short retry (refresh row removed). - Menu: hide the Status Page row when a provider has no status URL. - Menu: align switcher bar with the “show usage as used” toggle. - Antigravity: fix lsof port filtering by ANDing listen + pid conditions. Thanks @shaw-baobao! - Claude: default to Claude Code OAuth usage API (credentials from Keychain or `~/.claude/.credentials.json`), with Debug selector + `--claude-source` CLI override (OAuth/Web/CLI). - OpenAI web: allow importing any signed-in browser session when Codex email is unknown (first-run friendly). - Core: Linux CLI builds now compile (mac-only WebKit/logging gated; FoundationNetworking imports where needed). - Core: fix CI flake for Claude trust prompts by making PTY writes fully reliable. - Core: Cursor provider is macOS-only (Linux CLI builds stub it). - Core: make `RateWindow` equatable (used by OpenAI dashboard snapshots and tests). - Tests: cover alias fallback resolution for Codex/Claude and add Linux platform gating coverage (run in CI). - Tests: cover hiding Codex Credits + Claude Extra usage via the Advanced toggle. - Docs: expand CLI docs for Linux install + flags.