312 - Understanding Pi Durable with Mario & Armin of Earendil
Fragmented - AI Developer Podcast
October 20, 2026
What does it take to keep an agent working after its process dies? Pi creator Mario Zechner and Earendil co-founder Armin Ronacher join KG to explain Pi Durable: explicit tasks, crash recovery, and the primitives for multiplayer agents.
Speakers Kaushik Gopal, Mario Zechner, Armin Ronacher
Kaushik Gopal (0:04)
In the landscape of AI coding, Pi is arguably the most interesting agent harnessed to look at today.
It's gained massive popularity when the AI assistant OpenClaw took the Internet by storm. OpenClaw was built on Pi and uses it or used it as its backbone or spine. There's been a lot of developments in Pi since then. A company named Earendil has since acquired Pi and its genius creator Mario. Earendil, interestingly, was started by Armin, who a lot of people will know from the Python community. In fact, I used to follow Armin and his blog during the Sentry days, but also clearly he's created Flask, Ginger, Pigments, this is just to name a few of the Python creations.
But Pi has hit 1 recently, and that's like a monumental release for many reasons. But one thing that they also released on the side is Pi Durable. Pi Durable is this library that a lot of people have started to get really interested on. And if you've listened to the last episode of Fragmented, we talked about self-learning harnesses, and you'll start to see some kind of resemblance of those patterns. But I thought, hey, Pi Durable is clearly something that's very interesting. We need to learn more on Fragmented about Pi Durable. And I'm extremely honored and happy that we have the best sources on the planet to talk to us about Pi Durable. So Mario and Armin, thank you so, so much for coming on the show.
Mario Zechner (1:36)
Well, thanks for having us.
Armin Ronacher (1:38)
Yeah, you're welcome.
Kaushik Gopal (1:39)
I'm going to try my best not to, you know, fangirl or fanboy, because me and my co-host, we spent literally almost our entire day on Pi. So it's hard, but you know, in the interest of science and learning, I'll try to extract as much wisdom for the listeners and not try to fanboy. One of the things that's impressed me and I'm sure everyone else about Pi is, how right you get those core primitives.
Is there some kind of like rulebook or some philosophy that you follow that helps you guys get it so right all the time? Like, you know, what's your approach been to create that API or interface just at the right level but not more, where it gives everyone that extensibility?
Armin Ronacher (2:25)
That's a question for you, Mario.
Mario Zechner (2:26)
Yeah, I would say...
Armin Ronacher (2:27)
Share your magic.
Mario Zechner (2:28)
We didn't get everything right, obviously, and a lot of it is just serendipity and I guess the other half is, I've been programming for over 30 years, Armin's probably also clocked a similar amount of time programming things. We like simple things, we like things that we can fit into our head and understand ourselves.
So that leads to systems that are generally simple. Doesn't mean they are easy, per se. In case of Pi, they are comparatively easy, if you know what I mean. Ultimately, it's a while loop, and then the question is how do you package up at the while loop and give it enough hook points so somebody else can build stuff on top of it. The first iteration of Pi, which now has culminated in 1.0, is basically just that. It was born out of frustration and masochism because I used to do a lot of open-source work, and then I did this, and then I was back in the open-source world.
Kaushik Gopal (3:23)
Just to put that in context, famously, Pi did not have MCPs. Pi 1 now has MCPs. You guys wrote a long blog post about it. I'm actually very specifically curious because obviously that leads into code mode, which is also very interesting. Even after reading that blog post, they came off with like, seems like the code primitive that makes a lot of sense. You could have just left it at that, right? And then there's like plenty of plugins with MCPs.
You could have just said, well, okay, now if you want an MCP, you can just use it. What made, like, what was that itch where you're like, no, but we probably have to pull an MCP as well. Can you use that?
Because you guys make it sound simple out of humility, but it is hard to get that API really right. And I looked at MCP and I'm like, I don't know why they added it. Like, what was the thought process there?
Mario Zechner (4:10)
So did we get it right with MCP, Armin? That's your turn.
Armin Ronacher (4:14)
MCP is interesting because it has almost become a little bit of like an unintentional, like the fact that Pi didn't have MCP was an unintentional feature, but not having something is not necessarily a feature. Despite the fact that there was no MCP in Pi, didn't mean that we didn't also use it at times, or that we didn't talk to the MCP folks. So it's like we paid attention to what was going on. One of the fundamental parts about Pi is that it doesn't try to do something that the models wouldn't sort of naturally go down to. So we're trying like wherever the RL is taking these things, we want to make sure that this works. And so code mode increasingly became a thing that was useful for models to express tool calls and like extended workflows. So it was very clear over time for us that eventually code mode should be in there. But code mode comes with a lot of complexity. Like for instance, there's a JavaScript runtime in it.
56 more minutes of transcript below
Thousands of transcripts fetched by people building searchable podcast archives
Fetch the whole transcript
The demo key returns a sample episode in full, no card needed:
curl -H "x-api-key: pt_demo" \
https://spoken.md/transcripts/1000651996090Markdown with the speakers named, for your notes, your knowledge base, or anything that makes HTTP calls.
From $0.10 per transcript. No subscription. Credits never expire. Prices exclude VAT, added at checkout for EU customers. Not what you expected? Email us within 14 days with 20 or fewer credits used and we refund the pack in full.
Using your own key:
curl -H "x-api-key: YOUR_KEY" \
https://spoken.md/transcripts/1000797171173