AIエージェントにComputer Useを組み込みたくても、対応モデルがClaudeやGPT-4oなどフロンティアモデルに限られていた。Nous Researchが開発するHermes Agentが、trycuaのcua-driverと統合し、この制限を取り除いた。2026年5月11日に早期プレビューが公開されている。

この記事でわかること:
– 任意のLLMモデルでComputer Useが使えるようになった仕組み
– cua-driverによるバックグラウンド操作の動作原理
– セットアップ手順と対応モデル一覧
– 安全機能と現時点の制限

AIがmacOSを裏から操作するとは

従来のComputer Useは、AnthropicのAPIネイティブスキーマを要求するClaude専用か、OpenAIのCUAエンドポイントのような特定フロンティアモデルに依存していた。ローカルで動くオープンモデルや、OpenRouter経由のモデルでは使えなかった。

Hermes AgentとtrycuaのcUA Driver統合はこの前提を変える。ツール呼び出しができるモデルであれば何でも動く。AnthropicのネイティブスキーマはHermes側のアダプターが変換するため、モデル側には特別な対応が不要だ。

バックグラウンド動作もこの統合の重要な点だ。通常のComputer UseはAIがカーソルを奪うように動作するが、cua-driverはHIDイベントタップを使わない。Appleのプライベートなマクロ技術SkyLight SPI(SLEventPostToPidSLPSPostEventRecordTo)とアクセシビリティSPI(_AXObserverAddNotificationAndCheckRemote)を使って合成イベントを直接プロセスに送るため、ユーザーのカーソルとキーボードフォーカスが動かない。AIとユーザーが同じMacで同時に作業できる状態を保てる。

https://github.com/trycua/cua

仕組み

Hermes AgentのComputerUseツールセットは、stdio経由のMCPでcua-driverと通信する。cua-driverはmacOS上でこの3つを実現する。

  • 合成イベントを対象プロセスに直接投げる(カーソル移動なし)
  • AppKitのアクティブ状態をウィンドウを前面に出さずに切り替える
  • ウィンドウが隠れていてもChromium・ElectronのアクセシビリティツリーをAX生存させる

スクリーンショットはOpenAI形式のimage_urlパーツとしてツール結果に含まれる。Anthropicを使う場合はアダプターがtool_resultイメージブロックに変換する。このためモデル側に追加実装は必要ない。

同様のアプローチはOpenAIのCodexにおける「バックグラウンドComputer Use」でも採用されている。trycuaはそのオープンソース実装として位置付けられる。

対応モデル一覧

プロバイダ ビジョン対応 動作 備考
Anthropic(Claude Sonnet/Opus 3+) 最も高精度。SOMと座標の両方に対応
OpenRouter(ビジョン対応モデル) マルチパートtoolメッセージ対応
OpenAI(GPT-4+、GPT-5) 同上
ローカルvLLM / LM Studio マルチパートtool contentに対応したモデルが必要
テキストのみのモデル ✅(制限あり) mode="ax" でアクセシビリティツリーのみ利用可

Claudeが最高精度とされているが、ローカルで動くビジョン対応モデルでも動作する。クラウドAPIに依存しない完全ローカル構成のエージェント環境が組めるのは大きい。

セットアップ手順

Hermes Agentのインストールは以下のコマンド1行で完了する。

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

インストール後、以下の手順でComputer Use機能を有効にする。

  1. hermes tools を実行し、「🖱️ Computer Use (macOS)」→「cua-driver (background)」を選択する
  2. セットアップがcua-driverのインストーラーを自動で実行する
  3. 「システム設定 → プライバシーとセキュリティ → アクセシビリティ」でターミナルまたはHermesアプリを許可する
  4. 同じく「画面収録」でも許可する
  5. セッションを開始する
hermes -t computer_use chat

常にComputer Useを有効にしておきたい場合は ~/.hermes/config.yamlenabled_toolsetscomputer_use を追加する。

使い方の例

「Stripeから来た最新のメールを要約して」と指示すると、エージェントは次のように動作する。

  1. Mailアプリの画面をキャプチャし、各要素に番号を振る(SOM: Set-of-Mark)
  2. 番号を指定して検索欄をクリック
  3. from:stripe とタイプしてEnterを送る
  4. 結果をキャプチャして最上位のメールをクリック
  5. 本文を読んで要約する

この一連の操作中、ユーザーのカーソルは動かない。Mailアプリが前面に出ることもない。操作の精度はSOMモードが最もよく、アクセシビリティツリーのみを使うmode="ax"ではビジョン不要で動かせる。

トークン効率の工夫も施されている。スクリーンショットはコンテキスト内に直近3枚だけ保持され、古いものは[screenshot removed to save context]というプレースホルダーに置き換えられる。Anthropic使用時はサーバーサイドのコンテキスト編集機能も有効にできる。1568×900の画面で20アクションのセッションを実行した場合のスクリーンショットコストはおよそ3万トークンで収まる。

安全機能

クリック・タイプ・ドラッグなど状態を変える操作は、CLIのダイアログかメッセージングプラットフォームの承認ボタンで確認が必要だ。加えて以下の操作はツールレベルでハードブロックされている。

  • ゴミ箱を空にする・強制削除・画面ロック・ログアウト・強制ログアウト
  • curl | bashsudo rm -rf /、フォークボムなど危険なシェルコマンドのタイプ
  • スクリーンショット内に埋め込まれた指示に従ってパスワードを入力する行為

~/.hermes/config.yamlsecurity.approval_level を設定すると、すべての操作を確認制にできる。

制限と注意点

macOSのみの対応だ。cua-driverが使うSkyLight APIはLinuxやWindowsに存在しない。クロスプラットフォームのWeb自動化が必要な場合はブラウザツールセットが代替になる。

プライベートAPIへの依存も考慮が必要だ。Apple はSkyLightのシンボルをいつでも変更できる。本番環境で安定性が求められる場合は HERMES_CUA_DRIVER_VERSION 環境変数でcua-driverのバージョンを固定しておく。

処理速度もフォアグラウンドモードより5〜20ms遅い。エージェントが行うクリック速度では問題ないが、UI操作の速度記録をとるような用途には向かない。

まとめ

Hermes Agent × cua-driverの統合で、macOSのComputer UseがフロンティアモデルのAPIに依存しない構成を取れるようになった。Claude、GPT、ローカルモデルを問わず、ツール呼び出しができるモデルであれば同じ方法でmacOSを操作できる。完全ローカル構成のエージェント環境を組みたい場合の選択肢として注目に値する。