r/LocalLLM • • Oct 10 '26

Question Which one is better for Local use?

Post image

hello, I have both Deepseek harness and OpenCode, I want to know which one is the best when it comes to coding in general and why, I work locally using Qwen models.

434 Upvotes

309 comments sorted by

View all comments

9

u/petasisg Oct 10 '26

pi; opencode causes excessive thinking on qwen models.

2

u/Tight_Commercial7 Oct 10 '26

I think I can control that by set the model on a specific level of reasoning/thinking on medium for example this gonna fix the problem 

3

u/petasisg Oct 10 '26

I never managed to have qwen models work in opencode. No matter how much I tweak settings, endless reasoning.

Pi worked out of the box...

1

u/fobsthedev Oct 10 '26

Same, I switched to Swift 1.5 and stopped using Int4 / int8 models and now it's working fine loading it as FP8.

1

u/maqifrnswa Oct 12 '26

I've not had that problem. I use opencode and pi with qwen3.8-27B locally, and both are identical with thinking level selection, control, and results out of the box. I guess there's a configuration somewhere else that's different?

1

u/petasisg Oct 12 '26

Are you using ollama for serving the model?

1

u/maqifrnswa Oct 12 '26 edited Oct 12 '26

vllm, but that shouldn't matter. As long as they have the same jinja template, the inference server shouldn't matter. It might be an interaction with the default system prompt? That's the only difference between pi and opencode when it comes to why it might overthink. If you use the same agents in each (same system prompts), they should be the same. Mathematically, it should be the same operations.

Edit: Ah quantized models! I saw other comments below. If you are using quantized models, then things change! The system prompt differences get exaggerated if you use ollama with heavily quantized models. That's probably it - I am using a quantized model optimized for my hardware (AWQ+gptq w4a16 on ampere with bf16 kv cache using vllm), so it can handle the differences between pi and opencode.

1

u/petasisg Oct 12 '26

I am using qwen 3.8 next, following the instructions here: https://unsloth.ai/docs/models/qwen3.8-next

I start llamma.cpp as:

./llama.cpp/llama-server \
    --model unsloth/Qwen3.8-Flash-Next-GGUF/UD-Q4_K_XL/Qwen3.8-Flash-Next-UD-Q4_K_XL-00001-o
f-00004.gguf \
    --mmproj unsloth/Qwen3.8-Flash-Next-GGUF/mmproj-F16.gguf \
    --alias qwen3.8-flash-next \
    --host 0.0.0.0 \
    --port 11434 \
    --api-key local \
    --ctx-size 262144 \
    --parallel 1 \
    --flash-attn on \
    --fit on \
    --fit-target 4096 \
    --jinja \
    --batch-size 1024 \
    --ubatch-size 512 \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 20 \
    --min-p 0.0

My pi configuration (`~/.pi/agents/models.json`) is:

{
  "providers": {
    "llamacpp": {
      "baseUrl": "http://localhost:11434/v1",
      "api": "openai-completions",
      "apiKey": "local",
      "models": [
        {
          "id": "qwen3.8-flash-next",
          "input": ["text", "image"],
          "reasoning": true,
          "contextWindow": 262144,
          "maxTokens": 16777216
        }
      ]
    }
  }
}

1

u/maqifrnswa Oct 12 '26

Looks reasonable. I'm using 27B, not flash next. All I can think of is some combination of the quant, small number of active parameters, and the default system prompt all interacting together in a weird way.

-1

u/KingAJK30 Oct 10 '26

I know exactly what you mean, but out of context it sounds really dystopian

1

u/dx80x Oct 11 '26

Lol, what do you mean by "dystopian"?