Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add hoangsonww/Claude-Code-Agent-Monitor --skill cache-efficiency -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/cache-efficiency/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/cache-efficiency/

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

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set20

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor