ChatForge: Ein lokaler NPU-KI-Assistent für die Copilot-Taste
- Kategorie
- KI & lokale LLMs
- Veröffentlicht
- 2 Oktober 2026
- Aktualisiert
- 3 Oktober 2026
- Von
- Jacob Lloyd — mit KI-Unterstützung geschrieben, im Nachhinein
- Lesezeit
- 10 Min. Lesezeit
Kurz gesagt: Die neuen Intel-Laptops verfügen über einen speziellen KI-Chip (einen NPU), der meist ungenutzt bleibt. Zudem gibt es eine „Copilot“-Taste, mit der man den Microsoft-Assistenten aktivieren kann. ChatForge ist ein kostenloses Programm, das dieser Taste eine andere Funktion gibt: Es öffnet ein kleines Chat-Fenster, in dem Antworten von einem Modell generiert werden, das auf dem eigenen Laptop läuft. Dabei sind weder ein Konto noch monatliche Gebühren erforderlich. Zudem kann das Programm aktuelle Informationen wie Wettervorhersagen und Nachrichten abrufen. Bei schwierigeren Fragen kann dasselbe Fenster auch einen größeren KI-Dienst zur Hilfe holen.
Mein Laptop wurde mit einer dedizierten AI-Taste sowie einem dedizierten AI-Chip ausgeliefert – doch direkt nach dem Auspacken haben sie sich nie „getroffen“: Die Taste öffnet Microsoft Copilot in der Cloud, während der NPU untätig herumsitzt. Das störte mich mehr, als es eigentlich sollte. Deswegen öffnet die Taste nun ChatForge – meinen eigenen Assistenten. Dieser nutzt das 1,5-Milliarden-Parameter starke Qwen-Modell auf dem NPU und erreicht dabei eine Geschwindigkeit von 42–51 Tokens pro Sekunde. Kein Konto, kein Abonnement, keine Gebühren pro Token – außerdem verlässt das Gespräch niemals den PC. Falls eine Frage für ein so kleines Modell zu komplex ist, steht mit nur einem Klick auf dasselbe Popup mein GPU-Server oder ein Cloud-Modell zur Verfügung.
Dieser Artikel führt Sie durch die Funktionen: Was ChatForge leistet, wie es sich mit dem NPU arbeitet (inklusive des Modells, das zwar fehlerfrei kompiliert wurde, aber seltsame Antworten lieferte) sowie welche Tricks dafür sorgen, dass ein so kleines Modell echte Antworten gibt – statt nur das typische „Keine Ahnung“-Verhalten kleinerer Modelle zu zeigen.
Zusammenfassung
- Was ist es: Ein kostenloser, unter der MIT-Lizenz stehender Assistent für die Benachrichtigungsleiste unter Windows 11.
Ctrl+Alt+C(oder die Copilot-Taste, nachträglich per PowerToys umgebucht) öffnet ein 420 × 620 Pixel großes Popup unten rechts; die Esc-Taste schließt es wieder. Quelle: github.com/LaserLloyd/ChatForge. - Das lokale Modell:
Qwen2.5-1.5B-Instruct(INT4, 0,94 GB groß), bereitgestellt durch den OpenVINO Model Server auf dem Intel „AI Boost“-NPU. Erste Kompilierung dauert ca. 45 Sekunden; danach lädt es aus dem Cache in etwa 3 Sekunden und erreicht eine Geschwindigkeit von 42–51 Tokens pro Sekunde. Nach 10 Minuten Inaktivität entlädt es sich selbst. - Größere Modelle, selbes Menü: StudioForge (Ihr eigener GPU-Server), MiniMax, OpenAI, DeepSeek oder jede andere URL, die mit OpenAI kompatibel ist. Die dazu nötigen Schlüssel werden im Windows Credential Manager gespeichert – niemals in einer Konfigurationsdatei.
- Neun Werkzeuge: Web- und Nachrichtenrecherche, Seitenabruf, Wetterinformationen, Wikipedia, Wechselkurse, Datum/Zeit, ein Taschenrechner – sowie
create_document, das ein von dem Modell erstelltes Word-, Excel- oder PowerPoint-Dokument speichert. Bis zu 10 Dateien können pro Nachricht angehängt werden; über sie kann man anschließend Fragen stellen. - Was es nicht ist: Ein Agent. Keines der Werkzeuge führt Programme aus oder ändert Einstellungen; das einzige Schreibwerkzeug kann lediglich neue Dateien in einem festgelegten Ordner anlegen.
Was Sie am Ende haben
Eine Frage genügt, um jedes beliebige Programm zu nutzen: Taste drücken, Eingabe tätigen, Antwort lesen – anschließend Esc drücken. Jede Antwort enthält Angaben darüber, welches Modell sie generiert hat und wie schnell es arbeitete; so wissen Sie stets, ob Sie das kostenlose lokale Modell oder ein Modell mit Gebührenmodell erhalten haben. Bei Fragen, die aktuelle Daten erfordern, zeigt ein Werkzeug-Chip an, welche Informationen abgerufen wurden; falls Sie ein größeres Modell um einen Bericht bitten, enthält die Antwort eine Dokumentkarte mit den Schaltflächen Öffnen und Im Ordner anzeigen.



Die Gespräche, Bilder, Standorte sowie Servernamen in den Screenshots sind Beispieldaten; die Benutzeroberfläche ist die echte Version, dargestellt in Edge (dem Kern hinter WebView2) anhand des Entwicklungs-Prototyps des Projekts.
Wo Sie es herbekommen
Ein einziges Repository unter MIT-Lizenz: github.com/LaserLloyd/ChatForge, darin auch die Laufzeit-Informationen mit allen NPU-Messwerten, die in diesem Artikel zitiert werden. Möchten Sie lieber ein Zip-Archiv? Im Download-Bereich am Ende dieser Seite finden Sie den kompletten Quellcode; ebenso ist er auf der Downloads-Seite des Projekts verfügbar.
Wie alles zusammenhängt
Ein einziger Python-Prozess übernimmt die Gesamtsteuerung: das Tray-Icon, den globalen Hotkey, das Popup sowie die Einstellungsfenster (pywebview auf Basis von WebView2) – dazu ein asyncio-Kern, der Antworten streamt und Werkzeuge ausführt. Der Modell-Server ist ein vom Hauptprozess vollständig verwalteter Untermprozess: Er startet, sobald das Popup mit dem lokalen Modell geöffnet wird; mittels eines Windows-Job-Objekts wird er beim Beenden der Anwendung ebenfalls beendet – ein Absturz kann somit nicht dazu führen, dass ein Modell unnötig Speicherplatz belegt.
Praktisch nichts wurde von Grund auf neu geschrieben – und das betrachte ich als Kompliment: Der Prozess-Manager, der Downloader, das Tray-Icon sowie das Logging stammen aus StudioForge; die Chat-Benutzeroberfläche samt Markdown-Verarbeitung aus DisPatch; der Streaming-Client wiederum entstand aus meinem Benchmarking-Tool. Alle Komponenten hatten bereits monatelang im täglichen Einsatz bewährt; jeder adaptierte Modul-Code weist dies am Anfang aus. Gerade diese Wiederverwendung erklärt, warum der erste Commit und die Version v0.1.0 nur zwei Tage auseinanderliegen (abend des 30.09.2026 bis zum 02.10.2026). Ein LLM-Agent übernahm dabei die Zusammenstellung gemäß einem schriftlichen Plan von rund 1.000 Zeilen.
Installation
Die ausführliche Anleitung finden Sie im Repository unter docs/SETUP.md; die Kurzversion umfasst drei PowerShell-Befehle sowie den Download des Modells:
git clone https://github.com/LaserLloyd/ChatForge.git
cd ChatForge
py -3.12 -m uv sync --extra dev
py -3.12 -m uv run chatforge runtime install # OpenVINO Model Server 2026.4.0, 139 MB groß; SHA-256-Hash ist fest vorgegeben
py -3.12 -m uv run chatforge doctor # Tabelle mit Ergebnissen: Pass/Warn/Fail – für Python, WebView2, NPU, OVMS, Keyring, Festplattenspeicher…
Anschließend starten Sie das Programm via launchers\ChatForge.bat, öffnen Einstellungen > Modelle, suchen nach „Qwen“ und klicken auf Download in der Zeile mit dem Label Empfohlen – es handelt sich um OpenVINO/Qwen2.5-1.5B-Instruct-int4-ov (0,94 GB). Beim ersten Start wird die Autostart-Funktion aktiviert (ein pro Benutzer angelegter Task Scheduler-Eintrag – hierfür sind keine Admin-Rechte nötig) sowie der Hotkey registriert. Erstmaliges Laden des Modells erfordert eine Kompilierung auf dem NPU; diese dauert rund 45 Sekunden, wobei im Header-Chip ein Countdown angezeigt wird, um den Eindruck eines Absturzes zu vermeiden. Alle nachfolgenden Ladevorgänge erfolgen aus dem Kompilier-Cache in etwa 3 Sekunden.
Das Problem mit der Copilot-Taste
Hier ist der Teil, den einem niemand erzählt, wenn man einen Laptop kauft: Die Copilot-Taste lässt sich nicht mit eigenen Funktionen belegen. Sie sendet die Tastenkombination Win+Shift+F23; Windows verwendet diese Kombination für eigene Zwecke. Der offizielle Einstellungs-Manager bietet lediglich vorpaketierte, signierte Apps an – Ihr eigenes Programm steht also nicht auf der „Zugriffsliste“.
Die praktikable Lösung ist der PowerToys-Keyboard-Manager: Weisen Sie die Tastenkombination Win (Links) + Shift (Links) + F23 der Kombination Ctrl+Alt+C zu (ChatForge’s Hotkey) und aktivieren Sie „Beim Start ausführen“ in PowerToys. Damit öffnet die Microsoft-reservierte Taste stattdessen Ihren Assistenten. Falls die Taste erneut Windows-Suche oder Copilot aufruft, läuft PowerToys nicht – das ist der einzige Fehlermodus, und er tritt häufig genug auf, um ganz oben in der Fehlerbehebungsliste zu stehen.
Wie man aus einem 1,5-Milliarden-Parameter-Modell etwas Brauchbares macht
Ein 1,5-Milliarden-Parameter-Modell mit einem Kontextfenster von 4096 Tokens ist im Grunde nutzlos – wie ein Goldfisch mit Bibliotheksausweis. Die eigentliche Ingenieursleistung bei ChatForge besteht darin, mit dieser Tatsache zu arbeiten statt sie zu ignorieren:
- Kurze Werkzeugliste. Es gibt neun Werkzeuge; das lokale Modell erhält jedoch nur fünf davon (Suche, Seitenabruf, Wetter, Datum/Uhrzeit, Rechner). Kleine Modelle verwirren sich bei langen Menüs – eine reduzierte Liste sorgt für saubere Tool-Aufrufe.
- Zuerst nachschauen. Fragen, die aktuelle Live-Daten erfordern („Wetter“, „aktuellster Preis“), führen dazu, dass das entsprechende Werkzeug vor der ersten Modell-Antwort ausgeführt wird; das Modell antwortet dann auf Basis des Ergebnisses – reiner Mustervergleich, kein zusätzlicher Modellaufruf.
- Umgang mit Verweigerungen. Kleine Modelle antworten gerne: „Ich habe keinen Zugriff auf Echtzeitdaten“, obwohl ein Suchwerkzeug vorhanden ist. Solche Antworten werden ignoriert; das System führt die Suche selbst durch und lässt das Modell erneut antworten. Währenddessen zeigt ein Popup „Suche läuft…“ – der erste, unbrauchbare Entwurf bleibt unsichtbar.
- Kein Zusammenfassen. Wenn ein Chat den Kontext überschreitet, werden ältere Abschnitte einfach aus dem Prompt entfernt; ein Trenner im Popup markiert den Startpunkt der Modell-Sicht. Es erfolgt keine Paraphrasierung – das spart zusätzliche Modellaufrufe – und das Modell wird darüber informiert, dass ältere Nachrichten weggelassen wurden, sodass es nachfragt statt zu erfinden.
- Schleifen- und Budgetschutz. Ein einzelner Prompt darf maximal sechs Tool-Aufrufe umfassen; wiederholte Aufrufe desselben Tools werden abgelehnt – ein 1,5-Milliarden-Parameter-Modell würde sonst das Wetterwerkzeug endlos aufrufen.
- Sicherheitsnetz. Fällt das NPU-Modell nicht oder stürzt ab, kann derselbe Prompt an einen von Ihnen gewählten Cloud-Anbieter gesendet werden.
All dies funktioniert ohne NPU – dasselbe System steuert auch große Modelle. Es ist jedoch genau das, was es dem kostenlosen lokalen Modell ermöglicht, die Frage „Wird es dieses Wochenende regnen?“ korrekt zu beantworten – und zwar in voller NPU-Geschwindigkeit, statt höflich abzulehnen.
Das Modell, das kompilierte – aber Unsinn ausgab
Ursprünglich sollte Qwen3-4B als lokales Modell eingesetzt werden – größeres Modell, neuere Familie, logische Wahl. In der Datei docs/RUNTIME-NOTES.md wird das Hindernis dokumentiert: Qwen3-4B-int4-ov kompiliert fehlerfrei für die NPU – liefert aber mit OVMS 2026.4 völlig unbrauchbare Ergebnisse. Dieselben Modelldateien funktionieren hingegen korrekt auf der CPU (24 Tokens/Sekunde). Der Fehler ist NPU-spezifisch; alle Konfigurationen scheiterten. Andere Quantisierungen, die eventuell geholfen hätten, erlauben in OVMS 2026.4 keine Tool-Aufrufe. Auf der NPU beweist eine saubere Kompilierung also nichts – überprüfen Sie das Ergebnis unbedingt!
Stattdessen kommt Qwen2.5-1.5B-Instruct INT4 zum Einsatz; gemessen auf einem Core Ultra 5 226V (Lunar Lake):
| Qwen2.5-1.5B-Instruct INT4 auf der NPU | Messwerte |
|---|---|
| Erste Kompilierung | 44,5 Sekunden |
| Laden aus Cache | 2,7–3,2 Sekunden |
| Decodierung | 42–51 Tokens/Sekunde |
| Zeit bis zum ersten Token (kurze Prompts) | 0,5–0,8 Sekunden |
| Cache-Größe auf Disk | 306 MiB |
| Kontextfenster | 4096 Tokens |
Ein Hinweis aus derselben Datei: OVMS akzeptiert das Flag BEST_PERF, das die Decodierungsgeschwindigkeit um ca. 10 % erhöht (48,3 Tokens/Sekunde) – kostet aber eine dreimal längere Kompilierung (135 Sekunden). ChatForge verzichtet darauf; zu Recht: Die erste Kompilierung dauert ohnehin schon fast eine Minute – das ist die Grenze, bis Nutzer denken, das Programm sei kaputt.
Dateien hinein, Dokumente heraus
Pro Nachricht können bis zu 10 Dateien angehängt werden (per Papierclip-Symbol, Drag&Drop oder Kopieren – jeweils bis 20 MB): Code, Texte, CSV, JSON, HTML, Word-, Excel-, PowerPoint-, OpenDocument- und RTF-Dateien sowie E-Mails, PDFs – sogar alte .doc-Dateien werden direkt gelesen. Ältere .xls/.ppt-Dateien werden mittels Microsoft Office konvertiert, falls installiert; Bilder werden geprüft, aufrechtrichtet, auf 1568 Pixel verkleinert und von Metadaten befreit – Kamera-, GPS- und Zeitangaben verschwinden vor der Speicherung bzw. Übertragung. Modelle ohne Bildverarbeitung erhalten stattdessen den Text, den Windows OCR extrahiert.
Umgekehrt ermöglicht create_document es StudioForge- oder Cloud-Modellen, ihre Antworten zu speichern: .docx, .xlsx und .pptx werden rein mittels Python-Standardbibliothek erstellt – ohne Office-Zwang. Die Dateien landen im Ordner Documents\ChatForge; gleiche Namen erhalten Zusätze wie „(2)“, um Überschreibungen zu verhindern. Im Antwort-Popup erscheint dann eine Karte mit den Optionen Öffnen und Im Ordner anzeigen. Das kleine lokale Modell erhält dieses Werkzeug nicht – wer von einem Goldfisch einen Quartalsbericht erwartet, handelt auf eigene Gefahr.
Was ChatForge bewusst NICHT ist
ChatForge ist kein Agent; diese Grenze ist strukturell definiert, keine bloße Versprechung im Prompt. Acht der neun Werkzeuge sind reine Lesezugriffe; das neunte darf nur neue Dateien in seinen eigenen Ordner schreiben – ohne Überschreibungen. Kein Tool startet Programme, ändert Einstellungen oder liest Dateien, die nicht explizit angehängt wurden. fetch_url blockiert private und lokale Adressen (inklusive DNS-Rebinding); der Rechner ist ein vorab definierter Auswerter ohne eval. API-Schlüssel werden im Windows Credential Manager gespeichert und automatisch aus Logdateien entfernt; das Modell-Server-Programm stirbt zusammen mit der App – kein Archiv aller Gespräche, keine Agenten-Fähigkeiten, keine Cloud-Anbindung ohne explizite Zustimmung. Es ist brandneu, Windows-exklusiv; die Versionsnummer 0.1.0 meint genau das – und die Tests geben mir den Mut weiterzumachen: 1.520 Python-Tests sowie 114 JS-Tests laufen grün sowohl unter Windows als auch Linux in der CI.
Versionsstand
Aus dem Repository zum Zeitpunkt dieses Artikels (geprüft am 02.10.2026):
$ git log -1 --format='%h %ci'
2edd2d4 2026-10-02 18:04:38 +0900 # ChatForge v0.1.0
$ uv run pytest -q
1520 passed, 6 skipped, 6 deselected in 50.65s # unter Linux, Python 3.13.14
$ npm run -s test:js
tests 114 / pass 114 / fail 0 # Node v24.18.0
Unter Windows läuft OpenVINO Model Server 2026.4.0 (python_on) mit dem Modell OpenVINO/Qwen2.5-1.5B-Instruct-int4-ov auf einem Intel Core Ultra 5 226V. Die NPU-Werte stammen aus docs/RUNTIME-NOTES.md, das ebenfalls die gescheiterten Qwen3-4B-Konfigurationen dokumentiert.
Verwandt: StudioForge: ein GPU-exklusiver LLM-Server · DisPatch: selbstgehosteter KI-Chat · DeepSeek Harness (dsh): erster Eindruck · DeepSeek lokal nutzen: 4-Schritte-Guide · Wie viel kosten meine KI-Agenten?
Downloads
Kostenlos für die private Nutzung. Wenn es dir einen Nachmittag erspart, ist der Kaffee-Button gleich in der Nähe.