I ran a local model on a simple task. Forty minutes later, zero lines written.
It hadn't frozen. It was thinking. It just never stopped to actually do it.
What I had before
The launcher I'd used for months orchestrated three different models — one in the cloud for quick jobs, one local for things that shouldn't leave home, one to act as reviewer. It worked, until a cloud model update broke something in how the launcher handled responses — a hard error, nothing written.
The local model, on the other hand, never broke. It simply never finished. Zero output, minutes ticking by.
The real problem
It wasn't a bug to patch. I checked how much context the launcher was carrying every single turn, before it even started working: ten thousand tokens, almost all of it spent reminding the model who it was and how to behave. A few hundred were enough for the actual task.
A small model, dragging ten thousand tokens of dead weight into every round, doesn't think more. It just loses itself more.
The switch
I replaced the launcher with a lighter one, same principle — I write what's needed, it picks the model and runs the sequence — but the starting context is a tenth of the size.
I tried it on the same three models as before. All three wrote real code, not just thought about it: the cloud one, the local one, the reviewer.
The number that matters
The local model that used to take forty minutes to write nothing now writes in under four with the new launcher.
Same model. Same hardware. Six times less weight to carry every turn.
The point
I didn't change the brain. I changed how much luggage it carries every time it starts.
Sometimes the bottleneck isn't how smart the tool is. It's how much you make it carry before it even begins.
Alessio Cappuccio — xyz.vision