CLI telemetry and your rights
Putnami CLI records a small, closed set of usage signals to help maintain and improve the CLI. This page explains the current processing and the controls available to you.
Controller and contact
The controller for this CLI telemetry is Putnami, operated by Fabien Dumay. For access, erasure, objection, or telemetry questions, contact fabien@putnami.com.
Purpose and lawful basis
The purpose is product improvement for Putnami's own CLI: understanding broadly used commands, workload shape, broad failure categories, and performance trends. The lawful basis is legitimate interests, not consent. Read the versioned Legitimate Interests Assessment for the purpose, necessity, and balancing analysis.
The CLI remains fully functional when telemetry is disabled.
Exact data fields
The client enforces a compiled allowlist before storing or exporting an event.
| Event | Fields |
|---|---|
session:start |
Public job-command names; project count; job count; interactive; presence-only booleans for flag.impacted, flag.coverage, flag.output, flag.no-cache, flag.projects, and flag.watch |
session:end |
success; duration in milliseconds; interactive; a failure-only errorCategory of usage, auth, api, or failure |
| OTLP envelope | event.name; device.id; cli.version; os; arch; service.name=putnami-cli; putnami.framework=go |
Command names and error categories use closed vocabularies. Putnami does not collect code, file paths, project or workspace names, environment variables, configuration, error messages, source-control data, user identity, or caller IP addresses.
Identifier and local retention
The CLI creates a random device identifier only when it records its first
eligible event. It rotates on each UTC month boundary; events retain the ID from
the month in which they were recorded. putnami telemetry off deletes both the
device ID and the local event buffer.
The local JSONL buffer holds at most 1,000 events. You can inspect it with
putnami telemetry show or remove it with putnami telemetry off.
Notice, opt-out, CI, and agents
The first eligible interactive run prints a one-line notice and writes its
timestamp locally. That notice run records locally only; it does not transmit a
previous buffer. Non-TTY runs, including scripts and agents, never display a
notice and collect only after an interactive notice has been shown on the same
machine. Their events are tagged interactive=false.
You can object at any time with any of these controls:
putnami telemetry off— explicit opt-out; deletes the local buffer and ID.DO_NOT_TRACK=1— disables telemetry unless an explicit CLI config setting wins.PUTNAMI_TELEMETRY=off(also0orfalse) — disables telemetry unless an explicit CLI config setting wins.
CI is disabled by default. putnami telemetry status shows the effective state,
the rule that decided it, and the current device-ID month when one exists.
Remote delivery, retention, and location
Putnami has not activated a baked production receiver yet. The default CLI
endpoint is empty while the product-telemetry workspace, raw-event retention,
hosting location, and live reader verification are completed. Until that gate
closes, telemetry remains on the local machine unless you explicitly set
PUTNAMI_TELEMETRY_ENDPOINT for your own controlled test endpoint.
Before Putnami activates a managed receiver, it will publish the hosting location and verify a raw-event retention limit of no more than 90 days. Aggregated, non-raw operational metrics may be retained longer. The managed receiver will not retain caller IP addresses.
Your rights
You may object through the opt-out mechanisms above. To request access or erasure of any remote records after managed delivery is activated, contact the controller. The rotating ID, bounded local buffer, and remote raw-event TTL are designed so that data also ages out without a request.
Separate application telemetry
This page covers the Putnami CLI only. Telemetry in applications built with the Go or TypeScript frameworks remains separately configured and opt-in; it is not enabled or controlled by these CLI settings.