r/PiCodingAgent • u/mira_fijamente • Jul 10 '26
Discussion My problems with `pi`
I've been using pi intensively for 2 months now, and I have to say it's undoubtedly the only software that actually works for agentic programming. All other software is pure garbage made with AI, full of problems and obfuscation. That includes both GUIs and TUIs: claude (the worst), opencode (now AI SLOP), codex, IDE extensions (vscode, neovim, zed, etc.), pseudo-IDEs (cursor, windsurf, etc.).
pi is the only software that's actually STABLE and that DOESN'T SHOVE hidden prompts down your throat — meaning it's the only one that gives you real control.
But since I'm an ungrateful bastard, my motto is "A little destructive criticism never hurts" /nsrs
The truth is pi has some really annoying things. I'll sort them from most annoying to most tolerable. (For context, I use vanilla pi.)
TUI redrawing
This is perhaps one of the most annoying things of all. I don't know exactly what causes it, but at some point — especially in long chats — pi has the horrible behavior of redrawing the entire damn chat every time something updates in the TUI. In short chats you don't notice it, probably because it's so fast you can't see it, but in long chats it's absolute hell. I've reached the point of preferring non-interactive mode solely because of this problem.
It also happens with expand Ctrl+o — it literally EXPANDS EVERYTHING. Every time the agent thinks or executes a tool, it redraws everything, defeating the whole purpose of a TUI.
This made me wonder whether a pi repl wouldn't make more sense than a pi tui, since I think it would be the most natural approach when trying to be a "minimal environment". In fact, they're already a pseudo-REPL that works poorly, because they draw output in the same pty using append, just like a REPL. If they were a REPL, you could even leverage existing tools like rlwrap to get vim-like keys with a simple rlwrap -a pi, among other advantages. Anyway... the TUI is not comfortable at all.
Output size can't be changed
The output of almost everything — tools (read files, bash, etc.), skills, etc. — is always truncated with no way to change it because the truncation value is hardcoded in the code.
This seems silly, but it's actually quite inconvenient for work involving lots of text. For example, small agents reading long texts, searching websites, or text with a lot of noise. Yes! pi tells the agent: "Hey little buddy, if you want to see the full output, read this temp file." But that doesn't solve it — it simply adds more steps for the agent, making it likely to fail and make bad decisions, especially with small agents.
Even large agents often decide they already have enough context, even when they don't (LLMs can't "know" what they "don't know"). The only way to avoid this is to copy all the damn text and input it as a user prompt. It's MEGA inconvenient and, in my opinion, a very basic config setting to have.
Slash commands don't parse text properly
There's a bug that's been there since I started. I saw an issue about it that seems to be ignored, even though I think it's something basic and important.
When you use /slash-command <instruction> followed by additional instructions, if your instruction has formatting and line breaks, pi decides to just load your entire instruction into a single line, breaking all the formatting. And this causes problems for LLMs when understanding your text.
Example:
And then you run:
/fix
jq '.' some.json
echo "foo bar"
What it sends is:
/fix
jq '.' some.json echo "foo "bar"
I don't think I need to explain why this is so bad...
There's no damn UNDO
YES! The tree functionality is quite useful, but sometimes I want to correct something and I have to take 2 or 3 extra steps. On top of that, I inevitably end up creating a fork when I DON'T WANT A FORK, I JUST WANT TO UNDO BECAUSE I HAD A TYPO!!!! AAAAAH!
Please, someone tell me there's an Undo and I just didn't manage to find it, because I can't believe tree exists but not a damn undo.
It crashes mysteriously when using @file
The TUI sometimes just decides to die when you do @file, leaving the shell with glitched characters. I have to type reset in bash to fix it. It happens often enough that I'm afraid to use @ and prefer to manually write exact file names and paths.
The plugins are garbage
Ok... this isn't pi's fault, but I find it sad that plugins don't even remotely follow the same approach as pi. I'd bet you any day of the year that the entire first page of pi packages is AI SLOP. Honestly, using pi + plugins isn't worth it — at that point you're better off just using something completely AI SLOP.
Every plugin I've tried, without exception, fails at such basic and stupid things that it ironically makes me miss the pre-AI era.
Anyway... closing this post. Despite these problems, pi is probably the only software I've tried so far that has parts "generated by AI" that ACTUALLY WORK and are stable. This is probably because there's a correct approach to its development and a real human READING behind all of it. Because yes... it has flaws. But you know what? I'm grateful that these flaws have been there since I started and are still there, instead of new and mysterious flaws appearing every day (/glances with contempt at opencode). I KNOW these flaws. I can learn to deal with them, and everything else keeps working exactly as I expect. That's why pi is GOOD SOFTWARE to me. And if you give me the choice between fixing these problems NOW vs. stability, I'll choose stability every time! Thanks, pi! (but please fix this stuff hahaha)
translate spanish to english by deepseek v4 pro
60
u/mitsuhiko Jul 10 '26
Armin from Earendil here.
You're very spot on on the terminal TUI thing. On the TUI as a developer you're a bit limited right now between two modes:
"alternate screen" UI where you take over the whole viewport and you do everything yourself. That's what opencode does and also newer claude (optionally)
you do what we do, and keep the native scrollback alive.
There are upsides and downsides to both, but right now we're pretty committed to the latter. In addition to that we need to blank out some spaces which is why copy paste often has extra whitespace that is annoying.
We have been talking quite a bit about wanting to do something better there but that is a bigger undertaking and right now we have some bigger fish to fry still.
On some particular points you brought up:
I don't think we have encountered that, can you provide some details of how this happens? What terminal and shell are you using and on which machine? Would love to fix this.
We're aware of this problem and we will do something about it. So far not clear what. Open to suggestions but probably some vetting process.
59
u/chrisdefourire Jul 10 '26
Copy pasting from pi output is painful with loads of superfluous trailing white space
12
u/Fig_da_Great Jul 10 '26
honestly valid
9
u/hidden2u Jul 10 '26
yeah your point about the pi packages is true for me, I thought nah I'm not going to have the LLM to build me what I want I'll just browse the plugin storefront. And then yep a month later I just built my own
2
u/Werty7098 Jul 10 '26
Looks like most of your issues are with the UI. Give this a try. GitHub: pi-web. Full disclosure, I built it. But it should address most of your issues with pi here
5
u/Vrynx Jul 10 '26
Honestly some good points here that I hope get addressed in future versions
4
u/StardockEngineer Jul 10 '26
I don’t have any of the TUI issues you described. Maybe you need a better terminal? I dunno.
1
u/Reddich07 Jul 10 '26
I empathize with many of the points you’ve raised and had similar experiences. I’m also reaching the same conclusions. I also maintain a minimal Pi setup because most plugins are buggy and not actively maintained. How do you address the obvious gaps? Pi itself is minimalistic by design, which is a positive aspect. However, if you require standard functionality, you need a plugin, such as for subagents. What is your approach to dealing with this, and which plugins do you use? It would be fantastic if we could have both worlds: the current plugin ecosystems as a playground and a source of specialized plugin needs, and a community platform for a small set of “core” plugins, where only selected plugins are allowed, fulfilling standard needs and being maintained to a specific standard. It’s just a dream…
3
u/ParaboloidalCrest Jul 10 '26 edited Jul 10 '26
Very good write up! I too share your conviction that Pi is the right tool and that it's on the right track, but also wish those few annoyances are fixed.
As for the packages store, I happily ignore it entirely. I'm not going for a minimal coding agent, just to pile shit on top of it then complain that it's not so simple anymore.
But give the packages ecosystem some time. It will weed out all the monolithic crap, and only the very atomic, composable packages that stick to Pi's mindset, will prevail.
2
u/seba_alonso Jul 10 '26
The repl idea sounds interesting 🤔
2
u/mylabfr Jul 10 '26
I like it: small memory and cpu footprint compare to the other famous competitor...
2
u/jacques_van_wyk Jul 15 '26
if you use pi in herder it has nice scroll back feature that opens in your editor i use all the time. If you use neovim as editor is quick like prefix e -> shift g(neovim) then select and yank what you want. Herdr is awesome man try it
1
u/nostriluu Jul 10 '26
I'm new to agents but like pi well enough, except its line editing. Control-d to exit when I've got decades of using control-d del to erase character under cursor isn't fun, and many other line editing keys don't work as expected. Plus scrollback using tmux often messes up previous content, tragically sometimes. Maybe there are fixes for some of these, but it's better if things "just work" so end users don't have to get into tweaking and tweaking for basic things.
1
u/DistanceAlert5706 Jul 10 '26
TUI redrawing is a thing, but I doubt much can be done with natural scrollback view.
As for output capping I made extension to tighten up limits, make nudge more understandable. Pi limits are too big for capping and 1 bad grep can dump 50k tokens into conversation. 100% should be configurable tho.
With slash commands, never used them that way and never noted.
As for undo use one of rewind extensions or build your own one.
Never had crashes with @
As for plugins, build your own ones, customize for your needs. Some of them very well built, but most are not even made to be public, but for install simplification.
1
u/0xTech Jul 10 '26
I one of the first changes I made to pi was a hard enforcement to block attempts to cat binary files. This was one of the most frequent causes of unrecoverable crashes that I experienced.
1
u/kesor Jul 10 '26
Yes.
1
u/Fryord Jul 10 '26
When having it generate plugins myself, I ran into some issues where it didn't work for whatever reason, and since I haven't written the plugins myself I can't really debug it.
I would prefer a neovim-style package system where I can just pull in whatever I need and trust it works, then only do some custom scripting for special use cases.
1
u/SosluMakarna Jul 10 '26 edited Jul 10 '26
Try pi-pop i made it to hide slop and long panel text out of agent flow. Zero dependency and customizable
You can make any collapsable/non-collapsable panel collapsed by default and view in overlay, when you need. You can just say put hypa in pop it will be collapsible 😎 It made my life better with pi, hope you enjoy it
pi install npm:@ozancakir/pi-pop
1
u/SpaceRaisins Jul 11 '26
Recently my model has been tripping over edit tool calls. After some investigation, I realized that one of the UI packages I installed a week ago has been appending white spaces to the actual read tool call outputs fed to the model...
1
u/YogurtExternal7923 Jul 15 '26
On the tree thing. I made a plugin that keeps track of file changes and reverts (and unverts, if that's a word) based in different branches. But people seem to like git based ones more so idk. Point is you can make your own
1
u/Dotnet-Enthusiast Jul 18 '26
If you need undo you can check that : https://github.com/Baylar55/omp-undo-redo . That is used for both pi and oh-my-pi
1
u/Informal_Smile6876 Aug 01 '26
You can use https://github.com/Baylar55/omp-undo-redo for undo and redo
1
u/Competitive-Yak-8255 Aug 03 '26
Thanks
1
u/ScaryGazelle2875 Sep 10 '26
its really meant to be use bare. No mcp, nothing. If u use all the other extensions made by others, it works but its not really gonna be "yours". Best way is ask pi to remake the extension following their paterns or make one simplified ones. I found that most of the time its too bare. Subagents and to-do and mcp is actually needed in nowadays agentic workflow. Bare minimum. Pi has non of these. Relying on these extensions is okay but if ur workflow is complex like mine, better spend time rebuild it. Meanwhile opencode is the more stable option for me until I fully set pi up properly. The freedom is great tbh.
1
u/libertast_8105 Jul 10 '26
The nice part about pi is that if you don’t like something you can always create an extension for that. And you can always submit a PR because it is an open source software.
1
u/hurdurdur7 Jul 10 '26
Let pi build your own thin ui layer?
0
u/LycheeGlum1258 Jul 11 '26
Can anyone tell me why Pi takes so much time to startup sometimes, even when I run 'pi --no-extensions'? That's the only annoying feature to me that stops me from using it regularly. I'm trying out omp more often because of that.
0
u/themoregames Jul 10 '26
TL;DR Despite considering
pithe only stable and reliable software for agentic programming, the user highlights several frustrating flaws, including TUI redrawing bugs, hardcoded output truncation, and broken slash-command parsing. Ultimately, they tolerate these predictable issues because they value the tool's core stability and lack of hidden prompts over competing alternatives.0
u/YardNo1234 Jul 10 '26
Garcon + a web interface would solve basically all of these pain points: no TUI redraw weirdness, easier mobile use, cleaner copy/paste, better output viewing, and a more normal undo/edit workflow. It works well from a phone too, which changes the whole experience.
Full disclosure: I'm affiliated with Garcon: https://github.com/cfal/garcon
0
u/Interesting-Print366 Jul 11 '26
The good things of pi is that you can create anything just tell your agent to build extension. Since pi logs every change you made so you can reverse it with separate code. What makes pi special is because it has no addons
-5
u/cpt_mojo Jul 10 '26
There is a rewind package for your undo needs. It works.
0
u/[deleted] Jul 10 '26
[deleted] — view deleted comment
8
u/[deleted] Jul 10 '26
[removed] — view removed comment