Skip to content

Latest commit

 

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Jarvis — assistant vocal local

English version

Python License Platform Mode

Un assistant vocal en français qui tourne sur ta machine. Dis « Hey Jarvis », parle naturellement : il raisonne avec un LLM, utilise une boîte à outils extensible (domotique, PC, web, téléphone…) et te répond à voix haute. Deux modes au choix, en une ligne de config : cloud (Claude + ElevenLabs) ou 100 % local hors ligne (Ollama + Piper).

🧠 Jarvis + Hermes. Pour la réflexion de fond et la recherche, Jarvis délègue à Hermes, un agent délibératif qui tourne en local (conteneur Docker). La doctrine est nette : Hermes orchestre et pense ; Jarvis détient les clés et le corps — c'est toujours Jarvis qui exécute les actions, jamais Hermes, et aucun identifiant ne vit dans l'environnement d'Hermes (il lit le Vault et les outils sûrs, écrit seulement des brouillons).

Projet perso partagé tel quel. Cible Windows 11, nécessite un micro et (en mode cloud) une clé API Anthropic. La plupart des intégrations sont optionnelles et se désactivent proprement si non configurées.

✨ Fonctionnalités

  • 🎙️ Tout à la voix — mot d'activation (openWakeWord), transcription locale (Whisper), réponses parlées
  • 👁️ Vision de l'écran — « c'est quoi cette erreur ? », « lis ça », « traduis » (capture → LLM)
  • 💡 Domotique — Philips Hue (allumer, luminosité, couleur), ambiances/scènes
  • 🎬 Streaming — contrôle d'OBS (direct, enregistrement, scènes, replay)
  • 🖥️ Contrôle PC — lancer des apps, média/volume, stats GPU/CPU/RAM en direct
  • 📅 Agenda — Google Agenda sur tous tes agendas (y compris abonnés iCal), création/suppression avec confirmation
  • 📧 Mail — résumés Gmail et rédaction
  • 💬 Discord — mentions + récap des messages du jour
  • 📸 Instagram — abonnés & vues des vidéos vs la veille (multi-comptes)
  • 🍽️ Réservations web — réserve resto/rendez-vous via un vrai navigateur (Playwright)
  • 🌐 Assistant navigateur — résume/traduit l'onglet actif, gère les onglets, agit sur les pages (ton vrai Chrome)
  • 📞 Appels téléphoniques — Twilio : jouer un message, ou une vraie conversation temps réel
  • 🧠 Mémoire long terme — retient tes préférences, tes proches, tes projets
  • 📱 Pont iPhone — envoie idées/notes et commandes depuis l'app Raccourcis (Siri comme télécommande à distance)
  • 🎭 Personnalités — majordome sarcastique, neutre, concis — changeable à la voix
  • 🏠 Présence — ping ton téléphone, déclenche des scènes quand tu pars/reviens
  • 🌤️ Utilitaires — météo, minuteurs, heure/date
  • 🔌 Serveur MCP — expose les outils domotique/PC à tout client MCP (Claude Desktop, Hermes…)
  • 🎬 Hub de contenu — vault d'inspirations Insta/TikTok (télécharge, transcrit, indexe), idées & scripts générés, ingestion YouTube (docs/hub_contenu.md)
  • 🗂️ Suivi de contenus — pipeline vidéo idée → script → tournage → montage → publié, croisé avec ton agenda ; « où j'en suis ? » (docs/suivi_contenu.md)
  • 🤝 Délégation à Hermes — confie la réflexion / recherche de fond à un agent délibératif local (doctrine : Jarvis tient les clés & le corps, Hermes pense) (docs/hermes.md)
  • 🧭 Panneau web local (/panneau) — modèles (LLM Ollama + Whisper, reco selon la VRAM), état de la chaîne, permissions — accessible en local uniquement (docs/panneau.md)
  • 🔐 Sécurité graduée — niveaux N1/N2/N3 par outil, « toujours autoriser » révocable, budget LLM par fournisseur
  • 💸 Routage & budgets — 4 backends (local / hybride / qualité), suivi des coûts jour/mois par fournisseur (Claude, ElevenLabs, Twilio, Hermes), plafonds avec alerte vocale à 80 % et bascule auto en local au plafond (docs/costs.md)
  • Extinction / réveil du PC — extinction propre à la voix (confirmation N3, délai annulable) ; réveil par prise connectée ou Wake-on-LAN (docs/wol.md)
  • Gestes de la main — pilote lumières / média / OBS d'un geste via webcam, 100 % local (MediaPipe en sous-process isolé, aucune image ne sort) (docs/gestes.md)
  • 🎵 Reconnaissance musicale — « c'est quoi cette musique ? » (micro de la pièce ou son d'une vidéo/reel via loopback), à la demande uniquement (docs/musique.md)
  • 🪟 Overlay de réponses — mini-fenêtre flottante qui affiche à l'écrit ce que Jarvis dit, sans jamais voler le focus (topmost, clic-transparent, invisible en stream), 2e écran configurable + mode silencieux visuel (docs/overlay.md)
  • 🏠 Google Home / Nest(⚠️ expérimental) liste des appareils Nest + état (docs/google_home.md)
  • 🔵 Alexa / Echo(via API non officielle) annonces/TTS, média, et contrôle d'appareils via Routines (« allume la clim », « éteins la télé ») (docs/alexa.md)

🎬 Démo

📺 Vidéo / GIF de démo à venir — placeholder.

🏗️ Architecture

flowchart LR
    Mic([🎙️ Micro]) --> WW[openWakeWord<br/>« Hey Jarvis »]
    WW --> STT[faster-whisper<br/>STT — local]
    STT --> LLM{{LLM<br/>Claude ☁️ OU Ollama 🏠}}
    LLM <-->|appels d'outils| TOOLS[🧰 Outils]
    LLM --> TTS{{TTS<br/>ElevenLabs ☁️ OU Piper 🏠}}
    TTS --> SPK([🔊 Haut-parleurs])

    TOOLS -.-> HOME[💡 Hue / 🎬 OBS / 🖥️ PC]
    TOOLS -.-> NET[📅 Agenda / 📧 Mail / 💬 Discord / 📸 Instagram]
    TOOLS -.-> CDP[🌐 Chrome via CDP]
    TOOLS -.-> TW[📞 Appels Twilio]
    TOOLS -.->|délègue la réflexion| HERMES[🧠 Hermes<br/>agent délibératif local]
    TOOLS -.-> MCP[[🔌 Serveur MCP]]
    HERMES -.->|lit les outils sûrs| MCP
    MCP -.-> EXT[Claude Desktop / autres clients]
    PANEL[🧭 Panneau web local<br/>modèles · état · permissions] -.-> TOOLS
Loading

Jarvis tient les clés & le corps (il exécute) ; Hermes pense (réflexion, recherche, analyse du Vault). Hermes ne voit que les outils sûrs exposés par le serveur MCP de Jarvis.

☁️ Cloud vs 🏠 Local

cloud (défaut) local (hors ligne)
LLM Claude (API Anthropic) Ollama (qwen3.5:4b…)
Voix ElevenLabs Piper (français)
Transcription faster-whisper (local) faster-whisper (local)
Qualité maximale bonne (selon le modèle)
Coût à l'usage gratuit
Vie privée appels API rien ne sort de la machine
Matériel léger GPU recommandé

Bascule en une ligne : mode: local, hybride (défaut) ou qualite — ou à la voix « passe en local ». Voir docs/local.md et docs/costs.md pour le bilan honnête de fiabilité (un modèle 7B gère bien les outils domotique/PC ; les features à vision comme le navigateur & les réservations restent cloud recommandé).

Matériel local (honnête) : Whisper medium ≈ 2–3 Go VRAM, qwen3.5:4b (Q4) ≈ 3 Go — une carte 6 Go (RTX 2060/3060) fait tourner les deux confortablement. Le qwen3.5:9b (~6 Go) demande plus de marge. Piper est temps réel sur CPU. python scripts/doctor.py conseille le modèle selon ta VRAM.

🚀 Démarrage rapide

Prérequis : Python 3.13, uv, Windows 11, un micro.

uv sync
uv run playwright install chromium        # pour les réservations / le navigateur
copy config.example.yaml config.yaml      # puis remplis ce dont tu as besoin
uv run python jarvis14.py

Dis « Hey Jarvis ». Le seul réglage strictement requis est anthropic.cle (mode cloud) ou un modèle local (mode local). Tout le reste est optionnel.

Débutant complet ? Vois INSTALL_WITH_AI.md — à coller dans n'importe quelle IA gratuite, elle t'installe tout pas à pas. Ou lance l'installateur interactif : python scripts/setup.py. Un souci ? python scripts/doctor.py diagnostique.

🤝 Se faire aider par une IA (gratuitement)

Pour INSTALLER (aucune connaissance requise) — l'option zéro friction : ouvre n'importe quel chatbot gratuit (Claude.ai, ChatGPT, Gemini), colle le contenu de INSTALL_WITH_AI.md, et laisse-toi guider.

Pour MODIFIER / bidouiller le code, plusieurs options gratuites :

  • 🏠 Cline ou Aider + Ollama — un assistant de code 100 % local et gratuit, dans l'esprit du projet. Le must si tu veux rester hors ligne.
  • Gemini CLI — gratuit, limites généreuses, agentique dans le terminal.
  • GitHub Copilot Free — niveau gratuit dans VS Code.
  • Cursor (offre gratuite) — pratique pour découvrir, mais limité.
  • Claude Code — si tu l'as (c'est ce qui a construit ce projet).

Aucun outil n'est imposé : prends celui qui te convient.

⚙️ Configuration

Tout est dans un unique config.yaml non versionné (copié depuis config.example.yaml, qui documente chaque clé). Nouvelles sections côté config : hermes (délégation), integrations/hub (Vault + génération), suivi (pipeline de contenus), securite.toujours (autorisations N2 mémorisées), budget.prix (coût LLM), serveur/pont_iphone. Guides par intégration :

Intégration Guide
Cloud vs local, Ollama, Piper docs/local.md
Routage 4 backends, coûts & budgets docs/costs.md
Philips Hue docs/hue.md
OBS docs/obs.md
Google Agenda + iCal docs/agenda.md
Détection de présence docs/presence.md
Bot Discord docs/discord.md
Appels Twilio docs/appels.md
Navigateur (Chrome CDP) docs/navigateur.md
Réservations web docs/reservation.md
Instagram docs/instagram.md
Serveur MCP docs/mcp.md
Pont iPhone (Raccourcis) docs/iphone.md
Hermes (délégation, cloisonnement) docs/hermes.md
Hub de contenu (Vault + génération) docs/hub_contenu.md
Suivi de contenus docs/suivi_contenu.md
Panneau web (modèles · état · permissions) docs/panneau.md
Extinction / Wake-on-LAN docs/wol.md
Gestes de la main (webcam) docs/gestes.md
Reconnaissance musicale (Shazam-like) docs/musique.md
Spotify (playlist des musiques reconnues) docs/spotify.md
Cockpit (tableau de bord perso, local) docs/cockpit.md
Overlay de réponses (fenêtre flottante) docs/overlay.md
Google Home / Nest (⚠️ expérimental) docs/google_home.md
Alexa / Echo (via API non officielle) docs/alexa.md
Latence perçue (UX) docs/latency.md

🛡️ Éthique & Sécurité

La confiance est intégrée, pas rajoutée :

  • Confirmation vocale avant toute action irréversible (envoi de mail, réservation, suppression, appel…).
  • Les appels se présentent honnêtement : « Bonjour, je suis l'assistant vocal automatisé de [prénom]… » — jamais en se faisant passer pour un humain.
  • Jamais de mot de passe ni de données bancaires saisis, jamais de paiement automatique.
  • Domaines protégés (banque, impôts, santé) sur ton vrai navigateur = lecture seule.
  • Secrets & données perso jamais versionnés (config.yaml, mémoire, logs, transcriptions d'appels, tokens OAuth — tous gitignorés).
  • Au téléphone, Jarvis ne confirme que ce que tu as validé avant l'appel.
  • Niveaux de permission N1/N2/N3 : chaque outil a un niveau — N1 sûr (auto, local + iPhone), N2 sensible (confirmation ; « toujours autoriser » révocable), N3 critique (confirmation à chaque fois, jamais mémorisable, jamais à distance). Extinction du PC, mails, appels, réservations = N3.
  • Pont iPhone : à distance, seuls les outils sûrs (N1) s'exécutent ; toute action sensible est refusée (« à faire à la voix à la maison »). Un token volé ne peut qu'allumer/éteindre des lumières.
  • Cloisonnement Hermes : Hermes lit le Vault et les outils en lecture seule, écrit uniquement des brouillons — aucun credential dans son environnement.

🗺️ Roadmap

  • Délégation à Hermes (agent délibératif local) + gateway Telegram (whitelist stricte)
  • Hub de contenu : Vault d'inspirations + génération d'idées/scripts + ingestion YouTube
  • Suivi de contenus : pipeline idée → publié, croisé avec l'agenda
  • Panneau web local : modèles · état de la chaîne · permissions N1/N2/N3 · budget LLM
  • Extinction propre du PC (N3, délai annulable) — réveil par prise connectée / Wake-on-LAN
  • Contrôle des lampes vidéo Godox (aujourd'hui Hue seulement)
  • Notes / idées (+ pont iPhone via Raccourcis) — rappels programmés à venir
  • Pilotage direct de la prise connectée par Jarvis (rallumer_pc avec garde-fou ping)
  • TTS en streaming phrase par phrase (voir docs/latency.md)
  • Boucle navigateur en 100 % local : la vision de qwen3.5 lit déjà le texte des boutons (testé) — reste à valider le pilotage complet
  • Rafraîchissement auto des tokens Instagram entre redémarrages (partiel aujourd'hui)

🤝 Contribuer

Ajouter un outil = un seul fichier dans tools/ avec un décorateur @outil(...) — il est auto-découvert, aucun câblage. Issues et PR bienvenues. Merci de ne jamais committer de vrais secrets (vois .gitignore).

📄 Licence

MIT — voir LICENSE.

About

Assistant vocal local en francais : Claude ou Ollama (offline), domotique Hue, OBS, agenda, navigateur, appels Twilio, serveur MCP. Python.

Topics

Resources

Contributing

Stars

180 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages