Live View
Live View lets you see and interact with a remote Browser Run session in real time. This is useful for debugging automation scripts, monitoring what a browser is doing, or manually stepping in when a task requires human intervention (see Human in the Loop).
Live View is available for any Browser Session, including sessions created with Puppeteer, Playwright, or the CDP endpoints.
There are three ways to access Live View: through the Cloudflare dashboard, via the hosted user interface (UI) at live.browser.run, or using native Chrome DevTools.
In the Cloudflare dashboard, go to the Browser Run page and select the Live Sessions tab. This shows all active browser sessions in your account. Expand a session to see its tabs, then select Open to open the Live View for that tab.
Go to Browser RunWhen you create a session or list targets through the CDP endpoints, the API response includes a devtoolsFrontendUrl for each target (tab). Open this URL in any browser to load the DevTools UI hosted at live.browser.run, which streams the remote session to your browser.
The hosted UI supports two viewing modes, controlled by the mode parameter in the URL:
| Mode | URL pattern | Description |
|---|---|---|
| Tab | https://live.browser.run/ui/view?mode=tab&wss=... | Standalone page view |
| Inspector | https://live.browser.run/ui/view?mode=devtools&wss=... | DevTools inspector panel (Elements, Console, Network, etc.) |
Because Browser Run speaks standard CDP, you can connect Chrome's built-in DevTools directly to a remote session. Replace the https://live.browser.run/ui/inspector?wss= prefix in the devtoolsFrontendUrl with the devtools:// protocol:
devtools://devtools/bundled/inspector.html?wss=live.browser.run/api/devtools/browser/SESSION_ID/page/TARGET_ID?jwt=...Paste this URL into Chrome's address bar to connect native DevTools to the remote browser session. You will get the same DevTools interface you use for local debugging. The devtools:// protocol is Chrome-only and limited to inspector viewing mode.
- Create a browser session with
targets=trueto include target URLs in the response:
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/browser-rendering/devtools/browser?keep_alive=600000&targets=true" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "sessionId": "1909cef7-23e8-4394-bc31-27404bf4348f", "targets": [ { "description": "", "devtoolsFrontendUrl": "https://live.browser.run/ui/inspector?wss=live.browser.run/api/devtools/browser/1909cef7-.../page/8E598E99...?jwt=...", "id": "8E598E996530FB09E46A22B8B7754F7F", "title": "about:blank", "type": "page", "url": "about:blank", "webSocketDebuggerUrl": "wss://live.browser.run/api/devtools/browser/1909cef7-.../page/8E598E99...?jwt=..." } ], "webSocketDebuggerUrl": "wss://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/devtools/browser/1909cef7-..."}- Copy the
devtoolsFrontendUrlfromtargets[0]and open it in your browser. You now have a live, interactive view of the remote browser session.
If you have a running session and want to connect to it:
-
List your active sessions:
Terminal window curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/browser-rendering/devtools/session" \--request GET \--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" -
Using the session ID, list the targets in that session:
Terminal window curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/browser-rendering/devtools/browser/$SESSION_ID/json/list" \--request GET \--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"[{"id": "110850A800BDB8B593CDDA30676635CF","type": "page","url": "https://example.com","title": "Example Domain","description": "","devtoolsFrontendUrl": "https://live.browser.run/ui/view?wss=live.browser.run/api/devtools/browser/28d75446-.../page/110850A8...?jwt=...","webSocketDebuggerUrl": "wss://live.browser.run/api/devtools/browser/28d75446-.../page/110850A8...?jwt=..."}] -
Copy the
devtoolsFrontendUrland open it in your browser.