This is my OpenCode setup for local models, mainly using a customized llama.cpp configuration.
For Qwen 3.8, DeepSeek V4, and Glimmer, the models are already trained to support reasoning effort levels. Depending on the model, these may be exposed as low, medium, high, xhigh, or as low, high, and max.
For models that support reasoning but were not trained with explicit reasoning-effort levels, such as the Qwen 3.5 and 3.6 variants, I use a token budget to limit the amount of reasoning.
Although Qwen 3.8 has built-in reasoning-effort levels, I still apply a maximum reasoning-token cap for each effort level.
Although the llama.cpp CLI flags specify preserve_thinking and a default reasoning budget, these can still be overridden through the API, so this works fine for my setup.
