Usage
How close am I to a rate limit? You buy your own tokens, so managing your own limits is part of the deal. Usage is the answer to that question, for every harness you have enabled.
The point is to see the headroom before you dispatch a batch of twenty jobs, rather than discovering it three jobs in.
Two places it shows up#
The status strip at the top of board carries a chip per meter, as many as the
header has room for, with the rest behind an … flyout. You choose which meters
earn a chip per harness, so the strip stays the one number you actually watch.
The Usage screen is the full breakdown the strip omits: one card per enabled harness, each meter with its percentage, its pace, a reset countdown, when the reading was taken, and the error from the last attempt if it failed.
Pace is the one worth explaining. A meter colours by projected end-of-window usage rather than by where it is right now, so 40% used with four hours left in the window reads differently from 40% used with twenty minutes left. Sitting at half your quota is only alarming if you are going to blow through it.
What each harness can actually report#
Same honesty rule as everywhere else: a reading nobody has observed is reported absent rather than invented.
- Claude Code reports its 5-hour and weekly windows, read from the same credentials Claude Code itself uses. If you are on an API key instead of a subscription, the same windows arrive from the rate-limit headers.
- Codex reports the windows on your ChatGPT plan, including the per-model sub-quotas. Which window is 5-hourly and which is weekly varies by plan, so the labels come from the windows themselves.
- GitHub Copilot reports nothing, and says so. Its premium-request quota is only available through GitHub's billing reports, which need a token carrying a billing-read permission that none of the credentials toryo already has will carry. Rather than show you a made-up gauge, the card shows an error naming the permission the token you have is missing.
That last one is a gap, not a bug in your setup. There is nothing to fix on your machine.
Why it does not update constantly#
The endpoints these numbers come from rate-limit themselves. Claude's starts refusing at roughly once a minute across every client sharing your token, which includes Claude Code itself.
So readings are cached and re-polled on a cadence rather than live. A failed poll keeps showing you the last good numbers, with the time they were taken, instead of blanking the gauge and hammering the endpoint. Board also stops polling while its window is hidden.
Poll now on the Usage screen forces a fresh read of every enabled harness,
ignoring the cadence, for when you want the number this second.
What you can tune#
On the Settings screen, or from a terminal:
- How often to poll, shared or per harness. You can always slow one down. You can only speed one up as far as its endpoint tolerates, which is what keeps the override from breaking the thing it is measuring.
- Which harnesses to show at all, so a harness you do not use is not a card.
- When a meter turns red, as a utilization percentage.
toryo usage get # the current readings
toryo usage poll # force a fresh read
toryo usage providers # what is registered, and what is switched on
Where things go wrong#
- A card shows an error about a missing permission. That is Copilot, and it is expected. See above.
- A reading is stale. The last poll failed and you are looking at the last good numbers, which is deliberate. The card says when they were taken.
- A harness has no card. It is switched off, either in Usage's own settings or as a harness this machine offers. See Harnesses.
- Cost on a job is blank rather than zero. Different question, same rule: only Claude Code reports cost, so jobs run on the other two have none to show.
Full command surface: CLI & contract reference.