Cornelius transforme un écran, tel quel ou glissé derrière un miroir sans tain, en assistant pour toute la famille. Il reconnaît qui se présente devant lui, ouvre la conversation quand on le regarde ou qu’on l’appelle par son nom, et répond à la voix avec des cartes qui s’affichent sur le miroir : la météo, le prochain bus, la lumière du salon, un souvenir, une image…
Par défaut, la caméra, les visages et l’écoute du mot d’appel restent sur le serveur Cornelius. En option, la caméra du navigateur envoie ses images au serveur sur le réseau local chiffré, pour la même analyse locale. Seule la conversation passe par OpenAI, et seulement quand elle est ouverte.
| En français, avec une voix naturelle, et affiche ses réponses sous forme de cartes sur le miroir. | Il ouvre la conversation quand une personne se présente, le regarde ou dit « Cornelius ». Le modèle du mot d’appel est fourni et tourne en local. |
| Les visages sont reconnus sur l’ordinateur lui-même, avec un mode vie privée quand plusieurs personnes sont devant le miroir. | L’heure, la météo et les prochains passages de bus ou de RER, à la demande ou affichés en permanence. |
| Avec Home Assistant ou des commandes HTTP, et il confie les tâches longues à des agents Hermes. | Des souvenirs propres à chaque personne, que chacun peut consulter, corriger ou effacer. |
| En option, il décrit ce que montre la caméra et crée des images, sur l’ordinateur ou avec OpenAI, puis les envoie par e-mail sur le téléphone de la famille. | Des modules ajoutent de nouvelles informations et de nouveaux outils vocaux. Les modules externes vivent dans cornelius-modules et se mettent à jour à part. |
| Quand personne n’est là, le miroir affiche des peintures du domaine public ou vos photos ; l’orbe les efface à votre retour. | Des satellites audio (micro et haut-parleur) répondent à « Cornelius » ailleurs dans la maison. |
| 💻 Ordinateur | x86-64 ou ARM64 sous Linux (Debian, Ubuntu, Arch ou une dérivée), Windows 10 et 11, ou un Raspberry Pi 4 ou 5 sous Raspberry Pi OS 64 bits (sans vision locale ni images locales) |
| 🎥 Matériel | une webcam, un micro, des haut-parleurs et un écran (seul, ou derrière un miroir sans tain) |
| 🛠️ Logiciels | Node.js 24 (24.2 ou plus récent), Python 3.12 et Git |
| 🔑 Clé OpenAI | d’un compte payant : sans elle, Cornelius ne peut pas parler |
| ➕ En option | une carte graphique pour la vision et les images, un jeton Météo Concept pour la météo, un jeton PRIM pour les transports d’Île-de-France, des satellites audio (Waveshare ESP32-S3-AUDIO-Board) pour parler à Cornelius depuis d’autres pièces |
Récupérez les outils de base et le code (sur Arch : sudo pacman -S git curl unzip) :
sudo apt install git curl unzip
git clone https://github.com/lfpoulain/Cornelius.git
cd Cornelius
node --versionTip
Si la dernière commande n’affiche pas v24.2 ou plus récent dans la version 24 (cas d’Ubuntu et Debian), installez fnm, un gestionnaire de versions de Node.js sans droits administrateur, puis ouvrez un nouveau terminal et revenez dans le dossier :
curl -fsSL https://fnm.vercel.app/install | bashLancez ensuite l’installation. Elle installe Node.js 24 avec fnm, les dépendances, la perception et ses modèles, puis crée deux services qui démarrent avec la session :
scripts/install-linux.sh --system-deps --systemdSans l’option --systemd, démarrez ensuite avec scripts/start.sh. Toutes les options : Installer sous Linux.
Il n’y a pas d’installateur : l’installation se fait en une dizaine de commandes PowerShell. Suivez Installer sous Windows.
Avec Home Assistant OS, Cornelius peut tourner comme add-on sur la box, le miroir s’affichant sur un autre appareil. Ajoutez le dépôt cornelius-ha à la boutique de Home Assistant, puis suivez Installer dans Home Assistant.
Ouvrez l’administration et collez votre clé OpenAI dans Mise en route → Clés et jetons : elle compte tout de suite.
Important
Le mot de passe de départ de l’administration est cornelius. Changez-le tout de suite dans Mise en route → Mot de passe administrateur.
Avec les services systemd sous Linux, Cornelius démarre tout seul. Sinon, utilisez les scripts :
| Action | Linux | Windows (PowerShell) |
|---|---|---|
| Démarrer | scripts/start.sh |
powershell -ExecutionPolicy Bypass -File scripts\start.ps1 |
| Arrêter | scripts/stop.sh |
powershell -ExecutionPolicy Bypass -File scripts\stop.ps1 |
| Redémarrer | scripts/restart.sh |
powershell -ExecutionPolicy Bypass -File scripts\restart.ps1 |
| Avec systemd | systemctl --user restart cornelius cornelius-perception |
start compile l’interface si besoin, puis lance le serveur et la perception (le programme local qui lit la caméra et écoute le mot d’appel).
Ouvrez ensuite, dans un navigateur de la même machine :
| Adresse | ||
|---|---|---|
| 🪞 Le miroir | http://127.0.0.1:3000/ | Touchez Activer la voix, puis passez en plein écran avec F11. |
| ⚙️ L’administration | http://127.0.0.1:3000/admin | La rubrique Mise en route indique ce qu’il reste à faire. |
📱 Depuis un téléphone ou un autre ordinateur de la maison, utilisez https://<adresse de l’ordinateur>:3443/ : voir Accès depuis le réseau local.
- Connectez-vous à l’administration et lisez la rubrique Mise en route.
- Choisissez la caméra dans Caméra et reconnaissance.
- Cliquez sur Activer et ouvrir le miroir et acceptez l’accès au micro.
- Ajoutez les personnes du foyer et mémorisez leur visage dans Le foyer et les visages.
- Choisissez ce qui ouvre la conversation dans Quand il écoute, puis dites « Cornelius » !
Le pas à pas complet est dans Premier démarrage.
Toute la documentation part de l’index.
| Installer | Linux · Raspberry Pi · Windows · Home Assistant · Carte graphique |
| Utiliser | Le miroir · L’administration · Dépannage |
| Fonctionnalités | Ouverture et présence · Mot d’appel · Mémoire · Home Assistant · Agents Hermes · Vision locale · Images · E-mail |
| Modules | Les utiliser · Le contrat · En créer un (dépôt cornelius-modules) |
| Développer | Développement · Architecture · Contribuer · Historique |
| Référence | Configuration · Confidentialité · Licences · Glossaire |
- 🎥 Les images et les signatures de visage sont analysées sur le serveur Cornelius. Avec la caméra du navigateur, les images traversent le réseau local chiffré sans être enregistrées.
- 🎙️ Le mot « Cornelius » est reconnu en local : en veille, le son ne quitte pas l’ordinateur.
- 💬 La voix et le texte partent chez OpenAI seulement pendant une conversation. Cornelius n’enregistre ni image, ni son, ni transcription sur le disque.
Caution
Le dossier data/ (base de données, signatures des visages, souvenirs) et le fichier .env ne doivent jamais être publiés.
Le détail est dans Confidentialité.
Le modèle qui reconnaît « Cornelius » est fourni dans models/cornelius.onnx, prêt à l’emploi. Il a été entraîné à partir de voix françaises de synthèse avec wakeword-generator, notre générateur de mots d’appel en français, publié à part. Vous pouvez vous en servir pour entraîner votre propre version, ou un tout autre mot.
Cornelius est distribué sous la PolyForm Noncommercial License 1.0.0.
| ✅ Permis | ❌ Interdit |
|---|---|
L’utiliser, le partager et le modifier pour un usage non commercial (personnel, associatif, éducatif, recherche), en gardant la ligne Required Notice du fichier LICENSE |
Tout usage commercial, sauf accord écrit des auteurs |
Ce n’est pas une licence « open source » au sens de l’OSI, puisqu’elle exclut l’usage commercial. Les bibliothèques, polices et modèles utilisés gardent leur propre licence : voir THIRD_PARTY_NOTICES.md et Licences. Le modèle du mot d’appel est sous CC BY-NC-SA 4.0 (voir models/cornelius.onnx.LICENSE).
Fait avec ❤️ par Les Frères Poulain
Si le projet vous plaît, laissez une ⭐ au dépôt et passez voir la chaîne !