INDEPENDENT AI JOURNALNEWS / ANALYSIS / RESEARCH
canberk.meAI NEWS
TR
Tools & Products

Pi 1.0 adds MCP and Codemode to a minimal open agent harness

Pi 1.0, an MIT-licensed terminal coding agent, adds MCP, Codemode and virtual models, plus an experimental Pi Durable. What changed and what to check.

··7 min
Light grey paper-textured card with the Earendil emblem and wordmark above the title Pi 1.0.
Announcement card for Pi 1.0. © Earendil. Source: earendil.com.
In this article

Pi, a small open-source coding agent that runs in the terminal, reached version 1.0 on October 1. Earendil’s announcement calls it a “hardened, minimal, extensible agent harness” and says hundreds of thousands of people use it every week, a figure we could not verify. The repository itself shows about 112,000 GitHub stars. This article covers what 1.0 changes, what Pi Durable is, and what to keep in mind. We read the announcement, the two companion posts and the release notes; we did not install or run Pi.

What is new in 1.0

Earendil lists these additions: Codemode with native support for MCP and for non-LLM models such as Jev and image models, extension support for virtual models, deferred tool loading, cache warming for Anthropic models, mid-conversation system messages, a new terminal theme and a fullscreen interface by default. Pi is MIT licensed, installs with curl -fsSL https://pi.dev/install.sh | sh (a PowerShell equivalent exists for Windows) and has code at github.com/earendil-works/pi.

The v1.0.0 release notes add detail:

  • Fullscreen by default. Set tuiMode to "regular" to keep the terminal’s normal scrollback.
  • Leaner Codemode. About 40% fewer prompt tokens, with a GPT-5.6 request shrinking from about 5,300 to 3,300 tokens, and error messages that tell the model how to recover. One breaking detail: scripts that probed for a tool with typeof tools.name must use "name" in tools.
  • Image generation in Codemode. Scripts can call models.generateImages() with the session’s credentials, and the cost counts toward the session.
  • MCP sign-in hardening. Checks on the iss parameter (RFC 9207), credentials stored per server and step-up sign-in that keeps granted scopes.
  • Other changes. A Radius sign-in option in /login, a copy-code Anthropic login for headless setups and a header-only quiet startup.

Why MCP and Codemode

Pi used to say proudly that it had no MCP support. In “You Said No MCP!” (September 29), Earendil explains the reversal: MCP could have stayed an extension, as it was, but rethinking it showed the changes it needed were generally useful. Those changes, it says, also make Jev easier to use inside Pi, because both need an interpreter-style sandbox.

Codemode is the mechanism. Instead of dumping every tool into the model’s context, tools are exposed to a JavaScript sandbox where the model writes a script that orchestrates and composes the calls. Earendil says MCP’s biggest remaining problem is that it is hard to compose, and that it wants MCP closer to OpenAPI with tool discovery: tools should return structured data and be discoverable by documentation. It describes this as the same approach as other harnesses such as Codex.

A demo with Jev in the loop

The announcement includes a terminal recording. In one scene, Pi (running gpt-6-luna) is asked to write itself an extension, router.ts, that registers a virtual model called router/auto. The model summary reads, in part, that it plans on radius/claude-opus-5-5, asks TypeSafe’s Jev classifier on each planning-phase user message whether to switch, and on a positive result switches to radius/gpt-6-luna. Earendil’s caption describes it as a virtual model that plans with Claude Opus and implements with GPT, with Jev deciding when to switch.

Frame from Earendil's Pi 1.0 demo. Pi reports it created the router.ts extension, which registers router/auto, plans on radius/claude-opus-5-5 and asks TypeSafe's Jev classifier on each planning-phase user message whether to switch to radius/gpt-6-luna.
Pi summarizes the router extension it wrote. Frame from Earendil's demo recording. © Earendil. Source.
Later frame from the demo. A plan for a small script is shown, and the status line reads auto, medium, then an arrow to claude-opus.
The planning phase runs on Claude Opus; the status line shows the router's choice. Frame from Earendil's demo recording. © Earendil. Source.

The demo uses Radius, which Earendil’s site lists among its projects, as the model provider (we did not look into it), and the router extension “requires Jev and Radius credentials/models to be available,” as Pi itself notes. It shows the idea of a decision model choosing between larger models; it is not a benchmark, and the announcement gives no accuracy or cost figures for the routing.

Pi Durable

Alongside 1.0, Earendil released Pi Durable as an experimental package. The coding agent is built to run on a machine, in a terminal, driven by one person; Pi Durable is a framework for agents that run for a long time, survive crashes and can be reached from several surfaces and steered by several people.

  • Harness. Storage plus the machinery to run conversations with models in parallel, with tools and execution environments.
  • Storage. Memory, SQLite and JSONL backends ship with it. Earendil says the SQLite and JSONL code uses no Node APIs, so a small adapter lets it run on Bun or in a Cloudflare Durable Object.
  • Crash recovery. Every step of a run is a task that stores a checkpoint. After a crash, a new process finds unfinished tasks and continues from the last checkpoint, and a request ID makes a submission exactly-once.
  • Size. About 15,000 lines of source without tests, roughly 150,000 tokens with GPT and 250,000 with Claude. It has no built-in subagents.

It is installed with npm install @earendil-works/pi-durable @earendil-works/pi-ai @earendil-works/chord. Earendil says lessons from it will flow back into the coding agent as they prove valuable.

Extensions

Pi’s extension system lets a plugin draw into the terminal. Pi’s own site shows a screenshot of a Doom extension running while the agent works.

Screenshot of Pi in a terminal window with a Doom extension rendering a pixelated game view below an agent session, with a key-help line and a status line showing the openai-codex provider.
A Doom extension running inside Pi, from Pi's own site. © Pi project. Source.

What to keep in mind

These are our observations, not claims by Earendil:

  • It is a harness, not a model. Pi works with models from several providers, so cost and quality depend on what you connect. The demo’s cost and cache figures are per its own session and not a general benchmark.
  • Extensions are code. A harness with deep extension and MCP support runs third-party code and tools, so the same caution we described for Claude Code mods and in DeepSeek Harness’s safety notice applies: read what you install.
  • Fullscreen is now the default. If you rely on terminal scrollback, switch tuiMode back.
  • Pi Durable is experimental, as Earendil says. Treat it as a design to try, not a foundation for production.
  • Codemode scripts are a breaking change for anything that probed tools with typeof.

Editorial review: October 3, 2026 (AI). Prepared from Earendil’s announcement, Pi Durable post and “You Said No MCP!” post, the v1.0.0 release notes and repository metadata (stars checked on October 3), all read the same day. The demo frames are from Earendil’s recording as played on its site. The claim of hundreds of thousands of weekly users is Earendil’s own. We did not install, run or test Pi, Pi Durable or the router extension. Images are Earendil’s and Pi’s, reproduced with credit and a link to the source. “What to keep in mind” is ours.

Sources

  1. Pi 1.0 ↗Earendil
  2. Pi Durable ↗Earendil
  3. "You Said No MCP!" ↗Earendil
  4. earendil-works/pi (repository and v1.0.0 release notes) ↗Earendil / GitHub
  5. Pi ↗Pi project

Created with AI assistance.

Suggest a correction

Found an error or a missing source? Send a private suggestion to the editor. It will be reviewed and will not appear as a public comment. No name, email or account is needed.

← Back to archive

Image

100%

Comments

No account or email needed. Every comment is reviewed by an editor before it appears.