# OneLoop: Local First Coding agent written in Rust with nix tooling

> Source: <https://www.birkey.co/2026-08-09-oneloop:-local-first-coding-agent-written-in-rust-with-nix-tooling.html>
> Published: 2026-08-10 01:54:00+00:00

I have been working on my own personal coding agent for the last few
months. As a matter of fact, my initial commit is on 18th of April
2026 and it went through quite a number of iterations. The git history
is quite telling about my experimentation of features such as auto
compacting, memory, and multi-model debate/consensus/judgment etc. It
supported a few big name model providers on top of **OpenRouter**
initially. After using it for real production work for some time, I am
quite happy with the following state of OneLoop [[Projects](https://www.birkey.co/projects.html)]:

Please note that this coding agent is designed by me for me and I do not recommend you use it for production projects since it lacks any security/permission guardrails. However, I'd recommend you clone the repo and just have fun hacking it. It is super easy to get going if you happen to use Nix on a machine at least with 32GB of ram:

```
git clone git@github.com:oneness/OneLoop.git
./ols # builds llama.cpp for your CPU/GPU, downloads Qwen model
./ol  # run in another terminal and start interacting with the agent
echo "Give me a mental model how this code base works" | ./ol
```

I'd like to share a few things I learned along the way building a coding agent tailored to my own workflow. First let me start with things to watch out when you are building your own coding agent, which I highly recommend.

Now, let me talk about how I use OneLoop. Following laws keeps myself
and coding agent in check. I retrofitted **Asimov's Laws of Robotics**
[[Wikipedia link](https://en.wikipedia.org/wiki/Three_Laws_of_Robotics)] as follows:

Ok, you might say that above is too vague or hand-wavy but trust me, they have served me and OneLoop well. It gave me clarity when I am developing OneLoop in terms of adding or removing features. Here are basic steps I utilize OneLoop for my day-to-day work now.

That is pretty much how I use OneLoop. It supports all I need such as clearing context to start new, summaries of long sessions so I can decide to use or not use in my ongoing conversation, switch to different model if I need (when I am running OneLoop from some low end pocket laptop) etc.

Remember, Coding Agent should serve you, optimize for your understanding, and helping you get better at your craft. If you have been just pressing `Enter` so far, please do yourself a favor and ask your coding agent to ban that command until you confirm that you understand what you are doing. Have fun coding!
