The world’s first unified interface for agent harnessesOpen Source4kPowered by UHP

Every AI agent product needs a harness runtime.

Plug a complete agent backend
into your app with one API key.
No harness engineering.

Just attach your skills, tools, and plugins, then ship your agent product. We run the harness layer.

Backed by

YY Combinator

Used by teams building agent‑powered products

EpsillaHiboNutchReadilyStanford
Medicine
Fig. 1N × M, or one API

01The idea

Don’t build the harness.
Snap on skills, tools, and plugins.

Your agent logic stays yours. The loop, sandbox, sessions, and trace become one API call.

  • 01.1No VPS babysitting.ssh prod-agent-03 && pm2 restart agent
  • 01.2No second integration for the second harness.if (harness === "codex") { … } else if (…
  • 01.3No guessing what a timeout means to your users.catch (e) { /* retry? give up? ¯\_(ツ)_/¯ */ }
  • 01.4No Agent SDK glue to own.// glue.ts: stream, retry, resume, persist…
  • 01.5No CLI to wrangle into a product backend.spawn("claude", ["-p", task]) // parse stdout
  • InsteadOne API key.HARNESSROUTER_API_KEY=sk-hr-••••Get yours ›
Fig. 2Same agent, minutes or months

Configure your agent in minutes? Or build the harness yourself in months?

Fig. 3No vendor lock-in. Swap the harness and model with one config line

Agent harnessModel

{
  "base": "codex",
  "defaultModel": "gpt-5.4"
}

All harnesses ›

02Product demo

From a one-line agent task to an agent product.

A price-comparison agent is set up in HarnessRouter with a complete agent harness. Your coding agent builds the app and its UI, then connects it to HarnessRouter with one API key. Ready to run, with the full trace.

Fig. 4One-line task to agent product, 1:26

Your first three demo setups are free.

Build this agent ›

03Included

Already in the box.

Not an empty sandbox. An isolated run of a configured harness for each task (Cloud).

Sandboxes
One per task
Sessions
Included
Traces
Full trace
Terminal states
Failure contract
Harnesses
30

04Benchmark

Cut enterprise agent usage costs by 90% or even more.

Cost, speed, and accuracy depend on the harness, not just the model.

Fig. 5Relative cost on one task with the same input, harness × model
Observed cost spread1×

Lowest to highest configuration on this measured task.

Harness × modelRelative cost
Hermes×gpt-5.2
1.0×
Codex×gpt-5.2
1.5×
Hermes×claude-opus-4.8
319×
Claude Code×claude-opus-4.8
475×
View methodologyThis is one measured workload, not a universal maximum. Harness and model both change production cost.

04.1Smart routing

Route every task to the configuration that wins.

Select a compatible configuration for each task.

Fig. 6Task in, one compatible configuration out
Task from your agent product

HarnessRouter

Smart routing

  1. Quality
  2. Cost
  3. Latency
One compatible configuration

    04.2Try it yourself

    Harness Arena

    Run your task across harnesses and compare time, cost, and accuracy.

    05Why teams pick it

    Less to build. More to ship.

    05.1

    Infra under your product.Not another coding CLI.

    HarnessRouter is the agent backend for your users. We adapt 30 harnesses so you don’t. Swap harness by config, not a new integration. Built for teams without an infra squad.

    05.2

    Ship the agent.Keep the brain.

    Keep your current tools and add AGENTS.md. Compare harnesses in Arena on the same task; keep the winner on quality, speed, or cost. Or point an existing graph at us.

    05.3

    Failures with a contract.Not a shrug.

    Every run ends in a clear terminal state. Timeout → incomplete, with reason, partial work kept, and a full trace. No silent auto-retry / silent failover; your app controls the expensive loop.

    06Serverless agent runtime

    Scale without operating the infrastructure.

    HarnessRouter provisions and operates one isolated sandbox for every task, so workloads scale without infrastructure work.

    Fig. 7One task, one sandbox

    Concurrent tasks

    1. Tasks received
    2. Provisioning
    3. Running
    0isolated sandboxes running
    Isolation
    One sandbox per task
    Provisioned and operated by
    HarnessRouter
    Servers you operate
    0

    07Unified Harness Protocol

    Every harness, one contract.

    Your app sends a task. HarnessRouter starts the harness and model, streams progress back, and returns the result and artifacts. The contract stays the same whichever harness runs it.

    Fig. 8Task in, result out
    One contract between your agent product and a complete agent harness.

    Your agent product

    Task in · result out
    Product chat Agent online
    You

    Create a cinematic car video

    Agent
    Routing taskHarnessRouter is running the selected agent
    HarnessRouterUHP server
    1. Starts the harness + model
    2. Relays progress and events
    3. Returns results + artifacts

    Choose the combination

    Harness × model
    Harness
    Model

    Benchmark the pair by quality, latency, and cost.

    Read the Unified Harness Protocol →

    09Engineering

    Q&A

    Questions engineers ask before integrating.

    Product fit

    What is an agent harness?

    A model reasons and generates output. An agent harness is the runtime that turns that output into completed work through an execution loop, tools, session state, files, and a working environment. GPT-5.5 and Claude Fable 5 are models. Codex, Claude Code, and Hermes are agent harnesses.

    Can Codex, Claude Code, and Hermes power agent features in our product?

    Yes. Codex, Claude Code, Hermes, and similar agent harnesses are complete agent runtimes, not only developer tools. HarnessRouter runs them behind one API, while the Unified Harness Protocol (UHP) defines the shared contract your agent product uses to select, configure, and drive each harness. Their execution loops, tools, Sessions, file handling, and task capabilities can power features inside your agent product, while you keep your own interface, authentication, permissions, data, and user experience.

    Why use more than one agent harness?

    Model choice is only half of the configuration. Even with the same model, the harness can change the agent loop, tool use, token consumption, latency, reliability, and cost. HarnessRouter lets you benchmark harness and model combinations on your own tasks, then route each workload to the combination that fits your quality, speed, and cost targets without rebuilding the product integration. You do not need to run every harness at the same time.

    Is HarnessRouter a model router?

    No. A model router selects models and returns model output. HarnessRouter runs complete agent harnesses that use models, tools, files, and execution loops to perform tasks and return finished work. The two layers solve different problems and can be used together.

    Why not use Codex or Claude Code directly?

    You can use them directly to build an agent demo. Turning that demo into a product your users can rely on also requires isolated sandboxes, sessions, streaming, files, cancellation, recovery, scaling, and observability. HarnessRouter provides this production runtime through one API.

    What kinds of agent products can we build with HarnessRouter?

    You can build any agent product whose core work can be expressed as tasks for a supported harness. Examples include personal agents, codebase fixer agents, research agents, contract review agents, financial agents, data analysis agents, presentation agents, spreadsheet agents, dashboard agents, and video agents. In just a few hours, we launched a personal agent product inspired by Grok DOT, with agent reasoning, tools, file handling, and task execution running behind the agent product interface.

    What happens when a harness times out or fails mid-run?

    Every run ends in a clear terminal state. A timeout is incomplete: you get the reason, any partial work kept, and a full trace. HarnessRouter does not auto-retry the same harness or silently fail over to another one. Your app decides the next step.

    Do we have to rebuild our agent to use HarnessRouter?

    No. Keep your product UX and your current tools. Add AGENTS.md (or attach skills, tools, and plugins), then connect with one API key. You are not rewriting the brain. You are plugging in the harness runtime.

    Do you replace LangGraph / our coordinator?

    No. Keep your graph or coordinator. HarnessRouter replaces the DIY harness, sandbox, session, and failure plumbing those layers call into, not the orchestration layer itself.

    Runtime and interface

    Is this just a sandbox (like an empty compute box)?

    No. Cloud runs each task in its own sandbox, but the point is a configured harness inside it: instructions, skills, tools, plugins, plus sessions, files, cancellation, and traces on one API. Not empty isolation alone. (Per-task isolated sandbox is Cloud; Community Edition uses a different isolation model.)

    What is UHP?

    The Unified Harness Protocol is an open and versioned standard for connecting applications to complete agent harnesses. It defines a shared contract for selecting and configuring harnesses, running tasks, streaming progress, continuing Sessions, exchanging files, cancelling work, handling errors, and receiving results. Its task surface is compatible with the relevant OpenAI Responses API surface, and it can be implemented independently of HarnessRouter Cloud.

    unifiedharnessprotocol.org

    Can we switch harnesses without changing our agent product API?

    Yes. Your agent product keeps the same HarnessRouter API when it selects a different configured harness for a new task or Session. Each harness still has its own capabilities, tools, and behavior. A continued Session remains on the configured harness that started it.

    What does HarnessRouter return to our application?

    Your application can receive streamed progress and events, task and Session status, generated files and artifacts, the final result, structured errors, and execution traces. It can also continue a Session, cancel running work, and retrieve the files produced by the agent.

    Deployment and control

    What is the difference between Community Edition and HarnessRouter Cloud?

    Community Edition is the Apache 2.0 reference implementation that you run on infrastructure you control. It packages the Console, Gateway, and Runner in one Docker deployment and uses your own model provider credentials.

    HarnessRouter Cloud is the managed service. HarnessRouter operates and maintains the runtime, provisions isolated sandboxes for tasks, supports execution tracing, and scales execution for you. Both editions implement the same UHP contract.

    Where do our keys, files, Sessions, and state live?

    With Community Edition, provider keys, Sessions, files, workspaces, and application state remain on infrastructure you control. Model requests still go to the provider you configure. With HarnessRouter Cloud, HarnessRouter and the providers selected for a route process the data needed to run and retain tasks. HarnessRouter does not use Customer Content to train its own AI models unless you actively opt in. See the Privacy Policy, Data Processing Addendum, and Subprocessor List for current processing, retention, and deletion terms.

    Cost and adoption

    Can the harness itself reduce cost when the model stays the same?

    Yes. The harness controls the agent loop, tool use, retries, and token consumption, so two harnesses using the same model can have different task costs. In one controlled HarnessRouter benchmark, keeping the model fixed and changing only the harness produced a 1.5x to 2.1x cost difference. The lower cost harness used about 32% to 53% fewer credits in those same model comparisons, and latency differed by up to 1.95x. Across all eight harness and model configurations, the lowest cost configuration consumed 99.8% fewer credits than the highest cost configuration. Results vary by task, so HarnessRouter lets you benchmark combinations on your own workload and route to the one that meets your cost, speed, and quality targets.

    View the benchmark

    How does pricing work with our own provider keys or a HarnessRouter key?

    With your own provider keys, your model provider bills model usage directly. HarnessRouter bills Agent work and any applicable Agent memory or routing fees. With a HarnessRouter key, model usage is billed through HarnessRouter at exactly what the model's provider charges, with no markup. Agent work is metered only while the harness is actively executing steps and tools. Waiting for a model response, a user, a queue, or a platform retry is free. See Pricing for current plans, included usage, and rates.

    What is required to migrate an existing agent product?

    Open the HarnessRouter Docs and select Migrate an existing agent product. Give the migration instructions to your coding agent, describe the current backend, and add a Workspace API key only through the secure secret modal when prompted. The coding agent helps map the existing runtime to HarnessRouter while preserving your agent product interface. Before cutover, run representative staging tasks and verify results, streaming, files, recovery, latency, and cost. Keep the existing path available for rollback until the migration is verified.

    Open the HarnessRouter Docs

    10Start

    Your app owns the user experience. HarnessRouter runs the agent work.