We’ve been building infrastructure to spin up browsers for AI agents. Originally, we built[0] it as a pool of warm Docker containers running Chromium, exposing:<p>- Chrome DevTools Protocol (for Playwright/Puppeteer)<p>- noVNC (for live view)<p>We’ve been following the unikernel space for a while, so we decided to see if we could get our image on one. We went with Unikraft Cloud[1]. Here’s how it did:<p>- Boot-up time: 10–20ms (vs. ~5s for Docker containers)<p>- Near 0 CPU/memory consumption when idle<p>- Still ~8GB RAM when active (headful Chromium)<p>Potential use cases:<p>- Standby mode during long-running jobs: unikernels can sleep after X sec of inactivity, reducing clock time costs<p>- Session reuse: auth/session cookies persist for hours/days. Basically as long as the cookies are valid<p>- Cold start speed: good for low-latency, event-based handling<p>We open sourced it with Apache 2.0! Feel free to fork or submit an issue / PR. Open to feedback or suggestions. www.github.com/onkernel/kernel-images<p>==<p>[0] <a href="https://github.com/onkernel/kernel-images">https://github.com/onkernel/kernel-images</a><p>[1] <a href="https://unikraft.cloud/" rel="nofollow">https://unikraft.cloud/</a><p>[2] Thanks to the Unikraft Cloud team @fhuici @nderjung @razvandeax for helping us figure this out (we're not affiliated)<p>[3] (OPs) @rgarcia @juecd
This looks excellent, and very fun to play with!<p>I used this one-liner to run an instance directly from remote source:<p><pre><code> dagger -c 'git https://github.com/onkernel/kernel-images | head | tree | docker-build --dockerfile containers/docker/Dockerfile | up --ports 8501:8501,8080:8080,6080:6080,9222:9222'
</code></pre>
Be aware that the initial docker build is quite long... But caching kicks in for subsequent runs.<p>I look forward to playing with this!
(OP) Happy to answer any questions! Some things we're still exploring:<p>- Mounting persistent storage for file i/o<p>- Replacing noVNC with a faster alternative<p>Would love feedback, especially if you’ve worked on fast-cold-start systems or unikernel-based infra.
This is probably a dumb question from someone who knows almost nothing about system engineering.<p>How hard would it be to boot a computer to this as an OS?
When should I use this versus Browserbase or Browserless or Hyperbrowser?<p>Obviously since this is open source, then I can self host it. What other reasons?<p>Just curious!
This is super cool. We’ve been looking into infra for AI agents. As others have noted, the difference in speed alone between docker and this is a huge win. Having our clients wait around for five seconds really adds up.<p>Awesome tech, excited to dig deeper for healthcare
Cool (and congrats on the demo)! Sounds like a promising approach. I work on browser use agents and one of the most difficult problems now is bot detection.
Curious if you know how this impacts bot detection/fingerprinting?
This is awesome stuff. I think the biggest thing holding back a bunch agentic use cases is great infra and this is a a great step in the right direction. Love how fast it boots!
Interesting work. It immediately brought boot2gecko to my mind. If I understand unikernels correctly - do you think it would be viable to run this on real HW?
I'm assuming the low latency cold starts are from a paused state, considering chrome itself takes a few seconds to boot? Or have you found some clever way to snapshot a running chrome and fork that?<p>Either way thanks for sharing.
Maybe you can clarify but this isn't actually using unikraft the kernel is it?<p>Maybe you can clarify that this is actually running a stripped down linux as unikraft does not have the support to run chrome itself.
> This unikernel implementation can only be run on Unikraft Cloud<p>Looking forward to one that'll run on my local machine, if I read this correctly?