
Créez facilement des machines virtuelles complètes en bac à sable pour le développement ou les modèles d'utilisation informatique.
App Sandbox est une application de machine virtuelle pour Windows et macOS, axée sur la performance et la facilité d'utilisation.
Fonctionnalités Windows :
asb.py) pour créer et piloter des VM accélérées par GPU par programmationFonctionnalités Mac :
asb.pyPrérequis : Windows 11 avec un processeur x64 ou macOS Tahoe (série M)
App Sandbox crée et exécute des machines virtuelles de bureau complètes — Windows 11, Ubuntu et
macOS. Il est gratuit et open-source (MIT), distribué sous forme de binaires précompilés (signés EV sur
Windows, signés Apple Developer sur macOS) sur sa page
Releases. Il se pilote de deux
manières : depuis une interface graphique, ou par programmation via un démon headless avec un
SDK Python sans dépendances (asb.py). Dans les deux cas, vous choisissez un OS, le pointez vers une image
d'installation, et App Sandbox provisionne le disque, exécute une installation sans surveillance et démarre
l'invité. Vous fournissez un ISO Windows ou Ubuntu ; les invités macOS téléchargent leur image de restauration
automatiquement. Il fonctionne sur un PC Windows 11 (x64) ou un Mac Apple Silicon, y compris les ordinateurs portables.
Fonctionne sur Windows 11 Famille, sans Hyper-V. Sur Windows, App Sandbox n'utilise pas Hyper-V ni Hyper-V Manager ; il crée et exécute des VM via les API Windows Host Compute System (HCS) et Host Compute Network (HCN), qui ne nécessitent que la fonctionnalité Virtual Machine Platform. Hyper-V est limité à Windows 11 Pro et Enterprise, tandis que Virtual Machine Platform est disponible sur Windows 11 Famille, donc une licence Windows 11 Pro n'est pas requise. Virtual Machine Platform est la même fonctionnalité Windows que celle utilisée par WSL2.
Ce à quoi il peut servir :
API headless.
appsandbox.exe --headless
(ou sudo /Appsandbox.app/Contents/MacOS/AppSandbox --headless sur macOS) démarre un
démon à propriétaire unique qui héberge le même cœur que l'interface graphique et l'expose comme une API HTTP/JSON
locale de style Docker sur 127.0.0.1, identique sur les deux plateformes. Le SDK Python utilisant uniquement la bibliothèque standard
(asb.py) l'enveloppe : créez des VM accélérées par GPU (GPU-PV est une option de création gpuMode), connectez-vous en SSH
via une clé déployée automatiquement (invités Windows, Ubuntu ou macOS), prenez des instantanés et créez des branches,
ouvrez l'affichage en direct, et exécutez-en plusieurs à la fois — le nombre d'exécutions simultanées est limité par le CPU, la RAM et la mémoire GPU de l'hôte,
et non par une limite fixe. Le démon est mono-hôte — il pilote des VM sur la machine sur laquelle il s'exécute et ne provisionne pas de VM cloud ;
pour la CI, exécutez-le sur un runner auto-hébergé. Le provisionnement d'une VM exécute une installation sans surveillance complète ; les instantanés, branches et modèles
(Windows uniquement) démarrent une nouvelle VM à partir d'un état provisionné au lieu de réinstaller. Une VM persiste
jusqu'à sa suppression. Un instantané est un point de contrôle de l'état du disque pris avec la VM arrêtée, et une branche
forke un disque inscriptible à partir de celui-ci pour exécuter des actions divergentes. La référence complète de l'API et des exemples exécutables
se trouvent dans tools/headless-api/.
Comment ça marche : ce dépôt vise aussi à être un exemple fonctionnel de création de VM de bureau complètes
par programmation avec les API Windows HCS/HCN et le Virtualization.framework d'Apple. Sur
Windows, App Sandbox soumet un document de machine HCS construit à la main à computecore.dll /
computenetwork.dll — la couche HCS/HCN qui sous-tend également WSL2 et Windows Sandbox —
plutôt que de passer par Hyper-V Manager. L'accélération GPU utilise la paravirtualisation GPU
(GPU-PV) pour partager le GPU installé de l'hôte avec l'invité — le même chemin que WSL2, et non un
passthrough dédié (pas de VFIO/IOMMU, pas de second GPU). Les invités Windows obtiennent DirectX 12, OpenGL,
Vulkan, CUDA et OpenCL ; les invités Ubuntu la même chose moins DirectX ; les invités macOS Metal. Un pilote d'affichage indirect
IddCx personnalisé et un périphérique audio virtuel transportent l'écran et le son, et
le presse-papiers, l'audio, les entrées et le SSH entre invité et hôte passent par des sockets Hyper-V. Les disques des invités sont
construits par un outil du dépôt avec prise en charge de ext4, squashfs, qcow2 et VHDX. Sur macOS, App
Sandbox utilise le Virtualization.framework d'Apple (VZVirtualMachine, VZMacOSInstaller)
via virtio-vsock. Sur Windows, les invités Linux (Ubuntu) accèdent au GPU via un module noyau DRM/KMS personnalisé
(asb_drm), le dxgkrnl de WSL2 de Microsoft, et une compilation Mesa personnalisée. Les
applications sont en C / Objective-C natif avec une interface HTML/JS (WebView2 sur Windows, WKWebView sur macOS).
Le nom d'utilisateur par défaut est user et le mot de passe par défaut est test123
[Windows] Activer les raccourcis clavier ou couper le son de la VM : connectez-vous à la VM et faites un clic droit sur la barre de titre de la connexion
[Windows] Besoin d'un bureau à distance haute performance pour accéder à votre VM à distance ? Phaze fonctionne bien
[Windows] Vous pouvez vérifier si la configuration du pilote GPU-PV fonctionne en exécutant gpu-test.exe dans votre VM Windows App Sandbox, gpu-test.exe affichera une fenêtre avec 6 cubes en rotation, chacun utilisant un moteur de rendu différent (D3D9, D3D10, D3D11, D3D12, OpenGL et Vulkan). Si un ou plusieurs échouent, ils n'afficheront pas correctement un cube en rotation pour cette API de rendu. gpu-test.zip. Remarque : le succès de l'API de rendu signifie que le GPU-PV a fonctionné, mais parfois les jeux ou applications sont codés de telle manière qu'ils ne détecteront pas correctement le système GPU-PV et afficheront quand même une erreur.
Merci de partager des correctifs et des idées ! Les pull requests, y compris les modifications assistées par IA depuis votre propre fork, sont les bienvenues en tant que suggestions. Elles ont peu de chances d'être formellement examinées ou fusionnées, mais les contributions qui aident à façonner un changement seront créditées. Voir les directives de contribution pour plus de détails.
AppSandbox est sous licence MIT License — Copyright (c) 2026 James Stringer.
Il intègre des composants tiers qui ne sont pas couverts par la licence MIT et
conservent leurs propres conditions — notamment le pilote GPU dxgkrnl de Microsoft WSL2
(GPL-2.0) et le décodeur XZ intégré (0BSD). Voir
THIRD-PARTY-NOTICES.md pour la liste complète. Le module noyau DRM Linux
propre à AppSandbox (tools/linux/asb_drm/) est sous double licence MIT OR
GPL-2.0 afin de pouvoir résoudre les symboles GPL-only du noyau.
Au-delà de ma propre expérience de création d'Easy-GPU-PV, j'ai trouvé NanaBox une ressource vraiment utile pour comprendre HCS.
James Stringer — auteur d'Easy-GPU-PV.