Vercel Labsにagent-desktop エージェントが画面の部品を読んで操作
米Vercelの実験的なプロジェクトを集めるVercel Labsが、AIエージェントにデスクトップアプリを操作させるオープンソースのCLI「agent-desktop」を自らの組織に移した。画面の画像ではなくOSのアクセシビリティの情報で部品を読み、macOS・Windows・Linuxで動く。
記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談
毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

米Vercelの実験的なプロジェクトを集める「Vercel Labs」が、AIエージェントにデスクトップアプリを操作させるオープンソースのCLI「agent-desktop」を自らの組織に迎えた。10月28日に版1.0を出し、10月31日の1.0.2で開発者の個人の場所からVercel Labsに移った。画面の画像から位置を推し量るのではなく、OSが持つ画面の部品の情報を読んで操作する。Claude CodeやCodexのような手元のエージェントに、ブラウザの外のアプリを触らせる道具が一つ増えたことになる。
画像ではなく部品の一覧で画面を読む
agent-desktopのリポジトリの説明によると、この道具はOSの「アクセシビリティツリー」(画面の読み上げ機能などのために、OSがアプリの部品を木の形で持つ情報) を読む。macOS、Windows、Linuxで動き、Rustで書かれている。ライセンスはApache-2.0で、仕事にも使える。
エージェントはまず「snapshot」の命令で、アプリの画面をJSONで受け取る。ボタンや入力欄、メニューなどの操作できる部品には、それぞれ「@s8f3k2p9:e8」のような参照の印が付く。エージェントはこの印を指して押す・打つを命じ、もう一度snapshotを取って結果を確かめる。
公式のFAQは、ボタンを押したり入力欄に打ったりするのに、スクリーンショットも画像の照合も要らないと説明している。スクリーンショットの命令は別に用意されているが、基本の流れには入らない。つまり、座標を外して別の場所を押す失敗が起きにくい作りだ。
古い画面の印では操作させない
画面が変わった後に古い印で操作しようとすると、agent-desktopは「STALE_REF」というエラーを返す。窓が複数あって対象が決まらない時は「AMBIGUOUS_TARGET」を返し、候補の窓のIDを添える。エラーには次に何をすべきかの提案と、やり直してよいかの印が付く。
リポジトリの説明では、操作は既定で「ヘッドレス」で行う。アクセシビリティの仕組みを通して部品を動かし、マウスのポインターを動かさず、手前の窓も奪わない。人が同じ画面で作業していても、エージェントが裏でアプリを操作できるということだ。実際のマウスやキーボードの入力を使いたい時は、「--headed」 の指定を付ける。
Slackのように部品の多いアプリでは、まず「--skeleton」で浅い全体図を取り、操作したい区画だけを掘り下げる。エージェントが読む量を必要な分に絞るための仕組みだ。命令は60あり、窓の操作、通知、クリップボード、待機まで揃う。
手元のエージェントにそのまま渡せる
導入はnpmで「npm install -g agent-desktop」の1行だ。
macOSでは、使う前にアクセシビリティの権限を与える。Linuxでは、画面の部品の情報を出す「at-spi2-core」が動くデスクトップの環境が要る。
道具の使い方は、本体が版に合った説明書を持つ。「agent-desktop skills get desktop」 で基本の流れ、「agent-desktop skills get platform」 で使っているOSの違いを出す。リポジトリは、エージェントの決まりを書くAGENTS.mdに「使う前にこの2つを読んで従う」と2行足す方法を示している。Claude Codeのスキルとして入れる手順もある。
Pythonなどから毎回CLIを起こさずに呼べるCのライブラリも、リポジトリの説明のとおり各版に一緒に配られている。自社のエージェントの仕組みに組み込む人には、こちらが速い。
画面の中身は外に出さない
リポジトリは、snapshotやクリップボード、スクリーンショットの結果に、操作した画面の中身がそのまま入ると注意している。社内のチャットやメールを開いたまま操作させれば、その文字が記録に残る。公開のログやアップロードには出さないよう求めている。
本体のCLIは外のモデルのサービスを要らない。ただし、画面の説明をモデルに送る補助の道具は別にあり、使う時は送り先に出してよいデータかを確かめる必要がある。
Vercel Labsへの移籍は、版1.0.2の変更の一覧に記録がある。説明のサイトも同じ版で加わった。11月1日の時点で、リポジトリのスターは4000を超えている。画像の推測ではなく部品の一覧で画面を読む道具が、Vercelの名前のもとで手元のエージェントに使えるようになった。
編集部の見方
デスクトップアプリを操作するエージェントは、RolloutでもCursorのエージェントがデスクトップアプリを操作する話を取り上げてきた。agent-desktopの違いは、道具だけを切り出して手元のどのエージェントにも渡せることだ。社内の古い業務アプリの確認を、Claude Codeの作業の流れに組み込みたい人は、まずテスト用の画面で試す価値がある。
一方で、エージェントに画面を触らせる範囲は人が決める必要がある。snapshotには開いている窓の中身がそのまま入るので、試す時は関係ないアプリを閉じ、記録の置き場所も決めておきたい。
出典
に確認(日本時間)
- agent-desktop のリポジトリ(github.com)
- 公式のFAQ(github.com)
- 版1.0.2の変更の一覧(github.com)
- Cursorのエージェントがデスクトップアプリを操作する話(rollout.sagus.io)
この記事は役に立ちましたか
ありがとうございます
ありがとうございます



