Privacy, local data and exports in Soufflé
Speech recognition runs locally and your archive lives in a folder you control. This guide lists network connections, explains exports and deletion, and shows how MCP clients or the command line can use your transcripts.
Updated
Start here
- Leave Ollama on localhost if you want summary and dictation-polish requests to remain on this Mac. A remote server you choose receives the text sent for those tasks.
- Use Settings → System → Data to reveal or export your archive. Back up the data folder before moving or deleting it.
- Choose a meeting export for a single transcript, or use the archive export for everything. Connect an MCP client only when you want it to have access to your local transcripts.
What touches the network
The privacy claim is worth checking rather than believing, so here is every outbound connection the app makes.
Audio stays on your Mac. Transcripts, notes and summaries are stored in a local SQLite database: Settings → System → Data exports them. Text processing is also local with the default settings. If you configure a remote Ollama instance, that server receives the text used for summaries or dictation polish.
Where your data lives
Everything sits in one folder, ~/Library/Application Support/com.souffle.desktop/. Settings → System → Data has a button that reveals it in Finder.
souffle.dbSQLite: meetings, transcripts, notes, summaries, dictation history, the custom dictionary and your settings.models/Downloaded speech models, filed by engine and backend. Deleting one frees the disk; it is downloaded again if you select that model later.recordings/Meeting audio as Ogg/Opus, one folder per meeting. Empty unless you turned recording on.logs/Rotating application logs. This is what to attach when you report a problem.Backing that folder up backs up everything. Deleting it returns the app to a first launch.
Export
Any meeting exports as Markdown, JSON, or SRT/VTT subtitles, with its recorded audio alongside if you kept any. The whole archive exports as a plain folder of Markdown and JSON. No proprietary container, nothing to migrate out of later.
MCP server
The bundled souffle-mcp sidecar lets Claude Desktop, Claude Code or any MCP client search and read your transcripts. It is read-only, fully local, and works even when the app is closed.
For Claude Code:
claude mcp add souffle "/Applications/Soufflé.app/Contents/MacOS/souffle-mcp"
For Claude Desktop, in claude_desktop_config.json:
{
"mcpServers": {
"souffle": {
"command": "/Applications/Soufflé.app/Contents/MacOS/souffle-mcp"
}
}
}
Five tools are exposed: list_meetings, get_meeting, search_meetings, get_latest_meeting and list_dictations. Settings → System → Data carries the same snippets with the path already filled in, plus a button that tests the connection.
Soufflé's MCP server is local and read-only. A client you connect can then use the transcripts with its own AI provider; that client's privacy settings apply to that use.
Headless CLI
The souffle binary transcribes a file without launching the app. It ships inside the app bundle and is not added to your PATH, so 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
# Transcribe a file, JSON on stdout
souffle --transcribe-file audio.wav --json
--transcribe-file <WAV>Transcribe a WAV file and exit.--jsonEmit one machine-readable JSON object instead of text.--repeat NRun the same file N times. The model loads once, so this doubles as a benchmark harness for comparing models on your machine.--list-enginesList the available engines.--list-modelsList every engine, model and backend combination with its install status.--engine, --model, --backendOverride what is saved in Settings for this run.It reads the same database and the same downloaded models as the app, so anything already installed is reused.