A LoRA fine-tuned MoE coding agent model distilled from real-world Claude Code programming sessions. Merged into a single complete model — download and run directly on Apple Silicon via MLX.
Recommended temperature: 0.95 — this model was trained on opencode agent traces where the assistant alternates between reasoning, tool calls, and code generation. Slightly higher temperature preserves this multi-modal behavior.
gpt-oss-120b-Fable-5-Distilled is a fully merged LoRA fine-tune of gpt-oss-120b-heretic-v2-mxfp4-q8-hi-mlx, trained using the Muon optimizer with Newton-Schulz orthogonalization on Apple MLX. The fine-tuning data consists of 352 real-world opencode programming sessions extracted from armand0e/claude-fable-5-claude-code.
This is a complete model upload — no separate adapter files or base model are needed.
The model learns to act as a coding agent: understanding user requests, exploring repositories, making code edits via tool calls, and delivering final solutions — all through the Harmony channel protocol (analysis for internal reasoning, final for the delivered response).
Highlights
🔧 Agent-style coding — trained on real tool_use traces (Bash, Read, Edit, TaskCreate, Git) from Claude Code sessions. Generates natural tool-call sequences.
🧠 Muon optimizer — Newton-Schulz orthogonalized updates on LoRA matrices for stronger convergence at low training step counts.
🎯 13/13 PASS — perfect score on a 13-task custom benchmark spanning math olympiad, algorithm coding, DS/algo, logic puzzles, and scientific computing.
1# Using mlx_lm (installed by default with mlx)2mlx_lm.chat --model gpt-oss-120b-Fable-5-Distilled --max-tokens 10000 --temp 0.95
Python
python
1from mlx_tune import FastLanguageModel
23model, tokenizer = FastLanguageModel.from_pretrained(4 model_name="gpt-oss-120b-Fable-5-Distilled",5 max_seq_length=4096,6 load_in_4bit=True,7)89prompt ="""<|start|>system<|message|>You are a helpful coding assistant.
10Reasoning: high
11# Valid channels: analysis, commentary, final<|end|>
12<|start|>user<|message|>Write a function to find the longest common substring of two strings.<|end|>
13<|start|>assistant<|channel|>analysis<|message|>"""1415outputs = model.generate(prompt, max_new_tokens=2048, temperature=0.95, top_p=0.9)16print(outputs)
Prompt Format (Harmony)
This model uses the gpt-oss Harmony channel protocol:
Unlike our previous BAdam-based models, this release uses uniform Muon training across all LoRA layers, including the router. At top-k=4, the router competition space is sufficient to avoid expert collapse without special lr treatment.
Benchmark Results
Custom hard benchmark — 13 tasks across math, coding, logic, and science. Auto-graded with keyword matching + live code execution (60s timeout per task, max 2 retries on error).
40-step checkpoint — an early fine-tune designed for quick validation. Further training would deepen the coding agent behavior.
No RLHF — trained on supervised opencode session data only. Safety alignment is lighter than commercial instruction-tuned models.
Harmony prompt format required — this model expects the <|channel|> protocol. Standard ChatML or Alpaca-style prompts will produce degraded results.
Small dataset — 352 turns is modest. The benchmark results suggest high-quality, high-signal data, but broader generalization benefits from more training data.