Skip to content
S/T

Audit prompt files from your terminal or CI

The savedyouatoken CLI package runs the same audit as the website over files on your machine. A developer can invoke it locally, or CI can invoke it automatically and fail a build when a token budget is breached.

Building prompts dynamically inside a live application? Use the separate @savedyouatoken/sdk runtime package to observe the fully assembled outbound request.

Analyse a prompt
npx savedyouatoken prompts/support-triage.txt \
  --model claude-sonnet-5 \
  --requests 20000 \
  --output-tokens 350
Output
support-triage.txt
  1,518 input tokens · $0.0065/request · $795.21/month on Claude Sonnet 5
  token count estimated for the Claude (Opus 4.7 and later) tokenizer

  high   Per-request values above your static content $235.58/mo
         1,445 tokens of static content sit below a {{template}} variable,
         so they can never be cached.
  high   More examples than the model needs $125.80/mo
         7 examples, about 864 tokens (123 each).
  medium JSON indented for a human reader $33.09/mo
         7 JSON blocks indented for readability. Minifying is lossless.

  Safe rewrite: −253 tokens (16.7%), worth $61.56 a month.
  Biggest opportunity: Per-request values above your static content.

Token budgets in CI

Prompts grow in pull requests, one reasonable paragraph at a time. A budget catches that when it happens, not on next month’s invoice. The command fails when a budget is breached.

Fail the build over budget
npx savedyouatoken prompts/*.txt \
  --model claude-sonnet-5 \
  --requests 20000 \
  --max-tokens 4000 \
  --max-monthly 500
.github/workflows/prompt-budget.yml
name: Prompt budget
on: pull_request

jobs:
  tokens:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npx savedyouatoken prompts/*.txt --max-tokens 4000

Options

-m, --model <id>Model to price against. `savedyouatoken models` lists them.
-r, --requests <n>Requests per day, used for every monthly projection.
-o, --output-tokens <n>Average response length. Output often dominates the bill.
-c, --cache-hit-rate <n>Percentage of requests hitting a warm prompt cache.
-t, --tools <file>JSON file of tool definitions, priced alongside the prompt.
--max-tokens <n>Exit 1 if any prompt exceeds this token count.
--max-monthly <usd>Exit 1 if projected monthly cost exceeds this.
--aggressiveAlso remove instructions duplicated elsewhere in the prompt.
--fixWrite the rewritten prompt back to the file.
--jsonMachine-readable output, for your own tooling.

On --fix

It overwrites the file with the rewritten prompt. Run it on a clean working tree and read the diff before committing. The edits are mechanical and keep the meaning, but a prompt is code — review it like any other change.

Run this from inside your agent

The cost-aware agent kit is a small, pay-what-you-want download that wires this CLI into Claude Code, Cursor, or any assistant — so your agent audits its own prompts and cuts the waste. It runs the live tool, so it never goes stale.

Prefer a browser? The web analyser runs the identical engine and is equally offline — the analysis happens in the page, not on a server.

Choose by what you need to do

These surfaces share the same audit engine, but they run at different points in your workflow.

Web analyser

Audit one prompt in your browser

Paste a prompt and get an immediate, private cost and waste report.

Runtime SDK

Observe assembled production requests

Audit the system prompt and tools your application actually sends at runtime.

npm: @savedyouatoken/sdk

CLI

Audit files and enforce budgets in CI

Run deterministic audits over prompt files from a terminal or build pipeline.

npm: savedyouatoken

You are here

Agent kit

Let a coding agent run the CLI

Give Claude Code, Cursor, or another coding agent instructions for invoking the CLI.

npm: savedyouatoken

Monitor

Planned

Track cost and regressions over time

Historical reporting and regression alerts for teams are planned, not yet available.

Planned