Repository navigation
AI Usage Tracker 1.0.0
1.0.0 is the first stable release: follow a session request by request, keep a monthly budget, find anything with one shortcut, and share a day, month or year of your use as an image.
What's new
- Session timeline. Open a session on the Sessions page to see each of its requests as a column: how large the context was, how much came from the cache, where the cache was written again after a pause, where the context shrank, which requests came from subagents and which tools were called. The session's numbers sit under the chart.
- Monthly budget. Set a monthly limit for the API-equivalent cost of every tool in Settings → Monthly budget. The Overview shows this month's spend, how much is left and, after the first days of the month, where you are heading at this pace. A notification tells you when you reach 80% and when you go over; turn it off in Settings → Notifications.
- Search everything. Press Cmd+K on a Mac or Ctrl+K on Windows and Linux, or click Search in the sidebar, to jump to any page, setting, project, model or session. You can also switch the theme, show or hide the widget, and check for updates from there.
- Summary cards. The new Summary cards page turns a day, a month or a year of use into an image: a 1080 × 1920 Instagram story and a 1080 × 1080 square, in navy or light. A card shows your tokens, the API-equivalent cost, what your plan was worth when its price is known, your busiest days, your longest streak, the cache hit rate and the model you used most. Save either one as a PNG. Cards hold totals and model names only, never project names or anything you wrote.
- Notifications you can check. Settings → Notifications → Test notification shows whether your system lets the app notify you, and tells you where to allow it if not. Clicking a limit notification opens the Limits page.
- Menu bar warnings without the square (macOS). Near and at a limit, the menu bar dial turns orange or red on its own, without a colored square behind it.
- CSV for Excel. Settings → Data → Export has a CSV (;) format with semicolons and a decimal comma, so Excel in languages such as Turkish or German opens it in the right columns.
Fixes
- Notifications on Linux stay on screen. GNOME removes an app's notifications as soon as the connection that sent them closes, so a notification could vanish before you saw it. The app now keeps one connection open for its notifications, and clicking one opens the app.
- Switching accounts is not a reset. Changing the Claude or Codex account in use no longer sends "your limit has reset" for a limit that has not. Limit notifications follow the account in use, so another account's limit starting again never reads as if yours were free.
- Read intervals stay as you set them. Changing how often two tools' limits are read, one right after the other, could briefly show the first one's old interval again on the Sources page.
- Prices follow the app's updates. A price list you saved once kept every price as it was that day, so later corrections never reached it. Now only the prices you change are kept, and every other model follows the app's list. Prices can also change on a set date: Gemini 3.6, 3.7 and 3.8 Flash keep their introductory price for 2026 and take the regular one from 2027-01-01, without repricing your earlier use.
- Use of an unidentified account is not "use from elsewhere". With several Claude or Codex accounts, requests no evidence ties to an account no longer make a limit's rise look like use from the web or another computer; on the Limits page they get a share of their own. A reading taken before such requests is no longer shown as current.
- OpenCode tool calls are counted once. A tool call read while its input was still streaming was stored twice.
- "Try again" tells the truth. When Claude's 5-minute rule blocks the read, the app now says the read will come in a few minutes instead of reporting the limits as read.
- The widget leaves the keyboard alone (macOS). Saving a setting no longer makes the widget the active window, so typing on the Menu bar page and ⌘W go to the dashboard.
- Long periods stay responsive. While a tool is writing, a period of six months or more refreshes at most every 15 seconds instead of reading the whole archive again every second or two.
- One notification when a reset time moves. If a full limit's reset time moves without the limit resetting, you no longer get "has reset" and "is full" at once.
- An outdated reading looks outdated on the tray icon. When a limit was used after its newest reading, the icon's number or dial is drawn faded, as the menu bar text marks it with "~". On Windows the icon is the only place that shows it.
- A window the provider stopped reporting goes away. Claude no longer reports a separate Opus week; once such a window is over and a newer read leaves it out, its card leaves the Limits page instead of staying as "reset".
- A conversation that moved is followed (Antigravity). When the same conversation exists in more than one Antigravity folder, the copy written last is read, so one that goes on in its new place keeps counting.
- Changing the hotkey leaves nothing behind (Linux). Each change used to keep an old listener and its connection to the desktop open.
- Keyboard and screen reader access. The session timeline's columns can be stepped through with the arrow keys, and each request is read out; the search list groups its results so screen readers announce them, and an empty search is announced.
- File names get their extension. The PDF summary, exports and backups ask again with the extension when the save dialog leaves it off, and the PDF summary is only saved as a
.pdf.
Good to know
- No database change. Backups made with 1.0.0 can still be imported into 0.9.0.
- Tighter window permissions. The widget, the tray panel and the hidden PDF page may now only listen to the app's events and size or move their own window; only the dashboard has the wider access.
- Linux and Windows notifications are built and checked automatically, but clicking them was tested by hand only on a Mac. Please report anything odd.
Install
- Windows:
AI-Usage-Tracker_1.0.0_x64-setup.exe. No administrator rights are needed. The installer is not code-signed, so Windows may show "Unknown publisher". Choose More info → Run anyway. - macOS:
AI-Usage-Tracker_1.0.0_universal.dmg. Drag the app to Applications and open it from there. - Linux:
AI-Usage-Tracker_1.0.0_x86_64.deb(Debian, Ubuntu),AI-Usage-Tracker_1.0.0_x86_64.rpm(Fedora; on openSUSE add--allow-unsigned-rpm), orAI-Usage-Tracker_1.0.0_x86_64.AppImage(any distribution).
If you already use an earlier version, update from inside the app (Settings → Updates, the bottom left of the window, or the banner).
See the README for details, including how to uninstall on each system.
Verify a download: put SHA256SUMS next to the file and run sha256sum -c SHA256SUMS --ignore-missing (Linux) or shasum -a 256 -c SHA256SUMS --ignore-missing (macOS).
The .sig, .app.tar.gz, and latest.json files are used by the in-app updater; you don't need to download them.
Code signing policy: see CODE_SIGNING.md.