TokenTracker is a cross-platform desktop application that monitors AI provider quotas, rate limits, and spend statistics in real-time.
- Multi-Provider Support — Monitor Anthropic, OpenAI, OpenRouter, Groq, Ollama, and more
- Real-Time Quota Tracking — Live usage and rate limit data with configurable polling
- Cost Analytics — Per-provider and aggregate spend breakdowns with model-level detail
- Secure Credential Storage — API keys and browser cookie import
- Browser Profile Import — Pull authentication cookies from Chrome, Firefox, and Edge profiles
- Dark / Light Themes — macOS-inspired glassmorphic UI with smooth transitions
- System Tray — Runs quietly in the background; click to show/hide
- Cross-Platform — Linux, Windows, and macOS via Tauri 2
- Frontend — Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS 4
- Backend — Rust (Axum HTTP API server running as a bundled subprocess)
- Desktop Runtime — Tauri 2 (system tray, window management, process lifecycle)
Frontend (Tauri/Next.js)
→ HTTP (localhost) → Rust Backend (Axum API, port 46727)
→ useProviders hook manages all state
→ mapProviderUsage / mapProviderCost transform raw JSON → typed objects
| Path | Purpose |
|---|---|
backend/src/main.rs |
Rust HTTP server entry point (Axum router) |
backend/src/server/ |
Request handlers for all API endpoints |
src-tauri/src/lib.rs |
Tauri app lifecycle, tray icon, window management |
src-tauri/src/backend.rs |
Backend process spawning, health check, lifecycle |
src/lib/apiClient.ts |
Frontend HTTP client (fetches port dynamically from Tauri) |
src/hooks/useProviders.ts |
Central hook owning all provider/cost/settings state |
src/lib/dataMapping.ts |
Raw JSON → typed object transformers + provider descriptors |
# Install frontend dependencies
npm install
# Run the full Tauri app (frontend + bundled backend, hot-reload)
npm run tauri:devThe backend HTTP server starts automatically. The frontend connects via a port dynamically reported by Tauri (default 46727).
npm run tauri:buildOutputs native installers for your platform (AppImage, .deb, .msi, etc.).
# Terminal 1 — start the dev server
npm run dev
# Terminal 2 — run smoke tests
npm run test:smoke| Variable | Default | Description |
|---|---|---|
TOKEN_TRACKER_BACKEND_PORT |
46727 |
Port for the bundled Rust backend HTTP server |
Usage and cost data is cached locally for offline reading and fast startup:
- Linux —
~/.config/CodexBar/cache.json - Windows —
%USERPROFILE%\.config\CodexBar\cache.json
MIT License — see LICENSE for full terms.