Jarvis Assistant Vocal MCP Server
by sosoj92
README.md
# đ€ Jarvis â assistant vocal local
*[English version](README.en.md)*




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. Trois modes au choix :
**hybride**, **qualité** (OpenAI + ElevenLabs) ou **100 % local hors ligne**
(Ollama + Piper).
**đ§ Jarvis + Hermes.** Pour la rĂ©flexion de fond et la recherche, Jarvis **dĂ©lĂšgue Ă
[Hermes](docs/hermes.md)**, 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 OpenAI Platform. L'abonnement ChatGPT est séparé de l'API. 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](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](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](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](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 (OpenAI, ElevenLabs, Twilio, Hermes), plafonds avec alerte vocale Ă 80 % et **bascule auto en local** au plafond ([docs/costs.md](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](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](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](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](docs/overlay.md))
- đ **Google Home / Nest** â *(â ïž expĂ©rimental)* liste des appareils Nest + Ă©tat ([docs/google_home.md](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](docs/alexa.md))
## đŹ DĂ©mo
> đș *VidĂ©o / GIF de dĂ©mo Ă venir â placeholder.*
## đïž Architecture
```mermaid
flowchart LR
Mic([đïž Micro]) --> WW[openWakeWord<br/>« Hey Jarvis »]
WW --> STT[faster-whisper<br/>STT â local]
STT --> LLM{{LLM<br/>OpenAI âïž 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 vs đ Local
| | **cloud** (défaut) | **local** (hors ligne) |
|---|---|---|
| LLM | OpenAI Responses API (`gpt-5.6-terra` / `gpt-6-astra`) | 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](docs/local.md) et [docs/costs.md](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](https://docs.astral.sh/uv/), Windows 11, un micro.
```bash
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 `openai.cle` (mode
cloud) ou un modĂšle local (mode local). Tout le reste est optionnel.
DĂ©butant complet ? Vois **[INSTALL_WITH_AI.md](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](https://claude.ai),
[ChatGPT](https://chat.openai.com), [Gemini](https://gemini.google.com)), colle le
contenu de **[INSTALL_WITH_AI.md](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 :
`cloud`/`openai` (LLM cloud), `tts`/`elevenlabs` (voix), `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 |
|---|---|
| OpenAI / GPT-6 Astra | [docs/openai.md](docs/openai.md) |
| Cloud vs local, Ollama, Piper | [docs/local.md](docs/local.md) |
| Routage 4 backends, coûts & budgets | [docs/costs.md](docs/costs.md) |
| Philips Hue | [docs/hue.md](docs/hue.md) |
| OBS | [docs/obs.md](docs/obs.md) |
| Google Agenda + iCal | [docs/agenda.md](docs/agenda.md) |
| Détection de présence | [docs/presence.md](docs/presence.md) |
| Bot Discord | [docs/discord.md](docs/discord.md) |
| Appels Twilio | [docs/appels.md](docs/appels.md) |
| Navigateur (Chrome CDP) | [docs/navigateur.md](docs/navigateur.md) |
| Réservations web | [docs/reservation.md](docs/reservation.md) |
| Instagram | [docs/instagram.md](docs/instagram.md) |
| Serveur MCP | [docs/mcp.md](docs/mcp.md) |
| Pont iPhone (Raccourcis) | [docs/iphone.md](docs/iphone.md) |
| **Hermes (délégation, cloisonnement)** | [docs/hermes.md](docs/hermes.md) |
| **Hub de contenu (Vault + génération)** | [docs/hub_contenu.md](docs/hub_contenu.md) |
| **Suivi de contenus** | [docs/suivi_contenu.md](docs/suivi_contenu.md) |
| **Panneau web (modÚles · état · permissions)** | [docs/panneau.md](docs/panneau.md) |
| **Extinction / Wake-on-LAN** | [docs/wol.md](docs/wol.md) |
| **Gestes de la main (webcam)** | [docs/gestes.md](docs/gestes.md) |
| **Reconnaissance musicale (Shazam-like)** | [docs/musique.md](docs/musique.md) |
| **Spotify (playlist des musiques reconnues)** | [docs/spotify.md](docs/spotify.md) |
| **Cockpit (tableau de bord perso, local)** | [docs/cockpit.md](docs/cockpit.md) |
| **Overlay de rĂ©ponses (fenĂȘtre flottante)** | [docs/overlay.md](docs/overlay.md) |
| **Google Home / Nest** *(â ïž expĂ©rimental)* | [docs/google_home.md](docs/google_home.md) |
| **Alexa / Echo** *(via API non officielle)* | [docs/alexa.md](docs/alexa.md) |
| **Latence perçue (UX)** | [docs/latency.md](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
- [x] **Délégation à Hermes** (agent délibératif local) + gateway Telegram (whitelist stricte)
- [x] **Hub de contenu** : Vault d'inspirations + génération d'idées/scripts + ingestion YouTube
- [x] **Suivi de contenus** : pipeline idĂ©e â publiĂ©, croisĂ© avec l'agenda
- [x] **Panneau web local** : modÚles · état de la chaßne · permissions **N1/N2/N3** · budget LLM
- [x] **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)
- [x] 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](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](LICENSE).
This server cannot be deployed
Maintenance
ActivityActive
ResponsivenessWithin a week