Clawd Cursor について
Clawd Cursorは、Windows、macOS、LinuxのデスクトップGUIを操作するエージェント向けのローカルMCPサーバーです。アクセシビリティ情報とOCRからUIマップを作り、操作を検証し、共通の安全チェックを通します。
主な機能
- 01クロスプラットフォームのデスクトップ操作
- 02アクセシビリティ情報とOCRによるUIマップ
- 03画面操作のためのビジョンフォールバック
- 04操作の検証
- 05許可・確認・拒否を行う安全ゲート
- 06人の入力を待つ一時停止
活用シーン
- 01ネイティブデスクトップアプリの自動化
- 02公開APIのないGUIの操作
- 03ログインや2FA時の自動化の一時停止
- 04重要なクリックや入力の検証
MCP 対応
互換性のあるエージェントに、MCPツールとしてデスクトップ操作機能を提供します。ローカルサーバーは共通の安全チェックを適用し、人の入力を待つために処理を一時停止できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Clawd Cursor
あらゆる AI エージェントのための安全なデスクトップ操作。画面を UI マップに変換し、安定した ID で要素を操作します(スクリーンショットや画像認識は最後の手段としてのみ使用します)。
操作結果を自ら検証し、すべての操作を 1 つの安全チェックポイントで管理します。ローカル・クロス OS・あらゆるモデルに対応。
クイックスタート · 新着情報 · 特長 · エンジン · 仕組み · ツール · プラットフォーム · 変更履歴
新着情報
1.5.24 — AI が確認用ピルに触れることはなく、失敗が結果として誤表示されることもありません。
- 一時停止中にあなたの操作を待っている間、読み取り、クリック、入力は一切行われません。確認用ピルと一時停止プロンプトは、別の clawdcursor プロセスからであっても操作対象になりません。
- macOS では、画面収録の権限がない状態でのスクリーンショットは、壁紙画像ではなくエラーとして報告されます。また、開いているポップオーバーも読み取れます。
- clawdcursor が操作するブラウザーは、ページ遷移時に前面に表示されます。
- OCR の読み取りに失敗した場合、「テキストが検出されませんでした」ではなくエラーが報告されます。また、OCR の
confidenceは、エンジンが実際に信頼度を返す場合にのみ表示されます。
1.5.23 — Windows:名前による要素の検索で、無関係な文字が一致しなくなりました。別のページにある単独の「C」が「User code 0」に一致したり、「Don't Save」がSaveに一致したりすることがありました。部分一致は、指定した名前の実際の一部である場合にのみ成立するようになりました。
1.5.22 — **あなたの作業は可能な限り短くなりました。**エージェントがあなたの対応(サインインや 2FA コードなど)を必要とするときは、その手順だけを求め、残りは自動で実行します。done_when(完了後に画面に表示される内容)を指定すると、完了した瞬間にプロンプトが青からアンバーに戻り、再開ボタンをクリックする必要はありません。
1.5.21
- **
set_valueがフィールドを推測することはありません。**以前はフィールド名やロールが指定されていないと、ウィンドウ内で最大のテキストボックスに入力していましたが、現在はフィールド名を指定するよう求めます。 - **macOS:画面収録の権限がなくても、すべての機能が停止することはありません。**失敗するのはスクリーンショットと OCR のみで、修正方法も示されます。ウィンドウ、キー、アクセシビリティ機能は引き続き動作します。
- Windows のページテキストを改善(プレースホルダー文字を除去)し、依存関係のセキュリティ更新を行いました。 1.5.20
- 画面上のピルがエージェント自身のクリックを妨げなくなりました。 ブラウザーのタブやアドレスバーがある位置に表示されますが、クリック、ドラッグ、スクロールの前に一時的に移動し、その後戻るようになりました。Windows、macOS、Linux に対応しています。
- Linux と macOS でも、ページを読み取るときにページがハイライトされなくなりました。
copy_all_textは Windows と同様に、アクセシビリティ機能を通じてドキュメントを読み取ります。テキストを正確に取得し、何も選択せず、クリップボードにも触れません。 - 入力後にクリップボードを元に戻します(
smart_typeも同様です)。貼り付けが完了してから一度だけ元に戻すため、アプリの動作が遅くても、コピーしていた内容が貼り付けられることはありません。 - macOS:
window focusは指定したプロセスにフォーカスを合わせ、画面がロックされている場合はその旨を伝え、サイドバーのクリックを検証し、単独の修飾キー(shift)も動作します。
1.5.19 — 入力時に自分のクリップボードの内容が貼り付けられることはありません。 clawdcursor は貼り付けによって入力します。Windows ではクリップボードへの書き込みが失敗しても通知されず、その後の貼り付けで あなたが コピーしていた内容が送信されることがありました。貼り付けのたびにクリップボードの内容を確認し、入力するテキストが入っていない場合は、キーを 1 つずつ押して入力するようになりました。
1.5.18
- 一時停止プロンプトに「その他」が追加されました。 エージェントが一時停止すると、プロンプトに「再開」と「タスクを終了」の間に 3 つ目のボタンが表示されます。手順を実行する代わりに回答を入力します。「代わりにテストアカウントを使う」、コード、計画の変更などを入力して、Enter キーを押してください。エージェントは入力内容を踏まえて続行します。Windows、macOS、Linux に対応しています。MCP では
pause_for_userが{status:"replied", reply}を返します。 - ページを読み取るときに、ページがハイライトされなくなりました(Windows)。
copy_all_textはスクリーンリーダーと同じ方法でドキュメントを読み取ります。テキストを正確に取得し、Ctrl+A を使わず、何も選択せず、クリップボードにも触れません。 - すべてのツールに MCP ツールアノテーションが追加されました。 また、
window/systemでは、すべてのアクション、その副作用、返される値が説明されるようになりました。
1.5.17
- macOS:ASCII 以外のテキストも、そのまま入力・貼り付けできるようになりました — 「café 日本語」が「cafa aaa」や「caf√©」になることはありません。
copy_all_textはエディターやリストを選択しません(そこで Ctrl+A を押すと、ドキュメント全体やすべてのメールが選択されていました)。
1.5.16
- 行き詰まったときに一時停止し、解決後に続行するようになりました。 サインイン、2FA コード、CAPTCHA、アップグレードページなどに遭遇しても、エージェントは諦めずに一時停止します。画面の縁が青く光り、画面上のプロンプトに必要な操作が表示されます(「Outlook にサインインしてから、『再開』をクリックしてください」)。再開をクリックすると中断したところから続行し、タスクを終了をクリックすると停止します。独自のエージェントも MCP 経由で
system({ action: "pause_for_user", message })を使って同じことができます。ターミナルではclawdcursor resume(または--end)を実行します。 - すべての OS で画面の光とバナーが表示されます。 macOS と Linux にも、Windows と同じ画面の縁の光とバナーが表示されるようになりました。エージェントの作業中は琥珀色、あなたを待っている間は青色に光ります。バナーをダブルクリックするとすべて停止します。
- macOS のブラインドモードが Windows に追いつきました。 ネイティブのアクセシビリティヘルパーがウィンドウを 0.3 秒で一覧表示します(従来は 11 秒)。ウィンドウのツリーは 0.06–0.2 秒で読み取ります。システムダイアログがキーボードを占有している間は入力を拒否し、別のアプリのダイアログがキー入力を受け取った場合はエージェントに通知します。
- Windows と Linux のブラインドモードがさらに高精度になりました。 従来のコントロールが空のペインとして読み取られなくなり、開いているダイアログが読み取られるようになりました。モーダルを開くボタンで 10 秒間停止することもなくなり、名前で正しいフィールドが見つかるようになりました。また、ウィンドウにフォーカスを合わせても、最大化が解除されなくなりました。
- アップグレード画面も行き詰まりとして扱われます。
Upgrade、Subscribe、Start trialのクリックには確認が必要です。 - 実行中のものを確認できます。
clawdcursor versionsですべてのインストール済みコピー(グローバル npm、Claude Desktop 拡張機能、Claude Code プラグイン)が一覧表示され、インストーラーは何を更新したかを報告します。
その他の変更については、変更履歴をご覧ください。
概要
Clawd Cursor は、Claude Code、Cursor、Windsurf、OpenClaw、Claude Agent SDK、自作のループなど、あらゆるツール呼び出し型エージェントに実際のデスクトップを安全に操作させるローカル MCP サーバーです。人間と同じように、クリックや入力、画面の読み取り、アプリの起動を行い、ネイティブアプリ、ブラウザー、さらにはキャンバスまで、あらゆる GUI を操作します。
「エージェントにコンピューターを使わせる」ツールの多くは、スクリーンショットを撮ってビジョンモデルに渡しますが、これは遅く、コストがかかり、壊れやすい方法です。Clawd Cursor は、画面をひとつの UI マップに変換します。アクセシビリティツリーと OCR を統合し、信頼度スコア付きの要素群を作成します。各要素には安定した el_NN ID が付与され、ピクセル座標ではなく ID を指定して操作します。座標が使われるのは、最後の手段であるスクリーンショット/ビジョン階層(現在のフレームから取得したライブピクセル)だけです。キャンバスのみのアプリや、空間推論が本当に必要なタスクで使用します。その結果、より低コストで高速かつプライベートになり、さらに他にはない特長として、各アクションが意図したとおりに実行されたことを確認します。
画面上で人間にできることなら、エージェントにもできます。 API がなくても、連携機能がなくても問題ありません。適切な順序で読み取り、クリック、キー入力、待機を行うだけです。最後の手段として使いましょう。ネイティブ API があるなら、それを使います。CLI があるなら、それを使います。Clawd Cursor は、クリックが必要な場面、レガシーアプリ、公開インターフェースのない GUI のためのツールです。
異なる点
デスクトップエージェントの分野は競争が激しくなっています。最も近いインストールしてすぐ使える競合製品は、Windows-MCP と Terminator(デスクトップ MCP サーバー)です。ブラウザー専用ツール(browser-use、Playwright MCP)は隣接する分野にあり、OmniParser/UI-TARS は、インストールして使う製品ではなく、エージェントの基盤として構築する、視覚中心の解析アプローチです。これらのアプローチを率直に比較し、人気の選択肢にはない Clawd Cursor の機能を紹介します —:
| Clawd Cursor | browser-use | Playwright MCP | OmniParser / UI-TARS | computer-use | |
|---|---|---|---|---|---|
| Web だけでなく、あらゆるデスクトップアプリに対応 | ✅ | Web のみ | Web のみ | ✅ | ✅ |
| 複数の OS に対応(Windows + macOS + Linux) | ✅ | — | — | さまざま | サンドボックス |
| 視覚モデルなしで認識可能 | ✅ コンパイル済み a11y + OCR マップ | DOM | a11y ツリー | ❌ 視覚中心 | ❌ 視覚 |
| 自身の操作を検証(逸脱) | ✅ | — | — | — | — |
| 単一の安全性チェックポイント(許可/確認/ブロック) | ✅ | — | — | — | — |
| あらゆるモデル/ベンダーに対応 | ✅ | ✅ | エージェントではない | モデル固有 | Claude のみ |
| MCP ネイティブ(1 つの設定で、あらゆるホストに対応) | ✅ | ライブラリ | テストフレームワーク | — | ツール使用 API |
| ローカルのみで動作し、クラウド不要 | ✅ | ✅ | ✅ | モデルが必要 | 画面 → クラウド |
ここでは、特に珍しい点が 3 つあります。
- 最も低コストな認識方法から使い、すべてローカルで処理します。 アクセシビリティツリー(無料)→ OCR(低コスト)→ スクリーンショット(高コスト。モデルのコンテキストにピクセルを含める唯一の段階で、「スクリーンショット」と「視覚」は同じステップです)。エージェントは必要な場合にのみ次の段階へ進むため、トークンコストはタスクの難易度に応じて変わります — ローカルモデルを使えば、何もマシンの外に送信されません。視覚中心のエージェント(OmniParser、UI-TARS)は、観察のたびにモデルへスクリーンショットを渡す必要があります。
- 操作を検証します。 重要な操作に
expectを渡すと、Clawd Cursor はライブ画面を再確認し(非同期 UI のために短い待機時間を設けます)、中身のない「成功」ではなく逸脱を報告します。操作を行う前から成立していた証拠をもとに、タスクを完了扱いにすることはできません。 - 安全性ゲートは 1 つです。 stdio 経由のエディター、HTTP 経由の外部エージェント、組み込みループのいずれからの呼び出しも、デスクトップに触れる前に、単一の
safety.evaluate()チェックポイント(許可/確認/ブロック)を通ります。エージェントがこれを迂回することはできません。
さらに、エージェントが操作中は、Windows、macOS、Linux で、画面に**「デスクトップを操作中」バナーと画面の端を囲む琥珀色のグローが表示されます — バナーをダブルクリックすると停止します。 エージェントがユーザーの操作を必要とする場合(サインイン、2FA コードの入力など)、グローは青に変わり、バナーに必要な操作が表示されます。また、再開とタスクを終了**のボタンも表示されます。マシンの前にいる人は常に状況を把握でき、いつでも停止できます。
インストール
clawdcursor は npm で公開されている MCP サーバーです。Claude Code、Claude Desktop、Cursor、Windsurf、Zed、OpenAI Codex、自作のループなど、MCP に対応したあらゆるエージェントに、他の MCP サーバーと同じ方法でインストールできます。
Claude Desktop — ワンクリック拡張機能(ターミナル不要)
お使いの OS 用の拡張機能をダウンロードして開くと、Claude Desktop にインストールされます:
| Windows | macOS | Linux |
|---|---|---|
| clawdcursor-win32.mcpb | clawdcursor-darwin.mcpb | clawdcursor-linux.mcpb |
- ファイルをダブルクリックします(または Settings → Extensions → Advanced settings → Install Extension… を開いて選択します)。
- Allow clawdcursor to control this computer をオンにします。これはデスクトップ制御への一度限りの同意です。オンにするまでは、すべてのツールが同意を求めます。
- macOS: 初回に macOS から求められたら、Privacy & Security → Accessibility と Screen Recording で Claude を許可します。
Node.js、npm、JSON の編集は不要です。Claude Desktop がバンドルされたサーバーを実行します。以下は、ほかのエージェント、または拡張機能を使わない Claude Desktop 向けです。
1 — エンジンをインストールして同意を付与する(一度だけ)
npm i -g clawdcursor
clawdcursor consent --accept # one-time desktop-control consent (required)
clawdcursor grant # macOS only — approve Accessibility + Screen Recording
MCP エリシテーションに対応するホスト(例:Claude Code、VS Code)では、
consent --acceptを省略することもできます。最初のツール呼び出し時に、アプリ内で 「Allow clawdcursor to control this computer」 と尋ねられます。
ゼロインストールも可能です。以下のスニペットで
clawdcursorをnpx -y clawdcursorに置き換えると、npx が必要に応じて取得します。それでも グローバルインストールを推奨します。ディスク上でバージョンを固定して内容を確認できるためです(実行のたびにlatestを自動取得するより、デスクトップを完全に制御するツールでは安全です)。また、macOS のネイティブヘルパーがインストール時にビルドされるのは、この方法です。Node.js 20 以降が必要です。
OS ごとの前提条件。 Windows はそのままインストールできます。
sharpと@nut-tree-fork/nut-jsにはビルド済みバイナリが含まれているため、C++/Python のビルドツールは不要です。macOS では、スクリーンショット/ビジョン機能に Xcode Command Line Tools(xcode-select --install)が必要です。アクセシビリティを利用した基本的な制御は、それらがなくても動作します。Linux では、npm からインストールできないシステムパッケージがいくつか必要です。tesseract-ocr(OCR)、python3-giとgir1.2-atspi-2.0(アクセシビリティツリー)、および Wayland の場合はydotool(合成入力)が必要です。
2 — エージェントに追加する(ホストを選択)
ワンクリック(Cursor、VS Code):
どのホストでも同じコマンドを実行します。clawdcursor mcp --compact、または
グローバルインストールを行わない場合は npx -y clawdcursor mcp --compact です。ホストによって異なるのは設定の形式だけです。
Claude Code
claude mcp add clawdcursor -s user -- clawdcursor mcp --compact
Cursor · Windsurf · Claude Desktop · Cline · Gemini CLI — 共通の mcpServers 形式:
{
"mcpServers": {
"clawdcursor": { "command": "clawdcursor", "args": ["mcp", "--compact"] }
}
}
Claude Desktop は %APPDATA%\Claude\claude_desktop_config.json(Windows)または
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)を読み込みます。
Gemini CLI は ~/.gemini/settings.json を読み込みます。
VS Code(Copilot) — .vscode/mcp.json では mcpServers ではなく servers を使用します:
{
"servers": {
"clawdcursor": { "command": "clawdcursor", "args": ["mcp", "--compact"] }
}
}
Zed — settings.json 内の context_servers:
{
"context_servers": {
"clawdcursor": { "command": "clawdcursor", "args": ["mcp", "--compact"] }
}
}
OpenAI Codex — ~/.codex/config.toml。初回起動には数秒かかることがあるため、デフォルトの起動タイムアウト 10 s を延長してください:
[mcp_servers.clawdcursor]
command = "clawdcursor"
args = ["mcp", "--compact"]
startup_timeout_sec = 30
opencode — opencode.json では mcp を使用し、command は配列です:
{
"mcp": {
"clawdcursor": { "type": "local", "command": ["clawdcursor", "mcp", "--compact"] }
}
}
その他の MCP ホスト(Goose、Continue、…)— コマンドを
clawdcursor、引数を mcp --compact として stdio サーバーを登録します。
Windows: 一部のホストはシェルを介さずにサーバーを起動するため、
clawdcursorやnpx(どちらも.cmdシム)を見つけられない場合があります。サーバーが起動しない場合は、cmd /cでラップしてください。例:"command": "cmd", "args": ["/c", "clawdcursor", "mcp", "--compact"]、 またはclaude mcp add clawdcursor -s user -- cmd /c clawdcursor mcp --compact。
セットアップはこれで完了です。エージェントに 「Outlook を開いて、Sarah からの最新メールに返信して」 と頼んでみましょう。
または:ワンコマンドプラグイン(Claude Code)
手動での設定は不要です。このリポジトリには、ツールを登録し、使用スキルを同時にバンドルするプラグインが含まれています。パッケージの bin を解決するため(ハードコードされた dist/ パスは使いません)、アップグレードで壊れることはありません:
claude plugin marketplace add AmrDab/clawdcursor
claude plugin install clawdcursor@clawdcursor
ワンラインインストーラー(npm i -g、Node のバージョン、PATH、同意のチェックを含む)
# Windows (PowerShell)
powershell -c "irm https://clawdcursor.com/install.ps1 | iex"
# macOS / Linux
curl -fsSL https://clawdcursor.com/install.sh | bash
注意:
clawdcursor mcpを自分で実行する必要はありません。ホストが必要に応じて stdio 経由で起動します。clawdcursor doctorは MCP のセットアップには含まれません。自律型のagentデーモン用に組み込み LLM を設定するだけです。macOS では、アクセシビリティが必須です(主要な制御経路)。画面収録は任意です(ビジョンのフォールバックのみ)。エディターの権限許可リストには、ツールごとのエントリーではなくサーバーレベルのワイルドカードmcp__clawdcursorを使用してください。ツール名が変わってもそのまま使えます。
エンジン
認識と検証の中核(v1.5.0 以降の UI State Compiler):
compile_uiはアクセシビリティツリーと OCR を統合し、画面上の各要素に安定したel_NNID を付与した、信頼度スコア付きの画面マップを作成します。ピクセルではなく{element_id, snapshot_id}で要素を操作でき、トークン消費はほぼゼロで、DPI、サイズ変更、レイアウトの変化にも影響されません。find_button/find_fieldは意味に基づいて対象を特定し、その ID を返します。- リアクティブ検証。 操作に
expectを指定すると、Clawd Cursor がライブ画面で結果を確認し、UI が指示どおりに動かなかった場合は DEVIATION を返します。 - クロスプラットフォームでの一貫性。 コンパイラー、セキュアフィールドのマスキング、座標処理は Windows、macOS、Linux で動作します。外部エージェント向けの(MCP)インターフェイスは、安全ゲートを通じて
el_NN参照を解決し、既存のブラウザーに接続した場合はその旨を通知します。
Set-of-Mark 形式の要素 ID や a11y/OCR の統合自体は新しいアイデアではありません。しかし、それらを ローカルで、a11y 優先で(ビジョンモデル不要)、組み込みの検証ゲートと単一の安全上の制御点を備えて、3 つの OS にわたり、単一の MCP 設定で実現する例はまれです。
リリース履歴の全容は変更履歴、または最新リリースをご覧ください。
仕組み
実行方法は、どこに頭脳があるかで決まります。どちらのモードも並行して実行できます。
| 頭脳の場所… | モード | コマンド | 呼び出すもの |
|---|---|---|---|
| エディター内(Claude Code、Cursor、Windsurf、Zed) | 直接ツール | clawdcursor mcp | stdio MCP 経由で各ツール |
| 独自の LLM を持つヘッドレスエージェント内(OpenClaw、Agent SDK、独自のループ) | 直接ツール | clawdcursor agent --no-llm | HTTP MCP 経由で同じツール |
| Clawd Cursor 自体の内部(スケジュール実行/「依頼して離れる」) | 薄型エージェントループ | clawdcursor agent + doctor で設定した LLM | task / submit_task |
| サブタスクを組み込みループに委任する外部の頭脳 | 直接操作+委任 | clawdcursor agent + クライアント | task({instruction:…}) で引き渡し |
ループ
a11y ツリーを読み取り(低コスト)、名前付きの対象を操作し、新しい観測結果から検証します。必要なときにだけ認識を段階的に強化します(OCR → スクリーンショット。モデルにピクセルを送るのはこの段階だけです)。a11y ツリーが疎な場合は、system.detect_webview により Electron/WebView2 アプリを CDP 経由の browser.* に切り替えます。Canvas のみのアプリ(Paint、Figma、ゲーム)では、スクリーンショットと座標クリックを使います。
flowchart TB
task["User task"] --> loop["Agent LLM loop<br/>plans · chooses tools · verifies"]
loop --> observe{"Cheapest observation<br/>that answers the question"}
observe -- "obs·a11y — free" --> a11y["A11y tree<br/>(structured text + el_NN handles)"]
observe -- "obs·ocr — cheap" --> ocr["OCR (OS-level, no vision LLM)"]
observe -- "obs·dom — medium" --> dom["Browser DOM (CDP)"]
observe -- "obs·vision — expensive" --> vision["Screenshot (image into context)"]
a11y --> act
ocr --> act
dom --> act
vision --> act
act["Act<br/>click/type/key/drag · invoke/set_value · open_app · batch"] --> safety
safety["Single safety gate<br/>safety.evaluate() → allow / confirm / block"] -- allowed --> tools["Tool registry<br/>98 granular + 7 compound"]
safety -- needs user --> confirm["Human confirmation"] --> tools
safety -- denied --> blocked["blocked"]
tools --> desktop["Real desktop"]
desktop --> verify{"expect → does state match?"}
verify -- pass --> done["done"]
verify -- "DEVIATION" --> loop
classDef agentNode fill:#dbeafe,stroke:#2563eb,color:#0f172a;
classDef gate fill:#ede9fe,stroke:#7c3aed,color:#0f172a;
classDef obsNode fill:#fef9c3,stroke:#ca8a04,color:#0f172a;
classDef actNode fill:#ffedd5,stroke:#ea580c,color:#0f172a;
classDef stop fill:#fee2e2,stroke:#dc2626,color:#0f172a;
class loop,verify agentNode;
class safety,confirm,tools gate;
class observe,a11y,ocr,dom,vision obsNode;
class act actNode;
class blocked stop;
決定的に進める区間には batch を使用します。 次の N ステップが決まっている場合は、1 回の呼び出しにまとめられます。各ステップは引き続き安全ゲートを通り、ガード条件に一致しない場合やエラーが発生した場合は、ステップごとのトレースを残してバッチが停止します。
タスクの委任。 デーモンに LLM が設定されていれば、外部エージェントはいつでもタスクを引き渡せます:task({"instruction":"…"})。組み込みループが処理を引き継いで結果を報告します。自分のコンテキストを消費せず、より安価なモデルに定型作業を任せられます。
ツールボックス
2つのカタログが並行して提供されます。ツールボックスは7つの複合ツールで、それぞれに約10〜20個の動詞を網羅するaction列挙型があります(スキーマを含め、カタログ全体で約7,000トークンです。粒度の細かいサーフェスの約20,000トークンの約3分の1で、既存のホストが使い慣れているcomputer_20250124の形状エディターです)。粒度の細かいサーフェスは、基盤となる98個のプリミティブで、動詞ごとに1つのスキーマを持ちます(トップレベルのツールが必要なランタイムや、デバッグ向けです)。どちらも同じsafety.evaluate()のチョークポイントを通じて実行されます。完全なカタログは常にMCPのtools/listから確認できます。
| ツールボックス | アクション |
|---|---|
computer | screenshot、click、double_click、right_click、triple_click、hover、move、scroll、scroll_horizontal、drag、drag_path、type、key、wait |
accessibility | read_tree、find、get_element、focused、invoke、focus、set_value、get_value、expand、collapse、toggle、select、state、list_children、wait_for、compile_ui、find_button、find_field、smart_click、smart_type、smart_read |
window | list、active、focus、maximize、minimize、restore、close、resize、list_displays、screen_size、open_app、open_file、open_url、switch_tab、navigate |
system | copy_all_text、ocr、clipboard_read、clipboard_write、shortcuts_list、shortcuts_run、undo、pause_for_user、report、build_uri、open_uri、open_app、open_file、open_url、detect_webview、relaunch_with_cdp、delegate、system_time、system_prompt |
browser | connect、page_context、read_text、click、type、select_option、evaluate、wait_for、list_tabs、switch_tab、scroll |
task | run(デフォルト。有界同期 — timeoutまで待機し、それより長くかかる場合は{status:"running"}と進捗を返します。待機を続けるには再度呼び出します)、status、abort、resume(ユーザー待ちで一時停止したタスクを続行します)。組み込みループに委譲します。LLMを備えたclawdcursor agentが必要です。 |
batch | {steps:[…]} — N個の呼び出しを1回のラウンドトリップにまとめます。各ステップは{name, arguments, expect?}で、再認識と安全性チェックを行い、ミスがあればトレースを出して停止します。 |
computer({ action: "key", combo: "mod+s" }) // Cmd+S / Ctrl+S, resolved per-OS
accessibility({ action: "invoke", name: "Send" }) // click by name, not pixels
window({ action: "open_app", name: "Outlook" })
task({ instruction: "open Notepad and type hello" }) // hand off to the thin loop
最も低コストの階層から始める認識
すべての観測にはコストがかかります。機能する最も低コストの段階から始め、失敗した場合にのみ上の段階へ進みます。ライブログ(CLAWD_LOG=pretty。TTYではデフォルトで有効)には、呼び出しごとのバッジで階層がリアルタイムに表示されます。
| 階層 | バッジ | コスト | ソース | 使用場面 |
|---|---|---|---|---|
| T1 構造化 | obs·a11y | ほぼ無料 | accessibility.*、window.*、browser.read_text、クリップボード | デフォルトです。テキストと境界情報を取得します。画像やビジョンLLMは不要です。 |
| T2 OCR | obs·ocr | 低コスト | system.ocr、smart_read / smart_click / smart_type | A11yツリーが空またはまばらな場合です。OSレベルでテキストを取得し、画像データは不要です。 |
| T3 DOM | obs·dom | 中コスト | browser.read_text / page_context(CDP) | WebView / Electron / Chromeのコンテンツです。 |
| T4 スクリーンショット(ビジョン) | obs·vision | 高コスト | computer.screenshot | モデルのコンテキストにピクセルを取り込む唯一の階層です。Canvasのみのアプリや空間推論に使います。最後の手段です。 |
操作ツールはactを記録します。通常のターンでobs·a11y → act → obs·a11yを確認し、まれにobs·visionへ進む様子から、効率性の仕組み全体を目で確認できます。
トランスポート
プロトコルは1つ、MCPです。トランスポートは2種類あり、カタログとJSON-RPCエンベロープは共通です。どちらもステートレスで、セッションハンドシェイクはありません。
| トランスポート | 使用場面 | クライアント設定 |
|---|---|---|
| stdio MCP | エディターホスト向けです。ツールは必要に応じて表示され、デーモンは不要です。 | {"command":"clawdcursor","args":["mcp","--compact"]} |
| HTTP MCP | ヘッドレスエージェント、デーモン、オーケストレーション、Agent SDK向けです。http://127.0.0.1:3847/mcpにJSON-RPCをPOSTします。 | clawdcursor agentを実行します。Bearerトークンは~/.clawdcursor/tokenにあります。 |
# HTTP MCP — list tools
# (the Accept header is required — the MCP spec's Streamable HTTP transport
# rejects requests that don't accept both JSON and SSE with a 406)
curl -s -X POST http://127.0.0.1:3847/mcp \
-H "Authorization: Bearer $(cat ~/.clawdcursor/token)" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
プラットフォームのサポート
プラットフォーム固有のコードは、単一の PlatformAdapter インターフェイス(src/platform/{windows,macos,linux}.ts + wayland-backend.ts)の背後にあります。ビジネスロジックが process.platform を直接参照することはありません。
| プラットフォーム | UI オートメーション | OCR | ブラウザー(CDP) | 入力 |
|---|---|---|---|---|
| Windows 10/11(x64 / ARM64) | PowerShell ブリッジ経由の UIA | Windows.Media.Ocr | Chrome / Edge | nut-js |
| macOS 12+(Intel / Apple Silicon) | ネイティブ AX ヘルパー(Swift)、JXA フォールバック | Apple Vision | Chrome / Edge | nut-js + System Events |
| Linux X11 | python3-gi 経由の AT-SPI | Tesseract | Chrome / Edge | nut-js |
| Linux Wayland | python3-gi 経由の AT-SPI | Tesseract | Chrome / Edge | ydotool / wtype |
- Windows — セットアップ不要です。PowerShell ブリッジは必要に応じて起動します。
- macOS — 初回実行時にアクセシビリティ(必須)と画面収録(任意)の許可が必要です。
clawdcursor grantを実行すると、許可ダイアログが順に表示されます。Retina/HiDPI はアダプター内で処理されます — 座標を事前に拡大しないでください。 - Linux X11 —
apt install tesseract-ocr python3-gi gir1.2-atspi-2.0。 - Linux Wayland — 同上に加え、
ydotool+ydotoold(推奨)またはwtype(キーボードのみ)。
安全性とプライバシー
| レベル | 操作 | 動作 |
|---|---|---|
| 許可 | 読み取り、アプリの起動、ナビゲーション、機密情報を含まないフィールドへの入力、最小化 | すぐに実行します |
| 確認 | 送信、削除、購入、送金、ウィンドウを閉じる/アプリを終了する操作とデスクトップを表示するキーコンボ、機密性の高いアプリ | 承認を求めて一時停止します(承認するには batch({allowConfirm:true}) を指定します) |
| ブロック | Ctrl+Alt+Del、ロック/ログアウト/強制終了/シャットダウンのキーシーケンス | そのまま拒否します(実行経路はありません) |
- 無理に続行せず、一時停止します。 サインイン、2FA、CAPTCHA、またはプラン上限のページが表示されると、エージェントは推測で操作せず、デスクトップをユーザーに引き渡します(青い光と「Resume」/「End task」)。一時停止は15分後にタイムアウトします(
CLAWD_PAUSE_TIMEOUT_MIN)。CLAWD_NO_PAUSE=1を設定すると一時停止を無効にできます。 - ネットワークの分離。
127.0.0.1にバインドします。次のコマンドで確認できます:netstat -an | findstr 3847(Windows)/| grep 3847(Unix)。 - すべての HTTP リクエストでベアラートークン認証を行います(
~/.clawdcursor/token)。 - 機密性の高いアプリのポリシー。 メール、銀行、パスワードマネージャー、プライベートメッセージングは自動的に「確認」レベルに引き上げられます。
- デフォルトではテレメトリーなし。 ホームに情報を送信することはありません。スクリーンショットは RAM 内に保持されます。ローカルモデルを使用する場合、マシン外にデータが送信されることはありません。クラウドプロバイダーを使用する場合、スクリーンショットは設定したエンドポイントにのみ送信されます。
clawdcursor reportはオプトイン方式で、送信内容を正確にプレビューできます。 - プロンプトインジェクション対策。 画面のテキストは
<untrusted-screen-content>タグ内で返されます。これはデータであり、指示ではありません。 - ログのプライバシー。 ログではパスワードフィールドの値(
AXSecureTextField、UIA のIsPassword=true)が秘匿されます。
脆弱性を非公開で報告する方法については、SECURITY.md を参照してください。
アーキテクチャ
| ディレクトリ | 内容 |
|---|---|
src/core/ | シンプルなエージェントループ(runAgent)、センスレイヤー(a11y / snapshot / fingerprint / UI compiler)、リアクティブな検証、フォーカスガード、安全性ゲート。 |
src/tools/ | 98 個の細分化されたツール + 7 個の複合アグリゲーター + batch、プレイブック、レジストリ、ディスパッチ。 |
src/platform/ | PlatformAdapter + Windows / macOS / Linux / Wayland、OCR エンジン、CDP ドライバー、URI ハンドラー。 |
src/llm/ | プロバイダークライアント(Claude、GPT、Gemini、Llama、Kimi、Ollama、…)、認証情報、モデル設定。 |
src/surface/ | CLI、MCP サーバー(stdio + HTTP)、ダッシュボード、doctor、オンボーディング、コントロールバナー。 |
プラットフォームコードがやり取りする相手は PlatformAdapter のみであり、ツールを実行する唯一の方法は safety.evaluate() です。この2つの接点こそが、この設計の要点です。
CLI
インストールの問題を診断する人間向けです。エージェントは MCP 経由で接続します。
clawdcursor consent Manage desktop-control consent (--accept / --revoke / --status)
clawdcursor grant Grant macOS permissions (interactive, macOS only)
clawdcursor doctor Configure the AI provider for `agent` mode (+ diagnostics)
clawdcursor status Readiness check (consent, permissions, AI config)
clawdcursor versions Every installed copy and its version (global, Claude Desktop extension, Claude Code plugin)
clawdcursor resume Continue a task paused for you (same as the on-screen Resume); --end to stop it
clawdcursor mcp stdio MCP server — editor hosts spawn this; you don't
clawdcursor agent Daemon: HTTP MCP on :3847, optional built-in thin loop
clawdcursor agent --no-llm Daemon, tool surface only (no built-in brain)
clawdcursor stop Stop every running mode
clawdcursor uninstall Remove all config and data
Options: --port <n> (default 3847) · --compact · --no-banner · --provider <name> · --accept
開発
git clone https://github.com/AmrDab/clawdcursor.git && cd clawdcursor
npm install
npm run build # tsc + postbuild → dist/surface/cli.js
npm test # vitest (1,000+ tests)
npm run lint # eslint
npm link # global `clawdcursor` shim (Admin shell on Windows)
CI では Ubuntu、macOS、Windows 上の Node 20 と 22 でテストを実行し、カバレッジの基準値チェック、パフォーマンスのリグレッション検出、npm audit のゲートも実施します。
技術: TypeScript · Node 20+ · nut-js · Playwright · sharp · Express · Model Context Protocol SDK · Zod · commander。
貢献
PRを歓迎します。開発の流れ、ブランチの規約、すべての変更でクリアするテストマトリックスについては、CONTRIBUTING.mdをご覧ください。バグや機能の提案はissuesへお寄せください。セキュリティに関する非公開の報告はSECURITY.mdをご利用ください。
ライセンス
MIT。詳細はLICENSEをご覧ください。
謝辞
Model Context Protocol SDK、nut-js、Playwright、Anthropic の computer_20250124 ツール形式、そしてアプリに依存しないGUI自動化を可能にするAT-SPI / UIA / AXツリーを基盤として構築されています。
clawdcursor.com · Discord · 変更履歴 · npm
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。