Pi 1.0(earendil.com) Related: Pi Durable - https://news.ycombinator.com/item?id=49925969 |
Pi 1.0(earendil.com) Related: Pi Durable - https://news.ycombinator.com/item?id=49925969 |
How do people read these famous books and deliberately get them wrong again, and again, and again?
https://www.youtube.com/watch?v=pBbDxDOV6J4 (relevant comedy skit)
Everything points to Thiel not understanding a thing about Tolkien. Tolkien was an old-fashioned conservative. He was all about protecting the environment and the old way of life (both things Thiel and modern self-styled "conservatives" strive to destroy). His role models were great because they made great sacrifices and showed strength of will, not because they used power for power’s sake and as a weapon for domination.
Thiel just does not understand the "humanity" aspect. I’d rather have them stick to Ayn Rand references. It made ignoring them or laughing at them easier.
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?
What harnesses do you recommend?
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
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"?
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"
Sounds to me like things people say just to have something to say. True, it is good to listen to feedback but feedback without evidence is only going to waste your time.
Thanks for all your hard work and keep going in the direction that makes sense to you!
On the other hand, I don't think there's anything Pi does that another language would do noticeably better from a user's perspective. Any performance complaints I have using Pi come from twiddling my thumbs waiting for Sam Altman's servers to bestow tokens upon me.
At any rate, they'll probably have Opus 6.5 and GPT-7 Galactica rewrite it in rust in a couple months...
Languages with less opensource footprint or too verbose are at the losing side in a llm-driven world.
> most of their time waiting for the models response and tool calling rather than running their code.
You’d think that! Yet claude-code spends a very surprising amount of CPU just doing text layout work and other mysterious things, likely due to their decision to use React to build a TUI for some reason.
I can't for the life of me figure out why people would think pi is bloated.
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.
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.
Nothing, really. Might be coming soon, but no.
You probably want to try bonsai, I guess, but don't expect good results.
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 ...
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.
In general, though, some kind of API ping on a timeout does not support my personal workflow, which involves dozens of active or stagnant agent sessions that stay open for weeks.
i guess you could blame the api, if you wanted.
On a more serious note: pi-agent shouldn't know about such arbitrary limits imposed by a company that gets paranoid when people use thrid-party agents to consume their Claude subscriptions.
This might've made a better argument ca. 2005 wrt a 20-something Austrian's minimalist wsgi framework. Heck, I'll bet you could even find said argument somewhere in the Archive :)
I love alternatives to the big players but why is everything written in TypeScript or Python and takes up a gigabyte of ram.
I don't want to `npm install -g` something, just give me a single statically compiled binary that does the thing.
AI lowers the barrier of entry to Rust to virtually 0. As a side experiment, I have been rewriting Codex Desktop in Rust using native desktop APIs (gpui) and have made a cross platform copy that works on Windows, Linux, and MacOS. It runs at 120+fps and uses 40mb of ram. It's not that hard.
In a previous life, before the layoff times, I was working on a FaaS platform. If you need plugins, embed v8, quickjs or wasmtime/wasmer/etc.
People are acting like AI didn't eat up all the RAM on Earth. I had to sell my left kidney for the 8gb ram upgrade in my MacBook
I find Typescript more approachable in many ways like compilation speed, extensibility, disk space used by cargo, LLM knowledge, and most devs I know already have node or bun installed anyway but not cargo, including me.
The speed in which pi can modify and extend itself is part of the appeal to me.
Same reason everything's an electron app now. First mover matters to the makers and to the consumers more than performance and attention to those details.
I am really hoping a combination of the RAM-pocalypse and AI coding will result in less bloat. At some point ...
Not really. It lowers it, sure. By a lot even. But you still have the system requirement for compilation and ecosystem to deal with.
They explicitly said no MCP and no fullscreen TUI, which makes it minimal and attracts many people.
Adding MCP support is lovely, codemode sounds super interesting, and I'm super excited to take advantage of it. Now it's 1.0 I'm hoping I can convince IT to let us use it officially.
Still, the halogen version only occupies < 40GB RAM on my machine (which is surprising... the Q4 takes over 100GB), so perhaps a 64GB version is on the table.
I'm just running it now in its own source with Qwen 3.8 27B and llama-server and asked it to analyze the code itself. I'm mainly curious to see how it handles context compaction during tasks (what Pi does is almost seamless and AFAICT it isn't anything particularly fancy so i'd expect Hax to do something similar) and i guess asking it to analyze a whole C codebase would help trigger that with a 131,072 context. Unfortunately it seems to be missing some "context usage" indicator while it does stuff (it shows context usage in the prompt but not while working), but i guess if it does manage to analyze the C code properly, i can ask it to add that :-P and see how it fares (from my use of Pi i'm positive Qwen 3.8 27B can do all that stuff, so it'd mainly be up to the harness).
EDIT: also i wonder if it works nicely if it is possible to convert Pi transcripts to Hax - i have a few "in progress" and i'd like to continue where i left from, though while both seem to use JSONL for the transcripts i'm not sure if they're compatible
EDIT2: hrm, it tried to use more than available tokens during a compaction and stopped there expecting me to increase the limit (i can, but what if i couldn't?) and restart the llama-server. Pi sometimes does hit it but it manages to recover by itself without requiring any input by me (or to increase llama-server's limit).
The harness is built on top of the Pi SDK. I initially used Codex, but Pi seems more hackable, and I like that it’s vendor-agnostic by default.
Running it on Kubernetes works, but dealing with the JSONL session files and making sure sessions survive pod interruptions adds some complexity. I’m using DBOS for that right now, which works well, although it still feels like overkill.
The 1.0 release came at just the right time. I’m looking forward to removing the pieces I no longer need and simplifying the architecture!
Haven't used omp web yet.
It addresses is a lot of pain points were built as internal tooling I maintained before this e.g. the need for a daemon for a number of good reasons e.g. executing/resuming a session from any machine, following conversations on my phone, having agents respond to comments on my CRM or asking interfacing it my homegrown PR review system. I can now have the harness run on that system and a durable pi session on a central server.
A framework/harness to develop capabilities such as OpenAI dot/Grok Bot. Can handle parallel conversations/forked conversations. But it doesn’t have to be user-facing at all.
It could be used to create an agent that sits inside your infrastructure - say constantly monitoring the firewall, taking actions autonomously (within hard guardrails I hope) and leaving an audit trail.
To be clear, they say nothing about guardrails or audit trails, it’s just how I would do build something like this.
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.
Pi felt nice when I used it, and I do value keeping things minimal, but I just find the criteria very uneven.
I wrote my own minimal coding harness last year because I hate software bloat, but Pi scratches that itch for me now.
Is that part of opencode v2?
Minimal alone isn’t a driving force for me. Coding intelligence and output is. I know Pete mostly codes with OC but farms hard jobs out to Codex. Teknium says he only codes in Hermes. I do iOS apps in Claude but everything else in deepseek or opus. I suspect things are about as good as they can be in terms of actual code.. across all levels.
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.
- It has 3.6 million weekly NPM downloads.
- 110k GH stars.
- It's 5th (and its fork is 6th and a dependent is 8th) in monthly Openrouter tokens. Add them all together and they get close to Claude Code numbers.
There are maybe 30-60 million software developers and software developer adjacent people on this planet. Out of those probably 30% are late AI adopters, laggards, that haven't even used a terminal client and some don't even use AI.
Also a lot of people - developers included, just don't like command line tools.
Then pi is a secondary harness after Claude, Codex, OpenCode. I imagine the likelihood of pi having more than a few hundreds of thousands of users is remote. It's basically the Emacs or Vim of harnesses.
Not a proof, but that makes it sound more plausible, no?
Maybe spend $100,000 in tokens to fix that.
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.
It kind of just gets with how you creative you want to be about it.
It's kinda a tinkerer hobby IMO. I like the freedom, but at the end of the day, it's still just a harness.
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).
I've tried Oh-my-pi but it's too heavy for me and eats up 6% of my context on start. Also I find Pi's keyboard shortcuts easier to use.
I use WSL, one tab is GitBash running llama.ccp and the other is normal terminal running pi. Winning combo for me.
Also started using Pi as my search engine, which I've refine and does what I need it to do, can also ask it to create a html doc with links or markdown. Fun stuff.
The only thing I've configured is the default model.
You don’t need extensions or fancy setups.
Pi is great overall. I ended up deploying a GUI wrapper because TUI isn't as friendly to new adopters.
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.
Even if taking pride in your tools was a productivity killer (I have my doubts), maybe there's mental value to be gained.
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.
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.
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 ¯\_(ツ)_/¯
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. \
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.
General purpose classifiers have existed and proven useful for quite a while now. We used these last year. for vision and text both.
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.
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 (edit the durable part) is I guess the natural evolution of playing around building temporal like things for a need that many have.
If there's anything that I can conclude about Anthropics idea of how a LLM should speak. Vibes would have been an euphemism
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.
This seems like an obvious configuration option - I can imagine someone disliking the italics as well…
omp is feature rich, and it's very actively developed. I don't have the time or interest to pick and choose among the thousands of pi extensions, so the fact that omp already has a lot of useful things built it is a good match for me.
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.
Though, I realize now the "hundreds of thousands" claim I was responding to is per week, while my guess is all time.
I've been working for 20 years and I've met exactly 1 person daily driving Emacs (at least for a while), probably 10 people daily driving Vim and maybe low hundreds side arming Vim (maybe 5 for Emacs). And I've met or worked with low thousands of people at this point.
If I had to guess, probably 100 000 Vim daily drivers and maybe 20 000 Emacs daily drivers, both for extended periods of time. Dabblers probably 2-3x that at any time.
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.
Tossed all my weekly usage for each provider at the top with their 5hour windows and such. its been great so far.
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.
cursor.com
conductor.build
code.visualstudio.com w/ Claude Plugin or equivalent plugin
zed.dev
there are dozens tbh
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.
In Oct 2026, if you're optimizing for productivity, then yes, you probably should just use both Claude and Codex in a GUI agent multiplexer and forget about everything else.
If you care about other things, then have fun, no one is stopping you. I'd disagree with you that using alternatives mean you take more "care" and have more "pride" in your tools, but it's hardly worth arguing over.
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.
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.
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.
I'm so use to the command keys in Pi that having to type something out in OMP slows me down. I'll stick with Pi, I've built it to my needs and having WSL finally working. I still have to run 2 CLIs, one for LLama.ccp and the other for Pi, not sure if this is normal.
Hell, some extensions could theoretically lower your token burn. (Like rtk, if it actually worked.)