Prospero: A new coding harness for a more civilized age
Posted by fovc 8 hours ago
Comments
Comment by brainless 5 hours ago
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.
Comment by julesrms 5 hours ago
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.
Comment by brainless 4 hours ago
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
Comment by chicagobuss 3 hours ago
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.
More on my personal blog about it here: https://chicagobuss.dev/blog/my-setup/
Comment by natsucks 4 hours ago
Comment by filoeleven 3 hours ago
Comment by 34679 1 hour ago
Comment by 0xcafefood 4 hours ago
Comment by natebc 2 hours ago
On looking at Prospero it's ... simpler than this is so maybe not robust enough for your wants.
Comment by johnny5211 4 hours ago
Comment by brainless 4 hours ago
Comment by flufluflufluffy 1 hour ago
Comment by nico 2 hours ago
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
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
Edit: ^^ the above is especially annoying now that Codex popups the prompts/questions within other agents' sessions
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
Does Próspero solve the things above?
Any pans for “swarm”/group control of agents?
Comment by conception 58 minutes ago
Comment by contingencies 2 hours ago
Comment by sgt 1 hour ago
Comment by nico 2 hours ago
Comment by haukebri 1 hour ago
Comment by julesrms 5 hours ago
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!
Comment by nico 4 hours ago
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
Do you think that could work to make C/C++ better at this? What things would you import/copy from elsewhere?
Comment by julesrms 4 hours ago
The hard bit is when you have complex, responsive layouts involving text. (And styling it)
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.
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.
Comment by nico 2 hours ago
> 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.
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
Comment by joshheitzman 2 hours ago
Comment by joshheitzman 4 hours ago
Comment by ia 2 hours ago
Comment by keyle 5 hours ago
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.
Comment by netsroht 40 minutes ago
What's yours called? Is it also open source?
Comment by bensyverson 5 hours ago
Comment by fabioz 2 hours ago
At least that's what I'm using in https://beolis.com (so, you can use the actual harness you like and just have a proper UI to manage agents over it).
Comment by bensyverson 1 hour ago
Comment by Rabbit504030201 4 hours ago
Do not worry about vendor lock-in. Standing against big corporations was never easier in this century.
Do it. You know you can.
Comment by bensyverson 1 hour ago
Comment by whoanoway 4 hours ago
Comment by KetoManx64 4 hours ago
Comment by rendaw 4 hours ago
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.
Comment by thekuanysh 5 hours ago
Comment by mapontosevenths 5 hours ago
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.
Comment by fcarraldo 3 hours ago
Comment by NorthSouthNorth 5 hours ago
Comment by rbehrends 4 hours ago
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.
Comment by brandonhorst 5 hours ago
Comment by shepherdjerred 3 hours ago
Comment by bigbuppo 1 hour ago
Way to cause confusion.
This is like starting a new country and calling it France.
Comment by indigodaddy 1 hour ago
Comment by OleksandrC 5 hours ago
Comment by vunderba 5 hours ago
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.
Comment by OleksandrC 4 hours ago
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).
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.
Comment by vunderba 4 hours ago
And of course, “lightweight” does have a lot of interpretations where harnesses are concerned (memory footprint, binary size, performance, system prompt, etc).
Comment by sivers 1 hour ago
Feels so much better, so lightweight. Compiles instantly. Almost no dependencies. Like something Suckless would make. And unlike all the rest, runs easily on OpenBSD.
And as minimal as it is, it even has nice features like showing me after every prompt how much that last task cost me.
When I saw the post here about a new coding harness, I clicked in thinking, "Could anything be better than Hax?" Still no.
Oleksandr, I'm a fan.
Comment by eleventen 5 hours ago
Comment by ithkuil 4 hours ago
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.
I don't _ have _ to switch to a lighter weight harness, but I'm not oblivious to memory usage
Comment by OleksandrC 4 hours ago
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).
Ergonomics and features are included too here. The point is that these can coexist with small resource footprint.
Comment by x3haloed 2 hours ago
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."
I respect that opinion, but I don't share it, and therefore an entire coding harness developed around that opinion is not helpful for me.
Comment by indigodaddy 1 hour ago
Comment by gapo 5 hours ago
Love to see such a strong tasteful take on software heralding back to the age of solid desktop apps.
Comment by ggsp 5 hours ago
Comment by gapo 1 hour ago
Comment by lowbloodsugar 2 hours ago
Comment by gapo 1 hour ago
Comment by shepherdjerred 3 hours ago
But I will agree besides intentionally choosing C++ for a project presumably written by an agent, this project does look nice and thought out
Comment by zzunkie 5 hours ago
Comment by thehamkercat 6 hours ago
App-server protocol: https://learn.chatgpt.com/docs/app-server
Opencode: https://opencode.ai/docs/server/
Comment by mickeyp 1 hour ago
GUI in your browser. Tiling window manager.
Comment by saejox 4 hours ago
Comment by sadilek 3 hours ago
Comment by eric15342335 6 hours ago
Comment by stickfigure 5 hours ago
Comment by lowbloodsugar 2 hours ago
Comment by chiengineer3 4 hours ago
Comment by kosolam 3 hours ago
Comment by esafak 3 hours ago
Comment by d0mine 1 hour ago
Comment by BewareTheYiga 6 hours ago
Comment by post-it 6 hours ago
How come?
Comment by smashed 5 hours ago
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.
Comment by well_ackshually 5 hours ago
Comment by smashed 4 hours ago
> Unless previously approved, Anthropic does not allow third party developers to offer claude.ai login [..] for their products.
ref: https://code.claude.com/docs/en/agent-sdk.md
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.
Comment by post-it 4 hours ago
Comment by Zambyte 4 hours ago
Comment by shepherdjerred 3 hours ago
Comment by bendowlingdev 5 hours ago
Comment by indymike 6 hours ago
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.
Comment by neuronexmachina 5 hours ago
Comment by thih9 6 hours ago
Comment by post-it 5 hours ago
T3 does it this way.
Comment by joeyoung111 5 hours ago
Comment by Rabbit504030201 4 hours ago
Comment by laughing_snyder 3 hours ago
Comment by devmor 6 hours ago
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.
Comment by brador 5 hours ago
Comment by lifeisloving 6 hours ago
But right above this statement, on the Professional Edition purchase page, it says its only for Windows and Mac..
Comment by HexDecOctBin 5 hours ago
Comment by laughing_snyder 4 hours ago
Comment by jrm4 5 hours ago
Comment by laughing_snyder 4 hours ago
Comment by jrm4 3 hours ago
and
FIVE megabytes. Wow. What are we doing everywhere else.
Comment by dominotw 3 hours ago
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.
Comment by patrick_rtk 1 hour ago
Comment by khalic 5 hours ago
Comment by steven_burg 1 hour ago
Comment by arbor-group 6 hours ago
Comment by msarda_23 5 hours ago
Comment by sick_of_slop 6 hours ago
Comment by neuroelectron 4 hours ago
Comment by pron 3 hours ago
Comment by neuroelectron 2 hours ago
I don't know why you needed a paragraph to say that 1000% memory inflation is a trade-off to optimize dev costs and we can just ignore JS because our goal is to support a browser as the gui.
It's a bunch of nonsense and yet you call what I said nonsense while all you do is provide opinion that it's OK because trade-off or something. What you said is purely opinion so you can't say my take is nonsense. There's nothing "pure engineering perspective" about it.
Comment by pron 1 hour ago
Because that's not what I said. My point was more that a "1000% memory inflation" is not a meaningful cost metric to begin with (to use just one toy example, perhaps you'd agree that going from 10% RAM to 100% has a very different impact than going from 1% to 10%, even though both are a "1000% inflation").
Memory (at least on a personal computer) is not rented by the hour on a per-MB basis; you buy it in bulk. What matters isn't how much memory you could have used but what you'd use the "saved" memory for. Also, when you buy a resource like RAM or CPU as a package, nominal values matter less than under what conditions one of these would reach 100% and your experience may be degraded.
For example, if you have 16GB of RAM and you only ever run one program at a time, it doesn't matter to you at all if it uses 3GB or 3MB: you've paid for 16 and the total savings of the 3MB app are zero and in this hypothetical case, there's no tradeoff at all. Now, the average user on the average hardware doesn't use only one GUI app at a time, but they're also not using 200. The only relevant question pertaining to waste is what is the value of 3% memory to your users (integrated over all of them)? In many situations (again, not all), the answer is not much. (And BTW, some developers seem to care about 3% memory more than they do about 3% CPU, even though CPU is much more expensive).
When it comes to agent harnesses, the analysis is clearer. On the one hand, people using coding agents are more likely than others to put even a little extra free RAM to some good use, but on the other hand, the cost of using the models themselves is so high that it makes the cost of RAM for the GUI negligible.
Saying that a number going up by 1000% is bad is not good engineering. Good engineering requires thinking about the actual value and cost of that number. It varies over time, over app type, over different types of users, and over different kinds of deployments (i.e. how RAM is packaged and paid for).
Comment by neuroelectron 1 hour ago
I'm entertaining this nonsense because I want to clarify, that I use a 20 year old web gui and it consistently eats 8 gigs of ram in Webkit because it uses CSS to update the forms. Webkit is the only option on iPads and yet it can't handle a 20 year old website because it doesn't do things in the standard ways. It's ridiculous to say "why doesn't it target web" especially after someone presents new coding harness that went out of its way to run well without it.
Comment by pron 1 hour ago
No, that's not the conclusion. If using models costs you, say, $10 an hour, and a GB of RAM costs you, say, $0.0001 an hour, then clearly you shouldn't spend your time on reducing the insignificant cost if you want your work to deliver the most value to users.
But again, "less RAM" is more or less meaningful whether you're reducing the RAM usage from, say, 5% to 1% or from 80% to 40%. The latter is more valuable even though it's a lower relative reduction. That's because what the users care about is in what conditions they reach 100% of either CPU or RAM, and the second 2x reduction, therefore, offers more value than the first 5x one. This is similar to how a 10% discount on a car offers far more value than a 99% discount on a pack of chewing gum. This is still the case if you're buying 100 packs, but maybe not 10,000, and the same goes for software: it may also matter how many copies of the app the user is expected to run concurrently. The point is that you can't assign a value to a 10x reduction if that's all you know.
> I'm entertaining this nonsense because I want to clarify, that I use a 20 year old web gui and it consistently eats 8 gigs of ram in Webkit because it uses CSS to update the forms.
And I'm entertaining this nonsense because you're clearly not a very experienced engineer and you may learn something. In the ninetees, when nearly all GUI apps were written in C or C++, we had plenty of examples where a C++ GUI app consumed 50% RAM. That doesn't mean that C++ is worthless, only that some software has serious resource bugs, and it sounds like that web page you're referring to is a case of that. Most web-based GUI apps today do not consume a higher portion of RAM than their C++ counterparts did 30 years ago. Today's browser-based MS Word consumes less (relative) RAM than the C++ version did in 1998, and it certainly has a far smaller negative impact on concurrently using other apps on the machine.
And, of course, there are buggy/leaky programs now just as there were then. It's silly to say that the existence of such programs means that the approach is bad, because that would apply to any sufficiently-popular language or toolkit.
Anyway, our job is to offer the most value to our users, and reducing RAM consumption by 3% or even 5% (of available RAM) is usually not where you'd find much value.
Comment by nabeards 4 hours ago
Comment by neuroelectron 1 hour ago
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.
Comment by keepo404 6 hours ago
Comment by jrm4 5 hours ago
Can't wait to try it.
Comment by jrm4 3 hours ago
It just opened. Instantly. Every button and thing happens instantly. what are we doing everywhere else. I'd forgotten that things can be this fast.
Comment by smashed 6 hours ago
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.
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.