Introduction
Inference engine for Apple Silicon. Runs Syzygy Research Mach-1 packs with fused decode-in-GEMV Metal kernels and an OpenAI-compatible API.
mach is an inference engine for Apple Silicon. It is the reference way to run
Syzygy Research compressed models (~2-bit
expert packs) on M-series Macs: point it at a HuggingFace repo id, and it downloads the
pack and serves it with fused Metal kernels that decode the quantized weights inside
the matrix-vector product. No dequantized copy of the model ever exists in memory, so a
35B-parameter model serves in about 8 GB of weights and fits a 16 GB Mac.
The engine is standalone: the decode loop, samplers, tokenizer, KV caches, and
transformer blocks live in-tree, with mlx as the only framework dependency. Source is
at SyzygyResearch/mach-engine
(Apache-2.0).
Requirements
| Requirement | Details |
|---|---|
| Hardware | Apple Silicon Mac (M1 or later) |
| OS | macOS. Metal is required; there is no CPU or CUDA path |
| Python | 3.12+ |
Quick start
pip install mach-engine
# One-shot generation. Downloads the pack from HuggingFace on first use (~8.1 GB)
mach-generate SyzygyResearch/Mach-1-Additive-35B \
--prompt "Write a binary search in Python."
# Serve an OpenAI-compatible endpoint
mach-serve SyzygyResearch/Mach-1-Additive-35B --port 8080Then point any OpenAI-compatible client at http://127.0.0.1:8080/v1 with any API key
string:
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "mach-1",
"messages": [{ "role": "user", "content": "Hello!" }]
}'The server also speaks the Anthropic Messages API at /v1/messages. See
Serving for endpoints, streaming, tool calling, and image input.
Supported models
| HuggingFace repo | Size | Notes |
|---|---|---|
SyzygyResearch/Mach-1-Additive-35B | ~8.1 GB | Flagship text pack. Qwen3.6-35B-A3B base, 256 experts top-8, ~1.7 bits/weight. |
SyzygyResearch/Mach-1-Additive-35B-Multimodal | ~9.0 GB | Same text stack plus a vision tower (~0.9 GB), loaded lazily on the first image request. |
These are the officially published and tested packs. Admission is based on the Mach-1
pack format, not a repo-name allowlist, but other architectures and stock HuggingFace
checkpoints are not supported. Run mach-check <repo-or-path> to find out, without
loading weights, whether a checkpoint is servable and fits your machine's memory.
Documentation
| Page | What it covers |
|---|---|
| Installation | pip install, optional extras, verifying the setup |
| Serving | mach-serve, endpoints, streaming, tool calling, vision, performance options |
| CLI | mach-generate, mach-check, mach-models, mach-archs |
| Benchmarks | Methodology and results for published quality claims |