Swabble
Swabble listens on your Mac, waits for a wake word, transcribes with Apple Speech.framework, and hands the cleaned transcript to your shell command. It is built for local automations where sending microphone audio to a cloud service would be the wrong default.
#What it does
- Runs on macOS 26 with Swift 6.2 and Apple's on-device speech APIs.
- Uses
clawdby default, withclaudeas an alias. - Runs any configured command after wake-gating, cooldown, and minimum-length checks.
- Persists recent transcripts locally for status and debugging.
- Transcribes audio files to plain text or SRT.
#First run
git clone https://github.com/openclaw/swabble.git
cd swabble
brew install swiftformat swiftlint
swift run swabble setup
swift run swabble serve
#Local by design
Swabble uses Speech.framework's on-device path. There are no Whisper binaries, no network transcription calls, and no hosted control plane. Your hook can do whatever you configure, but the speech pipeline itself stays on the Mac.