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.
Every AI agent product needs a harness runtime.
Just attach your skills, tools, and plugins, then ship your agent product. We run the harness layer.
01The idea
Your agent logic stays yours. The loop, sandbox, sessions, and trace become one API call.
ssh prod-agent-03 && pm2 restart agentif (harness === "codex") { … } else if (…catch (e) { /* retry? give up? ¯\_(ツ)_/¯ */ }// glue.ts: stream, retry, resume, persist…spawn("claude", ["-p", task]) // parse stdoutHARNESSROUTER_API_KEY=sk-hr-••••Get yours ›02Product demo
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.
Your first three demo setups are free.
Build this agent ›03Included
Not an empty sandbox. An isolated run of a configured harness for each task (Cloud).
04Benchmark
Cost, speed, and accuracy depend on the harness, not just the model.
Lowest to highest configuration on this measured task.
gpt-5.2gpt-5.2claude-opus-4.8claude-opus-4.804.1Smart routing
Select a compatible configuration for each task.

Smart routing
04.2Try it yourself
Run your task across harnesses and compare time, cost, and accuracy.
05Why teams pick it
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.
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.
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
HarnessRouter provisions and operates one isolated sandbox for every task, so workloads scale without infrastructure work.
Concurrent tasks
07Unified Harness Protocol
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.
Create a cinematic car video
UHP server08How to build
All three run on HarnessRouter Cloud. Every user task runs in its own sandbox, with the full trace.
Describe what it should do and configure its agent harness here. Then your coding agent builds your app and connects it to HarnessRouter with an API key.
Open the Console08.2Get an API key and the setup guide. Then your coding agent builds the agent feature in your app and connects it to HarnessRouter.
Get an API key08.3Point your coding agent at the migration guide. It moves your agent’s execution to HarnessRouter, and your app and user experience stay as they are.
Read the guide09Engineering
Questions engineers ask before integrating.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.)
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.
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.
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.
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.
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.
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.
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.
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.
10Start