Four tools. Read, Write, Edit, Bash. That’s it, by default — no MCP, no subagents, no plan mode. Everything I’ve written up so far has been about adding capability. Pi is the one project going the other way on purpose.

Built by Mario Zechner (goes by badlogic online, also made the libGDX game framework), the whole philosophy is: keep the core almost nothing, push everything else out into a TypeScript extension system instead of baking it in. The pitch isn’t “minimal because it’s early” — it’s minimal because a smaller core is easier to actually understand, audit, and build your own opinionated thing on top of without fighting decisions someone else already baked in.

Here’s the part that got me, though. Armin Ronacher — the guy who made Flask — wrote a public essay endorsing Pi. Then about two months later, his company Earendil straight-up acquired it from Zechner. Repo moved from badlogic/pi-mono to earendil-works/pi. Zechner joined the company as a stakeholder rather than just cashing out. They launched a whole cloud platform, Lefos, at the same time. Fan buys the thing he was a fan of, and the creator sticks around to keep building it — not a story structure I run into often in this space, where acquisitions more commonly mean the original team leaves or the product gets folded into something else and quietly stops shipping.

The “four tools” framing undersells it a bit, to be fair. It’ll take subscription logins for ChatGPT Plus/Pro, Claude Pro/Max, GitHub Copilot, plus API keys for basically everyone else, and the extension surface covers tools, commands, providers, renderers, event hooks — a lot of surface area for something that markets itself as minimal. Over 2,100 community extensions as of early May, apparently. One feature I hadn’t seen described anywhere else: you can fork a session from any earlier message instead of every dead-end you explored staying wedged into your context forever.

Star count’s been a moving target every time I checked a source for this — 45k in early May, 60k+ by June — so take any specific number here as a snapshot, not gospel.

Also worth knowing: Pi is the harness underneath OpenClaw, the project I keep seeing mentioned as an install target in other posts. So the minimalism argument isn’t just philosophical — strip a harness down far enough and other people can build their own opinionated thing on top without fighting your assumptions first. Same underlying question as the DeepSeek Harness and Cline posts (who controls what sits between you and the model), argued from the exact opposite direction: maximal plugin surface versus a core so small there’s barely anything to disagree with in the first place.

npm install -g @earendil-works/pi-coding-agent