Canvas(macOS アプリ)
macOS アプリは、WKWebView を使用して、エージェント制御の Canvas パネル を埋め込みます。これは、HTML/CSS/JS、A2UI、および小規模なインタラクティブ UI サーフェス向けの軽量な視覚的ワークスペースです。 It
は、HTML/CSS/JS、A2UI、小型対話型
UI サーフェス用の軽量なビジュアルワークスペースです。 It
は、HTML/CSS/JS、A2UI、小型対話型
UI サーフェス用の軽量なビジュアルワークスペースです。
Canvas の保存場所
Canvas の状態は Application Support 配下に保存されます。~/Library/Application Support/OpenClaw/canvas/<session>/...
openclaw-canvas://<session>/<path>
openclaw-canvas://main/→<canvasRoot>/main/index.htmlopenclaw-canvas://main/assets/app.css→<canvasRoot>/main/assets/app.cssopenclaw-canvas://main/widgets/todo/→<canvasRoot>/main/widgets/todo/index.html
index.html が存在しない場合、アプリは 組み込みのスキャフォールドページ を表示します。
パネルの挙動
- メニューバー(またはマウスカーソル)付近に固定される、枠線なしでサイズ変更可能なパネルです。
- セッションごとにサイズと位置を記憶します。
- ローカルの Canvas ファイルが変更されると自動的に再読み込みします。
- 同時に表示される Canvas パネルは 1 つのみです(必要に応じてセッションが切り替わります)。
CANVAS_DISABLED を返します。
エージェント API の提供範囲
Canvas は Gateway WebSocket を介して公開されているため、エージェントは次を実行できます。- パネルの表示/非表示
- パスまたは URL へのナビゲーション
- JavaScript の評価
- スナップショット画像の取得
canvas.navigateは ローカル Canvas のパス、http(s)の URL、およびfile://の URL を受け付けます。"/"を渡すと、Canvas はローカルのスキャフォールド、またはindex.htmlを表示します。
Canvas における A2UI
A2UI はゲートウェイの canvas ホストによってホストされ、Canvas パネル内でレンダリングされます。 A2UI は Gateway の canvas host によってホストされ、Canvas パネル内にレンダリングされます。Gateway が Canvas host をアドバタイズすると、macOS アプリは初回オープン時に A2UI host ページへ自動的にナビゲートします。 A2UI は Gateway の canvas host によってホストされ、Canvas パネル内にレンダリングされます。Gateway が Canvas host をアドバタイズすると、macOS アプリは初回オープン時に A2UI host ページへ自動的にナビゲートします。 デフォルトの A2UI host URL:A2UI コマンド(v0.8)
Canvas は現在、A2UI v0.8 の server→client メッセージを受け付けます。beginRenderingsurfaceUpdatedataModelUpdatedeleteSurface
createSurface(v0.9)はサポートされていません。
CLI の例:
Canvas からエージェント実行をトリガーする
Canvas はディープリンクを介して新しいエージェント実行をトリガーできます。openclaw://agent?...
セキュリティに関する注記
- Canvas スキームはディレクトリトラバーサルをブロックします。ファイルはセッションルート配下に存在する必要があります。
- ローカルの Canvas コンテンツはカスタムスキームを使用します(ループバックサーバーは不要です)。
- 外部の
http(s)URL は、明示的にナビゲートされた場合にのみ許可されます。