Skip to content

Privacy & security

  • The gateway binds to 127.0.0.1 by default — only local processes can reach it
  • The only required outbound traffic is the proxied call to your configured provider, plus the summarizer call to the same provider
  • Anonymous aggregate savings telemetry is optional and disabled by default
  • The hosted dashboard connection is separately opt-in and outbound-only
  • API keys sent by your harness are forwarded to the provider unchanged
  • cmx does not store, log, or transmit keys — not in SQLite, not in config, not in the dashboard
Data Location Retention
Aggregated token stats ~/.local/share/cmx/cmx.sqlite kept
Summaries + message ledgers same DB kept
Full request payloads (opt-in, logging.enabled) same DB retention_days (default 14), purged hourly

Everything lives under your user account. Delete the data directory and it’s gone.

When explicitly enabled, cloud telemetry sends only the versioned aggregate counter allowlist. Pairing the hosted dashboard sends only its documented read-only aggregate protocol. Neither channel receives provider credentials, authorization headers, prompts, responses, request bodies, summaries, local paths, raw rows, configuration secrets, or remote commands.

  • Keep gateway.host at 127.0.0.1 unless you know you need LAN access
  • On shared machines, remember SQLite files are readable by your user by default (use private home directories as usual)