Privacy Policy
WaveLog is built on a simple promise: your meetings stay on your Mac. This policy explains what little data we do handle and why.
Effective date: May 14, 2026
1. Overview
WaveLog ("we", "our", or "us") is a local-first macOS application for meeting recording and transcription. This Privacy Policy explains how we collect, use, and protect your information.
Our core principle: your audio recordings and transcripts never leave your Mac. All speech-to-text processing is performed on-device using local AI models (Whisper, Qwen3, SherpaASR). We have no access to your meetings.2. Information We Collect
We collect the minimum data necessary to operate the service: Account Data (via Supabase Auth) • Email address — required to create an account and deliver license keys • Name — optional, used for display purposes only • Authentication tokens — stored securely by Supabase License & Payment Data (via Polar) • Order and license status — to activate and validate your license • Payment is processed entirely by Polar. We do not receive or store your card details. Usage Analytics (via Vercel Analytics) • Anonymised page views and web vitals for the wavelog.diveai.io website only • No user identifiers are transmitted. No cookies are set. Diagnostic Data (optional, user-initiated) • When you submit feedback through the app, you may optionally attach diagnostic data (app version, macOS version, memory and CPU usage, and active model names). • No diagnostic data is collected without your explicit action of submitting feedback. What We Do NOT Collect • Audio recordings or transcripts — processed locally, never uploaded • Meeting participants or content — entirely private to your device • IP addresses tied to your identity Email Notifications (Feedback-Related) • When a WaveLog administrator replies to your feedback, we send a notification email to the email address associated with your account. These are transactional emails directly related to your feedback and are not marketing communications. Conversation Data • Messages exchanged in feedback conversations (your replies and administrator responses) are stored on our servers and visible to you and WaveLog administrators.
3. Local Processing Guarantee
WaveLog's core features operate entirely offline: • Recording — captured to your local filesystem using macOS audio APIs • Transcription — processed by on-device Whisper (whisper.cpp via Metal GPU) • Speaker diarization — ECAPA-TDNN ONNX model runs locally • Summaries & action items — a basic statistical overview (meeting duration, per-speaker turn counts, longest excerpts) is generated locally. You may optionally install your own AI CLI tool (such as Claude, Antigravity, or Codex) and configure it in Settings for richer AI-powered summaries. In that case, the AI tool runs on your machine using your own account and API credentials — WaveLog does not collect, relay, or store any data through its own servers. • All data — stored in a local SQLite database at ~/Documents/WaveLog/ Internet connectivity is only required for: account login, license validation, AI-powered summaries (if you have installed and configured your own AI CLI tool), and optional integrations (Jira, Confluence, Notion, Linear, Slack, Google Docs).
4. Third-Party Services
Supabase (supabase.com) Provides authentication infrastructure. Your email and auth tokens are stored per Supabase's Privacy Policy. Data is stored in US-based data centers. Polar (polar.sh) Processes license payments. Polar is the merchant of record. We receive only license status, not payment details. Vercel (vercel.com) Hosts the wavelog.diveai.io website. Vercel Analytics collects anonymous, aggregated metrics. 1. Atlassian — Jira & Confluence (PKCE OAuth, optional) A single Atlassian OAuth covers both Jira and Confluence. WaveLog uses this to write action items to Jira issues or Confluence pages. The flow uses PKCE — WaveLog's backend stores no client secret for this integration; the OAuth exchange runs entirely on your device. Scopes: read:jira-work, write:jira-work, read:project:jira, write:issue:jira, read:space:confluence, read:page:confluence, write:page:confluence, read:folder:confluence, offline_access. OAuth tokens are stored exclusively in your macOS Keychain and are NEVER stored on WaveLog servers. Revoke from in-app Settings (deletes Keychain tokens) or from your Atlassian account. 2. Notion (server-proxy OAuth, optional) WaveLog exports meeting summaries by creating a child page beneath a Notion page you select during the export flow. WaveLog only writes to that selected page tree; it does not read or modify other workspace content. The OAuth code exchange happens on WaveLog's backend (which holds the OAuth client secret for this purpose only); the resulting access token is returned only to your device and stored exclusively in your macOS Keychain. The access token is NEVER stored on WaveLog servers. Revoke from in-app Settings or from your Notion workspace's Connections settings. 3. Linear (PKCE OAuth, optional) Scopes: read, write. The PKCE flow runs entirely on your device — no client secret is held on WaveLog servers. OAuth tokens are stored exclusively in your macOS Keychain and are NEVER stored on WaveLog servers. Revoke from in-app Settings or from your Linear account's Security & Privacy settings. 4. Slack (server-proxy OAuth + Events API, optional) Scopes: channels:read, groups:read, chat:write, users:read, im:history, im:write. WaveLog uses Slack for two flows: (a) Posting meeting summaries and action items to channels you select in the desktop app. The authorization-code exchange runs on WaveLog's backend (which holds the OAuth client secret), and the bot access token is also stored in your macOS Keychain for desktop-initiated exports. (b) Slack Marketplace compliance — when you first open WaveLog's App Home in Slack, our server sends a one-time welcome direct message; if you DM the bot, our server replies with a notice that WaveLog is a one-way export tool. To support (b), we additionally store on WaveLog's backend: (i) a copy of the workspace bot access token, (ii) workspace metadata (team_id, team_name, bot_user_id, granted scopes), and (iii) the Slack user IDs of users who have already received the welcome DM, along with the timestamp, solely to avoid duplicate sends. Slack pushes message-arrival events for direct messages with the bot (im:history) to our server. We process only the fact that a message arrived in order to send the standard one-way-bot reply; we do not store, log, or analyse DM content, and we do not read messages in channels or group conversations. Revoke from in-app Settings or from your Slack workspace's Connected Apps. Uninstalling the Slack app or deleting your WaveLog account removes the server-side workspace records described above. 5. Google Docs (server-proxy OAuth with anti-abuse binding, optional) Scopes: drive.file. WaveLog's use of Google APIs (and any data received from Google APIs) adheres to the Google API Services User Data Policy, including the Limited Use requirements (https://developers.google.com/terms/api-services-user-data-policy). Specifically: (1) we use this data solely to create meeting summary documents on your behalf, a feature prominent in the app's UI; (2) we do not sell this data; (3) we do not use this data for advertising or to develop, improve, or train generalised AI/ML models; (4) we do not transfer this data to third parties except as necessary to provide the export feature, for security reasons, or to comply with applicable law; and (5) no humans at WaveLog read this data, except with your explicit consent for support, where required by law, or in aggregated/anonymised form for security and abuse prevention. The OAuth code exchange and refresh-token rotation run on WaveLog's backend, which holds the OAuth client secret AND a SHA-256 hash binding the refresh-token grant to your WaveLog account (anti-abuse — used only to deny refresh if the binding mismatches). Both the access token and the refresh token themselves are returned only to your device and stored exclusively in your macOS Keychain — the tokens are NEVER stored on WaveLog servers. Revoke from in-app Settings or from your Google Account under Security > Third-party access. 6. AI CLI Tools (local CLI spawn, optional) WaveLog spawns the AI CLI tool you installed on your Mac (Claude, Antigravity, or Codex), using your own credentials. Your prompt and meeting content go directly from your Mac to the CLI vendor; WaveLog does NOT relay, log, or store any of it. There is no OAuth and no WaveLog server involvement. Without an AI CLI installed, only a basic statistical overview (duration, per-speaker turn counts, longest excerpts) is shown; AI CLI is opt-in.
5. International Data Transfers
WaveLog's infrastructure is hosted in the United States: • Supabase Auth — US region • Cloudflare (server infrastructure) — US region • WaveLog desktop app distribution — US-based CDN If you are located in the EU/EEA or UK, your personal data (email, auth tokens, license status) will be transferred to the US. We rely on Standard Contractual Clauses (SCCs) approved by the European Commission, and the UK International Data Transfer Addendum, as the legal basis for these transfers. Your audio recordings and transcripts are never transferred — they remain on your device at all times.
6. Data Retention & Deletion
Local Data Your recordings, transcripts, and database reside on your device. Uninstalling WaveLog and removing ~/Documents/WaveLog/ erases recordings, transcripts, and the local database. To also remove cached license and OAuth tokens, open Keychain Access and delete every entry whose service name is "com.wavelog" (these are NOT removed automatically when you uninstall the app). Account Data You can delete your WaveLog account at any time from your account settings on the WaveLog web dashboard (sign in at wavelog.diveai.io, then navigate to Account -> Delete account). Calling DELETE /api/user/v1/me directly is also supported. Account deletion is immediate and atomic -- the following data is permanently removed in a single database transaction, in this exact order: 1. Member-seat assignments on other people's TEAM licenses (cleared) 2. License invitations sent to you (deleted) 3. License activations on other people's licenses (deleted) 4. Licenses you own, including all child rows (activations, seats, invitations) 5. Pending checkouts 6. Orders (your purchase records) 7. License Records 8. Trial records 9. Credit ledger entries 10. Feedback messages and replies 11. Google OAuth grants stored on our server (anti-abuse bindings; Notion, Linear, and Atlassian access tokens themselves live only in your macOS Keychain — uninstalling WaveLog does NOT remove them, so you must delete the "com.wavelog" entries from Keychain Access manually) 12. Slack workspace install records stored on our server, where you were the installer (bot access token, workspace metadata, and welcome-DM dedup entries created by app_home_opened and message.im events) 13. Supabase Auth account (your sign-in identity) 14. Your WaveLog user record Locally stored recordings and transcripts on your Mac are NOT affected by this server-side deletion -- to wipe local data, uninstall WaveLog, remove ~/Documents/WaveLog/, and delete every "com.wavelog" entry from Keychain Access. Refund policy on withdrawal: Licenses purchased within the last 14 days that have never been activated on any device are automatically refunded to your original payment method when you delete your account, and the corresponding Polar benefit grants are revoked. Licenses outside the 14-day window or that have been activated on any device are not refunded but are revoked from your account; you will lose access to those licenses on all devices, and the license keys cannot be reused. Audit retention (lawful basis: legal/tax compliance): Aggregated non-personal records -- refund event audit logs identified only by order ID, webhook processing logs, integration toggle audit logs, and account deletion audit logs (deletion reason and timestamp, but no recoverable PII other than order/email snapshots needed for tax compliance) -- may be retained for legal and tax compliance where applicable law requires. Account deletion is irreversible. Once your account is deleted, the same Supabase identity cannot be silently restored -- you would need to sign up again as a new user. Analytics Vercel Analytics data is retained for 90 days and is anonymised -- it cannot be tied back to an individual.
7. Security
• Authentication and OAuth integration tokens for Jira, Confluence, Google Docs, Notion, and Linear are stored in your macOS Keychain, not in plain files, and are never stored on WaveLog servers • Slack bot access tokens are stored both in your macOS Keychain (for desktop-initiated channel exports) and on WaveLog's backend (required for the Slack Events API; see the Slack section under "Third-Party Integrations" for the full data-flow description) • All communication with our servers uses TLS 1.2+ • License validation uses signed tokens — the server never receives your recordings • We follow responsible disclosure practices. To report a security issue, email diveai.contact@gmail.com
8. Children's Privacy
WaveLog is not directed at children under 13 (or 16 in the EU). We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, contact us at diveai.contact@gmail.com.
9. Changes to This Policy
We may update this Privacy Policy when our practices change. Material changes will be announced via the app's in-app notification or on the wavelog.diveai.io website. Your continued use of WaveLog after the effective date constitutes acceptance of the updated policy.
10. Contact
For privacy-related questions or requests: Email: diveai.contact@gmail.com Website: https://wavelog.diveai.io WaveLog is operated by DiveAI. Last updated: May 14, 2026