threaded.fyi
threaded.fyi / Privacy
PR/01·Last updated 2026-04-12

Your code never leaves your infrastructure.
Because Threaded never holds it.

Threaded is software you run on your own Kubernetes cluster. Your repos, your threads, your workspaces, and your agent runs all live inside your perimeter — we operate none of it. This page describes the small slice of data Threaded the company actually sees, and what we do with it.

01/The deployment model

Bring your own Kubernetes.

Threaded ships as a Helm chart. You install it in your cluster, point it at your GitHub org, and that's the entire surface where customer data lives. There is no Threaded-operated SaaS plane that proxies, mirrors, or backs up your threads.

Where it runs
Your Kubernetes cluster. EKS, GKE, AKS, OpenShift, or self-managed. Region, VPC, and ingress are entirely your call. Threaded.fyi never sees your traffic.
Where threads live
Inside your cluster, on your storage. Brief, chat, doc, whiteboard, agent runs, diffs, attachments — all written to a Postgres + object store you operate. We do not have credentials to it.
Where source code lives
In the workspace pod and your Git host. The repo is cloned from your GitHub via your installation token, into a pod in your cluster. It is never copied to anything Threaded operates.
Where inference happens
Through your model provider, with your API key. Bring an Anthropic key, an OpenAI key, or point at a self-hosted model endpoint. Threaded routes the prompt; we do not see the contents.
02/What Threaded.fyi actually sees

Almost nothing.

For a self-hosted deployment, the only data that crosses our boundary is what you choose to send during support, plus the billing metadata Stripe needs to invoice you.

  • No phone-home.Your install does not call back to a Threaded-operated service to validate, count seats, or verify entitlements at runtime. The license is contractual, not a network check.
  • Anonymous version telemetry (opt-in).If you turn it on, we receive aggregate counts: builds per week, agent runs per week, error rates by component. Off by default. No content. No identifiers beyond a salted org hash.
  • Support bundles you upload.When you file a support ticket, you can attach a redacted log bundle. We see only what you choose to include. Bundles are deleted 30 days after the ticket closes.
  • Billing metadata.If you're on a paid plan, Stripe processes your invoice. We see seat count and plan tier; Stripe sees the rest under their standard terms.
  • We do not train models on anything.We don't have your data to train on. The model provider you bring — Anthropic, OpenAI, an AI Gateway via OpenCode — governs training under their terms. We recommend the zero-retention API tier of whichever provider you use.
03/Your rights

Under GDPR, CCPA, and equivalent.

For data Threaded.fyi controls (license records, support tickets, billing metadata) you can request access, correction, export, or deletion at any time. We respond within 30 days.

For the threads, code, and agent runs inside your cluster, you are the data controller. Threaded the software ships export and delete primitives — use them, and the data is gone from your storage. We don't have a copy.

04/Where data lives

Wherever you deploy.

Data residency is yours to control, not ours. If your cluster runs in eu-west-1, your threads run in eu-west-1. Air-gapped installs work out of the box — the only required outbound call is to your model provider, and that's your decision to route or proxy.

A hosted multi-tenant plane is on the roadmap for teams that explicitly don't want to run their own cluster. It is not the default and never will be.

Privacy questions

Reach the team directly.

Privacy questions, access requests, and DPA inquiries route to a real human. We respond inside three business days, usually faster.

privacy@threaded.fyi →