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.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| funnel_analytics_agent-0.12.0.tar.gz | 44.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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