Hacker News

harshdoesdev
Show HN: Local-First Linux MicroVMs for macOS shuru.run

Shuru is a lightweight sandbox that spins up Linux VMs on macOS using Apple's Virtualization.framework. Boots in about a second on Apple Silicon, and everything is ephemeral by default. There's a checkpoint system for when you do want to persist state, and sandboxes run without network access unless you explicitly allow it. Single Rust binary, no dependencies. Built it for sandboxing AI agent code execution, but it works well for anything where you need a disposable Linux environment.


tobyhinloopen6 minutes ago

Neat! I was looking for something like this

harshdoesdevop4 minutes ago

thanks! let me know how it goes

josephgan hour ago

What does local first mean in this context? Does it just mean local? Like, the software runs locally?

harshdoesdevopan hour ago

yeah, it just means everything runs on your machine. there are services like E2B, sprites.dev and others that give you sandboxes in the cloud. shuru runs VMs locally using Apple's Virtualization.framework, so nothing leaves your Mac.

7777777philan hour ago

The agent stack is splitting into specialized layers and sandboxing is clearly becoming its own thing. Shuru, E2B, Modal, Firecracker wrappers.

Earlier this month I wrote about how these layers have very different defensibility profiles and why going monolithic is the wrong call: https://philippdubach.com/posts/dont-go-monolithic-the-agent...

EDIT: Spelling

rishabhaiover31 minutes ago

I've noticed claude forks parallel agents on an assigned task. How would they communicate in isolated sandboxes like these? Would it be cleaner and more effective for a harness to orchestrate swarms of agents in a single clean linux environment like OrbStack?

harshdoesdevop20 minutes ago

haven't thought about multi-agent communication yet. each sandbox is fully isolated which is the point. checkpoints help a bit here though, you can branch multiple agents from the same checkpoint so they all start from the same state.

rishabhaiover11 minutes ago

I think I made a cursory and incorrect assumption. Given this is backed by Apple's Virtualization, it has POSIX compliance and forks/execs are allowed within the sandbox which can support agent parallelization within a sandbox I believe.

Looks like a great project at surface!

conradevan hour ago

Use OrbStack. It’s faster than Virtualization.framework because it has its own hypervisor.

JoshTriplett4 minutes ago

OrbStack has some invasive elements inside it trying to provide filesystem integration, and the filesystem they use is not POSIX compliant and causes breakage with some build systems and other software.

noname120an hour ago

Not true, OrbStack uses Virtualization.framework: https://news.ycombinator.com/item?id=36189550

harshdoesdevopan hour ago

OrbStack is great but it is solving a different problem. it's a full Docker Desktop replacement. shuru is just a thin layer over Virtualization.framework for spinning up throwaway sandboxes.

xrd2 hours ago

What is the benefit of this over lima, for example?

harshdoesdevop2 hours ago

Lima can do a lot of what shuru does if you set it up for it. the difference is mostly in defaults and how much you have to configure upfront. with shuru you get ephemeral VMs, no networking, and a clean rootfs on every run without touching a config file. shuru run and you're in. Checkpoints and branching are built into the CLI rather than being an experimental feature you have to figure out. Lima is a much bigger and more mature project though. Shuru is something I am building partly to learn and partly because I wanted something with saner defaults for this specific use case.

enneff16 minutes ago

Thanks for doing this. I had basically the same experience with Lima. It is very nice but the defaults are not what I want, and I don't like having to wonder whether I turned off the stuff that I don't want enabled. Better that everything is disabled by default and I selectively turn things on (like networking) as I need them.

I'm gonna give shuru a try. My main concern is being based on Alpine (seemingly the only option?) I may not be able to easily pull in the dependencies for the projects I'm working on, but I'll see how it goes.

harshdoesdevop2 minutes ago

glad to hear it, that's exactly the thinking behind it. alpine is the only option right now yeah. what kind of dependencies are you running into issues with? would help me figure out what to prioritize next.

Krissoan hour ago

Why was using straigt containers not enough?

harshdoesdevopan hour ago

containers work fine for a lot of this. shuru is just what felt more natural to me. less config overhead and i wanted to learn by building it.

hn-front (c) 2024 voximity
source