Desktop app · macOS
The only app you need open
Every agent CLI you already use launches from here, each in its own tab with its own meter. The diff it produced, the editor to fix the one line it got wrong, the commit box, the docs and your dev server are all in the same window, for every machine you work on. Close it and the agents keep running, because the daemon owns them, not the window.
Ten screens in dark, two per row. Click any one to zoom. Every screen ships in a light theme too. Screens from tokenstat desktop v0.6.7 · 20 August 2026; the app moves faster than this page, so if a screen looks different in your copy, your copy is right.
What it does
Every machine, every harness, one window
The work is spread across more places than it used to be: several harnesses, a laptop and a server, a folder per project, and an editor and a git client beside all of it. The app puts them in one window, on every machine you work on, and keeps one record of what the whole stack did.
Work on the server and the second Mac from this one
A folder on a remote box, on the laptop, and on this machine all behave the same way in the same sidebar: same file tree, same launcher, same terminal, same diff. Start an agent on the machine with the GPUs, or the one with the repo, without opening a session to it first. Forward a port and its dev server opens in the app's own browser.
Every harness you use, launched from the folder it works in
Claude Code, Codex, Grok Build, Cursor, OpenCode and the rest launch from the project they work on, each in its own tab, with the flags, model, and environment you saved for that folder instead of a command you retype. Point any of them at LM Studio or Ollama from the same selector. Optional bypass skips permission prompts for that workspace on the next launch, off by default and never on a timer. The sidebar tells you which ones are working and which are waiting on you, and closing the app does not stop them: the daemon owns the sessions, not the window.
A real editor and the git history, beside the agent
The diff, the change count, and a commit box sit one tab from the session that produced them, and the editor beside it has highlighting, find, and changed-line marks, so you fix the one line it got wrong without switching apps. Nothing is staged or committed unless you do it.
One heatmap across every AI tool you use, which nothing else builds
Each vendor will show you its own dashboard for its own tool. This is the year of your actual work: Claude Code, Codex, Cursor, and the rest joined into a single activity calendar, with volume by day, value by model, and breakdowns by harness and project over any window. An inspector opens any row when a number looks wrong, and usually something is, like a cheap change being made by an expensive model.
Hand off the work that does not need you
Queue the jobs you would otherwise sit and watch, and let them run on a schedule with a budget they stop at rather than one they report afterwards. They belong to the daemon, so they run with the window closed and the work is done when you come back.
Know what you have left before you start a long one
Today and this week at list rates, how much of each plan window is gone, when it resets, and what is already running. Worth a glance before you kick off the session you cannot afford to have cut off halfway.
Your account without leaving the app
Your profile, your dashboard, and the docs open in the window you are already in, so checking a number does not cost you the context you were holding.
Why now
Some tools delete usage history
Claude Code removes its transcripts after 30 days by default. Usage never scanned before then is gone from the device for good. The app and the CLI share one archive, so a scan on this Mac keeps the counters before a tool discards its source records. Install it before you get curious, not after.
tokenstat doctor compares that archive against Claude Code's own rollup and shows how much has already been lost. The same command lives in the CLI, and the help center covers what each confidence band means.
More detail: when numbers disagree with a vendor dashboard, and the CLI page.
Plan limits
The app can tell your dashboard what is left
The app tracks how much of each plan window you have used and, if you turn it on, it sends those readings to your account so tokenstat.ai shows the same numbers. What travels is the percentage used per window and when the window resets, per harness. Not what you ran, not which models, not any project name. The readings are never public: they appear on your own signed-in dashboard and nowhere else, and turning the setting off stops them.
In the app under Account settings → Share plan limits with my devices.
Requirements
What it needs, and what is still coming
| Requirement | Detail |
|---|---|
| macOS | 14 or newer, universal binary, signed and notarized |
| Account | Not required. Everything local works signed out, forever |
| CLI | Not required either. The app carries the same engine |
| Windows, Linux | Planned, as a UI shell over the same daemon rather than a rewrite |
| iPhone, iPad | Built, and heading for the App Store. See /mobile |