Skip to content

v1.3.0 — The One That Shows Your Effort (and Your Limits)

Choose a tag to compare

@tpierrain tpierrain released this 11 Jul 07:04
· 24 commits to main since this release

Clepsydre — an always-on context-window status line for Claude Code.

Two community-driven segments land together this release, both merged with credit from external PRs. You now see how hard the model is thinking and, on Pro/Max, how much of your 5-hour window is left — without either one ever crowding out the token gauge that Clepsydre exists for.

Highlights

  • Reasoning effort, in the model bracket — your live /effort level rides inside the [model] label as a single glyph after a middot: [Opus 4.8·H]. low/medium/high/xhigh/max compact to ·L/·M/·H/·xH/·MAX, and the bracket stays bare when the model has no effort setting. It tracks /effort changes live, with no extra API call.
  • The 5-hour rate window (Pro/Max plans) — a new ⏳ 23% ↻ 2h13 segment shows how much of your rolling window you've burned and the countdown to reset, straight from the JSON Claude Code already hands the status line. The icon is the usual traffic light: ⏳ green → ⚠️ orange (≥ 70%) → ⌛ red (≥ 90%). Idle past your reset? Rather than show a stale, scary percentage, it becomes a calm green ⏳ reset until fresh numbers arrive.
  • Ordering now encodes priority — a new ADR 0002 makes left-to-right position the protection order: the token gauge and memory are tier-1 and never evicted. Effort is the one deliberate left-anchor (glued to the model, single glyph); the rate window is pinned far right, first to be clipped on a narrow terminal, because it's the most sacrificable.
  • Both on by default, both opt-out in one line — CLEPSYDRE_EFFORT=0 hides the effort glyph; CLEPSYDRE_RATE_WINDOW=0 hides the rate window. The rate-window color thresholds move via CLEPSYDRE_RATE_WARN / CLEPSYDRE_RATE_HIGH.

A tip of the hat 🎩

Both segments come from external contributors, merged with credit — their logic preserved, only placement/rendering adjusted to the ADR-0002 ordering rule:

  • @anaelChardan — the reasoning-effort indicator (PR #5).
  • @guillaumejay — the 5-hour rate-limit window (PR #4), on top of the git counts he already gave us.

Thank you both for contributing upstream. 🙏

Opt out

Add any of these to the "env" block of your settings.json (global ~/.claude/settings.json or a project's .claude/settings.json):

{ "env": { "CLEPSYDRE_EFFORT": "0", "CLEPSYDRE_RATE_WINDOW": "0" } }

Install / update

Already installed? Just git pull — no re-install, and the new segments light up on the next render. New here:

git clone git@github.com:tpierrain/clepsydre.git ~/clepsydre
cd ~/clepsydre && node install.mjs

Then restart Claude Code.

⚠️ Ignore the "Source code (zip / tar.gz)" archives below. GitHub attaches them automatically and they're useless for Clepsydre: the installer points your status line at an absolute path inside your clone, so updates land with a plain git pull — a downloaded archive has no git history to pull.