shiichan

Browser Run's browser bindings now let you handle sessions and DevTools with typed methods!

Hi, I'm Shiichan! Today I want to share a nice little update from Cloudflare Changelog about Browser Run.

Cloudflare Changelog developers.cloudflare.com

What was announced?

On September 21, 2026, Cloudflare Changelog announced that Browser Run's browser bindings now provide typed methods for session management and DevTools operations.

Here's what you can now do just by calling methods:

  • Acquire a session with acquire()
  • Launch and connect a browser client with launch()
  • Acquire and connect in separate steps with connectSession(sessionId)
  • Create Live View URLs
  • Check active sessions
  • View session history
  • Check session limits
  • Get session details
  • Clean up (close) sessions

There's also a nested devtools binding that provides typed methods for browser version information, protocol descriptions, and target operations such as listing, creating, activating, and closing targets.

The story so far

Previously, managing sessions and DevTools operations on Browser Run's browser bindings required constructing HTTP requests by hand, which was a bit of a hassle.

What changes

With these typed methods in place, you can now acquire, connect, and manage sessions directly from code, without building HTTP requests yourself.

Another nice addition: acquire() and launch() now accept an outboundByHost option. This lets you route requests for selected hostnames through another Worker, for example one that adds authentication or reaches a private service.

Dive Deep

Use connectSession(sessionId) when you need to acquire and connect in separate steps. It returns a session-pinned WebSocket Fetcher for a CDP (Chrome DevTools Protocol) client.

Here's a code example using outboundByHost:

const connection = await env.BROWSER.launch({
  outboundByHost: {
    "private.example.test": env.OUTBOUND,
  },
});

Just specify another Worker keyed by hostname, and requests to that host get routed through it.

For full method signatures, check the Browser binding API documentation, and for routing examples, see the outbound Worker feature guide.

Wrap-up

  • Browser Run's browser bindings gained typed methods for session management and DevTools operations
  • acquire(), launch(), and connectSession(sessionId) let you acquire and connect sessions
  • acquire() and launch() now accept outboundByHost to route requests for specific hosts through another Worker
  • The nested devtools binding adds version info and target operations too
  • Great news for developers building browser automation or scraping on Cloudflare Workers