{"slug": "building-a-free-local-coding-agent-with-tauri-rust-and-vue", "title": "Building a Free, Local Coding Agent with Tauri, Rust, and Vue", "summary": "Developer Ruvian Fabrin has built Cerne Code, a free, open-source desktop coding agent that runs 100% locally, compatible with Ollama, llama.cpp, LM Studio, and any OpenAI-compatible API. The agent can read, edit, and create files with sandboxed diff review, run commands, search the web via multiple engines without an API key, generate documents, control the screen, and delegate subtasks to sub-agents. Fabrin benchmarked 12 local models for tool-calling ability, finding gemma4-e4b-qat-mtp via TurboQuant the best with 60/60 on 6 tool tasks and 0.2s per call.", "body_md": "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.\n\nThis post covers the architecture, key technical decisions, and what I learned along the way.\n\nThe 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.\n\n**Tool execution loop:** 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.\n\n**Sandboxed editing:** Every write_file/edit_file goes to a project-side sandbox first. The user approves/rejects each diff before anything touches the real file.\n\n**Pipeline Dev→QA→Analyst:** 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.\n\n**Multi-engine web search:** DuckDuckGo + Brave + Mojeek aggregated, with dedup and ranking by consensus. No API key needed by default.\n\n**Audio input & TTS:** Speak instead of typing. Listen instead of reading.\n\n**Skills, Agents & Personas:** Reusable instruction files, specialized sessions, and custom personas with their own tone.\n\nI 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.\n\nRust 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.\n\nMIT license. Download, fork, contribute.\n\n🔗 [https://github.com/RuvianFabrin/cerne-code](https://github.com/RuvianFabrin/cerne-code)\n\n🔗 [https://ruvianfabrin.github.io/cerne-code.html](https://ruvianfabrin.github.io/cerne-code.html)", "url": "https://wpnews.pro/news/building-a-free-local-coding-agent-with-tauri-rust-and-vue", "canonical_source": "https://dev.to/ruvian_fabrin_e83e2e9a9d4/building-a-free-local-coding-agent-with-tauri-rust-and-vue-4ahb", "published_at": "2026-08-23 00:01:32+00:00", "updated_at": "2026-08-23 00:13:38.613630+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "artificial-intelligence", "large-language-models"], "entities": ["Cerne Code", "Ruvian Fabrin", "Ollama", "llama.cpp", "LM Studio", "TurboQuant", "DuckDuckGo", "Brave"], "alternates": {"html": "https://wpnews.pro/news/building-a-free-local-coding-agent-with-tauri-rust-and-vue", "markdown": "https://wpnews.pro/news/building-a-free-local-coding-agent-with-tauri-rust-and-vue.md", "text": "https://wpnews.pro/news/building-a-free-local-coding-agent-with-tauri-rust-and-vue.txt", "jsonld": "https://wpnews.pro/news/building-a-free-local-coding-agent-with-tauri-rust-and-vue.jsonld"}}