Skip to main content

funnel-analytics-agent

English | 中文

Daily morning brief + real-time anomaly alerts for indie launches. Reads Vercel + OpenPanel + HyperDX + Supabase + Product Hunt, surfaces what's broken before your users tell you.

License PyPI Python

Built by Alex Ji — solo founder shipping VibeXForge. Born from this thought:

On Product Hunt launch day my dashboard tabs were Vercel + OpenPanel + HyperDX + Supabase + Product Hunt + GitHub. Cycling through them = 1 hour/day. Missing a 5xx for 2 hours = lost the launch.

What it does

Two modes, one agent:

Brief mode — runs every morning (cron), composes a markdown brief from all data sources, drops it in your Obsidian vault. You read it over coffee in 30 seconds.

Alert mode — runs every 10 minutes during your launch window, exits with code 2 if anything critical/alert severity is found. Your wrapper script pages you (Telegram, Slack, ntfy.sh).

Sources (v0.9, 8 total):

  • Vercel — latest deployment state, deployments in last 24h, failed deploys
  • Product Hunt — live vote count, comment count, momentum check on launch day
  • Supabase advisor — security + performance lints; surfaces every CRITICAL individually
  • OpenPanel — count of tracked events (signup_completed, project_submit_completed, …) over last 24h; warns when an event drops to 0 (tracking regression)
  • HyperDX — error log count over last N hours; severity climbs from info → warn → alert as count crosses 10 / 50 thresholds
  • Build Quality — last 24h of pre-push reviews from build-quality-agent's local log (verdicts, BLOCK count, token spend)
  • Agent Spend — cross-agent Anthropic $ MTD aggregated across ~/.<agent>/usage.jsonl files
  • VibeX — direct SQL pull of core launch-board metrics (new creators / submissions / cumulative plays / stage distribution); zero Claude calls. Configure via VIBEX_PROJECT_REF (or reuse SUPABASE_PROJECT_REF if it's the same project)

Install

git clone https://github.com/alex-jb/funnel-analytics-agent.git
cd funnel-analytics-agent
pip install -e .
cp .env.example .env
# fill in VERCEL_TOKEN, PH_DEV_TOKEN, etc

Usage

# One-shot brief (default)
funnel-analytics-agent

# Write brief to file (e.g. for Obsidian vault)
funnel-analytics-agent --out ~/Documents/alex-brain/morning-briefs/$(date +%Y-%m-%d).md

# Real-time alert mode — exits 2 if anything critical
funnel-analytics-agent --alert

# Limit to specific source
funnel-analytics-agent --source vercel --source producthunt

Cron setup for Product Hunt launch day

# Every 7 minutes during the 24h launch window — alert mode
7,17,27,37,47,57 * * * 1 /usr/local/bin/funnel-analytics-agent --alert || curl -d "PH alert" ntfy.sh/your-topic

# Daily brief at 7:03 AM (post-cap-reset)
3 7 * * * /usr/local/bin/funnel-analytics-agent --out ~/Documents/alex-brain/morning-briefs/$(date +\%Y-\%m-\%d).md

Design choices

  • Each source fails independently. Vercel API down? Your brief still gets PH stats. The failed source is listed at the bottom of the brief; never kills the whole agent.
  • No external dependencies (yet). Pure stdlib urllib — no requests, no httpx, no API client SDKs. Keeps install fast and pip-install-friendly on locked-down boxes.
  • Markdown-first output. Output is meant to be human-readable in Obsidian / VS Code, not piped through a dashboard service.
  • Exit codes for cron, not push notifications. v0.1-v0.3 don't ship a Telegram/Slack adapter — your cron wrapper does that. Keeps the agent's surface tiny.
  • 7-day baseline auto-built from your own runs. No need to seed historical data. After 24h of cron runs the baseline starts forming; after 7 days it's solid. Bootstrap mode (no history) just skips delta calculation — never blocks output.

Roadmap

  • v0.1 — Vercel + Product Hunt sources · brief mode · alert mode · cron-friendly
  • v0.2 — OpenPanel, HyperDX, Supabase advisor sources (5 sources total, 30 tests)
  • v0.3 — 7-day baseline · delta_pct enrichment · severity promotion on >50% drops · 41 tests
  • v0.4 — Push notifier adapters (ntfy.sh / Telegram / Slack) + macOS launchd installer (54 tests)
  • v0.5 — Claude-summarized brief at top of every report (Haiku 4.5 default; ~$0.0008/run; falls back gracefully)
  • v0.8 — MCP server: query the morning brief / live alerts / per-source state from Claude Desktop

MCP server (Claude Desktop / Cursor / Zed)

Expose the brief, alert state, and individual sources as tools your AI assistant can call.

pip install 'funnel-analytics-agent[mcp]'

Then add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "funnel-analytics": {
      "command": "funnel-analytics-mcp",
      "env": {
        "VERCEL_TOKEN": "...",
        "VERCEL_PROJECT_ID": "...",
        "PH_DEV_TOKEN": "...",
        "PH_LAUNCH_SLUG": "your-launch-slug",
        "OPENPANEL_CLIENT_ID": "...",
        "OPENPANEL_CLIENT_SECRET": "...",
        "HYPERDX_API_KEY": "...",
        "SUPABASE_PERSONAL_ACCESS_TOKEN": "...",
        "SUPABASE_PROJECT_REF": "...",
        "ANTHROPIC_API_KEY": "..."
      }
    }
  }
}

Tools:

  • get_brief(include_summary) — full markdown morning brief
  • get_alerts() — alert-mode output: All clear or per-source severity
  • get_source(name) — single source (vercel / producthunt / openpanel / hyperdx / supabase)
  • usage_summary() — Anthropic token + $ totals from local usage log

License

MIT.

🧩 Part of the Solo Founder OS stack

A growing collection of MIT-licensed agents that share solo-founder-os as their base — Source/MetricSample contracts, HITL queue, AnthropicClient, notifiers, scheduler. Each agent is independently useful; together they cover the full solo-founder workflow.

Agent What it does
solo-founder-os The shared base lib (Source/MetricSample, AnthropicClient, HITL queue, notifiers, sfos-doctor / sfos-evolver / sfos-eval / sfos-retro / sfos-bus / sfos-inbox)
build-quality-agent Pre-push diff reviewer + local build runner — catches CI-killing changes before they ship
customer-discovery-agent Reddit pain-point scraper + Claude clustering for product validation
vc-outreach-agent Investor cold email drafter with HITL queue + SMTP sender
cost-audit-agent Monthly bill audit across 6 providers with dollar-tagged waste findings
bilingual-content-sync-agent EN ⇄ ZH i18n diff + Claude translate + HITL apply
orallexa-marketing-agent AI marketing agent for OSS founders — auto-generate platform-specific marketing posts

Each agent's own row is omitted from its README. Install whichever solve real problems for you.

Metadata

Release files for funnel-analytics-agent 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for funnel-analytics-agent 0.12.0
File Size Uploaded
funnel_analytics_agent-0.12.0.tar.gz 44.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for funnel-analytics-agent 0.12.0
File Interpreter ABI Platform
funnel_analytics_agent-0.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 86.1 kB

Release files / funnel_analytics_agent-0.12.0.tar.gz

Download URL funnel_analytics_agent-0.12.0.tar.gz
Size 44.8 kB
Tags Source
SHA-256 checksum
How to use checksums
edcb9bbd3c95a782b43c3eee6bde71c31f7032b42e687ada641d4d8fe0999925
BLAKE2b-256 checksum
How to use checksums
744feac3fba4a84ad364acf2d66df31787a55511a71dc41255e947bed5ce910b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 8, 2026.

Transparency log

Release files / funnel_analytics_agent-0.12.0-py3-none-any.whl

Download URL funnel_analytics_agent-0.12.0-py3-none-any.whl
Size 41.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
14cf66d3b748254ac787b27e1747fb6e7c01f0260721e0279f4e28bf47a42f2b
BLAKE2b-256 checksum
How to use checksums
64a016f23ef8cacc11e240d1560975a4b0ecbd85a15e1e76e4219108f893f3c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.12.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page