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_ollama、cancel_generation、reset_conversation、および会話履歴操作(save_conversation、persist_message、list_conversations、load_conversation、delete_conversation)を含む。 - 画像およびスクリーンショットコマンド。画像の保存/削除コマンドとスクリーンキャプチャコマンド(
capture_screenshot_command、capture_full_screen_command)を含む。 - ウィンドウ/イベントフックとその他ユーティリティ(
notify_frontend_ready、notify_overlay_hidden、open_url、およびget_model_config)。
miaw-ai-desktopの使い方
- リポジトリをクローンし、提供された環境テンプレートをコピー:
.env.exampleを.envにコピー。 .envを編集してモデルプロバイダを指定。ドキュメントのデフォルトはLiteLLM互換OpenAIエンドポイントを使用し、以下のような値:THUKI_PROVIDER=litellmTHUKI_API_BASE_URL=http://127.0.0.1:4000THUKI_API_KEY=(例では空)THUKI_SUPPORTED_AI_MODELS=gemma-3-4b-it
- 開発向けローカル実行:
npm installnpm run dev(リポジトリにBunコマンドの記載あり。)
- 本番パッケージングでは、まずフロントエンドをビルド(
npm run build)し、Vite devサーバーなしでElectronを実行(npm run start)。Windows配布コマンド(dist:portable、dist:win)も提供。
ユースケース
- クイックプロンプト向けローカルフローティングチャット:グローバルショートカット(Ctrl+Shift+Space)でオーバーレイを表示し、アプリのチャットコマンドで操作。
- チャットセッション管理:アプリ内履歴コマンドサーフェスで会話履歴の保存、リスト表示、読み込み、削除。
- 画像関連ワークフロー:チャットUIの画像機能使用時に画像保存/削除コマンドと孤立画像クリーンアップを実行。
- デスクトップコンテンツキャプチャ:UIに公開された同一コマンドサーフェス経由でスクリーンショットコマンドを使用し、視覚コンテキストを供給。
- ローカルモデルプロキシ設定:
.envで指定したベースURLのLiteLLM互換OpenAIエンドポイントを使用するようアプリを設定し、デフォルトモデルプロバイダ動作を有効化。
FAQ
macOSをサポートしていますか? リポジトリに「macOS専用パーミッション/オンボーディングコマンドはWindows向け安全デフォルトを返す」と記載されており、現在はWindows優先ビルドで、macOS特有動作はWindows向けに保守的に処理されています。
アプリはAIモデルプロバイダにどう接続しますか?
デフォルトでLiteLLM互換OpenAIエンドポイントを使用するようモデルプロバイダが設定。.envでTHUKI_PROVIDER、THUKI_API_BASE_URL、THUKI_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クロスプラットフォームラッパーアプローチ:既存コマンドサーフェスとフロントエンド呼び出しを維持する主目標の場合、対象プラットフォームとウィンドウ動作ニーズに合った別ラッパー戦略が適する。
代替品
BookAI.chat
BookAIは、書名と著者を提供するだけで、AIを使って本とチャットできるサービスです。
Ably Chat
Ably Chatはカスタムリアルタイムチャット用のAPI/SDK。リアクション、プレゼンス、メッセージ編集/削除に対応し高負荷も設計。
Grok AI Assistant
GrokはxAIによって開発された無料のAIアシスタントであり、真実性と客観性を優先するように設計されており、リアルタイム情報アクセスや画像生成などの高度な機能を提供します。
AakarDev AI
AakarDev AIは、シームレスなベクターデータベース統合を通じてAIアプリケーションの開発を簡素化し、迅速な展開とスケーラビリティを実現する強力なプラットフォームです。
skills-janitor
skills-janitorでClaude Codeのスキルを監査・使用状況を追跡し、9つの/コマンドと比較。重複や不備もチェック。依存なし。
Talkpal
Talkpalは、没入型の会話とリアルタイムのフィードバックを通じて、ユーザーがより早く言語を学ぶのを助けるAI言語教師です。