Show HN: HarnessRouter: Unified interface for agent harnesses (github.com)
Before building HarnessRouter, I used to build our own agent harness for our products. I tried LangGraph, agent SDKs from different vendors, pydantic, LLM tool use / function call, and so on. It's a very heavy lifting engineering effort, and I am disappointed about the agent deliveries compared to what Codex, CC can deliver. That changed my mindset. The frontier labs and famous open source communities are already putting so much engineering effort to build the world's best harnesses, why not leverage them directly instead of building our own, just like how we call LLM chat completion endpoints instead of training our own models?
We provide a docker image to run HarnessRouter locally.
----------
Quickstart:
docker pull harnessrouter/harnessrouter
docker run -d --name harnessrouter -p 127.0.0.1:3000:3000 -v harnessrouter:/data harnessrouter/harnessrouter
docker logs -f harnessrouter
Wait for the "ready on :3000" show up, then open the browser at http://localhost:3000.
Default username/password is harnessrouter/harnessrouter
Then in Integrations page, add your model provider credentials or API keys.
In Harnesses tab, as of today we provide routing to Codex, Claude Code, and Hermes as base harnesses.
You can customize any of them and configure harness instruction, MCP tools, and skills.
Then go to Tasks and let them do jobs.
----------Every harness has its own request/response format and incompatible with each other. We propose Unified Harness Procotol [1] to standardize how an application talks to an agent harness. It covers harness selection and configuration, task execution, event streaming, sessions start cancel and resume, artifact management and delivery, and failure handling. It's similar idea like LiteLLM, but for harnesses rather than models.
HarnessRouter implements UHP. We provide an AGENTS.md [2] and your coding agent can follow it to integrate your application with the harnesses available.
We also provide starter kits [3] to demonstrate some types of agentic products that can be built on HarnessRouter. It currently includes PPT agent, Spreadsheet agent, BI Dashboard agent, and Video generation agent.
Can't wait to hear what you think!
[1] https://unifiedharnessprotocol.org
18 comments
[ 4.5 ms ] story [ 60.5 ms ] threadHowever, Richard asked me a question: how do you plan to keep up with the iteration speed of harnesses like Codex and Claude code. That question leads to the solution that we are delivering to the community today.
From our perspective, the agent harness is becoming an independent infra layer, and it should become a dev tool. Our goal is to make agent harnesses plug-and-play solution for all developers, so they can skip rebuilding the infra layer and focus on shipping product features.
We welcome all comments, feedbacks, protocol contributions, and feature suggestions.
Where we need HarnessRouter is package the harness agent as part of the product backend to serve the end users. In that scenario, the harness needs specific instructions, MCP tools, skills pre-configured, so it can reliably receive requests from upstream product service and deliver result to downstream product components.
We put 4 demo agent products for white collar working scenarios: PPT agent, Spreadsheet agent, Bi Dashboard agent, Video editing agent. Each of them is backed by a different harness setup. Video editing is most sophisticated so it's CC + Opus 5. The other 3 are more simpler use cases so default setup in the kit is set to Hermes + DeepSeep V4 Pro.
Take the PPT agent use case, for sure we can hook the same tools and skills to local Claude Code or Codex, but it only works for yourself using it locally. If you are building a AI PPT product (like Gamma), you need to host the harness setup somewhere in the cloud together with other product code. That's when you can use HarnessRouter as the PPT generation/manipulation component of the product, with the chosen harness backed in. For sure you can build the same harness wrapper plumbing as we did in HarnessRouter to make the same stack work, but using HarnessRouter the development time is shorten as we have already get the nitty gritty engineering details covered
Check out the benchmark here: https://harnessrouter.ai/benchmarks