Catalog PyPI
PACKAGE EXPLORERView in registry

ai-cost-compare

PyPI

Daily AI usage cost analysis with before/after comparison and model health signals

aiccusageclaudeclicostcursor
Versions collected1
Direct dependencies2From release 0.3.2
Last observed21 Oct, 10:19 UTC

README

Version 0.3.2 documentation

ai-cost-compare

Daily AI spend (Claude Code, Cursor), before/after windows, and model routing health — in your terminal.

PyPI Python CI License: MIT

Turn local usage data into three Rich tables: daily cost, split-window comparison, and per-model verdicts. Claude via ccusage; Cursor via dashboard CSV (or optional API token).

Not a ccusage fork — an interpretation layer on top. ccusage reports what you spent; this CLI adds before/after windows, mix shifts, and routing health verdicts.

Quick start · Demo · ccusage vs this tool · Install · Usage · How it works


✨ Why this exists

Claude Code usage can spike fast — especially when Opus routing leaks or Sonnet/Haiku tiers stop doing their job. This CLI answers three questions at a glance:

QuestionTable
What did I spend each day?Daily cost — cost, tokens, model mix
Did things change after a date?Before vs After — avg/day, totals, mix shift
Are models routed correctly?Real Signal — Opus / Sonnet / Haiku verdicts

No cloud upload. Reads your local ccusage JSON and prints a terminal report.


🔀 ccusage vs this tool

ccusageai-cost-compare
RoleUsage analytics — read local logs, report spendInterpretation layer — explain what changed and if routing looks healthy
ScopeMany agents, daily/weekly/monthly/session viewsClaude Code focus: before/after split + model mix verdicts
OutputDescriptive tables & totalsDaily cost + Before vs After + Real Signal (Opus/Sonnet/Haiku)
Install both?✅ Required (data source)✅ Optional companion on top

Use ccusage for “what did I spend?” Use this when “did something break after I changed config on Tuesday?”


🖥 Demo

ai-cost-compare terminal output showing daily cost, before/after comparison, and model health verdicts

Sample fixture output · --range 7 --cutoff 2026-05-08

Same output as plain text
ai-cost-compare --range 7 --cutoff 2026-05-08
CLAUDE DAILY COST  ·  2026-05-06 → 2026-05-08
┌─────────────┬────────┬───────────┬────────┬───────────┬──────┬────────┬──────┐
│ Date        │ Era    │      Cost │ Tokens │ Mix       │ Opus │ Sonnet │ Haiku│
├─────────────┼────────┼───────────┼────────┼───────────┼──────┼────────┼──────┤
│ 2026-05-06  │ Before │     $2.68 │   3.2M │ ████████… │ 100% │     0% │   0% │
│ 2026-05-07  │ Before │    $24.26 │  49.0M │ ████████… │  87% │     0% │  13% │
│ 2026-05-08  │ Today  │    $80.88 │ 117.9M │ ████████… │  97% │     0% │   3% │
└─────────────┴────────┴───────────┴────────┴───────────┴──────┴────────┴──────┘

BEFORE vs AFTER  ·  Split at 2026-05-08
REAL SIGNAL      ·  Post-2026-05-08 · per-model routing verdicts

🚀 Quick start

1. Install ccusage (peer dependency — reads your local usage data):

npm install -g ccusage

2. Install the CLI:

pip install ai-cost-compare
# or
uv tool install ai-cost-compare

3. Run:

ai-cost-compare --range 5

📦 Install

PyPI / uv

pip install ai-cost-compare
uv tool install ai-cost-compare
uvx ai-cost-compare --help          # run without installing

Homebrew

brew tap mazulo/ai-cost-compare https://github.com/mazulo/ai-cost-compare
brew install ai-cost-compare
npm install -g ccusage                  # still required

One-liner (no tap):

brew install https://raw.githubusercontent.com/mazulo/ai-cost-compare/main/Formula/ai-cost-compare.rb

Requirements

  • Python 3.11+ (pip/uv) or Homebrew
  • ccusage on your PATH (v18+; v20 period JSON field supported)

📖 Usage

Claude Code (default)

ai-cost-compare and ai-cost-compare claude are equivalent. Legacy installs: claude-cost-compare / cccompare still work.

# Last 5 days vs today (default)
ai-cost-compare --range 5

# 7-day window split at a specific date
ai-cost-compare claude --range 7 --cutoff 2026-05-13

# Daily summary only — skip comparison tables
ai-cost-compare --summary --since 2026-05-01

Requires ccusage on your PATH.

Cursor IDE

Option A — CSV export:

  1. Go to cursor.com/dashboard/usage and export a CSV
  2. Run:
ai-cost-compare cursor --file ~/Downloads/usage.csv --range 7 --cutoff 2026-05-13

Option B — session token (auto-fetch):

  1. Install the API extra: pip install 'ai-cost-compare[cursor-api]'
  2. Open any cursor.com page while logged in
  3. Open browser DevTools → Application → Cookies → cursor.com
  4. Copy the value of WorkosCursorSessionToken
  5. Add it to ~/.config/ai-cost-compare/config.toml (created automatically on first run):
[cursor]
session_token = "paste-your-token-here"
  1. Run:
ai-cost-compare cursor --range 5

The config file is created with instructions the first time you run ai-cost-compare cursor.

Shared flags

FlagShortDescription
--range-rDays before cutoff for the "before" window (default: 5)
--cutoff-cBefore/after split date YYYY-MM-DD (default: today)
--since-sExplicit start date — overrides --range
--summaryDaily cost table only
--plainDisable color
--file-fCursor only: path to exported CSV
--cursor-tokenCursor only: session token (overrides config)

🧠 How it works

flowchart LR
  P[Provider] --> B[Parser]
  B --> C[Window stats]
  C --> D[Before / After deltas]
  C --> E[Model verdicts]
  D --> F[Rich terminal report]
  E --> F
  1. Provider — claude (ccusage JSON) or cursor (CSV / optional API).
  2. Parse — normalizes dates, costs, and per-model buckets (provider taxonomy).
  3. Analyze — splits records at --cutoff, computes averages and mix shifts.
  4. Verdict — provider-specific routing health rules.
  5. Render — Rich tables with era labels, mix bars, and color-coded costs.

🛠 Development

git clone https://github.com/mazulo/ai-cost-compare.git
cd ai-cost-compare
uv sync --dev
uv run pytest
uv run ai-cost-compare --range 5

Regenerate the README demo SVG after UI changes:

uv run python scripts/export_demo.py

🚢 Releasing

Bump version in pyproject.toml and src/ai_cost_compare/__init__.py, push to main, then run the Publish workflow from GitHub Actions. It will:

  1. Run tests and publish to PyPI
  2. Update the Homebrew formula checksum
  3. Create a git tag and GitHub Release
  4. Refresh Homebrew Python resources on macOS

Details: docs/RELEASING.md


📄 License

MIT — see LICENSE.


Built for developers who want spend visibility across Claude Code and Cursor without leaving the terminal.

⭐ Star on GitHub if this saves you from an Opus routing surprise.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.3.222 Jun 20262

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
mazulo/ai-cost-compare

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:19 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:d3864582de9a479ecf85fdbf9fddf9573e8641fcf2d9fd3731cd53ad7b1ba7e8