community-projects
AI Usage Ball shows Claude quota as liquid orbs on macOS
Claude News
community-projectsA macOS app called AI Usage Ball renders the remaining quota of three AI coding tools, Claude, Codex/ChatGPT and Antigravity, as animated liquid orbs on the desktop, with session windows, weekly limits and reset countdowns in a single view. The full source is published on Github.
At a glance
- The backend reads Claude usage from a browser session cookie or CLI credentials, Codex from ~/.codex/auth.json and Antigravity through local process detection, with nothing proxied through a remote service.
- The desktop shell is Tauri v2 with a React frontend, talking to a local Python FastAPI service on 127.0.0.1:8000 that streams usage state to the interface over SSE.
- Distribution is split: the signed, notarized Apple Silicon build comes with a 30-day trial and no card, while the repository stays under the PolyForm Noncommercial License 1.0.0 for audits and self-builds.
Quota tracking has become an operational problem for anyone running several assistants at once, since each provider reports its own session and weekly windows in its own place. Publishing the readers as source appears to be the main argument here: a tool that inspects local credential files asks for a level of trust that a closed binary cannot easily earn. The noncommercial license likely keeps that audit trail intact without opening the product to resale.
The FastAPI backend reads local credentials and streams usage on 127.0.0.1:8000
The Python backend lives in server/ and polls usage data from sessions and credentials already present on the machine. Claude state comes from a browser session cookie or CLI credentials, Codex from ~/.codex/auth.json, and Antigravity from detecting the local process. The results are streamed to the frontend over SSE.
The repository points to server/server.py as the ground truth for what is read and from where, and the project states that nothing is proxied through a server the developer runs. The rest of the tree covers the desktop app, the aiusageball.com landing page built as static HTML with no build step, and a SwiftUI watchOS companion listed as work in progress.
The release build freezes the Python server into a PyInstaller sidecar named aipulse-server
The frontend is a Tauri v2 shell around React, covering the main window, desktop widgets and the liquid-orb visualization. In development the two halves run separately: a virtualenv and python server.py on port 8000, then npm install and npm run tauri:dev inside the dashboard directory.
A distributable .app or .dmg starts by freezing the backend with PyInstaller into a single binary that is copied into dashboard/src-tauri/binaries as aipulse-server-aarch64-apple-darwin, the name Tauri expects for the target triple, before npm run tauri:build packages the app. Signing and notarization require the builder's own Apple Developer identity, and entitlements.plist carries disable-library-validation, which the PyInstaller sidecar needs to load its embedded Python under a hardened runtime. Unsigned local builds work for development.
PolyForm Noncommercial License 1.0.0 permits self-builds but not commercial use
The code is published under the PolyForm Noncommercial License 1.0.0, which allows reading, auditing, modifying and building the source for personal and noncommercial use. Selling it, bundling it or offering it as a paid service is not permitted, and the repository invites anyone wanting those rights to get in touch.
Distribution runs through the signed, notarized Apple Silicon build on aiusageball.com, which the project describes as supporting continued development. Every download includes a 30-day trial with no card required, and the first 100 users who try the app and share genuine product feedback can apply for a free lifetime personal license.
Where the watchOS companion stands
The AiPulseWatch directory holds a SwiftUI companion for watchOS that the repository lists as work in progress, with no shipping date given. The published build is offered for Apple Silicon and no other target is named, and the terms of the commercial license the project says it will discuss on request are not published.
Comments
No comments yet. Be the first.
Join the conversation
Sign in with Google to leave a comment. Your name and avatar come from your Google profile, and the comment appears after moderation.
We only use your name and avatar from Google. We never store your email address.
