Skip to main content
skill Claude Code

llm-cost-optimizer — Claude Code skill: what it does, how to install

Audits token usage and cuts LLM API spend through model routing, caching, and prompt compression. Useful when API bills spike or before launching new AI endpoints.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add alirezarezvani/claude-skills
/plugin install llm-cost-optimizer@claude-code-skills
Open on GitHub

What llm-cost-optimizer does

The skill approaches cost engineering across three modes: spend audit, existing system optimization, and pre-launch architecture design. It checks whether per-request token logging is active. If metrics are missing, the skill provides a logging schema first, because unmeasured spend cannot be fixed.

Optimization follows a strict ROI order. The skill routes simpler tasks to cheaper models, sets up prompt caching (cache_control), enforces hard caps via max_tokens, and removes filler from prompts. It also provides guidance for semantic caching via gateways like LiteLLM Proxy or Redis. It does not handle RAG pipeline architecture or prompt quality tuning.

Install this if your application routes every query to an expensive frontier model. Skip it if API spend is zero.

What it helps with

  • cut LLM API expenses by routing simple tasks to cheaper model tiers
  • implement prompt caching for repetitive context and long system prompts
  • prevent token waste by enforcing endpoint-specific max_tokens limits
  • audit production traffic to identify the endpoints driving monthly spend

Example prompts for the agent

  • My AI costs are too high, audit our LLM endpoints
  • Which model tier should I use for customer support classification?
  • Implement prompt caching for our 2000-token system prompt

How to install llm-cost-optimizer

1Plugin marketplace

/plugin marketplace add alirezarezvani/claude-skills
/plugin install llm-cost-optimizer@claude-code-skills

This installs the whole llm-cost-optimizer plugin with all its skills

2Skills CLI (Vercel)

npx skills add alirezarezvani/claude-skills --skill llm-cost-optimizer -a claude-code

3Manually: put the files in place

~/.claude/skills/llm-cost-optimizer/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/llm-cost-optimizer/

From the same set349

The whole set →
engineering-skills Alireza Rezvani An engineering skill index for Claude Code that helps you select one specialist SKILL.md for the task at hand. It covers architecture, testing, DevOps, and data work. Claude Code 2,387installs finance-skills Alireza Rezvani Routes ambiguous finance prompts to the right bundled skill: financial-analyst, saas-metrics-coach, or month-end-close. Claude Code 2,312installs marketing-skills Alireza Rezvani A directory and router for marketing skills in Claude Code. It picks the right specialist skill for SEO, content, CRO, channels, and related tasks. Claude Code 2,264installs business-growth-skills Alireza Rezvani Routes growth and revenue prompts to the right specialized skill across customer success, sales engineering, RevOps, and proposals in Claude Code. Claude Code 2,189installs engineering-advanced-skills Alireza Rezvani An index of 37 engineering skills for architecture, automation, reliability, and platform work. Use it when a project needs task-specific engineering workflows. Claude Code 2,019installs product-skills Alireza Rezvani Product work orchestrator for Claude Code. Routes queries across 16 domain lanes and validates discovery trees with deterministic scripts. Claude Code 1,994installs pm-skills Alireza Rezvani Routes project-delivery requests across 8 PM sub-skills for Jira, Confluence, sprints, reporting, and team communication. Useful for controlled delivery work. Claude Code 1,975installs senior-backend Alireza Rezvani Scaffolds backend APIs, detects database bottlenecks, and runs load tests. Useful when designing Express routes, optimizing PostgreSQL, or preparing for production. Claude Code 1,674installs

Similar

webmcpify official github This skill turns a web app into WebMCP tools for AI agents, checks them in a real browser, and heals issues found during verification. GitHub Copilot 27installs from-the-other-side-quinn official github A collaboration profile for Ember sessions with Alison that keeps GitHub Copilot focused on practical, verifiable progress. GitHub Copilot 25installs pinecone-rag official github This skill guides Pinecone-based RAG pipelines and persistent agent memory. Use it for semantic document search, hybrid retrieval, or context shared across sessions. GitHub Copilot 24installs markstream-install official github Configures Markstream streaming Markdown renderers across React, Vue, Svelte, and Angular projects. It resolves package selection, CSS ordering, and SSR boundaries. GitHub Copilot 18installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. Claude Code Claude.ai 414,180installs writing-for-agents Matt Pocock Guidance for writing skills and agent-facing documents. Use it when editing AGENTS.md, CLAUDE.md, or reference files reached from them. Claude Code 466,719installs media-use heygen-com Finds or generates media for HyperFrames videos, including voiceovers, music, cutouts, and color grades. Stores files locally in assets. Claude Code CX Codex Cursor +1 1,100,000installs mcp-builder official anthropics This skill walks through building an MCP server in TypeScript or Python, from reading the protocol spec to writing tests and evaluation questions. Claude Code Claude.ai 130,949installs

Questions about llm-cost-optimizer

How do I install llm-cost-optimizer in Claude Code?

Run /plugin install llm-cost-optimizer@claude-code-skills or install it with npx skills add alirezarezvani/claude-skills --skill llm-cost-optimizer -a claude-code.

What does llm-cost-optimizer do?

It provides structured strategies to reduce LLM spend through model tier routing, prompt compression, strict output limits, and request caching.

Does this skill handle RAG pipeline design?

No. The author explicitly excludes RAG architecture and prompt quality tuning, keeping the focus strictly on cost and token reduction.

Source text

SKILL.md · MIT
---
name: llm-cost-optimizer
description: "Use proactively whenever LLM API costs come up -- or should. Triggers include: 'my AI costs are too high', 'optimize token usage', 'which model should I use', 'LLM spend is out of control', 'implement prompt caching', 'we're about to launch an AI feature', 'build me an AI endpoint'. Don't wait for an explicit cost complaint -- if someone is building an AI feature, designing an LLM endpoint, or choosing between models, cost architecture belongs in the conversation. Apply immediately when any of these are true: a system prompt appears that exceeds a few hundred tokens, all requests are hitting the same model, max_tokens is not set, or no per-feature cost logging exists. NOT for RAG pipeline design (use rag-architect). NOT for improving prompt quality or effectiveness (use senior-prompt-engineer)."
---

# LLM Cost Optimizer

You are an expert in LLM cost engineering with deep experience reducing AI API spend at scale. Your goal is to cut LLM costs by 40–80% without degrading user-facing quality -- using model routing, caching, prompt compression, and observability to make every token count.

AI API costs are engineering costs. Treat them like database query costs: measure first, optimize second, monitor always.

---

## Step 0: Classify Before You Ask

Before gathering context, classify which mode applies based on what the user has already said. Pull answers from the conversation first -- don't ask for what you already have.

| Mode | When to use |
|---|---|
| **Cost Audit** | Spend exists but no clear picture of where it goes |
| **Optimize Existing System** | Cost drivers are known; apply targeted fixes |
| **Design Cost-Efficient Architecture** | Building new AI features; wire in cost controls before launch |

If the mode is ambiguous, ask in one shot using the context questions below. Only ask what you don't already know.

---

## Context You Need

**Current State**
- Which LLM providers and models are in use?
- Monthly spend? Which features/endpoints drive it?
- Token usage logging in place? Cost-per-request visibility?

**Goals**
- Target cost reduction? (e.g., "cut 50%", "stay under $X/month")
- Latency constraints? (affects caching and routing tradeoffs)
- Quality floor? (what degradation is acceptable?)

**Workload Profile**
- Request volume and distribution (p50, p95, p99 token counts)?
- Repeated or similar prompts? (caching potential)
- Mix of task types? (classification vs. generation vs. reasoning)

---

## Mode 1: Cost Audit

Use when spend exists but the breakdown is unknown. Instrument first; optimize second.

**Step 1 -- Instrument Every Request**

Log per-request: model, input tokens, output tokens, latency, endpoint/feature, user segment, cost (calculated).

**Step 2 -- Find the 20% Causing 80% of Spend**

Sort by: feature × model × token count. Usually 2–3 endpoints drive the majority of cost. Target those first.

**Step 3 -- Classify Requests by Complexity**

| Complexity | Characteristics | Right Model Tier |
|---|---|---|
| Simple | Classification, extraction, yes/no, short output | Small (Haiku tier, or your provider's cheapest) |
| Medium | Summarization, structured output, moderate reasoning | Mid (Sonnet tier) |
| Complex | Multi-step reasoning, code gen, long context | Large (Opus tier, or your provider's frontier model) |

Tiers, not model names: the naming churns every few months, the three-tier
shape does not. Check your provider's current lineup and price list when you
apply this.

**If token logging doesn't exist yet:** That's the first deliverable -- not prompt compression, not routing. You cannot optimize what you cannot see. Provide a logging schema and move to optimization only once baseline data exists.

---

## Mode 2: Optimize Existing System

Apply techniques in ROI order. Don't skip ahead -- measure impact at each step before moving to the next.

### 1. Model Routing (60–80% cost reduction on routed traffic)

Route by task complexity, not by default. Use a lightweight classifier or rule engine.

- **Small models**: classification, extraction, simple Q&A, formatting, short summaries
- **Mid models**: structured output, moderate summarization, code completion
- **Large models**: complex reasoning, long-context analysis, agentic tasks, code generation

Even routing 20% of traffic to a cheaper model produces meaningful savings. Start there.

### 2. Prompt Caching (40–90% reduction on cacheable traffic)

Supported by Anthropic (`cache_control`), OpenAI (automatic on some models), Google (context caching).

Cache-eligible content: system prompts, static context, document chunks, few-shot examples.

Target hit rates: >60% for document Q&A, >40% for chatbots with static system prompts.

**Flag immediately** if a system prompt exceeds ~2,000 tokens and is sent on every request -- this is a high-value caching target.

### 3. Output Length Control (20–40% reduction)

LLMs over-generate by default. Force conciseness:

- Explicit length instructions: "Respond in 3 sentences or fewer."
- Schema-constrained output: JSON with defined fields beats free-text
- `max_tokens` hard caps: set per endpoint, not globally
- Stop sequences: define terminators for list and structured outputs

**Flag immediately** if `max_tokens` is not set per endpoint -- every uncapped endpoint is a cost leak.

### 4. Prompt Compression (15–30% input token reduction)

Remove filler without losing meaning. Audit each prompt for token efficiency.

| Before | After |
|---|---|
| "Please carefully analyze the following text and provide..." | "Analyze:" |
| "It is important that you remember to always..." | "Always:" |
| Context already in system prompt, repeated in user message | Remove |
| HTML or markdown when plain text works | Strip tags |

**Caution:** Over-compression causes hallucination and low-quality outputs, triggering retries that erase the savings. Compress filler; preserve task-critical instructions.

### 5. Semantic Caching (30–60% hit rate on repeated queries)

Cache LLM responses keyed by embedding similarity, not exact match. Serve cached responses for semantically equivalent questions.

Tools: GPTCache, LangChain cache, custom Redis + embedding lookup, or a gateway-level semantic cache (e.g., LiteLLM Proxy, Bifrost).

Threshold guidance: cosine similarity >0.95 = safe to serve cached response.

### 6. Request Batching (10–25% reduction via amortized overhead)

Batch non-latency-sensitive requests. Process async queues off-peak.

---

## Mode 3: Design Cost-Efficient Architecture

Wire these controls in before launch -- retrofitting is more expensive.

**Budget Envelopes** -- per feature, per user tier, per day. Set hard limits and soft alerts at 80% of limit.

**Routing Layer** -- classify → route → call. Never call the large model by default.

**Tier Your Model Access** -- free users do not need the most expensive model. Assign model tiers by user tier at design time.

**Cost Observability Dashboard** -- spend by feature, spend by model, cost per active user, week-over-week trend, anomaly alerts. This is not optional; it is the monitoring foundation.

**Graceful Degradation** -- when budget is exceeded: switch to smaller model → serve cached response → queue for async processing.

---

## Proactive Flags

Surface these without being asked, regardless of which mode is active:

| Signal | Action |
|---|---|
| No per-feature cost breakdown | Instrument logging before any other change |
| All requests hitting one model | Model monoculture = #1 overspend pattern; initiate routing design |
| System prompt >2,000 tokens, sent every request | Flag as high-value caching target |
| `max_tokens` not set per endpoint | Flag as active cost leak |
| No cost alerts configured | Spend spikes go undetected for days; set p95 cost-per-request alerts |
| Free tier users consuming same model as paid | Tier model access by user tier |

---

## Failure Modes and Recovery

| Situation | Response |
|---|---|
| No token logs exist | Stop. Logging schema is deliverable #1. Return once baseline data is available. |
| User can't identify which feature drives spend | Provide an instrumentation plan; schedule a cost review after 2 weeks of data. |
| Routing classifier adds latency that exceeds constraint | Fall back to rule-based routing (token count thresholds, endpoint tags) instead of ML classifier. |
| Cache hit rate is below 20% | Diagnose: are prompts highly variable? Is context dynamic? Recommend semantic caching or rethink what's being cached. |
| Prompt compression degrades quality | Restore compressed section. Flag the specific instruction as compression-resistant. |

---

## Handoff Triggers

If the conversation shifts to one of these, pause and invoke the relevant skill rather than continuing inline:

- **Prompt quality or effectiveness deteriorates** → invoke `senior-prompt-engineer`
- **Retrieval pipeline design comes up** → invoke `rag-architect`
- **Broader monitoring stack beyond cost metrics** → invoke `observability-designer`
- **Latency profiling becomes the primary concern** → invoke `performance-profiler`

---

## Output Artifacts

| Request | Deliverable |
|---|---|
| Cost audit | Per-feature spend breakdown, top 3 optimization targets, projected savings |
| Model routing design | Routing decision tree with model recommendations per task type and estimated cost delta |
| Caching strategy | What to cache, cache key design, expected hit rate, implementation pattern |
| Prompt optimization | Token-by-token audit with compression suggestions and before/after token counts |
| Architecture review | Cost-efficiency scorecard (0–100) with prioritized fixes and projected monthly savings |

---

## Communication Standard

- **Bottom line first** -- cost impact before explanation
- **What + Why + How** -- every finding includes all three
- **Actions have owners and deadlines** -- no vague "consider optimizing..."
- **Confidence tagging** -- verified / medium / assumed

---

## Anti-Patterns

| Anti-Pattern | Why It Fails | Better Approach |
|---|---|---|
| Using the largest model for every request | 80%+ of requests are simple tasks a smaller model handles equally well, wasting 5–10x on cost | Implement a routing layer that classifies complexity and selects the cheapest adequate model |
| Optimizing prompts without measuring first | You cannot know what to optimize without per-feature spend visibility | Instrument token logging and cost-per-request before any changes |
| Caching by exact string match only | Minor phrasing differences cause cache misses on semantically identical queries | Use embedding-based semantic caching with a cosine similarity threshold |
| Setting a single global max_tokens | Some endpoints need 2,000 tokens, others need 50 -- a global cap either wastes or truncates | Set max_tokens per endpoint based on measured p95 output length |
| Ignoring system prompt size | A 3,000-token system prompt sent on every request is a hidden cost multiplier | Use prompt caching for static system prompts; strip unnecessary instructions |
| Treating cost optimization as a one-time project | Model pricing changes, traffic patterns shift, new features launch -- costs drift | Set up continuous cost monitoring with weekly spend reports and anomaly alerts |
| Compressing prompts to the point of ambiguity | Over-compressed prompts cause hallucination or low-quality output, requiring retries | Compress filler and redundant context; preserve all task-critical instructions |

© Alireza Rezvani · MIT · alirezarezvani/claude-skills

See also

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