HarnessRouter review
HarnessRouter is a self-hosted, Apache-2.0 service that runs agent harnesses like Codex and Claude Code through one OpenAI Responses-compatible API.
TL;DR
HarnessRouter Community Edition is infrastructure that turns existing agent harnesses into pluggable backends for products. It is for developers building agent features who want to switch harnesses through one API. HarnessRouter implements the open Unified Harness Protocol and handles sessions, streaming, files, cancellation and structured failures, using your own provider keys on your own infrastructure.
- 3.8kGitHub stars
- +269new stars, week of Oct 25
- #15in Coding agents this week
HarnessRouter at a glance
- Category
- Coding agents
- Maintained by
- HarnessRouter (organization, @HarnessRouter on GitHub)
- License
- Apache 2.0
- Language
- Python, TypeScript, CSS
- Repository
- github.com/HarnessRouter/harnessrouter
- Website
- harnessrouter.ai
- Latest release
- v0.37.14 on GitHub, Nov 1, 2026
- First published
- Aug 9, 2026
What HarnessRouter does
- HarnessRouter runs harnesses such as Codex, Claude Code, Hermes, Pi, OpenCode, Gemini CLI, Aider and OpenHands behind one API.
- HarnessRouter exposes an OpenAI Responses-compatible API and selects the harness with metadata.harness_id.
- HarnessRouter keeps persistent sessions, so follow-up instructions continue a task with previous_response_id.
- HarnessRouter streams progress as server-sent events when a request sets stream to true.
- HarnessRouter attaches input files, returns generated outputs, cancels tasks, and reports structured errors and execution traces.
- HarnessRouter honors Idempotency-Key on tasks and harness creation, so a retry returns the first result instead of running twice.
- HarnessRouter passes secrets through a harness env map and redacts those values from responses, streams, traces and stored records.
How it works
HarnessRouter Community Edition runs as one Docker container. The container holds a Console on port 3000, a Gateway that serves the Responses API, and a Runner that runs harnesses in separate session workspaces under separate operating-system users. Data lives in a /data volume. You connect your own model provider keys, and model requests go to that provider.
How to install and start using HarnessRouter
Requirements
- Docker
- About 4 GB of disk space
- An API key from a model provider; no HarnessRouter account is required
- Python 3 to generate idempotency keys in the README example
First steps
- Follow the logs with docker logs -f harnessrouter until they show that HarnessRouter is ready on :3000.
- Open http://localhost:3000, sign in with harnessrouter/harnessrouter, and change the default password in Profile.
- Choose Bring your own key in the account menu and add your model provider's API key.
- Open Start, describe the agent's job, and save a setup with harness and model on Auto or chosen.
Who HarnessRouter is for
- Teams building products that run agent tasks and want to switch harnesses without rewriting integrations.
- Developers who want agent backends on their own infrastructure with their own provider keys.
- Products adding knowledge-work agent features such as slides, sheets, dashboards or videos.
Limitations to know
- HarnessRouter fixes the agent harness once a setup is saved; using another harness needs a new setup.
- HarnessRouter sessions use separate workspaces and OS users, not separate containers.
- HarnessRouter's container must not run with --user, because the entrypoint and Runner need root.
- HarnessRouter redaction protects records, not the agent; an agent that can read a secret can still send it elsewhere.
Is HarnessRouter growing? Usage data
In the week of Oct 25–31, 2026, HarnessRouter ranked #26 on the Devtoolwatch Board and #15 in Coding agents, with a momentum score of 86 out of 100.
Show the weekly numbers
| Week of | New stars |
|---|---|
| Aug 9, 2026 | 2 |
| Aug 16, 2026 | 418 |
| Aug 23, 2026 | 187 |
| Aug 30, 2026 | 23 |
| Sep 6, 2026 | 685 |
| Sep 13, 2026 | 204 |
| Sep 20, 2026 | 1.1k |
| Sep 27, 2026 | 189 |
| Oct 4, 2026 | 98 |
| Oct 11, 2026 | 153 |
| Oct 18, 2026 | 444 |
| Oct 25, 2026 | 269 |
On Hacker News
- Show HN: HarnessRouter: Unified interface for agent harnesses, 10 points and 14 comments (Aug 17, 2026)
The Board ranks tools by four signals each week: new stars, new stars for the repo's size, added downloads and download growth beyond the market. How the ranking works.
HarnessRouter alternatives
Other AI coding agents on the Board in the week of Oct 25–31, 2026, by momentum:
| Rank | Tool | Stars | Downloads/wk |
|---|---|---|---|
| #1 | CindyCindy is an open-source AI agent app for desktop and mobile that combines Claude Code, Codex and Pi across your connected devices. | 8.8k | – |
| #2 | OpenMausBotOpenMausBot is an open-source desktop chat app where each contact is a local Claude, Codex, or Grok CLI agent with its own computer. | 9.6k | – |
| #3 | OrcaOrca is a desktop agent development environment for running Claude Code, Codex, and other CLI coding agents in parallel, each in its own… | 111.7k | – |
| #4 | OpenBotOpenBot is an open-source, self-hosted template for AI coworkers that each get their own browser, files and granted tools, with every… | 9.1k | – |
| #5 | Agent ReachAgent Reach is a Python CLI that lets AI agents search and read platforms such as Twitter, Reddit, YouTube, GitHub, Bilibili and… | 107.2k | – |
| #6 | Skill RecorderSkill Recorder is a desktop app that records your on-screen work session and turns it into a reusable agent Skill or Automation. | 5.6k | – |
Recent HarnessRouter releases
HarnessRouter FAQ
Is HarnessRouter free and open source?
Yes. HarnessRouter's source code is on GitHub (HarnessRouter/harnessrouter) under the Apache 2.0 license, so you can use it for free. Its website also links to a pricing page (https://harnessrouter.ai/pricing) for any paid plans.
Is HarnessRouter still maintained?
Yes. The HarnessRouter/harnessrouter repository was last updated on Nov 1, 2026, and the latest release, v0.37.14 on GitHub, came out on Nov 1, 2026.
How popular is HarnessRouter?
HarnessRouter has 3.8k GitHub stars as of Nov 1, 2026. It gained 269 new stars in the week of Oct 25–31, 2026, against a 12-week average of 317 a week. That made it #15 among AI coding agents on the Devtoolwatch Board.
What are the best alternatives to HarnessRouter?
Other AI coding agents on the Devtoolwatch Board in the week of Oct 25–31, 2026, by momentum: Cindy (#1), OpenMausBot (#2), Orca (#3), OpenBot (#4), Agent Reach (#5). The alternatives table above has their numbers.
Does HarnessRouter need a HarnessRouter account?
No. HarnessRouter Community Edition needs no HarnessRouter account and ships no bundled model or trial key. You supply your own model provider API key.
How do I call HarnessRouter from my backend?
Create an API key under API Keys in the Console and store it as HARNESSROUTER_API_KEY. Then POST to /v1/responses with the harness in metadata.harness_id and a model your provider serves.
Which harnesses does HarnessRouter support?
HarnessRouter lists 30 harness bases, including Codex, Claude Code, Hermes, Pi, DeepSeek Harness, OpenCode, Qwen Code, Gemini CLI, Cline, goose, Aider and OpenHands. A support matrix shows which run on which provider.
Can HarnessRouter join my existing traces?
Yes. HarnessRouter reads W3C traceparent and tracestate headers, and the task's model calls carry a child of that trace. Invalid headers are dropped without failing the task.
Where does HarnessRouter keep my data?
HarnessRouter keeps provider keys, sessions, files and workspaces in a /data volume on your infrastructure. Model requests still go to your configured provider. Community Edition disables Console analytics.
Can I move a local HarnessRouter harness to the cloud?
Yes. Set HR_SECRET_KEY, save the custom harness, and choose Upload to Cloud. HarnessRouter copies the harness configuration, not provider keys, sessions or generated files.
Sources
HarnessRouter README badge
Maintainers can show the tool's weekly Board rank in their README:
[](https://index.devtoolwatch.com/tools/harnessrouter-harnessrouter/)How this page is made: Devtoolwatch writes each review from the project's README, releases, package metadata and website, with an AI model, then checks every claim against the source it cites and drops what the sources don't support. The numbers come from Devtoolwatch's daily GitHub snapshots, GitHub's stargazer history, and the npm and PyPI download APIs. Spotted an error? Email [email protected].