Zero-config discovery
Laptops find each other over mDNS. Run baton app on each one and nearby peers appear in the browser dashboard.
Distributed AI system2026
One big model. Many laptops.
Runs one large language model across several laptops on the same Wi-Fi, passing activations from laptop to laptop like a relay baton.

Large language models need more memory than a single student laptop has. Cloud GPUs cost money and send data off the network, while the laptops already sitting in a classroom or lab spend most of their time idle.
Baton splits a model's layers across the laptops on the same Wi-Fi. Each laptop holds a few layers and hands its activations to the next, like a relay baton, so a group can run a model that none of them could run alone. One laptop hosts, the others accept an invite, and the cluster serves chat through a standard API.
Every part earns its place.
Laptops find each other over mDNS. Run baton app on each one and nearby peers appear in the browser dashboard.
Pick a model on one laptop, invite the others, and start once everyone accepts. The first start downloads the model.
The model is cut into contiguous layer ranges sized to each laptop, and activations stream from one stage to the next.
Optional int8 and int4 modes hold layer weights at about a half and a quarter of bf16, so bigger models fit.
An OpenAI-compatible /v1 endpoint with tool calling. The model asks for a tool and the client runs it.
Heartbeats catch a laptop that goes silent, so the cluster drops it and dials again instead of hanging.
Networking & fault tolerance: moves activations between laptops and handles a laptop that stops
Pipeline parallelism suits a Wi-Fi cluster: only one activation tensor crosses the network per layer boundary, instead of the constant all-to-all traffic tensor parallelism needs. Keeping the API OpenAI-compatible means existing chat clients and agents work without changes, and shipping the dashboard inside the Python package means installs need no Node.
Have something in mind?