General-purpose local models are what most people reach for, and that includes me. They handle everything that isn’t code, which is basically the entire day if you’re not a developer. All I need most of the time is just chat, quick research, working through an idea out loud, doc synthesis, and so on.
But running the same two or three models on rotation for months starts to feel a bit stale, like eating the same lunch every day. And it wasn’t just the routine of it, I’d started noticing they were falling short in specific spots. Vibe design was actually the area where this started showing up. My general models could talk about design fine, but when I plugged them into a local design tool and asked for actual output, the results were rough. Coding-tuned models handled it noticeably better. That was the thing that got me curious about running one full-time.
Want to stay in the loop with the latest in AI? The XDA AI Insider newsletter drops weekly with deep dives, tool recommendations, and hands-on coverage you won’t find anywhere else on the site. Subscribe by modifying your newsletter preferences!
Why a coding model actually makes sense
For someone who doesn’t code
If you’ve read any of my AI-related articles, you know I don’t know much about code or dev workflows. I’ve never written a script, don’t know much of the lingo, and half the time when a stack trace shows up I just paste it somewhere and hope for the best. What I do have is a lot of stuff around my computer that’s shaped like code. So here I’m talking about things like YAML frontmatter across my Obsidian notes, JSON config files for every AI tool I run, markdown that needs to stay formatted a specific way, the odd log dump when something in Docker refuses to start, and stuff along those lines.
All of that has rules: indentations need to line up and keys and values need to match. A general chat model treats rules as more of a suggestion because it’s optimized to sound helpful. A coding model treats rules as the whole point.
Qwen 2.5 Coder was trained on 5.5 trillion tokens, but only about 45% of that was source code. The rest was natural language, so it’s not some robot that only speaks Python. And on top of the code side, it also matters here that Qwen 2.5 was specifically tuned for structured output like JSON and instruction following, because Coder inherits that. Then there’s the design side, which is what actually pushed me over. Coding-tuned models are just better at spitting out usable component code when I’m working in a local vibe-design tool, and I wasn’t going to keep pretending Gemma was cutting it there.
I went with Qwen 2.5 Coder 3B Instruct. It’s from November 2024, which is slightly ancient in AI times. At Q4_K_M it’s about 1.9GB, which means my RTX 3070 with its 8GB of VRAM can offload the whole thing and still have room for context. The GGUF version supports 32K context out of the box, and the model itself is tuned for the same structured tasks the 32B flagship is known for, just scaled down. The best-case use for the small variants is exactly what I was looking for. Local tasks that need precision more than depth and quick turnarounds on structured input.
What I actually do with Qwen Coder 2.5
Small annoying tasks, mostly
I’m not using this for scripts or software development, but rather mostly annoying stuff that fills up a day at a computer. The best example is config files. Almost every AI tool I use runs on some kind of config, whether that’s the JSON file for Claude Desktop’s MCP servers, LM Studio’s settings, or the compose files I’ve collected from various self-hosting experiments. When I need to add a new server, swap a path, or fix something a copy-paste mangled, I hand the file over and get it back clean. This ensures no missed commas and also no chatty explanation of what changed.
Obsidian frontmatter is another one. My vault has been growing for a while, and the YAML at the top of my notes was never consistent; some had tags, dates, and fields I’d forgotten about. Standardizing that in bulk, or adding a new property across a batch, is exactly the type of thing a coding model handles in a breeze.
Then there’s the “something broke” category. This could be a container that doesn’t start, or a Python-based tool that throws a stack trace, or a log file that has three thousand lines and only one of them is the reason the whole thing doesn’t work. I paste it in and simply ask what’s going on. It reads structured mess for a living, so it actually finds the thing. Small data cleanup falls in here too. Weird CSV exports, an API response I want turned into a readable table, that sort of thing.
The one legit code use circles back to some of my design work. I’ve been testing local tools like Open Design and Open CoDesign lately, and they let you plug in your local models. This vibe design workflow is the closest I get to “writing” code, and even then I’m not really the one writing it, I’m just describing what I want.
Where Gemma 4 still gets the tab
Not a full swap, but an addition
I didn’t set out to shove Gemma aside. It’s still on my machine and still what I reach for most days, just not for the structured stuff because I’ve come to realize that’s not its strong suit. Actual conversation is where it wins. Thinking something through or working out an angle for an idea, for example. That back and forth where you’re not really looking for an answer yet, you’re just trying to figure out what you’re asking. Coding models are pretty terrible company for that.
Vision is the other big one. Qwen 2.5 Coder is text-only, so no image input at all. Gemma 4 handles images natively, which for me is a huge deal because I’m constantly pulling info out of screenshots, from UI capture I need to describe or a diagram I want summarised to something I’ve marked up and want feedback on.
General knowledge and light research also stay on Gemma’s side. It’s broader, chattier, and when I want a quick take on something I don’t know much about, it’s the better first stop. And on code specifically, I want to be fair here. Gemma isn’t bad at it, it just isn’t specialised for it. For a “what does this line do” question, it’s fine. But for anything more structured, Qwen Coder is the better pick.
Not a model I expected to keep
Working with code-flavored stuff has felt less intimidating since I started using Claude Code, so trying a coding-tuned model locally was a pretty natural next step. And it turned out to be a really good fit, almost like having a local version of Claude Code for analysis and structured tasks. The 3B size also runs smoothly on my PC, which is another reason it stuck.
