Hacker News new | past | comments | ask | show | jobs | submit login
Pidgin: The Universal Chat Client (pidgin.im)
325 points by thunderbong on March 25, 2022 | hide | past | favorite | 174 comments



I really miss Adium (https://adium.im) which was based on Pidgin's libpurple. Adium had such a great user experience. It was built with native widgets and also incorporated chat themes that were implemented using WebKit's rendering (https://www.adiumxtras.com/index.php?a=search&cat_id=5&sort=...). It was fast and memory friendly given that it was a native app and the themes were just small templates offering a different rendering style (rather than the entire app being a huge JS/HTML/CSS React app).

There were add-ons for message styles, contact list styles, dock icons, sounds, and more.

It's really sad that we've lost the ability to connect to so many of the services we use with third party clients. Instead, I now have FB Messenger, WhatsApp, iMessage, Discord, and Signal all running and taking up space in my dock.


That time period was magical for interoperability of services, P2P and open protocols. The tech landscape today would look much different if the principles of that era were adhered to today.

Instead, the "interoperability" we get today is the result of multibillion dollar corporations making partnerships with each other, while independent developers are locked out.

As an example, Google gets access to streaming services APIs and catalogs in order to fill their Chromecast and AndroidTV products' menus with movies and shows. Meanwhile, Kodi has to rely on hacks to do something similar, it doesn't work with all streaming services, and there might not be feature parity.


Does the European DMA law indicate a possible return of this? It sounds like Europe is about to require interoperability between Facebook Messenger-likes and other clients.


I wonder if this will result in RCS becoming the standard, or maybe Matrix or XMPP.

https://en.wikipedia.org/wiki/Rich_Communication_Services


I wonder if these companies are still using XMPP: Google and Facebook for a while even would allow XMPP servers to federate


Likely not. You'll just see everyone fall back to supporting SMS like iMessages does.

There is no way to regulate an equivalent level of service and features be provided on a platform you don't control.


There also used to be plugins for iChat (which later became Messages) that added support for MSN Messenger, making for a no-fuss nicely streamlined chat experience across a decent range of networks (AIM, XMPP/Gchat, Yahoo Messenger, and MSN Messenger).

So between modded iChat and Adium, on Mac OS you had the choice between minimal and kitchen-sink style IM clients, both of which were free and had no ads. OS X had also hit peak refinement around that time, between 10.2 and 10.6. It was a brief but golden age for Mac users with a lot of IM friends.


2010 was a great time. Adium for universal chat and XMPP federated services. You could find almost every movie on Netflix still. You could tell the difference between buttons and labels in UIs, and few hamburger menus were to be found. You could still get AppleWorks. Firefox wasn’t trying to sell you stuff. Televisions didn’t come preloaded with spyware. Truly, it was a great time, but we have to build our cyberpunk future today.

At least we don’t have IE6 any more, so it’s a fair trade.


>Truly, it was a great time, but we have to build our cyberpunk future today.

You know it was thinking about that the other day, and i came to the conclusion that we're back in 1970, our powerful computers are mostly used as Terminals aka Browser connected to powerful monolithic service providers aka Mainframe.

That means Ken Olsen was right and yes even Larry Ellison.


How did I forget about iChat? That brings back memories. Mac 10.4 to 10.6 was glorious. The walled gardens got higher and less fun over the 2010's. Discord works but I am probably one generation too old to appreciate the meme-heavy communication style.


iChat had multi-party video calls and virtual backgrounds in 2008. It blows my mind when Apple talks about multi-party FaceTime calls like it's a new feature.


We had actual video phone calls in 2005, and with the advent of Smartphones they were essentially deprecated. Eventually, Smartphones became capable of making video calls over the Internet with 3G


It was 3G networks that enabled video calls from non smart phones back in 2005. The internet video chat didn't appear until later when HSDPA became a think


I keep hoping that the next version of iOS will include the possibility of adding other instant messaging service backends as iMessage plugins. It would finally unify messaging on iOS.


What iChat plugins were there? I found this[1] for IRC but that's it (and I couldn't make it work despite being on an OS from the era).

It looks like MSN Messenger didn't require a plugin, it worked because it was XMPP which iChat/Messages supported out of the box, up until High Sierra I think.

1: https://www.cocobit.software/support/


The MSN plugin was called Cocoon. Its page is available on archive.org[0], but unfortunately images are broken.

[0]: https://web.archive.org/web/20121118061309/http://cocoon.dri...


Oh, I got IRC to work! Downloaded the example code from Apple's developer site and compiled: https://developer.apple.com/library/archive/samplecode/IRCSe...

Then I had to run "killall imagent" in Terminal for it to work properly. Logged right into OFTC in Messages on OS X 10.9 Mavericks.

So... plugins were supported, but it may well be that the only plugin ever made was literally the example Apple released? :(


Yeah the days of integrated chat messengers seem to be dead. I loved Trillian way back when and all of the UI customization options.


The messaging app on the Nokia N900 was also based on libpurple. You had all of your Google Talk and Skype contacts and chats, together with SMS in a single place.


It was based on Telepathy https://telepathy.freedesktop.org/. None of the built-in backends for XMPP, SIP, Skype and cellular calls used libpurple. (A libpurple-based backend could be installed from the community app repo.)


I wish Telepathy got more popularity, it seemed to be a better architecture than Pidgin/libpurple with the protocol support in separate processes etc.


Well, me too, having spent the best part of half a decade working on it! But I broadly agree with Rob McQueen's assessment of how the architecture turned out to be fatally flawed. http://web.archive.org/web/20210427061305/https://mail.gnome...


The crashes I still experience in libpurple backends today still lead me to prefer the Telepathy architecture.


IIRC I remember meeting an Adium dev at a WWDC. A condition of joining Apple was that he could no longer work on or contribute to Adium in any way. Typical Apple stuff.


Does Adium not compile on newer versions of macOS? Development appears to have slowed down, but it doesn't look completely abandoned. I might try to feed it to Xcode on my hackintosh if only to see what kinds of errors crop up.

That said, I've switched back to terminal-based IRC clients, so I haven't run either Pidgin or Adium in probably 10 years. It's sad. Both were really good tools.


Honestly, it's mostly a matter of Adium having lost its purpose. Most of the IM networks it originally interacted with no longer exist or are no longer open to third-party clients, and the ones that remain (mostly XMPP and IRC) aren't necessarily a great fit for Adium.


I’ve been surprised recently by the availability of plugins for libpurple (the lib on which Adium is based) which supports Telegram, Signal, Facebook …


Modern IM networks aren't a great fit for libpurple because they fundamentally work differently.

"Old-school" IM networks like AIM were simple to work with from a client perspective -- you connect to the network, you send and receive messages, and that's it. There was no real support for server-side message history, multiple clients, mobile clients, or offline messaging, so third-party clients often just implemented their own local history instead.

Newer IM networks like Telegram are usually designed from a mobile-first perspective -- the Telegram client protocol is designed around the concept that the server has a definitive view of history across all chats, and the client synchronizes portions of that history to local storage to display it. It certainly isn't impossible to adapt this to a design like libpurple/Adium/etc, but it's an awkward fit and is likely to fail to support features which don't fit into that model, like chat messages being edited or deleted by the other party in the conversation.


The lack of editing and deleting old messages is (usually) a feature in IRC. It becomes a bug when spammers flood the channel, though.


The FB One at least probably doesn’t include group chats.


I'd love to see what Adium's interface actually looked like, but apparently the website does not believe in screenshots. :(


The website isn't well maintained anymore since we've kinda passed the days that people used multi-service clients. Here are some screenshots:

https://www.adium.im/screenshots/images/overview.jpg

The area inside the chat window is HTML rendered via WebKit and you can change the theme easily. The Contacts list is also HTML in the middle so that's all theme-able too.

https://images.six.betanews.com/screenshots/1110403338-1.jpg

Here's a Contacts list that's more compact and a chat window without the top toolbar.

https://adium.im/screenshots/images/overvieworange.jpg

Here's a more radical theming where they've gotten rid of the window around the contact list so it's floating.

If you go through the Adium Xtras, you can see all sorts of chat (https://www.adiumxtras.com/index.php?a=search&cat_id=5&sort=...), contact list (https://www.adiumxtras.com/index.php?a=cats&cat_id=4&sort=do...), and other ways of styling Adium.


> The area inside the chat window is HTML rendered via WebKit and you can change the theme easily

KDE's Kopete (and after that, the now defunct KDE Telepathy) could that too. Maybe GNOME's Empathy client could that too. I agree all of that was really cool.

I sorely miss those all-in-one messengers completely integrated to the desktop.


In Kopete we even had Latex rendering plugins and auto-away plugins using motion detection :-)

(I started that project decades ago and still grateful to it, as it was the start of my career in tech)


Kopete was amazing. Still the best chat experience I've had to date. Thank you for the fantastic work.


One of the non-obvious parts of Adium's interface from the screenshots was that it integrated with Mac OS's calendar app, so I could have a contact "John Smith" and enter his AIM name, his Yahoo name, etc and they'd all show up as "John Smith" and be collapsed into one entry in your contact list.

On top of that, Adium is/was also incredibly themable. You could use independent Adium Xtra addons for both your contact list and your chats. I had a theme so that all messages just appeared sequentially like so:

[Hello][Hello][What's Up?][Etc.]

where mine were red and the person I was talking to was in blue (or vice versa, it's been awhile). You could see so many messages at once.

Adium is the application I miss most from MacOS, although I imagine I'd still miss it even if I were still using a Mac. With the exception of the addition of multi-device continuous chat history, we've really regressed in the category of instant messaging since the days of multi-chat clients.


I'm using a Mac and I definitely miss Adium.


Er... does this help?

https://adium.im/screenshots/

I still have it installed. It was very useful in the PowerPC era.

Pidgin still is useful: it talks to a whole bunch of services that are still alive... IRC, Telegram, Skype, Google Hangouts, Slack, Rocket.chat, XMPP, ICQ, etc.

Sadly Adium can't use Pidgin or Libpurple plugins directly. This severely reduces its usefulness today.


The ironic thing is the protocols are now almost all dirt simple but I perceive the risk of being C&D’d for making alternative clients to not be worth the risk.


AOL definitely took issue with gaim, which was Pidgin's old name from when it was mainly an AIM client.

https://en.wikipedia.org/wiki/Pidgin_(software)#Naming_dispu...


AOL took issue with most third-party clients - I and a number of other users would periodically get permanently banned from AIM, apparently for the sole crime of using a third-party client they could notice. My friends got used to every 6-12 months seeing that I was messaging them from a new name.

But naim was such a nice client before finch was really a thing.

(No, I never did anything more exciting than have private conversations with individuals that might provoke this, and it tended to happen to swathes of people using third-party clients at once.)


> AOL took issue with most third-party clients - I and a number of other users would periodically get permanently banned from AIM, apparently for the sole crime of using a third-party client they could notice. My friends got used to every 6-12 months seeing that I was messaging them from a new name.

Weird, I used Trillian on Windows and Adium on Mac exclusively for years, from 2004 through some time in the mid 2010s when all of my old AIM and ICQ contacts had moved on to Steam and then later Discord. Never had any issues other than the usual stuff where file transfers and the like weren't reliable with third party clients.


My impression was that something about naim in particular triggered their wrath, since as you say, Gaim and Trillian rarely provoked ire. But their support was unhelpful, and it happened a couple times to more people than just one user at once, so _something_ about it was clearly rustling their jimmies.

They did eventually seem to back off though, as the sibling commenter said, because after a certain point I stopped randomly getting banned ever again from then until the end of AIM as a service.


I used my third party client for a few years circa 2003. I think after more services entered the fray (MSN/Yahoo) they eased up.


> Instead, I now have FB Messenger, WhatsApp, iMessage, Discord, and Signal all running and taking up space in my dock.

Why don’t you use a matrix client with bridges? I use telegram, WhatsApp and signal over Element. The bridges are not as great as the individual clients, but it’s definitely miles ahead of using five messaging apps.


Maybe I'll look into it more, but it feels messy and complicated at first glance. Portal rooms, plumbed rooms, bridgebot bridges, Bot-API bridges, puppeted bridges, double-puppeted bridges, server-to-server briding, and sidecar bridges. I haven't used it so some of this may be wrong and I'm happy to accept corrections.

It seems like a puppeted bridge requires me to send the messages to the Matrix server who then has a login to my FB Messenger to read/write messages there. I'm not going to run my own Matrix server so that requires me to trust a Matrix server with access to my Facebook.

Yes, downloaded apps can be malware, but it's a lot more easily discoverable. One can use tools like Wireshark to confirm where data is going. If apps are open source, one can see the source code and even compile one's self. Even if you don't trust the maintainer who is compiling, you still have a good idea that they're not sending all your messages to them because someone is more likely to notice the binary doing that (via tools like Wireshark). When software is just run on a server that the public doesn't have access to, who knows what is happening. Yes, running on your machine doesn't mean everything is safe, but there's some level of inspection you can do of what is going on.

I don't want to sound too down on Matrix, but it feels a bit off to me. It feels like people who want a decentralized future...where everyone is centralized into a small number of servers who can run a dozen or so Docker containers and such. Maybe that's the way the world needs to be given where we're at, but I just miss having a client that could login to multiple chat services.

If these puppeted bridges can exist, why can't my client just puppet directly? Why send the message to the matrix server for the matrix server to then call the Facebook API? I remember the days of AIM breaking the OSCAR protocol and libpurple/libgaim needing to catch up so I understand that pushing out an update to client software might mean some extra hiccups in the connectivity. Still, it feels like the servers might not be able to update their software much faster than I am able to. Maybe App Store approvals holding up updates is the issue? Is the issue that app stores could block a Matrix + bridges client since it's clearly trying to access services that don't want third-party access, but a Matrix client that's just talking to a Metrix server is fine - and then the "infraction" is on a server that the App Store doesn't get a say over? (I'm not saying that I think it should be disallowed, but I could see companies disliking it)

Is the issue that people want to write these bridges in JavaScript, Python, and other languages which are all fine if you're running a bunch of Docker containers on a server, but might not work so well if you're trying to create a desktop or mobile app?

Why can Matrix bridge these things, but we can't have a libpurple that works as well as these bridges? Or maybe I just haven't used libpurple in a long time and it's actually still good and I should re-try it.

It feels like Matrix wants to be a decentralizing force, but then the bridges force me to centralize my messaging through one of their servers. Again, maybe that's the way it needs to be for reasons, but it just doesn't feel like what I've been looking for.


> Maybe that's the way the world needs to be given where we're at, but I just miss having a client that could login to multiple chat services.

I'd be very curious to know if the work on P2P Matrix servers is going to include some level of support for client-side bridges?

I know the P2P work and bridging aren't quite the same thing, but it seems like the two are vaguely related: if you've got a bridge running, I suspect that would have a lot of the same concerns as running a Matrix server locally. And I get that for some clients like iMessage, your bridge has to be running on a Mac, but that isn't the case for most other messaging platforms, is it?


You don't need to know most of those things to get started, in general you can just follow the setup instructions for the services you use.

You do need your own homeserver, but for me I run a homeserver just for the bridges, and have my main account on a third-party homeserver. This way at least my native matrix chats (which are far more important to me) don't depend on my home server being online.

I would subscribe to hosted bridges fairly quickly if they were a reasonable price. Maybe $1/month per service? Obviously there is risk here because you are trusting someone with access to your account but to me it is probably worth it. There is https://www.beeper.com/ but you need to move your primary account to their service, which is just too much disruption and lock-in for me.

TL;DR I agree, self-hosting is a bit much. I'd love to be able to pay for it though.

I thought about hosting that service myself but I wouldn't want to run a service that is both against the dependencies' ToS and is playing cat-and-mouse with their attempts to shake you off. Too much excitement for too little reward.


> It seems like a puppeted bridge requires me to send the messages to the Matrix server who then has a login to my FB Messenger to read/write messages there. I'm not going to run my own Matrix server so that requires me to trust a Matrix server with access to my Facebook.

This is kind of how it's done today but also not exactly. The bridge (which is what has access to your account and messages) is its own process and could in principle be run on a separate host (like your own device for a single-user bridge). However, most (all?) public homeservers access for connecting puppeting bridges (meaning "virtual" Matrix identities for each identity on the bridged network, rather than just having a single "botuser" for all conversations through the bridge) and the API for access is rather coarse.

Also, last time I checked most bridges do not implement E2EE and signing properly, which means that the homeserver it connects to both gets read-access to bridged messages and can impersonate. This is mostly a matter of implementation not being prioritized highly in bridge projects. Currently that can be worked around to get E2EE even for cleartext bridges by running a protocol-specific proxy called pantalaimon which sits between the bridge and the homeserver and terminates encryption.

There are tradeoffs that can be made, which can be seen in the different alternatives for IRC bridges. For example, matterbridge is more of a typical bot (supporting loads of protocols!) and can be run towards a remote homeserver as a normal user.

https://github.com/hifi/heisenbridge#comparison

https://github.com/42wim/matterbridge/wiki/Section-Matrix-%2...

I am certain we will see better interfaces to allow people to run local personal IM bridges without the requirements and overhead involved today. Thinking out loud here, I could imagine a minimal per-user homeserver baked into a client, that only does bridging for that user and only federates with the homeserver of that users' accounts. That could tick all the boxes even before P2P matrix I think.

The benefit of this approach over pidgin or a purely local single-user homeserver (which are viable and it sounds like you kind of want) would be all the conveniences people have gotten used to with centralized platforms... E.g. if you have the bridged rooms on a remote homeserver, seamless retention of histories across all your devices, without needing to be simultaneously online. But you'd also only need to keep credentials local, and message content in cleartext would only ever be acessible on your client(s).


I tried matrix bridged to IRC (libera) a while ago. It didn't sync back to matrix properly when people on irc left the channel, so you'd try to talk to someone on irc who wasn't there anymore. One time, a person on irc couldn't see any messages by any matrix users until they reconnected to the Network. And IRC is an old, open, well understood protocol. I just cannot imagine that a bridge to eg Whatsapp would result in anything even remotely usable.


To be fair your first problem sounds like an impedance mismatch more than anything else. Users come and go from IRC all the time because connections are transient by nature. It would probably be annoying to a lot of people if they left the room every time they disconnected.

Matrix and WhatsApp are both durable with regards to users so this issue probably isn't relevant.

Personally I find the biggest problem with puppeting is the impedance mismatches. For example if reactions aren't bridged it can be easy to miss stuff. This depends on the bridge used.


This is honestly the problem with a lot of these type of FOSS replacement products. It's not an "impedance mismatch" and the user isn't "holding it wrong", the product has bugs. They need to be acknowledged as the bugs they are and addressed, because the fact is of you want to replace a product you need to not be worse than that product.


Honest question: when registering for those bridges is it just as simple as putting in your username/password or do you have to do other gyrations to make it work? Do you have to upgrade continually to avoid the services playing whack-a-mole with your bridges?

I ask because I’d like to set up Matrix bridges like that locally, but if I have to create a Discord bot account or fish out an API key then that’s asking a bit much.


It depends on the bridge and protocol. IRC is as straightforward as any other IRC client. WhatsApp needs to run an actual WhatsApp client so you'll need an online iOS/Android device or run it a VM or emulator. Not sure about Discord.

EDIT: If you can do without Discord DMs, you don't even need to run the bridge yourself or supply discord credentials - just invite a bot to a discord server if it isn't already

https://t2bot.io/discord/

(Obviously if you're concerned of privacy you wouldn't be having those conversations on Discord in the first place)


It's complicated, resource intensive, and they break often for no reason.


I think of bridges as SaaS and that protocol support needs to be client-side so you don't become dependent on a remote service.


i think both Element matrix services and Beeper both offer this as a service now


There's still third party clients. I use Ferdi, which is the open-source equivalent to Franz and Rambox.


That’s just opening tabs with each chat service. Not dissimilar to doing that yourself with browser tabs. Which is basically what the clients you mentioned do


> It's really sad that we've lost the ability to connect to so many of the services we use with third party clients.

https://meetfranz.com/


Pidgin has plugins for a lot of those protocols now, notably not iMessage though.

https://pidgin.im/plugins/


Adium :), that brings back long forgotten memories from ~2003, staying up late to chat with friends about conspiracy theories and other asinine things no doubt.


definitely used Adium when I had a white macbook


seriously, i miss those days of putting them all under one app.


Q: What happened to Pidgin? A: Google & Facebook shut down their XMPP gateways to force you into their apps. All the sudden you can no longer use Pidgin to communicate with people on google & facebook. At least that was my experience.

I used to use Pidgin with OTR[0] for e2e encrypted chat over google & facebook. It was pretty fantastic, messages were inaccessible to facebook and google even with a court order so I didn't need to trust them.

Also used Finch for a bit[1]. For a time I had a pretty great setup on a local VM (running the PHP app I was working on): one tmux tab with work, another with a pane for finch (for chatting on FB & google), a pane for IRC, and a third pane for ttytter[2], the amazing twitter CLI. If someone nontechnical walked by they'd see a terminal and it looked exactly like I was working, not chatting on IRC & facebook, and looking at twitter :D

0: https://otr.cypherpunks.ca/ 1: https://www.systutorials.com/docs/linux/man/1-finch/ 2: https://www.floodgap.com/software/ttytter/


Pidgin has plugins for Google and Facebook now.

https://pidgin.im/plugins/

BTW, OTRv3 has pretty poor security these days, there is OTRv4 but it isn't ready for users yet.

https://bugs.otr.im/otrv4/otrv4


I went to try the Pidgin Facebook plugin, and I couldn't login. There's no more app passwords as the plugin suggests, if you try to login without the 2 factor Facebook sends "Is This You?" notifications every time, but doesn't let you login if you say yes.

There's github issue[1] for it and no resolution, except a weird python script hack to do 2 factor which may or may not be reliable.

1. https://github.com/dequis/purple-facebook/issues/526


FB one doesn’t provide group chats as far as I’m aware. Maybe not Google one either?


Plus one for OTR. It was a bit awkward to do key exchange and validation but otherwise great once set.


oh pidgin. Throughout my life (as a millennial) chat went this way:

1. IRC

2. IRC, Yahoo messenger, Aol Instant Messenger, MSN Messenger (mostly based on your ISP in the early days)

3. All + Skype (video!! wow!) + Google messenger. *This was when pidgin was invaluable* (there was also some Duck app for macOS?)

4. Skype started charging and since everyone was on Facebook, everyone moved to Facebook messenger. Text messages also became free, so for instant comms you just texted people.

5. Slowly FB Messenger took precedence over even text messages as data plans became better

6. A decade passes...

7. The exodus off of Facebook begins and Discord takes over as a way to talk to your group of friends.


Stage 2 evokes warm memories. The clients were featureful enough but very far from being resource hogs. The UIs were workable and hid plenty of options in their menus.

The webcam features on MSN messenger landed at the same time as broadband internet became widespread in my country, when I was at school, so everyone was in on the novelty.

Some of it is certainly the cynicism of age and work life, but I'm certain something has been lost since then. The UI, the nudges, the winks, the games, the chaotic friend lists were all magic in a way that FB, WA, Slack, Teams, Discord, et al aren't.


Thats probably more to do with your perspective rather than anything to do with the clients. I find discord to be very exciting and it’s always a joy to use. The idea of persistent voice channels might not have been invented by discord but it’s where the average person really first discovered them.

Getting home and seeing a few friends on discord and joining in has always been a magic experience for me.


Are you saying average PC users never used TeamSpeak?


Power user gamers did. But the average person did not. The Discord user base is vastly bigger than teamspeaks ever was. Way more people have been introduced to the concept now and it’s spread way beyond gaming and PC power users.


> there was also some Duck app for macOS?

You are thinking of Adium (https://adium.im). I believe it was a port of pidgin/libpurple to cocoa/aqua (or whatever the macOS gui framework was back then).


Similar.

1. IRC

2. ICQ

3. MSN

4. IRC (again)

5. Skype and Facebook

6. WhatsApp

7. Facebook again

8. Still Facebook (very sticky)

9. IRC + Slack (some communities) + Discord (some communities) + Facebook/Whatsapp + Signal + Telegram + Matrix + Zulip

Yeah, I think we need a new libpurple.


Part of the lack of 'new libpurple' is that companies have grown much more adept at/focused on removing third party clients. Discord in particular, IIRC, will even ban users for using third party clients.


This was a problem even back when Gaim (now Pidgin) was at peak popularity.

I used to be a dev on the team, and we had our accounts banned all the time. Some of the IM services didn't mind us being there (MSN seemed more than fine with it, and we reportedly had fans within the team there, though future protocol versions made it harder for us to figure out).

Yahoo wanted us off and did everything they could to keep us from connecting. Changing auth schemes to increasingly-elaborate obfuscated methods, at one point throwing pages of what looked like equations at us.

AIM would have been fine with us if we had used TOC (their open source protocol), but OSCAR is where all the features were at. They didn't outright ban clients, but my understanding is that their lawyers were involved at one point (though I think mainly due to the name "GAIM").

But you're right, they are removing third-party clients more. And fewer protocols are unencrypted plain text, which makes it harder as well. Still, work continues.


I started with Talk - https://en.wikipedia.org/wiki/Talk_(software) But I guess that's because I'm Gen-X


Thank you! I remember that I had started on a chat system right before IRC, but could not for the life of me remember its name; though i knew that it was a simple name. Talk was the first thing that i started on, but once i learned that IRC allowed me to connect with folks around the world (at the time, Talk was limited to the single unix server that users were connected to, though that constraint was expanded beyond that later on if i recall correctly). Man, i remember those early days; what fun to marvel at chatting with others either across the university campus or - later on - across the world!


Before the IRC were telnet chat rooms/servers for me. Nobody has mentioned them here so I wonder whether it was local thing.

I remember using talk about the same time, but telnet ones had more edge in UX side.


I've been using Matrix + bridges to fill that gap. I use IRC, Telegram, Google Chat, Discord and WhatsApp all via bridges, so I only have to interact with a single interface and all my chats are in the same place.

Before that I used first Trillian, then Pidgin. Then seeking persistence across clients I started using bitlbee to access everything through IRC, but that really sucked for media-heavy things like Telegram. My current setup of my own Matrix homeserver + bridges has been working great and feels way more liberating than using 6 different apps.


Which bridging software do you use for some of these? I looked into doing something similar, but all of the ones I saw (at least for Discord) require manually duplicating each Discord channel in Matrix, and it looked to be a bit of a hassle.


I use matrix-appservice-irc, mautrix-{googlechat,telegram,whatsapp} and mx-puppet-discord.

I don't use Discord all that much and I just bridge a few specific rooms I'm interested in, but I think you can bridge entire servers at once as well.


this, but I bridged them all to IRC by custom means, which is the easiest to implement and allows people on all platforms to talk in the same channel-equivalent. the media issue is solved by using a more modern client that can generate embeds (e.g. glowing-bear for weechat-relay).


Do you manage to get pictures, audio messages, videos and reactions to work well in both directions with that setup?

Also, I use this for personal messages as well as group chats. The people I interact with don't even know I am not using the native client.


custom reactions aren't rendered irc-side, mostly because I can't be bothered, but @mentions and all other platform-specific messages are properly translated. I considered forgoing the channel bridge and writing a custom IRC server that mirrors a discord/matrix group, but I never got around to it.


> Yeah, I think we need a new libpurple.

libpurple still exists and even has plugins for a lot of the protocols you mention, so no need to move away from it.


My path, which began in 1997:

1. IRC


Before: IRC + XMPP.

Today: IRC + Matrix.


> (there was also some Duck app for macOS?)

I believe you're referring to Adium [1].

[1] https://en.wikipedia.org/wiki/Adium


Don't forget Trillian!


I still use it. But all it is good for anymore is a google chat/hangouts desktop app. It was nice gluing all of them together like pidgin.


Woah! My Trillian-lover friend also used KVirc quite a lot. Actually, not sure it was called KVirc, but something like that.


I'm the proud owner of a six digit ICQ number. What a time that was.

It's funny. Having a similar trajectory of chat clients, I'd say my migration in my teens was dictated by "which service were the girls I wanted to talk to using?" In my 20s it was "what preserved my session as I ran around town and logged into various dumb terminals" until finally "what worked best on mobile."

Now that I'm married in my 40s, it's "which service are the guys I want to talk to using?"


Would probably include ICQ in the list for #2


What no ICQ? I got off the train before FB Messenger, personally. I don't think it was 'required' to have an app anymore once texting became free. And now everyone's on iMessage, except for Android users like me.


Haha, nice.

My journey was:

1. ICQ, because my gamer friends used it.

2. Added IRC, while it felt already outdated, somehow a bunch of my Japan-nerd friends used it.

3. Added AIM, YIM, MSN, because girls and my parents used them.

4. Switched to Trillian, because it wasn't managable otherwise.

5. Everyone moved to Facebook Messenger.

6. Everyone moved to WhatsApp

7. Now and then some friends switch to Signal, Telegram, or another "secure," alternative to WhatsApp.

8. Started working remote and everything is Slack and Zoom.

9. Dabbled in Web3/crypto and everything is Discord


1. Odigo & web based chats

2. ICQ

3. Trillian & QIP, mostly to connect to ICQ

4. Facebook chat

5. Google Hangouts, Allo, gmail chat

6. Back to Facebook Messenger because all my contacts use it, Slack for work


Facebook Messenger originally used XMPP, and for a while, you could use it with Jabber clients, Pidgin, Adium, etc.


No icq? There was a time when the first thing you installed on your computer was instant messaging applications. It's how you kept in touch with friends online. Crazy how quickly it fell off.


As an Indian millennial, my journey was a bit different:

1. Yahoo messenger (2001/2 - First internet experience)

2. Yahoo messenger + Text (2003/4)

3. Text + Skype (2006/7)

4. Whatsapp + FB Messenger + Skype (2010)

5. Whatsapp/iMessage + Instagram (2016/17)


GTalk - you could install it without admin and it was blazing fast.


I did ICQ (some IRC), then ICQ via Trillian, MSN Messenger, GChat, Imessage/Facebook/Instagram (sigh).

For work it was Slack and then MS Teams (again sigh).


ICQ and teamspeak/ventrilo we’re in the mix for me as well


Pidgin has been a trusty XMPP client. Staff at one of my previous employers used it for IRC.

Interestingly, some actors are willing to buy exploits against Pidgin users for sums higher than what the authors have made out of it.[0]

[0] https://therecord.media/zerodium-acquiring-zero-days-in-pidg...


Not supporting Message Archive Management [0] makes Pidgin a pretty meh XMPP client if you use more than one device.

[0] https://xmpp.org/extensions/xep-0313.html


I use pidgin daily with the libpurple-slack connector. It isn't super great for large rooms (I often keep Slack open in the background but have no notifications enabled), but it is really nice for direct messages, which is what mostly happens on slack in my company. Pidgin integrates nicely into gnome-shell's notifications, allowing me to quickly see messages and reply without losing focus.


The lead maintainer of Pidgin (Gary Kramlich) frequently livestreams his work on Twitch.

https://twitch.tv/rw_grim


I used to work a little bit on Pidgin. A lot of the core maintainers have moved on. I think it's just grim (Gary Kramlich) at this point. It's very clean C if you're interested in contributing to an open source project.


The plugin to connect Pidgin and Meta/Facebook messenger is dying. I think Pidgin may lose a lot of users if this in not solved.

If someone want to help them :

- https://github.com/dequis/purple-facebook/issues/526

- https://github.com/dequis/purple-facebook/issues/518



yeah, i do hope someone can do this. unfortunately i cannot but it is awesome.


After ICQ and QIP, Trillian was the way to go for me. Unfortunately the inability to use facebook without being constantly banned forced me to switch to Element. And while Element and Matrix is cool, it still doesn't come close to Trillian. Emotes are not customizable, theming is harder, and the amount of things u can do with history is endless compared to Element. Overall I feel like Element is more like Teams and missing features for power users. The search functionality and working with many attachments in element is very tedious, no way to search in them, sort them, filter them... I hope they can improve on that, I have over 500k messages and history feels useless thanks to that.


Though it's often derided on HN, scree-scraping is the integration method that requires the list cooperation from the other party. I'd love to have something like Pidgin that ran stock copies of these messaging apps in their own virtual machines and aggregated the data.


Not necessary, new EU regulation forces them to make their messaging services interoperable: https://news.ycombinator.com/item?id=30798850


That will take years to be heeded, I'm sure. Even then, it's possible some companies will provide that access only to customers from the EU (given it removes the monopoly these companies hold on their services).


Forces them to make them interoperable in Europe. I’m sure they’ll drag their feet and then use some fuckery in the rest of the world to avoid it.


you mean providing archaic SMS feature nobody will use, but which will satisfy EU laws?


I still use Pidgin for XMPP and the increasingly-unreliable-Facebook-Messenger plugin, along with a Gnome extension that allows me to reply directly to chat popups from the notification no matter what virtual desktop I'm on. I really can't get that combination anywhere else in fact and I hope it never stops working. :)


Which GNOME extension is that? Sounds like something I would be happy to have!


I'm a heavy Pidgin user during undergraduate days (2006-2010), when Yahoo Messenger was still really popular.

Thanks to Pidgin Portable, simply copied the zipped folder to the USB flashdisk, visit any computer lab then I can YM'ed my friends. Good old days :)


Bitlbee + libpurple has the best of both worlds.


Weechat is pidgin for terminal. Check it out also if you pull together disparate systems.


More like Weechat connected _to_ Bitlbee being compiled against Libpurple :D.


Not to be confused with WeChat, a kitchen-sink included IM app


Damn I used to use pidgin like 15 years ago, can't believe they're still around!


Open source never dies! :)


Another FOSS universal chat solution that was probably better architected but unfortunately was never as popular as pidgin:

https://telepathy.freedesktop.org/


I did pidgin and before that Trillian, Miranda and Disgby.

It would be great to see an integrated chat app.

For me Telegram is the king of today's UI, hence, it would be amazing to see them integrating Skype (still using it) and whatsapp. Line and wechat integration would also be super.

This new European law that is about being passed gives me hope.


I definitely liked it, however, since whatsapp, telegram, slack etc had joined the game with mostly proprietary protocols it looks like it just has no chance to catch up and it is very sad - I find the ability to choose a client quite important.

P.S. I have even written a plugin for - quickpurple


protocols like aim's oscar were proprietary. it's the legal and business landscape that's changed.


Pidgin has plugins for most modern protocols:

https://pidgin.im/plugins/


Sure, I know about plugins. By catching up I rather mean features introduced by the new generation of messengers. Not that features such as like link preview are critical but I would miss them should I use pidgin again.


Aaah I used it a long time ago, it was then called Gaim I believe.

I also used the similarly named but jabber only Gajim.

Good times :)


Indeed. Originally it was "GAIM" (due to the original purpose being a GTK+ AOL Instant Messenger client), which AOL wasn't thrilled about. We changed it to "Gaim", which I think they had less of a problem with, or at least we had hoped they would.

Internally at least, we called it "Gaim's An Instant Messenger". I'm not sure if we formalized that or not. It's been too long.

And then to fully move away from that branding situation, it was renamed to Pidgin. This was mid-2000s, after I moved away from the project, so I don't have any insight into the name change beyond the history.

Good times for sure!


As my fuzzier-with-every-passing-year memory recalls, there were a wide variety of interpretations of what "GAIM" meant, with "GTK+ AOL Instant Messenger" being the least offensive one. Mark Spencer, the original author, was always a bit cagey about it--amusingly so to my mind!


Hi chipx86! I remember "Gaim's An Instant Messenger" used to be on the old website but either google or my memory is failing me.


Hi! Yep, I think you're right :) That sparks a memory.


Dang it's not on the copy of the old site that we keep online at https://gaim.pidgin.im


Interesting, I did not remember that it was once called Gaim.


it was for sure called gaim. one of the only usable aim clients that worked on linux in the 90s.


You can pretend it's the 90's and 00's if you like at https://gaim.pidgin.im/


Bluecurve theme and Lucida fonts. Nostalgia kicked me hard.

Nowadays I use Zukitre, Tango and Go fonts to make something close-ish.


I love Pidgin. If I want a secure chat between 2 I will forse my buddy to go XMPP OTR


Note that OTRv3 is insecure these days, there is OTRv4 but it isn't ready yet. You are better off using OMEMO with XMPP for now.

https://bugs.otr.im/otrv4/otrv4


How exactly is OTRv3 insecure?


Too small encryption keys, using DH instead of RSA or newer encryption etc


From Wikipedia:

>OTR uses a combination of AES symmetric-key algorithm with 128 bits key length, the Diffie–Hellman key exchange with 1536 bits group size, and the SHA-1 hash function.

What specifically is wrong with any of that?


None of those sizes are considered secure these days. AES-128 is the strongest of the bunch, though much more vulnerable to multi-channel attack[0] than AES-256 (and OTR would be a definite place to use that if you have a number of people). It's at the lowest end of suggested symmetric key in the approved NIST document[1] right now. Diffie-Hellman key exchange with 1536 bits is considered to be within nation-state reach, providing only 89 bits of actual security[2]. SHA-1 has been considered insecure since 2005[3], with chosen-prefix attacks now considered practical; if, somehow, the bitcoin network was retargeted to SHA-1 chosen-prefix attacks it would be capable of generating 32 such per second.

0: https://crypto.stackexchange.com/questions/75880/what-is-a-m...

1: https://csrc.nist.gov/publications/detail/sp/800-57-part-1/r...

2: https://weberblog.net/site-to-site-vpns-with-diffie-hellman-...

3: https://sha-mbles.github.io/


0. What use would a break of a random OTR user's AES-128 be if it took millions of dollars, years and a significant chunk of all the memory that exists? And only a single session key's worth.

1. Does that not mean that NIST considers AES-128 secure?

2. Who exactly thinks that 1536 bit DH is breakable by nation states? The closest I have heard is 1024 bit DH. Note that we are talking messaging here where a break gets you one users messages.

3. Exactly what sort of attack would be possible against OTR using a practical SHA-1 collision?


You should also checkout OMEMO which is based on the Signal protocol and allows things like group chat and sending messages to contacts who are offline.


I have tried Matrix not on my wish but it has not worked. Also I like Tox but it needs processor with hardware cryptography and have not use it a long time.


OMEMO is an XMPP extension: https://omemo.top/


The OMEMO plug-in for Pidgin is named "lurch" and has it's home at https://github.com/gkdr/lurch .


Is pidgin's Discord experience anything to write home about?


There is a plugin for it:

https://pidgin.im/plugins/ https://github.com/EionRobb/purple-discord

Its about the same as any other Pidgin protocol (no audio AFAICT), with some support for some of the features of Discord like reactions. It gets updates for new features sometimes. The author has written a lot of different libpurple plugins and is quite busy though.

Note I've heard you can get banned from Discord for not using the official client.


meh, I'm surprised nobody mentioned imo.im which was the last universal messenger I used (well you could use Gtalk/Facebook within outlook.com chat panel, so I guess that would be very last) and which unlike Miranda, Trillian, QIP and likes (unpopular Pidgin mentioned here with very low user base on Windows) didn't require installation and worked in browser, so you could use it on work computer, which was major benefit


I note this still uses GTK 2 by default, but Pidgin 3 will change that.


So can it translate into Pidgin?

https://www.bbc.com/pidgin


Why not Matrix with bridges?


You can think of bridges as SaaS. Protocol support needs to be client-side so you don't become dependent on a remote service.


I had really mixed experiences with the various Matrix bridges the last time I tried this. I might have to take another crack at it, though, to see if it's gotten any better.

Though, honestly, now that most people I know are on Signal, the only other messenger platform I care about is Slack, and given that's just for work, I'm not sure I care anymore...


Bridges require you to forfeit your credentials to your homeserver and break E2EE.


But surely if it was worth protecting then you would be having that conversation on Matrix in the first place rather than Facebook Messenger?


I mostly use XMPP for secure communication. Sadly, Matrix does not built upon the XMPP standard and reinvents another incompatible E2EE chat protocol.


Pidgin is compatible with... Nothing I've ever heard of except IRC. Welp


Its compatible with pretty much everything, via plugins:

https://pidgin.im/plugins/


I stand corrected


Still universal!


Great app. But development was hostile to new users willing to help report bugs. It was then I learned of the "if you can't fix it, then don't complain" crowd of OSS.


I could never come to terms with the tattered and worn user interface experience for an application that is so prominent on the desktop. Perhaps the widget system is glamorous underneath, but to accomplish its job of getting out of the way of functionality... I can feel the RSI acting up from the time when Pidgin was my only option.

Thanks for what you did, no thanks for repeat business.


I grew up using windows running the "classic" interface. It's really no different from any other GTK based app.


Getting used to it doesn't mean it's good. There is much better UI design available to us.

I don't think I said anything untrue; only hurtful.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: