Run browser script
dev_browser_runExecute sandboxed JavaScript in a persistent Chromium browser to automate multi-step web tasks, interact with pages, capture screenshots, and manage browser state without Node.js dependencies.
Instructions
Run a sandboxed JavaScript script against a persistent browser (SawyerHood/dev-browser).
This is the main tool. Prefer it whenever you need more than a single navigation/click/fill.
Sandbox is QuickJS, not Node.js: no require/import/fs/fetch/process. Available: browser.getPage(nameOrId), browser.newPage(), browser.listPages(), browser.closePage(name) saveScreenshot(buf, name), writeFile(name, data), readFile(name), console.*, setTimeout Pages are Playwright Page objects (goto, click, fill, locator, evaluate, screenshot, snapshotForAI, getByRef, getByRole, waitForSelector, waitForURL, cua, domCua).
Write small scripts. Named pages persist. End with console.log of the next-decision state. On local dev servers use { waitUntil: "domcontentloaded" }.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | JavaScript to run in the QuickJS sandbox. | |
| browser | No | Named daemon-managed browser instance. Default: DEV_BROWSER_BROWSER or 'default'. | |
| connect | No | Attach to a running Chrome instance. true/auto-discover, or a CDP URL like http://localhost:9222. | |
| headless | No | Launch daemon Chromium without a window. | |
| timeoutSeconds | No | Script execution timeout in seconds. Default: 30. | |
| ignoreHttpsErrors | No | Ignore HTTPS certificate errors for daemon-launched Chromium. |