Implement your own browser provider.
BrowserProvider: produce a CDP websocket endpoint for a new session, and close it later.123456789101112131415161718192021222324252627import type { BrowserProvider, ProviderSession, ProviderSessionClosed, ProviderSessionCreateOptions, } from "libretto-browser-tools"; class MyProvider implements BrowserProvider { readonly name = "my-provider"; async createSession( options: ProviderSessionCreateOptions = {}, ): Promise<ProviderSession> { // Start or allocate a browser, then return its CDP endpoint. // Per-session launch options (startUrl, gpu, viewport) arrive here. return { sessionId: "my-1", cdpEndpoint: "ws://127.0.0.1:9222/devtools/browser/...", // optional: liveViewUrl, recordingUrl, startUrlPreloaded }; } async closeSession(sessionId: string): Promise<ProviderSessionClosed> { // Tear down the provider-owned session. return {}; // optional: replayUrl } }
new MyProvider() into createBrowserTools or any framework adapter. Provider credentials and defaults belong on the constructor (with env-var fallbacks). Per-session launch options belong on createSession.libretto-browser-tools/kernel. See Providers.