コンパニオンアプリ
コンパニオンアプリとは何ですか?
コンパニオンアプリとは、iOS、Android、macOS向けのネイティブアプリケーションで、ノードとしてGatewayに接続します。ノードはデバイスの機能, , カメラ、キャンバス、画面録画、位置情報、音声、システム実行, , をエージェントに提供します。
わかりやすく言えば、GatewayはAI(頭脳)であり、コンパニオンアプリはデバイス上の手と目です。
ノードの仕組み
- 接続, コンパニオンアプリがWebSocketを通じてGatewayに接続します
- ペアリング, 新しいデバイスはペアリング承認プロセスを経ます
- 機能の登録, アプリはGatewayに自分ができること(カメラ、キャンバス、位置情報など)を通知します
- エージェントによる呼び出し, 会話中に、エージェントはノードに写真撮影、画面録画、キャンバスのレンダリングなどを要求できます
ノードはGatewayではありません, , 独自のAIを実行しません。エージェントができることを拡張する周辺デバイスです。
macOSコンパニオンアプリ
macOSアプリはメニューバーに常駐し、コンパニオンノードとGatewayマネージャーの両方として機能します。
機能
- キャンバス, ネイティブウィンドウでインタラクティブなWebコンテンツをレンダリング
- カメラ, 写真と動画クリップの撮影(前面/背面)
- 画面録画, 全画面またはアプリ別の録画
- システム実行, Macでシェルコマンドを実行(実行承認によるゲーティング)
- 通知, 優先度オプション付きのmacOSネイティブ通知を送信
- 位置情報, 利用可能な場合はGPS
追加機能
- Gateway管理, GatewayのStart、Stop、モニタリング
- 権限の所有, macOS TCC権限(通知、アクセシビリティ、画面録画、マイク、音声認識、AppleScript)を管理
- ディープリンク, パラメーター付きでエージェントを起動するための
neotask://URLスキーム - CLIインストール,
neotaskコマンドラインツールをインストール
iOSアプリ
iOSアプリはGatewayにノードとして接続し、エージェントにモバイル機能を提供します。
機能
- キャンバス, SwiftUIベースのインタラクティブコンテンツレンダリング
- カメラ, 写真と動画クリップ(前面/背面カメラ)
- 音声録音, マイクによるキャプチャ
- 位置情報, 精度選択付きGPS
- 通知, iOSネイティブプッシュ通知
特徴
- ディスカバリー, Bonjour(LAN)、Tailscale(VPN)、または手動入力でGatewayを検出
- ペアリング, GatewayからApprovalを受けた上での安全なデバイスペアリング
- ボイスウェイク, ハンズフリー操作のためのウェイクワードアクティベーション
- トークモード, 継続的な音声会話
- 共有拡張機能, 他のアプリからエージェントへ直接コンテンツを共有
- A2UI, デバイスのキャンバスでのエージェント駆動UIレンダリング
制限事項
- フォアグラウンド優先設計(iOSはバックグラウンドでWebSocket接続を一時停止)
- 厳格なバックグラウンドコマンド制限
- 現在、内部プレビュー段階
Androidアプリ
AndroidアプリはiOSと同様の機能を持つノードとして接続します。
機能
- キャンバス, Jetpack ComposeベースのUIレンダリング
- カメラ, 写真と動画(前面/背面、権限によるゲーティング)
- 画面録画, システム画面キャプチャ(Android 10以降)
- 位置情報, 精度モード付きGPS
- SMS送信, テレフォニーサポートを持つデバイス上
- チャット履歴, デバイス上での会話履歴の表示
特徴
- フォアグラウンドサービス, 永続的な通知で接続を維持
- 共有セッション, 接続されたすべてのノード間で同じセッション
- モダンAndroid, Android 12以降(API 31)が必要
ヘッドレスノードホスト
UIなしでノードを実行, , ビルドサーバー、リモートマシン、またはヘッドレスLinuxボックスに最適。
機能
- システム実行, ノードホストでコマンドを実行
- コマンド許可リスト, ノードが実行できるコマンドを設定
- 永続サービス, launchd/systemdサービスとしてインストール
ユースケース
- CI/CDビルドエージェント, AIエージェントにリモートサーバーでのビルドをトリガーさせる
- ホームラボ自動化, Raspberry PiやホームサーバーでコマンドをRun
- マルチマシンオーケストレーション, 複数のマシン間でタスクを調整
デバイスペアリング
ペアリングフロー
- コンパニオンアプリがデバイスIDを提示(フィンガープリント + 公開鍵)
- Gatewayがペアリング承認リクエストを発行
- デスクトップアプリまたはダッシュボードでデバイスを承認
- Gatewayが将来の接続のためのデバイストークンを発行
トラストモデル
- ローカルデバイス(ループバック)は利便性のために自動承認
- ローカル以外のデバイスは明示的な承認が必要
- デバイストークンはローカルに保存され、再接続時に再利用
実行承認
システムコマンドを実行できるノード(macOS、ヘッドレスホスト)に対して、実行承認は許可されるものを制御します:
- 許可リストモード, 事前承認されたコマンドのみ実行可能
- 質問モード, 不明なコマンドは承認を求める
- フルモード, 制限なし(慎重に使用)
各デバイスができることを正確に制御するために、ノードごとの許可リストを設定します。