- 1
Drag it to Applications
Open the DMG and drop SayCtrl into Applications.
- 2
Open it once past Gatekeeper
The app isn’t notarised, so macOS warns that it can’t verify it. Press Done, then System Settings → Privacy & Security → Open Anyway. First launch only.
Or, if you’d rather do it from a terminal:
xattr -dr com.apple.quarantine /Applications/SayCtrl.app - 3
Choose where the words are recognised
Pick Local in Settings › Transcription and download a model: free, offline, on-device. Or paste an OpenRouter, OpenAI or ElevenLabs key and pay cents an hour, at cost. The key stays on your Mac.
- 4
Give it the fn key
Set System Settings → Keyboard → “Press 🌐 key to” to Do Nothing, so holding fn belongs to SayCtrl. Then grant Accessibility, Input Monitoring and Microphone when it asks.
Coming from Kotha or Open-Wispr?
Same app, new name. Your key, dictionary, phrases, history and models move across on first launch. The bundle id changed, so re-grant the three permissions, then drag the old app to the Trash or it keeps answering the same fn key.