One-click isolated deployment for OpenClaw — a personal AI assistant running securely inside a QEMU virtual machine.
Think of it as an aquaculture facility for your OpenClaw: a contained environment that keeps your OpenClaw thriving without damaging your furniture (main system). With 1,000+ known vulnerabilities — including 4+ critical ones enabling potential remote code execution — isolation is essential.
| Platform | Download |
|---|---|
| Windows | QemuClaw-Setup-1.0.4.exe (includes QEMU + 7-Zip) |
| macOS | QemuClaw-1.0.4.dmg |
| Linux | QemuClaw-1.0.4-linux.AppImage |
| Linux (deb) | QemuClaw-1.0.4-linux.deb |
Download OpenClaw VM Image (vm-headless-25477445209)
Windows: Download and run the .exe installer. QEMU and 7-Zip are bundled — no extra setup.
macOS: Install QEMU first (brew install qemu), then open the .dmg.
Linux: Install QEMU first (sudo apt install qemu-system-x86), then run the .AppImage or install the .deb.
On first launch, the app will:
- Ask you to locate QEMU if it's not bundled or found automatically
- Show a setup wizard for VM resources (memory, CPU, shared folder)
- Download the VM image if not already present
- Boot the VM headless — a status window shows boot progress
- Open the terminal for OpenClaw onboarding setup
- After setup, access OpenClaw via the Web UI (system tray > Open Web UI)
The app runs in the system tray. Right-click the tray icon for all options.
| The icon in system tray |
|---|
If you prefer to run QEMU directly:
- Install QEMU
- Download the VM image from the releases page (
.qcow2file, or.tar.gz.*split files) - If split files:
cat *.tar.gz.* | tar xvfz - - Start the VM:
qemu-system-x86_64 -m 2G -smp 2 \ -drive file=./openclaw-headless-compressed.qcow2,format=qcow2
- Login with username
nodeand passwordopenclaw - Run
cd /app && node dist/index.js onboard
git clone https://github.com/NewJerseyStyle/QemuClaw.git
cd QemuClaw
npm install
npm startRequirements for development:
- Node.js 18+
- QEMU installed and on PATH (or set path in the app on first launch)
- 7-Zip installed (for VM image extraction on Windows)
If you run a local LLM provider on your host machine, the VM can access it via the hostname host.local (resolves to 10.0.2.2, the QEMU user-mode networking gateway to the host).
| Host service | URL from inside the VM |
|---|---|
Ollama (localhost:11434) |
http://host.local:11434 |
LM Studio (localhost:1234) |
http://host.local:1234 |
| Any host service on port N | http://host.local:N |
During OpenClaw onboarding, when asked for an API endpoint, use http://host.local:<port> instead of http://localhost:<port>.
QemuClaw (Electron app)
|
|-- QEMU (headless, -display none)
| |-- Serial console (TCP) --> xterm.js terminal in app
| |-- QMP control (TCP) --> graceful shutdown, status
| |-- Port forwarding --> localhost:18789 (OpenClaw Web UI)
| \-- Shared folder --> SMB (Windows) / 9p (Linux/macOS)
|
\-- System tray
|-- Open Web UI
|-- Open Terminal
|-- Update OpenClaw
|-- Restart VM
|-- Settings
\-- Quit
MIT
- 🙏 Thank you to Arthur for valuable support and assistance.
- 🙌 Thanks Hong Kong School of AI ⓕ for getting this project off to a strong start.
- 💖 Grateful to OpenClaw for the impressive personal AI assistant.
- 🌟 Thanks to the Alpine Community for providing a handy Docker image.
- 🤗 Appreciation to QEMU for the amazing virtualization technology.
- 👉 A nod to 7-zip for a powerful utility.