Is Pi better than Claude Code?
I spent a week with the minimalist AI coding agent Pi. Here's my honest take.
I spent last week using Pi as my main coding agent, which was an interesting exercise because Pi is radically different coding agent compared to Claude Code or Codex.
If you have not come across it, Pi is an open source coding agent that has a very minimalist philosophy. It ships with only 4 tools (read, edit, write, bash), supports ALL AI models, has a system prompt under a thousand tokens, no MCP, no permissions. The one feature that makes it really different is the ability to extend and customise the agent through extensions.
The minimalism is a feature not a bug. As coding agents have more and more random (often unnecessary) features bolted on, they can start to feel like a big mess. You have no control of third party coding agents so if you want to change something you’re at the mercy of Anthropic or OpenAI.
A really interesting feature of Pi to me is that you can edit or completely replace the system prompt for the agent. This is useful if you want to use it for things that aren’t coding.
How extensions work
Extensions are just TypeScript files you drop in a folder, and on startup Pi picks them up. They can do almost anything. Change the UI. Register tools. Intercept calls. Gate permissions if you want that back. or anything else you can think of.
I built a workflow extension that takes a spec, write code, reviews the code with a fresh context window, fixes the issues, runs the tests, and verifies. It took me about twenty minutes to put together because Pi can read its own source and documentation and write the extension for you. The agent is, in a fairly literal sense, able to extend itself.
I have wanted this for a long time. The loop I run with any coding agent is roughly: write, review, fix, test, verify. Doing it by hand means a lot of prompts that are always the same prompts, and the fresh-context review step is the one I skip most often because it is annoying to set up. Putting it in code, deterministically, so the agent does not have to remember to do it, feels like a real step beyond relying on non deterministic prompts.
What the minimalism costs you
The honest other side is that minimalism has a cost, and whether you care about the cost depends on how you work. Pi does not ship with MCP. You can add it through an extension, but the default answer to “how do I connect this to my other tools” is to use a command-line tool from bash. There is no to-do tracker. No sub-agents. No hooks. These are not accidental omissions, they are the design, but if your current workflow leans on any of them, you will feel it.
The bigger issue for me personally is the provider situation. Pi lets you bring any model. OpenAI via ChatGPT, Google, GitHub Copilot, OpenRouter, local models through Ollama. But Anthropic recently stopped allowing third-party agents to use the Claude subscription, which means if you want to use Claude models through Pi, you pay API rates. I use Claude heavily, I am on the subscription, and moving to API pricing for my daily agent is not something I want to do. That is not Pi’s fault. Thankfully OpenAI let you use your Codex subscription with other tools.
Where I think this fits
If I stripped out the Anthropic-subscription problem, I think Pi would probably be my default coding agent. I like the minimalism. I like that I can read and understand the system prompt. I like that extensions are code, not configuration. I like that the agent can improve itself by writing its own tools.
As it stands, I am going to keep Pi installed and keep using it for specific workflows where the extension system earns its keep. The multi-stage review loop is one. Anything where I want deterministic control over what the agent does between prompts is another. For everything else, I am still inside Claude Code, because that is where my subscription works and where the models I trust most live.
The broader thing I will take away is this. The interesting question for coding agents is no longer what features they ship, because the features have converged. The interesting question is what they let you change. Pi bets harder on user-defined behaviour than any other agent I have used, and that bet is, I think, the right one.
If you want to see what this looks like in practice, I recorded a full walkthrough where I install Pi, configure providers, customise the system prompt, and build an extension from scratch on camera.
You can watch it here:
Thanks for reading. Feel free to comment on the video if I missed anything.

