<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ruvian fabrin</title>
    <description>The latest articles on DEV Community by ruvian fabrin (@ruvian_fabrin_e83e2e9a9d4).</description>
    <link>https://dev.to/ruvian_fabrin_e83e2e9a9d4</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2514714%2Fde247d75-6216-4464-98f5-7d17af6822c6.jpg</url>
      <title>DEV Community: ruvian fabrin</title>
      <link>https://dev.to/ruvian_fabrin_e83e2e9a9d4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ruvian_fabrin_e83e2e9a9d4"/>
    <language>en</language>
    <item>
      <title>Building a Free, Local Coding Agent with Tauri, Rust, and Vue</title>
      <dc:creator>ruvian fabrin</dc:creator>
      <pubDate>Sun, 23 Aug 2026 00:01:32 +0000</pubDate>
      <link>https://dev.to/ruvian_fabrin_e83e2e9a9d4/building-a-free-local-coding-agent-with-tauri-rust-and-vue-4ahb</link>
      <guid>https://dev.to/ruvian_fabrin_e83e2e9a9d4/building-a-free-local-coding-agent-with-tauri-rust-and-vue-4ahb</guid>
      <description>&lt;p&gt;I've been building Cerne Code — a free, open-source desktop coding agent that runs 100% locally. Think "Claude Code" as a desktop app, but free and compatible with Ollama, llama.cpp, LM Studio, and any OpenAI-compatible API.&lt;/p&gt;

&lt;p&gt;This post covers the architecture, key technical decisions, and what I learned along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tauri v2&lt;/strong&gt; (Rust backend) — native Windows app, ~5MB binary&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vue 3 + PrimeVue&lt;/strong&gt; — reactive frontend with a polished UI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple model providers&lt;/strong&gt; — same chat completions protocol for all 4&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;The agent can read, edit, and create files (with a sandbox + diff review), run commands (including background dev servers), search the web (multi-engine, no API key needed), generate documents (Excel, Word, PDF, PowerPoint), control the screen via computer_use, and delegate subtasks to sub-agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture highlights
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tool execution loop:&lt;/strong&gt; Each turn, the model decides which tool to call. The loop runs in a background async task — the UI gets progress events via Tauri's event system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sandboxed editing:&lt;/strong&gt; Every write_file/edit_file goes to a project-side sandbox first. The user approves/rejects each diff before anything touches the real file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pipeline Dev→QA→Analyst:&lt;/strong&gt; The agent can implement something, then a skeptical verifier confirms with real tests before declaring success. If it fails, it loops back to the dev phase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-engine web search:&lt;/strong&gt; DuckDuckGo + Brave + Mojeek aggregated, with dedup and ranking by consensus. No API key needed by default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Audio input &amp;amp; TTS:&lt;/strong&gt; Speak instead of typing. Listen instead of reading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills, Agents &amp;amp; Personas:&lt;/strong&gt; Reusable instruction files, specialized sessions, and custom personas with their own tone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local model benchmark
&lt;/h2&gt;

&lt;p&gt;I tested 12 local models on tool-calling ability. The winner: gemma4-e4b-qat-mtp via TurboQuant (llama.cpp fork) — 60/60 on 6 tool tasks, 0.2s per call. Full benchmark in the README.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Tauri over Electron
&lt;/h2&gt;

&lt;p&gt;Rust compilation is slower to iterate on, but the resulting binary is ~5MB vs Electron's 150MB+. Memory usage is also significantly lower — the app idles at ~80MB.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open source
&lt;/h2&gt;

&lt;p&gt;MIT license. Download, fork, contribute.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://github.com/RuvianFabrin/cerne-code" rel="noopener noreferrer"&gt;https://github.com/RuvianFabrin/cerne-code&lt;/a&gt;&lt;br&gt;
🔗 &lt;a href="https://ruvianfabrin.github.io/cerne-code.html" rel="noopener noreferrer"&gt;https://ruvianfabrin.github.io/cerne-code.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>rust</category>
      <category>vue</category>
    </item>
  </channel>
</rss>
