Live data from Hacker News

Pi's Minimalism Is Its Advantage

earendil.com

231–240 of 307 posts

Re: Pi's Minimalism Is Its Advantage

#231

Earlier quoted context omitted.

> For a program that's minimal it sure takes a long time to start up, the standard C-p and C-n bindings don't work, it doesn't follow the XDG Base Directory Specification and just pollutes my $HOME directory. This drives me mad, I believe Ollama and Claude Code also do this. Seems to be rife in the LLM world. IMO there's no excuse for new software sticking dotfiles in my homedir in 2026.

My impression is that it's the NodeJS, Go and Rust communities that don't care about XDG. This 11 year old, open issue is very symptomatic of this IMHO: https://github.com/rust-lang/cargo/issues/1734

Not sure about use in the Go community at large but Go introduced os.UserConfigDir[1] which is portable across Windows, macOS, Plan 9 and Linux/BSD as per XDG back in 2019. Also CacheDir.

[1]: https://pkg.go.dev/os#UserConfigDir

Re: Pi's Minimalism Is Its Advantage

#232

Lots of praise for Pi in this thread, so I'll offer up a diverging opinion. Given all the hype, I was a bit underwhelmed by Pi. It definitely has some good ideas around customization, but it annoyed me in many little ways. For a program that's minimal it sure takes a long time to start up, the standard C-p and C-n bindings don't work, it doesn't follow the XDG Base Directory Specification and just pollutes my $HOME d…

> standard C-p and C-n bindings don't work I know it's little, but this was the first thing I noticed and it made me think, "Maybe this app isn't for me." EDIT: FWIW, I just complained to pi and it added the keybinds for me in 10 seconds.

There is a keybindings file. Here's how to configure the "emacs" keybindings https://pi.dev/docs/latest/keybindings#emacs-example

It starts up for me in under a second on my M4 mac. (Obviously could be faster, but doesn't bother me personally on my hardware)

My one main "issue" is with using the pi-sandbox extension. It's based on a forked claude code sandbox runtime. Not exactly sure why a fork was needed, and the fork is a bit behind now. I also wish the sandbox feature worked a bit more like how Cursor's sandboxing worked. Not familiar with Claude Code sandboxing, so can't compare that. I describe the issue and a (slightly hacky, but productive enough) workaround here: https://github.com/carderne/pi-sandbox/issues/50

Obviously the fact that I can fork a plugin for pi and customize it as needed is quite a plus too. Really all the other features work quite well for me!

Re: Pi's Minimalism Is Its Advantage

#233
post #140

Earlier quoted context omitted.

> For a program that's minimal it sure takes a long time to start up, the standard C-p and C-n bindings don't work, it doesn't follow the XDG Base Directory Specification and just pollutes my $HOME directory. This drives me mad, I believe Ollama and Claude Code also do this. Seems to be rife in the LLM world. IMO there's no excuse for new software sticking dotfiles in my homedir in 2026.

> IMO there's no excuse for new software sticking dotfiles in my homedir in 2026. Agreed, and also, tinfoil hat time: I believe they opt for this so that state and config files don’t need to be distinguished (it all goes into ~/.appname the same). It’s still not an excuse, but maybe laziness is the reason ?

I think underuse/under-marketing of XDG_STATE_HOME is a contributing factor. Developers see XDG_DATA_HOME and XDG_CONFIG_HOME and, following the spec, don't feel like their app's files conform to either definition. It's easier to just not bother. Neovim now uses all 3 and it's very nice IMO.

Re: Pi's Minimalism Is Its Advantage

#234
post #222

Earlier quoted context omitted.

The problem with the XDG spec is that it now forces you to have different paths on different platforms. It just increases the complexity and at the end of the day unless all software adheres to it, you still end up with a “polluted HOME”. I’m not a fan of config directories being in different locations on different platforms because it’s now one extra thing everyone needs to handle. (Disclaimer: I work on Pi but I di…

Platform standards already require things to be in different locations compared to *NIX dotfiles and dotdirectories - for example Windows %APPDATA%. I find it a bit shocking that someone working on an agent harness can't be bothered to spend 5 minutes to research this with the help of an LLM and holds such rigid and uninformed views. And if you don't want to respect platform standards, just respect XDG on all platfor…

I suspect some people are out there who actually like the single directory style. Obviously it's easier for the software developer, but I suspect some users like it too because everything's all in one place. It's very likely that Mario is one of those people.

Re: Pi's Minimalism Is Its Advantage

#235
post #14

The biggest issue with Pi is that they don't have proper sandboxing with auto approval. Most solutions are third party and half baked. You have to either choose between just auto approval (no sandboxing), or a Claude/Codex style sandbox but manual approval.

I find pi-sandbox works well for me. Did you evaluate pi-sandbox? If not, give it a try.

Re: Pi's Minimalism Is Its Advantage

#236
post #214
post #201

Earlier quoted context omitted.

What is that set of functions for you?

I can't offer a definitive list. But some/all of web access, web search, sub-agents, plan, goals, looping, and maybe a to-do list. I'd suggest the default should be anything that makes the model more efficient or effective to a reasonable current level.

I disagree on plan and todo-list, which seem relatively not needed to me. No comment on goals/looping, which I don't have much experience with.

To me it's great how minimal the system prompt and tool set is, and I doubt those features are worth the tokens for every model. (Who knows if they improve performance for SOTA models, and they probably harm performance for small local models.)

I would add "better sandbox" support, which I think should be included out of the box. Not having a very simple way to get out of "yolo" mode is kinda crazy. Sure, there are plugins, but they do have some issues.

pi-bash-approval is good, but manual approval plus allowlist is a "bad" way to run coding agents.

The "best" way in my current opinion, is where commands run by default in a sandbox, but commands can be ran unsandboxed as needed, requiring approval or allow-list in that case. Cursor was pretty good at this (when I used it). For example I don't want to configure my sandbox with access to docker, which would present easy jailbreaks, but I do want to allowlist certain docker commands or approve them to run on my host as needed. pi-sandbox is good at allowing me to configure sandbox access, but this feature where somethings can run unsandboxed is missing. I write more about this and about (hacky, but productive enough) workaround here: https://github.com/carderne/pi-sandbox/issues/50

Re: Pi's Minimalism Is Its Advantage

#239

Lots of praise for Pi in this thread, so I'll offer up a diverging opinion. Given all the hype, I was a bit underwhelmed by Pi. It definitely has some good ideas around customization, but it annoyed me in many little ways. For a program that's minimal it sure takes a long time to start up, the standard C-p and C-n bindings don't work, it doesn't follow the XDG Base Directory Specification and just pollutes my $HOME d…

> Lots of praise for Pi in this thread, so I'll offer up a diverging opinion.

Being reflexively contarian is not what HN is for.

https://news.ycombinator.com/item?id=45530593

> For a program that's minimal it sure takes a long time to start up

It took the same amount of time (3 seconds) as cursor-agent and codex on my machine, which isn't particularly high-spec.

> the standard C-p and C-n bindings don't work

It has programmable keybindings and you can ask the agent to remap them in five minutes, if not 30 seconds.

> it doesn't follow the XDG Base Directory Specification and just pollutes my $HOME directory

You can make it put .pi/agent anywhere with $PI_CODING_AGENT_DIR in 10 seconds.

> scriptable in a simple (aka non-JS) scripting language

This doesn't make any sense. The very point of Pi is that instead of implementing all of your features directly in the harness, you make the harness minimal and then implement the functionality you want as extensions, which necessarily means that you have some powerful and expressive extension language, ideally the one the harness was written in.

I suspect that if the harness was written in Lua (which I love and is probably the least bad choice of "scripting" language), you would have far more issues with it.

If these are your complaints, then this is one of the strongest endorsements of Pi that I've ever seen. I think I'm bookmarking this comment.

Re: Pi's Minimalism Is Its Advantage

#240
I recently moved entirely to Pi, and I am really enjoying the journey so far.

I am slowly shaping it to the way I like to work. It's a bit of a bumpy start, but there are two benefits I see from it:

First is that you get to understand better what goes on behind the scenes. Since it is minimalistic, you have to think about your workflow, about what you want your agents to do, how you want them to do it, etc. It's a completely different way to work since tools like ClaudeCode do a lot of heavy lifting behind the scenes and just force on you their established way of doing things. By adding the building blocks yourself, you end up with a better understanding (and in many ways, control) of what is happening there.

Second, I adore how I can juggle sessions in Pi. /tree, /clone and /name quickly became second nature for me to manage agents. I am totally abusing prompt templates in my development workflows.

Also, it is an awesome harness for the models I use. DS and MiMo feel very snappy now, especially after I started to adapt Pi to my way of working. Lastly, even though those models are already cheap even on Claude Code, it feels like it is even cheaper now.

Post reply on HN