I covered Pi in September as a deliberately minimal agent core. This week Earendil released Pi 1.0, calling it a stable version people and businesses can depend on, and it climbed past 1,000 points on Hacker News. The detail everyone is talking about: Pi now has MCP built in, after spending a long time on the record against it.

Quick background: Pi was created by Mario Zechner. Earendil, a public benefit corporation founded by Armin Ronacher and Colin Daymond Hanna, announced on April 8 that it had acquired the project. Zechner joined the company, became a shareholder, and still leads the technical direction. Earendil says hundreds of thousands of people use Pi every week, and it describes the project as a minimal, extensible harness, comparable to what Flask is in the Python web world.

The reversal: Pi had pushed back on MCP before, mainly over composability and token consumption. Earendil’s explanation is in a post titled “You said no MCP!”. I’m going from coverage here, not from reading that post in full, and the coverage says both MCP and Pi have evolved enough to change the answer. Built-in support first landed in version 0.99.0 on September 29, with pi mcp add, list, and login commands plus OAuth sign-in, and 1.0 makes it a headline feature.

How they squared it: Codemode. Instead of the model calling MCP tools one at a time, it can write a short script that calls several tools in one go, running inside a sandbox. Codemode can also reach non-language models such as image models and decision models. My read, not Earendil’s claim: a script is composition by definition, so that answers the first objection, and intermediate results no longer all have to round-trip through the model, which plausibly helps with the second. 1.0 also lists deferred tool loading, which sounds aimed at the same cost problem, though I haven’t checked how it works.

The rest of 1.0: extensions can route each request to a different model, Anthropic cache warming, mid-conversation system messages, a new look, and fullscreen by default. Earendil also released Pi Durable alongside it, a separate experimental framework for long-running agents on a server, storing conversations in SQLite and JSONL. Worth noticing the move: to keep Pi minimal, they added scope as a new package instead of growing the core.

If you already use it: the package moved. The old @mariozechner/pi-coding-agent name is deprecated and gets no new releases. The new one is @earendil-works/pi-coding-agent, installed with npm install -g --ignore-scripts @earendil-works/pi-coding-agent. Settings, logins, and sessions stay in ~/.pi/agent. If you’re on a fork like oh-my-pi, that’s a separate project, so check whether and how it tracks these changes, the same upstream question I raised in the fork-lag post.

My take: a tool whose identity was “no MCP” shipping MCP looks less like a U-turn and more like evidence of how far the protocol has spread. Coverage notes that Vercel Labs’ fx, the agent closest to Pi in spirit, has it built in now too. Even the most minimal agents ended up carrying it, which fits what I described in the skills versus MCP piece. I haven’t run 1.0 myself, so everything above is from the release coverage, not from hands-on testing.