Elle écoute et répond
On lui parle, elle répond à voix haute et affiche des écrans d'information. Le mot de réveil, la reconnaissance de la parole et la voix tournent sur mon propre matériel.
Projet en cours · R&D personnelle
Dans la fiction, Tony Stark ne clique pas sur des formulaires : il converse avec J.A.R.V.I.S., qui surveille son atelier, anticipe ses questions et déclenche les bons outils au bon moment. Grace est cette idée appliquée à mon quotidien, avec une exigence : aucun assistant du commerce n'écoute en permanence chez moi. Elle est locale par défaut, et me demande mon accord avant toute action à enjeu.
En développement actif · chiffres vérifiés dans le code le 7 octobre 2026
L'idée
Grace est faite pour une personne — moi — et pour mon foyer. Ce n'est pas un produit : c'est un terrain d'essai où je pousse l'IA aussi loin que je peux, sans lui confier ce qu'elle ne doit pas décider seule.
On lui parle, elle répond à voix haute et affiche des écrans d'information. Le mot de réveil, la reconnaissance de la parole et la voix tournent sur mon propre matériel.
63 outils à sa disposition : maison connectée, agenda, mails, documents, fichiers, serveurs, veilles d'annonces, liste de courses.
Échéance, panne, bonne annonce, personne détectée quand tout le monde est absent : elle parle d'elle-même, dans la limite d'un quota quotidien et d'heures calmes.
Toute action à enjeu passe par mon accord, aucun mail ne part seul, et chaque décision est écrite dans un journal que je peux relire.
Fonctionnement
Une demande vocale traverse quatorze étapes. Presque toutes se déroulent chez moi ; un modèle en ligne ne prend le relais qu'en secours, si le modèle local tombe.
Le navigateur écoute en permanence et reconnaît « Hey Grace », sans rien envoyer sur le réseau.
L'enregistrement s'arrête après environ 0,9 seconde de silence.
L'audio part vers l'orchestrateur, le chef d'orchestre de Grace.
Whisper transforme la voix en texte.
Un bonjour, un merci ou une correction reçoivent une réponse directe, sans modèle de langage.
Des règles, puis un routeur d'intention, reconnaissent les demandes courantes : météo, agenda, mail, lieu, musique…
La demande traverse huit étapes dans un ordre fixe ; la première qui sait répondre arrête la chaîne.
Si rien n'a reconnu la demande, une lecture préalable la reformule et désigne les domaines concernés.
Le modèle de langage ne reçoit que les outils des domaines compris. Il peut en appeler jusqu'à trois tours de suite.
Chaque appel d'outil est contrôlé : outil inconnu ou sans rapport refusé, action à enjeu mise en attente d'approbation.
La réponse est nettoyée avant d'être dite : appel d'outil recopié en texte, image inventée, réponse vide.
Piper produit le son, phrase par phrase.
Le son est joué par le navigateur ou une enceinte connectée ; les panneaux s'affichent à l'écran.
Le tour est écrit dans le journal, vérifié par le détecteur d'incertitude et gardé comme souvenir.
Une demande tapée au clavier, envoyée par Telegram ou venue d'un satellite vocal suit le même chemin à partir de l'étape 5. La météo, l'agenda, les mails et la recherche web font appel, eux, à des services externes.
Sous le capot
Pas de ferme de serveurs : des modèles choisis pour tenir sur du matériel grand public. La carte graphique ne garde en permanence que le modèle de conversation, rechargé dès qu'une tâche de fond l'a délogé.
Mot de réveil
Détecte « Hey Grace » directement dans le navigateur de l'appareil.
Reconnaissance vocale
Transcrit la parole en français, sur le processeur du serveur.
Voix
Voix française féminine, produite sur le processeur du serveur.
Conversation
Routeur d'intention, compréhension et conversation avec outils, sur une carte graphique grand public de 6 Go.
Tâches de fond
Missions, synthèses et notation des annonces, sur la même carte graphique.
Recherche par le sens
Transforme une phrase en nombres pour comparer des sens : mémoire et compréhension.
Vision
« Grace, regarde » : décrit ce qui est montré à la caméra.
Modèles en ligne
Uniquement pour les tâches que j'ai choisies, et en secours si le modèle local tombe.
Les bras
Pour agir, la parole ne suffit pas. Chaque outil n'est proposé au modèle que si son domaine a été compris dans la demande — et chacun porte un niveau de risque.
home_assistant_list_entities
Liste les appareils de la maison et leur état
Lecture
home_assistant_get_state
Donne l'état d'un appareil précis
Lecture
home_assistant_call_service
Pilote un appareil : lumière, prise, volet, thermostat, scène. Serrures, alarmes et portails sont exclus
Validation
home_center
Ouvre le centre domotique plein écran
Lecture
health_center
Ouvre le bilan santé plein écran
Lecture
calendar_list_events
Liste les prochains événements
Lecture
create_calendar_event
Crée un événement
Validation
update_calendar_event
Modifie un événement existant
Validation
mail_search
Cherche des messages
Lecture
mail_read
Lit un message
Lecture
inbox_action_items
Liste les mails récents qui demandent une action
Lecture
mail_prepare_draft
Prépare un brouillon de réponse, sans l'envoyer
Écriture légère
mail_reply
Répond à un message
Validation obligatoire
mail_send
Envoie un nouveau message
Validation obligatoire
sender_center
Ouvre le tableau de bord du filtre des expéditeurs
Lecture
seafile_list_dir
Liste le contenu d'un dossier
Lecture
seafile_search
Cherche un fichier par son nom
Lecture
seafile_read_file
Lit le texte d'un fichier (texte, PDF, Word)
Lecture
seafile_watch_recent
Liste les fichiers modifiés récemment
Lecture
seafile_write_file
Crée un document dans un dossier existant, sans jamais remplacer un fichier
Validation
docs_center
Ouvre le centre des documents (contrats et échéances)
Lecture
paperless_search
Cherche une facture ou un courrier numérisé
Lecture
paperless_update_document
Renomme ou étiquette un document numérisé
Validation
immich_search
Cherche des photos et les affiche en galerie
Lecture
watch_create
Crée une veille sur une recherche d'annonces
Écriture légère
watch_list
Liste les veilles en cours
Lecture
watch_results
Montre les meilleures annonces d'une veille, avec leur note
Lecture
watch_update
Met en pause, reprend, arrête ou modifie une veille
Écriture légère
listing_feedback
Enregistre un avis sur une annonce
Écriture légère
watch_center
Ouvre le centre des veilles plein écran
Lecture
monitoring_query_metric
Interroge une mesure de supervision
Lecture
monitoring_alerts
Liste les alertes en cours
Lecture
monitoring_grafana_dashboards
Cherche un tableau de bord
Lecture
proxmox_status
Donne l'état du serveur de virtualisation
Lecture
proxmox_lxc_list
Liste les conteneurs du serveur
Lecture
proxmox_backups
Donne l'état des sauvegardes des machines
Lecture
homelab_center
Ouvre le centre « homelab » plein écran
Lecture
grace_status
Ouvre l'écran « État de Grace »
Lecture
remember_fact
Retient un fait
Écriture légère
recall_facts
Cherche dans les faits retenus
Lecture
forget_fact
Oublie un fait
Écriture légère
shopping_add
Ajoute des articles à la liste de courses
Écriture légère
shopping_list
Lit la liste de courses
Lecture
shopping_remove
Retire un article
Écriture légère
cave_search
Consulte la cave (vins et bières)
Lecture
cave_drink
Retire une bouteille du stock
Écriture légère
notify_telegram
M'envoie un message sur Telegram, à ma demande
Écriture légère
review_status
Fait le bilan de la journée ou de la semaine
Lecture
why_announcement
Explique pourquoi Grace a annoncé quelque chose d'elle-même
Lecture
time_now
Donne l'heure et la date
Lecture
web_search
Cherche sur internet
Lecture
web_open
Ouvre une page et en lit le texte
Lecture
news_headlines
Donne les derniers titres des sujets suivis
Lecture
news_list_interests
Liste les sujets suivis
Lecture
news_add_interests
Ajoute un sujet suivi
Écriture légère
news_remove_interests
Retire un sujet suivi
Écriture légère
weather_current
Donne la météo actuelle
Lecture
weather_tomorrow
Donne la prévision du lendemain
Lecture
show_place
Affiche un lieu sur une carte
Lecture
show_route
Affiche un itinéraire, sa distance et sa durée
Lecture
n8n_trigger_workflow
Lance une automatisation que j'ai préparée dans n8n
Validation
Deux outils qui touchent à des données privées ne sont pas détaillés ici. S'y ajoutent une vingtaine d'actions que le modèle ne voit jamais : banque, portefeuille, musique, énergie. Elles sont déclenchées par des règles fixes, car un montant ne doit pas transiter par un modèle de langage.
Sécurité et contrôle
Un outil qu'on aurait oublié de classer est traité comme une action à enjeu, donc bloqué — et un test refuse tout changement de code où un outil n'a pas de niveau.
Aucun effet : consulter, chercher, afficher.
Effet faible et réversible, tracé dans le journal : retenir un fait, ajouter à la liste de courses.
Effet réel : l'action attend mon accord. Je peux lever cette exigence outil par outil.
Aucune autonomie possible, quel que soit le réglage : envoyer un mail, y répondre.
Une seule exception, documentée : quand un inconnu m'écrit, Grace peut lui envoyer un mail à texte fixe lui demandant de prouver qu'il est humain. Ce texte n'est pas rédigé par le modèle, et les envois sont plafonnés.
Proactivité
Grace n'attend pas qu'on l'interroge. Pour ne pas devenir envahissante, elle dispose d'un budget d'interruptions.
Elle choisit aussi son canal : la voix si quelqu'un est là, Telegram en cas d'absence.
Mémoire
Les assistants génériques repartent de zéro à chaque session. Grace garde six formes de mémoire, toutes rangées dans des bases de données qui restent sur ma machine.
Les derniers échanges, donnés au modèle à chaque tour.
6 tours · remis à zéro après 10 min de silence
Des faits courts sur moi : préférences, habitudes, informations utiles. Chacun est daté et sourcé.
Gardé tant qu'il est reconfirmé · purgé après 90 jours sinon
Ce qui a été demandé, répondu, et l'intention. Les plus proches du sens de la demande sont rappelés.
Les 400 derniers
Résumé, action à faire et échéance de chaque mail, événement, fichier ou document.
400 éléments par source
Mes corrections (« ce n'est pas ça ») deviennent des règles appliquées aux échanges suivants, sans toucher au code.
Jusqu'à suppression
Chaque décision, pour pouvoir répondre à « pourquoi tu m'as dit ça ? ».
Les 500 dernières lignes
Une fois par jour, une tâche d'entretien fusionne les faits presque identiques, purge les périmés et régénère un fichier lisible que je peux relire et corriger. Un fait « oublié » est désactivé, pas effacé.
Veilles d'annonces
Une veille se crée à la voix. Grace repasse toutes les six heures, note chaque annonce sur 100 et ne me dérange que lorsque cela en vaut la peine.
Sources4 catégories
Notation0 à 100
Chaque annonce est comparée à la médiane de sa veille — pour une voiture : prix, kilométrage, année. Le modèle de langage juge ensuite l'adéquation à ma demande et signale les signes d'arnaque.
Dédoublonnageentre sites
Un même bien publié sur plusieurs sites n'est signalé qu'une fois : même prix, même année et même kilométrage pour une voiture ; même prix et même surface pour un logement. Sans ces données, elle ne regroupe pas.
Cadencetoutes les 6 h
Une nouvelle annonce au-dessus du seuil, une baisse de prix d'au moins 5 %, une annonce retenue qui disparaît. Elle lit une veille à la fois, jamais pendant une conversation, en espaçant ses requêtes.
Interface
L'interface est une page web plein écran, installable comme une application sur une tablette. Au centre, une sphère de particules change d'aspect selon l'état : repos, écoute, réflexion, parole.
Chacune est conçue pour tenir sur un écran sans défilement. Des panneaux plus petits accompagnent les réponses : mails, événements, annonces, carte d'approbation.
Au quotidien
Ces situations sont rejouées automatiquement à chaque modification du code. Les données sont celles, fictives, des tests.
Histoire du projet
Le projet est plus ancien que son historique : le dépôt a été créé le 20 septembre 2026 à partir d'un état déjà fonctionnel. Depuis, le rythme ne faiblit pas.
Avant le 20 septembre 2026
Premiers outils en lecture seule (fichiers, agenda, mail), mémoire, file d'approbation, moteur de proactivité, file d'incertitude. Le projet s'appelait alors « Jarvis ».
20 septembre
Autonomie graduée, budget d'interruptions, rapport d'absence, premières veilles d'annonces : 23 commits dans la journée.
21 septembre
Approbations lisibles et modifiables, règles apprises de mes corrections, soldes jamais dits sans code.
22 septembre
Page de suivi des améliorations, découpage du code, boucle de conversation unique avec secours en ligne, supervision.
23 septembre
Météo, finances, domotique, santé, état de Grace ; alerte en cas de présence inattendue. 33 commits : la journée la plus dense.
24 et 25 septembre
Veilles immobilières, centre des veilles, puis filtre des expéditeurs inconnus par un mail de vérification.
2 au 4 octobre
Isolation des bases de test, sauvegarde quotidienne, puis couche de compréhension et fenêtre de contexte du modèle portée à 16 384 jetons.
5 et 6 octobre
Vue des serveurs et des sauvegardes, vue dédiée du rapport d'absence.
Remplacé par : Sur processeur.
La carte de 6 Go est partagée avec la détection vidéo et les modèles de langage : la mémoire saturait.
Remplacé par : Un modèle de 3 milliards ; le plus gros est gardé pour les tâches de fond.
Latence et fiabilité : les deux modèles chargés en permanence ne tenaient pas sur la carte.
Remplacé par : Piper seul.
16 Go de disque et 2,3 Go de mémoire pour un service que je n'utilisais jamais.
Remplacé par : Un routeur d'intention, puis une lecture de compréhension.
Les formulations varient sans cesse ; ajouter un garde-fou à chaque raté ne suffisait pas.
Remplacé par : Seuls les outils du domaine compris lui sont donnés.
Le petit modèle prenait un outil au hasard.
Remplacé par : Des règles fixes.
Un montant ne doit jamais transiter par le modèle.
Remplacé par : 16 384 jetons.
Un tour pèse environ 10 250 jetons : le modèle ne voyait plus ses consignes ni sa mémoire.
Remplacé par : Synchronisation suspendue au premier blocage.
Une cinquantaine de SMS de validation reçus en une journée.
Limites
Un projet honnête dit aussi ce qui coince. Voici les points faibles actuels, sans détour.
Le modèle de conversation est petit. Il choisit parfois un mauvais outil, en invente un, ou raconte une action au lieu de la faire. Une grande partie du code sert à l'encadrer.
Jusqu'à 8 secondes pour le routeur, et 10 à 25 secondes pour un tour de conversation libre.
Au dernier passage, 1 204 tests réussissent sur 1 212. Trois des échecs révèlent un vrai défaut sur la vue santé, à corriger.
La fin de phrase est détectée par un simple seuil de volume, et les satellites demandent encore d'appuyer pour parler.
La reconnaissance du visage est un confort d'accès, pas une protection : elle ne détecte pas la vie.
La lecture des sites d'annonces casse quand un site change sa page ; plusieurs lecteurs ont dû être réparés début octobre.
Tout est écrit pour moi, en français, avec mes services. Rien n'est prévu pour une installation par quelqu'un d'autre.
Garanties
La parole, la voix, la conversation, la mémoire et le journal tournent chez moi. Un modèle en ligne n'intervient que pour des tâches que j'ai choisies, ou en secours.
Le projet est conçu dans une optique d'émancipation et de respect de la vie privée. Aucun profilage publicitaire ni revente d'informations.
Grace assiste mais ne prend jamais le contrôle sans consentement : chaque action à effet réel exige mon approbation explicite.