Launching today

Speechmark
Private, on-device meeting notes for Mac
58 followers
Private, on-device meeting notes for Mac
58 followers
Speechmark is a private macOS meeting-notes app. It records, transcribes, and summarizes meetings entirely on your Mac — decisions, action items, speaker-attributed transcripts. No bot joins the call, no account, one-time price. Integrates well with Claude Code using MCP server.







Edgemetry
Hi Product Hunt 👋 I'm Nitin.
I built Speechmark out of frustration with two main issues in existing tools: bots joining calls to take notes, and the privacy risks of vendors storing call recordings. Speechmark solves both by capturing system audio and mic directly on your Mac. No bot joins the call, no one sees a "Notetaker," and all transcription, speaker diarization, and summarization run locally. Your audio files never leave your machine.
Key Differentiators:
1. Original Audio Retention: Many tools discard recordings, leaving only unverifiable summaries. Speechmark keeps the original audio so you can easily reference exact statements.
2. Local & Custom AI: Run summaries fully offline with Apple Intelligence or Ollama. If you prefer Claude or GPT, you can bring your own API key—only transcript text is sent, never audio. Clear on-screen indicators show when cloud processing is used.
3. Claude Desktop Integration: Includes a local MCP connector so Claude Desktop can search your meeting history directly on your device without any uploads.
Pricing:
• One-time purchase, valid for up to 3 Macs.
• Free Tier: 14-day trial, followed by a free tier of 5 meetings per month.
• No account creation required.
I would love to get your feedback, especially regarding multilingual or accented-English calls. I am also happy to answer any questions about the audio pipeline, on-device models, or the decision to avoid a subscription model.
@nitinhayaran best wishes on your launch. My question is, which languages does Speechmark covers? I'd like to try it with my native language, Turkish :)
Edgemetry
@ihsany Thank you so much!
Speechmark transcribes 40 languages, including Turkish.
Go to Settings → Intelligence and pick Turkish from the Meeting language dropdown. Parakeet, our default engine, covers 25 European languages and doesn't include Turkish, so the app switches to Whisper automatically. Whisper downloads on first use, a few hundred MB. You can also translate meeting summaries into Turkish instead of English.
I haven't tested Turkish audio myself. Tell me how accuracy looks and I'll dig into anything that's off.
@ihsany @nitinhayaran the whisper download on first use is worth moving earlier. someone picks turkish in settings on monday and the few hundred mb lands when they start a meeting on tuesday, which is the worst possible moment for it. fetching it when the language is chosen would keep the no surprises feel the rest of the app has.
@nitinhayaran I really like the no-bot approach. Not having another participant appear in every meeting makes the whole experience feel much more private and less intrusive.
Edgemetry
@oliver_graf1 Thanks! That was one of the main reasons I built Speechmark. No bots, no awkward meeting notifications, and the audio stays on your Mac, so its auditable.
Personally, I also like its MCP with claude, can easily refer it and get issues/tickets created after a product call.
Refocus
Original audio retention is the one I would have put first on that list, not third. Keeping the source audio is what makes a summary auditable, and you learn that fast once you ship anything where a wrong summary has real consequences. We keep raw call audio for the same reason, and the hard part turned out not to be storing it, it was writing a retention policy and deciding who is allowed to press play.
Since you offered to talk pipeline: is speaker diarization its own local model, or are you leaning on Apple Intelligence for it? Diarization is where local stacks tend to break for us, two people talking over each other on a poor phone line and the labels swap mid sentence. Curious what you landed on and how it holds up when the two voices sit close together in pitch.
Edgemetry
@igorgurovich Fair point on the ordering, and you're right about the reasoning. We keep the raw audio too, for the same reason: a summary you can't check against the source isn't a summary you can trust. Now the summary also link to the point in audio, so it's easier to refer.
One thing that's different for us: since everything runs on-device, there's no "who's allowed to press play" question. The audio never leaves the Mac, so there's no server copy to govern. It just sits next to the meeting until you delete the meeting, and then it's gone.
On diarization: it's a local model, not Apple Intelligence. We fork SpeakerKit, the Swift wrapper around pyannote v4, so it exposes raw speaker embeddings instead of just labeled segments. The model underneath is stock pyannote v4. I haven't specifically stress-tested close-pitch voices talking over each other, so I don't have a real answer for you there yet. If you've got a clip that breaks your setup, send it over. I'd rather find out now than guess.
no bot joining the call is the part i would put first, above private. a bot appearing in a participant list is a disclosure to everyone else in the room, and most people who stop using these tools stop for that reason rather than for where the audio goes.
Edgemetry
@rabnoor_s Good point. “No bot joins” is the clearest immediate benefit because everyone in the meeting can see it, while on-device privacy matters more once someone evaluates what happens to the recording afterward. I should lead with the bot-free experience and use local processing as the reason it stays private.
@nitinhayaran that ordering makes sense to me. nice of you to rethink the copy mid launch instead of defending it. good luck today nitin
The little notetaker bot popping into a call always made me wince. Keeping the whole audio on my own machine sits right with me, Nitin, and clicking a line to land back on the exact moment is the part I'd reach for most.