No technical background needed
How it works
An analogy first, then exactly what happens on your Mac when you open an app.
The analogy: a workshop behind glass
Imagine you hire a craftsperson you've never met. You wouldn't let them wander your house. You'd put them in a workshop with a glass wall. You can watch, you hand in exactly the materials they need, and you decide whether they get a phone line.
- The workshop is a small virtual computer made just for that app. It is called a virtual machine, or VM.
- The glass wall is the app's window: you can see and click, but nothing walks through it.
- You, at the door, are the launcher. It asks: "This app wants to read your Notes folder. Allow?"
- The phone line is internet access. It is off until you name the websites the app may call.
What happens when you open an app
- You click Launch.The launcher checks the app's package. Every file in it carries a fingerprint (a SHA-256 hash), and they all have to match. What you installed is what you reviewed.
- It asks you, if it needs to.The first time, a permission sheet lists what the app asks for: folders, the internet, and so on. Installing alone grants nothing. You can say no to any of it.
- A tiny VM starts for this app only.It takes about half a second. Inside is a small Linux system. The system and the programming language the app uses are read-only and shared; the app brings only its own code, often a few kilobytes.
- The window opens on your desktop.It is drawn natively, so it looks and feels like any other app, but it runs in a locked-down browser engine with no internet and no file access.
- Window and engine talk through the launcher.When you click Save, the window sends a short message. The launcher passes it into the VM, the engine does the work and answers, and the launcher passes the answer back.
- You close the app and the room is thrown away.Everything the app wrote to its temporary space is gone. Only the app's own data folder and the folders you granted are kept.
What an app can and can't do
| An app can… | …but only if you allow it, and never by default |
|---|---|
| Read or write a folder | Only folders you picked, with the access you chose (read, read and write, or write only). Other folders don't exist inside the VM. |
| Use the internet | Only the named websites you allowed. The VM has no network connection of its own, and your home network (router, printers, other computers) is always out of reach. |
| Use your screen, mouse and keyboard | Only apps built for it (like computer-use helpers), each ability granted separately. |
| Use your Mac's graphics chip | Only if the app asks, you agree, and the experimental GPU option is on. |
| Keep data between runs | Always, in one private folder of its own that no other app can see. |
You can always look. The Inspector on each app shows every message between its window and its engine, and every internet connection it tries (allowed or refused), live. Taking a permission back closes the connections it was using immediately.
Why a separate VM for each app?
You could put all your apps in one big virtual computer. That helps a little: the VM shields your Mac. But the apps inside would no longer be protected from each other, so one bad update would reach all of them, and you'd have a whole second computer to look after.
One small VM per app means a problem in one app stays in that app. Because the operating system and language runtimes are shared and read-only, there's almost nothing to maintain.
In technical terms
The VM is created with Apple's Virtualization framework, one process per app. The window is a sandboxed Chromium renderer with no Node, no network and a single API, window.vmapp. Messages are JSON lines over a Unix socket bridged into the VM over vsock. File access is enforced by the hypervisor's share flags, not by the app. The VM has no network device; connections go through an allowlist proxy on the host that resolves names itself and refuses private addresses. Details: Architecture.
What it does not do
- It can't make a harmful app harmless once you've given it something. If you grant a folder and a website, the app can send that folder's files there. The launcher warns you about that combination in words.
- It is not stronger than a web browser against attacks on the browser engine itself. The window uses the same engine.
- It protects you from apps. It does not hide an app maker's code from you.
The full list is on the Security page.