UStackUStack
miaw-ai-desktop icon

miaw-ai-desktop

miaw-ai-desktopはWindows向けElectronアプリ。MiawのフローティングチャットUIと、チャット/履歴/画像/スクショ対応の互換コマンドを提供。

miaw-ai-desktop

miaw-ai-desktopとは?

miaw-ai-desktopは、ElectronベースのWindows優先デスクトップアプリで、「Miaw」のシンプルなフローティングチャットインターフェースを提供します。このプロジェクトは、既存のMiaw React UIを再現し、互換コマンドサーフェス(Tauri互換クライアントシムを含む)を維持することに焦点を当て、チャット、履歴、画像、スクリーンショット向けのサポートバックエンドコマンドと連携します。

リポジトリには.envファイルによるローカル設定のドキュメント、LiteLLM互換OpenAIエンドポイントをデフォルトモデルプロバイダとしてサポート、開発・本番・Windows EXEパッケージング向けのビルド手順も記載されています。

主な機能

  • 既存のReactベースMiawインターフェースを反映したフローティングチャットウィンドウUI(Electronシェル)。バックエンドが利用不可時のセットアップカードを含む。
  • トレイアイコンとグローバルショートカット(Ctrl+Shift+Space)でチャットオーバーレイの表示/非表示をサポート。
  • @tauri-apps/apiモジュール(core, event, window, dpi)向けTauriクライアントシムにより、フロントエンドが既存の内部呼び出しを再利用可能。
  • チャットストリーミングと会話管理向けコマンドサーフェス。ask_ollamacancel_generationreset_conversation、および会話履歴操作(save_conversationpersist_messagelist_conversationsload_conversationdelete_conversation)を含む。
  • 画像およびスクリーンショットコマンド。画像の保存/削除コマンドとスクリーンキャプチャコマンド(capture_screenshot_commandcapture_full_screen_command)を含む。
  • ウィンドウ/イベントフックとその他ユーティリティ(notify_frontend_readynotify_overlay_hiddenopen_url、およびget_model_config)。

miaw-ai-desktopの使い方

  1. リポジトリをクローンし、提供された環境テンプレートをコピー:.env.example.envにコピー。
  2. .envを編集してモデルプロバイダを指定。ドキュメントのデフォルトはLiteLLM互換OpenAIエンドポイントを使用し、以下のような値:
    • THUKI_PROVIDER=litellm
    • THUKI_API_BASE_URL=http://127.0.0.1:4000
    • THUKI_API_KEY=(例では空)
    • THUKI_SUPPORTED_AI_MODELS=gemma-3-4b-it
  3. 開発向けローカル実行:
    • npm install
    • npm run dev (リポジトリにBunコマンドの記載あり。)
  4. 本番パッケージングでは、まずフロントエンドをビルド(npm run build)し、Vite devサーバーなしでElectronを実行(npm run start)。Windows配布コマンド(dist:portabledist:win)も提供。

ユースケース

  • クイックプロンプト向けローカルフローティングチャット:グローバルショートカット(Ctrl+Shift+Space)でオーバーレイを表示し、アプリのチャットコマンドで操作。
  • チャットセッション管理:アプリ内履歴コマンドサーフェスで会話履歴の保存、リスト表示、読み込み、削除。
  • 画像関連ワークフロー:チャットUIの画像機能使用時に画像保存/削除コマンドと孤立画像クリーンアップを実行。
  • デスクトップコンテンツキャプチャ:UIに公開された同一コマンドサーフェス経由でスクリーンショットコマンドを使用し、視覚コンテキストを供給。
  • ローカルモデルプロキシ設定:.envで指定したベースURLのLiteLLM互換OpenAIエンドポイントを使用するようアプリを設定し、デフォルトモデルプロバイダ動作を有効化。

FAQ

macOSをサポートしていますか? リポジトリに「macOS専用パーミッション/オンボーディングコマンドはWindows向け安全デフォルトを返す」と記載されており、現在はWindows優先ビルドで、macOS特有動作はWindows向けに保守的に処理されています。

アプリはAIモデルプロバイダにどう接続しますか? デフォルトでLiteLLM互換OpenAIエンドポイントを使用するようモデルプロバイダが設定。.envTHUKI_PROVIDERTHUKI_API_BASE_URLTHUKI_API_KEY、サポートモデルを指定。

検索機能は実装されていますか? リポジトリに「検索はSandboxUnavailableでスタブ化され、既存UIがセットアップカードを表示」と記載。つまり、現実装では検索が完全には機能していません。

デスクトップウィンドウのドラッグと移動は完全にネイティブですか? いいえ。ドラッグ移動は「まだ完全にネイティブではない」、ウィンドウ移動は「今後のタスク」とされています。

Windows向け本番ビルドのパッケージング方法は? リポジトリにWindowsビルドコマンドを提供。ポータブルEXE向けnpm run dist:portableとWindowsインストーラー向けnpm run dist:win。ブランディング同期のためpublic/miaw-logo.pngからmiaw.icoのアイコン再生成も記載。

代替案

  • ローカルLLMサーバーと統合するデスクトップ「フローティングチャット」クライアント:類似の常時利用可能UIに焦点を当てるが、Miawの既存コマンドサーフェスやTauri互換クライアント呼び出しを再利用しない場合あり。
  • OpenAI互換API(ローカル/リモート)向け汎用チャットクライアント:標準チャットUIのみ必要で、会話/履歴、画像コマンド、スクリーンショットコマンドの特定セットが不要な場合に有用。
  • Electron付きReactベースオーバーレイからの構築:ショートカット、トレイ動作、モデル接続を完全に制御したい場合、事前構築Miaw特化アプリよりカスタム統合が柔軟。
  • その他のTauri/Electronクロスプラットフォームラッパーアプローチ:既存コマンドサーフェスとフロントエンド呼び出しを維持する主目標の場合、対象プラットフォームとウィンドウ動作ニーズに合った別ラッパー戦略が適する。