Private speech-to-text for macOS that never leaves your Mac.
Dictate into any app, transcribe meetings with speaker separation, and get on-device summaries
with decisions and action items. No cloud, no accounts, no API keys.
Everything runs on-device:
- 🔒 Fully private. Transcription, summaries, and audio all stay on your Mac. Nothing is uploaded, and it works offline.
- 🎙️ Dictation and meetings. Talk into any app with a global shortcut and auto-paste, or capture a meeting with a live transcript that tells you apart from everyone else.
- 🧠 Understand and own. On-device summaries with decisions and action items, full-text search, and export to Markdown, JSON, or subtitles.
- Dictation, with auto-paste into whatever app you were using and a global shortcut to start it from anywhere. Apps that reject synthetic paste (terminals, secure fields) can receive simulated keystrokes instead. Optional start/stop sounds confirm the shortcut landed.
- Meeting transcription, with a live transcript and system-audio capture that separates Me from Them. Optional audio recording keeps the meeting sound as compact Opus files with a retention policy, replayable with click-to-seek from the transcript.
- Hands-off recording lifecycle: the app offers to start when a calendar meeting begins, detects when the meeting seems over and stops on its own after warning you, survives lid-close and system sleep by pausing and resuming, and recovers or salvages the session if the engine stalls or the microphone disappears.
| Dictate into any app | Your timeline, grouped by day |
|---|---|
![]() |
![]() |
- Meeting summaries, generated on-device by Ollama or Apple Intelligence (no setup when Apple Intelligence is available).
- Structured outcomes: decisions, action items with owners, and open questions extracted alongside the summary.
- Dictation polish (optional): a local LLM pass cleans up dictated text with editable prompt templates before pasting.
- Full-text search across every transcript and dictation entry.
| Transcript, notes, and participants | On-device summary and outcomes |
|---|---|
![]() |
![]() |
-
Export any meeting as Markdown, JSON, or SRT/VTT subtitles, or the whole archive as a plain folder of Markdown and JSON.
-
MCP server: the bundled
souffle-mcpsidecar lets Claude Desktop, Claude Code or any MCP client search and read your transcripts. Read-only, fully local, works even when the app is closed. Setup snippets live in Settings > Data. -
Headless CLI:
souffle --transcribe-file audio.wav --jsontranscribes a file without launching the app, and--repeat Ndoubles as a benchmark harness.The
soufflebinary ships inside the app bundle and is not added to yourPATH, so it is not a global command. Invoke it by full path, or symlink it once:# Run directly "/Applications/Soufflé.app/Contents/MacOS/souffle" --list-engines # Or expose it as a `souffle` command ln -s "/Applications/Soufflé.app/Contents/MacOS/souffle" /usr/local/bin/souffle
All models run locally and are downloaded on first use from HuggingFace:
- Kyutai STT 1B (default): French + English streaming transcription, ~2.4 GB, Metal GPU via Candle
- Kyutai STT 2.6B: English, higher quality, ~5.6 GB
- Whisper Large V3 Turbo: multilingual, ~1.6 GB, Metal via whisper.cpp
- Parakeet TDT 0.6B v3: 25 languages with punctuation and capitalization, ~670 MB int8, fast CPU inference via ONNX Runtime
Install with Homebrew:
brew install --cask damione1/tap/souffleOr grab a prebuilt installer from the Releases page: a .dmg for Apple Silicon Macs, requiring macOS 13 or newer.
Requires an Apple Silicon Mac, Rust, Node.js 18+, and cmake (brew install cmake).
npm install
npm run tauri devCopyright (c) 2026 Damien Goehrig.
Released under the GNU General Public License v3.0 or later (GPL-3.0-or-later). You are free to use, study, modify, and redistribute this software, provided that derivative works are also published under the same license. See LICENSE.md for the full text.




