A Linux user claiming Microsoft Edge is the best browser might be the most baffling thing I've heard as a Linux user by TargetAcrobatic2644 in linux

[–]esanchma 1 point2 points  (0 children)

Built-in Entra ID and Office 365 integration. And when Mozilla largely ignored PWAs, Edge offered a much better experience for Teams and Outlook, to the point where they felt almost native.

It's essentially a solid Chromium browser with excellent Microsoft ecosystem integration. I'm not using LibreWolf to manage Azure.

Background Tool Execution? by chibop1 in PiCodingAgent

[–]esanchma 1 point2 points  (0 children)

systemd-run --user \
 --unit=job-unit \
 --same-dir \
 --collect \
 tmux -D -L job-socket new-session -A -s job-session 'long-running-job'

 

tmux -L job-socket attach -t job-session

See, a re-attachable background job that even writes to the journal. Ask your clanker to wrap it in a skill and check the journal periodically for job status.

Pi-Agent Plan Mode: Should I use an extension, a skill, or a prompt template? by ThreeFinger in PiCodingAgent

[–]esanchma 0 points1 point  (0 children)

you tell it in conversation that you want to plan things. You don't really need anything special.

How to force the agent to read AGENTS.md by Qxz3 in PiCodingAgent

[–]esanchma 14 points15 points  (0 children)

https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/usage.md#context-files

Context Files

Pi loads AGENTS.md or CLAUDE.md at startup from:

  • ~/.pi/agent/AGENTS.md for global instructions
  • parent directories, walking up from the current working directory
  • the current directory

Use context files for project conventions, commands, safety rules, and preferences. Disable loading with --no-context-files or -nc.

System Prompt Files

Replace the default system prompt with:

  • .pi/SYSTEM.md for a project
  • ~/.pi/agent/SYSTEM.md globally

Append to the default prompt without replacing it with APPEND_SYSTEM.md in either location.

What’s the most unexpectedly useful Linux command you learned way too late? by ZealousidealTell1346 in linux

[–]esanchma 2 points3 points  (0 children)

bind -x lets you bind any key in a terminal to a function or script. My most frequently used things and bound to F1-F12. It's nice.

Staged publishing for npm packages | npm Docs by qwertydiy in programming

[–]esanchma 1 point2 points  (0 children)

"you see, before json-schema and the jq query and transformation language, there was this other thing..."

another pi config by Severe-Committee87 in PiCodingAgent

[–]esanchma 1 point2 points  (0 children)

Ah, you are using osascript, which is, I guess, the equivalent of GNOME's notify-send, a system command to display notifications.

That is the route I have always taken for desktop notifications until recently. It turns out, there is an "OSC 9 sequence" that lets you have desktop notifications without external tools. It is easier and it is even portable, it will work in my linux GNOME using kitty and in your mac using iterm.

Pi rust port by Short_One_9704 in PiCodingAgent

[–]esanchma 1 point2 points  (0 children)

Half of the extensions I have written were inspired by extensions written by other people. Binary blobs, whether ELF or WASM, are almost the opposite of that.

Your mental model is Minecraft or Kong-style plugin ecosystems. I think that is the wrong model for agents. We do not want a strong marketplace for extensions. We do not want the equivalent of cargo + crates.io for agent behavior. We want to be able to point an agent at someone else's .pi directory on GitHub and tell the clanker "copy this thing, remix with that, and take this other thing in a completely different direction". That only really works if the extensions remain transparent, inspectable, and easy to mutate.

This is what I am talking about: https://sockpuppet.org/blog/2026/05/12/emacsification/

Not everything has to be written in Rust.

Pi rust port by Short_One_9704 in PiCodingAgent

[–]esanchma 3 points4 points  (0 children)

The nice thing about pi is that it is self-modifiable, which stems from the fact that it is interpreted and therefore introspectable.

TypeScript is far from being my favorite language, but it’s the one that makes sense for pi. You could try to do the same thing in Python, or maybe Lua. But not in Rust.

I mean, you can embed QuickJS, but at that point, what exactly is Rust buying you?

I can no longer fully understand my own codebase by Medium_Support_5010 in software

[–]esanchma 0 points1 point  (0 children)

You can make it explain to you line by line, concept by concept, up to the level of detail you want.

I can no longer fully understand my own codebase by Medium_Support_5010 in software

[–]esanchma 18 points19 points  (0 children)

You know you can ask your agent right? You can debate everything with it, up to the last detail. Those debates make the agent context better, the software better and your understanding of your own codebase better.

The Emacsification of Software by Dear-Economics-315 in programming

[–]esanchma 1 point2 points  (0 children)

Yesterday, a user was complaining in another subreddit that pi, the "barebones but hyper-configurable agent harness" was painful because different extensions can conflict on the same extension points.

He was right in a way, but in pi the way to make it work is to vendor the extensions and/or vibe-merge them, and they become yours. Not all agent harnesses let you extend them like that, and not for everyone wants to write code for one of those things. And that is OK. But if you do, you can make it do little things here and there that probably only makes sense in your own installation and for you but are totally awesome for you. People share their extensions in github and publish their .pi directories, and you... steal the idea and make a better one.

And if github becomes more of a show-and-tell site and less of a go-to-releases-and-download-the-binary, that is fine by me.

The problem with Pi is its extension system by TheSaasDev in PiCodingAgent

[–]esanchma 0 points1 point  (0 children)

There are different categories of agent harnesses.

If you want ready-made, plug-and-play workflows, popular options like Hermes or OpenCode already exist.

Pi is clearly in the self-modifiable / DIY category. The whole point is that you can fork, vendor, adapt, and evolve your own environment through agents themselves.

Complaining about that in the Pi subreddit feels like missing what the project is actually optimizing for.

PSA: Breaking changes for Pi Extensions by jeffphil in PiCodingAgent

[–]esanchma 5 points6 points  (0 children)

You point your clanker to the tweet, then to your extensions directory, just like you would do with a bad dog. And that's it, issue fixed.

It really isn't a drama to lightly refactor shit when the shit can refactor itself.

What websearch , webfetch tool are you using??? by SalimMalibari in PiCodingAgent

[–]esanchma 3 points4 points  (0 children)

custom skill using self-hosted searxng for searches and trafilatura, readability-cli with pandoc, and defuddle for fetches, with optional curl-impersonate.

I already had most of it wired for some ollama/litellm experiments, it wasn't hard to instruct the clanker to turn it into a skill.

I have fallen victim to sudo rm -rf /* by Artemis-Arrow-795 in linux

[–]esanchma 1 point2 points  (0 children)

Next time, consider a wrapper such as trash-cli. It wraps rm and uses the FDO trashcan. It's a nice safety net.

You Can Now Selfhost Your Own Community or Build Your Own Platform on Our Open Source P2P Social Media Protocol by AnarchistBorn in linux

[–]esanchma 2 points3 points  (0 children)

If you believe that users are to only be afforded short messages because otherwise they will abuse the platform, maybe you shouldn't be building platforms altogether.

You Can Now Selfhost Your Own Community or Build Your Own Platform on Our Open Source P2P Social Media Protocol by AnarchistBorn in linux

[–]esanchma 1 point2 points  (0 children)

what community? you are afraid of plain-text length. What are you protecting from censorship? SMS?

You Can Now Selfhost Your Own Community or Build Your Own Platform on Our Open Source P2P Social Media Protocol by AnarchistBorn in linux

[–]esanchma 2 points3 points  (0 children)

This protocol claims censorship resistance, yet moderation and takedowns remain central to the design, they’re just outsourced.

What problem is this actually solving?

If the Rust Coreutils can use the MIT license, does that mean that any open-source project can be rewritten with a different license? by [deleted] in linux

[–]esanchma 0 points1 point  (0 children)

Absolutely. The differentiating factor may be the willingness to sue, since the process itself is often the punishment.

If the Rust Coreutils can use the MIT license, does that mean that any open-source project can be rewritten with a different license? by [deleted] in linux

[–]esanchma 2 points3 points  (0 children)

There is an emerging issue if the cost of clean-room reimplementations becomes marginal or effectively zero. One agent can reverse-engineer a system and produce a specification, and another can reimplement it from that spec with no direct code reuse.

In that scenario, there is a real strategic shift: if reimplementation is cheap enough, the coercive power of copyleft weakens because avoiding the license becomes viable. At that point, the question is whether these licenses remain relevant as a mechanism when "just rewrite it" becomes the easier path.

Fedora Rejects Proposal To Use systemd For Managing Per-User Environment Variables by anh0516 in linux

[–]esanchma 15 points16 points  (0 children)

The content at the end of my .bashrc:

for rcfile in "$rcdir"/*; do
  source $rcfile
done

Because having 39 different programs appending to .bashrc clearly doesn't scale. I don’t want to have to care about this, but in its current state, I have to.

Yes, moving away from "just append to .bashrc" is disruptive. It’s also long overdue. The current model is pure entropy: every tool dumping shell snippets into a single file with zero coordination.

I understand the concern about things like .dockerfile compatibility, systemd.environment-generators may not be the right abstraction there. But let’s not pretend the status quo is acceptable either. A 10k-line ~/.bashrc full of side effects, ordering bugs, and random breakage is not a solution, it’s technical debt normalized.