Harpax is a local-first product. The sessions, prompts, tool calls, and detections that Harpax processes stay on your machine by default. Nothing is transmitted to Cambric AI unless you explicitly turn on an integration that does so — and the integrations that do exist are off by default.

What Harpax captures

While a Claude Code session is running, Harpax captures:

  • Every tool call (the tool name and its arguments)
  • Tool execution results returned to the model
  • User prompts you submit
  • The model's responses (messages and reasoning content)
  • Session lifecycle events (start, end, token usage, model selection)
  • Detection results produced by the rules engine

All of this is necessary for Harpax to do its job — you can't enforce a detection on an event the daemon never saw.

Where the data lives

Captured events are written to JSONL files in ~/.harpax/sessions (configurable). After a configurable delay following session end, the JSONL is compressed and ingested into a local SQLite database for fast historical queries. The raw JSONL is deleted after the retention window expires.

All of this lives on your machine, under your user account, in the file system you already control. Cambric AI has no access to it.

What leaves your machine (and only if you turn it on)

A small number of Harpax features can send data off-device. Each one is off by default and individually opt-in:

Feature Default What gets sent, and to whom
Webhook alerts Off Detection alerts to a URL you configure (e.g., a Slack incoming webhook). Cambric isn't in the loop.
Email alerts Off SMTP messages through a server you configure. Sent to the address you set.
Tier 3 LLM review Off Event summaries to a third-party LLM provider you configure (Anthropic, OpenAI, etc.) using your API key. Cambric does not proxy this traffic.
Threat intelligence feeds Off Outbound requests to feed URLs you list, to fetch updated detection patterns.
Session summaries Off Session content to a summary provider you configure.

What Cambric AI does not collect

Out of the box, Harpax does not:

  • Send your sessions, prompts, or tool calls to Cambric servers
  • Phone home with telemetry, crash reports, or usage analytics
  • Require an account or login to use the product
  • Share data between users or aggregate it across installations

The daemon does maintain a small internal identity for its own purposes — a build version and a fixed magic string used so the GUI can confirm it's talking to the right daemon process — but nothing about that is transmitted off your machine.

When you contact us directly

Information you send to [email protected] or to the Cambric service desk is processed in order to respond to your inquiry. If your message includes log excerpts or session data, we use that content only to diagnose the issue you reported.

Please redact secrets before sending. We'd rather get a redacted log than an unredacted one.

Your data, your control

  • Change the storage location: edit storage.path in ~/.harpax/config.yaml
  • Shorten retention: lower retention.max_age_days or set cleanup_on_session_end: true
  • Delete everything: stop the daemon and remove ~/.harpax/
  • Export a session: use harpax export <session-id> or the Export action in the Session Detail page
Local-first means local-first

If Harpax ever adds an opt-in cloud feature that would transmit session content to Cambric, it will be clearly labeled in the GUI, off by default, and documented here.