Comparisons guide

Pi API: Run It Directly or Through HarnessRouter

Pi is the agent harness; HarnessRouter runs it behind one API. When to use Pi directly, and when to run it through HarnessRouter.

Short answer

This is not a rivalry. Pi is the agent harness from earendil-works: the agent that carries out a task, reading and writing files, running commands, and using tools. HarnessRouter is one way to run that agent harness, and others, behind one API in per-run sandboxes with sessions, streaming, files, renderable artifacts, and traces. Use Pi directly, interactively or headless, when you are running it yourself and building the surface around it. Run it through HarnessRouter when you are embedding agent work into a product you ship and want one contract across the agent harnesses HarnessRouter runs, per-run sandboxes, and artifacts your product UI can render, on the open Unified Harness Protocol, with an Apache 2.0 Community Edition you can self-host.

  • Pi is the agent harness; HarnessRouter is one way to run it. The question is not which to pick but whether you are running Pi yourself or invoking it as a service inside a product.
  • Direct use fits running Pi yourself, interactive or headless, where you build the surrounding surface. Through HarnessRouter fits product backends: per-run sandboxes, one API across Pi and the other agent harnesses HarnessRouter runs, and a files-and-traces contract.
  • Every claim here was verified against public materials on 2026-08-27; both Pi and HarnessRouter ship fast, so re-check anything load-bearing.

How Pi and HarnessRouter relate

Pi is the agent harness from earendil-works. HarnessRouter does not do that work and does not replace it. HarnessRouter is the world's first unified interface for agent harnesses. Pi is one of the agent harnesses it runs. So the comparison is not one product against another. It is the same agent harness, Pi, run two ways: directly, where you run it yourself and build the surface around it, or invoked as a service through HarnessRouter's one API, in a per-run sandbox, alongside the other agent harnesses HarnessRouter runs, with a product contract of sessions, streaming, files, renderable artifacts, and traces. All facts here are from public materials, verified 2026-08-27.

The four questions that decide which way you run it

These axes decide between running Pi directly and running it through HarnessRouter. They are not a scorecard of one product against another; they are about your situation.

Who runs it
You run it yourself, interactively or headless, or you call it as a service that runs each task in a per-run sandbox.
How many agent harnesses
Just Pi, or Pi today and the freedom to route a task to Claude Code, Codex, Hermes Agent, and DeepSeek Harness tomorrow behind the same contract.
What surrounds the run
A surface you build and operate around the harness yourself, or a contract that supplies sessions, streaming, files, renderable artifacts, and run traces for a product UI.
Who operates the runtime
You, on your own setup, or a hosted runtime that provides per-run sandbox isolation, with an Apache 2.0 Community Edition you can self-host.

Two ways to run it, side by side

The same agent harness, two ways to run it. This is a map of responsibilities, not a scorecard. Facts as of 2026-08-27.

DimensionPi directlyPi through HarnessRouter
Does the agent workPi is the agent that reads and writes files, runs commands, and uses toolsThe same Pi agent harness does that work inside a per-run sandbox
Interactive and headless useBuilt for running it yourself, interactively or headless, on your own setupA service you call rather than your own local setup
Programmatic usePi supports headless and programmatic use; you build and operate the surface around itHarnessRouter exposes Pi through one API in a per-run sandbox, callable from any language
One contract across multiple agent harnessesPi is one agent harness; another one means another integrationThe same contract runs Pi alongside Claude Code, Codex, Hermes Agent, and DeepSeek Harness, the harness a parameter per task
Product surface around the runYou choose and build the product-facing surface around its outputsThe contract provides files, diffs, and renderable artifacts with a trace for every run
Open standard and self-hostable runtimeYou run it on your own setup, under your own accountOpen Unified Harness Protocol as the runtime contract, plus an Apache 2.0 Community Edition you can self-host

When to use each

You are iterating at your own terminal right now
The Pi CLI is right there — run it directly. HarnessRouter is the pick the moment that work becomes something you ship: a product, a team, many tasks in parallel, or one contract across Pi and the other agent harnesses HarnessRouter runs.
You are embedding agent work into a product you ship
Run Pi through HarnessRouter. Per-run sandboxes, one API, and a files-and-traces contract are the product-backend job, and the same call can route to another agent harness HarnessRouter runs when a task calls for it.
You want to keep Pi but not be locked to one agent harness
Run it through HarnessRouter: Pi stays available, and Claude Code, Codex, Hermes Agent, and DeepSeek Harness are the same contract away, chosen per task rather than re-integrated.
You want each task isolated in a per-run sandbox
Run Pi through HarnessRouter when you want each task to use a per-run sandbox behind the same API used for the other agent harnesses HarnessRouter runs, rather than building isolation yourself.
You need to self-host inside your own boundary
Run Pi through HarnessRouter Community Edition: open source, Apache 2.0, on your own infrastructure, with the open Unified Harness Protocol as the contract.

FAQ

Is HarnessRouter an alternative to Pi?
No. Pi is an agent harness, the agent that does the work; HarnessRouter is one way to run it, and other agent harnesses, behind one API in per-run sandboxes. They are complementary: HarnessRouter runs Pi rather than replacing it.
Can I run Pi through an API?
Pi supports headless and programmatic use on its own, in which case you build and operate the surface around it. HarnessRouter also exposes Pi, and the other agent harnesses HarnessRouter runs, through one API in per-run sandboxes, returning sessions, streaming, files, renderable artifacts, and a trace, callable from any language.
What does HarnessRouter add on top of Pi?
A hosted runtime and a product contract: per-run sandbox isolation, one API across Pi alongside Claude Code, Codex, Hermes Agent, and DeepSeek Harness, files and renderable artifacts with run traces, and the open Unified Harness Protocol as the contract, with an Apache 2.0 Community Edition you can self-host. The Pi agent harness does the agent work inside that runtime.
Is HarnessRouter affiliated with earendil-works?
No. Pi is a product of earendil-works, and HarnessRouter is an independent runtime that runs it. Product and company names are used here only to identify what HarnessRouter runs and remain the trademarks of their respective owners; this page is not endorsed by earendil-works.

Keep Pi. Run it behind one API.

Sign up and point one real task at Pi on HarnessRouter. The agent harness does the work in a per-run sandbox, the contract stays open, and the other agent harnesses HarnessRouter runs are the same call away.

Start building on HarnessRouter