Show HN: Raven – The harness of harnesses, built for RSI
github.com
github.com
This and other recent AI hype-fests all seem to be obsessed with making agents do more work unattended.
But surely in the real world, anyone who's got a real product to make is going to want to steer what's happening. It's ridiculous to think that anyone with a deadline would write a prompt so perfect that they walk away for 4 days and come back to find the finished product ready to ship.
If you really can write a prompt so complete and perfect that it needs nothing further, then any regular harness could probably also do the job. But if like normal people you need to try something, think about it, iterate, and repeat.. then you also just need a regular harness.
Or put another way: "You can't fool me, it's turtles all the way down!"
In my own harness I log each and every user message by hook and use the model to extract user intent by re-reading the chat log from time to time. The raw messages are very important, they contain information that can be used to refine the harness on the one hand, and to validate if the agent still follows user intent on the other. Models tend to get lost in the details and forget the big picture.
The promise of AI is that you won't need to pay people in order to think. A bet that there will be a long term need to steer is also a bet that AI will fail.
The people footing the bills for it are paying because they believe AI will succeed, and there will be no more need for a human in the loop. The reason people are pouring trillions into these AI companies is that they expect we'll make the breakthroughs that make it possible for AI to succeed at automating everything humans are able to do today.
So, skate to where the puck is going, not where it is, and all that.
And IMHO while humans are still in charge of these processes, the way that most people can best design and explain what they want is via conversation, exploration, iteration, etc. Not by a single fire-and-forget prompt!
Basically, why doesn't the prompt "make me wealthy" work? Find and iterate on the bottlenecks.
This is as far as the eye can see all very iterative, there is no tail-call or anything fancy, it is loops. Also "Recursive" I feel kind of tries to imply the LLM's weights are being pushed around in some feedback, because to recurse you have to invoke the thing you're recursing into at its very start right? That would be reinforcement probably, and there is none of that in any such RSI so far, at least not public. Please someone contradict me with examples.
So please: "ISI" for iterative self improvement is fine. Also "ISI" does not fit the (outdated!) Vernon Vinge "singularity" trope, and that is a good thing!
The example in the docs of improving nanochat is iterative. It's a looped process in one thing altering a second thing.
What would be recursive is raven updating raven to make it better at doing things. For what I picture as RSI the important part would be that it's able to make itself better at doing things and better at improving itself.
Now there's an "evolver" part that improves the harness over time but I don't know how far that goes or what scope it has to update things.
I guess it's that if you have a function called "optimise" that takes functions and makes them better, calling optimise(my_process) is iterative regardless of how many times you do it. Calling optimise(optimise) is inherently different.
Hope this helps the last few folk before searching for RSI will be impossible due to the term being taken over.
For those afraid of Satanism in yoga, there's also non satanic variants where you don't greet each other saying Namaste or say Shanti anywhere during the practice.
In any event, it's great to see competition in this meta-harness space, which is likely one that none of the frontier labs will touch since it, by definition, would utilize their competitors' products.
I'm wondering that as these core tools continue to enhance and add these capabilities, how much of a benefit these meta harnesses actually provide.
1/ Allowing me to easily plug in any harness, using any provider, and make it a first-class worker. Omnigent has out of the box ACP support and it's trivial to use that to add first-class support for any harness out there. I love the ability to have CC + Opus plan, Codex + Luna implement, Pi + Qwen 3.8 give a tie-breaking opinion on a design decision that Opus flagged and Grok and Codex couldn't agree on, all orchestrated by a model of my choosing from any provider using Omnigent's main agent harness.
2/ Reusable agent systems rather than just reusable workflows. You can define agents in YAML whose subagents embody particular roles, with different models/harnesses, skills, plugins, tools, etc. preconfigured for each one.
Of course, claude workflows are now durable but Omnigent's agnt definitions are a bit more abstract in that they define the subagents that are available and how they should work by default rather than the workflow itself (i.e. the specific JTBD). If I have a common workflow that consists of, for example, Sol + Codex writing some script to scrape some data, Pi + a cheap DeepSeek-tier model formatting that data en masse, then Fable + CC doing some advanced analysis on it, I can embody that with a yaml agent definition that I can then use to run with my task of the day as a prompt. All of this is orchestrated by a model of my choice using Omnigent's harness.
This might look like: 'smart scraping agent with all sorts of scraping skills and tools pre-loaded', a 'bulk data processing agent with a cheap, fast model and plenty of pandas/numpy skills preloaded', and 'frontier model to interpret and reason on the implications of the processed data'. The main agent would have instructions about the general workflow of such tasks and when to invoke and delegate tasks to which subagent. The definition describes the workers available to the orchestrator and how they should generally behave, rather than hard-coding the workflow itself. I love that I can create those definitions and re-use them.
All that said, I am sure the labs will come up with their own similar products to (2) (e.g. dots today). I also recently noticed that Claude Code now has subagent 'teams' rather than just 'general-purpose'/'explore' subagents, and these seem to be longer-lived. This seems to be encroaching on the agent yaml definitions, albeit with less fine-grained control on my end. Therefore, the tl;dr (for me at least) is vendor neutrality; I don't think we'll ever see a product coming out of a frontier lab that eagerly delegates a task to their competitor's model (and bank account).
Let me turn this around to you. Do you think your timelines on Reddit/X are indicative of the tech scene of {London,China,India,Indonesia}? What makes you think you know of every popular project out there?
Without trying it, this seems like its probably just a massive waste of tokens.
To me the really bad sign is that this is the benchmark that they selected to highlight. Why not one of the less-saturated benchmarks where this harness could (in theory) show meaningful improvement over the OpenCode baseline? Seems fishy to me.
They also don't ship an app which is one of the best parts of paseo. Then again Paseo's perf leaves a lot to be desired.
I haven’t found a better OpenCode remote mobile app experience. If OpenCode or Pi makes one, I might just move to that.
What I'd like to see now is how good it can get when you feed the micro models like qwen3.5:0.8b into itself to solve problems. Will it be like toddlers discussing neighborhood politics at a pretend tea party or will it actually get some decent results?
Another game-changer (if this style works out): Just get a model like qwen3.8:27b onto one of those model-on-a-chip cards that makes it 1000x faster and see how fast it can go using the same method.
This article has lots of fluff but it describes a lot of what I'm talking about:
https://knowablemagazine.org/content/article/mind/2021/are-s...
I don't want to be a prompt shuttle, though I feel that way sometimes. Performing the same dance for each ticket I work on. My issue is that, to bastardize a common joke/phrase, 50% of the things the agent stops for are things it (or another agent) could answer for me, but it's a different 50% task to task.
With HoH's I constantly feel like I'm getting peppered with unimportant questions or being kept out of the loop of things that really need my eyes on it. Threading that needle has been particularly difficult.
If you have the chops to evaluate different harnesses, you have the chops to build one that is perfect for you.
Raven brings Claude Code, Codex, and its own Research, Code, Design, and Oncall agents into a shared task graph. The idea is to let different agents handle the parts of a project they are suited to, with shared memory across subagents and context carried across sessions.
The RSI work extends to the harness itself: prompts, policies, strategy code, and playbooks. Raven's specialist harnesses and orchestration layer can be improved independently. Candidate changes are evaluated before adoption. This concerns Raven's own components; it doesn't rewrite Claude Code or Codex internals.
We've used Raven for long-running research and experimentation workflows and for building a Godot game. The repository includes examples and outputs, along with installation instructions. We're also exploring how to develop and refine specialist agents for particular domains.
Raven is pre-alpha and Apache-2.0 licensed. The self-improvement work is experimental; the Curator currently ships in the repository rather than the installed package.
Code and examples: https://github.com/EverMind-AI/Raven
Where do you find coordination between agents breaks down today? We'd also be interested in what evidence you'd want before trusting an agent-generated change to its own harness.
Of course, it's impossible to know for sure what was LLM processed or not, but this post got classified that way.