Natif à grande échelle.La sécurité au cœur.
FOLD est un client de messagerie natif pour celles et ceux qui prennent leur boîte de réception au sérieux : ingénieurs, chercheurs, journalistes, administrateurs système. Moteur IMAP maison, S/MIME et OpenPGP intégrés, aucune télémétrie. La sécurité y est une contrainte de conception, pas une touche finale.
- Échelle
- 500 000
- messages par boîte aux lettres, recherche dans l’index en 58 ms
- Dépendances
- 0
- paquet tiers dans le moteur et l’interface, 103 000 lignes de Swift
Coin plié : l’affirmation est sourcée, la source figure au pied de la cellule. Toutes les sources
Ce qui fonctionne aujourd’hui
TestFlight · macOS et iOS · état : 09/2026- Une seule boîte de réception pour tous les comptesboîte de réception unifiée
- Synchronisation différentielle et pushCONDSTORE QRESYNC IDLE
- Envoi avec annulation0 à 30 s boîte d’envoi
- Messages chiffrésS/MIME OpenPGP
- Vérification de l’expéditeur sur l’appareilDKIM DMARC BIMI
- Mode Fortresspar compte Argon2id
- Quatre langues d’interfaceanglais allemand japonais arabe
- Des règles pour chaque nouveau messagefiltres dans la grammaire de recherche
500 000 messages. Chronométrés.
Le moteur de stockage, mesuré sur une boîte aux lettres synthétique d’un demi-million de messages.
- 58 ms
- recherche plein texte sur 500 000 messages
- 0,7 ms
- 50 en-têtes de messages lus depuis SQLite
- 9 ms
- ouverture du stockage, premier instantané de l’index
- 67 s
- pour ingérer 500 000 messages
FoldBench, compilation release, Apple M1 Ultra, macOS 27, médiane de cinq exécutions. Ce sont des mesures du moteur de stockage. Le démarrage à froid de l’app, le temps par image et la mémoire font l’objet d’un budget plus bas et ne sont pas encore instrumentés.
L’e-mail est un outil, pas un canal publicitaire.
Beaucoup de clients de messagerie font transiter votre courrier par le cloud de leur éditeur, embarquent la moitié du Web en dépendances et présentent leurs bannières comme de la productivité. FOLD prend le chemin inverse : moins de code, moins de surface d’attaque, moins d’hypothèses.
Divulgation progressive
Une réponse s’ouvre sur le champ À. Cc et Cci apparaissent quand vous les demandez. Ce qui est à l’écran doit mériter sa place.
Le clavier d’abord
Sur le Mac, ⌘K mène à la rédaction, à la réponse, au déplacement, à chaque dossier et à chaque compte. La recherche accepte des opérateurs comme from:, is:unread, before:6m et /regex/.
Une provenance que vous pouvez vérifier
FOLD vérifie les signatures DKIM sur votre machine et les aligne avec DMARC. Vous voyez si un message provient du domaine qu’il indique, et non ce qu’un serveur en dit.
RFC 6376 8463 7489
Des archives qui restent interrogeables
Recherche sur tous les comptes, hors ligne, par objet, expéditeur et destinataire. Les conversations sont regroupées en fils par Message-ID et References, et restent cohérentes d’un compte à l’autre et au fil des années.
Threading JWZ SQLite FTS5
Comment FOLD s’organise.
Quatre vues stylisées, dessinées d’après l’app en fonctionnement. Les vraies captures d’écran suivront avec la sortie.
Trois colonnes
Boîte aux lettres, liste des messages, détail du message. Sur le Mac, conçu pour le clavier et le trackpad ; sur iPad, les trois mêmes colonnes via la vue partagée du système.
Palette de commandes
Rédiger, répondre, déplacer, changer de compte et atteindre n’importe quel dossier avec ⌘K. Les opérateurs de recherche comme from:, is:unread et /regex/ directement dans le champ.
Inspecteur d’en-têtes et de sécurité
En-têtes bruts et, pour chaque signature DKIM, son domaine, son sélecteur et son algorithme. Sur le Mac, une fenêtre d’activité affiche les étapes de synchronisation et la transcription SMTP, conservées en mémoire uniquement.
Vue conversation
Des fils construits avec l’algorithme JWZ à partir de References et In-Reply-To, dédoublonnés par Message-ID d’un compte à l’autre, et lus comme un historique empilé. Un interrupteur dans les Réglages.
Une seule grammaire, partout.
Le champ de recherche, la palette de commandes, les règles de filtrage et la ligne de commande partagent un même analyseur. Une règle, c’est une recherche enregistrée plus une action.
from:[email protected] is:unread after:2026-01-01 -is:flagged
subject:"deploy failed" /timeout|5\d\d/
size:>10M before:6m is:unread$ foldmail search 'from:[email protected] is:unread' --quiet \
| xargs foldmail flag --add '\Seen'
$ echo $?
0Dites ce que vous cherchez
from:, to:, cc:, subject:, is:unread, is:flagged, label:, size:>10M, before: et after: avec des dates ou 30d, 6m, 1y. AND, OR, parenthèses, expressions entre guillemets, et un signe moins pour exclure un statut comme -is:read. En allemand aussi : von:, betreff:, ist:ungelesen.
Sur tous les comptes
SQLite FTS5 sur les objets, les expéditeurs et les destinataires, pour tous les comptes à la fois et hors ligne. /regex/ affine les résultats par objet et par expéditeur. Le corps des messages ne figure pas encore dans l’index local ; sur iPhone et iPad, FOLD peut aussi interroger le serveur.
Des filtres dans la même grammaire
Marquer comme lu ou non lu, signaler par un drapeau, déplacer vers un dossier. Les règles s’appliquent à chaque nouveau message sur Mac et iPhone, et un aperçu montre ce qu’un ensemble de règles toucherait avant que vous ne l’appliquiez. Le transfert et les réponses automatiques ne sont pas encore activés.
foldmail
Sous-commandes à la manière de git : search, read, flag, delete, compose, outbox, filter. --json pour les machines, --quiet pour les seuls identifiants, codes de sortie de 0 à 4. Fonctionne aujourd’hui dans les builds internes, pas encore livré avec l’app.
Raccourcis, Siri et Spotlight via App Intents, ainsi que des widgets interactifs. La couche d’actions commune sur laquelle ils reposent est déjà en place.
Notre propre moteur, en Swift.
IMAP et SMTP écrits en Swift, sur les flux Foundation d’Apple. Pas de bibliothèque de messagerie en C, pas de passerelle, pas de SDK intermédiaire.
Saisissez votre adresse
FOLD interroge quatre sources à la fois : son cache, onze profils de fournisseurs intégrés, les enregistrements DNS SRV et le fichier autoconfig de votre propre domaine. La base centrale de Mozilla n’est pas interrogée : votre domaine reste une affaire entre vous et votre fournisseur. Aucun serveur de messagerie n’est contacté avant que vous n’ajoutiez le compte.
OAuth là où ça compte
Google via OAuth 2 avec PKCE dans le navigateur du système : aucun secret client dans l’app, les jetons se renouvellent d’eux-mêmes. La connexion Microsoft est préparée et attend l’enregistrement de son client ; d’ici là, les mots de passe pour app fonctionnent.
Alias : la bonne adresse pour répondre
Plusieurs comptes, plusieurs alias par compte, chacun avec son propre nom et sa propre signature. Une réponse part de l’adresse à laquelle le message a été envoyé.
Seulement ce qui a changé
Après le premier passage, FOLD conserve le HIGHESTMODSEQ du serveur et ne récupère que les nouveaux messages, les indicateurs modifiés et les suppressions. Les serveurs sans cette extension ont droit à une synchronisation complète et propre.
RFC 7162 CONDSTORE QRESYNC
En direct via IDLE
Le serveur annonce lui-même les nouveaux messages ; FOLD renouvelle la session toutes les 25 minutes. Les serveurs sans IDLE sont interrogés périodiquement.
RFC 2177
Conçu pour les gros volumes
Chaque connexion et chaque couche de stockage est un acteur Swift à part entière. Un seul moteur de synchronisation sert tous les comptes, avec quatre connexions chacun, dont une reste toujours libre pour ce que vous êtes en train de faire.
Aujourd’hui sur TestFlight.
La première version publique arrive bientôt : pour le Mac, en téléchargement direct signé et notarisé depuis ce site.
Cinq couches. Aucune ne tient seule.
Chaque couche a sa propre mission et ses propres tests. Si l’une cède, la suivante tient.
- La sécurité d’abord, pas en dernier.
- L’auditabilité avant le confort.
- Défense en profondeur.
- Surface d’attaque minimale.
- L1
TLS
Vérification stricte du certificat et du nom d’hôte, sans dérogation possible. STARTTLS est imposé : si la mise à niveau échoue, ou si des octets arrivent avant elle, la connexion est coupée. IMAP et SMTP non chiffrés sont refusés.
- L2
Authentification
OAuth 2 avec PKCE lorsque le fournisseur le prend en charge. En SMTP, SCRAM-SHA-256 passe avant CRAM-MD5 et PLAIN, et PLAIN ne sort jamais de TLS.
- L3
Sandbox
App Sandbox et Hardened Runtime. Droits : réseau sortant, fichiers que vous choisissez, un groupe de trousseau, le conteneur iCloud pour la synchronisation facultative. Aucun contournement de la validation des bibliothèques.
- L4
Trousseau
Les mots de passe et les jetons restent dans le trousseau, liés à cet appareil déverrouillé. Rien n’est synchronisé par défaut ; la synchronisation des mots de passe via le trousseau iCloud fait l’objet d’un consentement distinct.
- L5
Rendu
JavaScript est désactivé dans les messages HTML. Le contenu distant attend votre accord, un clic sur un lien affiche d’abord sa véritable cible, les pièces jointes enregistrées portent l’attribut de quarantaine. L’analyseur MIME impose des limites strictes à la profondeur, au nombre de parties et à la taille des en-têtes.
Mode Fortress
Un chiffrement en plus de FileVault. Argon2id (64 Mio, 3 passes) transforme votre phrase secrète en une clé de 256 bits qui ne vit qu’en mémoire. Chaque compte reçoit sa propre sous-clé HKDF, et AES-256-GCM scelle la base des en-têtes et le cache des messages. Après une période d’inactivité, le coffre se verrouille et la clé est effacée.
Vérifié, pas proclamé : S/MIME et OpenPGP interopèrent avec les vrais GnuPG et OpenSSL, DKIM concorde octet par octet avec le vecteur de la RFC 8463, une suite de régression rejoue des CVE historiques de clients de messagerie, et cinq cibles de fuzzing renforcent les analyseurs.
S/MIME et OpenPGP. Tous deux intégrés.
Signer, chiffrer et déchiffrer sur le Mac et sur iPhone, le tout vérifié face aux vrais GnuPG et OpenSSL.
Des certificats collectés et vérifiés
Importez votre identité .p12 et les certificats de vos destinataires, ou laissez FOLD les collecter dans les messages signés. Une signature valide dont le certificat ne correspond pas à l’expéditeur est marquée comme non fiable. Sur iPhone, tout cela fonctionne aussi ; les certificats des destinataires y proviennent des messages signés, l’import manuel suivra.
Un cœur moderne, l’héritage sous contrôle
Signatures Ed25519, clés de chiffrement Curve25519 et AES-256, toujours avec un contrôle d’intégrité contre EFAIL. Les clés RSA de vos correspondants continuent de fonctionner. CAST5, IDEA, Blowfish, 3DES et les signatures MD5 et SHA-1 sont refusés.
Générer ou importer
Créez des clés Ed25519 et Curve25519 dans FOLD ou importez votre trousseau de clés GnuPG. Les clés privées sont conservées, protégées par une phrase secrète, dans un coffre du trousseau lié à cet appareil.
Visible pendant la saisie
Pendant la saisie, les pastilles des destinataires indiquent qui peut recevoir des messages chiffrés. Signer et chiffrer tiennent en deux interrupteurs, rien de plus.
Vérifié sur votre appareil.
FOLD recalcule DKIM lui-même : hachage du corps, clé DNS, canonicalisation, signature. L’en-tête Authentication-Results d’un serveur n’est pas cru sur parole.
Calculé sur votre machine
Ed25519 octet par octet par rapport au vecteur de référence de la RFC 8463, RSA par rapport à un message de test signé avec openssl. Les clés de moins de 1024 bits sont rejetées. La requête DNS a lieu au chargement du corps du message.
Aligné sur l’expéditeur
FOLD aligne son propre résultat DKIM et le résultat SPF de l’en-tête du serveur sur l’adresse From visible. Seul cet alignement fait d’une signature une preuve.
RFC 7489
Silencieux quand tout va bien
Quand tout est en ordre, vous ne voyez rien. Une lacune ou un soupçon d’usurpation est signalé discrètement, et l’inspecteur liste chaque signature avec son domaine, son sélecteur et son algorithme. Pour les listes de diffusion, l’indication est atténuée afin de garder tout son poids.
Logos de marque, vérifiés
Le logo d’un expéditeur n’apparaît que si DMARC réussit avec une politique contraignante et si le certificat de marque remonte à l’une des racines BIMI embarquées. Le logo provient du certificat lui-même et il est assaini avant d’être affiché.
BIMI VMC racines embarquées
Frameworks Apple. Swift 6. Notre propre moteur.
Une app native, bâtie sur ce que le système d’exploitation fournit déjà. Pas de couche multiplateforme, pas de vue web déguisée en app.
Pile technique
- Langage
- Mode de langage Swift 6, concurrence stricte, ExistentialAny.
- Interface
- SwiftUI d’abord. AppKit et UIKit seulement là où SwiftUI ne suffit pas.
- Réseau
- Moteur IMAP et SMTP maison sur les flux Foundation, STARTTLS sur la connexion active. Aucune bibliothèque C.
- Stockage
- SQLite sans ORM : base des en-têtes (WAL), cache de messages adressé par contenu, index plein texte (FTS5).
- Crypto
- CryptoKit, Security et CommonCrypto. Là où Apple ne fournit pas de primitive, FOLD l’implémente et la vérifie par rapport à des vecteurs de référence : Argon2id, BLAKE2b, AES-OCB.
- Concurrence
- 55 acteurs Swift. Chaque connexion et chaque couche de stockage est isolée.
- Dépendances
- Moteur et interface : uniquement les frameworks système d’Apple. L’outil de mise à jour du téléchargement direct (Sparkle) réside seul dans l’enveloppe de l’app.
Budget
Objectifs de conception- Démarrage à froid
- ≤ 300 ms
- De l’appui à la première ligne visible de la liste
- Image au défilement
- ≤ 8 ms
- Limite stricte 16 ms, y compris à 500 000 messages
- Recherche
- ≤ 50 / 200 ms
- En-têtes / plein texte
- Mémoire
- 80 / 150 / 250 Mo
- Ensemble de travail iPhone / iPad / Mac
Objectifs de conception issus de la spécification de performances. Ce qui est mesuré aujourd’hui figure plus haut.
Chaque corps de message est adressé par son hachage
Le cache des messages stocke chaque corps sous son SHA-256. Un contenu identique n’est écrit qu’une fois sur le disque, et un corps modifié après coup échoue à la vérification dès son chargement. En outre, FOLD contrôle la taille et la complétude MIME de chaque message récupéré, et propose de recharger un message incomplet au lieu de le présenter comme entier.
SHA-256 vérifié à chaque chargement
Quelles RFC FOLD implémente, et lesquelles pas encore
Chaque norme à l’aune de laquelle on juge un client de messagerie, avec son statut dans le code et la raison de chaque lacune.
Toutes les normes- Implémenté
- 58
- Partiel
- 8
- Pas encore
- 10
- Écarté
- 6
Questions courtes, réponses courtes.
Puis-je essayer FOLD ?
Bientôt. La première version publique pour le Mac est sur le point de sortir sous forme de téléchargement direct signé ; iPhone et iPad suivront via l’App Store. Sur la page de téléchargement, vous pouvez laisser votre adresse : nous vous écrirons une fois, dès sa sortie.
Quelles plateformes sont prises en charge ?
macOS 13 Ventura ou version ultérieure, iOS et iPadOS 18 ou version ultérieure. Les deux apps partagent le même moteur et tournent aujourd’hui dans TestFlight. Le Mac a une longueur d’avance sur quelques fonctions : glisser-déposer, éditeur de dossiers intelligents, expéditeurs VIP et affichage du quota.
Quelles langues FOLD parle-t-il ?
L’interface est disponible en anglais, en allemand, en japonais et en arabe, sur Mac, iPhone et iPad. Sur iPhone et iPad, vous pouvez choisir la langue dans l’app, indépendamment de la langue du système.
Pourquoi aucune bibliothèque tierce ?
Parce que chaque dépendance est une surface d’attaque. CryptoKit, Security, SQLite et Foundation couvrent ce dont le moteur a besoin. Quiconque lit le Swift peut tout lire, et personne n’a à faire confiance au résultat de compilation de quelqu’un d’autre. La seule exception est l’outil de mise à jour du téléchargement direct.
Qu’en est-il d’OpenPGP et de S/MIME ?
S/MIME avec des identités .p12 et des certificats de destinataires, RSA et AES ; AES-GCM, que demande S/MIME 4.0, n’est pas encore pris en charge. OpenPGP avec des signatures Ed25519, un chiffrement Curve25519 et AES-256 avec contrôle d’intégrité, plus RSA pour les clés existantes, vérifié face au vrai gpg ; les clés de version 6 ne sont pas encore prises en charge. Les chemins défaillants restent exclus par conception : MD5, signatures SHA-1, CAST5, IDEA, 3DES et tout ce qui n’a pas de contrôle d’intégrité.
FOLD est-il open source ?
Non, le code est propriétaire et édité par Datargo GmbH. Il est testé plutôt que cru sur parole : plus de 3 000 tests automatisés, des tests d’interopérabilité avec Dovecot, gpg et openssl, et un audit adverse interne en juin 2026 (65 constats, aucun critique, tous suivis). Un test d’intrusion externe est prévu avant la sortie publique.
Combien coûtera FOLD ?
Les tarifs ne sont pas encore arrêtés. Deux choses le sont : les fonctions de sécurité ne seront jamais une option payante, et il n’y aura pas de modèle publicitaire.
Que deviennent mes données ?
Elles restent sur votre appareil. FOLD communique avec vos serveurs de messagerie, avec le DNS, avec le fichier autoconfig de votre domaine lors de la configuration, avec Google pour la connexion OAuth et, pour les logos BIMI, avec l’hôte de certificats de l’expéditeur une fois DMARC validé. La synchronisation iCloud ne s’active qu’à votre demande. Aucune télémétrie, aucun outil de rapport de plantage.
L’e-mail, pris au sérieux.
Sur Mac, iPhone et iPad.
FOLD pour Mac est proposé en téléchargement direct, signé et notarisé, depuis ce site. La version pour iPhone et iPad tourne dans TestFlight et sera distribuée via l’App Store.
Vers le téléchargement