Introduction
numbrs is an open-source personal metrics platform for people who self-host things and want visibility into what’s actually happening. It connects to your Nostr relays, AI usage logs, media servers, and anything you can script — and puts it all on one dashboard you control.
It’s built for individuals. Not teams. Not enterprises. Just you.
Managed vs self-hosted
Section titled “Managed vs self-hosted”You can run numbrs two ways:
Managed — Sign up at numbrs.lol. Nothing to deploy. Your data lives in Supabase with row-level security enforcing that only you can read it. Free to start.
Self-hosted — Fork satsdisco/numbrs on GitHub, create a Supabase project, deploy to Vercel. You own the database entirely. See the Self-Hosting guide for step-by-step instructions.
Both modes are identical in functionality. The only difference is who runs the infrastructure.
What you can track
Section titled “What you can track”| Feature | What it does | Setup required |
|---|---|---|
| Relay monitoring | Connect latency, event latency, uptime % for any Nostr relay | UI — just paste a wss:// URL |
| Uptime monitoring | HTTP endpoint checks, incident history, response time trends | UI — just paste a URL |
| Claude AI usage | Token counts, costs per session, by project — Claude Code + OpenClaw | Collector script + cron |
| Jellyfin | Play history, library stats, user activity | Collector script + cron |
| Plex | Play history, library stats, active streams | Collector script + cron |
| Custom metrics | Push any number via HTTP POST, from scripts or CI | Just curl |
| Dashboard builder | Drag-and-drop panels, line/area/stat/gauge types, public sharing | Built-in |
| Alerts | Threshold-based notifications when metrics cross limits | UI — configure per metric |
Who this is for
Section titled “Who this is for”Nostr developers and relay operators — You’re running infrastructure and you need to know if your relay is up, how fast it’s responding, and whether it’s degrading over time. numbrs checks every 5 minutes and keeps the history.
Heavy Claude users — If you’re on Claude Max or running an AI assistant that burns tokens all day, it’s surprisingly hard to know where the spend is going. numbrs reads your local JSONL session files and surfaces costs by project and model, automatically.
Homelab people — You’re already running Jellyfin or Plex, you’ve got cron jobs doing things, you maybe have some servers you care about. numbrs gives you a dashboard for all of it without standing up Prometheus and Grafana.
Indie hackers who want metrics without the overhead — Push a metric from a GitHub Action, a cron script, or a Python script. See it on a dashboard. That’s it.
How data flows
Section titled “How data flows”Everything in numbrs follows one of two paths:
Native integrations (relay monitoring, uptime monitoring) — numbrs’ servers make the checks directly. You configure them in the UI and data appears automatically.
Collector-based integrations (Claude, Jellyfin, Plex, custom metrics) — A small script runs on your machine, reads local data, and pushes it to your Supabase database via REST API. You schedule this script with cron or launchd. The script is designed to run every 5 minutes and process only recent changes.
Your machine Supabase numbrs dashboard──────────────────── ────────── ─────────────────~/.claude/projects/ ──┐~/.openclaw/sessions ──┤→ collector script → REST API → database → chartsJellyfin/Plex API ──┘Your custom scripts ────────────────────────────────────────────────────→All data is private by default. Row-level security ensures your data is only accessible to your account.
Where to start
Section titled “Where to start”The fastest path: Quick Start — sign up, add an uptime monitor, push a custom metric, and build a dashboard. Takes about 5 minutes.
If you want to self-host first: Self-Hosting guide.
For AI usage tracking (the most popular integration): Claude AI Usage.