À propos du projet

Textbutler est un majordome IA en cours de développement pour les conversations iMessage, WhatsApp et Beeper que vous choisissez sur un Mac. Activé pour un contact, il répond en tant qu'assistant clairement identifié qui connaît votre historique avec cette personne. Il n'existe pas d'application téléchargeable ni de paquet Textbutler publié ; il s'exécute depuis les sources. Sans compte IA, vous pouvez tout de même connecter des applications de messagerie via Ghostget, lire votre boîte de réception et envoyer des réponses que vous rédigez vous-même. Les réponses IA nécessitent en plus une compilation locale et un abonnement Claude Code ou Codex connecté via xcb. Les réponses automatiques ont fonctionné de bout en bout sur iMessage lors des tests du projet, mais le README conseille de tester sur votre propre compte, en particulier via WhatsApp ou Beeper, avant de vous y fier. L'installation passe par une interface terminal guidée (Bun 1.3.14) : choisissez Setup & readiness, puis Connect messaging apps. Les nouvelles installations démarrent en pause et les nouveaux contacts ont les réponses automatiques désactivées ; l'installation et la sélection des conversations n'envoient jamais de message. Un compagnon de barre de menus peut être démarré, arrêté et enregistré au démarrage de session, offrant pause, vérifications de connexion, sélection de conversations, réglages de contact et d'agent, aperçus de boîte de réception et activité récente. La désinstallation conserve les réglages et la mémoire des contacts. Les agents peuvent utiliser un CLI JSON pour lister les conversations, lire et résumer l'historique, préparer des brouillons texte ou média, et envoyer un message explicitement autorisé, en utilisant les mêmes actions par étapes que le majordome. Les réponses suivent une étape de validation : les suggestions expirent après quinze minutes, et toute modification des réglages du contact, du contexte ou des octets d'une pièce jointe exige une nouvelle validation. Chaque réponse texte est encadrée par les trois symboles de divulgation du contact, rendus par défaut sous la forme 🤖{ … } ; effacer les trois envoie du texte brut. Un journal d'envoi conserve les identifiants d'acceptation du fournisseur, et les envois incertains restent bloqués jusqu'à réconciliation. Le projet conserve le contexte de chaque contact dans des fichiers que vous pouvez lire et modifier, marque ses propres réponses par défaut, et ne répond qu'après que vous avez activé un contact et repris le majordome. Le dépôt documente aussi Message Like Me, un CLI local-first historique et un Agent Skill pour étudier l'historique de messagerie privée et rédiger des messages dans votre style. Il transforme un historique appartenant à l'appelant en métriques locales déterministes, paquets de preuves bornés, profils de style réutilisables et brouillons non envoyés, le CLI prenant en charge l'ingestion, le stockage, la mesure et l'export. Les sources prises en charge incluent Apple Messages chat.db, les archives ZIP de données X, les bundles Beeper et WhatsApp produits par Ghostget, et l'enrichissement optionnel des libellés Contacts de macOS. L'ingestion est en lecture seule vis-à-vis de sa source, utilise des copies privées stables, et ne s'authentifie jamais auprès d'un fournisseur de messagerie ni n'envoie de messages. L'interprétation sémantique n'a lieu que lorsque vous ouvrez délibérément un artefact dans votre propre environnement d'agent ; l'artefact est la jointure entre le CLI, l'Agent Skill et les surfaces de la bibliothèque TypeScript. Les profils conservent la révision du corpus et le condensé du paquet dont ils proviennent, de sorte qu'une preuve obsolète échoue visiblement. Les sources sont sous licence MIT et servent aussi d'application d'exemple pour les développeurs qui construisent sur l'API de génération de xcb. Le site web est informatif et ne reçoit aucun message privé ni dossier de contacts.