Documentation

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/souffle

Ou 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

MacApple Silicon. Il n'existe pas de version Intel.
macOS 13+La dictée, et les réunions enregistrées depuis votre micro.
macOS 14.4+Les réunions qui captent aussi les autres participants. La capture de l'audio système passe par le process tap de Core Audio, qui n'existe pas avant 14.4. Sur macOS 13, une réunion s'enregistre quand même et la transcription est marquée Micro seul.
DisqueDe 670 Mo à 5,6 Go pour le modèle de transcription, téléchargé à la première utilisation.
RésumésApple Intelligence, qui demande macOS 26 ou plus récent, ou un Ollama local sur n'importe quelle version supportée. La transcription n'a besoin ni de l'un ni de l'autre.

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.

MicrophoneEnregistre votre voix pour la transcrire. Nécessaire à tout le reste.
Audio systèmeCapte ce que disent les autres participants, sans pilote audio virtuel. Réunions sur macOS 14.4+.
AccessibilitéInsère le texte dans l'app que vous utilisiez, et relit vos corrections quand « apprendre de mes corrections » est actif.
CalendrierLit les événements du jour pour les lister et proposer de démarrer un enregistrement. Optionnel, et inactif tant que vous ne l'activez pas.

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.

Dictée (bascule)Un appui pour démarrer, un autre pour arrêter. ⌘⇧Espace par défaut.
Maintenir pour parlerMaintenez pour enregistrer, relâchez pour arrêter. Non défini par défaut ; à assigner si vous préférez ce geste.

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:7b

Ensuite, 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.

Kyutai STT 1BPar défaut. Français et anglais, ~2,4 Go, GPU Metal via Candle. Affiche le texte pendant que vous parlez.
Kyutai STT 2.6BAnglais seulement, meilleure qualité, ~5,6 Go. Affiche le texte pendant que vous parlez.
Whisper Large V3 TurboMultilingue, ~1,6 Go, Metal via whisper.cpp. Transcrit une fois que vous avez fini.
Parakeet TDT 0.6B v325 langues avec ponctuation et majuscules, ~670 Mo en int8, inférence CPU rapide via ONNX Runtime. Transcrit une fois que vous avez fini.

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 :

Méthode de collage
Interface
Presse-papiers et ⌘V, frappe simulée, ou écriture directe via l'Accessibilité. À changer quand une app refuse le collage.
Collage automatique
Interface
Actif : le texte part dans l'app que vous utilisiez. Inactif : il est copié dans le presse-papiers.
Sons de retour
Interface
Signaux sonores de départ et d'arrêt, avec un volume.
Polish de la dictée
Transcription
Le passage LLM local et ses modèles de prompt, modifiables. Demande Apple Intelligence ou Ollama.
Dictionnaire personnalisé
Transcription
Noms propres et termes techniques à orthographier correctement, saisis à la main ou appris de vos corrections.
Priorité des micros
Audio
Une 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.
Arrêt automatique des réunions
Audio
Arrêt après 5, 10, 15 ou 30 minutes sans parole, avec un garde-fou de durée maximale derrière.
Déchargement du modèle
Audio
Libère la RAM du modèle après 5, 15 ou 60 minutes d'inactivité, ou jamais.
Calendrier
Réunions
Inactif tant que vous ne l'activez pas. Liste les événements du jour et propose de démarrer quand l'un commence.
Résumés
Réunions
Fournisseur, serveur et modèle Ollama, et les modèles de résumé.
Audio des réunions
Système
Inactif, conservé 7 jours, 30 jours, ou jusqu'à suppression.
Vérification des mises à jour
Système
Demande 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.

huggingface.coTélécharge un modèle de transcription la première fois que vous le sélectionnez. Rien n'est envoyé, et une fois le modèle sur le disque, la transcription fonctionne hors ligne pour toujours.
api.github.comUne fois par jour, et chaque fois que vous appuyez sur Vérifier les mises à jour, demande s'il existe une version plus récente. N'envoie rien d'autre que la requête : aucun identifiant, aucun compte, aucune donnée d'usage. Affiche une boîte de dialogue et ne télécharge ni n'installe jamais rien. Se désactive dans Paramètres → Système → À propos.
localhost:11434Votre instance Ollama, uniquement si vous activez les résumés avec Ollama. C'est votre machine, sauf si vous la pointez ailleurs.

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.

Les autres participants n'apparaissent pas dans la transcriptionLa capture de l'audio système demande macOS 14.4 ou plus récent et la permission Audio système. Quand elle n'est pas disponible, la transcription est marquée Micro seul et n'enregistre que votre micro.
Le texte dicté n'est pas inséréLe collage automatique est peut-être désactivé : dans ce cas le texte attend dans le presse-papiers. Sinon, c'est la permission Accessibilité. Si Soufflé y figure déjà et est bien coché, l'entrée peut être une trace périmée laissée par une mise à jour : retirez-la avec le bouton moins et rajoutez-la, ou passez par Paramètres → Système → Permissions → Réparer la permission.
Une app refuse le collageLes terminaux et les champs sécurisés rejettent souvent un ⌘V synthétique. Passez la méthode de collage en frappe simulée dans Paramètres → Interface.
Ce n'est pas le bon micro qui est prisFixez une entrée, et une autre pour le mode écran rabattu, dans Paramètres → Audio. Les casques Bluetooth sont écartés de la sélection automatique par défaut : les utiliser comme micro les fait basculer en HFP et vous coûte le son stéréo.
Le polish ou les résumés ne font rienLes deux ont besoin d'un fournisseur. Sans Apple Intelligence (macOS 26+), installez Ollama et choisissez un modèle dans Paramètres → Réunions. La raison pour laquelle un passage a été sauté est affichée dans le message d'état et écrite dans le journal.
Le téléchargement d'un modèle s'est arrêté en routeResélectionnez le modèle : le téléchargement reprend. Supprimer son dossier sous models/ force un téléchargement propre.
Autre choseParamètres → Système → Données ouvre le dossier de données. logs/ contient les journaux récents, qui sont ce dont un ticket a besoin.

Désinstallation

Installé avec Homebrew :

brew uninstall --cask souffle

Sinon, 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.