Security and privacy
What Spark does with your data, and what it doesn't.
Written for IT, security and legal reviewers. Speech recognition, speaker detection and meeting summaries run entirely on the Mac. Audio is never sent to a server, and neither is the text.
Summary
- Speech recognition runs on the Mac.There is no cloud speech API. Dictation audio is processed in memory and is not stored. Meeting recordings are stored only on the Mac. Nothing is uploaded.
- Transcripts and summaries stay on the Mac.Meeting summaries are written by a language model running on the Mac. Everything is kept only where the user sees it in the app, and the user can delete it.
- Three network connections, none with content.Model download, sign-in and license check, and update checks. No audio and no transcript is part of any of them.
- Signed, notarized and sandboxed.Apple Developer ID, notarized by Apple, macOS App Sandbox. Updates are signed and verified before installing.
- Organization-managed access.With Spark Enterprise, only people your organization invites can sign in, with their work email and a one-time code.
Data
Audio
For dictation, Spark records only while the shortcut is held. The audio is processed in memory on the Mac by the speech model and is not stored or uploaded.
Meetings
A meeting is recorded only after the user starts it, and until they stop it. Spark records the microphone and the computer's audio output (the call), in two separate files stored in Spark's sandboxed folder on the Mac. They are transcribed during the meeting; after it, a speaker detection model works out who said what, and a language model (Qwen3.5) writes the summary. All of these models run on the Mac. The user can delete a meeting's audio and keep its transcript, or delete the whole meeting. Recordings, transcripts and summaries are not uploaded.
When the user names a speaker, Spark keeps a voice fingerprint (a list of numbers describing that voice) on the Mac so it can recognize the person in later meetings. Fingerprints are never uploaded, and are deleted with the person in the app. With calendar access, which is optional, Spark reads the current event's title and invitees on the Mac to name the meeting and its speakers.
Transcripts
The text Spark produces is inserted into the app the user is working in and kept in a local history on the Mac (the most recent 100 dictations), which the user sees in the app. Meeting transcripts and summaries are kept on the Mac with the meeting. Transcripts are not sent anywhere. Users can delete individual items, or all of their history, at any time.
Analytics and telemetry
Spark does not collect content analytics or telemetry about what people dictate.
Clipboard
To insert text, Spark uses the clipboard briefly and then restores what was there before. Its inserts are marked so clipboard managers don't record them. With the Realtime model, Spark types the text as keystrokes instead and doesn't use the clipboard.
Secure input
When a password field or another app turns on macOS Secure Keyboard Entry, Spark doesn't listen. The menu bar icon changes and the user sees a one-time notice explaining why.
Network connections
These are the only network connections Spark makes. No audio and no transcript is part of any of them.
| Connection | When | What is sent | Where to |
|---|---|---|---|
| Model download | Once per model (speech, speaker detection and summary models), when it is downloaded | A request for the model files | Hugging Face |
| Sign-in and license check | At sign-in, and to renew the access pass while online | The user's email, a random device identifier created by Spark, and the Mac's name (so people can tell their Macs apart when they reach the device limit), to confirm access from their organization | Spark's licensing service on Supabase, hosted in the EU. The one-time sign-in code is emailed through Resend, an email delivery service. |
| Update checks | Automatically in the background, and when the user checks for updates | A request for the update feed, and the update itself when one is installed. No system profile is sent. | Spark's own update feed |
Once the models are downloaded, dictation and meetings work offline.
Hostnames for firewall and proxy allowlists
huggingface.co, for model downloads. Hugging Face may serve the model files from its download hosts underhf.co.xwoxwbeszlhzqwybspry.supabase.co, for sign-in and license checks.francesco-dipietro.com, for the update feed and update downloads.
All connections use HTTPS.
App integrity
- Code signing. Spark is signed with an Apple Developer ID.
- Notarization. Spark is notarized by Apple.
- App Sandbox. Spark runs in the macOS App Sandbox.
- Signed updates. Automatic updates use Sparkle. Each update is cryptographically signed (EdDSA) and the signature is verified before the update installs.
- Update control. Users or admins can turn automatic install off.
Access control
This section describes Spark Enterprise, where your organization manages who can use Spark.
- Managed by your organization. Only people your company invites can sign in.
- No passwords. People sign in with their work email and a six-digit one-time code, sent by email and valid for one hour. Only invited email addresses can receive a code.
- Limited Macs per person. Each person's access is tied to a limited number of their Macs, three by default. Signing out frees the Mac.
- Works offline until the subscription runs out. Access is held in a pass on the Mac, signed with Ed25519 and tied to that Mac. It stays valid offline until the end of the paid period, plus a 7-day grace period, and Spark renews it once a day while online, so travel and flights don't interrupt dictation.
- Removing access. When someone is removed from your organization, Spark deletes their pass the next time it renews, which happens within a day while the Mac is online. A Mac that stays offline keeps working until its pass expires: the end of the paid period plus the 7-day grace period.
Permissions
Spark asks for two macOS permissions during setup, and two more for meetings.
| Permission | Why |
|---|---|
| Microphone | To hear you. Used only while the shortcut is held, or during a meeting the user starts. |
| Accessibility | To insert text into the app you're using, and to detect the shortcut in any app. |
| System audio recording | For meetings: to record the call. Asked when the first meeting starts. Spark's own sounds are left out. |
| Calendars (optional) | For meetings: to name a meeting after the current event and its speakers after the invitees. Read on the Mac only. |
Requirements
- A Mac with Apple silicon (M1 or later).
- macOS 15.6 (Sequoia) or later.
- About 1 GB of free disk space for a dictation model, and 3 to 4.5 GB more for meetings (speaker detection and a summary model).
- A microphone: built-in, or any external mic or headset.
Third-party components
Spark runs NVIDIA's Parakeet speech recognition models and the speaker detection models on the Mac through the open-source FluidAudio library (Core ML), runs Qwen3.5 summary models on the Mac through Apple's MLX, uses Sparkle for updates, and uses the Supabase Swift client for sign-in. Licenses and attributions are on the acknowledgments page.
Security questionnaire?
Send it to us, or ask anything this page doesn't answer.