How the cloud became the default

The cloud was never a decision. It was the shortest path from a research model to a shipping product, and a whole category of meeting tools took that path without ever looking back. On-device meeting transcription begins by questioning the one assumption none of those tools bothered to question, which is that the model has to run somewhere other than the machine in front of you.

When automatic speech recognition finally got good, it got good on GPUs in data centers. Every meeting tool of that generation inherited the same shape. Capture audio on your machine, ship it to a server, run the model there, and store the audio and the transcript in the vendor's cloud. The architecture wasn't chosen for you; it was chosen for the model.

Everything uncomfortable about the category follows from that shape. Retention policies you have to read. Breach surface you cannot see. A bot sitting in the participant list, because joining the call was the easiest place to grab audio. Compliance questionnaires, because your private conversations quietly became someone else's data at rest.

None of that was malice. It was gravity. Once the expensive part of the system lived in a data center, everything else drifted toward the data center too, and the transcript you actually wanted arrived as a byproduct of infrastructure you never asked to depend on.

What Apple silicon changed

Whisper-class models now run comfortably on the Neural Engine and GPU in the Mac you already own. Transcription that needed a rack of servers in 2020 needs about 500 MB of local model weights in 2026, small enough to sit quietly on a laptop and run whenever you ask. The hard part stopped being whether the model could run on your hardware and became whether anyone would bother to let it.

Savory runs its transcription with WhisperKit, on-device, on both macOS and iOS. It is the same on-device engine in both places, with no round trip to a server in either. Your iPhone is not a thin client forwarding audio to something smarter in a rack; it is the thing doing the work, using silicon Apple already put in your pocket.

Once the model can live on your machine, the server is no longer infrastructure. It's a liability someone forgot to remove.

It also quietly answers a question people keep asking about meeting tools, which is why a bot ever needed to be in the call at all. The bot was never about the meeting; it was a microphone the server could reach. When the recognizer already lives on your own machine, the audio is where it needs to be from the first word, and the participant list goes back to being a list of participants.

That single relocation is the entire essay. Move inference to the edge and you do not merely save a network hop or shave a little latency. You delete the reason the audio ever had to leave the device, and when the reason is gone, so is every downstream system that existed only to hold audio that should never have travelled in the first place.

What on-device meeting transcription actually needs

On-device does not mean magic, and it does not mean nothing ever touches the network. The model has to reach your device somehow, and Savory is plain about how. The transcription weights are downloaded once, on first use, from Hugging Face, then stored locally and reused for every meeting after that.

They are not pre-bundled inside the app, and that is deliberate. A standard tier is about 500 MB, and the highest-fidelity tier runs up to a few gigabytes, which is far more than anyone should have to carry inside an app they have not yet decided to keep. So the download is an explicit first-run step you can watch happen, not a surprise buried in an installer, and once it lands the model belongs to your machine.

After that first download, transcription itself makes zero network calls. The inference runs entirely in memory on your own hardware. The only network activity the feature ever performs is that one-time model fetch plus a small availability probe that checks a model is present; the recording, the decoding, and the finished text all stay on the device from the first second to the last.

Audio is processed in memory and never written to disk. There is no temporary file on the way to text, no scratch recording waiting to be recovered, nothing left on the volume for a forensic tool to find later. An automated audit runs in our build pipeline and fails any build that adds an audio write path, so the guarantee is enforced by the toolchain rather than by anyone remembering to be careful. We took that one apart in detail in audio never touches disk.

The network, itemized

It is worth being concrete about what actually crosses the network, because vague reassurance is precisely how the cloud generation got away with the opposite. For the transcription feature, the list is short enough to write out in full and then check against reality.

One: the first-run model download, a single fetch of the weights from Hugging Face, verified once and then never repeated. Two: a small availability probe that confirms a usable model is present before you start. That is the entire network footprint of on-device meeting transcription. There is no third item.

Notice what is missing from the list. No per-meeting upload. No streaming of audio to a recognizer somewhere else. No callback reporting what you recorded, how long it ran, or who was in the room. During inference the count of network calls is exactly zero, which is a number you can confirm with any traffic monitor rather than accept on trust.

Summaries, as we will get to, are a separate feature with their own separate network behavior, and we keep them on their own line rather than folding them into this one. Everything on the transcription side reduces to a single rule: fetch the model once, then work offline forever. The design goal was a footprint small enough to hold in your head, and this is the whole of it.

Privacy as absence, not policy

A cloud vendor's privacy story is a stack of promises. We encrypt, we do not train on your data, we delete on request. Every one of those is a policy, and policies change with acquisitions, pivots, leadership, and subpoenas. A promise is only as durable as the company that made it and the quarter in which it was made.

An on-device architecture replaces promises with absences. There is no server-side recording to leak, because there is no server side. There is no retention window to misconfigure, because there is nothing retained on someone else's disk waiting to expire. The strongest privacy feature is the code that doesn't exist.

This is why our privacy page reads more like an architecture diagram than a legal brief. We would rather show you the places the audio cannot reach than promise you the places it will not go. An absence is something you can check for yourself; a promise is something you have to take on faith, and faith is exactly what a privacy policy is quietly asking you to spend.

It also flips who has to trust whom. In a cloud tool, you extend trust outward to a company and hope it holds through every future incentive. Here the trust runs the other direction, back toward you. The software has to earn a place on hardware you already control, and the integrity checks below are how it goes about earning it.

Provenance and integrity

Moving the model onto your Mac raises a fair question. If the app fetches its weights from the internet, how do you know you received the real weights and not something altered along the way? An on-device promise is only ever as good as the exact bytes the device ends up running.

So every model Savory downloads is integrity-pinned to a verified SHA-256 hash. The app knows in advance precisely what the correct weights should hash to, and it checks before trusting anything. A substituted or corrupted download can never reach the verified state, and a model that has not reached the verified state is never loaded and never used to transcribe a single word. There is no quiet path where the wrong bytes become your transcriber.

Where the model lives matters nearly as much as what it is. The weights are stored in Application Support, not in Caches, and that distinction is small and load-bearing. A cache cleaner that helpfully sweeps the Caches folder to reclaim disk space cannot touch a model that lives in Application Support, so you are not re-downloading a few gigabytes every time some tidy-up utility decides to run. The models are also excluded from backup, because there is no reason to inflate a Time Machine or iCloud backup with weights that can be re-fetched and re-verified on demand.

The speaker-diarization models, the ones that work out who said which words, get a different and stricter treatment. They are about 13 MB, small enough to bundle directly inside the macOS app, and because they ship inside the app they are sealed by its code signature. Tampering with them breaks that signature, which means the component that attributes speech to people is protected by the same mechanism macOS uses to protect the app binary itself. One honest limit worth stating plainly: on-device speaker diarization is macOS-only today. iOS still gets on-device transcription; the speaker labels are part of the Mac experience for now.

The honest trade-offs

On-device is not free, and pretending otherwise would quietly undo the whole point of being straight with you. You download a model once, up to a few gigabytes for the highest-fidelity tier, and you spend local compute and a little battery doing work a data center would have done on someone else's electricity. On modern Apple silicon that cost is usually invisible; on an older machine, or across a very long recording, it is real, and you should expect to feel it.

Cross-device sync stops being trivial, too. When the transcript lives only on the device that recorded it, there is no cloud copy sitting ready to fan out to your other machines, which is exactly why Savory ships single-device today instead of pretending the problem away. That is a genuine limitation rather than a coming-soon wink. If you record a meeting on your Mac, that meeting lives on your Mac, and nowhere else.

There is one more boundary worth naming out loud. Transcription and diarization run on-device, but AI summaries are a separate feature that does call a cloud model, because summarizing a long meeting well still benefits from a larger model than your Mac wants to host locally. We keep that seam visible instead of smudging it into the on-device story. Exactly what a summary sends, and what it deliberately withholds, is laid out in what leaves your Mac, and you can transcribe for as long as you like without ever invoking one.

We think these trades run in your favor anyway. Disk is cheap; trust is not. A people-centric library that lives on your own machine turns out to be more useful day to day than a shared folder of cloud transcripts nobody ever reopens, and the conveniences that come naturally to a cloud workspace are worth rethinking rather than copying wholesale. You can see the shape of that bet on the on-device transcription page.

The airplane-mode test

Here is the test any transcription tool should pass before it earns your meetings: turn off Wi-Fi and record. If the transcript still appears, the tool is doing the work on your hardware and the privacy story is physics. If it does not, the privacy story is a policy document, and you already know how those age once the incentives shift.

The test is deliberately dumb, and that is its virtue. It does not require reading a policy, trusting a badge, or parsing a data-processing addendum. It is a physical experiment with a binary result that anyone can run in a coffee shop, and physics does not renegotiate its terms after an acquisition.

Savory passes it. After the one first-run model download, you can put the machine into airplane mode, record a full meeting from end to end, and watch the words arrive with nothing crossing the wire. The availability probe has nothing to phone home about, and the audio never had anywhere to go in the first place, so the offline transcript is not a special mode. It is simply what the architecture does when you take the network away.

Savory is still pre-launch, built to a floor of macOS 26 and iOS 26, and we are not going to dress that up as more than it is. The architecture, though, is already here to check, and it takes about the length of one call to check it. Turn off Wi-Fi, record one meeting, and let the transcript settle the argument for you.