Security & Compliance

llm-observer is local-first by design. It runs as an npm package or desktop app on your own machine — there is no cloud deployment for it to send your data to. Session data (token counts, costs, and metadata) is parsed from files your AI coding tools already write to disk, and stored in a local SQLite database. Prompt and response text is never stored from that passive parsing path at all.

  • No cloud, no telemetry: The dashboard and database run entirely on your machine. Nothing is uploaded unless you explicitly opt in to a specific feature below.
  • Sensitive fields encrypted: Admin API keys and license keys are encrypted at rest with AES-256-GCM. (The rest of the local database is metadata — costs, tokens, timestamps — not sensitive prompt content.)
  • Optional local proxy: If you choose to route traffic through the local proxy, full request/response bodies are stored — still only on your machine, never transmitted anywhere else.
  • Opt-in PII redaction: When the proxy is enabled, you can turn on redaction for emails, phone numbers, SSNs, credit card numbers, and API keys in captured traffic. Off by default.
  • Opt-in team sync: Team accounts can sync aggregated, non-sensitive daily stats (cost/token totals per provider and project) between members. Prompt and response text is never included in that sync, under any configuration.

No compliance certifications — yet

We don't hold SOC 2, HIPAA, or any other formal compliance certification, and we won't claim one until it's actually been audited. What we can tell you today is architectural: your data stays on your machine because the product is built to run there, not because of a policy promise.

Questions

Have a security question or found something that looks off? hello@llm-observer.com.