Show HN: Yap – OSS on-device voice dictation for macOS with no model to download (github.com)

104 points by pancomplex ↗ HN
Hey HN! I wanted to share this OSS project I've been working on.

It's called Yap and its a small menu-bar app for macOS that does voice to text for any input. You'll set a hotkey, press it, talk, press it again, and the text gets pasted into whatever field you were in. Everything runs locally and never leaves your computer. Fully OSS and MIT licensed.

With macOS 26, Apple recently added two new APIs, SpeechAnalyzer and SpeechTranscriber, that do streaming on-device speech to text using models the OS ships and manages. So the app ships no model of its own and loads nothing before the first word. A recent benchmark put Apple's model slightly ahead of Whisper Small on accuracy and about 3x faster (see: https://news.ycombinator.com/item?id=48894752). On Mac, there's really no need anymore to download models or pay for expensive APIs.

A lot of existing dictation tools do one of a few things I wanted to avoid with this OSS project. They either:

- cost money (for something that's literally built into the OS)

- bundle memory-intensive models (e.g. Whisper or Parakeet)

- webapps wrapped in Electron

- Intel macs straight up don't work

- closed source

- use third-party APIs that will have access to all your transcripts

It's around 3,000 lines of native Swift in a 4 MB app and idles near 60 MB of memory. Audio comes off AVAudioEngine into SpeechAnalyzer with volatile results turned on for the live preview, history is stored in SwiftData. There's no network code in it at all.

Repo and a demo available here: https://github.com/FrigadeHQ/yap

Happy to answer questions and would love to hear any feature requests!

30 comments

[ 0.35 ms ] story [ 24.0 ms ] thread
I don't think get it unless I'm missing something - how is this different from just using the built in Mac OS dictation feature?

At first I thought it was going to be a CLI/package to interface with that API which sounded interesting, but I already use a hotkey to dictate text on my Mac via the OS.

I thought I was familiar with this project but I think it’s unrelated to this one I remembered from last year? Same name and also more or less an app layer for the new speech to text APIs introduced in OS 26.

https://github.com/finnvoor/yap

Amazing! This is something I wanted to look into too.

The Apple Foundation models SDKs are surprisingly cool. I recently started working on a personal productivity app that tries to keep track of all the projects I work on, and the ideas and initiatives within these. It does so by creating a graph of events, fed by Claude transcripts and the git and browser history, then letting FM summarize and describe all events; that in turn feeds a semantic search index in an SQLite database.

What I have now is an app that shows me where all my projects stand, what I last worked on, where I left forks behind (like deciding for one idea and doing something else "later"), and how to get back into something I wasn’t working on for a while. It also has a built-in MCP server, so I can ask Claude code about any past event or decision or roughly-similar keyword, and it’ll get sensible answers back!

Called the thing Pensieve :-)

However, one thing still missing is actually being able to ask it directly, or talk to it, so Yap looks like a great opportunity to learn!

Sounds really interesting, is it open-source by any chance?
On-device speech recognition on macOS is such a game changer for privacy and speed. Excited to test this out!
Great, just experimenting to see which is better voice apps to use for my Claude Code cli, on my Mac. for now settled with /voice command. will try Yap. It will be good to have an option to add custom voice commands, let say I want to open an app, or go to folder, that can be plugged, apart from transcription. Not sure if that is deviation, for Yap, love to have that kind of feature.
(comment deleted)
Incidentally, I've been testing a lot of dictation apps and models. I am on macOS Sequoia and intend to skip Tahoe altogether, so newer Apple models were not an option. I also dictate in multiple languages.

I mostly use the MacWhisper app until now, but I got frustrated by its slow development and lack of focus and dictation. So I tried the free TypeWhisper app. It works very well, but then I tested multiple models and my conclusion was that one cannot beat the Whisper Large v3 model for accuracy. I tried Qwen ASR (very good, but only for English), Voxtral (spoke Polish to it and it wrote Russian, BIG oopsie), Parakeet TDT 3 (very fast, but sometimes inaccurate).

I got frustrated by the speed of the Whisper Large model. So I spent an hour with AI benchmarking, testing and developing a new plugin. Turns out that on a modern Mac with a good GPU you can run the Whisper Large model at roughly the same speed as the tiny Parakeet model. 2-3x faster than what other apps ship. It's just that nobody bothered.

So, I am now happily dictating into TypeWhisper and then feeding the dictated text into a local gemma-4-26b-a4b-qat LLM for corrections. Everything happens instantly.

Couple of suggestions/remarks:

- Remove the presence of the Dock icon. Yap is the kind of app you just want as a menu bar utility. Like Whisper.

- Add a "Settings..." menu item to the main Yap menu with `Command-,` as a shortcut. This will align it with other apps.

- I couldn't enter F13 as a shortcut.

- I saw there's a transcript history of input. I kind of don't want that to be there. I believe input should be ephemeral and not logged.

Seems nice! I have been using Handy https://handy.computer/ for a while and I am happy with it (using Parakeet), this seems quite similar in terms of features, except that is uses Apple's APIs.
Strangely, on my macOS 27 Beta build 26A5388g, nothing happens after I finish speaking. No input is transcribed or pasted and nothing is shown in the history.

I do see the input being listed to — there's an audio graph animated as I speak (~US English), though it appears to be late in picking up my speech. Only my second "test?" is represented in the graph as it moves leftwards.

I went through all the permissions, they show as checked.

I also had a crash once, I've submitted the crash report.

Using the DMG from GitHub.

Does the built-in dictation not use these models or why would I use this app instead of Apple's own dictation?
I have wrote one too. Maybe this is the future.
Great, hope to see the language picker soon!
built a small voice notes thing for myself last week and the surprise was that transcription accuracy wasn't the hard part. it's that i almost never want the raw transcript, i want the cleaned up version of it. keeping that out of scope is probably the right call for a dictation tool though.
That's a nice app. I don't know how it differs from the normal mac dictation — cuz normal thing works great, but I think having a visual cue of what's happening like yap does is a nice thing. And can we replace the actual microphone key for the activation of the voice?? Also for the concern of the mac dictation sending it to the cloud — also could mean that the speech api could also send it to the cloud right?
This is great! Love how simple it is