3 ms·
I've had a lot of success running Pi on my server in headless mode and wrapping it in an XMPP client. This means I can talk to it wherever I can access XMPP (ev
by pavo-etc 2mo ago
I've had a lot of success running Pi on my server in headless mode and wrapping it in an XMPP client. This means I can talk to it wherever I can access XMPP (everywhere). It also mean agents can talk to each other when they need to. They've got a shared wiki they interact with and github issues as their todo list.
I am running several named pi instances in parallel in their own user account on NixOS, so they can install whatever they want in ephemeral shells and I never need to worry about their env. The agents can spin up new enabled XMPP agents if I request it, though for now I've only needed a few since I'm not doing too much in parallel.
My Pi is very vanilla, only my own XMPP wrapper and pi-subagents extension for anonymous subagents.
Using it primarily with Deepseek v4 Flash for chipping away at coding tasks or server maintainence while I'm AFK or in transit.
NixOS is the key to all of this, since agents can interact see the whole server config, make changes and run compile-time checks before actually deploying. It also means that even if they do mess up I can always revert.
- zrail 2mo agoOut of curiosity, do you use the pi-xmpp[1] extension or do you have your own? [1]: https://pi.dev/packages/pi-xmpp https://pi.dev/packages/pi-xmpp
- pavo-etc 2mo agoInitially I was using that extension but I ran into its limitations pretty quickly. Sometimes the agent wouldn't reply over XMPP, it didn't have any support for typing indicators or status messages, and it had no way to support inter-agent communication, the agent could only ever speak to the configured owner account. I also had no way of running system commands like /new over XMPP. The headless pi + xmpp wrapper ended up working much better because the XMPP bridge is the only interface and I get full control over its capabilities. This is my wrapper: https://github.com/zachpmanson/pi-msg https://github.com/zachpmanson/pi-msg
- zrail 2mo agoThanks!
- razster 2mo agoThank you, that is very useful for my use case. Pi has transformed so much of my daily task, this will boost it a bit more. Much appreciated.
- 4chandaily 2mo agoThanks for sharing this! It is so much smoother than the vibe coded monstrosity I had been using.
- mkagenius 2mo ago> NixOS is the key to all of this, since agents can interact see the whole server config We added native support for nixos for the same reason - malleability and debugging becomes easier (also because one of our customers asked us to). I think we might be the only sandbox provider to add this in warm pools.
- jdthedisciple 2mo agoInteresting, I would be interested to read more about your setup and workflow
- pavo-etc 2mo agoI plan to do a writeup once I've got a few more of the kinks out with consistent cross agent comms. Message routing happens in-band right now, not too big a problem since 95% of the messages are DMs to me but once I'm running more in parallel I'm sure they'll have some more cross agent communication issues.
- darkteflon 2mo agoInteresting setup. Would you still have chosen a Wiki vs a folder of md files if all agents were using a shared filesystem / compute environment (eg personal computer)? I see Wikis often mentioned as shared state stores and I’m trying to figure out what makes people reach for them.
- pavo-etc 2mo agoWhen I say wiki I mean a folder of md files in a git repo. I only say wiki because it uses [[wikilink]] style links. Proper wiki software would be massively overkill for a project like this.
- sroerick 2mo agoPi and XMPP is excellent
- pavo-etc 2mo agoYes they fit well together. The XMPP clients I've used have great protocol interaction but the UIs have been surprisingly janky. There are so many messaging apps to steal design cues from, yet the "popular" open source clients haven't really done this. I've started my own forks for converse.js and conversations.im to add some UI polish. Funny that the XMPP clients has taken more of my time than the pi XMPP wrapper itself.
- pkulak 2mo agoSame here, though I use Matrix and only have two agents. One for me, one for the family. They are mostly for household management tasks, but mine has an ssh key that lets it remote in to some of my servers and deal with stuff. That said, I really don’t like “developing” over chat. I’d much rather wait until I’m really available to inspect diffs properly and watch all the thinking and tool use, real time. https://github.com/pkulak/nix/tree/main/modules/features/opencrow https://github.com/pkulak/nix/tree/main/modules/features/ope...
- pavo-etc 2mo agoIf I wanted to be inspecting diffs I would tell it to put up a PR and then i'd review it in the GitHub app.
- deleted 2mo ago[deleted]
- colordrops 2mo agoThis is cool, I'll have to try this. Want I've been doing for transit is using termux on android with magisk for root access, allowing me to install Nix home manager and harnesses on my phone, and then drive everything from my phone, including eternal terminal sessions to my homes erver, where it spins up agents there as well. Incidentally it's also great for debugging issues with my phone.
- oulipo 2mo agoWould that have any real advantage over some "basic" setup (eg tmux running codex, and accessing it through SSH on the phone with Termius)? I've been able to do 80% of what I needed to do remotely with that setup, so wondering if a more complex setup would really add much...
- myaccountonhn 2mo agoI've thought about using email and pi, as then the responses can be email patches I can inspect and it's easier to keep multiple threads going. But I've also thought that XMPP makes sense too, and is slightly easier to connect to a VPN rather than setting up mail.
- sharperguy 2mo agoat this point, what's the advantage of this setup vs something like hermes?