Skip to content

Repository files navigation

OpenToken Monitor

OpenToken Monitor

The unified, local-first desktop monitor for Claude, Codex, and Antigravity.

One window for every usage gauge, cost trend, and recent prompt — without handing your keys to a SaaS dashboard.

Tauri Rust React TypeScript Vite SQLite

License: MIT Version Platform Local-First

Download · Features · Screens · Architecture · Contributing


✨ Why OpenToken Monitor?

You're juggling three coding agents at once — Claude, Codex, and Antigravity — each with its own dashboard, its own quota window, and its own pricing page. OpenToken Monitor stitches them into a single tray-resident desktop app that:

  • 📊 reads your local CLI artifacts first (~/.claude, ~/.codex, ~/Library/Application Support/Antigravity/logs)
  • 🔐 augments them with live OAuth fetches when credentials are present — never proxied through a third party
  • 💸 computes accurate per-model cost using current Q1 2026 published rates
  • 🛟 keeps providers visible even when offline, surfacing health status instead of silently dropping them

Everything stays on your machine. Snapshots persist in a local SQLite store; nothing leaves the device.


🚀 Features

🎯 Core Dashboard

  • Unified overview — Claude · Codex · Antigravity in one glance, with live usage rings, trend sparklines, and provider health badges
  • Per-provider detail pages with cost history, model breakdowns, alert thresholds (75 % / 90 % / 95 %), and recent-prompt activity
  • Projects view — recent activity rolled up by workspace with cross-model spend attribution and command summaries
  • Compact widget mode — fixed-size always-on-top panel for at-a-glance gauges and reset countdowns

🔌 Provider Intelligence

Provider Sources Windows tracked
Claude Anthropic OAuth usage API + ~/.claude/projects local logs 5-hour rolling, 7-day, Opus weekly, extra-credits
Codex (OpenAI) Bearer / cookie / RPC fetchers + ~/.codex/sessions Daily, model breakdown
Antigravity Google Cloud Code API (OAuth) + Local Language Server loopback + ~/Library/Application Support/Antigravity/logs 5-hour rolling, Daily request cap

🛡️ Resilience Built-In

  • Smart OAuth backoff — separate cooldowns for success (120 s) and failure (25 s), so one transient 429 doesn't pin Claude to local-mode for two minutes
  • Stale-cache fallback — last good snapshot stays on screen marked stale if a fetch fails
  • Reactive file watchingnotify watchers refresh the affected provider the moment a CLI session file changes
  • Single-instance enforcement — autostart launch + manual click no longer fight over the SQLite store
  • Bundled WebView2 bootstrapper — Windows MSI installs cleanly on machines without WebView2 pre-installed

💰 Accurate Cost Estimation (Q1 2026 rates)

All model rates live in a single source-of-truth: src-tauri/src/pricing.rs.

Family Tier Rate (input / output per 1M tokens)
Claude Opus 4.x $15.00 / $75.00
Claude Sonnet 4.x $3.00 / $15.00
Claude Haiku 4.5 $1.00 / $5.00
OpenAI GPT-5 $1.25 / $10.00
OpenAI GPT-5 mini / nano $0.25 / $2.00 · $0.05 / $0.40
OpenAI o3 / o4-mini $2.00 / $8.00 · $1.10 / $4.40
Antigravity Gemini 3 Pro / Flash / Flash-Lite $1.25 / $10.00 · $0.30 / $2.50 · $0.10 / $0.40

Caching discounts and cache-write surcharges are applied where each provider exposes them.

⌨️ Keyboard Shortcuts

Shortcut Action
1 / 2 / 3 Jump to Claude / Codex / Antigravity
4 Open Projects
Esc Return to overview
Ctrl+R / +R Refresh all providers
Ctrl+, / +, Open settings

📸 Screens

Overview Projects
Overview Projects
Provider Detail Widget Mode
Provider detail Widget
Settings
Settings

📦 Installation

Pre-built binaries

Grab the latest installer for your OS from GitHub Releases:

Windows macOS Intel macOS Apple Silicon Linux

Build from source

Prerequisites: Node.js 18+, Rust stable, and your OS-specific Tauri 2 dependencies.

# Clone & install
git clone https://github.com/Hitheshkaranth/OpenTokenMonitor.git
cd OpenTokenMonitor
npm install

# Run in dev mode (hot-reload)
npm run tauri dev

# Production build
npm run tauri build              # all platforms
npm run tauri:build:win          # Windows NSIS installer
npm run tauri:build:mac          # macOS app bundle + installer

🧱 Tech Stack

🦀 Backend (Rust)

⚛️ Frontend (TypeScript)


🏗️ Architecture

┌──────────────────────────────────────────────────────────┐
│  React 19  ·  Zustand stores  ·  hooks (resize / kbd)    │
└──────────────────┬───────────────────────────────────────┘
                   │  Tauri invoke()  /  usage-updated event
┌──────────────────┴───────────────────────────────────────┐
│  commands.rs  →  aggregator  →  provider registry        │
│         │                          ├─ Claude  (OAuth + logs)
│         │                          ├─ Codex   (bearer/cookie/RPC + logs)
│         │                          ├─ Antigravity (OAuth + Live Loopback + logs)
│         ↓                                                │
│  UsageStore (SQLite)  ·  pricing.rs  ·  alerts.rs        │
│  tray.rs  ·  watchers (poll + filesystem)                │
└──────────────────────────────────────────────────────────┘

Full module map and data-flow walkthrough → ARCHITECTURE.md

Key entry points:


🔒 Data & Privacy

  • 🏠 100 % local. All snapshots, costs, and recent activity are stored in a local SQLite file under your OS app-data directory.
  • 🔑 Credentials never leave the device. OAuth tokens are read from the official CLI keychain entries; API requests go directly from your machine to Anthropic / OpenAI / Antigravity (Google Cloud).
  • 🚫 No telemetry. No analytics, no crash reporting, no phone-home.
  • 🧹 Reset by deleting the app-data SQLite file (%APPDATA%\com.opentokenmonitor.desktop\usage.db on Windows; equivalents on macOS / Linux).

🗺️ Roadmap

  • Per-project budget alerts with native notifications
  • Export usage reports to CSV / JSON / PDF
  • Custom refresh cadences per provider
  • Cursor / Aider / Continue.dev provider adapters
  • Multi-month spend forecasting

Have a request? Open an issue.


🤝 Contributing

Contributions are welcome — start with the architecture map and pricing module:

  1. Read ARCHITECTURE.md for the module layout.
  2. For new providers: implement the UsageProvider trait in src-tauri/src/providers/<name>/ and register it in registry.rs.
  3. For pricing updates: edit src-tauri/src/pricing.rs and bump the review-date stamp at the top of the file.
  4. Run the test suite before opening a PR:
cd src-tauri && cargo test --lib
npx tsc --noEmit

📜 License

Released under the MIT License — free for personal and commercial use.


Built with ❤️ for developers who use more than one AI agent.

OpenTokenMonitor is not affiliated with Anthropic, OpenAI, or Google.

⬆ Back to top

About

OpenTokenMonitor is a lightweight, local-first desktop widget for tracking AI CLI usage across Claude, Codex, and Gemini. It helps developers monitor activity, usage trends, and costs in real time through a clean desktop interface, with optional live API data and a privacy-first local setup.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages