Skip to content

luisleineweber/usagebar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

560 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

UsageBar

Windows-first tray app for tracking AI coding subscription usage across providers in one place.

UsageBar is a fork of OpenUsage, redirected toward a Windows-native desktop experience instead of preserving upstream compatibility as the main constraint.

UsageBar Screenshot

Download

Windows alpha/beta builds are published as GitHub prereleases.

Release plan:

  • Next public milestone: Alpha 2, as an unsigned Windows technical preview
  • Windows: GitHub prerelease with a NSIS setup .exe
  • macOS: still secondary while the Windows fork stabilizes

Download published builds from UsageBar releases.

Release process and preflight checks live in docs/releasing.md.

Install, Uninstall, And Data

Alpha and beta Windows builds are distributed from GitHub Releases as a NSIS setup .exe.

Alpha 2 signing note: the Windows installer is intentionally unsigned while Authenticode signing is deferred. Windows may show Unknown publisher or SmartScreen warnings. Treat Alpha 2 as a technical preview for users comfortable with prerelease desktop software.

Install:

  1. Download the latest UsageBar_*_x64-setup.exe asset from UsageBar releases.
  2. Run the installer.
  3. Open UsageBar from the Start menu or tray.
  4. Open Settings, enable a provider, and follow that provider's setup instructions.

Uninstall:

  • Use Windows Settings > Apps > Installed apps > UsageBar > Uninstall.
  • If a local test build was installed manually, rerun the same installer and choose uninstall if Windows does not list it yet.

Local data:

  • App settings, provider order, display preferences, and app-owned provider secrets live under %APPDATA%\com.sunstory.usagebar.
  • Provider secrets saved by UsageBar on Windows are encrypted with Windows DPAPI in the app data directory.
  • Some providers also read their own local CLI, IDE, browser, or cloud SDK files. Those paths are documented in each provider page.
  • Legacy beta installs may still have old OpenUsage data under %APPDATA%\com.sunstory.openusage; do not delete it until migration is verified.

Alpha Readiness

UsageBar is still pre-release. Alpha 4 means a Windows user can install from GitHub, enable supported providers, refresh usage, understand where each number came from, and report issues with enough context to debug. The Alpha 4 installer is unsigned; Authenticode signing is deferred.

What It Does

UsageBar lives in your Windows tray and shows you how much of your AI coding subscriptions you've used. Progress bars, badges, and clear labels. No dashboard hopping.

  • One glance. All your AI tools, one panel.
  • Always up-to-date. Refreshes automatically on a schedule you pick.
  • Global shortcut. Toggle the panel from anywhere with a customizable keyboard shortcut.
  • Lightweight. Opens instantly, stays out of your way.
  • Plugin-based. New providers get added without updating the whole app.
  • Local HTTP API. Read cached usage from 127.0.0.1:6736 for local widgets, scripts, and dashboards.
  • Proxy support. Route requests through SOCKS5/HTTP proxies for restricted networks.
  • Custom OAuth. Bring your own OAuth credentials for enterprise compliance.

Providers

Current Windows rollout status comes from each provider's plugin.json manifest in this fork.

Status meanings:

  • Supported: intended to work on Windows from the documented setup path.
  • Experimental: visible and testable on Windows, but setup, API shape, or live-account validation can still change.
  • Scope: names the usage source. Provider-reported means the provider API or local provider database supplies the number directly. Estimated or telemetry-based means UsageBar derives it from local logs, quota counters, known pools, or manually supplied sessions. Each provider page contains the exact source and limitations.
Provider Windows status Scope
Abacus AI Experimental API-key usage and credit details
Alibaba Coding Plan Experimental Coding Plan 5-hour, weekly, and monthly request quotas with region-aware auth
Amp Experimental Free tier, bonus, credits
Antigravity Supported All models
Augment Experimental Credits via signed-in Augment web Cookie header
Claude Supported Session, weekly, extra usage, local token usage (ccusage)
Codebuff Experimental Credit balance and weekly rate limit via API token or codebuff login credentials
Codex Supported Session, weekly, reviews, credits, managed multi-account selection
Copilot Experimental Premium, chat, completions
Cursor Supported Credits, total usage, auto usage, API usage, on-demand, CLI auth
DeepSeek Experimental API balance with paid and granted credit breakdown
Factory / Droid Experimental Standard and premium usage buckets
Gemini Experimental Gemini quota buckets and reported Code Assist tier
Grok Experimental CLI-authenticated billing credits and pay-as-you-go cap
JetBrains AI Assistant Supported Quota, remaining
Kilo Experimental Direct API-key usage endpoint
Kimi Code (Moonshot) Experimental Kimi CLI, kimi.com membership, session and weekly quota from local kimi login OAuth; optional official Moonshot API balance via https://api.moonshot.ai/v1/users/me/balance
Kiro Experimental Credits, bonus credits, overages tracking
MiniMax Experimental Coding Plan session usage, explicit reported plan when available
Mistral Experimental La Plateforme usage and billing details via signed-in session
Ollama Supported Plan, session, weekly
OpenCode Supported OpenCode Go subscription 5h, weekly, and monthly local CLI history; optional OpenCode Zen pay-as-you-go balance from a signed-in workspace session
OpenRouter Experimental Credits, balance, request-rate detail
Perplexity Experimental Recurring, purchased, and bonus credit pools via manual cookie/env auth
Synthetic Experimental Direct API-key quota endpoint
Vertex AI Experimental gcloud ADC OAuth plus Cloud Monitoring quota usage
Warp Experimental Request limits and plan badge from an undocumented app GraphQL operation
Windsurf Experimental Daily quota, weekly quota, extra usage balance
Zed Experimental Dashboard token spend via browser-backed cookie replay, with local telemetry fallback
Z.ai Experimental Session, weekly, web searches from undocumented subscription/quota endpoints

Want a provider that's not listed? Open an issue.

Current Limitations

  • Windows is the primary tested platform for this fork. macOS and Linux remain secondary until the Windows release path is boring.
  • Provider coverage is uneven: Supported means the Windows path is intended to work; Experimental means setup, API shape, or live-account validation may still change.
  • Some providers report usage directly; others estimate from local history, known quota pools, telemetry logs, or manually supplied session cookies. Provider docs describe the source per integration.
  • Prerelease auto-updates are intentionally conservative because GitHub's releases/latest alias does not resolve prereleases. Prerelease builds may open the matching GitHub release page instead of installing in-app.
  • Authenticode-signed Windows artifacts and full crash-recovery expectations are full-release work, not an Alpha 4 promise.

Architecture

UsageBar is a Tauri v2 desktop app with a Rust host and a React/TypeScript frontend. Provider integrations live as JavaScript plugins under plugins/ and are copied into the Tauri resource bundle for desktop execution.

  • Rust host: tray/window lifecycle, local HTTP API, updater, credential storage, SQLite access, and guarded plugin host APIs.
  • React frontend: tray panel, Settings window, provider setup, usage views, preferences, and update prompts.
  • Plugin manifests: provider identity, platform support, icons, docs links, and capability declarations.
  • Bundled plugins: generated by bun run bundle:plugins before dev/build so desktop resources match source plugins.

Privacy And Security

UsageBar is local-first. Secrets stay local. Provider APIs are called only when you explicitly enable and configure that provider, and credentials come from app settings, environment variables, browser/session cookies you provide, or OS credential storage depending on the provider.

  • Secrets stay on the machine unless a provider plugin must call that provider's API to read usage.
  • UsageBar does not send provider credentials, raw usage payloads, API keys, cookies, or app-owned provider secret files to UsageBar-owned services.
  • Plugin host APIs are allowlisted and capability-gated for sensitive operations such as write-capable SQLite access.
  • The WebView uses a restrictive starter content security policy.
  • The optional local HTTP API binds to 127.0.0.1:6736.
  • Telemetry uses the app's analytics integration only for product diagnostics; provider usage payloads and credentials are not telemetry data.
  • Crash logs are local support artifacts under %LOCALAPPDATA%\com.sunstory.usagebar unless a user explicitly attaches sanitized logs to a report. Automatic crash upload is not part of the Alpha 1 promise.

Fork Direction

This repository is no longer trying to stay narrowly aligned with upstream pull-request boundaries. The priority here is a clean Windows tray app, a plugin-first provider model, and pragmatic product decisions for this fork.

That means the fork can change UX, provider strategy, release packaging, and architecture when that is the right tradeoff for Windows.

Upstream lineage stays visible through the original OpenUsage link, fork history, and the upstream remote used for selective fixes. This repository should be read as its own product direction.

Contributing

  • Add a provider. Each one is just a plugin. See the Plugin API.
  • Read usage locally. See the Local HTTP API.
  • Fix a bug. Keep the change small, focused, and verified.
  • Request a feature or report a bug. Open an issue. Include the provider, auth source, Windows-specific constraints, app version, and sanitized logs. See bug report notes.
  • Share diagnostics safely. Include exact error text and timestamps, but do not attach API keys, cookies, raw credential files, or provider-secrets.json.

Keep it simple. No feature creep, no AI-generated commit messages, test your changes.

Lineage

UsageBar started from the OpenUsage codebase. This fork also borrows practical Windows ideas from CodexBar and provider reference patterns from ccusage where they fit.

License

MIT


Build from source

Warning: The main branch may not be stable. It is merged directly without staging, so users are advised to use tagged versions for stable builds. Tagged versions are fully tested while main may contain unreleased features.

Stack

  • Tauri v2
  • Rust
  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS v4
  • Zustand
  • Vitest

Local quality checks

bun run check
bun run test -- --run

bun run check is the default local quality gate for TypeScript, JavaScript, JSON/config formatting, ESLint, and TypeScript typechecking. Rust formatting and linting are exposed as bun run format:rust:check and bun run lint:rust while existing Rust style debt is cleaned separately.

Local release build

For a Windows beta-style build on this machine:

bun run release:check -- --release-tag v0.1.0-alpha.2
bun run build:release -- --bundles nsis

If TAURI_SIGNING_PRIVATE_KEY is unset, the helper automatically adds --no-sign so the local build can skip Tauri updater signatures. Windows installer builds require Authenticode material by default: WINDOWS_CERTIFICATE_BASE64 plus WINDOWS_CERTIFICATE_PASSWORD, WINDOWS_CERTIFICATE, or WINDOWS_CERTIFICATE_THUMBPRINT. The helper signs the final setup executable after the build so the Windows launch prompt can show the certificate publisher. The setup executable lands under src-tauri/target/release/bundle/nsis/.

For Alpha 2 unsigned technical-preview builds, set USAGEBAR_ALLOW_UNSIGNED_WINDOWS_INSTALLER=1; those installers can show Unknown publisher and trigger Windows SmartScreen's "unrecognized app" warning. Stable/public-confidence Windows builds should be Authenticode-signed; see docs/releasing.md.

Before pushing a release tag, run the same preflight with --require-clean so the tag is cut from a clean worktree.

About

Windows-first tray app for tracking AI coding subscription usage across providers. Forked from robinebers/openusage.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 49.0%
  • TypeScript 34.7%
  • Rust 15.8%
  • CSS 0.3%
  • PowerShell 0.2%
  • HTML 0.0%