Claude plus a local LLM cuts my AI costs in half, and I’m never going back to cloud-only
I’ve spent over $300 in Anthropic usage credits since the start of the year, mostly because I wanted the most powerful flagship model for my projects every single time. And, as you can probably imagine, every single time, I hit my usage limits a little faster. On Claude, Opus 4.8 costs 1.7 times more than Sonnet 5, and the latest Fable 5 costs twice as much as Opus 4.8, so reaching for the top of the ladder by default burned through my allowance at an alarming rate. Hitting this wall meant waiting four or sometimes five hours to get back to the project, and patience has never been my strongest suit.
Anthropic has made it easy to just top up usage, and it does it for as little as $5. In that moment, it was always easier to spend $5 than to lose 5 hours worth of momentum. That logic is what led to this huge bill, eventually. However, it wasn’t until much later that I realized that I wasn’t doing either my wallet or my workflow any favors by throwing every single task at a flagship model.
The $5 top-up is designed to feel smaller than it is
There’s a price to pay for momentum, and I kept paying it
The problem with the economic cost of my last workflow was the fact that no top-up ever felt like a decision. Whenever I’d hit usage limits in the middle of a session, the choice in front of me was $5 now, or a four-hour wait while a half-finished project sat inside my head. In that sense, paying was always the rational choice.
Besides, the cost was never purely economic to begin with. Every hour of enforced downtime meant an hour of context that I would have to rebuild, and in the face of that, the nominal charge was cheaper than the lost momentum. It took a quarterly look at my Anthropic billing page to see what those dozens of ostensibly sensible top-ups added to, which finally made me rethink my entire strategy.
Most of my prompts never needed a flagship model
Why pay Fable 5 rates for Qwen-grade work?
When the bill from Anthropic finally forced an audit (that I had conveniently ignored for a long time), I realized that, besides the occasional request that would benefit from a deep reasoning model, the bulk of what I was sending to Claude Opus 4.8 and recently, Fable 5, was just boilerplate generation, summarization, the usual back and forth of brainstorming, and iterative loops of testing and revising.
By my count, only around 3 in 10 prompts involved the kind of architectural reasoning or one-shot debugging that justified the flagship premium I had been paying. Surely, a capable open-weight model would’ve been able to reasonably answer if I should be using Pygame or Tkinter for a drag-and-drop level editor.
The issue is that once you are locked into a certain ecosystem (like Anthropic’s) or even accustomed to the proficiency of a certain model, it becomes difficult to deploy another model on the side merely for the sake of token savings. The next problem is the fact that you want to keep the entire chain of thought within the conversational history so that the model has enough context to reasonably understand your next iterative adjustment. This handoff was a key challenge.
The local half of the pipeline was the answer, and it cost $0
My 16GB VRAM and a local AI stack could cover more than I’d thought
I have a decent rig that I was fortunate enough to assemble before the DRAM crisis, and so it was disappointing to realize that I wasn’t using the RTX 4070 Ti Super’s 16GB GDDR6X memory to my advantage. With that amount of VRAM, I had enough resources to comfortably run Gemma 4 26B and Qwen3-Coder 30B in quantized GGUF form through Ollama at a speed that kept pace with my coding sessions.
The handoff between Claude and the local models, just as I mentioned, took more effort than I had assumed. A few months ago, I built Aria, which was based on a single Python script running a Flask backend with a browser-based chat interface, to solve a different problem altogether. While Aria was built to catch Gemma 4’s hallucination, I realized that I could apply the logic to create a custom unified interface on Python that’s shared both by my local models and Claude. The only difference is that applying the logic would mean Aria’s regex layer only needed a new set of parameters, which included drafting, summarization, brainstorming, and testing loops.
The other queries relating to architectural decisions and stubborn debugging would be routed to Claude along with the current code and the context of the chat so far. Gemma runs through Ollama, while Claude is reached through Anthropic’s API. The interface displays which model will receive the prompt before I submit it, which means I get to decide how tokens are spent.
The model ladder still exists, but now I climb it by choice
So far, the biggest advantage to using local models and Claude together, as well as orchestrating this “division of labor” amongst models is the fact that it unlocks a bigger headroom for me to actually leverage the capabilities I pay for as a Pro subscriber. With seven in ten prompts costing nothing, my allowance goes towards features that actually justify it, such as Claude Design and Interactive Visuals, which are otherwise unfathomable to even consider after a day’s worth of coding.