Skip to content

Releases

0.7.0

Choose a tag to compare

@poisons77 poisons77 released this 13 Nov 13:08

New

  • One account can have limits of its own. perAccount in the rotation config overrides the shared
    buckets for 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

Choose a tag to compare

@poisons77 poisons77 released this 10 Nov 08:16

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": false turns 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, or eta: "always", lands there.
npm install -g claude-code-pace@0.6.0

v0.5.1

Choose a tag to compare

@poisons77 poisons77 released this 06 Nov 08:04

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

Choose a tag to compare

@poisons77 poisons77 released this 06 Nov 07:35

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 account until 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 ask in the state file; cc-account 0.5.0 shows it in red in every session.
  • rotate.log records each stop as an ask line.

See docs/rotation.md.

v0.4.1

Choose a tag to compare

@poisons77 poisons77 released this 03 Nov 05:33

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

Choose a tag to compare

@poisons77 poisons77 released this 01 Nov 06:52
  • 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

Choose a tag to compare

@poisons77 poisons77 released this 01 Nov 04:41

The pool forecast now follows how you work, and the line got shorter.

cc-pace status lines

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 share and memory keep 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

Choose a tag to compare

@poisons77 poisons77 released this 01 Nov 03:18

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.

cc-pace status lines

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; /compact first avoids it.
  • Memory - how full this conversation is (what /compact clears).
  • This chat - this session's share of what all open sessions spent in the last hour.
  • ! config when 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

  • --setup adds refreshInterval: 60, so the line keeps time while you are idle.
  • Windows limited to one model (Opus, Sonnet, Fable, any future one) are hidden unless showModelWindows is 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 status runs with --no-optional-locks, so it never takes index.lock from under Claude Code.

v0.1.1

Choose a tag to compare

@poisons77 poisons77 released this 26 Jul 13:36