> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bricks.tools/llms.txt
> Use this file to discover all available pages before exploring further.

# Browser

> Open web pages in a panel and let the agent drive them

Browser tabs run live web pages inside a [panel](/ctor/reference/panels) — the [BRICKS Controller](/controller) web interface or any URL you enter. You can open as many as you need, spread across either panel, and the agent can drive the pages you have open through an authorized Chrome DevTools Protocol (CDP) bridge.

Browser tabs replace the older single Controller tab: opening the Controller now opens a browser tab pointed at it, and you can open other sites alongside.

## Open a browser tab

From either [panel](/ctor/reference/panels)'s **+** (New tab) menu:

* **New Browser Tab** — opens a blank tab. Its empty state reads *Open Controller, or enter a URL above.*
* **Open Controller** — opens a browser tab pointed at the [BRICKS Controller](/controller) for the active app, scoped to its stage and workspace (a `beta` app opens the beta Controller, a `production` app the production one).

Browser tabs are available in both project and main chat sessions.

You can also open a link from the chat inside the app: when you click an `http(s)` link the agent produced, the confirm dialog offers **Open in App** to open it as a browser tab instead of your OS browser.

## Toolbar

Each browser tab has a navigation toolbar:

| Control                     | Action                                                                 |
| --------------------------- | ---------------------------------------------------------------------- |
| **Back** / **Forward**      | Move through the tab's history                                         |
| **Reload** / **Stop**       | Reload the page, or stop a load in progress                            |
| URL bar                     | Type a URL and press **Enter** to navigate (placeholder **Enter URL**) |
| **Browser actions** (**⋯**) | Open the actions menu — **Find in Page** and **Clear Browser Data**    |

### Find in page

Open **Find in Page** from the **Browser actions** menu to search the current page. Step through hits with **Previous match** and **Next match**, and close the bar with **Close find**.

### Clear browser data

**Clear Browser Data** clears the cache, cookies, local storage, IndexedDB, and service workers. All browser tabs share one session, so clearing affects every tab — open tabs reload and you may be signed out. CTOR asks you to confirm first.

## Tab strip

Open browser tabs appear in the tab bar, each showing the page's favicon (a globe icon while loading or when a page has none). Unlike the built-in tabs, browser tabs are not deduplicated — you can open several at once. Drag to reorder them, and click the **×** to close one.

Links that a page opens in a new window (`window.open` or `target="_blank"`) open as another browser tab, for `http(s)` URLs only.

## Page actions

Right-click a page for its context menu:

| Action                          | What it does                                                                       |
| ------------------------------- | ---------------------------------------------------------------------------------- |
| **Take Screenshot**             | Copy a screenshot of the page to the clipboard                                     |
| **Take Screenshot → Ask Agent** | Capture the page and attach it to the chat input so you can ask the agent about it |
| **Open DevTools**               | Open the native Chrome DevTools inspector for the tab                              |

<Note>
  Native DevTools and the agent's CDP bridge are mutually exclusive per tab. While you have DevTools open on a tab, that tab drops off the [agent bridge](#agent-browser-automation) until you close DevTools.
</Note>

## Agent browser automation

The agent can drive the pages you have open in browser tabs — clicking, typing, filling forms, taking screenshots, and reading page state — through an authorized local CDP bridge. CTOR injects the connection into the agent's shell environment automatically, so the agent connects without any setup from you.

The bundled **browser** skill teaches the agent how to use this, driving pages with the [`agent-browser`](https://www.npmjs.com/package/agent-browser) CLI. Install the CLI so the agent can use it:

```bash theme={null}
bun add -g agent-browser
```

The agent can also run it on demand with `bunx agent-browser` when it isn't installed globally.

Keep these in mind when working with the agent:

* Only **open** browser tabs are drivable, and a brand-new blank tab has no page yet — open a tab and enter a URL first.
* Navigating a tab you are using is fair game when that is the task, but the agent will use its own standalone browser for unrelated web work rather than hijack your page.
* The agent cannot open new browser tabs through the bridge — ask it, or open one yourself, when it needs a fresh page.
* Opening native **DevTools** on a tab takes it off the bridge until you close DevTools again.

`agent-browser` runs with the direct access it needs even in [sandbox mode](/ctor/reference/sandbox#trusted-programs), the same way `bricks devtools` does. See [skills](/ctor/reference/skills) for how bundled skills like **browser** work.
