Skip to content

The accounts strip

The foot of the rail carries one row per account: how much of each provider’s allowance you have used, and when it resets.

A row is a provider mark followed by one badge per rate-limit window:

◇ 5h 4% 9:10 PM Wk 29% 8/24 5:00 AM
  • 5h 4% 9:10 PM — the five-hour window, 4 percent used, resetting at 9:10 PM.
  • Wk 29% 8/24 5:00 AM — the weekly window, 29 percent used, resetting on 24 August at 5:00 AM.

Only the weekly badge carries a date, and only when its reset is not today. Each badge is tinted by how much of its window is gone.

One row per Claude account, grouped by the account a session actually bills — not by the profile it was launched on, so two profiles signed in to the same account share a single row. Your default account comes first, then each profile that signs in to a Claude account of its own, in the order your profile list gives them.

If Nightdesk cannot tell which account a session billed, that session feeds no row at all. It is never quietly folded into your default account’s figures: a percentage that might be describing the wrong account is worse than one that is missing.

Then one row per Codex home, after the Claude rows — your default ~/.codex first, then each seat you have configured. Codex sessions do not report their usage the way Claude sessions do, so Nightdesk asks Codex for those figures directly whenever it loads the strip.

A row is named only once there is more than one to tell apart, and the two harnesses are counted separately, because their defaults differ.

On the Claude side a single row is always your default account, so it stays unnamed. On the Codex side a single row might be your default home or it might be a seat — a logged-out default home shows nothing at all — so a lone default stays unnamed, while a lone seat wears its name.

The strip closes with an estimate of what you have spent, one per backend you have a profile for:

7d ~$1.35

The tilde is doing real work. This is a local estimate, computed on this Mac from your own transcripts. It is not a balance, not an invoice, and not a figure fetched from a provider, and the window rolls — it is the last seven days, not a billing period. The caveats are on the hover.

An unknown model is never silently priced at zero. If part of the window could not be priced, the figure carries a +unpriced tail; if none of it could, the row reads unpriced where the amount would be.

The spend rows share one line while it fits, and stack when it does not.

Absent is never zero. An account that has genuinely used nothing and a reporting path that is not working are different facts, and the strip will not render the second as the first. When the figures are missing it says so, and where it can distinguish the cause it names it — a reporting script older than the app, for instance, or a plan whose status line carries no rate-limit information at all — which never resolves by waiting.

A seat you have configured but not yet used shows its mark, its name, and a dash. A paid seat is never invisible; leaving it out would read as you only have one account.

The badges keep their size and the name shortens first. A clipped name still tells you which account you are looking at. A clipped percentage would tell you something untrue.