This is a request for the SO chat system to have an XMPP interface.

The whole idea of a chat system is to bring people together, and a key way of doing that is to allow people to access the system using more than one method. Right now there's a web interface, but it's limited to being a web interface. XMPP is a standard mechanism for real-time presence and messaging, intended exactly for this purpose.

  • See also: IRC access for the chat? Aug 5 '10 at 14:43
  • Somewhat related: meta.stackexchange.com/questions/4919/…
    – Flow
    Dec 16 '12 at 16:43
  • 3
    This is old, I know, but I agree. I think it's very important to implement some sort of external interface (be it XMPP, IRC, etc.). I'm a mod over at Tor.SE, and I always feel bad trying to push the chat when I have no desire to hang out in it myself since Ihave to keep a browser open (which of course makes it even worse if I'm on my phone).
    – Sam Whited
    Nov 8 '14 at 21:20

UPDATE 2012-08-27: I wasn't able to keep up with this project and it stagnated... with multiple people interested I migrated the project to GitHub. However, in the 1+ years this project wasn't updated, it no longer works :-( as it stands, sending messages through XMPP works still, but receiving messages does not. (I remember balpha predicted this, too) Anyone who wants to help is welcome to!

UPDATE 2010-11-14: My XMPP Bridge now has write support, albeit very crudely built. In addition, I just got the user list partially working, rich text messages now work almost flawlessly and the code is fairly stable. It was running for almosta whole week, 24 hours a day last week. (I forgot what finally crashed it, probably a message by radp, he's always causing trouble)

Next goals are to make the user list work and improve authentication, because right now it's very kludgey and poorly documented.

How cool is that?

UPDATE 2010-10-29: I now have very, very, very basic XMPP support working, written in Ruby as an XMPP component. The code can be checked out from http://trac.sitepalette.com/soxmpp/browser/trunk and I am documenting the progress in the Trac wiki.

At the moment there is no write support but I have ideas on that. Only two rooms work, "The Tavern" (because I love that room) and the XMPP Room itself. To try it out, you'll need an XMPP server of your own which you can add a component to. After I have the code a bit more stable and functional, I'll fire it up and keep it running on my own XMPP server, and post the address of that server here (and in the chat and on the wiki)

For the most up-to-the-minute info on this project, the XMPP Room is the place to be.

Happy Friday

Happy Friday!

I'm going to take a crack at this over the weekend, using the methods I outlined in the comment to Jeff's answer. I'll update this answer with progress as I go, and I've created an XMPP chat room to test with and discuss issues/progress/etc.

Wish me luck! :-)

  • 4
    Cool! Let me know if I can be of any help. Sep 5 '10 at 8:25
  • @Greg: Done any write support yet? :-D Oct 29 '10 at 21:57
  • Is the code still available somewhere? Perhaps on BitBucket or GitHub? Oct 12 '11 at 12:51
  • 2
    @IvanVučica: Yes -- I fixed the links in the above post. The code is available in subversion and the Trac repo is still up. I haven't maintained the code in a while but do intend to pick it up at some point. In the meantime, feel free to hack away and send any improvements back t me! Oct 12 '11 at 13:14
  • The link 404's :-(
    – nanofarad
    Aug 9 '12 at 17:11
  • 1
    @TheUnhandledException Github would be perfect :)
    – Flow
    Aug 14 '12 at 12:56
  • @ObsessiveFOSS Good news: Project is on GitHub. bad news: it no longer works :-( Aug 27 '12 at 22:11
  • @Flow: See above Aug 27 '12 at 22:11
  • hello! does your messanger work now? where can I find it, please :) Jul 26 '13 at 10:37

6 years after the initial post and 5 years after the SOXMPP project, I've decided to develop one myself.

It's based on SleekXMPP and ChatExchange python libraries and it currently only supports servicing one room and one stack/xmpp user per process.

I've posted more about XMPPExchange on StackApps, and if you'd like to just jump into Github, check the code and installation steps here.

  • I'd like to state that SOXMPP was an XMPP server while XMPPExchange is a client.
    – ave
    May 23 '17 at 18:21

Working on an XMPP to google-chat bidirectional pipe.

Still a work in progress, but I just programatically drive a firefox browser that's rendered in xvfb with Selenium. Then screen-scrape it. It's here. Not fully functional yet, but it is a work in progress.

The passing to another protocol thing I'm trying to set up to be pretty modular.

In my case it's so I can have empathy open and have a the python pipe a room to me. My responses are posted back as me.

User lists and what-not will be searchable with commands sent to the parser instead of a separate UI component.


How would XMPP handle authentication?

Reading is no problem, but to write, we need to see that you hold a valid cookie on the target site with +20 reputation.

(and we have no idea what your username or password is, since that's handled through your OpenID provider.)

  • 18
    Easy; add a field in the user profile for the user's XMPP identifier. Unlike IRC, identity in XMPP is not anarchy, and users can choose an XMPP host such that they can be sure others can't impersonate them. Jul 17 '10 at 2:20
  • @greg there is already a field in the user profile for their OpenID identifier -- that's what needs to work here. If it can't, this is a non-starter. Jul 17 '10 at 4:49
  • 73
    You're dismissing this as a non-starter too quickly. If there were an XMPP interface, then everything else would work today just as it already does, including the one-click OpenID authentication. If a user wants to set up XMPP, then they would have to fill in their XMPP identifier in their profile. This is exactly the same as if they want email to work - you can't email to an OpenID, so the user has to enter their email address. Jul 17 '10 at 5:22
  • 17
    I'm with Greg on this. You already support multiple OpenIDs, and you ask me for my email address even though you don't need it. XMPP IDs are basically the same as emails (in fact, in my case they ARE the same, but nevermind that) and no less valid as an identifier than OpenID...
    – Jaykul
    Aug 6 '10 at 15:39
  • 3
    @Jeff, this could be done in a variety of ways. XMPP supports components which could authenticate the user first, and then allow the user to chat. This could be like a bot -- when you join the chat, the component emails you a link to a web interface where you log in, and that sends a token to the component. I'm thinking of writing something like that this weekend; I've toyed with XMPP components before. Sep 1 '10 at 21:46
  • 4
    @Greg: FWIW, even in IRC identity is not anarchy: the protocol allows specifying a password with your chosen nick and it's up to the server how to handle that. The tradition is to allow unauthenticated users and then use NickServ to identify known users, but there's nothing that says you can't refuse unauthed connections and prevent changing nicks.
    – Gnome
    Oct 27 '10 at 3:10
  • 13
    Sorry Jeff, -1 now that I have XMPP write support working. It handles authentication by the user sending the fkey and cookie to the chat Nov 14 '10 at 21:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .