HarnessRouter

harnessrouter: Unify Agent Harnesses Behind One API

HarnessRouter is a self-hosted Python service built around the Unified Harness Protocol (UHP), with an OpenAI Responses-compatible API for agent harnesses such as Codex and Claude Code. It gives product teams one interface for sessions, streaming, files, cancellation, and failures.

NewPythonApache-2.0AI AgentsSelf HostedAPI
Stars
3.1k
Forks
345
Stars, last 30 days
+1,347
Last commit
today
Contributors
31

Our take

Newless than six months old and changing fast

Health score

80/100

How it is scored
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 commit2026-10-19 (today)
Commits, last 90 days100+
Releases, last 12 months100+ (latest v0.35.10, 2026-10-20)
Contributors31 (top contributor: 45% of commits)
Issues closed, last 90 days19+ (typically closed in 1 day)
Pull requests merged, last 90 days96 (typically merged in 0 days)
Project age2 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.

Selected snapshot

Stars

4,342

Forks

482

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

Comparisons