Pi is so good, for both running Qwen 3.8 Flash Next locally at home, and for using all the models available at my work. Shockingly useful, fast, it's TUI doesn't suck (unlike my work's own agent CLI: it's really powerful, but man that actual TUI itself is a bit rough, its too GUI-like), and extensible.
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.
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.
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.
"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 ...
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.
Are you using Windows Terminal by any chance? I'm building a personal fork [0] with a patch for this exact bug (plus a few other open PRs from the upstream repo that seemed cool). Haven't tried contributing it upstream, since the patch is fully vibe-coded and I've spent almost no time trying to understand how it works, but the bug hasn't recurred since I've been using it.
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.
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.
Well, according to claude and Jevbench, Qwen 3.6 35b with ninfer on a RTX 5090@480W is like 3-5 time slower but 10%-15% better performance on the public set, I could see prefill > 15k for 700-800decode.
Latency against what and which hardware? I don't really get jev...
Look I can convince my boss to pay for jev, but I won't convince him to run our prod stuff on a rented vast.ai 5090. And the pricing wouldn't be worth it. If you have ideas I would be glad to hear them
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.
>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.
> 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.
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.
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?
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.
I don't understand why "Cache warming for anthropic models" was not put into a standalone package, but has to be bundled with the "minimal" coding agent.
If anyone's looking for something a bit more minimal, I can't recommend hax [0] enough. No MCP, agent just gets a shell tool, simple config, whole thing's in C.
I'm not sure, to be honest -- I think the main agent loop, tools, etc. are fairly standard and the main draw is fast start-up time, but it does have a very minimal default system prompt too.
I’m currently building a harness for Slack to support our on-call and support channels. It’s been working great so far.
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!
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.
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.
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.
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.
I use my Pi to organize my graphic design assets as well as update documentation for client projects. It also is my daily driver for a story I'm working on and thanks to a ton of great skills created it has become more powerful.
Local model is Qwen3.6 35B-A3B and Qwen3.8 27B UD. I love the compressing function, keeps on pushing.
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.
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.
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).
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?
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.
Yeah I just gave it a run and it starts off burning 6% of my tokens on start.
Pi sits at 0%.
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.
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.
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
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.
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
They are not, Pi is the vim or mechanical keyboard of the pre-AI era. Didn't matter then, doesn't matter now. Will generate infinite discourse regardless.
Pi vs opencode for example is like gentoo vs macos, if you want to spend your time customizing and dealing with harness itself rather than doing the work, then go for it, it will be fun, like gentoo. I think the best productive setup is herdr+opencode or zed and opencode, unless you need CC for anthropic models. The only thing however, is how the same model works with different harnesses, positive or negative, is where you might need to shuffle between to maximize the results.
> 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.
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 ¯\_(ツ)_/¯
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. \
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.
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.
In Oct 2026, if you're optimizing for productivity, then yes, you probably should just use both Claude and Codex and not mess around with alternatives.
If you care about other things, then have fun, no one is stopping you. Just don't pretend you're doing it because you take more "pride" or "care" in your tools. That's just silly.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Neat, but I keep having to edit the pi stub to remove the "/bin/env node" and replace that with bun instead, because, well, somehow that's still hardcoded.
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).
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.
You seem to misunderstand what full screen mode is. It doesn't just make the terminal fullscreen, it causes pi to maintain its own scrollback buffer and a UI around it, rather than letting the terminal emulator handle scrolling (ie, letting the session context actually live in the terminal history)
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.
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.
I wouldn't go as far as calling it a joke language (in some ways, it's incredible), but I did come here wondering if other people felt this way. The language choice has always confused me.
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...
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.
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.
One reason: it's really easy to have a lightning-fast dev loop when the entire running process can hot-swap almost every piece of code, when then also extends to all extensions written against the core functionality.
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".
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?
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
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.
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.
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"?
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!
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"
Well, I'm happy. Thanks for the new harness, ripping out the guts of piclaw to use it, and also flipped a few other small tools to pi-durable, which is nicely streamlined.
I can't for the life of me figure out why people would think pi is bloated.
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
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.
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.
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.
This seems like an obvious configuration option - I can imagine someone disliking the italics as well…
[0] https://github.com/wilt00/windows-terminal/releases
Pi felt nice when I used it, and I do value keeping things minimal, but I just find the criteria very uneven.
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.
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 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.
[0] https://usehax.dev/
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!
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.
Haven't used omp web yet.
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.
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.
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).
It kind of just gets with how you creative you want to be about it.
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.
The only thing I've configured is the default model.
Pi is great overall. I ended up deploying a GUI wrapper because TUI isn't as friendly to new adopters.
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. \
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.
In Oct 2026, if you're optimizing for productivity, then yes, you probably should just use both Claude and Codex and not mess around with alternatives.
If you care about other things, then have fun, no one is stopping you. Just don't pretend you're doing it because you take more "pride" or "care" in your tools. That's just silly.
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
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.
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.
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.
- 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.
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?
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.
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.
Maybe spend $100,000 in tokens to fix that.
https://tex64.com/learn/getting-started/about
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?
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"?
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!
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"
I can't for the life of me figure out why people would think pi is bloated.
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