@thisisayande/tokentracker
v0.1.11
Published
AI Provider Quota Monitor - track usage, rate limits, and spend across 40+ LLM providers
Readme
TokenTracker
TokenTracker is a cross-platform desktop application that monitors AI provider quotas, rate limits, and spend statistics in real-time.
| | | |:---:|:---:| | | |
Features
- 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
Tech Stack
- 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)
Architecture
Frontend (Tauri/Next.js)
→ HTTP (localhost) → Rust Backend (Axum API, port 46727)
→ useProviders hook manages all state
→ mapProviderUsage / mapProviderCost transform raw JSON → typed objectsKey Files
| 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 |
Getting Started
Prerequisites
Development
# 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).
Production Build
npm run tauri:buildOutputs native installers for your platform (AppImage, .deb, .msi, etc.).
Running Tests
# Terminal 1 — start the dev server
npm run dev
# Terminal 2 — run smoke tests
npm run test:smokeEnvironment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| TOKEN_TRACKER_BACKEND_PORT | 46727 | Port for the bundled Rust backend HTTP server |
Local Caching
Usage and cost data is cached locally for offline reading and fast startup:
- Linux —
~/.config/CodexBar/cache.json - Windows —
%USERPROFILE%\.config\CodexBar\cache.json
License
MIT
