EmailOps
Documentation

Ligne de commande (emailops-cli)

Scriptez et automatisez votre boîte depuis le terminal, avec une sortie JSON stable pour les scripts et les agents.

emailops-cli pilote le même moteur local que l’application de bureau — votre courrier, vos comptes, votre IA locale — depuis un terminal. Il lit la base de données que l’application a déjà synchronisée : pas de configuration séparée, pas de seconde copie de votre courrier.

macOS uniquement pour l’instant.

Installation

Téléchargez EmailOps-CLI-macos.dmg depuis la dernière version, montez-le et placez le binaire dans votre PATH :

hdiutil attach ~/Downloads/EmailOps-CLI-macos.dmg
cp /Volumes/EmailOps\ CLI/emailops-cli /usr/local/bin/emailops-cli
hdiutil detach /Volumes/EmailOps\ CLI

emailops-cli doctor    # vérifie qu'il voit vos données et vos comptes

Le binaire est universel (Apple Silicon + Intel), signé et notarié : Gatekeeper le laisse passer sans invite.

Démarrage rapide

emailops-cli accounts                     # quels comptes sont connectés
emailops-cli emails --limit 10            # les 10 e-mails les plus récents
emailops-cli search "facture"             # recherche plein texte
emailops-cli chat "qu'a dit Acme à propos du contrat ?"
emailops-cli                              # sans sous-commande → REPL interactif

Dans le REPL, toute action est une commande préfixée par / : /chat <question> est un tour de chat (les jetons arrivent en direct) et les autres correspondent aux sous-commandes — /search, /account, /sync, /help, /quit.

Commandes

CommandeRôle
accountsListe les comptes configurés
emails [--limit N] [--mailbox inbox|sent|spam|trash]Liste les e-mails récents
show <id>Affiche un e-mail (en-têtes et corps)
search <requête> [--limit N]Recherche plein texte
chat <question> [--trace]Pose une question ; --trace ajoute les temps de routage et de récupération
sync [compte]Télécharge le courrier nouveau
calendar [--days N] [--next] [--sync]Événements à venir (--next = prochaine réunion seulement)
classify [--all]Classe les e-mails nouveaux — ou tous
embed [--batch N]Génère les embeddings de recherche
doctorRapport d’état en lecture seule (base, comptes, configuration IA)
attachment-suggestions [preview|list|refresh|dismiss <id>|accept <id>|dismissed|restore <id>]Règles de pièces jointes suggérées : aperçu de ce qui serait suggéré (lecture seule, par défaut), liste ou recalcul des suggestions enregistrées, en ignorer ou en accepter une, lister les suggestions ignorées ou en restaurer une

Les options globales fonctionnent avant ou après la sous-commande : --json, --quiet, --account <id|email>, --model <modèle>, --data-dir <dossier>.

Les commandes de lecture sont sûres pendant que l’application est ouverte. Les écritures lourdes (sync, classify, embed) valent mieux application fermée.

Scripter avec --json

Avec --json, chaque commande écrit exactement une enveloppe sur stdout — même forme en cas de succès ou d’échec — tandis que les journaux partent sur stderr :

{ "ok": true,  "data": { /* résultat */ }, "error": null }
{ "ok": false, "data": null, "error": { "code": "not_found", "message": "…", "params": {} } }
# Objets des 20 e-mails les plus récents
emailops-cli emails --limit 20 --json | jq -r '.data[].subject'

# Uniquement le texte de la réponse à une question
emailops-cli chat "résume mes e-mails non lus" --json | jq -r '.data.answer'

# Expéditeur et objet de chaque résultat de recherche, en TSV
emailops-cli search "from:ana facture" --json | jq -r '.data[] | [.sender, .subject] | @tsv'

Les codes de sortie sont regroupés selon ce qu’il y a à faire : 0 succès, 2 entrée invalide, 3 introuvable, 4 authentification, 5 réseau/synchronisation, 6 IA, 130 annulé, 1 tout le reste — les scripts peuvent donc se baser sur le code plutôt que d’analyser du texte.

Si vous avez plusieurs comptes, enregistrez-en un par défaut au lieu de répéter --account :

emailops-cli config set default-account vous@exemple.com