About llm-cost-optimizer
LLM Cost Optimizer is a command-line skill for teams managing LLM API budgets. It counts tokens, estimates costs across models, analyzes prompts for token reduction, and calculates prompt-cache economics.
Key features
- 01Count tokens and estimate costs by model
- 02Analyze prompts for token reduction opportunities
- 03Calculate prompt-cache costs and savings
- 04Accept files, text, or standard input
Use cases
- 01Compare request costs across models for a new project
- 02Optimize high-cost prompts and verify token reductions
- 03Estimate prompt-cache reuse break-even points
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ borghei/ claude-skills --skill llm-cost-optimizerAfter installing, type/llm-cost-optimizerin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/caching-and-batch-economics.mdllm-pricing-guide.mdscripts/cache_savings_calculator.pyprompt_optimizer.pytoken_counter.pyDetails
From the project READMELLM Cost Optimizer
Category: Engineering Domain: AI Cost Management
Overview
The LLM Cost Optimizer skill provides tools for counting tokens, estimating costs across different LLM providers, and optimizing prompts to reduce token usage without sacrificing quality. Essential for teams managing LLM API budgets at scale.
Clarify First
Before estimating or optimizing, confirm these inputs. If any is unknown or vague, ASK — do not assume:
- Input prompt/text — the prompt file or text to count or optimize (the input via
--file/--text/--stdin) - Target models — which models to estimate cost for (sets
--modelsand the pricing comparison) - Goal — cost estimation vs prompt optimization, and any target reduction (selects
token_counter.pyvsprompt_optimizer.pyand sets--target-reduction)
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
Quick Start
# Count tokens in a prompt file and estimate costs
python scripts/token_counter.py --file prompt.txt --models gpt-4o claude-sonnet
# Count tokens from stdin
echo "Hello world" | python scripts/token_counter.py --stdin --models all
# Analyze a prompt for optimization opportunities
python scripts/prompt_optimizer.py --file system_prompt.txt
# Optimize with target reduction
python scripts/prompt_optimizer.py --file prompt.txt --target-reduction 30
Tools Overview
| Tool | Purpose | Key Flags |
|---|---|---|
token_counter.py | Count tokens and estimate costs across models | --file, --text, --stdin, --models |
prompt_optimizer.py | Analyze prompts for token reduction opportunities | --file, --target-reduction, --format |
cache_savings_calculator.py | Model prompt-cache economics: naive vs cached cost, break-even reuse, % savings | --requests, --cached-tokens, --cache-write-multiplier, --cache-read-multiplier, --base-input-price, --json |
Workflows
Cost Estimation for New Project
- Collect sample prompts (system prompt + user messages)
- Run
token_counter.pywith target models - Multiply per-request cost by expected daily volume
- Compare models on cost-quality tradeoff
Prompt Optimization Sprint
- Identify highest-cost prompts from usage logs
- Run
prompt_optimizer.pyon each - Apply suggested optimizations
- Re-count tokens to verify reduction
- A/B test optimized vs. original for quality
Reference Documentation
- LLM Pricing Guide - Current pricing for major LLM providers, token estimation methods
- Caching & Batch Economics - Prompt/context caching break-even math, batch-API cost tradeoff, reasoning-effort cost impact, structured-output token overhead (model-agnostic, user-supplied rates)
Common Patterns
Token Reduction Techniques
- Remove redundant instructions and examples
- Use shorter variable names in few-shot examples
- Compress verbose system prompts
- Replace repeated context with references
- Use structured output formats (JSON) to reduce response tokens
- Batch multiple requests into single prompts where possible
Cost-Effective Model Selection
- Use smaller models for classification/extraction tasks
- Reserve large models for complex reasoning
- Implement model routing based on query complexity
- Cache responses for identical or similar queries
- Cache the stable system-prompt/context/schema prefix (most-stable first, volatile last) and check the reuse break-even with
cache_savings_calculator.py - Route bulk, non-interactive work to the batch API (~half cost for added latency); right-size reasoning effort per route — high only where accuracy demands it