Great to see what you're doing there, but speaking as a 30-year hardcore C++ veteran (to the extent of creating my own C++ GUI framework: https://juce.com)... When I was writing a code agent (https://github.com/juggler-ai/juggler), there's no way I'd have used C++ for an agent GUI!
Agent UIs are all markdown, HTML, big scrolling lists, text flow, unicode chars, and all the other stuff that C++ frameworks are terrible at, but which is a doddle in HTML/CSS/JS.. You are a brave man!
Nice to see a gui coding agent. I use tui agents all the time but I am building a gui one. I use Claude Code, Codex, opencode and a couple other but I do not like the DX/UX.
I often want click a part of the wall of text (from agent) and search for related text, open them up on the side or so. I want to open a linked file. I want to answer multiple questions in an async manner, even come back and continue answering the next day.
There are many prompt level features I want too - orchestrate with subagents, but only the tasks I select - how do I select when there is no checkbox. Or maybe delegate a subagent to dig into (read only) one portion of the chat response. Maybe codify (write) only one task in a list of tasks. So many many other small things.
As a full-time user of coding agents, the TUI barely works for me. I think splitting text, searching in text, merging text are more important in agent driven development than ever before. It is all text, all the way. This is what I am building myself, with my own gui framework.
You're not alone - I also revolted against the TUI crowd and created my own GUI-centric harness juggler (https://github.com/juggler-ai/juggler). Might be up your street. If you're not too involved in your own project, maybe help out on mine :)
Honestly, I just don't get the TUI obsession, other than the fact that people are multiplexing many remote sessions over ssh. So my aim with juggler was to have an architecture that could do all the multi-client remote sessions with a GUI/websockets/Y.js sync etc.
If you're looking for an agent implementation that is light on resources, but prefer to work in a terminal, consider also hax (https://usehax.dev/). Less than 2 MB fully static Linux binary, few MBs of RAM use in runtime. Works great with local models also (auto-detects config from running llama-server), besides the usual cloud providers.
If you’re the creator of this harness, you should disclose that. I have nothing against self-promotion, it’s just considered good practice.
Some feedback but it might be worth calling out how your harness differs from other relatively light-weight ones like Pi. I assume its got a much smaller memory footprint given yours is C versus Pi's. There are so many agentic harnesses out there that a comparison table might be a nice thing to have on the landind page.
Note: Just to be clear, I'm not accusing you of trying to hide it, given that the GitHub account for Hax is basically identical to your HN account.
I don't understand the value proposition. It “works great for local models” (they all do) so you’ve got more RAM than you possibly need for any TUI you might want to run. Are people really fretting over a few MB of memory rather than evaluating these tools on their ergonomics and features?
Why would anyone aside from a C hobbiest want to use this? And what does terminal native even mean?
As a counterpoint to a lot of the comments on this now portraying this as dated and questioning the stack behind - this is has the guts of great enterprise level software. Once you’ve serious data being thrown at something built on JS and run into OOMs, that’s when good old C(rust in the future maybe) stack shows these up.
Love to see such a strong tasteful take on software heralding back to the age of solid desktop apps.
Claude doesn't allow third party harnesses unless you pay the full API price. Attempting to avoid that by pretending to be Claude code gets your account banned. Google is the same and will ban your entire Google account.
AFAIK - Of the big three only OpenAI explicitly allows third party harnesses without paying exorbitant API rates. It's one of the primary reasons I still use them.
To avoid these problems some folks use tools like herdr which operate like tmux or via the SDK to drive the official harness, rather than speaking directly to the API routes.
A year ago I never felt my MacBook was short on resources, but these days I find myself thinking a lot about the performance of harnesses and agent tools.
Prospero was the original code name for the ps5 console that is recently jailbroken. That’s why you’re seeing a lot of other unrelated projects with this name too.
That is old. Every harness (herdr, paseo, pi, etc) uses claude through the Agent SDK, and this draws from your subscription, not API pricing. If you're thinking of going with the "but Anthropic could ban every user doing this", if it's good enough for Google to slap it in Android Studio for everyone to use, it's good enough for you in literally any other harness.
The Claude subscription does not include Claude API usage.
Claude behaves in Claude Code somewhat differently vs other coding harnesses (sometimes it's a remarkable improvement) connected directly via api. Also, it cost more than the subscription. There's quite a bit of baked in tooling and assumptions in Claude code that may be good for you, or unhelpful based on what you are doing.
Minor correction: the $20 Claude subscription doesn't include API usage, but the $100 and $200 subscriptions include a corresponding amount of monthly API credits.
What a beautiful and space efficient UI. I love Dear ImGUI and the people that build interfaces with it.
Reading through the whole post, this sounds like an thoughtfully and intentionally designed product. One with strong opinions and the developer’s real lessons behind it. In the current era of slopware- especially around AI tooling - this is giving me damn near an emotional reaction. I am happy to see this.
I had just about the opposite reaction. As in "hey are we in 2000? nice!" Like back when you couldn't much afford to have stupid bloat and there was much better attention paid to "just do the thing and nothing else?"
Agent UIs are all markdown, HTML, big scrolling lists, text flow, unicode chars, and all the other stuff that C++ frameworks are terrible at, but which is a doddle in HTML/CSS/JS.. You are a brave man!
I often want click a part of the wall of text (from agent) and search for related text, open them up on the side or so. I want to open a linked file. I want to answer multiple questions in an async manner, even come back and continue answering the next day.
There are many prompt level features I want too - orchestrate with subagents, but only the tasks I select - how do I select when there is no checkbox. Or maybe delegate a subagent to dig into (read only) one portion of the chat response. Maybe codify (write) only one task in a list of tasks. So many many other small things.
As a full-time user of coding agents, the TUI barely works for me. I think splitting text, searching in text, merging text are more important in agent driven development than ever before. It is all text, all the way. This is what I am building myself, with my own gui framework.
Honestly, I just don't get the TUI obsession, other than the fact that people are multiplexing many remote sessions over ssh. So my aim with juggler was to have an architecture that could do all the multi-client remote sessions with a GUI/websockets/Y.js sync etc.
I did mine as well and that takes 4% the resources of opencode and in a similar tui style.
I think it's great and everyone should make their own.
Some feedback but it might be worth calling out how your harness differs from other relatively light-weight ones like Pi. I assume its got a much smaller memory footprint given yours is C versus Pi's. There are so many agentic harnesses out there that a comparison table might be a nice thing to have on the landind page.
Note: Just to be clear, I'm not accusing you of trying to hide it, given that the GitHub account for Hax is basically identical to your HN account.
Why would anyone aside from a C hobbiest want to use this? And what does terminal native even mean?
Love to see such a strong tasteful take on software heralding back to the age of solid desktop apps.
AFAIK - Of the big three only OpenAI explicitly allows third party harnesses without paying exorbitant API rates. It's one of the primary reasons I still use them.
To avoid these problems some folks use tools like herdr which operate like tmux or via the SDK to drive the official harness, rather than speaking directly to the API routes.
App-server protocol: https://learn.chatgpt.com/docs/app-server
Opencode: https://opencode.ai/docs/server/
How come?
They want you to use and get accustomed to only their own tools. If other coding harnesses were allowed, it's far too easy to switch providers.
They can't allow that, because they only have a few months of head start.
So everyone accepts Claude code which is required for these sweet subsidized tokens.
Claude behaves in Claude Code somewhat differently vs other coding harnesses (sometimes it's a remarkable improvement) connected directly via api. Also, it cost more than the subscription. There's quite a bit of baked in tooling and assumptions in Claude code that may be good for you, or unhelpful based on what you are doing.
T3 does it this way.
But right above this statement, on the Professional Edition purchase page, it says its only for Windows and Mac..
Reading through the whole post, this sounds like an thoughtfully and intentionally designed product. One with strong opinions and the developer’s real lessons behind it. In the current era of slopware- especially around AI tooling - this is giving me damn near an emotional reaction. I am happy to see this.
Can't wait to try it.
I thought it meant the license was missing on GitHub but, no, it's an actual license called the Unlicense.
But then there is the Community and Pro edition so which is which on GitHub? Is the pro version hidden somewhere?
Plus a c++ code base in 2026. I think modern c++ can be made quite safe but I need some claims that it's taken seriously which I don't see.
I'm confused.