Skip to main content

Reverse-engineer Anthropic's opaque Claude subscription limits into hard numbers

Project description

ccmeter

Measure what Anthropic won't tell you: what your Claude subscription limits actually mean in tokens.

Why

Anthropic charges $20-$200/month for Claude but doesn't publish what the usage limits actually are. The API reports utilization as a percentage — but a percentage of what? Nobody knows.

Three times in four months, Anthropic has run the same play: announce a temporary usage boost, silently tighten baseline limits during or after, then attribute complaints to "contrast effect." See docs/evidence.md for the receipts.

ccmeter is a local instrument that figures out the actual numbers.

How it works

  1. Polls Anthropic's OAuth usage API every 2 minutes — records utilization percentages per bucket (five_hour, seven_day, seven_day_sonnet, etc.)
  2. Scans Claude Code's local JSONL files for per-message token counts with timestamps
  3. When utilization ticks from 15% to 16% and you used N tokens in that window: 1% = N tokens

That's the whole trick. Track that number over time. If it shrinks, the cap shrank.

Install

pip install ccmeter

Or clone and run directly:

git clone https://github.com/iteebz/ccmeter && cd ccmeter && uv sync

Requires Python 3.12+, Claude Code installed and signed in. macOS and Linux. Zero dependencies beyond fncli.

Usage

# Install as background daemon (survives restarts)
ccmeter install

# Or run in foreground
ccmeter poll

# What does 1% actually cost?
ccmeter report

# Structured output for sharing
ccmeter report --json

# Raw usage tick history
ccmeter history

# Collection health
ccmeter status

# Remove daemon
ccmeter uninstall

What it collects

From Anthropic's API (polled every 2 min, recorded on change):

  • Utilization percentage per bucket
  • Reset timestamps
  • Your subscription tier (detected automatically from credentials)

From Claude Code's local JSONL files (scanned on report):

  • Per-message token counts: input, output, cache_read, cache_create
  • Timestamps, model, Claude Code version, session ID

Everything stays local in ~/.ccmeter/meter.db. Your OAuth token is only sent to Anthropic's own API — the same call Claude Code already makes.

Known confounds

  • Multi-surface usage: claude.ai, Claude Code, and Cowork share limits but only Claude Code has local token logs. If you use multiple surfaces simultaneously, token counts will be inflated relative to the utilization tick.
  • 1% granularity: The API reports whole percentages only. More samples over longer periods = better accuracy.
  • Bucket overlap: Some buckets may share underlying quotas in ways the API doesn't surface.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ccmeter-0.0.1.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ccmeter-0.0.1-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file ccmeter-0.0.1.tar.gz.

File metadata

  • Download URL: ccmeter-0.0.1.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ccmeter-0.0.1.tar.gz
Algorithm Hash digest
SHA256 afaf69940b8e70d0e960e6c7a6bbfb58b601616e98a70f1effa940bce6785dc1
MD5 a1659f626c2ba190526a44e36ec45b6a
BLAKE2b-256 7a2b0baf166c75f5bfea3f965fbc59d8a92b14a549b39c005e5427f868b40e62

See more details on using hashes here.

File details

Details for the file ccmeter-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: ccmeter-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ccmeter-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d1196c483c40e5f90265004243343d01e62db0cd8390733e93f7624c21792524
MD5 2577e330515cca2df7133bc2173a9502
BLAKE2b-256 20eb6bab39b98f7e7775690c658b5997a3e75e9c9c768ccc810358552d802cca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page