Reasoning effort
Reasoning effort is how hard the model thinks before it answers. Higher effort means more deliberation, more tokens spent on internal reasoning, slower responses, and usually better answers on hard problems. Lower effort means faster, cheaper, but shallower.
Magic Coder lets you pick the level per session and change it mid-thread.
Levels
Section titled “Levels”| Value | What it does |
|---|---|
none | Disable reasoning entirely. Anthropic mapping: no thinking. |
minimal | Lightest level on OpenAI. Anthropic mapping: no thinking. |
low | Lower latency, lower token use. |
medium | Balanced reasoning depth (a common default). |
high | More thorough reasoning. |
xhigh | Strongest OpenAI level. Anthropic mapping: native xhigh on Claude Opus 4.7, otherwise max when the model supports it, otherwise high. |
max is accepted as a search alias for xhigh — if you type /reasoning-effort max, you’ll get xhigh.
Setting reasoning effort
Section titled “Setting reasoning effort”Three ways:
- At launch —
coder --reasoning-effort high. - In the TUI —
/reasoning-effort(or/thinking) opens the picker. - As a default — set
[generation] reasoning_effort = "high"in~/.magic/config.toml.
The picker shows the same levels with one-line hints. To clear the per-session override and fall back to the provider default:
/reasoning-effort defaultChoosing a level
Section titled “Choosing a level”Heuristics that work for most teams:
mediumis a good default for everyday work — bug fixes, small features, code review.highwhen the task involves multi-file refactors, hairy debugging, or tricky algorithmic decisions.xhighfor hard problems where wrong-or-incomplete is worse than slow — production migrations, security audits, complicated concurrency bugs.loworminimalfor fast turnaround on routine work where you can spot mistakes easily — formatting, doc edits, mechanical refactors.nonewhen you specifically want a non-reasoning response, e.g. you’re treating the model as a fast answer machine and not a problem-solver.
You can change levels mid-thread. A common workflow: start at medium for the bulk of the work, raise to high or xhigh before the final pass that produces the patch.
Cross-provider mapping
Section titled “Cross-provider mapping”Magic Coder uses a single set of levels across providers. The translation looks like this:
- OpenAI reasoning models — the values map directly:
none,minimal,low,medium,high,xhigh. - Anthropic models with extended thinking —
noneandminimaldisable thinking. On Claude Opus 4.7,xhighstays native and is the recommended starting point for coding and agentic work. On older supported Anthropic models,xhighdegrades tomaxwhen available, otherwisehigh. - Other providers — Magic Coder picks the closest equivalent the model supports.
You don’t need to remember which model speaks which dialect — pick the level you want and Magic Coder handles the translation.
Reasoning effort and long context
Section titled “Reasoning effort and long context”The two are independent dials. You can run xhigh reasoning at a normal context length, or low reasoning at extended (long) context. See Long-context mode.
Persistence
Section titled “Persistence”A reasoning-effort choice you make in the session (/reasoning-effort high) is also written to your user config so the same default sticks for new threads. To revert to the provider default, run /reasoning-effort default and it’s cleared from your user config too.
Reference
Section titled “Reference”For the canonical list of levels, aliases, and hints — including the search aliases that accept max, min, fast, balanced, deep, etc. — see Reasoning effort values.