Interlinked.

The free model
was good enough.

A blind comparison: one local open-weight model on a single RTX 5090, one budget API, one frontier API. Same code. Same structured output. Same scoring. April 2026.

COSTQUALITYGemma 4Haiku 4.5Opus 4.6

TL;DR

Key takeaways

01

A free local model matched 80%+ of frontier. Gemma 4 26B Q8 with thinking mode, on a single RTX 5090, produced structured code analysis at 80%+ of Opus 4.6 depth -- for $0 per chunk.

02

Zero parse failures across 30 outputs. Every model returned valid JSON on every chunk. Reliable structured output from a local 26B model is no longer a coin flip.

03

The gap is depth, not correctness. On the hardest chunk Opus surfaced more cross-references than the local model, but nothing Gemma said was wrong. It just said less.

04

At scale, price beats polish. Ten thousand chunks cost $0 locally versus $330 on a frontier API -- about 20% less depth for 100% less spend.

05

The model is commoditized; the scaffold is the product. What turns a good-enough model into a better coding agent is machine-wide retrieval that feeds it the right context. That's where Interlinked Files lives.

Local model

$0

80%+ of Opus quality · zero parse failures

Frontier API

$330

Opus 4.6 at 10K chunks · 20% deeper, not 20% more correct

The test

Three models. Same 10 code chunks from a Rust agent framework. Gemma 4 26B MoE Q8 with thinking mode running locally on Ollama, plus Claude Haiku 4.5 and Opus 4.6 via API. Each model received identical source code and instructions: produce structured JSON with semantic labels, cross-references, and Q&A pairs.

#1 Best value

Gemma 26B Q8 Think
$0.00 · 9.2s/chunk · 0 parse failures

#2 Best quality

Claude Opus 4.6
$0.033/chunk · 7.1s · 6 cross-refs on hardest file

#3 Best restraint

Claude Haiku 4.5
$0.0024/chunk · 3.5s · perfect silence on trivial code

Zero parse failures across all 30 outputs. Every model produced valid JSON on every chunk.

Structured output reliability from a local 26B model is no longer a coin flip.

Head-to-head

Same task, three price points.

ModelProviderCost / chunkTime / chunkParse failuresAvg output fields
Gemma 4 26B MoE Q8 + ThinkLocal (RTX 5090)$09.2s0~3.1
Claude Haiku 4.5API ($0.25 / $1.25 MTok)$0.00243.5s0~4.0
Claude Opus 4.6API ($15 / $75 MTok)$0.0337.1s0~3.7

All three models produced valid JSON on every single chunk. Zero parse failures. That alone is notable -- structured output reliability from a local 26B model used to be a coin flip. Gemma 4 with thinking mode has apparently solved this.

Hard test

50-line function, 4 trait dependencies.

The hardest chunk: a Rust Runner struct that sets up Handlebars templates, spawns tokio tasks with mpsc channels, and mocks service responses with Mutex-guarded VecDeques. Opus named specific patterns like mpsc channel capacity and Mutex-guarded dequeue ordering.

The depth gap is real: about 20-30% less detail from Gemma on complex chunks. But nothing Gemma said was wrong. It just said less.

Opus cross-refs

6

Most specific pattern identification

Haiku cross-refs

5

Surprisingly close to Opus

Gemma cross-refs

3

Correct but surface-level -- $0

Deep dive

Complex chunk breakdown.

Side-by-side comparison on the hardest file in the test set.

CriterionGemma Q8 ThinkHaiku 4.5Opus 4.6
Reads neighbor code?YesYesYes -- most specific
Explains mechanism?Correct but surface-levelDetailedMost detailed
Cross-references found356
Q&A pairs generated344
Hallucinations000

Easy test

A 4-line struct. The right answer is silence.

ModelOutputAssessment
Gemma Q8 Think2 labels, 1 Q&AMinor over-description but acceptable
Haiku 4.50 labels, 0 Q&APerfect restraint -- said nothing about a trivial struct
Opus 4.62 labels, 1 Q&A, 1 cross-refCorrectly identified the struct as a return type of a related service

Haiku showed the most restraint -- perfect silence on a trivial struct. Opus found a real connection even on trivial code (identified the struct as a return type of a related service). For batch processing thousands of chunks, Gemmas slight over-description is acceptable noise.

$0
per chunk. forever.
No API keys · No rate limits · No data leaving your machine · RTX 5090

Cost at scale

What 100K chunks actually costs.

The per-chunk difference is small. At scale its the difference between free and a car payment.

Model1K chunks10K chunks100K chunksWall time (10K)
Gemma Q8 Think (local)$0$0$0~25 hours
Haiku 4.5 (API)$2.40$24$240~10 hours
Opus 4.6 (API)$33$330$3,300~20 hours

The quality tradeoff

The gap is depth, not correctness.

Quality budget (complex chunks)
Opus 4.6 -- 100%
Haiku 4.5 -- ~90%
gap
Gemma Q8 -- ~80%
20% depth gap
The tradeoff
Opus 4.6
6 cross-refs, 4 Q&A
Names mpsc capacity, Mutex dequeue ordering
$330
at 10K chunks
Gemma Q8 Think
3 cross-refs, 3 Q&A
Correct but less mechanical detail
$0
forever
20% less depth for $330 less cost. The depth gap is real. The price difference is bigger.

All three models are production-quality. Zero hallucinations, zero parse failures, correct grounding on every chunk. For batch code analysis at scale -- the kind of work that runs overnight on thousands of files -- the free local model is the clear winner. Not because its the best, but because its good enough.

"Good enough at $0" beats "slightly better at $330" every time.

The era of paying per-token for code understanding is ending.

The bigger picture

The quality plateau is real.

Local open-weight models have hit production quality for structured code analysis. The remaining gap is depth, not correctness. If you have a GPU, the model is free.

What matters now is what you build on top of it. The retrieval infrastructure, the context management, the tool orchestration -- these matter more than the model weights. Thats where Interlinked Files lives.

Machine-wide retrieval that turns any model into a better coding agent. The model is commoditized. The scaffold is the product.

FAQ

Common questions.

Is a free local model really good enough for production code analysis?

For batch structured analysis, yes. Across all 30 outputs there were zero hallucinations and zero parse failures, at 80%+ of frontier depth -- the remaining gap is detail, not correctness.

If the model is free, what does Interlinked Files actually sell?

The retrieval scaffold, not the model. It keeps an always-fresh, machine-wide index so any local or API model gets the right files instantly -- a single filename lookup in 85 µs (139 µs median across 4.47M files), and content search in ~7-9 ms.

How much faster is that than the tools I already use?

On a 4.47M-file machine (Ryzen 9 9950X3D), a filename lookup runs 412,000x faster than VS Code and ~480,000x faster than Windows Search, which takes 67 s. A content query that takes ripgrep 93.8 s comes back in 16 ms -- roughly 58,625x.

Why does search speed matter for an AI agent specifically?

It collapses the slow part. A grep-driven lookup that cost an agent 6m57s across 71 tool calls -- burning ~58% of its context -- becomes one call in 16 ms and ~0% of tokens, about 7,200,000x faster. The index idles at ~44 MB and reflects edits in ~1 ms, so results are never stale.

What does it cost?

Everything local is free forever, no card. Hosting starts at $5.99/mo. No API keys, no per-token metering, and the index never leaves your machine: nothing is uploaded unless you publish a project or a link.

Test run: 10 code chunks from a Rust agent framework (ForgeCode). Structured JSON output. Local model: Gemma 4 26B MoE Q8 with thinking mode, Ollama, RTX 5090. API models: Claude Haiku 4.5, Claude Opus 4.6. All runs April 2026.