Run agent browser sessions on Kernel.
libretto-browser-tools/kernel. For Libretto CLI open / run on Kernel, see Alternative providers: Kernel.12345678KERNEL_API_KEY=<kernel-api-key> # optional # KERNEL_HEADLESS=true # KERNEL_STEALTH=false # KERNEL_TIMEOUT_SECONDS=300 # KERNEL_PROXY_ID= # KERNEL_ENABLE_RECORDING=false # KERNEL_API_ENDPOINT=https://api.onkernel.com
| Option | Env | Default | Description |
apiKey | KERNEL_API_KEY | (required) | API key |
headless | KERNEL_HEADLESS | true | Headless browser |
stealth | KERNEL_STEALTH | false | Kernel stealth mode |
proxyId | KERNEL_PROXY_ID | — | Optional Kernel proxy id |
timeoutSeconds | KERNEL_TIMEOUT_SECONDS | 300 | Session timeout in seconds |
enableRecording | KERNEL_ENABLE_RECORDING | false | Start a replay; requires headless: false |
liveViewUrl and, when recording is enabled, recordingUrl. Closing returns replayUrl when a replay was started.provider.createSession({ ... }) (or via browser_open({ url }) for startUrl):| Option | Description |
startUrl | URL Kernel opens before CDP attach |
gpu | Enable Kernel GPU acceleration |
viewport | { width, height } window size |
startUrl when the site blocks Playwright attach followed by page.goto(). Kernel navigates during browser create, before CDP is available, and returns startUrlPreloaded: true so callers skip a second navigation.12345678910111213import { createAiSdkBrowserTools } from "libretto-browser-tools/ai-sdk"; import { KernelBrowserProvider } from "libretto-browser-tools/kernel"; const { tools, dispose } = createAiSdkBrowserTools( new KernelBrowserProvider({ stealth: true }), ); try { // Prefer browser_open({ url }) so Kernel can preload startUrl. // agent loop using tools… } finally { await dispose(); }