Tout ce que Soufflé fait, et ce qu'il lui faut pour le faire.
Ce que Soufflé fait, ce qu'il lui faut, et où il range les choses. Rien ici ne demande de compte, de clé d'API, ni de connexion réseau au-delà du premier téléchargement de modèle.
Installation
Avec Homebrew :
brew install --cask damione1/tap/souffleOu téléchargez le .dmg depuis la dernière version et glissez Soufflé dans Applications. Chaque build est signé et notarisé : l'app s'ouvre normalement, sans clic droit et sans avertissement Gatekeeper.
Au premier lancement, l'assistant télécharge un modèle de transcription, entre 670 Mo et 5,6 Go selon celui que vous choisissez. Ce téléchargement est le seul moment où Soufflé a besoin du réseau pour transcrire.
Prérequis
Permissions
Soufflé demande chacune de ces permissions au moment où vous utilisez la fonction qui en a besoin, jamais à l'avance. Paramètres → Système → Permissions montre l'état de chacune et renvoie directement au bon panneau des Réglages système.
Refuser une permission ne désactive que la fonction concernée. Sans Audio système, une réunion enregistre quand même votre micro et la transcription est marquée Micro seul. Sans Accessibilité, le texte dicté est copié dans le presse-papiers au lieu d'être inséré à votre place.
Premier lancement
Un assistant couvre quatre choses : les permissions dont Soufflé a besoin, le micro à utiliser, le modèle de transcription à télécharger, et le raccourci de dictée. Le raccourci par défaut est ⌘⇧Espace.
La dernière étape propose aussi le collage automatique, actif par défaut : quand vous arrêtez de dicter, le texte part directement dans l'app où vous étiez. Désactivez-le et le texte atterrit dans le presse-papiers. Tout cela se change plus tard dans les Paramètres.
Dictée
Appuyez sur le raccourci n'importe où, parlez, appuyez à nouveau. Le texte est inséré dans l'app qui avait le focus, ou copié dans le presse-papiers si vous avez désactivé le collage automatique.
Les apps qui refusent un collage synthétique (terminaux, champs sécurisés) peuvent recevoir des frappes simulées à la place. Paramètres → Interface propose trois méthodes de collage : le presse-papiers avec ⌘V, la frappe simulée, ou une écriture directe dans le champ focalisé via l'Accessibilité.
Deux passages optionnels tournent à la sortie. Le polish de la dictée fait passer la transcription brute dans un LLM local, avec un modèle de prompt que vous pouvez modifier (nettoyage, courriel professionnel, liste à puces, retrait des hésitations) ; il demande Apple Intelligence ou Ollama. L'apprentissage des corrections, actif par défaut, surveille le champ juste après l'insertion : corrigez un nom mal entendu une fois à la main, et Soufflé garde cette orthographe pour la suite, dans le dictionnaire personnalisé sous Paramètres → Transcription.
Des sons de départ et d'arrêt, optionnels, confirment que le raccourci a été capté.
Raccourcis
Les deux raccourcis de dictée se règlent dans Paramètres → Interface. Chacun doit contenir une touche de modification, et les deux ne peuvent pas partager la même combinaison.
La pastille
La dictée n'ouvre pas de fenêtre. Une petite pastille apparaît au-dessus de ce que vous êtes en train de faire : un point d'enregistrement, le libellé, une forme d'onde en direct et un bouton d'arrêt. Elle reste compacte tant qu'il n'y a rien à afficher, puis s'élargit et grandit ligne par ligne pendant que vous parlez.
À l'arrêt, la pastille passe en Reformulation… le temps du passage de polish local, puis disparaît au moment où le texte atterrit dans le champ que vous utilisiez déjà. Sa fenêtre est exclue de la capture d'écran : elle n'apparaît pas dans la réunion où vous êtes.
Réunions
Une réunion enregistre votre micro et, sur macOS 14.4+, l'audio système : la transcription en direct sépare donc Moi de Eux au fil de l'eau.
Le cycle de vie est pensé pour ne rien demander : l'app propose de démarrer quand une réunion du calendrier commence, détecte que la réunion semble terminée et s'arrête d'elle-même après vous avoir prévenu, et récupère ou sauve la session si le moteur cale ou si le micro disparaît. Quand le Mac se met en veille, l'enregistrement est fermé proprement, et Soufflé propose de le reprendre au réveil.
Une réunion s'arrête seule après 10 minutes sans parole, avec un garde-fou à 4 heures derrière. Les deux se règlent dans Paramètres → Audio, avec le micro que Soufflé doit privilégier.
L'enregistrement audio est inactif par défaut. Activez-le dans Paramètres → Système → Données et le son de la réunion est conservé en fichiers Opus compacts, pendant 7 jours, 30 jours ou jusqu'à ce que vous les effaciez, rejouables en cliquant n'importe quelle ligne de la transcription.
Résumés
Les résumés sont générés en local : par Apple Intelligence sur macOS 26 ou plus récent, sans rien à installer, et sinon par un Ollama local. À côté du résumé rédigé, Soufflé extrait les décisions, les tâches avec leur responsable, et les questions restées ouvertes.
Installer Ollama tient en deux commandes :
brew install ollama
ollama pull qwen2.5:7bEnsuite, dans Paramètres → Réunions → Résumés, laissez le serveur sur http://localhost:11434 et choisissez le modèle. N'importe quel modèle de conversation généraliste fait l'affaire ; qwen2.5:7b est celui que Soufflé recommande. C'est le même fournisseur qui sert au polish de la dictée.
Rien de ce qui touche à un résumé ne sort de la machine. Avec Ollama, la seule requête part vers votre propre instance.
Modèles de transcription
Tous les modèles tournent en local et sont téléchargés depuis HuggingFace à la première utilisation. Vous pouvez en changer à tout moment dans Paramètres → Transcription.
Les deux Kyutai sont les modèles en flux continu : le texte apparaît pendant que vous parlez encore. Whisper et Parakeet transcrivent tout l'enregistrement une fois que vous avez arrêté, ce qui convient à une réunion qu'on lit après coup mais change la sensation en dictée.
Un modèle chargé est déchargé après une heure d'inactivité pour rendre la RAM, puis rechargé au prochain enregistrement. Ce délai se change, ou se désactive, dans Paramètres → Audio.
Les paramètres
Cinq onglets. Les réglages qui méritent d'être connus :
InterfacePresse-papiers et ⌘V, frappe simulée, ou écriture directe via l'Accessibilité. À changer quand une app refuse le collage.
InterfaceActif : le texte part dans l'app que vous utilisiez. Inactif : il est copié dans le presse-papiers.
InterfaceSignaux sonores de départ et d'arrêt, avec un volume.
TranscriptionLe passage LLM local et ses modèles de prompt, modifiables. Demande Apple Intelligence ou Ollama.
TranscriptionNoms propres et termes techniques à orthographier correctement, saisis à la main ou appris de vos corrections.
AudioUne liste ordonnée d'entrées préférées, un choix distinct pour le mode écran rabattu, et une option qui écarte les casques Bluetooth du rôle de micro pour qu'ils restent en stéréo.
AudioArrêt après 5, 10, 15 ou 30 minutes sans parole, avec un garde-fou de durée maximale derrière.
AudioLibère la RAM du modèle après 5, 15 ou 60 minutes d'inactivité, ou jamais.
RéunionsInactif tant que vous ne l'activez pas. Liste les événements du jour et propose de démarrer quand l'un commence.
RéunionsFournisseur, serveur et modèle Ollama, et les modèles de résumé.
SystèmeInactif, conservé 7 jours, 30 jours, ou jusqu'à suppression.
SystèmeDemande une fois par jour à GitHub s'il existe une version plus récente. Se désactive dans À propos.
Ce qui sort sur le réseau
L'argument de la confidentialité mérite d'être vérifié plutôt que cru : voici donc chaque connexion sortante que fait l'app.
Vos enregistrements, transcriptions, notes et résumés ne sont jamais envoyés nulle part. Ils vivent dans une base SQLite locale, et Paramètres → Système → Données exporte ou efface l'ensemble.
Où vivent vos données
Tout tient dans un seul dossier, ~/Library/Application Support/com.souffle.desktop/. Paramètres → Système → Données propose un bouton qui l'ouvre dans le Finder.
souffle.dbSQLite : réunions, transcriptions, notes, résumés, historique de dictée, dictionnaire personnalisé et vos réglages.models/Les modèles de transcription téléchargés, classés par moteur et par backend. En supprimer un libère le disque ; il sera retéléchargé si vous resélectionnez ce modèle.recordings/L'audio des réunions en Ogg/Opus, un dossier par réunion. Vide tant que vous n'avez pas activé l'enregistrement.logs/Les journaux de l'application, avec rotation. C'est ce qu'il faut joindre quand vous signalez un problème.Sauvegarder ce dossier sauvegarde tout. Le supprimer ramène l'app à son premier lancement.
Export
Chaque réunion s'exporte en Markdown, en JSON, ou en sous-titres SRT/VTT, avec son audio enregistré à côté si vous en avez conservé. L'archive complète s'exporte en un dossier ordinaire de fichiers Markdown et JSON. Aucun conteneur propriétaire, rien dont il faudra migrer plus tard.
Serveur MCP
Le sidecar souffle-mcp, fourni avec l'app, permet à Claude Desktop, Claude Code ou n'importe quel client MCP de chercher et lire vos transcriptions. En lecture seule, entièrement local, et fonctionne même quand l'app est fermée.
Pour Claude Code :
claude mcp add souffle "/Applications/Soufflé.app/Contents/MacOS/souffle-mcp"Pour Claude Desktop, dans claude_desktop_config.json :
{
"mcpServers": {
"souffle": {
"command": "/Applications/Soufflé.app/Contents/MacOS/souffle-mcp"
}
}
}Cinq outils sont exposés : list_meetings, get_meeting, search_meetings, latest_meeting et list_dictations. Paramètres → Système → Données reprend les mêmes extraits avec le chemin déjà rempli, et un bouton qui teste la connexion.
Ligne de commande
Le binaire souffle transcrit un fichier sans lancer l'app. Il est livré à l'intérieur du bundle et n'est pas ajouté à votre PATH : appelez-le par son chemin complet, ou faites-en un lien symbolique une bonne fois.
# Appel direct
"/Applications/Soufflé.app/Contents/MacOS/souffle" --list-engines
# Ou en faire une commande `souffle`
ln -s "/Applications/Soufflé.app/Contents/MacOS/souffle" /usr/local/bin/souffle
# Transcrire un fichier, JSON sur stdout
souffle --transcribe-file audio.wav --json
--transcribe-file <WAV>Transcrit un fichier WAV puis quitte.--jsonSort un seul objet JSON exploitable par une machine, au lieu du texte.--repeat NRejoue le même fichier N fois. Le modèle n'est chargé qu'une fois : ça sert donc aussi de banc d'essai pour comparer les modèles sur votre machine.--list-enginesListe les moteurs disponibles.--list-modelsListe chaque combinaison moteur / modèle / backend et son état d'installation.--engine, --model, --backendRemplacent, le temps de l'appel, ce qui est enregistré dans les Paramètres.La commande lit la même base et les mêmes modèles téléchargés que l'app : ce qui est déjà installé est réutilisé.
Dépannage
Le symptôme d'abord, la cause habituelle ensuite.
models/ force un téléchargement propre.logs/ contient les journaux récents, qui sont ce dont un ticket a besoin.Désinstallation
Installé avec Homebrew :
brew uninstall --cask souffleSinon, sortez Soufflé du dossier Applications.
Dans les deux cas vos données restent. Pour les retirer aussi, supprimez ~/Library/Application Support/com.souffle.desktop/ — ou, avant de désinstaller, passez par Paramètres → Système → Données, qui efface réunions, dictées et audio enregistré d'un coup.
Pour récupérer du disque sans désinstaller, supprimez depuis Paramètres → Transcription les modèles dont vous ne vous servez plus.
Compiler depuis les sources
Demande un Mac Apple Silicon, Rust, Node.js 18+ et cmake (brew install cmake).
git clone https://github.com/damione1/souffle.git
cd souffle
npm install
npm run tauri dev
Signaler un problème
Si quelque chose ne fonctionne pas comme cette documentation le décrit, ouvrez un ticket. Indiquez votre version de macOS, votre modèle de Mac, les périphériques audio impliqués, et joignez un journal du dossier logs/.
Licence
Copyright © 2026 Damien Goehrig. Publié sous licence GNU General Public License v3.0 ou ultérieure. Vous êtes libre de l'utiliser, de l'étudier, de le modifier et de le redistribuer, à condition que les travaux dérivés soient publiés sous la même licence.