Hardware · Clusters · Tools

EXO

by Exo Labs · Apache-2.0 · 48,222 GitHub stars · Active · v1.0.71, Apr 2026

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.

Go to EXO Source code

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 exo

Linux

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

Measured by the project or its users, for one person chatting. Our own estimates for any set of devices are in the cluster builder.

Limits to know

Open issues worth reading:

Example clusters it suits

Sources:

All clustering tools

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.

Was this page helpful?