Skip to content

Integrations Overview

numbrs integrations fall into two categories: native integrations that work automatically, and collector-based integrations that require a small script on your machine.

These are configured entirely in the numbrs UI. No local scripts, no cron jobs.

IntegrationWhat it does
Relay monitoringChecks Nostr relays every 5 minutes from numbrs’ servers
Uptime monitoringPings HTTP endpoints and records status and response time
AlertsFires notifications when thresholds are crossed or monitors go down

You add these from the sidebar. They start collecting data immediately.

These require a small script that runs locally on your machine. The script reads data from local files or a local network service, then pushes it to your Supabase database via REST API.

IntegrationData sourceScript location
Claude AI UsageJSONL files on your MacSetup guide
JellyfinJellyfin server APISetup guide
PlexPlex server APISetup guide
Custom MetricsAnything you scriptAPI reference
  1. A bash/Python script runs on your machine (or wherever your data lives)
  2. It reads local data — JSONL session files, a media server API, cron job output
  3. It pushes records to your Supabase database using the REST API
  4. It runs on a cron every 5 minutes (or whatever interval makes sense)
  5. It’s idempotent — running it twice won’t create duplicates

The scripts only process data from the last 2 hours by default, so each run is fast. You can modify them to backfill historical data when you first set up.

All data written to Supabase is protected by row-level security — only your account can read your data.

All collector scripts need three environment variables:

NUMBRS_SUPABASE_URL — Your Supabase project URL.

  • Managed (numbrs.lol): Go to Settings → API in the app
  • Self-hosted: Your Supabase project URL from Project Settings → API

NUMBRS_SUPABASE_SERVICE_KEY — The Supabase service role key.

  • Managed: Go to Settings → API in the app
  • Self-hosted: Your Supabase project’s service role key from Project Settings → API → service_role

NUMBRS_OWNER_ID — Your user ID in numbrs.

  • Go to Settings → Profile — your user ID is shown there as a UUID

Once you have your credentials, the general pattern for any collector is:

Terminal window
# Set credentials
export NUMBRS_SUPABASE_URL="https://your-project.supabase.co"
export NUMBRS_SUPABASE_SERVICE_KEY="your-service-role-key"
export NUMBRS_OWNER_ID="your-user-id"
# Run the collector
bash ~/numbrs-collector.sh

Then set it up as a cron job:

*/5 * * * * NUMBRS_SUPABASE_URL=... NUMBRS_SUPABASE_SERVICE_KEY=... NUMBRS_OWNER_ID=... bash ~/numbrs-collector.sh >> /tmp/numbrs.log 2>&1