Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
261fde1
Create 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
9c2a7a3
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
b2d8857
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
c0dd063
Add files via upload
kathayl Sep 24, 2025
35edec2
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
f9893ec
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
6cba6a1
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
2f159e4
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
94aa845
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
34e07d0
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
45d748e
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
8abf674
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 24, 2025
b3bc18b
Merge remote-tracking branch 'origin/production' into kathayl-patch-18-1
ToriLindsay Sep 25, 2025
0e37f0f
fix error double slashes
ToriLindsay Sep 25, 2025
8366437
Fixing gif issue
ToriLindsay Sep 25, 2025
6aa94cd
Add files via upload
kathayl Sep 25, 2025
9525c38
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 25, 2025
218a1dc
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 25, 2025
d9a5c19
Update 2025-09-25-br-playwright-ga-stagehand-limits.mdx
kathayl Sep 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/browser-rendering/stagehand.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: Browser Rendering Playwright GA, Stagehand support (Beta), and higher limits
description: Browser Rendering birthday week announcements
products:
- browser-rendering
date: 2025-09-25T12:00:00Z
---

We’re shipping three updates to Browser Rendering:
- Playwright support is now Generally Available and synced with [Playwright v1.55](https://playwright.dev/docs/release-notes#version-155), giving you a stable foundation for critical automation and AI-agent workflows.
- We’re also adding [Stagehand support (Beta)](/browser-rendering/platform/stagehand/) so you can combine code with natural language instructions to build more resilient automations.
- Finally, we’ve tripled [limits](/browser-rendering/platform/limits/#workers-paid) for paid plans across both the [REST API](/browser-rendering/rest-api/) and [Workers Bindings](/browser-rendering/workers-bindings/) to help you scale.

To get started with Stagehand, refer to the [Stagehand](/browser-rendering/platform/stagehand/) example that uses Stagehand and [Workers AI](/workers-ai/) to search for a movie on this [example movie directory](https://demo.playwright.dev/movies), extract its details using natural language (title, year, rating, duration, and genre), and return the information along with a screenshot of the webpage.

```ts title="Stagehand example"
const stagehand = new Stagehand({
env: "LOCAL",
localBrowserLaunchOptions: { cdpUrl: endpointURLString(env.BROWSER) },
llmClient: new WorkersAIClient(env.AI),
verbose: 1,
});

await stagehand.init();
const page = stagehand.page;

await page.goto('https://demo.playwright.dev/movies');

// if search is a multi-step action, stagehand will return an array of actions it needs to act on
const actions = await page.observe('Search for "Furiosa"');
for (const action of actions)
await page.act(action);

await page.act('Click the search result');

// normal playwright functions work as expected
await page.waitForSelector('.info-wrapper .cast');

let movieInfo = await page.extract({
instruction: 'Extract movie information',
schema: z.object({
title: z.string(),
year: z.number(),
rating: z.number(),
genres: z.array(z.string()),
duration: z.number().describe("Duration in minutes"),
}),
});

await stagehand.close();
```

![Stagehand video](/images/browser-rendering/speedystagehand.gif)
Loading