Sandbox
@sosoj92/jarvis-assistant-vocal

Local voice assistant for Claude, Ollama, and MCP

Jarvis is a French voice assistant that runs on your machine and talks to a mix of local and cloud services. It can listen, reason, speak, and call tools for browser work, home automation, calendar, OBS, Twilio, and other connected tasks. The project also includes Hermes delegation, a local web panel, security levels for tools, and an MCP server so other clients can use selected capabilities. Most integrations are optional and controlled from one `config.yaml`.

250 stars48 forksPythonUpdated 16d ago
Who it's for

Builders who want a local French assistant that can act on their computer, browser, and connected services.

What it delivers

You can control many day-to-day tasks by voice without stitching together separate tools yourself.

What it does

Voice-first interaction

Uses a wake word, local transcription, and spoken replies so you can talk to it hands-free.

Cloud or local mode

Runs with Claude and ElevenLabs, or fully offline with Ollama and Piper.

Browser and reservation control

Uses Playwright and Chrome/CDP to read tabs, manage pages, and complete web reservations.

Home and PC actions

Controls Hue lights, OBS, apps, media, volume, and system actions on Windows.

Calendar, mail, and messages

Handles Google Calendar, Gmail summaries, Discord updates, Instagram stats, and related workflows.

Twilio call support

Can place phone calls, play messages, or run a live conversation through Twilio.

Hermes delegation

Delegates deeper thinking and research to a separate local agent while Jarvis keeps execution rights.

MCP server

Exposes selected Jarvis tools to MCP clients such as Claude Desktop.

How to get it

  1. 1Pré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

README

🤖 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

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)
LLMClaude (API Anthropic)Ollama (qwen3.5:4b…)
VoixElevenLabsPiper (français)
Transcriptionfaster-whisper (local)faster-whisper (local)
Qualitémaximalebonne (selon le modèle)
Coûtà l'usagegratuit
Vie privéeappels APIrien ne sort de la machine
MatériellégerGPU 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égrationGuide
Cloud vs local, Ollama, Piperdocs/local.md
Routage 4 backends, coûts & budgetsdocs/costs.md
Philips Huedocs/hue.md
OBSdocs/obs.md
Google Agenda + iCaldocs/agenda.md
Détection de présencedocs/presence.md
Bot Discorddocs/discord.md
Appels Twiliodocs/appels.md
Navigateur (Chrome CDP)docs/navigateur.md
Réservations webdocs/reservation.md
Instagramdocs/instagram.md
Serveur MCPdocs/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 contenusdocs/suivi_contenu.md
Panneau web (modèles · état · permissions)docs/panneau.md
Extinction / Wake-on-LANdocs/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.

Files in the repo

Repository payload39 top-level entries
  • core
  • docs
  • finances
  • gestes
  • jarvis
  • musique
  • satellite_pi
  • scripts
  • src
  • tools
  • web
  • .gitignore
  • .python-version
  • CHANGELOG.md
  • Chrome + Jarvis.bat
  • Chrome-Jarvis.ps1
  • config.example.yaml
  • contenus.example.yaml
  • CONTRIBUTING.md
  • hud.html
  • hud.py
  • INSTALL_WITH_AI.en.md
  • INSTALL_WITH_AI.md
  • jarvis14.py
  • lancer_jarvis.bat
  • lancer_serveur_mcp.bat
  • LICENSE
  • mettre_a_jour_jarvis.bat
  • overlay.py
  • pyproject.toml
  • README.en.md
  • README.md
  • requirements.txt
  • sauvegarder_jarvis.bat
  • scenes.example.yaml
  • SECURITY.md
  • tester_agenda.py
  • tester_instagram.py
  • uv.lock

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More other

🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. 🖼️ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images & video — real files, HTML/PDF/PPTX/MP4 export. 🤖 Claude Code / Codex / Cursor / DeepSeek Harness / OpenCode & 20+ CLIs via BYOK.

95k
HKUDS/
Vibe-Trading

"Vibe-Trading: Your Personal Trading Agent"

33k
tinyhumansai/
openhuman

OpenHuman is an open source personal AI for Mac, Windows and Linux — local-first memory, agent orchestration, and deep research.

40k

Your Personal AI Assistant; easy to install, deploy on your own machine or on the cloud; supports multiple chat apps with easily extensible capabilities.

35k