🤖 JARVIS Local

Ton assistant vocal personnel, façon Iron Man, 100 % sur ton PC. Aucune clé API, rien ne sort de la machine.

Tu parles à une orbe futuriste. JARVIS te répond à la voix, et il sait vraiment faire des choses :

  • 🗣️ Conversation vocale mains libres : il détecte tout seul quand tu as fini de parler, et tu peux lui couper la parole
  • 🛠️ Vraies tâches sur ta machine : il délègue à un agent Claude Code branché sur le modèle local (fichiers, code, analyses…) et te résume le résultat
  • 🚀 Lancer tes applications sur l'écran de ton choix (« Mets Spotify sur l'écran de gauche »)
  • 🌐 Ouvrir des sites (« Ouvre mes emails »)
  • 📊 Cartes, rapports et graphiques directement sur l'interface
  • ❌ Annuler une tâche à la voix ou d'un clic

🧱 La stack

Brique Outil Où ça tourne
Détection de fin de parole Silero VAD (ONNX) CPU, ~0,1 ms par trame
Oreille faster-whisper large-v3-turbo (int8) GPU, ~0,2 s par phrase
Cerveau Qwen3-30B-A3B Instruct (MoE) via Ollama GPU, ~250 tokens/s
Voix Kokoro 82M (ONNX) GPU, ~0,1-0,25 s par phrase
Agent de tâches Claude Code : tâches simples sur le modèle local (via Ollama), tâches complexes sur ton abonnement Claude GPU / cloud
micro ─WebSocket PCM 16 kHz─► Silero VAD ─► Whisper ─► Qwen3 (+ outils) ─► Kokoro ─► haut-parleurs
                                                          │
                                                          └─► delegate_task ─► claude -p (sur Ollama)

La réponse est lue par morceaux pendant que le modèle écrit encore : le premier son arrive ~0,8 s après la fin de ta phrase (affiché dans la console : « 1er son … »).

Ce que JARVIS sait faire en plus

  • Mémoire : « Souviens-toi que… » / « Oublie… ». Les faits sont gardés dans memory.json (modifiable à la main) et rechargés à chaque session.
  • Notifications Windows à la fin de chaque tâche, et sur demande (« préviens-moi… »).
  • Routage des tâches : il choisit lui-même local ou Claude selon la difficulté ; dis « avec Claude » ou « en mode cloud » pour forcer Claude.
  • Heure et date instantanées (sans passer par l'agent).
  • Phrases avec hésitation : si tu reprends la parole moins d'une seconde après une pause, JARVIS abandonne sa réponse et recolle les deux morceaux.
  • Corrections de transcription : corrections.json (« MediaOne » → « Mediawan »…), pris en compte sans redémarrer.
  • Journal : chaque session est enregistrée dans logs/AAAA-MM-JJ.log (ce qu'il a entendu, ses réponses, ses outils, la latence).

📋 Prérequis

  • Windows, GPU NVIDIA (testé sur RTX 5090 32 Go ; 24 Go = prends un modèle plus petit, voir plus bas)
  • Python (n'importe quelle version récente : l'installeur crée un environnement 3.12)
  • Ollama
  • Optionnel, pour les tâches : Node.js + Claude Code (npm install -g @anthropic-ai/claude-code). Pas besoin de compte en mode ollama.

⚙️ Installation

📘 Guide pas à pas complet (versions testées, vérifications, réinstallation sur un nouveau PC) : INSTALL.md

powershell -ExecutionPolicy Bypass -File install.ps1

Le script crée .venv, installe les dépendances, télécharge Kokoro et Silero dans models/, puis fait ollama pull qwen3:30b-a3b-instruct-2507-q4_K_M. Whisper se télécharge tout seul au premier démarrage.

⚡ Réglage Ollama recommandé

Par défaut, Ollama ne traite qu'une requête à la fois : pendant qu'une tâche de l'agent tourne, JARVIS ne peut plus te répondre. Pour éviter ça, mets ces variables d'environnement utilisateur, puis redémarre Ollama :

setx OLLAMA_NUM_PARALLEL 2
setx OLLAMA_FLASH_ATTENTION 1
setx OLLAMA_KV_CACHE_TYPE q8_0
setx OLLAMA_CONTEXT_LENGTH 32768

Avec ça, le modèle MoE occupe environ 22 Go (2 conversations × 32k de contexte) et laisse de la marge à Whisper et Kokoro sur une carte de 32 Go.

🚀 Lancer

Double-clique start.bat (ou .venv\Scripts\python.exe server.py), puis va sur http://127.0.0.1:8788, clique l'orbe, autorise le micro et parle.

  • « Bonjour JARVIS, présente-toi. »
  • « Ouvre Discord sur l'écran de gauche. »
  • « Lance une tâche : liste les fichiers de mon dossier de travail. »
  • « Affiche-moi un comparatif des trois plus grandes villes de France. »
  • « Stop » (en lui coupant la parole) / « Annule la tâche. »

🔧 Personnalisation (.env)

Toutes les options sont commentées dans .env.example. Les principales :

Variable Défaut Rôle
JARVIS_LLM qwen3:30b-a3b-instruct-2507-q4_K_M Modèle Ollama (qwen3:32b = dense, un peu plus fin mais ~4x plus lent). Évite qwen3:30b-a3b tout court : il raisonne à voix haute
JARVIS_USER_NAME (vide) Ton prénom : JARVIS t'appelle ainsi au lieu de « monsieur »
JARVIS_VOICE ff_siwis Voix Kokoro. ff_siwis = seule voix française native (féminine). bm_george, bm_lewis… = hommes britanniques qui parlent français avec l'accent : l'effet majordome garanti
JARVIS_BARGE_IN 1 Couper JARVIS en parlant. Mets 0 sur haut-parleurs si sa propre voix l'interrompt
VAD_THRESHOLD / JARVIS_SILENCE_MS 0.5 / 550 Sensibilité du micro / silence qui marque la fin de ta phrase
JARVIS_AGENT_BACKEND ollama Moteur des tâches simples (anthropic = tout sur Claude)
JARVIS_COMPLEX_BACKEND anthropic Moteur des tâches complexes (ollama = 100 % local)
JARVIS_CONTINUE_MS 1000 Délai pendant lequel une reprise de parole est la suite de ta phrase
JARVIS_TEMPERATURE 0.3 Créativité du modèle (bas = plus stable)
JARVIS_HOTWORDS (vide) Noms propres à bien reconnaître, séparés par des virgules
JARVIS_NOTIFY 1 Notification Windows à la fin des tâches
JARVIS_WORKDIR D:/jarvis-workspace Seul dossier où l'agent travaille
WHISPER_DEVICE cuda cpu sans GPU NVIDIA (avec WHISPER_COMPUTE=int8)

❓ Problèmes fréquents

  • « Ollama injoignable » au démarrage : lance Ollama (icône dans la barre des tâches) puis relance.
  • JARVIS ne répond plus pendant une tâche : applique le « Réglage Ollama recommandé » ci-dessus.
  • Réponses lentes, ollama ps affiche du CPU : la VRAM est pleine. Ferme les applis gourmandes en GPU, baisse OLLAMA_CONTEXT_LENGTH/JARVIS_NUM_CTX (24576), ou passe à un modèle plus petit.
  • Il s'interrompt tout seul : sa voix revient dans le micro. Prends un casque, ou JARVIS_BARGE_IN=0, ou monte VAD_THRESHOLD.
  • Chrome ne t'entend pas (Edge oui) : Chrome capte un autre micro. Choisis le bon dans la liste sous l'orbe (le choix est mémorisé).
  • Il transcrit mal un nom propre (ex. « MediaOne » au lieu de « Mediawan ») : ajoute-le dans JARVIS_HOTWORDS.
  • Le tout premier démarrage est long (~30 s pour Whisper) : la carte compile ses noyaux CUDA une fois pour toutes, c'est normal.
  • Les tâches sont moins brillantes qu'avec Claude : c'est un modèle local de 32B dans l'agent. Pour les grosses tâches : JARVIS_AGENT_BACKEND=anthropic.
  • Les rapports/graphiques ne s'affichent pas : les composants graphiques de l'interface se chargent depuis un CDN, il faut internet (seulement pour ça).

🔒 Sécurité

  • Serveur en 127.0.0.1 uniquement : ne l'expose jamais sur le réseau.
  • L'agent tourne sans demande d'autorisation (bypassPermissions), avec tes droits, dans JARVIS_WORKDIR. Garde un dossier dédié. Pour un garde-fou plus strict : JARVIS_PERMISSION_MODE=acceptEdits (les commandes shell sont alors refusées).

📄 Licence

MIT — fais-en ce que tu veux.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support