A high-performance network proxy connecting virtual machines to the
macOS vmnet network without running the VM process as root or requiring
the com.apple.vm.networking entitlement.
On macOS 15 and earlier, the helper requires root only to start the vmnet interface, then immediately drops privileges and runs as the unprivileged user. On macOS 26 and later, root is not required at all.
Tip
On macOS 26 and later, consider using vmnet-broker for native vmnet networking — up to 9 times faster than vmnet-helper. vmnet-helper is the first VM tool to support vmnet-broker. See the architecture guide for details.
Install using Homebrew:
brew tap nirs/vmnet-helper
brew install vmnet-helperTo install the latest version run:
curl -fsSL https://github.com/nirs/vmnet-helper/releases/latest/download/install.sh | bashYou can download the install script for inspection and run it locally.
The install script downloads the latest release and installs it at
/opt/vmnet-helper, and configures a sudoers rule to allow running
vmnet-helper without a password. See sudoers.d for more info.
Note
Homebrew installation is not available for macOS 15 and earlier because vmnet-helper requires root privileges. Installing via Homebrew would allow malware to replace the executable and gain root access.
vmnet-helper is integrated and tested with the following VM drivers.
| Driver | ★ | Description |
|---|---|---|
| QEMU | 12,972 | Open-source machine emulator and virtualizer |
| vfkit | 350 | macOS VM manager wrapping Apple's Virtualization.framework |
| krunkit | 266 | macOS wrapper for libkrun |
The following projects use vmnet-helper to connect VMs to the vmnet network.
| Project | ★ | Description |
|---|---|---|
| minikube | 31,668 | Local Kubernetes for development and CI |
| renode | 2,383 | Embedded systems simulator |
| anylinuxfs | 1,153 | Mounts Linux-supported filesystems on macOS via a microVM |
| vibe | 848 | Linux VM sandbox for LLM agents on macOS |
| nerdbox | 103 | containerd sandbox runtime for libkrun VMs on macOS |
| ec1 | 5 | Go-based VM orchestration |
The following projects use libkrun's unixgram API and can work with vmnet-helper.
| Project | ★ | Description |
|---|---|---|
| microvm.nix | 2,457 | NixOS MicroVMs |
| libkrun | 1,793 | Library for running workloads in isolated VMs |
| boxlite | 1,730 | Embeddable sandboxes for AI agents using libkrun |
| libkrun-go | 47 | Go bindings for libkrun |
| Box | 36 | MicroVM runtime using libkrun |
| bux | 3 | Embedded micro-VM sandbox for AI agents using libkrun |
| krun-api | 0 | Go wrapper for libkrun |
- Integration guide
- Performance
- Examples
- Architecture
- Similar tools
- Development
- How to create a release
vmnet-helper is under the Apache 2.0 license