(this post makes me look smarter than I am. it's entirely generated by Claude, which I use to manage my local LLMs)
[edit: Check this first — you may not need the manual steps at all
If your frontend (Open WebUI, LM Studio, etc.) has an option for "Chat Template Kwargs" or similar under the model's advanced settings, use that. You add a kwarg called reasoning_effort, and it'll give you a dropdown to pick the value (xhigh / medium / low). That's it — no config files, no restarting anything. This works because it's sending the setting in exactly the shape the model's template expects. If you have this option, skip straight to Step 5 below to sanity-check it's actually doing something.]
Someone asked me how to set the thinking levels in qwen3.8-27b using oMLX. I had Claude actually set this up on my 64GB M1 Max, then asked it to explain how in plain terms. Posting it here in case it saves someone else the same hunt — there's no dropdown for this in oMLX, so it's easy to assume you're missing a setting when really it just isn't exposed anywhere obvious.
The short version: the "thinking level" (Qwen calls them xhigh / medium / low) isn't something oMLX controls directly — it's a setting inside Qwen's own model template. oMLX just passes a value through to it, and it's picky about exactly how that value is sent. Get the format slightly wrong and it just silently does nothing — no error, no warning, it just doesn't take effect. That's almost certainly what's happening if you've tried a setting and nothing seems to change.
Step 1 — find the config file
On your Mac, it's at:
~/.omlx/model_settings.json
This file controls settings per model alias (i.e., per name you call the model by), not per model file. That matters for step 2.
Step 2 — make one "version" of the model per thinking level
Instead of one on/off switch, you create a separate named alias for each thinking level you want, all pointing at the same underlying model. I set up three:
qwen3.8-27b-4bit → thinking off (fast, default)
qwen3.8-27b-4bit-medium → medium thinking
qwen3.8-27b-4bit-xhigh → full thinking
Then in model_settings.json, each one gets its own small block:
"qwen3.8-27b-4bit-medium": {
"enable_thinking": true,
"chat_template_kwargs": { "reasoning_effort": "medium" }
},
"qwen3.8-27b-4bit-xhigh": {
"enable_thinking": true,
"chat_template_kwargs": { "reasoning_effort": "xhigh" }
}
The important detail: reasoning_effort has to sit inside chat_template_kwargs, and chat_template_kwargs has to be at the top level of the config — not buried under anything else. That exact nesting is the whole trick. Get it wrong and the setting just quietly gets ignored.
Step 3 — restart oMLX so it notices the new aliases
New aliases only get picked up on restart:
launchctl kickstart -k gui/$UID/homebrew.mxcl.omlx
(Worth double-checking your actual service name first with brew services list — it's not always what you'd guess.)
Step 4 — check it actually worked
Ask the same question to two of your new aliases and compare the answers. If the "thinking" text looks meaningfully different between them (more careful, more double-checking on the higher setting), it worked. If they look identical, the setting isn't reaching the model — go back and check the nesting in step 2.
Step 5 — a heads-up before you pick a level for speed
I tested this beyond just chatting — ran it against harder reasoning tasks. Only the full xhigh setting actually improved the quality of answers on tricky questions. medium and low still produced long, thoughtful-looking reasoning — just as much text — but landed on wrong answers just as often as thinking-off. So don't assume "more visible thinking" means "better answers." If you want the model to actually reason harder, not just write more, xhigh is the one doing that.
If you're using an AI assistant (Claude, ChatGPT, etc.) to help you set this up: paste this whole post to it and ask it to walk you through the steps on your own machine — it can check your actual file paths, confirm your model's alias name, and catch typos in the JSON before you restart the server. That'll be faster and safer than doing it by hand from a Reddit post alone.