agent-sh/computer-use-linux

Linux desktop control over MCP — AT-SPI, GNOME Shell, Wayland portals, ydotool

解決する課題

既存のツールはmacOS専用であったり、不正確なピクセルベースのOCRに依存していたりすることが多いため、本プロジェクトはAIエージェントがライブのLinuxデスクトップと対話できるようにします。エージェントが単に特定の座標をクリックするのではなく、セマンティックなアクション(ボタンの名前によるクリックなど)を実行する方法を提供します。

仕組み

このプロジェクトは、Linuxデスクトップ環境とインターフェースするModel Context Protocol (MCP) サーバーとして機能します。制御を獲得するために以下の手法を使用します:

  • Observation (観測): アクセシビリティツリーを読み取り(AT-SPI経由)、スクリーンショットを撮り、コンポジタを認識するバックエンド(GNOME, KDE, Hyprland, i3, および COSMIC)を使用してウィンドウをリストアップします。
  • Input (入力): Waylandポータル、またはフォールバックとしてydotoolを使用して、マウスおよびキーボードのアクションを駆動します。
  • Semantic Selection (セマンティック選択): アクセシビリティデータを使用して、エージェントがロール、名前、またはテキストによって要素を選択できるようにし、必要な場合にはピクセル座標にフォールバックします。

対象者

  • AIエージェント開発者: MCPを介してLinuxデスクトップを操作する必要のあるエージェントを構築しているすべての人。
  • Linuxユーザー: Claude Desktop、Claude Code、またはHermes Agentなどのツールを使用して、デスクトップ自動化をワークフローに統合したいユーザー。

ハイライト

  • Waylandサポート: デスクトップポータルを使用した「Waylandファースト」のアプローチで構築されています。
  • コンポジタ認識: GNOME, KDE, Hyprland, i3, および COSMIC を含む複数のウィンドウマネージャをサポートしています。
  • セマンティック制御: AT-SPIを介して、名前やロールによるUI要素との対話をサポートしています。
  • 診断ツール: システム要件のトラブルシューティングのために、JSON形式の準備完了レポートを生成するdoctorコマンドが含まれています。