an honest comparison
Otter is a full transcription service: a bot (OtterPilot) joins your meetings, and transcripts live in Otter's cloud with team features on top. contorch takes the opposite architecture: nothing joins the call — your Mac transcribes what you already hear, into files you own.
you want a mature transcription service with team workspaces, shared archives, mobile apps, and integrations — and you're comfortable with a bot in the room and transcripts in a vendor's cloud.
you'd rather nothing join your calls, want transcripts as plain Markdown on your own disk, and want that context to feed your coding agents over MCP rather than sit in a web archive.
| Otter | contorch | |
|---|---|---|
| How it captures | A bot (OtterPilot) joins the meeting as a participant | Nothing joins. Your Mac transcribes its own audio — the same sound you hear |
| Visible to others | Bot appears in the participant list | Nothing visible — you remain responsible for local recording-consent rules (see our docs) |
| Where transcripts live | Otter's cloud | Your disk — ~/transcripts/*.md, grep-able, yours to delete |
| Built for | Humans reading and sharing notes | Agents using context — plus you, since it's just Markdown |
| Speaker attribution | Named speakers (with training) | Me / Them, exact by construction |
| Open source | No | Apache-2.0 |
| Price | Free tier + subscription | Free |
A meeting bot is a third participant: everyone sees it, a vendor's cloud receives the room's words, and your transcript archive lives behind someone else's login. Sometimes that's exactly right — teams that live in a shared archive get real value from it.
contorch's answer is architectural: capture happens on your machine, output is a folder of Markdown, and the consumer isn't a web app — it's whatever agent you point at it. Audio goes to one place only (Gemini, transiently, for transcription — then it's deleted), and we say so plainly rather than whispering it. If your meetings are going to become memory, you should own the memory.
Free, Apache-2.0, local-first. One command installs the whole layer.
$ curl -fsSL contorch.com/install | bash