Ask HN: Are you using a custom harness?
I was slow to adopt an agentic workflow for a variety of reasons. When I was ready to try an agentic workflow, I didn't want to install Claude on my own system. I have a hard time trusting its boundaries, and I don't want to spend a bunch of time learning its permissions model well enough to start trusting it.
I decided to write my own harness, and thought people would find that a pointless thing to do in 2026. I was amazed how easy it was to build a harness that can read, write, and modify files within a project directory. I now use this harness on a daily basis, and it hasn't grown much since that first iteration.
That made me wonder: How many of us are using a custom harness on a regular basis? What keeps you using your own harness?
yesss. i call mine codemaxxxing 2 (its the second iteration lol), along w a client that manages the harness across multiple devices on tailscale called boxbox. but tbh, lately feeling like when tinker w it, its like tinkering on a vintage car. fun, but using an ai lab's harness with their own model is better.
what got me was finding out how much time went into making the model comfortable in my harness. it kept reaching for tool names and arg shapes it was trained on, so I ended up writing shims that quietly translate them into mine.
atp im basically rebuilding their harness w extra steps lol.
the stuff thats actually mine is model choice, workflow and annoyances like cleaning up after themselves, along with thread to thread communication which i really like, and also just knowing every aspect of a harness.
I also hacked a mechanical numpad to be kind of a codex micro lol, need the client to be mine for that.
cmx2 - https://github.com/clauseo-ai/cmx2 boxbox - https://github.com/clauseo-ai/boxbox2
Yes, since last year. Started with the idea of "Bash is all you need" and from there with me in the loop it's been like my little kid now. I improve it every day and I love Rev Engineer other official harnesses so mine has no dependency other than bun so it's 100% in typescript and no supply chain attack possible.
Yeah, I built mine to learn how these work and have been playing with it since then while I look for a job. https://github.com/devoidfury/hotdog
I have been using my own harness for quite a while now and giving it constant and continuous updates and improvements. It is optimized for use with local models but can also use any API that I have an account with too when the desire arises.
I've only implemented support for one provider at the moment, but it is structured in a way where I can add support for any other providers or local models. It feels good to not be locked into any one company's models or harness.
Is there an accepted definition on what a harness is? Is this like GasTown and similar? Plan mode? Is this a client-side loop with multi-threaded agents running in parallel? If the AI client is doing this on its own, is that considered agentic and/or using a harness? Or does the introduction of saving text to a MD file make it "self learning" a harness?
It feels like the pace at which the industry is defining things may be faster than the actual pace of change sometimes.
Yeah....words are confusing
> AI client is doing this on its own
Well, the llm api on its own cant do anything other than return a stream of text. The harness takes that and decides, this text is part of the response, this text is an edit tool call, this is a bash call to compile, runs the commands and calls the api again (as long as the llm didn't emit a stop_token. They now have a tool_call token the llm sends in between intermittent responses). And saves a session record to disk so that you can exit and resume the conversation later. It also auto injects things like agents.md etc...
I'd say thats the bare minimum. But then usually also includes hooks, introducing tool calls to allow the main session to launch "subagent", and the bits and pieces pile on....
Not currently, but I probably will be in the coming weeks.
I pretty much end up hating every harness I use. Some come really close to what I'm looking for but then completely miss the mark in other ways. At the moment, I'm stripping OpenCode down to its absolute bare minimum, removing pretty much all of the vendor-specific crap and everything else I don't plan on using. Once I'm convinced that's stable, I'll identify how all the "good parts" work and reimplement the core using Rust.
And yeah, I know Pi exists, which in many ways is what I'm looking for, except even that ended up being more of a bulky mess than what I was hoping. Chose the install with Homebrew option, and for some reason it took an ungodly amount of time to install a buttload of dependencies and then compile, only to completely stall out and fail. I mean... what the fuck. Glad it works for other people, but this is the exact type of total nonsense that I'm done with when it comes to modern software.
For Pete's sake... I just want something that reads my text, contacts an LLM, and runs commands on my system. Why does this have to feel like coordinating a manned mission to the Moon? This shouldn't require even hundreds of megabytes of a runtime. It takes a fraction of the time for me to compile the Perfect Dark PC Port, a full blown FPS game, than it does for me to install some of these harnesses.
I’m building Toolang, a language and runtime for agents.
You just write a .too file, in almost natural language, then you have your agent. you can run it as a script, or a chat TUI.
That way, you see .too files instead of packages for harnesses. kinda like Javascript and node.js.
Check it out at toolang.ai
I'm curious to hear what the problem was with Pi? I'd assume the problems you mentioned are due to homebrew (and its dependency churn) rather than Pi itself.
omp (oh-my-pi) all the time. I just loved embracing the terminal and being able to switch between providers freely.