Difference between revisions of "Chat"

From Things and Stuff Wiki
Jump to navigation Jump to search
Line 858: Line 858:
== Modern chat ==
== Modern chat ==
* https://news.ycombinator.com/item?id=11300316
* [https://www.wired.com/2016/03/open-source-devs-racing-build-better-versions-slack/ Open Sourcers Race to Build Better Versions of Slack | WIRED] - [https://news.ycombinator.com/item?id=11300316]
* [http://exple.tive.org/blarg/2019/09/06/forward-motion/ Candidates for Mozilla's IRC Successor] - 2019 [https://news.ycombinator.com/item?id=20945551]
=== HipChat ===
=== HipChat ===

Revision as of 17:20, 13 September 2019

Live public or private messages.





  • https://en.wikipedia.org/wiki/Talk_(software) - a Unix text chat program, originally allowing messaging only between the users logged on to one multi-user computer—but later extended to allow chat to users on other systems.

Although largely superseded by IRC and other modern systems, it is still included with most Unix-like systems today, including Linux, BSD systems and OS X

  • sshtalk - security-minded update to talkd/ntalk with the same basic idea. Modern day instant messaging applications and services are nice and all, but most if not all lack a few key ingredients that we have covered with sshtalk: Hand-written in x86_64 assembly language, Multiple party text user interface, SSH2's native Perfect-Forward-Secrecy, Ephemeral: No archiving of user's messages, Watch (and laugh at) your remote party's typing skills, Full terminal-based Unicode support, Any modern ssh client can use it



  • DecafMUD Client - a MUD client written in JavaScript, using either Flash or WebSockets for connectivity, that harnesses the native browser to display output and accept input, rather then a third party GUI system such as Java, Flash, or Silverlight.

  • Evennia - a modern library for creating online multiplayer text games (MUD, MUSH, MUX, MUCK, MOO etc) in pure Python. It allows game creators to design and flesh out their ideas with great freedom. Evennia is made available under the very friendly BSD license.

  • Mudlet - a quality MUD client, designed to take mudding to a new level.It’s a new breed of a client on the MUD scene – with an intuitive user interface, a specially designed scripting framework, and a very fast text display. Add to that cross-platform capability, an open-source development model, and you have a very likeable MUD client.




  • https://en.wikipedia.org/wiki/BITNET_Relay - also known as the Inter Chat Relay Network, was a chat network setup over BITNET nodes. It predated Internet Relay Chat and other online chat systems. The program that made the network possible was called "Relay" and was developed by Jeff Kell of the University of Tennessee at Chattanooga in 1985 using the REXX programming language.

This system drew its name from "relay race" which shares a comparable behavior, where messages travel hop-by-hop along the network of Relay servers until they reached their destination. Messages sent within the United States would take a few seconds to reach their destinations, but communication times varied in other countries or internationally. If one or more network links were down, BITNET would store and forward the messages when the network links recovered, minutes or even hours later.

New old IM


  • https://en.wikipedia.org/wiki/SIMPLE_(instant_messaging_protocol) - the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions, is an instant messaging (IM) and presence protocol suite based on Session Initiation Protocol (SIP) managed by the Internet Engineering Task Force. Contrary to the vast majority of IM and presence protocols used by software deployed today, SIMPLE is an open standard like XMPP.


  • https://en.wikipedia.org/wiki/Client-to-client_protocol - a special type of communication between Internet Relay Chat (IRC) clients. CTCP is a common protocol implemented by most major IRC clients in use today.[citation needed] CTCP extends the original IRC protocol by allowing users to query other clients or channels, this causes all the clients in the channel to reply the CTCP, for specific information. Additionally, CTCP can be used to encode messages that the raw IRC protocol would not allow to be sent over the link, such as messages containing newlines or the byte value 0 (NULL). CTCP does not establish a direct connection between clients; however, it is commonly used to negotiate DCC connections. CTCP allows users to query a remote client about the version of the client they are using (via CTCP VERSION), or the time (via CTCP TIME), among other things. It is also used to implement the /me command (via CTCP ACTION).


GUI clients


  • Hexchat - an IRC client based on XChat, but unlike XChat it’s completely free for both Windows and Unix-like systems. Since XChat is open source, it’s perfectly legal. For more info, please read the Shareware background. HexChat was originally called XChat-WDK which in turn was a successor of freakschat. For more info, please read the announcement.


  • XChat - an IRC chat program for both Linux and Windows. It allows you to join multiple IRC channels (chat rooms) at the same time, talk publicly, private one-on-one conversations etc. Even file transfers are possible.

Dead enough, use HexChat instead.


  • ChatZilla - a clean, easy to use and highly extensible Internet Relay Chat (IRC) client, built on the Mozilla platform, which provides all the usual features: multiple servers, a built-in list of standard networks, easy searching and sorting of available channels, logging, and DCC chat and file transfers, plus easy customization with JavaScript plug-ins and CSS styling.


  • KVIrc - a free portable IRC client based on the excellent Qt GUI toolkit. KVirc is being written by Szymon Stefanek and the KVIrc Development Team with the contribution of many IRC addicted developers around the world.


  • Loqui - IRC Client for Gtk2


  • Konversation - a user-friendly Internet Relay Chat (IRC) client built on the KDE Platform.


  • Smuxi - an open-source, powerful, flexible, and user-friendly chat client created by Mirco Bauer and developed by other contributors. Inspired by the combination of screen and irssi, Smuxi has a detachable server (or like a "normal" client) that stays connected when you aren't, and can allow multiple Smuxi frontends (like the GNOME frontend, or STFL text-based frontend) to be connected and in sync. This is similar to screen+irssi or IRC bouncers, but more elegant and powerful.


  • Quassel IRC - a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core -- much like the popular combination of screen and a text-based IRC client such as WeeChat, but graphical. In addition to this unique feature, we aim to bring a pleasurable, comfortable chatting experience to all major platforms (including Linux®, Windows®, and MacOS X® as well as Android smartphones), making communication with your peers not only convenient, but also ubiquitous available. [9]

Palette {
  /* Link colors */
  link: #ff79c6;
  link-visited: #bd93f9;

Microsoft Comic Chat

CLI clients


set timestamp_format %H:%M:%S
/server ADD -auto -network freenode irc.freenode.net 6667
/channel ADD -auto #channel NetworkName password



Alt+←/→ or F5/F6
  # switch to previous/next buffer

  # switch to previous/next window (when screen is split)

  # scroll title bar

  # scroll nicklist

  # complete text in input bar, like in your shell

  # scroll text in current buffer

  # jump to buffer with activity (in hotlist)

  # Search buffer (enter to esc.)

alt-k [key]
  #display key and binding
  # save settings madeee=
/server add oftc irc.oftc.net/6667
/connect oftc
/set irc.server.serverprofile.ssl_verify off
   #disable ssl verify for serverprofile
/set irc.look.server_buffer independent
  # server as separate buffer from main weechat buffer
/input jump_smart
  # jump to next buffer with activity
/input hotlist_clear
  # clear activity
/set irc.look.color_nicks_in_nicklist on
/script install colorize_nicks.py

/set weechat.color.chat_nick_colors "22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201"
  # add more colours
/key bind meta2-18~ /bar scroll buffers * -30%
  # bind F7 to buffers.pl up
/key bind meta2-19~ /bar scroll buffers * +30%
  # bind F8 to buffers.pl down
/set irc.look.smart_filter on 
/filter add irc_smart * irc_smart_filter *
  # http://dev.weechat.org/post/2008/10/25/Smart-IRC-join-part-quit-message-filter
/script install colorize_nicks.py

/script install buffers.pl
 # lists buffers (status, channel, etc.) in a sidebar

/set weechat.bar.buffers.position right
 # put buffer list to right

/script install autoconnect.py
  # remembers servers+channels joined
/script install urlbuf.py
  # buffer that logs all web addresses mentioned

/script install whois_on_query.py
  # automatic whois on starting/receiving a private msg

/script install go.py
  # jump to buffer

/script install sort_buffers.pl
# /set buffers.look.sort name
# /set buffers.look.sort name (window number order doesn't follow!)
/script install listsort.pl
weechat.color.chat_buffer [11]
 you have to import weechat
 functions print* are called prnt* in python (because print is reserved keyword)
 functions are called with weechat.xxx(arg1, arg2, ...)
weechat.register(name, author, version, license, description, shutdown_function, charset) [12]
import weechat
weechat.register("test_python", "FlashCode", "1.0", "GPL3", "Test script", "", "")
weechat.prnt("", "Hello, from python script!")




  • https://github.com/c00kiemon5ter/iim - a complete rewrite of the original ii from suckless.org it started as a cleanup for ii's source code, then added some fixes. it ended up smaller, easier to understand and supporting more commands
  • https://github.com/c00kiemon5ter/iii - a frontend to ii/iim so that one can easily view and send messages. it outputs text, formatted, and colored, and allows for some configuration. options are passed as enviromental variables.


Browser extension clients

Web clients

  • The Lounge - The self-hosted web IRC client. Always connected. It is run by a dedicated community as a fork of Shout.


Some channels require a nickserv registered nick before joining. Thus, changing to an unregistered nick can give a "Cannot change nickname while banned on channel" message.


set #channel secure on
  # restrict ops

set #channel keeptopic on
  # topic is persistent

set #channel guard on
  # chanserv will reside in channel
set #channel mlock on
  # restrict mode changes. also -c to allow colours.



In most cases you should NOT edit znc.conf directly. Use webadmin instead. If you really need to edit znc.conf by hand, do the following:

pkill -SIGUSR1 znc
  # to save current runtime configuration to znc.conf
pkill znc
  # to shutdown running ZNC instance
  # Edit znc.conf
  # to start it again with new configuration



hub and leaf servers, mesh network. sordid history of de facto and flavours of amended protocol use.




  • Tenyks is a computer program designed to relay messages between connections to IRC networks and custom built services written in any number of languages. More detailed, Tenyks is a service oriented IRC bot rewritten in Go. Service/core communication is handled by Redis Pub/Sub via json payloads. [19]

  • DBot - an IRC bot which aims to be the fanciest IRC bot around - On the general standard of software fanciness, dbot is statistically rated as being '82% the same as bathing in fine, fine grape juice.'

  • http://errbot.net/ - GPL3-licensed chat-bot designed to be easily deployable, extensible and maintainable [20]



  • Libircclient - a small but extremely powerful library which implements the client IRC protocol. It is designed to be small, fast, portable and compatible with the RFC standards as well as non-standard but popular features. It is perfect for building the IRC clients and bots.



Powers Jabber/GChat/GTalk/AIM.






Libraries / Services

  • Poetry is a collection of simple command line tools for working with XMPP services. It aims to provide a set of tools similar to tools like dig, curl, and man, but for interacting, configuring, and querying XMPP services.
  • Switchboard is both a toolkit for assembling XMPP clients as well as a set of command-line tools for interacting with XMPP servers. Ruby.
  • OneSocialWeb XMPP based social network. development has ended.

GUI clients

  • Conversations - Conversations is a Jabber/XMPP client for Android 4.0+ smartphones that has been optimized to provide a unique mobile experience.

  • Quicksy - a spin off of the popular Jabber/XMPP client Conversations with automatic contact discovery.You sign up with your phone number and Quicksy will automatically—based on the phone numbers in your address book—suggest possible contacts to you.¹ Quicksy can be downloaded for free from Google Play Store. The source code is licensed under the GPLv3 and available on Github. Under the hood Quicksy is a full-fledged Jabber client that lets you communicate with any user on any publicly federating server. [25]

CLI clients

  • mcabber is a small Jabber console client that includes SASL/SSL/TLS support, MUC (Multi-User Chat) support, history logging, command completion, OpenPGP encryption, OTR (Off-the-Record Messaging) support, dynamic modules and external action triggers.

See BitlBee

  • https://github.com/horazont/xmpp-echo-bot - Do you know that situation, you really really need an XMPP echo bot, but you don’t have access to high-level tools like Python to write one? All you have is openssl, bash, dig, stdbuf and sed? Then this tool is for you. This is an XMPP echo bot written in (mostly) sed. Bash is used to do the pre-authentication setup (look up DNS records, establish TLS via openssl s_client). sed processes the XML stream and handles all interaction with the server on the XMPP level. Yes, this kinda parses XML in sed. [26]


  • Candy — a JavaScript-based multi-user chat client


Multi user chat, like IRC. Clients suck at implementing this.




  • https://prism-break.org/en/protocols/omemo/ - an extension to the Extensible Messaging and Presence Protocol (XMPP/Jabber) for multi-client end-to-end encryption developed by Andreas Straub. According to Straub, OMEMO uses the Double Ratchet Algorithm 'to provide multi-end to multi-end encryption, allowing messages to be synchronized securely across multiple clients, even if some of them are offline'. The name 'OMEMO' is a recursive acronym for 'OMEMO Multi-End Message and Object Encryption'. It is an open standard based on the Double Ratchet Algorithm and the Personal Eventing Protocol (PEP, XEP-0163). OMEMO offers future and forward secrecy and deniability with message synchronization and offline delivery.

Multisystem clients


  • BitlBee brings IM (instant messaging) to IRC clients. It's a great solution for people who have an IRC client running all the time and don't want to run an additional MSN/AIM/whatever client. BitlBee currently supports the following IM networks/protocols: XMPP/Jabber (including Google Talk), MSN Messenger, Yahoo! Messenger, AIM and ICQ, and the Twitter microblogging network (plus all other Twitter API compatible services like identi.ca and status.net).






  • Ripcord - a desktop chat client for group-centric services like Slack and Discord. It provides a traditional compact desktop interface designed for power users. It's not built on top of web browser technology: it responds quickly to input, sips gently from computer resources, and gets out of your way. It does voice chat, too.

Modern chat


Service. "HipChat is hosted group chat and IM for companies and teams. Supercharge real-time collaboration with persistent chat rooms, file sharing, and chat history."



Like HipChat.

Made at GitHub.


mix of chat, drawing, code scratchpad and video.




Let's Chat










  • Voyager - a bot that travels through Matrix trying to find new rooms. It does this by sitting in rooms and waiting for someone to mention another room, at which point it tries to join that room. Each new room it discovers is mapped to a public graph.



Matrix Live

  • Matrix Live - your favorite Matrix client (such as Riot) to write text and post pictures in this room, your users will see them appear live on the web - either here or right on your blog or website.






  • Slack - brings all your team's communication together, giving everyone a shared workspace where conversations are organized and accessible.


  • Discord - All-in-one voice and text chat for gamers that's free, secure, and works on both your desktop and phone. Stop paying for TeamSpeak servers and hassling with Skype.

  • Discord Me - Public Discord Servers & Discord Channels


  • Gitter - a chat and networking platform that helps to manage, grow and connect communities through messaging, content and discovery. Gitter is available in all modern browsers as well as apps for desktops and mobile phones.


  • Chatty - a chat software specifically made for Twitch, in the spirit of a classic IRC Client. It runs on Windows and any other OS that supports Java 8 or later.

  • Tc - The chat client for Twitch™Free yourself from the browser, Tc runs quietly in the background so you can jump back in when convenient.


Mobile social










See also Encrypted


  • Encrirc - IRC encryption proxy, because IRC SSL does not save your from the voyeur sysadmin


Pidgen + OTR

Jabber + OTR


  • Bitmessage is a P2P communications protocol used to send encrypted messages to another person or to many subscribers. It is decentralized and trustless, meaning that you need-not inherently trust any entities like root certificate authorities. It uses strong authentication which means that the sender of a message cannot be spoofed, and it aims to hide "non-content" data, like the sender and receiver of messages, from passive eavesdroppers like those running warrantless wiretapping programs.


via 4chan



  • Pond is forward secure, asynchronous messaging for the discerning. Pond messages are asynchronous, but are not a record; they expire automatically a week after they are received. Pond seeks to prevent leaking traffic information against everyone except a global passive attacker. [51]



  • TorChat - Decentralized anonymous instant messenger on top of Tor Hidden Services

BitTorrent Chat

  • BitTorrent Chat - Private instant messaging via secure, distributed technology. No cloud required.

BitTorrent Bleep





  • TextSecure - a replacement for the standard text messaging application for Android, allowing you to send and receive text messages as normal. Additionally, Local Encryption -- All text messages, regardless of destination, that are sent or received with TextSecure are stored in an encrypted database on your phone. Wire Encryption -- When communicating with a recipient who is also using TextSecure, text messages are encrypted during transmission.




Secure Internet Live Conferencing

  • Secure Internet Live Conferencing, or SILC in short, is a modern conferencing protocol which provides rich conferencing features with high security. One of the main design principles of the protocol was security. Many of the SILC features are found in traditional chat protocols such as IRC but many of the SILC features can also be found in Instant Message (IM) style protocols.


  • Ricochet - a different approach to instant messaging that doesn’t trust anyone in protecting your privacy. Eliminate metadata. Nobody knows who you are, who you talk to, or what you say. Stay anonymous. Share what you want, without sharing your identity and location. Nobody in the middle. There are no servers to monitor, censor, or hack. Safe by default. Security isn’t secure until it’s automatic and easy to use.

to srot

  • https://github.com/jeztek/deadchat - a cryptographically secure single-room group chat server and client designed to enable a group of trusted friends to communicate with each other over an insecure channel without fear of eavesdropping.

  • GoldBug - a secure Instant Messenger. You can be sure with using GoldBug (GB), that no third party can look testinto your chat communication. Private user-to-user communication remains private. GoldBug therefore uses strong multi-encryption with different layers of modern encryption technologies of well known and revised crypto libraries (like libgcrypt (GnuPG) and OpenSSL). The app offers as well decentral and encrypted Email and decentral public E*IRC-Chat.

  • BitWeav - Unifying the web for open distributed micropublishing

  • https://github.com/crodjer/qotr - a application through which you can quickly spawn a encrypted chat with your friends. The messages are encrypted before they leave your browser. The QOTR servers cannot understand what is being said. For chats 256 bit AES-CBC encryption is used. The key generation happens in the browser. To keep it easy to share a chat room, the password is provided as a location hash. Browsers do not send a location hash to the server.

  • Briar - a messaging app designed for activists, journalists, and anyone else who needs a safe, easy and robust way to communicate. Unlike traditional messaging apps, Briar doesn’t rely on a central server - messages are synchronized directly between the users’ devices. If the internet’s down, Briar can sync via Bluetooth or Wi-Fi, keeping the information flowing in a crisis. If the internet’s up, Briar can sync via the Tor network, protecting users and their relationships from surveillance.

  • Cwtch - Privacy Preserving Infrastructure for Asynchronous, Decentralized, Multi-Party, and Metadata Resistant Applications

  • LAN Messenger - currently available for Windows, Mac, and Linux is a free and open-source instant messaging application. Through a local network, this application will foster instant communication, eliminating the need for having a server and internet connection. More than just for instant messaging, it also comes with extra features, such as transferring files, archiving of past messages, and being notified of upcoming events.


  • PDF: Bifrost : A Novel Anonymous Communication System with DHT - An immense amount of information is processed on the Internet due to its spread, increasing the severity of such problems as the disclosure of personal information; privacy protection is required. Research to protect anonymity has become crucial. Anonymous communication systems must consider a sudden breakaway of nodes. However existing systems isn't considering this enough. This paper proposes separating a node management layer from an anonymous communication layer. A novel anonymous communication system is realized by a node management layer that uses Chord, which is a distributed hash table, and the anonymous communication layer uses multiplex encryptions.