How jamesstringer90/appsandbox works
App Sandbox runs desktop VMs on Windows and macOS through either a native GUI or a local headless API. Users choose a guest OS and installer or restore image; the platform provisions a disk, performs unattended installation, and starts the VM. The core also supports snapshots, branches, templates (Windows), and VM configuration. Guest integration supplies display, GPU, audio, clipboard, input, and SSH capabilities. The README documents several subsystems whose implementation was not sampled, so their connections are shown only where documented; platform-specific details may be incomplete.
Main entry points: asb_core.c Windows Core · asb_transport.c Shared Transport · ui.c Native GUI · headless.c Headless API
Components 23
User Interfaces
- Native GUI
src/app_win/ui.c - Web UI
web/app.js - macOS UI
src/app_mac/MainWindowController.h - Headless API
src/app_win/headless.c - Python SDK
tools/headless-api/asb.py
VM Lifecycle
- Core Protocol
src/core/protocol.h - Windows Core
src/backend_win/asb_core.c - macOS Core
src/backend_mac/asb_core_mac.h - Disk Provisioning
tools/iso-patch/iso-patch.c - Snapshots
src/backend_win/snapshot.c
Host Platforms
- Windows VM
src/backend_win/hcs_vm.c - Host Networking
src/backend_win/hcn_network.c - macOS VM
src/backend_mac/vz_vm.h
Guest Integration
- Shared Transport
tools/transport/asb_transport.c - Windows Agent
tools/agent/agent.c - Linux Agent
tools/linux/agent/appsandbox-agent.c - Virtual Display
src/backend_win/vm_display.c - GPU Paravirtualization
src/backend_win/d3dlayers.c - Virtual Audio
tools/vad/adapter.cpp - SSH Proxy
src/backend_win/vm_ssh_proxy.c
Other components
- User
- Host OS
- Guest OS
Connections 26
- User → Native GUI: operates
- User → Python SDK: scripts
- Native GUI → Web UI: hosts
- Web UI → Core Protocol: sends commands
- Headless API → Core Protocol: serves commands
- Python SDK → Headless API: HTTP requests
- Native GUI → Windows Core: drives VMs
- Headless API → Windows Core: drives VMs
- macOS UI → macOS Core: drives VMs
- Windows Core → Disk Provisioning: provisions disks
- Windows Core → Windows VM: creates and runs
- Windows Core → Host Networking: configures networking
- Windows Core → Snapshots: manages snapshots
- macOS Core → macOS VM: creates and runs
- Windows VM → Shared Transport: uses guest channel
- macOS VM → Shared Transport: uses guest channel
- Shared Transport → Windows Agent: dispatches messages
- Shared Transport → Linux Agent: dispatches messages
- Windows Core → Virtual Display: configures display
- Windows Core → GPU Paravirtualization: configures GPU sharing
- Host OS → GPU Paravirtualization: shares GPU
- Host OS → Virtual Audio: hosts audio device
- Windows Agent → Guest OS: integrates guest
- Linux Agent → Guest OS: integrates guest
- Windows Core → SSH Proxy: proxies SSH
- SSH Proxy → Guest OS: connects to