Projet annexe · en cours · mai 2026

La voix sur les verres, Claude sur le serveur.

Un exocortex IA personnel accessible via les lunettes connectées Even Realities G2. Requête vocale sur les verres, pipeline complet tournant sur une infrastructure auto-hébergée sur un serveur Fedora, le tout routé par Claude Max OAuth, de sorte qu'il n'y a pas de facturation API au token. Multilingue dès le premier jour (anglais, allemand, russe, français) avec une base de connaissances personnelle qui s'ingère en arrière-plan.

4 langues opérationnelles ~1-3 s aller-retour Sonnet depuis les verres $0 coût marginal API (Claude Max OAuth) 1 service toujours actif (Meridian) Jour 5 · processus de base achevé
Le préambule

La conversation comme entrée principale.

S'asseoir devant un portable, ouvrir un terminal, taper une question ; toute cette boucle est trop lourde pour la majorité de ce que je veux demander à une IA dans une journée. Les lunettes suppriment la boucle. La voix entre par le micro à conduction osseuse, quelques secondes plus tard la réponse vit sur les verres. Aucun appareil sorti de la poche, aucune appli ouverte, aucun changement de contexte.

Le but n'est pas de remplacer le portable pour le vrai travail ; c'est de faire que les questions à dix secondes prennent réellement dix secondes, au lieu d'une minute de friction qui fait qu'elles ne sont jamais posées.

Architecture

Auto-hébergée, de bout en bout.

La voix et l'affichage se passent sur les lunettes. Tout le reste tourne sur un serveur Fedora à la maison. Les lunettes joignent le serveur via Tailscale, donc la latence reste à ~6 ms même quand je ne suis pas au bureau.

G2 glasses 16 shades green HUD Pixel 7 Tailscale node Fedora server Even Terminal :3456 patched Claude Code OpenKB 44 docs indexed Meridian Sonnet 4.6 router Notion notes / journal Asana tasks All endpoints reached via MCP, scoped per query
Lunettes G2                  (voix en entrée, affichage sur les verres)
    ↓ Bluetooth
Téléphone Pixel 7            (appli compagnon Even Realities)
    ↓ Tailscale (LAN, ~6 ms)
Serveur Fedora 43
    ↳ Even Terminal :3456     (le pont des lunettes vers Claude)
        ↳ Claude Code         (patché : Sonnet par défaut, MCP en allowlist)
            ↳ CLAUDE.md       (source unique de vérité pour le routage d'outils)
            ↳ openkb MCP      (base de connaissances personnelle, stdio FastMCP)
                ↳ CLI openkb
                    ↳ LiteLLM → Meridian :4000 → Claude Max OAuth
                        ↳ Sonnet 4.6
            ↳ MCPs Notion / Asana / Calendar / Gmail
            ↳ opus-thinker     (sous-agent, sur le mot littéral "opus")

Une unité systemd (Meridian) est toujours active ; tout le reste se lance à la demande. Les serveurs MCP sont des sous-processus stdio que Claude Code lance quand un outil est appelé ; pas de démon, pas de port, pas de conteneur.

Ce qui marche de bout en bout

Vérifié, sur les verres.

Statut au jour cinq : chacun de ces chemins tourne proprement d'une invite vocale à un affichage sur les verres. La balise entre crochets est le signal de modèle + outil que chaque réponse porte, pour que je sache toujours quel chemin a servi la requête.

Requête directe sur les connaissances
[sonnet] · ~1-3 s
Voix en entrée, Sonnet 4.6 répond depuis l'entraînement, les verres affichent le résultat. Le chemin par défaut pour la plupart des questions.
Récupération depuis la KB personnelle
[sonnet + 1 appel d'outil] · ~5-10 s
Invocation explicite qui lit le wiki openkb local : contrats, documents de custody, recherche, tout ce qui a été ingéré.
Écritures vers Notion à la voix
[sonnet + 1 appel d'outil]
« Enregistre ceci dans Notion sous X » crée une page dans le bon teamspace. Les règles de routage vivent dans CLAUDE.md.
Raisonnement profond à la demande
[sous-agent opus] · ~30-60 s
Le mot littéral « opus » dans une invite escalade vers un sous-agent claude-opus-4-7. Lent à dessein, pour les questions dures.
Services qui se réparent
systemd
Meridian et Even Terminal redémarrent tous deux automatiquement. Les logs s'écoulent dans journalctl. Capot fermé en charge laisse la boîte tourner.
Bilan de santé six-sur-six
une commande
Un script unique vérifie les six pièces mobiles : Even Terminal à l'écoute, Meridian qui répond, openkb joignable, MCP enregistré, CLI claude authentifiée, Tailscale en service.
Leçons gagnées de haute lutte

Les choses qui m'ont coûté une soirée.

Cache d'auth Boucle de 401 sur token périmé. Modifier le token d'auth dans l'appli compagnon ne suffit pas ; l'appli met en cache les sessions. Il faut force-stop l'appli, la rouvrir, recoller le token, sonder et sauvegarder. Sans le force-stop, des centaines de 401 s'empilent dans le log du pont et les requêtes des verres pendent à l'infini.
Type systemd Type=forking + tmux survit au restart. La session tmux de l'unité du pont préserve l'auth à travers systemctl restart ; on peut patcher et redémarrer sans rappairer le téléphone. Type=simple fait l'inverse. Appris à la dure après quatre re-pairages.
Hygiène des clés API Annuler ANTHROPIC_API_KEY partout. Si elle est définie dans n'importe quel shell, LiteLLM contourne silencieusement le proxy Meridian et facture la vraie API. Tout l'intérêt du routage par Claude Max OAuth est de garder le coût marginal à zéro ; une variable d'environnement égarée brûle ça.
Choix du modèle openkb compile sur Sonnet, pas Haiku. Le document d'architecture initial disait Haiku pour l'étape de compilation du wiki. En pratique Sonnet 4.6 produit un liage conceptuel plus fort et des graphes inter-documents plus denses, et la différence de vitesse n'importe pas pour un job en arrière-plan.
Escalade en opt-in Opus est uniquement en opt-in. Sonnet par défaut pour la vitesse, escalade vers claude-opus-4-7 uniquement quand l'invite contient littéralement « opus » ou « use opus ». Chaque réponse porte une étiquette ([sonnet], [sonnet + N appels d'outils], [sous-agent opus]) pour qu'on sache toujours quel chemin a répondu.
Pile & statut

Honnête sur ce qu'il y a dans la boîte.

Matériel
Lunettes connectées Even Realities G2 · téléphone Pixel 7 · serveur Fedora 43 à la maison · bague intelligente en capture biométrique secondaire. Mesh Tailscale entre tous.
Modèles
Claude Sonnet 4.6 par défaut (claude-sonnet-4-6), Claude Opus 4.7 (claude-opus-4-7) en opt-in. Tous deux routés par Meridian, qui parle à Claude Max via OAuth.
Pont
Even Terminal (vendoré, patché sur place) sur :3456. Le patch est idempotent et survit aux mises à jour npm.
Connaissance
openkb, une KB personnelle auto-hébergée avec une interface stdio FastMCP. Compile un wiki interrogeable à partir de PDFs, contrats, notes de recherche, journaux. Sonnet 4.6 fait la compilation.
Routage d'outils
Un CLAUDE.md chargé automatiquement dans chaque session via --setting-sources=user,project. Règles explicites : openkb uniquement sur invocation explicite, Notion pour « mes notes », recherche web pour l'actualité, interne pour le reste.
Toujours actif
Une unité systemd (meridian.service, Type=simple). Tout le reste se lance à la demande.
Langues
Anglais, allemand, russe, français, utilisés en direct ; corpus juridique et fiscal en ingestion nocturne dans chacune.
Et ensuite
Capture vidéo en POV depuis les verres dans une boucle de mémoire passive ; une pipeline de briefing matinal consciente du calendrier ; un swarm d'agents pour la vie personnelle dans l'esprit de DevSwarm mais pour du travail hors dev.