Updated · Markdown version
Security
Odrivyn keeps call content on your computer and sends it out only for the moment it takes to transcribe or answer. This page explains how that works and lists every provider that receives your data.
1. The desktop app
- We write the app in Rust with Tauri. It uses the WebView2 engine that ships with Windows instead of bundling its own browser.
- Windows keeps the app's window out of screen captures (display affinity WDA_EXCLUDEFROMCAPTURE), so screen shares and recordings do not show it.
- The app stores transcripts, answers and recaps in a local database in %APPDATA%\Odrivyn. Protect it the way you protect the rest of your Windows account, for example with BitLocker.
- The app keeps its sign-in credential, database key and any API keys you bring in Windows Credential Manager, falling back to a DPAPI-sealed file (never plain text) and telling you in Settings when it does. It never stores your password.
- The on-device transcription engine is downloaded only with a signature over its version, platform, size and hash; the app refuses an older or altered engine and rechecks the file before each use.
- We sign every installer and update. The app checks the signature against a public key built into it and refuses an update that does not match.
2. Signing in
You approve each computer from your browser with a short pairing code. The app never sees your password. Signing out in the app cancels that computer's approval on our side too.
3. Data in transit and at rest
- Every connection between the app, our API and our providers uses TLS.
- The app streams audio straight to AssemblyAI with a short-lived token that our API issues for one session.
- Our database provider and storage provider encrypt data at rest.
- Moments are optional private workspaces saved to your account. When you create a Moment and explicitly share conversation text, we store its goal, selected context, transcript excerpts, guidance and reviewed memory encrypted at rest. You can edit, mark incorrect or delete remembered items and delete a Moment at any time. Prior Moment context is used only when you select it. Desktop call sharing is off until you enable it for that call.
- Uploaded files are private. No public link points to them, and only our API can read them from storage.
4. Access to your data
- Our API scopes every file and search to your account, or to your company when a file sits in its brain. A guessed file ID returns nothing.
- Owners and admins manage people and the company brain; members cannot invite people or change roles.
- Our logs record that a request happened, not the words of a call or the content of a file.
5. Reporting a problem
Send security issues to contact@odrivyn.com. We reply within two working days and credit reporters who want it.
6. Subprocessors
Every provider outside Odrivyn that processes your data, and what it receives.
| Provider | Receives | Purpose | Location |
|---|---|---|---|
| AssemblyAI | Meeting audio | Receives meeting audio from the desktop app while you listen and returns the transcript, under its data processing terms. | United States |
| DeepSeek | Questions, transcript excerpts, file passages | Writes answers, recaps, research briefs and practice questions. It does not receive screenshots. | People's Republic of China |
| Google (Gemini) | Questions, transcript excerpts, screenshots you send, file text | Reads screenshots you ask about, writes answers when DeepSeek is unavailable, turns your files into search vectors, and reads scanned pages (OCR). | United States |
| OpenRouter | Questions and transcript excerpts | Carries Gemini requests when we route them through OpenRouter instead of calling Google. | United States |
| Keiro Labs | Search queries and web addresses you add | Runs web searches (only in modes that allow the web), reads the web pages you add as material, and gathers public pages for pre-call research. | To be confirmed |
| Cloudflare (R2) | Files you upload and bug reports you send | Holds a file you upload only while it is being read (it is removed once its text has been taken), and stores approved answers saved to your knowledge, bug reports (screenshot and logs) you choose to send, and the signed desktop installers. | Global (Cloudflare network) |
| Neon | Account, company and file-index data | Hosts our Postgres database: accounts, companies, usage counts, and the text passages and search vectors of your files. | United States |
| Vercel | Requests to our website and API | Hosts the website and API, and measures page performance with cookie-free Web Analytics and Speed Insights. | United States |
| Render | Call audio in transit, only on networks that block the transcription service | Runs our transcription relay, which forwards live audio to AssemblyAI when a network blocks it. Nothing is stored or logged. | United States |
| Ably | Document identifiers | Tells your desktop app when a web page finished reading. It carries no file content. | United States |
| Mixpanel | Your account id, email and name, and how you use Odrivyn | Product analytics: which features are used, sign-ups, plan changes and cancellations. Never what is said on a call, your answers, or your files, and no session recordings. | United States |
| Stripe | Payment and billing details | Takes payments and manages subscriptions. We never see your card number. | European Union and United States |
| Resend | Your email address and name | Sends account, billing and invitation emails. | United States |
See also: Privacy policy · Terms of service