Skip to content

v1.4.0 — The One That Trims the Long Names

Choose a tag to compare

@tpierrain tpierrain released this 11 Jul 08:10
· 12 commits to main since this release

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

This release keeps the line tight, so the token gauge Clepsydre exists for stays on-screen even when your model name is verbose, your branch name is long, or your project folder has a mouthful of a name. Nothing to configure — it just fits better. Follows v1.3.0.

Clepsydre status line, all segments: [Opus 4.8 1M·H] folder second…rator, branch test/r…ening ±6, 126.0k/300.0k (42%) green, MEMORY.md 9.1K, mem 140.0K/40f, rate window 39% resets in 1h23

Highlights

  • A tighter model label that still tells you the window — the verbose (1M context) qualifier no longer bloats the label; the window size rides along as a compact badge instead: [Opus 4.8 (1M context)·H] → [Opus 4.8 1M·H]. And the size is read from the real number Claude Code reports (not the marketing name), so even a model named just Sonnet 4.6 shows its [Sonnet 4.6 200k·H]. Never a hardcoded model→size table (which would rot the day the lineup changes) — see ADR 0005. On by default; opt out with CLEPSYDRE_MODEL_MAX=0.
  • The git branch stays in its lane — a long branch sits left of the token gauge, so it used to be able to push the gauge off a narrow terminal. It's now capped at 12 characters by default, clipped with an ellipsis in the middle so both the head (feature/…) and tail (…-name) survive — the parts a tail-only cut would throw away. Normal names (main, feature/foo) show in full. Tune it with CLEPSYDRE_BRANCH_MAX, or set 0 (or off/false/no) to always show the whole branch — handy on a wide screen, where nothing gets evicted anyway.
  • And so does the folder name — the 📁 project folder sits left of the gauge too, so a long name (say second-brain-generator) crowded it the same way. Its default cap is conditional: 12 characters when a git branch is also shown (branch and folder then share the space left of the gauge, so each stays tight), 25 without (a non-git working dir — the folder owns that space alone, so it can breathe). Same middle ellipsis. Normal names (clepsydre, my-project) show in full. Tune with CLEPSYDRE_FOLDER_MAX, or 0/off to show it whole.
  • The 5-hour rate window: honest by design — a new ADR 0004 records why the rate window shows only when Claude Code has actually sent fresh numbers, and stays hidden otherwise rather than bridging with a stale, possibly misleading figure. No behaviour change — the reasoning is now written down.

Here's the tightening in the wild — a long folder (second…rator) and branch (test/r…ening) both clipped in the middle, so the token gauge never budges even as the window climbs into the ⚠️ ease-off tier:

Clepsydre status line, warning tier: [Opus 4.8 1M·H] folder second…rator, branch test/r…ening ±6, 183.8k/300.0k (61%) with the ⚠️ ease-off icon, MEMORY.md 9.1K, mem 140.0K/40f, rate window 39% resets in 1h22

With thanks, still 🎩

The segments this release protects came from external contributors — and the rate-window decision above concerns @guillaumejay's work directly:

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

Thank you both. 🙏

Tune the branch and folder caps

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

{ "env": { "CLEPSYDRE_BRANCH_MAX": "0", "CLEPSYDRE_FOLDER_MAX": "0" } }

For each: 0 (or off/false/no) shows the name in full; any positive integer sets the width (default 12 for the branch; the folder defaults to 12 when a branch is shown, 25 without).

Install / update

Already installed? Just git pull — no re-install, and the changes land 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.