Blog · AI

Exo by EXO Labs: Connect Your Macs into an AI Cluster

How exo pools the memory of several Apple silicon Macs to run models too big for one machine: install, dashboard and API, RDMA over Thunderbolt 5, and planning a cluster.

Exo, from EXO Labs, is open-source software that connects your Macs into one AI cluster, so you can run models that are too big for a single machine. This guide explains how exo works on Apple silicon, how to install it, and how to plan a cluster of cloud Macs for it.

What exo is

In the project's own words, "exo connects all your devices into an AI cluster." It lets you run models larger than would fit in one device's memory, and it can make models run faster as you add devices. Exo is released under the Apache-2.0 licence and developed in the open on GitHub. EXO Labs is the company behind it.

On a Mac, exo uses the GPU. It uses Apple's MLX as the inference backend and MLX distributed for communication between machines. Models come from the Hugging Face hub. If you have used mlx-lm on one Mac, exo is the step that spreads that work over several.

How exo turns several Macs into one AI cluster

  • Automatic discovery. Devices running exo find each other with no manual configuration. To keep separate clusters apart on the same network, set the EXO_LIBP2P_NAMESPACE environment variable.
  • Topology-aware placement. Exo looks at each device's resources and at the latency and bandwidth of every link, then decides how to split the model across the cluster.
  • Tensor parallelism. Exo can shard a model across devices. The project reports up to 1.8x speedup on 2 devices and 3.2x on 4 devices; your results depend on the model, the Macs and the links between them.
  • RDMA over Thunderbolt 5. On macOS 26.2 or later, exo supports RDMA between Macs connected by Thunderbolt 5, which the project says cuts latency between devices by 99%.

The practical effect is memory. A cluster pools the unified memory of every Mac in it, so four Macs with 96GB each give you roughly 384GB to place model weights in, minus what macOS and each process need.

Requirements

  • Apple silicon Macs. The exo macOS app requires macOS Tahoe 26.2 or later.
  • The Macs must be able to reach each other on the network. For RDMA, each Mac must be cabled to every other Mac in the cluster with Thunderbolt 5 cables.
  • Matching software. For RDMA, the macOS version must match exactly on every Mac, including beta numbers. It is good practice to run the same exo build everywhere too.
  • Linux is supported from source, but at the time of writing exo runs on the CPU there; GPU support on Linux is still in development.

Install exo on a Mac

The quickest route is the macOS app. Download EXO-latest.dmg from the Exo README, or install it with Homebrew:

brew install --cask exo

On first launch the app asks for permission to change system settings and install a network profile. Install it on every Mac you want in the cluster.

To run from source instead, install Xcode (for the Metal toolchain MLX uses), Homebrew, uv, Node.js and nightly Rust, then build the dashboard and start Exo:

brew install uv node
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup toolchain install nightly

git clone https://github.com/exo-explore/exo
cd exo/dashboard && npm install && npm run build && cd ..
uv run exo

Check the README before you copy these: build steps change between releases, and it lists extra tools (such as a pinned macmon build) for some setups.

Use the dashboard and the API

Exo serves its dashboard and API on port 52415, at http://localhost:52415/. The dashboard shows the devices in your cluster and lets you chat with a model. The API is compatible with the OpenAI Chat Completions API, the Claude Messages API, the OpenAI Responses API and the Ollama API, so most existing clients and agents work by pointing them at exo:

curl http://localhost:52415/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model": "MODEL_ID", "messages": [{"role": "user", "content": "Hello"}]}'

Replace MODEL_ID with a model you have launched from the dashboard. Custom models that need trust_remote_code are off by default, for security, and must be enabled explicitly.

Turn on RDMA over Thunderbolt 5

RDMA is optional, but it is where exo gets most of its multi-Mac speed. Per the README, on each Mac:

  1. Shut down the Mac, then hold the power button for 10 seconds until the boot menu appears.
  2. Choose Options to enter Recovery mode, and open Terminal from the Utilities menu.
  3. Run rdma_ctl enable, then restart.

A few caveats from the project: the cables must support Thunderbolt 5, every Mac must be connected to every other Mac, and on a Mac Studio you can't use the Thunderbolt 5 port next to the Ethernet port. If you run from source, the README points to a script that switches off Thunderbolt Bridge and sets DHCP on each RDMA port.

What the benchmarks show

The exo README features a four-Mac Studio cluster (M3 Ultra, 512GB each) running DeepSeek V3.1 at 8-bit and Kimi K2 Thinking at 4-bit, with RDMA. On its blog, EXO Labs also paired an NVIDIA DGX Spark with an M3 Ultra Mac Studio over 10 GbE: the Spark handled prompt processing and the Mac handled generation, for a 2.8x end-to-end speedup over the Mac Studio alone on Llama 3.1 8B. Treat these as the project's own results on its own hardware.

Plan an Exo cluster with cloud Macs

You don't need to buy four Mac Studios to try exo. With Hatmac you can rent several dedicated Macs and connect them yourself:

  • Size by memory. As a rough guide, a 4-bit model needs about 0.5–0.7GB per billion parameters plus room for context. Add up the unified memory across your nodes, then leave headroom on each.
  • Mix machines. Hatmac's cluster configurator lets you choose 4 to 10 nodes and pick a different Mac for each one, on one invoice with one renewal date.
  • Talk to us about the network. exo needs the Macs to reach each other, and RDMA needs direct Thunderbolt 5 cabling between every pair. Tell us you plan to run exo when you order, or contact us first, so we can discuss how your Macs are placed and connected.
  • Start small. Two Macs are enough to learn how exo splits a model. See how to set up a Mac mini cluster and how much memory local LLMs need.

Mac mini M5 Pro

24GB · 512GB SSD

Pro-class CPU and GPU for heavy builds and small models.

from $399/mo

  • 6 months$429/mo
  • 12 months$399/mo
Order Mac mini M5 Pro

Mac Studio M5 Max

36GB · 512GB SSD

High GPU throughput for ML, rendering and parallel CI.

from $599/mo

  • 6 months$699/mo
  • 12 months$599/mo
Order Mac Studio M5 Max

Mac Studio M5 Ultra

For AI

96GB · 1TB SSD

96GB unified memory for large local LLMs and fine-tuning.

from $1,299/mo

  • 6 months$1,399/mo
  • 12 months$1,299/mo
Order Mac Studio M5 Ultra

Prices in USD per month for each machine's starting configuration. More memory, storage or several machines? Ask us.

FAQ

Is exo free?

Yes. Exo is open source under the Apache-2.0 licence.

Do I need Thunderbolt 5 to use exo?

No. Devices discover each other on the network without it. Thunderbolt 5 with RDMA is what the project uses for its fastest multi-Mac results.

Which macOS version do I need?

The exo macOS app requires macOS Tahoe 26.2 or later, and RDMA is a capability added in macOS 26.2.

Can my existing tools talk to exo?

Usually, yes. Exo's API is compatible with the OpenAI Chat Completions and Responses APIs, the Claude Messages API and the Ollama API, on port 52415.

exoEXO LabsAI clusterMLXMac StudioRDMAThunderbolt 5local LLM