Nitpicks about CLI coding agents:<p>Many times, while they are doing something, I’ll be typing a prompt, and then all of a sudden I get a question with Y/N options, and by accident, I’ll type Y/N as part of a word thus “answering the question”, many times either steering in the wrong direction or stopping the agent<p>Neither Claude code nor Codex solve this. The only way I’ve found to prevent it is to type somewhere else and then paste, but it’s super annoying<p>Also, when I want two agents in different sessions to talk to each other, it’s kinda janky, I have to talk to both and act as a messenger for a couple of turns before they properly coordinate. I wish I could just sort of click somewhere, and link unlink two or more sessions<p>Does Próspero solve the things above?<p>Any pans for “swarm”/group control of agents?
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.<p>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.<p>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.<p>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 (<a href="https://github.com/juggler-ai/juggler" rel="nofollow">https://github.com/juggler-ai/juggler</a>). Might be up your street. If you're not too involved in your own project, maybe help out on mine :)<p>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.
Thanks Julian, I just checked it and it looks lovely and ticks quite a few of the boxes in my mental model. I will clone and dig in.<p>Also, I don't remember how but I have heard of JUCE before and I immediately recognized it even though I have never used it. I think I spend too much time on github :D
Ha, your columns look a lot like why I made my own as well - <a href="https://github.com/chicagobuss/crusteo" rel="nofollow">https://github.com/chicagobuss/crusteo</a><p>I loved the utility of paseo but like the OP didn't want to build on web frameworks, so I re-wrote all of it in rust with zed's ui framework for the frontend desktop client.<p>More on my personal blog about it here:
<a href="https://chicagobuss.dev/blog/my-setup/" rel="nofollow">https://chicagobuss.dev/blog/my-setup/</a>
Using TUI is also architecturally simpler. I don't want to rely upon third-party mappings of the CLI/MCP to the GUI, which are potentially incomplete or buggy.
I'm similar but not really a programmer. I've been a linux sysadmin for a few decades but for whatever reason I prefer using Codex via the desktop app rather than the TUI. The desktop app on linux is fine for me. Note: i've not used it anywhere else but since linux was the last to get the desktop client i'm assuming it's at least as good on other operating systems.<p>On looking at Prospero it's ... simpler than this is so maybe not robust enough for your wants.
His GUI looks like it's inspired at least in part by Google's Antigravity 2 (<a href="https://antigravity.google/product/antigravity-2" rel="nofollow">https://antigravity.google/product/antigravity-2</a>).
I see the argument but personally I find LLMs to be a perfect TUI application because of their functionality. Text in -> text out is precisely how the models work so the interface doesn't need to go much beyond that.
I would agree 100% with you if context was not an issue. But it is and a big one. In a chat, I have questions and investigations that should always branch off. I also make tiny test implementations from an ongoing idea (in the chat). Forking the idea, or even running parallel ideas. None of these are possible unless we can manipulate the text, split into smaller chunks and send off to agents.
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: <a href="https://juce.com" rel="nofollow">https://juce.com</a>)... When I was writing a code agent (<a href="https://github.com/juggler-ai/juggler" rel="nofollow">https://github.com/juggler-ai/juggler</a>), there's no way I'd have used C++ for an agent GUI!<p>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!
> and all the other stuff that C++ frameworks are terrible at, but which is a doddle in HTML/CSS/JS<p>This is very interesting. I know that coding string-related stuff with C/C++ can be incredibly tedious and error prone (even hard security-wise). But all the stuff in the web-related stacks/libraries in other languages, is either already somehow being transcompiled to C to execute, or could be relatively easily ported/reused by directing an LLM/agent to do it<p>Do you think that could work to make C/C++ better at this? What things would you import/copy from elsewhere?
Strings are trivial in C++. Drawing 2D graphics is fine, many libraries do it. Creating old-fashioned component frameworks (like Qt, JUCE, etc) is easy. I implemented all those things on my own, decades before AI.<p>The hard bit is when you have complex, responsive layouts involving text. (And styling it)<p>Something seemingly trivial like an agent-style chat containing markdown text blocks, where it's expandable and smoothly scrollable is insanely difficult. The only frameworks that do this well are browsers, and the amount of horrible, horrible logic hidden inside them to make it look easy is hard to believe.<p>And since in many agents you're also going to want to display actual HTML, unless you're going to embed a browser engine in your C++ library, that's just not doable.
Thank you for the insightful explanation<p>> And since in many agents you're also going to want to display actual HTML, unless you're going to embed a browser engine in your C++ library, that's just not doable.<p>I guess this is the main issue. Either you end up reimplementing a browser (which will def have a ton of issues), or you embed a browser and you end up with bloat anyway
You don't need a full browser or a full HTML implementation. You just need enough HTML support for markdown converted to HTML and wxWidgets has that level of support for HTML backed in. I've never seen an LLM generate HTML without it being explicitly told to do so, so I don't know where this notion comes from that full HTML/CSS/JS support is needed to render LLM text outputs.
I used the wxWidgets C++ GUI for my coding agent ( <a href="https://github.com/fluxmoot/fluximp" rel="nofollow">https://github.com/fluxmoot/fluximp</a> ) not directly in C++ but in Python via wxPython. While wxWidgets doesn't have a full browser level implementation of HTML/CSS/JS it has enough HTML support for rendering markdown converted to HTML just fine. I'd imagine Qt would have no problem with markdown either.
This thread caused me to check out juggler. A couple hours later, I'm playing with it. This is awesome, really great work.
OK, I like this in concept a LOT. I especially like that it's efficient and headless with an attachable GUI.<p>But I don't like how opinionated it is: "Therefore Prospero prime design principle: Never wait forever. Every operation has a deadline. This decision influences everything."<p>I respect that opinion, but I don't share it, and therefore an entire coding harness developed <i>around</i> that opinion is not helpful for me.
Many make their own harness today anyway...<p>I did mine as well and that takes 4% the resources of opencode and in a similar tui style.<p>I think it's great and everyone should make their own.
There are so many cool harnesses I could use if I didn't have an outrageously subsidized Claude subscription
But you can still use Claude code with a gui layer on top (if it's still calling claude code under the hood, not using the APIs directly).<p>At least that's what I'm using in <a href="https://beolis.com" rel="nofollow">https://beolis.com</a> (so, you can use the actual harness you like and just have a proper UI to manage agents over it).
Try them anyway. Tell your employer about all the principles of freedoms that free, self hosted AI enable. It does not have to dwarf other costs.<p>Do not worry about vendor lock-in. Standing against big corporations was never easier in this century.<p>Do it. You know you can.
I just built my own tools and then just drive claude with 'claude -p' through them. Works great for controlling claude from my own android app.
Yes, write your own custom harness harness.<p>This is what I'm doing too, and it's so much better. No more blocking copy/paste, no more stuck title bars, it actually sends notifications only when I need to give it input, it feels snappy, it doesn't destroy the scrollback buffer, messages are timestamped, I can copy my prompt out without spaces being added, it automatically bumps the agent to check when background processes run too long, and I added a sandbox that actually provides a modicum of security.
so what's the point? you can use claude sub.
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.<p>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.<p>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.
Between this and Sol 6.1’s efficiency I don’t see any reason to use an Anthropic sub at the moment. Opus 5.5 is good but not that good.
They apparently rolled this decision back.
What they rolled back was charging claude -p "..." and use of Claude Code as an ACP agent at API rates. But the use of OAuth2 authentication with their subscription plans still feels at least risky: <a href="https://code.claude.com/docs/en/legal-and-compliance#authentication-and-credential-use" rel="nofollow">https://code.claude.com/docs/en/legal-and-compliance#authent...</a> (granted, the wording is anything but clear).<p>Whether and under what circumstances they actually enforce this these days, I do not know. Regardless, if your preferred harness does not support that authentication flow (which most don't), then it doesn't really help you even if you could. For what it's worth, I do not consider the Claude Code ACP adapter an adequate solution.
This was true but no longer is
If you're looking for an agent implementation that is light on resources, but prefer to work in a terminal, consider also hax (<a href="https://usehax.dev/" rel="nofollow">https://usehax.dev/</a>). 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.<p>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.<p><i>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>
I am the author of hax, yes.<p>If you are familiar with pi, then some of the key features listed on the GitHub page (and website) already illustrate substantial differences: hax is much smaller in footprint (I wouldn't even call pi "light-weight", really - heavy js runtime with a lot of dependencies), hax preserves native terminal scrollback (pi uses alt-screen fullscreen, or clears in some cases in differential mode), hax uses normal XDG dirs (pi uses ~/.pi), hax is extended out-of-process (pi suggests in-process plugins).<p>There are other differences in presentation, and in features (for example, hax has background bash invocation out-of-the-box). Not practical to list all of them.
Thanks I'll have to set aside some time later to try it out. It's kind of a sliding scale, but pi is definitely lighter-weight when compared to harnesses like Opencode and the all-batteries included "Oh-My-Pi".<p>And of course, “lightweight” does have a lot of interpretations where harnesses are concerned (<i>memory footprint, binary size, performance, system prompt, etc</i>).
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?
I already found myself being limited by Memory used by Claude code, about 300MB per session. With 40 sessions that eats up quite a good chunk of my laptop's memory<p>Not a big deal since most of my sessions were parked so I just found a way to have them exit without losing the screen content (I took a screen dump from herdr) and a simple wrapper script that waits until hit enter to resume the session.<p>I don't _ have _ to switch to a lighter weight harness, but I'm not oblivious to memory usage
Typical coding agents of today consume hundreds of MBs of RAM. Once you add GUI into the mix, that could easily slip into GBs. You might feel the difference, when you're trying to fit a capable local model into small amount of local RAM.<p>Even on 64 GB RAM machines you could easily get memory pressure on the system when trying to work with a chonky local model. Consider also resource-constrained cases like small VPS servers or SBC computers (like Raspberry Pi).<p>Ergonomics and features are included too here. The point is that these can coexist with small resource footprint.
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.<p>Love to see such a strong tasteful take on software heralding back to the age of solid desktop apps.
Rust in the future? Excuse the flippancy but what is missing nowadays?
Couple of notes. If a system is outputting text for humans to read, it’s not “serious data”. It’s megabytes. You can go out today and buy an off-the-shelf Apple desktop with half a terabyte of ram. My five year old laptop has 64Gb. Secondly, the sweet spot is Rust backend with typescript front end. The serious part isn’t the size of the data, it’s juggling the processes on one end, and pretty presentation to the human on the other. I’m using Tauri. As we get crates to do markdown with automatic language formatting, tables, etc I’d expect the whole thing to be written Rust
Why rust in the future? Why not start with rust?<p>But I will agree besides intentionally choosing C++ for a project presumably written by an agent, this project does look nice and thought out
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.
i believe a harness is a personalized thing. everyone should develop their own.
doesn't take long to have a working prototype, after that you can extend it as you use it.
So much efficient use of space though, would love to have this UI on top of opencode/codex<p>App-server protocol: <a href="https://learn.chatgpt.com/docs/app-server" rel="nofollow">https://learn.chatgpt.com/docs/app-server</a><p>Opencode: <a href="https://opencode.ai/docs/server/">https://opencode.ai/docs/server/</a>
How does this compare with Zed though?
I created one as well with rust and tauri works great
There are so many <i>Prospero</i>s already. Why choose a name that is so heavily overloaded?
There are so many harnesses, open source, teams of developers. The space is moving so fast. Why would I want to use something written by one person, in C++? How will it keep up? How do I extend it? etc.
Hey… the code looks good, I’m curious what is your development process? The parts I looked at looked almost like they were written by a human manually.
No mention of "plugin" or "extension". At this point I am not going to try one that isn't modular. Life's too short to wait for folks to prioritize my pet features, just let me do it myself.
I like how this is laid out. Will have to give it a try.
Looks great.
I'd really like to see a comprehensive test of all of those 100s of agentic harnesses. Get a billionaire to give a million to crunch through them all within a week or so.
> (You can’t use your Claude subscription.)<p>How come?
Anthropic only authorizes their own Claude code to be used with a subsidized subscription.<p>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.<p>They can't allow that, because they only have a few months of head start.<p>So everyone accepts Claude code which is required for these sweet subsidized tokens.
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.
Google has an agreement with Anthropic for the usage inside Android Studio.<p>> Unless previously approved, Anthropic does not allow third party developers to offer claude.ai login [..] for their products.<p>ref: <a href="https://code.claude.com/docs/en/agent-sdk.md" rel="nofollow">https://code.claude.com/docs/en/agent-sdk.md</a><p>Yes there is a huge gray area. Yes people are getting away with it. That does not mean it's allowed. Anthropic could clarify their terms any day and they don't, on purpose.
Herdr is a harness aware terminal multiplexer, not a harness itself.
If paseo and herdr are harnesses then so are tmux and iTerm
I dont think you know what a harness is.
The Claude subscription does not include Claude API usage.<p>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.
You’d need to use Claude API pricing (pay as you go, not a subscription).
[flagged]
What a beautiful and space efficient UI. I love Dear ImGUI and the people that build interfaces with it.<p>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.
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.
i am looking for harness that lets me fork sessions in tree and visually support that tree. I know i can fork a session in any harness. But its hard keep track if you go more than one level deep.<p>I dont know if i am unique here but i often work in exploratory mode where i persue a chain of thought in a specific direction, then backtrack up and go down again arbitrarily.
>Prospero is a native GUI application for Windows, macOS, and Linux<p>But right above this statement, on the Professional Edition purchase page, it says its only for Windows and Mac..
<i>magnus breaths heavily</i>
[flagged]
[flagged]
[dead]
JavaScript is just about the worst thing ever and why would you use that as middleware for anything if you didn't have to? I mean, I get using Visual Studio Code, if you don't care about your business processes, intellectual property or engineers and are just outsourcing everything, but imagine actually trusting it for your coding stack like some kind of middle manager who only cares about cutting costs to the bone? Or like, you're riding the AI bubble and want to release some minimal viable product as fast as possible, but it's 2026 now. Covid was 6 years ago.
I'm a 25+ year C++ programmer, and what you're saying is nonsense. First, managing costs is an important part of engineering. More importantly, though, the use of browser engines for GUI apps isn't about JS but about the browser engine. These engines are among the best optimised and most sophisticated rich text layout engines we have. Even their high RAM usage is overstated. 1GB of RAM is 6% of the physical RAM on average hardware, and because these GUI apps are usually low-CPU, their RAM is mostly inert and can be swapped out without much impact, so really 1GB of RAM for such an app amounts to no more than 3% of the average personal machine's memory resources. Even if you can reduce that to zero, gaining 3% of memory in exchange for higher costs and compromising on presentation quality is often (not always!) a reasonable tradeoff from a pure engineering perspective.
Nothing but snark in this comment. You can and should do better.
True but my point stands it's not Covid anymore. We don't need to build everything for the browser and talk through Zoom because it's easy for people who never use screen.<p>Even optimizing for specific hardware platforms is now trivial yet we act like everything has to be done through the browser, even though we know it's impossible to secure or do effectively because of the forest of constantly changing, proprietary tech.
Looks like shit and part with professional edition killed me. Bro are we in 2000?
First time I see a software licensed with the Unlicense.<p>I thought it meant the license was missing on GitHub but, no, it's an actual license called the Unlicense.<p>But then there is the Community and Pro edition so which is which on GitHub? Is the pro version hidden somewhere?<p>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.<p>I'm confused.<p>edit: I'm getting down voted here and no-one is telling me what I said wrong. These are my first impressions on the project. I think it's valuable feedback. Please reply and explain why I'm wrong instead of just down voting.