Mac host
Apple silicon. macOS, Linux, and Windows guests. macOS host →
Technology
SlateVM is one product on three host operating systems. The same control plane serves people in the app and AI agents over MCP; every VM runs in its own process with its own window; and each host runs guests on its own native virtualization.
System architecture
Human actions and AI tool calls enter the same place: SlateVM’s VM manager. It owns the VM library, starts one process per running VM, and hands each guest to the host’s native engine.
flowchart TB
HUMAN["Person · SlateVM app"] --> CORE
AGENT["AI agent · any MCP client"] -->|"local channel"| MCP["MCP server · 46 tools"]
MCP --> CORE["SlateVM core · VM library + lifecycle"]
CORE --> P1["VM process + window"]
CORE --> P2["VM process + window"]
CORE --> P3["VM process + window"]
P1 --> ENG{"Host's native engine"}
P2 --> ENG
P3 --> ENG
ENG -->|"Mac"| MACE["macOS virtualization"]
ENG -->|"Windows"| WINE["Windows built-in hypervisor"]
ENG -->|"Linux"| LINE["Linux kernel hypervisor"]
Per-VM processes
A running VM is owned by its own SlateVM process. It keeps running when you close its window or quit the library, it can be opened straight from a desktop shortcut, and only SlateVM itself can talk to it.
sequenceDiagram participant You as You or your agent participant Lib as SlateVM library participant VM as VM process (one per VM) You->>Lib: Start "linux-dev" (button or start_vm) Lib->>VM: Launch the VM's own process VM-->>You: Its own window (or headless) You->>VM: Open from a desktop shortcut later VM-->>You: Same running VM, brought forward Lib-->>Lib: Quit library — VMs keep running
Apple silicon. macOS, Linux, and Windows guests. macOS host →
x64 and ARM64 PCs. Linux and Windows guests. Windows host →
x64 and ARM64. Linux and Windows guests. Linux host →
Configuration and lifecycle
Name, OS and media, CPU, memory, disk, display, and network are validated against the host before the VM bundle is created; later edits return to the same record.
sequenceDiagram participant Caller as App or AI agent participant Core as SlateVM core participant Store as VM library participant Engine as Host engine Caller->>Core: create_vm (OS, ISO, CPU, RAM, disk, network) Core->>Core: Validate against this host Core->>Store: Create the VM bundle Caller->>Core: start_vm Core->>Engine: Boot (unattended install if requested) Engine-->>Caller: Live state · screen · console Caller->>Core: set_hardware / stop_vm / delete_vm