This page explains what data we collect, why, where it goes, how long we keep it, and what rights you have. It applies to roam-code.com and paid or early-access Roam services when enabled (PR Replay, planned Roam Review and Cloud, and private-deployment pilots). It does not apply to ordinary local analysis in the open-source CLI. The CLI runs on your machine and sends nothing to us unless you explicitly invoke a network feature such as metrics-push.

1. Who we are

The data controller is Cranot (Dimitris), a sole-trader operating from Athens, Greece.

Contact: [email protected]
Privacy + data-subject requests: [email protected]
Security disclosures: [email protected]

2. What runs locally vs. what touches our servers

The open-source CLI (roam-code on PyPI) performs local source analysis with no API key and no automatic repository-content upload. It writes a SQLite file inside your repo's .roam/ directory. It does not automatically phone home, send telemetry, run an update check, or transmit source code. On first parser use, a cold cache may retrieve one checksum-verified platform bundle from the parser dependency's GitHub release; that request contains no repository content and the bundle is retained for offline reuse. Explicit network-capable commands can contact PyPI, GitHub, operator-selected URLs, Roam Cloud, or Sigstore; opt-in MCP model summarization can send selected report snippets to the configured model provider. The authoritative list, including what each path sends, is docs/network-boundary.md. The same default-local, no-automatic-upload stance is contractually committed in DPA §6.

The paid services collect different things, listed below.

3. What this website (roam-code.com) collects

4. What Roam Cloud collects (planned paid SaaS)

Legal basis: performance of the contract you signed by subscribing.

5. What Roam Review collects (planned paid GitHub App)

Legal basis: performance of the contract. Roam Review does not retain source code after analysis. The audit-trail JSONL Roam emits contains metadata (verdict, finding count, confidence) — never the diff text.

6. Sub-processors

The canonical sub-processor list with location, processing purpose, and transfer basis is in DPA §5. At the effective date above:

New sub-processors are added with at least 14 calendar days' prior notice, unless emergency replacement is necessary to maintain security or service continuity, per DPA §5. Controllers may object on reasonable data-protection grounds; if the objection cannot be resolved, the affected service may be terminated with any refund required by the Agreement.

7. International transfers + edge caching

Some sub-processors are US-based (Cloudflare, Stripe, GitHub). The Processor's primary PR Replay processing location is Greece (EU) per DPA §11. Where personal data is transferred outside the EEA, transfers happen under an applicable GDPR Chapter V safeguard — typically the EU Standard Contractual Clauses (2021/914), an adequacy decision, or the EU-US Data Privacy Framework. We do not transfer source code outside the EEA from the CLI (it stays local) or from Roam Cloud (metrics only).

The static site at roam-code.com is served from Cloudflare's global edge network; cached copies of the public HTML may exist at any Cloudflare POP worldwide. No personal data is processed by the static site itself — only the standard server logs listed above.

8. Retention

Website + paid-service retention windows:

PR Replay-specific retention is set by DPA §7:

9. Your rights

Under the GDPR (Articles 15-22) you have the right to:

When Roam processes personal data on a customer's behalf under the paid services, we act as the GDPR Article 28 processor under the Data Processing Agreement; the customer is the controller and is the primary point of contact for data-subject requests in that flow. For requests about data we hold as a controller (website logs, paid-tier accounts, support correspondence), email [email protected]. We respond within 30 days.

10. Automated decision-making

Roam analyses code and emits findings. None of those findings result in a legal or similarly significant decision about you as an individual. We do not engage in profiling or automated decision-making within the meaning of GDPR Art. 22.

11. Children

Roam is a developer tool not directed at children under 16. We do not knowingly collect data from children.

12. Changes to this policy

Material changes will be announced at least 30 days in advance to active subscribers. The effective date at the top of this page tracks the latest version.

13. Related documents