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.
- 🎙️ 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)
📺 Vidéo / GIF de démo à venir — placeholder.
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
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 (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.
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.pyDis « 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.
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.
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 |
| 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 ( |
docs/google_home.md |
| Alexa / Echo (via API non officielle) | docs/alexa.md |
| Latence perçue (UX) | docs/latency.md |
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.
- 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_pcavec garde-fou ping) - TTS en streaming phrase par phrase (voir docs/latency.md)
- Boucle navigateur en 100 % local : la vision de
qwen3.5lit déjà le texte des boutons (testé) — reste à valider le pilotage complet - Rafraîchissement auto des tokens Instagram entre redémarrages (partiel aujourd'hui)
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).
MIT — voir LICENSE.