open source  ·  MIT

Your AI usage,
always in view.

AIMeter is a self-hosted dashboard that polls usage APIs across your AI subscriptions — quota, remaining, reset time — without any data leaving your server. SQLite, Postgres, MySQL, or D1. Runs anywhere.

AIMeter — dashboard
SQLite · Postgres · MySQL · D1 Docker · Vercel · Cloudflare Workers No Telemetry  ·  Credentials Stay Local
01 What it does
Quota Tracking Live progress bars per provider. Marks overquota when you've exceeded your limit. Shows a stale-data warning if the last fetch failed or is older than 3 minutes.
Usage History Stores usage snapshots to your database over time. Charts plot consumption across the active billing window so you can see how fast you burn through quota.
Self-Hosted No third-party services, no accounts, no telemetry. Credentials stay in your environment variables or encrypted in your own database. Deploy once and forget.
Multi-Account Add multiple credential sets per provider. Cards are drag-reorderable. Useful if you have personal and work accounts on the same service.
REST API Every dashboard operation — list providers, trigger refresh, read history — is a JSON endpoint. Integrate with Raycast, Alfred, Slack bots, or status pages.
Database SQLite for zero-config local use. Postgres or MySQL for production deployments. D1 for Cloudflare Workers edge deployments. Same schema and migrations across all four. Switch by changing one env var.
02 Supported providers
03 Screenshots click to expand
01Dashboard
02History
03API
04Settings
04 Install

Quick start

Boots on http://localhost:3000 by default. Docker starts immediately with no extra build step.

  • Dockerrecommended for most setups
  • Vercelserverless deployment
  • Cloudflare Workersedge runtime
Full Documentation →

Need environment variables? See docs for provider keys and database setup.

sh
# run with persistent SQLite volume
docker run -d \
  --name aimeter \
  -p 3000:3000 \
  -v aimeter-data:/app/data \
  ghcr.io/bugwz/aimeter:latest
# then open http://localhost:3000
sh
# run with persistent SQLite volume (Podman)
podman run -d \
  --name aimeter \
  -p 3000:3000 \
  -v aimeter-data:/app/data \
  ghcr.io/bugwz/aimeter:latest
# then open http://localhost:3000
05 Tools
01Setup Keys

Secret Key Generator

Generate cryptographically secure secrets for your deployment. All generation happens locally in your browser.

AIMETER_ADMIN_ROUTE_PATH DB key: admin_route_path
AIMETER_CRON_SECRET DB key: cron_secret
AIMETER_ENDPOINT_SECRET DB key: endpoint_secret
AIMETER_AUTH_SESSION_SECRET DB key: session_secret
AIMETER_ENCRYPTION_KEY DB key: encryption_key

Password Hash Generator

Enter a password to generate its PBKDF2-SHA256 hash (100,000 iterations). Paste the result into your database to reset a lost password. All computation is local.

NORMAL_PASSWORD No corresponding environment variable.
≥ 12 chars letter digit
NORMAL_PASSWORD_HASH DB key: normal_password_hash
ADMIN_PASSWORD No corresponding environment variable.
≥ 12 chars letter digit
ADMIN_PASSWORD_HASH DB key: admin_password_hash