Repository navigation
Releases
0.7.0
New
- One account can have limits of its own.
perAccountin the rotation config overrides the shared
bucketsfor that account, field by field; every other account keeps the shared limits. The
account is left at its own limit and ranked by the room under it. cc-account's settings menu sets
it.
Fixed
- Rotation no longer forgets the other accounts. Every open session writes the same state file, and
a session reading it mid-write took it as empty and saved an empty one over it, so accounts last
seen spent ranked as fresh. The file is now replaced whole, and one that cannot be read is left
alone.
v0.6.0
Fixed
- On Windows, copies of cc-pace no longer pile up. Claude Code cancels a statusline render by
killing the Git Bash that runs it, and a kill that lands while bash is starting node leaves that
node paused forever, before cc-pace has run a line: ~4 MB each, 109 of them in six days on one
machine. Once an hour a render now closes such copies in the background - one paused thread, no
CPU ever used, over a minute old, parent gone."reapStuck": falseturns it off. The cause is
in Claude Code: anthropics/claude-code#98976. - A time a week or more away carries the day of the month -
Sat 14 16:15- so it never reads as
this week's. A pool forecast played across a whole window, oreta: "always", lands there.
npm install -g claude-code-pace@0.6.0v0.5.1
The README describes how rotation stops to ask - when a switch lands on an account already over its limit, or, with askIfUnreadSecs, before switching into an account read too long ago - with both status lines. The full history is now in CHANGELOG.md. No code changes since 0.5.0.
v0.5.0
Rotation no longer trusts a stale session, and stops to ask instead of guessing.
Fixed
- A session left idle since a switch keeps rendering the account it last spoke to. Its numbers were filed under the live account, which could flee an account that was not spent and save it as about to refill - so it later ranked as a fresh week and was switched into while nearly spent. A reading outside the live account's own saved window that falls in another account's saved window is now recognised as that account's, and decides nothing.
- A saved window's use never goes down: a lower reading of the same window is a stale payload.
- A reading whose reset has already passed is no longer saved.
New
- After a switch, the first reading of the new account is checked. Already over its bar, rotation stops instead of moving on, and the bar shows
! work already at 99% · pick an accountuntil you switch by hand. askIfUnreadSecs: stop and ask instead of switching into an account last read longer ago than this, or never. Use made outside Claude Code (claude.ai, the desktop app) never reaches a saved reading; this puts a person in front of a switch that relies on an old one. Off by default.- The question is published as
askin the state file; cc-account 0.5.0 shows it in red in every session. rotate.logrecords each stop as anaskline.
See docs/rotation.md.
v0.4.1
One depletion time per window: when the last hour's rate hits 100% before the reset, its time replaces the averaged ETA beside the ratio (2.76x today 16:18) instead of a second alert at the end of the line. The standalone Week 3h13m to 100% (16:18) appears only when that window is not on the line, and now sits right after the limits by default.
v0.4.0
- Chain an existing statusline: set "chain" in config and its output joins the line.
- Shorter line: Pool: merges the session's share and the pool outlook, Cache: merges context % and the cold-cache warning; Week, med+, and the hours without quota as -34h.
- Pool forecast: the rate eases from the week's average onto the tracked hours instead of jumping, and the hour tracking starts in now counts.
v0.3.0
The pool forecast now follows how you work, and the line got shorter.
Pool: push or slow down
With accounts in rotation, Pool is one instruction:
- green
↑40%- the accounts together last even 40% faster than your current pace - red
↓22% stop Fri 17:45 +37h- ease off by 22%; at this pace every account runs dry Friday 17:45, for 37 hours
The forecast no longer holds one account's weekly average around the clock. It measures what the pool burns per hour of work, the last few hours counting most, and learns which hours of the day you work from Claude Code's prompt history (timestamps only), so the nights you sleep are not projected as burn.
Shorter line
Pool: 35% ...- this session's share of the last hour's spend now opens the Pool segment.Cache: 42% cold in 12m (270k)- how full the conversation is, then the cold-cache warning, in one segment.- The old segment names
shareandmemorykeep working.
Fixes
- A heavy start to the week shows its ratio at once: the ratio now appears once 5% of the window has elapsed or 5% has been used. 12% used three hours into the week is a red 4.03x, not a blank.
v0.2.0
cc-pace still answers one question - am I burning my usage too fast? - and now says why, and what to do about it. Still zero tokens, zero API calls, zero dependencies.
New on the line
- Recent burn warning -
Weekly 1h7m to 100% (22:13). The window average hides a hard hour after a quiet week; this measures the last hour and speaks only when it hits 100% before the reset. - Why it burns - over budget, the model, its settings and each model's share of the spend follow the ratio:
Opus 5.5/medium 71% · Sonnet 5.5 27%, subagents included, priced to match/usage. - Cache warning -
cache cold in 12m (270k). After a break the next turn re-sends the whole conversation;/compactfirst avoids it. - Memory - how full this conversation is (what
/compactclears). - This chat - this session's share of what all open sessions spent in the last hour.
! configwhen the config file cannot be read, rather than silently ignoring it.
With cc-account
cc-pace works alone. Installed with cc-account it also switches accounts by itself: it skips logins about to stop refreshing, drains the account whose weekly reset would waste the most quota first, and forecasts whether the accounts together last - Pool: 1.40x/2.0x ok.
Changes
--setupaddsrefreshInterval: 60, so the line keeps time while you are idle.- Windows limited to one model (Opus, Sonnet, Fable, any future one) are hidden unless
showModelWindowsis on. - The pace ratio appears once 5% of a window has elapsed (was 2%), so it no longer swings at the start of a week.
- Labels use your terminal's own colour; grey is kept for the secondary parts.
git statusruns with--no-optional-locks, so it never takesindex.lockfrom under Claude Code.
v0.1.1
Full Changelog: https://github.com/poisons77/cc-pace/commits/v0.1.1