Flint on Apple Silicon
Flint is Recursive's mixture-of-experts model for coding agents: 39.8B parameters, about 2.5B active per token. It investigates codebases, fixes bugs, writes tests and calls tools, and it reasons before it answers. Of its 49 layers, 2 are dense and 47 route each token to 6 of 256 experts plus a shared expert that every token uses.
mlx-lm has no flint class, so OptiQ ships an MLX port that registers with mlx-lm on import optiq (mlx-optiq 0.7.2 or later). It was checked against Recursive's own SGLang serving kit: learned attention sinks, a 513-token sliding window on 35 layers, no positional encoding on the 14 full-attention layers, and sigmoid routing renormalised over the chosen experts.
The quant
| Model | bf16 size | OptiQ size | Compression | Precision |
|---|---|---|---|---|
| flint-OptiQ-4bit | ~80 GB | 25.6 GB | 3.1× | mixed 4/8-bit |
The weights take 26 GB of unified memory. The quant was built and scored on a 36 GB Mac, where long prompts leave little headroom; 48 GB or more is comfortable.
Capability Score
Scored in reasoning mode, the setting that measures an always-on thinking model fairly. Each benchmark gets one equal vote.
| MMLU | GSM8K | IFEval | BFCL | HumanEval | HashHop | Score |
|---|---|---|---|---|---|---|
| 86.4 | 92.6 | 90.2 | 87.0 | 89.0 | 72.0 | 86.20 |
Hello world
import optiq # registers the flint arch with mlx-lm from mlx_lm import load, generate model, tok = load("mlx-community/flint-OptiQ-4bit") prompt = tok.apply_chat_template( [{"role": "user", "content": "Write a Python function that merges overlapping intervals."}], tokenize=False, add_generation_prompt=True, ) print(generate(model, tok, prompt=prompt, max_tokens=4096))
Serve it to an agent
optiq serve --model mlx-community/flint-OptiQ-4bit
The server speaks the OpenAI and Anthropic APIs, so coding agents can point at it directly. Recursive recommends temperature 1.0, top-p 0.95 and top-k 20, and a large output budget on hard problems, since reasoning shares it with the answer.