cache-efficiency — Claude Code skill: prompt cache analysis
The skill works out whether prompt caching pays off: hit rate, write-versus-read reuse, and what each side costs in dollars.
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cache-efficiency -a claude-codeWhat cache-efficiency does
It reads from the Agent Monitor dashboard. Token totals come from /api/analytics, per-session rows from /api/sessions, and money from /api/pricing/cost. You get a Markdown report with tables: the hit rate, how many tokens were written against how many were read, and the dollar split between the two. One section ranks the ten sessions with the weakest reuse.
The math is short. cache_hit_rate = total_cache_read / (total_cache_read + total_input), and cache_reuse = total_cache_read / total_cache_write. A reuse figure below 1 means you are paying to cache context you hardly read back. Cache writes cost more per token than reads, and they are billed even when the cached block never gets reused. Counts are effective totals, current + baseline, so pre-compaction tokens stay in the picture.
The skill takes an argument: leave it empty to cover everything, pass a window such as “today”, a session ID to narrow the scope, or a target like “hit rate > 80%”. Without Agent Monitor running, there is nothing to pull — all four endpoints belong to that dashboard.
What it helps with
- measure the prompt cache hit rate across all sessions
- spot sessions that write far more cache than they read
- split cache spend into read and write dollars
- estimate the savings from a higher hit rate
- drill into one session with poor reuse
Example prompts for the agent
- Analyze prompt cache efficiency for this week
- Show the sessions with the worst cache reuse
- Drill into session
abc123— why is its cache read so low?
How to install cache-efficiency
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cache-efficiency -a claude-code2Manually: put the files in place
~/.claude/skills/cache-efficiency/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/cache-efficiency/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cache-efficiency -a codex2Manually: put the files in place
.agents/skills/cache-efficiency/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cache-efficiency -a cursor2Manually: put the files in place
.cursor/skills/cache-efficiency/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install hoangsonww/Claude-Code-Agent-Monitor cache-efficiency2Manually: put the files in place
.github/skills/cache-efficiency/SKILL.md1Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cache-efficiency -a gemini-cli2Platform CLI
gemini skills install https://github.com/hoangsonww/Claude-Code-Agent-Monitor --path plugins/ccam-analytics/skills/cache-efficiencyManually: put the files in place
.devin/skills/cache-efficiency/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cache-efficiency -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about cache-efficiency
How do I install cache-efficiency in Claude Code?
Run npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cache-efficiency -a claude-code. The skill lands at ~/.claude/skills/cache-efficiency/SKILL.md.
What does cache-efficiency do?
It computes the prompt cache hit rate, the write-to-read reuse ratio, the dollar split of cache spend, and ranks the sessions with the poorest reuse. Output is a Markdown report with tables.
What does the skill need to run?
The Agent Monitor dashboard endpoints: /api/analytics, /api/sessions, /api/sessions/{id}, and /api/pricing/cost. With no dashboard running, there is nothing to analyze.
Source text
SKILL.md · MIT
---
name: cache-efficiency
description: >
Analyze prompt-cache effectiveness for Claude Code usage from the Agent
Monitor dashboard — cache hit rate (total_cache_read / (total_cache_read +
total_input)), cache_write vs cache_read reuse, cache-read vs cache-write
spend, and the sessions with the poorest reuse. Pulls token totals from
/api/analytics, per-session detail from /api/sessions, and dollar splits
from /api/pricing/cost. Use when diagnosing cache spend or deciding whether
prompt caching is paying off.
---
# Cache Efficiency
Diagnose whether prompt caching is actually saving money, and where it is not.
## Input
The user provides: **$ARGUMENTS**
This may be: empty (analyze the whole fleet), "today" / "this week" / a date range, a session ID to scope the analysis, or a target like "hit rate > 80%". When empty, analyze all data from `/api/analytics`.
## Data Sources
| Endpoint | Returns |
|----------|---------|
| `GET /api/analytics` | `tokens.total_input`, `tokens.total_output`, `tokens.total_cache_read`, `tokens.total_cache_write` (baselines pre-summed), plus `daily_sessions` |
| `GET /api/sessions?limit=200` | Session list — each has model, cwd, started_at, ended_at, inline `cost`, metadata (JSON: usage_extras with cache token detail) |
| `GET /api/sessions/{id}` | Full session detail with nested agents and events, for drill-down on a flagged session |
| `GET /api/pricing/cost` | `{ total_cost, breakdown: [{ model, input_tokens, output_tokens, cache_read_tokens, cache_write_tokens, cost, matched_rule }] }` — used to price cache read vs write spend |
### How cache economics work
```
cache_hit_rate = total_cache_read / (total_cache_read + total_input)
cache_reuse = total_cache_read / total_cache_write
cache_read_cost = (cache_read_tokens / 1M) × cache_read_per_mtok
cache_write_cost = (cache_write_tokens / 1M) × cache_write_per_mtok
```
Cache writes cost more per token than cache reads (e.g. Sonnet $3.75 write vs $0.30 read per Mtok), and writes are billed even if the cached block is never reused. The payoff only arrives on subsequent reads — so a healthy fleet shows **cache_read_tokens far exceeding cache_write_tokens**. When `cache_reuse < 1`, you are paying to cache context you barely re-read.
Token counts are **effective totals** = `current + baseline` (baselines preserve pre-compaction tokens).
## Report Sections
### 1. Fleet Cache Hit Rate
From `/api/analytics`: compute `cache_hit_rate × 100`. State raw `total_cache_read` and `total_input`. Benchmark: >70% strong, 40–70% moderate, <40% weak prompt-cache utilization.
### 2. Write vs Read Reuse
Compute `cache_reuse = total_cache_read / total_cache_write`. Show both token counts. Flag if reuse < 1 (writing more cache than is ever read back).
### 3. Cache Spend Split
From `/api/pricing/cost` breakdown, sum `cache_read_cost` and `cache_write_cost` across all models. Show the dollar split and what fraction of total cost is cache-write overhead vs cache-read savings.
### 4. Sessions With Poor Reuse
From `/api/sessions?limit=200`, parse `metadata.usage_extras` for per-session cache read/write where available; rank sessions by lowest read/write reuse (and by cache_write-heavy cost). List the worst 10 with model, cost, and reuse ratio. Use `/api/sessions/{id}` to drill into any single flagged session.
### 5. Recommendations
- Sessions where `cache_write >> cache_read`: short or one-shot sessions rarely recoup cache writes — note them.
- Stable, repeated context (system prompts, large files) should be cached once and reused; high churn defeats caching.
- Estimate the dollar impact of raising the hit rate to the next benchmark tier.
## Output
Structured Markdown with tables. Currency as USD to 4 decimal places; rates as $/Mtok; percentages with ▲/▼ for any trend. Token counts with thousands separators.
© hoangsonww · MIT · hoangsonww/Claude-Code-Agent-Monitor