Repository navigation
Kaho 2.1.0
Escape cancels a dictation. Press it while recording and the audio is dropped without being transcribed. Press it while Kaho is transcribing or rewriting and the result is computed, then discarded — MLX inference is one blocking call that can't be interrupted, so what cancelling buys you is that the text never lands in your document.
⌘C, ⌘V, ⌘X and ⌘A work now. macOS routes those through the menu bar, and Kaho never installed an Edit menu — so none of them did anything. Copying a transcript out of History needed a right-click, and the dictionary editor couldn't be pasted into at all.
A stuck microphone says so, and can be fixed. macOS's audio stack can wedge mid-recording: PortAudio's stop blocks forever inside CoreAudio. Kaho already refused to record in that state, but only said so in the log, so the symptom was dictation quietly doing nothing. The recording pill now reports it, and a new Restart Kaho menu item quits and reopens the app — the only cure, since that thread can't be interrupted.
Pin your language. Left to detect, Whisper guesses per 30-second window, and on a short or noisy clip it guesses wrong — an English sentence comes back transliterated into another script. Menu bar and Settings both offer a language; detection stays the default.
Also: the app bundle now carries its own notarization ticket, so a first launch works offline instead of waiting on a check with Apple. And tools/benchmark.py measures each stage of a dictation against fixed clips, so "it feels slower" can be checked against numbers.
Install
Download the DMG below and drag Kaho to Applications, or:
brew install --cask utsavanand/kaho/kaho
Apple Silicon, macOS 14+. Everything runs on-device.