Our take
Newless than six months old and changing fast- Activity
- 90
- Community
- 65
- Issues
- 78
- Pull requests
- 85
+1,347 stars in the last 30 days
- Merges more pull requests than 97% of the projects we track
- Releases more often than 93% of the projects we track
HarnessRouter is a fast-moving, early-stage integration layer with recent releases and contributions from a broad group, but teams should validate its evolving protocol and deployment model against their needs.
Good fit if
- You need a single API for multiple agent harnesses and value UHP and OpenAI Responses compatibility.
- You can run Docker and want control of provider keys, sessions, files, and workspaces on your own infrastructure.
- You want to evaluate an actively changing project with contributions from multiple people and prompt issue handling.
Look elsewhere if
- You need a mature, slowly changing interface rather than a project described as new and changing fast.
- You cannot operate a Docker deployment or provide a model-provider API key.
- Your requirements depend on isolation between sessions using separate containers, which the Community Edition does not provide.
All health signals
| Last commit | 2026-10-19 (today) |
|---|---|
| Commits, last 90 days | 100+ |
| Releases, last 12 months | 100+ (latest v0.35.10, 2026-10-20) |
| Contributors | 31 (top contributor: 45% of commits) |
| Issues closed, last 90 days | 19+ (typically closed in 1 day) |
| Pull requests merged, last 90 days | 96 (typically merged in 0 days) |
| Project age | 2 months |
Checked on 2026-10-20 with the GitHub API.
Project history
Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.
Stars
4,342Forks
482Change since Nov 12, 2026: +18 stars·+1 forks
Overview
HarnessRouter is a self-hosted Python service built around the Unified Harness Protocol (UHP), an open standard for running agent harnesses through a common interface. It addresses the integration work of supporting multiple harnesses by providing one OpenAI Responses-compatible API for tasks, sessions, streaming, files, cancellation, and structured failures.
The Community Edition runs on infrastructure you control, with Docker, and supports harnesses including Codex, Claude Code, Hermes, and Pi. It is aimed at teams building products with agent features who want to switch harness backends without separately implementing each harness's lifecycle. A managed Cloud option is also available, but this repository is the Apache-2.0 self-hosted edition.
Key Features
- Provides an OpenAI Responses-compatible API, with harness selection through request metadata.
- Implements UHP, with protocol specifications, schemas, and a conformance suite in the repository.
- Manages persistent sessions and follow-up turns, including idempotent request retries.
- Streams execution progress and supports task cancellation.
- Accepts input files and exposes generated files and artifacts from agent workspaces.
- Runs harnesses in separate session workspaces and operating-system users within the container.
- Includes a console for configuring providers, running tasks, and reviewing session output.
Use Cases
- A product team can integrate one agent API and offer users different harness backends without building a separate lifecycle integration for each.
- A self-hosting team can run agent tasks on its own infrastructure while keeping session state, files, and provider configuration under its control.
- Developers can prototype product workflows in the console, then call the same instance from a backend using the API.
- Teams implementing or evaluating UHP-compatible harness services can use the published protocol schemas and conformance suite.
What you need
Detected in the repository
- Python (main language on GitHub)
- A Dockerfile, so it can run in a container; a Compose file sets up the related services
- Automated checks on GitHub Actions
License in plain words
Apache-2.0permissive
- Commercial use: yes
- Modify and redistribute: yes
- You must keep: the license, the NOTICE file and a note of your changes
- Share your changes: no
- Includes an explicit patent grant from the contributors:
A summary, not legal advice: the LICENSE file is what applies.
Getting Started
You need Docker, about 4 GB of disk space, and a provider API key. Start the container with a persistent volume:
docker run -d --name harnessrouter \
-p 127.0.0.1:3000:3000 \
-v harnessrouter:/data \
harnessrouter/harnessrouter
Wait for the logs to report that the service is ready, then open http://localhost:3000, change the default console password, and configure a provider. See the README and self-hosting guide for setup, API, networking, and upgrade details.
Considerations
- The measured project status is New, and the project is changing quickly. Recent commit and release activity is high, but the short project history does not establish long-term stability.
- Community Edition sessions use separate workspaces and operating-system users, not separate containers. Review this isolation model before running workloads that require stronger boundaries.
- Model requests go to the provider you configure. The service requires a provider API key, and a self-hosted deployment makes you responsible for operations and network exposure. The README advises keeping the initial instance local until you change the default password.
- The requirements data does not indicate a test requirement; teams adopting it should assess their own validation needs, particularly as the protocol evolves.
Found this useful?
Share it with someone who would like harnessrouter.