Privacy Policy

Effective: July 7, 2026

The short version. GhostQuill turns your speech into typed text entirely on your Mac. Your voice and the text it produces are never sent to us or anyone else — there are no accounts and nothing to sign up for. To understand how the App is used and to fix crashes, it sends a small set of anonymous usage statistics and crash reports — never your voice, never your text. Beyond that, the only data that leaves your device are the ordinary requests made when the App downloads a speech model or checks for updates, and when you visit our website.

This Privacy Policy explains what GhostQuill does and does not do with your information. It covers the GhostQuill application for macOS (the "App") and the GhostQuill website at ghostquill.app (the "Site").

1. Our approach: privacy by design

GhostQuill is built so that your dictation never needs to leave your Mac. Speech recognition runs locally on your device. We do not operate servers that receive your audio or your transcribed text, we do not have user accounts, and we do not build profiles of you. Because the processing happens on your device, most of the data described below is never transmitted to us at all.

2. The App

2.1 Microphone audio

While you hold the dictation key, the App captures audio from your microphone so it can be transcribed. This audio is processed on your Mac to produce text and is used only for that purpose. The App does not record when the key is not held, and it does not send your audio to us or to any third party. Audio is held only transiently, in memory, for as long as needed to transcribe it; the App does not save your recordings to disk.

2.2 Transcribed text

The text produced from your speech is inserted into whichever application has focus — that is the App's entire purpose. From that point the text lives inside whatever app you dictated into, under that app's control, not ours. GhostQuill does not keep a history of your dictations, and does not transmit your transcribed text to us or to anyone else.

2.3 Speech recognition engine

Recognition is performed on-device by the open-source whisper.cpp engine running OpenAI Whisper models. You download a model once, inside the App (see Section 2.6); after that, recognition works fully offline. The App uses no cloud or server-based speech service of any kind — your audio is processed by your Mac’s own processor and never leaves it.

2.4 System permissions the App needs

To do its job, macOS will ask you to grant the App certain permissions:

  • Microphone — required to hear your dictation. macOS shows a prompt the first time; you can review or revoke this in System Settings → Privacy & Security → Microphone.
  • Accessibility / input — required so the App can insert the transcribed text into the app you are using. You can review or revoke this in System Settings → Privacy & Security → Accessibility.

These permissions are used only to provide the dictation feature. Revoking them will stop the corresponding functionality but does not send anything to us.

2.5 Anonymous usage statistics and crash reports

To see which features are used and to find and fix crashes, the App sends a small, fixed set of anonymous events through Google Firebase (Google Analytics for Firebase and Firebase Crashlytics). This reporting is a built-in part of the App and cannot be turned off in the App’s settings; it is deliberately limited to the narrow, content-free set of events described below.

What an event can contain is deliberately narrow:

  • Usage events — things like “the app was opened”, “onboarding was completed”, “a dictation finished”, “Keep Awake was activated”, “the Scratchpad was opened”, with coarse labels only (for example a duration range such as “under 5 seconds” or a failure category such as “recognition failed”). The speech model you selected is recorded as a device-level property.
  • Crash reports — a technical stack trace of where the App crashed, together with the App version, macOS version, and hardware model.

What these reports can never contain: your voice, your transcribed text, your clipboard, the contents of your Scratchpad, the names of the apps you dictate into, your files, or your location. The reports are tied to a random installation identifier generated by Firebase — not to your name, email, or any account (the App has none). There is no advertising identifier, ad personalization is disabled, and nothing is used for advertising or cross-app tracking.

This data is processed for us by Google and may be stored on Google servers, including in the United States. See Google’s privacy documentation for Firebase for how Google handles it.

2.6 Other network connections the App makes

Two ordinary, disclosed connections — neither carries your audio or text:

  • Speech model download — when you choose a model, the App downloads it once from Hugging Face (the public host of the Whisper model files). Like any download, this involves standard technical request data (such as your IP address) being processed by that host.
  • Update checks — the App periodically fetches our signed release feed from GitHub to see whether a new version exists, and downloads updates from there. These requests carry no personal payload beyond the standard technical request data any web request involves.

2.7 What the App does not collect

The App has no login or account system, does not ask for your name or email, and does not collect contacts, location, or files. There is no advertising and no cross-app tracking of any kind. Apart from the anonymous statistics and crash reports described in Section 2.5, the App transmits nothing about you.

3. The Site

The Site is a single static page describing GhostQuill. It contains no third-party analytics, advertising, or tracking scripts, and it sets no cookies. Your light/dark theme preference is stored locally in your browser (via localStorage) and is never sent anywhere.

Like any website, the Site is served by a hosting provider that processes standard technical request data — such as your IP address, user agent, requested URL, and timestamp — in server logs, in order to deliver the page and keep the service secure and reliable. Our hosting provider is Google Firebase Hosting; this data is processed by Google as our hosting provider. See Google's privacy documentation for how it handles such data.

4. Service providers

We keep third parties to a minimum:

  • Google Firebase (Google Analytics for Firebase, Firebase Crashlytics) — processes the anonymous usage statistics and crash reports described in Section 2.5.
  • Google Firebase Hosting — serves the Site and processes standard request logs as described in Section 3.
  • Hugging Face — hosts the speech model files the App downloads (Section 2.6).
  • GitHub — hosts the App’s downloads and the update feed (Section 2.6).

We do not sell, rent, or share personal data with third parties for their own marketing, and there is no advertising in the App or on the Site.

5. Data retention

Because the App processes audio and text locally and transiently, we retain nothing from your dictations. The anonymous usage statistics and crash reports described in Section 2.5 are retained by Google Firebase for the limited periods defined by those services, after which they are deleted or aggregated. Website server logs held by our hosting provider are retained for a limited period according to that provider’s standard practices, then deleted or aggregated.

6. Children's privacy

GhostQuill is a general-purpose utility and is not directed at children. We do not knowingly collect personal data from children.

7. Your rights

Depending on where you live (for example, under the EU/UK GDPR or the CCPA/CPRA in California), you may have rights to access, correct, delete, or restrict the processing of your personal data, and to complain to a supervisory authority. The usage statistics and crash reports we receive are anonymous and not linked to your identity, and we operate no user accounts — so in most cases we hold nothing about you that we could look up or act on. For any request concerning the limited website request data described above, or to ask a question about this policy, contact us using the details in Section 10.

8. International users

The Site and the App can be used globally. Website request data, and the anonymous usage statistics and crash reports described in Section 2.5, may be processed on servers operated by our service providers in various locations, including the United States. By using the Site or the App, you understand that this technical data may be processed in countries other than your own.

9. Changes to this policy

We may update this Privacy Policy from time to time. Material changes will be reflected here with a new effective date. If a future release of the App adds any feature that transmits data off your device, we will update this policy before or when that feature ships and describe what is sent and why.

10. Contact

The fastest way to reach us is a public GitHub issue. For privacy-specific requests — or anything you would rather not post publicly — email s.zaycev.dev@gmail.com.