Pi is an MIT-licensed TypeScript agent toolkit from Earendil whose flagship is a minimal, self-extensible terminal coding agent that you adapt through extensions rather than configuring a closed product.
Pi’s thesis is that a coding agent should be a small frozen core plus your code, and it is the only harness at this scale whose author treats missing features as policy rather than backlog.
What it is #
A CLI (@earendil-works/pi-coding-agent) plus reusable packages: pi-ai (unified API for 15+ providers with mid-session model switching), pi-agent-core (the agent loop), pi-tui, and pi-telemetry.
Four surfaces come from one binary: interactive TUI, one-shot print mode, RPC over stdio, and a Node SDK.
Sessions are tree-structured JSONL with in-place branching, compaction, and HTML export.
Extensions, skills, prompt templates, and themes are TypeScript, shareable as npm or git packages, and the system prompt is under 1,000 tokens and replaceable.
Install is npm or a standalone Bun binary; models come from your own API keys or existing subscriptions (Claude, ChatGPT, Copilot) or local llama.cpp servers.
Made by Earendil Inc., created by Mario Zechner with Armin Ronacher as the second-largest contributor; formerly badlogic/pi-mono.
Status #
Active and ascending: 111,872 stars, 14,190 forks, 258 open issues and PRs as of 2026-10-03. Created 2025-08-09, pushed within a day of verification, releases roughly weekly, reaching v1.0.0 on October 1, 2026; the v0.99 line (September 29-30) shipped the biggest capability change in the project’s history, codemode, tool search, and MCP support as built-in extensions, and v1.0.0 made the TUI fullscreen by default, cut codemode prompt tokens by about 40 percent, and hardened MCP OAuth. The ecosystem is the strongest signal: OpenClaw runs on Pi, and oh-my-pi, a batteries-included fork with about 34.1k stars as of 2026-10-03, exists precisely because some users want the features Pi refuses to ship.
Strengths #
- Radical extensibility: subagents, plan mode, and permission gates all exist as extensions you can read, and the agent can modify and reload itself.
- Provider freedom with cross-provider context handoff, plus a deliberately minimal and stable prompt and tool surface.
- Supply-chain discipline: pinned dependencies,
--ignore-scriptsinstall, audit in CI, standalone binaries built from signed sources. - Credible maintainers and a public Terminal-Bench 2.0 submission.
Cautions #
- No sandbox: the README says it runs with full user permissions, and isolation is your job (containers, micro-VMs), which was the most contested point in its Hacker News thread.
- Opinionated omissions remain policy, but the list shrank: v0.99.0 (September 29, 2026) shipped codemode, tool search, and MCP as built-in extensions (stdio and streamable HTTP with OAuth, configured from
mcp.json, managed with/mcp, and disable-able per project), so the no-MCP stance this note recorded for a year no longer holds; subagents, plan mode, and built-in todos are still extension territory. - Contribution gatekeeping: new contributors’ issues and PRs are auto-closed by default, and the author is explicit about dictatorial scope control.
- 84 minor versions in a year means real breakage risk, and the name is nearly unsearchable.
Pricing #
Free and open source under MIT. No hosted tier; the only costs are the model providers you connect.
Compared to #
- Claude Code: sealed, subscription-first, rich built-ins that change every release; choose Pi when context control and stability matter more than hand-holding.
- OpenCode: also open and multi-provider, but batteries-included with a full TUI; choose OpenCode for rich defaults, Pi to own the harness.
- Codex: OpenAI-tied with kernel-enforced sandboxing; choose Pi for model flexibility if you bring your own isolation.
Bottom line #
Recommended for engineers who want a harness they can read, extend, and pin, and who will take sandboxing seriously themselves. Not for teams wanting turnkey guardrails, MCP-centric stacks, or a stable API surface this year.
Changes #
- 2026-08-30 - Created in the Harnesses category, recording Earendil’s minimal extensible harness and its no-MCP policy.
- 2026-09-16 - Refreshed counters (105,966 stars, 13,322 forks, 235 open issues and PRs) and the oh-my-pi fork count (about 31.3k stars); v0.85.1 still the latest release.
- 2026-09-20 - Recorded the v0.86.0 release (September 19) and refreshed counters (107,467 stars, 13,564 forks, 213 open issues and PRs) plus the oh-my-pi fork at about 32k stars.
- 2026-09-21 - Recorded the v0.86.1 release (September 20) and refreshed counters, including the oh-my-pi fork at about 32.2k stars.
- 2026-09-22 - Recorded the v0.87.1 release (September 22) and refreshed counters, including the oh-my-pi fork at about 32.8k stars.
- 2026-10-02 - Corrected the no-MCP claim: v0.99.0 (September 29) shipped codemode, tool search, and MCP as built-in extensions, so MCP is now supported, not refused; recorded the v1.0.0 release (October 1, fullscreen TUI by default, leaner codemode, MCP OAuth hardening) and refreshed counters, including the oh-my-pi fork at about 34.0k stars.
See also #
- Harness Feature Matrix - the capability comparison this note joins
- OpenClaw - the largest product built on the Pi toolkit
- OpenCode - the batteries-included counterpart
- Agentic Coding Tools Landscape - where Pi sits in the harness layer
References #
https://github.com/earendil-works/pi - repository, packages, license, contribution policy
https://raw.githubusercontent.com/earendil-works/pi/HEAD/packages/coding-agent/README.md - install, providers, four modes, philosophy
https://pi.dev - positioning, extension model, and the list of features deliberately not built
https://mariozechner.at/posts/2025-11-30-pi-coding-agent/ - the author’s rationale for the minimal prompt and YOLO default
https://news.ycombinator.com/item?id=46844822 - the 421-point thread with pushback on the security posture
https://github.com/can1357/oh-my-pi - the batteries-included fork at about 34.1k stars, the counterargument in running code