Releases: tpierrain/clepsydre
Release list
v1.2.0 — The One That Counts Without Being Asked
Clepsydre — an always-on context-window status line for Claude Code.
Last release taught the branch segment to count your git progress — once you asked it to. This one drops the asking: the ↑ahead ↓behind ±dirty counts are now on by default for everyone, because we benchmarked the cost and it turned out to be nothing on a normal repo. If you're on a giant monorepo where it does bite, one env var opts you back out.
Highlights
- Git counts, on by default — the branch segment now shows
↑2 ↓1 ±8out of the box: commits ahead of your upstream (to push), commits behind (to pull), and ± uncommitted changes. Each part shows only when it isn't zero, so a clean, in-sync repo still adds nothing. - Opt out in one line — on a very large monorepo the
git statusscan can cost more than you want per render. SetCLEPSYDRE_GIT_COUNTS=0(globally or per-project) and the branch falls back to a cheap ref-only read. - We measured before deciding — rather than build async machinery on a hunch, we benchmarked the working-tree scan: ~0 ms on a normal repo, and ~0.24 s warm even on the 95k-file Linux kernel. Cheap enough to default on; the full numbers and rationale live in a new ADR.
- Still robust — if git ever hiccups with the counts on, the line falls back to the plain branch; the rest of the status line is never affected.
A tip of the hat 🎩
This whole feature — the idea and the first implementation — is @guillaumejay's, from PR #1. v1.1.0 shipped it opt-in; this release simply trusts it enough to make it the default. Thank you, Guillaume, for the sharp idea and the clean contribution. 🙏
Opt out of the git counts
Only if you need to (e.g. a huge monorepo). Add this to the "env" block of your settings.json (global ~/.claude/settings.json or a project's .claude/settings.json):
{ "env": { "CLEPSYDRE_GIT_COUNTS": "0" } }Install / update
Already installed? Just git pull — no re-install, and the counts 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 plaingit pull— a downloaded archive has no git history to pull.
v1.1.0 — The One That Counts Your Git Progress (Once You Ask It To)
Clepsydre — an always-on context-window status line for Claude Code.
This release teaches the branch segment to show how far along you are in git — ahead, behind, and uncommitted — but only once you ask it to. It also cleanly separates the maintainer experience from the user one, so the repo you install never nags you with work that isn't yours.
Highlights
- Git progress counts, opt-in — set
CLEPSYDRE_GIT_COUNTS=1once (globally or per-project) and the branch segment gains↑2 ↓1 ±8: commits ahead of your upstream (to push), commits behind (to pull), and ± uncommitted changes. Each part shows only when it isn't zero. Off by default so the line stays instant — the branch alone is a cheap ref read, while the counts need agit statusworking-tree scan. Thanks @guillaumejay for the feature (#1)! - Robust by design — if git ever hiccups with the counts on, the line falls back to the plain branch; the rest of the status line is never affected.
- A "How to read it" guide — the README now decodes a real status line piece by piece (branch + ↑↓±, the token gauge, and the memory segment).
Maintainer / user separation
CLAUDE.mdis now split: a lean, public-facing root (if you just installed Clepsydre, there is nothing to "resume" —git pullto update) plus amaintainers/CLAUDE.mdthat only kicks in when a maintainer explicitly asks to develop. No more "continue the plan?" prompts for people who just want to use the status line.
Turn on the git counts
Add this to the "env" block of your settings.json (global ~/.claude/settings.json or a project's .claude/settings.json):
{ "env": { "CLEPSYDRE_GIT_COUNTS": "1" } }Install / update
Already installed? Just git pull — no re-install. 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 plaingit pull— a downloaded archive has no git history to pull.
v1.0.1 — Clepsydre
Clepsydre — an always-on context-window status line for Claude Code.
First published release. It ships the cross-platform Node port (macOS + Windows,
no jq/bc/bash), configurable color thresholds, and a code-review hardening pass.
Highlights
- 🧠/
⚠️ /🤪 token gauge and 🧩/⚠️ /🧨MEMORY.mdgauge — see context rot coming and/clearat the right time. - Cross-platform: pure Node, one artifact for macOS and Windows.
- Configurable thresholds via
CLEPSYDRE_*env vars (global or per-project).
Hardening in this release
resolveMaxignores a non-numeric / zero / negative window value and always floors to a sane denominator (no more/NaNor a stuck0%gauge).readMemorycounts only regular files — a subdirectory or a dangling symlink named*.mdno longer inflates the memory segment.- Internal cleanups: a single shared tier helper, one
statSyncper file, onegitspawn on the hot path. .gitattributespins LF so Windows clones never get CRLF.
Install
Just ask Claude Code to install Clepsydre for you (see the README), or do it by hand:
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. They are attached
automatically by GitHub and are useless for Clepsydre. The installer points your
status line at an absolute path inside your cloned repo, so updates land with a
plaingit pull— no re-install. A downloaded archive has no git history to pull
from, so it can never update itself. Clone the repo; don't download the zip.