Skip to main content

tokenmaxxr

Aggregate AI subscription quota usage (Claude, AWS Kiro, ClinePass, Ollama Cloud, OpenCode Go) into one view.

Five providers, one engine, one versioned JSON contract. CLI for bars/dashboards, a DankMaterialShell bar plugin, optional WebUI, optional HTTP API.

Install

# from PyPI (recommended)
uvx tokenmaxxr --json

# from source
git clone https://github.com/Izzur/tokenmaxxr
cd tokenmaxxr
uv pip install -e ".[serve]"  # add [serve] for `tokenmaxxr serve`

Quickstart

tokenmaxxr              # human table
tokenmaxxr --json       # machine-readable schema:1
tokenmaxxr --refresh    # bypass the 300s cache
tokenmaxxr doctor       # diagnose cookie discovery
tokenmaxxr serve        # WebUI + HTTP API

Web UI

tokenmaxxr serve (requires pip install 'tokenmaxxr[serve]') starts a small FastAPI app on 127.0.0.1:8765:

  • GET /api/usage — schema:1 document (same as tokenmaxxr --json)
  • POST /api/refresh — force a live re-fetch
  • GET /api/history?provider=&window= — appended history rows
  • GET / — vanilla-JS dashboard (cards + history chart, opt-in 60s auto-refresh)

The dashboard degrades gracefully: with no cookies, every card shows no-auth and a hint.

Output contract

tokenmaxxr --json returns a stable, versioned document:

{
  "schema": 1,
  "fetched_at": "2026-07-22T12:00:00Z",
  "providers": [
    {
      "id": "ollama-cloud",
      "name": "Ollama Cloud",
      "status": "ok",
      "windows": [
        {"label": "5h", "pct_used": 47, "reset_at": "2026-07-22T20:00:00Z"}
      ]
    }
  ]
}

status is one of ok | stale | no-auth | error.

Config

$XDG_CONFIG_HOME/tokenmaxxr/config.toml (default ~/.config/tokenmaxxr/config.toml), optional:

include = ["claude", "kiro"]   # whitelist: only these providers
exclude = ["opencode-go"]      # blacklist: everything except these

include is applied first, then exclude. --provider on the CLI overrides both.

Auth sources

Two kinds of provider:

Provider Slug Auth
Claude claude Claude Code OAuth token, $CLAUDE_CONFIG_DIR/.credentials.json (default ~/.claude/). Log in once with claude.
AWS Kiro kiro kiro-cli token in ~/.local/share/kiro-cli/data.sqlite3, else Kiro IDE ~/.aws/sso/cache/kiro-auth-token.json. Log in with kiro-cli login.
ClinePass clinepass browser cookies for app.cline.bot + api.cline.bot
Ollama Cloud ollama-cloud browser cookies for ollama.com
OpenCode Go opencode-go browser cookies for opencode.ai

Token providers never refresh tokens themselves (that could invalidate the CLI's own session). Kiro tokens expire hourly, so an expired one makes tokenmaxxr run kiro-cli whoami, which refreshes in place. An expired Claude token shows as no-auth; run claude once and the next poll succeeds.

  1. --cookie-file SLUG=/path/to/cookies.sqlite or TOKENMAXXR_COOKIE_<DOMAIN> env
  2. Firefox-family stores (globbed: ~/.mozilla/firefox/*, ~/.zen/*, Zen/Firefox Flatpak paths, Floorp/LibreWolf/Waterfox)
  3. Chromium-family via browser_cookie3 (best-effort, locked keyring → skip)
  4. No match → no-auth status + remediation in doctor

Cookies are copied to a temp file before reading (WAL lock-safe). Cache and history live under ~/.local/state/tokenmaxxr/.

DankMaterialShell (Dankbar)

uv tool install tokenmaxxr                       # puts `tokenmaxxr` on ~/.local/bin
git clone https://github.com/Izzur/tokenmaxxr
ln -s "$PWD/tokenmaxxr/dms/TokenMaxxr" ~/.config/DankMaterialShell/plugins/TokenMaxxr

Then DMS Settings → Plugins → enable tokenmaxxr, and add it to a bar section. Pill shows C 3d 4h: for each provider take its longest window (30d, 7d, …), then show the provider whose longest window resets soonest and the countdown to it. Left click opens a popout with every window, progress bar and reset countdown. Right click forces --refresh.

Optional settings in ~/.config/DankMaterialShell/plugin_settings.json:

"tokenMaxxr": { "enabled": true, "command": "tokenmaxxr --json", "interval": 300 }

Waybar

"custom/tokenmaxxr": {
  "exec": "tokenmaxxr --json --provider ollama-cloud",
  "return-type": "json",
  "format": "Ollama 5h: {}%",
  "exec-on-event": true,
  "interval": 600
}

--json is the stable schema:1 contract — jq '.providers[0].windows[0].pct_used' always returns an integer.

fastfetch

"tokenmaxxr": {
  "type": "command",
  "key": "TKN",
  "command": "tokenmaxxr --json | jq -r '.providers[] | select(.status==\"ok\") | \"\\(.id): \\(.windows[0].pct_used)%\"' | paste -sd, -"
}
tokenmaxxr --cookie-file ollama-cloud=/srv/cookies/ollama.sqlite --json
# or
TOKENMAXXR_COOKIE_OLLAMA_COM=/srv/cookies/ollama.sqlite tokenmaxxr --json

## Development

```bash
uv sync --extra dev           # set up dev deps (pytest, fastapi, etc.)
uv run python3 -m pytest      # 32 tests, <1s
uv run python3 -m pytest tests/test_providers.py -v   # one file

Provider parser tests live in tests/test_providers.py against HTML/JSON fixtures under tests/fixtures/. To add a fixture, drop a real captured payload into tests/fixtures/<slug>.<ext> and write a test_<slug> that feeds it through RawHtml and asserts on the parsed UsageWindows.

License

MIT

Metadata

Release files for tokenmaxxr 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tokenmaxxr 1.1.0
File Size Uploaded
tokenmaxxr-1.1.0.tar.gz 103.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tokenmaxxr 1.1.0
File Interpreter ABI Platform
tokenmaxxr-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 137.8 kB

Release files / tokenmaxxr-1.1.0.tar.gz

Download URL tokenmaxxr-1.1.0.tar.gz
Size 103.5 kB
Tags Source
SHA-256 checksum
How to use checksums
587960f970c3764c7a608e1ab62d23e3181004fb6cc462cdb0d51c3154c72617
BLAKE2b-256 checksum
How to use checksums
c4d401ef89d107e6bc4324be165043a60be1afa6f3db298bee7053b4f27bc38f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release files / tokenmaxxr-1.1.0-py3-none-any.whl

Download URL tokenmaxxr-1.1.0-py3-none-any.whl
Size 34.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fc452027a9f82e71a6f51b4cf60bd1864531d20ecbd066c97416727bc3a25844
BLAKE2b-256 checksum
How to use checksums
ca4460d41f3a21eaee56f28489cb9a5f79e177b0df222e6a0cb97e8cedbd13d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 6, 2026.

Transparency log

Release history Release notifications | RSS feed

1.2.0

2 release files

This release

1.1.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page