Agent-first, cookieless web analytics in one static binary.
There is no dashboard — there is a living globe.
# the whole product in five lines
vigie site add example.com
vigie serve --port 8090
<script defer src="https://your-host/vigie.js" data-site="example.com"></script>
vigie stats overview --site example.com --since 7d
{"ok":true,"data":{"pageviews":1234,"visitors":410,"bounce_rate_pct":38,…}}
JSON-only stdout, semantic exit codes, an embedded guide manual, help-json introspection, sha256-verified update. Complies with the agent-first CLI specs.
Visitor = sha256(secret+day+site+ip+ua). The salt rotates daily, the raw IP is never stored. No cookie banner needed.
vigie track --name deploy --actor ci — server-side events with no browser. Your cron job is a first-class analytics stream.
vigie snapshot --publish renders a self-contained HTML report and pushes it to hart → a live, shareable, disposable URL.
~60 KB native binary (MFL), SQLite storage, vigie prune retention. No Node, no ClickHouse, no Docker.
Timeseries, 9 breakdown dimensions, filters everywhere, goals with conversion rates, ordered funnels with drop-off — CLI and Bearer-gated HTTP API.
vigie stats live is the last-5-min feed. snapshot --globe --publish --live turns it into a self-refreshing world map hosted on hart — canvas-only, zero external assets.
sessions list/show: per-session rollups + the full ordered event trail. Weekly retention cohorts over identified users (window.vigie.identify()).
vigie.intrane.fr — org tokens, 10k events/mo free, then metered per-use via a péage wallet (€1/100k, no subscription). Self-hosting stays MIT-complete.
The snippet ships LCP/FCP/CLS/INP/TTFB (p50/p75/p90 via stats vitals) and groups JS errors + rejections (stats errors) — nothing to configure.
curl -fsSL https://github.com/javimosch/vigie/releases/latest/download/vigie -o vigie
chmod +x vigie && ./vigie guide # the manual is in the binary
Linux x86_64; needs libssl3 + libsqlite3 (stock on any distro). Or build from source with machin: ./build.sh.
vigie stats timeseries --site s --bucket hour --since 24h
vigie stats referrers --site s --country FR --limit 5
vigie goal add --site s --name signup --kind event --match signup
vigie funnel add --site s --name onboard --steps "/,signup,/welcome"
vigie funnel show --site s --name onboard
vigie stats live --site s # realtime: last 5 minutes
vigie sessions list --site s --since 24h # session explorer
vigie stats retention --site s --weeks 8 # cohorts over identified users
vigie stats vitals --site s # LCP/FCP/CLS/INP/TTFB p50/75/90
vigie stats errors --site s # grouped JS errors
vigie snapshot --site s --since 30d --publish # → live hart URL
vigie snapshot --site s --globe --publish --live # → the living globe
vigie feedback "loved it" --kind praise
vigie update # sha256-verified, atomic, .bak rollback
curl -H "Authorization: Bearer $TOKEN" \
"https://vigie.intrane.fr/api/stats/overview?site=example.com&since=7d"