I use four AI providers daily. I have no idea what any of them cost.

Claude Code for the heavy lifting. Codex for scoped operations. Mistral running through a Discord gateway. Gemini powering a chat widget on my website. Three surfaces — CLI, a self-hosted gateway, and a deployed web app. Four billing relationships. Zero unified visibility.

This is the premium decay problem. You’re holding positions across four different books, and nobody’s running the P&L.


”Surely Someone Built This”

That was the wrong theory.

I spent a full session auditing every tool in the space. The Diviner scried across the whole map — fourteen tools, four categories, every GitHub repo and pricing page I could find. Here’s what exists:

CLI Token Trackers read your local session files and show usage in the terminal. toktrack (Rust, MIT, blazing fast) handles Claude, Codex, Gemini, and OpenCode. aitracker covers twenty-one providers and polls rate-limit APIs. ccusage does Claude and Codex with a live monitoring dashboard.

All terminal-only. All disappear when you close the window. None persist historical data beyond the current session files.

API Gateways like Helicone, Portkey, and LiteLLM proxy your API calls and give you a web dashboard. Beautiful observability. One problem: they require rerouting all your traffic through their servers. They don’t read CLI session files. If you’re using Claude Code or Codex CLI, they can’t see you.

Launchers like Toad give you a unified terminal UI for multiple AI CLIs. Clean UX. But no Windows support, no cost tracking, and no session management.

Enterprise platforms — LangSmith, Langfuse, Binadox — solve the problem if you’re a team running LangChain in production. Not if you’re one person with four CLI tools and a Discord bot.

Here’s the gap:

FeatureCLI TrackersAPI GatewaysLaunchers
Reads local CLI logsYesNoNo
Persistent historyPartialYesNo
Desktop GUINoNoPartial
Project cost attributionNoYesNo
Multi-providerYesYesPartial
Zero dependenciesNoNoNo

Nobody does all three: a desktop launcher with session management, multi-provider CLI token tracking from local files, and a persistent cost dashboard with project attribution.

Fourteen tools. Not one fills the gap.


The Hidden Token Count

The Rogue found the trap everyone walked over.

I assumed Codex session files were just conversation transcripts — useless for cost tracking without an API key. Wrong. Buried inside every ~/.codex/sessions/ JSONL file, there are token_count events:

{
  "type": "event_msg",
  "payload": {
    "type": "token_count",
    "info": {
      "total_token_usage": {
        "input_tokens": 8152,
        "cached_input_tokens": 7296,
        "output_tokens": 69,
        "reasoning_output_tokens": 0
      }
    }
  }
}

Full token data. Input, output, cached, reasoning. Plus rate-limit percentages and reset timestamps. Sitting in plain text on your machine. Over a hundred and seventy session files going back months.

Claude Code writes similar JSONL logs to ~/.claude/projects/. Between the two, that’s full token-granular data for my two highest-burn providers — no API keys required.

Mistral and Gemini are a different story. Mistral has no programmatic usage API at all — console only. Gemini gives you a countTokens endpoint for estimates, but no billing query. Both providers return usage in their API response bodies, which means the tracking has to happen at the call site, not after the fact.


What I’m Building

A token burn dashboard inside the launcher I already use every day. Python, Tkinter, stdlib only — zero pip installs. The Warrior’s approach: keep hitting the wall until one of them gives.

The architecture:

  • Custom ingesters for Claude and Codex JSONL files, with incremental reads and deduplication. toktrack’s parsing logic as a correctness reference.
  • SQLite DB with WAL mode. Persists history even after the CLI tools delete old session files.
  • Provider cards showing total tokens, estimated cost, session count, and week-over-week delta for each provider.
  • Activity feed with anomaly alerts — spike detection, budget pace warnings, rate-limit flags.
  • Context tags: every event tagged personal or product. My Claude Code sessions are personal. My website’s Gemini chat is product. Same screen, different budgets, one toggle to switch views.
  • Project cost attribution — maps each session’s working directory to a project name. “Garret cost $6.20 this week. Valkyrie cost $4.10.”

That last one is the feature no CLI tracker has. They track by provider. I track by what I was working on.

Rook Mode

The honest market assessment, because this post is also the portfolio pitch:

  • Uniqueness: 8/10. The launcher + cost dashboard combination is genuinely novel.
  • Market size: 3/10. Maybe 5-20K developers use multiple AI CLIs heavily enough to care.
  • Stickiness: 6/10. Once set up, the data is compelling. But the setup friction is real.
  • Competitive moat: 4/10. Simple Python + SQLite. The moat is shipping first and building community.

Monetization: GitHub Sponsors and a donate link. No paid tiers. The closest competitors — toktrack, ccusage, aitracker — are all free and open source. A desktop developer tool for a niche audience doesn’t monetize. It builds credibility.

Primary goal: Portfolio piece and blog content. The ROI is the write-up, the community engagement, and the proof that you build real tools — not a revenue line.


I spent years trading options without a proper P&L dashboard. I built spreadsheets, scrounged broker APIs, and reconciled fills by hand because the right tool didn’t exist at the right price for a solo operator. The AI cost problem is the same shape. Four counterparties, no consolidated view, and the bill comes whether you’re watching or not.

The best tools come from problems you actually have. Build for yourself first. If it’s good enough, open the repo. If the TAM is 5K developers, that’s 5K people who needed exactly what you needed.

Stop estimating your exposure. Start measuring it.