Core Concepts
Telemetry
Anonymous, opt-out aggregate counters - exactly what leaves your server and how to turn it off.
Chatpack ships anonymous, opt-out telemetry: aggregate counters only.
What is sent
Twice a day (at most), Chatpack POSTs a small JSON body containing:
- counter deltas -
messagesSentandconversationsCreated - the library version
- a random per-process id that is never persisted
Never message bodies, user ids, conversation ids, or hostnames. The payload
shape is a documented public type
(TelemetryPayload)
so you can audit exactly what leaves your server.
Opting out
Either works:
chatpack({ storage, telemetry: false });CHATPACK_TELEMETRY=0The env var is the ops kill switch and always wins; then the telemetry
config option; default is on.
Behavior guarantees
- Failures are silently ignored - telemetry can never break chat.
- The flush timer is
unref'd - it never keeps your process alive. - Counters are in-process aggregates, exposed as
chat.telemetryif you want to inspect them yourself.