ResearchUHP vs ACP
Independent resource · Not affiliated with HarnessRouter · Site data checked 23 Aug 2026
Comparison

UHP vs Agent Client Protocol (ACP)

UHP and ACP both standardize “talk to an agentic runtime”, but they standardize different boundaries with different ownership models. This comparison separates them precisely, including ACP v1 (the stable line) versus ACP v2 (Draft).

Verified: Protocol: 2026-08-11

The one-sentence difference

ACP standardizes how an editor/UI-style client talks to an agent process. UHP standardizes how a product hands tasks to a server that runs complete harnesses. They overlap in spirit — one interface instead of many bespoke integrations — but they are not substitutes.

Version status first

  • ACP v1 is the protocol's current published line: JSON-RPC 2.0 based, with Rust and TypeScript SDKs at 1.0.0 since 25 June 2026 and libraries listed for Kotlin, Java, Python, Rust and TypeScript.
  • ACP v2 is a Draft, announced 20 July 2026 and explicitly published for review and testing — it changes lifecycle semantics (work can continue beyond a user turn), unifies ID-based update/streaming patterns, and extends permission/extension rules. Treat everything v2-specific as draft; do not present it as the production baseline.
  • UHP is 2026-08-11, a Draft standard with a runnable 52-check conformance suite (2026.8.11.post1).

Architectural comparison

DimensionUHPACP
Primary boundaryProduct/client ↔ UHP server ↔ harnessClient/editor/UI ↔ agent
PurposeDrive interchangeable complete harnesses through a server contractStandardize interactive client↔agent integration: UX, permissions, resources
Message modelHTTP resource/task contract + SSE streamingBidirectional JSON-RPC 2.0 requests, responses and notifications
TransportHTTP; SSE for streamingv1: stdio recommended (“SHOULD support whenever possible”); Streamable HTTP is a draft proposal in progress; custom transports allowed. Not stdio-only — remote scenarios are documented, with full remote support acknowledged as work in progress
DiscoveryGET /v1/uhp discovery document + per-server harness catalogInitialization/capability negotiation per connection; the public agent registry is ecosystem-level, not a per-server harness catalog
SessionsServer-owned responses/sessions; continuation via previous_response_idsession/new/session/load; session-scoped methods and updates
Tool/resource boundaryHarness executes inside the server-controlled runtime/workspace; UHP exposes results, files, eventsClient may expose filesystem, terminal, permissions and other capabilities to the agent
CancellationResponse/session cancellation endpointssession/cancel / request cancellation notifications
Substitution goalClient need not know which harness runs or how the server executes itClient works with any ACP-capable agent without agent-specific UI integration
Maturity snapshot (23 Aug 2026)Draft standard; two verified independent clients; conformance-defined server claimsv1 stable line with a broad registry/client ecosystem; v2 Draft evolving separately

What each side does not claim

Precision points: ACP is not local-only or stdio-only — stdio is the stable v1 baseline while remote transports evolve in draft form. UHP is not an editor protocol — its client can be a product backend, CLI, CI job or another agent. Neither protocol is a universal replacement for the other, because they own different boundaries: UHP leaves server-to-harness execution implementation-defined, while ACP formalizes what a UI client and an agent say to each other directly.

Because those boundaries differ, the protocols can conceptually coexist — for example, an editor could speak ACP to an interactive agent while a product backend speaks UHP to a harness server. No specific UHP implementation is claimed here to use ACP internally; that would require direct primary evidence from the implementation itself.

Adapters are not vendor adoption

ACP's agent listings include Codex CLI via Zed's adapter and Claude Agent via an SDK adapter. Adapter availability demonstrates ecosystem demand; it does not mean OpenAI or Anthropic adopted ACP natively. The same rule this guide applies to UHP integrations applies to ACP adapters.

A concrete coexistence example

SuperQode is useful precisely because it operates on both sides of this line: it ships ACP-facing workflows for interactive use and a verified UHP client transport for driving UHP servers. That makes it an implementation example — not a substitute for the primary definitions from the two protocol projects, which govern what each protocol actually is.

Related pages

Compare further: UHP vs MCP, UHP vs A2A, UHP vs model APIs, and UHP architecture for the Client/Server/Harness roles referenced throughout this page.

Primary sources