Skip to content
UHPUHPDeveloper Guide
Independent developer guide. Not affiliated with HarnessRouter or the official UHP project.

HarnessRouter Runtime Plugins

Runtime Plugins are HarnessRouter services connected at workspace scope and included explicitly per harness; they are not UHP package plugins.

Page reviewed 4 Oct 2026 Source and review policy

HarnessRouter: v0.29.0Workspace service catalogue and per-harness inclusion

Connect, include and authorize are three different actions

Section titled “Connect, include and authorize are three different actions”

The stable self-hosting guide lists Browser, GitHub, Vercel, InsForge and Microsoft 365 in the Runtime Plugin catalogue. Each service has its own configuration and resource permissions. Turning one on at workspace scope does not include it in a harness automatically.

  1. Connect the service on the Console’s Plugins page and inspect its state: Connected, Needs auth, Disabled or Not connected.
  2. Set the resource scope, such as a repository or browser site allow/deny lists.
  3. Include the plugin on the specific harness that needs it (plugs attachment over the API).
  4. For member-delegated services, sign in as the intended member.
  5. Run one required read operation, then exercise a denied/unavailable resource path and inspect its reason.
Browser modeNetwork boundaryState/ownership consequence
Browser Use Cloud/vendor servicePrivate, local and metadata targets refusedVendor credential stays at the instance boundary
Instance’s own HR_BROWSER_CDP_URL browserLocal/private network refusal is lifted; site lists still applyOne context per task; tasks do not share cookies/tabs; no Console live view

Do not describe the self-hosted browser as enforcing the vendor network restriction. Selecting your own browser moves that trust decision to a machine on your network. Limit reachable resources and site policy accordingly.

For Microsoft 365, distinguish delegated member access from unattended application access. A connected Entra app does not mean every member has authorized it, and an unsigned-in member must not borrow someone else’s identity. The documented plugin exposes nine read tools; it is not a blanket mailbox administration grant.

Use workspace trust for connected configuration admission and routing identity for member/application ownership. UHP Harness Plugins remain the package lifecycle described below; they are not this workspace service plane.

PR #266, released in HarnessRouter v0.24.0, adds a plugin service plane. A workspace connects a service once; each harness explicitly includes or excludes it.

The first shipped plugin is browser use. HarnessRouter exposes browser tools through its plugs/MCP layer while keeping vendor credentials and the browser address out of the agent.

PR #350, released in v0.26.18, removes the separate per-organization availability gate. The default had already allowed every organization.

PR #343, released in v0.27.0, adds Microsoft 365 through an organization’s own Entra application. In delegated mode each call runs as the signed-in workspace member; application mode uses the organization’s application identity. A member who has not signed in, or whose Microsoft authorization was revoked, is directed to sign in rather than silently using another person’s identity.

Runtime PluginsUHP Harness Plugins
HarnessRouter implementation featureUHP protocol feature
Connected service at workspace scopeAgent Plugins package carried on a harness
Included per harnessInstalled/bound through protocol package semantics
Browser and Microsoft 365 are released implementationsPackage may contain MCP servers and skills

The names overlap, but the lifecycle, ownership and transport are different.

The vendor browser service refuses private, loopback, link-local and metadata-address targets. An instance-owned CDP browser lifts that network refusal while retaining domain allow/deny policy. Nothing is included by default.

Microsoft 365 delegated access is member-bound and Microsoft permissions remain the resource boundary.

These controls are HarnessRouter implementation behavior, not normative UHP requirements.