IRC
π¬
- This page is about the IRC protocol. For details on the IndieWeb IRC chat rooms, see discuss.
What is IRC
Internet Relay Chat (abbreviated IRC), in particular the #indieweb channels on the libera.chat network, is the primary community discussion forum for IndieWebCamp and anything about the IndieWeb.
Install an IRC app
You can use an IRC application for more convenience. See the section Clients for clients commonly used in the community which you can download and install.
See also: discuss#Join_via_IRC How to join Indieweb IRC channels
IRC applications are convenient for automatically reconnecting you to the discussion channel, with your chosen nickname, and offer more configuration and alerting options than the web interface.
Libera Services
The #indieweb IRC channel is hosted on the libera.chat server. See Joining a server and channel for info about configuring additional services (authenticated nicknames, etc.).
Use a browser to quickly join the live discussion chat using the Libera webchat:
Getting started with IRC
Please note: These directions relate specifically to the services that Libera offers. Other IRC servers may differ with the services they offer and how to operate them.
Joining a server and channel
Most clients will offer you a connection dialogue showing the required fields for connection. The details to connect to the server are:
- Server:
irc.libera.chat
- Port:
6667
(usually default)
You should also fill in any fields to set your alias, real name and email address. If available, save these settings for later to speed up connecting in future.
More on setting a password protected alias can be read here.
Once connected, you will most likely be presented with the "MOTD" (message of the day). For the first visit, it is advisable to read this to find out about the server's policies and other important pieces of news and help, otherwise it can be ignored and you can either authenticate your alias or join a channel.
Your client may display to you a listing of all available channels. Locate #indieweb
and select to join, or type /join #indieweb
into the command line available to you in your client (where you've just been shown your connection).
Assuming you've connected correctly, you should now find youself in the #indieweb channel!
More detailed, but general, advice can be read here. Irc help currently has many missing pages; the link is to a copy in the Internet Archive.
Creating a registered nickname
Registration means that a password becomes associated with your alias/nickname/sign-in name and from the point of registration authorisation is required to communicate using that alias.
Registration of a nickname is required for some channels, and should be done to protect your identity.
To register with [httpsl://libera.chat libera.chat], you must communicate with their service known as NickServ. The two basic command you will need to get started are:
For registration: /msg nickserv register password email
For authentication (login): /msg nickserv identify password
With password
being a value of your choice and email
being the email a verification command is send to.
The command looks something like /msg NickServ VERIFY REGISTER yournick mbarbwytaspq
. Enter this command to verify your email with the nickserv.
Your client may offer you an option to set your alias and password, so that you will not have to manually enter this information on each join. Refer to your client's help files for more on this.
These commands can be typed directly into the server window upon join, or whilst in a channel, just as you would normally send a message.
More detailed user registration command information can be found in Libera's FAQ
Requiring nickname authentication
You can set an option requiring authentication of your nickname within 30 seconds. If not authenticated in that time, the nickname will automatically be changed.
Once authenticated to Nickserv,
/msg NickServ SET ENFORCE ON
Communicating
Sending a message to a channel may be as simple as joining the channel and typing into the window, just as you would with an Instant Messenger. You can refer to your client's help files for quicker/alternative methods of doing the following. For all clients the following commands are available (the parts in bold must be used, but are not seen by others):
Sending a message to the entire channel you are currently in:
Command: /msg Hello world!
Result: <Bill> Hello world!
Sending an action/emotive/3rd person statement:
Command: /me dances a code jig
Result: Bill dances a code jig
Sending a message to one person only (private chat):
Command: /msg Bob Hi, would you like to code jig?
Result (for Bob only): <Bill> Hi, would you like to code jig?
Clients
The following clients are recommended by #indieweb participants:
Android
- Yaaic β Open Source, retro look IRC client
- AndroIRC β Will Norris reports moderate success.
Windows
- mIRC β Popular Windows client. Trial version only.
- AdiIRC β Simple C# based IRC client.
- Miranda NG β Lightweight, multi-protocol instant messenger. Formerly Mirdanda IM.
Mac
- Adium β open source, free, multi-protocol
- XChat Aqua/Azure β open source, free
- Textual β open source, commercial ($9.99)
No longer maintained:
- Colloquy β open source, free
- Fire β open source, free, no longer under development
- LimeChat β open source, free
- Minerva β free, no longer under development
- Snak β commercial ($29) no longer supported
iOS/iPadOS
Cross-platform
- IRCCloud β Web, iOS, and Android apps to stay connected across devices. Has free and paid options. [1]
- Pidgin β Popular open-source multi-protocol client for Windows, Linux, and other UNIX-like operating systems, using libpurple
- Irssi β Unix client, often run from a shell, typically in conjunction with 'screen'.
- Thunderbird β Email and chat application from Mozilla. Chat features previously in Instantbird appear to live on in Thunderbird. [2]
- WeeChat - Full-featured terminal-mode IRC, with IPv6, SASL authentication, nicklist, DCC, and many other features. Like irssi, usually used on a server, in conjunction with tmux instead of screen
- CIRC on ChromeOS β Only available on ChromeOS, not as a Chrome extension. Future of this is uncertain. [3]
No longer developed or unknown status:
- HexChat β Former fork of X-chat. Window-based, but somewhat old-school. Windows and Linux binaries available.
- Chatzilla β Formerly an extension for Firefox
- jIRCii β last capture of this archived page is from 2007. http://jircii.dashnine.org/ may have more recent development though still appears to be from 2014.
- Instantbird β An instant messaging client built by Mozilla! Discontinued in 2017, but chat features appear to be in Thunderbird now.
Bouncers, Client/Server
- ZNC β A fully developed IRC bouncer with many add-ons, including colloquy mobile push via apple push notification service. IRC on your phone!
- irssi-proxy β A light weight bouncer for irssi
- The Lounge β self-hosted web-based IRC client: https://github.com/thelounge
- Jim Winstead uses this and documented a container setup using Tailscale
- Quassel β client-server based IRC client for Windows/Mac/Linux/Android (custom protocol between server and clients). Standalone version also available (uses local sqlite database)
Personal domain whois
If you connect to IRC in some fashion so that the reverse dns points to your domain, then it will show up when others /whois you.
For example, /whois rascul
Here are some possible scenarios:
- Run ZNC on your server (for example, rascul.io) and connect to it through your tinc VPN.
- SSH to your server and run Irssi inside GNU Screen. Take a look at Guide to using Screen and Irssi.
- Use WeeChat's Relay protocol to use WeeChat on your server as a bouncer.
Troubleshooting
Need to identify via SASL
If you get an error message like:
*** Notice -- You need to identify via SASL to use this server
Then:
- If you're on Colloquy on Mac, there are two possible fixes in increasing difficulty:
- setup a SOCKS proxy, or:
- download the latest Colloquy source and build it yourself (which supposedly has SASL support, but there's been no official Colloquy release since the the support was added)
- ... except Colloquy 2.4.1, released 2013-20-23 still has this problem.
- If you're on Colloquy on iOS, you need to configure the SASL support in the Advanced options.
- (stub - need more description here about how to find the Advanced options and what to enter, screenshots would be nice)
Scenarios - the above error has been encountered when:
- Using a Virgin Mobile MiFi to access the internet. (2011-193 Tantek)
- Using a tethered T-Mobile Internet connection (Npdoty.name 15:47, 14 March 2013 (PDT))
Voice
Anyone who has added themselves to the chat-names list will be automatically given "voice" (+v) in the IndieWeb channels by Loqi as a way to indicate that you have access and are listed in the wiki. This "user mode" is often represented by a + in front of the persons name in many IRC clients.
You will be given voice even if you are not authenticated with Nickserv, as it does not pose any sort of security problem and is not considered a reliable way to authenticate you.
Note: "voice" has nothing to do with who can/can't talk. Everyone abiding by the Code-Of-Conduct is free to speak their (on topic) mind. Want voice too? Feel free to add yourself to chat-names or ask for help.
Advanced / Admin notes
Libera uses the Atheme IRC Services for ChanServ and NickServ. Channel administrators will mostly interact with the former, users with the latter. These are the systems administrators are going to be communicating with.
The channel namespace is registered as a group project, so admins have the ability to take over any channel that starts with "#indieweb-", see https://libera.chat/chanreg/ for details.
The below configurations probably will not work on networks that use a different set of services.
See ChanServ FLAGS for the full list of possible privileges to give a user on a channel. Below are just some quick reminders for things that happen semi-frequently or are required for new channels.
Giving someone ops
/msg chanserv op #indieweb Loqi
Granting auto op to Loqi
/msg chanserv flags #indieweb Loqi +O
Turning off auto op for yourself (or anyone), to avoid seeing spam messages before Loqi kick spammers
/msg chanserv flags #indieweb tantek -O
Setting channel to allow anyone to set topic
/msg chanserv flags #indieweb +t
Lock the +t option on
/msg chanserv set #indieweb mlock +t
Ban and kick someone
/msg chanserv akick #pdxbots add *!*foo@bar.com
Check access list for a channel
/msg chanserv access #indieweb list
Grant all flags you can to a user, except Founder status (+F
) and auto-op (see above)
/msg chanserv flags #indieweb aaronpk +*-O
Prevent ChanServ from syncing user modes. Sometimes ChanServ tries to sync its own ACL with the channel, you can turn this off with:
/msg chanserv set #indieweb nosync on
Additional info
/msg chanserv help /msg chanserv help flags /msg chanserv help set mlock
- http://lug.oregonstate.edu/blog/channel-admin/
- https://botbot.me/how-to-setup-irc-channel/
- https://gist.github.com/jjasghar/257263196a8219490252#the-copypasta
Currently running a test on #indieweb-chat with the following extra settings to hide the channel from others on the IRC network. Like above, these are set by sending them to ChanServ. This might be able to further lessen the amount of spam weβre seeing.
- SET #indieweb-chat MLOCK +sp
This makes the channel secret and private. The channel should not longer show up in channel lists anywhere. See Liberaβs channel modes for explanations.
- SET #indieweb-chat PRIVATE ON
This βhides various information about the channelβ. One example is to hide the channel from LIST commands issued to ChanServ [4].
To see which modes and flags have been set, query ChanServ with:
- INFO #indieweb-chat
(Note: it looks like this will not display all flags, e.g. NOSYNC
is known not to be displayed.)
Ban user based on "real name" field
/mode #indieweb-meta +b $x:*permaweb.io
- see Channel Modes for details on extban format
$x
bot development
Advantages
- IRC is built on open protocols so you can build your own clients and servers that interface with IRC.
- IRC has been extensively documented over the years.
- There are many tutorials available online on how to write IRC bots in various languages.
- IRC is text-only so you can focus on text without seeing images that may disrupt your flow.
Criticism
- Most IRC clients do not abstract away from technical details like connecting to a server. This means it can be difficult to understand how to join an IRC community if you are not comfortable in technical environments.
- ...
Brainstorming
See Also
- Contribute
- indiechat
- Slack
- http://www.w3.org/wiki/IRC
- https://meta.wikimedia.org/wiki/User:GWicke/Matrix.org
- https://github.com/matrix-org/matrix-appservice-irc/wiki/End-user-FAQ#i-am-a-chanop-and-have-a-spam-problem-how-can-i-fix-it-without-affecting-matrix-users
- bridged via the Slack IRC Gateway
- good (low-level) protocol documentation: https://modern.ircdocs.horse/about.html
- How to remove spam from the chat logs