Skip to main content

Documentation Index

Fetch the complete documentation index at: https://kernel.sh/docs/llms.txt

Use this file to discover all available pages before exploring further.

Kernel browsers are sandboxed Chromium instances that boot in under 30ms. Your agent creates them on demand, drives them, and tears them down — no infra to provision, no servers to run.

Your first browser

Install the Kernel SDK first:
  • Typescript/Javascript: npm install @onkernel/sdk
  • Python: pip install kernel
import Kernel from '@onkernel/sdk';

const kernel = new Kernel();

const kernelBrowser = await kernel.browsers.create();
console.log(kernelBrowser.session_id);
The response includes everything you need to drive the browser: session_id, cdp_ws_url, webdriver_ws_url, and browser_live_view_url.

Pick the right shape

Most of what you’ll tune at creation time falls into four buckets:

Headless vs headful

headful (default) supports live view, replays, and better stealth — ideal for agent workflows on bot-detected sites. headless is lighter (1 gb vs 8 gb), good for simple scraping.

Stealth and proxies

Turn on stealth mode and route through residential, ISP, or datacenter proxies when you’re hitting sites with bot detection.

GPU acceleration

Required for WebGL, video, and canvas-heavy workloads. Trades off standby support.

Profiles and auth

Persist cookies, storage, and logged-in sessions across runs with a profile, or hand auth off to Kernel entirely with managed auth.

Lifecycle

A browser stays alive as long as something is driving it — a CDP or WebDriver client, a Live View viewer, or an in-flight computer controls request. After five seconds with none of those active, it enters standby — state is preserved, billing stops. Once in standby, after the configurable timeout (60s by default) elapses it’s deleted. We recommend you delete a browser explicitly when you’re done with it:
await kernel.browsers.deleteByID(kernelBrowser.session_id);
See Termination & timeouts for the full set of teardown options.

Full example

Putting it together — create a browser, run Playwright code inside it, tear down:
import Kernel from '@onkernel/sdk';

const kernel = new Kernel();

const kernelBrowser = await kernel.browsers.create();

try {
  const response = await kernel.browsers.playwright.execute(
    kernelBrowser.session_id,
    {
      code: `
        await page.goto('https://www.onkernel.com');
        return await page.title();
      `,
    },
  );
  console.log(response.result);
} catch (error) {
  console.error(error);
} finally {
  await kernel.browsers.deleteByID(kernelBrowser.session_id);
}

What’s next

Once you have a browser, you need to drive it. Head to Control to see the four primitives Kernel exposes — computer use, playwright execution, CDP, and WebDriver BiDi — and when to reach for each.