Hold-to-talk dictation for macOS. On-device Whisper-class speech recognition, floating level pill, ~0.2s release-to-text.
Shell
0
4 commits
updated Oct 3, 2026
Hold-to-talk dictation for macOS. Hold Right Option, speak, release — your words land wherever the cursor is. Fully on-device, no account, no cloud.

syrinx-transcribe turns any audio file into JSON textcurl -fsSL https://raw.githubusercontent.com/rodriveiga01/syrinx/main/install.sh | bash
Or clone and run ./install.sh. It installs the engine (cactus-needle via pipx), downloads the model, and starts the dictation daemon at login.
Two manual steps (macOS requires your clicks):
open -R … command — run it and drag the revealed file into System Settings → Privacy & Security → Accessibility (toggle on).Click any text field, hold Right Option, speak, release. That's it.
syrinx --key right-cmd switches the hotkey (also right-ctrl).syrinx-transcribe clip.wav [--words] transcribes files to JSON.tail -f ~/.cache/syrinx/syrinx.loglaunchctl bootout gui/$(id -u)/com.syrinx.dictate./uninstall.shsyrinx is a background daemon: a global hotkey listener records 16 kHz mic audio while the key is held, the preloaded Whistle model transcribes it in-process, and the text is pasted via clipboard + a synthetic Cmd+V. The pill overlay is a borderless floating panel with live RMS bars. Everything runs locally — the only network use is the one-time model download.
brew upgrade replaces Python, re-grant it once.Speech model (Whistle) and engine (cactus-needle) are by Cactus Compute under Apache-2.0. Syrinx ships no Cactus code or weights — the installer downloads them from upstream. UI inspiration: Wispr Flow's floating bar. Syrinx itself is MIT.
MIT — see LICENSE.
Shell
100.0%
Hold-to-talk dictation for macOS. On-device Whisper-class speech recognition, floating level pill, ~0.2s release-to-text.
Shell
0
4 commits
updated Oct 3, 2026
Hold-to-talk dictation for macOS. Hold Right Option, speak, release — your words land wherever the cursor is. Fully on-device, no account, no cloud.

syrinx-transcribe turns any audio file into JSON textcurl -fsSL https://raw.githubusercontent.com/rodriveiga01/syrinx/main/install.sh | bash
Or clone and run ./install.sh. It installs the engine (cactus-needle via pipx), downloads the model, and starts the dictation daemon at login.
Two manual steps (macOS requires your clicks):
open -R … command — run it and drag the revealed file into System Settings → Privacy & Security → Accessibility (toggle on).Click any text field, hold Right Option, speak, release. That's it.
syrinx --key right-cmd switches the hotkey (also right-ctrl).syrinx-transcribe clip.wav [--words] transcribes files to JSON.tail -f ~/.cache/syrinx/syrinx.loglaunchctl bootout gui/$(id -u)/com.syrinx.dictate./uninstall.shsyrinx is a background daemon: a global hotkey listener records 16 kHz mic audio while the key is held, the preloaded Whistle model transcribes it in-process, and the text is pasted via clipboard + a synthetic Cmd+V. The pill overlay is a borderless floating panel with live RMS bars. Everything runs locally — the only network use is the one-time model download.
brew upgrade replaces Python, re-grant it once.Speech model (Whistle) and engine (cactus-needle) are by Cactus Compute under Apache-2.0. Syrinx ships no Cactus code or weights — the installer downloads them from upstream. UI inspiration: Wispr Flow's floating bar. Syrinx itself is MIT.
MIT — see LICENSE.
Shell
100.0%