Last updated: 2026-06-10
This policy explains what personal data Ottto collects, why, where it goes, how long we keep it, and the rights and controls you have. It covers every Ottto surface: the website and dashboard at ottto.net, the API at api.ottto.net, the Ottto local platform (daemon and CLI), the macOS companion app, Ottto for ChatGPT, and advisor recommendations. It is part of the same plain-language commitment as our Terms of Service: we tell you exactly what the software does, and we do not claim less than it does.
The short version: Ottto's job is to show you your own AI-tool usage. The product is built so that raw prompts, model outputs, file contents, and credentials never leave your machine. What we do collect is described below, completely.
Ottto is currently built and operated by Ron Shub, an individual based in Israel, operating under the name "Ottto" ("Ottto", "we", "us"). For data protection purposes (including the EU GDPR, where it applies), Ron Shub is the data controller for the personal data described in this policy.
You can reach us for anything privacy-related at hello@ottto.net.
We have not appointed a Data Protection Officer or an EU/UK representative; based on our current scale and processing, we do not believe we are required to. We will revisit this as the service grows.
This policy covers personal data processed by the Ottto service. Two related documents apply in specific places:
The published open-source code of the local platform (github.com/ottto-ai/ottto) is not a data processing activity; running it is. This policy describes what happens when the local platform talks to the Ottto service.
When you create an account we store: your email address, a password hash (we store passwords only as salted bcrypt hashes, never in plain text), an optional display name, your account settings, and email-verification status.
If you sign in with Google, we receive and store the identity Google asserts: a Google account identifier, your email address and its verification status, your display name, and (for Google Workspace accounts) the hosted domain. We request only the openid email profile scopes - we get no access to your Gmail, Drive, or anything else.
For account security we also keep: failed-login timestamps and lockout state, multi-factor authentication factors you enroll (authenticator-app secrets or passkey credentials), hashed session refresh tokens, and hashed API keys you create. Secrets in this list are stored hashed or encrypted; we cannot read your password or your API key back.
If you create or join a team workspace we store the workspace name, your membership and role, and invitations (the invitee's email address, the assigned role, and who sent the invite). As the Terms explain, workspace administrators can see telemetry and reports synced into their workspace - choose the workspace you connect your devices to accordingly.
This is the data the product exists to process, and it is deliberately minimized and derived. After you install the local platform and approve setup, it uploads to your account:
What it must never upload is listed in Section 4. The authoritative, binding version of this inventory is Terms of Service Section 5.
If you enable live telemetry for a tool, that tool sends its standard OpenTelemetry stream to a relay on your own machine, which forwards it to your account. From that stream we parse and keep usage metrics: token usage, cost figures, lines-of-code counts, active time, code-edit accept/reject counts, request latency, session and model identifiers, and similar operational attributes.
Ottto's setup configures your tools' telemetry with content logging off. We never instruct a tool to include prompt or response text in its telemetry, and our own parsers extract usage metrics, not conversation content. Live telemetry is enabled per tool, only with your approval, and can be disabled per tool at any time.
The dashboard includes an optional AI chat assistant. When you use it:
The assistant can call read-only tools that query your existing Ottto data (for example, cost charts). It introduces no new collection from your machine.
Advisor analyses run over the telemetry already in your account, assisted by Claude models on Amazon Bedrock, with generated analysis code executed in an isolated AWS sandbox (Bedrock AgentCore, US region). Advisor runs process your usage aggregates and produce recommendations stored in your account. The same Bedrock no-storage, no-training commitments apply. Advisor runs may also be traced to Langfuse (Section 3.5) for debugging and quality - including run content and metadata - under the same safeguards and the same right to object.
We measure how the product is used in two ways:
page_viewed, signup_completed, dashboard_opened, advisor and setup events) with: a random anonymous id (stored in your browser's localStorage), a per-tab session id, the route and path, your user and workspace ids when signed in, and event properties. Both the browser and the server actively reject properties that look like secrets, prompts, message content, or credentials before anything is stored. These events go to our own AWS storage.We do no advertising or marketing tracking: no ad networks, no Google Analytics, no Meta pixel, no cross-site tracking, and we do not sell or share personal data for advertising. Fonts are self-hosted; viewing our pages does not call out to font or CDN trackers.
Diagnostics collection is local-only by default. If support asks you to upload a bundle, the upload happens only with your explicit approval at upload time and your acceptance of the retention disclosure shown to you. Bundles pass through redaction designed to remove local paths, secrets, account and machine identifiers, raw prompts, and command output before upload. Uploaded diagnostics are retained for 30 days.
We send transactional email only: email verification, workspace invitations, security and account-lifecycle notices (for example, account-deletion confirmations). Delivery goes through Resend, our email provider, which processes the recipient address, name, and message content for delivery. We send no marketing email today; if we ever introduce it, it will be opt-in.
Like every web service, our infrastructure keeps short-lived operational logs (IP addresses, request paths, user agents, service logs) for security and reliability. Load-balancer access logs and application logs are kept for 30 days.
If you ask for support, staff access to your account happens through a dedicated, short-lived, audited support-session mechanism - each support session and each security-relevant action is recorded in a durable audit trail. Product analytics and session replay are disabled while a support session views your account.
The local platform is designed never to upload: raw prompts, raw model responses, tool or command output, file contents, absolute local file paths, browser cookies, OAuth tokens, API keys, passwords or other secret material, or raw provider account identifiers. Optional collectors that read locally stored credentials for a tool use them only on your device to fetch your own quota or plan information; those credentials are never transmitted to Ottto.
The same floor applies downstream: our analytics layers actively reject values that look like secrets or message content, the ChatGPT app's projection layer blocks identifier and content fields, and diagnostics redaction strips paths, prompts, and identifiers. If you believe any of this has failed, report it to hello@ottto.net and we will treat it as a security incident.
Where the GDPR or similar laws apply, we rely on the following legal bases:
| Purpose | Data | Legal basis |
|---|---|---|
| Providing the service you signed up for: accounts, telemetry ingestion, dashboards, reports, AI assistant, advisor, ChatGPT app | Sections 3.1-3.6, 3.9 | Performance of a contract (the Terms of Service). For the local platform, your express setup-time authorization (Terms Section 5.7) sits on top of this and is withdrawable at any time |
| Keeping accounts secure: login protection, MFA, token hashing, audit trails, abuse prevention | Sections 3.1, 3.10 | Legitimate interests (security of the service and its users), and legal obligations where applicable |
| Understanding and improving the product: first-party analytics, PostHog analytics and session replay | Section 3.7 | Legitimate interests (understanding how an early-access product is used), with the safeguards described in Section 3.7; you can object at any time (Section 11) |
| Operating and debugging AI features: assistant and advisor trace logging | Sections 3.5-3.6 | Legitimate interests (operating and debugging AI features); you can object |
| Support: diagnostics bundles | Section 3.8 | Consent, given explicitly at upload time |
| Operating infrastructure: short-lived server logs | Section 3.10 | Legitimate interests (security, reliability) |
| Aggregated, de-identified statistics (for example pricing and usage trends that identify no one) | Derived from the above | Not personal data once de-identified; creation is a legitimate interest |
Where Israeli privacy law (the Protection of Privacy Law) applies, the notice obligations of section 11 are satisfied by this policy together with the in-product setup and consent screens: we tell you whether you are legally required to provide data (you are not - using Ottto is voluntary), the purposes of each collection, who data is transferred to and why, how long we keep it, and the rights you have.
We use a small, fixed set, all first-party:
| Name / kind | Purpose | Type |
|---|---|---|
| __Secure-authjs.session-token (and related authjs.* cookies) | Keeps you signed in; CSRF protection | Strictly necessary |
| ottto.analyticsAnonymousId (localStorage) | Random id so analytics can count unique visitors without identifying you pre-signup | Analytics |
| ottto.analyticsSessionId + replay-sampling keys (sessionStorage) | Groups events within one browsing session | Analytics |
| ph_* (PostHog cookie/localStorage) | PostHog analytics and session-replay state | Analytics |
| UI preference keys (localStorage) | Remembers interface preferences on your device | Functional, never sent to us |
No advertising cookies, no third-party tracking cookies, no cross-site identifiers. Browser controls (clearing site data, blocking storage) work normally; blocking the analytics keys does not break the product.
We never sell personal data, and we never share it for advertising. Data leaves our systems only to the processors below, under data processing agreements, and only as needed to run the service:
| Subprocessor | What it does for Ottto | Personal data involved | Location |
|---|---|---|---|
| Amazon Web Services | All core hosting: application servers, database, storage, telemetry pipelines, AI model inference (Bedrock) | Everything in Section 3 | Primary region: Israel (il-central-1). US (us-east-1): installer distribution, advisor code-execution sandbox. Bedrock model calls may be routed cross-region via AWS inference profiles; AWS does not store inference content |
| PostHog, Inc. | Product analytics and session replay (Section 3.7) | Usage events; user id, email, name; masked replays | United States (AWS us-east-1) |
| Langfuse GmbH | AI-feature trace logging (Sections 3.5-3.6) | Assistant conversations, advisor run traces, and trace metadata including user id, email, name | EU - Ireland (AWS eu-west-1) |
| Resend | Transactional email delivery (Section 3.9) | Recipient email, name, message content | United States (EU-US Data Privacy Framework certified) |
| OpenAI | Only if you connect Ottto for ChatGPT: ChatGPT displays the aggregated figures the app returns | The minimized projections described in the ChatGPT supplement | Per OpenAI's terms - your ChatGPT relationship is with OpenAI |
| Only if you sign in with Google: Google asserts your identity to us | Sign-in identity (Section 3.1) | Google acts as an independent controller for your Google account |
Other disclosures we may make: to workspace administrators as described in Section 3.2; to a successor entity if the service is transferred to a company (the Terms, Section 19, govern this - your data moves with the same commitments); and where required by law, in which case we will notify you unless legally prevented.
We will keep this subprocessor list current in this policy and announce material additions per Section 13.
Ottto's production systems run primarily in Israel (AWS il-central-1). For visitors and users in the EEA and UK this is the main "transfer": the European Commission has recognized Israel as providing adequate protection since 2011, and reaffirmed that adequacy decision in its January 2024 review; the UK carries an equivalent finding. Transfers from the EEA/UK to Ottto in Israel therefore need no additional mechanism.
Some processing happens outside Israel, as listed in Section 7: PostHog and Resend in the United States, Langfuse in Ireland, and specific AWS components in US regions. For US-bound transfers we rely on vendors' EU-US Data Privacy Framework certifications and/or Standard Contractual Clauses incorporated in their data processing agreements, and on the corresponding mechanisms recognized under Israel's data-transfer regulations.
| Data | Retention |
|---|---|
| Account, workspace, settings | Life of the account |
| Telemetry aggregates, sessions, reports, advisor outputs | Life of the account |
| Per-turn telemetry detail rows | Deleted automatically after 365 days |
| Raw telemetry archive (insurance copy, not user-facing) | Archival storage; moved to cold storage after 120 days; kept until deleted |
| Product analytics events | Moved to low-cost cold storage after 90 days; superseded versions expire after 365 days |
| Diagnostics bundles | 30 days |
| Server and access logs | 30 days |
| Email-verification and password-flow tokens | Until used or expired |
| Security audit trail (support sessions, ChatGPT-app connections) | Kept durably as the integrity record |
| After account deletion | 30-day grace window (you can cancel), then purge of your account records and associated data from our active databases. Copies in backups and archival storage age out on the schedules above rather than being individually extracted |
Where this table says "life of the account", the honest meaning is: we keep it until you delete it (you can delete telemetry sources and devices individually, or the whole account), because the product's purpose is your long-term usage history.
Honestly stated, at the level that matters:
Security reports: hello@ottto.net (see the Terms, Section 9, for coordinated disclosure).
Built-in controls, available now:
Rights you can exercise by contacting us at hello@ottto.net: access to the personal data we hold about you, a copy in a portable format, correction, deletion (if you prefer not to use the self-serve path), restriction, and objection - including objection to the analytics, session-replay, and AI-trace processing based on legitimate interests (Sections 3.5-3.7). A self-serve data export is being built; until it ships, export requests are handled by email. We will verify the request comes from the account holder, respond within one month (GDPR timeline) or any shorter period local law requires, and we do not charge for reasonable requests.
If you are in the EEA or UK, you also have the right to lodge a complaint with your local supervisory authority. In Israel, the supervisory authority is the Privacy Protection Authority. We would appreciate the chance to resolve any concern first.
We do not make automated decisions about you that produce legal or similarly significant effects. Advisor recommendations are informational suggestions you choose to act on (Terms, Section 8).
Ottto is not directed at children. You must be at least 16 years old to use the service (or older where your local law requires a higher age - see the Terms, Section 3). We do not knowingly collect personal data from anyone under 16; if you believe we have, contact hello@ottto.net and we will delete it.
When our data practices change - a new subprocessor, a new data category, a changed retention period - we will update this policy before the change takes effect. For material changes we will give at least 14 days' advance notice (email to your account address, in-product notice, or a prominent note here), matching the Terms. The "Last updated" date always reflects the current version. Continued use after a change takes effect means the updated policy applies; if you do not agree, you can delete your account (Section 11).
Privacy questions, rights requests, objections, complaints: hello@ottto.net. Postal contact is available on request for legal process.