Luphia is built so your dictation history stays on your Windows PC. This policy explains what the desktop app and website collect, what we store in our cloud, who processes data for us, and the controls you have. Use of Luphia is also governed by the Terms of Service.
At a glance
- We do not read your dictations Luphia staff do not have a cloud transcript library. History stays on your PC; our servers keep account and usage metadata, not the words you said.
-
History on device
Transcripts, cleaned text, and notes live under
%AppData%\Luphia, encrypted for your Windows user. You can optionally set a vault password in Settings → Privacy. - No audio library on our servers We do not keep a catalog of your recordings or full dictation text as product history in our database.
- AI processing is required to dictate Each dictation sends audio (and optional context) to our hosted pipeline, which uses xAI models for speech-to-text and cleanup. Requests ask the provider not to store prompts and responses for later reuse.
- You control the sensitive knobs Context awareness, device list, export/delete history, optional vault password, and sign-out are in the app. Manage billing on this site.
Plain English: We need account data to sign you in, numbers to enforce Free vs Pro limits, and short-lived processing so speech can become text. We do not look at your dictation content, and we are not building a permanent cloud archive of everything you say.
Who this covers
This policy applies when you use:
- The Luphia desktop app for Windows (installer, portable, or Microsoft Store package when available)
- The website at luphia.ai and related hosts we operate (for example account, billing, auth handoff pages)
“Luphia,” “we,” and “us” mean the operator of the Luphia product and website. “You” means the person using the app or site.
Third-party products linked from Luphia (Google, Stripe, xAI, and others) have their own policies. Where they process data for us, we name them under Service providers.
What stays on your PC
The desktop app stores operational data in your Windows user profile:
%AppData%\Luphia\
| Data | Examples | Protection |
|---|---|---|
| Dictation history | Raw and cleaned text, timestamps, optional app/window labels for that entry | AES-256-GCM encrypted store |
| Notes | Scratchpad content you type or paste in the app | AES-256-GCM encrypted store |
| Sign-in session | Account profile fields and OAuth tokens needed to stay signed in | Encrypted store; tokens additionally protected with Windows DPAPI in packaged builds |
| Settings | Hotkey, microphone choice, language, writing styles, privacy toggles, UI preferences | Local settings file (API keys, if any, use OS-protected storage in packaged builds) |
| Install id | Random id for this installation (not a hardware serial, MAC, or disk fingerprint) | Local + optionally registered to your account for device management |
| Diagnostic logs | App events for debugging (fields that would leak secrets are filtered) | Local log files under the same app data folder |
Uninstalling Luphia may leave app data until you remove the folder or use Windows cleanup. You can export or delete history from the app while it is installed.
What we store on our servers
Hosted services power sign-in, plan limits, and AI dictation. In our application database and related backend systems we store:
| Category | What it is | Why |
|---|---|---|
| Account identity | Google sign-in subject (user id), email, and display name provided by the auth provider | Authenticate you and show who is signed in |
| Plan & entitlement | Free / Pro / trial / complimentary status, word allowance and remaining balance for the period | Enforce plan limits and show quota in the app |
| Word usage totals | Running integer counts per billing period (for example week or month keys) | Quota only — not the text of what you said |
| Daily access ping | One “app opened” marker per account per UTC day | Product health and light engagement metrics |
| Inference metadata | Per-request metrics such as mode id, word counts, audio size, duration, success/risk flags — not a permanent transcript library | Abuse prevention, reliability, cost, and product quality |
| Short-lived inference caches | Per-account, hash-keyed: cleaned text (~24h) to speed same-style regenerate; speech-to-text text (~15 min) to avoid re-billing retries of the same recording. Auto-expire; not a staff-browsable history product | Lower cost and latency for retries and regenerate |
| Devices | Opaque install id, optional label (for example PC name you set or we derive), first/last seen times, revoke state | Device list, seat/session limits, security |
| Custom writing styles | If you create a custom style, a sanitized copy of that style prompt (and a short hash) may be stored for safety and product analytics | Run custom cleanup modes and improve moderation/analytics — not your dictation transcripts |
| Billing linkage | Stripe customer/subscription state tied to your account id; we do not store full card numbers | Pro checkout, renewals, portal access |
Administrators of Luphia may access aggregated and support-related views of this server data to operate the service (for example abuse review, billing support, and reliability). Access is restricted to operational accounts.
What we don’t store as product data
In normal product design, our application databases are not used as:
- A permanent library of your microphone audio
- A permanent library of transcripts or cleaned dictation text (that history is local)
- Your notes content
- Screenshots, continuous keylogging, or a clipboard vault
- Full documents from other applications
- Hardware fingerprints (MAC address, disk serial, TPM identity, and similar)
- Payment card numbers (Stripe handles card data)
Infrastructure providers (hosting, CDN, auth) may process connection metadata such as IP addresses for security, routing, and abuse prevention even when our product tables do not keep IP columns for features. See Service providers.
When you dictate
A typical dictation looks like this:
- Capture on your PC. The overlay records from the microphone you selected and builds short audio for that utterance.
- Signed request to our backend. The desktop app calls our hosted inference path with your session and plan token so we can check entitlement and quota.
- Speech-to-text and cleanup. Audio is transcribed and the text is cleaned with the writing style you chose (for example Refine or Prompt, or a custom style). Processing uses xAI Grok models.
- Insert and local history. Cleaned text is inserted into the app you were using (paste or type, depending on settings). The entry is saved in encrypted local history on your PC.
- Server metrics only for that request. We record usage metadata (counts, mode, timing flags) so Free limits and Pro metering work — not a cloud copy of the paragraph as your “history product.”
Model provider privacy: Hosted cleanup requests include
store: false so xAI is not asked to keep the request and response for later
reuse. xAI states it does not train on API inputs or outputs without permission. Luphia’s
hosted API key can also run under zero data retention (ZDR) on the xAI team when enabled in
their console—content is processed to return a result, not retained as a browsable archive
for Luphia staff.
Important: Dictation requires sending audio to processors that perform STT and cleanup. If you are not comfortable with that for a particular conversation, do not dictate it. Pause the mic or close Luphia when you need a hard stop.
Context awareness
Optional context features help cleanup match the app you are in (for example friendlier chat vs more formal email vs precise technical wording).
- When context is enabled, Luphia may read the foreground app name and window title, and optionally a short selection you have highlighted.
- If you also allow sending context with hosted cleanup, those small fields may travel with that dictation request so the model can adapt register and format.
- Password fields are skipped for context collection where we can detect them.
- Context is not stored on our servers as a long-term transcript library. Local history may keep a short app/window snapshot with that entry on your PC.
Controls live under Settings → Privacy (wording may vary slightly by app version). You can turn context off entirely or keep more of it on-device only.
Account and sign-in
Luphia uses Google and/or X sign-in through our auth provider (Supabase Auth). We receive the identifiers the provider exposes for OAuth (typically a stable user id, plus email and a profile or display name when available). X often omits email; we still sign you in on user id.
- Desktop sign-in uses a secure browser-based OAuth flow with PKCE and a local handoff back to the app.
- Website account and billing pages use the same identity so Free and Pro stay in sync.
- Google and X create separate accounts unless we later offer linking.
- Sensitive app features require a signed-in session.
You can sign out from the app sidebar. Signing out clears the local session store for that install; it does not by itself delete your cloud account, quota history, or Stripe customer record.
Billing and payments
Optional Pro is sold as a subscription (monthly or yearly), often with a short trial when offered in Checkout. Checkout, invoices, and payment methods are handled by Stripe. We store subscription and customer linkage needed to recognize your plan (and any complimentary or admin-granted Pro access for beta testers). We do not store full payment card numbers on Luphia servers.
Manage or cancel Pro from the account area on luphia.ai (Stripe customer portal). If you cancel a paid subscription, Pro features continue until the end of the paid period, then Free limits apply, subject to the product’s current plan rules. Billing questions: support@luphia.ai.
Crash reports
When crash reporting is configured and Send crash reports is on in Settings → Privacy (default on when a reporting service is active), the desktop app may send stack traces, app version, and OS version via Sentry so we can fix freezes and crashes.
- Crash reports do not include microphone audio or dictation text.
- You can turn reporting off in Settings → Privacy at any time.
- If no crash-reporting service is configured for a build, nothing is sent.
Website (luphia.ai)
The marketing and account site is designed to stay light on tracking.
- No third-party advertising pixels are part of the core site design for browsing product pages.
-
Essential storage only for features you use: for example auth session
storage from Supabase when you sign in on the web, and short-lived
sessionStoragefor checkout handoff (we avoid putting payment secrets in shareable URLs). - Downloads are served from our infrastructure (and may pass through CDN providers). Release files may be mirrored from GitHub Releases.
- Live demos on the site, if offered, may process short audio samples through the same class of AI providers; do not use demos for sensitive content.
Service providers
We use carefully chosen processors to run Luphia. They only receive what is needed for their role. Each has its own privacy policy.
| Provider | Role | Typical data |
|---|---|---|
| Supabase | Auth, database, Edge Functions | Account identity, app backend data described above, request handling |
| OAuth sign-in | Sign-in authentication; profile fields returned to our auth stack | |
| X | OAuth sign-in | Sign-in authentication; profile fields returned to our auth stack (email often omitted) |
| xAI | Speech-to-text and language cleanup models | Audio and text required to produce each dictation result. Luphia sends store: false on chat cleanup; hosted keys can use zero data retention when enabled on the xAI team. Subject to xAI’s API security policy (no training on API data without permission) |
| Stripe | Payments and customer portal | Billing details, payment method data (on Stripe), subscription events |
| Cloudflare | Website hosting, DNS, CDN, security | Connection metadata and content delivered for luphia.ai |
| GitHub | Source code and release artifacts | Public repository; downloaders may hit GitHub when fetching releases |
| Sentry | Optional crash reporting (desktop app) | Stack traces, app/OS version when you leave crash reports enabled — not audio or transcripts |
We may use additional infrastructure (logging, transactional email) as the product grows. Material new categories of personal data processors will be reflected in updates to this page.
How long we keep data
- Local history and notes: until you delete them, clear app data, or remove the installation data folder.
- Account and plan records: for as long as your account is active and as needed for billing, fraud prevention, and legal obligations after closure.
- Daily access events: intended for short operational windows (on the order of months), then purged as part of routine maintenance.
- Quota and inference metadata: retained as needed for plan enforcement, abuse review, and product analytics; older aggregates may be pruned on a rolling schedule.
- Device registry entries: until you revoke a device or we clean up stale installs; revoked devices stop counting as active.
- Processors (xAI, Stripe, Google, etc.): follow their own retention rules for data they receive.
Security measures
We apply layered controls appropriate to a desktop + hosted AI product:
- Encrypted local stores for history, notes, and session material (AES-256-GCM envelope)
- Windows DPAPI protection for sensitive secrets in packaged builds
- Signed-in session required for recording and other sensitive app actions
- Server-side row-level security and service-role-only access patterns for sensitive tables
- Short-lived entitlement tokens for hosted inference authorization
- HTTPS for website and API traffic
- Code-signed Windows release installers when release signing is configured
No method of transmission or storage is 100% secure. Protect your Windows account, use a modern OS, and sign out on shared machines.
Your choices and rights
In the Luphia app
- Sign out from the sidebar
- Export or delete local history from History
- Manage devices under Settings → Account (revoke installs you no longer use)
- Context / privacy toggles under Settings → Privacy
- Microphone permission via Windows and the in-app device picker
On the website
- Sign in at Account to view plan and open the billing portal
- Cancel or update Pro through Stripe’s customer portal when linked from Account
Requests to us
Depending on where you live, you may have rights to access, correct, delete, or export personal data we hold, or to object to certain processing. Contact us using the details below. We may need to verify you control the account (for example via the signed-in email).
You can also use Google’s account tools to review or revoke OAuth access to Luphia, and Stripe’s receipts/portal for payment history.
Children
Luphia is not directed to children under 13 (or the minimum digital consent age in your region). We do not knowingly collect personal information from children. If you believe a child has created an account, contact us and we will take appropriate steps.
International processing
We and our processors may process data in the United States and other countries where their infrastructure operates. Those countries may have different data-protection laws than your home country. By using Luphia, you understand that your information may be transferred to and processed in these locations as needed to provide the service.
Changes to this policy
We may update this page as the product evolves. The Last updated date at the top will change when we do. Material changes may also be called out in the changelog or in-app notices when appropriate. Continued use after an update means you accept the revised policy, except where applicable law requires additional consent.
Contact
Privacy questions, deletion requests, or concerns:
- Email (privacy, billing, beta access, account): support@luphia.ai
- Website: https://luphia.ai
- Product help: Settings → Help in the desktop app (feedback form and diagnostics)
- Status: luphia.ai/status
- Open source / public issues: github.com/VbaGGz/Luphia-Voice