I eventually gave up on this task. It's not possible to fight OpenAI or Anthropic's engineering teams. Their reasoning models have all kinds of undocumented back door access to the base models that you'd never be able to replicate from the outside. Even if you had full access you would not have the engineering man hours or experience to keep up.
I think this Agents API thing is a step too far, but Chat Completion is too cold now. Something approximating Responses API seems like the happy medium. You still get most of the control with the only blackbox part being the reasoning loop / tokens. Building agents using the GPT5.6 family w/ Responses API feels pretty close to Star Trek computer shit to me. I thought I was being clever with my DIY contraption on top of chat completion, but it wasn't even close. I have embraced the reality that I will need to use opaque reasoning tokens to give my clients the experiences they are paying me to provide.
It is highly custom to my needs and wants, and I think every developer needs to do this. I only talk to my planner which plans, and it subs out to designer, oracle, coders, testers, and reviewers, etc. It is thus highly optimized for correctness. You can TDD or no TDD. You can fast track small changes. I tweak my harness dozens of times as I encounter new edge cases (esp when I switch models and encounter models not as good at following instructions).
As you can start to see, it is better to own the harness because nobody can build something custom that 100% fits your needs or development philosophy.
I have been running my own setup and evolving it since November as I come up with more ideas and needs. The nicest bit is not being tied to one provider or another. Anthropic decides to stop supporting Claude agent sdk with subs? Or astra outstrips other models? My harness now works with Claude/cursor/codex and soon ACP. It didn’t start that way, it was originally all in on Claude, but now all the things I built on top of Claude now work with the others too.
I might be absolutely wrong, but "harnesses" / cc-derivatives became "good enough" only maybe a year ago max. Before that, people were pushing for gigantic folder structures with custom documents and "pretend you're X" stuff.
My point is, depended on what you're trying to achieve, testing out current-gen harnesses, and nudging your workflows towards them might be better RoI, rather than chasing something that might be throwaway code a quarter later.
Obviously, this really depends on whether you believe model development will speed up or slow down in the upcoming future.
And the system prompt worked great regardless, so i don't think your main point holds, especially as models improves; it isn't throwaway code, but for sure it's evolving constantly, as my own workflow keeps changing.
> My point is, depended on what you're trying to achieve, testing out current-gen harnesses, and nudging your workflows towards them might be better RoI, rather than chasing something that might be throwaway code a quarter later.
Fair point, depends if it's an hobby or you are a developer full time, in the latter case i think it's definitively worth it.
There is the standard API that things like openRouter exposes, thats supported by every provider, and all it is, is manipulating a large blob of memory by adding your own words or asking the GPU to append new words.
Everything else around it is window dressing. All providers accept that API, (only Anthropic has blocked access on their consumer subscription tier).
Its how businesses write their 'bots'. Nobody - except the people trying to sell you "magic" - is incentivized to remove that kind of access.
I can switch out openai/anthropic/deepseek/openrouter/kimi/selfhosted at the drop of a hat. Its a big reason you'll see a comment on HN talk about "There is no moat".
Calling them cc-derivatives is wrong. I've seen many features land in other harnesses long before they came to Claude.
The only thing Claude seems to be "cheating" with is that:
- They provide Windows users a unix VM hosted on their servers - I dont want or need that
- They're better 'trained' at doing compaction / providing the illusion of continuity
- They might do automatic model-switching (not sure if they do) - not something i need.
Sure, if you're in the market for magic then dont put time in having your own harness and just accept the lock-in. Since I'm using them so much i think its worth the investment.
The capabilities of a model unlocks certain harness behaviour, and in its terms might be beneficial to automate more of your x, y, z.
I guess computer use would be an example I was thinking about. Certain models are not as good as some current models (Astra/Fable) in understanding through screenshots, or going through some hoops in some environments. As models evolve, they unlock new capabilities, that you either have to keep implementing in your harness, or using an existing one. I’m pro-using existing just because it doesn’t make sense for my org to support another dev tool internally, when there is heavy better development happening by people who focus on that.
The reason why i said cc-derivative, as far as I can see, cc was the one that convinced people “it might be a good idea to dev this way”. Sure you had some lesser known harnesses around, but a year+ ago, nobody really cared.
I don’t think, at least as of now, anything is really much of a lock in. We switch out between cc/codex/cursor and it takes trivial amount of time to set stuff up, depended on how your dev loop goes.
Again, it really depends on one’s conviction of “how fast things will develop from now on”. I personally think stuff will keep changing very fast. In a year what we think of harnesses will be different. Investing in custom tooling might be bad, as that is basically a lock-in. But again, I don’t know the future, but that’s my bet. Hovering around the edges and using what others battle test is an easy way out right now.
Also in some larger orgs, there is more friction in model choices. So you slowly start losing the benefits of model-swapping. Obviously different for personal projects.
Not really.
Sure its nice for a model to nativly be trained on understanding browsers & DOM/js model, so it can effectively use a `browser` tool.
A model needs a certain 3d mental model before it can successfully use a `blender` tool. Opus 4.5 had this to some extend without specifically training for it - but sure this is one aspect i think models will rapidly improve on this year.
But at the same time these tools carry a description of how they're used specifically - so changing out the `blender` tool for some other 3d modeling software shouldn't affect its capabilities. Using/creating a coherent description of the desired art-style is most of the value of the work.
So its still not clear to me what you mean with "certain harness behavior" or "unlock new capabilities".
You get access to a model that can be better or worse at certain tasks, sure.
The big change i've noticed last year is they've gotten better at prompting themselves (subagents, delegate, w/e you want to call it).
But the explosion of how fast things went last year is mostly "existing software * better model". For that capability explosion to continue you'd need ever more "software" that improve with AI (or more existing software unblocking their interface for model use)
There will definitely be more software, but you need time to incorporate it in your work (like eg `git`) for it to meaningfully feels like AI is unlocking new things when using it.
For new stuff like being able to control a robot dog, we first all need to have a robot dog for it to feel like very fast development.
----
As for "Computer use" specifically that seems like a bad example from my perspective.
The only real "added capabilities" over the past year i've seen is better selfprompt + comprehending screenshots.
Every other use case i'd consider computer-use is just friction that needn't have been there in the first place. Its the software/os you're using that doesnt have a proper interface that's creating the friction. Not the lack of model/harness capabilities.
I have had a `browser` tool for a year that's just a debug-socket to ff/chrome with eval + pre/post screenshot, and ever since 4.4 ~ 4.5 every model has understood it just fine and can do basically anything.
Reasoning _what_ to do with it is the 'intelligence' we're trying to benchmark and everything since Opus 4.5 was basically 'good enough' for anything non-creative a human could do.
E.g. having a model get good at creating drafts of emails based on support tickets, is a function of how good the cli/mcp and instructions are.
Can you be more specific in what capability increase you see getting unlocked?
As a final point, the models are so good now that you can ask claude inside claude to write/setup plugins for pi to do everything claude can do.
The reason i dont use pi to ask to improve the claude harness, is because anthropic is trying to build a moat with their closed source crap. They'll succeed because enterprise is slow to adapt and doesn't understand its wasting money, not because their models unlock certain harness behavior. The competition who is not wasting money will have a step up.
There's a difference between their harness and your harness. The latter can be tuned to your preferences, while the former cannot. A custom harness can do everything that a packaged harness cannot. Good luck getting Claude Code to coordinate with multiple model providers or deeply integrate with your environment.
The point you're making is to be a consumer, which admittedly, is probably best for most people, but it's not going to satisfy the hacker. Normies aren't building custom harnesses, so your argument is DOA for the target demographic.
Also, vendor lock-in. No thanks.
Again, this is all subjective risk assessment. I very much support any engineer to learn how to make harnesses, and I, myself, have a long way to go. We’ll see where we are in a year or two, I guess.
Any good starting points or tutorials you recommend?
I am in the business of provisioning custom AI robots for paying customers. I need to be able to provide certain assurances and offer operational simplicity or the whole thing falls apart. These systems need to survive in their environments. Accounting and compliance teams feel a lot more comfortable with the landscape around the frontier model companies.
If I went to my favorite client on Monday and tried to sell them what HN seems to think is the most ideologically pure AI solution, I would probably be fired as a vendor.
It's not trivial, but cmon, i did during weekends from my phone and FOR ME it's so much better than the codex or claude, it has every i need and want :D
I'm using my own harness for work and hobby, has github integration, review mode, interactive voice mode, overlayed worktree, browser integration, mcp and much more.
Using claude and codex feels like picking up a club, in-line with the caveman skill...
I could patch this together with Herdr and OMP and some custom server stuff but it works right out of the box!?
And yet, I find Pi so much better to work with than Claude Code.
(In fact, "need to support mobile" is the main reason given for the loss of personality from the web as a whole!)
> Steer clear of load-bearing tech debt as your agents evolve.
Satirical?
That was yesterday. I think the crown currently belongs to DeepSeek Flash v4.1 for the next few days or weeks.
I’ve been doing this for the past few months. I started with a server where I ran pi in tmux and then used that to build an LLM gateway and agent session manager, then built deterministic workflows using bash scripts and a skill/script distribution system. The app works on desktop, mobile and web and it works great. Non technical colleagues are using it to build and ship real software and it’s cheap AF even using API pricing because it works well with Luna or deepseek.
I had issues with some other models but it seems to do with the system prompt and tool calling format. Some models seem to only work well with some harnesses.
I made my own harness based on this, which I jerry rigged to a Codex sub.
It would be trivial for every request to clone a full lxd container and have all the tools and repos required if I wanted to allow it to do even more.
Not sure why anyone prefers to choose locked in options
Convenience. And OPEX vs CAPEX something something.
https://github.com/omnara-ai/omnara - this is a self hostable agent API that I'm working on. It stores the state of all agents in a postgres db you can easily query, rather than a local json file or sqlite file per agent.
The intent is that anybody can drive it from Claude/ChatGPT/Pi on their phone after MCP sign-in (oauth), the model has full computer use capability, but we can also leverage it to build guided agent workflows in our own dashboard.
Also yes to an open runtime.
Spider men meme of developers pointing at each other thinking "Not it".
Async tool calls, having the agent wait indefinitely for a human response, and showing a form or questions to the user via a tool call are a few common capabilities that come up that a product manager might miss at first.
This is why I've been building Nvoken. LLM agnostic, ergonomic SDKs, flexible tool call patterns, tenant and user-aware budget enforcement, etc.
I'd really appreciate any and all feedback on this! It gives you some free tokens on signup and it's super quick to try.
All of this is specified in the ACP spec, so if you build your agents from that - you don't end up skipping features.
Also vital is proper prompt caching, tool design and some connection retry mechanism.
Oh good reminder. I need to do that.
> Also vital is proper prompt caching, tool design and some connection retry mechanism.
prompt caching is weirder than i originally thought, and so variable across providers. Retry is easy, but can you explain more on tool design?
Going off and searching the web isn't really it.
You need to create 'new worlds' where they can operate best - and even then constrain what it does.