← Daisy

Verify it yourself

Don’t trust “nothing leaves your Mac”. Test it.

Every local-first app says the same sentence. The difference is whether you can check it in ten minutes without reading a line of code. You can: cut Daisy off from the network, record a real meeting, and see that you still get a transcript and a summary. Below: the test, every host Daisy is able to contact and what triggers each one, and where your recordings sit on disk.

The ten-minute test

  1. Step 1 — install a firewall that shows you connections

    LuLu is free and open source; Little Snitch is the paid alternative with a nicer log. Either one prompts on every outbound connection and records what it saw.

  2. Step 2 — let Daisy download its models once

    Speech models are large and are not bundled in the app. On first run Daisy fetches the ones you chose from huggingface.co and caches them under ~/Library/Application Support/Daisy/huggingface/. Watch that download happen — then confirm it never repeats.

  3. Step 3 — block Daisy entirely, then record

    Deny Daisy every outbound connection in your firewall (or just turn Wi-Fi off). Set the summarizer to Apple Intelligence or a local model in Settings → Summary. Record a real meeting, stop it, and wait for the transcript and summary. Both appear. That is the whole claim, demonstrated on your machine rather than asserted on ours.

  4. Step 4 — put the network back and read the log

    Allow Daisy again and use it normally for a day. The connection log should contain nothing outside the table below — and nothing at all while a meeting is being recorded or transcribed, unless you deliberately chose a cloud summarizer or destination.

Every host Daisy can reach

This is the complete list from the source, not a summary of the interesting parts. Everything except the first two rows requires you to switch something on first.

mydaisy.io

Update check (hourly by default) and the download when you accept one.

The appcast XML and the DMG. No meeting data, no identifiers we assign.

huggingface.co

First run of a speech model you chose: Whisper, Parakeet, and the speaker-diarization models.

Model weights, downloading. Outside those download windows Daisy blocks the library's network layer outright.

api.openai.com · api.anthropic.com · api.moonshot.ai

Only if you pick that cloud provider as your summarizer, or a cloud polish pass.

The transcript text you asked it to summarize, under that provider's terms. Never audio. Apple Intelligence and local models are the alternatives, and the default.

api.notion.com · hooks.slack.com · api.attio.com

Only after you connect that destination and route a session to it.

The summary or transcript you routed, to your own workspace.

accounts.google.com · oauth2.googleapis.com · www.googleapis.com

Only if you connect Google Calendar for meeting auto-start.

OAuth tokens and calendar event titles/times. No recordings.

127.0.0.1:11434 · 127.0.0.1:1234

If you use Ollama or LM Studio as the summarizer.

Loopback only — the traffic never reaches a network interface.

Links to GitHub, Discord, Ko-fi and the docs open in your browser from menus — the app itself makes no request to them. Daisy has no account system, no telemetry, and no analytics SDK, so there is no “phone home” row to look for.

What lands on your disk

Recordings are plain files in a folder you choose (Settings → Storage) — a Dropbox folder, an Obsidian vault, anywhere. Open them in Finder while Daisy runs.

<your folder>/Daisy/Sessions/<timestamp>/

One directory per meeting: transcript.md (Markdown with YAML frontmatter — readable in any editor), summary.json, the raw audio archive as microphone.caf / system_audio.caf, and screenshots if you captured any. Nothing is in a database only Daisy can open.

~/Library/Application Support/Daisy/

Cached speech models, voice fingerprints for speaker names, and the transcription queue. Deleting this folder costs you the model download, nothing else.

Keychain

API keys for the cloud providers you connected, if any. Never in a plain-text config file.

The one thing that can leave: iPhone sync

Daisy for iPhone can sync with your Mac. That means text leaves the machine, so we would rather say it plainly than let you find out. The switch is off until you turn it on — including after an update, and including if you never install the phone app.

What travels, once you switch it on

transcript.md, summary.json, speaker names, markers and photos — through the private database of your own iCloud account, which we cannot read. With Advanced Data Protection on, Apple cannot read it either.

What never travels through iCloud

The audio. It moves only device-to-device over your local network, only when something asks for it — re-transcribing on the Mac, or playing it back. If the two are not on the same network, Daisy says so instead of quietly uploading a gigabyte.

Check it the same way

With sync off, the network traces on this page stay empty — no iCloud traffic from Daisy at all. Turn it on and you will see connections to Apple, and to nobody else. Turning it back off stops the syncing; what already went up is removed with “Delete my data from iCloud” in Settings.

While you are testing, test the failure too

“Local” is worth little if a crash takes the meeting with it. Start a recording, then force-quit Daisy from Activity Monitor mid-meeting. Reopen it: the audio recorded up to the kill is on disk, and Daisy transcribes it on the next launch instead of discarding the folder. Our own measured run of that scenario, along with the diarization numbers, lives on the benchmarks page, scripts included.

If the test disagrees with this page

Tell us, and we will fix the app or the page.

A connection you can’t explain from the table above is a bug worth reporting, whichever way it turns out. The source is public — the network policy, the entitlements and the local server are all readable.