Chat
Live public or private messages.
General
- Ars Technica: The fall… and rise and rise and rise of chat networks
- Google Docs: Digital Communications Protocols - Messenger systems compared by security, privacy, compatibility, and features [1]
Older
Talk
- 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
Term-talk
MUD
- https://wiki.mudlet.org/w/Main_Page - A cross-platform, open source, and super fast MUD client with scripting in Lua.
- https://github.com/Xangis/magma - Magma MUD - An old-school MUD codebase derived from DIKU, Merc, Envy, and UltraEnvy
- https://github.com/Xangis/ModernMUD - A modern multiplatform multi-user dungeon engine written in C# and .NET with a full toolset.
Talker
Zephyr
- http://www.gale.org/ - the Caltech equivalent of the Zephyr protocol
BITNET
- 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/OSCAR_protocol - AIM, pre XMPP
Other
IRC
- 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).
Culture
GUI clients
Xchat
- 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. Mostly dead, use HexChat instead.
Hexchat
- 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.
ChatZilla
- 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
- 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
- Loqui - IRC Client for Gtk2
Konversation
- Konversation - a user-friendly Internet Relay Chat (IRC) client built on the KDE Platform.
Smuxi
- 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
- 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. [7]
- https://wiki.archlinux.org/index.php/Quassel
- https://disconnected.systems/blog/quasselcore-on-archlinux
- https://github.com/magne4000/quassel-webserver - A web server/client for Quassel
- https://github.com/justjanne/quassel-rest-search - a websearch frontend for a quassel database. It offers both a simple HTTP API for search, and a normal website for the same purpose.
Microsoft Comic Chat
CLI clients
Irssi
set timestamp_format %H:%M:%S /server ADD -auto -network freenode irc.freenode.net 6667 /channel ADD -auto #channel NetworkName password
Stuff
- https://github.com/ailin-nemui/teddy/wiki - a WebSocket Proxy for Irssi
Guides
- http://laurimakinen.net/2009/04/13/ultimate-irssi-guide-for-beginners/
- http://www.distancex.net/2011/06/my-perfect-irssi-setup.html
Weechat
Installation
Usage
Alt+←/→ or F5/F6 # switch to previous/next buffer F7/F8 # switch to previous/next window (when screen is split) F9/F10 # scroll title bar F11/F12 # scroll nicklist Tab # complete text in input bar, like in your shell PgUp/PgDn # scroll text in current buffer Alt+a # jump to buffer with activity (in hotlist) Ctrl-r # Search buffer (enter to esc.) alt-k [key] #display key and binding
/save # 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
Scripts
/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
- to check; https://github.com/FiXato/listbuffer
Scripting
http://www.weechat.org/files/doc/stable/weechat_plugin_api.en.html#_weechat_config_color_default weechat.color.chat_buffer [9]
python: 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) [10]
import weechat weechat.register("test_python", "FlashCode", "1.0", "GPL3", "Test script", "", "") weechat.prnt("", "Hello, from python script!")
Android
BitchX
EPIC
ii
- 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.
- https://github.com/c00kiemon5ter/niii - ncurses frontend to ii similar to iii
Other
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.
Services
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.
Bouncer
ZNC
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 znc # to start it again with new configuration
- http://wiki.znc.in/Cert - client-side .pem cert
Other
- http://tapchatapp.com/ - for mobile devices
- https://www.ircrelay.com/ - SaaS
Servers
hub and leaf servers, mesh network. sordid history of de facto and flavours of amended protocol use.
- https://code.google.com/p/tircd/ - twitter tags as channels
ircd
- http://en.wikipedia.org/wiki/IRCd
- https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_daemons
- http://www.dal.net/?page=bahamut
- http://www.atheme.org/project/charybdis
- http://www.ircd-hybrid.org/
- http://inspircd.github.com/
- http://evilnet.sourceforge.net/
- http://www.ratbox.org/
- http://www.unrealircd.com/
RobustIRC
Bots
- https://en.wikipedia.org/wiki/Internet_Relay_Chat_bot
- https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_bots
- https://github.com/flocks/TwircBot - twitter2irc
- Pierc - A python bot that logs IRC channels, and a PHP/JS interface for browsing said logs.
- https://github.com/jsocol/logbot
- http://wiki.alpinelinux.org/wiki/Sircbot
- http://guppy.uk.to/
- http://willie.dftba.net/
- https://github.com/Ueland/VikingBot
- https://github.com/cinchrb/cinch/
- https://code.google.com/p/madcow/
- 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. [17]
- 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 [18]
Logger
- https://github.com/whitequark/irclogger - Simple and good-looking IRC log viewer. Logger is included. No strings are attached
Other
Articles
Jabber/XMPP
- XMPP - Extensible Messaging and Presence Protocol
Powers Jabber/GChat/GTalk/AIM.
Protocol
- http://xmpp.org/extensions
- http://xmpp.org/extensions/xep-0220.html - server dialback
- IM Observatory - Testing the security of the Jabber/XMPP network
General
older;
- http://www.slideshare.net/stpeter/jabber-the-realtime-internet-and-you
- http://blog.process-one.net/introducing_the_xmpp_application_server_the_twitter_example/
- http://el-tramo.be/blog/psi-jaiku/
- http://www.coverfire.com/archives/2006/04/25/jabberxmpp-pubsub/
newer;
- https://blog.thijsalkema.de/blog/2013/08/26/the-state-of-tls-on-xmpp-1/ [22]
- https://blog.thijsalkema.de/blog/2013/08/28/the-state-of-tls-on-xmpp-2/
- https://blog.thijsalkema.de/blog/2013/09/02/the-state-of-tls-on-xmpp-3/
Server
- http://xmpp.org/xmpp-software/servers/
- https://en.wikipedia.org/wiki/Comparison_of_XMPP_server_software
Libraries / Services
- SleekXMPP is an MIT licensed XMPP library
- 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
- http://xmpp.org/xmpp-software/clients/
- http://en.wikipedia.org/wiki/Comparison_of_instant_messaging_clients#XMPP-related_features
- http://conversations.im/ - android app
- https://movim.eu/ - web
- Conversations - Conversations is a Jabber/XMPP client for Android 4.0+ smartphones that has been optimized to provide a unique mobile experience.
- Pix-Art Messenger - an open source XMPP / Jabber Messenger for Android 4.0
- JabberCat - an instant messenger which uses the long-established Jabber network (based on XMPP). It is written in Python using Qt 5.
- https://github.com/anurodhp/Monal - Free XMPP client for iOS and OS X
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. [23]
Web
- Candy — a JavaScript-based multi-user chat client
MUC
Multi user chat, like IRC. Clients suck at implementing this.
Jingle
Other
- https://github.com/julien51/notifix - rss to irc/xmpp
- http://push-bot.appspot.com/ - push to xmpp
OMEMO
- 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
- http://www.miranda-im.org/ - windows
BitlBee
- 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).
Pidgin
Empathy
Franz
Rambox
Modern chat
HipChat
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."
Sqwiggle
- Sqwiggle is an always on online workplace for your remote team to work together throughout the day.
Hubot
Like HipChat.
Made at GitHub.
echoplexus
mix of chat, drawing, code scratchpad and video.
other
meatspac.es
- Meatspace chat - Chat with WebRTC, LevelDB and Sockets. Adds short webcam video clips.
Kandan
Let's Chat
MogoChat
Miaou
Scrollback
- https://scrollback.io/ - Embeddable cross-platform chat for communities
Heim
Other
Heim
Zulip
- Zulip - combines the immediacy of Slack with an email threading model. With Zulip, you can catch up on important conversations while ignoring irrelevant ones. [29]
Rocket.Chat
- Rocket.Chat - The Ultimate Open Source WebChat Platform
Matrix.org
- Voyager - Voyager is 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.
Riot
- https://riot.im/ - uses Matrix
- https://medium.com/@RiotChat/exciting-new-riot-release-get-ready-for-chatting-securely-acc93ecfe0a [31]
MatterMost
Threema
Other
Services
Slack
- Slack - brings all your team's communication together, giving everyone a shared workspace where conversations are organized and accessible.
Discord
- 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. Simplify your life.
Gitter
- 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.
Other
Mobile social
Apps
Firechat
Snapchat
Ring
- Ring - a free and universal communication platform which preserves the users' privacy and freedoms. [40]
WebRTC
See VoIP#WebRTC
Terminal
Encrypted
See also Encrypted
- Chatcompare - Compare potential secure chat applications. dead. [42]
IRC
- Encrirc - IRC encryption proxy, because IRC SSL does not save your from the voyeur sysadmin
- Dirt is a multi-platform IRC proxy that adds FiSH-compatible chat encryption (including DH1080 key exchanges) to any IRC client. It can be used as a SOCKS proxy or as a simple bouncer. For security reasons, only localhost connections are allowed.
OTR
Pidgen + OTR
Jabber + OTR
Bitmessage
- 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.
Tox
via 4chan
Cspace
Pond
- 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. [44]
Cryptocat
TorChat
- 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
Telegram
Wire
Peerio
Signal
- 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.
- https://en.wikipedia.org/wiki/Signal_(software) - successor to TextSecure and RedPhone
- Facebook Messenger deploys Signal Protocol for end to end encryption - moxie0 on 08 Jul 2016 [48]
Riffle
Vuvuzela
zkc
Other
- 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.
- deadchat is 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.
- IronPigeon is a decentralized communication protocol that provides high confidentiality and authenticity for the messages.
- GoldBug is 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
- QOTR is 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.
Bifrost
- 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.