EXO
A Mac app that finds the other Macs on your network by itself and splits a model across them, layer by layer or with every layer shared, including over Thunderbolt 5 with RDMA.
- Mac: Yes
- NVIDIA PC: Partly
- AMD PC: No
- Linux, processor only: Partly
- Raspberry Pi and boards: No
- Windows: No
- Android: No
- iPhone, iPad: No
At a glance
- Best for
- Two or more Apple silicon Macs, best of all Mac Studios or Mac minis joined by Thunderbolt 5 cables, when you want big models with almost no setup.
- Runs on
- Fully tested only on Apple silicon Macs. On Linux it runs on the processor, which its makers call very slow; NVIDIA support is being built and only works from source. A Mac and a Linux machine can't join the same EXO cluster, because they run different builds, so a Mac plus a gaming PC isn't possible with EXO today.
- How it splits a model
- Pipeline (layers in turn) or tensor (every layer shared). Tensor split needs the model's sizes to divide evenly by the number of Macs, and fast links: RDMA over Thunderbolt 5.
- Connections
- Wi-Fi or Ethernet for discovery and pipeline split; Thunderbolt cables preferred. RDMA needs macOS 26.2 or later on Macs with Thunderbolt 5, enabled once from macOS Recovery, a cable between every pair of Macs, and the same macOS version on all of them.
- How devices join
- Automatic: Macs on the same network find each other. Guest Wi-Fi and some office networks block this.
- Models
- MLX models from Hugging Face (mostly mlx-community), about 160 ready-made model cards, and custom models by API. Image models are experimental and off by default.
- API
- OpenAI Chat Completions and Responses, Claude Messages and Ollama compatible, at localhost:52415.
- Rules
- Every Mac must run exactly the same EXO version; updating one drops it from the cluster until the others update.
Get started
macOS
brew install --cask exoLinux
From source: uv sync --extra mlx-cpu, then uv run exo
Then:
brew install --cask exo # on every Mac, then open EXO
open http://localhost:52415 # pick a model and how to split it
Published speeds
- Qwen3-235B 8-bit on 1, 2 and 4 Mac Studios (M3 Ultra, 512 GB), tensor split over RDMA: 19.5, 26.2 and 31.9 tokens per second. Source
- Kimi K2 Thinking (native 4-bit) on 2 and 4 Mac Studios: 21.6 and 28.3 tokens per second. Source
- Llama 3.1 8B, 8,192-token prompt and 32-token answer: 6.42 s on a Mac Studio alone, 2.32 s with a DGX Spark reading the prompt (research build, Oct 2025). All of the gain is in the wait before the first word. Source
Limits to know
- No new release since v1.0.71 in April 2026, although the code changes daily; newer models and fixes need a source build.
- Macs only in practice: Linux runs on the processor and can't join Macs.
- The DGX Spark + Mac Studio prefill split from EXO's blog isn't possible in the public build.
- RDMA setup is done in macOS Recovery on each Mac.
Example clusters it suits
Estimates come from published hardware specs and our open formulas, not from running the model on your machine. Real speed varies with runtime, drivers and settings. Numbers marked “Measured” come from a linked benchmark.