👋 Calling all decentralised enthusiasts that still remembers and use IRC 😎
Please come join us in a new, truely, decentralised IRC-based chat experience by standing up your own Parley instance on your own domain (bring your own OIDC auth or use the built-in).
Pick your favourite IRCv3-compatible client (there’s heaps out there!).
And peer with either me james@mills.io or Admin -> Peers -> Add mills.io or @david@daiwei.me via david@ratha.us or simply ratha.us (in Admin -> Peers -> Add).
See you online! 🤞 #decentralised #irc #chat
I have (finally) built a fully e2e working purely decentralised and federated IRC-compatible chat server. It is currently a PoC, but it’s already working quite well. It’s inspired partly by the work we did with Salty Chat in terms of Discovery and Federation. Some screenshots of a normal IRC client irssi showing off how it works in a local e2e setup:

@david@daiwei.me since I became linuxpilled and embraced SSH, I do my Wordles through https://late.sh/
Can strongly recommend it, even has all the other daily puzzles: minesweeper, sudoku, solitaire, nonogram (kinda hate those),…
Maybe not the best family activity, the chat can be somewhat spicy and so can the collaborative ASCII art drawing game.
Wow! @arne@uplegger.eu isn’t kidding! See: https://rz.uni-greifswald.de/dienste/allgemein/instant-messaging-chat/
XMPP greatest peak was when Google Talk was around. Being able to chat with thousands, if not millions, of Google users at that time, using your own domain, and your own XMPP server was amazing. Then Google, in all its wisdom, and as it does very often, decided to kill it.
I might be on the minority, but can care less about video calls. Heck, even calls! Text is King. 🤪
@arne@uplegger.eu You have Matrix at work? No Teams, Google Chat, Slack, Discord, whatever, but Matrix? Really? Where do you work, is this Socialist Russia?!
@aelaraji@aelaraji.com I do use XMPP. But only the text chat part. ;-)
I didn’t even know that live chat could even be possible on Gopher, though I do recall seeing a text board.
@itsericwoodward@itsericwoodward.com This will never end. Chat control in the EU is back as well, it seems. 🙄
Everyone who uses this chat is indeed cool. Also I use dillo for gopher, it’s awesome.
Everyone who uses this chat is cool. That is all, thanks.
There are some guestbooks on gopher, but no chat board like this.
I never thought I would find a chat room in gopher
Looking at Moji, an Emoji-only Chat App ?~L~X https://thenewleafjournal.com/b/DxJ
Yes, it’s an actual chat service on Gopher. It’s a bit of a hacky implementation of the search feature.
This is a real chat service on Gopher?
are yall talking about jesus over gopher chat?
v2 branch and @doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:
@bender@twtxt.net Here is a properly formatted version of your message:
Not yet — but that’s probably a good idea.
Instructions:
- Clone the repository
git clone https://git.mills.io/saltyim/saltyim.git
cd saltyim
- Check out the
v2branch
git checkout v2
- Build and install the CLI/TUI
make DESTDIR=$HOME/bin install
After installation, run:
salty-chat
👋 Looking for other interested folks to continue to evolve the development of Salty.im 🙏 I’ve been hard™ at work on the v2 branch and @doesnm.p.psf.lt@doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:
- Double Ratchet by default.
- Group Chat (sender/client fan-out for now)
- Much better TUI with background agent.
- Mobile App coming soon™ (iOS in progress, Android next, same codebase)
salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all "just works"™ and I'm quite happy with the outcome! 🤩 #saltyim #revamp
Some pretty pics to illustrate the much improved reference Salty.im client, salty-chat.

I spent the day today integrating @xuu@txt.sour.is’s double ratcheting work and ratchet library back into the reference client/broker implementation saltyim as a v2 branch. I completely redesigned and rewrite the salty-chat TUI client as well, which now includes proper notifications and a background agent that keeps running so you never miss any messages. It all “just works”™ and I’m quite happy with the outcome! 🤩 #saltyim #revamp
Do you have a linux/unix terminal? Try weechat for chat.freenode.net/6697 -ssl
Hi 2929b! Can you get on irc.com or irc://chat.freenode.net/6697 -ssl? Try channel #valesco. If I’m on.
@bender@twtxt.net actually I think it’s a little more nuance than that because for example with salty chat, we have support for DNS based delegation via SRV records and your identity is associated with your Apex Dom name and of course the keys.
I actually don’t understand why Federation and activity pub is so goddamn hard to migrate from one instance to another 🧐
idk if magical.fish admin reads this chat but it seems that the stock price tool spits an error
Website Task Flowchart
⌘ Read more
acabo de montar un ssh-chat: ssh tunick@.ygg.at #Yggdrasil #ipv6
@lyse@lyse.isobeef.org Nothing special, just fooling around in corporate chats. 🤪
@bender@twtxt.net Oh! It’s all good, I was planning on retiring my TheLounge instance anyways and will stick to connecting directly for the occasional chat when needed. Cheers! (Sorry for the belated reply.)
gm chat, today i’ve lost $2600 mistakenly in bitcoin fees, big fat fingers, and I don’t think the miner is going to help, it might consider it too small amount to refund even thou it’s half a year of saving for me. thanks for reading my gemlog.
We had some gray soup with the occasional fine rain with strong wind gusts. Despite the bad forecast we took the train to Geislingen/Steige and strolled up to the Helfenstein castle ruin. All the colorful leaves were so beautiful, it didn’t matter that the sun was behind thick layers of clouds.
We then continued to the Ödenturm (lit. boring tower). By then the wind had picked up by quite a bit, just as the weatherman predicted. We were very positively surprised that the Swabian Jura Association had opened up the tower. Between May and October, the tower is typically only manned on Sundays and holidays between 10 and 17 o’clock. But yesterday was Saturday and no holiday. The lovely lady up there told us that they’re currently experimenting with opening up on Saturday, too, because there are some highly motivated members responsible for the tower.
We were the very first visitors on that day. Last Sunday, when the weather lived up to the weekday’s name, they counted 128 people up in the tower. Very impressive.
The wind gusts were howling around the tower. Luckily, there are glass windows. So, it was quite pleasant up in the tower room. Chatting with the tower guard for a while, we got even luckier: the sun came out! That was really awesome. The photos don’t do justice. As always, it looked way more stunning in person.
Thanks to all the volunteers who make it possible to enjoy the view from the thirty odd meters up there. That certainly made our day!
After signing the guestbook we climbed down the staircase and returned to the station and headed back. The train even arrived on time. What a great little trip!
https://lyse.isobeef.org/wanderung-auf-die-burgruine-helfenstein-und-den-oedenturm-2025-10-25/
@prologic@twtxt.net built it (as in banner reminder, etc.) and I will come! Joke side, I will join for 30-45 minutes each month, sure! No main topic, no pre-conceived themes, just folks getting together to chat and rant, or whatever. Count me in!
@klaxzy@klaxzy.net Yes, if Germany actually opposes this. But so far, there’s only one guy that said something on a press conference. He does speak for the “CDU” party, which is “in command” at the moment, but that’s about it. I don’t trust these people – not until I’ve actually seen them voting against Chat Control. 🥴
@movq@www.uninformativ.de@www.uninformativ.de if I understand chat-control voting correctly at least 14 member states needs to oppose, or, the supporting bloc must fall short of the 65% population threshold. by opposing, germany tossed the supporters below 65%… I also believe this is a great win agains folks like Ashton Kutcher and his lobbying Thorn co.
@prologic@twtxt.net Where do I stand on “Chat Control”? How long of a response/rant do you want? 😅 It’s a disaster. As I understand it, they want to spy on me directly on my devices before encryption even happens – jfc, no, fuck off. And since there are so many devices, they want to automate the scanning, which is the worst idea you could possibly have.
great! no chat control, for now!
My open letter, to the European Commission digital markets act team:
Hello,
I am joining other developers, concerned about Googles new plan, to approve every app and effectively destroy most of the competing 3rd party stores this way. The biggest one of these alternative stores, most known for their focus on user and developer privacy, already states, this would make it impossible for them to operate: https://f-droid.org/cs/2025/09/29/google-developer-registration-decree.html
Even communities like the XDA forum, where new developers are often introduced to the world of Android development, would likely be strongly impacted, as making, publishing and installing Android apps is made less accessible.
I am not just writing on their behalf, I run a small website myself (https://thecanine.ueuo.com/), that both provides legal modifications, for some android apps - for example adding an amoled dark theme, to the most popular XMPP chat client for Android, or increasing one of Androids keyboard apps height. This all comes after Googles previous changes to the Android operating system, that prevent users from installing old apps (old to Google, can mean only a couple of months, without an update - https://developer.android.com/google/play/requirements/target-sdk and the target version gets increased every year). I rely on apps developed by a single developer, even for things like making the pixel art presented on my website and sideloading as a way to make these apps work, before developers can catch up to Google’s new requirements - if Google is allowed to slowly kill these options, us digital artists will soon lose the tools we need to create digital art.
Hello again everyone! A little update on my twtxt client.
I think it’s finally shaping a bit better now, but… ☝️
As I’m trying to put all the parts together, I decided to build multiple parallel UIs, to ensure I don’t accidentally create a structure that is more rigid than planned.
I already decided on a UI that I would want to use for myself, it would be inspired by moshidon, misskey and some other “social feeds” mock-ups I found on dribbble.
I also plan on building a raw HTML version (for anyone wanting to do a full DIY client).
I would love to get any suggestions of what you would like to see (and possibly use) as a client, by sharing a link, app/website name or even a sketch made by you on paper.
I think I’ll pick a third and maybe a fourth design to build together with the two already mentioned.
For reference, the screens I think of providing are (some might be optional or conditionally/manually hidable):
- Global / personal timeline screen
- Profile screen (with timeline)
- Thread screen
- Notifications screen or popup (both valid)
- DM list & chat screens (still planning, might come later)
- Settings screen (it’ll probably be a hard coded form, but better mention it)
- Publish / edit post screen or popup (still analysing some use cases, as some “engines” might not have direct publishing support)
I also plan on adding two optional metadata fields:
display_name: To show a human readable alternative for a nick, it fallback tonickif not defined
banner: Using the same format asavatarbut the image expected is wider, inspired by other socials around
I also plan on supporting any metadata provided, including a dynamically parsable regex rule format for those extra fields, this should allow anyone to build new clients that don’t limit themselves to just the social aspect of twtxt, hoping to see unique ways of using twtxt! 🤞
@zvava@twtxt.net CORS is our worst enemy. 🥷
I too had the same issue being a browser-based request, so the only solution is using a proxy.
For testing (and real personal use) I rely on this one https://corsproxy.io/.
In my client, I first check if the source allows me to fetch it without issues first and fallback to prefixing with a proxy if it gives an error.
For security reasons the client don’t give you a readable error for CORS, so you must use a catch-all for that, if it fails again with the proxy you can deal with any other errors it throws as you normally would (preferably outside of the fetch function).
After the fetching responded, I store the response.url value to fetch it again for updates without having to do extra calls (you can store it verbatim or as a flag to be able to change the proxy later).
Here an extract of my code:
export async function fetchWithProxy(url, proxy=null) {
return await fetch(url).catch(err => {
if (!proxy) throw err;
return fetch(`${proxy}${encodeURIComponent(url)}`);
});
}
// Using it with
const res = await fetchWithProxy('https://twtxt.net/user/zvava/twtxt.txt', 'https://corsproxy.io/?');
// Get the working url (direct or through proxy)
const fetchingURL = res.url;
// Get the twtxt feed content (or handle errors)
const text = await res.text();
I also plan to allow the user to define a custom proxy field, I like the solution used by Delta.chat in their android app, where you can define the URL format with a variable https://my-proxy?$TWTXT_URL since it allows you to define with more freedom any proxy without a prefix format.
If the idea of using a third-party proxy is not to the user liking they can use a self-hosted solution like cors-anywhere or build their own (with twtxt it should just be a GET).
@prologic@twtxt.net I too, self-host various services on a VPS (and considering buying a mini PC to keep at home instead).
I use most of it as a hosting platform for personal use only and as a remote development environment (I do share a couple of tools with a friend though).
But given the costant risks of DDoS, hacking, bots, etc. I keep any of my public facing resources purely static and on separate hosting providers (without lock-ins of course).
Lately, I began using homebrew PWAs with CouchDB as a sync database, this way I get a fantastic local-first experience and also have total control of my data, that also sync in a locally hosted backup instance in real-time.
Also, I was already aware of Salty.im, but what I’m thinking is a more feature complete solution that even my family can use quickly, Delta.chat with the new chatmail provider (self-hostable) might be the solution for my needs.
But I’m still thinking if it’s worth the trouble. I might just drop everything and only use safe channels to speak with them (free 24/7 family tech-support is easy to manage 😆).
Also, I’ll be waiting for the day you’ll share with us your story, I’m pretty curious about it!
@prologic@twtxt.net Don’t worry about it!
I also getting angry thinking how this Chat Control crap will escalate to.
I’m already thinking of countermeasures and self-hosted alternatives, while searching lists of affected apps and services to replace/drop in the worst scenario (and probably devices).
Please don’t hate me today; I’m a bit grumpy and have too many reasons to be upset:
- 2 counts of pushing and trying to get the simplest things done at work (that for some reason are made more difficult than they should be)
- This whole Chat Control bullshit
- And some other person things going on that have been ongoing for 72 days and counting 🤬
Only plebeians and shabbos goyim care about politics, however. Naturally, the Jews would want you to sperg out about Trump in a hipster-protocol chat.
@zvava@twtxt.net I reckon there’s currently nobody working on v2. Which timezone are you in? Just post your questions here or head over to #yarn.social at libera.chat for a more realtime conversation via IRC.
@movq@www.uninformativ.de having to go to a gopher proxy to see a text document better served on readily available web servers… 🤭, but I digress. Verbatim text:
What's Missing from "Retro"
~softwarepagan
------------------------------------------------------------------
You know, often, when I say I miss older ways of computing or
connecting online, people tell me "there's nothing stopping you
from doing that now!" and they are technicay correct in most cases
(though I can't, for example, chat with friends on MSN ever
again...) However, let me explain that while this type of thing can
*sort of* fill that hole in my heart, it isn't *the same.*
Say, for example, I wanted to connect with others over a BBS. This
wouldn't offer the same types of connections it used to. While
there are BBSes around with active users, they're no longer there
to discuss movies, Star Trek, D&D, games, etc. They're there to
discuss *BBSes.* The same can be said for Gopher, old-school forums
and all sorts of revival projects (such as Escargot, Spacehey,
etc.) Retrocomputing enthusiasts, while they have a variety of
interests, are often in these spaces to discuss the medium itself
and not other topics. This exists at a stark contrast from how
things were in the past, where a non-tech-inclined person may learn
the tech to connect with likeminded others (as I did as a
Zelda-obsessed kid.)
The same can be said of old media. People will say "well, nobody is
stopping you from watching old shows/movies now!" Again, they are
technically correct. I can go home right now and watch *Star Trek:
The Next Generation* to my heart's content. It will never again,
however, be current, or new. When something is new, it serves as a
shared cultural experience. Remember how "Game of Thrones* felt in
the mid-to-late 2010s? Yeah, that.
It's sad. I sustain myself on a mixed diet of old things, new
things, and new things intended for old millenials like me who like
old things. It can be bittersweet.
Of Pointlessware and CEOs
Had a moment, to check up on some of the companies, I stopped following, get to The Browser Company and see their newest product - it’s just Chrome, with an AI chat window pop-up and that’s it. Something Canary Chrome, come with already.
I see Theo from T3.gg, making fun of it on YouTube and promoting “his” product - an AI chat app, where you can choose from multiple models, by all the popular AI companies. Something I already have a worse version of, at work and I don’t even use it.
There’s also an interview, about the future of virtual keyboards, surely this is at least actually a real thing and not more pointless horse shit. I check the website of the keyboard SDK, and it’s around 20 identical apps, that just copy the same keyboard SDK/api and slap chatgpt features on top - in the App Store, these are surrounded by chatgpt clones, that just feed the users prompts, into the real thing and put ads, next to the answers.
@55147 possibly. I was just wondering what the consumer-to-producer ratio looked like in gopherspace, or at least in this chat.
@andros@twtxt.andros.dev Thanks for consolidating a lot of good ideas. Especially how you have deiced to just extend the mention syntax for location-based treads. This might even be backward compatible with older (pre-yarn) clients.
What about using Z for UTC +00:00- is that allowed in your specs?
Regarding url = I would suggest to only allow one and the maybe add url_old = or url_alt = !?
I’m still not a fan of a DM feature, even thou it helps that i have now been split out into a separate feed file. Instead if would suggest a contact = field for where people can put an email or other id/link for an established chat protocol like signal or matrix.
ah shit, I’m chatting on the Gopherspace!