EXPERIMENTAL LOCAL AI, BUILT WITH MLX

Local AI.
Shared power.

More intelligence from the devices you already own.

MLX Peer explores sharing AI computation between your Mac and iPhone over USB. Our goal: make useful local AI possible with fewer new hardware purchases.

One model. Two devices. Computation stays local.

Illustration of a silver MacBook and iPhone connected by one white USB-C cable, with red and purple shapes behind them.
MAC + IPHONEConnected over USB-C
DESIGNED FOR APPLE SILICON
Python + Swift + MLX + Metal + USB

THE MISSION

More intelligence.
Make more of what you own.

Useful AI should begin with the technology already in our hands. We’re exploring how a Mac and iPhone can work together to make buying more hardware less necessary.

01 / EXISTING DEVICES

Reuse before replacing.

Explore whether sharing work across devices you already own can help delay your next hardware upgrade.

02 / LOCAL COMPUTATION

Keep more AI close.

Run supported inference on nearby devices, giving people an alternative to sending every AI task to a data center.

03 / LESS MATERIAL DEMAND

Build toward less waste.

Our long-term aim is fewer unnecessary electronics purchases, less electronic waste, and less demand for new batteries and mined materials, including cobalt where it is used.

The ambition is a smaller footprint. We still need to measure energy use, battery wear, avoided purchases, and the overall environmental impact. Local computation alone does not establish an environmental benefit.

Background: Global E-waste Monitor ↗Battery materials and chemistries ↗

01 / THE ARCHITECTURE

Split the work.
Keep it local.

A language model is a sequence of layers. MLX Peer gives some of those layers to your phone, then passes intermediate results between the two devices.

INSIDE ONE INFERENCE PASS27B EXAMPLE
MACPrompt → embeddingsPython / MLX
IPHONELayers 0–11Swift / MLX · local model state
MACLayers 12–63 → next tokenThen repeat for the next token.
Each device loads only its assigned layers.

The exporter streams separate weight files for the Mac and iPhone without first allocating the entire model in memory. The Mac keeps the input embeddings and output head.

What crosses the cable? Activations: intermediate numerical results, not the entire model on every step. Each device retains its own assigned weights and model state.

02 / THE EVIDENCE

From an idea
to a measured run.

Recorded on an 18 GiB M3 Pro Mac and an iPhone 16. The results are from short developer experiments, with the original checks and limitations preserved.

MODEL IN THE EXPLORATORY RUN27B

4-bit language model, split across two physical devices.

WEIGHTS ASSIGNED TO IPHONE2.57GB

12 of the model’s 64 layers executed on the phone.

DECODE RATE IN ONE SHORT RUN3.93tok/s

After the first token; not end-to-end throughput.

03 / EXPLORE IT YOURSELF

Explore the code.
Run the experiment.

The source, experiment reports, and reproduction steps are on GitHub. Start with a small model and reference checks before trying the experimental 27B path.

  • 01Apple Silicon Mac and Python 3.12
  • 02Xcode, the Metal Toolchain, and Swift 6.3
  • 03A physical iPhone and USB connection
Read the setup guide
START WITH THE SOURCE
# Get the project
git clone https://github.com/samuelreyes982/mlx-peer.git
cd mlx-peer

# Then follow the repository guide
# for environment and device setup.

This is a source-based developer prototype. There is no App Store release yet. Model weights are downloaded separately.