Skip to content

Browser

Source: src/Cloudflare/Workers/Browser.ts

A Cloudflare Browser Rendering binding for launching headless browser sessions from Workers — a Worker-only binding with no backing cloud resource.

Browser is a single value that is at once the Binding.Service tag, the callable that produces a {@link BrowserBinding}, and the type. Declare it on a Worker’s env (it flows through InferEnvcf.BrowserRun) or yield* it inside an Effect-native Worker to attach the binding and obtain the {@link BrowserClient}.

import * as Effect from "effect/Effect";
Cloudflare.Worker(
"BrowserWorker",
{ main: import.meta.url },
Effect.gen(function* () {
const browser = yield* Cloudflare.Browser("BROWSER");
return {
fetch: Effect.gen(function* () {
return yield* browser.markdown({ url: "https://example.com" });
}),
};
}).pipe(Effect.provide(Cloudflare.Workers.BrowserBinding)),
);
export const Worker = Cloudflare.Worker("Worker", {
main: "./src/worker.ts",
env: { BROWSER: Cloudflare.Browser() },
});
export type WorkerEnv = Cloudflare.InferEnv<typeof Worker>;
// { BROWSER: BrowserRun }