These numbers were measured on the GGUF build, not this one. The plates on this page are the best
evidence we have about TielCoder, and we would rather show them than show nothing — but this file
uses a different quantizer (oMLX's oQ against llama.cpp's k-quants), and changing quantizer moves
results. On the same Nail weights we measured a 0.7-point MMLU-Pro gap and a 24% difference in
token counts between MLX and GGUF. Read them as evidence about the model, not as measurements of
this file. If you need numbers you can hold us to, use the
GGUF build.
Straight to the point
Tiel is the fast coder of the arsenal. At 6-bit quantization and 29.5 GB it fixes real codebase issues at the rate (and speed, with
the right GPU) of Opus 4.6 medium, while holding the best multi-turn conversation of any local model we
have measured. It is also cheerfully bad at trivia.
Pick it for work. Pick something else for exams.
**This is Ornith-1.5-35B-A3B re-quantized
with oMLX's oQ6e quantizer and carrying the Sharp chat template**
inside the checkpoint. For speculative decoding, the identical build with Ornith's trained MTP head is a separate repo — the same weights plus the head, for runtimes that can use it.
The numbers
Where it sits against the other local builds
Multi-turn conversation
Reasoning and knowledge
Where it stands. On 25 SWE-bench-Live problems Tiel fixes 12 — the same as Opus 4.6 (medium),
four more than Ornith-1.5 itself, three more than Nail, and four more than Sonnet 5 (medium). Among
models of its own class it is first; the ones ahead are dense 27Bs and Opus 5. Its time per attempt
is also steadier than Nail's: an 8.6 minute median against 7.2, but a 12.3 minute mean against 15.7,
because it lacks Nail's tail of expensive attempts.
How it talks. On Claw-Eval's multi-turn tasks Tiel scores 67.2 against Nail's 60.5 and its own
base's 65.3, over 114 scored conversations each. It earns that by answering better rather than by
asking more: against the base it is 3.8 points up on answer quality and 5.1 down on clarifying
questions. The score weights answers four to one, so the trade pays — but if you want a model that
interrogates a vague request before acting, the base does that better.
What it costs. 73.7 on MMLU-Pro against Nail's 84.0, both at 4-bit. Most of that is inherited
rather than built: Ornith-1.5 scores 78.0 where stock Qwen3.6-35B-A3B scores 85.3. Our quantization
is not the cause — the same quant carrying Ornith's own template scores exactly what Ornith scores.
The remaining 4.3 points are the Sharp template buying shorter answers, which is the trade this
build exists to make.
Which one. Agentic coding, or long conversations that have to stay useful → Tiel. Exam-style
knowledge and hard reasoning → Nail,
which is 10.3 points better on MMLU-Pro and 6.7 worse in conversation.
The most fixes per problem regardless of weight → Dirk,
the dense 27B that solves 15 of the same 25 — one behind stock Qwen3.8-27B, at 2.5x its speed.
Run it
One tier: oQ6e, 6-bit dynamic mixed precision with an imatrix pass. Vision is included in the
same folder — no separate projector file.
oMLX — put the folder under ~/.omlx/models/peculiar-ragdoll/Tiel-Coder-35B-A3B-MLX-oQ6e, or pull it from the oMLX
admin dashboard.
Sampling: temperature 1.0, top_p 0.95, top_k 20. For agentic coding we ran temperature 0.6.
Prefer to keep the files yourself?
hf download peculiar-ragdoll/Tiel-Coder-35B-A3B-MLX-oQ6e --local-dir TielCoder-MLX
python -m mlx_vlm.generate --model TielCoder-MLX --max-tokens 512 \
--prompt "Explain what this function does." # text
python -m mlx_vlm.generate --model TielCoder-MLX --max-tokens 512 \
--prompt "What is in this screenshot?" --image photo.jpg # vision
Load it with mlx-vlm, not mlx-lm. This is a vision-language checkpoint. mlx_lm.load()
accepts it and then emits garbage tokens — a loader mismatch, not a bad quant, but it fails quietly.
Both runtimes apply the embedded template automatically — nothing to pass.
No multi-token-prediction head
Ornith-1.5's GGUF conversion carries an MTP (nextn) block whose weights are untrained — a fresh
random initialization, which we measured and removed from the GGUF ladder. It is not in the
safetensors this build quantizes from, so there was nothing to strip here.
How the quantization was done
oQ6e is oMLX's dynamic quantizer: 6-bit base with mixed precision by layer position and selective
non-quantization, plus an imatrix pass — the "e" — that measures which weights carry the most
signal before deciding what to keep at higher precision. It is the same idea as the GGUF ladder's
Unsloth-Dynamic-plus-imatrix recipe, implemented for MLX, but it is not the same computation:
oQ derives its own importance data rather than consuming the GGUF imatrix we baked.
That is the reason for the caveat at the top. Two quantizers pursuing the same goal by different
routes do not land in the same place, and only the GGUF route has been benchmarked.
Limitations
- Exam scores are its weak axis. If you are picking on MMLU-Pro, Nail is 10.3 points better.
- It asks fewer clarifying questions than its base, by 5.1 points. Terser is not always better;
a vague request gets answered rather than questioned.
- Benchmarks are one run per problem on SWE-bench-Live and three seeds on MMLU-Pro. Treat small
differences as noise.
- Chinese and English only, inherited from the base.
Credits
- ornith-ai — the Ornith-1.5-35B-A3B weights (MIT).
- oMLX — the oQ quantizer this build uses.
- froggeric — the template lineage Sharp builds on.
- eaddario — the calibration corpora the imatrix was measured on (MIT).
- MLX and mlx-vlm — the runtime.
MIT, inheriting Ornith-1.5's license.