Local-first, read-only AI coding agent token and usage inspector.
Project description
TokenCat
TokenCat is a local-first, read-only CLI for understanding how AI coding agents are being used on your machine.
If you jump between Codex, Gemini CLI, and Copilot CLI, TokenCat gives you one terminal-native view for sessions, models, tokens, and API-equivalent cost estimates without proxying traffic, rewriting endpoints, or touching your prompts and responses.
Why TokenCat
- One place to inspect Codex and Gemini CLI usage, plus Copilot CLI detection
- A default 0-argument dashboard: just run
tokencat - Read-only by design: no proxying, no interception, no auth-token handling
- Local pricing estimates with clear coverage for unknown or unattributed usage
- JSON output for scripts and terminal output for humans
Install
Python 3.11+ is required.
pipx install tokencat
Upgrade later with:
pipx upgrade tokencat
If you want to try the repo directly:
pipx install .
Quick Start
Open the dashboard:
tokencat
Look at a longer window:
tokencat --since 30d
Focus on one tool:
tokencat dashboard --provider codex
List recent sessions:
tokencat sessions --provider codex --limit 20
Inspect model totals:
tokencat models --provider gemini
Check local detection and health:
tokencat doctor
Inspect or refresh pricing data:
tokencat pricing show
tokencat pricing refresh
What You Get
- A dense terminal dashboard with provider health, token totals, pricing coverage, daily usage, and recent sessions
- Session-level views with anonymous IDs by default
- Model-level aggregation across supported tools
- A bundled pricing catalog, plus a local cache that can refresh itself on first use
- Stable JSON envelopes for scripting and automation
Supported Tools
| Tool | Status | Notes |
|---|---|---|
| Codex | Supported | Reads ~/.codex/sessions/**/*.jsonl and ~/.codex/archived_sessions/*.jsonl, then falls back to ~/.codex/state_*.sqlite when needed. |
| Gemini CLI | Supported | Reads ~/.gemini/tmp/**/chats/session-*.json and non-sensitive settings metadata. |
| GitHub Copilot CLI | Detection only | Reports partial, unsupported, or not_found; does not treat editor plugin state as CLI usage telemetry. |
Pricing
TokenCat can estimate API-equivalent cost for models with known pricing data.
- Pricing works offline by default using the bundled catalog shipped with the package.
- On first pricing use, TokenCat silently tries to refresh its own cache under
~/.tokencat/pricing/. - If that refresh fails, it quietly falls back to the bundled catalog.
tokencat pricing refreshmanually refreshes the local cache.- Unknown or historically renamed models are shown clearly instead of being guessed.
Current pricing references:
Privacy
TokenCat is intentionally conservative.
- It only reads local files that already exist on your machine.
- It does not proxy traffic or intercept requests.
- It does not rewrite provider endpoints or mutate provider sessions.
- It does not read OAuth credentials for reporting.
- It never prints raw prompt or response bodies.
- It redacts sensitive local metadata by default.
To reveal more local metadata in session listings:
tokencat sessions --show-title --show-path
JSON Output
All JSON commands keep a stable top-level shape:
generated_atfiltersproviderssummaryoritemswarnings
That makes TokenCat easy to pipe into scripts, local dashboards, or personal automation.
Common Flags
--provider codex|gemini|copilot--since/--untilwith values like7d,24h, or ISO dates--json--no-price
Session listings also support:
--limit--model--show-title--show-path
Limits
- TokenCat is macOS-first today.
- Linux path hooks are present, but Linux is not yet a polished target.
- Windows is not yet supported.
- Copilot support is currently detection-only, not full usage accounting.
- Cost is an estimate, not your actual bill.
License
TokenCat is licensed under GNU GPLv3. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tokencat-0.2.0.tar.gz.
File metadata
- Download URL: tokencat-0.2.0.tar.gz
- Upload date:
- Size: 48.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c6883ea5adb8862b0c144cc8e58832caa253346fa7597fe496ba2efcfeb1a56
|
|
| MD5 |
18a7f5a3bf029bb1004f27e080b56ed1
|
|
| BLAKE2b-256 |
0ac7779908b5a9648a0bb2cd2e99e3a76c76439f68ff0d686ce404f47e0db92a
|
File details
Details for the file tokencat-0.2.0-py3-none-any.whl.
File metadata
- Download URL: tokencat-0.2.0-py3-none-any.whl
- Upload date:
- Size: 46.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a42b59fa7edae5b72f8b3c53ab70928b8b13a08b165ad6503fee0dbd7d4d8ef7
|
|
| MD5 |
cc048fa97f6670040b74b1f658f61ebb
|
|
| BLAKE2b-256 |
2e1a73a754f1b471da340db2633972ed2b6711e9180e5fb00d90cc9c7e6d96b3
|