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.