# WarpBuild Documentation Base URL: https://www.warpbuild.com/docs # macOS Sandboxes URL: https://www.warpbuild.com/docs/ci/sandboxes Description: Create resumable macOS 26 sandboxes with the wb CLI --- title: "macOS Sandboxes" excerpt: "macOS VMs you can create, use and pause from the command line" description: "Create resumable macOS 26 sandboxes with the wb CLI" icon: Laptop createdAt: "2026-10-27" updatedAt: "2026-10-27" --- A macOS sandbox is a macOS 26 virtual machine you can manage from the command line with the `wb` CLI. You can run commands in it, copy files in and out, and open an interactive shell. Pausing a sandbox saves its disk and stops it. Resuming starts a new VM from that disk, so your files and the tools you installed are still there. Sandboxes get the same full macOS 26 image as the [macOS 26 runners](/docs/ci/cloud-runners#macos-26-tooling), with Xcode and the same suite of preinstalled tools. ## Quick start 1. Install the `wb` CLI on macOS or Linux: ```bash curl -fsSL https://packages.warpbuild.com/wb-cli/install.sh | bash ``` 2. Create an [API key](/docs/ci/api-keys) with the **CI** scope and export it: ```bash export WB_TOKEN=wkey-... ``` 3. Create a sandbox. `wb` waits until it is ready: ```bash wb sbx create demo ``` A name must be unique among your organization's live sandboxes. 4. Run commands, copy files in and out, or open a shell: ```bash wb sbx exec demo sw_vers wb sbx fs put demo ./app.zip app.zip wb sbx exec demo unzip app.zip wb sbx fs cat demo build.log > build.log wb sbx pty create demo ``` 5. Pause the sandbox when you're done and resume it later. Kill it when you no longer need it: ```bash wb sbx pause demo wb sbx resume demo wb sbx kill demo --yes ``` ## Runner labels and pricing | Runner label | vCPU | Memory | Disk | Price | | ---------------------------------- | ---- | ------ | ----- | ------------ | | `warp-macos-26-arm64-6x` (default) | 6 | 14 GB | 60 GB | $0.08/minute | | `warp-macos-26-arm64-12x` | 12 | 28 GB | 60 GB | $0.16/minute | Sandboxes run on the macOS 26 labels of the [macOS M4 Pro runners](/docs/ci/cloud-runners#macos-m4-pro-on-arm64). Pass one with `--runner-label` when you create the sandbox, for example `wb sbx create demo --runner-label warp-macos-26-arm64-12x`. A sandbox keeps its runner label when you resume it. A running sandbox is billed per second at the macOS 26 runner rate. A paused sandbox has no compute charge. ### Saved disks Each pause compresses the sandbox's disk and save it to WarpBuild cache, billed at [cache pricing](/docs/ci/features/caching#pricing): $0.20 per GB-month of storage, plus $0.0001 per cache operation to save and restore it. For example, a 5 GB save kept for a week costs about $0.23. ## What persists When you resume a sandbox: - **Kept**: - home folder (`/Users/runner`) - Homebrew under `/opt/homebrew`, including packages you installed with `brew`. - **Not kept**: - `~/Library`, `~/.warpbuild`, `/tmp`, `/usr/local` and `/Applications` - running processes, memory is not persisted ## Lifetime A sandbox lasts 7 days from when you created it, running or paused. After that it is expired and can't be resumed. Check `wb sbx info ` to see when the sandbox expires. ## CLI reference Every command accepts `-f json` or `-f pretty` for the output format, and `-v` to print API calls to stderr. Output goes to stdout and messages to stderr, so `wb sbx list -f json | jq` works. Before use, you need to export your API token as `WB_TOKEN` env variable. `wb version` prints the CLI's version. `wb` checks for a new release once a day and tells you when one is available; run the install command again to update. | Command | What it does | | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | | `wb sbx create [--runner-label