v5.6.0
What's Changed
New Features
Personal deadline (SL_USAGE_DEADLINE) — pace usage against your own horizon instead of the API reset, for when your week ends before the window does (you stop Friday noon, but the weekly limit resets Saturday 22:00).
export SL_USAGE_DEADLINE='2026-08-14T12:00' # or '2026-08-14 12:00'Absolute ISO 8601, local time unless you add an offset. It applies to every usage window whose reset falls after it, and moves all three things the window end feeds:
| Without | With deadline Fri 12:00 |
|
|---|---|---|
| Reset label | → Sat 22:00 |
→ [Fri 12:00] |
| Gauge ratio & color | vs. Sat 22:00 | vs. Fri 12:00 |
| Burndown | ... then 1 d to renew |
... then 2 h to stop |
- Only the window end moves — usage still accumulated from the real window start, so the observed burn rate stays honest. What shrinks is the time left to spend the rest.
- The overridden end shows in square brackets so it never reads as an API reset.
- Burndown says
to stoprather thanto renew, since budget does not renew at your deadline; the Soon message drops the renewal reference entirely. - Ignored once in the past, beyond the API reset, or unparseable — the API value is the automatic fallback, so a stale deadline needs no cleanup.
Fixes
- Fixed a stale stdin JSON example in the README that made the script print nothing when copy-pasted.
No breaking changes — with SL_USAGE_DEADLINE unset, behaviour is identical to v5.5.0.
Full Changelog: v5.5.0...v5.6.0