Operating modes

What Cloud mode sends

In Cloud mode a change is evaluated on a hardened remote endpoint. What leaves the device is fixed, minimal and locally verifiable: a redacted, added-only diff and the file path, never the full file. This page is the exact data contract.

~6 min read · Operating modes

Overview

Cloud mode sends a projection of the change, not the file:

  • Sent: the file path and a redacted, added-only unified diff, over TLS, to a fixed endpoint surface.
  • Never sent: full file contents, removed-line text, directory or process listings, or system telemetry.
  • Recorded: every outbound request the daemon makes is written to a local, human-readable egress ledger.
Private mode makes no analysis calls at all; content never leaves the machine. See network and firewall requirements for the full egress allowlist.

The data contract

The endpoint surface is small and fixed; each request carries a documented, minimal payload. No memory-file content crosses the boundary except as the redacted diff:

EndpointWhenPayload
/enrollonce at installationapp ID and a one-time enrollment code
/evaluateon a protected-file changepath and redacted unified diff (no full texts)
/getConfigpoll intervalauth token only
/reportAuditwhen new audit entries existtimestamp, action, path, reason, scores
/reportQuarantineon a quarantine outcomecase ID, path, reason, scores and the redacted diff (size-capped)
/ackDecisiononce per resolved casecase ID and outcome (applied, stale or discarded)

What each field contains

The evaluated projection is redacted, added-only and size-capped on the device before it is sent. These are the fields of the quarantine report and what each carries:

FieldWhat it containsRedacted?
pathThe path of the changed file, so a reviewer knows which fileNo: path only, never content
redactedDiffThe added lines only, with secrets and structured PII replaced by placeholders, capped in sizeYes, locally before egress
diffFidelityWhether the stored diff equals the judged text (exact) or is a reduced projection of it (projection)Metadata, no content
removedLinesThe count of removed lines only; the removed text never leaves the deviceYes: only a number leaves
originalHashSHA-256 of the pre-change file, used for idempotency and supersedeHash, no content
reason, scoresA short reason string and the graded scores of the caseMetadata, no content
The diff is a projection, not the whole file: removed-line text is dropped and only its count is reported, so the pre-change content never leaves the machine.

Local redaction before egress

Before any byte is sent, the diff passes through a local redaction stage. Recognizable secrets and structured PII are replaced by structure-preserving placeholders, so the evaluator can still reason about the change while the sensitive values stay on the device. Key names survive; only the values are removed:

ClassExample matchedPlaceholder
API keysprovider-style keys, GitHub, Slack, AWS, Google, Stripe, webhook secrets[REDACTED:apikey]
JWTthree base64url segments[REDACTED:jwt]
Generic assignmentskey/token/secret/password = value (key name kept, value removed)[REDACTED:secret]
EmailRFC-style addresses[REDACTED:email]
IBANcountry code, check digits and BBAN[REDACTED:iban]
Card numbergrouped card numbers[REDACTED:card]
IP addressdotted-quad IPv4 address[REDACTED:ip]
Phoneinternational format only[REDACTED:phone]
Rule ordering is deliberate: secret formats are matched before generic patterns, so an API-key line is redacted as a secret rather than fragmented. Free-text names and unstructured PII are not pattern-detectable offline and may pass through.

The egress ledger

Every outbound request is recorded locally in a human-readable ledger. Each line carries the timestamp, the endpoint, the payload size, the SHA-256 of the payload (never its content) and the HTTP status. This is the verifiable "does it phone home?" accounting:

textEgress-ledger lines
2026-06-04T12:00:01Z endpoint=/getConfig bytes=2   sha256=44136f… status=200
2026-06-04T12:03:17Z endpoint=/evaluate  bytes=412 sha256=9f86d0… status=200
The ledger can be cross-checked against firewall logs or a packet capture: an external observer must see exactly the requests the ledger records and nothing more. Verification does not require trusting the vendor.

How an uncertain change is held and brought to you: the user confirmation prompts. The whole protection is fail-closed.

Was this helpful?

Evaluation in the cloud, your content on the device.

A redacted, added-only diff is all that leaves the machine, and the local ledger proves it. Free for Linux, macOS and Windows.

Sign me up