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: アプリをダウンロード(最も簡単)
- リリースページにアクセスし、
cue-mac.zipをダウンロードします。 - ダブルクリックして解凍し、
cue.appをアプリケーションフォルダにドラッグします。 - 初回起動: 右クリック → 開く → 開くをクリック。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— アプリ + キャプチャ + AIrenderer/— UIsrc/— プロバイダー
ソースにビルドステップはありません(プレーンなHTML/CSS/JS)。
プラットフォームサポート
- macOS: 完全サポート
- Windows: 完全サポート
- Linux: 未テスト
ライセンス
GPL-3.0-or-later。
ソース
Blueturboguy07/cue: オープンソースのmacOS AIコパイロット。画面上に浮かび、会議を見聞きし、画面共有から隠れます。Cluelyの代替、独自キーを持ち込み。