{"id":28122608,"url":"https://github.com/onkernel/kernel-images","last_synced_at":"2025-05-14T08:14:13.613Z","repository":{"id":287759167,"uuid":"940072811","full_name":"onkernel/kernel-images","owner":"onkernel","description":"We put browsers on a unikernel","archived":false,"fork":false,"pushed_at":"2025-04-21T16:03:09.000Z","size":2061,"stargazers_count":276,"open_issues_count":1,"forks_count":11,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-21T17:24:04.750Z","etag":null,"topics":["container","docker","unikernel","vm"],"latest_commit_sha":null,"homepage":"https://www.onkernel.com","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onkernel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-27T15:14:18.000Z","updated_at":"2025-04-21T16:41:48.000Z","dependencies_parsed_at":"2025-04-21T17:23:02.391Z","dependency_job_id":null,"html_url":"https://github.com/onkernel/kernel-images","commit_stats":null,"previous_names":["onkernel/kernel-images"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onkernel%2Fkernel-images","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onkernel%2Fkernel-images/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onkernel%2Fkernel-images/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onkernel%2Fkernel-images/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onkernel","download_url":"https://codeload.github.com/onkernel/kernel-images/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101543,"owners_count":22014909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["container","docker","unikernel","vm"],"created_at":"2025-05-14T08:14:08.551Z","updated_at":"2025-05-14T08:14:13.603Z","avatar_url":"https://github.com/onkernel.png","language":"Shell","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"static/images/Kernel-Wordmark_Accent.svg\" alt=\"Kernel Logo\" width=\"55%\"\u003e\n  \u003cbr/\u003e\u003cbr/\u003e\n  Deployment-ready browsers. Run 'em anywhere\n  \u003cbr/\u003e\u003cbr/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub License\" src=\"https://img.shields.io/github/license/onkernel/kernel-images\"\u003e\n  \u003ca href=\"https://discord.gg/FBrveQRcud\"\u003e\u003cimg src=\"https://img.shields.io/discord/1342243238748225556?logo=discord\u0026logoColor=white\u0026color=7289DA\" alt=\"Discord\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://x.com/juecd__\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/juecd__\" alt=\"Follow @juecd__\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://x.com/rfgarcia\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/rfgarcia\" alt=\"Follow @rfgarcia\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## 📜 Table of Contents\n- [Overview](#overview)\n- [Key Features](#key-features)\n- [What You Can Do With It](#what-you-can-do-with-it)\n- [Quickstarts](#quickstarts)\n- [Contributing](#contributing)\n- [License](#license)\n- [Support](#support)\n\n## 🤙 Overview\n\nKernel provides sandboxed, ready-to-use Chrome browser environments for agentic workflows that need to access the Internet. `containers/docker/Dockerfile` and `unikernels/unikraft-cu` are the core infra that powers our hosted services.\n\n\u003cbr/\u003e\n\n\n★ [__Sign-up for the waitlist.__](https://onkernel.com) ★\n\n\n\u003cbr/\u003e\n\n![Chromium x Unikernel Demo](/static/images/unikernel-gh.gif)\n\n## *️⃣ Key Features\n\n- Pre-configured Chrome browser that Chrome DevTools-based browser frameworks (Playwright, Puppeteer) can connect to\n- GUI access for visual monitoring and remote control\n- Anthropic's [Computer Use](https://github.com/anthropics/anthropic-quickstarts/tree/main/computer-use-demo) agent loop \u0026 chat interface baked in\n\n## 💡 What You Can Do With It\n\n- Run automated browser-based workflows\n- Develop and test AI agents that use browsers\n- Build custom tools that require controlled browser environments\n\n## 🛜 Implementation\n\n`containers/docker` and `unikernels/unikraft-cu` functionally do the same thing:\n1. Pull from Anthropic's Computer Use reference implementation\n2. Install Chromium\n3. Expose ports so Chrome DevTools-based frameworks (Playwright, Puppeteer) can connect to the instance\n4. Expose a remote GUI through noVNC\n\nThe unikernel implementation works the same as the Docker-only image but has the additional benefits of running on a unikernel: \n- Automated standby / \"sleep mode\" when there isn't any network activity (consuming negligible resources when it does)\n- When it goes into standby mode, the unikernel’s state gets snapshotted and can be restored exactly as it was when it went to sleep. This could be useful if you want to reuse a session’s state (browser auth cookies, interact with local files, browser settings, even the exact page and window zoom you were on).\n- Extremely fast cold restarts (\u003c20ms), which could be useful for any application that requires super low latency event handlers.\n\n## 🚀 Quickstarts\n\n- [Unikernel ✨](./unikernels/unikraft-cu/README.md)\n- [Docker](./containers/docker/README.md)\n\n## 🧑‍💻 Demo\n\nhttps://github.com/user-attachments/assets/c62b7ff8-9ba0-4463-9df4-e0dd7f1292ba\n\n## 🤝 Contributing\n\nWe welcome contributions to improve this example or add new ones! Please read our [contribution guidelines](./CONTRIBUTING.md) before submitting pull requests.\n\n## 🫰 License\n\nSee the [LICENSE](./LICENSE) file for details.\n\n## 🏅 Join Our Team\nWe're hiring exceptional senior and staff backend engineers to work on the future of AI infrastructure. Full-time or contract-to-hire. Join a small team that punches well above its weight, minimal meetings and no bureaucracy. By developers, for developers.\n\n$175k-200k + equity + great healthcare. Remote in the continental US.\n\nThings we're working on: serverless, containers/vms/unikernels, streaming, SDKs, CLIs.\n\nMessage `catherine jue` on [Discord](https://discord.gg/FBrveQRcud) with what you've been building lately.\n\n## 🏄 Support\n\nFor issues, questions, or feedback, please [open an issue](https://github.com/onkernel/kernel-images/issues) on this repository.\n\nTo learn more about our hosted services, [join our waitlist](https://onkernel.com) and our [Discord](https://discord.gg/FBrveQRcud).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonkernel%2Fkernel-images","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonkernel%2Fkernel-images","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonkernel%2Fkernel-images/lists"}