組み込みブラウザ

すべてのワークスペースには専用の Web ブラウザが付属しています。ターミナルの横にペインとして開く、完全な Chromium です。これはエージェントが Web を見る ためのものであり — 作ったばかりのアプリを開く、ドキュメントページを読む、バグを再現する、フローをクリックして進める — さらにエージェントが見ているのと同じブラウザをあなたも見て(そして操作して)確認できるようにするためのものです。ブラウザはワークスペース VM とは別の、使い捨ての専用サイドカー VM で実行されるため、悪意のあるページがエージェントのファイルやあなたの Mac に触れることは決してありません。

この章はその完全な利用ガイドです。開き方、手動での操作、内蔵の ブラウザ MCP サーバー を通じてエージェントに操作させる方法、サインイン状態の維持、そしてプライバシーモデルを扱います。これは セッション で紹介したのと同じペインです。ここで述べる内容はすべて、リモートエージェントが リッチクライアント 接続経由で操作する場合にも当てはまります。

ブラウザを開く

⌃⌘B でブラウザペインを切り替えるか、セッションウィンドウのツールバーにある 地球儀 ボタンをクリックします。ステージの右端に分割として開き、ターミナルとウィンドウを共有します。

初めて開くとき — ワークスペースごとではなく Mac ごと — に、ブラウザをインストールしますか? と尋ねる同意カードが ダウンロードしてインストール今はしない とともに表示されます。ブラウザイメージはおよそ 500 MB の一度きりのダウンロードで、すべてのワークスペースで共有されます。インストールされるまで、ペインにはページの代わりにインストールプロンプトが表示されます。ワークスペースの ブラウザ設定 から 今すぐダウンロード で事前に取得することもできます。

インストールが完了すると、いずれかのワークスペースが最初にペインを開いたとき(またはエージェントが最初にブラウザツールを呼び出したとき)にブラウザ VM が遅延起動し、1〜2 秒かかります。この VM を直接管理する必要はありません — 作成、サスペンド、破棄はすべて自動で行われます(ライフサイクルとリソース使用 を参照)。

メモ: ブラウザは、エージェントのシェルが実行される VM とは 別の VM で実行されます。両者はプライベートネットワークを共有していますが(開発サーバーを読み込む を参照)、同じマシンではありません — エージェントがホームディレクトリに書き込んだファイルはブラウザのディスク上にはなく、ブラウザ内の localhost はエージェントの localhost ではありません。

自分で操作する

このペインは、コンパクトな Safari 風のタブバーの下にあるクロームレスなブラウザビューです。

コントロール動作
戻る / 進む矢印ボタン、または ⌘[⌘]
タブピル開いているタブごとに 1 つのピル。アクティブ なピルはアドレスフィールド(「検索または URL を入力」)も兼ねます。ホスト名だけを入力すると https:// が前に付き、URL でないものを入力すると Google 検索になります。
+新しいタブ(ペインにフォーカスがある間は ⌘T)。
DevToolsChromium の開発者ツール(F12)を切り替えます — 完全な要素インスペクタ、コンソール、ネットワークパネル。
サイト情報ファビコンをクリックすると、HTTPS ページでは証明書チェーンを含むサイト情報のポップオーバーが表示されます。
共有現在のページに対する標準の macOS 共有メニュー。

ペインの左端をドラッグしてサイズを変更します(デフォルトは 640 ポイント、380〜1400 の間で調整可能。ターミナルは常に少なくとも 240 ポイントを維持します)。最小幅より下までドラッグするとペインが閉じます。

メモ: ブラウザビューにキーボードフォーカスがある間は、ページ内ショートカットが機能するように ⌘Q⌘Tab がゲストによってキャプチャされます — これらはアプリを終了したり macOS アプリを切り替えたりしません。ターミナルまたはサイドバーをクリックすると、これらのショートカットが macOS に戻ります。

エージェントが起動した開発サーバーを読み込む

ブラウザを開く最も一般的な理由は、エージェントが構築している何かを確認することです。ブラウザ VM はワークスペース VM と同じ NAT サブネットを共有しているため、エージェントが起動した開発サーバーに直接到達できます — ただし localhost では 到達できません。ブラウザは別のマシンだからです。

ワークスペース VM の IP アドレスで開発サーバーに到達します。

  1. いつも通り、エージェントのターミナルでサーバーを起動します(たとえばポート 3000 の開発サーバー)。
  2. ツールバーの IP ピル からワークスペースの IP をコピーします(またはエージェントのターミナルで hostname -I を実行します)。
  3. ブラウザで http://<workspace-ip>:3000 に移動します。

エージェントは自分でブラウザを操作するとき、まさにこれを行うよう指示されています — 開発サーバーには localhost ではなく LAN IP で到達する — ので、スクリーンショットやチェックが正しいサーバーに当たります。

エージェントに操作させる

このブラウザは エージェント型 です。すべてのワークスペースエージェントには、設定不要で内蔵の browser MCP サーバーが自動的に渡されます。そのツールにより、エージェントはページを開く、クリックする、入力する、DOM を読む、スクリーンショットを撮る、コンソールとネットワークを検査する — あなたが見ているまさにそのペインを操作 — できます。あなたとエージェントは 1 つのブラウザを共有します。エージェントが開いたページはあなたのペインに表示され、あなたが開いたタブはエージェントの browser_list_tabs に見えます。

これをオンにする必要はありません。ブラウザを必要とする何かをエージェントに頼むだけです — たとえば次のように。

Open http://<workspace-ip>:3000, click "Sign up", fill the form with a test
account, and tell me if the confirmation page renders. Screenshot it.

エージェントのツール呼び出しは、選択されたワークスペースのためにブラウザを自動的に起動して表示できます。ペインが閉じていた場合、ツール呼び出しがそれを開き、コールドブートを待ちます。(セッション内で手動でペインを閉じた後、ペインが 自分で再び開く ことは決してないので、ペインを表示するかどうかは常にあなたが制御できます。)

ブラウザをトリガーするプロンプト

「ブラウザを使う」というコマンドはありません — エージェントは、リクエストが実際のページを読み込む、見る、または操作することでしか答えられない場合にはいつでも browser_* ツールに手を伸ばします。実際には、URL を挙げるもの、レンダリングされた何かを 見る または クリック するようエージェントに求めるもの、あるいはスクリーンショット、コンソールログ、ネットワークアクティビティを求めるものは、ブラウザを引き入れます。確実にそうなるいくつかの形は次のとおりです。

  • 作ったものを見る — 「http://<workspace-ip>:3000 の開発サーバーを開いて、ダッシュボードがレンダリングされるか教えて。」/「ランディングページの全幅スクリーンショットを撮って。」/「ヘッダーを青に変更した — ページをリロードして、正しく見えるか確認して。」
  • フローを再現またはテストする — 「サインアップページに行って、テストアカウントで入力し、送信して、確認画面が表示されるか教えて。」/「チェックアウトをクリックして進み、最初にエラーになるステップで止まって。」
  • ページから読み取るまたは抽出する — 「<docs URL> を開いて、認証セクションを要約して。」/「このページの外部リンクをすべて列挙して。」/「価格表を Markdown で取得して。」
  • クライアントサイドの問題をデバッグする — 「Buy ボタンが何もしない — ページを開いて、クリックして、失敗しているリクエストをコンソールとネットワークログで確認して。」(エージェントは browser_consolebrowser_network を使って、あなたが DevTools で見るのとまったく同じものを、あなたが何もコピーせずに読み取ります。)

ページや画面上のアクションを具体的に指し示すほど、エージェントはより直接的にブラウザに向かいます。結果だけを 説明 した場合(「サインアップは機能する?」)、エージェントはたいていそれでも確認のためにブラウザを開きますが — URL やボタンを名指しすると往復が 1 回減ります。開発サーバーには localhost ではなくワークスペースの LAN IP を渡すことを忘れないでください(開発サーバーを読み込む を参照)。

ブラウザツール

このサーバーは 23 個のツールを公開しており、動作ごとにグループ化されています。

グループツール
ナビゲーションbrowser_navigate, browser_back, browser_forward, browser_reload, browser_wait_for
タブbrowser_new_tab, browser_list_tabs, browser_activate_tab, browser_close_tab
ページを読むbrowser_get_text, browser_get_html, browser_get_links, browser_screenshot(フルページオプション付き), browser_evaluate(JavaScript を実行)
操作するbrowser_click, browser_fill, browser_type, browser_press_key, browser_pick_element
診断browser_console, browser_network, browser_network_summary, browser_clear_network

browser_evaluate はページ内で任意の JavaScript を実行して結果を返し、browser_network / browser_console は DevTools で読むのと同じリクエストログとコンソール出力をエージェントに渡します — これがエージェントが、あなたが手作業で何もコピーせずに、失敗した fetch やクライアントサイドのエラーをデバッグする方法です。browser_pick_element はあなたが直接関わる唯一のツールで、以下に専用のセクションがあります。

要素を指し示す

にぎやかなページ上の 1 つの要素を特定するのに、言葉は不器用な手段です — 「2 番目のカード」「あの壊れたボタン」「位置がずれたラベル」。エージェントがどの要素を指しているのかわからないとき、あなたに 指し示させて もらうよう頼めば、推測する代わりに制御をあなたに渡します。

One card in this grid is misaligned — let me point at it. Then read that
element's classes and tell me why it's off.

その裏側で、エージェントは browser_pick_element を呼び出します。これは ブラウザペイン内で対話式のピッカーを直接起動 します。マウスを要素の上に動かすとハイライトされ、上部に「要素をクリック」というバナーが表示されます。指している要素をクリックすると、エージェントはその正確な CSS セレクタをただちに受け取ります — 説明も、コピーも、貼り付けも不要です。ピッカーがタイムアウトしてエージェントが何も受け取れなくなるまで、クリックする時間はおよそ 60 秒あります。

「ピッカーを有効にする」ボタンを押したりメニューを開いたりすることは決してありません — ピッカーを起動すること 自体 がエージェントのツール呼び出しなので、あなたが頼んだ瞬間に起こります。確実にトリガーする言い回し:「指し示させて」「指しているものをクリックする」「どの要素?見せる」、または単に 「ポイントアンドピック」。エージェントがセレクタを取得すれば、その要素に対して何でもできます — クリックする、テキストやクラスを読む、監視する、あるいはレイアウトのバグを説明するためのアンカーとして使う — ので、指し示すことを申し出るのと同じ息で、その要素に対して何をしてほしいかを言うのが良いフォロースルーです。

ヒント: ピッカーは「私には見える問題が、あなたには見えない」という橋渡しの最速の方法です。視覚的な不具合を説明する代わりに、問題の要素を指し示し、エージェントに実際の DOM ノードを検査させましょう。

内部では、ツールは生成された Python の stdio シム bromure-browser-mcp.py を介してブラウザに到達します。これはエージェントの VM 内の /mnt/bromure-meta/ に読み取り専用でステージされます。ホストへ vsock ポート 5830 でダイヤルし、永久に再接続するので、ブラウザの破棄をまたいでもツールがエージェントのツールリストから消えることはありません。完全なツールリファレンスは CLI、自動化 & MCP にあります。

メモ: リッチクライアント では、リモートエージェントのブラウザ MCP ストリームを SSH 接続経由でスプライスして、リモートエージェントがあなたがローカルで見ているブラウザペインを操作できます。このようなリレーは一度に 1 つがアクティブです。

サインインを保つか、使い捨てのままにするか

デフォルトでは、ブラウザは 使い捨て です。そのディスクは、ブラウザが破棄されるときに削除される一時的なクローンなので、Cookie、ログイン、履歴はそれとともに消えます。新しく開くたびにクリーンな状態から始まります。これは安全なデフォルトです — エージェントがブラウザで行うことは、後の作業に持続したり漏れたりしません。

サインインを存続させる必要があるとき — エージェントが再訪するステージングサイトにログインする、再起動をまたいでセッションを保つ — には、ワークスペースの ブラウザ設定ウェブサイトへのサインインを保持 を有効にします。すると Chromium のプロファイルは、~/Library/Application Support/BromureAC/browser-profiles/ 配下のワークスペースごとの暗号化されたディスク上に存在し、破棄をまたいで存続します。この設定を切り替えるとワークスペースのブラウザが再起動するので、変更が保存される前に警告が表示されます。

警告: サインインを保持 をオンにすると、使い捨て性を利便性と引き換えにします。保存された Cookie とログインは、まさにプロンプトインジェクションを受けたエージェントが持ち出そうとする類のものです。信頼できないコードに向けられたワークスペースには使い捨てのデフォルトを優先し、永続化は、信頼するサイトだけを訪れるブラウザのために取っておきましょう。

ライフサイクルとリソース使用

ブラウザ VM は自動で管理され、アイドル時には安価に保たれます。

  • 最初に開いたとき(またはエージェントの最初のツール呼び出し)に遅延作成され、共有された 500 MB のイメージからコピーオンライトのクローンとして起動します。
  • 隠れたブラウザは 約 10 秒後にサスペンド し、折りたたまれたまま 5 分後に完全に破棄 され、メモリとディスクを解放します。
  • ペインの開閉状態は、アプリの実行中はワークスペースごとに記憶されますが、アプリの再起動をまたいでは意図的に記憶されません — どのみち使い捨てのブラウザは再起動を生き延びないでしょう。

ワークスペース VM とは異なり、サイドカーのブラウザ VM は事前にウォームアップされたプールから提供されます。これが、初回以降はペインを開くのがたいてい瞬時に感じられる理由です。

キーボードショートカット

これらはブラウザペインにキーボードフォーカスがある間に適用されます。

ショートカットアクション
⌃⌘Bブラウザペインの切り替え
⌘T / ⌘Wブラウザタブの新規作成 / 閉じる
⌘[ / ⌘]戻る / 進む
⌘Rリロード
⌘Lアドレスフィールド(アクティブなタブピル)にフォーカス
F12DevTools の切り替え

トラブルシューティング

ペインにページの代わりにインストールプロンプトが表示される。 ブラウザイメージがまだダウンロードされていません。ダウンロードしてインストール をクリックするか、ブラウザ設定今すぐダウンロード(約 500 MB)から事前に取得します。

エージェントのページが読み込まれない / 接続拒否が表示される。 エージェントはほぼ確実に localhost を使っています。ブラウザは別の VM なので — 開発サーバーを読み込む にあるように、ワークスペース VM の LAN IP(エージェントのターミナルでの hostname -I、またはツールバーの IP ピル)で開発サーバーに到達しなければなりません。

⌘Q や ⌘Tab が何もしない。 ブラウザビューにフォーカスがあり、ページ内で使うためにそれらをキャプチャしています。ターミナルまたはサイドバーをクリックすると、これらのショートカットが macOS に戻ります。

ログインがセッション間で消える。 それが使い捨てのデフォルトです。永続的なプロファイルを保つには、ブラウザ設定ウェブサイトへのサインインを保持 を有効にします。

エージェントが使った後、ブラウザペインが自分で再び開かない。 これは設計上のものです。ペインを手動で閉じると、エージェントがブラウザツール呼び出しを出し続けても(それらは依然として実行されます — ただペインが見えないだけです)、あなたが再び開くまで閉じたままになります。⌃⌘B を押して呼び戻します。

関連する設定とツール

  • ブラウザ設定ウェブサイトへのサインインを保持 トグルとブラウザイメージの管理。
  • セッション — セッションウィンドウ全体の文脈におけるブラウザペイン。
  • CLI、自動化 & MCP — 完全な browser_* ツールリファレンスと vsock トランスポート。