01Capture
Press Control twice from any application, hold Space in the window, or tap the menu-bar icon. The overlay appears over whatever you were using. Esc cancels and writes nothing.
AudioContext created at 16 kHz — whisper's native rate, so ffmpeg is never involved.
02Condition
DC offset removed, outside silence trimmed, conservative gain applied. Quiet, clipped or mostly-silent input is reported as a signal problem instead of looking like a model failure.
Resampling uses OfflineAudioContext with a low-pass area fallback — no aliased noise in the speech band.
03Encode
The clip becomes Int16 PCM with a WAV header, off the main thread, and crosses to Rust as a raw binary IPC body — no base64, no JSON array of a million numbers.
The temporary WAV is deleted after every request.
04Decode
A Rust worker runs whisper.cpp against the model on your disk. Your personal dictionary and the active project pack go in as the initial prompt, so unusual spellings become likely instead of impossible.
base.en 141 MB · small 466 MB · large-v3-turbo 1.6 GB — downloaded in-app, switched per profile.
05Correct
Recurring deterministic mistakes are rewritten by rules you taught this speaker. Every rule records its uses, its source project and its measured effect on error rate — and overly broad rules get flagged.
Never described as accent training. It cannot change Whisper's acoustic model, and it doesn't claim to.
06Deliver
The transcript is copied, or pasted at the caret in the app you came from once focus is restored. In Command mode it becomes a parsed intent with a preview — never a silent execution.
Auto-paste needs macOS Accessibility, which the app asks for rather than assuming.