Prospero is a coding harness in C++ that stays out of the way of your fuzzer
Chris Wellons argues a harness is 'curl glued to popen()' and built one that uses roughly two orders of magnitude fewer resources than web-stack rivals.
Prospero runs against llama.cpp, OpenRouter or the Anthropic and OpenAI APIs. Every wait has a deadline, long shell commands turn into background tasks, and stopping a command kills its whole process tree.
Thread reaction was split on the language. A C++ veteran who wrote a GUI framework said he would never have chosen C++ for an agent UI.
Deadlines instead of babysitting

Wellons's post describes a C++ and Dear ImGui harness whose core rule is "Never wait forever". Permission requests time out to a denial, network calls have timeouts, and a shell command that outruns its timeout becomes an async task the agent can check later. Stopping a command kills its entire process tree. The engine can run headless on a remote host while the UI stays on the desktop. Because it is lean, he says, a fuzzing campaign won't see the Linux OOM killer choose the harness over the fuzz target.
The Community Edition is free on GitHub with a nag message and no built-in headless engines. The Professional Edition costs a nominal fee.
C++ for a GUI full of markdown
"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!" — julesrms, creator of the JUCE C++ GUI framework
Others questioned the packaging instead. One commenter was confused by an Unlicense project that also sells a Pro edition, and wanted to know where the Pro code lives.
What a working user wants
A developer building his own GUI agent listed a flaw in current CLI agents: while typing a prompt, a sudden Y/N question can swallow a keystroke and steer the agent wrong. A GUI harness could fix that by owning its own input focus.
Get breakdowns like this every day
The top Hacker News stories, unpacked — by email, Telegram, or RSS.
GCC picks a jump table over a comparison tree by counting comparisons, not labels
Cases 0, 7, 14, 21, 34 compile to a jump table. Cases 0, 8, 16, 24, 40 compile to comparisons. A switch of twenty labels over 0 to 87 also loses its table.