Tout ce que fait Soufflé, et ce qu'il lui faut.
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
L'assistant de démarrage a une étape Permissions facultative ; passez-la et Soufflé demande chacune de ces permissions au moment où vous utilisez la fonction qui en a besoin. Les notifications font exception : elles sont demandées au lancement de l'app. 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 et un raccourci à une seule touche ne peut pas installer son tap ; les raccourcis classiques avec modificateur fonctionnent encore.
Premier lancement
Un assistant couvre 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.
L'étape du raccourci propose aussi le collage automatique, inactif tant que vous ne le cochez pas : une fois actif, quand vous arrêtez de dicter, le texte part directement dans l'app où vous étiez. Laissé inactif, le texte atterrit dans le presse-papiers. Une installation neuve termine avec Lancer à l'ouverture de session activé ; changez-le plus tard dans Paramètres → Système. 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 tant que le collage automatique est inactif. Appuyez sur Échap pendant une dictée en bascule pour la jeter. Si un collage échoue, le texte attend sur l'accueil sous Dictée à récupérer jusqu'à ce que vous le copiiez ou le supprimiez.
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 tournent à la sortie, et chacun se désactive. Le polish de la dictée, actif par défaut quand un fournisseur est disponible, 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.
Les extraits vocaux vivent sous Paramètres → Transcription : dites une phrase déclencheur en début de dictée et Soufflé colle l'expansion à la place, sans tenir compte de la casse ni des accents, et sans polish IA sur cette prise. Le menu de la barre des menus propose aussi Copier la dernière transcription quand vous en avez besoin, et Pause raccourci (1 h) quand la touche doit servir à autre chose.
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 accepte une combinaison classique avec modificateur, ou une seule touche (un modificateur seul, gauche ou droit, ou F5–F12), qui demande la permission Accessibilité pour que le tap natif s'installe. 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à. Par défaut, sa fenêtre est exclue de la capture d'écran : elle n'apparaît pas dans la réunion où vous êtes ; Masquer l'overlay dans les captures d'écran, dans Paramètres → Interface, change ce comportement.
Vous pouvez masquer la pastille dans Paramètres → Interface ; faites-la glisser quand elle est visible pour la déplacer. La position est mémorisée d'un écran à l'autre.
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. La séparation Moi/Eux demande un modèle Kyutai ; Whisper et Parakeet transcrivent la réunion en un seul flux.
Le cycle de vie est pensé pour ne rien demander : l'app vous notifie au début d'une réunion du calendrier, et les événements du jour ont un bouton Démarrer sur l'accueil. Elle 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 arrêtée peut aussi être reprise à la main avec Reprendre l'enregistrement, qui ajoute une session à la même réunion. Si un micro ne répond plus, un bandeau le signale et propose Redémarrer Soufflé.
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. Avec l'audio système, le fichier est en stéréo, vous à gauche et les autres à droite, pour environ 1,5 fois le disque d'un fichier mono.
Depuis la page d'une réunion, vous pouvez copier le résumé ou la transcription, exporter la réunion, ou la supprimer. Les modèles de résumé se modifient dans Paramètres → IA.
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 → IA, 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 → Transcription.
Les paramètres
Six 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, par défaut : il est copié dans le presse-papiers.
InterfaceTemps d'attente avant le collage. Augmentez-le si le texte arrive dans la mauvaise app.
InterfaceL'interface en français ou en anglais, et une apparence claire, sombre ou système.
InterfaceSignaux sonores de départ et d'arrêt, avec un volume.
InterfaceCache le HUD flottant pendant la dictée ou une réunion. Faites-le glisser quand il est visible pour le déplacer ; la position est mémorisée. Un second interrupteur, actif par défaut, l'exclut des captures d'écran.
IALe passage LLM local et ses modèles de prompt, modifiables. Actif par défaut quand Apple Intelligence ou Ollama est disponible.
TranscriptionNoms propres et termes techniques à orthographier correctement, saisis à la main ou appris de vos corrections.
TranscriptionPhrases déclencheurs qui se développent en un bloc de texte préparé en début de dictée. Une correspondance saute le polish.
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.
AudioUn indice pour la détection de langue en réunion, jamais imposé au moteur.
TranscriptionLibè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 des calendriers que vous gardez cochés, vous rappelle un événement quelques minutes avant (2 par défaut), et vous notifie quand l'un commence pendant qu'un appel utilise le micro.
IAFournisseur, serveur et modèle Ollama, et les modèles de résumé.
SystèmeOuvre Soufflé automatiquement au démarrage du Mac. Actif par défaut après l'assistant d'une installation neuve.
SystèmeInactif, conservé 7 jours, 30 jours, ou jusqu'à suppression.
SystèmeSupprime du disque le modèle de transcription sélectionné, une fois téléchargé et déchargé.
SystèmeDemande une fois par jour à GitHub s'il existe une version plus récente. Se désactive dans À propos. Une mise à jour n'est téléchargée que si vous appuyez sur Télécharger la mise à jour, et s'installe avec Installer et redémarrer, qui vous demande d'abord d'arrêter une réunion en cours.
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 : Paramètres → Système → Données exporte l'ensemble, et supprimer le dossier de données l'efface.
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, get_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, quittez Soufflé et supprimez ~/Library/Application Support/com.souffle.desktop/ : réunions, dictées, audio enregistré et modèles y sont tous.
Pour récupérer du disque sans désinstaller, sélectionnez un modèle dont vous ne vous servez plus et supprimez-le sous Paramètres → Système → Stockage du modèle. Il doit être téléchargé et déchargé.
Compiler depuis les sources
L'app est écrite en Rust avec une interface native Slint, et un peu de Swift pour la pastille. La compiler demande un Mac Apple Silicon, Rust, les outils en ligne de commande Xcode et cmake (brew install cmake).
git clone https://github.com/damione1/souffle.git
cd souffle
make nightlymake nightly compile et ouvre Soufflé Nightly, une build de débogage avec sa propre identité, qui cohabite avec un Soufflé installé. ./scripts/bundle-macos.sh produit un bundle de version signé.
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.