mlx-beam Batched Engine for Apple Metal

B.E.A.M.

Light and modular inference engine, built on MLX.

Robust prefix cache Expert streaming No bloat

How to install

uv tool install mlx-beam
beam doctor

beam doctor reports the Python, MLX, device and memory it sees.

What sets it apart

Robust prefix cache
RAM and SSD tiers, checkpoints for hybrid models. Survives model swaps and restarts.
Expert streaming
Mixture-of-experts models larger than memory. Residency configurable, from minimal RAM to fully resident.
No bloat
The core is the token path. Vision, audio, conversion, structured output and tool-call repair are optional extras.
Batched MTP
Multi-token prediction stays on with many requests at once.
Batched vision
Images go through the same scheduler; no request waits behind a picture.
No stalls
A short request beside a long prefill answers in seconds.
Mixed-precision KV cache
Bits per layer, set at conversion.
Thinking budget
A hard cap on the reasoning trace, per request.
Responses API
Next to chat completions, stateless.

Why it exists

Existing MLX servers either stop at the basics or grow things that have no place in an inference engine: a built-in game, a cloud path that arrives with an update. The ones we ran daily also had bugs where it matters most: prefix cache, batching under load, vision. B.E.A.M. keeps the core to the token path and fixes those paths at the source. Everything else is an extra you choose to install; nothing ever ships in the core that you did not ask for.

Where it stands

CLI, packaging, CI skeleton
Vendored mlx-lm base planned
Prefix cache with recurrent-state checkpoints planned
Multi-token prediction in the batch planned
Expert streaming from SSD planned

Measured numbers are published as they are measured, with machine, model and date.