Rendered at 23:25:43 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
julesrms 12 hours ago [-]
Every few weeks Pi hits #1 here and I quietly grumble "mine does that too, but with lovely graphics.", so I'm saying it out loud: https://github.com/juggler-ai/juggler
Like Pi, it's plugins all the way down, provider-agnostic, minimal system prompts, threaded sub-agents, code-mode, multi-client remote sessions, worktrees, a context window you can actually see and edit, etc etc
Where Pi is way ahead is the plugin ecosystem, and that takes people, which is hard to get amid the current deluge of agent action. So if there's any spare oxygen trailing off this thread, I'd love any Pi-heads who fancy a bit of GUI action to come and kick the tyres..
brandall10 8 hours ago [-]
Keep in mind that the creator of Pi has done a ton of advocacy for it... talks, podcasts, demos, etc.
Marketing really matters here. Sometimes a tool can take off on its own with just a little bit of prodding (hn/reddit announcements and the like), but in this era where there is just way too much choice that is difficult to differentiate, the S/N is just too opaque.
Think about Matt Pocock for a moment - the guy is literally famous for 'his' grill-me skill. A skill. And something he really did not come up with, as the core tenant has been a a prior-art prompt template going back to 2023, but no one seems to question or point that out as he has been so pervasive online promoting this as his invention that it just drowns out any dissent.
julesrms 8 hours ago [-]
I know.. I'm no stranger to doing talks, it's on my to-do-list to get out there and punt this a bit more!
lucideer 11 hours ago [-]
> Pi-heads who fancy a bit of GUI actionz
This project looks great, well done, BUT it seems very odd to be "grumbling" about Pi when you're explicitly targeting a separate audience (GUI users).
There are other GUI tools like Juggler that are quite popular, like cmux, that it seems better placed as an alternative to.
julesrms 11 hours ago [-]
Thanks! My grumbling is really just that the sheer amount of noise and churn in this area at the moment is making it hard to get any attention, despite there being so many millions of potential users out there. Unlike many of the others, I'm just one bloke, not a VC-funded outfit with a marketing budget!
cobolcomesback 10 hours ago [-]
Why do you want attention? Are you trying to sell this? Make money? Just want personal fame?
The reason there is so much noise in is area is because these tools are a dime a dozen and trivial to create with AI. I don’t think it realistic anymore to expect a rush of users and make money off of these. The supply is going to far outstrip the demand.
Last Saturday I asked Claude to create a Claude Code clone for me with a few customizations that I personally prefer. It did so in less than an hour, and works just as well as Claude Code. I’m not looking for attention on it - I’m happy I made it, and just myself as a user is gratification enough. I think this is the future of software development, and I think having expectations of attention from others just because you made another tool is setting yourself up for disappointment.
julesrms 8 hours ago [-]
I'm not a noob in the software biz, I've been doing this kind of thing for over 30 years, and I understand expectations!
Like many things I've made, this started as a scratch-an-itch project, but now feels like it's unique and useful to enough people that it's worth a shot at turning it into a business. Exactly how to monetise it, not sure, but regardless of that step, step 1 is definitely just getting it out there!
There's a lot of "What's the point in making an app, one day we'll just ask claude for the tools we want and it'll write them in a weekend" but I think:
a) For things like this you're going to get a better result by taking an app that's roughly the right shape, but customisable, and asking claude to customise it
b) If we do end up in a world where nobody sells software apart from openAI and Anthropic, then that's a bad, bad place to be
NichoPaolucci 8 hours ago [-]
I agree with cobolcomesback.
It looks like a good system, great if it works for you - but we now live in a period where I could build a similar tool to handle MY preferences in a weekend if I wanted to.
And, it would almost be EASIER than learning to use a new tool. I prefer PI because I didn't want batteries included in the terminal. Any decisions about what a user might want is a decision made on the user's behalf that dilute that core.
Juggler looks good - not personally for me. But that's OK, it's got 675 stars and a bunch of forks. That's attention, no?
boredtofears 8 hours ago [-]
I think people vastly overestimate how hard it is to get a tool right even in the age of AI. Yes, it's very easy to get a throwaway tool done in a session. For anything above trivial complexity (like a coding harness) you will immediately notice warts with it.
It's true: with proper planning, thought, and focus, you might be able to generate enough code in one weekend to create a tool that is at parity with something like Pi - but chances are the amount of focus, planning, and thought is going to be greater than one weekend worth. And I don't know about you - but I don't really want to spend my weekend building a coding harness, I have other ideas and projects I'd rather execute.
julesrms 8 hours ago [-]
Yes indeed. In the case of juggler, if you check my CV you'll see that I'm very far from being a vibe coder - I've been shipping hugely complex products for 30 years, I've written frameworks, entire UI libraries, audio libraries, a DAW, a couple of compilers.. But this took me about a year to get right. I must have re-architected the whole thing more than 10 times, it took every bit of my experience to not screw up the data model. It's actually one of the most difficult and interesting projects I've done. So yes, if you can get claude to churn out a juggler-like app in a weekend, it probably ripped off the source code!
cobolcomesback 5 hours ago [-]
I think you probably meant to write “underestimate”. But I think you are overestimating how difficult it is!
I’m not exaggerating when I say all I had to do was prompt “build me an LLM coding harness like Claude code, but make it so that I can resume sessions from OpenCode and Pi as well” and that’s it, and it was done within an hour.
Did it have warts? It’s been working nearly flawlessly, but there have been a couple of really minor things. One of the things I realized quickly was that it didn’t have a WebFetch tool built in, so I prompted “add a webfetch tool” and it did it within 5 minutes. Warts are trivially fixed.
The things that really differentiate software now are the ideas behind them, not the implementation. So if (like the OP) you’re looking at a tool and going “well mine does that too…”, so what? If it’s just a re-implementation of the same ideas, anyone can recreate it (and add on their own customizations to boot).
Personally, I am getting frustrated with the amount of people trying to pitch me their tool they made. Tools are a dime a dozen. Share with me your ideas, and I’ll share with you mine, but I’m not gonna adopt your tool.
boredtofears 5 hours ago [-]
> Did it have warts? It’s been working nearly flawlessly, but there have been a couple of really minor things. One of the things I realized quickly was that it didn’t have a WebFetch tool built in, so I prompted “add a webfetch tool” and it did it within 5 minutes. Warts are trivially fixed.
Sure, and then tomorrow it's compaction, then worktrees, then an annoying buffer scrolling bug, image clipboard handling, etc etc. I don't buy for a minute that a one-liner prompt creates a perfect program because I know from experience it doesn't. You are inheriting the maintenance of a non-trivial program. That's perfectly fine if you want to tinker and spend time on that but I would rather offload that to someone who wants to spend more time thinking about those problems than I do.
> Personally, I am getting frustrated with the amount of people trying to pitch me their tool they made. Tools are a dime a dozen. Share with me your ideas, and I’ll share with you mine, but I’m not gonna adopt your tool.
I'm not sure I follow this line of thinking. Obviously, juggler is the result of an author who has spent a great deal amount of time thinking about an idea. It is the manifestation of the author's ideas. I agree that the amount of vibe coded slop out there that people think is marketable is ridiculous, but Juggler doesn't really look like that. It's still worthwhile to evaluate well thought out tools IMO.
cobolcomesback 4 hours ago [-]
> Sure, and then tomorrow it's compaction, then worktrees, then an annoying buffer scrolling bug, image clipboard handling, etc etc. I don't buy for a minute that a one-liner prompt creates a perfect program because I know from experience it doesn't.
Every thing you listed works out of the box. Believe it or not, it’s true! And creating tools like this is only going to get easier as LLM models progress.
Your comment very much reminds me of comments from 2023 saying that LLMs would never be able to write working code, or be able to generate lifelike pictures, or be able to find security issues… but look around you, they’re doing all of those things already!
> I'm not sure I follow this line of thinking. Obviously, juggler is the result of an author who has spent a great deal amount of time thinking about an idea.
Awesome! That’s why I asked the author why they wanted attention. I want to hear more about those ideas behind juggler. What makes it special? Why does the author (who has tons of experience in software) think juggler is different? What were the obstacles that the author overcame while building it? That’s what I want to know, but these comments share none of that. Instead they just say “I also built a tool that does the same thing, I wish people would use my tool instead.” Why in the world would I?
boredtofears 3 hours ago [-]
I'm using these tools in a professional capacity everyday just like you and everyone else and I 100% know they don't produce code that works perfectly out of the box. That's either horseshit, or your definition of working software and mine are very different.
jonenst 11 hours ago [-]
My personal quiet grumbling is that everyone got on the TUI bandwagon without any rational reason. I find it borderline psychotic. Or maybe humans are much more like sheep than we care to admit: we just follow the flock into the (UI) ravine. So your GUI is a nice escape.
grosswait 11 hours ago [-]
Or maybe people genuinely like TUIs? Most folks came of age after the TUI had already lost popularity to the eye candy and only recently learned the merits of the terminal. I personally have always loved a good TUI and enjoy the terminal. I can’t count the number of people who worked in a TUI and were pushed to a modern GUI say (usually in the 00’s) how much more productive they were in the TUI version.
almostarockstar 10 hours ago [-]
What would you say are the merits of the terminal that a TUI encapsulates?
My opinion is that TUI is just a GUI with less fidelity. Being composed of text characters provides no additional benefit other than a retro style. The benefits of the terminal are outside of TUIs - composing scripts, piping data, bash etc.
bloppe 6 hours ago [-]
Vim keybindings, one of the most powerful and widely supported ways of interacting with information, basically impose the "grid of text" nature that define TUIs anyway, so my message prompt has to look like a terminal. The rest of the UI can be whatever, but grid-of-text works well for structured output, especially code blocks, as well.
TUIs compose with tmux. Pi's homepage says "use tmux" twice on it. It fits right into an already-mature ecosystem including a clipboard (powered by Vim visual / line / block mode) and easy integration with shells, editors, and other tools. GUIs generally have to re-invent all those wheels (tabs, splits, sessions, etc.) and it never integrates as well with other tools in a totally cross-platform way.
stasomatic 8 hours ago [-]
One small example - ChatGTP desktop intercepts highlighted text selection with "Ask ChatGTP" bubble. I have my own app that materializes a menu on highlighted text, but ChatGTP blocks it. No issues with that in the terminal. I am not a terminal junkie, but these opinionated paper cuts are annoying.
idiotsecant 9 hours ago [-]
Text interfaces can offer precision and breadth of tooling that guis don't.
I do a fair amount of CAD so I'll use that example. Nobody who uses CAD professionally is clicking all the little buttons for tools. They're using commands, shortcuts, scripts, etc.
A GUI is slow and clunky. A textual interface, once learned, has way more degrees of freedom.
spacechild1 9 hours ago [-]
> They're using commands, shortcuts, scripts, etc.
Yes, power users often use shortcuts and automation, but how is that an argument against GUIs?
It simply depends a lot on the actual task. Certain things absolutely require a (high fidelity) graphical interface. Other things can be done just as well (and with less distraction) in a simple TUI. You can't generalize.
kaibee 9 hours ago [-]
I don't think anyone referring to GUI means 'no commands/shortcuts/scripts', like, all of those that all CAD programs are GUIs that have commands, shortcuts, etc.
My two cents is that having all of your text be monospaced is not really ideal for agentic workflows where you do in fact read a lot of prose and in the future may want diagrams, rendered from a full browser's capabilities, etc.
I think I like the aesthetic of using a TUI because it makes me feel more like whatever 'real programmer' means to me... but I recognize its also cope.
(Also TUIs made a lot more sense when code was more expensive, because the monospacing constraint made it faster to build UI, etc.)
nchmy 7 hours ago [-]
have you ever used, for example, vs code or Excel? both have robust GUI and keyboard capabilities. Andexcel has vba and now python and other scripting, and vscode is eminently extensible.
TJTorola 9 hours ago [-]
I work over SSH often from various other OSs, TUIs don't need any additional abstractions to make that work, I just SSH in from any computer/OS and everything works. All I need is SSH and the terminal based apps. It's not psychotic, it's literally a feature that cannot be found with GUIs.
chasd00 9 hours ago [-]
hate to make a "me too" comment but TUIs working over ssh is what makes them so great. Also, when combined with something like screen it's icing on the cake.
Fidelix 7 hours ago [-]
> it's literally a feature that cannot be found with GUIs
Yes, it can.
Cursor has this, and there are others that can attach to ssh or open their UI via a tunnel or web interface.
SSH is mighty convenient though, so I am not necessarily saying your point is incorrect.
boie0025 10 hours ago [-]
I grew up running and calling dialup BBSs, learning to program in the MS DOS shell world with QBasic and Turbo Pascal "IDE"s, dialing up and later telnetting into a Lynx browser (early on when I couldn't afford a PPP link with lawn mowing money).. the "terminal" and thereby TUI applications (they weren't called that at the time as far as I know, but that's definitely what they were) are home, for at least me. I just wish more TUIs had single keystroke hotkeys (indicated by the hotkey's letter in the menu item title being a different color or intensity) like the old BBS and other menus. I could login and download a QWK packet quicker than the time it took for the modem to finish the DTMF tones. I'm excited about how many new things allow me to stay in the interface my brain formed around. YMMV
konart 11 hours ago [-]
Many of us just live in the terminal (during work hours at least).
I hardly use anything aside from neovim and a browser. (okay corporate Mattermost fork and video terminal too).
For me switching between different cli\tui tools feels like a continuation of whatever I was doing, while going to something GUIsh is not.
And to be honest: what do you even need from a harness\agent for it to have a gui?
julesrms 11 hours ago [-]
> And to be honest: what do you even need from a harness\agent for it to have a gui?
Oh, it's just so much nicer! Personally I'm a graphics/typography nerd, so just having nice fonts, smooth movement, use of sizes, colours and graphics to differentiate and display types of information...
Some people obviously don't care about this kind of look and feel nicety, but even so a GUI has so many more opportunities for displaying information in a clear but dense way.
konart 10 hours ago [-]
But you have exactly the same fonts in your terminal and modern terminal support variable fonts and all those bells and whistles.
They can even show images these days.
Some of the elements can't be recreated 1 to 1 ofc, like borders with delicate margin\padding adjustment, but this is about it I think.
To each his own, yeah. From my experiment GUIs tend to overcomplicate things and display too much info you didn't need in the first place.
julesrms 8 hours ago [-]
You can choose any font you want for your terminal, but only one at a time!
The native format of LLM interactions is markdown, and showing that in a terminal is a poor imitation of what it looks like rendered properly.
An interesting thing you can do in juggler is ask the LLM to reply in HTML instead of markdown, and they can then do things like illustrate points visually for you. LLMs are actually great at being able to express things visually to the user, but being stuck in terminals so much, people haven't really leaned on that very much
voakbasda 8 hours ago [-]
What terminal(s) would allow me to connect to a remote headless server and view an image?
albondiga90210 5 hours ago [-]
With Kitty you can even view video. YouTube-dl piping to timg works surprisingly well
konart 8 hours ago [-]
>experiment
experience
maupin 7 hours ago [-]
I won't say Pi looks particularly impressive, but for example OpenCode looks beautiful to me and I prefer it to any graphical interface. The screenshots of your tool are nice but they feel like too much. With a good TUI like OpenCode and even Pi (which is decent) I fell like the code is front and foremost.
epihelix 8 hours ago [-]
I live in an office when I'm at work. Doesn't mean it's a great experience.
I love the terminal for terminal things. I'm not convinced agenetic coding is best implemented in a terminal - for it to work well, you're basically reinventing a toolkit wheel. Why not just use a nice graphical toolkit? It feels a bit like the current trend for pixelated graphics - both retro and worse.
flaunf221 10 hours ago [-]
> And to be honest: what do you even need from a harness\agent for it to have a gui?
Nothing absolute that I couldn't live without. But TUI is essentially a design written for the lowest common denominator. It doesn't matter that I have had high resolution displays for years, average TUI is designed as if I'm using computer older than me.
multiplegeorges 10 hours ago [-]
I like TUIs because I am running agents in Docker, often remotely.
How can a GUI replicate this workflow? I know it could, technically, but not as easily.
julesrms 7 hours ago [-]
Well juggler literally does that - you run it headlessly on some machine (docker, whatever), it opens a HTTP port, and you can control it remotely with the exact same desktop GUI that you'd see if you ran it locally. (The desktop app is actually just running a headless process internally and serving it to its own window via HTTP).
wookmaster 10 hours ago [-]
Odd you claim there’s no reason except “sheep”, did you ever stop to consider people just enjoyed the experience so stuck with it ?
julesrms 8 hours ago [-]
Woah there, I never said the 's' word!
Pi is a great project, and people love it for good reason, I have nothing negative to say about it or its fans. I'm just trying to do something that appeals to the more GUI-oriented folks. And yes, I'd really love to know if there's something that's making people bounce off the product, because it may be trivial to fix!
unrented7977 2 hours ago [-]
I like TUIs because it's impossible to fuck them up with unlabeled hieroglyphic buttons floating in a sea of padding.
jitl 11 hours ago [-]
i love vim and i love vim-tmux-navigator keybinds letting me navigate quickly between panes in my terminal: ctrl-{h,j,k,l} to switch panes. i love that tui agents fit right in among my shells and vims. i love that my setup works just as well on my machine and on any remote machine over ssh or mosh. i’ve been working like this since 2012. although i did start using vscode for $DAYJOB since our devex team supports it (has good vim keybinds at least)
ramgine 10 hours ago [-]
Our architecture team started with vscode and windows because it’s “how it’s been done” but within a year they all migrated to ghostty or another terminal on Mac because it’s so much faster and efficient.
lionkor 11 hours ago [-]
SSH into a machine and open a GUI tool. I'd love to watch you do that and enjoy 2 FPS via X11-via-ssh.
julesrms 7 hours ago [-]
I've specifically designed juggler to do exactly that.
You run it on some headless machine, and point your browser at the HTTP server it creates to see the full GUI. It uses Yjs to make that connection as efficent as possible, and it works great.
The desktop app is literally doing the same thing internally - it runs a headless server process and serves the GUI to its own window. But you can stretch that over a network and it's the same experience.
I can even connect to it via a TURN server, from my phone on a cell signal, and although it's not as snappy as running locally, it works pretty well.
epihelix 8 hours ago [-]
I'm currently using an R-studio server session running on a server half way around the world, via a gui web interface. It's fast and smooth. How on earth could that be?
8aKXcbOAOz 10 hours ago [-]
if only there were a way to tunnel web servers over that very SSH connection and use a proper web UI, something HN has always been obsessed with.... oh well i guess we're stuck with a VT100! :( there's nothing we can do!
svennek 10 hours ago [-]
You mean like ssh -R? (And some magic to make host header correct, likely local hosts file)
KetoManx64 9 hours ago [-]
Why would I want to use a web browser when 90% of my work is in the terminal?
KolmogorovComp 11 hours ago [-]
For me terminal use is a must because I want my harness to run in VMs, headless server etc.
julesrms 11 hours ago [-]
That doesn't mean you need a TUI! Juggler runs in headless terminals and VMs - you run it as a headless server process, and it serves the exact same desktop GUI via HTTP to any number of clients
kraktoos 11 hours ago [-]
Or just use a TUI
julesrms 8 hours ago [-]
It does seem like devs are splitting into the TUI and GUI tribes. Like tabs and spaces. We will probably never reconcile our differences or learn to empathise with the other side.
jon23d 11 hours ago [-]
That's where I'm at too. I tried to used web interfaces served from the VMs, but it was messy. I'm way happier with TUIs.
nchmy 10 hours ago [-]
im with you. I have tried all the TUIs and immediately bounce off of them due to how utterly awful even just basic operations like text editing are. I use Vscode copilot chat because in the before-times I was perfectly happy with vscode. I cannot comprehend how people can now give all of that up for TUIs. It also has its Agents Window, Copilot CLI etc... and you can use any api keys, subscriptions etc... that you want.
And, of course, most of the tools have created their own GUIs anyway, which are far worse than VS Code (even when they've forked VSCode itself!)
I think the "borderline psychotic" phrasing is apt.
feffe 8 hours ago [-]
I sit in tmux all day. TUI needed.
jasonlotito 10 hours ago [-]
Most GUIs can't be navigated by a fluent keybind system. And if they do have keybinds, they are their own, and not consistent with what others use, or you can't modify them. And then there is the issue of making it hard to run multiple copies at the same time (I can't just click the app icon again to start a second copy, Juggler does solve for this though), nor can I keep two copies together side by side easily. Being able to copy and paste text is hit or miss.
I love good GUI apps. They are hard to do well.
Juggler, for example, already collides with a Keyboard Shortcut I use across the desktop, so CMD + J can't be used. It also uses CMD + / for keyboard shortcuts? Tha's a choice. It doesn't respect Mac's preferences/settings shortcut (CMD + ,)
You can be on a chat window, and there is no way without using the mouse that I see where you can start typing into the chat box. Juggler tells me to type / and I can run a command. I type / and nothing happens. What that really means is I have to use my mouse to put the cursor in the small chat box down below.
This isn't to say Juggler is bad. Rather, it's got a long way to go for the GUI to be something that has the fluency of something like vim.
TUIs generally have to solve for that. You have to offer up those features. You can't rely on laziness. So at the very least, there generally are keyboard shortcuts and they need to be obvious.
Feel free to think that people don't have a rational reason for TUIs, but it buys you a lot for free. And this isn't an indictment on Juggler. It works. It's functional. It doesn't feel natural, nor does it respect conventions.
julesrms 7 hours ago [-]
I totally get it. Lots of people, like you, love to set up their perfect custom, key-driven environment, and tune everything just how they want it. These tend to be the TUI fans.
I've never felt that urge, I've always been happier using Visual Studio / Xcode / VScode with default key bindings, and focused on other things. I'd rather click things inefficiently with a mouse than invest effort learning keypresses. Neither of us are wrong or right, but I think I'm trying to cater for my tribe on this project!
jasonlotito 7 hours ago [-]
fwiw, you can cater to both. It's not an exclusive thing. Having a gui is not bad. It's just effort to make it good. Take for example the CMD + , not opening settings/preferences on Mac. That's convention on the platform.
> I totally get it. Lots of people, like you, love to set up their perfect custom, key-driven environment, and tune everything just how they want it.
No, you don't "get it." Like me? I don't want to set things up. I don't want to customize. I thrive off convention. And there are apps that follow these conventions. They do this out of respect for people who enjoy the defaults they enjoy elsewhere in other applications.
> I've always been happier using Visual Studio / Xcode / VScode with default key bindings
That's not true though, because you don't even use the same default/convention key bindings they use. By doing things your own way, you are making it so it's harder for your users to adopt your application.
> "mine does that too, but with lovely graphics.",
But it doesn't. You don't care about the little things, so how are you going to get the bigger things correct?
Listen, it's great that you built a tool that you love. I love doing that, too. But if you want users, you have to respect them. And that means making it easier for them to use your app.
And if our app just doesn't work because / doesn't do what it says it's going to do, that's an issue. And if your app doesn't allow for customizing keyboard shortcuts, it's disrespecting users who have those set for something else.
> but I think I'm trying to cater for my tribe on this project!
Just realize that tribe is juggler-ai users, or people who don't use defaults. People who are fine with default key bindings, can't effectively use your app.
nilamo 11 hours ago [-]
I mean, everything an agent shows to you and accepts as input is text, what does a gui even contribute to the conversation?
rspeele 9 hours ago [-]
All the agentic coding models are multimodal and can understand pictures quite well. I routinely paste in primitive paint drawings to augment my textual descriptions and show an agent what I mean, and it seems pretty effective. This can be to rough out a UI layout but it can also be useful in pure backend work drawing diagrams, or in any domain where code manipulates geometric data.
I redrew those for the README but IIRC, I drew something similar when explaining how the feature would work to the agent.
And in reverse, after describing an architecture or an algorithm to it, I'll sometimes ask it to draw a diagram for me to demonstrate its understanding. If it draws the picture in line with what I intended, I conclude that it has gained the necessary context to proceed. If not, I know I explained something wrong or at least insufficiently and need to provide clarification. There are some domains where a picture is worth a thousand words.
It also helps cut through the Claudese. "Your decision is needed for one edge case, found by the gate. When a T-joint meets an endcap that the mesher solves by a fan, should this bisect a fan slice or raise a warning?" I'm sorry Claude, I am not from Missouri but you are going to have to Show Me this one with a picture.
Of course you can save pictures to files and open them with external tools, but it's nicer to have them inlined into the chat history when that's exactly what they are: part of the conversation.
dfc 10 hours ago [-]
When I read "lovely graphics" I was expecting visualizations or images. I was curious so I scrolled through your screenshots and I didn't see any, just a lot of text screens. By graphics did you mean GUI text formatting?
julesrms 8 hours ago [-]
I guess I'm mainly just talking about typography, nice interactions and movements, designed layout of information, rather than pictures. But it is interesting at this point to start thinking about what could be shown graphically.
zennit 1 hours ago [-]
Looks good thanks will give it a go. How do you personally use it? In a sandboxed environment? What providers are you using? Can it also be used with pi and other tools?
james2doyle 9 hours ago [-]
Been a happy Juggler since I first saw it on here. I really think it is much more approachable for people who are intimidated/overwhelmed by the terminal and just want an all in one solution that is intuitive, pre-configured, and also works great. I really like the "auto approve" strategy given lots of people have no idea when something like a `sed` is going to write or read.
However, I likely wouldnt suggest Pi (or even opencode) to someone who I would also suggest Juggler. They just dont feel like the same type of user, in my opinion.
I do think you could take a look at ChatWise, Kelivo, Rikkahub, Jan, and Waku if you wanted to see who your real competitors are. Again, in my opinion.
Those are full standalone GUIs with workspaces and built in tools that help you get things done without requiring any terminal commands.
tadziokas 11 hours ago [-]
Hey, this looks amazing. Sorry for my ignorance, and my lack of initiative for not testing this myself, but I wanted to ask - how is this different than for example just using Claude directly?
Sorry if this question is condescending, I just want to understand what is your vision for this tool :)
julesrms 11 hours ago [-]
Well, if you're only ever going to use claude models, then just use claude.
What I'm trying to do here is offer a tool where everything you do is provider agnostic, so you can use claude for some tasks, GPT for others, local models for others, without having to switch environments.
And also, when you run out of tokens in your claude 5 hour window, you can just flip over to Sol and finish the task..
vekker 11 hours ago [-]
You can use any (Anthropic API-compatible) provider and any model with Claude Code, it's just a matter of changing the env vars in the settings json...
We need to pay attention to the new Cambrian explosion of software. The attitude of "everyone already uses VSCode" should disappear, and people should be open to try more niche products.
After all, being a developer is no longer a moat, and smaller ecosystems can thrive now.
DenisM 7 hours ago [-]
By way of differentiation, consider that a single GUI can seamlessly and visually manage agents across several machines, while TUI is likely to remain separate terminals. In the fullness of it I don’t want to think which machine is hosting which agentic conversation (or a group of related conversation). A diffrent UX paradigm.
Best of luck!
eloisant 5 hours ago [-]
tmux. Terminal tabs. Relying on your window manager to handle your multiple terminals.
There are so many ways to visually manage your agents sessions with a terminal app.
victor_pudeyev 6 hours ago [-]
Well, I wouldn't've found your project if you didn't mention it here, so good job! It looks good, minimal, I like that you're using javascript instead of that thing typescript.
Unrelated, I found that when an open model (qwen3-coder:30b) drives an mcp tool (chrome-devtools-mcp@latest), it hallucinates the tool calls, and the docs say they never promised that tool calls would make sense or be valid. To me, this is a blocker and is the reason I've stopped looking at harnesses like pi. The tool calls are just fine if a closed LLM, gpt-5.* drives them, but I need a free and open LLM. Have you run into this issue, have you addressed it?
demo4567 11 hours ago [-]
i will give it a try. but pi fits the workflow precisely because Mac is terrible at env vars and working directory. And I am terminally terminal.
But maybe this will be good as a meta harness. For my whole disk. I will take a look
demo4567 11 hours ago [-]
Just retried:
LLM error: failed to start claude CLI: claude executable not found. Searched $PATH, the login shell, and known install locations (~/.local/bin, ~/.claude/local, ~/.npm-global/bin, /opt/homebrew/bin, /usr/local/bin). Set JUGGLER_CLAUDE_PATH to its absolute path if it lives elsewhere
I think any tool that needs claude CLI is a no-go in my list. Claude is a closed source binary with idk what it does in there, IIUC. Maybe I am not the target market for this.
julesrms 11 hours ago [-]
Claude CLI is just one of the dozen or more LLM provider options juggler offers. It tries to auto-detect it because of course that's what most people will have, but of course you don't have to use it!
julesrms 11 hours ago [-]
Appreciated! You may be naturally terminalist, but I reckon there are a lot of closet GUI lovers out there..
vorticalbox 12 hours ago [-]
I installed this when I first saw it on HN.
It’s great that’s plugins all the way down the issue I find is I haven’t missed anything enough to need a plugin.
figmert 9 hours ago [-]
I just tested it out, that's some low memory footprint. Even less than pi. I run multiple opencode sessions and it eats my ram. I will continue to try to use this.
julesrms 8 hours ago [-]
Thanks! Would be keen to hear how that goes for you - if you find anything that starts to bloat its memory use, let me know and I'll look into it. As a native dev, this has always been something I care about
krisgenre 9 hours ago [-]
This feels more like a competitor to Goose than to Pi.
evandena 10 hours ago [-]
My company is lame, and I can only really install software via Homebrew without a lengthy approval and packaging process.
Have you thought about adding Juggler to Homebrew?
julesrms 8 hours ago [-]
Hmm, that's interesting - I certainly had 'homebrew' on my to-do-list, but quite low down, but you make a good argument for making it a higher priority..
victor_pudeyev 6 hours ago [-]
We're phasing homebrew out in my organization, so I wouldn't focus on tailoring to it. .dmg files are fine and good. but homebrew sort of fell apart with its automatic updates that break things. If I am looking to install a single package, I'm not expecting homebrew to install 200 of them. Yet that's what's happening now, and is the reason I'm advocating phasing homebrew out. My two cents.
sleight42 45 minutes ago [-]
iPad app and then we'll talk. ;-)
But, seriously, I'll fire this up!
arshxyz 11 hours ago [-]
<50MB .dmg and no electron? I'm sold
andersonpico 8 hours ago [-]
oh shit, it's really pretty, I wasn't expecting that
julesrms 8 hours ago [-]
I actually just released a tarted-up version today that looks nicer still. I need to update the website screenshots..
ziphyrien 10 hours ago [-]
Honestly, it doesn’t look pretty at all.
fatata123 12 hours ago [-]
[dead]
konart 11 hours ago [-]
> but with lovely graphics
But it's GUI, so a no go by default. TUI > GUI
gazpachotron 11 hours ago [-]
[dead]
FacelessJim 1 days ago [-]
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.
RickS 1 days ago [-]
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.
AgentMasterRace 23 hours ago [-]
you're comparing apples to oranges here...
vergessenmir 17 hours ago [-]
They're both harnesses, pi + cron/event trigger is 90% openclaw
davedx 15 hours ago [-]
Don't forget that all important whatsapp gateway
vorticalbox 14 hours ago [-]
There is a docker image that has an api to interact with WhatsApp and you can use the signal cli.
This is what I did and then just wrote small skills so now pi can read and send messages for me.
Medea 11 hours ago [-]
More like comparing apple pie to apples. Turns out I just wanted the apples.
rsync 1 days ago [-]
"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 ...
cbsks 1 days ago [-]
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.
rsync 1 days ago [-]
Thanks.
This seems like an obvious configuration option - I can imagine someone disliking the italics as well…
nine_k 21 hours ago [-]
If only we had a way to tell the machine to locate and fix this problem to our liking...
stpedgwdgfhgdd 18 hours ago [-]
Good joke, but I wonder how many people get it based on the reactions below.
Perhaps Pi should ask after x days of installation; is there anything I can do to make the interaction better?
jasonjayr 12 hours ago [-]
> Pi can explain its own features and look up its docs. Ask it how to use or extend Pi.
That line is in the startup message everytime...
lionkor 16 hours ago [-]
For a second I was hoping that Pi users would be the kind of people to not enjoy nags about improvements.
rmunn 21 hours ago [-]
Have you tried a different terminal app, such as Ghostty? https://ghostty.org/ has a Mac build, and handles italics properly. That might solve your issue without having to edit any configuration files. Plus, as a side benefit, Ghostty ignores the ANSI color codes for blinking text, so you won't ever see blinking text again.
funcDropShadow 14 hours ago [-]
I am wondering why people are so hyped about Ghostty? I gave it recently a try coming from kitty. And I had to configure stuff that worked out of the box with kitty, like Ctrl-Enter support and other key combos for agent harnesses. I like the development model of ghostt. And the developer really cares about creating great building blocks, e.g libghostty. But I am a bit underwhelmed.
computershit 11 hours ago [-]
I feel like the ghostty hype make more sense as excitement around the direction of terminal infra than a claim it is the one true terminal. Kitty's fine and if you are happy with it there's probably no good reason to switch.
Tangentially I also kind of feel like there is some level of deification of Mitchell's products but that's a diff topic.
alxhslm 12 hours ago [-]
Might depend on what you're comparing to.
Came from iTerm2, and Ghostty is much faster and minimal.
sothatsit 23 hours ago [-]
I was running into similar issues where italics text was blinking. I traced it back to a bug in screen, which I patched in my own screen fork. Not sure if exactly the same bug but could be? https://github.com/Sothatsit/screen
nine_k 21 hours ago [-]
If you love your terminal app and won't switch to Ghostty or WezTerm, at least try tmux instead of the venerable but ancient GNU screen.
huijzer 19 hours ago [-]
Alacritty plus Zellij works great for me. Much easier to use than tmux
dvergeylen 16 hours ago [-]
Didn't know about Zellij, seems very good, thank you!
kalleboo 19 hours ago [-]
Terminal.app Settings/Profiles has a checkbox "Allow blinking text" you can uncheck
lionkor 16 hours ago [-]
Apart from a different terminal app, try `/settings`, find the "TUI mode" or whatever, and set it to fullscreen. It fixed all my flickering and other issues.
rpdillon 21 hours ago [-]
See if you can replicate this inside of tmux. It might be screen's escape code handling.
jonwinstanley 17 hours ago [-]
Afaik iTerm2 is the usual upgrade for the macOS terminal isn’t it?
Geezus_42 12 hours ago [-]
It's the goto, but there are better options IMO.
throwawayblahbl 1 days ago [-]
[dead]
gchamonlive 22 hours ago [-]
I use oh-my-pi, not sure how it compares, but I say someone praising antigravity for being a good harness(1), and for the love of good people settle for such low standards of user experience it's almost pitiful.
It maybe depend on workflow, you hit some corner cases for agy which I don't hit.
I use agy and codex, and don't see strong difference in ui quality.
gchamonlive 5 hours ago [-]
Pardon me, but authorizing ls, grep, ps, find... doesn't seem like corner cases to me. And codex and agy are close to the kind of mainstream audience that they aim for.
But I agree, it's definitely a matter of workflow, because I can see omp doing untold damage in the hands of the uninitiated.
gigatexal 17 hours ago [-]
Yup! I am using the same having heard about it here.
simpaticoder 24 hours ago [-]
You inspired me to try Pi out - so far it's worked flawlessly. Plugged it into OpenRouter and ~$.50 of Deepseek later I've installed llama.cpp and Llama 3.1. The local model doesn't work with Pi yet (and I know it will be bad and slow even if it does) but I'm curious to see what you can do on an 8GB consumer GPU these days...
Otterly99 16 hours ago [-]
With 8GB I would recommend quantized versions of 9B models such as these:
> I'm curious to see what you can do on an 8GB consumer GPU these days
Running smaller 4B-7B models entirely on the GPU VRAM will get you fast inference, but you will need to scope and define the tasks well. eg, using it the model as a classifier and just feeding it from a queue.
The best performing "agent"-like model to plug into a harness that I have found so far has been Qwen3.6-35B-A3B (mixture of experts) model as I can park most of it in system RAM and CPU, while the VRAM holds the attention/shared weights.
It's definitely workable as a local AI homelab. But expect homelab levels of tuning/fiddling with it.
With the improved support for AMD GPUs I'm finally considering getting a modern 16GB card (and maybe a second one in a few years assuming prices come down)
aktenlage 16 hours ago [-]
I'd chime in with @rablackburn: mixture of experts is the way to go. I have a laptop with 6GB VRAM and I'm running KDE with a 4k display on the same machine, so there's only about 4 to 4.5GB actually available.
Using llama.cpp with Qwen3.6-35B-A3B or gemma4-26B-A4B gets me 200-300 tokens/s on prompt processing and 20-40 t/s output, which is good enough for me. Of course it gets slower with larger context. Interestingly gemma is faster, even though it has more active parameters.
It took a lot of parameter fiddling to get it to that speed. If you are interested I can give you some guidance on it, but I guess there are more qualified people around here.
The intelligence is good enough for simple questions and tasks (e.g. bash command howtos, asking about compiler errors, summarize something, document a code function/file, etc), but not good enough for complex things.
GCUMstlyHarmls 13 hours ago [-]
> Qwen3.6-35B-A3B or gemma4-26B-A4B
What quantization are you running for these? Like, you cant just run the "real" ones on your laptop right?
Wouldn't the performance of Qwen3.6-35B-A3B be drastically different if its quantized to 2b, 4b, 5b, etc? And also be effected by who did the quantization?
aktenlage 6 hours ago [-]
> Wouldn't the performance of Qwen3.6-35B-A3B be drastically different if its quantized to 2b, 4b, 5b, etc?
Yes. There are graphs showing the faithfulness of the logit distributions for the original and quantized versions. I think unsloth includes them in their model cards on huggingface. Usually the degradation starts small with 8b and becomes drastic for 2b. I am not sure how representative of actual quality that is though, but my guess is that it's about right, because of diminishing returns. Like, when you go from 16b to 8b you save 26GB and sacrifice (if well done) the least important information. But with every step you gain less and need to shave of more important things.
> And also be effected by who did the quantization?
My uninformed guess is that it makes a difference, but not as much as those who do it want you to believe.
aktenlage 12 hours ago [-]
I am using the unsloth 4bit quants for both, with quantization aware training for gemma. I haven't tried other quants with these models. I also use a q4 quantized KV cache.
The computation is partially on the CPU (--cpu-moe) with the corresponding weights in main memory, so I could run at least gemma in 16bit precision, but I guess there's no reason to go beyond 8bit and 4 bit is deemed to be the sweet spot.
GCUMstlyHarmls 12 hours ago [-]
Thanks that's helpful.
crossroadsguy 9 hours ago [-]
If that's 8GB is available dedicatedly for the model then a lot but if it's the sad story like my M1 Pro where even wtih 16GB unififed I've barely anything left for myself.
You should go to huggingface and maybe create an a/c with a throwaway email and enter your hardware details and that will filter the models for you.
whatshisface 22 hours ago [-]
If you paid DeepSeek directly, that would have been 1 to 10 cents. OpenRouter has a huge overhead due to their cache logic, I'm surprised they keep business coming in the door for tasks other than system prompt - output pairs.
lemontheme 18 hours ago [-]
I thought openrouter just routes you to the same provider for the rest of the session, so that you keep hitting the same cache. Is that not the case?
Also, I’d love to use Deepseek directly (or any of the Chinese providers, at that). Seems only fair to pay the lab that built the model. Unfortunately, any requests to Chinese servers is deeply frowned upon here (Belgium, EU). For personal use: sure. As a token intelligence strategy for the company: absolutely fucking not.
RussianCow 9 hours ago [-]
> I thought openrouter just routes you to the same provider for the rest of the session, so that you keep hitting the same cache. Is that not the case?
Not in my experience. I need to explicitly set my preferred provider(s) for each model, otherwise it bounces me around even within a single session.
gigatexal 17 hours ago [-]
It does. They claim that anyway to just route you to the api endpoints for whatever you choose.
miek 18 hours ago [-]
[dead]
simpaticoder 21 hours ago [-]
I think it was actually less than that. I was doing something else too in another agent.
sejje 24 hours ago [-]
> I'm curious to see what you can do on an 8GB consumer GPU these days.
Nothing, really. Might be coming soon, but no.
You probably want to try bonsai, I guess, but don't expect good results.
aktenlage 16 hours ago [-]
Not my experience. Limited, but definitely not nothing.
cellularmitosis 17 hours ago [-]
A YouTuber by the name of Codacus has been pushing the envelope in this area.
what 23 hours ago [-]
> ~$.50 of Deepseek later I've installed llama.cpp and Llama 3.1
You could install this yourself for free? I get $0.50 isn’t all that much, but still?
simpaticoder 23 hours ago [-]
Sure, but I'm not interested in learning about running cpp, installing CUDA, finding the right URLs for downloading llama weights. It's the best 50 cents I've spent in 20 years.
8n4vidtmkvmk 21 hours ago [-]
Even so, I'm surprised it cost that much. I thought deepseek was cheaper.
But AI for installing tricky opensource software is indeed a good use case. I do that too.
Kurtz79 13 hours ago [-]
Except it's not "free", you are using a fraction of your time, arguably your most precious finite resource.
Even if you spend just 10 minutes of it, I would say $0.50 it's not a bad deal.
what 17 minutes ago [-]
>time is money
One of the dumbest sayings ever. Unless you spend all of your time doing something that makes money, the time is worth $0. You could say that you prefer to do something else during that time and would happily pay to free it up.
AgentMasterRace 23 hours ago [-]
you're living in the 2020s bro
syrusakbary 19 hours ago [-]
Same! Pi is incredibly exciting.
We launched Pi support in Wasmer a few days ago and reception has been great (so you can run pi in your iPhone or browser, or even embedded)
(for an easter egg click on the Pi logo on the top left!)
ziphyrien 22 hours ago [-]
This bug was fixed several months ago; you just need to switch to full-screen mode, though you hadn’t done so previously.
However, they have now set full-screen mode as the default.
wilt_ 1 days ago [-]
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.
> 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.
It's so interesting because Claude Code used to have this bug a long time ago, but it was eventually fixed. Strange that they both had/have the same issue.
smokel 14 hours ago [-]
Why do these tools have such bugs? With AI it should be trivial to fix, no?
Or is it a non-trivial bug that requires a lot of refactoring, and could introduce a lot of new bugs? That would require careful review from a human.
The latter may well be a reason why I don't see extreme productivity gains in larger brown-field projects.
(Disclaimer: I see enormous benefits in one-off greenfield projects.)
kekebo 13 hours ago [-]
I don't think it's necessarily a bug per se, but a central tradeoff in system prompt length between well-documenting the environment (harness specifics, exposed tools, tool use instructions etc) to the llm, vs the initial prompt stage ("prefill") growing so large that it results in an unpleasant lag to first response, and reduced available context, which is most noticeable with open models on resource-constrained consumer hardware.
You can use llm to optimize some of this, I condensed the tool descriptions of some larger LM Studio plugins to shrink prefill by almost 10k tokens. But there's a soft limit to this, if you don't want to under-document available tools and let the model guess (/behave unsafely).
One optimization around this is called "smart tool selection", which only sends tool descriptions when the model indicates need for a certain tool (suite), not all of them upfront.
dmarchand90 17 hours ago [-]
You can use full screen mode. (I asked my pi agent about this and it told me about it)
That fixed the flicker issue for me
Oh and that will be the new default 'Full-screen mode by default'
miroljub 15 hours ago [-]
That bug is inherent to how terminal scrollback works and can’t be fixed as long as you use it. Your only choice is that jump or stale backscroll. Or you use Pi new fullscreen mode which gives up on terminal and use alternate screens and implement own scrolling without terminal scrollback.
How do I know? I implemented my own terminal harness and faced the same issue.
ttmacer 23 hours ago [-]
It's so great to see now that the folks behind Pi also try to pivot away from the idea that Pi is more than a "coding" agent. Its minimalism, and tool call primitives really lends itself to be a general purpose agent for your OS that you gradually extend on demand for your specific use case.
Since January I use Pi professionally as well as personally and I can only recommend to start small and grow your harness over time. For example, for an agent in production it was so helpful for me to use Pi in interactive mode via tmux to get a feel of the agentic flow, tool calls and reasoning traces for a certain use case while only the stylized responses are rendered in Telegram via an extension to the user. As a Developer, I have full technical observability and control while providing and incrementally improving a service to a user at the same time.
Excited how Pi Durable will fit in and can support more. Congrats and thank you!
phkx 19 hours ago [-]
Especially with the extensibility of Pi, I‘m wondering whether there is a way to configure different profiles for different kinds of tasks. Such a profile would include tools, system prompt, maybe selected models and their settings.
Is there a straightforward way to do that with Pi?
ttmacer 14 hours ago [-]
AFAIK Pi out of the box as other harnesses handles this use case via dot directories on your filesystem. So a .pi directory in your working directory Pi gets started in is the place where you would implement such a profile.
Note that there is also a global .pi in the home directory, which takes precedence over session-local .pi directories.
In the past I used this abstraction conveniently to setup different agents for different purposes. I kinda like having this abstraction on my filesystem to inspect instead of it being hidden away in a opaque harness or, even worse, the weights of the model.
EDIT: then a Pi Extension that swaps .pi directories out, maybe via git worktrees, is just the low-hanging fruit to establish your profiles pattern I think.
GreenWatermelon 8 hours ago [-]
Symlink the .pi directory to the profile you want, swapping changes the target of the link inste of modifying files. This is how I implement dark/light mode autoswitches on some of the cli tools I use.
jkl5xx 17 hours ago [-]
Was also wondering this the other day. Every harness I’ve looked into seems to be monolithic. I would really prefer specialized profiles/configurations instead of loading up every skill and MCP server imaginable into a big stateful works-on-my-machine mess.
I just want to run `pi --profile=./gamedev.toml “build a side scroller where you’re a turtle”` and have it do the thing.
nibbleyou 16 hours ago [-]
Codex has a profile feature
codybontecou 14 hours ago [-]
I do this - one profile for work and one for personal. It’s as easy as asking Pi to build it for you. When I run Pi in specific directories it knows which profile to run, using a separate subscription and toolset.
ghm2180 20 hours ago [-]
Hey thanks for posting this. I use pi professionally too. I am curious how you used agentic workflows with pi before. The simplest(since the early days) was letting it use Tmux for spawning other sessions and controlling it.
The second case, more recent, is one where I use actively now is linking pi sessions to some artifact like a code change(PR or diff) or a collection of document and then continuing the session in that context.
What was your main power case with it.
ttmacer 16 hours ago [-]
to correct, I meant "pivoting towards the idea that Pi is "more" than a coding agent"
asp_hornet 21 hours ago [-]
You have made me excited to try it. Thanks for the tips.
ttmacer 14 hours ago [-]
No problem, glad to ignite some spark! Just to clarify, what I mentioned is also effectively possible with other harnesses. Pi's minimalism just made it more ergonomic to focus on the right things and encouraged me to question and thus learn.
rylando 23 hours ago [-]
I wonder how Tolkien would’ve thought about the use of LotR names being used by all these AI and tech companies.. especially since they all seem to use the names of things that were corrupted by darkness.
gholap 18 hours ago [-]
From their CEO:
> When I'm old I want people to remember Tolkien named companies for things other than weapon and surveillance systems.
Quite funny because Earendil is the old english word for Lucifer aka... Satan
v3gas 17 hours ago [-]
Armin is the CTO ;)
gholap 4 hours ago [-]
Whoops! my bad
TIL HN comments have a 2hr timeout for editing
Yizahi 14 hours ago [-]
Funny that he is building a middleware layer to a biggest surveillance system in all our history, the one which will spy on everything people are typing on their digital devices forever. How nice of him :)
lucas_t_a 13 hours ago [-]
i would argue that the way internet infrastructure in general already works as such system, local AI tools just set that as a commodity
gjm11 23 hours ago [-]
I wonder much the same thing, but this seems like a slightly odd place to say it since so far as I can see the only LotR name in the linked article is the company name Earendil, and AFAIK Earendil-in-Tolkien was very much not corrupted by darkness.
nicce 15 hours ago [-]
> LotR name in the linked article is the company name Earendil, and AFAIK Earendil-in-Tolkien was very much not corrupted by darkness.
I think they mean that most companies that use these Tolkien names, are on the dark side.
kergonath 17 hours ago [-]
Eärendil is fine in that respect.
Though I find it funny that they put “Bearer of Light” as a description, at least on their GitHub page. AFAIK Tolkien did not used the phrase, it is maybe a bit too close to the Latin version, Lucifer. Talk about a thing corrupted by darkness.
I always thought Tolkien had taken those names from the IKEA catalog.
wongarsu 15 hours ago [-]
A lot of Tolkien names come from old Germanic languages. Eärendil for example from Ēarendel, the Old English name for a figure from Norse mythology [1]
Or maybe from the 9th century poem Christ I [2], which translated to modern English starts off with the words
Hail Earendel, brightest of angels,
Sent to men over middle-earth,
And true radiance of the sun,
Fine beyond stars, you always illuminate,
From your self, every season!
IKEA catalogs using Swedish names, and Swedish being a Germanic language that stayed truer to its Germanic roots than English did, it's not that far off. In a weird way
“The Shadow that bred them can only mock, it cannot make: not real things of its own. I don't think it gave life ..., it only ruined them and twisted them.”
dmazin 18 hours ago [-]
Putting the makers of an OSS harness in the same moral group of Palantir and Anduril is laughably silly.
TZubiri 18 hours ago [-]
LLMs in general are a corruption in a literal moral-neutral way. You stop worrying about whether something is correct or not, or how it works and just give in to the vibes, doesn't matter what goes in the backend or in some data center or mine far away, everything reduced to producing digital nuggets.
newswasboring 13 hours ago [-]
Not all LLM use is vibe coding.
TZubiri 4 minutes ago [-]
yeah, I didn't refer to vibe coding specifically, all that applies to generic llm usage
richardgill88 11 hours ago [-]
Long-time pi user here. If you're thinking of trying out pi but feel daunted by finding the right plugins to get started, I wrote about my minimal pi setup here:
It's still pretty minimal and brings back just enough stuff that I don't miss Claude Code.
Pi's plugins are its strength, but also its weakness, because most feel more like personal vibe-coding projects than seriously maintained tools.
11 hours ago [-]
wasting_time 1 days ago [-]
So, how are people actually using Pi? Here I am with Claude Code and Codex in a terminal like a caveman.
calebkaiser 1 days ago [-]
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.
hermannj314 19 hours ago [-]
I am using pi the same way everyone uses Codex and Claude, but pi makes it very simple to make folders to make the agent behave a certain way and that was easy for me to understand.
ChatGPT Desktop seems to intentionally hide what they are doing and where they are storing state, sessions, config, I never had any idea what is in context or what "archiving" even means. I got sick of OpenAI hiding how ChatGPT Desktop was working. I opened pi and the default behavior shows me how much context I am using, how much that costs and tells me where it stores my session data.
Suddenly it was all demystified and that is why I use pi. It has nothing to do with a functional gap, it was the joy a using a harness that was transparent about how it worked.
sagarpatil 19 hours ago [-]
Everything is stored locally (expect cloud runs) in ~/.codex
It lists down everything: conversations, skills, prompt plugins, mcp, conversation history.
ramonga 8 hours ago [-]
+ codex backend is open source
ew-dev 16 hours ago [-]
Don't give into FOMO.
Developers just love to spent considerably amount of time and effort into building tooling. Way more than working on the actual products.
But I must admit it is really fun to build your own harness and tweak it to your liking, even if it is never used for professional work ;-)
dozerly 15 hours ago [-]
I use Pi because I fundamentally believe that inference providers are not the correct providers of harnesses. Their incentives are not aligned, and inevitably Claude and codex will continue trying to lock you in to get your inference spend.
grim_io 11 hours ago [-]
Yeah, better pay higher margin API prices. That'll show them!
ImaCake 10 hours ago [-]
A lot of us aren't actually using enough tokens to reach the value add of a $20USD/month subscription versus just paying for the API. Without even mentioning the chinese competitors, you can get a lot of tokens for $10 of ChatGPT Luna, which is more than capable of solving the kinds of problems I have at home (where I use hermes harness).
dozerly 6 hours ago [-]
At work it’s all api pricing.
toadi 16 hours ago [-]
Writing my own harness with the workflow I prefer. I pull jira tasks in local task manager(aven). My harness will oneshot it or create a spec plan with multiple linked tasks. Implement it with creating git worktree, task by task, codereview with 2 different reviewers, PRs it, reviews peoples comments replies or fixes and check sonarqube and fix if needed.
Manual tests in my minikube and has skills to deploy the right service there. It updates the jira ticket with test proof.
For debugging flows I build skills to use my local minikube that has our full dev environment and all services running. Can debug there. It has grafana skills for gcx can grab logs and through grafana even accesss dev/staging db for quering.
I wrote all the extensions with these custom integrations. It works just like I would work... I don't like adapting myself to another opinionated harness. I prefer my own opinionated workflows.
jmcdonald-ut 23 hours ago [-]
I've only used it at home a little on personal projects. My usage is probably odd -- I connected it with Bedrock, but otherwise used it the same as I do Claude Code (mostly). My basic flow was simple:
- Ask it to accomplish some coding task
- If it fell short, and I determined that was due to the harness, ask it to patch
- Otherwise proceed to next task
- Rinse + repeat
I run it within a sandbox, so I've been comfortable with the lack of native "approvals". So far my personal usage hasn't really needed subagents, but I think this is one thing I'd need to sort out were I using it professionally[1]. I'm aware of oh-my-pi, but I think half the fun is hacking from the base.
The light weight prompt and simple harness design are a lot of fun. I don't mind Claude Code, and I think its well designed for the problem domain, but Pi is a lot of fun to hack with.
I use PI WEB (https://pi-web.dev, there's more than one with that name) to orchestrate remotely. Pi lets me run local models (currently Qwen 3.8 Flash Next on Strix Halo 128GB) and flagship models (with subscription auth, not API pricing) side by side. I typically ask GPT 6.1 Sol to review requirements and then spawn a subsession with Qwen, review Qwen's work, ask Qwen to fix. About 95% success with a single pass like that, achieving flagship quality without the price tag (albeit slower).
I started using Pi because it has a small system prompt and local models were too slow to start. Then I started adding custom skills and extensions when I hit little corner cases. It's been so easy to bend into what I need.
darklinear 1 days ago [-]
I use pi with a ChatGPT subscription. I find that it does better than the native codex harness:
- it's very token efficient. I've had whole profiling + refactoring sessions finish in <20k tokens, whereas in codex you can get close to that with just all the cruft OpenAI loads by default before you even send your own messages
- the token efficiency means turns are a lot snappier
- fine-grained context control by default - I have to disable a bunch of stuff in codex so it doesn't pollute my context with generated memories
- I find that OpenAI model sometimes struggle to navigate codex' sandboxing, and burn a bunch of tool calls retrying outside the sandbox when the sandboxed command fails
culopatin 19 hours ago [-]
I gave up on these things thinking that you always needed an API. How does it work with subscriptions?
coopykins 17 hours ago [-]
Codex generally lets you use the subscription with 3rd party agents / harnesses.
ON the PI 1.0 you can directly use the openAI log in to hook up your account, so it should be pretty straight forward. I haven't tried myself yet.
kccqzy 7 hours ago [-]
Claude subscriptions require usage credits IIRC. OpenAI is more generous and allows the use of the actual subscription.
clickety_clack 1 days ago [-]
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?
GreenWatermelon 4 hours ago [-]
It works ok and good by default. You start using it as if you'd Claude or Codex, the when you find yourself missing a feature, you get an extension for it or you ask an agent to make it.
For example, I started using it, wanted a plan mode, downloaded an extension for it. Wanted to be able to analyze token usage for turn in a session, I had an agent create an extension for that. Then I wanted a custom status bar, so I had an agent implement an extension for that.
You use it, then something bugs you, then you find an extension that solves the problem, or tell an agent to fix it for you by making your own extension.
It's kinda a tinkerer hobby IMO. I like the freedom, but at the end of the day, it's still just a harness.
Juvination 1 days ago [-]
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.
avazhi 23 hours ago [-]
Thanks, you didn’t answer his question at all.
scott01 23 hours ago [-]
This was a response to a request for tips, suggesting oh-my-pi.
darklinear 1 days ago [-]
I run it with a single extension to give it web search access, and then I have a few skills for reviewing and planning. You really don't need that much IMO
tempoponet 1 days ago [-]
lazypi has a sensible default collection of plugins and configs to get started
lofaszvanitt 23 hours ago [-]
If you can't find a use for it, then don't use it. So easy. 99% of AI related things are mostly hype and totally useless. Adult childrin having their shiny new gadgets make them feel 14 year old again and again.
This harness also burns a lot more tokens than Pi, which sort of kills the minimal philosophy/system prompt that Pi came from.
CharlesW 24 hours ago [-]
That the "batteries included" bit, but it's not "burning tokens" in the sense that using Pi with the same batteries would (of course) use just as many. I can strongly recommend omp.sh if you just want to be up and running without hassle and a far better (for me) developer experience.
rpdillon 21 hours ago [-]
Yeah, saying it kills the minimalist bit misses the point of omp being a separate project. It took a minimalist-base of pi and added tools that make it usable out of the box. Hence batteries.
One example here is that it added MCP extensions to make the harness usable with MCP servers long before Pi figured out that that was the right move. A lot can be said about development of MCP over that timeframe, but I appreciated the bias towards adoption, since progress is driven by empirical experimentation rather than theory in this domain right now.
I've long championed assembling developer tools yourself from scratch and I've been an advocate of vanilla Emacs and customizing it yourself as an ideal developer experience (I realize this opinion is controversial). But OMP is essentially the VSCode to pi's Emacs.
I ended up choosing omp as my daily driver, mostly because I see the velocity of change in AI development being far too fast for me to make a worthwhile investment into customizing the environment myself, since that investment will have a relatively short half-life. With Linux, which I learned more than 30 years ago and still believe to be a fantastic investment, I can largely use the same knowledge I gained then to administer systems today. I fear that much investment in the specific tools that I add to my pi harness will expire before 2027. So I'm sort of drafting OMP until things settle down.
razster 1 days ago [-]
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.
rpdillon 21 hours ago [-]
OMP provides a significant amount of structure to the work. That costs some tokens in terms of the system prompt. When I use these systems, I balance the return of the extra guidance in the system prompt with the cost of the context. You've talked about how much context it takes, but you haven't talked about any difference in behavior.
omp offers some nice tools, like /shake, to manage context efficiently and offset some of that consumption.
Not sure about your point with command keys. OMP has all kinds of shortcuts and is highly configurable. It seems very unlikely that you cannot achieve what you're looking for in OMP in terms of shortcuts. Specifics would be immensely helpful here.
And yeah, you'll need to run your inference engine separately from your harness, for the same reason the web server and the web browser are different applications.
rurban 19 hours ago [-]
Still less tokens than claude, with better results. And far less wrong edits
xboxnolifes 1 days ago [-]
Pi with extensions included is always going to burn more tokens than pi without extensions, no?
arcanemachiner 1 days ago [-]
Not if the extensions don't add any tools or modify your system prompt. :)
Hell, some extensions could theoretically lower your token burn. (Like rtk, if it actually worked.)
miroljub 1 days ago [-]
What's the use of extensions without tools or prompts?
arcanemachiner 12 hours ago [-]
I have one that stashes/pops a single prompt, like Claude Code's Ctrl+s feature.
I have another one that allows you to edit the items in your Pi /tree history.
Some permission manager extensions also sit between the model and the harness, and don't actively change the tool or prompt info.
I probably have more, but you get the idea.
agentdev001 24 hours ago [-]
A cup holder doesnt make your car go faster.
ZeWaka 19 hours ago [-]
The coffee prevents you from falling asleep at the wheel and crashing, however.
kelnos 14 hours ago [-]
If you're that tired that you need coffee to stay awake, you absolutely shouldn't be driving.
orsorna 23 hours ago [-]
I am wondering what use people get out of this. What I like about pi is that, using proprietary harnesses to begin with, I already somewhat know what kind of features I use and features I wish I could use. Asking pi to self modify itself (with a smart enough model) is a one time cost for a fully vetted feature that I personally approve. Do users of OMP find all of its additions useful?
pornel 23 hours ago [-]
Yeah, Advisor and "time-travelling rules" (TTSR) work great (they're injecting corrective prompts automatically either via another critic LLM or a bunch of regex rules, respectively)
It automates a lot of the babysitting of agents, and lets me use a couple of smaller models with safeguards instead of burning tokens on a galaxy brain just because it listens to instructions in AGENTS.md.
alostpuppy 22 hours ago [-]
I’d love to know more about the time traveling rules. How have you used them?
pornel 9 hours ago [-]
Blocking slop code, like `unwrap_or_default()` in Rust that agents use to weasel out of error handling.
/omfg automatically adds new rules, so I have plenty of project-specific enforcement (e.g. disallowing making certain fields public, which agents love to do to take a shortcut that ruins the architecture).
what 22 hours ago [-]
It’s the same kind of people that would use omz, they probably have no idea what 90% of the batteries are or do. But it sure makes them feel smart and cool.
bayesianbot 1 days ago [-]
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.
1 days ago [-]
ZeWaka 1 days ago [-]
very happy with omp
jLaForest 1 days ago [-]
This is what I use, very happy
whiteblossom 1 days ago [-]
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
unsnap_biceps 1 days ago [-]
Which models are you finding the most success with?
whiteblossom 1 days ago [-]
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.
Asooka 17 hours ago [-]
What does a "script" mean in this context? Like a Python script that runs a series of agents with small tasks? I'm still getting used to doing things with AI, this is all very new to me.
hypercube33 1 days ago [-]
I have more beefcake machines and Qwen 4.6 36B has been awesome for coding. Its fast for a local model, seems to get a lot right most of the time, just its slower than OpenAI/Claude/Cloud Hosted stuff since I dont have a 24GB+ GPU (I have Strix Halo and a 12GB GPU)
vhantz 18 hours ago [-]
How many token/s do you get with that setup?
ritzaco 1 days ago [-]
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).
alexfortin 14 hours ago [-]
I've been using Pi almost exclusively as coding agent in various forms since more or less January this year (I think). I settled quickly for a short list of extensions (which I wrote and I maintain) and a few skills/shared AGENTS.md, also installable as extension: https://forge.l3x.in/alex/pi-shared
For one thing I've re-built my personal website with it (mostly via GH issues from GH iOS app) and also added a section to talk about how I use AI in general: https://a.l3x.in/ai
I also maintain a couple of other Pi-related projects:
So yeah, I still love the tool and use it pretty much every day, either as TUI sessions or inside CI/CD workflows.
Long live Pi!
razster 1 days ago [-]
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.
nvarsj 9 hours ago [-]
Pi is the "I use arch btw" of harnesses right now.
But I do love it - super customizable, and my token usage seems way more efficient (this is purely vibe based ofc) compared to codex/cc.
I basically just install pi-fabric, pi-blackhole, grill-me and that's it. Tell my AGENTS.md to prefer subagent workflows. Herdr to manage all the terminals. I spend 99% of my professional work in this environment, I can't even remember the last time I had to open vscode/nvim.
NichoPaolucci 8 hours ago [-]
I'm using Pi with Herdr as well right now. It's been quite nice. (I use the organization similar to projects for the Claude / Codex GUIs).
Herdr is OK - but the actual interface / layout is nice. I previously would have like 6 terminals open and would lose track of which was which. I'm not super into the subagent workflows, but it's been helpful a time or two.
The only reason Herdr is just OK is because using agents to collaborate will sometimes just hijack my prompt input field. Maybe I'm using it incorrectly but I would have thought they might have a more elegant solution than that.
girvo 1 days ago [-]
I use Pi in the terminal and with Zed (with its "right hand side" terminal bar you can make its agent panel do), and I use it with Pendant in VSCode at home: Pendant is really quite impressive, I'll be honest.
eddieroger 10 hours ago [-]
I mostly use Pi, with the small exception of using Claude for some more intense coding projects. But for everything else - homelab playgrounds, data stuff, really almost anything else - it's Pi, and I'll probably move my code work there, too. I have a handful of extensions that I like and make it more useful for me, and really like the simplicity of the TUI over some of its competitors.
BeetleB 1 days ago [-]
You just type "pi" in the command prompt and you're good to go!
The only thing I've configured is the default model.
pavo-etc 23 hours ago [-]
I've put it into an XMPP wrapper for all communications so I can talk to my agents from any device supporting XMPP (all devices). This also means agents can talk to each other using group chats. I'm building apps from my phone on the bus, and handing off server admin tasks to the agents since they run in their own NixOS account with limited permissions.
stankondrat 13 hours ago [-]
Hi, I do it the same way.
Did you write your own XMPP plugin, or did you use pi-xmpp package?
I built https://rcarmo.github.io/projects/piclaw atop it. It's pi, but with a web UI I use every day, across dozens of agents, and has pi-based add-ons. I do use the TUI on occasion, but need a remote web UI for 99% of my stuff.
avazhi 23 hours ago [-]
Ten people have replied to your question (which is the same question I have) and not one of them have answered it so I figured I’d be number 11.
Like, is this thread full of astroturfing bots? What am I reading
igleria 16 hours ago [-]
I'm running it on a docker container that only has mounted a folder from the host os. been playing around with godot and blender. still looking for a good workflow, but pi is lovely.
didibus 1 days ago [-]
Pi is popular for local-models/alternate-models. It's not much different from Claude Code and Codex otherwise.
lo5 1 days ago [-]
I use Pi with only a couple of extensions and using less and less of CC and Codex everyday. It feels light and nimble. Codemode from yesterday's release made it even better. I wish I could use my Claude subscription via Pi.
rurban 19 hours ago [-]
You can. Pi has the most possible subscriptions of all
para_parolu 22 hours ago [-]
I built and “ide” around it in obsidian. Works great. And I don’t need to jump between apps to change models. Astra and opus in same chat works just fine
pettijohn 21 hours ago [-]
Open source? Neat idea.
juanre 1 days ago [-]
Absolutely. Fellow caveman here, and a fan of Pi. I often use it with Astra instead of Codex, because its extensions allow you to connect it to the world. And it works very well.
pizzafeelsright 1 days ago [-]
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.
_pdp_ 14 hours ago [-]
I did not make this but I am using it ... and so far happy user. I think Pi is supported.
But yes, the TUIs are supposed to be lightweight yet it is overall a horrible experience.
sroerick 1 days ago [-]
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
andix 1 days ago [-]
Exactly like that. Just install it, connect a provider and do stuff.
You don’t need extensions or fancy setups.
gedy 1 days ago [-]
> 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.
mixermachine 16 hours ago [-]
Pi with Caveman Plugin :D
nfRfqX5n 1 days ago [-]
Using models from multiple providers via aws bedrock
r14c 1 days ago [-]
I use workmux with pi plus some neovim plug-ins
tamimio 1 days ago [-]
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.
sergiotapia 1 days ago [-]
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. \
igorbark 1 days ago [-]
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 ¯\_(ツ)_/¯
esafak 1 days ago [-]
I use it headless for reviews in CI.
stefan_ 1 days ago [-]
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.
octoberfranklin 20 hours ago [-]
Extensively, almost as much as I use my editor.
I have eight or nine custom extensions at varying levels of maturity, some nearing the point where sharing them becomes useful.
One is a simple but obvious Eoka extension for Pi.
I modified my terminal (Alacritty) to support the Kitty image protocol (it already spoke sixel; Pi understandably uses the superior Kitty protocol). And a toolcall that lets the LLM put an image in the transcript (upstream Pi lets only image-modality LLMs do this). "Deepseek, do XYZ in a headful Chromium using Xvfb and show me a screenshot before each step".
Once you see the immense power you get from being able to modify both ends of the terminal connection (and having LLMs write the tests and tedious parts for you) it's addictive. I've added a custom terminal extension for negative-row-number cursor positioning, and support for it on both sides of the connection (Pi and Alacritty). End result: all the performance of native scrollback with no compromises -- Pi can modify rows above the top of the visible part of the screen, like collapsing/expanding toolcalls, without forcing a full-terminal refresh.
Disappointed that Pi is abandoning the minimality philosophy.
jacobgold 1 days ago [-]
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.
pkulak 1 days ago [-]
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.
1 days ago [-]
jacobgold 1 days ago [-]
You're inferring things I did not actually imply.
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.
w-ll 1 days ago [-]
What do you suggest for a GUI agent multiplexer?
jacobgold 1 days ago [-]
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.
bibstha 1 days ago [-]
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.
hakunin 21 hours ago [-]
Paseo allows you to start a daemon from command line, thereby passing your ENV credentials to the daemon from, say, your 1Password-based env. Then both local Mac GUI and their native iPhone app (through Tailscale) can connect to this daemon. This is the most ergonomic local and remote setup where I can start a session on my Mac and continue on my phone or vice versa, with any agent: Pi, Claude, Codex, OMP, all natively supported.
No affiliation, just arrived at Paseo after a bunch of research.
sidrag22 1 days ago [-]
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.
redhed 1 days ago [-]
Yeah I also created my own TUI one and only took a couple days. Using it less now though because the models have gotten pretty good at spinning up their own agents.
techscruggs 1 days ago [-]
I like Orca
fancy_pantser 1 days ago [-]
zed.dev is like Orca, but lightning fast and fully multi-player (both AI and humans)
ninininino 1 days ago [-]
t3.codes
cursor.com
conductor.build
code.visualstudio.com w/ Claude Plugin or equivalent plugin
zed.dev
there are dozens tbh
techscruggs 1 days ago [-]
thats not a suggestion.
AgentMasterRace 22 hours ago [-]
none of these are multiplexers
flaburgan 5 hours ago [-]
Not sure what "multiplexer" means in this context but Zed allows to switch between agents thread with a side panel and that works very well
trefoiled 1 days ago [-]
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.
mattm 1 days ago [-]
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.
Aperocky 1 days ago [-]
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.
manav 1 days ago [-]
What do you use
phoghed 1 days ago [-]
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.
holbrad 1 days ago [-]
I was under the impression that GitHub Copilot was much more expensive because you're always paying API rates?
phoghed 22 hours ago [-]
Enterprise pays API rates everywhere afaik. Our Claude Enterprise is pay per token too. Maybe some volume deal idk.
AgentMasterRace 22 hours ago [-]
it's expensive as hell
jwpapi 1 days ago [-]
what advantage do you have with a gui multiplexer over the terminal?
ew-dev 16 hours ago [-]
You can burn a lot more tokens very quickly for the illusion of increased productivity ;-)
utilize1808 1 days ago [-]
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.
threecheese 1 days ago [-]
It's table stakes for using Anthropic APIs cost-consciously. They aren't building a minimal harness for nerd points; they are building it to be usable, and dogfooding it with Real Money to learn what that means realistically.
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 :)
mixermachine 16 hours ago [-]
Copied from myself above:
That goes against the philosophy of pi. Nearly Everything is a Plugin.
Need to set the reasoning effort? Install pi-reasoning.
Need subagents? Install pi-subagents.
Need permission gating? Install one of the permission extensions (otherwise the agent can do everything).
A feature like cache warming on Anthrophic feels very strange in this environment. NOT saying that it is not useful. It just should be a plugin.
endinator 14 hours ago [-]
That's your philosophy of pi and it seems you are taking it from deepseek. It's stated that pi wants to keep the agent loop minimal, not the code around the harness. Also those extensions in pi can sometimes be very bad, as it depends on the maintainer. And when it comes to cache handling of the best frontier coding model, it's much better that pi itself maintains it rather than some rando online.
kelnos 14 hours ago [-]
Changing the reasoning effort is built in and doesn't require a plugin.
tcdent 1 days ago [-]
Yeah, it's such a subjective feature. I don't really worry about the five minute timeout, but sometimes if I'm conscious about the fact that I have an 800k token context window that I haven't interacted with for a day, I will switch to Opus for compaction and then back to Fable for interaction.
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.
ruined 1 days ago [-]
because "i came back from lunch and my fresh 5h usage limit evaporated" is not a feature
i guess you could blame the api, if you wanted.
utilize1808 1 days ago [-]
What 5h usage limit?
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.
shepherdjerred 23 hours ago [-]
It’s not reasonable to ignore one of the biggest players in the space no matter how much you disagree with them
mixermachine 16 hours ago [-]
That goes against the philosophy of pi.
Nearly Everything is a Plugin.
Need to set the reasoning effort?
Install pi-reasoning.
Need subagents? Install pi-subagents.
Need permission gating? Install one of the permission extensions (otherwise the agent can do everything).
A feature like cache warming on Anthrophic feels very strange in this environment.
NOT saying that it is not useful.
It just should be a plugin.
utilize1808 14 hours ago [-]
I not saying Pi should ignore them. I am saying that for a coding agent that has been advocating leanness and minimalism and "everything is a plugin", it's outlandishly bazaar for them to include this specific functionality into the agent proper.
what 23 hours ago [-]
It is actually reasonable to ignore them. It should be plugin/extension you can install if you want.
jonwinstanley 17 hours ago [-]
ChatGPT Work mode is the one with a 5 hour usage limit I think
Hamuko 19 hours ago [-]
Anthropic's API has a five-hour usage limit?
ltrg 1 days ago [-]
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.
That looks interesting, built it (took seconds) and it is much smaller than Pi in terms of what it needs to work (when i installed Pi in a fresh Debian container it downloaded ~500MB of stuff, which isn't exactly what i had in mind when i read it is minimalistic :-P but it is a container so i didn't care much).
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).
badsectoracula 21 hours ago [-]
FWIW the compaction had failed again, so i used Pi with the same prompt, same model, same config to compare. The prompt was "check the current directory" followed by "analyze the code and give me a report in `CODE_REPORT.md` on how it works (also a brief report here). Make sure to update `CODE_REPORT.md` frequently (i.e. every time you analyze a file) to avoid context loss from context compaction".
Pi ended up hitting a compaction during a tool call and finished without issues, which is what i expected - in fact after giving the instruction i left to visit a relative since i expected it wouldn't need me to babysit it.
FWIW after it finished, i asked it the following:
---
Can you answer me the following questions about how Hax manages the context?
1. How does Hax handle running out of tokens? It does have some form of compaction, but if the compaction fails for some reason (e.g. the summary ends up needing more tokens) what does it do?
2. Can it handle cases where the context runs out of tokens during tool calls and if so, can it recover? How?
3. What happens with compaction if an LLM produces a few large responses or the LLM reads a few large files? Does the process ends up summarizing the entire (or all but one) conversation? Or is the entire conversation lost?
4. Are there any safeguards in place to avoid overwhelming the LLM? For example any file and tool output limits? If there is and any limits are reached, how does it handle them?
---
It went on and checked the code and, briefly the response (it was bigger but i don't want to repeat the entire thing):
1. It doesn't update the session on failure (last "good" session is kept), running out of context is treated like any other error without any automatic recovery and you're expected to fix it by hand (personally i'm not a fan of this).
2. Multiple tool calls are fine (there is a 85% threshold check to trigger compaction and a 50k tool result limit) but if a response and results jumps from below 85% to over 100% despite being under the 50k limit, it doesn't trigger any compaction and the next request is denied by the provider (i.e. llama-server). I have a feeling this is what i hit when i tried Hax with its own code.
3. There is no recovery from a user turn (prompt + response + tool result) that exceeds the window. FWIW this also seems to be the case with Pi.
4. It found a bunch of safeguards (tool output cap, caps in bytes and lines for the read tool, bash writes to a temp file and only a part of it is sent to the LLM, edit size cap, etc). AFAICT it is the same as Pi with one neat addition in that there is a default 2 minute timeout for bash calls (i've seen the LLM more than once run a command in Pi and end up stopping for 30+ minutes because the command wouldn't end).
For 3 i asked it a followup question: "About 3: AFAIK Pi (the harness you're on right now) does a "spit" summarization where the old messages are summarized up to a cutoff/split point and replaced with the summary while the newer messages after the cutoff/split point remain intact, which allow a mostly seamless transition between compactions. Does Hax do the same or something similar?"
The response was that, no, it doesn't, it summarizes the entire context. Which TBH is a bit of a dealbreaker for me since i often rely on this "seamless" continuity in my prompts and feels like the main reason why compactions feel like a non-issue with Pi.
Take the above with a grain of salt, i only checked the code for the compaction not using a split/cutoff point between older and recent messages, the rest are whatever Qwen 3.8 27B understood, but they do match my short empirical test. Also if my own understanding of the code is correct, it seems to be using the same system prompt for the summary as for regular/interactive use while AFAIK Pi uses a dedicated "you're an expert summarizer" (or something like that :-P) prompt. Not sure if it makes much or any difference, with LLMs being what they are, but TBH whatever Pi does works great IME.
On the other hand the idea of a self-contained native AI harness in C/C++ is enticing, especially one that doesn't have any network traffic outside of LLM-related stuff[0] and explicit user requests (Pi does try to autoupdate and has a separate opt-out telemetry beacon - both of which are disabled in different means, one via environment variable and another via a setting, which smells a bit like an dark pattern to me).
Anyway, this is the result of my findings about Hax. It is neat, but TBH the context handling is the main dealbreaker for me, especially since i'm often having the agent do something in the background (using a local LLM isn't exactly the speediest workflow) and do other stuff or leave the computer alone, so the last thing i want is to babysit the agent for errors. Pi's split summarization and context overflow handling seem to work much better.
For now i'll probably stick with Pi (i have autoupdates and telemetry disabled and i hope there isn't any other hidden snitch in place) and perhaps at some point i'll do the NIH thing and make yet another agent myself :-P
[0] well, it does attempt to autoconnect to a potentially running llama-server in localhost without being explicitly told to do so (Pi wants explicit configuration) but meh
tingletech 9 hours ago [-]
I use it with a local Qwen3.8 27B on llama-server, but I don't know what it means for it exceed any window.
you can use /slots on the llama-server if you want to get more up-to-date details on session token use.
I always run models in their default context, which is 262144 for Qwen3.8 27B. I've run sessions in hax where it hit that cap multiple times and compressed the context down to 15% and continued with no problem.
capocasa 16 hours ago [-]
Or for something not quite as bare bones- batteries included and tested for token consumption- https://3code.capocasa.dev
k__ 13 hours ago [-]
"Terse output is a design decision in 3code; pi's chattier reply style is a design decision in pi."
Can you elaborate?
What are the decisions that lead to this difference and what are their pros and cons?
I noticed Pi being chatty, but I assumes this was a model issue (DS4.1F).
aquariusDue 16 hours ago [-]
Nice! I've seen it around on the Nim forums. Is it terminal only or do you plan to make use of Nim's JavaScript backend at some point to make a web UI too?
capocasa 15 hours ago [-]
Thank you!!! And thank you for your interest!
Yes- I plan to make a a full web app, as well as a web-and-terminal orchestrator app. Still planning the details.
Yeah I think Pi just abandoned the prize and hax is the heir apparent.
Pi's selling point used to be: no MCP, native scrollback.
Now Pi is a fullscreen TUI with built-in MCP.
exe34 1 days ago [-]
It says "local models" - do you know if it makes any special effort to fit work within a small context window?
ltrg 1 days ago [-]
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.
heavensteeth 11 hours ago [-]
I'm not sure I understand the "minimal"/"small core" branding Pi is using. It's 450,000 SLOC and has at least a dozen direct dependencies, which I'm sure explodes into hundreds of indirect ones. It also depends on NodeJS/NPM.
eddieroger 10 hours ago [-]
Minimal to Pi isn't lines of code, it's everything else. Pi comes with four basic tools (read, write, edit, bash) and the ability to read its source and build more. So when other harnesses were building TUIs with window analogs and integrating MCPs (which I read yesterday that Pi is changing it's opinion on), or LSPs, or subagents, or web browsers, etc, Pi comes with none of that, and you add what you need. It's much lighter weight in that way.
Although if you want to compare sloc, a quick Google returns that OpenCode is ~670k sloc, so it's smaller there, too. But the real advantage is the prior one.
randbyte 7 hours ago [-]
Half a million loc to do the basics feels like highly inefficient. Pi 1.0 also turn on the “fullscreen” tui by default… it’s becoming more and more like opencode.
ChaseRensberger 10 hours ago [-]
not as complete as Pi yet but ive been working on https://wingman.actor, a different take on a lot of this stuff, written in Go, minimal dependencies, etc...
1ahf-qzwt 1 days ago [-]
The vibe-coded earendil.com uses 150% CPU for a static web page, whereas the luddite website news.ycombinator.com uses 1% CPU.
Maybe spend $100,000 in tokens to fix that.
micromacrofoot 1 days ago [-]
it's not static though, it's got a cool animation
azuanrb 1 days ago [-]
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!
lukebuehler 1 days ago [-]
I think you should look into Pi Durable wich was just released right now too. seems like it is made for your use-case.
cannonpalms 21 hours ago [-]
Stateful Kubernetes is a royal PITA. I would just throw stage into object storage and call it a day.
cyberpunk 3 hours ago [-]
This was true maybe 8 years ago when all we had was buggy ceph drivers; but now the integration with the various cloud EBS-alikes is pretty good/seamless. VolumeSnapshots, WaitForFirstConsumer (so you're allocating in the right AZ as your STS comes up, etc etc).
It's really not all that bad anymore. I'll take going to any client and having roughly the same storage setup anyday over the hell that was the mix of enterprise sans we used to have to deal with.
zmmmmm 22 hours ago [-]
I love Pi but I am sceptical of their claim to minimalism. New tools often make such claims as an excuse for not having a lot of features. You didn't want those features anyway! As they mature, the features and complexity creep in and before you know it, the pitch changes to more of a full stack one.
I don't mind though, because I think either way it leads to a better design under the hood when things are built to be modular.
ecocentrik 18 hours ago [-]
It's not minimalistic in the way you're suggesting. Their are tons of extensions listed on pi.dev that give you all the extra features you could want. You just don't need them. The harness is very capable with just the 4 primary tools. The minimalism is a claim on the harness architecture, not the number of lines of code or the capabilities of the harness.
girvo 1 days ago [-]
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.
Zambyte 1 days ago [-]
What hardware do you run Qwen 3.8 Flash Next on?
solaire_oa 24 hours ago [-]
I also run Qwen3.8 Flash Next "locally at home", on a Framework Desktop, so Strix Halo and 128GB... we're not talking laptops, exactly, if that's what you wanted to know.
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.
girvo 24 hours ago [-]
A DGX Spark-like, the Asus GX10. I’m kicking myself that I didn’t buy a second one when I thought about it months ago, but Nvidia’s NVFP4 quantisation of Flash Next and offloading the ngram table to NVMe has worked well
rsolva 15 hours ago [-]
I run Qwen3.8 Flash Next on 2x Sparks at $WORK and it has been great! It can run 16 concurrent sessions with decent speed (~30-40 t/s per session) and can hold 8 full 256k contexts in cache. It has turned out to be a great production setup for our company.
I have a half finished repo that sets it all up for production (using systemd, not hacky scripts and one-off docker commands), if someone is interested in this, tell me, and it might give me the push to actually finish up the latest threads and publish it!
aliasxneo 1 days ago [-]
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.
roger_ 1 days ago [-]
Paseo is great and has mobile notifications but it’s not as polished as omp web.
aliasxneo 1 days ago [-]
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.
asar 11 hours ago [-]
if you're using herdr/tmux/zellij you could give https://colliepwa.dev a try, its a mobile interface i built to interact with agents on the go.
stavros 23 hours ago [-]
Do you have a link to OMP web?
jszymborski 1 days ago [-]
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.
dolebirchwood 1 days ago [-]
Just curious: What do you specifically like about oh-my-pi vs. OpenCode?
pornel 23 hours ago [-]
Subagents in OpenCode suck. They're blank-slate black boxes that block execution.
OMP spawns agents asynchronously, letting the main agent check on them periodically and even chat back and forth with the subagents to coordinate dynamically instead of losing control after initial prompt (it's also very amusing, like watching Sims play office).
OMP also has /tan tangential prompt which spawns subagents that reuse entire conversation prefix (cached), so you don't waste tokens on sending them a recap of the situation and them re-discovering the codebase themselves. OpenCode kinda does it with fork + switch of sessions, but a command inside one session is quicker.
Footprint0521 21 hours ago [-]
How do you use omp with subagents and not burn through credits? I tried using orchestrate and it drained my wallet… I didn’t know about /tan though, that is sick
pmoriarty 1 days ago [-]
I had a really bad experience using OpenCode with Ox Alpha (when it was a stealth model on openrouter), with the model making countless mistakes. Then I tried omp with the same model and it was a million times better. I haven't looked back.
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.
jszymborski 1 days ago [-]
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.
svintus 1 days ago [-]
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).
smokel 1 days ago [-]
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.
slickytail 1 days ago [-]
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)
athrowaway3z 17 hours ago [-]
The "why" is probably that they're getting lots of bugs about flickering and scroll jumping in different set-ups.
saagarjha 1 days ago [-]
Yeah I’m hoping that they don’t remove or devalue the (now legacy) renderer
bel8 1 days ago [-]
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.
nfriedly 11 hours ago [-]
I really like Pi, especially for when you're running a local model and your context is particularly limited. But even when running a big model, I think building up your environment to be exactly what you want can be really powerful.
When I was first getting started and didn't realize that ollama defaults to incredibly tiny amounts of context, Pi was the only harness that actually worked because the rest of them used up all of the context and then some with the system prompt. However, these days I've figure out llama.cpp and proper context sizes.
OpenChamber has been the real game-changer that caused me to switch back to OpenCode, though. I love being able to check in on it from my phone, a browser, etc. instead of having to be at my computer to get anything done.
hhh 1 days ago [-]
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.
Zambyte 1 days ago [-]
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.
prometheus1992 1 days ago [-]
>>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.
alex7o 1 days ago [-]
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.
Foobar8568 1 days ago [-]
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...
alex7o 1 days ago [-]
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
luipugs 1 days ago [-]
Stage a coup to usurp your boss.
mrkn1 1 days ago [-]
If you want something even lighter than Jev to compare against, there's also gutsy (https://github.com/kouhxp/gutsy) runs on CPU
peab 1 days ago [-]
the only thing novel about Jev is the incredible PR/Marketing push that they achieved
vinhnx 15 hours ago [-]
I built VT Code in Rust for similar reasons. Single binary, low runtime overhead, with extensibility mostly handled through MCP.
What’s the earliest classification model you know of?
doormatt 1 days ago [-]
Frank Rosenblatt introduced the Perceptron in 1957–1958.
tel 21 hours ago [-]
Probably some kind of agricultural taxation scheme from 2000 bce or so.
Or Fisher in the 1930s with data driven linear didcriminants.
strangecasts 1 days ago [-]
[dead]
charcircuit 1 days ago [-]
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.
the_mitsuhiko 1 days ago [-]
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.
charcircuit 1 days ago [-]
>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_mitsuhiko 1 days ago [-]
> 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.
And yes, that's why there is no Jev tool in Pi either.
pkulak 1 days ago [-]
Sure, but some things are too low-level to be skills or extensions. Code mode seems like that to me.
charcircuit 1 days ago [-]
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.
coldtea 1 days ago [-]
The agent code is minimal. What it supports doesn't have to be, when that support doesn't require much of it.
BeetleB 1 days ago [-]
> 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":
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 (edit the durable part) is I guess the natural evolution of playing around building temporal like things for a need that many have.
the_mitsuhiko 1 days ago [-]
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.
octoberfranklin 20 hours ago [-]
and we're not here to influence their behavior
That is totally disappointing.
rsalus 1 days ago [-]
the latest 07-28 MCP spec is quite different than the previous iterations of MCP, so I understand the delay there tbh.
extr 1 days ago [-]
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?
Aperocky 1 days ago [-]
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
ryanisnan 1 days ago [-]
Human judgement is a thing.
andix 1 days ago [-]
Yeah, they are a small team, they just take a decision. Done.
sid_talks 16 hours ago [-]
I have been using OpenCode for most work related stuff now. It works well with my ChatGpt Pro subscription as well as with our locally hosted Qwen3.8.
Is it worthwhile to spend time and effort into setting up and switching to Pi? I always see people praising Pi online but I am curious to know from people who switched over from OpenCode why they did so and what I am missing.
eloisant 15 hours ago [-]
Yes, I switched from OpenCode to Pi and never looked back.
What's great with Pi is that it's very easy to extend, because it knows its own doc. So you tell it "implement a plugin that does this" and it does it directly in its own folder.
That means I have a plan mode that works exactly the way I want, I have a hook that cleans up added comments after each change, I can ask "pull this github PR and assess the comments", etc.
weitendorf 12 hours ago [-]
How does this work in practice? You type /plan and it runs something that got linked into pi, or an interpreter that can run stuff and also print back out to the terminal?
I've been avoiding investing in these kinds of tools and workflows partially because I don't understand the UX (and partially because I worry UX and tooling will change so fast that I won't get a positive ROI). Your hook sounds like a script, but your plan mode sounds like an interactive TUI, and "pull this PR and assess" sounds like a reverse proxy tool or something?
I can definitely see why the custom plan mode is useful vs just calling a script or asking the model to do something, but what's the draw to building comment cleanup and github API access into the harness vs running the comment cleanup as part of CI, or just asking the model to pull a PR and review it using gh/the web UI/the github api (with no special harness handling)? Does the model get updated with changes you make to files it already read or recently wrote?
The way I normally use coding agents is by giving them a very large task specification in a fresh session with some kind of verifiable exit criteria, and sending them off + staying out of their way. Normally I would just use other sessions or run scripts to do these things because the coding agents I've used queue any /command I give them (very frustrating when you have to wait 30+m just to check usage!) while the model is working, and in my sessions the model is working >90% of the time, so I usually have other terminal windows or applications open anyway.
Mashimo 14 hours ago [-]
> because it knows its own doc. So you tell it "implement a plugin that does this" and it does it directly in its own folder.
Same with opencode, no? It has a default skill just for that.
ropintus 15 hours ago [-]
Pi is like archlinux of agentic harnesses; it's tinkering for the sake of tinkering. I tried it for a few weeks but didn't think it was worth the effort.
manmal 15 hours ago [-]
It’s a decent setup out of the box and you don’t need to tinker.
vincent-uden 15 hours ago [-]
I feel like the models work better in the more minimalist harness. It's totally anecdotal but I feel like the models get lost whenever I run them in OpenCode. Sort of like the "10x"-engineer who overengineers everything.
luijk 14 hours ago [-]
Not anecdotal at all. Context bloat in Opencode pushes models into the dumb zone sooner.
vincent-uden 14 hours ago [-]
I' ve heard so. But I'd still consider my opinion anecdotal because I haven't done any research into the subject (or measured it myself) really. All I've done is tried both harnesses.
platinumrad 1 days ago [-]
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.
bel8 18 hours ago [-]
What I did is to tell LLM to extract the functionality of the plugin I wanted into my own, simplified plugin (ditch settings I don't use, simplify dependencies).
And I ask LLMs to do so without installing naything or running any post install/clone scripts. Also ask them to scan the entire codebase of the plugin for malware or security issues.
This is how I made my own MCP plugin before pi supported it. "Clone this MCP plugin, simplify it and scan for security issues."
distantsounds 1 days ago [-]
"hundreds of thousands" of people are not using this. i want to see the this claim backed up.
Wheen 1 days ago [-]
I think you're right, but in the wrong direction. I'd imagine it's closer to a million.
- 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.
oblio 1 days ago [-]
Millions?
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.
Wheen 1 days ago [-]
It's a dependency of OpenClaw. Everything else aside, that's ~390k likely users minimum due to the auto-starring.
Though, I realize now the "hundreds of thousands" claim I was responding to is per week, while my guess is all time.
oblio 16 hours ago [-]
> It's a dependency of OpenClaw.
True, but I think even OpenClaw usage has falled off a cliff, plus that makes it implicit usage, most OpenClaw users probably don't care either way, it was chosen for them and they probably don't think much about it.
razster 1 days ago [-]
We package Pi w/ Qwen3.6 35B-A3B configures with our software, we're ramping up close to 500 clients, so there is our contribution.
aitchnyu 16 hours ago [-]
What kind of software?
oblio 1 days ago [-]
Awesome, just 999 500 more for the first million!
pessimizer 1 days ago [-]
You don't think that millions of people use vim and emacs? Out of 30-60 million software people?
oblio 1 days ago [-]
No, I definitely do not think millions of people use Emacs or Vim regularly. Vim is used more as it's available for quick config file editing on Linux.
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.
AloysB 1 days ago [-]
It can really vary from one industry to another.
You'd see a lot more Emacs users (comparatively) in academic jobs than, let's say, web development.
As an anecdote, I worked for a network monitoring company, 90%+ of the devs were on vim. Later, I worked in a run-of-the-mill SaaS, 90%+ of the devs were on VSCode.
I'd think that (neo)vim is quite popular. Emacs, less so, that's true.
But according to the Lindy's effect, I wouldn't be surprised if VSCode disappears before Emacs and Vim.
Especially as heavy LLM users are opening their text editor less and less.
verdverm 20 hours ago [-]
npm downloads go brrr from CI and automations, likely many from single users, also matters how often they update
Mashimo 1 days ago [-]
I think openAi said that 40% of their api request come from opencode, claw, pi and similar.
Not a proof, but that makes it sound more plausible, no?
randomperson321 1 days ago [-]
How do you know?
concrete_head 1 days ago [-]
I hear you.
This post and the comments smells like Astroturfing to me.
haukebri 11 hours ago [-]
I did a performance test between pi (agent, not dev) and langgraph a few weeks ago. Since then I am absolutely sold on pi. Clear winner! The "old" tools are not automatically better <3
browningstreet 1 days ago [-]
How do we know how different the code of pi vs opencode vs {commercial harness} is? I’m pretty happy with opencode but can’t quite understand whether I should spend the time to understand how different pi would be.
floydnoel 1 days ago [-]
Pi is very minimal. That's the main difference between it and OpenCode. Although OpenCode has a new version called OpenCode Mini... which reminds me I told Dax I'd give it a whirl- so thanks for the reminder, stranger!
I wrote my own minimal coding harness last year because I hate software bloat, but Pi scratches that itch for me now.
browningstreet 1 days ago [-]
:-)
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.
Yeah I asked Bill Gates what he codes with in our private chat and John Carmack says he used all of them at the same time but only to check his own code while Torvalds told me he only uses it for side projects.
browningstreet 7 hours ago [-]
Nasty. My point was about.. this morning my machine crashed. Pi + Deepseek v4.1 Flash misdiagnosed it, and Opencode + Deepseek v4.1 didn't.
apatheticonion 24 hours ago [-]
Wish Pi (and Opencode, DeepSeek Harness, Claude, Claude Desktop, Codex Desktop) was written in a memory and performance efficient language.
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
redrix 23 hours ago [-]
They actually mention this at the end of their post on Pi Durable[0]:
> Why TypeScript again?
Because it is the easiest way to bootstrap this. But as everybody knows by now, it's very easy to port everything to Rust or assembler. We're not ruling this out in the future, but at the moment we are focusing on TypeScript.
> Why TypeScript again? Because it is the easiest way to bootstrap this.
And when a Linux distro bumps a dependency that Node requires on without updating Node to use the updated dependency, then Pi doesn't start.
bel8 24 hours ago [-]
There are Rust alternatives to pi and folks are welcome to use them.
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.
apatheticonion 23 hours ago [-]
Goose and the Pi rust rewrite are great options - but lag behind big-brand competitors in terms of token usage and generated code.
This is more about demanding more of the big software vendors than it is about making an argument for the general software developer to write programs in Rust or Go.
We are talking about trillion dollar companies with highly paid engineers and unlimited token budgets.
As someone who has been writing TypeScript since the beta and started writing Rust professionally only 5 years ago, I'm about as productive in Rust as I am in TypeScript - so if I were distributing software, I'd want to ensure the end user has the best possible experience and that's hard to achieve with the node/python ecosystem.
"Run this bash script to install my CLI tool" behind the scenes it downloads a full copy of Node.js, installs the npm dependencies, add executable scripts for the entry points, updates PATH. It takes almost a second to start up, has no threads and uses way more memory than is necessary. Extend that to Electron applications which not only bundle Chromium, but also bundle Node.js - that's two v8 engines running and a process that starts with a memory footprint of almost a gigabyte.
Compare that to just downloading a portable self-contained single executable and running it. No package manager, no install scripts - just double click.
The end user is not installing cargo, compiling, or anything - they just run the binary.
bel8 22 hours ago [-]
Those who use a static executable are not the target audience of pi.
It's minimal and intended to be modified.
apatheticonion 21 hours ago [-]
A static executable doesn't prevent program extensibility. You can use plugins just fine. A static executable makes distribution easier (no npm install, runtime versioning, etc)
When was the last time you patched Pi / OpenCode / Claude dist or source code before running it?
Most people use plugins, and native apps have no issues with that.
bel8 17 hours ago [-]
I would need cargo to author my own Rust plugins. I'll pass, thanks. Like I said, most peolpe I know already have node or bun, but not rust.
> When was the last time you patched Pi / OpenCode / Claude dist or source code before running it?
Funny you ask. Yesterday I patched opencode to replace \ paths with / depending on some heuristics. Couldn't get a plugin to fix in all cases I needed. Solved in one minute :)
And plugins for executables suck compared to "just create a .ts file in this directory and edit/test it in a few seconds until satisfied".
There's a target audience for rust harnesses but their overlap with pi audience is quite small.
apatheticonion 14 hours ago [-]
> I would need cargo to author my own Rust plugins.
You could write them in Go, TypeScript, Python, whatever. If you wanted to write your plugin in Rust, you'd need the Rust toolchain though, yes.
Plugins don't need to be in the host language. It's up to the harness writer to ensure the plugin engine makes sense for the patterns of plugin writers.
Then it's up to plugin writers to ensure their plugins are performant so people enjoy using them.
> And plugins for executables suck compared to "just create a .ts file in this directory and edit/test it in a few seconds until satisfied".
Not really? Deno, Node.js are both embeddable within a native application, so plugins can be written in TypeScript without any change in expectations from the plugin dev's perspective. There's also QuickJS and LLRT which use like 1000x less resources than v8 (faster for plugins, slower for servers).
No one is asking plugin devs to change, just that the harness writers provide better platforms to build on top of
bel8 8 hours ago [-]
It's counterproductive to write the harness in a 2nd language if you're going to embed JS/TS runtimes. Now you need 2 toolchains since you can't just blindly generate TS code and pray it works as a plugin. Not to mention that it's much easier to reason about contracts and behavious within a single language.
You get the worst of both worlds and that's probably why the most harnesses tools don't do that.
What you're describin already exist but the target audience for such is small. I invite you to try and watch the adoption :) It's just a prompt away.
joshAg 24 hours ago [-]
> I love alternatives to the big players but why is everything written in TypeScript or Python and takes up a gigabyte of ram.
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.
Bluestein 24 hours ago [-]
Good grief, a voice of reason.-
I am really hoping a combination of the RAM-pocalypse and AI coding will result in less bloat. At some point ...
schlarpc 24 hours ago [-]
Totally agree with this sentiment. On your plugin point, I recently did a PoC of QuickJS in wasmtime with a restrictive sandbox (10 syscalls total) for running untrusted plugin code and it was great. Took maybe 3-4 days to pull together and performed more than adequately for the kind of thing this class of software needs, with a security posture that beats pretty much anything widely deployed. When this level of engineering excellence is so cheap to achieve, we really need to bully companies that refuse to do it.
Written in Nim. Unixy scrollback but cross plaform. Tested for token efficiency.
solarkraft 24 hours ago [-]
> AI lowers the barrier of entry to Rust to virtually 0
Not really. It lowers it, sure. By a lot even. But you still have the system requirement for compilation and ecosystem to deal with.
jacquesm 24 hours ago [-]
I was so frustrated about this that I ended up writing my own.
lionkor 16 hours ago [-]
My $0.02; I use pi every day, it's always running somewhere for various kinds of tasks (no vibe coding). I run it in `sbh`, a slop cannon wrapper around `bubblewrap` that ensures that the agent only has access to things it could possibly need. The code is short and you can audit it yourself.
I run it like `sbh --net pi` or `sbh --net --docker pi` depending if I want the agent to have docker access. The result is that ~/src/my-project gets mounted as `/w/home/lion/src/my-project` and any LLM I've tried understands that this is a sandbox implicitly.
I strongly suggest everyone who uses a harness, of any kind, to copy it and edit it to better suit one's setup.
Switched to pi to avoid having to keep skills/MCP configs in sync across agents like claude and codex to have consistent experience.
But loved the minimalism, extensibility! It's a very capable harness.
Have my own extensions for MCP, subagents, ui, history management etc. overall i feel my workflow has got a lot better.
Love pi!
MisterBiggs 1 days ago [-]
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".
ad_fontes 1 days ago [-]
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?
Jeeetendra 12 hours ago [-]
1.0 releases are always more about the team saying 'we'll stop breaking things' than new features. curious if the api actually stays stable
tommica 12 hours ago [-]
One of the best parts about pi is the fact that it runs as a single agent. From what I've seen, multi-agent setups, like cursor and codex have not caused anything else than extra token usage, without any worthy benefit, at least when coding.
Pi without extensions, with a decent model that allows thinking to be disabled works really well, and is faster than multiple subagents.
dandaka 12 hours ago [-]
Lots of benefits for me, examples
- cost saving when using lower-tier models to index information
- routing between models from different providers
imnotr0b0t 1 days ago [-]
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
pkthunder 1 days ago [-]
I'd _love_ to get some feedback on how people use Pi after initial setup. I (like others) am pretty heavily "invested" in Claude Code CLI. After trying out Pi and a local model, I realized how MUCH the `claude` CLI was lifting. I'd like to strip a lot of the fluff out and build my own, but it feels like I need to see what other people are doing too.
richardgill88 11 hours ago [-]
Posted this elsewhere in this thread. I've daily driven Pi for 9+ months and I recommend pi a lot to friends. I think switching to pi from claude code is pretty daunting. The pi extension system is excellent. But which extensions should you use? And honestly a lot of the most popular extensions to me feel bloated / weird / vibe-coded.
Pi with rpiv-ask-user-question, pi-subagents (if you don't want to use tmux), pi-web-access (if you have a subscription to some search backend), plus agent-browser CLI. I don't miss anything in Claude Code.
pkthunder 1 days ago [-]
Love it - thanks. I basically dropped into Pi, tried prompting a simple prompt (e.g. "What's the name of this project?") and realized how little it did OOTB. I know oh-my-pi exists, but I'm trying to reduce complexity for local model runs.
CharlesW 24 hours ago [-]
As someone similarly invested in Claude Code and initially reluctant to try other harnesses, I recommend the batteries-included Pi distribution oh-my-pi (omp.sh) over Pi and OpenCode. I switch between Claude Code, omp, and Codex regularly, and it feels fine.
KnlnKS 1 days ago [-]
I've recently adoped pi at work and its been a treat. I think just starting with the base agent and installing (or creating) plugins as the need arises is best. If you really want some plugins to start with pi-subagents and the rpiv collection are what I'd recommend.
pkthunder 1 days ago [-]
Thanks - I think I more need to work on the prompting.. possibly. IIRC I was struggling with local operations as basic as finding files/reading files/correlating classes in the same folder.
vinhnx 11 hours ago [-]
I built VT Code in Rust with a similar goal: lightweight, terminal-first, and shipped as a single binary.
For the past several (months now!) I have been slowly working to open source a proxy we built for pi internally.
Its been super helpful for us, helping us centralise session logging, hook and model insights as people work on stuff. There is a bunch of other interesting things (such as runtime model evals) we now adding. If this would be of interest -- open source of course -- please drop me a note here, it will incentivise me to finally extricate it from our broader system:
Congrats on the release. I'm looking forward to using Durable with some of my custom extensions and tools. The MCP specs have changed for the better, so makes sense to me with the inclusion.
ghm2180 1 days ago [-]
Awesome! Congrats on the release. As an indie developer this is big!
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.
sheepscreek 1 days ago [-]
My hot take on Pi Durable
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.
sanex 1 days ago [-]
I didn't even think of that aspect of it. Just a poor little guy who sits there watching journalctl and occasionally yells when he sees something.
nixpulvis 21 hours ago [-]
A coworker was trying to tell me that models perform better in their own agent harnesses. I use both `pi` and `omp` and I'm somewhat skeptical. I understand that the tool calls might be slightly different. But really how much impact on the model itself does the harness have?
Each family gets their own system prompt, based on the original harness one, but compacted and includes instructions for more brevity.
jupp0r 21 hours ago [-]
I think it's often the other way around. The differences in perceived coding productivity that many people attribute to claude vs codex is more the harness than the model it's running (if running comparable classes of models).
nixpulvis 21 hours ago [-]
What is the harness doing that's not the model.
I've been assuming a harness is basically a set of tools and a TUI for passing text to the model and the model coming back with tool calls and user responses.
Are the tools really that complex and different between harnesses?
fishfasell 21 hours ago [-]
I'm no academic, but I have read that harnesses dictate the output more than the models themselves. I'm not educated enough on the topic so I will defer to those smarter than me to chime in.
Pxtl 21 hours ago [-]
I have run into some models that seem to mind. Like for the life of me I couldn't get North Mini Coder to play nice on Pi, which was sad since it seemed good otherwise. It just couldn't grasp the tools.
nixpulvis 21 hours ago [-]
Doesn't pi just have 4 tools?
- read
- write
- edit
- bash
Pxtl 20 hours ago [-]
Yes but somehow it would tool call and then end turn. Couldn't get it to properly consistently continue on the with.
sgustard 1 days ago [-]
All companies with LOTR names are war profiteers right?
You should strongly consider changing your name! I genuinely thought that Pi had been acquired by Anduril when I first read this blog post. I'm sure many people will make the same mistake.
micromacrofoot 1 days ago [-]
Thanks for this
jszymborski 1 days ago [-]
the exception to prove the rule I guess
bityard 11 hours ago [-]
Is there a version of the pi.dev website that doesn't change itself as I'm trying to read it?
OtherShrezzing 17 hours ago [-]
What does everyone do about security with this tool? Are you running it in an Nvidia sandbox (can’t recall the product name), a docker instance, or just yolo on your computer?
dracotomes 17 hours ago [-]
I'm running it a rootless podman container it set up itself while still running directly on the host. I map the .pi directory into the container so all the sessions and skills persist. Then it's just a matter of mapping the current project folder into the container.
worldsayshi 16 hours ago [-]
Firecracker can be used for sandboxing. I'm not currently using the Pi + Firecracker combination but I think it's a very useful one. But the best sandbox solution probably depends on what you want to do.
They explicitly said no MCP and no fullscreen TUI, which makes it minimal and attracts many people.
skohan 24 hours ago [-]
Adding MCP and code mode seems so antithetical to the minimal ethos, I almost would believe they got incentives from Jen, but I don't want to be that cynical.
capocasa 16 hours ago [-]
I agree! MCP should be a command line tool wrapper than can be used from any minimal agent without bloating context if you don't need it.
shabbyrobe 19 hours ago [-]
I adopted Pi for both of these reasons, and the strength with which they were stated gave me the confidence to lean in.
The rationale for MCP and codemode I can swallow, Armin's writing on that makes a lot of sense, and meeting models where they are seems critical to me based on my own experience.
But for me, fullscreen mode is a huge turn-off. I already have a backbuffer that I strongly prefer to use, it's called my terminal, and it's important to me. If the backbuffer-based version disappears, I'll be forced to migrate to something else (seems there are a few options here) or make my own tool, but that involves abandoning or porting my extensions, which turned out to be a huge superpower with Pi. Perhaps Pi Durable helps with that and lets me keep my extensions, but I'd rather this was not necessary in the first place.
If switching to full-blown TUI has anything to do with how slow the "expand thinking" and "expand tool output" features get as the session gets longer, could that be mitigated by only expanding the n most recent behind the default shortcut, and the slower "nah, I really do want you to expand them all thanks" can be a different shortcut?
If it's to add more fancy features that require fullscreen rendering and a dyed-in-the-wool terminal user like me might reasonably tolerate as a dismissable modal, make those bits TUI, but keep the backbuffer in the terminal (for e.g. the session tree or the settings, those don't need to be in the terminal's scrollback).
And if it's for any other, richer interactions... can we just... not, instead, and let the terminal be the terminal rather than a single page web app?
badlogic 13 hours ago [-]
scrolback buffer mode is definitely not going away.
shabbyrobe 13 hours ago [-]
Oh, didn't realise at first who it was replying! Thanks for weighing in to allay my concern, I appreciate it.
kimseungyong 21 hours ago [-]
I'm not sure which has more advantage compared to using only Claude Code.
I'm working with Claude's workflow, but I haven't yet felt any demand for customization.
For those who use this well, could you share examples of how you use it?
capocasa 16 hours ago [-]
I did some token tests and both pi and my own 3code used 4x fewer tokens than Claude Code, while opencode used 2x fewer tokens than Claude Code. You can tell Anthropic just doesn't care about using tokens and the tradeoff is maximal performance. That's understandable, but it might not be the tradeoff you need, hence, alternative clients.
SkillKeeper 13 hours ago [-]
[dead]
puilp0502 21 hours ago [-]
I'd say it's the other way around: I like Pi because it's minimal. Not like claude code spinning up superpower:* skills, 10 background agents, etc. Also, it's a useful building block for so-called "agentic workflows" precisely because it's minimal.
EDIT: forgot to mention local models
warmwaffles 20 hours ago [-]
The minimal setup is nice to customize per project or set of projects. Tailor made specific for the use case. Only grab extensions where necessary, I've made a few for myself and work to help me.
1 days ago [-]
trvz 1 days ago [-]
This should’ve been version 3.14.
the_mitsuhiko 1 days ago [-]
We did not want to waste this opportunity this early but we released at 3:14 ET :)
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
rcarmo 1 days ago [-]
Well, check out rcarmo/gi - I am using my clojure interpreter inside it as a scripting engine.
dugidugout 7 hours ago [-]
Thanks for sharing!
sroerick 1 days ago [-]
Will do
Zambyte 22 hours ago [-]
Woah, this is my first time hearing about Autolith. Definitely looks cool, I might have to play around with it. How do you find models do with Lisp? I have had some trouble with my models getting tripped up pairing parenthesis in my GNU Guix configuration.
sroerick 17 hours ago [-]
I use the open weight models and they kind of suck lol. I have a lot of paren helpers. I think Autolith ships with one also. The boys in the Autolith zulip say that Openai and Anthropic models are all totally fine with parens. Come say hi in the chat
kulahan 1 days ago [-]
People in tech are so terrible at naming things. To clarify for anyone else, this is something to do with open software, I guess? Not the raspberry pi, and not the math concept, and not the book character and not…
truculent 1 days ago [-]
IIRC, this was a deliberate choice from the creator who originally wanted the project to be hard to find!
kulahan 1 days ago [-]
Ugh. BRB researching cucumber, gherkin, eggplant, …wait when did my homesteading books get out here!?
ricardobeat 1 days ago [-]
I enjoyed Pi for a few weeks, but ultimately moved to other harnesses - the plugin ecosystem became a sea of slop, large vibecoded projects that don't work at all, and yet have thousands of stars. At some point I gave up trying to get subagents working.
bityard 1 days ago [-]
I had the same concern last time I looked at Pi. There's no way to tell which are useful and semi-vetted and which are junk. I came to the conclusion that most people had their AI build them whatever plugin they needed, and I think this is even something they recommend.
What harnesses do you recommend?
skapadia 14 hours ago [-]
I use pi + cheaper models like the GPT Luna family, for loop engineering
outadoc 16 hours ago [-]
1.0 is a pretty bad approximation.
rcarmo 1 days ago [-]
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.
andai 13 hours ago [-]
happy bikeshed: the pixely font used in the bash replay is so cool:
FINALLY, I can support Pi in my orchestrator system that relies on integrating agents with my custom MCP server.
dom96 11 hours ago [-]
I’ve tried Pi and honestly it felt pretty rough and raw. Kind of like Arch Linux. Even with oh-my-pi the experience just didn’t seem polished enough for my taste. I’m not really sure why I would use it over OpenCode.
broodbucket 11 hours ago [-]
Much like Arch you need to have a decent idea of what you want first. As a 15+ year Arch user I used to decry people using Manjaro or the like, now I'm using omp, so I get the appeal
dom96 4 hours ago [-]
There is a reason I don't use Arch though lol
fhn 1 days ago [-]
I keep reading positive comments about Pi but it never worked well for me. Hermes just worked.
vblanco 1 days ago [-]
Built in codemode is rather nice. Its the feature i like the most from OMP which is Pi + lots of plugins.
crazeddog 16 hours ago [-]
Pi is great. I've been using it both personally and professionally for 10 months, give or take. I've built many personal apps that wrap the SDK — integrating it into Home Assistant and my own ChatGPT/Claude-esque web app for family and friends. Professionally, I've worked toward making it the coding interface in my company of 100+ people, with extensions that hook into our many systems, built a index of all our code and config, and built another a nice wrapper web app over the top for anyone in the company to use.
TL;DR: Pi is amazing.
robertlagrant 15 hours ago [-]
Has anyone got it running on a Pi?
lionkor 1 days ago [-]
I love how consistent pi has been, especially in regards to not breaking ux
1 days ago [-]
bibstha 1 days ago [-]
Is claude code or codex subscription supported by pi?
fancy_pantser 1 days ago [-]
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
bakies 1 days ago [-]
Claude is not but codex is. Which is why I switched.
0gs 1 days ago [-]
congrats to earendil and keep up the awesome stuff.
WA 1 days ago [-]
Run in sandbox, container, or VM?
pkulak 1 days ago [-]
I like a sandbox, but there's arguments for all three. Jai is still my favorite on Linux.
tesnorindian 19 hours ago [-]
The best harness I have used. Any plan of porting Pi to rust?
holoduke 14 hours ago [-]
Can someone tell me what the real benefits are compared to just use warp with Claude?
Computer0 1 days ago [-]
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.
KeplerBoy 1 days ago [-]
You can use it with oai subscriptions
pizzafeelsright 1 days ago [-]
Local Qwen 3.5 on CPU was good enough for small tasks.
imagetic 22 hours ago [-]
Just ask Pi.
1 days ago [-]
imagetic 23 hours ago [-]
Pi is dope.
blinded 22 hours ago [-]
use it daily, its great.
Yizahi 1 days ago [-]
Earendil, really now? Do these CEOs even like Lord Of The Rinds? Earendil sacrificed his personal future to make humanity's future better. And these guys are peddling a human replacement and sociaty disruptor (eventually) under that same name. At least Peter Thiel had the guts to pick a thematic name for his spyware, despite probably hating both Tolkien's message and humanity altogether.
How do people read these famous books and deliberately get them wrong again, and again, and again?
Adding insult to injury, Pi apparently considers low Tolkien usage to be beneficial.
toephu2 1 days ago [-]
When I first saw the domain it looked to me like someone's personal blog.
I felt like they should have posted this on pi.dev...
kergonath 1 days ago [-]
> despite probably hating both Tolkien's message and humanity altogether.
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.
rbanffy 15 hours ago [-]
Can we please stop with naming collisions? It makes googling harder.
popalchemist 1 days ago [-]
Does this replace Claude Code in VS Code entirely?
rickreynoldssf 1 days ago [-]
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.
andix 1 days ago [-]
Im disappointed. I’ve expected a bump to 3.14.x
octoberfranklin 20 hours ago [-]
Full-screen mode by default
Man, first MCP then this? The main reason I use Pi is because it didn't try to reinvent my terminal's buttery-smooth native scrolling -- something no terminal client can ever match.
Did you all get acquired by private equity or something? The enshittification is coming at us fast.
claud_ia 13 hours ago [-]
[flagged]
james45 8 hours ago [-]
[flagged]
k4rnaj1k 1 days ago [-]
[dead]
rubing 1 days ago [-]
[dead]
ofjcihen 1 days ago [-]
[dead]
wgd 1 days ago [-]
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.
badlogic 1 days ago [-]
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"?
wgd 1 days ago [-]
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"
badlogic 1 days ago [-]
Cheers, appreciate the answer!
mijoharas 15 hours ago [-]
Ooi, can I ask for the reasoning for the new default of fullscreen?
The codemode stuff/mcp has been explained to death at this point but I haven't seen anything around fullscreen.
(I don't have strong feelings either way, just curious)
badlogic 13 hours ago [-]
Multiple answers. Windows Terminal users constantly had problems because WT is ... not great. Fullscreen mode fixes that. This also applies to some other lesser used terminals.
I wanted the out of the box experience to be smoother for more people, so made it the default. Scrollback mode will stay though for users who prefer it.
steezeburger 23 hours ago [-]
> and would prefer a hypothetical version of Pi which didn't have them
If only there was some way to... ah no time to be snarky. It's open source and MIT licensed and you're in a thread discussing AI coding agents.
realty_geek 1 days ago [-]
Must be super frustrating for you to hear that.
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!
rcarmo 1 days ago [-]
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.
girvo 1 days ago [-]
Fullscreen mode is my only real gripe. That kind of terminal behaviour is exactly what I was trying to get away from. My work's agent (that I use Pi to replace) does this and it is annoying as all get out... but I haven't tried yours yet, so we will see. Hopefully your implementation is better!
I believe software can be done- with incremental improvement and keeping the foundation, like vim. That's the 3code trajectory.
New fun ideas go into seperate tools, possibly ones 3code (or other minimal agents) can call, but the core stays lean.
semiquaver 1 days ago [-]
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.
pezgordo 1 days ago [-]
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.
semiquaver 1 days ago [-]
Go, rust, zig would be my choices in that order.
> 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.
ricardobeat 14 hours ago [-]
All of which would require shipping a compiler along with the app.
Zambyte 22 hours ago [-]
Those three languages would be very difficult for creating a system with the level of extensibility that Pi has.
semiquaver 22 hours ago [-]
Why? Lots of systems written in those languages are extremely extensible.
Zambyte 22 hours ago [-]
You either need to rebuild the harness every time you want to make a change, or a lot of deliberate effort is required to maintain an API surface for extensions, distinct from internal implementations, or you can embed an interpreter like Lua, Python, or... JavaScript. Or you could instead go the Pi route and use an interpreted language, and just load extensions into the interpreter, alongside the program itself. When one of the main goals is extensibility, the latter seems like the obvious choice.
nicce 13 hours ago [-]
I feel like people have forgot how extensions used to work long time ago with compiled languages. Extensions can be just dynamically loaded, (e.g. DLL from Windows world, .so from Linux). There is no need to compile the whole harness. This is also possible when using Rust, but people are just lazy.
And yes, API must be maintained for compatibility, but that is needed anyway.
nicce 1 days ago [-]
I feel like TypeScript is very verbose language to be honest.
droidjj 1 days ago [-]
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...
sieve 19 hours ago [-]
It is written in TypeScript, not JavaScript.
TS probably has the most expressive type system of any language that I have used, and you can develop at lightning speed without fighting the borrow checker or anything else. The ability to share the exact same code across the front and back end, and encode API contracts in the type system, is a superpower for webapps built with node.
Whether an LLM writes the code or not is besides the point. What matters is that the code should be testable, and understandable. TS wins on both counts, like most sane alternatives.
I personally do not program using any language that does not have the ability to specify types.
arecsu 1 days ago [-]
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.
jazzypants 11 hours ago [-]
I think that you would have a better life if you stopped pretending JavaScript was so bad.
semiquaver 8 hours ago [-]
I have to work with it nearly every day. I’m not pretending.
jazzypants 8 hours ago [-]
Fair enough, I accept your opinion.
Out of curiosity, which language do you think would have been better for the web? Visual Basic, TCL, and Python were the other main contenders in the mid '90s. Would you rather be working with one of those nearly every day?
Beyond that, if you could pick any language as the lingua franca for the web, what would you choose?
Maxforever 14 hours ago [-]
I use TypeScript because it compiles to JS that runs on Cloudflare Workers, which makes hosting the service really cheap.
crooked-v 1 days ago [-]
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.
razster 1 days ago [-]
Which I believe is what the developer was looking to do. I personally enjoy it being JavaScript. I've had it redo some functions on the fly which to me is perfect.
jasonhkl_03 14 hours ago [-]
I love pi simplicity but hate pi for over simplify so i use omp lolll
shpx 20 hours ago [-]
My experience with Pi was that I pasted some error and asked Codex to solve it and it explicitly said something like "you could be mistaken into thinking this is X but it's actually Y", which was weird because it was pretty clearly not X and I've never seen it say that. Then I installed Pi with the same OpenAI model and gave it the same task and it told me it was X and I promptly never used Pi again because why would you want to take chances like that.
Like Pi, it's plugins all the way down, provider-agnostic, minimal system prompts, threaded sub-agents, code-mode, multi-client remote sessions, worktrees, a context window you can actually see and edit, etc etc
Where Pi is way ahead is the plugin ecosystem, and that takes people, which is hard to get amid the current deluge of agent action. So if there's any spare oxygen trailing off this thread, I'd love any Pi-heads who fancy a bit of GUI action to come and kick the tyres..
Marketing really matters here. Sometimes a tool can take off on its own with just a little bit of prodding (hn/reddit announcements and the like), but in this era where there is just way too much choice that is difficult to differentiate, the S/N is just too opaque.
Think about Matt Pocock for a moment - the guy is literally famous for 'his' grill-me skill. A skill. And something he really did not come up with, as the core tenant has been a a prior-art prompt template going back to 2023, but no one seems to question or point that out as he has been so pervasive online promoting this as his invention that it just drowns out any dissent.
This project looks great, well done, BUT it seems very odd to be "grumbling" about Pi when you're explicitly targeting a separate audience (GUI users).
There are other GUI tools like Juggler that are quite popular, like cmux, that it seems better placed as an alternative to.
The reason there is so much noise in is area is because these tools are a dime a dozen and trivial to create with AI. I don’t think it realistic anymore to expect a rush of users and make money off of these. The supply is going to far outstrip the demand.
Last Saturday I asked Claude to create a Claude Code clone for me with a few customizations that I personally prefer. It did so in less than an hour, and works just as well as Claude Code. I’m not looking for attention on it - I’m happy I made it, and just myself as a user is gratification enough. I think this is the future of software development, and I think having expectations of attention from others just because you made another tool is setting yourself up for disappointment.
Like many things I've made, this started as a scratch-an-itch project, but now feels like it's unique and useful to enough people that it's worth a shot at turning it into a business. Exactly how to monetise it, not sure, but regardless of that step, step 1 is definitely just getting it out there!
There's a lot of "What's the point in making an app, one day we'll just ask claude for the tools we want and it'll write them in a weekend" but I think: a) For things like this you're going to get a better result by taking an app that's roughly the right shape, but customisable, and asking claude to customise it b) If we do end up in a world where nobody sells software apart from openAI and Anthropic, then that's a bad, bad place to be
It looks like a good system, great if it works for you - but we now live in a period where I could build a similar tool to handle MY preferences in a weekend if I wanted to.
And, it would almost be EASIER than learning to use a new tool. I prefer PI because I didn't want batteries included in the terminal. Any decisions about what a user might want is a decision made on the user's behalf that dilute that core.
Juggler looks good - not personally for me. But that's OK, it's got 675 stars and a bunch of forks. That's attention, no?
It's true: with proper planning, thought, and focus, you might be able to generate enough code in one weekend to create a tool that is at parity with something like Pi - but chances are the amount of focus, planning, and thought is going to be greater than one weekend worth. And I don't know about you - but I don't really want to spend my weekend building a coding harness, I have other ideas and projects I'd rather execute.
I’m not exaggerating when I say all I had to do was prompt “build me an LLM coding harness like Claude code, but make it so that I can resume sessions from OpenCode and Pi as well” and that’s it, and it was done within an hour.
Did it have warts? It’s been working nearly flawlessly, but there have been a couple of really minor things. One of the things I realized quickly was that it didn’t have a WebFetch tool built in, so I prompted “add a webfetch tool” and it did it within 5 minutes. Warts are trivially fixed.
The things that really differentiate software now are the ideas behind them, not the implementation. So if (like the OP) you’re looking at a tool and going “well mine does that too…”, so what? If it’s just a re-implementation of the same ideas, anyone can recreate it (and add on their own customizations to boot).
Personally, I am getting frustrated with the amount of people trying to pitch me their tool they made. Tools are a dime a dozen. Share with me your ideas, and I’ll share with you mine, but I’m not gonna adopt your tool.
Sure, and then tomorrow it's compaction, then worktrees, then an annoying buffer scrolling bug, image clipboard handling, etc etc. I don't buy for a minute that a one-liner prompt creates a perfect program because I know from experience it doesn't. You are inheriting the maintenance of a non-trivial program. That's perfectly fine if you want to tinker and spend time on that but I would rather offload that to someone who wants to spend more time thinking about those problems than I do.
> Personally, I am getting frustrated with the amount of people trying to pitch me their tool they made. Tools are a dime a dozen. Share with me your ideas, and I’ll share with you mine, but I’m not gonna adopt your tool.
I'm not sure I follow this line of thinking. Obviously, juggler is the result of an author who has spent a great deal amount of time thinking about an idea. It is the manifestation of the author's ideas. I agree that the amount of vibe coded slop out there that people think is marketable is ridiculous, but Juggler doesn't really look like that. It's still worthwhile to evaluate well thought out tools IMO.
Every thing you listed works out of the box. Believe it or not, it’s true! And creating tools like this is only going to get easier as LLM models progress.
Your comment very much reminds me of comments from 2023 saying that LLMs would never be able to write working code, or be able to generate lifelike pictures, or be able to find security issues… but look around you, they’re doing all of those things already!
> I'm not sure I follow this line of thinking. Obviously, juggler is the result of an author who has spent a great deal amount of time thinking about an idea.
Awesome! That’s why I asked the author why they wanted attention. I want to hear more about those ideas behind juggler. What makes it special? Why does the author (who has tons of experience in software) think juggler is different? What were the obstacles that the author overcame while building it? That’s what I want to know, but these comments share none of that. Instead they just say “I also built a tool that does the same thing, I wish people would use my tool instead.” Why in the world would I?
My opinion is that TUI is just a GUI with less fidelity. Being composed of text characters provides no additional benefit other than a retro style. The benefits of the terminal are outside of TUIs - composing scripts, piping data, bash etc.
TUIs compose with tmux. Pi's homepage says "use tmux" twice on it. It fits right into an already-mature ecosystem including a clipboard (powered by Vim visual / line / block mode) and easy integration with shells, editors, and other tools. GUIs generally have to re-invent all those wheels (tabs, splits, sessions, etc.) and it never integrates as well with other tools in a totally cross-platform way.
I do a fair amount of CAD so I'll use that example. Nobody who uses CAD professionally is clicking all the little buttons for tools. They're using commands, shortcuts, scripts, etc.
A GUI is slow and clunky. A textual interface, once learned, has way more degrees of freedom.
Yes, power users often use shortcuts and automation, but how is that an argument against GUIs?
It simply depends a lot on the actual task. Certain things absolutely require a (high fidelity) graphical interface. Other things can be done just as well (and with less distraction) in a simple TUI. You can't generalize.
My two cents is that having all of your text be monospaced is not really ideal for agentic workflows where you do in fact read a lot of prose and in the future may want diagrams, rendered from a full browser's capabilities, etc.
I think I like the aesthetic of using a TUI because it makes me feel more like whatever 'real programmer' means to me... but I recognize its also cope.
(Also TUIs made a lot more sense when code was more expensive, because the monospacing constraint made it faster to build UI, etc.)
Cursor has this, and there are others that can attach to ssh or open their UI via a tunnel or web interface.
SSH is mighty convenient though, so I am not necessarily saying your point is incorrect.
I hardly use anything aside from neovim and a browser. (okay corporate Mattermost fork and video terminal too).
For me switching between different cli\tui tools feels like a continuation of whatever I was doing, while going to something GUIsh is not.
And to be honest: what do you even need from a harness\agent for it to have a gui?
Oh, it's just so much nicer! Personally I'm a graphics/typography nerd, so just having nice fonts, smooth movement, use of sizes, colours and graphics to differentiate and display types of information... Some people obviously don't care about this kind of look and feel nicety, but even so a GUI has so many more opportunities for displaying information in a clear but dense way.
They can even show images these days.
Some of the elements can't be recreated 1 to 1 ofc, like borders with delicate margin\padding adjustment, but this is about it I think.
To each his own, yeah. From my experiment GUIs tend to overcomplicate things and display too much info you didn't need in the first place.
The native format of LLM interactions is markdown, and showing that in a terminal is a poor imitation of what it looks like rendered properly.
An interesting thing you can do in juggler is ask the LLM to reply in HTML instead of markdown, and they can then do things like illustrate points visually for you. LLMs are actually great at being able to express things visually to the user, but being stuck in terminals so much, people haven't really leaned on that very much
experience
I love the terminal for terminal things. I'm not convinced agenetic coding is best implemented in a terminal - for it to work well, you're basically reinventing a toolkit wheel. Why not just use a nice graphical toolkit? It feels a bit like the current trend for pixelated graphics - both retro and worse.
Nothing absolute that I couldn't live without. But TUI is essentially a design written for the lowest common denominator. It doesn't matter that I have had high resolution displays for years, average TUI is designed as if I'm using computer older than me.
How can a GUI replicate this workflow? I know it could, technically, but not as easily.
Pi is a great project, and people love it for good reason, I have nothing negative to say about it or its fans. I'm just trying to do something that appeals to the more GUI-oriented folks. And yes, I'd really love to know if there's something that's making people bounce off the product, because it may be trivial to fix!
You run it on some headless machine, and point your browser at the HTTP server it creates to see the full GUI. It uses Yjs to make that connection as efficent as possible, and it works great.
The desktop app is literally doing the same thing internally - it runs a headless server process and serves the GUI to its own window. But you can stretch that over a network and it's the same experience.
I can even connect to it via a TURN server, from my phone on a cell signal, and although it's not as snappy as running locally, it works pretty well.
And, of course, most of the tools have created their own GUIs anyway, which are far worse than VS Code (even when they've forked VSCode itself!)
I think the "borderline psychotic" phrasing is apt.
I love good GUI apps. They are hard to do well.
Juggler, for example, already collides with a Keyboard Shortcut I use across the desktop, so CMD + J can't be used. It also uses CMD + / for keyboard shortcuts? Tha's a choice. It doesn't respect Mac's preferences/settings shortcut (CMD + ,)
You can be on a chat window, and there is no way without using the mouse that I see where you can start typing into the chat box. Juggler tells me to type / and I can run a command. I type / and nothing happens. What that really means is I have to use my mouse to put the cursor in the small chat box down below.
This isn't to say Juggler is bad. Rather, it's got a long way to go for the GUI to be something that has the fluency of something like vim.
TUIs generally have to solve for that. You have to offer up those features. You can't rely on laziness. So at the very least, there generally are keyboard shortcuts and they need to be obvious.
Feel free to think that people don't have a rational reason for TUIs, but it buys you a lot for free. And this isn't an indictment on Juggler. It works. It's functional. It doesn't feel natural, nor does it respect conventions.
I've never felt that urge, I've always been happier using Visual Studio / Xcode / VScode with default key bindings, and focused on other things. I'd rather click things inefficiently with a mouse than invest effort learning keypresses. Neither of us are wrong or right, but I think I'm trying to cater for my tribe on this project!
> I totally get it. Lots of people, like you, love to set up their perfect custom, key-driven environment, and tune everything just how they want it.
No, you don't "get it." Like me? I don't want to set things up. I don't want to customize. I thrive off convention. And there are apps that follow these conventions. They do this out of respect for people who enjoy the defaults they enjoy elsewhere in other applications.
> I've always been happier using Visual Studio / Xcode / VScode with default key bindings
That's not true though, because you don't even use the same default/convention key bindings they use. By doing things your own way, you are making it so it's harder for your users to adopt your application.
> "mine does that too, but with lovely graphics.",
But it doesn't. You don't care about the little things, so how are you going to get the bigger things correct?
Listen, it's great that you built a tool that you love. I love doing that, too. But if you want users, you have to respect them. And that means making it easier for them to use your app.
And if our app just doesn't work because / doesn't do what it says it's going to do, that's an issue. And if your app doesn't allow for customizing keyboard shortcuts, it's disrespecting users who have those set for something else.
> but I think I'm trying to cater for my tribe on this project!
Just realize that tribe is juggler-ai users, or people who don't use defaults. People who are fine with default key bindings, can't effectively use your app.
For an example, see my MSPaint drawings in the README (scroll near the bottom) for this tiny little project: https://github.com/rspeele/meshorient
I redrew those for the README but IIRC, I drew something similar when explaining how the feature would work to the agent.
And in reverse, after describing an architecture or an algorithm to it, I'll sometimes ask it to draw a diagram for me to demonstrate its understanding. If it draws the picture in line with what I intended, I conclude that it has gained the necessary context to proceed. If not, I know I explained something wrong or at least insufficiently and need to provide clarification. There are some domains where a picture is worth a thousand words.
It also helps cut through the Claudese. "Your decision is needed for one edge case, found by the gate. When a T-joint meets an endcap that the mesher solves by a fan, should this bisect a fan slice or raise a warning?" I'm sorry Claude, I am not from Missouri but you are going to have to Show Me this one with a picture.
Of course you can save pictures to files and open them with external tools, but it's nicer to have them inlined into the chat history when that's exactly what they are: part of the conversation.
However, I likely wouldnt suggest Pi (or even opencode) to someone who I would also suggest Juggler. They just dont feel like the same type of user, in my opinion.
I do think you could take a look at ChatWise, Kelivo, Rikkahub, Jan, and Waku if you wanted to see who your real competitors are. Again, in my opinion.
Those are full standalone GUIs with workspaces and built in tools that help you get things done without requiring any terminal commands.
Sorry if this question is condescending, I just want to understand what is your vision for this tool :)
What I'm trying to do here is offer a tool where everything you do is provider agnostic, so you can use claude for some tasks, GPT for others, local models for others, without having to switch environments.
And also, when you run out of tokens in your claude 5 hour window, you can just flip over to Sol and finish the task..
We need to pay attention to the new Cambrian explosion of software. The attitude of "everyone already uses VSCode" should disappear, and people should be open to try more niche products.
After all, being a developer is no longer a moat, and smaller ecosystems can thrive now.
Best of luck!
There are so many ways to visually manage your agents sessions with a terminal app.
Unrelated, I found that when an open model (qwen3-coder:30b) drives an mcp tool (chrome-devtools-mcp@latest), it hallucinates the tool calls, and the docs say they never promised that tool calls would make sense or be valid. To me, this is a blocker and is the reason I've stopped looking at harnesses like pi. The tool calls are just fine if a closed LLM, gpt-5.* drives them, but I need a free and open LLM. Have you run into this issue, have you addressed it?
But maybe this will be good as a meta harness. For my whole disk. I will take a look
LLM error: failed to start claude CLI: claude executable not found. Searched $PATH, the login shell, and known install locations (~/.local/bin, ~/.claude/local, ~/.npm-global/bin, /opt/homebrew/bin, /usr/local/bin). Set JUGGLER_CLAUDE_PATH to its absolute path if it lives elsewhere
I think any tool that needs claude CLI is a no-go in my list. Claude is a closed source binary with idk what it does in there, IIUC. Maybe I am not the target market for this.
It’s great that’s plugins all the way down the issue I find is I haven’t missed anything enough to need a plugin.
But, seriously, I'll fire this up!
But it's GUI, so a no go by default. TUI > GUI
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.
This is what I did and then just wrote small skills so now pi can read and send messages for me.
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…
Perhaps Pi should ask after x days of installation; is there anything I can do to make the interaction better?
That line is in the startup message everytime...
Tangentially I also kind of feel like there is some level of deification of Mitchell's products but that's a diff topic.
Came from iTerm2, and Ghostty is much faster and minimal.
(1) https://news.ycombinator.com/item?id=49913854
I use agy and codex, and don't see strong difference in ui quality.
But I agree, it's definitely a matter of workflow, because I can see omp doing untold damage in the hands of the uninitiated.
- https://huggingface.co/unsloth/Qwen3.5-9B-GGUF - https://huggingface.co/empero-ai/Qwen3.8-9B-Distill-GGUF (unofficial Qwen 3.8-9B) - https://huggingface.co/ornith-ai/Ornith-1.5-9B-GGUF (my personnal favorite)
Running smaller 4B-7B models entirely on the GPU VRAM will get you fast inference, but you will need to scope and define the tasks well. eg, using it the model as a classifier and just feeding it from a queue.
The best performing "agent"-like model to plug into a harness that I have found so far has been Qwen3.6-35B-A3B (mixture of experts) model as I can park most of it in system RAM and CPU, while the VRAM holds the attention/shared weights.
It's definitely workable as a local AI homelab. But expect homelab levels of tuning/fiddling with it.
With the improved support for AMD GPUs I'm finally considering getting a modern 16GB card (and maybe a second one in a few years assuming prices come down)
Using llama.cpp with Qwen3.6-35B-A3B or gemma4-26B-A4B gets me 200-300 tokens/s on prompt processing and 20-40 t/s output, which is good enough for me. Of course it gets slower with larger context. Interestingly gemma is faster, even though it has more active parameters.
It took a lot of parameter fiddling to get it to that speed. If you are interested I can give you some guidance on it, but I guess there are more qualified people around here.
The intelligence is good enough for simple questions and tasks (e.g. bash command howtos, asking about compiler errors, summarize something, document a code function/file, etc), but not good enough for complex things.
What quantization are you running for these? Like, you cant just run the "real" ones on your laptop right?
Wouldn't the performance of Qwen3.6-35B-A3B be drastically different if its quantized to 2b, 4b, 5b, etc? And also be effected by who did the quantization?
Yes. There are graphs showing the faithfulness of the logit distributions for the original and quantized versions. I think unsloth includes them in their model cards on huggingface. Usually the degradation starts small with 8b and becomes drastic for 2b. I am not sure how representative of actual quality that is though, but my guess is that it's about right, because of diminishing returns. Like, when you go from 16b to 8b you save 26GB and sacrifice (if well done) the least important information. But with every step you gain less and need to shave of more important things.
> And also be effected by who did the quantization?
My uninformed guess is that it makes a difference, but not as much as those who do it want you to believe.
The computation is partially on the CPU (--cpu-moe) with the corresponding weights in main memory, so I could run at least gemma in 16bit precision, but I guess there's no reason to go beyond 8bit and 4 bit is deemed to be the sweet spot.
You should go to huggingface and maybe create an a/c with a throwaway email and enter your hardware details and that will filter the models for you.
Also, I’d love to use Deepseek directly (or any of the Chinese providers, at that). Seems only fair to pay the lab that built the model. Unfortunately, any requests to Chinese servers is deeply frowned upon here (Belgium, EU). For personal use: sure. As a token intelligence strategy for the company: absolutely fucking not.
Not in my experience. I need to explicitly set my preferred provider(s) for each model, otherwise it bounces me around even within a single session.
Nothing, really. Might be coming soon, but no.
You probably want to try bonsai, I guess, but don't expect good results.
You could install this yourself for free? I get $0.50 isn’t all that much, but still?
But AI for installing tricky opensource software is indeed a good use case. I do that too.
Even if you spend just 10 minutes of it, I would say $0.50 it's not a bad deal.
One of the dumbest sayings ever. Unless you spend all of your time doing something that makes money, the time is worth $0. You could say that you prefer to do something else during that time and would happily pay to free it up.
We launched Pi support in Wasmer a few days ago and reception has been great (so you can run pi in your iPhone or browser, or even embedded)
We have set up this demo, if you want to try Pi 1.0 online: https://wasmer.sh/?example=pi
(for an easter egg click on the Pi logo on the top left!)
However, they have now set full-screen mode as the default.
[0] https://github.com/wilt00/windows-terminal/releases
It's so interesting because Claude Code used to have this bug a long time ago, but it was eventually fixed. Strange that they both had/have the same issue.
Or is it a non-trivial bug that requires a lot of refactoring, and could introduce a lot of new bugs? That would require careful review from a human.
The latter may well be a reason why I don't see extreme productivity gains in larger brown-field projects.
(Disclaimer: I see enormous benefits in one-off greenfield projects.)
You can use llm to optimize some of this, I condensed the tool descriptions of some larger LM Studio plugins to shrink prefill by almost 10k tokens. But there's a soft limit to this, if you don't want to under-document available tools and let the model guess (/behave unsafely).
One optimization around this is called "smart tool selection", which only sends tool descriptions when the model indicates need for a certain tool (suite), not all of them upfront.
Oh and that will be the new default 'Full-screen mode by default'
How do I know? I implemented my own terminal harness and faced the same issue.
Since January I use Pi professionally as well as personally and I can only recommend to start small and grow your harness over time. For example, for an agent in production it was so helpful for me to use Pi in interactive mode via tmux to get a feel of the agentic flow, tool calls and reasoning traces for a certain use case while only the stylized responses are rendered in Telegram via an extension to the user. As a Developer, I have full technical observability and control while providing and incrementally improving a service to a user at the same time.
Excited how Pi Durable will fit in and can support more. Congrats and thank you!
In the past I used this abstraction conveniently to setup different agents for different purposes. I kinda like having this abstraction on my filesystem to inspect instead of it being hidden away in a opaque harness or, even worse, the weights of the model.
EDIT: then a Pi Extension that swaps .pi directories out, maybe via git worktrees, is just the low-hanging fruit to establish your profiles pattern I think.
The second case, more recent, is one where I use actively now is linking pi sessions to some artifact like a code change(PR or diff) or a collection of document and then continuing the session in that context.
What was your main power case with it.
> When I'm old I want people to remember Tolkien named companies for things other than weapon and surveillance systems.
Source: https://x.com/mitsuhiko/status/2041855748481695774
I think they mean that most companies that use these Tolkien names, are on the dark side.
Though I find it funny that they put “Bearer of Light” as a description, at least on their GitHub page. AFAIK Tolkien did not used the phrase, it is maybe a bit too close to the Latin version, Lucifer. Talk about a thing corrupted by darkness.
Or maybe from the 9th century poem Christ I [2], which translated to modern English starts off with the words
IKEA catalogs using Swedish names, and Swedish being a Germanic language that stayed truer to its Germanic roots than English did, it's not that far off. In a weird way1: https://en.wikipedia.org/wiki/Aurvandill
2: https://en.wikipedia.org/wiki/Christ_I
https://github.com/richardgill/pi-extensions/blob/main/PI_SE...
It's still pretty minimal and brings back just enough stuff that I don't miss Claude Code.
Pi's plugins are its strength, but also its weakness, because most feel more like personal vibe-coding projects than seriously maintained tools.
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.
ChatGPT Desktop seems to intentionally hide what they are doing and where they are storing state, sessions, config, I never had any idea what is in context or what "archiving" even means. I got sick of OpenAI hiding how ChatGPT Desktop was working. I opened pi and the default behavior shows me how much context I am using, how much that costs and tells me where it stores my session data.
Suddenly it was all demystified and that is why I use pi. It has nothing to do with a functional gap, it was the joy a using a harness that was transparent about how it worked.
Developers just love to spent considerably amount of time and effort into building tooling. Way more than working on the actual products.
But I must admit it is really fun to build your own harness and tweak it to your liking, even if it is never used for professional work ;-)
Manual tests in my minikube and has skills to deploy the right service there. It updates the jira ticket with test proof.
For debugging flows I build skills to use my local minikube that has our full dev environment and all services running. Can debug there. It has grafana skills for gcx can grab logs and through grafana even accesss dev/staging db for quering.
I wrote all the extensions with these custom integrations. It works just like I would work... I don't like adapting myself to another opinionated harness. I prefer my own opinionated workflows.
The light weight prompt and simple harness design are a lot of fun. I don't mind Claude Code, and I think its well designed for the problem domain, but Pi is a lot of fun to hack with.
Hope that helps!
[1]: https://mariozechner.at/posts/2025-11-30-pi-coding-agent/#to...
I started using Pi because it has a small system prompt and local models were too slow to start. Then I started adding custom skills and extensions when I hit little corner cases. It's been so easy to bend into what I need.
For example, I started using it, wanted a plan mode, downloaded an extension for it. Wanted to be able to analyze token usage for turn in a session, I had an agent create an extension for that. Then I wanted a custom status bar, so I had an agent implement an extension for that.
Oh My Pi comes preloaded with most stuff you need, so there's not much need to add extensions. https://github.com/can1357/oh-my-pi
It's kinda a tinkerer hobby IMO. I like the freedom, but at the end of the day, it's still just a harness.
It kind of just gets with how you creative you want to be about it.
One example here is that it added MCP extensions to make the harness usable with MCP servers long before Pi figured out that that was the right move. A lot can be said about development of MCP over that timeframe, but I appreciated the bias towards adoption, since progress is driven by empirical experimentation rather than theory in this domain right now.
I've long championed assembling developer tools yourself from scratch and I've been an advocate of vanilla Emacs and customizing it yourself as an ideal developer experience (I realize this opinion is controversial). But OMP is essentially the VSCode to pi's Emacs.
I ended up choosing omp as my daily driver, mostly because I see the velocity of change in AI development being far too fast for me to make a worthwhile investment into customizing the environment myself, since that investment will have a relatively short half-life. With Linux, which I learned more than 30 years ago and still believe to be a fantastic investment, I can largely use the same knowledge I gained then to administer systems today. I fear that much investment in the specific tools that I add to my pi harness will expire before 2027. So I'm sort of drafting OMP until things settle down.
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.
omp offers some nice tools, like /shake, to manage context efficiently and offset some of that consumption.
Not sure about your point with command keys. OMP has all kinds of shortcuts and is highly configurable. It seems very unlikely that you cannot achieve what you're looking for in OMP in terms of shortcuts. Specifics would be immensely helpful here.
And yeah, you'll need to run your inference engine separately from your harness, for the same reason the web server and the web browser are different applications.
Hell, some extensions could theoretically lower your token burn. (Like rtk, if it actually worked.)
I have another one that allows you to edit the items in your Pi /tree history.
Some permission manager extensions also sit between the model and the harness, and don't actively change the tool or prompt info.
I probably have more, but you get the idea.
It automates a lot of the babysitting of agents, and lets me use a couple of smaller models with safeguards instead of burning tokens on a galaxy brain just because it listens to instructions in AGENTS.md.
/omfg automatically adds new rules, so I have plenty of project-specific enforcement (e.g. disallowing making certain fields public, which agents love to do to take a shortcut that ruins the architecture).
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).
For one thing I've re-built my personal website with it (mostly via GH issues from GH iOS app) and also added a section to talk about how I use AI in general: https://a.l3x.in/ai
I also maintain a couple of other Pi-related projects:
- https://awesome-pi.site/ - https://github.com/shaftoe/pi-coding-agent-action
So yeah, I still love the tool and use it pretty much every day, either as TUI sessions or inside CI/CD workflows.
Long live Pi!
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 I do love it - super customizable, and my token usage seems way more efficient (this is purely vibe based ofc) compared to codex/cc.
I basically just install pi-fabric, pi-blackhole, grill-me and that's it. Tell my AGENTS.md to prefer subagent workflows. Herdr to manage all the terminals. I spend 99% of my professional work in this environment, I can't even remember the last time I had to open vscode/nvim.
Herdr is OK - but the actual interface / layout is nice. I previously would have like 6 terminals open and would lose track of which was which. I'm not super into the subagent workflows, but it's been helpful a time or two.
The only reason Herdr is just OK is because using agents to collaborate will sometimes just hijack my prompt input field. Maybe I'm using it incorrectly but I would have thought they might have a more elegant solution than that.
The only thing I've configured is the default model.
Did you write your own XMPP plugin, or did you use pi-xmpp package?
https://pi.dev/packages/pi-xmpp
Like, is this thread full of astroturfing bots? What am I reading
Pi is great overall. I ended up deploying a GUI wrapper because TUI isn't as friendly to new adopters.
https://github.com/hardbeat920/monocode
But yes, the TUIs are supposed to be lightweight yet it is overall a horrible experience.
You don’t need extensions or fancy setups.
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.
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 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 ¯\_(ツ)_/¯
I have eight or nine custom extensions at varying levels of maturity, some nearing the point where sharing them becomes useful.
One is a simple but obvious Eoka extension for Pi.
I modified my terminal (Alacritty) to support the Kitty image protocol (it already spoke sixel; Pi understandably uses the superior Kitty protocol). And a toolcall that lets the LLM put an image in the transcript (upstream Pi lets only image-modality LLMs do this). "Deepseek, do XYZ in a headful Chromium using Xvfb and show me a screenshot before each step".
Once you see the immense power you get from being able to modify both ends of the terminal connection (and having LLMs write the tests and tedious parts for you) it's addictive. I've added a custom terminal extension for negative-row-number cursor positioning, and support for it on both sides of the connection (Pi and Alacritty). End result: all the performance of native scrollback with no compromises -- Pi can modify rows above the top of the visible part of the screen, like collapsing/expanding toolcalls, without forcing a full-terminal refresh.
Also: click-to-expand/collapse toolcalls/replies individually. Really helpful.
Disappointed that Pi is abandoning the minimality philosophy.
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 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.
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.
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.
No affiliation, just arrived at Paseo after a bunch of research.
Tossed all my weekly usage for each provider at the top with their 5hour windows and such. its been great so far.
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.
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 :)
That goes against the philosophy of pi. Nearly Everything is a Plugin. Need to set the reasoning effort? Install pi-reasoning. Need subagents? Install pi-subagents. Need permission gating? Install one of the permission extensions (otherwise the agent can do everything).
A feature like cache warming on Anthrophic feels very strange in this environment. NOT saying that it is not useful. It just should be a plugin.
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.
A feature like cache warming on Anthrophic feels very strange in this environment. NOT saying that it is not useful. It just should be a plugin.
[0] https://usehax.dev/
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).
Pi ended up hitting a compaction during a tool call and finished without issues, which is what i expected - in fact after giving the instruction i left to visit a relative since i expected it wouldn't need me to babysit it.
FWIW after it finished, i asked it the following:
---
Can you answer me the following questions about how Hax manages the context?
1. How does Hax handle running out of tokens? It does have some form of compaction, but if the compaction fails for some reason (e.g. the summary ends up needing more tokens) what does it do?
2. Can it handle cases where the context runs out of tokens during tool calls and if so, can it recover? How?
3. What happens with compaction if an LLM produces a few large responses or the LLM reads a few large files? Does the process ends up summarizing the entire (or all but one) conversation? Or is the entire conversation lost?
4. Are there any safeguards in place to avoid overwhelming the LLM? For example any file and tool output limits? If there is and any limits are reached, how does it handle them?
---
It went on and checked the code and, briefly the response (it was bigger but i don't want to repeat the entire thing):
1. It doesn't update the session on failure (last "good" session is kept), running out of context is treated like any other error without any automatic recovery and you're expected to fix it by hand (personally i'm not a fan of this).
2. Multiple tool calls are fine (there is a 85% threshold check to trigger compaction and a 50k tool result limit) but if a response and results jumps from below 85% to over 100% despite being under the 50k limit, it doesn't trigger any compaction and the next request is denied by the provider (i.e. llama-server). I have a feeling this is what i hit when i tried Hax with its own code.
3. There is no recovery from a user turn (prompt + response + tool result) that exceeds the window. FWIW this also seems to be the case with Pi.
4. It found a bunch of safeguards (tool output cap, caps in bytes and lines for the read tool, bash writes to a temp file and only a part of it is sent to the LLM, edit size cap, etc). AFAICT it is the same as Pi with one neat addition in that there is a default 2 minute timeout for bash calls (i've seen the LLM more than once run a command in Pi and end up stopping for 30+ minutes because the command wouldn't end).
For 3 i asked it a followup question: "About 3: AFAIK Pi (the harness you're on right now) does a "spit" summarization where the old messages are summarized up to a cutoff/split point and replaced with the summary while the newer messages after the cutoff/split point remain intact, which allow a mostly seamless transition between compactions. Does Hax do the same or something similar?"
The response was that, no, it doesn't, it summarizes the entire context. Which TBH is a bit of a dealbreaker for me since i often rely on this "seamless" continuity in my prompts and feels like the main reason why compactions feel like a non-issue with Pi.
Take the above with a grain of salt, i only checked the code for the compaction not using a split/cutoff point between older and recent messages, the rest are whatever Qwen 3.8 27B understood, but they do match my short empirical test. Also if my own understanding of the code is correct, it seems to be using the same system prompt for the summary as for regular/interactive use while AFAIK Pi uses a dedicated "you're an expert summarizer" (or something like that :-P) prompt. Not sure if it makes much or any difference, with LLMs being what they are, but TBH whatever Pi does works great IME.
On the other hand the idea of a self-contained native AI harness in C/C++ is enticing, especially one that doesn't have any network traffic outside of LLM-related stuff[0] and explicit user requests (Pi does try to autoupdate and has a separate opt-out telemetry beacon - both of which are disabled in different means, one via environment variable and another via a setting, which smells a bit like an dark pattern to me).
Anyway, this is the result of my findings about Hax. It is neat, but TBH the context handling is the main dealbreaker for me, especially since i'm often having the agent do something in the background (using a local LLM isn't exactly the speediest workflow) and do other stuff or leave the computer alone, so the last thing i want is to babysit the agent for errors. Pi's split summarization and context overflow handling seem to work much better.
For now i'll probably stick with Pi (i have autoupdates and telemetry disabled and i hope there isn't any other hidden snitch in place) and perhaps at some point i'll do the NIH thing and make yet another agent myself :-P
[0] well, it does attempt to autoconnect to a potentially running llama-server in localhost without being explicitly told to do so (Pi wants explicit configuration) but meh
you can use /slots on the llama-server if you want to get more up-to-date details on session token use.
I always run models in their default context, which is 262144 for Qwen3.8 27B. I've run sessions in hax where it hit that cap multiple times and compressed the context down to 15% and continued with no problem.
Can you elaborate?
What are the decisions that lead to this difference and what are their pros and cons?
I noticed Pi being chatty, but I assumes this was a model issue (DS4.1F).
Yes- I plan to make a a full web app, as well as a web-and-terminal orchestrator app. Still planning the details.
Pi's selling point used to be: no MCP, native scrollback.
Now Pi is a fullscreen TUI with built-in MCP.
Although if you want to compare sloc, a quick Google returns that OpenCode is ~670k sloc, so it's smaller there, too. But the real advantage is the prior one.
Maybe spend $100,000 in tokens to fix that.
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!
It's really not all that bad anymore. I'll take going to any client and having roughly the same storage setup anyday over the hell that was the mix of enterprise sans we used to have to deal with.
I don't mind though, because I think either way it leads to a better design under the hood when things are built to be modular.
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 have a half finished repo that sets it all up for production (using systemd, not hacky scripts and one-off docker commands), if someone is interested in this, tell me, and it might give me the push to actually finish up the latest threads and publish it!
Haven't used omp web yet.
OMP spawns agents asynchronously, letting the main agent check on them periodically and even chat back and forth with the subagents to coordinate dynamically instead of losing control after initial prompt (it's also very amusing, like watching Sims play office).
OMP also has /tan tangential prompt which spawns subagents that reuse entire conversation prefix (cached), so you don't waste tokens on sending them a recap of the situation and them re-discovering the codebase themselves. OpenCode kinda does it with fork + switch of sessions, but a command inside one session is quicker.
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.
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.
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.
When I was first getting started and didn't realize that ollama defaults to incredibly tiny amounts of context, Pi was the only harness that actually worked because the rest of them used up all of the context and then some with the system prompt. However, these days I've figure out llama.cpp and proper context sizes.
OpenChamber has been the real game-changer that caused me to switch back to OpenCode, though. I love being able to check in on it from my phone, a browser, etc. instead of having to be at my computer to get anything done.
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.
https://github.com/vinhnx/vtcode
Or Fisher in the 1930s with data driven linear didcriminants.
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.
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.
That is totally disappointing.
If there's anything that I can conclude about Anthropics idea of how a LLM should speak. Vibes would have been an euphemism
Is it worthwhile to spend time and effort into setting up and switching to Pi? I always see people praising Pi online but I am curious to know from people who switched over from OpenCode why they did so and what I am missing.
What's great with Pi is that it's very easy to extend, because it knows its own doc. So you tell it "implement a plugin that does this" and it does it directly in its own folder.
That means I have a plan mode that works exactly the way I want, I have a hook that cleans up added comments after each change, I can ask "pull this github PR and assess the comments", etc.
I've been avoiding investing in these kinds of tools and workflows partially because I don't understand the UX (and partially because I worry UX and tooling will change so fast that I won't get a positive ROI). Your hook sounds like a script, but your plan mode sounds like an interactive TUI, and "pull this PR and assess" sounds like a reverse proxy tool or something?
I can definitely see why the custom plan mode is useful vs just calling a script or asking the model to do something, but what's the draw to building comment cleanup and github API access into the harness vs running the comment cleanup as part of CI, or just asking the model to pull a PR and review it using gh/the web UI/the github api (with no special harness handling)? Does the model get updated with changes you make to files it already read or recently wrote?
The way I normally use coding agents is by giving them a very large task specification in a fresh session with some kind of verifiable exit criteria, and sending them off + staying out of their way. Normally I would just use other sessions or run scripts to do these things because the coding agents I've used queue any /command I give them (very frustrating when you have to wait 30+m just to check usage!) while the model is working, and in my sessions the model is working >90% of the time, so I usually have other terminal windows or applications open anyway.
Same with opencode, no? It has a default skill just for that.
And I ask LLMs to do so without installing naything or running any post install/clone scripts. Also ask them to scan the entire codebase of the plugin for malware or security issues.
This is how I made my own MCP plugin before pi supported it. "Clone this MCP plugin, simplify it and scan for security issues."
- 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.
Though, I realize now the "hundreds of thousands" claim I was responding to is per week, while my guess is all time.
True, but I think even OpenClaw usage has falled off a cliff, plus that makes it implicit usage, most OpenClaw users probably don't care either way, it was chosen for them and they probably don't think much about it.
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.
You'd see a lot more Emacs users (comparatively) in academic jobs than, let's say, web development.
As an anecdote, I worked for a network monitoring company, 90%+ of the devs were on vim. Later, I worked in a run-of-the-mill SaaS, 90%+ of the devs were on VSCode.
I'd think that (neo)vim is quite popular. Emacs, less so, that's true.
But according to the Lindy's effect, I wouldn't be surprised if VSCode disappears before Emacs and Vim. Especially as heavy LLM users are opening their text editor less and less.
Not a proof, but that makes it sound more plausible, no?
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.
Out of curiosity, have you come across Axiom (https://charleswiltgen.github.io/Axiom/) in your quest for more effective AI-assisted iOS coding?
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
[0]: https://earendil.com/posts/pi-durable/
And when a Linux distro bumps a dependency that Node requires on without updating Node to use the updated dependency, then Pi doesn't start.
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.
This is more about demanding more of the big software vendors than it is about making an argument for the general software developer to write programs in Rust or Go.
We are talking about trillion dollar companies with highly paid engineers and unlimited token budgets.
As someone who has been writing TypeScript since the beta and started writing Rust professionally only 5 years ago, I'm about as productive in Rust as I am in TypeScript - so if I were distributing software, I'd want to ensure the end user has the best possible experience and that's hard to achieve with the node/python ecosystem.
"Run this bash script to install my CLI tool" behind the scenes it downloads a full copy of Node.js, installs the npm dependencies, add executable scripts for the entry points, updates PATH. It takes almost a second to start up, has no threads and uses way more memory than is necessary. Extend that to Electron applications which not only bundle Chromium, but also bundle Node.js - that's two v8 engines running and a process that starts with a memory footprint of almost a gigabyte.
Compare that to just downloading a portable self-contained single executable and running it. No package manager, no install scripts - just double click.
The end user is not installing cargo, compiling, or anything - they just run the binary.
It's minimal and intended to be modified.
When was the last time you patched Pi / OpenCode / Claude dist or source code before running it?
Most people use plugins, and native apps have no issues with that.
> When was the last time you patched Pi / OpenCode / Claude dist or source code before running it?
Funny you ask. Yesterday I patched opencode to replace \ paths with / depending on some heuristics. Couldn't get a plugin to fix in all cases I needed. Solved in one minute :)
And plugins for executables suck compared to "just create a .ts file in this directory and edit/test it in a few seconds until satisfied".
There's a target audience for rust harnesses but their overlap with pi audience is quite small.
You could write them in Go, TypeScript, Python, whatever. If you wanted to write your plugin in Rust, you'd need the Rust toolchain though, yes.
Plugins don't need to be in the host language. It's up to the harness writer to ensure the plugin engine makes sense for the patterns of plugin writers.
Then it's up to plugin writers to ensure their plugins are performant so people enjoy using them.
> And plugins for executables suck compared to "just create a .ts file in this directory and edit/test it in a few seconds until satisfied".
Not really? Deno, Node.js are both embeddable within a native application, so plugins can be written in TypeScript without any change in expectations from the plugin dev's perspective. There's also QuickJS and LLRT which use like 1000x less resources than v8 (faster for plugins, slower for servers).
No one is asking plugin devs to change, just that the harness writers provide better platforms to build on top of
You get the worst of both worlds and that's probably why the most harnesses tools don't do that.
What you're describin already exist but the target audience for such is small. I invite you to try and watch the adoption :) It's just a prompt away.
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 ...
https://3code.capocasa.dev
Written in Nim. Unixy scrollback but cross plaform. Tested for token efficiency.
Not really. It lowers it, sure. By a lot even. But you still have the system requirement for compilation and ecosystem to deal with.
I run it like `sbh --net pi` or `sbh --net --docker pi` depending if I want the agent to have docker access. The result is that ~/src/my-project gets mounted as `/w/home/lion/src/my-project` and any LLM I've tried understands that this is a sandbox implicitly.
I strongly suggest everyone who uses a harness, of any kind, to copy it and edit it to better suit one's setup.
sbh: https://github.com/lionkor/sbh
But loved the minimalism, extensibility! It's a very capable harness.
Have my own extensions for MCP, subagents, ui, history management etc. overall i feel my workflow has got a lot better.
Love pi!
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 without extensions, with a decent model that allows thinking to be disabled works really well, and is faster than multiple subagents.
- cost saving when using lower-tier models to index information
- routing between models from different providers
Here's my minimal set up: https://github.com/richardgill/pi-extensions/blob/main/PI_SE...
https://github.com/vinhnx/vtcode
Slopsite here: https://piproxy.latchlabs.dev
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.
Seems to support my skepticism.
Each family gets their own system prompt, based on the original harness one, but compacted and includes instructions for more brevity.
I've been assuming a harness is basically a set of tools and a TUI for passing text to the model and the model coming back with tool calls and user responses.
Are the tools really that complex and different between harnesses?
- read - write - edit - bash
They explicitly said no MCP and no fullscreen TUI, which makes it minimal and attracts many people.
The rationale for MCP and codemode I can swallow, Armin's writing on that makes a lot of sense, and meeting models where they are seems critical to me based on my own experience.
But for me, fullscreen mode is a huge turn-off. I already have a backbuffer that I strongly prefer to use, it's called my terminal, and it's important to me. If the backbuffer-based version disappears, I'll be forced to migrate to something else (seems there are a few options here) or make my own tool, but that involves abandoning or porting my extensions, which turned out to be a huge superpower with Pi. Perhaps Pi Durable helps with that and lets me keep my extensions, but I'd rather this was not necessary in the first place.
If switching to full-blown TUI has anything to do with how slow the "expand thinking" and "expand tool output" features get as the session gets longer, could that be mitigated by only expanding the n most recent behind the default shortcut, and the slower "nah, I really do want you to expand them all thanks" can be a different shortcut?
If it's to add more fancy features that require fullscreen rendering and a dyed-in-the-wool terminal user like me might reasonably tolerate as a dismissable modal, make those bits TUI, but keep the backbuffer in the terminal (for e.g. the session tree or the settings, those don't need to be in the terminal's scrollback).
And if it's for any other, richer interactions... can we just... not, instead, and let the terminal be the terminal rather than a single page web app?
I'm working with Claude's workflow, but I haven't yet felt any demand for customization.
For those who use this well, could you share examples of how you use it?
EDIT: forgot to mention local models
https://tex64.com/learn/getting-started/about
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
What harnesses do you recommend?
https://departuremono.com/
TL;DR: Pi is amazing.
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)
Adding insult to injury, Pi apparently considers low Tolkien usage to be beneficial.
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.
Man, first MCP then this? The main reason I use Pi is because it didn't try to reinvent my terminal's buttery-smooth native scrolling -- something no terminal client can ever match.
Did you all get acquired by private equity or something? The enshittification is coming at us fast.
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"
The codemode stuff/mcp has been explained to death at this point but I haven't seen anything around fullscreen.
(I don't have strong feelings either way, just curious)
I wanted the out of the box experience to be smoother for more people, so made it the default. Scrollback mode will stay though for users who prefer it.
If only there was some way to... ah no time to be snarky. It's open source and MIT licensed and you're in a thread discussing AI coding agents.
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!
I can't for the life of me figure out why people would think pi is bloated.
it's still there and won't get removed.
https://3code.capocasa.dev
I believe software can be done- with incremental improvement and keeping the foundation, like vim. That's the 3code trajectory.
New fun ideas go into seperate tools, possibly ones 3code (or other minimal agents) can call, but the core stays lean.
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.
And yes, API must be maintained for compatibility, but that is needed anyway.
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...
TS probably has the most expressive type system of any language that I have used, and you can develop at lightning speed without fighting the borrow checker or anything else. The ability to share the exact same code across the front and back end, and encode API contracts in the type system, is a superpower for webapps built with node.
Whether an LLM writes the code or not is besides the point. What matters is that the code should be testable, and understandable. TS wins on both counts, like most sane alternatives.
I personally do not program using any language that does not have the ability to specify types.
Out of curiosity, which language do you think would have been better for the web? Visual Basic, TCL, and Python were the other main contenders in the mid '90s. Would you rather be working with one of those nearly every day?
Beyond that, if you could pick any language as the lingua franca for the web, what would you choose?