UStackUStack
miaw-ai-desktop icon

miaw-ai-desktop

miaw-ai-desktop : application Windows Electron avec interface de chat Miaw flottante et surface de commandes compatible Tauri (chat, historique, images, captures).

miaw-ai-desktop

Qu'est-ce que miaw-ai-desktop ?

miaw-ai-desktop est une application de bureau Electron, prioritairement pour Windows, qui fournit une interface de chat flottante simple pour « Miaw ». Le projet se concentre sur la recréation de l'interface utilisateur React existante de Miaw et sur la préservation d'une surface de commandes compatible (incluant des shims clients compatibles Tauri) afin que l'application puisse interagir avec les commandes backend prises en charge pour le chat, l'historique, les images et les captures d'écran.

Le dépôt documente également la configuration locale via un fichier .env, prend en charge un point de terminaison OpenAI compatible LiteLLM comme fournisseur de modèle par défaut, et inclut des instructions de build pour le développement, la production et le packaging EXE Windows.

Fonctionnalités principales

  • Interface de fenêtre de chat flottante (coquille Electron) destinée à refléter l'interface Miaw existante basée sur React, y compris une carte de configuration lorsque le backend n'est pas disponible.
  • Support de l'icône dans la barre des tâches et des raccourcis globaux (Ctrl+Shift+Space) pour afficher/masquer la superposition de chat.
  • Shims clients Tauri pour les modules @tauri-apps/api (core, event, window, dpi) afin que le front-end puisse réutiliser les appels internes existants.
  • Surface de commandes pour le streaming de chat et la gestion des conversations, incluant ask_ollama, cancel_generation, reset_conversation, ainsi que des opérations sur l'historique des conversations comme save_conversation, persist_message, list_conversations, load_conversation et delete_conversation.
  • Commandes pour les images et captures d'écran, incluant la sauvegarde/suppression des commandes d'images et les commandes de capture d'écran (capture_screenshot_command, capture_full_screen_command).
  • Crochets fenêtre/événements et utilitaires divers tels que notify_frontend_ready, notify_overlay_hidden et open_url ; plus get_model_config.

Comment utiliser miaw-ai-desktop

  1. Cloner le dépôt et copier le modèle d'environnement fourni : copier .env.example vers .env.
  2. Modifier .env pour pointer vers votre fournisseur de modèle. Les valeurs par défaut documentées utilisent un point de terminaison OpenAI compatible LiteLLM, telles que :
    • THUKI_PROVIDER=litellm
    • THUKI_API_BASE_URL=http://127.0.0.1:4000
    • THUKI_API_KEY= (vide dans l'exemple)
    • THUKI_SUPPORTED_AI_MODELS=gemma-3-4b-it
  3. Lancer en local pour le développement :
    • npm install
    • npm run dev (Alternativement, le dépôt mentionne des commandes Bun.)
  4. Pour le packaging en production, builder le frontend d'abord (npm run build) puis lancer Electron sans le serveur de développement Vite (npm run start). Des commandes de distribution Windows sont également fournies (dist:portable, dist:win).

Cas d'utilisation

  • Chat flottant local pour des prompts rapides : utiliser le raccourci global (Ctrl+Shift+Space) pour afficher la superposition et interagir via les commandes de chat de l'application.
  • Gestion des sessions de chat : sauvegarder, lister, charger et supprimer l'historique des conversations en utilisant la surface de commandes d'historique intégrée à l'application.
  • Travail avec des flux de travail liés aux images : déclencher des commandes qui sauvegardent ou suppriment des images et effectuent le nettoyage des images orphelines lors de l'utilisation des fonctionnalités d'images de l'interface de chat.
  • Capture de contenu depuis le bureau : utiliser les commandes de capture d'écran pour fournir un contexte visuel via la même surface de commandes exposée à l'interface.
  • Configuration d'un proxy de modèle local : configurer l'application pour utiliser un point de terminaison OpenAI compatible LiteLLM à l'URL de base spécifiée dans .env, activant le comportement du fournisseur de modèle par défaut.

FAQ

Le projet prend-il en charge macOS ?
Le dépôt note que « les commandes de permissions/onboarding spécifiques à macOS renvoient des valeurs par défaut Windows sûres », ce qui indique que la version actuelle est prioritairement pour Windows et que le comportement spécifique à macOS est géré de manière conservatrice pour Windows.

Comment l'application se connecte-t-elle à un fournisseur de modèle IA ?
Par défaut, le fournisseur de modèle est configuré pour utiliser un point de terminaison OpenAI compatible LiteLLM. Vous définissez THUKI_PROVIDER, THUKI_API_BASE_URL, THUKI_API_KEY et les modèles pris en charge via .env.

La recherche est-elle implémentée ?
Le dépôt indique que « la recherche est simulée comme SandboxUnavailable afin que l'interface existante affiche la carte de configuration », ce qui signifie que la recherche n'est pas pleinement fonctionnelle dans l'implémentation actuelle.

Le glisser-déposer et le déplacement de fenêtre de bureau sont-ils entièrement natifs ?
Non. Le glisser-pour-déplacer « n'est pas encore entièrement natif » et « le déplacement de fenêtre reste une tâche à venir ».

Comment les builds de production sont-ils packagés pour Windows ?
Le dépôt fournit des commandes de build Windows incluant npm run dist:portable pour un EXE portable et npm run dist:win pour un installateur Windows. Il note également la régénération de l'icône pour miaw.ico à partir de public/miaw-logo.png pour synchroniser la marque.

Alternatives

  • Clients de bureau « chat flottant » qui s'intègrent avec des serveurs LLM locaux : ils se concentrent généralement sur une interface toujours disponible similaire, mais peuvent ne pas réutiliser la surface de commandes existante de Miaw ou les appels clients compatibles Tauri.
  • Clients de chat génériques pour les API compatibles OpenAI (locales ou distantes) : utiles si vous avez seulement besoin d'une interface de chat standard et ne requérez pas l'ensemble spécifique de commandes pour les conversations/historique, les commandes d'images et les captures d'écran.
  • Construction à partir d'une superposition basée sur React avec Electron : si vous voulez un contrôle total sur les raccourcis, le comportement de la barre des tâches et la connectivité au modèle, une intégration personnalisée peut être plus flexible qu'une application préconstruite centrée sur Miaw.
  • Autres approches de wrappers multiplateformes Tauri/Electron : si votre objectif principal est de préserver une surface de commandes existante et des appels front-end, une stratégie de wrapper différente peut mieux correspondre à vos plateformes cibles et besoins en comportement de fenêtre.