Sulat.com / Writing on AISaturday, November 14, 2026
Agent Engineering/14 November 2026

agent-desktop adds sandboxes, giving agents their own macOS VM

Vercel Labs' agent-desktop now documents a sandbox command that builds and drives a local macOS VM for an agent. Lahfir announced it on X on 13 November; the 1.2.0 release notes don't list it.

A robotic hand taps a desktop window inside a glowing glass cube, beside a large glossy black 3D Vercel triangle logo on a white desk.

At a glance

  • Vercel Labs' agent-desktop has a sandbox command that installs, creates, starts and drives a local macOS virtual machine, according to the project's docs.
  • Lahfir, a member of technical staff at Vercel Labs per their X profile, announced on 13 November that agents can run in their own macOS VM or in a remote Sandbox.
  • The remote option is Vercel Sandbox, a hosted Linux microVM that the Vercel SDK creates and drives; the agent-desktop sandbox commands manage only the local macOS VM.
  • The first VM needs a person at the guest desktop to turn on Remote Login and allow Accessibility for sshd-keygen-wrapper; clones of that VM start headless.
  • The docs say each VM separates the disk and desktop but shares one virtual network with the host and other sandboxes, so untrusted code belongs on a separate machine or a hosted sandbox.

Vercel Labs’ open-source tool agent-desktop now has a sandbox command that installs, creates, starts and drives a macOS virtual machine for an agent, according to its sandbox docs. The VM gives the agent its own desktop, so it can click through apps without touching yours.

Lahfir, a member of technical staff at Vercel Labs according to their X profile, announced the feature on 13 November. They said agents can now install, create, start and drive their own macOS VM, or run in a remote Sandbox.

agent-desktop is a command-line tool and C library under the Apache-2.0 licence. It reads desktop apps through the operating system’s accessibility tree, the structured list of buttons, fields and menus that screen readers use, and returns JSON with a reference for every element an agent can act on. The README lists support for macOS, Windows and Linux.

Two sandboxes, two drivers

The docs say the agent-desktop sandbox commands manage local macOS VMs through a provider called macos. Linux and Windows have no local provider. The remote option in the announcement is Vercel Sandbox, a hosted Linux microVM that the Vercel SDK creates and drives instead.

Two sandbox options: a local macOS VM on an Apple Silicon Mac, and a hosted Vercel Sandbox driven by the Vercel SDK.
The sandbox commands manage only the local macOS VM; Vercel Sandbox runs through its own SDK.

For Vercel Sandbox, the docs have you build an image once with a desktop session (Xvfb, D-Bus and AT-SPI), the agent-desktop Linux binary and a wrapper called agent-desktop-run. A new sandbox starts with no X server and no accessibility bus, the docs say, so every command goes through that wrapper, which starts the session when it’s missing.

Building the macOS VM

The local provider needs an Apple Silicon Mac on macOS 13 or later, plus Xcode Command Line Tools for the Swift compiler. On an Intel Mac, sandbox install macos reports unavailable. The docs give this order of commands.

CommandWhat it does
sandbox install macosCompiles and signs the VM host
sandbox create base --provider macos --set ipsw=latestDownloads and installs the newest macOS this Mac can install
sandbox start baseOpens a window for the one-time setup
sandbox create work --provider macos --set from=baseClones the set-up VM; the source must be stopped
sandbox start workStarts the clone headless; --window shows its desktop
sandbox exec work -- snapshot --app Finder -iRuns agent-desktop inside the guest
Commands as the agent-desktop docs list them, each run as agent-desktop sandbox ....

The first VM needs a person at its desktop. In the guest, they run guest-setup.sh from the shared folder, turn on Remote Login under System Settings, and allow sshd-keygen-wrapper under Accessibility. The docs say agent-desktop can’t do either step from outside the guest. The provider records the setup, so clones never repeat it.

Four steps: install the VM host, create the base VM, set it up once by hand, then clone it for each agent.
Only the first VM needs a person at the guest desktop; clones start headless.

The docs call cloning a set-up VM “tested end to end” and describe creating the first VM from a macOS image as experimental.

What the VM separates

Each sandbox is a separate VM with its own disk, desktop and agent-desktop state, the docs say. It doesn’t separate the network or the host. Every sandbox on a host shares one virtual network, a guest can reach the host’s network services, and guests on one host can reach each other. The docs tell readers to treat a guest as code running on their own network.

Each VM has its own disk, desktop and agent-desktop state, but shares one virtual network and can reach the host's network services.
The VM separates the desktop, not the network or the host.

Two more details sit in the same page. Accessibility is granted to sshd-keygen-wrapper, so every SSH session as the guest user can drive the guest desktop. The SSH key in the sandbox folder is the guest credential, and anyone who can read it can run commands as the guest user. The VM host runs as you, and agent-desktop doesn’t prevent a guest escape. For code you don’t trust, the docs say to use a separate machine or a hosted sandbox.

Limits and release status

macOS allows two macOS VMs running at once, and a third start fails. sandbox exec waits at most 300 seconds for one guest command. Each sandbox keeps a full macOS disk image, and sandbox rm deletes it.

The 1.2.0 release notes, published on 5 November, list an MCP server and macOS fixes but don’t mention sandboxes. The docs pages describing the sandbox commands carry an 11 November update date, and the README on the main branch lists a sandbox command.

Lahfir described the earlier manual route on 31 October: run agent-desktop inside a macOS VM that Apple’s Virtualization framework boots in a window, so the agent sees only what’s inside it.


Discover more from Sulat AI & Tech News

Subscribe to get the latest posts sent to your email.