Data, privacy and security
Cost Intelligence sits in the path of your developers’ coding agent traffic, so it is reasonable to want a precise answer to “what leaves the machine”. This page is that answer, field by field.
The short version: only counts, costs, and structural metadata are reported. Prompt and response content is not collected unless someone explicitly turns it on, and an organization can prevent that from ever happening.
What is collected
Each section below lists the fields and includes an expandable example of the real payload, shown with content capture off (the default). Values are illustrative.
Per session
View example session payload
Note the commit delta carries counts only. No filenames and no diff content.
Per call
View example call payload
Token counts are read straight from the provider’s own usage block, so they reconcile with your invoice.
Per content block
One row per classifiable region of the request or response. This is what makes cost attribution possible.
View example content blocks
Every block carries a category, a size and a hash. None carries a body field, because content capture is off. That one field is the only place prompt or response text would ever appear.
The block list is what turns a single token total into a cost breakdown. The
user_input block above is 214 characters against 8,432 for the system prompt
and 1,904 for memory files, which is the ratio most teams are surprised by.
Never collected
The content capture control
One setting governs whether any prompt or response text leaves the device.
If your organization does not pin the value, an individual developer can opt
themselves in. Silence is not a veto. For an IP-sensitive fleet, set
CIPX_CAPTURE_CONTENT to false explicitly rather than leaving it unset.
Where the data goes
Security
In transit. The coding agent talks to the proxy over the loopback interface only, so that traffic never touches a network. The proxy originates its own TLS connection to the model provider with full certificate validation, and ships to Opik over HTTPS. The proxy, admin and viewer listeners refuse to bind anything other than 127.0.0.1 and fail to start rather than binding a public address.
Credentials. Authorization headers are masked at capture, before anything is written to disk. The original headers are forwarded upstream untouched, so the proxy is transparent to authentication and never rewrites a caller’s credentials.
On disk. The local spool lives at ~/.opik-cipx/ with directory mode 0700 and files 0600. It is a buffer, not an archive, and it is bounded by a total disk cap and a retention window, whichever binds first.
The content capture setting governs what is reported to Opik. It does not
govern the local buffer: full request and response bytes are written to the
local spool regardless, because the pipeline re-derives cost attribution from
them. That data never leaves the machine, is not world-readable, and ages out
on the caps above, but if your baseline requires a shorter window, lower
raw_retention_days and disk_cap_bytes in the deployed configuration.
TLS interception. The recommended plugin rollouts (managed settings and MDM) do not terminate, decrypt or inspect TLS, and install no certificate. The optional macOS app does terminate TLS locally, using a per-device certificate authority whose private key is hardware-backed and non-extractable, constrained to the model provider hostnames.
Compliance and security review
For a formal review we can provide the full Cost Intelligence data security and privacy document, covering the complete field inventory, on-disk retention characteristics, the full outbound destination list, subprocessors, and current compliance attestations.
Email sales@comet.com and we will route it to the right team.