Der eingebettete Browser
Jeder Arbeitsbereich verfügt über einen eigenen Webbrowser: ein vollwertiges Chromium, das als Bereich neben dem Terminal geöffnet wird. Er existiert, damit ein Agent das Web sehen kann — die gerade erstellte App öffnen, eine Dokumentationsseite lesen, einen Fehler reproduzieren, einen Ablauf durchklicken — und damit Sie denselben Browser mitverfolgen (und steuern) können, den auch er nutzt. Der Browser läuft in einer eigenen, verwerfbaren Sidecar-VM, getrennt von der Arbeitsbereich-VM, sodass eine feindselige Seite niemals auf die Dateien des Agenten oder Ihren Mac zugreifen kann.
Dieses Kapitel ist die vollständige Anleitung zu seiner Nutzung: ihn öffnen, ihn von Hand steuern, den Agenten über den integrierten Browser-MCP-Server steuern lassen, Anmeldungen behalten und das Datenschutzmodell. Es ist derselbe Bereich, der in Sitzungen vorgestellt wird; alles hier gilt auch, wenn ein Remote-Agent ihn über eine Rich-Client-Verbindung steuert.
Den Browser öffnen
Schalten Sie den Browser-Bereich mit ⌃⌘B um, oder klicken Sie auf die Globus-Schaltfläche in der Symbolleiste des Sitzungsfensters. Er öffnet sich als geteilter Bereich am rechten Rand der Bühne und teilt sich das Fenster mit dem Terminal.
Ganz beim ersten Öffnen — pro Mac, nicht pro Arbeitsbereich — fragt eine Zustimmungskarte Browser installieren? mit Herunterladen & installieren und Nicht jetzt. Das Browser-Image ist ein einmaliger Download von etwa 500 MB, der von jedem Arbeitsbereich gemeinsam genutzt wird. Bis er installiert ist, zeigt der Bereich die Installationsaufforderung anstelle einer Seite an; Sie können ihn auch vorab aus den Browser-Einstellungen des Arbeitsbereichs mit Jetzt herunterladen abrufen.
Nach der Installation bootet die Browser-VM verzögert beim ersten Mal, wenn irgendein Arbeitsbereich den Bereich öffnet (oder wenn ein Agent zum ersten Mal ein Browser-Tool aufruft), was ein bis zwei Sekunden dauert. Sie verwalten diese VM nicht direkt — sie wird für Sie erstellt, angehalten und abgebaut (siehe Lebenszyklus und Ressourcennutzung).
Hinweis: Der Browser läuft in einer anderen VM als jener, in der die Shell Ihres Agenten läuft. Die beiden teilen sich ein privates Netzwerk (siehe Einen Dev-Server laden), aber sie sind nicht dieselbe Maschine — eine Datei, die der Agent in seinem Home-Verzeichnis schreibt, liegt nicht auf der Festplatte des Browsers, und
localhostim Browser ist nicht derlocalhostdes Agenten.
Ihn selbst steuern
Der Bereich ist eine chrome-lose Browser-Ansicht unter einer kompakten, Safari-artigen Tab-Leiste:
| Steuerung | Funktion |
|---|---|
| Zurück / Vorwärts | Die Pfeilschaltflächen, oder ⌘[ und ⌘]. |
| Tab-Pillen | Eine Pille pro geöffnetem Tab. Die aktive Pille dient zugleich als Adressfeld ("Suchen oder URL eingeben"): Geben Sie einen reinen Hostnamen ein, wird https:// vorangestellt; geben Sie etwas ein, das keine URL ist, wird daraus eine Google-Suche. |
| + | Neuer Tab (⌘T, während der Bereich fokussiert ist). |
| DevTools | Schaltet Chromiums Entwicklertools um (F12) — den vollständigen Element-Inspektor, die Konsole und das Netzwerkpanel. |
| Seiteninfo | Klicken Sie auf das Favicon für ein Seiteninformations-Popover, einschließlich der Zertifikatskette auf HTTPS-Seiten. |
| Teilen | Das Standard-macOS-Teilen-Menü für die aktuelle Seite. |
Ziehen Sie am linken Rand des Bereichs, um seine Größe zu ändern (Standard 640 Punkte, einstellbar zwischen 380 und 1400; das Terminal behält stets mindestens 240 Punkte). Ziehen Sie ihn unter die Mindestbreite, um den Bereich zu schließen.
Hinweis: Während die Browser-Ansicht den Tastaturfokus hat, werden ⌘Q und ⌘Tab vom Gast abgefangen, damit In-Seite-Kurzbefehle funktionieren — sie beenden weder die App noch wechseln sie macOS-Apps. Klicken Sie auf das Terminal oder die Seitenleiste, um diese Kurzbefehle an macOS zurückzugeben.
Einen Dev-Server laden, den der Agent gestartet hat
Der häufigste Grund, den Browser zu öffnen, ist, sich etwas anzusehen, das der Agent gerade baut. Da die Browser-VM dasselbe NAT-Subnetz wie die Arbeitsbereich-VM nutzt, kann sie einen vom Agenten gestarteten Dev-Server direkt erreichen — aber nicht unter localhost, denn der Browser ist eine separate Maschine.
Erreichen Sie den Dev-Server über die IP-Adresse der Arbeitsbereich-VM:
- Starten Sie den Server wie gewohnt im Terminal des Agenten (zum Beispiel einen Dev-Server auf Port 3000).
- Kopieren Sie die IP des Arbeitsbereichs aus der IP-Pille in der Symbolleiste (oder führen Sie
hostname -Iim Terminal des Agenten aus). - Navigieren Sie im Browser zu
http://<workspace-ip>:3000.
Der Agent ist, wenn er den Browser selbst steuert, angewiesen, genau dies zu tun — Dev-Server über die LAN-IP zu erreichen, niemals localhost — sodass seine Screenshots und Prüfungen den richtigen Server treffen.
Den Agenten steuern lassen
Der Browser ist agentisch: Jedem Arbeitsbereich-Agenten wird automatisch ein integrierter browser-MCP-Server übergeben, ohne Konfiguration. Seine Tools erlauben dem Agenten, Seiten zu öffnen, zu klicken, zu tippen, das DOM zu lesen, Screenshots zu machen und die Konsole und das Netzwerk zu inspizieren — und steuern genau den Bereich, den Sie sehen. Sie und der Agent teilen sich einen Browser: Eine Seite, die der Agent öffnet, erscheint in Ihrem Bereich, und ein Tab, den Sie öffnen, ist für browser_list_tabs des Agenten sichtbar.
Sie schalten dies nicht ein. Bitten Sie den Agenten einfach, etwas zu tun, das einen Browser erfordert — zum Beispiel:
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.
Die Tool-Aufrufe des Agenten können den Browser für den ausgewählten Arbeitsbereich automatisch booten und einblenden; war der Bereich geschlossen, öffnet ein Tool-Aufruf ihn und wartet auf den Kaltstart. (Der Bereich öffnet sich niemals von selbst erneut, nachdem Sie ihn innerhalb einer Sitzung manuell geschlossen haben, sodass Sie stets die Kontrolle darüber behalten, ob er sichtbar ist.)
Prompts, die den Browser auslösen
Es gibt keinen "Browser verwenden"-Befehl — der Agent greift zu den browser_*-Tools, wann immer Ihre Anfrage nur durch Laden, Sehen oder Handeln auf einer echten Seite beantwortet werden kann. In der Praxis wird alles, was eine URL nennt, den Agenten bittet, etwas Gerendertes anzusehen oder anzuklicken, oder um einen Screenshot, ein Konsolenprotokoll oder Netzwerkaktivität bittet, den Browser einbeziehen. Einige Formen, die dies zuverlässig tun:
- Etwas ansehen, das Sie erstellt haben — "Öffne meinen Dev-Server unter
http://<workspace-ip>:3000und sag mir, ob das Dashboard rendert." / "Mach einen Screenshot der Landingpage über die volle Breite." / "Ich habe den Header auf Blau geändert — lade die Seite neu und bestätige, dass sie richtig aussieht." - Einen Ablauf reproduzieren oder testen — "Geh zur Anmeldeseite, fülle sie mit einem Testkonto aus, sende ab und sag mir, ob der Bestätigungsbildschirm erscheint." / "Klick dich durch den Checkout und stopp beim ersten Schritt, der einen Fehler wirft."
- Von einer Seite lesen oder extrahieren — "Öffne
<docs URL>und fasse den Authentifizierungsabschnitt zusammen." / "Liste jeden ausgehenden Link auf dieser Seite auf." / "Erfasse die Preistabelle als Markdown." - Ein clientseitiges Problem debuggen — "Der Kaufen-Button tut nichts — öffne die Seite, klick ihn an und prüfe die Konsole und das Netzwerkprotokoll auf die fehlgeschlagene Anfrage." (Der Agent nutzt
browser_consoleundbrowser_network, um genau das zu lesen, was Sie in den DevTools sehen würden, ohne dass Sie etwas herauskopieren.)
Je konkreter Sie auf eine Seite oder eine Aktion auf dem Bildschirm zeigen, desto direkter greift der Agent zum Browser. Wenn Sie nur ein Ergebnis beschreiben ("funktioniert die Anmeldung?"), öffnet der Agent in der Regel trotzdem den Browser, um es zu prüfen — aber das Nennen der URL oder der Schaltfläche erspart einen Umweg. Denken Sie daran, ihm für Dev-Server die LAN-IP des Arbeitsbereichs zu geben, nicht localhost (siehe Einen Dev-Server laden).
Die Browser-Tools
Der Server stellt 23 Tools bereit, gruppiert nach ihrer Funktion:
| Gruppe | Tools |
|---|---|
| Navigation | browser_navigate, browser_back, browser_forward, browser_reload, browser_wait_for |
| Tabs | browser_new_tab, browser_list_tabs, browser_activate_tab, browser_close_tab |
| Die Seite lesen | browser_get_text, browser_get_html, browser_get_links, browser_screenshot (mit einer Ganzseiten-Option), browser_evaluate (JavaScript ausführen) |
| Interagieren | browser_click, browser_fill, browser_type, browser_press_key, browser_pick_element |
| Diagnostik | browser_console, browser_network, browser_network_summary, browser_clear_network |
browser_evaluate führt beliebiges JavaScript auf der Seite aus und gibt das Ergebnis zurück, und browser_network / browser_console geben dem Agenten dasselbe Anfrageprotokoll und dieselbe Konsolenausgabe, die Sie in den DevTools lesen würden — so debuggt ein Agent einen fehlschlagenden Fetch oder einen clientseitigen Fehler, ohne dass Sie etwas von Hand herauskopieren. browser_pick_element ist jenes Tool, das Sie direkt einbezieht, und es bekommt weiter unten einen eigenen Abschnitt.
Auf ein Element zeigen
Worte sind ein umständliches Mittel, um ein einzelnes Element auf einer vollen Seite zu identifizieren — "die zweite Karte", "diese kaputte Schaltfläche", "das falsch ausgerichtete Label". Wenn der Agent nicht erkennen kann, welches Element Sie meinen, bitten Sie ihn, Sie zeigen zu lassen, und er übergibt Ihnen die Kontrolle, statt zu raten:
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.
Dahinter ruft der Agent browser_pick_element auf, was direkt im Browser-Bereich einen interaktiven Picker aktiviert: Elemente werden hervorgehoben, während Sie die Maus über sie bewegen, und ein Banner "Klicken Sie ein Element an" erscheint oben. Klicken Sie das gemeinte Element an, und der Agent erhält sofort dessen exakten CSS-Selektor — nichts zu beschreiben, zu kopieren oder einzufügen. Sie haben etwa 60 Sekunden Zeit zum Klicken, bevor der Picker abläuft und der Agent nichts zurückbekommt.
Sie drücken niemals eine "Picker aktivieren"-Schaltfläche und öffnen kein Menü — das Aktivieren des Pickers ist der Tool-Aufruf des Agenten, sodass es in dem Moment geschieht, in dem Sie darum bitten. Formulierungen, die es zuverlässig auslösen: "lass mich darauf zeigen", "ich klick auf das, das ich meine", "welches Element? Ich zeig es dir", oder einfach "zeigen-und-picken". Sobald der Agent den Selektor hat, kann er alles mit diesem Element tun — es anklicken, seinen Text oder seine Klassen lesen, es beobachten oder es als Anker verwenden, um einen Layout-Fehler zu erklären — daher ist eine gute Fortsetzung, in einem Atemzug mit dem Angebot zu zeigen zu sagen, was mit dem Element geschehen soll.
Tipp: Der Picker ist der schnellste Weg, um die Lücke "Ich sehe das Problem, du nicht" zu überbrücken. Statt einen visuellen Fehler zu beschreiben, zeigen Sie auf das betreffende Element und lassen den Agenten den echten DOM-Knoten inspizieren.
Unter der Haube erreichen die Tools den Browser über einen generierten Python-stdio-Shim, bromure-browser-mcp.py, der schreibgeschützt unter /mnt/bromure-meta/ in die VM des Agenten eingebracht wird. Er wählt sich über vsock-Port 5830 zum Host und verbindet sich endlos neu, sodass die Tools nie aus der Tool-Liste des Agenten verschwinden, selbst über Browser-Abbaue hinweg. Die vollständige Tool-Referenz finden Sie unter CLI, Automatisierung & MCP.
Hinweis: Auf einem Rich Client kann der Browser-MCP-Stream eines Remote-Agenten über die SSH-Verbindung eingespleißt werden, sodass der Remote-Agent den Browser-Bereich steuert, den Sie lokal beobachten. Es ist jeweils ein solches Relay aktiv.
Angemeldet bleiben vs. verwerfbar bleiben
Standardmäßig ist der Browser verwerfbar: Seine Festplatte ist ein flüchtiger Klon, der gelöscht wird, wenn der Browser abgebaut wird, sodass Cookies, Anmeldungen und Verlauf mit ihm verschwinden. Jedes frische Öffnen beginnt sauber. Dies ist der sichere Standard — nichts, was ein Agent im Browser tut, bleibt bestehen oder sickert in spätere Arbeit ein.
Wenn Anmeldungen erhalten bleiben sollen — Anmeldung an einer Staging-Site, die der Agent erneut besuchen wird, Beibehaltung einer Sitzung über Neustarts hinweg — aktivieren Sie Bei Websites angemeldet bleiben in den Browser-Einstellungen des Arbeitsbereichs. Chromiums Profil liegt dann auf einer verschlüsselten Festplatte pro Arbeitsbereich unter ~/Library/Application Support/BromureAC/browser-profiles/ und überlebt Abbaue. Das Umschalten der Einstellung startet den Browser des Arbeitsbereichs neu, sodass Sie gewarnt werden, bevor die Änderung gesichert wird.
Warnung: Das Aktivieren von Angemeldet bleiben tauscht Verwerfbarkeit gegen Bequemlichkeit. Gespeicherte Cookies und Anmeldungen sind genau die Art von Dingen, die ein durch Prompt-Injection kompromittierter Agent zu exfiltrieren versuchen würde. Bevorzugen Sie den verwerfbaren Standard für jeden Arbeitsbereich, der auf nicht vertrauenswürdigen Code gerichtet ist, und behalten Sie Persistenz Browsern vor, die nur Seiten besuchen, denen Sie vertrauen.
Lebenszyklus und Ressourcennutzung
Die Browser-VM wird für Sie verwaltet und im Leerlauf günstig gehalten:
- Sie wird verzögert beim ersten Öffnen (oder beim ersten Agenten-Tool-Aufruf) erstellt und bootet aus dem gemeinsam genutzten 500-MB-Image als Copy-on-Write-Klon.
- Ein ausgeblendeter Browser wird nach etwa 10 Sekunden angehalten und nach 5 Minuten im eingeklappten Zustand vollständig abgebaut, was seinen Speicher und seine Festplatte freigibt.
- Der Offen/Geschlossen-Zustand des Bereichs wird pro Arbeitsbereich gemerkt, solange die App läuft, aber bewusst nicht über App-Neustarts hinweg — ein verwerfbarer Browser würde einen Neustart ohnehin nicht überleben.
Anders als Arbeitsbereich-VMs wird die Sidecar-Browser-VM aus einem vorgewärmten Pool bereitgestellt, weshalb sich das Öffnen des Bereichs nach dem ersten Mal in der Regel sofort anfühlt.
Tastaturkurzbefehle
Diese gelten, während der Browser-Bereich den Tastaturfokus hat:
| Kurzbefehl | Aktion |
|---|---|
| ⌃⌘B | Browser-Bereich umschalten |
| ⌘T / ⌘W | Browser-Tab neu / schließen |
| ⌘[ / ⌘] | Zurück / Vorwärts |
| ⌘R | Neu laden |
| ⌘L | Adressfeld fokussieren (die aktive Tab-Pille) |
| F12 | DevTools umschalten |
Fehlerbehebung
Der Bereich zeigt eine Installationsaufforderung statt einer Seite. Das Browser-Image ist noch nicht heruntergeladen. Klicken Sie auf Herunterladen & installieren, oder rufen Sie es vorab aus den Browser-Einstellungen → Jetzt herunterladen ab (etwa 500 MB).
Die Seite des Agenten lädt nicht / zeigt "connection refused". Der Agent verwendet mit an Sicherheit grenzender Wahrscheinlichkeit localhost. Der Browser ist eine separate VM — er muss den Dev-Server über die LAN-IP der Arbeitsbereich-VM erreichen (hostname -I im Terminal des Agenten, oder die IP-Pille in der Symbolleiste), wie unter Einen Dev-Server laden.
⌘Q oder ⌘Tab tun nichts. Die Browser-Ansicht hat den Fokus und fängt sie für die In-Seite-Nutzung ab. Klicken Sie auf das Terminal oder die Seitenleiste, um diese Kurzbefehle an macOS zurückzugeben.
Anmeldungen verschwinden zwischen Sitzungen. Das ist der verwerfbare Standard. Aktivieren Sie Bei Websites angemeldet bleiben in den Browser-Einstellungen, um ein persistentes Profil zu behalten.
Der Browser-Bereich öffnet sich nicht von selbst erneut, nachdem der Agent ihn benutzt hat. Das ist beabsichtigt: Sobald Sie den Bereich manuell schließen, bleibt er geschlossen, bis Sie ihn erneut öffnen, selbst wenn der Agent weiterhin Browser-Tool-Aufrufe absetzt (die dennoch ausgeführt werden — Sie sehen nur den Bereich nicht). Drücken Sie ⌃⌘B, um ihn zurückzuholen.
Verwandte Einstellungen und Tools
- Browser-Einstellungen — der Schalter Bei Websites angemeldet bleiben und die Verwaltung des Browser-Images.
- Sitzungen — der Browser-Bereich im Kontext des gesamten Sitzungsfensters.
- CLI, Automatisierung & MCP — die vollständige
browser_*-Tool-Referenz und der vsock-Transport.