Cue: オープンソースのmacOS AIコパイロット、画面共有で隠れて動作

Cueは、無料でセルフホスト可能なmacOS向けAIコパイロットです。画面上に浮かび、会議を聞き取り、画面共有では見えなくなります。Cluelyの代替となる、独自キーを持ち込む方式のツールです。

Cueとは?

Cueは、オープンソースのmacOS AIコパイロットで、すべての操作の上に小さなガラスパネルを浮かべます。画面を見て、会議(マイクとシステムオーディオの両方)を聞き、AIを使ってリアルタイムで支援します。しかも、画面共有では非表示のままです。録画やビデオ通話に決して現れないプライベートアシスタントと考えてください。

これは、CluelyやInterview Coderのようなツールに代わる、無料でセルフホスト可能な選択肢です。独自のAPIキー(OpenAI、Anthropic、またはGoogle Gemini)を持ち込むため、サブスクリプション料金はなく、使用した分だけAIプロバイダーに支払います。

なぜこれが重要なのか

ほとんどのAIコパイロットはブラウザタブで動作するか、コンテキストを切り替える必要があります。Cueは画面上に常駐し、常に利用可能で、画面録画やビデオ通話では非表示になるように設計されています。これにより、以下のような場面で特に役立ちます。

  • ライブ会議: 次に何を言うべきか、リアルタイムで提案を得られます。
  • コーディング問題: バグやアルゴリズムの問題をスクリーンショットして、完全な解決策を得られます。
  • 学習と練習: ワークフローを中断せずに学習補助として使用できます。

仕組み

CueはElectronアプリで、選択したAIプロバイダーへのAPI呼び出しを除き、完全にローカルで動作します。3つの個別の入力をキャプチャします。

  • 画面: ElectronのdesktopCapturerを介してオンデマンドでフル解像度のスクリーンショットを取得。
  • マイク: getUserMediaでキャプチャし、16kHzにダウンサンプリングして文字起こし。
  • 会議音声: getDisplayMediaループバックでキャプチャしたシステム出力音声。誰が何を言ったかをCueが認識できるよう、別のチャンネルに保持。

両方の音声ストリームは文字起こしされ(OpenAI WhisperまたはGoogle Geminiを使用)、オプションのスクリーンショットとともにAIモデルに送られます。応答はパネルに単語単位でストリーミング表示されます。

主な機能

機能 トリガー 使用するもの
アシスト ⌘↵(設定可能) 画面 + 最近の会話
何を言うべきか? ボタン 会議音声 + マイク
フォローアップ質問 ボタン 会話全体
要約 ボタン 会話全体
何でも質問 入力 + 画面 + 会話
コーディング問題を解決 ⌘H 画面のみ
スマート切り替え ボックス内のピル よりスマートな(低速な)モデルに切り替え

インストール

オプションA: アプリをダウンロード(最も簡単)

  1. リリースページにアクセスし、cue-mac.zipをダウンロードします。
  2. ダブルクリックして解凍し、cue.appをアプリケーションフォルダにドラッグします。
  3. 初回起動: 右クリック → 開く → 開くをクリック。macOSが破損していると表示した場合、以下を実行します。
    xattr -cr /Applications/cue.app
    

オプションB: ソースから実行(開発者向け)

Node.js 18+が必要です。

git clone https://github.com/Blueturboguy07/cue.git
cd cue
npm install
npm start

独自の.appをビルドするには:

npm run pack

初回起動時の設定

ステップ1: 権限を付与

  • マイク: システム設定 → プライバシーとセキュリティ → マイク → Cueを有効化。
  • 画面収録: システム設定 → プライバシーとセキュリティ → 画面収録 → Cueを有効化。

ステップ2: AIキーを追加

設定を開き(⌘,)、プロバイダーを選択し、キーを貼り付けます。

プロバイダー キーを取得 備考
OpenAI platform.openai.com/api-keys リスニング機能にはWhisper/音声アクセス権限が必要
Anthropic (Claude) console.anthropic.com 画面・コーディング支援に最適。文字起こしには別のキーが必要
Google Gemini aistudio.google.com/apikey 1つのキーでチャットと文字起こしが可能

キーはローカルのcue-data.jsonに保存され、プロバイダーにのみ送信されます。Cueにはサーバーがなく、テレメトリーも収集しません。

ステップ3: Zoomの設定(Zoomのみ)

Zoom共有でCueを非表示にするには:

Zoom → 設定 → 画面共有 → 詳細 → 画面キャプチャモード → 「ウィンドウフィルタリングを使用した高度なキャプチャ」 を選択。

これにより、ZoomはCueの「キャプチャしない」フラグを尊重します。「ウィンドウフィルタリングなし」モードではCueが表示されます。

非表示機能の仕組み

Cueは単一のmacOSウィンドウフラグsetContentProtection(true)を使用し、NSWindowSharingNoneを設定します。これにより、ウィンドウサーバーは画面キャプチャストリームからCueを除外するよう要求します。これはDRMアプリやZoom自身のツールバーで使用されるのと同じメカニズムです。

重要な注意点: macOS 15.4以降では、Appleは一部のキャプチャツールがこのフラグを無視することを許可しています。これはベストエフォートであり、保証されません。監視付き試験、就職面接、録画会議で隠しアシスタントを使用すると、プラットフォームのルールや同意法に違反する可能性があります。

アーキテクチャ

メインプロセス ──┬─ オーバーレイウィンドウ(フレームレス、透明、常に最前面、コンテンツ保護)
               ├─ スクリーンショットキャプチャ(desktopCapturer)
               ├─ 音声認識(Whisper / Gemini) ── 「自分」+「相手」チャンネル
               └─ LLMストリーミング(OpenAI / Anthropic / Gemini)
レンダラー ──────┴─ ガラスUI + マイクキャプチャ + システムオーディオループバック

トラブルシューティング

  • 「アクセスを許可してください」と表示されるが、すでに許可している場合。 システム設定 → 画面収録でCueをオフにしてからオンにするか、削除して再度追加します。
  • 「403」/「モデルにアクセスできません」 APIキーが制限されています。キーで音声/Whisperを有効にするか、Geminiキーをフォールバックとして追加します。
  • リスニングが機能しない。 設定に文字起こし可能なキーが表示され、画面収録が許可されていることを確認します。
  • Zoom共有にCueが表示される。 Zoomのキャプチャモードを「ウィンドウフィルタリングを使用した高度なキャプチャ」に設定します。
  • 「cueは破損しているため開けません。」 ターミナルでxattr -cr /Applications/cue.appを実行します。

プライバシー

  • アカウント不要、サーバーなし、テレメトリーなし。
  • APIキーはローカルのcue-data.jsonに保存。
  • スクリーンショットと音声は、機能実行時にのみAIプロバイダーに送信。
  • 文字起こしは現在のセッションのみメモリに保持。

コントリビューション

IssueやPRは歓迎します。コードベースは意図的に小さく読みやすくなっています。

  • main.js — アプリ + キャプチャ + AI
  • renderer/ — UI
  • src/ — プロバイダー

ソースにビルドステップはありません(プレーンなHTML/CSS/JS)。

プラットフォームサポート

  • macOS: 完全サポート
  • Windows: 完全サポート
  • Linux: 未テスト

ライセンス

GPL-3.0-or-later。

ソース

Blueturboguy07/cue: オープンソースのmacOS AIコパイロット。画面上に浮かび、会議を見聞きし、画面共有から隠れます。Cluelyの代替、独自キーを持ち込み。