Every "AI coding agent" wants your code sent to somebody else's server.
A coding agent that runs entirely on your machine — no cloud in the inner loop.
A Rust harness wraps a local Ollama/MLX model in a deterministic control plane — event-sourced sessions, deny-first gates, fitness-routed tasks.
In active development · private repo · not yet released
$ harness models list
qwen3-coder:30b tools:native ctx:32k CODE_FIT:strong
$ harness run "add input validation to src/foo.rs"
● routing coding/write → qwen3-coder:30b (local, no cloud)
● gates deny-first checks ✓
● tool-call read ✓ edit ✓ verify ✓
✓ session saved — resume with `harness resume <session>`
$ harness bench --model qwen3-coder:30b --runs 3 && harness report
bug-fix 6/6 · pure-function 7/7 · multi-file 3/3 (pass^3) Any on-device open model becomes the coding agent — on Ollama or MLX
A capability registry probes every model pulled through Ollama (or served via MLX-LM on Apple Silicon), rates it per use-case — coding write, coding read, tool-calling, long-context, reasoning — with a strong/viable/weak/unfit verdict, and routes work accordingly. Gemma 4 is the reference model, not a hard dependency; swapping models is `harness models use <name>`, not a rebuild.
The model never computes policy
Routing, budget, compaction, and gating live in Rust as an event-sourced loop. The model proposes edits; it does not decide what's allowed to run. Deny-first gates check every tool call before it executes, and a resilient tool-call ladder recovers when a model narrates instead of calling a tool.
Resume, fork, delegate, and inspect any run
Every session is a tree, not a transcript. `harness resume` continues from the tip, `harness fork` branches a new line from any node, `harness orchestrate` delegates a bounded child session and accepts only evidence-backed output back, and `harness tree` shows the whole shape.
Self-hosting is the dogfood metric
A scored fixture suite (`harness bench` + `harness report`) measures which models are reliable per task class — the current default, Qwen3-Coder 30B, is reliable on bug-fix (6/6) and pure-function (7/7) work, and its latest multi-file run passed 3/3. A task no local model can hold escalates to a cloud model, but only opt-in and reliability-gated, never by default. The harness's own later phases are being built by the harness itself.
- No cloud on the inner loop — local models by default, any hosted backend is strictly opt-in
- The model never computes policy — gates, routing, and budget stay in deterministic Rust code
- Deny-first tool gates — nothing executes without an explicit allow
- Network access (web search, fetch) is off by default — opt-in and deny-first, same as every other tool gate
Can I use this yet?
Not yet. It's under active development in a private repo — no public release, install, or download at this stage.
What models does it run?
Any model pulled through Ollama, or served via MLX-LM on Apple Silicon — a runtime selector picks the right path per model row. Gemma 4 is the reference/default model; the capability registry rates fitness per task and routes to whichever pulled model fits best.
Where does my code go?
On the local path, nowhere but your machine — the harness talks to Ollama or MLX on localhost. A cloud escalation route now exists for tasks no local model can hold, but it's opt-in and reliability-gated, never the default.
Is there a UI, or just the CLI?
CLI only today — `harness run`, `models`, `bench`, `sources`, and more. A TUI/workspace picker is in design but not shipped.
I wanted a coding agent I didn’t have to trust with my code. Every capable option meant an API key, a network call, and a model I couldn’t inspect deciding what ran on my machine — so I built the harness I actually wanted: a local model doing the writing, with the routing, gates, and budget decisions kept in Rust where I can read them.
It’s not done. The control loop is real and self-hosting — the harness already builds its own later phases, and a scored fixture suite tells me which model to trust with which kind of task instead of guessing. But there’s no public build yet, no shipped UI beyond CLI, and I’m not going to ship a download link before there’s something worth downloading.
In active development · private repo · not yet released