Run and adapt models in Go.
Inference, chat, serving, and training for Apple Silicon, built on mlx-go. Supported model families share a registry and a ModelIR generation pipeline.
Pre-1.0. Source private today, available for review on request. Working toward a first public v0.x tag.
What it does- Generate, chat, serve —
mlx-lm-generate,mlx-lm-chat, and an HTTP server inmlx-lm-serve, from Go commands, with native MLX libraries loaded at runtime. - Model families — 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 supplies arrays and autograd; mlx-go-lm adds model architectures, token generation, serving, evaluation, and training. Those training paths are intended to turn captured usage into an operator-owned model. mlx-go-vibethinker and mlx-go-fedistill both build on them.
A practical starting pointLoad a checkpoint from a local directory or Hugging Face model ID. Generate text, use it through an HTTP API, or fine-tune an adapter from your own dataset. The server exposes OpenAI- and Anthropic-compatible endpoints for supported requests.
mlx-lm-generate -model ./model -prompt "Summarize this change"
mlx-lm-serve -model ./model
mlx-lm-train -model ./model -train -data ./data -adapter-path ./adapters
Recent work · October 3–10, 2026
Recent branches improve adapter loading and application before generation, add embedding-model work, and reject non-finite outputs in generation conformance checks. Work also tightens temporary-array cleanup on failed or interrupted generation.
For an integration review, bring the checkpoint, target machine, representative prompts, and any adapter. Those inputs define a useful check of loading, output quality, memory use, and latency.
source private repo, available for review on request — travis@tmc.dev
docs in progress
contact travis@tmc.dev