Yap: macOS Voice Dictation Without a Model
Yap is a new open-source voice dictation tool for macOS that leverages the OS's built-in speech models. It's a 4MB Swift app that lives in the menu bar, triggered by a global shortcut (default ⌘⇧D). Press it, speak, press it again, and the transcribed text is pasted into your current app. No account, no API key, no network calls.
Why Build Another Dictation Tool?
The developers at Frigade identified several pain points with existing solutions:
- Cost: Many voice-to-text tools require subscriptions.
- Heavy models: Whisper weights are hundreds of megabytes, consume RAM, and run slowly on Intel Macs—sometimes crashing or taking 30-60 seconds per paragraph.
- Bloated stacks: Many apps are Electron-based, idling a full browser engine for a menu bar icon.
- Closed source: You can't verify that audio stays on your machine.
Apple's New Speech APIs
macOS 26 introduced SpeechAnalyzer and SpeechTranscriber, which provide on-device streaming speech-to-text using models shipped and managed by the OS. Yap carries no model of its own, loads nothing into memory until you speak, and needs no API key. According to a benchmark cited in the README, Apple's model achieves a 2.12% word error rate on clean audio and 4.56% on noisy audio, compared to Whisper Small's 3.74% and 7.95%, and runs about three times faster across 5,559 LibriSpeech clips.
How Yap Works
Yap is roughly 3,000 lines of native Swift, with no browser engine. It idles at about 60 MB of memory. Here's the technical flow:
-
Audio Capture: Audio comes off the default input through
AVAudioEngineand is converted to the format the analyzer requires. Capture starts before the speech stack finishes initializing; buffered audio is flushed once the transcriber attaches, ensuring no first word is clipped. -
Transcription: Runs through
SpeechAnalyzerwith volatile results enabled for live preview.SFSpeechRecognizerserves as a fallback for locales not covered by the newer API. -
Text Insertion: This is the tricky part. Yap writes the text to the clipboard, drives ⌘V through System Events, then restores your previous clipboard contents. It waits before restoring because Chromium-based apps read the pasteboard asynchronously; restoring too early hands the renderer stale data. This detail ensures compatibility with both native and web apps.
-
State Management:
RecordingCoordinatoris a small state machine with protocol-based dependencies, making it testable without a microphone.
Installation and Requirements
- macOS 26 (Tahoe) or later is required.
- Install via Homebrew:
brew install --cask frigadehq/tap/yap - Or download the latest .dmg from GitHub Releases.
- Building from source needs Xcode 26.
Permissions
On first launch, Yap requests:
- Microphone
- Speech Recognition
- Accessibility (must be enabled manually in System Settings — required for any app that types on your behalf)
- Automation
Why No Sandbox?
Typing into another app requires System Events and reading the focused UI element, both forbidden by the macOS App Sandbox. Yap is distributed outside the Mac App Store, unsandboxed, like every text expander and clipboard manager.
Development
Clone and install in one line:
git clone https://github.com/FrigadeHQ/yap.git && cd yap && ./install.sh
The script installs XcodeGen if needed, quits any running Yap, and replaces it with the new build. To work in Xcode:
xcodegen generate
open Yap.xcodeproj
Run tests with:
xcodebuild -project Yap.xcodeproj -scheme Yap -destination 'platform=macOS' test
Note: Local builds are signed ad-hoc, so macOS treats each rebuild as a new app and forgets permissions. Use the "Reset and re-grant" button in Yap's Settings if pasting stops working.
Roadmap
The developers intentionally keep it minimal. A language picker is the most likely next addition; currently Yap follows your system locale.
Why It Matters
Yap demonstrates a shift toward leveraging OS-level AI capabilities rather than bundling heavy models. It's a lightweight, privacy-respecting alternative to cloud-based dictation or local models like Whisper. For macOS developers, it's a reference implementation for Apple's new Speech APIs.
Editor's Take
I've tried multiple dictation tools on my Intel MacBook Pro, and most were unusably slow or required constant internet. Yap's approach—using Apple's built-in models—is refreshing. It's fast, accurate, and doesn't drain my battery. I'm skeptical about the clipboard-based insertion hack, but it works. If you're on macOS 26, give it a try. The 4MB footprint alone is worth it.


