<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Chad — local AI coding agent harness with a verifier loop you can't bypass.]]></title><description><![CDATA[<h1><a href="https://github.com/usechad/chad#chad" target="_blank" rel="noopener noreferrer nofollow ugc">Chad</a></h1>
<p dir="auto"><a href="https://github.com/usechad/chad" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/usechad/chad</a></p>
<blockquote>
<p dir="auto"><em>"Honesty doesn't change. Quality is relative."</em></p>
</blockquote>
<p dir="auto"><strong>Chad is a local AI coding agent with a verifier loop you can't bypass.</strong></p>
<p dir="auto">He runs on your machine. He talks to whatever model you have loaded — qwen3:14b, gemma3, codestral, or a frontier API. After every step of the work, he runs the tests. On failure, he feeds the failure back to the model and tries again. When he's stuck, he stops and tells you he's stuck.</p>
<p dir="auto">He doesn't lie about progress.</p>
<hr />
<h2>Install</h2>
<p dir="auto"><strong>macOS / Linux:</strong></p>
<pre><code class="language-shell">pip install chad-engine
</code></pre>
<p dir="auto"><strong>From source:</strong></p>
<pre><code class="language-shell">git clone https://github.com/usechad/chad.git
cd chad
pip install -e .
</code></pre>
<p dir="auto">You'll also need <a href="https://ollama.com/download" target="_blank" rel="noopener noreferrer nofollow ugc">Ollama</a> running locally with a model pulled. Recommended starting point:</p>
<pre><code class="language-shell">ollama pull qwen3:14b
ollama serve   # runs at localhost:11434
</code></pre>
<p dir="auto">Chad's verifier loop works with any Ollama-compatible model. We've benchmarked qwen3:14b heavily; gemma3:27b, qwen2.5-coder:14b/32b, codestral:22b, and ministral-3:14b also work.</p>
<hr />
<h2>Quickstart</h2>
<pre><code class="language-shell">chad
</code></pre>
<p dir="auto">That opens Chad's interactive shell. Try:</p>
<pre><code>build a single-page snake game in vanilla HTML/CSS/JS
</code></pre>
<p dir="auto">Chad will:</p>
<ol>
<li>Ask a few clarifying questions (discovery layer)</li>
<li>Restate what he heard before writing code (design summary)</li>
<li>Decompose the work into phases (planner)</li>
<li>Build each phase, run the tests, retry on failure (verifier loop)</li>
<li>Halt honestly if a phase deadlocks instead of shipping broken code</li>
<li>Emit a plain-English receipt of what worked and what didn't</li>
</ol>
<hr />
<h2>What makes Chad different</h2>
<p dir="auto">Six things, none of them are taglines:</p>
<ol>
<li><strong>Verifier loop you can't skip.</strong> Every phase runs checks. If checks fail, Chad retries. He doesn't lie about it.</li>
<li><strong>Discovery before code.</strong> Chad asks clarifying questions before he plans. Most agents skip this step. Most builds suffer for it.</li>
<li><strong>Design summary checkpoint.</strong> Chad restates what he heard before writing a line. You catch misreads in 30 seconds, not 30 minutes.</li>
<li><strong>A receipt with every project.</strong> Every Chad project ships with a plain-English file describing what works, what doesn't, and what was skipped. No hidden caveats.</li>
<li><strong>Self-repair on a worktree.</strong> Chad can fix his own bugs. He shows you the fix on a separate copy first; you say yes before it goes live.</li>
<li><strong>Calibrated confidence.</strong> "I'm 87% on web apps, 34% on Tauri." If Chad doesn't know your domain well, he tells you upfront — before you spend an hour.</li>
</ol>
<hr />
<h2>Receipts</h2>
<p dir="auto">We benchmarked Chad's verifier loop against bare models on the standard public coding benchmarks. Reproducible, runtime-graded.</p>
<p dir="auto"><strong>HumanEval+ (qwen3:14b, 2026-05-08):</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Configuration</th>
<th>Pass rate</th>
</tr>
</thead>
<tbody>
<tr>
<td>bare <code>qwen3:14b</code></td>
<td>78.66% (129/164)</td>
</tr>
<tr>
<td><strong>Chad w/ <code>qwen3:14b</code></strong></td>
<td><strong>92.68% (152/164)</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">Δ = +14.02 percentage points · 23 problems rescued · 0 regressions · 12 honest halts.</p>
<p dir="auto">A free 14B local model wrapped in Chad's verifier loop crosses into frontier-API territory on HumanEval+. No API quota, no per-call cost, no code leaving the machine.</p>
<p dir="auto"><strong>Full reproducible benchmarks:</strong> <a href="https://github.com/usechad/chad-bench" target="_blank" rel="noopener noreferrer nofollow ugc"><code>usechad/chad-bench</code></a> <strong>Site:</strong> <a href="https://usechad.dev/" target="_blank" rel="noopener noreferrer nofollow ugc">usechad.dev</a></p>
<hr />
<h2>How the verifier loop works (the concept, in pseudocode)</h2>
<pre><code class="language-python">for attempt in range(MAX_ATTEMPTS):
    code = model.generate(prompt)
    passed, error = run_tests(code)
    if passed:
        return code
    if same_error_class_three_times_in_a_row(error):
        halt_honestly(error)             # stops; tells you it's stuck
        return None
    prompt = with_diagnosis(prompt, error)   # feed failure back, retry
</code></pre>
<p dir="auto">That's the whole idea. The engineering is in the test battery, the diagnosis prompt geometry, the deadlock detector, and the per-model calibration. The loop itself is small. The full implementation lives in <code>dante/build/runner.py</code> and <code>dante/verifiers/</code>.</p>
<hr />
<h2>What Chad isn't</h2>
<p dir="auto"><strong>Not a model.</strong> Chad is a harness. It uses the model you already have.</p>
<p dir="auto"><strong>Not a cloud service.</strong> Chad runs locally. Your code, your prompts, your model weights — none of it crosses the wire.</p>
<p dir="auto"><strong>Not finished.</strong> This is v0.4. Things will change. The verifier loop, discovery layer, and planner are stable. The self-repair branch logic is still maturing. The HTTP API surface is functional but not yet feature-complete. Read <a href="https://github.com/usechad/chad/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer nofollow ugc"><code>CHANGELOG.md</code></a> before assuming a feature is final.</p>
<p dir="auto"><strong>Not magic.</strong> Chad helps the model finish what it starts on tasks where running tests gives useful feedback. On tasks where there's no good "test" — fabricating citations, writing prose, recall benchmarks — Chad adds little. Use the right tool for the job.</p>
<hr />
<h2>Honest limits</h2>
<p dir="auto">Per Chad's own self-assessment:</p>
<ul>
<li>The verifier loop's leverage depends entirely on the test battery's coverage. Edge cases not in the test set don't get caught.</li>
<li>The diagnostician model occasionally repeats the same hint when it should escalate to a different strategy. The deadlock detector mitigates but doesn't fully solve this.</li>
<li>The planner can decompose a task in ways that hide ambiguity (grouping multiple steps into one). When that happens, the verifier can't separate which sub-step actually failed.</li>
<li>Discovery layer scope is bounded by what the discovery prompt asks. Hidden assumptions outside its scope still slip through.</li>
</ul>
<p dir="auto">These are real. We're working on each of them. We're also publishing about them rather than papering over them.</p>
<p dir="auto">See <a href="https://github.com/usechad/chad/blob/main/ARCHITECTURE.md" target="_blank" rel="noopener noreferrer nofollow ugc"><code>ARCHITECTURE.md</code></a> for the deeper design notes.</p>
<hr />
<h2>Hardware</h2>
<p dir="auto"><a href="https://github.com/usechad/chad#hardware" target="_blank" rel="noopener noreferrer nofollow ugc" class="plugin-markdown-hidden-link small link-danger"></a></p>
<p dir="auto">Chad has been developed and benchmarked on consumer hardware. The HumanEval+ run above was produced on:</p>
<pre><code>GPU:  NVIDIA RTX 5090 Laptop (24 GB VRAM)
RAM:  64 GB DDR5
OS:   Pop!_OS 24.04 LTS
</code></pre>
<p dir="auto">Smaller GPUs work too. The constraint is whether the model you want to load fits in VRAM. qwen3:14b in 4-bit quant fits comfortably in 12 GB.</p>
<hr />
<h2>License</h2>
<p dir="auto"><a href="https://github.com/usechad/chad#license" target="_blank" rel="noopener noreferrer nofollow ugc" class="plugin-markdown-hidden-link small link-danger"></a></p>
<p dir="auto">Apache 2.0. See <a href="https://github.com/usechad/chad/blob/main/LICENSE" target="_blank" rel="noopener noreferrer nofollow ugc"><code>LICENSE</code></a>.</p>
<p dir="auto">You can use Chad commercially, modify it, ship it inside your product, and keep your own changes private. Keep the copyright notice and license text intact when redistributing.</p>
]]></description><link>https://forum.cloudron.io/topic/15657/chad-local-ai-coding-agent-harness-with-a-verifier-loop-you-can-t-bypass.</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 16:35:04 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/15657.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Jun 2026 17:58:54 GMT</pubDate><ttl>60</ttl></channel></rss>