← SpeakSwell

Privacy, in plain language.

Effective October 20, 2026

SpeakSwell is a dictation app operated by Cody Farquhar, trading as Cody Farquhar Enterprises. Recording starts only after you tap or hold the microphone, or tap Record in Notes. Android 4.4.0 and later use a SpeakSwell account (Sign in with Google) and SpeakSwell’s hosted service. Android 4.2.3 to 4.3.1 private-beta builds use an individual invitation instead. Mac 2.2.5 and later use the same SpeakSwell account and hosted service. Earlier Mac previews also offered personal speech connections. The browser app uses the same SpeakSwell account and hosted service. The iPhone preview uses a personal speech connection. The Android app shows no advertising and has no analytics of its own. Google’s sign-in and Google Play Billing libraries, which the app includes to sign you in and process purchases, communicate with Google under Google’s privacy policy.

Audio and text processing

In Android 4.2.3 and later and Mac 2.2.5 and later, recordings travel over HTTPS to SpeakSwell’s server on Vercel, then to Groq for transcription. For every style except Exact, the recognized transcript can also be sent to Groq for formatting and a check that edits preserve its meaning. Requests include your language, style, preferred spellings and aliases, and a general writing category such as email or messages. Ordinary transcription requests do not send the name of the focused application. Our transcription endpoint processes requests in memory and does not intentionally save audio or transcripts in a server database or application logs.

If Groq is unavailable, SpeakSwell may send the same request to a backup speech provider (currently OpenAI) so your dictation still completes. We will update this page before using a different provider. Audio and text are not used by SpeakSwell to train models.

Personal-connection modes in older Mac previews, the iPhone preview, and older browser editions send Whisper recordings directly from your device to Groq using your personal API key. Current Mac releases send them through SpeakSwell. Local Qwen in older Mac previews processes audio on your Mac. Groq processes information under its privacy policy and service terms. Provider retention and security controls apply; SpeakSwell does not guarantee zero cloud retention.

Meeting and lecture notes

Android 4.3.0 adds Notes. After you start a recording, short audio sections are sent through SpeakSwell to Groq while recording continues. After transcription, the transcript is sent to Groq to produce a summary, decisions and next steps. When you ask a question about a recording, the question and the transcript (or, for a long recording, its passages related to the question) are sent the same way to write an answer; neither is stored by SpeakSwell. These may contain mistakes; each summary point and answer includes a transcript source for review. Notes does not read nearby text. Android 4.3.1 estimates speaker changes on your phone and groups voices as Speaker 1, Speaker 2 and so on. It does not identify people by voice. When someone introduces themselves or is addressed by name in the transcript, the app may suggest that name for a label, on the device, with the line it came from; a name is applied only if you accept it. You can rename or correct these labels. Temporary voice-comparison data is kept only within that recording while processing, then removed when speaker detection finishes or audio is removed. It is never used across recordings or sent to a speaker-detection service. Speaker labels and timestamp highlights stay on your device unless you enable account text saving or the private review archive below.

Optional private quality review

For owner-approved testing only, Quality review archive is off by default. When an authorized test account enables it in Settings → Privacy, SpeakSwell automatically uploads saved note audio, transcripts, speaker labels and timing, summaries and source evidence, processing failures, and dictation before-and-after text with formatting settings, preferred spellings, the destination app identifier, and any already-consented formatting context to a private Vercel Blob archive. Existing saved notes are included. Only specifically authorized test accounts can access this archive. Temporary voice-comparison vectors, passwords, provider keys and sign-in tokens are not included. Copies remain until deleted by the archive owner; pausing uploads or deleting a local note does not delete an uploaded copy. The test archive stops accepting new content at 1 GiB. Ordinary users do not upload review records.

Android Accessibility

Accessibility lets SpeakSwell read the active editable field, cursor position, and keyboard layout, place the microphone beside the keyboard, and insert your recorded words at the cursor. Field and keyboard information is used on your phone. The microphone stays hidden in password and PIN fields. Accessibility does not start recording or send messages automatically.

You review an in-app disclosure before enabling Accessibility. Revoke access in Android Settings at any time. Microphone permission is separate and is used only for recording you start. An Android foreground notification indicates an active recording.

Optional conversation context

Context Assist is optional. Builds that support conversation context keep it off until you enable it after reviewing the current disclosure. With it enabled, a dictation can include up to 420 characters before your cursor, 220 after it, and a 1,200-character excerpt of visible text in the active conversation column of a supported email or messaging window. Older builds include only the text around your cursor. This can include private messages, names and signatures. Cloud formatting sends this excerpt through SpeakSwell to Groq; older own-key Mac previews send it directly to Groq. SpeakSwell does not store the excerpt on its servers unless the owner explicitly enables the private review archive. The apps may keep it with a pending recording in private device storage for up to 24 hours; older context is removed when the app next checks saved recordings. Exact mode uses no context. The app does not scroll through hidden message history or read other windows, password fields or unrelated apps. Turn it off in Settings to stop including context in new dictations and retries.

Your account, plan and usage

Android 4.4.0 and later ask you to sign in with Google. Google provides a signed identity token containing your email address and Google account identifier, and it may include basic profile fields such as your name. We use the token to verify sign-in, do not retain its name or profile fields, and never receive your Google password or access to your Gmail, Drive, contacts or calendar. We store a random account number, your Google identifier and email address, when you created the account, a one-way hash of each sign-in session on your devices together with that device’s model or name (so a session can be recognised), your subscription status from Google Play (the purchase token, plan, renewal and expiry dates) or, for a web purchase, from Stripe (Stripe’s customer and subscription identifiers, plan, renewal and expiry dates), and counters for the minutes of dictation and Notes you used each month. We use this to sign you in, apply your plan and monthly allowance, answer support requests, and operate the service. The owner dashboard shows account status, usage and payment records to the authorized owner only. Usage counters are removed about ten weeks after the month ends, and a session is removed about 180 days after you last use it. When you delete your account we remove all of this except the current month’s usage numbers (minutes used, tied only to a one-way hash of your Google identifier, with no email, recordings or text), which we keep until that month ends so that deleting and re-creating an account cannot reset the free allowance.

Outside the optional owner quality review archive described above, we do not store your recordings, transcripts, formatted text, nearby field text, words or shortcuts on our servers. Account data is kept in a database provided by Upstash on SpeakSwell’s Vercel hosting. Sign-in is provided by Google, subscription billing by Google Play or, for web purchases, by Stripe, and speech and text processing by Groq (and the backup provider above), each under its own terms. These providers process data mainly in the United States. We do not sell your information or share it for advertising.

In the Android app, subscriptions are sold and billed by Google Play. Google tells us only whether a subscription is active, when it renews or ends, and whether it was cancelled or refunded. For purchases made on the web, Stripe is our payment processor. You enter your card on Stripe’s own checkout page, and Stripe handles your card, billing details and receipts under its privacy policy. To link the purchase to your account we send Stripe your email address and SpeakSwell account number, and Stripe tells us the same subscription facts and nothing about your card. SpeakSwell never sees or stores your card number, wherever you buy. The Android app keeps your session in Android Keystore protected storage and excludes app data from backup. Signing out revokes that phone’s session.

Google’s Android sign-in and Play Billing libraries process data to provide those services. The Play Billing library sends technical diagnostic events to Google through Google DataTransport, including billing-operation results and app/device configuration. These diagnostics are governed by Google’s privacy policy. SpeakSwell does not receive those diagnostic reports or use them for advertising.

SpeakSwell is for adults. It is not directed to children, and we do not knowingly create accounts for children.

Beta invitations and saved connections

Android 4.2.3 to 4.3.1 builds, and access codes issued to reviewers and testers, use an individual invitation. Android encrypts it with an Android Keystore key and excludes app data from backup. SpeakSwell stores a one-way hash, an invitation identifier, and an expiry date to authorize requests, and counts the minutes processed for that invitation. Removing it in Settings deletes it from this phone; contact support to revoke an invitation across installations. Never share your invitation.

Mac stores your SpeakSwell sign-in securely in macOS Keychain. Earlier Mac previews also stored personal provider keys there. The browser app can remember a key using encrypted storage; someone with access to your unlocked browser could use that connection. Revoke personal keys with the provider to prevent use elsewhere.

Local history and recordings

Android and Mac keep up to 60 recent dictation entries locally, including the original recognized text and the final text, plus your preferred spellings, snippets, and settings. Words uses this local history to suggest spellings for review. Similar heard versions are grouped on the device; they become corrections only after you save a preferred spelling. These suggestions do not upload your history. Clearing local history also removes the original recognized text used for suggestions. Clear local history in Settings or remove individual entries in History. Remove preferred spellings and shortcuts in Words. Android history, words and snippets remain local. In the Mac app, account text saving is optional and includes existing text when enabled. The web app saves text to your account while signed in. Your plan and monthly allowance are shared.

For keyboard dictation, Android deletes audio after successful transcription or cancellation. If transcription fails, the recording and its request options can remain in private app storage for retry. An unfinished recording remains available for retry until you cancel it or replace it with a new recording. The optional nearby context expires after 24 hours. Clearing transcript history does not erase a pending recording. To immediately remove all Android app data, use Android Settings → Apps → SpeakSwell → Storage → Clear data, or uninstall. This also removes saved connections and preferences.

Notes recordings, transcripts, summaries, speaker labels and highlights stay in private, backup-excluded storage on this device until you delete the recording. Remove audio in a recording’s More menu keeps its completed transcript and notes. Delete recording removes that recording’s audio and notes. Clearing dictation History does not delete Notes. An hour of saved Notes audio uses approximately 120 MB. Account text saving does not synchronize recordings or local audio files.

The browser app keeps an account-scoped copy of text, settings and queued changes in IndexedDB for recovery after a reload. It saves text and settings to your account over HTTPS. Sign-out removes that account’s cached text after pending changes have saved. Audio sections stay in IndexedDB on this browser and device; they are sent only for transcription and are not included in account sync or library exports. Clearing site data removes local audio and any unsynced changes. Copying text places it on your system clipboard.

Clipboard

Copying a transcript, or inserting it through Android's paste action, places that text on the system clipboard. Your device's clipboard controls and any apps with clipboard access apply.

Account text saving

When you use the signed-in web app, or enable Save text and settings to my account in a sync-capable Mac app, SpeakSwell stores your dictation text, meeting transcripts, summaries and source quotes, speaker labels, bookmarks, words, shortcuts and portable writing settings in private account records with our existing Upstash database provider. Existing Mac text is included when you enable it. Audio, passwords, sign-in tokens, personal provider keys, application permissions and device paths are excluded. We do not store your recordings through account text saving. This is separate from the owner-only quality archive. Saved text remains until you delete an item or your account. Changes are versioned to protect newer edits; concurrent changes may create a saved copy for review. Deleting a cloud meeting does not delete the original device’s only audio copy. Pausing Mac text saving leaves existing cloud text in your account. Account deletion removes this library; local device copies may remain. Browser sign-in uses a Secure, HttpOnly cookie, and Google still handles your Google credentials.

Service operations and website counts

We keep numeric hosted processing totals per account: audio duration, input and output token counts, request and failure counts, estimated provider cost, and the time of the latest hosted request. These counters contain no audio or dictated text and expire after 400 days without updates. Account deletion removes the per-account counters; anonymous business totals remain. Payment and expense ledger records may be retained for financial recordkeeping, including after account deletion.

Our website counts page views and anonymous browser-tab visits using session storage, without advertising cookies or cross-site tracking. It saves only a fixed page name, month, and a broad source category such as search or direct; it does not retain IP addresses, query strings or full referring URLs in visitor reports. A short-lived hash of the request address is used to limit abuse. Anonymous deduplication identifiers expire after 32 days, and aggregate counts expire after 400 days without updates. Do Not Track and Global Privacy Control signals disable this collection.

Website requests and support

Our hosting provider processes normal request metadata, including IP addresses, to deliver this website and downloads. We do not include advertising or third-party analytics scripts. Installing local Qwen downloads its runtime and public model files from GitHub, Python package indexes, and Hugging Face; those services receive ordinary download-request metadata.

Email support uses Google Groups and Gmail. Google processes your sender address and message, and Cody uses them to respond to your request. You can ask for support correspondence to be deleted using the address below.

Your choices and requests

You can stop recording, revoke device permissions, sign out, clear local data, and disconnect personal provider keys. You can delete your SpeakSwell account in the app at Settings → Account → Delete account, or by email if you no longer have the app. See how to delete your account. Deleting an account removes the records described above, except for the current month’s usage numbers, which we keep until the month ends to prevent abuse of the free allowance; it does not cancel a Google Play subscription, which you cancel in Google Play, or a subscription bought on the web, which you cancel from Manage subscription before you delete (or by emailing us afterwards). Google Play and Stripe keep their own payment records. To ask what we hold about you, or to correct it, contact Cody Farquhar at cody-apps-support@googlegroups.com. See Support for setup help. Do not email API keys, tokens, or private recordings. For personal provider connections, contact that provider as well.

Older versions and changes

Older versions used a shared hosted transcription service. Those shared-token endpoints remain retired. Android 4.2.3 introduced separate hosted endpoints restricted to individual beta invitations, and Android 4.4.0 introduces accounts, a free monthly allowance, and Pro subscriptions. Earlier personal-connection editions retain their existing provider setup. We will update this page and its date when our practices change, and material changes to how Android uses Accessibility require a new in-app disclosure review.