Kernel use cases, speed vs local Chrome, session recording

Followed https://www.kernel.sh/docs/introduction/create against the real API (key from the shell env). Code: outputs/run.mjs, scenarios: outputs/kernel.feature, raw numbers: outputs/results.json (JWTs redacted), recorded video: outputs/replay.mp4. Demo: demo/index.html.

What passed (all against the real API)

  • browsers.create() returned session_id, cdp_ws_url, browser_live_view_url (region us-east); deleteByID() removed it (retrieve then failed).
  • Driven two ways: Playwright over CDP from this machine, and playwright.execute (code runs inside the VM, no local Playwright needed). Both returned "Example Domain".
  • Bonus, recording: replays.start → browse → replays.stop → replays.list gave a replay_view_url; replays.download gave a 674 KB MP4 (h264, 1920x1080, 4.6 s). I extracted a frame and saw the full Chrome window (tab bar, address bar, Hacker News). Opened in Chrome via the demo page.

Speed vs local Chrome (median of 3, one run, one region, from this machine)

ms Local Chrome Kernel via CDP Kernel execute (timed in VM)
Wikipedia load 190 262 114
Hacker News load 279 256 110
example.com load 37 166 18
20 small commands 69 3133 228 (one call)
Start browser 402 (launch) 600–671 (create call) —

Reading:

  • Page loads: the VM is faster on real sites (Wikipedia 114 vs 190, HN 110 vs 279). I did not test why; likely a datacenter network, unverified.
  • Not faster for chatty control: 20 commands over CDP took 3.1 s, about 157 ms each, versus 69 ms total locally. Cause is the round trip to us-east, from the timings only.
  • Wall-clock for one execute page load from here was 194–289 ms, so one remote call costs roughly 170 ms on top of the load.
  • Start-up: "boots in under 30ms" (docs) is not what I measured. My create call took 0.6–0.7 s, and that includes the network round trip. Local launch was 0.4 s. So not faster to start. Pools (browserPools, docs only, not tested) are the documented way to skip this.
  • Not tested: stealth/proxies, GPU, profiles, pools, other regions, parallel sessions, bot-protected sites. These are docs claims only.

Use cases

Proven by this run: (1) run agent browser tasks without installing Chrome/Playwright locally (execute); (2) watch or share a live view of the agent's browser; (3) record every agent session as an MP4 with a view URL, useful for audit and debugging; (4) keep many throwaway browsers off your own machine. Docs-only, untested: bot-detection sites (stealth, proxies), logged-in sessions (profiles), high-volume runs (pools), computer-use models (OS-level mouse/keyboard API).

Advice

Send whole scripts to playwright.execute rather than driving step by step over CDP. For a single local, interactive task, local Chrome is just as fast and cheaper. Kernel earns its place for remote agents, scale, and recordings.

Limits of this experiment

One run, 3 samples, single region, plain pages. No variance. Treat the numbers as indicative.