Browser Panes
Embedded Safari-engine browser panes with tabs, Chrome DevTools, device emulation and agent control.
Browser panes use WebKit, the Safari engine. They sit next to your service logs and agents, keep their pages loaded when you switch views, and can be controlled by agents through MCP.
Open a browser pane
- Click a link in a service pane header. ⌘-click opens it in your default browser instead.
- In an empty pane, choose Browser and type an address or pick a service address.
- In the command palette (⌘P), choose New Browser Tab.
- Ask an agent to open a page (browser_navigate or browser_tabs).
A browser opened from a service link belongs to that service. It shows "Waiting for server..." until the service port accepts connections, then loads the page. When the service restarts, the page reloads once the port answers again. Pages from Vite, Next.js and webpack-dev-server reload themselves, and Highwind does not reload them a second time. A browser opened from an address that matches no service loads right away.
Tabs
A browser pane can hold several tabs. Opening a second browser for the same service adds a tab instead of splitting the view. The + button in the header opens a new tab with the URL bar focused. Right-click a tab for Move to Split, Duplicate Tab, Close Tab and Close Other Tabs. Same-origin links that open a new window open as a tab.
URL bar and navigation
The URL bar works like a regular browser. Bare domains get https://, localhost and IP addresses get http://, and anything else becomes a Google search. ⌘L focuses it and Escape cancels the edit. Use ⌘[ and ⌘] for back and forward, ⌘R to reload, and ⌘F to find in the page.
Hard reload and clearing site data
⇧⌘R clears the site's caches and service workers, then reloads from the server. Cookies and logins are kept. To start clean, right-click the browser header and choose Clear Site Data and Reload, which also removes cookies, localStorage and IndexedDB for that site.
Inspector (Chrome DevTools)
Press ⌥⌘I, click the inspector button in the header, or right-click the page and choose Inspect Element. The Chrome DevTools frontend (Elements, Console, Network, Sources) opens beside the page, and the page shrinks to make room. Console output and network requests are recorded from page load, so they are there when you open the inspector later. Iframes are not inspected.
The "Send to agent" menu in the inspector pastes recent errors, console output, failed requests or the selected element (HTML and computed styles) into the prompt of a running agent. It does not submit the prompt.
Device emulation
The device menu in the browser header switches the page to a phone or tablet viewport: iPhone SE, iPhone 16 Pro, iPhone 16 Pro Max, Pixel 8 or iPad Mini. It sets the size, pixel ratio, touch points and user agent, and reloads the page. Rotate swaps portrait and landscape. Emulation is per tab and is not saved when Highwind quits.
Sign-in popups
Popups that open with a size, as OAuth and Google sign-in do, open in a separate window that can talk to the page and close itself when sign-in finishes. Highwind uses a Safari user agent, so Google sign-in works in the embedded browser.
Other controls
- ⌘O opens the current page in your default browser.
- ⇧⌘F toggles fullscreen for the browser pane.
- Detach to floating window keeps the page visible above other apps.
Agents using the browser
Agents connected through MCP can use browser panes with 21 browser_* tools: open and switch tabs, navigate, read the page, find elements, click, hover, type, press keys, fill forms, scroll, upload files, take screenshots, inspect an element's CSS and box model, read console and network requests, run JavaScript, handle dialogs, emulate devices and read or change storage. A cursor is drawn where the agent clicks, so you can follow along in the pane.
Opening pages on another site, clicking and typing, and running JavaScript can ask for approval. A request card appears at the top of the window with Deny, Always allow in <project>, Allow for this session and Allow once. Reading, screenshots, hover, scrolling, console and network never ask. Settings → Browser Agents has a switch for all browser tools, "Trust local pages" (on by default, so localhost and the project's own links never ask), a policy for each action group (Ask, Allow or Block, Ask by default) and the saved project rules.