Language models on your own Mac.
Inference, chat, serving, and training for Apple Silicon, built on mlx-go. 81 language-model architectures plus 3 embedding registries, generated from one model registry.
Pre-1.0. Source private today, available for review on request. Working toward a first public v0.x tag. By the repo's own benchmarks, decode meets or exceeds Python mlx-lm on most models and prefill runs 1.4–2.8x faster.
- Generate, chat, serve —
mlx-lm-generate,mlx-lm-chat, and an HTTP server inmlx-lm-serve, as single static binaries. - 81 architectures — Llama, Gemma, Qwen, DeepSeek, Phi, Mistral, and the rest of the registry, generated via
modelircodegen rather than hand-ported one at a time. - Training and tuning — full-parameter training, LoRA and DoRA adapters, and distillation paths, with text, chat, completion, and preference dataset formats.
- Speculative decoding — draft-model acceleration, with the ANE experiments in mlx-go-ane exploring where the draft stage can run.
- Toolbox commands — quantize, convert, embed, evaluate, perplexity, benchmark, and parity-verification utilities around the core four.
mlx-go-lm is where the model work of the family lives: mlx-go provides the array runtime, and this module turns it into language models you can run, serve, and train on hardware you hold. The training paths are the part the stack is built around: they are what the ownership loop uses to turn captured usage into a model of your own. The research reproductions in mlx-go-vibethinker and the federated experiments in mlx-go-fedistill both build on its training and tuning layers.
source private repo, available for review on request — travis@tmc.dev
docs in progress
contact travis@tmc.dev