Independent resource · Not affiliated with HarnessRouter · Last verified 15 Aug 2026
Architecture

Unified Harness Protocol architecture

The core UHP boundary is simple: a client speaks UHP to a server; the server drives one or more complete harnesses behind that interface.

Verified: Protocol: 2026-08-11No executable JS

The three roles

┌──────────┐    UHP / HTTP    ┌──────────┐   internal mechanism   ┌──────────┐
│  Client  │ ───────────────▶ │  Server  │ ────────────────────▶ │ Harness  │
└──────────┘                  └──────────┘                        └──────────┘

Client: the product backend, CLI, CI job or another agent that requests work. A conforming client should not need to know how the server launches a harness.

Server: the protocol implementation. It accepts tasks, drives harnesses and translates execution into UHP objects, events and errors.

Harness: the full runtime with its own agent loop, tools and session state. UHP identifies harness families by stable bases such as codex, claude-code and hermes.

Configured harnesses

UHP treats configuration as a first-class object rather than assuming that a base name fully defines behavior. A configured harness can combine a base with a default model, instructions, tool restrictions, skills, MCP servers and execution budgets. The server assigns it an id that clients use when submitting work.

Object model

ObjectPurposeTypical lifetime
HarnessSaved configured runtimeUntil deleted
ResponseOne atomic task and its resultServer retention policy
SessionChain of responses sharing context and workspaceUntil deleted/expired
ContainerFile namespace for a sessionWith session
FileInput or artifact in a containerWith container
EventProgress fact in the event streamStreamed and replayable

Sessions are implicit

A first task can create a session automatically. Continuation uses the prior response relationship rather than requiring every client to create a session object before doing any work. A session preserves conversational context, working-directory state and the selected configured harness across tasks.

The specification requires a mismatch to fail rather than silently switching to a different configured harness inside the same conversation chain.

Transport and streaming

UHP uses HTTP/1.1 or later. TLS is required outside loopback development. Normal request and response bodies use JSON; file upload uses multipart form data; downloads use the file media type. Streaming uses Server-Sent Events (SSE).

This choice keeps the client-facing contract web-native while leaving the server free to run local CLIs, containers or remote execution internally.

Conformance classes

ClassRequired surface
CoreDiscovery, harness discovery, task execution, streaming, continuation, cancellation and errors.
ExtendedCore plus file input, artifacts and session listing/inspection.
FullExtended plus harness create/update/delete and session sharing.

Clients are expected to discover capabilities rather than assume everything above Core exists.

Security boundary

Clients authenticate with bearer tokens. UHP requires every object to be scoped to the principal that created it. Cross-principal attempts to read or manipulate another party's objects should return 404 rather than disclose whether an id exists.

Primary source