upvote
Pi 1.0

(earendil.com)

Has anyone been able to upgrade it with bun?

I'm getting ~/.bun/install/global:bun update @earendil-works/pi-coding-agent@latest bun update v1.4.2 (744846f84) error: refusing to install dependency get-ripgrep with unsafe folder path "../../third_party/get-ripgrep"

reply
Love pi. I tried to run some local models and pi was the only one that actually worked decently because it didn’t have a gargantuan system prompt that would take minutes to prefill on my scrawny ass laptop.

Been running it almost barebones vanilla for a couple of months. Just a bunch of basic extensions and some skills.

Now, if only they could fix the very annoying bug of the history jumping back at the beginning if I am not a the end while the model is reasoning that would great.

reply
Couldn't agree more. The vanilla openclaw install was this byzantine mess of MD files talking about souls and identities and such, it really put me off. Stripping back to a bare install of the underlying pi, it was delightfully minimal and easy to reason about. Excellent starting point for building an assistant agent without having to read or fight with a bunch of cruft on top.

Couple skills to integrate with an obsidian MD task tracker, small chat interface on the phone made public via tailscale, and bam, a reminder bot you can text from the grocery store.

reply
"Been running it almost barebones vanilla for a couple of months. Just a bunch of basic extensions and some skills."

I am also using pi exclusively after having had decent success with openhands but begrudging all of the docker infrastructure ... and all of the emojis.

My only pain point is that in my extremely common and boring workflow, which is pi inside of gnu screen inside of OSX terminal.app ... all reasoning/thinking text is blinking ... like old fashioned ANSI blink on a BBS.

I cannot figure out how to disable the blinking thought/reasoning text ...

reply
I just fixed something very similar in my setup. Except in my case the reasoning text was shown in dark grey on a light gray background. Very ugly and hard to read.

If I remember correctly, the reasoning text was being output using the italic ANSI code, which was being formatted funny on my terminal. I fixed it by adding a font that supports italics. I recommend taking a look at the ansi codes.

reply
I don't really understand the criteria for when something is 'proven' to the Pi team. Jev and the like took off less than a month ago, but MCP has been growing for nearly 2 years, and it only gets support now?

Pi felt nice when I used it, and I do value keeping things minimal, but I just find the criteria very uneven.

reply
Classification models have been around for literally almost a century at this point. I think it's safe to say they are a proven technology.

The only thing that makes Jev and the likes particularly interesting is that it is a general purpose classifier. In the past, classification tasks meant training a new model to solve your problem. Now you can just use an off the shelf general purpose model and hit the ground running.

reply
>>The only thing that makes Jev and the likes particularly interesting is that it is a general purpose classifier.

General purpose classifiers have existed and proven useful for quite a while now. We used these last year. for vision and text both.

reply
Even jev is not truly novel, but it's latency is, you can use a reranker and get the same things but not the same speed.
reply
But why does it need to be integrated with a minimal coding agent? Trying to support every possible thing that exists goes against being minimal.
reply
It is in that sense not integrated with the coding agent. It's just that some things cannot be done with bash alone, at least not as trivially. So if you were asking Pi to utilize Jev, it would not really have the right tools available to make sense of it, even though pi-ai, the underlying library, can make requests to it.

Codemode as a mechanism can expose non LLM functionality to the coding agent. In that sense, Pi does not have a tool for Jev or other classifiers. It just now makes it easier for the agent to utilize it in the same way as it's otherwise quite creative in using bash.

reply
>it would not really have the right tools available

The point of Pi is that the user can tell the agent to improve itself and give it the tools it does need. The minimalism comes from the user creating what they need instead of the maintainers trying to support everything for the users. The fact that it doesn't have everything the user needs out of the box is intentional.

reply
> The point of Pi is that the user can tell the agent to improve itself and give it the tools it does need.

The point of Pi is to be minimal but also follow what the models need. We were pretty outspoken that models need code execution, and that's why Pi to this day has a very small set of tools available. However as more and more training with these models abstracts even over toolcalls themselves with code mode and similar things, it requires changes to Pi.

Mario and I talked about this last week if you want to know our thinking: https://x.com/pidotdev/status/2104510506627121451

And yes, that's why there is no Jev tool in Pi either.

reply
Sure, but some things are too low-level to be skills or extensions. Code mode seems like that to me.
reply
With Pi the agent edits agent itself. That's one of the reasons it's written in typescript, to make such iteration fast. Going even lower, into the language runtime or operating system shouldn't be necessary but technically also possible.
reply
The agent code is minimal. What it supports doesn't have to be, when that support doesn't require much of it.
reply
> but MCP has been growing for nearly 2 years, and it only gets support now?

I don't know if you were aware, but not shipping with MCP was one of its "features":

https://mariozechner.at/posts/2025-11-02-what-if-you-dont-ne...

They let you have it via a plugin/extension.

reply
A year later, some things have changed: https://earendil.com/posts/you-said-no-mcp/
reply
It was already very good and has been used/battle tested by many us for a long time.

Some tools used to be 0.x for ages and, in this case, the 1.0 signals they're happy enough and allows them to promote things in a better way.

This is I guess the natural evolution of playing around building temporal like things for a need that many have.

reply
Human judgement is a thing.
reply
the latest 07-28 MCP spec is quite different than the previous iterations of MCP, so I understand the delay there tbh.
reply
I agree. I don't necessarily "trust" Anthropic and OpenAI when it comes to CC/Codex respectively, but I respect that they have immense internal resources and telemetry to be able to understand what features move the needle and nudge traces in the right direction. I don't understand how non-labs judge feature inclusion? Just vibes?
reply
What makes you think that labs don't operate on "vibes"?

If there's anything that I can conclude about Anthropics idea of how a LLM should speak. Vibes would have been an euphemism

reply
Armin from Earendil here. I think the question is fair, and quite frankly the answer is pretty disappointing: we look at what the models are doing. They are trained on their respective harnesses and we're not here to fight their behavior.

Codex in particular is using responses lite internally and relies on codemode for parallel tool calling. So codemode was a given.

Jev on the other hand is new but it's not the first type of model we had troubles with supporting in Pi and we looked at how to make that make sense. The internal pi-ai SDK supports image generation and classifier models, but without building an extension it was never possible for you to utilize it.

So there was a while functionality of Pi that few people used, because there were no obvious ways to hook it up with the coding agent. Codemode also allows us to close that gap.

And once you have codemode, modern MCP can work quite well if the servers cooperate.

reply
I found oh-my-pi with Paseo to be my personal sweet spot. Checks all of the boxes I want and is the most consistent set of AI tools I've used thus far.
reply
Paseo is great and has mobile notifications but it’s not as polished as omp web.
reply
I mainly use Paseo for the daemon features. I run it in a linux VM in my homelab and spawn all of my agent sessions on it. Exposed over Tailscale so I can connect to it from my desktop, laptop, and mobile phone and continue like nothing happened. A really great self-hosting experience.

Haven't used omp web yet.

reply
I tried Pi a while ago and found it a bit tough to use, OpenCode was pretty simple, but oh-my-pi is really head and shoulders above the two others. Really great.
reply
Just curious: What do you specifically like about oh-my-pi vs. OpenCode?
reply
A major aspect is that it automated out-of-the-box a pattern I naturally would do of writing a spec just before the context window would fill and then compacting and continuing.

Now I just write a prompt and OMP just hammers away at it. There might very well be some OpenCode plugin for this but it just works out of the box with OMP.

reply
So, how are people actually using Pi? Here I am with Claude Code and Codex in a terminal like a caveman.
reply
I don't use Pi very much for actual writing code. I have some specific use-cases where I do, but I'm admittedly just not a person who can reasonably juggle a lot of tools or a super personalized setup. I mostly just use Codex or CC from the terminal, though I've recently dabbled with some GUIs. Basically, once I find something that works, I'm pretty reticent to spend any time tinkering unless I feel a real need.

But what I do use Pi a lot for is as a base for agents. I much prefer it to using an agent SDK. I find its minimalism and extensibility to be a really nice substrate for new projects.

I could easily imagine someone getting to a really productive personal setup with it as well, for the same reasons as above.

reply
I’m also looking for tips. I feel like I get the gist, but if I sat down to use it, I don’t know what I want to start with. Like, I know it’s customizable, but what’s the on-ramp so I can figure out what that looks like?
reply
So Pi is a lot of fun. I’ve been working on Volt, a fork of Pi, mostly out of my frustrations with remote development. I expanded out the existing RPC and built a mobile app around it.

It kind of just gets with how you creative you want to be about it.

reply
I use claude code and codex in a terminal like a caveman too.

then i use pi in a terminal like a caveman to try the open models like deepseek etc.

I also have pi running on a VPS. I have a custom Django app that calls out to it for a bunch of stuff. I don't know how the full system works because the agents built it but basically I think one pi uses a whatsapp wrapper to constantly listen to a whatsapp group and find bills. Then those get added to the Django Database which triggers a second pi + deepseek to OCR them, parse out the data like amount, due date, reference etc, and update the database with that. I have a trigger to 'merge duplicate', which is also just a prompt and pi.

Yes you can do all this without a harness and just the model APIs directly but the harness means it can use linux tools to crop the PDFs etc, so when I also wanted a new feature that crops out the bank details and lets me hover over and see the original before making the payment for a bill that's just another tweak to pi's prompt (or more meta, me prompting my agent to update pi's prompt).

reply
It's been pretty useful for experimenting with local models due to its more light-weight approach. Though I respect the creators a ton, OpenCode has not seemed to work as well with models that run on consumer hardware
reply
Which models are you finding the most success with?
reply
qwen3.5 4b and 9b have both been surprisingly good for small tasks. a pattern I've been using is orchestrating pi agents with a script (that you can write using a frontier model) for common tasks. one script i use a lot is organizing photos from my photography shoots.
reply
I believe this is the popular "batteries included" kit: https://github.com/can1357/oh-my-pi
reply
This harness also burns a lot more tokens than Pi, which sort of kills the minimal philosophy/system prompt that Pi came from.
reply
Pi with extensions included is always going to burn more tokens than pi without extensions, no?
reply
I know that's the way omp is often introduced but I don't think it's fair for either omp or pi - after lately switching my usage more towards omp I'd say by this point they're almost more different than Pi and Codex. And I like them both.
reply
This is what I use, very happy
reply
And you're probably more productive than the people using Pi. Although you'd be even better off using a GUI agent multiplexer of some kind rather than juggling terminal tabs.

I love open source. I love the terminal. I spent the last 20+ years in a terminal w/vim every single day, and then claude/codex TUIs, and yet I care more about my own productivity so I don't use any of that now.

reply
There's something about this take that... irks me. A little bit more every time I hear it, and I've been hearing it a lot. I dislike the implication that anyone who takes more care with their setup than downloading an exe from a website and double clicking it is some kind of chump. They could be prompting the next ticket instead!

Even if taking pride in your tools was a productivity killer (I have my doubts), maybe there's mental value to be gained.

reply
It's not an either/or. Orca is a GUI agent multiplexer that works with dozens of harnesses, including Pi. The advantage with Pi is that you can vibe code any kind of extension you want. I like to see various stats (tps, ttft, etc) on each turn, and there's an extension for that, but it doesn't show wall clock time for the turn. Ok, pull down the extension and tweak it to add that. It's great.
reply
If you like the terminal I'm building https://alcubi.ai/delegator/ It's terminal based and I've taken a different approach to avoid context overload of switching tabs. Agents run in the background and you review the work when it's ready.
reply
What do you suggest for a GUI agent multiplexer?
reply
The important thing is just to a GUI agent multiplexer, they're all mostly doing the same kind of thing. IMHO it's very important to have the official claude and codex harnesses (not just models). I also like having each session in a isolated container (or VM) so the agent can go wild and run in yolo mode.

I usually recommend Conductor to most people. Personally, I use the one I built, but it's got a few ergonomic issues for most people which I still need to fix.

reply
you can just roll your own, this is probably the most popular side project of the past year, I crafted my own version within a day or so this past week, with corny visual assets as well since its just for me. Kinda rolled my workflows into it so it fits how i work with plans and how i avoid compaction in favor of handoffs or just plan docs that constrain each session to x amount of tokens each session.

Tossed all my weekly usage for each provider at the top with their 5hour windows and such. its been great so far.

reply
onorca.dev. I used herdr before now Orca has fully replaced it. (I'm not affilianted with Orca in any way except I use it every day). Orca also supports separate hosts. My setup Orca running in my Mac. Orca running in my home proxmox lxc (orcabox). I have few different projects, Rails, PHP, etc. In Orca, I open these projects and point it to my local folder as well as the folder remotely.

I usually start a codex or claude session on the remote host, close my mac, even restart Orca desktop on mac, but when I start Orca, I can watch the Orca on my remote host working through.

It's similar to Claude remote session, but just easier to manage, easier to create worktree, easier to navigate, open multiple tabs etc.

reply
zed.dev is like Orca, but lightning fast and fully multi-player (both AI and humans)
reply
t3.codes

cursor.com

conductor.build

code.visualstudio.com w/ Claude Plugin or equivalent plugin

zed.dev

there are dozens tbh

reply
thats not a suggestion.
reply
vim/past vim terminal dweller here.

I've eventually settled on a CLI agent multiplexer that essentially run in the background while the frontend is a GUI gateway agent to that backend system with a goal middle layer so I no longer need to interject directly into the prompts and forces the CC and Codexes to communicate to me in a structured format relevant to my purpose.

reply
what advantage do you have with a gui multiplexer over the terminal?
reply
What do you use
reply
Personally I use gh copilot in vscode and make new worktrees when I want parallel agents that are both going to write code.

For research, planning, figuring out bugs, etc I usually don’t bother creating the worktree until I’ve decided on the implementation.

I’m sure there’s better workflows and software, but all I’ve got for work is gh copilot and Claude enterprise. I like copilot better than Claude for the most part.

reply
You just type "pi" in the command prompt and you're good to go!

The only thing I've configured is the default model.

reply
Vanilla Pi is great. I have a subagent/ Ralph loop extension I coded and that's basically it. It works very well. I'm about 75% pi, 20% autolith, and 5% my own harness
reply
I built my own based off another popular harness. I figure most of the edge cutters are doing the same.

Pi is great overall. I ended up deploying a GUI wrapper because TUI isn't as friendly to new adopters.

reply
Using models from multiple providers via aws bedrock
reply
I use workmux with pi plus some neovim plug-ins
reply
> Here I am with Claude Code and Codex in a terminal like a caveman

There's definitely a class of folks who like to "polish their tools" per se vs tools just being as a means to an end.

It's fine and cool, sort of like the desktop ricers do with Hyperland, Niri, etc showing off desktops, but never seem to do anything with this cool tech.

reply
the main thing i use it for that seems like a pain with other coding agents is my sandboxing workflow: i have a custom extension which allows the pi process to run on my laptop, keeping all my transcripts in one searchable place, while delegating all the bash and file system commands to a VM.

i haven't gotten around to it yet, but i'd also like to change how `Bash` functions on a basic level (and subagents), where rather than the agent picking a fixed timeout, it just gets notified with exponential backoff about commands that aren't done and then gets a turn to decide what to do with it.

having said that, i find it annoying and not empowering that basic things like subagents and web search aren't built in. the ideal to me seems to be an agent with polished extensions for all the common use cases that can be disabled if you do want to rewrite them. but i put up with the pain because i really want my pet feature ¯\_(ツ)_/¯

reply
I use it headless for reviews in CI.
reply
Frankly you are not losing much. I've used everything under the sun, for work and fun. I just use Claude now again for work, and I use Pi for any openrouter model I'm using.

Just keep using Claude or Codex.

It's all window dressing and some delta in token usage, but again who cares really?

This really only matters when you're productizing "AI" for your end users, that's when you need to see which agent uses tools better, has more support for MCPs, headless mode, sessions, etc. \

reply
The thing I don't like about minimal plugin-based harnesses is that I don't always have the time to figure out which plugins and safe and sensible, and at least one of those is false more often than not when it comes to AI tools. Sorting by popular does not solve the problem.
reply
I have been using pi a daily driver for some month now. But as a personal management system with md files and for coding.

I used to have a MCP extension but recently pi added builtin support for MCP so my stack is simpler now.

Thank you for keeping things simple! Simple is beautiful.

reply
I like that Pi is holding the line on minimalism instead of absorbing every new trend. Curious how Pi Durable differs from existing durable-execution setups for agents
reply
"hundreds of thousands" of people are not using this. i want to see the this claim backed up.
reply
I hear you. This post and the comments smells like Astroturfing to me.
reply
How do you know?
reply
All companies with LOTR names are war profiteers right?
reply
the exception to prove the rule I guess
reply
This should’ve been version 3.14.
reply
Why full screen mode by default? That seems to go against the minimalist theme. I could never get acceptable inertial scrolling behaviour dialled in with other full screen implementations I tried (claude, codex, opencode).
reply
Full screen hides distractions from other applications. Seems reasonable as something minimal.

Minimalism is a difficult subject. In art, minimalists tried to strive for something that is universally minimal. But if you look in nature for straight lines or perfect circles, you end up disappointed. Turns out minimalism found things that were minimal with respect to how some humans think about minimalism. For all we know, pure chaos may be more universally minimal than an empty vacuum.

reply
I've been full time building on pi since January and its been incredible. I'm not sure what they did to make it so easy to vibe code against but agents really just "get it".
reply
Can you explain your workflow a bit please? Do any of these tools work with Claude/Codex subscriptions or are they API only?

I actually built my own tool that maintains a work graph (DAG-like) with task leases. It allows me to copy and paste pre-written prompts into Claude Code, Codex, or OpenCode and all the agents self-coordinate through MCP calls.

I built this after trying hermes and Openclaw but not liking the lack of human-in-the-loop judgement. So I'm wondering if I should keep refining my tool, or evaluate something like pi?

reply
I know this is going to get downvoted but what drives people to use javascript of all languages to build these fundamental pieces of tooling? We have so many better options, especially now since humans aren’t writing most of the code. It’s hard to take seriously anyone that wants to make a primarily CLI tool with heavy interactivity and parallelism requirements and decides to use a joke language that happened to luck its way into prominence because of web browsers.
reply
Pi is extensible, and to iterate new extensions, install them, create your own, even if the agents needs to, it is much faster and easier to manage that than a compiled language I would suppose. Most of the time it's really the waiting time than anything else. If any, the "resource intensive" parts of the app could be turned into low-level extensions such as writing or reading files, maybe, but the main part of the app makes total sense. The language and ecosystem is fairly accessible as well, which serves as a further argument. Interesting choice of words when it comes to calling it "joke language" really.
reply
What would be a better language? Most of the harness apps will be spending most of their time waiting for the models response and tool calling rather than running their code.

Languages with less opensource footprint or too verbose are at the losing side in a llm-driven world.

reply
Built in codemode is rather nice. Its the feature i like the most from OMP which is Pi + lots of plugins.
reply
Run in sandbox, container, or VM?
reply
I like a sandbox, but there's arguments for all three. Jai is still my favorite on Linux.
reply
Is claude code or codex subscription supported by pi?
reply
Pi is a minimal agent harness, so lots of functionality is provided through packages. Here's the one that exposes Claude models for people to use with their Pro subscription, for example: https://pi.dev/packages/pi-claude-bridge
reply
Claude is not but codex is. Which is why I switched.
reply
Sigh, looks like Pi's days as a nice minimal agent TUI are numbered. I guess no third-party offering can fight that entropy for long and I'll just have to polish up one of my toy projects for personal use.
reply
I've read this a bunch of times around socials now these past days and I'd really like to understand what exactly indicates that the minimal agent TUI days are numbered for Pi?

I did not read this when I added support for AGENTS.md, skills, llama.cpp, extensions, alt TUI mode, mid-convo system messages and tool set changes to preserve KV cache, image model support, and everything else I added since November last year.

Codemode and MCP support are the latest additions. We follow what the models are trained on. E.g. the GPT family of models is actually trained on codemode for parallel tool calls now. The MCP spec has gotten a major update recently that makes it much less bad than it used to be in the past 24 months. Combined with codemode, it is now passable, so it got added to pi.

All of these features are still entirely optional and the only thing I could think of that could be considered "bloat" is the additional few megabytes for the QuickJS WASM blob.

So, I mean this in earenst and absolutely not combative: could you explain what exactly flips the switch between "pi is minimal" and "pi is not minimal"?

reply
Fullscreen mode as the default is a big one, I prefer my agent harness to be a CLI rather than a TUI and in fact my personal one doesn't even try to wrap text. Pure CLI output model.

That said I also dislike many of those other changes and would prefer a hypothetical version of Pi which didn't have them, so this is in some sense just me looking up at the sound of a v1.0 release and realizing "oh hey, I don't really like the direction this has been trending for a while"

reply
deleted
reply
Cool I hope to try it someday when I can run a local model good enough for coding. Until then I will probably stay with opencode for the time being.
reply
You can use it with oai subscriptions
reply
Local Qwen 3.5 on CPU was good enough for small tasks.
reply
congrats to earendil and keep up the awesome stuff.
reply
Does this replace Claude Code in VS Code entirely?
reply
This is hitting at the right time. Codex is already in the enshitification phase. They just broke their CLI version with some new thing that no one likes.
reply
[dead]
reply
I love how consistent pi has been, especially in regards to not breaking ux
reply
Pi is really good. I use it for a majority of my work.

I also like Autolith. The freedom of having a lisp machine is, to me, much more enjoyable than trying to maintain Typescript. But I'm not a typescript guy.

I do largely stick with Pi because it's very bulletproofed

reply