what is a harness? The comments below are mixing IDE/ADE but other suggestions are purely terminal things and I don't get what their value is over just a terminal. Is a harness like a loop where it's just a vague thing that everyone nods about but everyone is nodding at something different?
The harness is the agent. LLM's can be asked to output things in JSON for example. The LLM then literally asks for things like "execute this cmd" or search/replace this string. The LLM outputs text, but in a deterministic format that can be parsed. The harness calls the LLM, exposes tools, executes tools the LLM asks for, gates tool use based on security controls. It's the runtime that the agent uses to do work.
My understanding is that the harness is the set of function calls (or tool calls) that let the LLM interact with your codebase. It's independent of the IDE or CLI.
The tool calls will be, among other things, something like ReadFile, RipGrep, PatchFile, Shell.
When people talk about the value of different harnesses, they're also implicitly talking about the quality of the system prompt.
The same exact model, when given a different set of tools and a different system prompt, can behave differently.
A harness is the tooling around an LLM that uses its responses to do work. For example, let's say a harness sends your message to the LLM and the LLM emits a tool call - the harness is responsible for processing that tool call, executing the tool, and then sending its response back to the LLM to get more of its turn. The harness is responsible for keeping the conversation history to send back to the LLM each time it needs more completion. The harness is responsible for displaying the user interface that allows you to send instructions to the LLM or configure MCP servers or whatever. Claude Code is a harness, Pi is a harness, OpenCode is (technically) a harness, it's basically the LLM "client". The model is what generates the completions itself, but the harness is how you invoke it. And generally when people say "agent" they mean the harness hooked up to some model.
You might be joking, but a harness provides much more than just the prompts: at a minimum, it provides the system prompt and the built-in tools that the LLM can use, but it can also provide things like subagent management, custom compaction logic, session forking, etc.
It’s a new buzzword where everyone says it but means entirely different things. You can use it to sound smart whenever there’s a conversation about how you’re not extracting value from your coding agent and also when you are extracting really good value. Very flexible term!
I also quite like driving OpenCode through something like Kepler / Paseo and tools like that (with those I can still use my Anthropic Condition by Claude Code being treated similarly - as something that gets tasks dispatched to it, while the GUI I see is Kepler / Paseo).
On the desktop side, ZCode was surprisingly usable for something that came out of nowhere (I wasn't aware of it at all before trying out the GLM Coding Plan): https://zcode.z.ai/en
Last time I tried some of these, none of them had the "manual mode" that CC has, where it shows you change by change as diffs and you can edit them before accepting and moving on to the next change. I like that because if it's going off pattern I can spot it early on and guide it correctly, instead of having to review the whole completed diff at the end when it's too late. I should spend the weekend checking them out again to see if they added that but I assume with everyone going full agent mode they probably didn't.
The out of box experience of omp.sh is wow imo so much nicer than Claude. Claude spends too much time being nice and gassing me
Up and omp just gets to work. It’s idk smarter like a far better system prompt and all around loop.
T3 Code has been amazing. Completely free. Really impressed with the desktop app and the mobile app experience and the way it works seamlessly has me actually accomplishing tons of stuff while I'm out on mobile that I would otherwise have to wait to come home for. First time in a while I'm actually excited to use a desktop UI instead of the terminal. Blows away the official Claude Code mobile app. I can switch between my Claude and Codex monthly subscriptions in it as well. There's a TestFlight beta SwiftUI mobile version that's so much nicer than the one in the App Store. I'm running the nightly version of the desktop app.
And this is coming from someone that's not particularly a big fan of Theo. T3 Code should get more recognition; people aren't just aware of it yet.
It’s not just bloat at this point. I run oMLX and run models locally. using Claude code on the first message dumps 40k of tokens that my laptop takes 5 mins to compute.
Piggybacking on this thread to ask my question: What are alternatives that are multiplayer (team oriented) by default? For example, I want my team to see all my sessions easily, vise versa. another way of stating: all the agents are running in a container that that any member of the team can view and interact with.
Just as a +1 anecdote. I enjoy using pi a lot. I used to h think the harness matters a lot but with the current iteration of models I am starting to sway that while it matters it’s less and less important and that CC is bloated. I did some quick tests when I switched and a task that would take $5 in tokens would be completed in $0.50 in pi. Very anecdotal and I don’t have a test framework setup to make this very official but increasingly felt like CC was spinning its wheels on the easiest of tasks.
I’ve tried a bunch of them, and I seriously do not understand these recommendations. It was a rough road and a steep hill, but right now CC is absolutely the best harness on the market, as for me, whatever top tier model is under the hood (mostly, some of them, like DeepSeek, don’t fit CC at all).
Inversely I don’t understand the praise for CC. These days it feels like bloatware. It absolutely can get the work done but when I measure on token and time use it ends up being a multiple of pi like harnesses.
CC works but for me it felt like increasingly they have zero incentive to make it a great experience. You hear folks like Boris talk about spinning up thousands of agents over night and agents chatting back and forth in GitHub issues and while I think it’s great from figuring out what the future looks like I don’t think it represents the reality of ROI today. So the folks building the tool are so disconnected I am simply not sure it’s a great experience anymore.
It's buggier for me than it has ever been before. I don't think that agentic coding always leads to such a buggy mess. I just don't think that the Anthropic front-end software team is very good at agentic coding.
Funnily enough, I would say almost the opposite. CC’s feature set is basically table stakes for an agent these days (does it have ACP yet? Very close to behind table stakes if not) and it has a lot of bloat powering that.
IMO part of it is that the underlying LLMs have gotten better enough that harnesses feel better even if they haven’t changed. I have a toy harness that barely implements the features you’d expect and it works surprisingly well. Like there’s literally nothing clever, it calls tools and that’s about it, and it still mostly does the right thing.
Based on the fact that Claude Code is only optimized for Anthropic models, whereas Pi and Omp are optimized for a wide variety of models, including open weights.
What’s the counter argument? pi and ohmypi are pretty fantastic. Of course like all developer tools it depends how you do your work but I am not sure what you are trying to achieve in your comment.
how would i comeup with counter argument if i dont know what original argument is. No one is disagreeing with your subjective experience, gp comment said 'better' without qualification.
what is a harness? The comments below are mixing IDE/ADE but other suggestions are purely terminal things and I don't get what their value is over just a terminal. Is a harness like a loop where it's just a vague thing that everyone nods about but everyone is nodding at something different?
The harness is the agent. LLM's can be asked to output things in JSON for example. The LLM then literally asks for things like "execute this cmd" or search/replace this string. The LLM outputs text, but in a deterministic format that can be parsed. The harness calls the LLM, exposes tools, executes tools the LLM asks for, gates tool use based on security controls. It's the runtime that the agent uses to do work.
Are the LLM and agent the same thing? Why different nouns ?
3 replies →
My understanding is that the harness is the set of function calls (or tool calls) that let the LLM interact with your codebase. It's independent of the IDE or CLI.
The tool calls will be, among other things, something like ReadFile, RipGrep, PatchFile, Shell.
When people talk about the value of different harnesses, they're also implicitly talking about the quality of the system prompt.
The same exact model, when given a different set of tools and a different system prompt, can behave differently.
harnesss == thing that calls LLM API, acts on response, and maybe does that again.
A harness is the tooling around an LLM that uses its responses to do work. For example, let's say a harness sends your message to the LLM and the LLM emits a tool call - the harness is responsible for processing that tool call, executing the tool, and then sending its response back to the LLM to get more of its turn. The harness is responsible for keeping the conversation history to send back to the LLM each time it needs more completion. The harness is responsible for displaying the user interface that allows you to send instructions to the LLM or configure MCP servers or whatever. Claude Code is a harness, Pi is a harness, OpenCode is (technically) a harness, it's basically the LLM "client". The model is what generates the completions itself, but the harness is how you invoke it. And generally when people say "agent" they mean the harness hooked up to some model.
Harness is a set of artisanal prompts.
You might be joking, but a harness provides much more than just the prompts: at a minimum, it provides the system prompt and the built-in tools that the LLM can use, but it can also provide things like subagent management, custom compaction logic, session forking, etc.
isn't that more what a skill or mpc are?
It’s a new buzzword where everyone says it but means entirely different things. You can use it to sound smart whenever there’s a conversation about how you’re not extracting value from your coding agent and also when you are extracting really good value. Very flexible term!
No it actually means a thing. A harness is the loop while(true) {command = ai.prompt(response); response = run(command);}
I'm gonna shamelessly plug my own here :) https://dirge-code.github.io/
I like it.
I think creating your own agent is the Hello World of agentic coding. Instead of Rust, I used D for mine.
I get hung here on Debian 13 after installing rustup and doing rustup install stable.
Building [=======================> ] 610/611: dirge(bin)
Just hangs there :(
might just be slow, it can take over 5 min to compile
That actually looks nice
I’m in the Claude code harness for everything boat too. What are the alternatives?
What the person above is suggesting:
* https://pi.dev/
* https://omp.sh/
(no personal opinions of either, links might be useful)
I think that OpenCode is nice, their CLI version is enjoyable and their desktop/web version is okay:
* https://opencode.ai/
I also quite like driving OpenCode through something like Kepler / Paseo and tools like that (with those I can still use my Anthropic Condition by Claude Code being treated similarly - as something that gets tasks dispatched to it, while the GUI I see is Kepler / Paseo).
On the desktop side, ZCode was surprisingly usable for something that came out of nowhere (I wasn't aware of it at all before trying out the GLM Coding Plan): https://zcode.z.ai/en
Last time I tried some of these, none of them had the "manual mode" that CC has, where it shows you change by change as diffs and you can edit them before accepting and moving on to the next change. I like that because if it's going off pattern I can spot it early on and guide it correctly, instead of having to review the whole completed diff at the end when it's too late. I should spend the weekend checking them out again to see if they added that but I assume with everyone going full agent mode they probably didn't.
2 replies →
The out of box experience of omp.sh is wow imo so much nicer than Claude. Claude spends too much time being nice and gassing me Up and omp just gets to work. It’s idk smarter like a far better system prompt and all around loop.
Gonna try to find a way to use this at work.
No one in their right mind would install software using `curl | bash`
5 replies →
T3 Code has been amazing. Completely free. Really impressed with the desktop app and the mobile app experience and the way it works seamlessly has me actually accomplishing tons of stuff while I'm out on mobile that I would otherwise have to wait to come home for. First time in a while I'm actually excited to use a desktop UI instead of the terminal. Blows away the official Claude Code mobile app. I can switch between my Claude and Codex monthly subscriptions in it as well. There's a TestFlight beta SwiftUI mobile version that's so much nicer than the one in the App Store. I'm running the nightly version of the desktop app.
And this is coming from someone that's not particularly a big fan of Theo. T3 Code should get more recognition; people aren't just aware of it yet.
ArtificialAnalysis puts out benchmarks for harnesses now as well, and OpenCode seems to be winning it. https://artificialanalysis.ai/agents/coding-agents#coding-ag...
I only found this yesterday, and it inspired me to start testing out OpenCode.
Just a warning, this is on Opus. There's not a clear harness winner. It will change depending on the models.
I'm not surprised to also see Cursor above Claude code, their harness is very good.
2 replies →
Can OpenCode dispatch background subagents yet? I tried it a week ago and saw nothing. This is 99% of my workflow at this point.
5 replies →
[dead]
If you like running everything in a VM and using a web browser as your UI, Shelley is very good: https://github.com/boldsoftware/shelley
It works nicely in the browsers on my tablet and phone, too.
On exe.dev you can ask it to customize itself, and it will automatically rebase your customizations when upgrading to a new release.
I think that writing your own harness is a rite of passage now, just like writing your own search engine or database, rolling your own crypto…
Anyways, please try mine!
https://github.com/deepclause/deepclause-sdk
eventually we will get to “just use postrges” stage
It’s not just bloat at this point. I run oMLX and run models locally. using Claude code on the first message dumps 40k of tokens that my laptop takes 5 mins to compute.
I’ve stopped using it completely now.
Did you build you own harness? I would miss skills and all the ecosystem if I did the same no?
1 reply →
https://github.com/tontinton/maki is tackling the right issues IMO. not sure how they compare with the rest
Piggybacking on this thread to ask my question: What are alternatives that are multiplayer (team oriented) by default? For example, I want my team to see all my sessions easily, vise versa. another way of stating: all the agents are running in a container that that any member of the team can view and interact with.
Mine is a WIP for automation but has similar concepts to what you're looking for: https://github.com/rush86999/atom
thank you all! got something to tinker with this weekend
i like to challenge my assumptions and try new tools
Just as a +1 anecdote. I enjoy using pi a lot. I used to h think the harness matters a lot but with the current iteration of models I am starting to sway that while it matters it’s less and less important and that CC is bloated. I did some quick tests when I switched and a task that would take $5 in tokens would be completed in $0.50 in pi. Very anecdotal and I don’t have a test framework setup to make this very official but increasingly felt like CC was spinning its wheels on the easiest of tasks.
4 replies →
I’ve tried a bunch of them, and I seriously do not understand these recommendations. It was a rough road and a steep hill, but right now CC is absolutely the best harness on the market, as for me, whatever top tier model is under the hood (mostly, some of them, like DeepSeek, don’t fit CC at all).
Inversely I don’t understand the praise for CC. These days it feels like bloatware. It absolutely can get the work done but when I measure on token and time use it ends up being a multiple of pi like harnesses.
CC works but for me it felt like increasingly they have zero incentive to make it a great experience. You hear folks like Boris talk about spinning up thousands of agents over night and agents chatting back and forth in GitHub issues and while I think it’s great from figuring out what the future looks like I don’t think it represents the reality of ROI today. So the folks building the tool are so disconnected I am simply not sure it’s a great experience anymore.
3 replies →
It's buggier for me than it has ever been before. I don't think that agentic coding always leads to such a buggy mess. I just don't think that the Anthropic front-end software team is very good at agentic coding.
1 reply →
Funnily enough, I would say almost the opposite. CC’s feature set is basically table stakes for an agent these days (does it have ACP yet? Very close to behind table stakes if not) and it has a lot of bloat powering that.
IMO part of it is that the underlying LLMs have gotten better enough that harnesses feel better even if they haven’t changed. I have a toy harness that barely implements the features you’d expect and it works surprisingly well. Like there’s literally nothing clever, it calls tools and that’s about it, and it still mostly does the right thing.
1 reply →
I have been building and maintaining a coding harness, with help from the community https://github.com/vinhnx/VTCode. Hope you'll check it out.
You sound like I could afford that.
what is this comment based on ? vibes?
https://artificialanalysis.ai/agents/coding-agents#coding-ag...
Based on the fact that Claude Code is only optimized for Anthropic models, whereas Pi and Omp are optimized for a wide variety of models, including open weights.
they are not really optimized for 'wide variety of models' . what optimization did pi do for glm 5.3?
2 replies →
because not everything is a shilling advertisement?
Vibes like your low quality comment?
What’s the counter argument? pi and ohmypi are pretty fantastic. Of course like all developer tools it depends how you do your work but I am not sure what you are trying to achieve in your comment.
how would i comeup with counter argument if i dont know what original argument is. No one is disagreeing with your subjective experience, gp comment said 'better' without qualification.
2 replies →