Trust surface

Usage analytics

A quiet public pulse for installs running Kunai, not a growth dashboard. Analytics is optional; enable or disable it in Settings.

Snapshot day 2026-10-02 · updated

Days end at midnight IST (18:30 UTC) from 15 September 2026. 14 September 2026 is an 18.5-hour changeover day ending at 18:30 UTC; earlier days end at midnight UTC.

schema v2opt out with /analytics
Lifetime installs
121
+119
Grew by 119 this window
Cumulative: kept installs plus the retired count
Active yesterday
4
-1
Distinct installs on 2026-10-02
1 of them first seen that day
Reporting window
46 days
Daily rollups, never pruned
Below the floor
100%
all buckets
Every bucket folds into other
Groups under 5 installs are not reported
Installs over time
2026-08-18 → 2026-10-02
Share over time
Share of active installs by version, oldest band at the bottom.
Every version is below the floor
No single version has five installs reporting yet, so the whole window folds into other. This chart appears once one is running on enough machines to publish without identifying anyone.
Day by day
Every plotted value, as text — the chart’s accessible twin.
Active, first-seen, and lifetime installs per day; platform columns hold the day's published OS buckets — a dash means under the naming floor, not zero
DayActiveNewOtherLifetime
2026-10-02414121
2026-10-01515120
2026-09-30626119
2026-09-2910310117
2026-09-2810410114
2026-09-27747110
2026-09-26727106
2026-09-25616104
2026-09-24404103
2026-09-23656103
2026-09-221061098
2026-09-2173792
2026-09-2052589
2026-09-1940487
2026-09-1862687
2026-09-1721285
2026-09-1653584
2026-09-1510181
2026-09-141031081
2026-09-131071078
2026-09-121461471
2026-09-1173765
2026-09-101051062
2026-09-091191157
2026-09-081271248
2026-09-071081041
2026-09-0684833
2026-09-0577729
2026-09-0454522
2026-09-0366618

These counts are anonymous and best-effort. Anyone willing to fake pings can inflate them, so read them as a pulse rather than a measurement — Kunai deliberately collects no IP or identity that would let it prove otherwise.

Install channels

npm downloads
Registry tarball fetches per UTC day · 2026-09-03 → 2026-10-02
npm downloads per UTC day
2026-09-030
2026-09-048
2026-09-055
2026-09-066
2026-09-070
2026-09-080
2026-09-099
2026-09-106
2026-09-117
2026-09-1215
2026-09-133
2026-09-145
2026-09-150
2026-09-163
2026-09-176
2026-09-184
2026-09-192
2026-09-206
2026-09-210
2026-09-222
2026-09-232
2026-09-241
2026-09-251
2026-09-264
2026-09-273
2026-09-284
2026-09-294
2026-09-300
2026-10-012
2026-10-020

108 downloads in the window, peaking at 15 on 2026-09-12. npm counts every tarball fetch — reinstalls, upgrades, and CI included — and never sees install.sh or GitHub-binary installs. A channel pulse, not an install count, and its days are UTC.

Breakdowns

By version
Which release is running
By version

All 4 installs are below the reporting floor.

A bucket needs 5 installs before it is named here.

By OS
Platform mix
By OS

All 4 installs are below the reporting floor.

A bucket needs 5 installs before it is named here.

By architecture
CPU mix
By architecture

All 4 installs are below the reporting floor.

A bucket needs 5 installs before it is named here.

Each breakdown counts the same installs a different way, so the three add up to the same day total; they are not parts of one whole. Small-cell suppression is applied per breakdown; it is not a joint anonymity guarantee.

What Kunai promises
The limits this page is bounded by.
  • No watch history leaves the machine

    Titles, queries, providers, stream URLs, and file paths are never transmitted.

  • Install ids are hashed before storage

    The ingest keeps HMAC hashes of the install id with your platform, architecture, and version, never a raw UUID.

  • You are told before anything sends

    Setup asks up front, or a one-time notice appears on first launch. That first run always sends nothing. DO_NOT_TRACK and CI hard-block sends even if the setting says on.

Exact wire payload
Nothing else is accepted. Extra keys (titles, queries, URLs) are rejected.
{
  "installId": "<sha256 of a local id>",
  "version": "<semver>",
  "os": "<platform>",
  "arch": "<arch>",
  "ts": 0
}

Preview locally with /analytics show

opt-in

Control it in the CLI

/analytics
Show status and toggle consent
/analytics show
Print the exact JSON that would be sent
DO_NOT_TRACK=1
Hard-blocks sends even if enabled