Sumi — Free, open-source voice dictation for macOS. Local-first Whisper + LLM polish, with built-in free cloud APIs.
Sumi
System-wide speech-to-text for macOS. Free and open source.
Press a hotkey anywhere. Speak. The text pastes at your cursor — rewritten by an AI that knows which app you're in.
![]() |
![]() |
![]() |
| Gmail — formats as a proper email | Notion — clean structured prose | Telegram — casual, conversational |
brew tap alan890104/sumi && brew install --cask sumi
Why Sumi?
🎯 Per-App AI PolishEvery app gets a different LLM prompt. Slack sounds like Slack. Gmail sounds like email. Terminal gets clean commands. 18 built-in rules — write your own, or describe what you want and the AI generates the rule. |
🔒 Fully LocalRun everything on-device: Whisper or Qwen3-ASR for speech recognition, local LLM for rewriting. Audio never leaves your Mac. You can verify it — the code is here. |
🗣 Speaker DiarizationMeeting mode transcribes continuously in the background. Transcripts are labelled by speaker with timestamps. Import existing audio files for retroactive transcription. |
✏️ Edit by VoiceSelect any text, pressOption+E, say what you want done. "Make this more formal." "Translate to Japanese." "Shorten it." The AI rewrites and pastes back.
|
☁️ Cloud or Local — Your ChoiceBYOK for everything: Groq, OpenAI, Deepgram, Azure, Gemini, OpenRouter, or any OpenAI-compatible endpoint. No Sumi account. No subscription. |
🌏 58 UI LanguagesThe interface ships in 58 locales. Traditional Chinese users get automatic zh-CN → zh-TW normalization on transcription output. |
Same sentence, three apps
You say: "um I think the project is kind of behind schedule and we should probably have a meeting to figure out what to do next"
| LINE (casual) | I think the project is behind schedule, we should have a meeting to figure out what to do next |
| Slack (professional) | I think the project is behind schedule. We should have a meeting to discuss next steps. |
| Gmail (email) | Hi, I believe the project is currently behind schedule. Could we schedule a meeting to discuss the next steps? Best regards |
How it works
- App lives in the menu bar — nothing else on screen.
- Click into any text field, anywhere on your Mac.
- Press
Option+V. A floating capsule appears with the waveform. - Speak.
- Press
Option+Vagain. Text pastes.
Option+E → say what to do with it.
Meeting Mode: press Option+M to toggle continuous background transcription into a note file.
What it runs on
Speech recognition — Local: Whisper (Metal GPU, 7 model sizes from 148 MB to 1.6 GB) or Qwen3-ASR. Cloud: Groq, OpenAI, Deepgram, Azure, any custom endpoint.
LLM rewriting — Local: Qwen3-8B, Qwen2.5-7B, Llama 3 Taiwan 8B via candle (Metal/CUDA). Cloud: OpenAI, Groq, Gemini, GitHub Models, OpenRouter, SambaNova, any OpenAI-compatible endpoint.
Resource usage — Idle: ~130 MB, 0% CPU. Local transcription: ~730 MB RSS, <20% CPU (Metal). Cloud mode: ~7 MB during recording, back to 0% when done.
Other details — Silero VAD for silence filtering · custom pronunciation dictionary · transcription history with audio export · customizable hotkeys
Comparison
[!NOTE]
This reflects our best understanding at the time of writing. Competitors update frequently — corrections welcome via issues or PRs.
| | Sumi | Built-in Dictation | Typeless | Wispr Flow | VoiceInk | SuperWhisper | |---|---|---|---|---|---|---| | Price | Free | Free | 4K words/wk free, $12-30/mo | 2K words/wk free, $12-15/mo | $25-49 (one-time) | Free trial, ~$8/mo | | Open Source | ✅ GPLv3 | ❌ | ❌ | ❌ | ✅ GPLv3 | ❌ | | Local STT | ✅ | ✅ Apple Silicon | ❌ Cloud only | ❌ Cloud only | ✅ | ✅ | | Cloud STT | ✅ BYOK | ❌ | ✅ | ✅ | ✅ Optional | ✅ | | AI Polish | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | | Local LLM Polish | ✅ 3 models | ❌ | ❌ | ❌ | ❌ | ✅ | | Per-App Rules | ✅ 18 presets + custom | ❌ | ❌ | ✅ Styles | ✅ Power Modes | ✅ Custom modes | | Context-Aware | ✅ App + URL | ❌ | ✅ App | ✅ App | ✅ App | ✅ Super Mode | | Edit by Voice | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | | Dictionary | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | | History | ✅ + audio export | ❌ | ✅ | ✅ | ✅ | ✅ | | Meeting notes | ✅ + speaker labels | ❌ | — | ❌ | — | ✅ | | Platforms | macOS | macOS, iOS | macOS, Win, iOS, Android | macOS, Win, iOS, Android | macOS | macOS, Win, iOS |
Installation
Homebrew (recommended)
brew tap alan890104/sumi
brew install --cask sumi
Download DMG
- Download the latest DMG from GitHub Releases.
- Open the DMG, drag Sumi into
/Applications. - The app isn't notarized yet, so macOS will block it. Run this first:
xattr -cr /Applications/Sumi.app
- On first launch: grant Microphone access and enable Accessibility under System Settings → Privacy & Security → Accessibility (required for auto-paste).
Build from source
Requires Rust and cargo install tauri-cli --version "^2".
git clone https://github.com/alan890104/sumi.git
cd sumi
cargo tauri dev # dev mode
cargo tauri build # production .dmg
Windows (CUDA)
Metal is macOS-only. On Windows:
# CPU only
cargo tauri dev --no-default-features
NVIDIA CUDA (requires CUDA Toolkit, LLVM, Ninja, CMake)
bash dev-cuda.sh
bash dev-cuda.sh --release


