Privacy

Saykeep records, transcribes and labels speakers on your Mac, and saves recordings, transcripts and summaries as ordinary files in ~/Documents/Saykeep. If your Mac syncs Desktop & Documents to iCloud, those files sync too. Summaries come from a model you connect, and none is set until you choose one. You don’t have to take this page on trust: every connection the app can make is listed, and you can watch for it yourself.

The short version

A paragraph you can forward to a client

Saykeep makes the transcript on my Mac. The developer never receives the recording or the transcript. If I switch summaries on, the transcript text and, if I filled them in, my name and a short note about me go only to a model I chose.

from https://saykeep.app/privacy

What the app sends in everyday use. At most one small update check a day, if you said yes at setup (Yes is pre-selected), plus a model-list request to a summary endpoint you set up, when you open the panel or press Test; and, when a summary is made, the meeting’s transcript text (plus your name and “about you” note, if you filled them in) to the endpoint you chose. Never your audio.

Saykeep sends no telemetry, analytics or crash reports, and has none of its own. On the Mac, some of the open-source libraries it bundles can report usage. The speaker-label library (pyannote) has it on by default, and Saykeep switches it off before loading it. The model-download library (huggingface_hub) has a usage flag Saykeep does not yet switch off: nothing in Saykeep calls its reporting helper, but the model-download requests it makes to huggingface.co can carry version numbers in a header (its own, Python’s and torch’s). saykeep.app/network lists each library and what the version you download does about it.

Your licence key is checked on your Mac, with no network call.

The summaries switch

You decide where summaries are made.

Speech-to-text, transcripts and speaker labels are always made on your Mac; that part is not a setting. The only choice is who makes your meeting summaries. One setting, three positions.

Made on this Mac
  • Your audio
  • Your transcripts
  • Speaker labels
  • Your files: ordinary files in ~/Documents/Saykeep
Sent for the summary
Nothing.
The summary step is skipped.
The transcript text and, if you filled them in, your name and “about you” note.
To a server on this Mac. Summaries are made here too.
The transcript text and, if you filled them in, your name and “about you” note.
Straight to the provider you chose, under your own key.
No endpoint is set until you choose one. Recording, transcription and speaker labels all work in full; only the summary is yours to write.
Your transcript text, with your name and “about you” note if you filled them in, goes only to a model server on this Mac that you install and run (LM Studio, Ollama, llama.cpp or anything OpenAI-compatible), at the address you enter. Once your models are downloaded, Wi-Fi can be off the whole time.
Use any OpenAI-compatible service with your own API key. Saykeep sends it the transcript text, plus your name and “about you” note if you filled them in, and never your audio. It goes directly from your Mac, with no Saykeep server in between. Your key, their privacy terms, your call.

Flip it all you like: the “Made on this Mac” list never changes.

Every connection the app can make, including the ones that have nothing to do with summaries, is listed below and, in full, on saykeep.app/network. You can change this setting at any time.

Recording is always visible on your screen. While a meeting records, the menu-bar icon shows it, and no setting hides it. Saykeep does not notify the other people on the call; telling them is your job, and the first meeting you record reminds you.

Every connection the app can make

huggingface.co and its download servers
WhenThe first time each speech model is needed: at first run, and later when you pick a model or engine in Settings that isn’t on your Mac yet. If a Hugging Face token was added (none is by default), also each time speaker labels are made without the downloaded model.
What is sentA standard download request for the speech models (about 4.7 GB in all); with a token you added, the token too. The request header can name the versions of the download library, of Python and of torch (see Bundled libraries). Since 0.4.1, a model already on disk loads with no request. Like any web request, the server sees your IP address.
Contains your data?No. These are downloads to your Mac; no audio or transcript is sent.
Avoidable?Not on a first install. A model on disk is not downloaded again.
models.saykeep.app
WhenOnce: at first run, or the next time Saykeep starts after you first switch speaker labels on (they are on by default).
What is sentAn anonymous download of the ~30 MB speaker-label model, checked against its checksum before it is installed. Like any web request, the server sees your IP address.
Contains your data?No. Nothing about you or your Mac is sent.
Avoidable?Yes: switch speaker labels off in Settings ▸ Transcription ▸ Speaker labels. Once installed, the model is not downloaded again.
saykeep.app
WhenAt most once a day, if you said yes at setup (Yes is pre-selected).
What is sentA request for a small signed file that lists the current version. It carries a User-Agent naming the app and its version (Saykeep/<version> Sparkle/2.9.6): no machine id, account, licence key or cookie. The same host serves this website. Like any web request, the server sees your IP address.
Contains your data?Your Saykeep version, and that a copy is checking. Nothing else about you.
Avoidable?Yes: say No at setup, or switch it off in Settings ▸ App & Updates ▸ Updates. Check for Updates… in the menu then asks only when you choose it.
dl.saykeep.app
WhenWhen you install an update: you click Install Update.
What is sentA download of the signed update the check found. Like any web request, the server sees your IP address.
Contains your data?No. This is a download to your Mac.
Avoidable?Yes: don’t install the update.
Your summary endpoint
WhenOnly once you set one (none is set by default): each time you open the menu-bar panel or press Test, and whenever a summary is made.
What is sentA model-list request, carrying your API key if you stored one; and, when a summary is made, the meeting’s transcript text and, if you filled them in, your name and “about you” note. Like any web request, the server sees your IP address.
Contains your data?Yes: the transcript text, plus your name and “about you” note if you filled them in, only to the endpoint you chose. Point it at a server on your own Mac and it all goes only there.
Avoidable?Yes: leave the endpoint unset. Recording, transcription and speaker labels work in full.

The bundled libraries, how to check all this yourself, and the source document verbatim are on Every connection Saykeep can make.

The update check

Setup asks whether Saykeep may check for updates, and Yes is pre-selected. With it on, Saykeep asks saykeep.app at most once a day for a small signed file listing the current version. The request carries a standard User-Agent naming the app and its version (Saykeep/<version> Sparkle/2.9.6) and nothing else: no machine id, account, licence key, cookie or identifier that could link two requests together, beyond the IP address any web request shows. An update downloads from dl.saykeep.app only when you click Install Update, and it is not installed while a meeting is recording. Say No at setup, or switch it off in Settings ▸ App & Updates ▸ Updates, and no check runs unless you choose Check for Updates… in the menu.

You decide what is kept

Settings ▸ Privacy & Storage ▸ Recordings decides what happens to a meeting’s audio once it is transcribed: keep it (the default), have Saykeep delete it once the transcript is written, or have it ask after every meeting. Transcripts and summaries are kept whichever you pick. You can also delete any meeting from the Recordings window, or erase everything (every recording, transcript and summary, plus Saykeep’s settings, models and stored keys) in one step that asks you to type ERASE.

This website

Cloudflare Web Analytics counts page views on every visit. It sets no cookies, stores nothing on your device and builds no profile of you: Cloudflare processes your IP address to derive an approximate country and does not retain it. It is how we know whether anyone found the site at all. There is nothing to opt out of, because nothing is left on your machine.

Checkout runs on Lemon Squeezy’s systems, under Lemon Squeezy’s privacy policy. Nothing on this website can see what you record, dictate or transcribe.

Who is responsible. The data controller for this website and for mail sent to support@saykeep.app is Inwencja S.C., Poznań, Poland. For anything about your data, write to support@saykeep.app.