Spokes.wiki Search About
Created
Updated
Also known as
Pi · pi.dev · earendil-works/pi · Pi coding agent
See also
agentic-coding-harness · oh-my-pi · agentkot · claw-code · mario-zechner · earendil-works · agent-skills · model-context-protocol

Pi — the harness that ships its refusals as extensions

Mario Zechner's Pi, published by Earendil Works and described on its own front page as "a minimal agent harness." The tagline is the design: "Adapt Pi to your workflows, not the other way around." Read from pi.dev and the repository on 2026-08-30.

The corpus has had Pi in view since June without ever paging it. oh-my-pi was ingested as "a fork of Mario Zechner's Pi," and agentic-coding-harness names "configurable harnesses like Pi" in passing. This is the upstream arriving in its own right.

The repository, measured

From the GitHub API on 2026-08-30 (earendil-works/pi):

Stars / forks 99,163 / 12,303
Open issues 138
Language TypeScript
Licence MIT
Created 2025-08-09
Last push 2026-08-29
Description "AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI"

Those are the largest counts of any harness in this spoke, by an order of magnitude, on a repository just over a year old and pushed yesterday. Note the mismatch worth keeping: the repo sells a toolkit (unified LLM API + agent loop + TUI + CLI), the website sells a minimal harness. The CLI in packages/coding-agent is one package of several.

What it refuses, and what makes that different

The front page ends in a list of things Pi does not do. Each carries a stated alternative:

Refused Pi's answer
No MCP build CLI tools with READMEs (i.e. skills), or write an extension that adds MCP
No sub-agents spawn Pi instances via tmux, or an extension, or install a package
No permission popups run in a container, or build your own confirmation flow
No plan mode write plans to files, or build it
No built-in to-dos use a TODO.md
No background bash use tmux — "full observability, direct interaction"

This is the second harness here defined by its removals, after KOT on 2026-08-23, and it overlaps KOT on two of them (MCP, permission gates). The reasoning is opposite. KOT's removals come with ten fixed built-in tools and no registry — a bet that built-in beats extensible. Pi's come with the section heading "Primitives, not features" and a link to 50+ example extensions, among which are subagent/, plan-mode/, permission-gate.ts, protected-paths.ts, sandbox/ and MCP integration. Pi removes the features and ships them back as samples.

So the corpus now holds two harnesses that delete the same layers for contradictory reasons, and the generalization written from the first one — that a refusal implies a built-in bet — does not survive the second. See synthesis.

Extensibility as the product

  • Extensions are TypeScript modules with access to tools, commands, keyboard shortcuts, events and the full TUI.
  • Packages bundle extensions, skills, prompts and themes, installed from npm or git: pi install npm:@foo/pi-tools, pi install git:github.com/badlogic/pi-doom. There is a package browser at pi.dev/packages.
  • Self-modification is the pitch, not a side effect. "If you need a command, tool, provider, workflow, or UI tweak, just ask Pi to build it. It will customize itself on the fly… Have Pi manipulate itself in place, hit /reload, and keep going." A harness whose stated method of gaining a feature is asking the agent inside it to write one.
  • Third-party work exists: @termdraw/pi by Ben Vinegar, and a DOOM extension the site demonstrates.

The rest of the surface

Four modes — interactive TUI; print/JSON (pi -p "query", --mode json for event streams); RPC over stdin/stdout for non-Node integrations; and an SDK for embedding, with OpenClaw named as the real-world integration.

Providers: "15+ providers, hundreds of models" — Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi For Coding, MiniMax, NVIDIA, OpenRouter, Ollama — API keys or OAuth, switchable mid-session with /model, custom providers via models.json.

Sessions are trees. /tree navigates to any earlier point and continues from there, all branches in one file, filterable and bookmarkable; /export to HTML, /share to a GitHub gist with a rendering URL. The only harness here that treats a session as a branching structure rather than a log.

Context engineering is the site's own term for the cluster: AGENTS.md loaded from ~/.pi/agent/, parent directories and the cwd; SYSTEM.md to replace or append to the system prompt per project; compaction that auto-summarizes older messages and is itself replaceable by extension (the docs name topic-based compaction, code-aware summaries and a different summarization model as things you would write); skills loaded on demand, described as "progressive disclosure without busting the prompt cache"; prompt templates as markdown expanded by /name; and extensions that can inject messages before each turn, filter history, or implement RAG.

Steering: Enter interrupts the running agent after the current tool; Alt+Enter queues a follow-up for when it finishes.

What is not here

No benchmarks, no evaluation, and no comparison against any other harness — the site makes no performance claim at all, which is unusual enough in this corpus to be worth stating. The star and fork counts are adoption, not quality. Every capability above is the project's own description; the only figures independently obtained are the repository counts, and those come from GitHub rather than from anyone assessing the software.

agentic-coding-harness · oh-my-pi · agentkot · claw-code · mario-zechner · earendil-works · agent-skills · model-context-protocol · openclaw · synthesis