UStackUStack
miaw-ai-desktop icon

miaw-ai-desktop

miaw-ai-desktop ist eine Windows-first Electron-App mit schwebender Miaw-Chat-Oberfläche und kompatibler Command-Fläche für Chat, Verlauf, Bilder & Screenshots.

miaw-ai-desktop

Was ist miaw-ai-desktop?

miaw-ai-desktop ist eine auf Electron basierende, Windows-first Desktop-App, die eine einfache schwebende Chat-Oberfläche für „Miaw“ bietet. Das Projekt konzentriert sich darauf, die bestehende Miaw React-Oberfläche nachzubilden und eine kompatible Command-Fläche (inklusive Tauri-kompatibler Client-Shims) zu erhalten, damit die App mit unterstützten Backend-Befehlen für Chat, Verlauf, Bilder und Screenshots interagieren kann.

Das Repository dokumentiert auch die lokale Konfiguration über eine .env-Datei, unterstützt einen LiteLLM-kompatiblen OpenAI-Endpunkt als Standard-Modell-Provider und enthält Build-Anweisungen für Entwicklung, Produktion und Windows-EXE-Packaging.

Wichtige Funktionen

  • Schwebende Chat-Fenster-Oberfläche (Electron-Shell), die die bestehende React-basierte Miaw-Oberfläche widerspiegelt, inklusive einer Setup-Karte, wenn das Backend nicht verfügbar ist.
  • Tray-Symbol und globale Tastenkürzel-Unterstützung (Ctrl+Shift+Space) zum Anzeigen/Verstecken der Chat-Overlay.
  • Tauri-Client-Shims für @tauri-apps/api-Module (core, event, window, dpi), damit das Frontend bestehende interne Aufrufe wiederverwenden kann.
  • Command-Fläche für Chat-Streaming und Konversationsverwaltung, inklusive ask_ollama, cancel_generation, reset_conversation, plus Verlaufsoperationen wie save_conversation, persist_message, list_conversations, load_conversation und delete_conversation.
  • Bild- und Screenshot-Befehle, inklusive Speichern/Entfernen von Bildbefehlen und Bildschirm-Aufnahme-Befehlen (capture_screenshot_command, capture_full_screen_command).
  • Fenster-/Ereignis-Hooks und diverse Utilities wie notify_frontend_ready, notify_overlay_hidden und open_url; plus get_model_config.

So verwenden Sie miaw-ai-desktop

  1. Repository klonen und die bereitgestellte Umgebungsvorlage kopieren: .env.example nach .env kopieren.
  2. .env bearbeiten, um auf Ihren Modell-Provider zu verweisen. Die dokumentierten Standardwerte verwenden einen LiteLLM-kompatiblen OpenAI-Endpunkt mit Werten wie:
    • THUKI_PROVIDER=litellm
    • THUKI_API_BASE_URL=http://127.0.0.1:4000
    • THUKI_API_KEY= (leer im Beispiel)
    • THUKI_SUPPORTED_AI_MODELS=gemma-3-4b-it
  3. Lokal für Entwicklung ausführen:
    • npm install
    • npm run dev (Alternativ: Das Repo nennt Bun-Befehle.)
  4. Für Produktions-Packaging zuerst das Frontend bauen (npm run build) und dann Electron ohne Vite-Dev-Server ausführen (npm run start). Windows-Distributionsbefehle sind ebenfalls verfügbar (dist:portable, dist:win).

Anwendungsfälle

  • Lokaler schwebender Chat für schnelle Prompts: Globale Tastenkürzel (Ctrl+Shift+Space) nutzen, um das Overlay aufzurufen und über die Chat-Befehle der App zu interagieren.
  • Verwalten von Chat-Sitzungen: Verlauf speichern, auflisten, laden und löschen über die integrierte Verlaufs-Command-Fläche der App.
  • Arbeiten mit bildbezogenen Workflows: Befehle auslösen, die Bilder speichern oder entfernen, und verwaiste Bilder bereinigen, wenn die Bildfunktionen der Chat-Oberfläche genutzt werden.
  • Inhalte vom Desktop erfassen: Screenshot-Befehle verwenden, um visuellen Kontext über dieselbe Command-Fläche bereitzustellen, die der Oberfläche zugänglich ist.
  • Lokalen Modell-Proxy einrichten: App so konfigurieren, dass sie einen LiteLLM-kompatiblen OpenAI-Endpunkt an der in .env angegebenen Basis-URL nutzt, um das Standard-Modell-Provider-Verhalten zu aktivieren.

FAQ

Unterstützt das Projekt macOS?

Das Repository bemerkt: „macOS-only Permission/Onboarding-Befehle geben sichere Windows-Standardwerte zurück“, was darauf hindeutet, dass der aktuelle Build Windows-first ist und macOS-spezifisches Verhalten konservativ für Windows gehandhabt wird.

Wie verbindet sich die App mit einem AI-Modell-Provider?

Standardmäßig ist der Modell-Provider auf einen LiteLLM-kompatiblen OpenAI-Endpunkt konfiguriert. Sie setzen THUKI_PROVIDER, THUKI_API_BASE_URL, THUKI_API_KEY und die unterstützten Modelle über .env.

Ist Suche implementiert?

Das Repository gibt an: „Search is stubbed to SandboxUnavailable so the existing UI renders the setup card“, was bedeutet, dass Suche in der aktuellen Implementierung nicht vollständig funktional ist.

Sind Desktop-Fenster-Ziehen und -Bewegen vollständig nativ?

Nein. Ziehen-zum-Bewegen ist „noch nicht vollständig nativ“, und „Fensterbewegung ist noch eine Folgeaufgabe“.

Wie werden Produktionsbuilds für Windows gepackt?

Das Repo bietet Windows-Build-Befehle wie npm run dist:portable für eine portable EXE und npm run dist:win für einen Windows-Installer. Es wird auch die Ikonen-Regenerierung für miaw.ico aus public/miaw-logo.png erwähnt, um die Markenführung synchron zu halten.

Alternativen

  • Desktop-„schwebende Chat“-Clients, die mit lokalen LLM-Servern integrieren: Diese konzentrieren sich typischerweise auf eine ähnlich immer-verfügbare Oberfläche, nutzen aber möglicherweise nicht Miaws bestehende Command-Fläche oder Tauri-kompatible Client-Aufrufe.
  • Generische Chat-Clients für OpenAI-kompatible APIs (lokal oder remote): Nützlich, wenn Sie nur eine Standard-Chat-Oberfläche brauchen und nicht den spezifischen Befehlssatz für Konversation/Verlauf, Bildbefehle und Screenshot-Befehle benötigen.
  • Aufbau aus React-basiertem Overlay mit Electron: Wenn Sie volle Kontrolle über Tastenkürzel, Tray-Verhalten und Modell-Konnektivität wollen, könnte eine benutzerdefinierte Integration flexibler sein als eine vorgefertigte Miaw-fokussierte App.
  • Andere Tauri/Electron-Cross-Platform-Wrapper-Ansätze: Wenn Ihr Hauptziel darin besteht, eine bestehende Command-Fläche und Frontend-Aufrufe zu erhalten, könnte eine andere Wrapper-Strategie besser zu Ihren Zielplattformen und Fenster-Verhaltensbedürfnissen passen.