2026-05-17 21:24:15 +09:00
|
|
|
|
# Privacy
|
|
|
|
|
|
|
2026-08-18 07:09:45 +00:00
|
|
|
|
This page describes what data the OpenDesign desktop and web app collects,
|
2026-05-17 21:24:15 +09:00
|
|
|
|
when it collects it, and how you stay in control. It documents the behavior
|
|
|
|
|
|
shipped in the app — the same controls live under **Settings → Privacy**.
|
|
|
|
|
|
|
2026-08-18 07:09:45 +00:00
|
|
|
|
OpenDesign is **local-first**. Your projects, generated files, and BYOK API
|
2026-07-18 11:41:08 +08:00
|
|
|
|
keys stay on your machine. Local project/file workflows remain available when
|
|
|
|
|
|
telemetry services are unreachable; model-backed features still depend on the
|
|
|
|
|
|
runtime or provider you choose.
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
2026-08-18 07:09:45 +00:00
|
|
|
|
OpenDesign has two telemetry classes:
|
2026-07-18 11:41:08 +08:00
|
|
|
|
|
|
|
|
|
|
- **Product analytics and quality traces** are on by default and can be
|
|
|
|
|
|
disabled or narrowed under **Settings → Privacy**.
|
|
|
|
|
|
- **Safety and reliability telemetry** is always enabled in builds configured
|
|
|
|
|
|
with a telemetry destination. It is limited, scrubbed, and used to diagnose
|
|
|
|
|
|
crashes, startup failures, broken streams, and similar product-health
|
|
|
|
|
|
failures. The general analytics toggle does not disable this channel.
|
|
|
|
|
|
|
|
|
|
|
|
Forks and development builds without telemetry destination credentials send
|
|
|
|
|
|
neither class.
|
|
|
|
|
|
|
|
|
|
|
|
## Product analytics are opt-out
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
2026-06-23 14:24:57 +05:30
|
|
|
|
Usage telemetry is **on by default**. On first run the app shows a privacy
|
|
|
|
|
|
disclosure banner so you can see what is collected before doing anything else.
|
2026-07-10 10:39:28 +08:00
|
|
|
|
The banner asks you to choose **Share** or **Don’t share**.
|
2026-07-18 11:41:08 +08:00
|
|
|
|
Choosing **Share** keeps product analytics and quality traces enabled; choosing
|
|
|
|
|
|
**Don’t share** disables those optional channels.
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
2026-07-18 11:41:08 +08:00
|
|
|
|
You stay in control of the optional channels: the banner points you to
|
|
|
|
|
|
**Settings → Privacy**, where you can toggle the categories below and change
|
|
|
|
|
|
your decision at any time. The safety/reliability exception above is not an
|
|
|
|
|
|
optional product-analytics category.
|
2026-06-23 14:24:57 +05:30
|
|
|
|
|
|
|
|
|
|
## What is collected
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
2026-07-18 11:41:08 +08:00
|
|
|
|
When optional sharing is enabled, the app may send the following to the Open
|
|
|
|
|
|
Design team. The two Settings controls are **Anonymous metrics** and
|
|
|
|
|
|
**Conversation and tool content**.
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
|
|
|
|
|
- **Anonymous metrics** — run counts, token usage, error rate, and duration.
|
2026-07-18 11:41:08 +08:00
|
|
|
|
This channel also covers product interaction events, page transitions, web
|
|
|
|
|
|
performance, and privacy-masked session replay. Replay masks every text node
|
|
|
|
|
|
and input value and blocks embedded iframes, so prompts, keys, project text,
|
|
|
|
|
|
and generated previews are not recorded as readable screen content.
|
2026-05-17 21:24:15 +09:00
|
|
|
|
- **Conversation and tool content** — your prompts, assistant responses, tool
|
2026-07-18 11:41:08 +08:00
|
|
|
|
inputs, tool outputs, prompt-stack context, and attachment/artifact manifest
|
|
|
|
|
|
metadata needed for quality review. Content is truncated and scrubbed; tool
|
|
|
|
|
|
payloads known to carry artifact contents are replaced with redaction
|
|
|
|
|
|
markers. This channel requires both the metrics and content controls to be
|
|
|
|
|
|
enabled.
|
|
|
|
|
|
|
|
|
|
|
|
Independently of those controls, **safety and reliability telemetry** may send
|
|
|
|
|
|
bounded, scrubbed diagnostics for browser/daemon exceptions, white screens,
|
|
|
|
|
|
long tasks, resource or SSE failures, stuck runs, lifecycle failures, and a
|
|
|
|
|
|
packaged app that crashes before its daemon starts. Typical fields are product
|
|
|
|
|
|
version/channel, OS/runtime facts, failure stage, error type/message/stack, and
|
|
|
|
|
|
timing. Home-directory paths, URL query strings, input text, and other known
|
|
|
|
|
|
sensitive fields are scrubbed before dispatch. Safety reporting is best-effort
|
|
|
|
|
|
and never blocks the core workflow or a failing process's exit.
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
|
|
|
|
|
## What is never collected
|
|
|
|
|
|
|
|
|
|
|
|
- The contents of your generated artifact files.
|
2026-07-18 11:41:08 +08:00
|
|
|
|
- Your BYOK API keys, authentication tokens, or other stored credentials.
|
|
|
|
|
|
- Readable prompt, project, or artifact text in privacy-masked session replay.
|
|
|
|
|
|
- Conversation/tool content when the content control is disabled.
|
|
|
|
|
|
|
|
|
|
|
|
Telemetry event payloads do not intentionally include a source IP field, and
|
|
|
|
|
|
free-form content redaction removes IP-address patterns. As with any HTTPS
|
|
|
|
|
|
request, however, the receiving network service sees the connection's source
|
|
|
|
|
|
IP. The configured PostHog service may use it for geographic enrichment such
|
|
|
|
|
|
as country; do not interpret “anonymous” as “the transport cannot observe an
|
|
|
|
|
|
IP address.”
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
|
|
|
|
|
## How telemetry is sent
|
|
|
|
|
|
|
2026-07-18 11:41:08 +08:00
|
|
|
|
Product events, masked replay, and safety/reliability events use the configured
|
|
|
|
|
|
[PostHog](https://posthog.com) ingestion endpoint. Browser safety events may go
|
|
|
|
|
|
directly to PostHog's public ingestion API so errors that happen before the
|
|
|
|
|
|
normal analytics client loads are not lost; daemon and packaged-startup events
|
|
|
|
|
|
have equivalent direct safety paths.
|
|
|
|
|
|
|
|
|
|
|
|
When metrics and content sharing are both enabled, detailed run-quality traces
|
2026-08-18 07:09:45 +00:00
|
|
|
|
are sent through the OpenDesign telemetry relay to
|
2026-07-18 11:41:08 +08:00
|
|
|
|
[Langfuse](https://langfuse.com). Maintainer smoke-test configurations may use
|
|
|
|
|
|
direct Langfuse credentials instead. Public client/relay configuration does
|
|
|
|
|
|
not expose the team's private write credentials.
|
|
|
|
|
|
|
|
|
|
|
|
All transports are best-effort. An unavailable analytics service does not turn
|
|
|
|
|
|
a telemetry failure into a product failure.
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
|
|
|
|
|
## Your anonymous ID
|
|
|
|
|
|
|
2026-07-18 11:41:08 +08:00
|
|
|
|
For optional analytics, the app generates a random, opaque installation ID so
|
|
|
|
|
|
related events can be grouped. It is not derived from your name or email.
|
|
|
|
|
|
Safety/reliability paths use an anonymous installation/device identifier when
|
|
|
|
|
|
available and may use a synthetic process/namespace identifier during an
|
|
|
|
|
|
early startup failure.
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
|
|
|
|
|
## Deleting your data
|
|
|
|
|
|
|
2026-07-18 11:41:08 +08:00
|
|
|
|
**Settings → Privacy → Delete my data** rotates the local anonymous ID and
|
|
|
|
|
|
disables the optional metrics/content channels. It does not disable the
|
|
|
|
|
|
safety/reliability exception, recall events already received, or synchronously
|
|
|
|
|
|
erase a processor's historical records. Previously received telemetry ages out
|
|
|
|
|
|
under the applicable retention policy.
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
|
|
|
|
|
## Bring your own key
|
|
|
|
|
|
|
2026-07-18 11:41:08 +08:00
|
|
|
|
The API keys you configure for coding agents and model providers are stored
|
|
|
|
|
|
locally and used by the local app/daemon to call the provider you selected.
|
2026-08-18 07:09:45 +00:00
|
|
|
|
They are not telemetry fields and are never sent to the OpenDesign team.
|
2026-05-17 21:24:15 +09:00
|
|
|
|
|
2026-08-18 07:09:45 +00:00
|
|
|
|
## OpenDesign AMR
|
2026-06-16 11:54:54 +08:00
|
|
|
|
|
2026-08-18 07:09:45 +00:00
|
|
|
|
“OpenDesign AMR” is OpenDesign’s official, first-party model service. Because
|
2026-06-16 11:54:54 +08:00
|
|
|
|
the two are part of the same product family operated by the same team, we may
|
|
|
|
|
|
share information between them as needed to provide, connect, and improve the
|
|
|
|
|
|
combined experience — for example, to recognize that you arrived from Open
|
|
|
|
|
|
Design, to help you get set up, and to keep the products working well together.
|
|
|
|
|
|
This sharing is between our own products, not with unrelated third parties, and
|
|
|
|
|
|
any data involved still follows the controls described on this page.
|
|
|
|
|
|
|
2026-05-17 21:24:15 +09:00
|
|
|
|
## Changes to this page
|
|
|
|
|
|
|
|
|
|
|
|
This document tracks the data handling of the shipped app. When the telemetry
|
|
|
|
|
|
behavior changes, this page is updated alongside it. For questions, open a
|
|
|
|
|
|
[GitHub Discussion](https://github.com/nexu-io/open-design/discussions).
|