<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>kvm on tomrochette.com</title>
    <link>https://tomrochette.com/tags/kvm/</link>
    <description>Recent content in kvm on tomrochette.com</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>tom@tomrochette.com (Tom Rochette)</managingEditor>
    <webMaster>tom@tomrochette.com (Tom Rochette)</webMaster>
    <copyright>© 2026 Tom Rochette</copyright>
    <lastBuildDate>Sun, 11 Oct 2026 23:45:59 -0400</lastBuildDate><atom:link href="https://tomrochette.com/tags/kvm/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Brood Box</title>
      <link>https://tomrochette.com/agents/sandboxing/brood-box/</link>
      <pubDate>Mon, 12 Oct 2026 00:00:00 +0000</pubDate>
      <author>tom@tomrochette.com (Tom Rochette)</author>
      <guid>https://tomrochette.com/agents/sandboxing/brood-box/</guid>
      <category>research-note</category><category>agent-curated</category><category>fully-ai-generated</category><category>llm=glm-5.3-flash</category><category>sandboxing</category><category>microvm</category><category>isolation</category><category>kvm</category><category>open-source</category>
      <description>&lt;p&gt;Brood Box is Stacklok&amp;rsquo;s experimental Apache-2.0 Go CLI that runs coding agents inside libkrun microVMs against a copy-on-write snapshot of your workspace, then flushes changes back only after you approve a per-file diff.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Its distinguishing feature is the review gate: the VM stops before review begins, and a SHA-256 differ with flush-time hash re-verification stands between everything the agent did and your actual files.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What it is&#xA;    &lt;div id=&#34;what-it-is&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-it-is&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;A self-contained &lt;code&gt;bbox&lt;/code&gt; binary (pure Go, no CGO) that boots a libkrun microVM per run: KVM on Linux, Hypervisor.framework on Apple Silicon macOS, with the libkrunfw firmware downloaded at first run and cached.&#xA;The default workspace mode copies your project into a snapshot (FICLONE on Linux, clonefile(2) on macOS), mounts it through virtio-fs, and never writes to your files without passing the diff engine; a direct mode writes through unreviewed but requires an explicit operator flag with &amp;ndash;yes, and per-workspace config cannot enable it.&#xA;Five agent commands ship built in (Claude Code, Codex, OpenCode, Hermes, Gemini CLI), custom agents take an OCI image and command in config, and &lt;code&gt;bbox run-image&lt;/code&gt; runs an arbitrary image one-shot with safer-than-custom defaults.&#xA;A DNS-aware egress firewall offers three profiles (permissive, standard, locked) plus per-host allowlist entries, and a ToolHive proxy forwards MCP servers into the VM.&#xA;Built by Stacklok, the supply-chain security company behind ToolHive and Minder; the README carries an experimental warning badge.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Status&#xA;    &lt;div id=&#34;status&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#status&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Small and steady: 77 stars, 8 contributors including its dependency bot, as of 2026-10-12, created 2026-02-13, pushed 2026-10-09, Apache-2.0.&lt;/p&gt;&#xA;&lt;picture&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: dark)&#34; srcset=&#34;https://api.star-history.com/chart?repos=stacklok/brood-box&amp;type=date&amp;theme=dark&amp;legend=top-left&#34; /&gt;&#xA;  &lt;source media=&#34;(prefers-color-scheme: light)&#34; srcset=&#34;https://api.star-history.com/chart?repos=stacklok/brood-box&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;  &lt;img alt=&#34;Star History Chart&#34; src=&#34;https://api.star-history.com/chart?repos=stacklok/brood-box&amp;type=date&amp;legend=top-left&#34; /&gt;&#xA;&lt;/picture&gt;&#xA;&lt;p&gt;The release train ran from v0.0.18 (2026-05-04) through v0.0.25 (2026-09-14), roughly monthly, with the last commits on 2026-09-16.&#xA;I found no Hacker News thread for the project (the Algolia query for &amp;ldquo;brood box&amp;rdquo; returns zero stories), so the 77 stars arrived without any launch moment.&#xA;&lt;strong&gt;A vendor-owned project with six months of monthly releases is the reliable kind of small, but the footprint is too thin for community security review, the boundary is self-described, and no audit exists.&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Strengths&#xA;    &lt;div id=&#34;strengths&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#strengths&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The review gate is structural: the VM stops before the diff renders, so the agent cannot modify files while you review, and flush-time re-hashing guards the window between diff and write.&lt;/li&gt;&#xA;&lt;li&gt;Tighten-only workspace config: a repo cannot widen egress, disable review, switch to direct mode, or negate the always-excluded secret patterns (.env, *.pem, .ssh/, .aws/).&lt;/li&gt;&#xA;&lt;li&gt;The egress firewall is DNS-aware with a locked profile that reaches the LLM provider only, plus &amp;ndash;allow-host entries by hostname.&lt;/li&gt;&#xA;&lt;li&gt;Vendor depth: Stacklok maintains ToolHive, and MCP servers proxy into the VM through it rather than being installed inside.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Cautions&#xA;    &lt;div id=&#34;cautions&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#cautions&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pre-1.0 (v0.0.25) with a self-declared experimental badge and no independent audit.&lt;/li&gt;&#xA;&lt;li&gt;The isolation mechanism is libkrun, the same runtime family as Microsandbox; the novelty is the workflow, not a new boundary primitive.&lt;/li&gt;&#xA;&lt;li&gt;Apple Silicon only on macOS, KVM required on Linux, and the firmware download path is a runtime dependency (disableable with &amp;ndash;no-firmware-download).&lt;/li&gt;&#xA;&lt;li&gt;No public discussion footprint: 77 stars and zero HN threads mean nobody has stress-tested the claims in public.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Pricing&#xA;    &lt;div id=&#34;pricing&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#pricing&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Free and open source under Apache-2.0; the costs are your VM host resources and image pulls.&#xA;No hosted tier or pricing page exists as of 2026-10-12.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Compared to&#xA;    &lt;div id=&#34;compared-to&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#compared-to&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/microsandbox/&#34; &gt;Microsandbox&lt;/a&gt;: the same libkrun family as an embeddable runtime where agents spawn their own sandboxes; choose Brood Box when a mandatory human diff gate is the point.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/brig/&#34; &gt;Brig&lt;/a&gt;: the other vendor-backed workstation microVM, with broader platform coverage and measured security docs; Brig targets parallel per-agent VMs, Brood Box one reviewed session at a time.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/yolobox/&#34; &gt;Yolobox&lt;/a&gt;: the container-grade shortcut with sudo inside; Brood Box costs a VM boot but gives the agent its own kernel.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Bottom line&#xA;    &lt;div id=&#34;bottom-line&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#bottom-line&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Recommended for engineers on Apple Silicon or KVM Linux who want a hardware boundary plus a mandatory human diff gate before agent changes touch the workspace.&lt;/strong&gt;&#xA;Not for Windows or Intel Macs, for parallel multi-agent fleets (the job Brig does), or for anyone requiring an audited or community-reviewed boundary.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Changes&#xA;    &lt;div id=&#34;changes&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#changes&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2026-10-12 - Created from the 2026-10-12 awesome-claude-code scan, profiling Stacklok&amp;rsquo;s review-gated microVM runner with the review gate recorded as the distinguishing mechanism.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;See also&#xA;    &lt;div id=&#34;see-also&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#see-also&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/sandboxing-feature-matrix/&#34; &gt;Sandboxing Feature Matrix&lt;/a&gt; - the category comparison this note joins&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/microsandbox/&#34; &gt;Microsandbox&lt;/a&gt; - the libkrun neighbor with an embeddable runtime instead of a review gate&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/brig/&#34; &gt;Brig&lt;/a&gt; - the other vendor-backed workstation microVM sandbox&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tomrochette.com/agents/sandboxing/yolobox/&#34; &gt;Yolobox&lt;/a&gt; - the container-grade alternative when a VM is more than you need&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;References&#xA;    &lt;div id=&#34;references&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#references&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/stacklok/brood-box&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/stacklok/brood-box&lt;/a&gt; - repository, README (mechanism, workspace modes, egress firewall, security model), 77 stars, dates, license, as of 2026-10-12&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://api.github.com/repos/stacklok/brood-box/releases&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=api.github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://api.github.com/repos/stacklok/brood-box/releases&lt;/a&gt; - the v0.0.18 through v0.0.25 release train&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/stacklok/toolhive&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=github.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://github.com/stacklok/toolhive&lt;/a&gt; - the ToolHive MCP platform the VM proxy integrates, Stacklok&amp;rsquo;s other product&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://hn.algolia.com/api/v1/search?query=%22brood%20box%22&amp;amp;tags=story&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;&lt;img class=&#34;external-link-favicon&#34; src=&#34;https://www.google.com/s2/favicons?domain=hn.algolia.com&amp;sz=128&#34; alt=&#34;&#34; width=&#34;16&#34; height=&#34;16&#34; loading=&#34;lazy&#34;&gt;https://hn.algolia.com/api/v1/search?query=%22brood%20box%22&amp;tags=story&lt;/a&gt; - zero story hits (2026-10-12), the missing-launch-footprint record&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
      
    </item>
    
  </channel>
</rss>
