Daily morning brief + real-time anomaly alerts across Vercel / OpenPanel / HyperDX / Supabase / Product Hunt for indie launches.
Project description
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.
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.jsonlfiles - 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 reuseSUPABASE_PROJECT_REFif 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_pctenrichment · 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 briefget_alerts()— alert-mode output:All clearor per-source severityget_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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file funnel_analytics_agent-0.12.0.tar.gz.
File metadata
- Download URL: funnel_analytics_agent-0.12.0.tar.gz
- Upload date:
- Size: 44.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edcb9bbd3c95a782b43c3eee6bde71c31f7032b42e687ada641d4d8fe0999925
|
|
| MD5 |
0358508297c007af666582fab87c0d07
|
|
| BLAKE2b-256 |
744feac3fba4a84ad364acf2d66df31787a55511a71dc41255e947bed5ce910b
|
Provenance
The following attestation bundles were made for funnel_analytics_agent-0.12.0.tar.gz:
Publisher:
release.yml on alex-jb/funnel-analytics-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
funnel_analytics_agent-0.12.0.tar.gz -
Subject digest:
edcb9bbd3c95a782b43c3eee6bde71c31f7032b42e687ada641d4d8fe0999925 - Sigstore transparency entry: 1478060095
- Sigstore integration time:
-
Permalink:
alex-jb/funnel-analytics-agent@efc9858402d98a1c9e178a691cbc413ef3b5abed -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/alex-jb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@efc9858402d98a1c9e178a691cbc413ef3b5abed -
Trigger Event:
push
-
Statement type:
File details
Details for the file funnel_analytics_agent-0.12.0-py3-none-any.whl.
File metadata
- Download URL: funnel_analytics_agent-0.12.0-py3-none-any.whl
- Upload date:
- Size: 41.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14cf66d3b748254ac787b27e1747fb6e7c01f0260721e0279f4e28bf47a42f2b
|
|
| MD5 |
be3357c29428493a9cd74d444ebdb845
|
|
| BLAKE2b-256 |
64a016f23ef8cacc11e240d1560975a4b0ecbd85a15e1e76e4219108f893f3c5
|
Provenance
The following attestation bundles were made for funnel_analytics_agent-0.12.0-py3-none-any.whl:
Publisher:
release.yml on alex-jb/funnel-analytics-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
funnel_analytics_agent-0.12.0-py3-none-any.whl -
Subject digest:
14cf66d3b748254ac787b27e1747fb6e7c01f0260721e0279f4e28bf47a42f2b - Sigstore transparency entry: 1478060376
- Sigstore integration time:
-
Permalink:
alex-jb/funnel-analytics-agent@efc9858402d98a1c9e178a691cbc413ef3b5abed -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/alex-jb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@efc9858402d98a1c9e178a691cbc413ef3b5abed -
Trigger Event:
push
-
Statement type: