Skip to main content
Tabs are the unit of work in the box browser. box.browser opens and lists them. Every page operation, from navigation to screenshots to AI actions, runs on a specific Tab handle.

Open a tab

tab.create opens a tab, navigates it to a URL, and waits for the requested lifecycle state. The first call also boots Chromium if it is not running yet.
  • waitUntil: when navigation counts as done. One of "load" (default), "domcontentloaded", or "networkidle".
  • timeout: navigation timeout in milliseconds. Defaults to 30000. Pass 0 to disable it.
goto navigates the tab and returns the resulting page’s content (title, URL, text, and links):
Unlike tab.create, goto has no waitUntil or timeout options. It waits for the page to load with a fixed 60 second deadline.

List and re-attach

Tab handles are addressed by their Chrome DevTools Protocol target id, which stays stable across navigations. You can store a tab id and re-attach to the same tab later, even from a different process:
A handle’s url and title fields are the last known values from tab.create or listTabs. They are not updated live. Use tab.content() to read the current state of the page.

Close a tab

Multiple tabs can be open at once. Each is independent, and operations on one do not affect the others. This is useful for comparing pages side by side or running AI tasks against several pages in sequence.