OPEN SOURCE DEEP DIVE
Pi: a layered agent harness monorepo
Pi Agent Harness (formerly badlogic/pi-mono; 108k+ stars, MIT/TypeScript). Not one CLI but layered packages usable on their own: pi-coding-agent (interactive coding agent), pi-agent-core (runtime with tool calling and state), pi-ai (unified multi-provider LLM API), plus chord composition runtime, pi-telemetry contracts, pi-durable persistence and pi-tui differential terminal rendering. The README states plainly that there is no built-in permission system and offers micro-VM / Docker / sandbox paths instead. Not benchmarked by us; graded needs-reproduction.
What it is
Pi Agent Harness (formerly badlogic/pi-mono, now at earendil-works/pi) is a monorepo that describes itself as the home of the Pi agent harness project including a self-extensible coding agent. It has more than 108,000 stars, is MIT-licensed, and is written in TypeScript. It is not a single CLI but a set of layered packages: harness, agent runtime, and unified LLM API are each usable on their own.
Three core packages: @earendil-works/pi-coding-agent is the interactive coding agent CLI; @earendil-works/pi-agent-core is the agent runtime with tool calling and state management; @earendil-works/pi-ai is the unified multi-provider LLM API (OpenAI, Anthropic, Google, and others). Four supporting packages sit alongside: chord (a standalone application-composition runtime for services, replicated state, RPC, and plugins), pi-telemetry (vendor-neutral telemetry contracts, a reference adapter, conformance tests, and typed schemas), pi-durable (a durable conversation, task, and document runtime), and pi-tui (a terminal UI library with differential rendering).
Why its layering is worth studying
Most agent projects fuse LLM access, the agent loop, and the TUI together, so you either take the whole thing or none of it. Pi cuts them into layers you can lift individually: pi-ai can be taken by any application that needs a unified multi-provider interface even if it has nothing to do with agents; pi-tui's differential rendering is a general terminal-UI capability; chord is outright a general application-composition runtime. That separation makes the word harness resolve into concrete responsibilities - which layer owns session state, which owns tool dispatch, which owns rendering.
The existence of pi-telemetry is especially telling about its priorities: contracts, a reference adapter, conformance tests, and typed schemas are all present. That means Pi treats observability as a first-class goal on par with runnability, not as logging bolted on afterwards. For a harness, whether a failure can be localized and a cost attributed depends on telemetry being in the contract from the start.
"Self extensible" is the label it gives itself, and combined with chord's plugin capability it points at an agent extending its own capability set during operation. That is one of three answers to the same question, alongside Hermes' skills growing from experience and DeepSeek Harness' plugin attachment, and the three are worth comparing side by side.
Permissions and containerization: it states plainly what it does not do
The most quotable passage in the README is its candour about permissions: Pi does not include a built-in permission system for restricting filesystem, process, network, or credential access; by default it runs with the permissions of the user and process that launched it. If you need stronger boundaries, containerize or sandbox Pi.
It then gives three patterns. The Gondolin extension keeps pi and provider auth on the host while routing built-in tools and ! commands into a local Linux micro-VM. Plain Docker runs the whole pi process in a local container for simple isolation. OpenShell runs the whole pi process in a policy-controlled sandbox. Stating "we have no permission system" in the README body and then supplying three alternative paths is the responsible move: it does not pretend to be secure, it draws the boundary and hands responsibility to the deployer.
This also explains its place in the ecosystem: orca's repo topics include pi, meaning orca treats Pi as one of the agents it can orchestrate. Pi supplies the runtime; orchestration tools above it consume it.
Governance and boundaries
The top of the README carries a governance notice: new issues and PRs from new contributors are auto-closed by default, and maintainers review auto-closed issues daily. That is a high-pressure maintenance strategy - it protects maintainer attention by refusing by default, at the cost of more friction for community contributions. Readers should know this project's collaboration model leans closed, with longer-term planning routed through RFCs (the pi keyword on rfc.earendil.com). The repo also ships an AGENTS.md that applies to humans and agents alike.
The website pi.dev has demos and docs live at pi.dev/docs/latest, and the README notes you can also ask the agent to explain itself. We have not benchmarked or reproduced Pi; its star count and its position inside the orchestration ecosystem make it a layer this spine has to carry. Capability level is graded as needing reproduction.
SOURCE LINKS