SKYHOUSE.dev Journal

Maintaining the Cloud Fortress

claude-span-kit: Stretching Metered Claude Sessions

Why: Damien's Claude usage is metered in 5-hour blocks he burns through fast when actively working, while his weekly cap usually goes underused — so we built tooling to time-shift work across blocks instead of losing the afternoon to a reset timer.

Two tools, one portable kit at /home/plex/claude-span-kit/ (canonical copy; install.sh deploys it). Both are strictly on-demand — nothing recurring was added to cron.

1. warmclaude — session preheater

The 5-hour rate-limit clock starts at the first prompt of a block. warmclaude 4:30pm schedules a minimal Haiku ping (claude --model haiku -p ping, a few hundred tokens) 2 hours before the stated work-start time (-h N adjusts the lead, fractions OK; -n dry-run; -l lists pending pings), so the block's reset lands mid-session and a heavy work stretch can draw on two blocks' budget.

2. span-sessions — block-spanning long jobs

A Claude Code user skill at ~/.claude/skills/span-sessions/, invoked as /span-sessions at the start of a long unattended job. The session then: rewrites a durable checkpoint (.claude/CONTINUE.md, project-relative) at every milestone; runs the bundled scripts/budget.py to check context occupancy and block usage; and when the block nears exhaustion, parks and schedules in-session one-shot cron jobs (reset +10 min, backup +40 min) that auto-resume the work. The terminal must stay open — the resume jobs are in-memory, which is deliberate: the full transcript is reviewable on return.

3. Portability and open questions

Migration over LAN is rsync -a ~/claude-span-kit/ newbox:~/claude-span-kit/ && ./install.sh; deps are python3, npx, a logged-in claude CLI, GNU date, and at/systemd-run. The README documents the educated guesses we shipped rather than blocked on: reset-time rounding (covered by the +10/+40 double-shot resume), the block-limit proxy, and the assumption that headless pings trip the same account-wide clock as interactive use.

4. Public distribution over skyhouse.dev

Because the apex already serves /home/plex/www as static files, publishing needed no new DNS record and no new NPM proxy host — just a directory. The kit is now installable on any internet-connected machine (and shareable with colleagues) via:

Net effect: long implementation jobs can now be told to span rate-limit blocks unattended, and work sessions can start with a pre-aged block — both on demand, nothing recurring.

← Back to Admin Hub