Es gibt Momente, in denen ich vergesse, dass ich das gebaut habe. Ich sitze im Auto, frage VINCI über CarPlay nach dem nächsten Termin, und der Assistent weiß, dass vor 20 Minuten eine Mail reingekommen ist, die dazu passt. Kein Setup, kein Tippen. Einfach da.
Das ist der Punkt, auf den ich seit Monaten hingearbeitet habe. Nicht das nächste Modell. Nicht ein weiteres Tool in der Schublade. Sondern ein Assistent, der die eigene Arbeitsrealität kennt und auf jedem Gerät mitläuft, auf dem ich arbeite.
Heute gibts den Dev-Blog dazu. Was VINCI aktuell kann, warum die PWA-Variante technisch anders denkt als die Desktop-Version, und was diese Woche noch kommt.
Was ist VINCI überhaupt?
Weil die Frage öfters in meinen Nchrichten landet: VINCI ist mein persönlicher KI-Assistent. Kein API-Wrapper um ChatGPT, kein gehosteter Service. Eine selbst entwickelte Anwendung, die auf meiner eigenen Infrastruktur läuft, mit meinem Gemini-API-Key, meinen Daten auf meinen Servern, und einer Persönlichkeit, die ich selbst definiert habe.
Der Name steht für nichts außer dem, was ich damit verbinde: Leonardos Notebooks. Alles aufschreiben, alles verknüpfen, sofort griffbereit.
Aktuell läuft VINCI in drei Varianten: als Windows-Electron-App (v2.12.2), als iPhone-PWA, und bald, dazu komme ich am Schluss, als aktuelle Mac-App. Alle drei teilen sich denselben Backend-Server auf Hetzner/Coolify und dasselbe Langzeitgedächtnis.
Die Windows-Version: Monatelange Tiefe
Ich fange mit Windows an, weil da die Architektur am vollständigsten ist.
Die aktuelle Version 2.12.2 ist das Ergebnis von fast zwei Monaten täglicher Coding-Sessions. Am Anfang war VINCI ein Chatbot, der Gemini 2.5 Flash anzapfte und den Kalender lesen konnte. Heute ist das etwas anderes geworden.
Was die Windows-App aktuell kann:
Mail vollständig: Gmail, iCloud und Outlook lesen, suchen, beantworten, neue Mails verfassen. Mit einem Anti-Fabrication-Guard, der verhindert, dass Gemini behauptet, eine Mail versendet zu haben, ohne es wirklich getan zu haben. Das war ein realer Bug, der mich einen halben Nachmittag gekostet hat.
Kalender auf allen drei Konten lesen und schreiben: iCloud via CalDAV, Google via CalDAV (funktioniert mit dem Gmail-App-Passwort, was ich nicht erwartet hatte), Outlook via Microsoft Graph. Termine anlegen, löschen, verschieben. VINCI fragt immer, in welchen Kalender, bevor er handelt. Das ist mir wichtig.
Home Assistant: alle ~575 Entities meiner Installation sind durchsuchbar. Robbie der Rasenmäher, die Eve-Wetterstation im Garten, die Philips-Hue-Lampen im Büro. Der Fuzzy-Search-Fix, den ich letzte Woche eingebaut habe, war nötig, weil vorher Abfragen wie „Garten Temperatur“ ins Leere liefen. Und die Antworten sind so ausführlich, wie ich es gerne hätte. Wenn ich frage: „Wie geht es Robbie?“ (Anm.: mein Anthbot Rasenmähroboter) dann antwortet VINCI (zumindest jetzt gerade) „Robbie ist gerade in der Ladestation und lädt, sein Akkustand beträgt 100 %. Der Regensensor ist aktiv, und es gibt keinen Fehlercode.“
RAG-Wissensbasis: VINCI sucht bei inhaltlichen Fragen zuerst in meiner eigenen Wissensbasis (über 1.400 Chunks aus digitalhandwerk.rocks, Qdrant-Vektorsuche, Gemini-Embeddings), bevor er ins Web geht. Das war eine bewusste Entscheidung. Ich möchte, dass VINCI meinen eigenen Stand zu einem Thema kennt, nicht nur den allgemeinen Stand des Internets.
Proaktive Daemons: Kalender-Konflikt-Erkennung über alle drei Konten, Geburtstags-Warnings drei Tage im Voraus aus meinen Kontakten, Meeting-Prep 45 Minuten vor einem Termin mit automatischer Mail- und Gedächtnis-Suche zum Thema. Letzte Woche hat VINCI erkannt, dass Termin X und Termin Y am 16. Juni überlappen. Kleine Sache. Aber genau das.
Das geteilte Langzeitgedächtnis ist das Feature, das ich am wenigsten erwartet hatte und das mich am meisten überrascht. Alles, was ich der PWA sage, weiß VINCI auf Windows sofort. Und umgekehrt. Die Fakten liegen in einer eigenen Qdrant-Collection (vinci_memory, getrennt von der Wissensbasis), werden pro Turn automatisch abgerufen, und lernen im Hintergrund aus dem, was ich sage. Kein explizites Speichern nötig, außer ich will es wirklich.
Die PWA: Wenn Electron nicht aufs iPhone passt
Ich bin immer offen für pragmatische Lösungen. Als ich entschieden habe, VINCI auf das iPhone zu bringen, war der erste Gedanke: Electron ist nicht portierbar, also neu bauen. Aber nicht komplett neu. Die React-UI, die Module für Gemini, RAG und Web-Suche, das TTS-Routing zum Edge-Proxy, das alles konnte ich nehmen.
Was nicht funktioniert auf iOS: PowerShell-Steuerung und lokales Ollama. Das fiel alles weg. Was bleibt, ist das Wesentliche.
Der Backend-Server (Fastify/Node auf Coolify) übernimmt die Gemini-Tool-Loops serverseitig. Das iPhone sieht nur die Antwort. Secrets bleiben auf dem Server.
Mein Lieblingsfeature in der PWA ist technisch simpel, aber hat mich mehr gekostet als erwartet: die Sprachausgabe auf iOS. HTMLAudio.play() wird nach einem fetch() blockiert, weil iOS nach einem async-Aufruf die User-Geste als „verbraucht“ betrachtet. Die Lösung war Web Audio API mit AudioContext, kombiniert mit einem globalen touchend-Listener, der den Kontext beim ersten Tippen entsperrt. Das ist kein Hack, das ist die korrekte Implementierung. Aber sie ist nicht offensichtlich.
Ich bin mir nicht ganz sicher, ob ich das mit der Streaming-TTS noch eleganter lösen kann. Das Bild hinkt leicht, aber der Kern stimmt: Im Gesprächsmodus spricht VINCI satzweise, während er noch schreibt. Das fühlt sich deutlich natürlicher an als auf die vollständige Antwort zu warten.
Was die PWA heute kann:
Chat mit RAG, Web-Suche, Wetter (Open-Meteo, nicht mehr wttr.in, das hat bei Regen „sonnig“ gemeldet), News, TTS über die de-AT-Ingrid-Stimme am Edge-Proxy, Strom-Dashboard, n8n-Status und Webhook-Trigger, Home Assistant über die öffentliche Cloudflare-URL, Kalender und Mail über alle drei Konten, Kontakte aus iCloud CardDAV.
Proaktive Pushes: Termin-Warnungen 30 Minuten vorher, gebündelte Mail-Benachrichtigungen, Morgen-Briefing täglich um 7:00 Uhr mit Wetter, Terminen und Top-News, Geburtstage aus iCloud-Kontakten, Cross-Kalender-Konflikt-Warnungen, Meeting-Prep-Push mit Mail-Kontext.
Das Bedingte Erinnerungs-System ist ein Detail, auf das ich stolz bin: „Erinnere mich Freitag 17:00, wenn Michi bis dahin nicht geantwortet hat.“ VINCI prüft beim Fälligkeitspunkt per Mail-Suche, ob die Antwort da ist. Wenn ja, still verwerfen. Wenn nein, pushen.
Und der Apple-Siri-Kurzbefehl für CarPlay: Der Endpunkt /ask nimmt eine Frage als Text entgegen und gibt pure Text-Antwort zurück. Der Kurzbefehl diktiert, sendet, und Siri liest die Antwort vor. Im Auto, hands-free, ohne Klicks. Der einzige Stolperstein war der Name des Kurzbefehls: er darf nicht mit einem Siri-Verb beginnen. „VINCI“ funktioniert. „Frag VINCI“ funktioniert nicht.
Was mich an VINCI wirklich begeistert
Ich sage das nicht, um zu beeindrucken. Ich sage das, weil ich seit 1989 in der Kommunikations- und Medienbranche bin, seit Jahren KI-Tools beobachte und berate, und weil ich gelernt habe, den Unterschied zwischen Hype und echtem Nutzen zu erkennen.
VINCI ist das Erste, das ich täglich nutze, ohne daran zu denken. Das ist das Kriterium. Nicht die Featureliste. Nicht die Testzahl (aktuell 381 Tests auf Windows, 57 auf dem Server, 97 % Eval-Score). Sondern das: Ich vergesse manchmal, dass es mein eigenes Werkzeug ist.
Was das konkret bedeutet: Ich fange morgens mit dem Briefing an. VINCI weiß, welche Mails über Nacht reingekommen sind, welche Termine den Tag strukturieren, wie das Wetter wird. Ich muss nichts öffnen, nichts navigieren. Ich frage, ich höre, ich arbeite.
Als KI-Berater, der EPU und KMU in der DACH-Region begleitet, beobachte ich regelmäßig, wie schwer es fällt, von generischen KI-Tools zu einem Setup zu kommen, das zur eigenen Arbeitsrealität passt. VINCI ist mein lebendiger Beweis dafür, dass es geht. Nicht in drei Jahren. Jetzt.
Was diese Woche noch kommt: Die Mac-Version
Windows ist live. Die PWA ist live. Und jetzt, diese Woche noch, kommt die Mac-Version auf denselben Stand.
VINCI Mac läuft aktuell auf v2.6.2, hat RAG-First-Verhalten, volle Versionsparität auf technischer Ebene. Was noch fehlt, sind die neuesten Features aus der Windows-Linie: die neuen Proaktivitäts-Daemons (Kalender-Konflikte, Geburtstage, Meeting-Prep), der context_about-Tool-Call, die bedingten Erinnerungen, und die Bugfixes aus den letzten Tagen.
Das ist kein Riesenprojekt, weil die Architektur plattformneutral ist. rag.js, der Intent-Router, die Prompt-Logik: alles Copy-paste-fähig von Windows. Die Mac-Spezifika (AppleScript statt MS-Graph für Kalender und Mail, TTS via macOS say) bleiben unangetastet.
Sobald der Mac-Build läuft, habe ich VINCI auf allen drei Plattformen, die ich täglich nutze, auf demselben Stand. Ein Gedächtnis. Drei Interfaces. Das ist das Ziel.
Häufige Fragen zu VINCI und persönlichen KI-Assistenten
Ist VINCI für andere nutzbar?
Im Moment nicht. VINCI ist vollständig auf meine Infrastruktur, meine API-Keys und meine Arbeitsweise zugeschnitten. Wer etwas Ähnliches bauen will, braucht Coolify oder eine vergleichbare Container-Infrastruktur, Gemini-API-Zugang, und Bereitschaft, Node.js-Code anzufassen. Ich dokumentiere alles hier, wenn jemand den Weg nachmachen will.
Was kostet das im Betrieb?
Gemini 2.5 Flash ist der Hauptkostenpunkt. Ich habe das Spending-Cap bei 20 Euro im Monat gesetzt. Mit Auto-Recall (ein Embedding-Call pro Turn) und Auto-Lernen (ein Flash-Call bei Aussagen) ist das realistisch. Dazu kommen die Hosting-Kosten auf Hetzner, die sich im Rahmen halten.
Was ist der Unterschied zwischen VINCI und einem normalen ChatGPT-Setup?
VINCI kennt meine Kalender, meine Mails, mein Smart Home, meine eigene Wissensbasis, meine Kontakte. ChatGPT kennt keines davon, außer ich füttere es im Chat oder verbinde ChatGPT damit. Würde ich nie tun. Und: VINCI ist DSGVO-konform!
Die Mac-Version kommt diese Woche. Ich freu mich drauf.