From 967f07537734ee8942436a78916ea349c0a6ee62 Mon Sep 17 00:00:00 2001
From: "microsoft-playwright-automation[bot]"
<203992400+microsoft-playwright-automation[bot]@users.noreply.github.com>
Date: Tue, 31 Mar 2026 23:24:49 +0000
Subject: [PATCH] feat(roll): roll to ToT Playwright (31-03-26)
---
dotnet/docs/release-notes.mdx | 38 ++++++++++++++++++++--------------
java/docs/release-notes.mdx | 36 +++++++++++++++++++-------------
nodejs/docs/release-notes.mdx | 39 +++++++++++++++++++++--------------
python/docs/release-notes.mdx | 38 ++++++++++++++++++++--------------
4 files changed, 91 insertions(+), 60 deletions(-)
diff --git a/dotnet/docs/release-notes.mdx b/dotnet/docs/release-notes.mdx
index 5f2c7092d2..a06395c519 100644
--- a/dotnet/docs/release-notes.mdx
+++ b/dotnet/docs/release-notes.mdx
@@ -13,7 +13,12 @@ import LiteYouTube from '@site/src/components/LiteYouTube';
### 🎬 Screencast
-New [Page.Screencast](/api/class-page.mdx#page-screencast) API provides a unified interface for capturing page content — both as video recordings, annotations, overlays, and a real-time frame stream.
+New [Page.Screencast](/api/class-page.mdx#page-screencast) API provides a unified interface for capturing page content with:
+- Screencast recordings
+- Action annotations
+- Visual overlays
+- Real-time frame capture
+- Agentic video receipts
@@ -29,14 +34,6 @@ await page.Screencast.StartAsync(new() { Path = "video.webm" });
await page.Screencast.StopAsync();
```
-**Real-time frame capture** — stream JPEG-encoded frames for custom processing like thumbnails, live previews, AI vision, and more:
-
-```csharp
-await page.Screencast.StartAsync(new() {
- OnFrame = frame => SendToVisionModel(frame.Data),
-});
-```
-
**Action annotations** — enable built-in visual annotations that highlight interacted elements and display action titles during recording:
```csharp
@@ -56,6 +53,14 @@ await page.Screencast.ShowChapterAsync("Adding TODOs", new() {
await page.Screencast.ShowOverlayAsync("Recording
");
```
+**Real-time frame capture** — stream JPEG-encoded frames for custom processing like thumbnails, live previews, AI vision, and more:
+
+```csharp
+await page.Screencast.StartAsync(new() {
+ OnFrame = frame => SendToVisionModel(frame.Data),
+});
+```
+
**Agentic video receipts** — coding agents can produce video evidence of their work. After completing a task, an agent can record a walkthrough video with rich annotations for human review:
```csharp
@@ -116,25 +121,25 @@ New [Browser.BindAsync()](/api/class-browser.mdx#browser-bind) API makes a launc
**Bind a browser** — start a browser and bind it so others can connect:
```csharp
-var browser = await chromium.LaunchAsync();
var serverInfo = await browser.BindAsync("my-session", new() {
WorkspaceDir = "/my/project",
});
```
-**Connect from playwright-cli**
+**Connect from playwright-cli** — connect to the running browser from your favorite coding agent.
```bash
playwright-cli attach my-session
+playwright-cli -s my-session snapshot
```
-**Connect from playwright/mcp**
+**Connect from @playwright/mcp** — or point your MCP server to the running browser.
```bash
@playwright/mcp --endpoint=my-session
```
-**Connect from another client**
+**Connect from a Playwright client** — use API to connect to the browser. Multiple clients at a time are supported!
```csharp
var browser = await chromium.ConnectAsync(serverInfo.Endpoint);
@@ -154,11 +159,14 @@ Call [Browser.UnbindAsync()](/api/class-browser.mdx#browser-unbind) to stop acce
### 📊 Observability
-Run `playwright-cli show` to open the Dashboard that lists all bound browsers, their status, and workspace.
+Run `playwright-cli show` to open the Dashboard that lists all the bound browsers, their statuses, and allows interacting with them:
+- See what your agent is doing on the background browsers
+- Click into the sessions for manual interventions
+- Open DevTools to inspect pages from the background browsers.
-
+
- `playwright-cli` binds all of its browsers automatically, so you can see what your agents are doing.
diff --git a/java/docs/release-notes.mdx b/java/docs/release-notes.mdx
index 193b0c504b..550e017cef 100644
--- a/java/docs/release-notes.mdx
+++ b/java/docs/release-notes.mdx
@@ -13,7 +13,12 @@ import LiteYouTube from '@site/src/components/LiteYouTube';
### 🎬 Screencast
-New [Page.screencast()](/api/class-page.mdx#page-screencast) API provides a unified interface for capturing page content — both as video recordings, annotations, overlays, and a real-time frame stream.
+New [Page.screencast()](/api/class-page.mdx#page-screencast) API provides a unified interface for capturing page content with:
+- Screencast recordings
+- Action annotations
+- Visual overlays
+- Real-time frame capture
+- Agentic video receipts
@@ -29,13 +34,6 @@ page.screencast().start(new Screencast.StartOptions().setPath(Paths.get("video.w
page.screencast().stop();
```
-**Real-time frame capture** — stream JPEG-encoded frames for custom processing like thumbnails, live previews, AI vision, and more:
-
-```java
-page.screencast().start(new Screencast.StartOptions()
- .setOnFrame(frame -> sendToVisionModel(frame.data)));
-```
-
**Action annotations** — enable built-in visual annotations that highlight interacted elements and display action titles during recording:
```java
@@ -55,6 +53,13 @@ page.screencast().showChapter("Adding TODOs",
page.screencast().showOverlay("Recording
");
```
+**Real-time frame capture** — stream JPEG-encoded frames for custom processing like thumbnails, live previews, AI vision, and more:
+
+```java
+page.screencast().start(new Screencast.StartOptions()
+ .setOnFrame(frame -> sendToVisionModel(frame.data)));
+```
+
**Agentic video receipts** — coding agents can produce video evidence of their work. After completing a task, an agent can record a walkthrough video with rich annotations for human review:
```java
@@ -116,24 +121,24 @@ New [Browser.bind()](/api/class-browser.mdx#browser-bind) API makes a launched b
**Bind a browser** — start a browser and bind it so others can connect:
```java
-Browser browser = chromium.launch();
Browser.BindResult serverInfo = browser.bind("my-session",
new Browser.BindOptions().setWorkspaceDir("/my/project"));
```
-**Connect from playwright-cli**
+**Connect from playwright-cli** — connect to the running browser from your favorite coding agent.
```bash
playwright-cli attach my-session
+playwright-cli -s my-session snapshot
```
-**Connect from playwright/mcp**
+**Connect from @playwright/mcp** — or point your MCP server to the running browser.
```bash
@playwright/mcp --endpoint=my-session
```
-**Connect from another client**
+**Connect from a Playwright client** — use API to connect to the browser. Multiple clients at a time are supported!
```java
Browser browser = chromium.connect(serverInfo.endpoint);
@@ -151,11 +156,14 @@ Call [Browser.unbind()](/api/class-browser.mdx#browser-unbind) to stop accepting
### 📊 Observability
-Run `playwright-cli show` to open the Dashboard that lists all bound browsers, their status, and workspace.
+Run `playwright-cli show` to open the Dashboard that lists all the bound browsers, their statuses, and allows interacting with them:
+- See what your agent is doing on the background browsers
+- Click into the sessions for manual interventions
+- Open DevTools to inspect pages from the background browsers.
-
+
- `playwright-cli` binds all of its browsers automatically, so you can see what your agents are doing.
diff --git a/nodejs/docs/release-notes.mdx b/nodejs/docs/release-notes.mdx
index 077723057f..6775aa9977 100644
--- a/nodejs/docs/release-notes.mdx
+++ b/nodejs/docs/release-notes.mdx
@@ -13,7 +13,12 @@ import LiteYouTube from '@site/src/components/LiteYouTube';
### 🎬 Screencast
-New [page.screencast](/api/class-page.mdx#page-screencast) API provides a unified interface for capturing page content — both as video recordings, annotations, overlays, and a real-time frame stream.
+New [page.screencast](/api/class-page.mdx#page-screencast) API provides a unified interface for capturing page content with:
+- Screencast recordings
+- Action annotations
+- Visual overlays
+- Real-time frame capture
+- Agentic video receipts
@@ -29,15 +34,6 @@ await page.screencast.start({ path: 'video.webm' });
await page.screencast.stop();
```
-**Real-time frame capture** — stream JPEG-encoded frames for custom processing like thumbnails, live previews, AI vision, and more:
-
-```js
-await page.screencast.start({
- onFrame: ({ data }) => sendToVisionModel(data),
- size: { width: 800, height: 600 },
-});
-```
-
**Action annotations** — enable built-in visual annotations that highlight interacted elements and display action titles during recording:
```js
@@ -74,6 +70,15 @@ await page.screencast.showChapter('Adding TODOs', {
await page.screencast.showOverlay('Recording
');
```
+**Real-time frame capture** — stream JPEG-encoded frames for custom processing like thumbnails, live previews, AI vision, and more:
+
+```js
+await page.screencast.start({
+ onFrame: ({ data }) => sendToVisionModel(data),
+ size: { width: 800, height: 600 },
+});
+```
+
**Agentic video receipts** — coding agents can produce video evidence of their work. After completing a task, an agent can record a walkthrough video with rich annotations for human review:
```js
@@ -105,26 +110,25 @@ New [browser.bind()](/api/class-browser.mdx#browser-bind) API makes a launched b
**Bind a browser** — start a browser and bind it so others can connect:
```js
-const browser = await chromium.launch();
const { endpoint } = await browser.bind('my-session', {
workspaceDir: '/my/project',
});
```
-**Connect from playwright-cli**
+**Connect from playwright-cli** — connect to the running browser from your favorite coding agent.
```bash
playwright-cli attach my-session
playwright-cli -s my-session snapshot
```
-**Connect from playwright/mcp**
+**Connect from @playwright/mcp** — or point your MCP server to the running browser.
```bash
@playwright/mcp --endpoint=my-session
```
-**Connect from another client**
+**Connect from a Playwright client** — use API to connect to the browser. Multiple clients at a time are supported!
```js
const browser = await chromium.connect(endpoint);
@@ -144,11 +148,14 @@ Call [browser.unbind()](/api/class-browser.mdx#browser-unbind) to stop accepting
### 📊 Observability
-Run `playwright-cli show` to open the Dashboard that lists all bound browsers, their status, and workspace.
+Run `playwright-cli show` to open the Dashboard that lists all the bound browsers, their statuses, and allows interacting with them:
+- See what your agent is doing on the background browsers
+- Click into the sessions for manual interventions
+- Open DevTools to inspect pages from the background browsers.
-
+
- `playwright-cli` binds all of its browsers automatically, so you can see what your agents are doing.
diff --git a/python/docs/release-notes.mdx b/python/docs/release-notes.mdx
index 9c0124c7ee..43e4b59284 100644
--- a/python/docs/release-notes.mdx
+++ b/python/docs/release-notes.mdx
@@ -13,7 +13,12 @@ import LiteYouTube from '@site/src/components/LiteYouTube';
### 🎬 Screencast
-New [page.screencast](/api/class-page.mdx#page-screencast) API provides a unified interface for capturing page content — both as video recordings, annotations, overlays, and a real-time frame stream.
+New [page.screencast](/api/class-page.mdx#page-screencast) API provides a unified interface for capturing page content with:
+- Screencast recordings
+- Action annotations
+- Visual overlays
+- Real-time frame capture
+- Agentic video receipts
@@ -29,14 +34,6 @@ page.screencast.start(path="video.webm")
page.screencast.stop()
```
-**Real-time frame capture** — stream JPEG-encoded frames for custom processing like thumbnails, live previews, AI vision, and more:
-
-```python
-page.screencast.start(
- on_frame=lambda frame: send_to_vision_model(frame["data"]),
-)
-```
-
**Action annotations** — enable built-in visual annotations that highlight interacted elements and display action titles during recording:
```python
@@ -56,6 +53,14 @@ page.screencast.show_chapter("Adding TODOs",
page.screencast.show_overlay('Recording
')
```
+**Real-time frame capture** — stream JPEG-encoded frames for custom processing like thumbnails, live previews, AI vision, and more:
+
+```python
+page.screencast.start(
+ on_frame=lambda frame: send_to_vision_model(frame["data"]),
+)
+```
+
**Agentic video receipts** — coding agents can produce video evidence of their work. After completing a task, an agent can record a walkthrough video with rich annotations for human review:
```python
@@ -116,25 +121,25 @@ New [browser.bind()](/api/class-browser.mdx#browser-bind) API makes a launched b
**Bind a browser** — start a browser and bind it so others can connect:
```python
-browser = await chromium.launch()
server_info = await browser.bind("my-session",
workspace_dir="/my/project",
)
```
-**Connect from playwright-cli**
+**Connect from playwright-cli** — connect to the running browser from your favorite coding agent.
```bash
playwright-cli attach my-session
+playwright-cli -s my-session snapshot
```
-**Connect from playwright/mcp**
+**Connect from @playwright/mcp** — or point your MCP server to the running browser.
```bash
@playwright/mcp --endpoint=my-session
```
-**Connect from another client**
+**Connect from a Playwright client** — use API to connect to the browser. Multiple clients at a time are supported!
```python
browser = await chromium.connect(server_info["endpoint"])
@@ -154,11 +159,14 @@ Call [browser.unbind()](/api/class-browser.mdx#browser-unbind) to stop accepting
### 📊 Observability
-Run `playwright-cli show` to open the Dashboard that lists all bound browsers, their status, and workspace.
+Run `playwright-cli show` to open the Dashboard that lists all the bound browsers, their statuses, and allows interacting with them:
+- See what your agent is doing on the background browsers
+- Click into the sessions for manual interventions
+- Open DevTools to inspect pages from the background browsers.
-
+
- `playwright-cli` binds all of its browsers automatically, so you can see what your agents are doing.