Mein JARVIS-Projekt: Ein komplett lokaler Sprachassistent im Iron-Man-Stil
„J.A.R.V.I.S. – Just A Rather Very Intelligent System." In den Iron-Man-Filmen ist er Tonys rechte Hand: Stimme, Gedächtnis und Kontrollzentrum in einem. Ich habe mir meinen eigenen gebaut – und zwar komplett lokal. Kein Cloud-Dienst, kein Token-Abo, keine Daten, die das Haus verlassen. Was dabei alles passiert ist, welche Modell-Odyssee dahinter steckt und wie du ihn selbst installierst, steht hier.
Was ist JARVIS?
JARVIS ist ein Sprachassistent, der auf dem eigenen Rechner läuft und sich wie im Film anfühlt:
- Sprechen → aufgenommen über
ffmpeg/PulseAudio - Verstehen → Whisper (Speech-to-Text, lokal, GPU oder CPU)
- Denken → ein lokales LLM über Ollama, angesteuert über den OpenCode-Agenten (mit Tools für Mail, Kalender, PC-Steuerung, Internet)
- Antworten → Piper-TTS mit einer echten „J.A.R.V.I.S."-Stimme (deutsch und englisch)
- Anzeigen → ein holografisches Web-HUD mit rotierendem Arc-Reactor
Der komplette Ablauf: Mikro → Whisper → OpenCode → Modell → Piper. Alles auf deiner Hardware, alles offline möglich.
Der Film-Look: das Web-HUD
Das Herzstück der Optik ist die Weboberfläche. Ein animierter Arc-Reactor mit rotierenden Ringen, Tick-Kranz, Partikeln und pulsierendem Kern, dazu Statusanzeige, Fortschrittsbalken (Audio-Analyse links, Token-Engine rechts) und stilvolle Untertitel im Wechsel DU / J.A.R.V.I.S. / SYSTEM. Der Look ist bewusst an das Filmlabor angelehnt – dunkles Blau, Neon-Cyan, holografisches Leuchten.
Bedient wird das Ganze unten über das Dock: Textbefehl eintippen oder den „Sprechen"-Button (bzw. die Leertaste) drücken. Die Untertitel bleiben stehen, solange Jarvis zuhört, denkt oder spricht – und verschwinden erst etwa 20 Sekunden nach Ende der Sprachausgabe, damit der Bildschirm wieder frei wird.
Alles einstellbar – direkt im HUD
Statt Konfigurationsdateien zu editieren, hat das HUD einen kompletten Einstellungs-Dialog mit sechs Tabs bekommen:
- Gehirn – Modus (über OpenCode mit Tools oder direkt ohne Tools), KI-Backend (Cloud / Ollama / LM Studio) und Modellwahl mit „Modelle laden"
- Stimme – alle Piper-Stimmen, inklusive lokaler Hörprobe zum Anhören
- Antworten – Whisper-Modell, Hotwords, Aufnahmedauer, OpenCode-Modus (plan/build)
- E-Mail – IMAP (Empfang) und SMTP (Versand) mit Verbindungstest
- Sozial – Facebook, Instagram und TikTok über offizielle APIs
- Gedächtnis – aus, nur Fakten oder Lernen aus Gesprächen (RAG)
data/memory.json.Die Arbeit dahinter – eine ehrliche Chronik
So ein Projekt entsteht nicht in einer Stunde. Hier die wichtigsten Etappen, die in den Sitzungen wirklich angefallen sind:
💥 Der Absturz und seine Ursache
Zuerst ist Jarvis unter WSL „eingefroren". Die Spur lag nicht im Code, sondern in Windows: Die Live-Kernel-Reports zeigten mehrfach Kernel_141 = VIDEO_ENGINE_TIMEOUT_DETECTED (TDR) – die GPU hatte sich aufgehängt, Windows hat den Treiber zurückgesetzt. Auslöser: Ein zu großes Ollama-Modell lief gleichzeitig mit dem Speech-to-Text auf der GPU. Lehre: Die Modellgröße muss in den VRAM passen, sonst gibt es GPU-Timeouts.
🪟 One-Click-Start unter Windows
Damit es kein Gebastel bleibt, gibt es jetzt start_jarvis.bat (und eine unsichtbare .vbs-Variante). Ein Doppelklick prüft und installiert bei Bedarf WSL + Ubuntu, alle Systempakete (ffmpeg, zstd, espeak-ng …), Ollama + Modelle, die Python-Umgebung, die Piper-Stimmen und startet danach das Web-HUD. Unter Linux reicht ./install.sh und ./run.sh.
🧠 Die Modell-Odyssee
Der spannendste Teil war die Suche nach dem „richtigen Gehirn". Kurzfassung der Stolpersteine:
- Ein Gemma-Finetune verstrickte sich im Reasoning und brach ohne Text ab – „leere Antwort".
- Ein „VibeForged"-Qwen-Finetune konnte Tools, verschrieb aber systematisch Pfade und redete Kauderwelsch.
qwen2.5-coderweigerte sich beharrlich, Ollama-konforme Tool-Calls zu senden → konnte keine Dateien anlegen.- Der Klassiker: ein Modell mit nur 4096 Token Kontext → Endlosschleife, weil OpenCode mehr Kontext schickt.
- Die „Denk-Explosion": bis zu 27.000 Reasoning-Tokens und 72 s pro Schritt, ohne zu handeln.
Die Lösung: ein abgeleitetes Modell mit 32k-Kontext und abgeschaltetem Denken – final qwen3-14b-32k, das schnell, deutschstark und tool-fähig ist.
🛠️ Selbstständigkeit erzwingen
Anfangs hat der Assistent Aufgaben reflexartig an Unteragenten delegiert, den falschen Skill geladen und dann Erfolg behauptet, ohne etwas zu prüfen. Mit klaren Regeln im AGENTS.md („arbeite selbst", „keine Skills", „Werkzeuge benutzen statt beschreiben", „erst nach Prüfung als fertig melden") und dem Abschalten von Subagenten arbeitet Jarvis jetzt selbstständig und nachvollziehbar.
🌐 Internet im Direkt-Modus
Im schnellen Direkt-Modus (ohne OpenCode) hatte Jarvis zunächst kein Internet. Jetzt hat er eine eigene Suche: web_search (Bing, ohne API-Key), web_fetch und ein news-Tool für echte Schlagzeilen – inklusive Tool-Calling-Schleife und einer Sprachausgabe, die keine URLs mehr vorliest.
📱 Soziale Netze & Projekte
Neu sind außerdem die Integrationen für Facebook, Instagram und TikTok (ausschließlich über offizielle APIs mit Tokens, keine Passwörter) und ein Standard für neue Projekte: Sagt man Jarvis „bau mir ein Tool", legt er automatisch den Ordner projekte/<name>/ an und arbeitet nur dort.
Hardware: Was brauchst du?
Der Installer ist schlau: Er lädt immer das kleine phi4-mini und zusätzlich qwen3:14b, sobald mindestens ~11 GB VRAM vorhanden sind. So läuft JARVIS vom schwachen Laptop bis zur Workstation – du musst nichts von Hand auswählen.
🪶 Minimal – das kleinste Modell (CPU-only)
- Modell:
phi4-mini(3,8B), ~2,5 GB bei Q4-Quantisierung - RAM: 4–8 GB – keine Grafikkarte nötig
- Läuft sogar auf einem Raspberry Pi 5 (8 GB) oder einem älteren Laptop
- Tempo: ca. 4–14 Token/s auf CPU – für Chat, Wetter, Notizen und kurze Fragen völlig ausreichend
- Noch kleiner:
llama3.2:3b(~2 GB) für absolute Minimum-Hardware
Auf so einer Maschine nutzt du für die Spracherkennung ein kleines Whisper-Modell (tiny/base) und die Antworten kommen spürbar langsamer – aber es funktioniert vollständig offline.
✅ Empfohlen – der Sweet Spot
- GPU: 16 GB VRAM (z. B. RTX 5060 Ti / 4060 Ti 16 GB) oder Apple Silicon mit 16 GB Unified Memory
- Modell:
qwen3-14b-32k(~9–14 GB VRAM) – schnell, deutschstark, tool-fähig - RAM: 16–32 GB, moderner 6-Kern-Prozessor
- Hier laufen Sprache (Whisper large-v3-turbo) und Modell gleichzeitig flüssig – Antwort in 1–3 s
🚀 Ideal – maximale Leistung
- GPU: 24 GB VRAM (RTX 4090 / 3090) oder Mac Studio mit 32 GB+
- Modell:
deepseek-r1:32b(Reasoning) oder ein Qwen-Coder-30B - RAM: 32–64 GB
- Für mehrere Modelle parallel, lange Kontexte und agentische Mehrschritt-Aufgaben
Übersicht
| Klasse | Hardware | Modell |
|---|---|---|
| Minimal | 4–8 GB RAM, CPU-only (auch Raspberry Pi 5) | phi4-mini (~2,5 GB) |
| Empfohlen | 16 GB VRAM, 16–32 GB RAM | qwen3-14b-32k (~14 GB) |
| Ideal | 24 GB+ VRAM, 32–64 GB RAM | deepseek-r1:32b / Qwen-Coder 30B |
Faustregel: Bei Q4-Quantisierung brauchst du grob 0,6–0,7 GB Speicher pro Milliarde Parameter, plus Reserve für den Kontext. Wichtig: Das Modell muss in den VRAM passen – läuft es über, ruckelt es oder es kommt zum gefürchteten GPU-Timeout (TDR), genau wie in der Chronik oben beschrieben.
Warum lokal?
- Datenschutz: Sprache, Mails und Dokumente bleiben auf dem Rechner.
- Offline: Der Assistent funktioniert auch ohne Internet.
- Keine laufenden Kosten: nach der Hardware nichts mehr pro Anfrage.
- Kein Kill-Switch: Niemand kann von außen deine KI abschalten.
- Volle Kontrolle: Modell, Stimme, Gedächtnis und Verhalten bestimmst du.
Fazit
JARVIS ist für mich der Beweis, dass lokale KI längst kein Kompromiss mehr ist: ein vollwertiger Sprachassistent mit Film-Feeling, echten Tools und null Cloud-Abhängigkeit. Es steckt viel Debugging in der Modell-Auswahl – aber genau das macht den Reiz aus. Und das Beste: Man kann ihn in wenigen Minuten selbst aufsetzen.
JARVIS herunterladen
Das komplette Paket enthält den Installer, das Web-HUD, die Skills (Mail, Kalender, PC-Steuerung, Social, Internet) sowie Start- und Deinstallations-Skripte. Der Installer richtet unter Windows automatisch WSL, Ollama, die Modelle, die Python-Umgebung und die Stimmen ein – unter Linux genügt ein Skript.
Ein Klick, ein Doppelstart – und J.A.R.V.I.S. übernimmt.
Installationspaket (ZIP) · Windows & Linux · alles Weitere erledigt der Installer