# 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.

Devtoolwatch Board, the week of Oct 25–31, 2026. Canonical page: https://index.devtoolwatch.com/tools/harnessrouter-harnessrouter/

## 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.

## HarnessRouter at a glance

- **Category:** [Coding agents](https://index.devtoolwatch.com/categories/coding-agents/)
- **Maintained by:** HarnessRouter (organization, [@HarnessRouter](https://github.com/HarnessRouter) on GitHub)
- **License:** Apache 2.0
- **Language:** Python, TypeScript, CSS
- **Repository:** [github.com/HarnessRouter/harnessrouter](https://github.com/HarnessRouter/harnessrouter)
- **Website:** [harnessrouter.ai](https://harnessrouter.ai/)
- **Latest release:** [v0.37.14](https://github.com/HarnessRouter/harnessrouter/releases/tag/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.

### 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

1. Follow the logs with docker logs -f harnessrouter until they show that HarnessRouter is ready on :3000.
2. Open http://localhost:3000, sign in with harnessrouter/harnessrouter, and change the default password in Profile.
3. Choose Bring your own key in the account menu and add your model provider's API key.
4. 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

- 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.

## Usage data (the week of Oct 25–31, 2026)

- Board rank: #26 overall, #15 in Coding agents, momentum score 86
- New GitHub stars per week (last 12 weeks): Aug 9: 2; Aug 16: 418; Aug 23: 187; Aug 30: 23; Sep 6: 685; Sep 13: 204; Sep 20: 1.1k; Sep 27: 189; Oct 4: 98; Oct 11: 153; Oct 18: 444; Oct 25: 269

## HarnessRouter alternatives

| Rank | Tool | Stars | Downloads/wk |
|---|---|---|---|
| #1 | [Cindy](https://index.devtoolwatch.com/tools/makecindy-cindy/) | 8.8k | – |
| #2 | [OpenMausBot](https://index.devtoolwatch.com/tools/milind-soni-openmausbot/) | 9.6k | – |
| #3 | [Orca](https://index.devtoolwatch.com/tools/stablyai-orca/) | 111.7k | – |
| #4 | [OpenBot](https://index.devtoolwatch.com/tools/copilotkit-openbot/) | 9.1k | – |
| #5 | [Agent Reach](https://index.devtoolwatch.com/tools/panniantong-agent-reach/) | 107.2k | – |
| #6 | [Skill Recorder](https://index.devtoolwatch.com/tools/microsoft-skill-recorder/) | 5.6k | – |

## 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

1. [HarnessRouter/harnessrouter on GitHub](https://github.com/HarnessRouter/harnessrouter)
2. [HarnessRouter README](https://github.com/HarnessRouter/harnessrouter/blob/main/README.md)
3. [HarnessRouter website](https://harnessrouter.ai/)
4. [Release v0.37.14 (Nov 1, 2026)](https://github.com/HarnessRouter/harnessrouter/releases/tag/v0.37.14)
5. [Release v0.37.13 (Oct 31, 2026)](https://github.com/HarnessRouter/harnessrouter/releases/tag/v0.37.13)
6. [Release v0.37.12 (Oct 29, 2026)](https://github.com/HarnessRouter/harnessrouter/releases/tag/v0.37.12)
7. [Hacker News: Show HN: HarnessRouter: Unified interface for agent harnesses](https://news.ycombinator.com/item?id=49335595)
8. [Devtoolwatch Board, the week of Oct 25–31, 2026](https://index.devtoolwatch.com/)
