<!-- https://tuna-nope.github.io/macbox/ — the HTML page is the canonical version -->

macbox

# Give your agents a Mac.

macOS, Xcode and real iPhone simulators at up to 120 fps, on your Linux machine and its own GPU. Your coding agent builds the app, taps through it and checks it for itself.

[Get started](#get-started) [View on GitHub](https://github.com/TUNA-NOPE/macbox)

Works with

- Claude Code
- Codex
- T3 Code

![The macOS 26 desktop in macbox on Linux: Simulator.app shows an iPhone 17 Pro running Nimbus, a weather app, next to Nimbus's website in Safari](https://tuna-nope.github.io/macbox/images/desk-1600.jpg)

The full, uncropped screen of macOS 26 in macbox, running on Linux with an Intel integrated GPU. Nimbus is a demo app built for this page.

## Let your agent set it up.

macbox is written so an agent can do the whole install, the clicks in macOS's setup screens included. Paste this into Claude Code, Codex or T3 Code:

```sh
Set up macbox on this machine: https://github.com/TUNA-NOPE/macbox. Follow its AGENTS.md and ask me before changing the host.
```

It asks before it installs anything on the host, and needs two things from you: a macOS password, which you type into the VM's screen, and the Xcode download from Apple, which needs your Apple Account. Plan on an afternoon, mostly downloads and builds.

### You'll need

- Linux on an x86-64 CPU with KVM and AVX2
- An Intel or AMD GPU with Mesa's Vulkan driver
- 16 GB of RAM and about 150 GB free on an SSD
- Docker (rootless is fine) or Podman

macbox runs macOS 26 and iOS 26 simulators: the last versions Apple makes for Intel. NVIDIA isn't packaged yet, and AMD is supported upstream but untested here.

### Or do it yourself

```sh
git clone https://github.com/TUNA-NOPE/macbox && cd macbox
./macbox init      # config and an SSH key
./macbox doctor    # checks KVM, the GPU, Docker, disk
./macbox build     # the GPU stack (20 to 60 min)
./macbox create    # a VM; macOS downloads from Apple
./macbox up        # the screen: http://127.0.0.1:6081/
./macbox next      # what's done, and the next step
```

`./macbox next` always says what's done and what's next. [The full walkthrough](https://github.com/TUNA-NOPE/macbox/blob/main/docs/setup.md)

### Already have macbox? Update it

Paste this into your agent. It pulls the new version, rebuilds what changed, and asks before it restarts the VM:

```sh
Update macbox on this machine to the latest version: https://github.com/TUNA-NOPE/macbox. Follow the "Updating" section of its AGENTS.md and ask me before you restart the VM or change the host.
```

By hand: [docs/setup.md, Updating](https://github.com/TUNA-NOPE/macbox/blob/main/docs/setup.md#updating).
