nvx README

The project's README from github.com/microsoft/nvx. As one markdown file: README.md.

NVX: An Ultra-Light Micro-VM Sandbox

NVX is an ultra-light micro-VM sandbox for running untrusted workloads with hardware-enforced isolation. It is built on top of OpenVMM and runs Linux as a guest.

NVX was jointly developed by the MSR Systems Research Group and Azure Research - Systems, building on research results from the Nanvix system.

This repository includes version pins for Linux and OpenVMM, along with the patches, guest source files, build tools, and benchmarks needed to use NVX.

Quick Start

Python 3.10 or newer is required. The commands below download the latest NVX release for the selected platform, so no local build is required. A successful boot prints NVX-GUEST-BOOT-OK: alpine and opens a root shell. Select Ubuntu userland with the same NVX kernel by passing --guest ubuntu.

Exit cleanly from the guest with /sbin/nvx-exit 0. See the setup and run guides for detailed prerequisites and runtime options.

ℹ️ For direct OpenVMM integration without the scripts/nvx.py runtime harness, see Run OpenVMM directly.

Linux / KVM

Requires KVM configured with read/write access to /dev/kvm.

git clone https://github.com/microsoft/nvx.git && cd nvx
python3 scripts/nvx.py download
python3 scripts/nvx.py run

Linux / MSHV

Requires MSHV configured with read/write access to /dev/mshv.

git clone https://github.com/microsoft/nvx.git && cd nvx
python3 scripts/nvx.py download --hypervisor mshv
python3 scripts/nvx.py run --hypervisor mshv

Windows / WHP

Requires Windows Hypervisor Platform enabled.

git clone https://github.com/microsoft/nvx.git; Set-Location nvx
python scripts\nvx.py download
python scripts\nvx.py run

Documentation

Usage

Development

nvx (microsoft/nvx)

sandboxing
Searching Database…

404 ·GitHub
What is this?NVX is an ultra-light micro-VM sandbox for running untrusted workloads with hardware-enforced isolation, built on OpenVMM and running Linux as the guest OS.
Is this a library I import, or a standalone tool?It is a command-line runtime harness (scripts/nvx.py) that boots and manages micro-VMs, not a library you import into your own code; there is also a path to drive OpenVMM directly without the harness.
How do I get a sandbox running?Install Python 3.10 or newer, then run the quick-start commands for your platform; they download the latest NVX release so no local build is needed, and a successful boot prints the boot-OK message and opens a root shell.
What hypervisor do I need already set up on my machine?You need a hypervisor enabled on your OS: KVM with read/write access to /dev/kvm on Linux, MSHV on Linux, or Windows Hypervisor Platform (WHP) enabled on Windows.
What's the main pitfall when getting NVX to boot?Each backend has its own prerequisite that must already be in place — e.g. the right read/write permissions on /dev/mshv for MSHV, or WHP switched on in Windows — otherwise the micro-VM won't start.
Who is this built for?It targets engineers and researchers who need hardware-isolated sandboxes for running untrusted or agent-generated code, such as agentic coding workloads.
Can I choose a different guest OS than the default?Yes, NVX boots an Alpine Linux guest by default, and you can switch to an Ubuntu userland with the same NVX kernel by passing --guest ubuntu.
What is OpenVMM and why does NVX depend on it?OpenVMM is the hypervisor runtime NVX is built on top of; the repo pins specific Linux and OpenVMM versions and adds the patches, guest sources, build tools, and benchmarks needed to run them together as NVX.
Does the project test its own sandbox isolation?Yes, it documents 'Copilot-driven adversarial testing' — bounded adaptive stress and containment campaigns used to probe the robustness of the sandbox's isolation.
What are similar projects?coop, smolvm, CubeSandbox, brig, quicksand, ProxmoxVE, agentbox, qemu
Creator
microsoft
Size
32.9 MB
Stars
404
Updated
CommitOct 16
Age
1mo
Commits · 90 Days