The Problem

LLMs like codex or claude can be super helpful, but here’s the thing: you can’t always trust them with full access to your machine. Maybe they decide they need to install a random tool, or worse, they start reading files they’ve got no business touching. Sure, you could run in a container, but on MacOS, that’s just a VM in a trench coat. So why not skip the middleman and run a real VM built for the job?

What This Does

vibe spins up a lightweight, fully sandboxed Linux virtual machine on your Mac with almost zero setup. It’s a single Rust binary that uses MacOS’s native virtualization framework (via Objc2) to create a Debian-based VM. You get fine-grained control over what gets mounted from your host machine into the VM, so you can sandbox your LLM agent properly.

The main magic happens in src/main.rs. That’s where the VM configuration and mounts get set up. Default mounts include handy paths like .cargo, .m2, and .git, but you can override these with the --no-default-mounts flag or add custom mounts with --mount.

The whole thing is packaged with cargo, and there’s even a build.rs script to handle some custom build-time configuration. No bloated dependencies, no unnecessary abstractions—just ~1200 lines of Rust doing its job.

Real-World Use

Let’s say you’re testing out a sketchy LLM agent that wants to install Python packages, run git, and maybe download the entire internet. Instead of giving it free rein on your laptop, you run:

Now the agent has its own little Linux playground. It can’t touch anything you didn’t explicitly share, and if it breaks something, you just nuke the VM and start fresh. Bonus: because the VM boots in ~10 seconds, it’s faster than setting up a Docker image with the same level of isolation.

The Bottom Line

vibe is simple, fast, and effective. If you’re running LLM agents or any untrusted code, this is a no-brainer. It’s not a replacement for production-grade security, but for devs who just want a safer sandbox, it’s perfect. Plus, no emoji in the codebase—thank God.