Skip to content

組み込みブラウザ ​

VMark はドキュメントウィンドウの内部に本物の Web ブラウザをホストできます——Web ページが Markdown ドキュメントと並ぶ第一級のタブになります。これは正真正銘のネイティブ webview(macOS の WKWebView)であり、外部の Chrome ウィンドウでも埋め込みフレームでもありません。

macOS のみ

組み込みブラウザは macOS で利用でき、デフォルトでオンになっています。Windows と Linux では利用できません——それらのプラットフォームでは、以下の設定も新しいブラウザタブコマンドもまったく表示されません。

ワークスペースレール

実験的な ワークスペースレール を有効にすると、ブラウザページはウィンドウグローバルになります:ウィンドウ内のすべてのワークスペースから到達可能なままで、単一のワークスペースのタブに紐付けられることはありません。

オフにする ​

ブラウザは macOS ではデフォルトでオンです。新しいブラウザタブはファイルメニュー(Alt + Mod + Shift + B)とコマンドパレットにあります——最初に何かを有効化する必要はありません。

オフにするには、設定 → 詳細設定 を開き、埋め込みブラウザをオフにします。これにより、開いているブラウザタブがすべて閉じられ、AI がそれまでに得ていたサイトの許可がすべて取り消され、以下で説明する AI 自動化サーフェスも取り下げられます。

トグルのすぐ下に 2 つの AI 姿勢設定があり、ブラウザがオンのときにのみ表示されます。どちらも保守的な初期値で出荷され、ブラウザを有効にしても変わりません:

設定初期値意味
AI ブラウザセッションサンドボックスAI が操作するページには、ログイン済みのセッションを共有するのではなく、分離されたセッションが割り当てられます
AI のループバックアクセスを許可オフAI による localhost / プライベートネットワークアドレスへの移動は拒否されます

サイトの許可は設定にはありません——それらを所有するウィンドウの、ブラウザサイドバーにあります。

使い方 ​

ブラウザタブはドキュメントと並んでエディタ領域に開きます——サイドバー、タブストリップ、ターミナル、ステータスバーはすべてそのままの位置に留まります。そのコントロールはページの上部に配置され、ウィンドウのタイトルバーを共有します。タイトルバーは VMark が自前で描画しています。

コントロール動作
‹ / ›戻る/進む。行き先がないときはグレーアウトします
⟳ / ✕再読み込み、または進行中の読み込みを停止します
アドレスバーオムニボックス:URL を入力するとそこへ移動し、それ以外を入力すると検索します
☆ / ★このページをブックマークします

新しいブラウザタブは DuckDuckGo(https://duckduckgo.com)で開き、オムニボックスは DuckDuckGo で検索します。http:// または https:// で始まる入力は入力どおりに開きます。スペースを含まない素のホスト名(example.com、localhost:3000、IPv4 アドレス)は Web アドレスとして開きます——ローカルアドレスには http、それ以外には https を使います。それ以外の入力は検索されます。開始ページも検索エンジンも、今のところ変更できません。

アドレスバーはページを自動的に追跡します:サイトがリダイレクトしたり、リンクで別の場所へ移動したりすると、バーは実際に今いる場所を表示するよう更新されます。

タブは、別のタブに切り替えてもページを保持します。 ドキュメントを見てから戻ってきても、ページが再読み込みされたり、入力していた内容が失われたりすることはありません——ページは非表示になるだけで、タブを閉じたときに破棄されます。これは、あなたが書いている間も AI がブラウザタブで作業を続けられる理由でもあります(下記の共同運転を参照)。

ページがポップアップウィンドウ(window.open、target="_blank" のリンク)を開こうとすると、VMark はそれをブロックし、ブロックしたアドレスを 新しいタブで開く ボタンとともにページ上部に表示します。そのため、ポップアップを必要とするログインも、何も起きないクリックではなく、ワンクリックで済みます。

サイドバーはタブに追従する ​

ブラウザタブがアクティブなとき、サイドバーには閲覧履歴とブックマークが表示されます。ドキュメントに戻ると、ファイルエクスプローラー、アウトライン、ファイル履歴が再び——自動的に——表示されます。同期を保つべき第 2 のモードは存在せず、それぞれの側が最後に開いていたものを記憶しているので、ブラウザタブをちらっと見ても、使っていたファイルツリーを失うことはありません。

履歴はウィンドウごとに管理され、そのセッションの間だけ存在します:ディスクに書き込まれることはありません。(それでも消去ボタンはあります——「終了すると消える」と「今すぐ消せる」は別物です。)再読み込みで重複エントリが追加されることはなく、リダイレクトするサイトは、途中のすべてのホップではなく、あなたが訪れようとしたページを記録します。

ブックマークは永続します。ブックマークした正確な URL の下に保存されます——同じページでも別のセクション(#install と #usage)は 2 つの別々のブックマークになり、VMark が URL のクエリパラメータを勝手に「整理」することはありません。書き換えられた URL では、見ていたものに戻れない可能性があるからです。

ページの周囲でウィンドウはニュートラルになる ​

VMark のテーマは意図的に色付けされています——Paper は暖かいグレー、Mint と Sepia はさらにそうです。それは書くには心地よいものの、他人の Web ページを囲むには不適切です:色付きのフレームは、その内側にあるすべての色の見え方をずらしてしまい、だからこそどの本物のブラウザも自身のクロームに色を付けません。

そのため、ブラウザタブにフォーカスがあるとき、周囲のウィンドウはプレーンなニュートラル——ライトテーマでは白、ダークテーマでは暗色——に切り替わり、ドキュメントに戻った瞬間に元に戻ります。あなたのテーマは変わりません。変わるのは Web ページを囲むものだけです。

ターミナルも同じルールに従います。 ブラウザタブの横にターミナルを開いている場合、それはテーマの色のままではなく、対応するニュートラルを採用します。そうすることで、ウィンドウの 2 つの半分が、目に見える継ぎ目で出会うのではなく、互いに調和します。ダークテーマには白ではなく暗色のターミナルが与えられます——ターミナルの色は背景に合わせて調整されており、白を強制するとダークテーマの出力が読みにくくなってしまうからです。

ページがクラッシュした場合 ​

ページの Web コンテンツプロセスが停止すると、そのタブは空白や凍結したビューの代わりに、「このページはクラッシュしました」 というオーバーレイと再読み込みボタンを表示します。VMark は一時的なクラッシュに対しては数回自動的に再読み込みします。ページが読み込み時にクラッシュし続ける場合は、自動再読み込みを止めて、あなたが手動で再読み込みするのを待ちます。そのため、再読み込みのループにはまり込むことはありません。

どう作られているか(そしてなぜ設計からしてプライベートなのか) ​

VMark はプラットフォームの webview を自前で作成し、それをウィンドウのネイティブな子として追加します——アプリフレームワークに webview を要求することはありません。これはプライバシーにとって重要です:フレームワークが作成した webview は、すべてのページに内部メッセージングブリッジを注入し、あらゆるサイトにアプリへのチャネルを渡してしまいます。VMark はそのようなブリッジを持たない新規構築の webview を所有しているため、閲覧されたページは VMark へのチャネルを一切持ちません。ページは厳密に一方向で駆動されます(アプリはページを読み取って操作できますが、ページはアプリに手を伸ばせません)。

セッション(ログイン、Cookie)は、OS の webview 自身のデータストアにプロファイルごとに永続化されるので、各サイトへのログインは一度だけで済みます。VMark は独自のパスワードストアや Cookie ストアを持ちません。唯一の例外は、AI のためにあなたが明示的に保存を承認したセッション(下記のセッションの保存/読み込みを参照)で、その Cookie と localStorage はファイルではなく OS キーチェーンに保存されます。

AI でブラウザを操作する ​

MCP 経由で接続された AI アシスタントは、ブラウザタブを操作できます:

  • 読み取り(Read)——ページの構造化されたアクセシビリティスナップショットを取得します(各インタラクティブ要素または構造要素を、ロール + アクセシブルネームとして、さらに e5 のような安定した ref ハンドルとともに返します)。スナップショットは開いた shadow root もたどり、到達できなかったもの(閉じた shadow root、フレーム)と、サイズ上限で打ち切られたかどうかを正直に伝えます。
  • 操作(Act)——ターゲットをクリックまたは入力します。事前の読み取りから得た正確な ref で指定するか、ARIA の ロール + アクセシブルネーム(例:「Learn more」という名前のリンクをクリック)で指定します。ref はすでに許可された操作に対してのみ受け付けられます。あなたの承認が必要なものはロール + 名前を使うので、プロンプトが読みやすい要素を提示できます。クリックは実際にヒットしたことを検証します:ターゲットをスクロールして表示範囲に入れ、視覚的にレンダリングされていることを要求し——折りたたまれたセクション内の重複ボタンはクリックされずにスキップされます——クリック地点をヒットテストするので、オーバーレイに覆われたターゲットはクリックし通されるのではなく「…に覆われている」として報告されます。同じロールと名前を持つ表示中の要素が複数ある場合、ページ内で先に現れたものに解決するのではなく、クリックはあいまいとして拒否されます——ページが自前の「Learn more」リンクをサイト本来のリンクの前に滑り込ませることはできません。AI には、単に試したということではなく、実際に何が起きたかが伝えられるので、間違ったものをこっそり操作して成功したと報告することはできません。ファイル入力がクリックされることは決してありません。
  • スクロール(Scroll)——要素を(ref で)表示範囲に入れるか、ピクセル量でスクロールします。操作クラス(クリックと同様に承認ゲート付き)で、承認は要求された正確なスクロールに紐付きます。
  • キー入力(Key)——キー押下(Enter、Escape、Tab、矢印、オプションで Ctrl/Shift/Alt/Meta 付き)を、フォーカスされた要素または ref に送ります——例:フォームを送信する、ダイアログを閉じる。操作クラスで、承認は正確なキーと修飾キーに紐付きます。フォーム内の Enter はフォームを送信し、Tab はフォーカスを移動します——実際の入力と同じです。それ以外のキーは合成された DOM イベントなので、実際のハードウェア入力しか信用しないサイトはそれらを無視することがあります。
  • クエリ(Query)——アクセシビリティスナップショットでは名前を付けられない構造化された DOM 検出(テーブル、計算値、属性)を、CSS セレクタで行います。読み取りクラス。
  • 抽出(Extract)——ページをリーダーモードの Markdown として取得します(タイトル、署名、記事本文、定型部分は除去)。AI が操作するのではなく読みたいページ向けです。サイトプラグインがオリジンごとに抽出を洗練します——組み込みの Wikipedia プラグインは wiki のクロームを名前で除去します——汎用リーダーがフォールバックです。ページはバイトを書き出すだけで、抽出は VMark 内で実行されます。読み取りクラス。
  • スタイル(Style)——CSS 操作(ブロッキングオーバーレイの解除、ターゲットのハイライト)を、インラインスタイルの設定、クラスの切り替え、または <style> ブロックの注入(セレクタ単位ではなくページ全体)で行います。操作クラスで、承認は正確なスタイリングに紐付きます——許可した後で別の CSS に差し替えることはできません。
  • JS 実行(Execute JS)——脱出ハッチ:構造化された動詞では表現できないもののためにスクリプトを実行します。これは分離されたコンテンツワールド(DOM + CSS、ページ自身の JavaScript には決して触れない)で実行され、呼び出しごとに承認され(決して記憶されません——これに対する「このサイトで許可」はありません)、その結果は信用できないものとして扱われます。承認プロンプトは正確なスクリプトを提示し、そのスクリプトこそが実行されます——AI があるスクリプトを承認させておいて別のものを実行させることはできません。クエリ/スタイルを優先し、それらでは不十分なときにのみこれに手を伸ばしてください。
  • セッションの保存/読み込み(Session save / load)——タブの現在のセッションをハンドル(あなたが承認する名前)の下に保存し、後で復元することで、フローが最初からサインイン済みの状態で始まるようにします——AI があなたの Cookie やトークンを見ることは一切ありません。値は OS キーチェーン(保存時に暗号化)に保存され、AI が受け取るのはハンドルと件数サマリーだけです。保存と読み込みはどちらも呼び出しごとに承認され、あるハンドルへの承認を別のハンドルに流用することはできません。復元は、保存元と同じオリジンのページにのみ適用されます。これは参照による認証情報です:AI はセッションに名前を付け、VMark が秘密を保持します。
  • コンソール(Console)——ページのキャプチャされた console.* 出力(log/warn/error…)を、さらにキャッチされなかったエラーと未処理の Promise リジェクションも読み取ります——これはページ自身のスクリプトが壊れたときに発する信号で、通常の console ログでは決して見えません——そのため AI は操作しているページをデバッグできます。読み取り専用で、AI 所有のタブに限られ(あなた自身のタブにはキャプチャ用のシムがありません)、出力は信用できないページデータとして扱われます。これは設計からしてプライベートという保証を守るために作られています:キャプチャはページ自身の DOM に書き込み、VMark はそこから読み取るので、アプリへ戻るメッセージングチャネルは一切開かれません。

セッションの保存/読み込み——スコープ

保存されたセッションは localStorage と Cookie をカバーし、どちらも保存時にページがコミットされていたオリジンにスコープされます。Cookie はネイティブの Cookie ストアを通じて読み取られ再生され、双方向でドメインにスコープされます——保存があなたの Cookie ジャー全体をコピーすることはなく、復元が無関係なサイトの下に Cookie を仕込むこともありません。

  • 開く(Open)——AI 所有のタブを作成して前面に出し、HTTP(S) の URL を読み込みます。同時に開ける AI 所有のタブは最大 8 つで、AI は作業が終わると自分のタブを閉じます(閉じる操作に承認は不要です——停止は常に許可されます)。オプションで、タブを名前付きプロファイル——ログインを名前で再利用できる永続コンテキスト——で開くこともできます。その場合は毎回あらためて確認され、AI が認証情報を見ることはありません。
  • 移動(Navigate)——AI 所有のタブを(前面に出して)ナビゲートし、そのナビゲーションチケットを待ちます。読み込まれたページが、要求されたコンテンツではなくゲート——ログインウォール、同意インタースティシャル、人間確認チャレンジ(reCAPTCHA/Turnstile)、レート制限通知——として読み取れる場合、結果はそう伝え、AI は回避しようとするのではなくあなたを巻き込むよう指示されます。検出は精度優先です:「$429」に言及する価格や「Cloudflare」と書かれたフッターでは作動しません。
  • 待機(Wait)——別の読み込みを開始せずに、特定のナビゲーションチケットを待ちます。
  • 条件待機(Wait for)——条件が満たされる(ref またはロール + 名前による要素、表示されているテキストの一部、あるいはタブの URL が特定の部分文字列を含むこと——最後のものはクリックが引き起こしたナビゲーションが着地したことを確認します。クエリ文字列とフラグメントは決して照合されません。リダイレクトがそこに仕込んだトークンを探り出せてはならないからです)か、タイムアウトが経過するまでポーリングし、一致したかどうかを報告します。マルチステップのフローを——推測するのではなく、操作し、結果を待ち、読み取るという形で——決定論的にします。待機も条件待機も、あなたが見ているタブを切り替えることはありません。
  • スクリーンショット(Screenshot)——ページの現在のレンダリングを JPEG 画像として取得するので、AI はアクセシビリティスナップショットが名前を付けないレイアウトやレンダリング状態を見ることができます。読み取りと同様に非破壊的です:AI 所有のタブでは許可され、人間のタブではあなたがアタッチしている間だけ許可されます。表示中のページではないタブは、空白でレンダリングされることがあります。
  • ワークフローの実行(Run a workflow)——保存された短いステップのシーケンス(クリック/入力/移動/抽出。小さなテキスト文法で記述し、source として渡します)を、1 つの非同期実行として再生します:即座に実行 ID を返し、あなたがそのステータスをポーリングします。マルチステップの実行は単一のリクエストより長生きするからです。その中のすべてのステップは、手で発行したアクションとまったく同じように個別に承認ゲートされます——ワークフローはプロンプトを回避する手段ではありません——そして AI が決定論的に実行できないステップ(自由記述の「ゴール」、「確認」)は、手で処理してもらうために実行を一時停止します。一時停止の後に続けるには、一時停止したステップを手で行い、新しい実行が一時停止した実行から再開します。新しい実行は完了済みのステップを引き継ぎ、一時停止したステップを完了済みとして扱うので、何かが二重に送信されることはありません。同じ入力で同じワークフローを再実行した場合も、すでに成功した書き込みステップはスキップされます。実行には上限があり(実行時間のみが対象で、あなたを待っている時間は含まれません)、タブごとに一度に 1 つで、キャンセルできます——キャンセルは、ステップがあなたの承認を待っている間でも常に許可され、あなた自身がブラウザを引き継ぐと実行は止まります。
  • ワークフローの記録(Record a workflow)——文法を手で書く代わりに、ワークフローを 記録 できます:あなたの承認のもとで(毎回あらためて確認され——記録は決して恒久的な権限ではありません)、VMark はあなたがタブ上で行う クリックとフィールドの編集 をキャプチャし、すぐに実行できるワークフローテキストを返します。これは 設計上、値を含みません:あなたが入力した内容は保存されません——各フィールドは再生時にあなたが入力する名前付きの {input} になり、パスワードフィールドは手動の confirm: ステップになり、URL はオリジンとパスだけに切り詰められます。記録されるのは、あなたが触れたコントロールがどれかであって、あなたが入力した内容ではありません。

AI ブラウザの姿勢は 設定 → 詳細設定 で構成します:

  • サンドボックス(推奨)は、共有された非永続の AI webview ストアを 1 つ使います。他のサンドボックスタブとは Cookie を共有しますが、人間のタブとは共有しません。
  • 共有プロファイルは人間の webview ストアを使い、そのオリジンに一致する navigate の許可がない限り、各 AI ナビゲーションの前に移動先の承認を求めます。

AI が作成したタブは一時的で、再起動後に復元されません。その URL、モード、タイトル、世代、読み込み状態は session.get_state に現れます。認証情報は MCP レスポンスから伏せられます。

アクションは承認ゲート付きです:あなたが許可していない操作は実行されません——AI には承認が必要だと伝えられ、待機します。ファイルのアップロードは AI には決して許可されません(AI が選んだファイルアップロードはデータ流出の経路になり得ます)。それらは厳密に人間主導のままです。

アクションを承認する ​

AI が操作を要求すると、VMark はプロンプトを表示してページを一時停止します。プロンプトはサイト、操作、要素(そのロールとアクセシブルネーム、例:button "Publish")を伝え——内容を伴う操作であれば、その内容自体も伝えます。Type が入力するテキスト、Key が押すキー、Run script や Style が実行する正確なスクリプトです。承認が紐付くのはそれであり、内容を変えて再試行すると再び確認を求めます。

  • 1 回だけ許可——その要素に対する、そのページ上での、まさにその 1 つの操作だけを許可します。即座に消費され、恒久的な許可にはなりません。
  • このサイトで許可——AI はその操作をそのサイトで、二度と確認せずに実行できます。他の操作や他のサイトに広がることはありません。
  • 拒否——何も起きません。Escape を押しても、単に Enter を押しても拒否になります:プロンプトは意図的に拒否寄りに偏っています。プロンプトが表示されてから最初の 0.5 秒間の 許可 は無視され、押下は同じプロンプト上で始まり同じプロンプト上で終わる必要があります——そのため、指の下で取り下げられたプロンプトが、あなたのクリックを次のプロンプトに渡してしまうことはありません。

プロンプトが提示するのは操作の説明であって、ページの絵ではありません——そしてそれは意図的です。Web ページは自身のピクセルを制御するので、悪意あるページは「すべて削除」ボタンを「Publish」に見えるようスタイリングできてしまいます。VMark が提示するのは、セキュリティゲートが実際に強制するもの、すなわちページ自身の自己申告ではなく、ブラウザエンジンから取得したものです。

許可はページがナビゲートすると失効もします。プロンプトは特定のページ上の操作を記述します。あなたが決めている間にページが変わった場合、そのリクエストは、代わりに読み込まれたものに適用されるのではなく破棄されます。消費されていない「1 回だけ許可」も同じように破棄されます。

これはページ内のナビゲーションも含みます。ほとんどの最新サイトは、新しいページを一切読み込むことなくビューを移動します——アドレスは変わり、コンテンツは書き換えられますが、サイトを離れることはありません。ここではそれが重要です。なぜなら、あなたが承認した button "Publish" がその名前の下のボタンではなくなっているかもしれないのに、サイトとオリジンは同じままだからです。そこで VMark は、ページ内ナビゲーションを他のあらゆるものとまったく同じように扱います:許可は、単にページとともにではなく、それが付与されたビューとともに失効します。

とはいえ、重みを担うのは記述子そのものです。サイトはナビゲートすることなく、いつでも自身のコンテンツを書き換えることができ、どのブラウザエンジンもそれを報告しません。ですから「1 回だけ許可」が承認するのは、まさに 1 つの操作、そのロールとアクセシブルネームで識別される 1 つの要素、1 つのサイト上での操作だけであり——そして即座に消費されます。よく考えるべきは「このサイトで許可」のほうです:それはそのサイトでのその操作に対する恒久的な許可であり、それを付与するサイトは、あなたがそれを信頼するサイトなのです。

許可の確認と取り消し ​

(許可を所有するウィンドウの)ブラウザサイドバーに、あなたが許可したすべてのサイトと、それができることが一覧表示されます。取り消すとただちに撤回されます——そのサイトでの次の AI アクションは再び確認を求めます。許可は、それが付与されたウィンドウに属します。

サイトの許可はメモリ上にのみ保持されます:決してディスクに書き込まれず、VMark を終了すると失効し、ブラウザをオフにするとすべて取り消されます。AI が再起動をまたいでサイトをクリックできる能力を保持し続けることは、見た目以上に大きな約束なので、VMark はそれをこっそり行いません。

AI が人間の作成したタブを対象にすると、VMark はまず、そのタブに AI アクセスをアタッチするかどうかを尋ねます。アタッチは現在のナビゲーション世代に紐付けられます。1 回だけ許可は、ブラウザエンジンが承認する最初の読み取りまたはアクションで消費されます(その後で覆われていた、または非表示だったと判明したクリックでも消費されます)。次のナビゲーションまで許可は、次のフルまたはページ内ナビゲーション、閉じる、無効化、または再起動で期限切れになります。タブをアタッチするまで、AI に見えるのはそのオリジンだけで——タイトルやパスは見えません。アタッチに失敗した場合(ドライバーが拒否した、またはあなたが決めている間にページが移動した)、プロンプトは開いたままその旨を伝えます。再試行することも、拒否することもできます。

AI ナビゲーションは、ループバック、プライベート LAN、リンクローカル、メタデータ、不正な形式、およびサポートされていないスキームのターゲットを、デフォルトで拒否します。また AI 所有のタブでは、コンテンツルールリストが、ページが埋め込むもの——フレーム、画像、スクリプト、fetch——にも同じ拒否を適用するため、公開ページが AI のタブを使ってあなたのネットワークに到達することはできません。AI が開始する open や navigate を発行する前に、VMark は移動先のホスト名も解決し、いずれかの応答がそうしたブロック対象のアドレスであれば(SSRF_BLOCKED、reason: resolves-private)、また名前が制限時間内に解決されなければ(reason: unresolved)、ナビゲーションを拒否します——LAN やクラウドのメタデータサービスを指す、公開ドメインに見える名前は、WebKit がリクエストを送る前に捕捉されます。ただし、2 つの制限がはっきり残っています。事前チェックが対象とするのは AI が発行するナビゲーションであり、リダイレクト先、ページ内のリンククリック、ページが埋め込むものは対象外です(それらは URL テキストのチェックと、リテラルなプライベートアドレスに対するコンテンツルールリストのままです)。また、事前チェックの後で変わる DNS 応答(リバインディング)は再チェックされません。WKWebView には、接続が実際に使うアドレスを取得するリクエスト単位のフックがないからです。

共同運転:AI がブラウザを操作するのをターミナルから見守る ​

ブラウザはモードではなくペインです。そのおかげで、ある特定のワークフローが可能になります:ブラウザタブの横にターミナル(`Ctrl + ``)を開き、その中で AI エージェントを実行し、エージェントが作業するにつれてページが反応するのを見守ります。

ターミナルとブラウザは並んで配置されます——ブラウザは覆われるのではなく、場所を空けるためにリサイズします。そのため、エージェントがページを操作している間ずっとページが見え、エージェントが取るすべてのアクションは依然としてあなたの目の前を通らなければなりません(上記のアクションを承認するを参照)。

これが VMark における AI ブラウザ利用の意図された形です:エージェントが提案し、ページが見え、あなたが承認する。それは、あなたが見られないウィンドウの中でエージェントが作業することではありません。

制御を取り戻すのはワンジェスチャーです。 AI のワークフロー実行がタブを操作している間、そのクロームには 「AIが操作中——クリックして操作を引き継ぐ」 というインジケーターが表示されます。それをクリックする——あるいは単にあなた自身がページやそのアドレスバーを操作する——と、ただちにタブを取り戻し、実行を止めます。エージェントのターミナルで停止ボタンを探す必要はありません。ブラウザに触れることが停止ボタンです。

ページの読み込みに失敗したとき ​

オフラインのネットワーク、不正なホスト名、拒否された証明書、あるいは拒否された接続は、いずれもブラウザペインに何が問題だったかを示すメッセージと、再試行ボタンを表示します。そのため、読み込みの失敗が単に遅いだけのページのように見えることはありません。

現在の制限 ​

  • このビルドでは macOS のみ。
  • JavaScript の alert() と confirm() ダイアログは表示され、あなたが応答します。prompt() は今のところ抑制されます。ポップアップ(window.open)はブロックされ、ブロックされたアドレスは新しいタブとして開けるよう提示されます。
  • HTTP ベーシック認証で保護されたページは読み込みに失敗します——ユーザー名/パスワードの入力プロンプトはまだありません。
  • ページ内検索とページのズームは実装されていません。
  • カメラ、マイク、位置情報、通知のリクエストについて、VMark はまだ自分では判断しません。システムの webview の既定の処理が適用されます。
  • ダウンロード、印刷、リクエストごとのネットワークポリシーはまだ実装されていません。ホバーとドラッグの操作には、まだ AI 用の動詞がありません。

これらは段階的に埋められています。上記のページは、今日動作するものを説明しています。