Syntaxe générale
--db-path est prioritaire sur --base. Sans l’une ni l’autre, la CLI cherche syntheo/app.db, puis fr.willisback.syntheo/app.db, dans le dossier de données du système (~/.local/share sous Linux, %APPDATA% sous Windows). Voir Installer la CLI.
Source des réunions
Les commandesmeetings acceptent --source avant leur sous-commande :
local, la valeur par défaut, lit la base de cet ordinateur. auto est conservé comme alias de local. Il n’existe pas d’autre source. La variable SYNTHEO_SOURCE a le même effet que l’option.
Commandes de lecture et d’export
Les exports Markdown présentent la transcription en paragraphes attribués aux locuteurs quand cette information existe au niveau des mots. Sinon, ils gardent le texte brut de la transcription. Les exports JSON peuvent contenir un champ
speakers avec les noms utilisés.
Importer un enregistrement
L’application doit être ouverte sur la même base : sans elle, l’import est refusé. Elle transcrit le fichier avec le serveur de transcription configuré dans l’application, puis génère le résumé avec le LLM configuré. L’audio est envoyé à ce serveur.
- Formats acceptés : WAV, MP3, OGG, MP4, M4A, FLAC, WebM, AAC. Le fichier doit être non vide et lisible sur la machine qui exécute la CLI. Les fichiers de sous-titres ou de transcription ne sont pas acceptés.
- Le fichier n’est pas copié : l’application le lit à son emplacement d’origine. Ne le déplacez pas et ne le supprimez pas avant la fin de la tâche.
--titlevaut par défaut le nom du fichier sans extension.--folderdoit désigner un dossier existant (voirmeetings folders).--request-key(1 à 200 octets) rend l’import rejouable : réutilisez la même clé pour réessayer le même import, et il renvoie la tâche et la réunion d’origine, même après un échec. Un nouvel import exige une nouvelle clé.
meeting_id, job_id, processing_status, summary_status et error (éventuellement null). processing_status passe par queued, importing, transcribing, summarizing, puis done ou failed. summary_status vaut pending, done, skipped_no_model, skipped_too_short ou failed : done pour le traitement ne garantit donc pas qu’un résumé a été généré.
--wait attend un état final. --timeout vaut 3600 secondes par défaut (de 1 à 86400). Codes de sortie : 0 pour une soumission ou une fin réussie, 1 pour un échec, 2 si l’attente expire. L’expiration ou l’interruption de la CLI n’annule pas la tâche : continuez avec import-status. Une tâche interrompue en cours de route est marquée failed ; les données déjà produites sont conservées.
Les identifiants de commande JSON sont meetings.import et meetings.import_status.
Commandes de proposition
Ces commandes créent ou consultent des modifications en attente. Elles n’appliquent jamais la modification : l’application s’en charge, après validation par l’utilisateur.Contrat de réponse JSON
Avec--json, une réponse réussie contient :
pagination contient offset, limit, returned, et éventuellement total et next_offset.
Les erreurs sont décrites dans Erreurs et codes de sortie.
Commande doctor
cli_version, ready et database (path, exists, opened_read_only, schema_ready, error). Code de sortie 0 si ready vaut true, 1 sinon.
Commande mcp
Aide et version
Commandes de capture gérée
Ces commandes servent aux déploiements administrés (conservation légale, mesure d’usage). Elles ne fonctionnent qu’avec la base locale. Plusieurs exigent--json ou --source local explicite, comme indiqué ci-dessous.
Syntheo ne conserve aucun fichier audio. Les éléments qui concernent des fichiers d’enregistrement (
recording_locations, suppression des enregistrements) sont donc normalement vides ou sans effet.meetings initialize-managed
--source local, l’application fermée et un fichier managed_settings.json (version 1, objet settings) à côté de app.db, qui désactive l’intelligence (intelligence_disabled: true).
meetings hold-list
--json. Pagination par clé : passez le dernier identifiant reçu à --after ; un tableau data.ids vide termine l’inventaire. --database-only ignore la découverte de fichiers sur disque.
meetings hold-export
--json. Chaque ligne est bornée ; une empreinte SHA-256 finale couvre toutes les lignes précédentes. L’absence de ligne de fin signale un instantané incomplet. L’archive exclut les réglages globaux, les identifiants de fournisseurs et les autres réunions. Avec --database-only, elle ignore la découverte de fichiers et renvoie recording_files_separate: true. Cette archive de conservation est distincte de l’export ordinaire.
meetings pilot-usage
--json et --source local. --from-ms et --until-ms sont des millisecondes Unix, pour une fenêtre UTC semi-ouverte de 366 jours au plus. Renvoie les intervalles de capture et des compteurs de couverture (unmeasured_stops, invalid_metadata_records, pending_sessions, legacy_sessions_without_measurement), sans identifiant, texte, titre ni participant. Un résultat vide ne prouve pas qu’aucune réunion n’a eu lieu. Rien n’est envoyé automatiquement.
meetings delete
--source local, --if-export-sha256 (le SHA-256 de l’export JSON complet, tel qu’imprimé sur la sortie standard avec son retour à la ligne final, ou tel qu’enregistré avec --output) et --require-transcription-complete. Fermez l’application avant. Un export modifié, une transcription inachevé ou une proposition en attente empêche la suppression. Une suppression interrompue reprend avec le même identifiant et la même empreinte.