Herdr Auto Warm Cache
Description
A herdr plugin that keeps an idle agent's prompt cache warm before the one-hour TTL expires — 20x cheaper than letting it lapse. Asks before it types, and never types into a pane that is waiting on you.
Installation
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open the source below and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
README
Cache Keepalive
**Your idle agents lose their prompt cache after an hour. This types one message into them before that happens.**
A [herdr](https://herdr.dev) plugin. Nothing is ever typed into a pane that is waiting on you, and your focus is never taken.
The problem, in numbers
An agent session's conversation is cached against the exact token prefix the request carries. Reading that cache bills at **0.1×** base input; writing it at the one-hour TTL bills at **2.0×** — and the TTL refreshes every time the cache is read. So a session stays cheap while you are talking to it, and the first message after an hour of silence pays 2.0× on the whole accumulated conversation.
Nothing surfaces this. The turn simply costs twenty times the one before it.
Measured across 32,037 billed turns in thirty days on one machine: **87 cold returns, 24.2M tokens re-written, average gap 5.0 hours.** Three real examples, where a message arrived *just* inside the hour:
| gap | tokens read | paid | cold would have cost |
|---|---|---|---|
| 57.5 min | 341,693 | $0.176 | $3.42 |
| 57.3 min | 510,815 | $0.320 | $5.17 |
| 51.7 min | 570,879 | $0.340 | $5.77 |
Count your own before you install anything:
for f in ~/.claude/projects/*/*.jsonl; do jq -rc 'select(.type=="assistant" and .message.usage != null) | [(.timestamp|sub("\\.[0-9]+Z$";"Z")|fromdateiso8601), (.message.usage.cache_read_input_tokens // 0), (.message.usage.cache_creation_input_tokens // 0)] | @tsv' "$f" 2>/dev/null | awk 'NR>1 && $1-p>3600 && $2==0 && $3>50000 {n++; t+=$3} {p=$1} END{if(n) printf "%d cold returns, %.1fM re-written\n", n, t/1e6}'; done
What it does
| at | what happens |
|---|---|
| 50 min idle | the pane is marked drowsy in a state file, so a bar can badge it |
| 55 min | a notification asks. Nothing is typed yet. |
| 57 min | unanswered, the message is typed and sent in one step |
The notification offers whichever outcome will *not* happen on its own, so the click is never
Related Skills
Auto Update
Pull the latest ECC repo changes and reinstall the current managed targets.
Development Ecc Guide
Navigate ECC's current agents, skills, commands, hooks, install profiles, and docs from the live repository su
Development Epic Claim
Claim an epic issue, stamp coordination state, and sync local ownership.
Development Epic Publish
Publish a validated epic update back to the issue and local cache.
Development Epic Review
Mark epic review requested, approved, or changes requested.
Development Epic Unblock
Sweep blocked epic issues and reopen anything whose dependencies are closed.
Development Related Agents
Django Build Resolver
Django/Python build, migration, and dependency error resolution specialist. Fixes pip/Poetry errors, migration
Openai Codex CLI
(55.8k ⭐) - Lightweight coding agent that runs in your terminal.
src/agents/ — 11 Agent Definitions
**Generated:** 2026-04-11