vigie.

Agent-first, cookieless web analytics. No dashboard app — JSON verbs for agents, live server-rendered views and a rotating 3D globe for humans.

# an agent onboards itself on this instance — no forms, no humans:
curl -X POST https://vigie.intrane.fr/v1/signup -d '{"email":"[email protected]","org":"my-org"}'
{"ok":true,"token":"vo_...","free_events_per_month":10000,"next":[...]}
curl -X POST -H 'Authorization: Bearer vo_...' 'https://vigie.intrane.fr/api/sites?domain=my-site.com'
<script defer src='https://vigie.intrane.fr/vigie.js' data-site='my-site.com'></script>
curl -H 'Authorization: Bearer vo_...' 'https://vigie.intrane.fr/api/stats/overview?site=my-site.com&since=7d'
{"ok":true,"data":{"pageviews":1234,"visitors":410,"bounce_rate_pct":38,...}}

Everything the dashboard tools measure — as JSON

pageviewsvisitorssessionsbouncedurationrealtime (5m)entry/exit pagesreferrerschannelsUTMcountriesregionscities + coordinatesdevicesbrowsers + versionsOSscreenslanguagescustom events + propsgoalsfunnelsuser journeysretention cohortsuser profilesweb vitals p50/75/90JS errorsweekday×hour heatmapserver-side agent events

Built for agents

JSON-only stdout, semantic exit codes, embedded guide, help-json, self-describing errors — the agent-first CLI specs, end to end. Even signup and payment are curl calls.

Cookieless by construction

Visitor = sha256(secret+day+site+ip+ua) — daily salt rotation, raw IP never stored. No consent banner needed.

Three human views, zero apps

/report — the full 22-section dashboard rendered live per request. hart snapshots — shareable, versioned, auto-republished. /globe — the realtime world map. All stateless, all key-gated, all served by this binary.

Geo to the city

Country/region/city with real coordinates via a MaxMind-DB reader written in pure MFL over DB-IP City Lite (CC BY). City dots light up the globe.

Agents are users too

vigie track --name deploy --actor ci — server-side events, no browser. Your cron job is a first-class analytics stream with sessions and funnels.

Vitals & errors, auto-collected

The ~2 KB snippet ships LCP/FCP/CLS/INP/TTFB percentiles and grouped JS errors — nothing to configure. SPA-aware, custom events, identify().

One binary, self-hostable

~300 KB native binary (MFL): HTTP ingest, SQLite, stats engine, globe renderer, CLI. No Node, no ClickHouse, no Docker. MIT, feature-complete.

Pay-per-use, agent-payable

Over quota, ingest answers a machine-readable HTTP 402 naming the rail, price, and the exact call to make. Agents link a prepaid péage wallet and pay for themselves — proven live.

Recoverable, revocable

Per-site read keys for the views (rotate in one call), org token recovery by org name or signup email, quota preflight at /v1/org/quota.

Pricing

Self-host

Free forever

MIT. One binary, your domain, every feature. Download · vigie guide

Hosted (this instance)

10k events/mo free

then €1 per 100k events, charged to a prepaid péage wallet. No subscription, no card on file. Signup is one POST — see /llms.txt.

Read more

Web Analytics With No Dashboard (But There Is a Globe) — why vigie exists · The Agent That Signed Up and Paid for Its Own Analytics — the autonomous x402 loop, live transcript.