Open source. MIT Licensed. Self-hostable. Free forever.
A Claude-native API observability and analytics platform that acts as a proxy/middleware layer between developers and the Anthropic Claude API. Provides real-time token tracking, cost forecasting, budget alerts, per-session analytics, and rate limit prediction. Built in response to GitHub issues #29721, #26177, #29604, #28962 — developer complaints Anthropic hasn't addressed. No billing, no tiers, no limits — community-driven and free forever.
- Frontend: React + TypeScript + Vite + Tailwind CSS + shadcn/ui + Recharts
- Backend: Express.js + TypeScript + PostgreSQL (Drizzle ORM)
- Proxy: HTTP middleware forwarding to api.anthropic.com
- Charts: Recharts
- Routing: Wouter
- Data fetching: TanStack Query v5
server/index.ts— Express app entry, runs migrations + seedserver/migrate.ts— Raw SQL migrations (CREATE TABLE IF NOT EXISTS)server/seed.ts— Seeds 3 demo projects + ~2000 historical requestsserver/routes.ts— All API routes + proxy endpoint/proxy/v1/*pathserver/storage.ts— DatabaseStorage class + AES-256-GCM encryption utilsserver/db.ts— Drizzle + PostgreSQL poolshared/schema.ts— Drizzle schema + types + MODEL_PRICING mapclient/src/App.tsx— Router with sidebar layout for authenticated pagesclient/src/components/app-sidebar.tsx— Navigation sidebarclient/src/pages/Landing.tsx— Marketing landing pageclient/src/pages/Dashboard.tsx— Analytics dashboard with rechartsclient/src/pages/Projects.tsx— Project management CRUDclient/src/pages/RequestLog.tsx— Live API request log tableclient/src/pages/RateLimits.tsx— Live rate limit monitorclient/src/pages/Alerts.tsx— Budget alert configurationclient/src/pages/Setup.tsx— Integration setup guideclient/src/pages/Settings.tsx— Security and configuration info
- Anthropic API keys are encrypted with AES-256-GCM before DB storage
- Encrypted keys are never returned to the frontend
- Decryption only happens server-side during proxy forwarding
- Proxy keys (cti_xxxxx) are separate credentials from Anthropic keys
- SDK-only mode available — users report token counts without sharing their key
- Proxy Mode: Replace
base_urlin Anthropic SDK with our proxy URL. User adds their Anthropic API key to their project. - SDK Mode: Keep your key, call
/api/trackafter each API call to report usage.
projects— User projects with proxy keys and encrypted Anthropic keysapi_requests— Individual request logs with token counts, costs, latencybudget_alerts— Budget alert configurations
GET /api/projects— List all projectsPOST /api/projects— Create project (with optional Anthropic key encryption)GET /api/analytics/overview?period=month&projectId=xxx— Aggregate statsGET /api/analytics/timeseries?period=week&projectId=xxx— Chart dataGET /api/analytics/models?period=month— Model breakdownGET /api/requests?projectId=xxx&limit=50— Request logGET /api/rate-limit/predict?projectId=xxx— Rate limit prediction (live, 15s refresh)GET /api/alerts— Budget alertsPOST /api/track— SDK-only tracking endpointALL /proxy/v1/*path— Claude API proxy endpoint
DATABASE_URL— PostgreSQL connection string (auto-provisioned)SESSION_SECRET— Used as base for AES-256 key derivation