Skip to content

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.

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.

FeatureWhat it doesSetup required
Relay monitoringConnect latency, event latency, uptime % for any Nostr relayUI — just paste a wss:// URL
Uptime monitoringHTTP endpoint checks, incident history, response time trendsUI — just paste a URL
Claude AI usageToken counts, costs per session, by project — Claude Code + OpenClawCollector script + cron
JellyfinPlay history, library stats, user activityCollector script + cron
PlexPlay history, library stats, active streamsCollector script + cron
Custom metricsPush any number via HTTP POST, from scripts or CIJust curl
Dashboard builderDrag-and-drop panels, line/area/stat/gauge types, public sharingBuilt-in
AlertsThreshold-based notifications when metrics cross limitsUI — configure per metric

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.

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 → charts
Jellyfin/Plex API ──┘
Your custom scripts ────────────────────────────────────────────────────→

All data is private by default. Row-level security ensures your data is only accessible to your account.

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.