Run Libretto sessions on Kernel's managed browser infrastructure.
.env file. Libretto loads .env automatically before running CLI commands.12# inside .env KERNEL_API_KEY=<kernel-api-key>
1234# inside .env KERNEL_HEADLESS=true KERNEL_STEALTH=false KERNEL_TIMEOUT_SECONDS=300
KERNEL_ENDPOINT is only needed if Kernel gives you a custom API endpoint..libretto/config.json:1234{ "version": 1, "provider": "kernel" }
--provider kernel on a single command instead of changing the config file.1npx libretto open https://example.com --session kernel-demo
provider in .libretto/config.json, pass it for this command instead:1npx libretto open https://example.com --provider kernel --session kernel-demo
123npx libretto snapshot --session kernel-demo npx libretto exec --session kernel-demo "await page.title()" npx libretto close --session kernel-demo
provider is set in .libretto/config.json:1npx libretto run ./workflow.ts --headless
1npx libretto run ./workflow.ts --provider kernel --headless
startUrl, Libretto passes it to Kernel as start_url at create time and does not call page.goto after CDP attach. Libretto Cloud does the same for hosted sessions. Browserbase and Steel do not support create-time start URLs, so Libretto opens startUrl with Playwright right after CDP connect. Declare gpu and viewport on the workflow the same way when those sites need them. See Workflow browser launch options.